"the best desk top in the world" An attempt at a light, logical and modular desktop using mostly existing tools. Currently based on openbox tint2 fittstool

The best desktop in the world tbdtitw


A Challenge: Try This Workflow

Yuri, have you tried this. If you do, let me know how it compares, because am pretty sure tiling windows manager isn’t needed.

• set up 4 function keys to switch to 4 of your most used app. ⁖ emacs, browser, terminal.
I only need 1 click
• set up 1 key to switch to last windows/app.
I only need 1 click
• set up 1 key to cycle windows within a app.
not required after my setup is implemented. I either set window sizes per application, or scroll
• set up 1 key to toggle max/restore window size.
done but not required max/restore is not needed but occasional window splitting is included
• set up 1 key to close window.
• set up 2 keys to to switch prev/next tab.
I only need 1 function key
• set up 1 key to close tab.
• turn on auto-raise.
not required as I run maximized
• remove tiling manager.
not used
• set workspace to just 1.
No. Set to as many as needed. I use 8 by default because I group tasks via workspace/desktop. Browser and email are usually on the 1st desktop. torrents, server, mumble or utox on the 8th. The rest are used as needed but I rarely have more than 3 tasks on one workspace.

Try the following workflow for a week. I’d be interested to know if you still think tiling windows great.
• remove tiling manager. Use a basic, normal, one, such as xfce, lxde, openbox.
• set workspace/virtual-screen to just 1. (and remove the tens of related keybindings)
• set up 3 function keys to switch to 3 of your most used app. ⁖ {F8, F9, F10} for {emacs, browser, terminal, …}. 〔➤see How to Set Key to Switch to Browser for {Microsoft Windows, Mac, Linux}〕
• set up 1 key to switch to last window, such as F4. (this is normally【Ctrl+Tab ↹】. In xfce, can be done easily. In lxde/openbox, the problem is that it requires pressing Enter ↵ to “exit” the switch, similar to releasing Ctrl.)
• set up 1 key to cycle windows within a app. F3. (trivial to do in xfce. Harder in lxde/openbox.)
• set up 1 key to toggle max/restore window size. F1
• set up 1 key to close window. ➳ for example: F6 (must be 1 single key. 【Alt+F4】 is not good.)
• set up 1 key to to switch prev tab, and 1 key to to switch next tab. (i use {F11, F12})
• set up 1 key to close tab. For example, the pause/break key. 〔➤see What Does SysRq/ScrLk, Pause/Break Keys do?〕 (note: the prev/next tab key, and close tab key, should be next to each other. If you are using a full-sized PC keyboard with numberpad, best to use / * – 〔➤see How to set Number Keypad as Function Keys {Windows, Linux, Mac}〕 )
•turn on mouse hover auto-raise window. (not just focus, but raise.) 〔➤see Mouse Hover to Auto-Raise Window〕
• ban double-click. 〔➤see Single-click Open File {Windows, Linux}〕

note, these keys should be single press key, not a chord.

which key to set really depends on your keyboard. (i’m assuming you are on a full-sized keyboard, not laptop, as you shouldn’t type on laptop keys for long periods.) For a normal PC keyboard, the best keys are likely to be all function keys. but if you use any of the batman keyboards, you have a lot options, such as putting them on thumb keys.

If you do have a keyboard with extra keys, remove ALL keybinding that involves holding a modifier. Remove them ALL. Never press a key combination. 〔➤see Banish Key Chords〕

if you don’t know how to set keys for items i didn’t give explicit instruction, see:

Linux: Keyboard Tools for Key Layout, Keymapping, Keybinding ⌨ Mac Keyboard Software Guide ⌨ Windows: Keyboard Layout Tools, Key Macro Tools ⌨
  1. tbdtitw #########################################
    The-best-desk-top-in-the-world (probably)

I prefer a stacking window manager (wm). That’s not to say a tiling wm can’t stack or a stacking wm can’t tile be cause they can.

