pikman i otter-shell
pikman i wtype
To prevent conflicts with Otter-Shell's power management, you must stop, disable, and mask the Hypridle service.
killall hypridle
systemctl --user disable --now hypridle.service
systemctl --user mask hypridle.service
Before making changes, back up your existing configuration file located at:~/.config/niri/config.kdl
In your config.kdl, remove or comment out the following lines to disable the default Pikabar/Noctalia shell components:
Remove or //
start-at-startup noctalia-shell/pikabar
spawn-at-startup "swww-notifications"
spawn-at-startup "swww-daemon"
spawn-at-startup "/usr/bin/mate-polkit"
spawn-at-startup "systemctl" "--user" "enable" "--now" "hypridle"
Add these lines to your config.kdl to ensure the Otter-Shell modules start at boot:
spawn-at-startup "otter-bar"
spawn-at-startup "otter-wallpaper"
spawn-at-startup "otter-osd"
spawn-at-startup "otter-notifications"
spawn-at-startup "otter-polkit"
spawn-at-startup "otter-idle"
Configure your primary navigation and session shortcuts. You can adjust these keys to suit your preference.
The following keybinds can be used as an example.
Adjust the Pikabar or noctalia app launcher with the new otter-launcher keybind
Mod+d { spawn "sh" "-c" "pkill otter-launcher || otter-launcher"; }
Ctrl+Alt+Delete { spawn "otter-logout"; }
Mod+Alt+L allow-when-locked=true { spawn "sh" "-c" "otter-lock"; }
Add the following keybinds to manage system indicators and media controls:
Caps_Lock allow-when-locked=true { spawn "sh" "-c" "otter-osd caps-lock && wtype -k Caps_Lock"; }
Num_Lock allow-when-locked=true { spawn "sh" "-c" "otter-osd num-lock && wtype -k Num_Lock"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn "otter-osd" "volume-up" "5"; }
XF86AudioLowerVolume allow-when-locked=true { spawn "otter-osd" "volume-down" "5"; }
XF86AudioMute allow-when-locked=true { spawn "otter-osd" "volume-mute-toggle"; }
XF86MonBrightnessUp allow-when-locked=true { spawn "sh" "-c" "brightnessctl set +5% && otter-osd brightness-up"; }
XF86MonBrightnessDown allow-when-locked=true { spawn "sh" "-c" "brightnessctl set 5%- && otter-osd brightness-down"; }
To ensure the wallpaper layer and overview blur render correctly, adjust the layer rule like this:
layer-rule {
match namespace="^otter-wallpaper-overview$"
place-within-backdrop true
}