Skip to content
 
 

Repository files navigation

ChillPill-Shell

A Lightweight and Feature-Rich dynamic pill shape bar made in Quickshell especially for those who don't have a Dedicated GPU (Like me) for their GNU/Linux Hyprland machine.

ChillPill-Shell 0.1.0 Quickshell 0.3.0+ License: GPL v3


Resource Usage

  • RAM: 200-600 MB (Average 400)
  • CPU: Idle 0%, Average 3%, Min 0.1%, Max 10%
  • GPU: Idle 0%, Average 15%, Min 6%, Max 50%

CPU and GPU usage varies with system. a better CPU and GPU use less.

My Hardware

  • RAM: 8GB (DDR3)
  • CPU: i5 3337U (Dualcore)
  • GPU: Intel HD 4000 (Integrated)

Showcase

Main pill bar

Main pill bar showing battery, volume, workspaces, wifi and clock

Control center

Control center with media player, sliders, few buttons and notification stack

Media player auto-open on media playing

Media player auto open

Notification popup (nusgmon-alert)

Notification popup of nusgmon-alert.sh

Cliphist (clipboard manager)

Cliphist clipboard history

Mini dashboard — calendar

Mini dashboard with calendar popup

Mini dashboard — weather

Mini dashboard with weather popup

Volume OSD (has more OSDs like brightness, battery, timer)

Volume OSD

Features

  • Main Pill Bar : Battery, volume, workspaces, network, clock, right-side system tray
  • Control Center : Media Player, Buttons (WiFi, Silent Notifications, Timer), Volume, Brightness and Color Temperature Sliders, Power Profiles, Notifications Stack
  • Cliphist (Clipboard History) : Search, Clipboard images preview, Item index number
  • Mini Dashboard : Profile Image, Username, Hostname, Uptime, Battery, CPU, RAM, Disk, cached Codex weekly usage, Basic network info, Today bandwidth usage, Datetime, Weather and Calendar
  • App Launcher : Search installed apps in real time, keyboard navigation, icon support
  • Quickshell Lockscreen : Word-clock session lock with PAM authentication
  • Power menu : Full-screen lock, suspend, restart, power off and log out menu
  • DBus Notification : App icon (optional), summary, body (YES! you can ditch swaync/dunst fully now)
  • OSD : Battery, volume, brightness, timer
Know more
  • Main pill bar width expands on hover
  • Audio (to mute/unmute) and workspaces (to switch) in the main pill bar are clickable.
  • Control center has WiFi controller which has list of active networks and has password prompt. also timer minutes can be change by right click.
  • Cliphist shows image previews from ~/.cache/quickshell/cliphist-imgs by converting image binaries into real images and save there.
  • Notifications are able to show in slide animation (like iOS mute) while you playing video game or watching movie in full screen. also it can show custom app icon to show in notification, else it shows bell icon.
  • Your today's bandwidth status in mini dashboard is shown by nusgmon (i am the creator of it too).

Configurable options

Located at ~/.config/chillpill-shell/config.jsonc

{
  "displayPicture": "/home/<user>/.pfp.png",
  "clockFormat": "hh:mm",
  "pillTopMargin": 9,
  "pillBottomMargin": 26,
  "textFontFamily": "Monocraft",
  "nerdFontFamily": "JetBrainsMono Nerd Font Propo",
  "timerPresets": [1, 5, 10, 15, 30],
  "mediaAutoOpenDuration": 2000,
  "maxWorkspaces": 5,
  "notificationDisplayTime": 3000,
  "maxNotificationsInStack": 20,
  "bandwidthRefreshInterval": 300000,
  "osdDuration": 800,
  "weatherLocation": "Delhi",
  "weatherUnits": "metric",
  "weatherRefreshInterval": 3600000,
  "avoidDuplicateNotifications": true
}

Dependencies

Note

Currently it's initial release. Tested only on Arch Linux + Hyprland. other setups unsupported for now. Packages listed are Arch/AUR names - grab equivalents from your own package manager. Also few packages like brightnessctl and cliphist are likely already installed.


Install

On Arch Linux, install the required repository packages first:

sudo pacman -S --needed brightnessctl cliphist cmake gammastep inotify-tools \
  power-profiles-daemon qt6-5compat qt6-multimedia wl-clipboard

quickshell, nusgmon, ttf-jetbrains-mono-nerd and ttf-monocraft may need to be installed from the AUR, depending on the repositories enabled.

Verify the available and active power profiles with:

powerprofilesctl list
powerprofilesctl get

The control center disables profiles that the current hardware does not expose.

Tip

Use my Hyprland dotfiles, it's also made for No Dedicated GPU machines. You will get more better performance.

git clone --depth=1 https://github.com/LUCKYS1NGHH/ChillPill-Shell.git
cd ChillPill-Shell
chmod +x install.sh
sudo ./install.sh
Uninstall?
chmod +x uninstall.sh
sudo ./uninstall.sh

Auto startup

To auto-run at every time you start your Hyprland, paste this line in your ~/.config/hypr/hyprland.lua config file

hl.exec_cmd("chillpill-shell")

Key Bindings

Keybindings are recommended for ChillPill-Shell in your Hyprland, Just paste this code in your Hyprland (Lua) config file.

Adjust key combinations by your preferences

hl.bind(mainMod .. " + CTRL + C",  hl.dsp.exec_cmd("qs ipc -p /usr/share/chillpill-shell call controlCenter toggle"))
hl.bind(mainMod .. " + CTRL + V",  hl.dsp.exec_cmd("qs ipc -p /usr/share/chillpill-shell call cliphist toggle"))
hl.bind(mainMod .. " + CTRL + B",  hl.dsp.exec_cmd("qs ipc -p /usr/share/chillpill-shell call miniDashboard toggle"))
hl.bind(mainMod .. " + SPACE",     hl.dsp.exec_cmd("qs ipc -p /usr/share/chillpill-shell call launcher toggle"))
hl.bind(mainMod .. " + CTRL + L",  hl.dsp.exec_cmd("qs ipc -p /usr/share/chillpill-shell call lockscreen lock"))
hl.bind(mainMod .. " + CTRL + P",  hl.dsp.exec_cmd("qs ipc -p /usr/share/chillpill-shell call powerMenu toggle"))
hl.bind(mainMod .. " + CTRL + T",  hl.dsp.exec_cmd("qs ipc -p /usr/share/chillpill-shell call colorTemperature toggle"))
hl.bind("SHIFT + XF86MonBrightnessUp",   hl.dsp.exec_cmd("qs ipc -p /usr/share/chillpill-shell call colorTemperature cooler"), { locked = true, repeating = true })
hl.bind("SHIFT + XF86MonBrightnessDown", hl.dsp.exec_cmd("qs ipc -p /usr/share/chillpill-shell call colorTemperature warmer"), { locked = true, repeating = true })

Tip

The launcher can also be triggered via GlobalShortcut without IPC. Register mainMod + SPACE in your Hyprland config to use it directly:

hl.bind(mainMod .. " + SPACE", hl.dsp.exec_cmd("qs ipc -p /usr/share/chillpill-shell call launcher toggle"))

Thanks

Special thanks to enhaoswen for the Wi-Fi controller backend for Quickshell.

Author

LUCKYS1NGHH / https://github.com/LUCKYS1NGHH/ChillPill-Shell

About

A Lightweight and feature rich dynamic pill bar made for No Dedicated GPU machines for Hyprland

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages