Wednesday, July 10, 2013

Fedora 19 and Gnome 3.8 - Get back your terminal background transparency

Gnome Terminal in 3.8 had the transparency option dropped/removed not because it wasn't a useful feature, but because implementation between new and old code was difficult.

Anyways with Fedora 19 and Gnome 3.8, there is a way to get back this feature. I ended up using the window manager cinnamon as it has advanced features of gnome, yet includes lots of the intuitive right click menu options you expect on any desktop.

Step 1:
sudo yum install devilspie

Step 2:
mkdir ~/.devilspie

Step 3:
// Add any file in this dir ending in .ds and devilspie will process it.

vim ~/.devilspie/terminal-opacity.ds

Step 4:
// In this file add this line of code
// Terminal is what fedora uses as the name of these terminals.

(if
  (matches (window_name) "Terminal")
  (opacity 85)
)

Step 5:
// Add in .bash_profile the following line. It will
devilspie -a &

Step 6: Logout and log back in.

Any new terminal console windows will now be transparent - including the menu bars.

3 comments:

Unknown said...

source .bash_profile

Unknown said...

Works great, thanks.
here is my contribution:

#!/bin/bash
# original idea from: http://bunwich.blogspot.com/2013/07/...back-your.html
echo "************ Instalamos devilspie para detectar cuando se abra la terminal ************ "
yum -y install devilspie
echo "************ Creamos el directorio de trabajo de devilspie ************ "
localdir='/home/'$USER'/.devilspie'
if [ -d "${localdir}" ]; then
# existe
echo "El directorio devilspie ya existe"
else
# no existe
mkdir ${localdir}
cd /home/$USER
fi

echo "************ Creamos el archivo que detecta cuando abramos una terminal ************ "
cd /home/$USER/.devilspie
echo '(if ' > terminal-opacity.ds
echo ' (matches (window_name) "Terminal")' >> terminal-opacity.ds
echo ' (opacity 85)' >> terminal-opacity.ds
echo ') ' >> terminal-opacity.ds
chown -R tgp:tgp ${localdir}
cd /home/$USER

profile_test=`cat /home/$USER/.bash_profile | grep "devilspie"`
if [[ "${profile_test}" =~ "devilspie -a &" ]]; then
echo "************ devilspie ya esta agregado al perfil ************ "
else
echo "************ agregamos delvilspie a nuestro perfil bash ************ "
echo 'devilspie -a &' >> .bash_profile
fi

Andrew Meredith said...

Worked like a charm .. Thanks