## After using three month almost only Slackware with my slightly-Steampunk theme, I got bored and recalled idea I had - to make script to start X+OB (without display manager) with visual theme I like at that moment, with choice of others.
So I made it happen. In most primitive bash (me - bash-n00b).
# There are one Chooser and four Swapper scripts (as I have currently four themes):
-- 1. Created conf-number file, like:
if [ ! -f obtheme/theme ]; then echo "1" > 'obtheme/theme' ; fi
Get the number:
theme=$(grep -o '[0-9]*' obtheme/theme)
Every time theme is chosen, new number is also written into theme-file.
Those above are for marking previously chosen theme ('if then echo') - and also to let wallpaper-randomizer script to know which one is current.
Then I set some variables;
did 'while' and 'if' between choices, 'read' those 'if'-s, and 'break'-ed with correct answer;
And final 'if-elif' then does
echo `sh ob-thx.sh`
(backticks!) with chosen theme-swapper.
-- 2. Swappers
I Collected everything possible to ~/obtheme/xx folders. Like tint-stuff and wallpapers and conf files to be swapped.
For various reasons - there are either symlinks or files overwritten (respectively 'ln -sf' and 'cp').
- Two gtk confs (.gtkrc-2.0 and .config/gtk-3.0/settings.ini = gtk-theme swap);
- my wallpaper randomizer script for that theme (symlink). But - randomizer can also be modified to pick folder according to already existing theme-file number, and then there is no need to swap it | Edit - Done, see the end of the post |;
- .fehbg in ~/ (to pick up another wallpaper-folder);
- rc.xml (OB-theme swap) and autostart in ./config/openbox. Those are also symlinks which point to theme-specific files. Different tint2 and conky confs are opened from swapped auostart;
- and lastly, 'startx'. Or for debugging - as Slackware without display-manager doesn't want to log X-errors -
So, I now start my X either with alias 'sx' - no change, stright to X;
with 'sxz' - which opens up dialog of theme-change;
or, I can pass that and use aliases for swappers: sx1, sx2... .
For anyone fluent with bash - to make such scripts is totally no issue. What takes time is preparing themes - from various conf changes to actual pic-making or theme-tweaking.
But I have to say - it's most satisfactory to see my whole "desktop" instantly and totally changed.
Addon: Here is a simple script for swapping wallpapers inside the current theme wp-folder. Also, keyboard W+1 is mapped in rc.xml as 'swap desktop to first one and run randwp1.sh'.
#!/bin/bash ## very simple random wallpaper picker, through feh or nitrogen ## -------------------------- sp1="/home/user/obtheme/sp/wp" sf2="/home/user/obtheme/sf/wp" fan3="/home/user/obtheme/fan/wp" nat4="/home/user/obtheme/nat/wp" # theme number variable from theme file theme=$(grep -o '[0-9]*' /home/user/obtheme/theme) echo $theme # directory containing images DIR=$(if [ $theme -eq 1 ] ; then echo "$sp1" ; elif [ $theme -eq 2 ] ; then echo "$sf2" ; elif [ $theme -eq 3 ] ; then echo "$fan3" ; elif [ $theme -eq 4 ] ; then echo "$nat4" ; fi) echo "$DIR" # select a random jpg from the directory PIC=$(ls $DIR/*.jpg | shuf -n1) echo "$PIC" # use nitrogen to set wallpaper # nitrogen --set-scaled $PIC # use feh feh --bg-scale $PIC exit