-
Notifications
You must be signed in to change notification settings - Fork 1
Desktop
This flake has an entirely custom-coded shell built with ags which takes a very unique approach aimed for keyboard-oriented usability over having looks. Nonetheless I have made it follow a consistent Nord-themed design style, adopting the scrollwheel on elements where it's helpful.
The first thing you'll notice is that there is no bar or UI when the shell starts. Everything is controlled via keybinds, and by default everything is hidden.
To open the status area, press control+Z. This will persist on whichever monitor is active, and can have its visibility toggled with the same command.
Now, the cool thing about the status area is that there is actually no buttons! Nothing in the status menu is clickable. However, you may use your scrollwheel on either the mpris/mpd player to adjust mpd volume (this persists and is only for mpd! Mpris volume control is not possible through this menu). Scrolling over the time/icon area of the status menu will adjust the system volume. This is very convenient for desktops or setups without a rotary encoder/dial who want quick yet precise volume control.
Other than volume control with the mouse, you can also control it through the quicksettings menu. To open this, press control+super+Z. This opens as an aside status widget which means your screen darkens (you cannot click outside of the widget) and you get automatic keyboard control of the widget. You can use your arrow keys and space/enter to select any options while inside of this menu. The quicksettings menu gives you fast access to volume & brightness controls, as well as a simple audio output sink selector.
Next, you can press control+super+X to open the Bluetooth device menu. When you first open the menu, you'll see a big bluetooth button and no listed devices. This just means that Bluetooth is off to save battery. Simply press space/enter and Bluetooth will be powered on and your saved devices will be shown automatically.
You can press control+super+C to open the network menu (do you see the key pattern yet?). I'll admit that this is probably one of the slowest menus because of the reloading time but it is pretty full-featured, allowing you to connect to saved networks quickly and allows you to connect to locked networks as well. It integrates nicely with iwd as well!
Note that in the preview below, I've blurred the network names for privacy. Note that if you enable steamer mode, this list will pop up with a warning, preventing you from seeing the list while streaming.
Finally, you can press control+super+V to open the calendar. It's quite basic and deviates from the traditional arrow button control - you have to use tab/shift+tab and space/enter to switch between months and years. This is because we're using the built in Gtk.Calendar widget.
Super+space opens the launcher. It has a really cool background which takes the wallpaper, blurs it, and applies a nice little border. You'll see that this is consistent with the recording and clipboard menus as well. The launcher can only open apps (fuzzy search) and certain apps may not be visible if focus mode is enabled.
Originally using HCAI, I've switched over to free Groq inference. Unfortunately, Claude Pro does not offer API access at this time so I can't integrate that into the system without using a webview (which I might switch to eventually). You can delete & expand the chat through the buttons on the top. This is mostly useful for quick questions and study help.
Super+V opens the clipboard history. You can quickly copy the 2nd to last entry here with C, or select an old entry or even edit past screenshot images with E. By default the last 20 clipboard entries are saved.
When you sleep or lock your computer, you will see a very basic PAM lockscreen. It is written with ags and intentionally does not blur the background for privacy purposes. It is not very secure, so you should aim to use a disk encryption lock instead for most purposes. However, it is effective and fast.
By default, you'll get system sync notifications if you have not synced the computer with the homelab. If you've synced and your downloads folder is large, you'll get prompted to clean out your downloads. Notifications will appear as normal from apps like Discord and Thunderbird and they do have action buttons. Note that there is no clear button, you must use super+C to clear the last notification.
The OSD appears quickly when you modify your brightness or volume. It's especially useful for when using the mousewheel/rotary encoder or keyboard controls.
Using super+shift+S opens the power menu. You can't actually click any of these buttons, but instead must use a keycode corresponding to a power action. S = (s)leep, Q = shutdown/(q)uit, R = (r)estart, L = (l)ock.
Screen recording is super easy, and you can even clip (up to the last 30s) too. Open the menu with super+R and press C to clip the last 30 seconds. Press q to adjust the quality (between medium and ultra) and r to toggle microphone recording. Then press space to start recording, and a recording indicator will appear in the status menu. When you're done, the video will be automatically available in your clipboard and you'll get a notification to view the clip or open the folder where it's stored!
When you switch workspaces, the workspace view will be shown on the top left briefly before flying out. It gives you a quick, rough view of your workspace placement and active/empty workspaces. It appears on the active monitor and cannot be toggled permanently unlike the status menu. The blue tile is active, while light gray tiles are occupied and dark gray tiles are unoccupied.
Probably the most simple widget of them all, pressing super+. opens the emoji picker which is literally just a Gtk.Entry with emoji entry support. You can either type directly in the widget or click the emoji icon to open up a larger view. Upon entering an emoji, the widget automatically closes and saves the emoji to your clipboard automatically.
That's about it for shell features! As you can see, it's highly keyboard-focused with few mouse options. Try it out!
Press super+L to toggle dark/light them globally. This does not change the shell but it'll update GTK apps and Zen to use that theme. You can also use super+B to toggle the blue light filter. These two options work great if you're outside and want to increase readabilty.
You can also use super+T to toggle focus mode. Use a Pomodoro timer in tandem with this feature to prevent yourself from opening social media apps like Discord so you can lock in. This is denoted by a flag icon in the status menu.
Use super+S to toggle streaming mode, which is meant for when you're streaming on Discord or Twitch and don't want others to see your wifi menu or notifications by accident. This is mostly for privacy purposes. This is denoted by a bell strikethrough icon in the status menu.
I highly recommend reading Keybinds next.
A note about getting AI assistance: Especially with deeper low level config, less intelligent AI models can overcomplicate and bloat the codebase with poor/hacky configuration. If you are going to use AI to modify this flake for you, I highly encourage you to understand the changes its making. AI is a great tool for learning Nix for the first time, but I suggest that you actively learn and understand from what its doing, consult the Nix search and don't be dependent on it.
If it helps to talk to a real person, I am always available to help you with any Nix/NixOS-related questions! (@amazinaxel on Discord)