www.mamboteam.com
aptitude : me and my debian - a work in progress  
Startsida arrow bash arrow Egen bakgrund på varje arbetsyta
2008-05-14
 
 
Huvudmeny
Startsida
debian
bash
Forum
Användarmeny
tidigare material
nyheter
grafik
Artikeltips
BadVista
Egen bakgrund på varje arbetsyta  E-post

På min dator har jag från och med idag olika bakgrundsbild på mina fyra workspaces. Jag kör Gnome men det är inte någon python-applikation som sköter finessen utan systemkommandon anropade från bash. Så här går det till :

Att växla bakgrundsbild från prompten är inte svårare än att anropa gconftool : Ex: gconftool-2 -t string -s /desktop/gnome/background/picture_filename "wallpaper.jpg"

Att växla arbetsyta (workspace) från prompten var klurigare. Det går att se vilken yta som används genom att anropa xprop, eller närmare bestämt 'exprop -root'. Där anges arbetsytan efter _NET_CURRENT_DESKTOP(CARDINAL). Så att hämta siffran kräver inte mer än ett : xprop -root | grep '_NET_CURRENT_DESKTOP(CARDINAL)' | cut -d= -f2

Men att byta arbetsyta från prompten var marigare. Till slut installerade jag wmctrl - installeras med kommandot

sudo aptitude install wmctrl
Det är ett litet program som kan interagera med fönsterhanteraren. Det har en del små funktioner som jag nog kommer att ha nytta av senare. Nu är bara funktionen att växla arbetsyta intressant. Såhär byter man till arbetsyta 1 :
wmctrl -s 0
. Den första arbetsytan heter alltså 0, den andra 1 osv. Har man programmerat något så är det inget man lyfter på ögonbrynen åt.

Så! Byta bakgrund är klart; få fram aktuell arbetsyta är klart; växla arbetsyta är klart. Det är dags att börja koda. Jag skapar filen swapper som jag lägger i min hemkatalogs bin-katalog (/home(marwal/bin).

 
#!/bin/bash
 
current_workspace=$(xprop -root | \
 grep '_NET_CURRENT_DESKTOP.CARDINAL.' | \
 cut -d= -f2)
 
# Ange den katalog där bakgrunds-
#  bilderna finns här
wallpaperdir=$HOME
 
# Ange filnamnet på bakgrunds-
#  bilderna här
wallpaper[0]=debian_wallpaper.jpg
wallpaper[1]=ubuntu_wallpaper.jpg
wallpaper[2]=drawing.jpg
wallpaper[3]=drawing-1.jpg
 
if [ "$1" = "-b" ]; then
 let "current_workspace=$current_workspace-1"; fi
if [ "$1" = "-f" ]; then
 let "current_workspace=$current_workspace+1"; fi
if [ $current_workspace = -1 ];
 then current_workspace=3; fi
if [ $current_workspace = 4 ];
 then current_workspace=0; fi
 
gconftool-2 -t string -s /desktop/gnome/background/picture_filename \
 "$wallpaperdir/${wallpaper[$current_workspace]}"
wmctrl -s $current_workspace

Så sparas filen och görs körbar med kommandot

chmod u+x swapper
.

Men att en körbar fil som ändrar bakgrund och växlar arbetsyta fyller ju ingen funktion om den inte är kopplad till snabbtangenter. Och i Gnome går det väl inte att ställa in egna snabbkommandon? Jo, tänk för att det gör det!

Kör kommandot

gconf-editor
och bläddra fram apps->metacity->global_keybindings. Dubbelklicka på 'disabled' bredvid run_command_1 och ange värdet <Ctrl><Alt>v Ange sedan värdet <Ctrl><Alt>z bredvid run_command_10.

Alldeles under 'global_keybindings' ligger 'keybinding_commands'. Ange sökvägen till swapper med växeln -b för nyckeln command_1 och likadant fast med växeln -f för nyckeln command_10. I mitt fall blev det

/home/marwal/bin/swapper -b
respektive
/home/marwal/bin/swapper -f
.

Well, svårare än så var det inte. Nu går det att växla arbetsyta med CTRL+ALT+v och CTRL+ALT+z och varje arbetsyta har en egen bakgrundsbild.

P.S. anledningen till att jag valde 'v' och 'z' är att jag har DVORAK-layout på mitt tangentbord. Det kanske inte alla har och väljer då lämpligare tangenter. D.S.

Kommentarer (1)Add Comment
Devil's Pie kanske fungerar
skriven av A Jackson, november 26, 2007

Skriv kommentar

busy
 
< Föregående   Nästa >
 
Top! Top!