rbreaves / kinto

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

Sublime Text 3: Cmd-[0-9] keys are not supported to switch tabs #710

Open joshgoebel opened 2 years ago

joshgoebel commented 2 years ago

These keys are simply not listed in the kinto.py config file. Please let me know if a PR would be welcome.

RedBearAK commented 2 years ago

@joshgoebel

I don't use Sublime Text but the docs only mention Alt+[1-9]. You sure about that zero?

https://docs.sublimetext.io/reference/keyboard_shortcuts_win.html#tabs

I'd do a PR, if it were me.

rbreaves commented 2 years ago

Yea, I'd accept any PR on this for sure.

joshgoebel commented 2 years ago

Usualy for this stuff I'm refering the actual keymaps data:

{ "keys": ["super+1"], "command": "select_by_index", "args": { "index": 0 } },
    { "keys": ["super+2"], "command": "select_by_index", "args": { "index": 1 } },
    { "keys": ["super+3"], "command": "select_by_index", "args": { "index": 2 } },
    { "keys": ["super+4"], "command": "select_by_index", "args": { "index": 3 } },
    { "keys": ["super+5"], "command": "select_by_index", "args": { "index": 4 } },
    { "keys": ["super+6"], "command": "select_by_index", "args": { "index": 5 } },
    { "keys": ["super+7"], "command": "select_by_index", "args": { "index": 6 } },
    { "keys": ["super+8"], "command": "select_by_index", "args": { "index": 7 } },
    { "keys": ["super+9"], "command": "select_by_index", "args": { "index": 8 } },
    { "keys": ["super+0"], "command": "select_by_index", "args": { "index": 9 } },
RedBearAK commented 2 years ago

@joshgoebel

actual keymaps data

Looks like someone should tell them to update their docs.

rbreaves commented 2 years ago

Looks like someone should tell them to update their docs.

You linked to the win shortcuts, not the Mac ones. Physically they’d be in the same key location any ways.. but yea need to get this added to Kinto.

RedBearAK commented 2 years ago

@rbreaves

You linked to the win shortcuts, not the Mac ones

Well, the Windows/Linux shortcuts, since it's a Linux app, but I guess with an app that lets you define what the shortcuts do I don't suppose it matters much if the Linux version doesn't list Cmd+Zero as a shortcut.

Interesting that the Mac shortcuts do show Cmd+Zero but show it separately from the [1-9] group:

⌘ [1-9]     Jump to tab in current group
⌘ 0     Jump to 10th tab in current group

But then I suppose it would be odd to show it as [1-0], and 0-9 doesn't actually reflect the keyboard order. So maybe this is the best way to list it.

rbreaves commented 2 years ago

In this case Ctrl-[1-9] => Alt-[1-9] would be what we’d want.

joshgoebel commented 2 years ago

Are you talking bout Windows? For Sublime I look at the official Mac keymap and linux keymaps and then make the mappings according to that... The mac version says super/cmd for the modifier...

rbreaves commented 2 years ago

The mac version says super/cmd for the modifier

I was agreeing with you, but for it to be effective Ctrl is Cmd as far as Windows & Linux is concerned, so I was just stating what it'd look like in the py and ahk config files.

Left side being practical & equating to the Cmd key's physical position & the right being the actual current value on Linux and Windows... why I just need to implement a fix so that the config starts saying Cmd on the left side instead of Ctrl so this confusion will end lol.

joshgoebel commented 2 years ago

but for it to be effective Ctrl is Cmd as far as Windows & Linux is concerned,

Yes, I'll get it right... I'm testing these things as I add them.

I just need to implement a fix so that the config starts saying Cmd on the left side

You know the way, you only need find the time. :)

joshgoebel commented 2 years ago

so I was just stating what it'd look like in the py and ahk config files.

I have no interested in ahk. I feel it's pretty ugly and super hard to grok (what little I've seen)... so all my PRs are going to be against kinto.py exclusively (where I can test them)... I hope we can still accept such PRs... if you say PRs must cover both Linux and Windows that's going to make it much less likely I will contribute my improvements back. I'm certain there are others this holds true for also. Not just the annoyance factor but the inability to test on Windows make me hesitant to touch that side of things.

That's not the policy is it? I feel like I've seen you say something like this in another thread, but perhaps that was something more specific - so hoping to pin this down.

rbreaves commented 2 years ago

That's not the policy is it?

Contributors don’t have to no, but I do try to follow it up one way or another so they stay relatively in sync.

I’m constantly testing & using both so it’s not a hassle for me at all.

joshgoebel commented 2 years ago

