Remix.run Logo
akkartik 6 days ago

"When I first started using tmux, I felt overwhelmed by the very poor default UI that it offers and the amount of options and shortcuts that I needed to know to operate it well and be productive. It took me several tries before I started to feel more or less comfortable with it. One of the things that stood out to me right away was how dreadful UI looked. Not only it felt uninviting, but it almost felt “gatekeepy” - if you don’t know how to use it in this configuration, then might as well forget about it."

EPendragon elaborate on this. It seems like you understand the shell enough to use it productively and customize it to be how you like it. The screenshot this quote is talking about looks like a shell? In what way is it dreadful, and in what way do your customizations make it not dreadful?

For example, it seems like a valid criticism that shells are not very discoverable and a prompt and blinking cursor can be intimidating to a noob, and that surely applies to tmux as well. But then changing the shortcuts doesn't really address that, does it?

To me it seems your article is either saying, "tmux is a pig, and here's me putting some lipstick on it," :) or the problems are not insurmountable, and the solutions are nice but not life-changing.

It's great that you like it better now, and we're all having fun chatting around it about how we configure our tools here on the Hacker News :) But I don't see why it's "dreadful". It's just.. computers, no? Tmux seems no more gatekeepy than any other aspect of computers. And I say this as someone who stopped using tmux a few years ago after getting super annoyed with it.

EPendragon 6 days ago | parent [-]

Hey, akkartik!

The initial experience where I saw a lot of elements on the screen without knowing what's what was a lot. And sure enough - a lot of it had to do with just learning how it works and what's what. But in addition to the UI that is unintuitive for the beginner, most of the keybindings either didn't make sense or were not convenient (talking about prefix).

For example, splitting panes in my opinion are much better done with | and - symbols rather than " and %. I can see what they were going for with double quotes and the percent sign, but IMO vertical line and a hyphen make more sense. I do not need to be actively thinking about which one should I use for a vertical vs horizontal split.

There was some aspect of "putting a lipstick on it" - for sure. Making it more pleasant to look at didn't improve function - just looks. I just think making your tools look the way you like and enjoy them will create a more pleasant experience and help you learn the tool faster too.

The dreadfulness did come from not understanding it completely and being a noob early on. Fixing the style and function also put me into a process of being intentional about learning how the tool works and adjusting things that I didn't like.

And you're right - it is not more gatekeepy that other tools per se. I was simply describing my experience and what I ended doing about that.

akkartik 6 days ago | parent [-]

Thanks! I'm glad I asked, because there does seem something here I can learn from. I care very much about what makes a power tool with a high ceiling gatekeepy.

What were the "lot of elements" in the screenshot? Ignoring shell stuff, is it the bar at the bottom? Is it the "[0]" and the "0:bash*"? The "Macbook-pro" might seem familiar to someone familiar to the shell, who is used to seeing it in the prompt of an uncustomized shell. The date and time likewise seem obvious what they mean. Am I missing anything?

I think the keybindings being non-mnemonic there's only so much you can do about. Vim's hjkl were mnemonic on the VT-100 terminal, but keybindings outlast mortal hardware. So the ability to rebind is in some ways the best you can get IMO.

Zooming out, the best power UI I've been able to come up with is a combination of a Wordstar-like always-on menu showing common keybindings, and a command palette. Here are a couple of UIs I've made, I'm curious what you think of them:

https://merveilles.town/@akkartik/108766067153506592

https://github.com/akkartik/mu/blob/main/html/20210624-shell...

EPendragon 5 days ago | parent | next [-]

I think the first thing that stood out about tmux to me as a beginner was the unnatural use of prefix. I haven't used something like that before where you had to use prefix and then a particular command. It makes sense why it is the way it is, but feels odd in the beginning.

The bottom elements were part of it. Not the host name and time, but the window information. Also, it took a while to remember the default keys to use to get to session management window where tmux displays everything, among other things.

Vim's hjkl make sense as you start using the tool. tmux's Ctrl-B for a prefix doesn't make sense, so that leads to remapping.

I have checked out the UI's you have made - they look great - similar to what I would expect a custom tmux configuration to look like :)

akkartik 5 days ago | parent [-]

> Vim's hjkl make sense as you start using the tool. tmux's Ctrl-B for a prefix doesn't make sense, so that leads to remapping.

Hmm, I'm still confused:

* How do Vim's hjkl start to make sense? They've always seemed arbitrary. 'l' should stand for 'left', but it takes me right!

* How is a different keyboard shortcut less confusing than ctrl-b. They all seem arbitrary. You remapped it to ctrl-a. Maybe you were used to GNU Screen?

EPendragon 5 days ago | parent [-]

hjkl are where your fingers land and supposed to stay on keyboard (well almost). This puts you in a position to use the rest of the keyboard fast.

Ctrl-B is a mechanically more difficult key binding than Ctrl-A.

akkartik 5 days ago | parent [-]

Ok, I understand now. When you say "make sense" you're thinking just about the mechanical ease of acquiring a key. That's fair.

talkingtab 5 days ago | parent | prev | next [-]

The "what you think of them" part. I've been thinking hard about web site user interfaces, so not quite the same ballpark even. But, it struck me that we have all these 3D games where the navigation is ... well like adding another dimension. So why are we stuck in 2D so many places?

Here is a codepen example

https://codesandbox.io/p/sandbox/yup2o

of a word cloud using @react-three/fiber for example. Imagine if I could have a little cloud floating for navigating tmux. A cloud not of words but sessions, windows, panes or whatever. If I could then I move around the 3d cloud from the keyboard .... Just an idea

akkartik 5 days ago | parent [-]

I think 3D is a fine idea! Definitely worth trying in general.

In the context of this thread my mind was mostly on what it takes to make some arbitrary power UI "not dreadful", i.e. easy to understand for newcomers. Since it's a power tool, assume there'll be a learning curve. But the initial experience doesn't intimidate someone to start on that journey of a hundred miles of understanding how to use it with fluency and thereby augmenting themselves.

There have certainly been many intuitive 3D UIs. 3D games devote a lot of attention to being discoverable and friendly to newcomers, and they have a lot of success. However, my impression is that they achieve this success by dint of hard work. It's not clear that 3D makes the problem easier. If anything I'd be more likely to believe it makes it harder.

So if you have a product and are thinking about how to make it more intuitive (as I am), "make it 3D" is probably not the best suggestion. Does that seem reasonable? Let me know if I'm missing something.

I like your codepen. I wonder what it would feel like to use a whole note-taking app or digital garden with this metaphor. Rotate to a particular note until it's in front, then click on it to edit it. Perhaps you should stop moving in 3D while editing.

talkingtab 4 days ago | parent [-]

To give credit where it is due, the codepen is not mine, but from this page: https://r3f.docs.pmnd.rs/getting-started/examples from @react-three/fiber.

My guess, and only a guess, is that 3D is especially (only?) useful for navigation. As in moving around documents, panes, windows, etc.

As for "I wonder what it would feel like to use a whole note-taking app ..." The note taking is in some ways already done pretty well. So my current guess is that it is more the navigation that would benefit.

I don't really have answers, but I often feel like I live in 'flatland' these days.

akkartik 3 days ago | parent [-]

I think it makes sense to go to 3D with a VR headset. But screens are fundamentally flat, and I feel like going to 3D on a screen takes an initial hit in experience. You can reclaim that hit by putting in work, of course.

zem 6 days ago | parent | prev [-]

don't know if you used lotus 123 back in the day, but it was one of the best keyboard-driven interfaces i've seen. everything was done by navigating hierarchical menus, but the menus were displayed horizontally in a bar on the bottom of the screen, no popups to obscure the rest of the display. so if you were a power user you would just automatically type e.g. /fs to open the file menu and then the save option thereunder, but if you were new to it you could look down, see that /f was file and when you hit that the bar would change to include s:save and you could hit that.

wowczarek 5 days ago | parent | next [-]

I remember those horizontal menus; Lotus 1-2-3 really was the pinnacle of productivity. You could also create custom menus, assign shortcut keys to your macros, and of course have your macros call other shortcut keys. I was too young to use it for serious work back then, but the 123 and dBase combo really was a powerhouse.

akkartik 6 days ago | parent | prev [-]

That's awesome. I never used Lotus, but it sounds like it might have had the same idea before Wordstar which influenced me.

thesuperbigfrog 5 days ago | parent | next [-]

>> I never used Lotus

If anyone is curious, there is a Linux port of Lotus123:

https://github.com/taviso/123elf

akkartik 5 days ago | parent [-]

Whoa!

zem 6 days ago | parent | prev [-]

yeah, it went one step beyond wordstar because the menus did not drop down and cover up your screen, the menu was all horizontal, so if you knew the keystrokes via muscle memory you never saw menus flashing on the screen. i think nano does something similar these days.

akkartik 6 days ago | parent [-]

Ohh, I see. It wasn't just a static menu bar at the bottom, but some hotkeys were modes and the menu bar would update when you pressed them. Pico/Pine still has something like that where ^o used to stand for "other commands" and the menu would show new hotkeys when you pressed it. I don't remember if Wordstar had some escape hatch like that. It certainly had a lot of commands.