https://github.com/sondalex/swindings
View sway keybindings
https://github.com/sondalex/swindings
keybindings linux sway swaywm tiling-wm utility wayland
Last synced: 19 days ago
JSON representation
View sway keybindings
- Host: GitHub
- URL: https://github.com/sondalex/swindings
- Owner: sondalex
- License: mit
- Created: 2026-03-26T22:27:44.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-05-25T10:17:52.000Z (about 1 month ago)
- Last Synced: 2026-05-25T11:25:23.226Z (about 1 month ago)
- Topics: keybindings, linux, sway, swaywm, tiling-wm, utility, wayland
- Language: C
- Homepage: https://sondalex.github.io/swindings/
- Size: 1.27 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Swindings
**View sway keybindings**
[demo](https://github.com/user-attachments/assets/59e61c5b-6ac7-4639-ac81-7b8dfb67eabc)
## Installation
### Prerequisites
- Sway window manager (Wayland)
### One line install (recommended)
```
curl -sSfL https://sondalex.github.io/swindings/install.sh | sh
```
## Usage
Run:
```
swindings
```
### Options
| Flag | Description |
|------|-------------|
| `-i`, `--follow-includes` | Resolve `include` directives in the sway config file. Glob patterns are supported (e.g. `include conf.d/*.conf`). Disabled by default. |
**Example** — read keybindings from a config that uses `include`:
```bash
swindings --follow-includes
```
## Theming
Those themes are available:
**Default**

---
**Tokyo-Night**

---
**Solarized Dark**

---
**Catppuccin Mocha**

---
**Catppuccin Latte**

---
**Dracula**

---
**Gruvbox Dark**

---
**Nord**

---
If you want to switch for Tokyo-Night:
```bash
cp config/tokyo-night.toml ~/.config/swindings/config.toml
```
## Recommendation
Add keymap to your `~/.config/sway/config`:
```ini
bindsym $mod+k+m exec swindings
```
## Building from source
```bash
git clone https://github.com/sondalex/swindings.git
git submodule update --init --recursive
```
## Development
### Testing
```bash
zig build test
```
### Memory checking
`WITH_VALGRIND` is injected by passing `-Dvalgrind=true` to the build system.
Build the binary with `-Dvalgrind=true`:
```bash
zig build -j1 -Dvalgrind=true
```
Then run valgrind against it:
**On unit tests**
```bash
valgrind --leak-check=full \
--show-leak-kinds=all \
--track-origins=yes \
--error-exitcode=1 \
--suppressions=valgrind/swindings.supp \
zig-out/bin/unit_tests
```
**On executable**
Requires a live Wayland compositor (cannot run in CI). Build with `-Dvalgrind=true`:
```bash
valgrind --leak-check=full \
--show-leak-kinds=all \
--track-origins=yes \
--error-exitcode=1 \
--suppressions=valgrind/swindings.supp \
--log-file=raw.log \
zig-out/bin/swindings
```
### Generating compile_commands.json
```bash
zig build cdb
```
### Static analysis (clang-tidy)
Requires `clang-tidy` and a `compile_commands.json`. Generate the compilation
database first:
```bash
zig build cdb
```
Then run clang-tidy against the project sources:
```bash
clang-tidy \
src/cli.c src/config.c src/display.c src/keyicon.c \
src/main.c src/search.c src/structures.c src/theme.c \
-p compile_commands.json
```