The issue I have with tiling wm’s is they tile. Therefore depriving me of large areas of my screen. That in my opinion is a fail.

The issue I have with stacking wm’s is they tend to expect you to iconify and raise or move and resize them. That in my opinion is a fail.

What I need is maximum window size while still allowing me to SEE what windows are open on which desktops.

I need a way to launch applications fast with out much thought. As the saying goes we use 20% of out applications 80% of the time. That’s easy to solve. It’s the 75% we use 15% of the time that’s a challenge and the 5% of applications we use 5% of the time that we don’t even know what they are that’s the hard work.

I need a way to launch my commonly use applications and tasks and desktop setup automatically (autostart.sh in openbox)

I need a way to launch my commonly use applications and tasks without using a menu and preferably just one click. (fittstool)

I need a way to launch my less commonly use applications and tasks without using a menu. preferably just two clicks (bashrun2 or runner)

I need a way to launch my menus if I want them. I have 3 menus available. All of different types. Directory menus like rox-bookmarks and obbrowser, and openbox menu for utilitys. I have fbpanel menu for launchers should I need it but it’s rarely even started.

I run 95%> of my windows maximized. Not full screen, maximized. I cycle between them via scroll wheel over tint2 or Alt-Tab.

I raise or lower windows in the stack as needed by selecting the application icon in tint2 or Ctl-F8. I have no need to iconify them.

I can should I need to display two windows on the same desktop/work-space by splitting the screen with windows either vertically or horizontally on the odd occasions it’s beneficial with Ctl-F10 and Ctl-F9.

I base my desktop around tint2 and fittstool and require the wm to do very little.

What a window manager should do and why.
In reality I’m describing most of what I do with openbox and tint2 and fittstool already :-)
It’s just that they can do loads of the things that make no sense to me as well

Able to be run with equal usability via keyboard and mouse Be easy to configure via a well commented text file and have sane defaults Config file can be reloaded during run time Run all windows maximized by default (unless split or dialog boxes) so it’s usable on all devices no matter what screen size. You only need to open and close windows Window decoration/tabs should be useful and not compulsory it’s nice to switch them off on a per application basis or toggle them (I use alt-B for this in openbox) Mousing over a icon/tab should show the contents but not switch to it (tint2). Be able to set unmaximize for dialogs boxes and small applications like calendars and calculators. Be panel/task bar aware and not cover an active taskbar Ability to not display running applications in the pager or taskbar Be able to show all open applications and their icon/tabs across all desktops. so the current active desktop is highlighted (see kelsoos tint2) Moving to a new desktop/workspace must not hide info of all other desktops or open windows You should never need to iconify a window it make no logical sense. If your iconifying it’s to see something that’s hidden. Your not closing it so intend to return to it. You should just start what it’s hiding because that just one action. You should never need to move a window unless it’s to another desktop. If your moving it’s to see something that’s hidden. Your not closing it so intend to return to it. You should just start what it’s hiding because that just one action.

Resizing windows is rarely needed if you run maximized. I general if your resizing windows your desktop setup is failing. You should never need to resize a window unless it’s a split window and that should resize the other split window.