but I do try to follow it up one way or another so they stay relatively in sync.

A nice policy... of course building the super mega common denominator format that both could derive from might also be a way of solving... I modify the "source of truth", run rebuilt, test... make PR...

I don't suppose we could live in a world where the Python keymaps (or some subtly altered form of them) were the source of truth? :-)

joshgoebel commented 2 years ago

I just need to implement a fix so that the config starts saying Cmd on the left side

If you'd accept doing it a bit at a time I'd get it rolling and do the Sublime section in a PR... I'm not interested in the whole file though as I feel that's goign to be a hell of a lot of work and headache. :)

rbreaves commented 2 years ago

If you'd accept doing it a bit at a time

Of course, a bit at a time is all I’d expect. I had gone through the entire keymapping file at one point but clearly some things got missed or I thought didn’t need remapping.

joshgoebel commented 2 years ago

Help me understand your "magic" uncommented though so I can make an attempt at something workable... where are you doing that in your install scripts and could you simplify what the variants are for me? Is it just:

# Mac
# WinMac
# Chromebook
# IBM

Are the "multi-language" variants they own thing?

rbreaves commented 2 years ago

Help me understand your "magic" uncommented though

Asking the real questions I see 😂, how the sausage is made :p.

https://github.com/rbreaves/kinto/blob/7c6c56f7c3c6807a146b9212874bd019412d858f/linux/gui/kinto-gui.py#L272

Windows has something similar that gets kicked off via a vbs script & strawberry perl but I know you’re not interested about that part of it.

Will admit.. it’s an overly complicated scheme to manage variables in an odd way. Made sense to me at the time.. although now I’d rather refactor & just set some vars at the top of the file or pass in params & use normal logic checks.

Looking back at that code now.. it’s like looking at that lottery ticket from Lost where the numbers have some significance but you’re not sure what lol. My most complicated regex for sure though.

It made more sense pre GUI/ sys tray imo.. this sorta thing only got set once.. but then I thought “wouldn’t it be cool to reset it after the install too?” So I just kept reusing what I had already put into place.

joshgoebel commented 2 years ago

Oh so maybe this is simpler than I thought... does this look right:

IBM = dict(
    Cmd = "RC",
    Ctrl = "Super",
)

CHROME_BOOK = dict(
    Cmd = "RC"
)

WIN_MAC = dict(
    Cmd = "RC",
    Ctrl = "Super",
)

MAC = dict(
    Cmd = "RC",
    Ctrl = "Super"
)

Really they are all the same, since we're talking about the POST remapping... and on chrome book ctrl (super) is just left alone?

joshgoebel commented 2 years ago

Actually I'm thinking maybe there is just a SINGLE set and chromebook is the same also... no?

joshgoebel commented 2 years ago

(yes, terminal is going to be a little diff, but I haven't gotten that far yet)

joshgoebel commented 2 years ago

Right in the middle of sublime:

    # K("Alt-Refresh"): pass_through_key,           # Chromebook/IBM - cancel find_all_under
    # K("Alt-C-g"): K("Alt-Refresh"),                 # Chromebook/IBM - find_all_under

Why would this be any different on a chromebook? I thought in our remappings that "alt was alt"... Why would chromebook get a different mapping here than evertything else?

rbreaves commented 2 years ago

Why would this be any different on a chromebook? I thought in our remappings that "alt was alt"... Why would chromebook get a different mapping here than evertything else?

Chromebooks only have 2 modifier keys on the left side of the keyboard, that's why. You end up having to use the Search key (aka capslock key position for your 3rd least used modifier which ends up being Super or effectively Ctrl in terms of macOS). But yea, can easily throw anyone for a loop at first lol.

There are times where I will allow certain mappings that would be on the Search key to be on Chromebooks modifier in the bottom left corner. Such as Ctrl-C in the terminal I believe, because it feels right, but typically I stick to the layout that I have to use.

IBM is in a similar boat btw.. as they lack the Windows key as well.

joshgoebel commented 2 years ago

Since it's Mac in this "nicer" combos should we use "Opt" instead of "Alt"?

rbreaves commented 2 years ago

Since it's Mac in this "nicer" combos should we use "Opt" instead of "Alt"?

Yea, on the left side of the equation that would make a lot of since, especially if we're aliasing Cmd already.

I was about to make a really long explaination, but on that Opt key for chromebooks it acts as Opt 99% of the time, except during terminal usage, in which case it is just normal Ctrl, & the Cmd key turns to RCtrl-Shift mostly & the Capslock position turns into Alt/Opt. Only way not to have a casualty of a modifier imo.