5 comments

  • zeech9 days 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.<p>[0] <a href="https:&#x2F;&#x2F;www.brain-dump.org&#x2F;projects&#x2F;abduco&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.brain-dump.org&#x2F;projects&#x2F;abduco&#x2F;</a><p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;martanne&#x2F;dvtm" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;martanne&#x2F;dvtm</a>
    • qudat9 days ago
      Nice! Big fan of abduco. I wrote a similar tool but use libghostty for rehydrating the terminal session: <a href="https:&#x2F;&#x2F;zmx.sh" rel="nofollow">https:&#x2F;&#x2F;zmx.sh</a><p>Works pretty well if you don’t need a window manager in your terminal
      • kloud9 days ago
        This is awesome! I was thinking it would be neat to have something like abduco but on a more reliable foundation, like libghostty-vt.<p>For my agent management scripts I use zellij since it is more ergonomic than tmux. Abduco sounded good in principle, but implementation is too limited. However, zellij is quite huge in the order of tens of thousands LOC and I am using only small part of it. It looks like zmx might implement just the right amount of features for this use case, I am going to try it. It is always nice to achieve same functionality with leaner tools.<p>Do you also think about dvtm part alternative? I wonder if once libghostty proper gets finished it would open possibility to level up textual multiplexing and unlock some cool features with graphical UIs.
        • qudat8 days ago
          I have thought about writing a separate tool that resembles dvtm but I’m not exactly sure how I would build it.<p>I don’t want to maintain a monster project like terminal multiplexing. Zmx is basically a single file with 1500 LoC and is “production grade” with just a few quirks I haven’t figure out yet.<p>I would want something of similar scope.<p>With zmx I created two commands you might be interested in: zmx run and zmx history. Run lets your execute commands inside the PTY and history lets you read from the session history.
      • dtkav8 days ago
        ooh nice. Is there a way to get snapshots of the current view? I hacked together something with kitty and abduco but it is definitely a hack...<p>I dont want tmux or anything that gives me additional key bindings or modes, just the ability to pick up my work on another machine.
        • qudat8 days ago
          What do you mean by snapshots? There’s a “zmx history” command which will print whatever is stored in libghostty as plain text, or with ansi escape codes, or even html
          • dtkav8 days ago
            I&#x27;m rendering a few dozen terminals in a website, and for all of the inactive ones i render and serve a jpg of the &quot;current screen&quot; of ansi escape codes from kitty.<p>I&#x27;ve found this to be a difficult thing to get. abduco doesn&#x27;t have current state, and I dont want all of the complexity of tmux. I also don&#x27;t want the entire scrollback history (until i click into a given terminal and connect with xterm).<p>I&#x27;ll give zmx a closer look. Thank you.
            • qudat7 days ago
              If the terminal is in alt-screen the history will only print the current screen. Happy to brainstorm on the zmx repo if you are interested
  • 0xcb09 days ago
    Hi there, nice idea and thanks for sharing.<p>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&#x27;t see any additional value for me. Will this allow, like, floating panes?<p>I&#x27;m just using tmux with some custom key configurations and with what tmux offers out of the box I&#x27;m pretty happy.
    • saysjonathan9 days 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.<p>This is really just a personal project that I wanted to share in case others might like to try it.<p>I will add that, especially at the time of creation, I was heavily in the &#x27;unix is my IDE&#x27; 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).
      • ghshephard9 days ago
        I&#x27;m intrigued - as tmux has been my window manager for my desktop for 10+ years now ( I typically have 80-100 different windows&#x2F;panes in play by the end of any given week, where I take time to close down all sessions that aren&#x27;t still in progress).<p>I&#x27;m wondering what the difference is between this and just tmux basic environment - which already has a lot of pane &#x2F; window management. What&#x27;s the key distinction between using tmux and dwm.tmux?<p>&lt;5 minutes later&gt; - Ah - this is just tmux with some custom config. The window manager <i>is</i> tmux - I would suggest changing the title a bit - maybe something like, &quot;DWM.TMUX - dwm inspired tmux configs. &quot;<p>&lt;Further review - note the &quot;10 years ago&quot; timestamp - ahh.. This has been gestating for a while&gt;
        • saysjonathan9 days ago
          I think the key distinction is the consistent layout (main pane + stack) along with keyboard shortcuts to manage. To me it&#x27;s similar to running vanilla X{11,org} vs using a window manager (hence the name). A vanilla configuration will work just fine but sometimes a constrained or opinionated environment gets more out of your way and better fits your preferred workflow.<p>If you already have a robust tmux workflow with a desired layout (or lack of layout) and custom keyboard shortcuts then this may not work for you. It&#x27;s just one way to manage panes&#x2F;windows in tmux that I hadn&#x27;t seen before and different from the usual ad hoc methods.<p>Like most window managers, I think it&#x27;s all preference. What&#x27;re your current preferences for pane layout, window management, etc? Do you always create&#x2F;layout panes in the same way or is it situationally dependent?
        • saysjonathan9 days ago
          It&#x27;s not just configs though, as there is some logic implemented via shell that could not be handled entirely in configs. &quot;Window Manager&quot; was chosen as it the logic imposes a specific layout without necessarily preventing you from using other configuration options. It&#x27;s almost solely layout management and keyboard shortcuts to assist.
    • ghshephard9 days ago
      For Floating Panes - see: <a href="https:&#x2F;&#x2F;github.com&#x2F;lloydbond&#x2F;tmux-floating-terminal&#x2F;tree&#x2F;master" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;lloydbond&#x2F;tmux-floating-terminal&#x2F;tree&#x2F;mas...</a> (if it doesn&#x27;t work for you on first try - check - <a href="https:&#x2F;&#x2F;github.com&#x2F;lloydbond&#x2F;tmux-floating-terminal&#x2F;pull&#x2F;6" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;lloydbond&#x2F;tmux-floating-terminal&#x2F;pull&#x2F;6</a>)<p>Love Floating Panes in Tmux - and best part - all the other plugins - resurrect, continuum, etc..) all support floating panes out of the box.
      • saysjonathan9 days ago
        This does have a single floating pane shortcut (in the current directory), using the tmux `display-popup` command.
  • zhouzhao9 days ago
    Interessting. When I read the title first I was like: &quot;What?&quot;<p>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 ;)<p>I would have advertised it diffetently though. Something like &quot;DWM inspired tmux config&quot;.<p>As other have mentioned, I don&#x27;t sse why I should use &quot;dwm.tmux&quot; over just the tmux defaults, or my own home grown (stolen) config.<p>Non the less, quite interesting code!
    • saysjonathan9 days ago
      Through this project I realized that there&#x27;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.<p>Commit with the switch to shell here: <a href="https:&#x2F;&#x2F;github.com&#x2F;saysjonathan&#x2F;dwm.tmux&#x2F;commit&#x2F;c8752b9783909323091c755a017ad9e6f0f69cfc" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;saysjonathan&#x2F;dwm.tmux&#x2F;commit&#x2F;c8752b978390...</a><p>I think there&#x27;s a lot of potential to scripting terminal multiplexers in various ways and I would love to see more work exploring what&#x27;s possible!
  • qmacro9 days ago
    This looks intriguing and I&#x27;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.
    • saysjonathan9 days ago
      I went a little too far into &#x27;unix as my IDE&#x27;.<p>Do I regret using `ed` as my primary editor? No.<p>Do I still use `ed` as my primary editor? Absolutely not.
  • kalterdev9 days ago
    Although I don&#x27;t use dwm and tmux anymore, tmux keyboard control is nasty and some uniformity is always a good idea.
    • zhouzhao9 days ago
      Most of the fun of using tmux was configuring it yourself anyway ;)