Associare tasti ai bottoni del mouse

Per associare dei tasti ai bottoni del mouse installare i seguenti due pacchetti:

aptitude install xbindkeys xautomation

nell’interfaccia grafica Xorg, il primo cattura un evento mentre il secondo può generare un input.
Creare il file .xbindkeysrc e compilarlo nel seguente modo:

# Button 8 > Page_Down
"xte 'key Page_Down'"
  b:8

# Button 9 > Page_Up
"xte 'key Page_Up'"
  b:9

Con b:9 si intende il bottone 9 del mouse (per trovare il codice usare xev)
Con xte si passa l’input di pressione del tasto ‘Page_Up’
Infine avviare

xbindkeys

se funziona porlo in avvio automatico.
Se non funziona usare

killall xbindkeys

e riprovare.

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.