1
2
Fork
You've already forked Sway-PreviewKeys
0
Program for showing Sway window manager's key bindings associated with a mode
This repository has been archived on 2024年12月21日. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • Raku 100%
2024年12月21日 10:24:55 +03:30
bin Add --filter-out, use Getopt::Long 2021年10月31日 23:56:43 +03:30
lib/Sway Use gtk-layer-shell version 0.9.0 2024年12月21日 10:24:55 +03:30
screenshots Initial commit 2021年10月27日 18:24:01 +03:30
t Initial commit 2021年10月27日 18:24:01 +03:30
.gitignore Initial commit 2021年10月27日 18:24:01 +03:30
COPYING Initial commit 2021年10月27日 18:24:01 +03:30
META6.json Use gtk-layer-shell version 0.9.0 2024年12月21日 10:24:55 +03:30
README.md Change domain names 2022年07月23日 15:38:19 +04:30

NAME

sway-preview-keys - Shows preview windows for Sway modes' key bindings

screenshot of sway-preview-keys

DESCRIPTION

Gets the config from sway and parses it.

Gets the CSS style for preview windows from path specified via command option or $XDG_CONFIG_HOME/sway-preview-keys/style.css or $HOME/.config/sway-preview-keys/style.css

Finally listens to Sway mode changes and shows a preview window for mode's key bindings.

SYNOPSIS

Usage:
 sway-preview-keys
 [-p|--style-path<PATH>] -- Set CSS style path for preview window [p=path]
 [-t|--add-mode-name] -- Add mode name at top of the preview window [t=title]
 [-s|--sort-key-bindings] -- Sort mode's key bindings [s=sort]
 [-d|--bindsym-default-mode=<NAME>] -- Bind a symbol for previewing key bindings of default mode [d=default]
 [-f|--filter-out=<REGEX>] -- Exclude commands which match REGEX. Can be repeated. [f=filter]
 REGEX is a Raku regex: https://docs.raku.org/language/regexes
 [-r|--max-rows=<NUM>] -- Add columns to show key bindings when number of key bindings exceed the maximum row. Can be repeated. [r=row]
 Biggest number which is lower than the number of key bindings is chosen, otherwise the minimum of the numbers is used
 [-e|--ellipsize=<NUM>] -- Ellipsize commands, given number is used for maximum characters to show. [e=ellipsize]
 Takes effect only when number of key bindings reaches the maximum of --max-rows
 [--ellipsis-position=<start|center|end>] -- Set the position of ellipsis. Default is center.
 Takes effect only when --ellipsize is used
 sway-preview-keys -v|--version -- Print version
 sway-preview-keys -h|--help -- Print help
Example:
 sway-preview-keys -d 'Mod4+o' -t -e 26 -r 20 -r 38
 sway-preview-keys --bindsym-default-mode 'Mod4+o' --add-mode-name --ellipsize 26 --max-rows 20 --max-rows 38
 sway-preview-keys -d 'Mod4+o' -t -e 55 -r 20 -r 38 -f ':s workspace number' -f '^ focus' -f ':s ^move < right left up down >'

Example style:

#preview-window {
 font-family: monospace;
 background-color: rgba(43, 24, 21, 0.9);
 color: white;
 border-radius: 10px;
}
#preview-table {
 padding: 2px 2px;
}
#mode-name {
 font-weight: bold;
 color: #CC7744;
 margin: 0 7px;
 padding: 4px 0;
 border-bottom: 1px solid rgba(95, 75, 72, 0.9);
}
#key-binding, #command {
 padding: 4px 7px;
}
#key-binding {
 color: wheat;
}
#command {
 color: #ddd;
}

INSTALLATION

You need to have GTK Layer Shell, Raku and zef, then run:

zef install --/test "Sway::PreviewKeys:auth<zef:CIAvash>"

or if you have cloned the repo:

zef install .

TESTING

prove -ve 'raku -I.' --ext rakutest

REPOSITORY

https://codeberg.org/CIAvash/Sway-PreviewKeys

BUG

https://codeberg.org/CIAvash/Sway-PreviewKeys/issues

AUTHOR

Siavash Askari Nasr - https://siavash.askari-nasr.com

COPYRIGHT

Copyright © 2021 Siavash Askari Nasr

LICENSE

Sway::PreviewKeys is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Sway::PreviewKeys is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Sway::PreviewKeys. If not, see http://www.gnu.org/licenses/.