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

Reply via email to