diff --git a/README.md b/README.md index 42790bd..9445f1e 100644 --- a/README.md +++ b/README.md @@ -57,13 +57,21 @@ __R__ for runtime * libGL (B,R) (Will probably be made optional soon) * asciidoc (B) (if you wish to run `make docs`) -To build, make sure you have the above dependencies: +### How to build + +To build, make sure you have the dependencies above: ``` bash +# Make the main program $ make +# Make the newer man pages +$ make docs +# Install $ make install ``` +(Compton does include a `_CMakeLists.txt` in the tree, but we haven't decided whether we should switch to CMake yet. The `Makefile` is fully usable right now.) + ## Example Usage ``` bash diff --git a/CMakeLists.txt b/_CMakeLists.txt similarity index 100% rename from CMakeLists.txt rename to _CMakeLists.txt diff --git a/bin/compton-trans b/bin/compton-trans index 7576abc..da22a3f 100755 --- a/bin/compton-trans +++ b/bin/compton-trans @@ -1,19 +1,23 @@ #!/bin/bash +# +# compton-trans # transset in a bash script # Copyright (c) 2011-2012, Christopher Jeffrey +# # Usage: -# by window id -# settrans -w "$WINDOWID" -o 75 -# by name -# settrans -n "urxvt" -o 75 -# by current window -# settrans -c -o 75 -# by selection -# settrans -s -o 75 -# increment current window 5% -# settrans -c -o +5 +# By window id +# $ compton-trans -w "$WINDOWID" 75 +# By name +# $ compton-trans -n "urxvt" 75 +# By current window +# $ compton-trans -c 75 +# By selection +# $ compton-trans 75 +# $ compton-trans -s 75 +# Increment current window 5% +# $ compton-trans -c +5 # "command" is a shell built-in, faster than "which" if test -z "$(command -v xprop)" -o -z "$(command -v xwininfo)"; then @@ -48,77 +52,77 @@ shift $(($OPTIND - 1)) # Validate opacity value if [ -z "$opacity" ]; then - echo "No opacity specified." - exit 1 + echo "No opacity specified." + exit 1 fi opacity="$(echo "$opacity" \ - | sed -rn 's/^[[:space:]]*([+-]?[[:digit:]]+)[[:space:]]*$/\1/p')" + | sed -rn 's/^[[:space:]]*([+-]?[[:digit:]]+)[[:space:]]*$/\1/p')" if [ -z "$opacity" ]; then - echo "Invalid opacity value." - exit 1 + echo "Invalid opacity value." + exit 1 fi # Get ID of the target window if [ -z "$wprefix" ]; then - treeout=$(xwininfo -children -frame) + treeout=$(xwininfo -children -frame) else - treeout=$(xwininfo -children $wprefix"$window") + treeout=$(xwininfo -children $wprefix"$window") fi wid=$(echo "$treeout" | sed -n 's/^xwininfo:.*: \(0x[[:xdigit:]]*\).*$/\1/p') if [ -z "$wid" ]; then - echo "Failed to find window." - exit 1 + echo "Failed to find window." + exit 1 fi # Make sure it's not root window if echo "$treeout" | fgrep "Parent window id: 0x0" > /dev/null; then - echo "Cannot set opacity on root window." - exit 1 + echo "Cannot set opacity on root window." + exit 1 fi # If it's already the topmost window if echo "$treeout" | grep "Parent window id: 0x[[:xdigit:]]* (the root window)" > /dev/null; then - topmost="$wid" + topmost="$wid" else - # Get the whole window tree - treeout="$(xwininfo -root -tree)" + # Get the whole window tree + treeout="$(xwininfo -root -tree)" - if [ -z "$treeout" ]; then - echo "Failed to get root window tree." - exit 1 - fi + if [ -z "$treeout" ]; then + echo "Failed to get root window tree." + exit 1 + fi - # Find the line number of the target window in the window tree - lineno="$(echo -n "$treeout" | grep -nw "$wid" | head -n1 | cut -d ':' -f 1)" + # Find the line number of the target window in the window tree + lineno="$(echo -n "$treeout" | grep -nw "$wid" | head -n1 | cut -d ':' -f 1)" - if [ -z "$lineno" ]; then - echo "Failed to find window in window tree." - exit 1 - fi + if [ -z "$lineno" ]; then + echo "Failed to find window in window tree." + exit 1 + fi - # Find the highest ancestor of the target window below - topmost=$(echo -n "$treeout" | head -n $(($lineno + 1)) | sed -n 's/^ \(0x[[:xdigit:]]*\).*/\1/p' | tail -n1) + # Find the highest ancestor of the target window below + topmost=$(echo -n "$treeout" | head -n $(($lineno + 1)) | sed -n 's/^ \(0x[[:xdigit:]]*\).*/\1/p' | tail -n1) fi if [ -z "$topmost" ]; then - echo "Failed to find the highest parent window below root of the" \ - "selected window." - exit 1 + echo "Failed to find the highest parent window below root of the" \ + "selected window." + exit 1 fi # Calculate the desired opacity if echo "$opacity" | grep '^[+-]' > /dev/null; then - sign=$(echo "$opacity" | cut -b1) - cur=$(xprop -id "$topmost" -notype "_NET_WM_WINDOW_OPACITY" \ - | sed 's/^.*\b\([0-9]\+\).*$\|^.*$/\1/') - [ -z "$cur" ] && cur=0xffffffff - cur=$((cur * 100 / 0xffffffff)) - opacity="$(echo "$opacity" | sed 's/^[+-]//')" - opacity=$(($cur $sign $opacity)) + sign=$(echo "$opacity" | cut -b1) + cur=$(xprop -id "$topmost" -notype "_NET_WM_WINDOW_OPACITY" \ + | sed 's/^.*\b\([0-9]\+\).*$\|^.*$/\1/') + [ -z "$cur" ] && cur=0xffffffff + cur=$((cur * 100 / 0xffffffff)) + opacity="$(echo "$opacity" | sed 's/^[+-]//')" + opacity=$(($cur $sign $opacity)) fi [ $opacity -lt 0 ] && opacity=0 @@ -127,4 +131,4 @@ fi # Set opacity opacity=$(($opacity * 0xffffffff / 100)) xprop -id "$topmost" -f _NET_WM_WINDOW_OPACITY 32c \ - -set _NET_WM_WINDOW_OPACITY "$opacity" + -set _NET_WM_WINDOW_OPACITY "$opacity" diff --git a/man/compton-trans.1 b/man/compton-trans.1 index 995ab87..dbf974b 100644 --- a/man/compton-trans.1 +++ b/man/compton-trans.1 @@ -39,19 +39,22 @@ target window's current opacity instead. .SH EXAMPLES .TP Set window id to opacity of 75%. -compton-trans -w "$WINDOWID" -o 75 +compton-trans -w "$WINDOWID" 75 .TP Set window name, "urxvt", to opacity of 75%. -compton-trans -n "urxvt" -o 75 +compton-trans -n "urxvt" 75 .TP Set current window to opacity of 75%. -compton-trans -c -o 75 +compton-trans -c 75 .TP Select target window and set opacity to 75%. -compton-trans -s -o 75 +compton-trans -s 75 .TP -Increment current window 5% opacity. -compton-trans -c -o +5 +Increment current window opacity by 5%. +compton-trans -c +5 +.TP +Decrement current window opacity by 5%. +compton-trans -c -- -5 .SH BUGS Please report any you find to https://github.com/chjj/compton.