- Wallpaper
- Emacs
- Hyprland
- GNU Guix System
- Desktop shell: Caelestia (Quickshell)
- PipeWire, Easy Effects
- File Manager: Gnome Files, Dired (Emacs)
- PDF Viewer: pdf-tools (Emacs)
- Theme: ef-melissa-dark
- Cursor theme: Bibata-Modern-Amber
GNU Guix System with Hyprland (Wayland) on NVIDIA (RTX 3070 Ti). Home environment at home/redfish.scm — dotfiles are deployed via guix home reconfigure.
cd ~
git clone https://github.com/snehrbass/dotfiles.git .dotfiles --recurse-submodules
cd .dotfiles
guix pull -C channels.scmsudo guix system reconfigure systems/redfish.scmguix home reconfigure home/redfish.scm -L .On guix home reconfigure, the activation service handles:
- Flatpak: adds Flathub remote, installs Zen Browser / Spotify / Slack
- Caelestia shell: clones QML config to
~/.config/quickshell/caelestia
Desktop shell built on Quickshell. Provides bar, dashboard, app launcher, session/lock screen, notifications, OSD, and media controls — all as Wayland layer surfaces.
All commands use the form qs -c caelestia ipc call <target> <function> [args...].
Toggle UI panels on/off.
| Command | Description |
|---|---|
qs -c caelestia ipc call drawers toggle bar | Toggle status bar |
qs -c caelestia ipc call drawers toggle dashboard | Toggle dashboard |
qs -c caelestia ipc call drawers toggle launcher | Toggle app launcher |
qs -c caelestia ipc call drawers toggle session | Toggle session menu |
qs -c caelestia ipc call drawers toggle utilities | Toggle utilities |
qs -c caelestia ipc call drawers toggle sidebar | Toggle sidebar |
qs -c caelestia ipc call drawers toggle osd | Toggle OSD |
qs -c caelestia ipc call drawers list | List all drawers |
| Command | Description |
|---|---|
qs -c caelestia ipc call lock lock | Lock the screen |
qs -c caelestia ipc call lock unlock | Unlock the screen |
qs -c caelestia ipc call lock isLocked | Check lock state |
| Command | Description |
|---|---|
qs -c caelestia ipc call mpris playPause | Toggle play/pause |
qs -c caelestia ipc call mpris play | Play |
qs -c caelestia ipc call mpris pause | Pause |
qs -c caelestia ipc call mpris next | Next track |
qs -c caelestia ipc call mpris previous | Previous track |
qs -c caelestia ipc call mpris stop | Stop |
qs -c caelestia ipc call mpris list | List players |
qs -c caelestia ipc call mpris getActive <prop> | Get active player prop |
| Command | Description |
|---|---|
qs -c caelestia ipc call wallpaper get | Get current path |
qs -c caelestia ipc call wallpaper list | List available |
qs -c caelestia ipc call wallpaper set <path> | Set wallpaper |
| Command | Description |
|---|---|
qs -c caelestia ipc call brightness get | Get brightness (0.0-1.0) |
qs -c caelestia ipc call brightness set <value> | Set brightness |
qs -c caelestia ipc call brightness getFor <query> | Get for specific display |
qs -c caelestia ipc call brightness setFor <query> <value> | Set for specific display |
| Command | Description |
|---|---|
qs -c caelestia ipc call notifs toggleDnd | Toggle Do Not Disturb |
qs -c caelestia ipc call notifs isDndEnabled | Check DND state |
qs -c caelestia ipc call notifs clear | Clear notifications |
| Command | Description |
|---|---|
qs -c caelestia ipc call toaster info <title> <msg> <icon> | Info toast |
qs -c caelestia ipc call toaster warn <title> <msg> <icon> | Warning toast |
qs -c caelestia ipc call toaster error <title> <msg> <icon> | Error toast |
qs -c caelestia ipc call toaster success <title> <msg> <icon> | Success toast |
| Command | Description |
|---|---|
qs -c caelestia ipc call picker open | Open color picker |
qs -c caelestia ipc call controlCenter open | Open control center |
qs -c caelestia ipc call idleInhibitor toggle | Toggle idle inhibitor |
qs -c caelestia ipc call gameMode toggle | Toggle game mode |
qs -c caelestia ipc call hypr cycleSpecialWorkspace <direction> | Cycle special workspaces |
qs -c caelestia ipc call hypr refreshDevices | Refresh input devices |
| Command | Description |
|---|---|
qs -c caelestia -n -d | Start shell (daemon) |
qs -c caelestia kill | Kill shell |
qs -c caelestia ipc show | Show all IPC targets |
qs -c caelestia log | Show shell log |
spicetify config current_theme Onepunch color_scheme light
spicetify restore backup
spicetify backup
spicetify applySet the theme to dark and paste values.
TODO: Update Gruvbox colors below to match ef-melissa-dark theme.
#3C3836,#1A0404,#3C3836,#D5C4A1,#665C54,#EBDBB2,#FB4934,#D5C4A1,#D5C4A1,#282828
My Emacs config can be found here. emacs-next-pgtk is installed via redfish.scm with pgtk and native-comp.
Run M-x package-upgrade-all after first launch to finish installing packages.
ECA (Editor Code Assistant) is an AI-powered pair-programming client. It runs as an external server process and integrates with Emacs via the emacs-eca package (defined in packages/emacs-eca.scm).
Config is at files/eca/config.json → ~/.config/eca/config.json.
The following MCP (Model Context Protocol) servers are configured:
| Server | Command | Description |
|---|---|---|
duckduckgo-search | npx -y duckduckgo-mcp-server | Web search via DuckDuckGo |
fetch | uvx mcp-server-fetch | Fetch URLs / web content |
git | uvx mcp-server-git | Git operations |
memory | npx -y @modelcontextprotocol/server-memory | Persistent memory / knowledge graph |
gitlab | glab mcp serve (disabled) | GitLab integration |
Custom skills are loaded from ~/.claude/skills (symlinked from files/claude-skills/).
| Skill | Trigger | Description |
|---|---|---|
guix | Guix home/system reconfigure, package definitions, channel updates | Guix workflow knowledge for this dotfiles project |
