All checks were successful
Check / eval (push) Successful in 3m41s
Ghostty needs OpenGL 4.3; older GPUs (Intel HD 4000) top out at 4.2. Installer probes glxinfo and writes settings.terminal=kitty into theme-state when below the floor. modules/home/kitty.nix enables Kitty with the same palette, mono font, and opacity as Ghostty so the fallback still looks like Nomarchy. Default machines stay Ghostty-only (no kitty in the HM closure). Doctor and calendar still invoke Ghostty by class — V3 on Acer for SUPER+Return. Verified: V0 flake check; installer-safety; HM with terminal=kitty builds themed kitty.conf + TERMINAL=kitty; default template has no kitty bin.
209 lines
10 KiB
Nix
209 lines
10 KiB
Nix
# Your user environment. The Nomarchy desktop (Hyprland, Waybar,
|
||
# Ghostty, theming engine, Stylix) comes from homeModules.nomarchy;
|
||
# tune it via the nomarchy.* options, add your own packages and
|
||
# programs below.
|
||
#
|
||
# Source of truth for install and flake-init: nomarchy-install copies this
|
||
# file and only patches keyboard layout/variant.
|
||
{ pkgs, ... }:
|
||
|
||
{
|
||
# Session keyboard — match services.xserver.xkb.* in system.nix (console
|
||
# + LUKS prompt follow xkb via the distro module). Installer patches these.
|
||
nomarchy.keyboard.layout = "us";
|
||
nomarchy.keyboard.variant = "";
|
||
|
||
# ── Overrides (the desktop is on by default; tweak or opt out) ──────
|
||
# nomarchy.terminal = "kitty"; # swap the default terminal (installer
|
||
# # sets this via settings.terminal when
|
||
# # OpenGL < 4.3 — Ghostty needs 4.3)
|
||
# nomarchy.kitty.enable = true; # themed Kitty without making it default
|
||
# nomarchy.waybar.enable = false; # bring your own bar
|
||
# nomarchy.stylix.enable = false; # opt out of GTK/Qt theming
|
||
# nomarchy.dockAudio.enable = false; # keep audio put when docking
|
||
# nomarchy.idle.fingerprint = true; # pin lock-screen finger unlock on/off. Normally
|
||
# # you want System › Fingerprint instead: it moves
|
||
# # this AND login/sudo together off one state key,
|
||
# # and this line would override it. Separate options
|
||
# # only because hyprlock is configured here (it can't
|
||
# # read the NixOS side) and doesn't take a finger
|
||
# # through PAM at all — it has its own fprintd backend.
|
||
#
|
||
# Icon pack: Papirus ships by default (auto Dark/Light by theme mode) and
|
||
# is the ONLY icon pack in your closure. To use another, set the `icons`
|
||
# field in your theme-state.json to a theme name from a known pack — only
|
||
# that pack is then added (no bloat otherwise). Known packs: Papirus,
|
||
# Tela, Qogir, Reversal, Numix (see modules/home/theme.nix `iconPacks`).
|
||
# e.g. theme-state.json: "icons": "Tela-dark"
|
||
|
||
# ── Opt-in features — uncomment and tweak to enable ─────────────────
|
||
# nomarchy.nightlight = { # scheduled blue-light filter (hyprsunset)
|
||
# enable = true; # declarative opt-in (or just enable it from
|
||
# # the menu: System › Night light)
|
||
# temperature = 4000; # night warmth in K — lower is warmer
|
||
# sunset = "20:00";
|
||
# sunrise = "07:00";
|
||
# latitude = "52.52"; # geo mode: set BOTH lat/long and sunrise/
|
||
# longitude = "13.40"; # sunset follow your location (wlsunset);
|
||
# # the fixed times above are then ignored
|
||
# };
|
||
#
|
||
# nomarchy.updates = { # passive update-awareness indicator + notification
|
||
# enable = true;
|
||
# interval = "daily"; # how often to check (systemd OnCalendar)
|
||
# flatpak = true; # also count Flatpak updates when flatpak is on
|
||
# };
|
||
#
|
||
# nomarchy.monitors = [ # declarative per-output layout, hotplug-applied
|
||
# { name = "eDP-1"; position = "0x0"; }
|
||
# { name = "HDMI-A-1"; position = "auto-right"; }
|
||
# ]; # names from `hyprctl devices`
|
||
#
|
||
# nomarchy.launchOrFocus = [ # SUPER+<key> focuses the app's window,
|
||
# { key = "B"; class = "firefox"; } # or launches it if none is open;
|
||
# { key = "O"; class = "obsidian"; }# rows appear in the SUPER+? cheatsheet
|
||
# ]; # (class from `hyprctl clients`)
|
||
#
|
||
# nomarchy.displayProfiles = { # named layouts for the SAME outputs —
|
||
# docked = { # switch: System › Display › Profiles
|
||
# monitors = [
|
||
# { name = "eDP-1"; resolution = "disable"; }
|
||
# { name = "DP-3"; position = "0x0"; }
|
||
# { name = "DP-4"; position = "auto-right"; }
|
||
# ];
|
||
# workspaces = { "1" = "DP-3"; "9" = "DP-4"; }; # optional ws→output pins
|
||
# };
|
||
# undocked = [ { name = "eDP-1"; position = "0x0"; } ]; # bare list = monitors only
|
||
# }; # applied instantly + remembered in the
|
||
# # flake state (settings.displayProfile);
|
||
# # the menu's Auto-switch row makes dock/
|
||
# # undock pick the matching profile
|
||
#
|
||
# nomarchy.keyboard.devices = { # a specific keyboard's own layout
|
||
# "keychron-keychron-k2" = { layout = "de"; };
|
||
# };
|
||
#
|
||
# nomarchy.keyboard.layouts = [ "de" "fr" ]; # optional: put these first in the
|
||
# # new-keyboard picker (all installed XKB
|
||
# # layouts are searchable without this)
|
||
#
|
||
# services.nextcloud-client = { # Nextcloud sync client (upstream Home Manager
|
||
# enable = true; # module — installs the client and starts it
|
||
# startInBackground = true; # with the graphical session; tray icon only,
|
||
# }; # no window). Re-comment to remove the app
|
||
# # AND its background service.
|
||
|
||
# ── Application suite ───────────────────────────────────────────────
|
||
# A starter complete-workstation set, installed for your user — yours to
|
||
# curate. Delete a line to slim the machine; uncomment a suggestion (or
|
||
# add your own) to extend it. The desktop itself — terminal, editor
|
||
# keybinds, theming — comes from the modules; these are the heavier
|
||
# standalone apps the distro doesn't impose by default.
|
||
#
|
||
# Apps that need system setup beyond a package (Steam's 32-bit stack,
|
||
# a daemon, group membership, a kernel module) are NOT here — they're
|
||
# opt-in service toggles in system.nix instead (nomarchy.services.* —
|
||
# steam, libvirt, obs, docker, gamemode, kdeconnect, adb, wireshark,
|
||
# ollama, printing).
|
||
home.packages = with pkgs; [
|
||
libreoffice-fresh # office suite (documents, sheets, slides)
|
||
vscode # code editor (unfree; allowUnfree is on)
|
||
(chromium.override { enableWideVine = true; })
|
||
# web browser with Widevine DRM (Netflix, Spotify web…);
|
||
# unfree CDM — mime defaults → chromium-browser.desktop
|
||
gimp # raster image editor
|
||
inkscape # vector graphics
|
||
mpv # media player
|
||
amberol # music player (local library; streaming → spotify below)
|
||
# pwvucontrol + calcurse ship with the Waybar module (volume right-click / clock)
|
||
|
||
# ── More apps — uncomment to add ─────────────────────────────────
|
||
# Web browsers (chromium ships above — swap/delete freely)
|
||
# firefox
|
||
# ungoogled-chromium
|
||
# brave # (unfree)
|
||
# google-chrome # (unfree)
|
||
|
||
# Communication
|
||
# signal-desktop
|
||
# telegram-desktop
|
||
# element-desktop # Matrix
|
||
# vesktop # Discord (themeable client)
|
||
# slack # (unfree)
|
||
# zoom-us # (unfree)
|
||
# teams-for-linux # community client (no official Linux app)
|
||
# thunderbird # email
|
||
|
||
# Office & documents
|
||
# onlyoffice-desktopeditors # stronger MS-Office fidelity
|
||
# kdePackages.okular # heavier PDF viewer (zathura ships by default)
|
||
# xournalpp # PDF annotation
|
||
# pdfarranger
|
||
# calibre # ebook library
|
||
# texliveFull # full LaTeX toolchain — multi-GB (texliveMedium is lighter)
|
||
|
||
# Notes / research
|
||
# logseq
|
||
# obsidian # (unfree)
|
||
# joplin-desktop
|
||
# anki-bin # flashcards
|
||
# zotero # reference manager
|
||
|
||
# Code & data
|
||
# zed-editor
|
||
# lazygit
|
||
# dbeaver-bin # database GUI
|
||
# bruno # API client
|
||
# distrobox # containerized dev shells
|
||
|
||
# Graphics & design
|
||
# krita # digital painting
|
||
# blender # 3D
|
||
# darktable # RAW photo
|
||
|
||
# Audio / video
|
||
# audacity
|
||
# shotcut # video editor
|
||
# kdePackages.kdenlive # video editor (pulls in KDE libs)
|
||
# handbrake # transcoder
|
||
|
||
# Webcam tuning (rarely needed — the distro's IR-hide covers the
|
||
# common dual-sensor problem; these are for genuine tuning cases)
|
||
# cameractrls # GUI for exposure/focus/zoom, saves per-camera presets
|
||
# v4l-utils # v4l2-ctl CLI: list formats, poke controls directly
|
||
|
||
# Media
|
||
# vlc
|
||
# spotify # (unfree)
|
||
# newsflash # RSS reader
|
||
|
||
# Gaming (Steam + GameMode are service toggles in system.nix)
|
||
# lutris
|
||
# heroic # Epic/GOG launcher
|
||
# bottles # Wine prefixes
|
||
# prismlauncher # Minecraft
|
||
# protonup-qt # Proton-GE manager
|
||
# mangohud # in-game overlay
|
||
|
||
# Files, sync & torrents
|
||
# nextcloud-client # bare app — services.nextcloud-client above
|
||
# # also autostarts it with the session
|
||
# localsend # AirDrop-like transfer
|
||
# qbittorrent
|
||
|
||
# Security
|
||
# keepassxc
|
||
# bitwarden-desktop
|
||
|
||
# System
|
||
# gnome-disk-utility
|
||
# gparted
|
||
# baobab # disk usage
|
||
# wireguard-tools # WireGuard CLI (NetworkManager imports .conf tunnels natively)
|
||
|
||
# Local AI (Ollama is a service toggle in system.nix)
|
||
# lmstudio # (unfree; large closure)
|
||
# alpaca # GTK Ollama UI
|
||
];
|
||
}
|