Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
A tiny script to set the transparency for X windows. If AUTOMAGIC_MODE is "true", it tries to find all gnome-terminal windows and applies the transparency to all of them.
# vim: set sts=4 sw=4 et tw=0 :
# License: BSD
: ${XWININFO:=$(type -P xwininfo)}
[[ -z ${XWININFO} ]] && { echo "You need to install xwininfo"; exit 1; }
: ${XPROP:=$(type -P xprop)}
[[ -z ${XPROP} ]] && { echo "You need to install xprop"; exit 1; }
[[ -z "${TRANSPARENCY_PERCENT}" ]] && { echo "Usage: $0 <transparency in percentage>"; exit 1; }
if [[ ${AUTOMAGIC_MODE} != true ]]; then
echo "Click on a terminal window to set its transparency as specified (${TRANSPARENCY_PERCENT}%)"
TERMINAL_WINDOW_XID=$("$XWININFO" | sed -n 's/.*Window id: \([0-9a-fx]\+\).*/\1/p')
# This is very fragile
TERMINAL_WINDOW_XID=$("$XWININFO" -root -tree | grep -v "Terminal" | sed -n 's/^[[:space:]]\+\([0-9a-fx]\+\).*gnome-terminal.*/\1/p')
if [[ $TRANSPARENCY_PERCENT = 100 ]]; then
elif [[ $TRANSPARENCY_PERCENT = 0 ]]; then
TRANSPARENCY_HEX=$(printf "0x%x" $((($(printf "%d" $OPACITY_100) * $TRANSPARENCY_PERCENT)/100)))
echo "Setting transparency to $TRANSPARENCY_HEX (${TRANSPARENCY_PERCENT}%)"
for each in $TERMINAL_WINDOW_XID; do

This comment has been minimized.

Copy link

@MikyStar MikyStar commented Nov 16, 2018

Hi !

This is awesome but I'm trying to apply it automatically everytime I launch a new gnome-terminal instance.
I've tried putting sh ~/Documents/ in my .zshrc but this way doesn't seems to work (automagic is enabled of course). The transparency will not be applied to the current terminal but to all the other instances.

Do you have a solution ?


This comment has been minimized.

Copy link

@elig0n elig0n commented Mar 31, 2019

Doesn't work for me with

# GNOME Terminal 3.30.2 using VTE 0.54.2 +GNUTLS
gnome-terminal-fedora on Manjaro

This comment has been minimized.

Copy link

@a22a-dev a22a-dev commented Sep 12, 2020

change type -P xprop to type xprop & change type -P xwininfo to type xwininfo.

And it does not work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment