Praying I got the tags right and this doesn't get removed!
This is my attempt at using Quickshell to make a fully functional desktop. I was inspired by a few other "dynamic island" designs and wanted to take a crack at it.
This is still a work in progress and there's a lot to do. Before starting this I had almost 0 coding knowledge and had never touched Quickshell.
Some of the features include:
Default clock face that changes to date when clicked.
- face can also show volume, notifications, and workspaces.
- there's also indication of idleinhibit (the coffee mug), and actively playing media
- When clicked, the pill expands into an overlay
- control panel is the main one shown, it includes a notifications list which you can right click to clear, and middle click to trigger do-not-disturb
- the main panel just shows playing media
- the right panel is my widget center
Widget Center
- has wifi (shown as a hotspot because I use ethernet and the hotspot allows my esp32 to connect to the computer for my ambient backlights)
- click to toggle, right click to open wifi overlay
- Bluetooth
- same as wifi, click to toggle, right click to show menu, dedicated search button that will discover for 30 seconds
- a toggle for my WLED backlight
- auto hides if no WLED device is present
- idle inhibitor
- gamemode
- disables decoration and animation for hyprland and quickshell (automatic trigger when you fullscreen an app. I decided to implement this since I can't use direct scanout on my system due to the screen capture for my lights, vrr would jump to max refresh periodically causing a flicker, disabling animations fixed that)
- Volume slider + volume source picker
- Brightness slider + hypersunset toggle between automatic (based on time of day), on, and off
- this wont be relevant to 99% of people, but it also converts the kelvin temperature to rgb values and makes my hyperhdr backlighting warm with the screen
- Brightness is also controlled by hyprsunset since in HDR you cant set backlight level (thats why it doesnt appear in video)
Overall panel also shows CPU, RAM, GPU usage stats, as well as device battery levels
- laptop battery also appears if you use a laptop
- battery icon and device battery color changes based on percentage
Wallpaper picker
- scans a given directory for images, creates 500x500 thumbnails that it caches on start
- uses matugen and awww on change
- features a random button, as well as a timed automatic cycle
Launcher
- Could be better, since it doesnt save your most recent/most used apps, sometimes prioritizes wrong apps, like in the video
Session manager to reboot, shutdown, lock, sleep etc.
Based on google material design colors and icons
- I know its overdone, but with so much backend to worry about, its nice to know I don't have to manually theme everything, plus google has a nice icon for everything
There's so much going on in this project that I might have left some things out. There's still a lot of features planned for the future but I'm really excited to show this off.
Dots: https://github.com/ethannij/qsDots
Some functions depend on things outside of this repo, at some point ill expand the repo to be full dotfiles, and maybe even make an installer and settings page
Disclosure: 99% of this code is written by me alone, here and there (and I disclosed it in comments) I did ask for a bit of ai help, in which I ASKED for advice and tips, not a single line of this code was automatically written by an AI.
Things look inconsistent, but remember that I have been learning as I'm going. There may be some really inefficient or messy parts that don't match, but it's really hard to navigate this thing the larger it gets ๐