The desktop's TypeMatrix has no Copilot key, so bind the guarded hold-start/stop scripts to bare right Alt: Alt_R is the keysym that keycode 108 produces under us,dvorak (the Lua bind helper rejects code:NNN). The release bind carries the ALT modifier because Alt_R is itself Mod1 and still active while its release is processed — a modmask-0 release bind never matches, which left the daemon stuck recording. The se group remaps right Alt to ISO_Level3_Shift and is left alone on purpose so AltGr combos keep working there. |
||
|---|---|---|
| fcitx5 | ||
| helix | ||
| hypr | ||
| kitty | ||
| screenshots | ||
| systemd/user | ||
| tofi | ||
| waybar | ||
| whisrs | ||
| wlogout | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
Jeena's Hyprland setup
This git repo hosts all the dotfiles I need for my hyprland setup. You can use it to learn and to copy from it, but you probably don't want to just use it as it is because it's very opinionated and hard coded.
Introduction Video
Screenshots
Hyprlock lockscreen with custom font and showing keyboard layout

Firefox and Kitty side by side, no margin on the outside

If only one window is visible, border is removed

nmtui to edit network and tofi to choose I/O audio devices

Install
You need to clone this git repository to your computer, let's assume you do:
mkdir -p ~/Projects/
cd ~/Projects/
git clone https://git.jeena.net/jeena/hypr-dotfiles.git
The next step is to set up a hostname config where you can overwrite hyprland configs for a specific host:
cd ~/Projects/hypr-dotfiles/hypr/hosts/
touch $(hostname).conf
ln -s $(hostname).conf host.conf
Then you need to soft link the directories in this git repo to the
~/.config/ directory, make sure that those directories don't exist
yet in your ~/.config, you will need to delete or move them
before. In our example it would be:
cd ~/.config
ln -s ~/Projects/hypr-dotfiles/hypr hypr
ln -s ~/Projects/hypr-dotfiles/waybar waybar
ln -s ~/Projects/hypr-dotfiles/tofi tofi
ln -s ~/Projects/hypr-dotfiles/wlogout wlogout
ln -s ~/Projects/hypr-dotfiles/kitty kitty
ln -s ~/Projects/hypr-dotfiles/helix helix
ln -s ~/Projects/hypr-dotfiles/fcitx5 fcitx5
ln -s ~/Projects/hypr-dotfiles/whisrs whisrs
To enable the auto-mute/unmute timers (mutes at 21:00, unmutes at 07:00, only when idle-inhibit is active), link the systemd user units:
systemctl --user link ~/Projects/hypr-dotfiles/systemd/user/auto-mute.service
systemctl --user link ~/Projects/hypr-dotfiles/systemd/user/auto-mute.timer
systemctl --user link ~/Projects/hypr-dotfiles/systemd/user/auto-unmute.service
systemctl --user link ~/Projects/hypr-dotfiles/systemd/user/auto-unmute.timer
systemctl --user enable --now auto-mute.timer auto-unmute.timer
You also need to install all the dependencies:
- hyprland
- hypridle
- hyprlock
- wlogout
- tofi
- waybar
- swaybg
- nmtui
- kitty
- python3
- Curved Square font https://www.1001freefonts.com/curved-square.font
- FontAwesome
- ttf-jetbrains-mono-nerd (required for waybar icons)
- xdg-desktop-portal-hyprland
- xdg-desktop-portal-gtk
- uwsm (recommended; log in via the "Hyprland (uwsm-managed)" session so systemd starts the portals before the autostart apps — otherwise apps like waybar and chromium intermittently come up in light mode. Without uwsm the portal startup script falls back to launching the portals manually.)
- fcitx5
- fcitx5-hangul
- pipewire-alsa (whisrs captures audio via raw ALSA; without it the default PCM is the headset-jack mic, which is silent when nothing is plugged in)
- a Vulkan driver for your GPU (vulkan-intel + vulkan-icd-loader on Arch)
- whisrs (hold-to-talk voice dictation on SUPER+SHIFT+F23, which is what the Copilot key on newer laptops sends; on Arch install whisrs-git from the AUR). Rebuild it locally with -march=native and the vulkan cargo feature, otherwise decoding is too slow; on this machine the rebuild tooling lives in ~/Projects/whisrs-local-build
There are probably more, I will update the list next time I'm installing it on a new computer.
License
All scripts here are under the GPL-v3 or a later version.


