A system panel for Kitty terminal that displays real-time system metrics using terminal-based utilities.
- Launches
btopfor system monitoring - Displays real-time audio visualization with
cava - Shows system info (bluetooth, volume, brightness, wifi, location, microphone, screenshare, time, calender, weather)
- Uses kitty remote control to automate the entire setup.
Ensure you have the following installed:
- Kitty terminal
btop(for system monitoring)cava(for audio visualization)brightnessctl(for brightness control)pactl(PulseAudio control)iwconfig(for network info, part ofwireless-tools)yay(AUR package manager for Arch-based systems)bluetoothctl(bluetooth management)curl(for weather)upower(for power management)pw-dump(pipewire for screenshare and microphone state monitoring)js(script interpreter)
For more information about the Kitty Config, refer to the Kitty Configuration Docs.
Clone the repository and make the script executable:
git clone --depth 1 https://github.com/5hubham5ingh/kitty-panel
cd kitty-panel
chmod +x kittyPanel.jsUpdate btop config to add these presets-
presets = "net:0:default,mem:0:default,cpu:0:default,gpu1:0:default proc:0:default,gpu0:0:default"
Run the script to launch the dashboard:
kitty -1 -o allow_remote_control=yes -o window_margin_width=0 --hold -o background_opacity=0.8 -o window_border_width=0 ./kittyPanel.jsOr, to launch the bar
kitty +kitten panel -1 --edge=bottom --margin-bottom=5 --toggle-visibility -o background_opacity=0 -o font_size=10 --detach=yes ./kittyPanel.js --barThis will:
- Set the font size.
- Split the Kitty window and launch
btop. - Further split and launch
cava. - Display real-time system info in another pane.
Set a special workplace, window, key-bind, start on system startup, etc-
# Define commands to launch bar and dashboard
$bar = kitty +kitten panel -1 --listen-on=unix:@bar --edge=bottom --margin-bottom=3 --toggle-visibility -o background_opacity=0 -o font_size=11 --detach=yes /PATH/TO/kittyPanel.js --bar
$dashboard = kitty -1 -o allow_remote_control=yes -o window_margin_width=0 --hold -o background_opacity=0.8 -o window_border_width=0 /PATH/TO/kittyPanel.js
# Launch on start-up (set only bar to launch on start-up then the single keybind will alternate the visibility of bar and dashboard)
# exec-once = hyprctl dispatch togglespecialworkspace dashboard
exec-once = $bar
# Key binds
bindd = $mainMod, d, Toggle dashboard workspace, togglespecialworkspace, dashboard
bindd = $mainMod, d, Toggle bar visibility, exec, $bar
# Workspace
workspace = special:dashboard, gapsout:50, bordersize:5, on-created-empty:$dashboard
Or, use window rules instead of special workspace like for the screen saver-
$screenSaver = kitty -1 -o background_opacity=0 --title=screenSaver /PATH/TO/screenSaver.js
windowrulev2 = float, title:^(screenSaver)$
windowrulev2 = pin, title:^(screenSaver)$
windowrulev2 = stayfocused, title:^(screenSaver)$
windowrulev2 = size 100% 100%, title:^(screenSaver)$
windowrulev2 = bordersize 0, title:^(screenSaver)$
windowrulev2 = noshadow, title:^(screenSaver)$
bindd = $mainMod, escape, Start screen saver, exec, $screenSaver
Result
kitty-panel-and-bar.mp4
Modify kittyPanel.js to:
- Change the font size
- Adjust window layout and sizes
- Add or replace utilities
- Change style and colors.

