Category Archives: Tips&Tricks

Use GTK-3.0 Dark variant theme for your GTK-2 terminal emulator

This is a workaround to force your preferred terminal emulator to use the Dark variant of Adwaita theme in GNOME >= 3.12 (maybe less, but untested).

Just add these lines to your ~/.bashrc file:

# set dark theme for xterm emulators
if [ "$TERM" == "xterm" ] ; then
 xprop -f _GTK_THEME_VARIANT 8u -set _GTK_THEME_VARIANT "dark" -id `xprop -root | awk '/^_NET_ACTIVE_WINDOW/ {print $5}'`
fi

This is how it works with Terminator:

Before

Before

After

After

Simple workaround to keep PC alive playing songs in Amarok and Gnome

During last months, I must confess, I got a new music player: Amarok.

Now, I would not fall in flame, but Rhythmbox seems still incomplete (and a bit bugged) if compared to Amarok. And, sadly, this is a fact, not an opinion (lol, and this is flame).

Anyway.. Amarok is not able to keep your PC alive when plays something, so if you set a hibernate time in gnome-settings you will see your PC going to sleep while you’re listening some song. And this is really bad..

This little script checks if Amarok is running (and it’s playing something as well) and set hibernate time to 0 (that means: no hibernate) in gnome-settings.

#!/bin/bash

# you MUST set this accoring with your QT installation
QDBUS=/usr/lib/x86_64-linux-gnu/qt4/bin/qdbus

# change these as you wish
# daemon time in seconds
TIME_DAEMON=10
# time to hibernate in seconds
TIME_HIBERNATE=600

# do not touch these
KEY=/org/gnome/settings-daemon/plugins/power/sleep-inactive-ac-timeout
QDBUS_CMD="org.mpris.MediaPlayer2.amarok /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlaybackStatus"

function amarok_on() {
  dconf write $KEY 0
}

function amarok_off() {
  dconf write $KEY $TIME_HIBERNATE
}

function check() {
  STATUS=`$QDBUS $QDBUS_CMD`
  if [ "$STATUS" == "Playing" ] ; then
    amarok_on
  else
    amarok_off
  fi
}

while `sleep $TIME_DAEMON` ; do check ; done

Obviously, you have to run this script when a gnome session starts (Startup applications).

Turning off/on display via cli/bash

This little script will help you to understand how to use xrandr to enable, disable and configure your second Display via bash:

#!/bin/bash

FIRST="HDMI-0"
SECOND="DVI-0"

BASECMD="xrandr --auto --output $SECOND"

MODE="--mode 1920x1080"
DIRECTION="--right-of $FIRST"
ROTATE="--rotate left"
OFF="--off"

function off() {
  $BASECMD $OFF
}

function on() {
  $BASECMD $MODE $DIRECTION $ROTATE
}

function usage() {
  echo "usage: $(basename $0) on|off"
}

case "$1" in
  on)   on 
  ;;
  off)  off 
  ;;
  *)    usage
  ;;
esac

Enjoy! 🙂

A smart way to use /tmp

I always loved use tmp directory to manage my “temporary files”. First of all, which files can be considered as “temporary”, and what does temporary exactly means? Well.. In my opinion, we can address as temporary all those files used only during a single Session. Such as:

  • files downloaded from browser – typically “to take a look or a single read”, they will never be opened again.
  • “text_files / notes / drafts / patches / etc..” – bound to be sent by email (and never used again).
  • “apt-get source” – do you use it? 🙂
  • many more … (pictures, samples, songs, backgrounds, code_branches, videos…)

If you use the standard $HOME/Downloads (or the Desktop, or Home or whatever_you_use) directory to locate all those files, you already know which kind of mess will be there in few days, unless you do not spend part of your time to delete those files no longer used. Looking for a solution to this I figured out that set /tmp directory (not really, but think about that) as my Download directory can be a good choice… It will be cleaned to each boot, so I can take no interest about files I download during a Session – and store only those I consider “important”, by moving to my “Downloads” (or “Documents”) directory. It can work, no? No. In fact that’s not all. I also love mount /tmp in Ram in order to speed up a bit the system… And place my downloads in /tmp can be dangerous for the system –  sometimes downloaded files can be bigger than we expect (try to think to a 20MB pdf). So, one of the best way (in my opinion) to have a clean “downloads” directory is create a local ~/tmp directory and use it as the default download directory for my Desktop and in the following lines I will show you how set it up.

Let’s start with mount /tmp in Ram, edit your /etc/fstab appending the lines below:

# RAM Disks
tmpfs /tmp tmpfs defaults 0 0

Next step, create a ~/tmp directory (or wherever you prefer) and set it as Downloads directory:

mkdir ~/tmp
xdg-user-dirs-update --set DOWNLOAD ~/tmp

Now create a script able to clean the directory to each login. I choose a file named ~/.initrc (you can use it to launch other applications, like conky). Use your preferred editor and insert the following lines:

#!/bin/bash
# Clean tmp dir:
find $HOME/tmp -mindepth 1 -delete &

Save the file and link it into yourStartup Applications” (search it through Unity), I use the following:

That’s all. My simple way to have a clean Home directory.