rbreaves / kinto

Mac-style shortcut keys for Linux & Windows.
http://kinto.sh
GNU General Public License v2.0
4.24k stars 212 forks source link

Getting it working Termius #846

Open Wuffz opened 5 months ago

Wuffz commented 5 months ago

First of all, if it can´t be done. no harm. If someone can point me in the direction that would be nice aswell.

Is your feature request related to a problem? Please describe. I use termius for work ( mac ) and personal ( linux ) but can´t get the keybindings for mac to work, which is REALLY annoying

Describe the solution you'd like Please help me fix the keybindings ( escpecially cmd+c cmd+v for copying and pasting is realy annoying.

Describe alternatives you've considered I have not, its my goto app. as it works on linux/mac/windows and even android when on the go, which is quite nice with samsung dex lol

Additional context It's just not working, i tried modifying the scripts (read, cheating on copying the one from another terminal app) but i have no clue what i'm doing Termius has a free version which i use on my linux box, we can get it at termius.com for testing.

RedBearAK commented 5 months ago

@Wuffz

FYI: I'm not the Kinto dev, but I've been using it for years and now maintain a sort of offshoot of Kinto that was mostly created to experiment with Wayland support, and I've contributed a few things to Kinto's config. Like the keymaps to make Linux file managers act more like the Finder.

The problem here is most likely just that the "application class" or WM_CLASS attribute of the Termius terminal windows is not in the "terminals" list of app classes. So the first step is identifying the app class so it can be added to that terminals list.

Post the output of the command below, after you run it and then click on any Termius window. The mouse cursor should change to a cross, indicating that it is waiting for you to click on a window. Then you will see the requested window attributes appear in the terminal. If you don't have this command available, try to install the xprop package for your distro.

xprop WM_CLASS _NET_WM_NAME WM_NAME

After this app class is found and added to the appropriate list in the Kinto config file, you should be able to restart Kinto and have most of the typical shortcuts working correctly in Termius windows, in the same way they would work in most other Linux terminal apps.

If there are remaining shortcuts that still don't respond the same way under Kinto as they do on macOS, there may also be a need for a keymap specific to Termius to fix those. That is another relatively simple fix.

RedBearAK commented 5 months ago

@Wuffz

I was thinking of this as just a terminal, but it's more like a terminal session/SSH multiplexing app, I think. So it may not be easy to really make shortcuts always act appropriately, if it is sometimes a terminal and other times a kind of "remote desktop" app, which Kinto deals with by disabling all of the normal remapping it does.

My offshoot of Kinto uses a fork of the keymapper that supports matching on the window title, which appears to change to say things like "Local Terminal", so the remaps could be customized depending on what the app is currently setting the window title to. But Kinto can't do anything like that. It can only match on the app class.

In any case, the app class in Wayland is "Termius" and the WM_CLASS in X11/Xorg is probably the same, so you could add it to the terminals list in the Kinto config file like this, and see if that is sufficient:

terminals = [
    "alacritty",
    "cutefish-terminal",
    "deepin-terminal",
    "eterm",
    "gnome-terminal",
    "guake",
    "hyper",
    "io.elementary.terminal",
    "kinto-gui.py",
    "kitty",
    "Kgx",                      # GNOME Console terminal app
    "konsole",
    "lxterminal",
    "mate-terminal",
    "org.gnome.Console",
    "roxterm",
    "qterminal",
    "st",
    "sakura",
    "station",
    "tabby",
    "terminator",
    "termite",
    "Termius",
    "tilda",
    "tilix",
    "urxvt",
    "xfce4-terminal",
    "xterm",
    "yakuake"
]

The config file is ~/.config/kinto/kinto.py. Save the change and restart Kinto to see how it works.

The Termius app is unfortunately only provided as a DEB package or a Snap, so I had to set up an Ubuntu distrobox container in order to run it on Fedora.

shi-314 commented 2 months ago

Thank you @RedBearAK this worked for me with wezterm! Basically adding "org.wezfurlong.wezterm" to the terminals list.