Am 18.08.2023 um 10:11 schrieb Christian Franke via Cygwin:
Jonathon Merz via Cygwin wrote:
On Thu, Aug 17, 2023 at 7:13 PM Martin Wege via Cygwin
<cygwin@cygwin.com>
wrote:
Just an idea: Could the default background color of the Cygwin console
be changed from black to grey (or RED) if the terminal has been
started with Administrator rights?
Assuming that:
1. The Administrators group is called "Administrators"
2. There aren't any non-administrative groups with "Administrators"
in the
name
3. You're using mintty for your terminal
You can run the following in bash or zsh with the desired RGB values:
if [[ `id -Gn` == *Administrators* ]]
then
echo -ne "\e]11;#FFBBEE\a";
fi
A alternative that should work with any shell, does not rely on
(unfortunately localized) group names and only assumes that the
Administrators group S-1-5-32-544 isn't remapped by /etc/group:
case " $(/usr/bin/id -G) " in
*\ 544\ *) printf '\e]11;#FFFF80\a' ;;
esac
or like this
case " `id -G` " in
*" 544 "*|*" 0 "*) echo admin;;
esac
Note the embedding spaces in the case expression.
I'm adding the 0 for a profile portable with Linux.
You could also use
if id -G | grep -qE '\<(544|0)\>'
at the cost of an additional process creation.
In earlier Windows versions, you could also check for group 547 which
was some kind of half-admin user.
Thomas
Or use a check of actual access rights:
if [ -r /proc/registry/HKEY_LOCAL_MACHINE/SAM/SAM ]; then ...; fi
I use this in .bashrc to add "(root)" to the default mintty title and
set '#' as root prompt:
case " $(/usr/bin/id -G) " in
*\ 544\ *) PS1=${PS1/\\e]0;\\w/\\e]0;\\w (root)}; PS1=${PS1/\\\$ /\#
} ;;
esac
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple