Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Sounds like mostly hackarounds for non-keyboard-friendly software. I generally prefer to use keyboard-friendly software (of which there is no shortage on linux) and just make application-specific keybindings directly in each application.

No way, that's an almost non-existing class of apps. Which "keyboard-friendly software" supports the differentiation between tap and hold? Hold delays? Simultaneous keypresses? Arbitrary alpha key modifiers (hold T for Toolbar and tap 1,2,3 select different types of brushes in your image app)? Support for custom notifications? Knows left from right? Supports chords, not just combos, including single-key shortcuts? Basically, every app would need to add karabiner/katana as a library and slap app-specific contexts on top of that. Which apps do that???

> Anything else is inevitably a hack.

It's also the only way to make something great. There is no "native" OS/app development platform that matches that power, so it's very rare for an app to implement anything advanced on its own

> for other apps that have non-customizable key shortcuts

But it's not a binary, even apps that offer customizable key shortcuts, mostly offer underpowered versions nowhere close to what a keyboard remapper can offer.

> When I used to use libreoffice regularly, I set up modal keybindings that sent the corresponding chords to libreoffice.

But presumably you wouldn't want to send those shortcuts outside of Libreoffice, right? So you key remapper has to be app-aware

> sketchyvim on mac to essentially use vim in any input field.

This is great and I wish all OS had this basic functionality of allowing users to use their advanced text editing tools anywhere (there is also a more limited browser-only, but cross-platform extension GhostText)

> I don't think there's a linux equivalent that lets you essentially embed an editor like vim inside any input field, but you can use a generic keybinding to open one and then have the text sent back when you're done.

Sure, also you can always copy&paste, but that's friction, so not very suitable for smaller edits. Though maybe you can set a keybind that would instantly open a specially configured editor with a very small window size (basically, the size of a text field) without any extra visual stuff like gutter etc.?

> A lot of the examples you list don't seem to need any app-specific or context-aware functionality (e.g. your launcher example)

All of them do, e.g., app launcher requires the contexts of the app state. If the app is in the foreground, it will hide it, if it's in the background, it'll show it, if the app isn't not launched, it'll launch it.

> keyszer

that's only X11

> hawck which is scriptable in lua

thanks for tip, Autohotkey which it aims to replace is great (and lua is better, though also not a great scripting language), so this would be something like Hammerspoon on a Mac. That would still fall short of Keyboard Maestro with its GUI where you can much easier find he available actions and stich them together

> You have some context available but only what is externally available

That's a very common limitation unfortunately



> No way, that's an almost non-existing class of apps. Which "keyboard-friendly software" supports the differentiation between tap and hold? Hold delays? Simultaneous keypresses? Arbitrary alpha key modifiers (hold T for Toolbar and tap 1,2,3 select different types of brushes in your image app)? Support for custom notifications? Knows left from right? Supports chords, not just combos, including single-key shortcuts?

It would be cool, but I just don't see any of this as necessary. What I use supports single-key shortcuts, modality, and modifier shortcuts, and I wouldn't need anything else. Emacs and probably vim support arbitrary key combos and some more advanced functionality with timeouts, but I don't use those features. Even at the global level, I don't use tap-hold on alpha keys or arbitrary combos. It seems like these extra features are primarily useful as workarounds for having a bad keyboard. Normal modifiers are good enough for me. There are already plenty of actions available using just single keys and modifier keys, and modifier keys are comfortable on a good keyboard (even on my personal laptop I have 8 comfortable thumb keys). "hold T for Toolbar and tap 1,2,3" seems like a comparably painful/inefficient chord, and I'm not using software designed primarily with mouse interaction and things like toolbars in mind.

> But it's not a binary, even apps that offer customizable key shortcuts, mostly offer underpowered versions nowhere close to what a keyboard remapper can offer.

I'm definitely biased in that I'm a software engineer and am not working with graphical applications like photoshop. 95% of my time is spent using tools that are programmable and intended to be used primarily with a keyboard or at least have first-class support for it.

> there is also a more limited browser-only, but cross-platform extension GhostText

firenvim can also actually embed vim in browser input fields regardless of OS. Vim is really the only option still if you don't want an external window though.

> Though maybe you can set a keybind that would instantly open a specially configured editor

Right, there are things like emacs-everywhere that can be globally bound and will automatically handle the "syncing." Probably there are similar plugins for other editors but nothing universal I'm aware of.

> All of them do, e.g., app launcher requires the contexts of the app state. If the app is in the foreground, it will hide it, if it's in the background, it'll show it, if the app isn't not launched, it'll launch it.

I have global keybindings for all my most used applications that support toggle/dropdown functionality. I don't really use enough applications to need a launcher that does this, but you can at least implement this using external context only. It would be easy to script something like this on linux, but it would be X11-specific (e.g. tdrop + maybe rofi) or window manager-specific.

> That would still fall short of Keyboard Maestro with its GUI where you can much easier find he available actions and stich them together

Only if you're a fan of GUI configuration. I'd much rather have no GUI at all and just good documentation.

> It's also the only way to make something great. There is no "native" OS/app development platform that matches that power, so it's very rare for an app to implement anything advanced on its own

> > You have some context available but only what is externally available > That's a very common limitation unfortunately

It certainly would be nice if all software was integrated at the level where you could access and work with internal state. It's why I'm using Emacs for nearly everything, but then you're stuck with whatever limitations/flaws the system has, so there are tradeoffs. If you like having options, it's nice that linux has so many Desktop Environment choices and dozens of really good window managers. By comparison, if you like tiling window managers, macOS is not great. Yabai is passable but requires partially disabling SIP or else it can't even manage/switch spaces. On the other hand, a lot of hammerspoon functionality is missing on linux. Linux will probably never have any good generic automation tools. X11 at least has some more advanced, generic tools like xdotool, but this is currently impossible with Wayland, and definitely nothing supports both. Anything more advanced than input like window management is wm/compositor-specific currently on Wayland, so if anything, linux is going backwards wrt generic keyboard/automation tooling.


> I'm not using software designed primarily with mouse interaction and things like toolbars in mind. > I don't use those features. > Even at the global level, I don't use tap-hold on alpha keys or arbitrary combos.

But I do! Hence my question specifically about tools that match the power of the ones I use that allow the use of a broader class of apps than just emacs

> It seems like these extra features are primarily useful as workarounds for having a bad keyboard. Normal modifiers are good enough for me.

> "hold T for Toolbar and tap 1,2,3" seems like a comparably painful/inefficient chord, and

It's specifically chosen for the T mnemonic (thumb B for toolBar is also fine), which is easier to remember than the more convenient thumb mods, so works better for less frequently used functions

> There are already plenty of actions available using just single keys and modifier keys

Only if you significantly constraint app universe!

> probably vim support arbitrary key combos

Vim doesn't even support left vs right modifiers

> 95% of my time is spent using tools that are programmable and intended to be used primarily with a keyboard or at least have first-class support for it.

That's not first-class, that would be power+usability, and none offer that, you can get to power with a lot of effort and using other tools

> I have global keybindings for all my most used applications

Globals interfere with some uber-global fullscreen apps which you don't want to accidentally interrupt.

> Only if you're a fan of GUI configuration. I'd much rather have no GUI at all and just good documentation.

Or if value your time, for a lot of these functions it'd take much longer reading the docs/writing scripts

> If you like having options, it's nice that linux has so many Desktop Environment choices and dozens of really good window managers.

I like having good options, so having many subpar ones doesn't help. Hence the original question, it takes a lot of time having to review and find limitations of the various options, so thanks for the tips

> linux is going backwards wrt generic keyboard/automation tooling.

:(




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: