- Using sdl2 for rendering just text, is overkill
- Find a more lightweight alternative
- Is there any better way of showing current-layer information?
- Maybe some sway prompt using ipc?
-
Configuration
- List of registered apps that have specific layers
- Currently getting from file system (
~/.config/keyboard/apps/*
) - Get from config file?
- Currently getting from file system (
- Aliases and patterns for application names
- List of registered apps that have specific layers
-
Refactor the code
-
Don't rely on swaymsg, make universal
- Now using swayipc
- Make it work on other than sway?
-
Whitelist/blacklist
-
Make the overlay a compile time feature
-
Fork kanata and apply the logging patches
- You have a
main
layer, this will be used by default. - You have a
~/.config/keyboard/apps/org.telegram.desktop
layer. Whentelegram
is focused it sends the window name (org.telegram.desktop
in this case) to kanata. Kanata switches to this layer. NOTE: If it can't find the corresponding file in/apps
it fallbacks to the default layer (main
)
- Create a file and include it in your kanata configuration
- NOTE: The name of the file should match what sway returns
Check out my kanata config for reference 💡
Dependencies:
- SDL2 for the overlay window, optional (todo)
git clone https://github.com/veyxov/qanata
cd qanata/
cargo run -- --port 7070
You can use the provided flake.nix
to setup all build- and run-time dependencies:
- Enable Flakes in your Nix configuration.
- Add
direnv
to your profile:nix profile install nixpkgs#direnv
cd
into the directory where you have cloned this directory.- Allow use of
.envrc
:direnv allow
- After the dependencies have been installed, your shell will now have all of the necessary development dependencies.
./run_stats.sh --file path/to/kanata/log
# Current format: actual_key_presses|layer|resulting_key_press
-
Panics if there are no windows in current workspace (when the wallpaper is visible) - Overheats the CPU when sway is locked; Fixed in commit