Compare commits
11 Commits
07e2d5c51c
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
72f7e7b93d | ||
|
|
20de3d4f97 | ||
|
|
2a301a049f | ||
| bd7e5a5706 | |||
|
|
af8fa321ff | ||
|
|
6238f41e43 | ||
|
|
fb4d5d7acc | ||
|
|
99a6c7d547 | ||
|
|
85ef8745d7 | ||
|
|
b82954a7b5 | ||
|
|
66c98949ab |
@@ -51,7 +51,15 @@ let
|
|||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
xdg.configFile = configMappings;
|
xdg.configFile = configMappings // {
|
||||||
|
# mako reads ~/.config/mako/config by default. The themed Nomarchy
|
||||||
|
# config (urgency rules, app filters, button handlers) lives under
|
||||||
|
# nomarchy/default/mako/core.ini for organizational reasons, so wire
|
||||||
|
# it explicitly here. Without this, mako silently falls back to its
|
||||||
|
# built-in defaults and every Nomarchy notification customization is
|
||||||
|
# inert.
|
||||||
|
"mako/config".source = lib.mkDefault ./config/nomarchy/default/mako/core.ini;
|
||||||
|
};
|
||||||
|
|
||||||
home.file.".XCompose" = lib.mkDefault {
|
home.file.".XCompose" = lib.mkDefault {
|
||||||
source = ./config/nomarchy/default/xcompose;
|
source = ./config/nomarchy/default/xcompose;
|
||||||
|
|||||||
@@ -33,11 +33,6 @@ in
|
|||||||
default = schema.home.waybar;
|
default = schema.home.waybar;
|
||||||
description = "Whether the top bar is enabled.";
|
description = "Whether the top bar is enabled.";
|
||||||
};
|
};
|
||||||
skipVsCodeTheme = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = schema.home.skipVsCodeTheme;
|
|
||||||
description = "Whether to skip theme changes in VSCode.";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
nightlightTemperature = lib.mkOption {
|
nightlightTemperature = lib.mkOption {
|
||||||
type = lib.types.int;
|
type = lib.types.int;
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ in
|
|||||||
idle = lib.mkDefault (togglesState.idle or schema.home.idle);
|
idle = lib.mkDefault (togglesState.idle or schema.home.idle);
|
||||||
nightlight = lib.mkDefault (togglesState.nightlight or schema.home.nightlight);
|
nightlight = lib.mkDefault (togglesState.nightlight or schema.home.nightlight);
|
||||||
waybar = lib.mkDefault (togglesState.waybar or schema.home.waybar);
|
waybar = lib.mkDefault (togglesState.waybar or schema.home.waybar);
|
||||||
skipVsCodeTheme = lib.mkDefault (togglesState.skipVsCodeTheme or schema.home.skipVsCodeTheme);
|
|
||||||
};
|
};
|
||||||
nightlightTemperature = lib.mkDefault (togglesState.nightlightTemperature or schema.home.nightlightTemperature);
|
nightlightTemperature = lib.mkDefault (togglesState.nightlightTemperature or schema.home.nightlightTemperature);
|
||||||
theme = lib.mkDefault (togglesState.theme or schema.home.theme);
|
theme = lib.mkDefault (togglesState.theme or schema.home.theme);
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ in
|
|||||||
settings.Login = {
|
settings.Login = {
|
||||||
HandleLidSwitch = lib.mkDefault "suspend-then-hibernate";
|
HandleLidSwitch = lib.mkDefault "suspend-then-hibernate";
|
||||||
HandleLidSwitchExternalPower = lib.mkDefault "suspend";
|
HandleLidSwitchExternalPower = lib.mkDefault "suspend";
|
||||||
HandlePowerKey = "hibernate";
|
HandlePowerKey = lib.mkDefault "hibernate";
|
||||||
IdleAction = "suspend-then-hibernate";
|
IdleAction = lib.mkDefault "suspend-then-hibernate";
|
||||||
IdleActionSec = toString (cfg.idleMinutes * 60);
|
IdleActionSec = lib.mkDefault (toString (cfg.idleMinutes * 60));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -24,6 +24,18 @@ in
|
|||||||
"crypted_main" on multi-disk installs to match the disko layout.
|
"crypted_main" on multi-disk installs to match the disko layout.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
user = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "nomarchy";
|
||||||
|
description = ''
|
||||||
|
Primary user whose home subset (.ssh, .gnupg, keyrings, common
|
||||||
|
directories) survives the rootfs wipe. Must match the user
|
||||||
|
created via `users.users.<name>` — otherwise the persistence
|
||||||
|
block is silently inert and the user's home directory is wiped
|
||||||
|
on every boot. The installer writes this for you.
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
@@ -72,7 +84,7 @@ in
|
|||||||
"/etc/machine-id"
|
"/etc/machine-id"
|
||||||
"/etc/supergfxd.conf"
|
"/etc/supergfxd.conf"
|
||||||
];
|
];
|
||||||
users.nomarchy = {
|
users.${cfg.user} = {
|
||||||
directories = [
|
directories = [
|
||||||
".ssh"
|
".ssh"
|
||||||
".gnupg"
|
".gnupg"
|
||||||
|
|||||||
@@ -153,10 +153,18 @@ Without prime config, supergfxd still switches modes but render-offload via `nvi
|
|||||||
|
|
||||||
`bool`, default `false`. Intel IPU7 camera support (kernel modules + firmware).
|
`bool`, default `false`. Intel IPU7 camera support (kernel modules + firmware).
|
||||||
|
|
||||||
### `impermanence.enable`
|
### `nomarchy.system.impermanence.enable`
|
||||||
|
|
||||||
`bool`, default `false`. Erase Your Darlings root wipe on boot. Defined in `core/system/impermanence.nix`. The installer writes the flag based on the impermanence prompt.
|
`bool`, default `false`. Erase Your Darlings root wipe on boot. Defined in `core/system/impermanence.nix`. The installer writes the flag based on the impermanence prompt.
|
||||||
|
|
||||||
|
### `nomarchy.system.impermanence.mainLuksName`
|
||||||
|
|
||||||
|
`str`, default `"crypted"`. Name of the `/dev/mapper` entry holding the BTRFS root. The disko layout uses `"crypted"` on single-disk installs and `"crypted_main"` once multiple drives are selected — the installer writes the matching value automatically.
|
||||||
|
|
||||||
|
### `nomarchy.system.impermanence.user`
|
||||||
|
|
||||||
|
`str`, default `"nomarchy"`. Primary user whose home subset (`.ssh`, `.gnupg`, `.local/share/keyrings`, `Documents`, `Downloads`, `Pictures`, `Videos`, `Projects`) survives the rootfs wipe. Must match the user created via `users.users.<name>` — otherwise the persistence block is silently inert and the user's home directory is wiped on every boot. The installer writes this for you.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Home Manager options (`home.nix`)
|
## Home Manager options (`home.nix`)
|
||||||
@@ -197,10 +205,6 @@ Without prime config, supergfxd still switches modes but render-offload via `nvi
|
|||||||
|
|
||||||
`bool`, default `true`. Whether the top bar is deployed at all.
|
`bool`, default `true`. Whether the top bar is deployed at all.
|
||||||
|
|
||||||
### `nomarchy.toggles.skipVsCodeTheme`
|
|
||||||
|
|
||||||
`bool`, default `false`. Skip theme overrides in VSCode — useful if you manage VSCode themes yourself.
|
|
||||||
|
|
||||||
### `nomarchy.nightlightTemperature`
|
### `nomarchy.nightlightTemperature`
|
||||||
|
|
||||||
`int`, default `4000`. Nightlight color temperature (Kelvin).
|
`int`, default `4000`. Nightlight color temperature (Kelvin).
|
||||||
@@ -255,11 +259,11 @@ Without prime config, supergfxd still switches modes but render-offload via `nvi
|
|||||||
|
|
||||||
### `nomarchy.themeLoader.enable`
|
### `nomarchy.themeLoader.enable`
|
||||||
|
|
||||||
`bool`, default `true`. Auto-load theme-specific app configs (btop, waybar, mako, kitty, alacritty) from the active theme. Disable if you want to provide your own.
|
`bool`, default `true`. Auto-load theme-specific app configs from the active theme's `apps/` directory. Disable if you want to provide your own.
|
||||||
|
|
||||||
### `nomarchy.themeLoader.apps.{btop,waybar,mako,kitty,alacritty}`
|
### `nomarchy.themeLoader.apps.btop`
|
||||||
|
|
||||||
`bool`, default `true` each. Per-app toggles for the theme loader — pick which apps follow the active theme.
|
`bool`, default `true`. Deploy the active theme's `apps/btop.theme` to `~/.config/btop/themes/nomarchy.theme`. The only per-app toggle in this group — waybar themes inline from `colorScheme` in `features/desktop/waybar`; kitty and alacritty are themed by stylix targets (`themes/engine/stylix.nix`); mako has no theme integration yet.
|
||||||
|
|
||||||
### `nomarchy.overrides.enable`
|
### `nomarchy.overrides.enable`
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,11 @@ Guardrails (apply when adding anything):
|
|||||||
- **Optional `nomarchy-installer-vm`** rebuilt as a real flake app (not a one-off shell script) so users can install Nomarchy into a libvirt VM declaratively.
|
- **Optional `nomarchy-installer-vm`** rebuilt as a real flake app (not a one-off shell script) so users can install Nomarchy into a libvirt VM declaratively.
|
||||||
- **Surface support module** via the relevant `nixos-hardware` profile + Surface kernel patches behind a `nomarchy.hardware.isSurface` toggle.
|
- **Surface support module** via the relevant `nixos-hardware` profile + Surface kernel patches behind a `nomarchy.hardware.isSurface` toggle.
|
||||||
- **Consolidate palette imports in `flake.nix` via `nomarchyLib`.** `flake.nix:79-80` re-imports `./themes/palettes` and recomputes `themeNames` even though `lib/default.nix` already exports both. Two computations, same result today — drift risk tomorrow. Import `nomarchyLib = import ./lib { inherit lib; }` once and use `nomarchyLib.{palettes,themeNames}` to make `lib/default.nix` the single source of truth for the theme list.
|
- **Consolidate palette imports in `flake.nix` via `nomarchyLib`.** `flake.nix:79-80` re-imports `./themes/palettes` and recomputes `themeNames` even though `lib/default.nix` already exports both. Two computations, same result today — drift risk tomorrow. Import `nomarchyLib = import ./lib { inherit lib; }` once and use `nomarchyLib.{palettes,themeNames}` to make `lib/default.nix` the single source of truth for the theme list.
|
||||||
|
- **Decide what to do about `features/apps/chromium/Default/Preferences`.** The module deploys a static 204-byte `Default/Preferences` (setting `extensions.theme.use_system = false`, `browser.theme.color_scheme = 2`) into chromium's mutable profile directory via Home Manager symlink. Chromium expects to write that file at runtime, so either the symlink is silently replaced on first save (losing the static defaults) or the write fails silently. The real chromium theming work happens via managed policies in `core/system/browser.nix`. Probably the user-profile deployment should be removed; needs someone with chromium-internals knowledge to confirm before deletion.
|
||||||
|
- **`themes/templates/*.tpl` — decide what these are for.** Eleven mustache-style templates (`alacritty.toml.tpl`, `btop.theme.tpl`, `kitty.conf.tpl`, etc.) are deployed to `~/.local/share/nomarchy/templates/` via `themes/engine/files.nix`, but no script in the tree consumes them. Likely vestigial from a pre-stylix templating system. Either delete the directory + the `xdg.dataFile` deployment, or document them as user-reference assets and explain how to use them.
|
||||||
|
- **Move `programs.uwsm` Hyprland session out of `core/system/virtualization.nix`.** Session-manager config is wired in the virtualization module by historical accident — it's loaded unconditionally on every install and has nothing to do with libvirt/docker. Move to a dedicated `core/system/session.nix` (or fold into the Hyprland feature module) so the location matches the responsibility.
|
||||||
|
- **Route installer keymap into Hyprland's Wayland session.** `core/home/config/nomarchy/default/hypr/input.conf:3` hardcodes `kb_layout = us`. The installer writes `services.xserver.xkb.layout = "$KEYMAP_LAYOUT"` (and `console.keyMap`), but Hyprland reads its own input config on native Wayland, so a non-US user's chosen layout works in XWayland apps and the TTY console but not in native Wayland apps — surprising and inconsistent. Fix paths: (a) template `input.conf` from a new `nomarchy.keymap.{layout,variant}` home option that the installer writes alongside `formFactor`, or (b) propagate `XKB_DEFAULT_LAYOUT` via session env so Hyprland's fallback kicks in. Option (a) is the durable fix; needs the installer's heredoc to add the option write.
|
||||||
|
- **Make `nomarchy.toggles.waybar` a Nix-level gate, or document it as runtime-only.** Today the toggle is exported as `NOMARCHY_TOGGLE_WAYBAR` env, consumed only by `nomarchy-toggle-waybar` (which pkill/exec's at runtime). The Nix module always sets `programs.waybar.enable = lib.mkDefault true`, so waybar comes back on every rebuild/reboot regardless of the toggle. Inconsistent with `toggles.idle`, which correctly gates `services.hypridle.enable`. Either gate `programs.waybar.enable` on the toggle (persistent) or rename the option to make its session-only nature obvious.
|
||||||
|
|
||||||
## 3. Pillar: Script & menu audit
|
## 3. Pillar: Script & menu audit
|
||||||
|
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
general.import = [ "~/.config/nomarchy/current/theme/alacritty.toml" ]
|
|
||||||
|
|
||||||
[env]
|
|
||||||
TERM = "xterm-256color"
|
|
||||||
|
|
||||||
[terminal]
|
|
||||||
osc52 = "CopyPaste"
|
|
||||||
|
|
||||||
[font]
|
|
||||||
normal = { family = "JetBrainsMono Nerd Font", style = "Regular" }
|
|
||||||
bold = { family = "JetBrainsMono Nerd Font", style = "Bold" }
|
|
||||||
italic = { family = "JetBrainsMono Nerd Font", style = "Italic" }
|
|
||||||
size = 9
|
|
||||||
|
|
||||||
[window]
|
|
||||||
padding.x = 14
|
|
||||||
padding.y = 14
|
|
||||||
decorations = "None"
|
|
||||||
|
|
||||||
[keyboard]
|
|
||||||
bindings = [
|
|
||||||
{ key = "Insert", mods = "Shift", action = "Paste" },
|
|
||||||
{ key = "Insert", mods = "Control", action = "Copy" },
|
|
||||||
{ key = "Return", mods = "Shift", chars = "\u001B\r" }
|
|
||||||
]
|
|
||||||
@@ -2,14 +2,6 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
nomarchyLib = import ../lib { inherit lib; };
|
nomarchyLib = import ../lib { inherit lib; };
|
||||||
userPackagesFile = "${config.home.homeDirectory}/.config/home-manager/user-packages.json";
|
|
||||||
userPackages = if builtins.pathExists userPackagesFile then
|
|
||||||
let
|
|
||||||
pkgNames = builtins.fromJSON (builtins.readFile userPackagesFile);
|
|
||||||
# Filter to only packages that exist in pkgs to prevent build failures
|
|
||||||
validPkgs = builtins.filter (name: builtins.hasAttr name pkgs) pkgNames;
|
|
||||||
in builtins.map (name: pkgs.${name}) validPkgs
|
|
||||||
else [];
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
|||||||
@@ -1,71 +0,0 @@
|
|||||||
# paths to stylesheets on the filesystem which should be applied to the application
|
|
||||||
#
|
|
||||||
# relative paths are resolved relative to the location of the config file
|
|
||||||
stylesheets: ["../nomarchy/current/theme/hyprland-preview-share-picker.css"]
|
|
||||||
# default page selected when the picker is opened
|
|
||||||
default_page: outputs
|
|
||||||
|
|
||||||
window:
|
|
||||||
# height of the application window
|
|
||||||
height: 500
|
|
||||||
# width of the application window
|
|
||||||
width: 1000
|
|
||||||
|
|
||||||
image:
|
|
||||||
# size to which the images should be internally resized to reduce the memory footprint
|
|
||||||
resize_size: 500
|
|
||||||
# target size of the longer side of the image widget
|
|
||||||
widget_size: 150
|
|
||||||
|
|
||||||
classes:
|
|
||||||
# css classname of the window
|
|
||||||
window: window
|
|
||||||
# css classname of the card containing an image and a label
|
|
||||||
image_card: card
|
|
||||||
# css classname of the card containing an image and a label when the image is still being loaded
|
|
||||||
image_card_loading: card-loading
|
|
||||||
# css classname of the image inside the card
|
|
||||||
image: image
|
|
||||||
# css classname of the label inside the card
|
|
||||||
image_label: image-label
|
|
||||||
# css classname of the notebook containing all pages
|
|
||||||
notebook: notebook
|
|
||||||
# css classname of a label of the notebook
|
|
||||||
tab_label: tab-label
|
|
||||||
# css classname of a notebook page (e.g. windows container)
|
|
||||||
notebook_page: page
|
|
||||||
# css classname of the region selection button
|
|
||||||
region_button: region-button
|
|
||||||
# css classname of the button containing the session restore checkbox and label
|
|
||||||
restore_button: restore-button
|
|
||||||
|
|
||||||
windows:
|
|
||||||
# minimum amount of image cards per row on the windows page
|
|
||||||
min_per_row: 3
|
|
||||||
# maximum amount of image cards per row on the windows page
|
|
||||||
max_per_row: 999
|
|
||||||
# number of clicks needed to select a window
|
|
||||||
clicks: 1
|
|
||||||
# spacing in pixels between the window cards
|
|
||||||
spacing: 12
|
|
||||||
|
|
||||||
outputs:
|
|
||||||
# number of clicks needed to select an output
|
|
||||||
clicks: 1
|
|
||||||
# spacing in pixels between the outputs in the layout
|
|
||||||
# note: the spacing is applied from both sides (the gap is `spacing * 2`)
|
|
||||||
spacing: 6
|
|
||||||
# show the label with the output name
|
|
||||||
show_label: false
|
|
||||||
# size the output cards respectively to their scaling
|
|
||||||
respect_output_scaling: true
|
|
||||||
|
|
||||||
region:
|
|
||||||
# command to run for region selection
|
|
||||||
# the output needs to be in the <output>@<x>,<y>,<w>,<h> (e.g. DP-3@2789,436,756,576) format
|
|
||||||
command: slurp -f '%o@%x,%y,%w,%h'
|
|
||||||
|
|
||||||
# hide the token restore checkbox and use the default value instead
|
|
||||||
hide_token_restore: true
|
|
||||||
# enable debug logs by default
|
|
||||||
debug: false
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
# Extra autostart processes
|
|
||||||
# exec-once = uwsm-app -- my-service
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
source = ~/.config/nomarchy/current/theme/hyprlock.conf
|
|
||||||
|
|
||||||
general {
|
|
||||||
ignore_empty_input = true
|
|
||||||
}
|
|
||||||
|
|
||||||
background {
|
|
||||||
monitor =
|
|
||||||
color = $color
|
|
||||||
path = ~/.config/nomarchy/current/background
|
|
||||||
blur_passes = 3
|
|
||||||
}
|
|
||||||
|
|
||||||
animations {
|
|
||||||
enabled = false
|
|
||||||
}
|
|
||||||
|
|
||||||
input-field {
|
|
||||||
monitor =
|
|
||||||
size = 650, 100
|
|
||||||
position = 0, 0
|
|
||||||
halign = center
|
|
||||||
valign = center
|
|
||||||
|
|
||||||
inner_color = $inner_color
|
|
||||||
outer_color = $outer_color
|
|
||||||
outline_thickness = 4
|
|
||||||
|
|
||||||
font_family = JetBrainsMono Nerd Font
|
|
||||||
font_color = $font_color
|
|
||||||
|
|
||||||
placeholder_text = Enter Password
|
|
||||||
check_color = $check_color
|
|
||||||
fail_text = <i>$FAIL ($ATTEMPTS)</i>
|
|
||||||
|
|
||||||
rounding = 0
|
|
||||||
shadow_passes = 0
|
|
||||||
fade_on_empty = false
|
|
||||||
}
|
|
||||||
|
|
||||||
auth {
|
|
||||||
fingerprint:enabled = false
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
# Makes hyprsunset do nothing to the screen by default
|
|
||||||
# Without this, the default applies some tint to the monitor
|
|
||||||
profile {
|
|
||||||
time = 07:00
|
|
||||||
identity = true
|
|
||||||
}
|
|
||||||
|
|
||||||
# To enable auto switch to nightlight, set in your .config/hypr/autostart:
|
|
||||||
# exec-once = uwsm app -- hyprsunset
|
|
||||||
# and use the following:
|
|
||||||
# profile {
|
|
||||||
# time = 20:00
|
|
||||||
# temperature = 4000
|
|
||||||
# }
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
# Change the default Nomarchy look'n'feel
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
|
||||||
general {
|
|
||||||
# No gaps between windows or borders
|
|
||||||
# gaps_in = 0
|
|
||||||
# gaps_out = 0
|
|
||||||
# border_size = 0
|
|
||||||
|
|
||||||
# Change to niri-like side-scrolling layout
|
|
||||||
# layout = scrolling
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
|
||||||
decoration {
|
|
||||||
# Use round window corners
|
|
||||||
# rounding = 8
|
|
||||||
|
|
||||||
# Dim unfocused windows (0.0 = no dim, 1.0 = fully dimmed)
|
|
||||||
# dim_inactive = true
|
|
||||||
# dim_strength = 0.15
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
|
||||||
animations {
|
|
||||||
# Disable all animations
|
|
||||||
# enabled = no
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://wiki.hypr.land/Configuring/Variables/#layout
|
|
||||||
layout {
|
|
||||||
# Avoid overly wide single-window layouts on wide screens
|
|
||||||
# single_window_aspect_ratio = 1 1
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
screencopy {
|
|
||||||
allow_token_by_default = true
|
|
||||||
custom_picker_binary = hyprland-preview-share-picker
|
|
||||||
}
|
|
||||||
@@ -48,13 +48,14 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# Deploy Hyprland configuration files
|
# Deploy Hyprland configuration files. Only the files that nomarchy.conf
|
||||||
|
# actually sources are deployed here — looknfeel.conf and autostart.conf
|
||||||
|
# live under ~/.config/nomarchy/default/hypr/ and are deployed by the
|
||||||
|
# core/home bulk-nomarchy dir, so duplicating them here was dead surface.
|
||||||
xdg.configFile."hypr/nomarchy.conf".source = ./config/nomarchy.conf;
|
xdg.configFile."hypr/nomarchy.conf".source = ./config/nomarchy.conf;
|
||||||
xdg.configFile."hypr/monitors.conf".source = lib.mkDefault ./config/monitors.conf;
|
xdg.configFile."hypr/monitors.conf".source = lib.mkDefault ./config/monitors.conf;
|
||||||
xdg.configFile."hypr/input.conf".source = lib.mkDefault ./config/input.conf;
|
xdg.configFile."hypr/input.conf".source = lib.mkDefault ./config/input.conf;
|
||||||
xdg.configFile."hypr/bindings.conf".source = lib.mkDefault ./config/bindings.conf;
|
xdg.configFile."hypr/bindings.conf".source = lib.mkDefault ./config/bindings.conf;
|
||||||
xdg.configFile."hypr/looknfeel.conf".source = lib.mkDefault ./config/looknfeel.conf;
|
|
||||||
xdg.configFile."hypr/autostart.conf".source = lib.mkDefault ./config/autostart.conf;
|
|
||||||
|
|
||||||
# Run swaybg as a proper systemd user service rather than a Hyprland exec-once.
|
# Run swaybg as a proper systemd user service rather than a Hyprland exec-once.
|
||||||
# exec-once fails silently (black screen with no visible error) when timing
|
# exec-once fails silently (black screen with no visible error) when timing
|
||||||
|
|||||||
@@ -71,7 +71,6 @@ let
|
|||||||
NOMARCHY_TOGGLE_IDLE = if config.nomarchy.toggles.idle then "true" else "false";
|
NOMARCHY_TOGGLE_IDLE = if config.nomarchy.toggles.idle then "true" else "false";
|
||||||
NOMARCHY_TOGGLE_NIGHTLIGHT = if config.nomarchy.toggles.nightlight then "true" else "false";
|
NOMARCHY_TOGGLE_NIGHTLIGHT = if config.nomarchy.toggles.nightlight then "true" else "false";
|
||||||
NOMARCHY_TOGGLE_WAYBAR = if config.nomarchy.toggles.waybar then "true" else "false";
|
NOMARCHY_TOGGLE_WAYBAR = if config.nomarchy.toggles.waybar then "true" else "false";
|
||||||
NOMARCHY_TOGGLE_SKIP_VSCODE_THEME = if config.nomarchy.toggles.skipVsCodeTheme then "true" else "false";
|
|
||||||
NOMARCHY_MONOSPACE_FONT = config.nomarchy.fonts.monospace;
|
NOMARCHY_MONOSPACE_FONT = config.nomarchy.fonts.monospace;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1459,7 +1459,7 @@ generate_flake_config() {
|
|||||||
if (( ${#_drives[@]} > 1 )); then
|
if (( ${#_drives[@]} > 1 )); then
|
||||||
_main_luks_name="crypted_main"
|
_main_luks_name="crypted_main"
|
||||||
fi
|
fi
|
||||||
impermanence_opt=$'nomarchy.system.impermanence.enable = true;\n nomarchy.system.impermanence.mainLuksName = "'"$_main_luks_name"$'";'
|
impermanence_opt=$'nomarchy.system.impermanence.enable = true;\n nomarchy.system.impermanence.mainLuksName = "'"$_main_luks_name"$'";\n nomarchy.system.impermanence.user = "'"$USERNAME"$'";'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local PROFILE_SYSTEM_OPTS=""
|
local PROFILE_SYSTEM_OPTS=""
|
||||||
|
|||||||
@@ -26,7 +26,6 @@
|
|||||||
idle = true;
|
idle = true;
|
||||||
nightlight = false;
|
nightlight = false;
|
||||||
waybar = true;
|
waybar = true;
|
||||||
skipVsCodeTheme = false;
|
|
||||||
|
|
||||||
# Hyprland window manager settings
|
# Hyprland window manager settings
|
||||||
hyprland = {
|
hyprland = {
|
||||||
@@ -58,7 +57,6 @@
|
|||||||
fingerprint = false;
|
fingerprint = false;
|
||||||
fido2 = false;
|
fido2 = false;
|
||||||
hybridGPU = false;
|
hybridGPU = false;
|
||||||
makima = false;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -54,31 +54,16 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
apps = {
|
apps = {
|
||||||
|
# waybar, kitty, alacritty, and mako are intentionally absent. Waybar
|
||||||
|
# themes inline in features/desktop/waybar via colorScheme; kitty and
|
||||||
|
# alacritty are themed by stylix targets (themes/engine/stylix.nix); mako
|
||||||
|
# has no theme integration yet. Only btop is loaded from the active
|
||||||
|
# theme's apps/ directory.
|
||||||
btop = lib.mkOption {
|
btop = lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = "Whether to load btop theme from active theme.";
|
description = "Whether to load btop theme from active theme.";
|
||||||
};
|
};
|
||||||
waybar = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "Whether to load waybar CSS from active theme.";
|
|
||||||
};
|
|
||||||
mako = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "Whether to load mako config from active theme.";
|
|
||||||
};
|
|
||||||
kitty = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "Whether to load kitty config from active theme.";
|
|
||||||
};
|
|
||||||
alacritty = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "Whether to load alacritty config from active theme.";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
include=~/.config/nomarchy/default/mako/core.ini
|
|
||||||
|
|
||||||
text-color={{ foreground }}
|
|
||||||
border-color={{ accent }}
|
|
||||||
background-color={{ background }}
|
|
||||||
Reference in New Issue
Block a user