A neovim-inspired TUI greeter for greetd.
- Full vim modal editing - Normal, Insert, and Command modes
- Vim keybindings -
hjklnavigation,i/ato insert,Escapeto exit - Command mode -
:reboot,:poweroff,:session,:user,:help - Session discovery - Automatically finds Wayland and X11 sessions
- User discovery - Lists available users from
/etc/passwd - Demo mode - Test the UI without greetd using
--demo
sudo dnf copr enable binarypie/hypercube
sudo dnf install vimgreetcargo build --release
sudo install -Dm755 target/release/vimgreet /usr/local/bin/vimgreetvimgreet is a TUI application that needs to run inside a terminal emulator. Configure greetd to launch it within a compositor like cage:
[terminal]
vt = 1
[default_session]
command = "cage -s -- foot -e vimgreet"
user = "greeter"Alternative with alacritty:
[default_session]
command = "cage -s -- alacritty -e vimgreet"
user = "greeter"Alternative with ghostty:
[default_session]
command = "cage -s -- ghostty -e vimgreet"
user = "greeter"For multi-monitor setups with wallpaper, use sway instead of cage:
[default_session]
command = "sway --config /etc/greetd/sway-config"
user = "greeter"With /etc/greetd/sway-config:
output * bg /path/to/wallpaper.png fill
exec "foot -e vimgreet; swaymsg exit"
| Key | Action |
|---|---|
h / l |
Move cursor left/right |
j / k |
Move between fields |
i |
Enter insert mode |
a |
Enter insert mode (after cursor) |
: |
Enter command mode |
x |
Delete character |
dd |
Clear field |
Enter |
Login |
F2 |
Open user picker |
F3 |
Open session picker |
F12 |
Power menu |
| Key | Action |
|---|---|
Escape |
Return to normal mode |
Enter |
Submit / next field |
Ctrl+u |
Clear line |
Ctrl+w |
Delete word |
| Command | Action |
|---|---|
:session [name] |
Select session |
:user [name] |
Select user |
:reboot |
Reboot system |
:poweroff |
Shutdown system |
:help |
Show help |
:q |
Login |
# Run in demo mode
just demo
# Run with logging
just demo-debug
# Build release
just release
# Run all checks
just ciApache-2.0