Make Tmux the OS

(matduggan.com)

103 points | by weaksauce 18 hours ago

23 comments

  • ssivark 7 hours ago
    Interesting and expansive post about what the modern desktop experience should be like, and most of it has nothing to do with Tmux except if you squint in some very particular way.
    • pjmlp 7 hours ago
      Yeah, I was expecting yet another post about going back to 1980's UNIX, CP/M, MS-DOS/Novell, MVS, VMS,... experience from people that didn't had to put up with the experience in first place.
  • ggm 7 hours ago
    how can this not refer to emacs?

    emacs -> screen -> tmux -> tmux integrated into <terminal app>

    appears to be the path.

    I guess the fork was "emacs before X" to "emacs after X but we retrofiited some ideas from X into the terminal" -> <the rest is history>

    • pjmlp 7 hours ago
      I advise to check Emacs history before its widespread adoption on UNIX.

      Especially Zmacs and XEmacs, and how their features eventually found a way back into Emacs proper.

  • chuliomartinez 2 hours ago
    Interesting idea. My problem is that one “stream” usually spans multiple apps that silo data. So i have an email from a client and command line and a tab in chrome and maybe a note and an excel file. There are of course exceptions to this, but in real life we bring tools to the project not the other way around. Naturally some “projects” might have sub projects, or some might be transient - a quick email reply. You might organize your digital life this way - with virtual desktops, but why can’t the computer keep track?
  • phromo 7 hours ago
    Too bad config is a no go for the poster, otherwise hyprland or i3 would do everything, even the quake overlay.
    • StrLght 7 hours ago
      I was reading this and thinking about it too — sounds like author wants a tiling WM but with a friendlier UX?

      I honestly don't get why they ignore existing options due to configs. Give it a try, maybe it won't be _that_ bad.

      • e-topy 4 hours ago
        I think the author was saying that the UX has to be good for it to gain wide (non developer) adoption.

        Most of the non developers I know don't want to write prose, let alone a .ini file

        • skinfaxi 58 minutes ago
          Sounds like the perfect use of an LLM.
    • chickensong 6 hours ago
      If he spent half the time it took to write that blog post on config, the problem might be solved.
      • johannes1234321 2 hours ago
        That solves it for him. But how do we make the world™ better™?
        • lobofta 2 hours ago
          Desktop shells may be the answer. I use Noctalia with Niri and it's a smooth ride. Were I not a NixOs nerd I'd recommend this setup to any noob.
  • agumonkey 48 minutes ago
    I was wondering who would use small LLM to improve layout, selection and switching of windows.. pretty fun.
    • setopt 28 minutes ago
      Off topic, but where’s the border between a "small large language model" and a "small language model"?
  • kmarc 4 hours ago
    I like articles that discuss out of ordinary approaches. This is one of those, and I relate to the pain the writer also has.

    However...

    > Different people use windows totally differently.

    The older I get, the more impatient I am with this. In the industry, we normalized that high paid software developers (who are way better programmers, or infra people than I am) waste hundreds of engineering hours with their absolutely broken window management, and command-tab hell. Whenever I have to witness a screenshare of a colleague, my time is also wasted.

    I wish this would be an interview gating: show us how you manage yourself in this big monorepo, switching tasks, windows, tabs, desktops, SSHs etc. Do not normalize noob time wasting.

    Different people also use pianos differently. Yet, we don't appreciate a noob pushing random keys around it. It would be unpleasant to the ear, just how unpleasant (painful) it is to witness macOSs/gnomes bubblegum horror of sloppily animated chaos.

    Back to my point: windows (as in viewports) are with us for many decades. I don't care if you tile, stack, infinite scroll them. Just be productive. Invest upfront in learning, be fast, and be able to explain what I you try to show me on screen.

    There will be no one size fits for all, and that part I understand. But please have more dexterity with your desktop abilities than my grandma.

    • fsloth 34 minutes ago
      This is false analogue. Comparing SWE to pianist and using desktop as the similar element is false. Desktop to SWE is like … how the concert pianist arrives at the concert venue. You want the pianist to arrive on time but you really don’t care about their mode of transportation.

      Besides it’s good to take things slow when face to face with people.

    • sharkotter 28 minutes ago
      Honestly, I'd rather work with engineers trying to build maintainable code than engineers who spend all the time trying to be a power user in the command line. It's possible to be both, but bad code wastes my time much more than a demo with a couple of hiccups.
    • Brian_K_White 1 hour ago
      It's hard to argue with this, yet, I never learned to touch type or type fast, never bothered to learn a bunch of vim or emacs hot keys or rice a vim setup. I use pretty basic editors and ides that barely qualify as ides.

      Everyone else around me blazes at the simple act of typing. And far fewer but some have powerful vim setups where they can do inarguably useful things fast.

      You would be agonized to watch me type code.

      But for 30+ years it never mattered. I spend 10x more time thinking than typing, or jumping around refactoring 300 things all over the place every 5 minutes, and propduce results that work, are efficient, and fail far more gracefully than everyone else.

      (I'm not claiming to trade iteration for get-it-right-the-first-time, I obviously iterate and I'd even say the correctness of the final result is mostly the result of iteration).

      Maybe it doesn't conflict with your point because even so I wouldn't exactly say I'm no more functional than your grandma, so maybe typing and vim/ide-ricing are just a couple of exceptions that I can afford to get wrong as long as everything else is good.

      Though I don't know what else there even is to be "fast" at. I don't think I really even understand how one can be good or bad at mere window management. ssh-ing? What is there to that? knowing how to manage keys?

      However, all in all, I like this. Even if it means I'd currently fall on the wrong side of this idea, I think I agree with this idea to have an expectation of basic competency with the tools in any field one would presume to get paid for. Maybe even now I should just suck it up and learn to type and develop a powerful vim setup.

      • jagged-chisel 1 hour ago
        GP reads to me as “when sharing your process, be fluid instead of bumbling.”

        Things like “uh, where’s that file again?”, “the window disappeared”, etc shouldn’t happen during screen sharing, pairing, and demos.

        In other words: be a good presenter.

        • Brian_K_White 1 hour ago
          Oh god if that's all, yeah ok the bar is far lower than I was thinking. But yeah I've seen that so yeah.
  • anonreplier 6 hours ago
    Niri or Umbriel with Noctalia shell is a wonderful experience, you can get similar on Mac with OmniWM. I briefly tried komorebi for windows too.
    • the_gipsy 1 hour ago
      Afyer years of using tiling WMs, Niri was such a huge improvement. You don't really have to think about anything anymore, it just clicks. You always know where windows are (lile with tiling), but you also don't have to worry how to place them.
    • rolymath 1 hour ago
      How's OmniWM?

      I've used paperspoon but it's very laggy. Paneru is better but 3 finger swipe up or down shows all windows on all workspaces which makes it impossible to pick the window you want. (which paperwm didn't do)

      • Arubis 46 minutes ago
        OmniWM is pretty snappy! Lots of unhandled cases that aren’t even really edge cases. Floating windows and custom menus from the toolbar are poorly handled, as is window minimization (the BSP space for a minimized window remains held). Seems to be moving in the right direction, though.
  • erelong 10 hours ago
    Vertical tabs is a feature in some modern browsers (all?), toggled in settings

    Virtual desktops might help some people where you just ctrl+alt+left/right to move to them, instead of multiple monitors (where applicable). Or just fullscreen apps and I think it's like ctrl+tab to switch between a bunch of them

    The only way to keep all the files on the filesystem is probably to avoid the silos

    I guess we could ironically / unironically ask AI for some OS design tips for our setups haha

    • lobofta 2 hours ago
      I don't see why vertical tabs are any better though. I don't want tabs, but one window manager to rule everything.
  • nmstoker 3 hours ago
    I very nearly didn't check this out because I didn't realise the focus was going to be much more general OS, but it's a great piece, well thought through.
  • xlii 6 hours ago
    I solved exactly that problem I and I sell it to those willing: https://race-term.com

    It is multiplexer so survives app kills, and interface is heavily keyboard driven.

    I tried running email in it though resigned (and guess what, wrote my own) because HTML email support is must have nowadays.

    • npodbielski 6 hours ago
      What a messy thing to do. Maybe fine for a project but a desktop? No.
  • jwrallie 13 hours ago
    Persistence is something I care about, Tmux allow that between different sessions, local or otherwise, Windows Remote Desktop also makes it simple to continue work remotely. What bothers me is that the OS will eventually need to reboot, and the user is expected to reconfigure the sessions afterwards, at least partially.

    I think a modern computer should be able to update its software, kernel included, in a way that the state of the userland could be kept, even with an actual reboot.

    • noman-land 8 hours ago
      Check out tmux-continuum and tmux-resurrect plugins.
      • rockbruno 7 hours ago
        TIL about tmux plugins. I started using tmux more actively recently and these will solve all my problems!
  • drooopy 4 hours ago
    So, a tiling WM?
  • danrobi 2 hours ago
    My answer to this: EXWM or Ratpoison
  • deadbunny 2 hours ago
    Or use a twm
  • serbuvlad 7 hours ago
    > The best two examples of this are the Arc browser and Chrome OS. But I think Arc is actually the more interesting of the two experiments. Their first innovation was to break the idea of tabs at the top and instead move it to be a sidebar model.

    I will forever hate Arc for popularizing vertical tabs the way they did.

    Vertical tabs were a thing since at least the Tree Style Tabs extension (2007), except the Tree Style Tabs were infinitely cooler, because they were a tree, not a list, and right click->open in new tab, would open the new tab as a child of the current tab.

    So you could have a hacker news tab during your break, start opening a bunch of articles, read through them, simply un-expand the HN sub-tree, go to work, and then re-expand it during your next break.

    Because of Arc, everyone is now implementing vertical tabs, but no one is implementing Tree Style Tabs, and, probably no one ever will again.

    • lproven 1 hour ago
      Did you know that a custom version of TST is the native tab handling mechanism in Waterfox?

      And the latest release also brings back a native RSS reader?

      Give it a look. You might like it.

    • scottg489 7 hours ago
      Check out Tabius if you use Chrome. It automatically creates and opens new tabs in a group as you describe in your second to last paragraph.
      • serbuvlad 5 hours ago
        Afaik tab groups are a much weaker idea because they are non-recursive.
        • captn3m0 3 hours ago
          s/recursive/nested? I don’t remember Tree style tabs supporting recursion.
    • lemontheme 7 hours ago
      Fwiw – Orion (webkit) has tree tabs
  • estetlinus 6 hours ago
    Love it. High recognition factor. The only things that matter this side of the AI-revolution is window management

    > I don't have a single fucking clue how MacOS populates this window

    Nobody does, but it’s provocative! Gets the people going!

    I’ve leaned into Aerospace for window management, herdr for terminal and good ol’ Chrome for browsing.

    I put my hope to Superlogical by the Ghostty-guy to solve all my MUX problems

    • enoint 38 minutes ago
      Yeah I wish the author tried herdr or read about Superlogical rather than assume UI widgets could absorb some optimal functionality from tmux or screen
  • OtomotO 7 hours ago
    Actually for me it's different.

    I've been using Tmux and later Zellij for many years, while I was on Ubuntu's Unity, then Gnome, KDE, i3 and lastly sway.

    Until I switched to niri (https://github.com/niri-wm/niri) ... since then I haven't used tmux at all.

    Very weird, come to think of.

  • cess11 6 hours ago
    Kind of weird that the author does not make clear what a "normal person" is, despite this being a central concept to their article.

    Personally I don't think it is normal to be unable to double click on i3wm in some graphical apt wrapper and then pick it from a scroll list at login. People use shortcuts in Windows all the time. Having more than one workspace might have been foreign to most a decade or two ago, but these days external monitors are common and workspaces are basically that.

    I've seen people who I would not consider abnormal go from weird misconceptions about i3wm to efficiently sending around windows between workspaces and screens in a day. If you want you can also click your way through it, and configuration is generated for you after you decide whether you want Alt or Super as the core command key. Defaults are rather sensible, so you don't have to fiddle with them until you've got some experience.

    Historically user interfaces on web pages and in Windows and Mac OS:s has changed quite a bit and people who I think most would consider normal managed to adapt.

    • nottorp 5 hours ago
      > but these days external monitors are common

      The assumption that everyone is using a laptop is interesting there.

  • krautburglar 6 hours ago
    This talk about "the future" is nonsense. UI is art, not engineering. What some love, others will inevitably hate. This is where unix/linux is light-years ahead of the competition. Unlike Windows/OSX/iOS, you can make your own mixtape.

    That, and Steve Jobs died a long-ass time ago. The hand-wringing over "config files" in the age of qwen3 you can run on a 10-year-old GPU is no longer as relevant as it once was. Language got us this far. The checkboxes and picklists of PARC were a detour that is now (thankfully) in our rear-view mirror. Config files are awesome.

    t. i3 user

  • noodletheworld 5 hours ago
    > Filesystems as a weak abstraction.

    Is a concept the author needs to get over.

    > The ideal would be "across my entire computer and applications, what are the recent files I have interacted with" and expand that out to include emails and Teams/Slacks and everything. I should be able to see everything going on with my machine, search through it and not care if its stored inside of Slack or iCloud or whatever. Single pane of glass.

    Nope. This would be great if it worked.

    This idea of getting rid of the file system is very old, tired and has failed. And failed. And failed.

    …and you know apps hate? Letting you out of their walled gardens.

    > Microsoft tried it, people didn't like it,

    Yup.

    > but I think the concept makes sense.

    Nope.

    You’re going to have to do better than trying this again.

    Something something local LLM? Mm.

    It’s a Hard Problem. The kind of problem that random engineers look at and go “doesn’t seem that hard, I could do that in a weekend”.

    …

    > In the interest of full disclosure I think this is gonna take many weekends of work to even get a functional demo running. So I'll do my best, but be patient.

    Okay, to be fair, the author did acknowledge that it’s a lot of work and it’s hard; and I look forward to seeing the result, because experiments in this space are interesting, the idea of a visual tmux maybe has some legs…

    …but I think this project is too ambitious to succeed.

    Not being the default isn't what stops these concept desktops from taking off; it’s that people don’t like them.

    No file system, you just get “tasks” and an LLM to pray to and hope you get your data from?

    :/ I don’t think it’ll fly.

    • speedstyle 51 minutes ago
      Not everything is trying to be a walled garden. Only 2 apps on my machine are nonfree, and not productivity ones I would care to integrate like this. But yes it's fundamentally hard (and I don't think their suggestions are great)
  • haroldopina 12 minutes ago
    [flagged]