Tweaking JWM

Joe's page .
But see also Puppy and archwiki.

# JWM, install in Debian Sid, from repo, one file only.
Conf - one file only, copy /etc/jwm/systemjwmrc.conf to your home as ~/.jwmrc

# Tweak.
Jwm is definitely quite simple WM, but - surprisingly tweakable, at the same time.
For refresh - Jwm has nice 'restart' for you, almost only thing in menu that works out of the box. Yes,  menu building is manual. At the same time, Jwm seems quite lenient to syntax errors - just applying defaults, and not crashing (like Openbox).
All essential can be found on Joe's page. Start from this. Mostly, it's troublefree - read and apply. Mind, there are two distinctly separate parts for tweaking (with varying scope) - features and styles. Means some shuttling back and forth.

Some notes:
- Swallow lets you get some apps' (simple) output onto panel...
I inserted my narrow conky there, and it worked... errr.... It ate Jwms' clock (as conkys' positional command seems to overrule Jwms' efforts. AND!
CPU usage in idle went to 6-7%, which is scandalous. Seems that Jwm and swallowed conky are not best friends... So, I made panel shorter and planted my conky outside of it, to right bottom corner. Problem solved - usage dropped to normal 1-2%.
And that after previously startupping compton with:
compton --backend glx --vsync opengl-swc --paint-on-overlay --shadow-exclude "! name~=''" --config ~/.compton.conf
spacefm with '-d' and also feh for background.
Also, pleasant surprise was that my wallpaper-changer script worked under 'Desktop / Background /command'.
- Group: A lot of options here... but... Oh well, there are things like 'constrain', 'layer', 'nolist' - but see yourself (link one). For group classes, do xprop WM_CLASS and click then on window, and info will be in terminal.
- WindowStyle - border and title. Look also here.
Quite a lot is supported. Fonts etc can be regulated in separate cases, colors for fg and bg, the same for 'active / inactive' - good, I like playing with colors.
Tray items change active / inactive color-behaviour according to mouse-over - and that's because default FocusModel is 'sloppy', not 'click'.
- Keybinds - related to window, mostly, and as such, quite unexciting for me - mouse-oriented as I am.
- Mousebinds - nothing much of interest here.
- Menu - for unactive, there is no gradient. But, there is for active...
- Desktops. The usual... different is that a lot of them are there by default. This multitude can be culled by row (width) and column (height) numbers.

- Window start positions - maybe I missed it, but there doesn't seem to be that option. And that's a thing I would like to have.

Conclusion: Again - no, I am not going to convert, but I keep Jwm for futher playing and who knows... Taken as a panel Jwm is somehow more exciting than lxpanel. Made me feel that I can get more. Probably it's subjective - but also, Jwm feels to me graphically nicer and slicker than Fluxbox. It appears that quite a few of options are new with fresh Jwm v2.2. Keep up with the good work, Joe. And thanks, Puppy Slacko, for drawing my attention to Jwm.
A pleasant experience indeed.
Edit| I have to tone down my excitement: Did new netinstall Wheezy for my 4 year old son, and as I considered him a good test subject - installed Jwm.
Result: Jwm got half-transparent when compton came to play, and youtube flash crashed totally in every browser (strange that). So I swapped to Openbox - and everything was alright. I didn't bother to investigate deeply. Anyway - I will be wary next time. |edit


Salix upgrade 14.0 to 14.1

I haven't used my Salix some month... lately because "let's upgrade before...". Or, to put it differently - after Slackware-proper is installed with all custom adds, then there is really no reason to go for 'easy'. Because tuned Slack is easy, and one finds gslapt kinda... strange.
So much of philosophy.

Essential links for how-to-upgrade: salix and slackware.
How I did it, in my Openbox Salix, step by step:

