lilyinstarlight / nixos-cosmic

Flake for using COSMIC on NixOS
MIT License
384 stars 26 forks source link

Workspace navigation with shortcuts #401

Open RingOfStorms opened 1 week ago

RingOfStorms commented 1 week ago

I am not sure if I should report this here or on real cosmic since this is my entry for using cosmic.

When I have "Workspaces -> Displays Have Separate Workspaces" (the default) enabled and have multiple monitors:

Workaround for now: Select "Workspaces Span Displays", now going up and down is how I expect it to work with super + up/down (but not great if you don't want this behavior)

RingOfStorms commented 1 week ago

Okay I think I just don't understand where or how to change this shortcut. It is the ctrl + super + up/down that works. I want to remove ctrl part and replace the focus window ones. I've tried to clear the existing shortcuts and add to "Focus next workspace" but adding shortcuts simply does nothing, no feed back at all.

image image It always clears itself even if I "set" them

RingOfStorms commented 1 week ago

I also can't add custom keyboard shortcuts, the add keybinding button does nothing

image

Edit: It seems like it is just not possible to bind super+enter, but other bindings can work for this command.

RingOfStorms commented 1 week ago

Alright I gave up on the UI but was able to get everything working manually editing the custom.ron file for keyboard shortcuts.

I also had to look at cosmic source to find the list of all possible "actions" since I didn't know how to move workspaces: https://github.com/pop-os/cosmic-settings/blob/master/cosmic-settings/src/pages/input/keyboard/shortcuts/mod.rs#L460-L550

Example of a custom file: https://git.joshuabell.xyz/dotfiles/~files/master/modules/de/cosmic/config/com.system76.CosmicSettings.Shortcuts/v1/custom

{
    (
        modifiers: [
            Super,
        ],
        key: "l",
    ): Focus(Right),
    (
        modifiers: [
            Super,
        ],
        key: "j",
    ): NextWorkspace,
    (
        modifiers: [
            Super,
        ],
        key: "h",
    ): Focus(Left),
    (
        modifiers: [
            Super,
        ],
        key: "k",
    ): PreviousWorkspace,
    (
        modifiers: [
            Super,
        ],
        key: "Return",
    ): Spawn("alacritty"),
    (
        modifiers: [
            Super,
        ],
        key: "space",
        description: Some("launcher"),
    ): System(Launcher),
    (
        modifiers: [
            Super,
        ],
    ): System(WorkspaceOverview),
    (
        modifiers: [
            Super,
        ],
        key: "Right",
    ): Disable,
    (
        modifiers: [
            Super,
        ],
        key: "Down",
    ): Disable,
    (
        modifiers: [
            Super,
        ],
        key: "Left",
    ): Disable,
    (
        modifiers: [
            Super,
        ],
        key: "Up",
    ): Disable,

}