http://xahlee.info/linux/why_tiling_window_manager_sucks.html
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.
done
• set up 2 keys to to switch prev/next tab.
I only need 1 function key
• set up 1 key to close tab.
done
• 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.
DONE
• set workspace/virtual-screen to just 1. (and remove the tens of related keybindings)
I SETUP 8 DESKTOPS AS PER DEFAULT
• 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}〕
FITTSTOOL
• 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.)
MOUSE IN TINT2
• set up 1 key to cycle windows within a app. F3. (trivial to do in xfce. Harder in lxde/openbox.)
I DON'T NEED TO MOVE WINDOWS
• set up 1 key to toggle max/restore window size. F1
TOGGLE IN TINT2 (BUT i DON'T NEED IT AS I RUN MAXIMIZED AND DON'T NEED TO ICONIFY WITH MY SETUP)
• set up 1 key to close window. ➳ for example: F6 (must be 1 single key. 【Alt+F4】 is not good.)
RIGHT CLICK IN TINT2
• set up 1 key to to switch prev tab, and 1 key to to switch next tab. (i use {F11, F12})
MOUSE IN TINT2
• 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}〕 )
MOUSE IN TINT2
•turn on mouse hover auto-raise window. (not just focus, but raise.) 〔➤see Mouse Hover to Auto-Raise Window〕
I DON'T NEED IT AS I RUN MAXIMIZED AND DON'T NEED TO ICONIFY WITH MY SETUP)
• ban double-click. 〔➤see Single-click Open File {Windows, Linux}〕
SURE IF YOU WANT TO
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 ⌨
###################### 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
###################### 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.
## 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"
## openbox ##
openbox 3.61
http://gungre.ch/dragora/repo/frusen/stable/openbox/openbox-3.6.1-x86_64-1.tlz #64bit
http://openbox.org/wiki/Openbox:Download
openbox menu items:
run (bashrun2)
runner
lilyterm
rox
rox-menu (bookmarks.py)
disk (obbrowser)
desktops
shortcuts
screen snaps (scrot)
settings:
obmenu (I'm not sure if I had to build a newer version! wmmv)
http://gungre.ch/dragora/repo/kelsoo/openbox-menu/openbox-menu-0.3.6.8-i486-1.tlz #32bit
obconf (You need to build version obconf-2.0.4)
obkey https://github.com/nsf/obkey
reconfigure
restart
online help
composting:
xcompmgr
display settings:
zarfy
https://sourceforge.net/projects/zarfy/
http://gungre.ch/dragora/repo/kelsoo/zarfy/source/
http://gungre.ch/dragora/repo/kelsoo/zarfy/zarfy-0.1.0-i486-1.tlz #32bit
calculator (included in fox-toolkit) http://gungre.ch/dragora/repo/kelsoo/fox/fox-1.6.50-i486-1.tlz #32bit
help (gtkman http://gungre.ch/dragora/repo/kelsoo/gtkman/gtkman-i486-1.tlz #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.
http://gungre.ch/dragora/repo/frusen/old-stable/btrxtrlock/btrxtrlock-20141030~git08444b-i486-1.tlz #32bit
Note: you need to place the script "btrxtrlock-wrapper" in /usr/local/bin/ for fittstool to use it
## leafpad ##
http://gungre.ch/dragora/repo/kelsoo/leafpad/leafpad-0.8.17-i486-1.tlz #32bit
## screenshots ##
scrot options via openbox menu
## fbpanel ##
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
http://gungre.ch/dragora/repo/kelsoo/fbpanel/fbpanel-6.1-i486-1.tlz #32bit
skippy-xd
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.
## fittstool ##
fittstool
http://gungre.ch/dragora/repo/frusen/stable/fittstool/fittstool-0.2-i486-1.tlz #32bit
or
http://gungre.ch/dragora/repo/frusen/stable/fittstool/fittstool-0.2-x86_64-1.tlz #64bit
read the config for tips! it a killer application
## fittstool features ##
rox, restart fittstool, spacefm
terminal, exit, lockscreen
browser, email, torrents
leafpad, geany, office
alsamixer, toggle volume, cplay, volume up, volume down
skippy-xd
etc, etc
## skippy-xd ##
## tint2 and applications for all the bling to work as in kelsoo's video ##
tint2
https://gitlab.com/o9000/tint2
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
xdotool
http://www.semicomplete.com/projects/xdotool/
I have included a 32bit version in the dottint2 directory
bwm-ng-0.6.1-i486-1.tlz #32bit
gsimplecal
http://dmedvinsky.github.io/gsimplecal/
I have included a 32bit version in the dottint2 directory
lilyterm
http://lilyterm.luna.com.tw/
http://gungre.ch/dragora/repo/kelsoo/lilyterm/lilyterm-0.9.9.2-i486-1.tlz #32bit
inxi
https://github.com/smxi/inxi
Note: Need lilyterm started first. I run weechat-curses in lilyterm so it's always started
htop
http://gungre.ch/dragora/repo/frusen/old-stable/htop/htop-1.0.2-i486-2.tlz #32bit
or
http://gungre.ch/dragora/repo/frusen/old-stable/htop/htop-1.0.2-x86_64-2.tlz #64bit
Note: Need lilyterm started first. I run weechat-curses in lilyterm so it's always started
speedtest-cli:
https://github.com/sivel/speedtest-cli
## 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:
calendar
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
## file managers ##
rox-filer
http://gungre.ch/dragora/repo/frusen/old-stable/rox/rox-2.11-i486-2.tlz #32bit
or
http://gungre.ch/dragora/repo/frusen/old-stable/rox/rox-2.11-x86_64-2.tlz #64bit
SpaceFM 1.0.5
http://gungre.ch/dragora/repo/frusen/stable/spacefm/spacefm-1.0.5-i486-1.tlz #32bit
or
http://gungre.ch/dragora/repo/frusen/stable/spacefm/spacefm-1.0.5-x86_64-1.tlz #64bit
## auto mounting ##
udevil
http://gungre.ch/dragora/repo/frusen/stable/udevil/udevil-0.4.4-i486-1.tlz #32bit
or
http://gungre.ch/dragora/repo/frusen/stable/udevil/udevil-0.4.4-x86_64-1.tlz #64bit
## run dialogs ##
bashrun2
http://gungre.ch/dragora/repo/kelsoo/bashrun2/bashrun2-0.2.3-i486-1.tlz #32bit
runner
http://www.boomerangsworld.de/cms/tools/runner
## Themes ##
GTK gartoon
http://gnome-look.org/content/show.php/Gartoon+Redux?content=74841
openbox
a kelsoo remix called
Onyx-lessr-red
I have included a version in the openbox directory
put it in ~/.themes
## scripts ##
scripts live in
~/.openbox/scripts/
for the dynamic filebrowser obbrewser to work in openbox menu see here
https://github.com/trizen/obbrowser
For the rox bookmarks be in the openbox menu you need to enable
bookmarks.py
see http://openbox.org/wiki/Openbox:Pipemenus
http://icculus.org/openbox/pipemenus/bookmarks.py
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
## helper wallpaper ##
## cursors ##
I install comix cursor
from here
http://gnome-look.org/content/show.php/ComixCursors?content=32627
pics:
http://oswaldkelso.blogspot.co.uk/2016/03/dragoraman.html
less refined version
http://oswaldkelso.blogspot.co.uk/2016/03/the-best-desktop-setup-in.html
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 fxitE fxite
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