1. New sources: swap 14.0 to 14.1 in /etc/slapt-get/slapt-getrc and slapt-srcrc
2. slapt-get -i xfce4-terminal
The name of the terminal changed, back to proper one. It's sensible to install now, and also change links in your menu.xml and rc.xml (and don't forget tint launcher).
3. ls /var/log/packages/ker*
Get the list of installed kernel packages.
4. slapt-get -i kernel-xxx
Swap out everything (needed part is like 'kernel-headers', and NO numbers). Here is the point to decide: IF writing kernel files over OR installing paralel (can be accomplished with 'installpkg precise-packagename'. I decided to overwrite because I already knew (from Slackware upgrade) that new kernel works in my machine.
5. /usr/share/mkinitrd/ -k 3.10.17
This gives you proper command for creating initrd, in my case it was:
mkinitrd -c -k 3.10.17 -f ext4 -r /dev/sdb2 -m mbcache:jbd2:ext4 -u -o /boot/initrd-generic-3.10.17.gz
Initrd name I changed, as I wanted it to be more informative.
6. update-grub or lilo -v
To get your boot-manager aware of kernel change.

7. Now I went to console, logged as root and did 'telinit 3', then:
slapt-get -i glibc
slapt-get -i slapt-get
slapt-get --upgrade
slapt-get -i udev
There was a PILE of warnings about symlinks and folders and whatnot... But for me, afterwards, everything came out OK.

8. If using proprietary driver (whitch you downloaded before):
NVIDIDA: sh --kernel-name='3.10.17'
Let it install and create xorg.conf too.


My desktop came up without any problems.
Then I started to check EVERY installed app:
- compton needed recompile (missing lib).
- clementine did not start, I reinstalled and then it wanted additional libary - chromaprint, I got it from sbo.
- qbittorrent not starting but upgrading to latest available version from Salix repo fixed it.

Everything else seems to work.
Unpleasant surprise for me was that 'custom' repo (my package folder) in slapt-getrc is not working - 'can't find file'. So I did all upgrading from there manually. Whitch deepens my feeling that I really don't need Salix when I have my 'tuned' Slackware.

Otherways... CPU-usage tends to be 3-4% idle - too much.
But all-in-all - very good outcome. Even a bit better, missing-library-wise than real Slack. Congrats, Salix team.
And we'll see if new problems appear or not. If yes - there will be 'edit' here.


Tuning fonts

Not an essential thing - but..., well, better picture looks better.
Now, I did most tweaking in Slackware, and Debian differs.
Mind, very much of fighting with fonts is try-and-test. No 100% recipes here.

'Fontconfig warning: '/etc/fonts/conf.d/50-user.conf", line 14: reading configurations from ~/.fonts.conf is deprecated.'
When starting some app from terminal, the previous message is not uncommon.
Essentially, it doesn't mean anything practical - for now. Simply, somewhere in future, fontconfig starts to search for things somewhere else. /etc/fonts/conf.d/50-user.conf specifies those 'future folders'. At least currently Slack doesn't have those folders. But whatever.

Here come some very useful links:
Console and more (Slackware)
Desktop and font substitution - both links are from Ubuntu, but it mostly is universalish... It's always a good idea to look into Archwiki.

# Console, and I am following the text of Slackware-link provided above:
Terminus font is good, do it. Console text gets ... much fuller-looking.
In netinstalled Debian, terminus is not installed by itself. But it is in repo.
I am not sure if Slacks' .bashrc  piece works in Debian... There are two other options: see here, or run following and make your choices:
dpkg-reconfigure console-setup

For checking what's your dpi: xdpyinfo | grep resolution
- I have gdm in Slack, so I added
0=/usr/bin/X11/X -dpi 96
to [server]-part of my /etc/gdm/custom.conf . Better (easier) to reboot for effect. And it worked.
As a comment - I had my Slackware console looking a bit ... chewed - textwise. It was exactly that dpi (somehow) was not proportional. The same (but worse) goes for Debian Sid.
- In Debian /etc/lightdm/lightdm.conf and lightdm-gtk-greeter.conf are the patients:
The first one - outcomment and add to the end
xserver-command=X -dpi 96
The second one - has to have this:

Adding more fonts (into separate folder): good, even super advice - do it like that in Slackware, it works. I haven't tried this in Debian(!).
Webcore-fonts and google-fonts are quite must - if nicer look is what you want.

# I am not vouching for various subpixel rendering stuff in this tutorial - I didn't try it yet. The same with 'Miscellaneous'. But - You try it it and advice me.

# Font substitutions. Following tutorial in Ubuntu forum I swapped Helvetica Neue to Lato (, its free). It worked for me, kinda (means, I am not very happy with this particular swap).
In Debian Sid you can't use ~/.fonts.conf, instead, the same stuff goes to /.config/font-master/local.conf
In Slack it can be in ~/.fonts.conf

# Fonts used on OB 'desktop': Two GUI-options are available, Obconf for menu and window titles, and Lxappearance for what is in those windows'.
After various combinations tried, I have settled with DejaVu , Droid and Arial (except terminal).
This, of course, is individual thing. Feel free to experiment.
It IS possible to get desktops' textwise appearance better.
The same with console - especially vanilla netinstalled Debian looks like shit in this department.

Second Conky for weather

I went even further with my blingish adventures... Somewhere - related to tweaking conky - I stumbled upon weather forecasts. The thing never interested me much - as I don't consider weather-forecast overly trustworthy activity, and also, I didn't feel need to complicate my Linux-wrestling with trifle things.
Well, it suddenly felt alright now.
Here it comes - very simple conky with very simple layout, and launched from Openbox root-menu.

Essential link. The same info can be found in Cruchbang forum. From here (or there) you can get scripts for automatic download of data and conkyrc-s for presenting it.
I didn't change the script (except the URL of weather-data page), but I changed conkyrc quite heavily. I didn't want pics and special fonts and stuff - I wanted it to be functional, period.

Currently it looks like that, but will be tuned a bit more. Screws are for fitting in with my slightly-steam-punkish theme.

No code comes here for conkyrc, but two very helpful links:

Essentially: go get script and conkyrc. Tune conkyrc. Almost done.
Almost, because maybe of interest is:

- getting weather-conky working and quitting according to need. I, for example, do not want it sillily hanging on desktop - temperatures doesn't change so fast that it should require permanent watch. 
And here comes code for that. Which is borrowed in very big extent from Ubuntu forum.
/bin/ - checks for weatherconkys' pidfile existence in folder where it's created. If it's already there, kills conky, if it's not there, starts conky and writes new pidfile.

# ----------
# Simple script to start/kill weather conky

# folder where script is and data will be
# pidfile name
if [ ! -e "$pidfile" ]
   PROG="conky -c /home/user/.conkyrc_acc_int"
   $PROG &
   echo $PID > "$pidfile"
   pidkill=`cat $pidfile`
   echo $pidkill
   kill -9 $pidkill
   rm $pidfile

exit 0

Why this pidfile stuff? Beacuse I already have one conky started from autostart, with nice minimal sys-info, and I don't want that one killed (with killall). And naturally I am too lazy for pgrep and manual kill -9.

I stuck the script into main OB menu, just before 'exit'. No mysteries here: simple 'sh' as the execute command.
And that's it. Click once - get weather, click second time - no weather.
It was mildly interesting thing to fiddle with. It's usefulness is still in doubt.

Tint2 launcher, screwed

... and Conky screwed too

So I played with wallpapering Openbox, one thing led to another and I decided to amuse myself with panel-decorating, bitmapwise.
Tint2 doesn't support adding image as a panel background and consequently - only option is to stick 'panel' onto wallpaper. Easiest to do it is with layered Gimp file - so you can shuffle your wallpapers under panel and then export them as paneled wallpapers.
Now, what I wanted to do, was very slightly steampunkish appearance. Nothing overwhelmingly fancy like brass pipes, cogwheels, rayguns etc. 'Classic' SPs enormously overstuffed spaces are not my cup of tea.
I am not going to explain my confs' parameters here. Tweaking is reasonably easy thing to do - if using material here (tint2), and here (conky), and here (conky).

It came out like that:
-- wallpaper and 'panel'-ribbon below tint and conky are one jpg.

-- Left side, width 71% - is Tint2. All on-top backgrounds and borders are done by tint and so, easily tunable. Launcher has 5 png-icons.
- Left screw in launcher opens Openbox menu (xdotool key super+q
as exec in obmenu.desktop). Desktop file has to be made. Keybind itself has to be also defined, of course, in rc.xml (for 'root-menu', and here the same key is 'W-q'). Xdotool might not be installed by default (it is in Crunchbang and Vsido). In Slackware it is not installed, but can be made from SBO .
- Right screw is 'show/hide desktop', also through xdotool, key 'super+d'('W-d' in rc.xml).
As both those actions are quite pointless (why not to use keybinds stright...), then other tasks can be put here - exit script, weather conky, or whatever.
When making screws or other tiny icons - make png-s bigger with transparent padding, it gives bigger clickable area. Those here are 16px visible, but 24px with transparency.
Whole tint-tuning is simple playing around with numbers and colors (gcolor2 helps with choosing colors). Though, this play-around takes considerable amount of time...
... Of easy tunability - I haven't yet found error-proof way to restart tint (to see changes). For example:
'killall tint2' and start = corrupted taskbar/tasks (double?)
'kill -9 tint2' and start = no systray items
'killall -SIGUSR1 tint2' and start = corrupted systray (double?)
So, after a while I end up doing logout/login, and then decide that's enough of tint ...

-- Right side, 477px wide - Conky. Conky supports background images. So this dark-brown background-with-screws png-file sits in Conky.
I have to say - it took me some time to get Conkys' conf right. Partly because Conky (also) is not loading everything anew when conf is saved and Conky refreshes. Took me some time to realize that... Better to go for killall-method.
Key thing here is to comment those
#own_window_argb_visual yes
#own_window_argb_value 0
#own_window_colour 534821

and leave the next one working and 'yes'
own_window_transparent yes
Beacuse 'argb' things make your image transparent too...

Tuning conky is a bit trickier than tuning tint2. When pressed to this narrow form, quite many numbers have to be expressly '0', like border_inner_margin 0 for example. And see CPU-usage - it has to have spare space to expand. When numbers get into tens, you don't want your whole conky jumping bigger and hitting volumeicon or whatever.
Oh, and those screws here are just decorations.
What complicated things for me was - I didn't want to add panel to every wallpaper. So it turned to balancing act between tint on relatively light panel and tint on relatively dark wallpapers. It boiled down to playing with colors, and using upper layer (tint, conky) backgrounds without very much of transaparency.

And conclusion: oldish-90s-looking panel can be done with tint and conky. Also, I really like the idea of using screws as launchers. :)
Oh, and - do really use those tint and conky links, and info there - as all possible commands are NOT included in default conf files.
| NB! As it was my first time to include pics, I was quite annoyed when I got persistent error with inserting pics (impossible to insert)... Turned out that Googles' spymasters want popups and all cookies enabled... So I installed separate browser, all security-panties down, just for 'insert pic', and nothing else. But cookies will be deleted afterwards anyway. Quite, quite irritating. |