color palette
#0B0E20
#DCD4BC
#A8BE4A
#F6D26C
#272B5E
#FBFBF4
#0B0E20
#C85234
#8CAE3E
#E6B14A
#6E72C6
#8B67C0
#7FA3DC
#DCD4BC
#6E70A8
#E4703F
#BFD45C
#F6D26C
#8A8EDE
#AC8AE0
#A5C4F0
#FBFBF4
preview
readme
A Scanner Darkly — an Omarchy theme
A dark Omarchy theme built from the venetian night: deep indigo where the light comes through the slats, rotoscoped amber for anything warm enough to be a person, and one acid-green signal — the title green — reserved for whatever the system is currently telling you.
The palette was sampled directly from the film's poster art. Nothing in the theme is red until something has actually gone wrong.

Install
omarchy theme install https://github.com/craigderington/omarchy-scanner-darkly-theme.gitLocal development
From a local checkout, link the repository into Omarchy and apply it:
ln -s "$(pwd)" ~/.config/omarchy/themes/scanner-darkly
omarchy theme set scanner-darklyThe link command can be skipped when that theme path already exists.
What's included
- Seven original 4K wallpapers, made for this theme rather than collected: faces behind pried-apart blinds (which doubles as the title plate), the scramble suit, the blue-flower field, a holo-scanner readout laid over Arctor's living room, the suit worn by nobody, a rotoscoped portrait, and the New-Path corridor
- A Hyprland 0.55+ Lua treatment: 10 px traced rounding, Substance-D blur, interpolated (rather than mechanical) motion curves, and a three-stop green → amber → indigo border that rotates continuously on the focused window — the scramble suit, cycling
- Coordinated Omarchy surfaces: shell bar and popups, launcher, menus, notifications, polkit, lock screen, image picker, GTK, and the screen-share picker
- Terminals: Alacritty, Foot, Kitty, Ghostty
- Editors and tools: Neovim (Aether), VS Code / VSCodium / Cursor, Helix, Zellij, btop, Obsidian, Pi, gum, SwayOSD, mako
- A standalone Base24 palette for anything else you want to match
Palette
| Role | Colour | Name |
|---|---|---|
| background | #0B0E20 | Night Blinds |
| surface | #171B38 | Slat Shadow |
| selection | #272B5E | Scramble Field |
| comment / muted | #6E70A8 | Blind Haze |
| foreground | #DCD4BC | Bone |
| bright foreground | #FBFBF4 | Poster White |
| accent | #A8BE4A | Title Green |
| red / error | #C85234 | Fault Rust |
| orange / action | #E07B2C | Substance |
| yellow / warning | #E6B14A | Face Amber |
| green / success | #8CAE3E | New Path |
| cyan / info | #7FA3DC | Slat Light |
| blue / structure | #6E72C6 | Venetian |
| magenta / keyword | #8B67C0 | Scramble Suit |
| cursor | #F6D26C | Beacon Amber |
Semantic roles in colors.toml are the source of truth; color0–color15
mirror them for older integrations.
Wallpapers
Full-resolution originals (3840 × 2160) are in backgrounds/.
Integration notes
Omarchy applies the palette, shell, Hyprland, wallpaper, terminal, and generated app themes when the theme is selected.
One thing worth knowing about omarchy theme install: a theme cloned from a
repository has its executable files stripped and regenerated from colors.toml.
That covers every *.lua (so hyprland.lua and gum_env.lua), the four
terminal configs, and vscode.json. The colours survive — but the authored
Hyprland art direction in hyprland.lua (the rotating border, the blur and
motion curves, the window rules) does not. To keep it, symlink or copy the
checkout into ~/.config/omarchy/themes/ instead, where a theme you placed
yourself is unrestricted.
gtk.css, helix.toml, zellij.kdl, obsidian.css, the Base24 palette, and
the standalone vscode-extension/ package are optional assets. They need the
corresponding application plus an app-specific import or manual installation;
their presence in the theme directory alone does not activate them.
Attribution
- Visual direction and palette are drawn from A Scanner Darkly (2006, dir. Richard Linklater), adapted from the novel by Philip K. Dick. This is an unofficial fan-made theme and is not affiliated with or endorsed by the rights holders.
- The palette was sampled from promotional poster artwork for the film.
- All seven wallpapers are original artwork. No frames, stills, or poster
assets from the film are redistributed here. Five plates are built on images
generated locally with FLUX.1-schnell (Apache-2.0, so the outputs carry no
redistribution restriction); the blinds, the cube, the reticles, the readout
type and the lockup are drawn over them with
pycairo, and the scramble-suit plate is fully procedural.
Reproducing the wallpapers
Everything in tools/ runs standalone.
| Script | Produces |
|---|---|
flux_gen.py | the FLUX bases (needs a ComfyUI endpoint on :8188 with flux1-schnell-fp8.safetensors) |
wp01_blinds.py | 01 — blinds, pried gap and lockup over the faces plate |
wp02_scramble.py | 02 — fully procedural, three parallax planes |
wp04_scanner.py | 04 — wireframe cube and readout over the room plate |
wp_plates.py | 03, 05, 06, 07 — grading of the remaining FLUX plates |
contact_sheet.py, preview.py | the two images in this README |
flux_gen.py renders at 1920x1088 and the plates are upscaled with ImageMagick
Lanczos. That is deliberate: FLUX tokenises at 16px, so a native 3840x2160 pass
is roughly an order of magnitude more attention working set, and on a
unified-memory host that allocation competes with the OS.
Licence
MIT.
