If someone was to solve this issue elegantly it would compel me to reconsider moving my daily development activities back to linux
Have you tried other tiling window managers ? i3 [0] comes to mind, but XMonad [1] and Awesome WM [2] are 2 other popular choices in this domain. There are plenty of others to pick from, too [3].
[0] http://i3wm.org/
Yes, microsoft windows. I use version 8.1 and while most end users loathe the interface I've studied the "windows" key and "context menu" key and found it quite fast to perform all my daily operations (except web browsing) mouse-free.
My experience with linux is that some programs are great but too many dont follow standard on very common keyboard operations such as search, tab navigation, context menu. Also it seems many of these desktop windows managers such as ratpoison come with default key mappings that conflict with many of my application's default key mappings which forces me to re-configure.
I invested some time customizing key mappings that would alleviate the issues, but I have a large stack of actual programming work I need to get to, and after awhile I just felt like I was trying too hard at it and decided to go back to the system that works for me. I would like to learn a little more about developer's mouse-free success with linux, vim, browsers and ides such as intellij. 2 years back when i researched this it didnt seem like a very important issue to many people, but to me the little bits of speed gained from keyboard shortcuts add up into great savings in time and cuts in repetitive movement and I consider it to be a crucial part of any development system.
If you want to try out lots of different window managers, the LinuxBBQ distro Cream [0] has 76 different window managers installed.
Alternate link for WM reviews: 30 Window Managers in 30 days: http://crunchbang.org/forums/viewtopic.php?id=18273
Huh? Rat poison is the only window manager I've used that interferes (meaningfully) with precisely zero application keyboard shortcuts. This is because it only intercepts one key, and having pressed that you there is a key bound in the next map to send the original key. And of course you can pick that top level key.
Edited to add: Though having said that, does anyone have any thoughts as to why my compose key doesn't work in ratpoison? I'd like to cut out the switch to unity when I want to study Polish...
On linux I'll usually have a browser workspace, an ide workspace, an email/chat workspace, a console workspace, etc. And I'm able to rapidly put any combination of workspaces on my set of monitors.
The only things I ever use a mouse for on my linux computers is browsing the web.
I love vimium and vimperator. The only thing I use my mouse for is browsing pages with flash or embedded video. Some other browsing as well, but it's nice to be able to pop back and forth between term and browser, scroll the tutorial page down then pop back without a mouse.
I get the appeal of "minimal" in this case, but it just doesn't work for me.
A downside that I can see to using a header file for configuration is that a compile is required for installation and configuration. I don't see this as being too much of an issue as I don't plan on making howm available as a binary, so a compiler would be required anyway.
The point of GP is that since config.h is part of the standard distribution, any local modification should be overwritten (or discarded) upon updating the software, or the user has to maintain a local "fork" with his custom config.h.
You should get inspiration from what suckless does [0]. It uses the same idea of config through header, and the "solution" is workable for all involved parties.
set $mediamenu "media: [spc] play/pause [p] prev [n] next"
mode $mediamenu {
bindsym space exec "playerctl play-pause; i3-msg mode default"
bindsym p exec "playerctl previous"
bindsym n exec "playerctl next"
bindsym Escape mode "default"
bindsym $mod+m mode "default"
}
bindsym $mod+m mode $mediamenu
Now $mod+m will enter 'media' mode, with its own set of keybindings.Nice job!
Another thing is that the operators, motions, and objects each need its modifier keys; in my opinion that just misses the point of having modes and one of the strong points of the vim keybindings. Because of that it was really hard for me to understand how to use Howm: the first time around I skipped the configuration part and went directly to the examples, and you don't mention anywhere there that q4c (for example) is really Alt_L+q, Alt_L+4, Alt_L+c. When I read the configuration part and the configuration file, to see each keybinding I got it, but still it took some googling to figure out that I needed to use xmodmap to know which keys are the MODXMASK.
EDIT: It seems you do mention that the operators, motions and objects need a modifier key, I missed it. Still, I think that it would be clearer if the keys to press were explicitly indicated (like Alt_L+q, Alt_L+4, Alt_L+c)
That's really great feedback about the documentation, I'll make it more obvious which modifiers keys need to be held down. Again, you can change the modifier key used for operators, counts and motions so that howm only uses one modifier key. This is how I had it for most of howm's development. I changed to using two modifier keys as I felt that it was nicer to have a logical separation between the commands and the operators, motions and counts. It also meant that some keys could be reused but with different modifiers.
This imgur album has a couple of gifs: http://imgur.com/a/8aqD9
Really well done, keep up the good work!
On a technical level, howm uses xcb- a more modern and efficient X protocol binding. dwm uses xlib.
From a user's perspective, howm has multiple modes for manipulating different kinds of windows as well as operators, motions and counts. This means that multiple windows can have the same operation performed upon them. For example (assuming that the correct modifier keys are being pressed) pressing "q4w" will lead to 4 windows being closed.
howm also has some features that dwm only provides as patches, such as useless gaps and a grid layout.