Arch Linux · Hyprland 0.56 (Lua) · Quickshell 0.3.2

nox

The whole desktop, in one repo. A hand-built shell, a Lua compositor config, one theme file and one command, nox. Circle anything and ask Claude. Talk instead of type. Watch every coding agent from one panel.

The Telemetry look: the top bar with the plan-usage ring, CPU and memory meters, and the Plan Usage popover over a red topographic wallpaper
Telemetry look · the real bar, real popover. Black, one signal red, Doto numerals.
20shell modules, each one switchable in shell.json
22nox commands behind one entry point
20app themes rendered from one tokens.json
0bytes of your voice leave the machine

01 / Circle to Ask

Circle anything.
Claude answers beside it.

SuperShiftA freezes the focused monitor. Drag a loop around anything, a stack trace, a chart, a sign in another language, and Claude Sonnet streams the answer next to it. A straight drag is a rectangle, a click takes the window.

  • modelClaude Code CLI, headless: claude -p, no tools, no session files
  • chipsCopy text (OCR) · Explain more · Translate · Table → CSV · Lens
  • hand offSend to agent opens claude, codex, gemini or opencode in a terminal with the circled image
  • privacyscreenshots live in $XDG_RUNTIME_DIR and are deleted on close

02 / Voice typing

Hold to talk.
Nothing leaves the room.

Hold SuperShiftSpace, speak, let go. The words are typed into whatever field has focus. Speech-to-text is whisper.cpp on the GPU through Vulkan, on this machine. The model sits in VRAM while you use it and the server exits after a few idle minutes.

  • enginewhisper.cpp · Vulkan · q5_0 or q8_0 model
  • tidystrips um, uh and repeats (nox voice tidy on)
  • audioa temp file in $XDG_RUNTIME_DIR, deleted after transcribing; transcripts are never logged
  • setupnox voice setup builds it and downloads the model

03 / Mission Control

Every agent on the machine.
One glance, one key.

CtrlSuperM shows every Claude Code session running anywhere on the box: what needs you, what is working, what is done. Answer from the panel, jump to its window, open the last turn's diff, or start a new task in the background with > task in repo. A read-only hook writes the state; the panel never touches your sessions.

The usage ring

The bar shows your Claude plan: a ring for the 5-hour window, the time to its reset, a five-bar meter for the week. Dim below 50%, accent from 80%, pulsing from 95%. The numbers come from Claude Code's own status line, teed to a file in about a millisecond: no network, no credentials.

Mission Control full-screen grid, empty state: counters for sessions, working, needs you, errors, today's cost and tokens
grid view · the real Mission Control, before any session starts.

04 / The everyday desktop

The parts you touch
a thousand times a day.

A shell written from scratch in Quickshell: twenty modules, each one switched in shell.json. Nothing here is a theme over someone else's widgets.

Launcher

Tap Super. Apps, files, windows, calculator, clipboard, emoji, wallpapers, web search, and > for a command palette with every bind and its keys. Try it.

Control center

Connectivity, sound, display, media, performance, notifications. SuperAltN.

Notifications

Popups with real actions, a center with a calendar, Do Not Disturb on SuperAltD.

Screenshots & recording

Every capture lands on a card first; nothing hits ~/Pictures until Save. OCR on SuperShiftX, recording on SuperShiftR.

Lock screen & greeter

hyprlock themed from the tokens, and a login screen that is its own small Hyprland + Quickshell on greetd, with a boot intro.

Battery that lasts years

Charging stops at 80% through UPower; nox battery full for travel days.

Overview, switcher, sessions

SuperTab overview, AltTab switcher, layouts on Super\, and nox ws save to restore apps and window layout later.

Wallpaper, Notes, widgets

A slideshow and GPU upscaling for wallpapers, a Markdown notepad on CtrlSuperS, a desktop clock column and a commit grid.

05 / Drop shelf

Park it at the edge.
Drop it anywhere later.

Drag a file, text, an image or a link to the right edge of the screen and it waits there. Drag it out into any app when you need it. SuperShiftD opens the shelf; Dolphin has Send to Shelf in its menu.

  • by referencefiles are parked, never copied or moved
  • expiryitems leave after 24 hours; nox shelf undo puts back what was taken
  • clinox shelf add ~/Downloads/plan.pdf · echo hi | nox shelf add -

06 / Phone link

Your phone is
a remote for the desk.

A lightweight KDE Connect daemon written in Rust (kdeconnect-rs), with a local patch that adds Remote Input: the phone becomes a touchpad and keyboard. Run-command buttons lock, sleep or screenshot the laptop from across the room. Works with the official KDE Connect app.

  • buttonsLock · Sleep · Screenshot · New note · Pause all media
  • clinox phone send · clip · ring · pair
  • buildnox phone build clones at a pinned commit and applies the patch

07 / One file of tokens

Change one value.
Every app follows.

tokens.json holds every colour, radius, font and timing. Looks are overlays on top of it. nox theme apply renders them into GTK 3/4, KDE and Dolphin, Ghostty, kitty, fuzzel, btop, hyprlock and satty, with a backup, and the shell and Hyprland read the tokens live. Pick a look:

08 / Files

Dolphin,
with a nox menu.

Dolphin themed from the same tokens, with a right-click nox menu for the small jobs: a terminal here, copy the path, send to the shelf or the phone, and for images OCR, annotate, convert, halve, or strip EXIF and GPS. Right-click a file.

09 / Try the whole desktop

The desktop,
in a browser tab.

A full interactive model of nox. Use it like the real one, or jump straight to a part.

nox · /desktopOpen fullscreen →

10 / Keybinds

Keyboard first.
Every bind, from the config.

Straight from the Lua bind groups. In the real thing, Super/ shows this sheet and CtrlSuperSpace searches it.

11 / One command

A fresh Arch install
to this, in one script.

install.sh is idempotent: every step checks first and prints [ok] when there is nothing to do. Machine facts go to git-ignored files, so the repo stays the same on every laptop. nox doctor gives every red line its fix.

$ git clone https://github.com/ParthKapoor-dev/dotfiles ~/code/dev/dotfiles/base0
$ cd ~/code/dev/dotfiles/base0
$ ./install.sh --dry-run   # what is done, what would run; changes nothing
$ ./install.sh             # do it, then log out and back in
$ nox doctor               # red/green report, a fix for every red line

--dry-run · --only · --skip · --yes

Core steps: preflight, packages, stow, migrate, detect, theme, units. Extras are asked one by one: greeter, battery, /etc snapshots, voice, phone, the agent hook, notes.

nox detect

Monitors, battery, mic, thermal sensor, backlight and GPU go into git-ignored local files. A value you changed by hand is kept.

nox update

git pull --ff-only, new migrations once each, re-stow, theme apply, doctor summary. --check changes nothing.

Modules on and off

Every shell module is a switch in shell.json. Every Hyprland setting can be overridden in a local Lua file with an after(ctx) hook.

A personal system, not a distro. Public so anyone can clone it, run one script and get the same desktop.