top | item 46739704

Show HN: Dwm.tmux – a dwm-inspired window manager for tmux

101 points| saysjonathan | 1 month ago |github.com

Hey, HN! With all recent agentic workflows being primarily terminal- and tmux-based, I wanted to share a little project I created about decade ago.

I've continued to use this as my primary terminal "window manager" and wanted to share in case others might find it useful.

I would love to hear about other's terminal-based workflows and any other tools you may use with similar functionality.

21 comments

order

zeech|1 month ago

Very cool project! When I was regularly using a multiplexer on my personal machines, I did something similar with `abduco` [0] for session management and `dvtm` [1] for the actual multiplexing.

[0] https://www.brain-dump.org/projects/abduco/

[1] https://github.com/martanne/dvtm

qudat|1 month ago

Nice! Big fan of abduco. I wrote a similar tool but use libghostty for rehydrating the terminal session: https://zmx.sh

Works pretty well if you don’t need a window manager in your terminal

0xcb0|1 month ago

Hi there, nice idea and thanks for sharing.

I was just wondering what is the additional value over just using, tmux and pre-stored pane configurations. From the screenshot in the GitHub repository, I don't see any additional value for me. Will this allow, like, floating panes?

I'm just using tmux with some custom key configurations and with what tmux offers out of the box I'm pretty happy.

saysjonathan|1 month ago

For me, personally, the value was in have something similar to a window manager for the terminal. As I was constantly spawning, killing, and reorganizing panes, a tiling-based approach gave me more control over my terminal and allowed me to perform complex operations without having to memorize or execute multiple commands. My use of a terminal is not static and therefore having a more dynamic option made my life easier.

This is really just a personal project that I wanted to share in case others might like to try it.

I will add that, especially at the time of creation, I was heavily in the 'unix is my IDE' camp. A terminal window manager was a logical next step to that notion. As someone called out below, I even used `ed` as my main editor for a while (which was as bad as it sounds).

zhouzhao|1 month ago

Interessting. When I read the title first I was like: "What?"

Well, checking out the code, it seems to be tmux functions. Well, some of them are quite intriguing! I never bothered to figure out how to spawn a new pane in the same dir. Consider that fuction stolen ;)

I would have advertised it diffetently though. Something like "DWM inspired tmux config".

As other have mentioned, I don't sse why I should use "dwm.tmux" over just the tmux defaults, or my own home grown (stolen) config.

Non the less, quite interesting code!

saysjonathan|1 month ago

Through this project I realized that there's just some limitations to a plain tmux config. I eventually had to switch over to calling out to shell in order to get around those issues.

Commit with the switch to shell here: https://github.com/saysjonathan/dwm.tmux/commit/c8752b978390...

I think there's a lot of potential to scripting terminal multiplexers in various ways and I would love to see more work exploring what's possible!

qmacro|1 month ago

This looks intriguing and I'm definitely going to try it out. The clincher? Seeing the possibly gratuitous but ultimately wonderful use of ed in pane 0 in the screenshot.

saysjonathan|1 month ago

I went a little too far into 'unix as my IDE'.

Do I regret using `ed` as my primary editor? No.

Do I still use `ed` as my primary editor? Absolutely not.

kalterdev|1 month ago

Although I don't use dwm and tmux anymore, tmux keyboard control is nasty and some uniformity is always a good idea.

zhouzhao|1 month ago

Most of the fun of using tmux was configuring it yourself anyway ;)