Show HN: Howm – A Vim-like tiling X11 window manager
github.com
github.com
Nice job!
I get the appeal of "minimal" in this case, but it just doesn't work for me.
Edited to add: Which is not to say that this best practice should be simply discarded, but to say that the appropriate response is to point to the other motivations for it and determine whether they are more important than the upsides of configuring in the source.
> Because dwm is customized through editing its source code, it’s pointless to make binary packages of it. This keeps its userbase small and elitist. No novices asking stupid questions. There are some distributions that provide binary packages though.
source: http://dwm.suckless.org/
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.
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.
It would require more data to be sent backwards and forwards to the X11 server, but that shouldn't be too much of an issue.
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/
Alternate link for WM reviews: 30 Window Managers in 30 days: http://crunchbang.org/forums/viewtopic.php?id=18273
which was his blog, and there are not archive.org copies from 2009 and before. He had a lot of very thought provoking and iconoclastic things to say about OSS and the OSS movement that I found very interesting.
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.
Also I don't get how the Windows 8.1 window management comes even close to the 2 programs you mentioned (Ratpoison and Awesome WM). With both of those (or any other tiling manager) you can do much more than just maximize and snap a window to the sides. (you have virtual workspaces, automatic tiling, better switching, etc)
The thing that is the most visible to me is virtual workspaces. It allows you to create fixed layouts of programs (editor on the left, terminal to test on the up-right corner and tail -f of the relevant log on the down-right corner) grouped within a user-defined context ("code on project1", "code on project2", "mail", "browser").
The idea is to switch from activity to activity, rather than from application to application. It's extremely important, because when you start piling up activities, you accumulate applications, and you don't want to switch through all of them within your activity.
It's nice though that MS made this a default for Windows, while Linux still wants to ignore that MS ever managed to get those keys added to the keyboard. I've been using them for years, one as wm-key and the other as compose key to be able to write special characters (ë, ø, €, etc.) easily on a default qwerty keyboard. That still leaves one spare key on most keyboards
If you want to try out lots of different window managers, the LinuxBBQ distro Cream [0] has 76 different window managers installed.
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.
Most of my day is spent using OSX, and I am quite alright using a mouse in that environment for most things.
Until my daughter was born, I wanted to do everything without a mouse and I worked hard on that. But then I started getting annoyed that I needed both hands to work the machine. Now I have both workflows down pretty well and with my WM I can do most things with either.
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...
s/(?<=having pressed that )you (?=there)//
:-):)
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.
This imgur album has a couple of gifs: http://imgur.com/a/8aqD9
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.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.