Alt-Tab aware across all desktops so it shows all running applications You don’t need desktop icons (if your active windows are maximized you can’t see them. Desktop icons are used to launch applications but it’s not a window managers job it’s a run dialogs, menus or launchers job. Closing or moving or resizing a window to launch an application is crazy.

I currently Drag n drop between windows via tint2. So if you have several windows open you can select something be it a file or text and drag it to another window via the tint2 across all desktops.

Be able to set a few pixel border for things like fittstool and desktop scrolling via the mouse. Dual monitor support Be copyleft GPL3/AGPL3 or later
  1. applications needed ############################
    My Dragora set up.

Note this project is a moving target, it gets tweaked almost every day and I update this post monthly at best.

I’ll try and list all my packages so most of it works as per the videos!

video of it in action: https://goblinrefuge.com/mediagoblin/u/kelsoo/m/tbdtitw/

I only have 32bit packages so if your on 64bit you may need to build them!

packages needed.

  1. openbox ##
    Note after installing openbox as root you need run
    “cp /etc/X11/xinit/xinitrc.icewm /etc/X11/xinit/xinitrc.openbox”
    then “moe /etc/X11/xinit/xinitrc.openbox” and change “icewm-session” to “openbox-session”
    then save the file with F2

to change window manager before loging in run “wmconfig”

  1. openbox ##

openbox 3.61
gungre.ch/dragora/repo/frusen/stable/op... #64bit

openbox menu items:
run (bashrun2)
rox-menu (bookmarks.py)
disk (obbrowser)
screen snaps (scrot)

obmenu (I’m not sure if I had to build a newer version! wmmv)
gungre.ch/dragora/repo/kelsoo/openbox-m... #32bit
obconf (You need to build version obconf-2.0.4)
obkey github.com/nsf/obkey
online help

display settings:
gungre.ch/dragora/repo/kelsoo/zarfy/zar... #32bit

calculator (included in fox-toolkit) gungre.ch/dragora/repo/kelsoo/fox/fox-1... #32bit
help (gtkman gungre.ch/dragora/repo/kelsoo/gtkman/gt... #32bit)
Dragora home (Link to home page via icecat)
lock (lock screen) btrxtrlock
Note: rmb top centre locks the screen you get not clues except no mouse cursor. You can still see the screen action but notinteract with it until you enter your password. Hit Esc or return and type you user password to unlock.
gungre.ch/dragora/repo/frusen/old-stabl... #32bit
Note: you need to place the script “btrxtrlock-wrapper” in /usr/local/bin/ for fittstool to use it

  1. leafpad ##
    gungre.ch/dragora/repo/kelsoo/leafpad/l... #32bit
  1. screenshots ##

scrot options via openbox menu

  1. fbpanel ##

I like to have fbpanel in my openbox menu incase I want to start a dynamic menu. It hidden 15 pixels in from the top left so as to not interfere with fittstool
gungre.ch/dragora/repo/kelsoo/fbpanel/f... #32bit

I have skippy-xd in fittstool (top-left scroll-wheel). Useful if you have many applications open on one desktop. It runs via a script to ensure only one instance as the daemon is said to be a bit buggy.

  1. fittstool ##

gungre.ch/dragora/repo/frusen/stable/fi... #32bit
gungre.ch/dragora/repo/frusen/stable/fi... #64bit
read the config for tips! it a killer application

  1. fittstool features ##
    rox, restart fittstool, spacefm
    terminal, exit, lockscreen
    browser, email, torrents
    leafpad, geany, office
    alsamixer, toggle volume, cplay, volume up, volume down
    etc, etc
  1. skippy-xd ##

  1. tint2 and applications for all the bling to work as in kelsoo’s video ##

82b71ec5 Update changelog · about 11 hours ago by o9000
New stable release: 0.12.8
Note:you will need to install/build bwm-ng-0.6.1 before you build tint2

You will also need xdotool if you want add and remove desktop via selecting desktop number


I have included a 32bit version in the dottint2 directory
bwm-ng-0.6.1-i486-1.tlz #32bit

I have included a 32bit version in the dottint2 directory

gungre.ch/dragora/repo/kelsoo/lilyterm/... #32bit

Note: Need lilyterm started first. I run weechat-curses in lilyterm so it’s always started
gungre.ch/dragora/repo/frusen/old-stabl... #32bit
gungre.ch/dragora/repo/frusen/old-stabl... #64bit
Note: Need lilyterm started first. I run weechat-curses in lilyterm so it’s always started


  1. tint2 features ##

Visual feed back on all running applications at all times.
Visual feed back on time, date, cpu usage, net usage at all times.
Visual feed back on which application is active on which desktop at all times.

One click or drag:
moving windows to other desktops
add and remove desktops via lmb on desktop number

access to menus while windows maximized
access to run dialog lmb on clock bashrub2
access to calendar mmb on clock gcalsimple
access to run dialog rmb on clock runner

started from tint lmb on cpu: htop
started from tint mmb on cpu: lxterm
started from tint rmb on cpu: inxi
started from tint lmb on Net: ifconfig
started from tint mmb on Net:lftp
started from tint rmb on Net: speedtest

  1. file managers ##

gungre.ch/dragora/repo/frusen/old-stabl... #32bit
gungre.ch/dragora/repo/frusen/old-stabl... #64bit

SpaceFM 1.0.5
gungre.ch/dragora/repo/frusen/stable/sp... #32bit
gungre.ch/dragora/repo/frusen/stable/sp... #64bit

  1. auto mounting ##

gungre.ch/dragora/repo/frusen/stable/ud... #32bit
gungre.ch/dragora/repo/frusen/stable/ud... #64bit

  1. run dialogs ##

gungre.ch/dragora/repo/kelsoo/bashrun2/... #32bit


  1. Themes ##

GTK gartoon

a kelsoo remix called
I have included a version in the openbox directory
put it in ~/.themes

  1. scripts ##
    scripts live in


for the dynamic filebrowser obbrewser to work in openbox menu see here


For combination of manual and a auto generated menu I have added obmenu-generator


This will overwrite the menu.xml so back yours up first! See. my custom settings link to be provided!

For the rox bookmarks be in the openbox menu you need to enable

see openbox.org/wiki/Openbox:Pipemenus

the included directorys (openbox, fittstool, tint2, and fbpanel) need to be placed in the hidden ~/.config directory ctl+h in your home directory to see it

  1. helper wallpaper ##

  1. cursors ##

I install comix cursor

from here


pics: oswaldkelso.blogspot.co.uk/2016/03/drag... less refined version oswaldkelso.blogspot.co.uk/2016/03/the-...

For the short cut lovers tbdtitw work fine as well

Launcher shortcuts

W+a Gogglesmm (Audio) gogglesmm
W+b nessie (Browser) seamonkey
W+c Claws-mail clawsmail
W+d Dillo2 dillo
W+e Geany geany
W+f (gFtp) gftp
W+g Gimp gimp
W+h Composer (Html) seamonkey -edit
W+i Inkscape inkscape
W+j (rename-files) ThunarBulkRename
W+k gtKam gtkam
W+l Leafpad leafpad
W+m Mplayer gmplayer
W+n Netsurf netsurf
W+o (LOwriter) lowriter
W+p Pidgin pidgin
W+q (geeQie) geeqie
W+r Rox-filer rox
W+s spacefm spacefm
W+t Terminal lilyterm
W+u (aUdacity) audacity
W+v utox utox
W+w Wicd wicd-gtk
W+x Xkill xkill
W+y (transmission) transmission-gtk
W+z Run dialog bashrun2
W+1 maximize all maxon
W+2 un-maximize all maxoff

Keybindings for window splitting:
Ctl+F8 send to bottom of stack
Ctl+F9 split windows vert
Ctl+F10 split windows horiz

Keybindings for menus:
Alt+z the openbox menu
Alt+x the desktops menu
Alt+c the window menu

Keybindings for windows:
Alt+Tab Tab through all open windows to the left
Alt+Shift+Tab Tab through all open windows to the right
Alt+F4 Quit active window
Alt+f Toggle Maximize
Alt+b Toggle window bar
Alt+i iconify current window
Alt+d Toggle show-desktop
Alt+r Resize the current window Arrow keys return
Alt+m Move the current window to Center
Alt+Escape send current window to bottom of the stack

Keybindings for desktop switching:
Alt+Ctl+Left_Arrow send to desktop on the left
Alt+Ctl+Right-Arrow send to desktop on the right

Keybindings for moving an active window to another desktop:
Alt+Shift+Right-Arrow move active window to desktop on the right
Alt+Shift+Left-Arrow move active window to desktop on the left

Keybindings to add-remove a desktop:
Alt+F12 Add New Desktop in Current position
Alt+F11 Remove Current Desktop