Creare menu per comandi ricorrenti

Un piccolo programma utile a creare menu è 9menu, questo può essere accoppiato ad un tool di inserimento come xdotool per incollare un comando scelto da una tendina.

Installare il tutto con:

aptitude install 9menu xdotools

Creare uno script come il seguente:

#!/bin/bash
9menu -teleport -warp -popup -bg black -fg white -font "-*-dejavu sans mono-*-*-*-*-*-722-*-*-*-*-*-*" -file 9menu.list

Quindi creare un file con i comandi:

 Execute ls :ls
 Write ls   :xdotool type 'ls'

Nel primo caso il comando è diretto e viene eseguito nel caso in cui lo script è invocato via shell, ma se vogliamo usare uno shortcut il focus non sarà nella shell e quindi il comando non verrà eseguito.
Nel secondo caso tramite il comando xdotool scriviamo solamente il comando dove è presente il focus, quindi nella shell. Sarà poi semplicemente da premere invio per eseguirlo.

Nota a margine, per la scelta dei font esiste un tool molto pratico:

xfontsel -print

Convertire FLV in MP4

Un plugin utile su Firefox per scaricare il file .flv è Ant Video Downloader.

Una volta ottenuto il file installare:

aptitude install libav-tools

e convertire con:

avconv -i input.flv -codec copy output.mp4

Nel caso in cui vogliamo cambiare tipo di codec o formato è possibile usare la seguente sintassi:

avconv -i input.mp4 -c:v mpeg4 -c:a mp3 output.avi

Ed infine se vogliamo impostare quasi tutto possiamo usare cose molto complesse come la seguente:

avconv -i input.mp4 -vtag XVID -c:v libxvid -q:v 0 -b:v 15M -c:a mp3 -q:a 0 -b:a 196k -vf "scale=720:-2" output.avi

Vim addons

Una versione light di autocomplete per vim utile anche nei server è VimCompletesMe, per installarlo:

sudo -i
cd /usr/share/vim/vim74/plugin
wget https://raw.githubusercontent.com/ajh17/VimCompletesMe/master/plugin/VimCompletesMe.vim

Per usarlo premere tab per completare la parola
CTRL-X + CTRL-N per il dizionario locale
CTRL-X + CTRL-F per i nomi dei files.

Un tag highlight molto comodo è MatchTag, per installarlo:

sudo -i
cd /usr/share/vim/vim74/ftplugin
wget https://raw.githubusercontent.com/gregsexton/MatchTag/master/ftplugin/html.vim

quindi editare il file /usr/share/vim/vim74/ftplugin/xml.vim ed aggiungere nella prima riga:

runtime! ftplugin/html.vim

infine decommentare la seguente opzione in /etc/vim/vimrc

if has("autocmd")
  filetype plugin indent on
endif

Affiancare finestre

Se si necessita di affiancare due finestre presenti nello stesso workspace, è possibile farlo con questo script:

#!/bin/bash

width=$(xwininfo -root | awk '$1=="Width:" {print $2}')
(( xwidth=$width/2 ))
height=$(xwininfo -root | awk '$1=="Height:" {print $2}')
(( xheight=$height-126 ))

windows=$(wmctrl -l | grep " "$(wmctrl -d | awk '$2=="*" {print $1}') | awk '{print $1}' | tr '\n' ' ')
win1=$(echo $windows | awk '{print$1}')
win2=$(echo $windows | awk '{print$2}')

if [ $(wmctrl -lG | grep $win1 | awk '{print $5}') -eq $width ]
then
        wmctrl -ir $win1 -b remove,maximized_vert,maximized_horz
        wmctrl -ir $win1 -e 0,0,0,$xwidth,$xheight
        wmctrl -ir $win2 -b remove,maximized_vert,maximized_horz
        wmctrl -ir $win2 -e 0,$xwidth,0,$xwidth,$xheight
else
        wmctrl -ir $win1 -b add,maximized_vert,maximized_horz
        wmctrl -ir $win1 -o 0,0
        wmctrl -ir $win2 -b add,maximized_vert,maximized_horz
        wmctrl -ir $win2 -o 0,0
fi

Al primo avvio affianca le prime due finestre, al secondo avvio ne ripristina il maximize.

Notifica Caps Lock

Per notificare lo stato del Caps Lock tramite notify, associare al tasto da tastiera in Xfce, il seguente script:

#!/bin/bash
sleep 0.2
notify-send -t 1000 $(xset -q | awk '$2=="Caps" {print $2":"$4}' | tr '[:lower:]' '[:upper:]')