Productivity in Window Maker
___ _ _ _ _ _
| _ \ _ _ ___ __| | _ _ __ | |_ (_) __ __ (_) | |_ _ _
| _/ | '_| / _ \ / _` | | || | / _| | _| | | \ V / | | | _| | || |
|_| |_| \___/ \__,_| \_,_| \__| \__| |_| \_/ |_| \__| \_, |
|__/
_
(_) _ _
| | | ' \
|_| |_||_|
__ __ _ _
\ \ / / (_) _ _ __| | ___ __ __ __
\ \/\/ / | | | ' \ / _` | / _ \ \ V V /
\_/\_/ |_| |_||_| \__,_| \___/ \_/\_/
__ __ _
| \/ | __ _ | |__ ___ _ _
| |\/| | / _` | | / / / -_) | '_|
|_| |_| \__,_| |_\_\ \___| |_|
╔─*──*──*──*──*──*──*──*──*──*──*──*──*──*──*──*─╗
║1 ........................................ 1║
║2* ........................................ *2║
║3 ........................................ 3║
║1 ...........Posted: 2024-05-17........... 1║
║2* ....Tags: windowmaker debian linux ..... *2║
║3 ........................................ 3║
║1 ........................................ 1║
╚────────────────────────────────────────────────╝
I use the old school, lightweight Window Maker[1] window manager[2] on Debian
Unstable.
Gallery: /home/tilde/Projects/gopherhole_bore/assets/posts/window-maker/
Since Window Maker is only a "window manager" and not a full environment it may
feel backwards to use it in 2024, there's a lot of things you may miss, a lot of
work to do from a fresh install.
I'm biased toward selecting apps that are more Window Maker-like in some way or
just fit the feel.
You may also want to take a look at Window Maker Live[3]. Possibly a good way to
try (or even install) a Window-Maker-centric Debian setup.
(IMG) My Window Maker setup
## Reasons you may want to use Window Maker
* Looks very cool
* Lots of handy (and just plain cool) dockapps (think built-in system info
tools)
## Things I want to add to this article
- [ ] key ring manager
- [ ] custom obj for wmcube (maybe write a script)
- [ ] my amor buddy--could share.
- [ ] deja-dup
- [ ] cursor theme
- [ ] icon theme
- [ ] power daemon management (efficient/battery save vs performance)
- [ ] touchpad
- [ ] i don't like middle click paste.
- [ ] xsreensaver lock broken? hotkey... startup problem?
- [ ] battery performance change (like battery savery mode)
- [ ] adjust brightness with gui
- [ ] tap touchpad to click
## Window Maker-specific and Appearance
you should really read the manual...
### Preset themes
This is amazing: https://git.x1b.dev/waterjones/WindowMaker-Themes
(IMG) Nokia theme from waterjones
Test
### handy hotkeys
f11: like alt tab, but a nice list
### How does this all work?
Some general tips:
try right clicking icons that pop up and goign to attributes. look through all
the options. you can't just drag *anything* to the dockapp or clip. You can even
set things to minimize to their icon in the dock.
Practical Workflow Tip
Use the Dock for things you want to launch.
Use the Clip to keep track of things you already have open and minimized.
If you want something to behave like a taskbar entry, keep its mini-icon in the
Clip with Keep Icon.
### The clip
The clip icon allows you to manage workspaces (page through them, name them).
You can drag the clip itself to move a bunch of icons with it. Specifically, you
can pin apps to the clip permanently, just like the dock--then the app will
always live there for that workspace. The clip is workspace-aware. Use it as a
lightweight way to keep different sets of apps organized between worskpaces.
When you drag an app to the clip it will also auto-start minimized in that
workspace. Beware, this isn't like, just dragging minimized things to it, but
like things youc an pin to the dock you can also pin to the clip.
### GNUStep .appsm openstep de
You can install something like a DE with `sudo apt install gnustep`, which is
kind of just a meta for all the `*.app` windowmaker apps that are kinda nifty,
but also sometimes too severely dated for me to find them useful. I'm not sure
how useful you'll find these apps day-to-day, but they're fun to look at.
Try `sudo apt install textedit.app` and run with `openapp TextEdit`.
Also try `apt search "\.app"`
These apps will feel right at home! Note when you use `openapp` you'll want to
use `PascalCase`.
Some things I noticed:
* textedit.app -- rtf editor + more? seems kinda cool
* fontmanager.app
* gnumail.app seemed interesting, but I have to do extra work to get it to play
nice with proton mail bridge i think
* fortunate.app -- simple fortunes. cute toy.
* gmastermind.app -- classic board game that I think inspired the fallout
hacking game. dennis ritchi or the like came up with an algo for this i think?
* gorm.app: visual interface builder for gnustep!
* grr.app: RSS reader! It's honestly kind of nice! I wish it had support for
custom commands to fetch RSS like liferea (?) does (so I can grab gopher URI
feeds)
* gshisen.app -- some kind of mahjong tile game?
* gworkspace: i have no idea what this is but seems awesome. might explore
later.
* gmpdcon.app -- perfect since I have an mpd server! Even lets you give ratings!
kind of strange though, i haven't gotten used to it.
* pikopixel.app -- pixel art editor!
* preview.app -- maybe the best choice for previewing an image in WM!
* talksoup.app -- irc client for gnustep
* terminal.app -- terminal emulator!
* viewpdf.app
* Affiche.app -- sticky note app that I actually really like! has a bunch of
nice features like saving importing/exporting. reminds me also of the dock app
that does something similar, but affiche.app i could see using frequently.
* cynthiune.app -- A really neat music player. I think it has troubles adding my
entire library at once, though.```
2025-09-21 12:20:01.408 Cynthiune[439584:439584] MP3.m: no handle...
2025-09-21 12:20:01.408 Cynthiune[439584:439584] MP3.m: no handle...
2025-09-21 12:20:01.408 Cynthiune[439584:439584] Failed to create pipe ...
Error Domain=NSPOSIXErrorDomain Code=24 "Too many open files"
2025-09-21 12:20:01.563 Cynthiune[439584:439584] NSTask.m:593 Assertion
failed
in NSConcreteUnixTask(instance), method setStandardOutput:.
NSInvalidArgumentException
[1] 439584 segmentation fault openapp Cynthiune
```
### Dock apps
Dock apps for Window Maker. Dock apps are such a cool feature of Window Maker.
Check out dockapps.net[4]!
You can `sudo apt-get install wm..` for these dockapps I mention below. The
dockapps I've tried seem to all have good man pages, I think.
#### What I'm using
* `wmclock`: I like this because it shows the time and the date as a tear-away
date pad graphic.
* `wmbattery` and `wmacpi`: two different battery-relaed dockapps! A special
note
for launch command for `wmbattery`:
* `wmbattery` lets you execute a command when the battery is below critical.
Here's a command that will send a notification that the battery is critically
low):
```
wmbattery -c 10 -l 30 -a /home/tilde/Music/sfx/sosumi.au -x "/usr/bin/espeak
-v en-us+whisper 'critically low battery' -a 200 -s 130 &&
/usr/bin/notify-send -w -u critical -i /usr/share/WindowMaker/Icons/timer.tiff
'Low Battery' 'Battery at %percent%%, with %minutes% minutes left.'"
```
Note the full/abs/real paths. The audio file is an `.au`, I feel it's kind of
hard to find `.au` files these days. Also this command seems to do something
strange to my audio, so maybe don't use `-a`.
* `wmbubble`, `wmcube`, `wmforkplop`, `wmmon`, `wmtop`: fun and/or informative
dockapps for system information, a few of which are veyr visually
interesting/fun to me.
* `wmbubble`: bubbles and duck--animations get more intense/fills up as the
system resources get more utilized.
* `wmcliphist`: keeps (some?) clipboard history
* `wmsystemtray`: I feel this one is sort of crucial. A system tray for app
icons
like `blueman-applet`, `nm-applet`, `redshift-gtk`, or the like.
* I have some notes about how it can't be ran along side other system trays,
or
something?
* `wmmixer`: I really like the way it looks when I turn the volume up and down
with this app and the fact that I can twist a graphical knob to do so as well.
* `wmweather+`: gives me weather data, but it's sort of complicated to use. I
think you need to find a "metar- station", and define the long+lat, with a
command like this: `wmweather+ -metar-station SOMEID -location "0.0N 0.0W"`.
It
seems to have some neat features if your metar station supports it? You may
want
to also get radar image from National Weather Service[5]. Please `man
wmweather+`.
* I haven't figured out getting actual forecast working outside of current
weather
* `wmweather+ -s SOMEMETARHERE -location "0.0N 0.0W" -radar-uri
https://radar.weather.gov/ridge/standard/SOMESTATION_loop.gif -radar-crop
POSXxPOSY+WIDTH+HEIGHT -radar-cross 244x194 -animate`
* `wmforecast` simple forecast/temperature app. More iconified and simple than
`wmweather+`. Displays handy info in a hover/tooltip, including forecast. This
may be the easiest to work with and is perhaps the easiest to work with.
##### wmweather+
This weather dockapp rules. You even get a radar GIF and different weather
views. The config can be a little confusing though. Here's what I have. I have
it launch with `wmweather+ -c /home/tilde/.wmweather+/config` and then in that
config:
```
# METAR station
-station KSFO
# Coordinates (Mission, SF)
-location 37.7599N 122.4148W
# Bay Area radar loop (KMUX)
-radar-uri https://radar.weather.gov/ridge/standard/KMUX_loop.gif
# Crop & animate with crosshair
-radar-crop 244x134+52+40
-radar-cross 244x134 animate
```
##### wmbiff
wmbiff needs a config i had an example at
`/usr/share/doc/wmbiff/examples/sample.wmbiffrc`
```
cp /usr/share/doc/wmbiff/examples/sample.wmbiffrc ~/.wmbiffrc
```
supports pop3 and imap i think i was able to configure this to work with
Protonmail Bridge pretty easily.
```
label.4=IMAP4
path.4=imap:me@pm.me:password@127.0.0.1:1143
interval.4=300 # 5 minutes
action.4=claws-mail
```
I also set this to notify me:
```
globalnotify=aplay /home/tilde/Music/sfx/youvegotmail.wav
```
I don't reall like how this app looks, but its features are great!
#### Recommendations
* `wmnut`: Keep track of a Network UPS on the network via NUT
* `wmitime`: I feel it's a nice, but confusing clock display. I think it
supports
Swatch Internet Time[6]
* `wmfire`: monitor cpu, memory, network, or file with a fiery animation. I
think
this is cool, but I think there's maybe a bug where I can't drag it into my
dock.
#### Honorable mentions
These may be handy or neat:
* `wmoonclock`: shows phase of the moon! can click to view other info. how to i
configure this?
* `wmxres`: set the resolution/change between xorg modes!
* `wmressel`: I think this is basically the same as `wmxres`
* `wmsun`: displays current day's sun rise and sun set times.
* `wmshutdown`: button for shutting down
* `wmstickynotes`: a really great sticky notes dockapp. You click the pad and a
sticky note pops up you can place anywhere on the screen.
* `wmpinboard`: notes you can place (and maybe draw in) and have pinned on a
little corkboard graphic
* `wmpuzzle`: a sliding puzzle game
* `wmclockmon`: lcd clock that seems to work well, I just don't like the look.
Some more:
* `wmsysmon`: monitors CPU usage, memory, swap, uptime, and interrupts, but I'm
not very fond of it.
* `wmgtemp`: system temp dockapp
* `wmtemp`: system temp app with lcd screen
* `wmcore`: graph-like display of the usage of each core
* `wmmon`: monitors realtime CPU load as well as average system load (graph I
think)
* `wmcalc`: a little calculator
* `wmfrog`: I think it's a kind of silly-looking weather app. Launch with
something like `wmfrog -s METARSTATIONID`.
* `wmxmms2`: "A dockable XMMS2 client." I don't use xmms2. Seems pretty nice.
* `wmtv`: I find this interesting and wish I could see it in action! maybe one
day. video4linux TV player.
#### I didn't like/didn't work for me
* `wmbutton`: a grid of buttons which launch apps or whatever
* `wmail`: email/inbox docklet which wants qmail's Maildir format or mbox.
* `wmfsm`: disk space avaiable
* `wmweather`: another weather app. i find it hard to read and I don't like the
look.
* `wmrack`: crashes for me. "CD Player and Mixer dock applet."
* `wmwave`: "statistical information for wireless ethernet."
* `wmdocker`: I had a note about this working funny. I think it's probably
better to just use `wmsystemtray` instead.
* `wmcpuload`: i don't like how it's displayed
* `wmcpu`: I had a note about it being hard to read, basically.
#### Not relevant to me, or just other ones I tried
In this section the DockApps just weren't relevant to me, I didn't care to put
much time into using them, or they're just here...
* `wmifs`: I think it's an OK bandwidth usage indicator. I dislike that it
didn't seem to display the names of the interfaces.
* `wmmon`: works but its not pretty enough. other apps do same but better.
* `wmcdplay`: I don't have a CD player on my laptop!
* `wmget`: maybe a download manager? seems kind of annoying to use.
* `wmdiskmon`: I get some kind of error. LCD-display-style disk usage monitor?
* `wmhdplop`: "monitor hard-drive (or partition) activity."
* `wmnet`: I have a note "broke or too hard configure"
* `wmdrawer` needs config file. didn't really try. maybe i'm wrong, but I'm
prety happy with what I think is the built-in drawer thing in Window Maker.
adding drawers is cool and you can have it autocollect which is super handy.
#### custom wmcube object
You can actually use a custom object for the wmcube, but I think it needs a
weird custom format. Maybe I'll write a conversion script.
#### Dockapp Archive
Archive.org archvie of dockapps.windowmaker.org[7]
#### Making a dock app
There's a ruby SDK, but I wonder if I could bind haskell to the c++ myself?
that'd be a great project.
ruby-dockapp[8]: "Ruby-DockApp is a ruby extention library for making dockapps."
#### Have a favorite dockapp I haven't mentioned?
Please email me!
### Window doesn't actually focus on click?
It took me a while to realize, because of my track pad settings, that I would
think I'm left clicking to swith focus to another window, and it wouldn't bring
it to the front yet it would focus it. I initially thought it was a bug. Turns
out I was middle clicking the window instead of left clicking it. Interesting.
### Application Menu
edit `~/GNUstep/Defaults/WMRootMenu`
```
(
Debian,
(
Applications,
OPEN_PLMENU,
"|| wmmenugen -parser:xdg /usr/share/applications/"
),
(Run..., EXEC, "%A(Run,Type command to run)"),
(
"Window Maker",
("Info Panel ...", INFO_PANEL),
("Legal Panel ...", LEGAL_PANEL),
(Preferences, EXEC, WPrefs),
("Refresh screen", REFRESH),
(Restart, RESTART)
),
(
WorkSpace,
(Appearance, OPEN_MENU, appearance.menu),
("Arrange Icons", ARRANGE_ICONS),
("Clear Session", CLEAR_SESSION),
("Hide Others", HIDE_OTHERS),
("Save Session", SAVE_SESSION),
("Show All", SHOW_ALL),
(Workspaces, WORKSPACE_MENU)
),
(Exit, EXIT),
("Exit session", SHUTDOWN)
)
```
Just edit the rest through the app editor thing.
### Add things to startup
I add things I want to autostart to the Window Maker autostart script (followed
by `&`, like below):
```
➜ ~ cat ~/GNUstep/Library/Window Maker/autostart
#!/bin/sh
blueman-applet &
amor &
xscreensaver --no-splash &
xeyes &
xpenguins -a -b -t "Big Penguins" &
oneko &
redshift-gtk -m randr -l 37.8044:122.2712 &
deja-dup &
nm-applet &
```
You can actually be more sophisticated than this, because annoyingly, if you
restart your session or something, everything will get launched AGAIN even if
it's already running!
So try something like this:
```
#!/bin/sh
# runonce CMD [args...]
# Starts CMD only if no process with the same basename is running.
runonce() {
cmd="$1"; shift
name=$(basename "$cmd")
pgrep -x "$name" >/dev/null 2>&1 || "$cmd" "$@" &
}
# If you want a fresh xsettingsd each login, keep pkill; otherwise just `runonce xsettingsd`
pkill -x xsettingsd 2>/dev/null
runonce xsettingsd
runonce blueman-applet
runonce amor
runonce xscreensaver --no-splash
runonce xeyes
# runonce virt-manager
runonce protonmail-bridge
# For scripts, the process name is the shell (e.g., sh), so use a lock to avoid duplicates
flock -n /tmp/deadline.lock /home/tilde/scripts/deadline.sh &
runonce skippy-xd --start-daemon
runonce xpenguins -a -b -t "Big Penguins"
# runonce oneko
runonce redshift-gtk -m randr -l 37.8044:-122.2712
runonce nm-applet
runonce deja-dup
runonce ibus-daemon -drx
# One-shot tweak (not a daemon; don’t background)
xset m 20/10 4
```
It's worth mentioning you can just SAVE the wmaker sesssion and load it on
startup (can be done automatically). But for some reason I prefer this method.
### App icons
I wanted to change the Thunar icon for my launcher (or whatever it's called) so
I did this and was able to select it through something like *settings > icon
image*:
```
cp /usr/share/icons/hicolor/48x48/apps/org.xfce.thunar.png ~/GNUstep/Library/Icons/thunar.png
```
### GTK theme switch & theme
Some apps use GTK for their GUI.
For appearance consistency you may want to install a GTK theme which compliments
Window Maker and some tool for managing the GTK theme you're using.
I like to use `lxappearance` to manage my GTK theme (I used `sudo apt-get
install lxappearance`).
I installed and use the redmond97 GTK theme[9], specifically the *redmond cde*
theme, to match the overal purplish thing I have going on. I think it matches
the *SteelBlueSilk* Window Maker theme.
For GTK4 there's another project that tries to accomplish this but I just lazily
used some GTK4 theme called Windows-95 and edited
`~/.config/gtk-4.0/settings.ini` and `gtk-theme-name=Windows-95` then logged in
and out.
Bonus: https://github.com/mgsander/wmstep/tree/master/WMStep: something I found
but I didn't get working.
I went ahead and disabled the GTK window decoration hints or the like in the
advanced section of WPrefs or something. I think this maybe makes things look
more consistent.
#### Icon theme
There's actually a GNUstep icon theme for GTK I believe:
https://www.gnome-look.org/p/1239539
Something like this: `tar -xzf GNUstep.tar.gz -C ~/.local/share/icons`
Then you can actually use `lxappearance` to change the icon theme, which this
app is generally pretty useful for tweaking GTK theme stuff, more-or-less.
I went down a weird path where thunar wasn't picking up on the icon theme and I
found out I need `sudo apt install xsettingsd`, then create ~/.xsettingsd:
```
Gtk/IconThemeName "GNUstep"
Gtk/ThemeName "Redmond97 CDE"
Gtk/FontName "Noto Sans 10"
Net/IconThemeName "GNUstep"
```
and make sure xsettingsd autostarts with gnustep by adding it to
~/GNUstep/Library/WindowMaker/autostart and add:
```
killall -q xsettingsd
xsettingsd &
```
or the like.
You may also wanna try the Chicago95 theme.
```
git clone https://github.com/grassmunk/Chicago95.git
cd Chicago95
./installer.py
```
You get cursors, sounds, fonts... i actually updated my ~/.xsettingsd to look
like this:
```
#Gtk/IconThemeName "Chicago95"
Gtk/ThemeName "Redmond97 CDE"
#Gtk/FontName "Noto Sans 10"
#Net/IconThemeName "GNUstep"
# Icon Theme
Gtk/IconThemeName "Chicago95"
# Cursor Theme (The correct name for the large, animated version)
Gtk/CursorThemeName "Chicago95_Animated_Hourglass_Cursors_HiDPI"
# Font
Gtk/FontName "Plus! 8"
# Compatibility settings
Net/IconThemeName "Chicago95"
Net/ThemeName "Redmond97 CDE"
```
I feel like Chicago95 is fine until I find something that more suits my late 90s
linux vibes.
I actually installed my own cursors, you can check this place out for more:
* https://www.rw-designer.com/cursor-library/set-40
Although the cursor I'm using is Golden-XCursors-3D-0.8 from Gnome-Look[10] and
setting this in my `.xsettingsd`:
```
Gtk/CursorThemeName "Gamma.Gold"
Gtk/CursorThemeSize 48
```
### Adding hotkeys
You can add hotkeys by editing the Window Maker menu through WPrefs, under
*Applications Menu Definition*. I like to create a special *submenu* that holds
all the *run program* entries which have hotkeys associated to them.
For example, I set lock (`xscreensaver-command -lock`) to my super key + l.
I think sometimes (?) you may need to restart the session for hotkeys to come
into effect.
#### Control Screen Brightness
Use `brightnessctl set 10%-` and `brightnessctl set 10%+` then add to menu and
assign hotkeys.
## Laptop: power management
I use `powerprofilesctl`, you can use commands like:
```
powerprofilesctl set power-saver
powerprofilesctl list
powerprofilesctl get
```
I'd like to have a GUI solution.
## Essential programs
### Other/quick mentions
* RSS: Liferea
### Login manager
I recommend using LightDM as your login manager. One thing I like about it is I
can switch the environment/WM I log into. This can be handy because sometimes
you come across something like how Waydroid only runs in Wayland.
### Archivers
xarchiver
### Browsers
`firefox-esr`My main web browser is just the Debian-provided Firefox. You may
want to tweak the scrollbar size (that's a thing you can do).
https://github.com/dillo-browser/dillo -- you actually may not want to use the
repo version and build it from there, because of the time of writing this i'm
told the repo verison is ten years old.
https://github.com/dillo-browser/dillo/blob/master/doc/install.md gopher plugin:
https://github.com/dillo-browser/dillo-plugin-gopher
### KeepassXC: Password manager, keyring manager!
Password manager. In my opinion this is crucial and fantastic for Window Maker,
because Window Maker doesn't just include an SSH Agent and Secret Service
integration. I wrote an article about this: using KeepassXC as keyring
manager[11].
### deja-dup
I just find it's very reliable for backups and easy to use.
### audacious
Audio player.
The gtk audacious is great! the hotkeys seem to mostly work out-of-the-box for
what I've used, I think? You can use Winamp skins if you want to go the extra
mile. If you want to go even further, milkdrop is available for linux.
Don't forget, if you use the Winamp skins, you can right click the titlebars in
audacious and then select attributes--disable the titlebars! A good thing to
know in general. I also like making it 2x scale (but that's by right clicking
the actual Winamp content/pane).
Please see my phlog article on projectM (old winamp/milkdrop) visualizations.
### Language switcher
I'm using IBUS.
IBus is an intelligent input bus for Linux/Unix.
it shows up as a language switcher in the system tray. i don't know how or why.
i can switch with super + space.
### Thunar
I feel like Thunar is a wonderful file manager with a great amount of features
and fits the Window Maker feel and lightness and kidn of retro look.
```
sudo apt-get install thunar
```
For thumbnails you may also want to install `tumbler`.
### Bluetooth and Wifi GUI
These two apps will enable a GUI through the system tray (dockapp).
I use `nm-applet` for all my needs. I add it to `autostart`.
i also use `blueman-applet` (you can just install through `blueman` package),
add it to `autostart` for Window Maker.
### xfce4-terminal
I find that this is a nice terminal to use in Window Maker.
### Screenshots
Windowmaker has its own built-in screen capture you can configure undder
keyboard shortcut preferences in wprefs.
Scrot and Maim didn't seem to work well with WindowMaker hotkey or the like. So
I'm using `xfce4-screenshooter`, which seems to segfault if I capture window
border when capturing the active window.
I made two entries:
* Active window (alt + prt scr): `xfce4-screenshooter -w --no-border`
* Default (prt scr): `xfce4-screenshooter`
### xscreensaver
The power management features are also nice and it provides the ability to lock
the screen.
don't forget to add to autostart
For images you may be able to set both the text manipulation and the random
image to atom/rss feeds:
* https://planet.debian.org/rss20.xml - debian news
* You can search a "booru" like Konachan which has wallpapers and provides
RSS/ATOM feeds for search results, and you can specifically filter by "safe"*
Some early 2000s, late 90s vibes:
https://konachan.net/post/atom?tags=SOMETAG+rating%3Asafe
* https://photojournal.jpl.nasa.gov/rss/index.html
### redshift
I like using redshift to change the color temperature. I installed
`redshift-gtk` to get the system tray:
```
sudo apt-get install redshift redshift-gtk
```
You can run with a command like `redshift-gtk -m randr -l long:lat`.
Beware as north is represented as a positive number and west is represented as a
negative number. This messed me up for a bit.
Don't forget to add to Window Maker's startup.
Example `~/.config/redshift.conf` config:
```
[redshift]
; Set the day and night screen temperatures
temp-day=5700
temp-night=3500
; Enable/Disable fade effect (0 or 1)
fade=1
; Set the location provider: 'manual' (for manual geolocation) or 'geoclue2' (for automatic geolocation)
;location-provider=geoclue2
location-provider=manual
; Set your location if you're using manual geolocation
[manual]
lat=...
lon=...
```
This is the command that worked for me:
```
redshift-gtk -m vidmode -l 37.7749:-122.4194
```
### Claws/claws-mail
I use this email client with Protonmail Bridge[12] and `wmbiff` (mentioned in
this document).
Really feels like it fits the spirit of Window Maker, to me.
I also recommend installing `claws-mail-plugins` and `laws-mail-extra-plugins`.
#### Configuration
I think I did create `~/.claws-mail/queue` and set it as the *Preferences for
current account* then *advanced* tand *put queued messages in* and I used the
absolute path/realpath, because it complained about the queue directory or
something. even then it didn't work
I finally set the queue folder to the IMAP *Drafts* folder or whatever and now
it works!
It may also complain about not being able to open signature.
#### "Fix:" selected item is black-on-black
You may have an issue where your theme, with Claws, causes the selected item to
be illegible due to the text vs. background color of a selected item. I found
this took me a while to figure out, so here I'm going to save you the pain.
You can edit `~/.config/gtk-3.0/gtk.css` and add these lines:
```
/* Only Claws: its main window has id #mainwindow */
window#mainwindow *:selected {
background-color: #3584E4;
color: #FBF6F0;
}
```
#### Start reply above the quote
I think it's a bit dated/annoying for others to have the email you're replying
to quoted *above* your actual reply message. So you can go into preferences and
then under "compose" is *templates." There's a "reply" tab and you can do
something like this:
```
%cursor
On %d
%f wrote:
%q
```
For the above to work you need to disable *compose > writing > replyling >
replyl with quote by default.*
### Bonus software+ apps i like using with
shotwell for viewing photos
deja-dup has been good to me. but does it need something to actually launch
backups in gui more than just running in bg or whatever?
For torrents I tried using `transmission-qt` for a while, but actually that
doesn't look right and I experienced some problems with it. I highly recommend
just using Deluge for torrents. I do think `transmission-daemon` is great for
servers, though.
ted https://www.nllgg.nl/Ted/#How_to_install_Ted
I recommend installing libreoffice-gtk3 for office. lyx seems interesting but I
haven't used it much yet. also sudo apt install texlive-full
XMPP client: gajim (seen below, connected to my XMPP server which is also
connected to my IRC server, edited to respect privacy):
IGajim XMPP client connected to my XMPP server which is also connected to my IRC
server
(GIF) opher.someodd.zip
## Set default apps
sudo update-alternatives --config x-www-browser
xdg-mime default Thunar.desktop inode/directory
```
➜ ~ vim .config/mimeapps.list
➜ ~ xdg-mime default Thunar.desktop inode/directory
➜ ~ update-mime-database ~/.local/share/mime
➜ ~ mimeopen -d Downloads
Please choose a default application for files of type inode/directory
use application #9
Opening "Downloads" with Thunar File Manager (inode/directory)
➜ ~
```
## Bonus
### rofi
great for...
```
sudo apt-get install rofi
```
create `~/.config/rofi/config.rasi`:
```
configuration {
display-drun: "Applications:";
display-window: "Windows:";
drun-display-format: "{icon} {name}";
show-icons: true;
icon-theme: "Papirus";
}
```
look at the commands possible:
```
rofi
```
you can use as an application launcher, window switcher... i'd like to install
the emoji selector but i'm feeling lazy.
add to various key shortcuts hotkeys, i did this by making entries to my
applications menu. some i did:
* windows: `rofi -show window` (win+w)
* apps: `rofi -show drun` (win+r)
* files: `rofi -show filebrowser` (win+f)
### skippy-xd
```
sudo apt-get install git build-essential libx11-dev libxcomposite-dev libxdamage-dev libxrender-dev libxext-dev libxft-dev libxinerama-dev libpng-dev libimlib2-dev libwnck-dev libstartup-notification0-dev
sudo apt-get install libgif-dev
git clone https://github.com/richardgv/skippy-xd.git
cd skippy-xd
make
sudo make install
```
now you can add `skippy-xd --start-daemon` to your autostart... and assign the
`skippy-xd --toggle-window-picker` to a hotkey (i added toggle skippy to my
hotkeys section in applications menu, basically assigned to super + s)
in `~/GNUstep/Library/WindowMaker/autostart` add `skippy-xd --start-daemon &`
it can also be configured...
## Laptop
## tap to click
```
sudo apt update
sudo apt install xserver-xorg-input-libinput
sudo mkdir -p /etc/X11/xorg.conf.d
sudo nano /etc/X11/xorg.conf.d/40-libinput.conf
```
contents:
```
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "Tapping" "on"
EndSection
```
restart your x session.
## Language switcher
I use `ibus-pinyin`.
Add the following command to your Window Maker startup script, such as
~/GNUstep/Library/WindowMaker/autostart:
```
ibus-daemon -drx
```
It should appear in system tray for you to switch between.
I have it configured so windows+ space switches.
ibus-setup
## Toys
### xpenguins
Useful: http://xpenguins.seul.org/index-2.1.html -- they also have a gnome
applet.
Penguins to walk and fall off windows and more.
```
xpenguins -ab t "Big Penguins"
```
I find it has a good deal of nice config options.
You can even install themes!
### oneko
Cat chases your cursor. Note there are different flags you can use for different
skins.
### kde amor
```
# sudo apt-get update
# sudo apt-get install libqt5x11extras5-dev
# sudo apt-get install libkf5doctools-dev
# apt install build-essential cmake qtbase5-dev libqt5svg5-dev qttools5-dev libkf5windowsystem-dev libkf5configwidgets-dev libkf5xmlgui-dev libkf5dbusaddons-dev libkf5archive-dev libkf5notifications-dev libkf5completion-dev libkf5iconthemes-dev libkf5globalaccel-dev libkf5crash-dev libkf5kcmutils-dev libkf5declarative-dev libkf5service-dev libkf5parts-dev libkf5kio-dev libkf5coreaddons-dev libkf5guiaddons-dev
$ git clone https://github.com/KDE/amor.git
$ cd amor
$ mkdir build
$ cd build
$ cmake ..
# make install
```
install theme: https://www.opendesktop.org/p/1219081
copy theme files something like:
```
$ mkdir outputtheme
$ tar zxf sometheme.tar.tar -C outputtheme
$ sudo cp -r . /usr/share/amor
```
#### Make your own custom AMOR buddy
You could do something like the following for a quick-ish custom AMOR buddy or
whatever:
```
➜ amor cat examplerc
# KDE Config File
[Config]
PixmapPath=pics/static
Static=true
Description=Unanimated example
Icon=../preview/example.png
[Base]
Sequence=example.png
HotspotX=0
HotspotY=58
➜ amor realpath examplerc
/usr/share/amor/examplerc
```
With the image in `/usr/share/amor/pics/static/example.png`.
I made my own theme you can find here:
(DIR) My Amor themes
### Expose-like
Want something like the Gnome or Mac OSX Expose feature, where you can hit some
hotkey and then see all the windows at once? `skippy-xd` is actually being
maintained:
https://github.com/dreamcat4/skippy-xd
All you have to do is:
```
git clone https://github.com/dreamcat4/skippy-xd
cd skippy-xd
make
sudo make install
skippy-xd
```
You can map skippy-xd to whatever.
Unfortunately, this will also show all the little `wm*` dockapps.
### Other
* xeyes: eyes that look at your cursor.
* A thread on Linux Questions about Virtual Pets[13]
* xsnow[14]
* xteddy[15]
* xmountains
* xplanet
* You can actually set screensavers as wallpapers with commands like
`/usr/libexec/xscreensaver/glblur -root &`
* You can run xscreensavers in a window, here's an "aquarium:"
`/usr/libexec/xscreensaver/glschool -window -geometry 640x480+100+100 &`
Add some terminal whimsy:
* `sudo apt install sl` then try running `sl`
#### `xrootconsole`
Scrolling console text painted onto your wallpaper/desktop!
Here's an example:
```
tail -f ~/.zsh_history | xrootconsole
```
I actually have a setup that queries what's basically my "latest posts" script
in gopherspace. I'll cover that here.
My setup is to add this to my crontab:
```
curl -s gopher://gopher.someodd.zip:70/0/gateway/status/feed > /tmp/someodd-feed.txt
```
Then I have this script:
```
# !/bin/sh
# feed-diff-ticker.sh — print only the added lines since last snapshot
# Usage:
# feed-diff-ticker.sh /tmp/someodd-feed.txt /tmp/someodd-feed.prev 10 | xrootconsole &
# Env:
# MAX_LINES=100 # optional cap on burst output
set -eu
FEED="${1:-/tmp/someodd-feed.txt}"
STATE="${2:-/tmp/someodd-feed.prev}"
INTERVAL="${3:-10}"
MAX_LINES="${MAX_LINES:-}"
WORK_DIR="$(dirname "$STATE")"
TMP_NEW="$WORK_DIR/.feed.new.$$"
TMP_DIF="$WORK_DIR/.feed.diff.$$"
cleanup() { rm -f "$TMP_NEW" "$TMP_DIF" 2>/dev/null || true; }
trap cleanup EXIT INT TERM
# Seed state file if missing
[ -f "$STATE" ] || : > "$STATE"
while :; do
# Skip if feed missing or empty
if [ ! -s "$FEED" ]; then
sleep "$INTERVAL"; continue
fi
# Snapshot current feed (best with atomic mv in cron)
cp -f -- "$FEED" "$TMP_NEW" 2>/dev/null || { sleep "$INTERVAL"; continue; }
# Compute diff; exit codes: 0=same, 1=different, >1=error
if diff -u --label old "$STATE" --label new "$TMP_NEW" >"$TMP_DIF" 2>/dev/null; then
# No differences: do not touch STATE
:
else
# We have differences (exit code 1). Extract ONLY added lines from “new”.
# Strip headers (---/+++), hunks (@@), keep lines starting with '+', then drop the leading '+'.
ADDED="$(sed -n '
1,2d; # drop the first two header lines
/^\+\+\+ /d; # drop +++ header
/^--- /d; # drop --- header (in case)
/^@@/d; # drop hunk markers
s/^\+//p # print added lines with leading + removed
' "$TMP_DIF")"
if [ -n "$ADDED" ]; then
if [ -n "$MAX_LINES" ]; then
printf "%s\n" "$ADDED" | tail -n "$MAX_LINES"
else
printf "%s\n" "$ADDED"
fi
# Update STATE only when we actually emitted new content
mv -f -- "$TMP_NEW" "$STATE"
: > "$TMP_NEW" 2>/dev/null || true
fi
fi
sleep "$INTERVAL"
done
```
And my `xrootconsole` launch command is:
```
/home/tilde/bin/feed-diff-ticker.sh /tmp/someodd-feed.txt /tmp/someodd-feed.prev 10 | xrootconsole &
```
## Troubleshooting
### Apps keep autostarting when I don't want them to
I had to figure out why things kept autostarting despite not being in my
`autostart` file nor was I saving session on exit nor set in `WPrefs`.
Apparently checkout `~/GNUstep/Defaults`. You should make sure to edit it while
windowmaker isn't running because of the `.lck` (lock) it creates in the same
directory.
I saw in the aforementioned directory a file called `WMState`, which indeed had
all the applications autostarting which I didn't want to do so.
https://www.windowmaker.org/docs/chap4.html
## Footnotes
(HTM) [1]: Window Maker: http://www.windowmaker.org/
(HTM) [2]: window manager: https://en.wikipedia.org/wiki/Window_manager
(HTM) [3]: Window Maker Live: https://wmlive.sourceforge.net/
(HTM) [4]: dockapps.net: https://www.dockapps.net/
(HTM) [5]: National Weather Service: https://forecast.weather.gov/MapClick.php
(HTM) [6]: Swatch Internet Time: https://en.wikipedia.org/wiki/Swatch_Internet_Time
(HTM) [7]: Archive.org archvie of dockapps.windowmaker.org: https://web.archive.org/web/20121122074114/http://dockapps.windowmaker.org/
(HTM) [8]: ruby-dockapp: https://www.dockapps.net/ruby-dockapp
(HTM) [9]: the redmond97 GTK theme: https://github.com/matthewmx86/Redmond97/tree/master/Theme
(HTM) [10]: Golden-XCursors-3D-0.8 from Gnome-Look: https://www.gnome-look.org/p/999590
(TXT) [11]: using KeepassXC as keyring manager: /phlog/keepass-keyring-manager.gopher.txt
(HTM) [12]: Protonmail Bridge: https://proton.me/mail/bridge
(HTM) [13]: A thread on Linux Questions about Virtual Pets: https://www.linuxquestions.org/questions/linux-general-1/virtual-pets-for-the-linux-desktop-418186/page2.html
(HTM) [14]: xsnow: https://en.wikipedia.org/wiki/Xsnow
(HTM) [15]: xteddy: https://weber.itn.liu.se/~stegu/xteddy/