From 15e2687aae5a5949180371298d6175872c2c3ee9 Mon Sep 17 00:00:00 2001 From: lucy Date: Mon, 31 Aug 2026 16:04:56 +0200 Subject: [PATCH 1/7] get this nix shit out of here --- flake.nix | 36 ++++++----- hosts.nix | 28 --------- modules/hosts/nerv/#nerv.nix# | 9 --- modules/hosts/nerv/.#nerv.nix | 1 - modules/programs/emacs.nix | 86 ++++++++++++++++++++++++++ modules/programs/emacs/emacs.nix | 101 ------------------------------- 6 files changed, 108 insertions(+), 153 deletions(-) delete mode 100644 hosts.nix delete mode 100644 modules/hosts/nerv/#nerv.nix# delete mode 120000 modules/hosts/nerv/.#nerv.nix create mode 100644 modules/programs/emacs.nix delete mode 100644 modules/programs/emacs/emacs.nix diff --git a/flake.nix b/flake.nix index 6a4ad46..c64f856 100644 --- a/flake.nix +++ b/flake.nix @@ -1,8 +1,6 @@ { inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - wrappers.url = "github:BirdeeHub/nix-wrapper-modules"; - flake-parts.url = "github:hercules-ci/flake-parts"; base16.url = "github:SenchoPens/base16.nix"; tt-schemes = { url = "github:tinted-theming/schemes"; @@ -14,22 +12,32 @@ { self, nixpkgs, - wrappers, - flake-parts, base16, home-manager, ... }@inputs: - flake-parts.lib.mkFlake { inherit inputs; } ( - let - theme = "catppuccin-mocha"; - in - { - imports = [ - wrappers.flakeModules.wrappers - (import ./hosts.nix { themeName = theme; }) + let + theme = "catppuccin-mocha"; + in + { + nixosConfigurations.nerv = nixpkgs.lib.nixosSystem { + specialArgs = { inherit inputs; }; + modules = [ + base16.nixosModule + { scheme = "${inputs.tt-schemes}/base16/${theme}.yaml"; } + ./modules/hosts/nerv/configuration.nix + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = { inherit inputs; }; + imports = [ + ./modules/programs/emacs.nix + ]; + } ]; + }; + + }; - } - ); } diff --git a/hosts.nix b/hosts.nix deleted file mode 100644 index e47bc07..0000000 --- a/hosts.nix +++ /dev/null @@ -1,28 +0,0 @@ -{themeName}: { inputs, config, self, ... }: -{ - flake.nixosConfigurations.nerv = inputs.nixpkgs.lib.nixosSystem { - specialArgs = { inherit inputs; }; - modules = [ - inputs.base16.nixosModule - { scheme = "${inputs.tt-schemes}/base16/${themeName}.yaml"; } - ./modules/hosts/nerv/configuration.nix - ./modules/home.nix - inputs.home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.extraSpecialArgs = { inherit inputs; }; - } - { - imports = [ - (inputs.wrappers.lib.getInstallModule { - name = "emacs"; - value = inputs.wrappers.lib.wrapperModules.emacs; - }) - ./modules/programs/emacs/emacs.nix - ]; - - } - ]; - }; -} diff --git a/modules/hosts/nerv/#nerv.nix# b/modules/hosts/nerv/#nerv.nix# deleted file mode 100644 index 150d2b9..0000000 --- a/modules/hosts/nerv/#nerv.nix# +++ /dev/null @@ -1,9 +0,0 @@ -{ inputs, ... }: { - flake.nixosConfigurations.nerv = inputs.nixpkgs.lib.nixosSystem { - modules = [ - ./configuration.nix - - ]; - }; -} - \ No newline at end of file diff --git a/modules/hosts/nerv/.#nerv.nix b/modules/hosts/nerv/.#nerv.nix deleted file mode 120000 index 3242c7a..0000000 --- a/modules/hosts/nerv/.#nerv.nix +++ /dev/null @@ -1 +0,0 @@ -lucy@nerv.50314:1788169501 \ No newline at end of file diff --git a/modules/programs/emacs.nix b/modules/programs/emacs.nix new file mode 100644 index 0000000..7e6a759 --- /dev/null +++ b/modules/programs/emacs.nix @@ -0,0 +1,86 @@ +{ + pkgs, + lib, + config, + ... +}: +{ + programs.emacs = { + enable = true; + emacsPackages = + epkgs: with epkgs.melpaPackages; [ + corfu + cape + qml-mode + lua-mode + elcord + nix-mode + base16-theme + ]; + + runtimePkgs = with pkgs; [ + nixd + nixfmt + qt6.qtdeclarative + ]; + constructFiles.early-init.content = lib.mkBefore ";;; -*- lexical-binding: t; -*-"; + configFile = '' + ;;; -*- lexical-binding: t; -*- + (setq make-backup-files nil) + (load-theme 'base16-${config.scheme.scheme-slug} t) + (use-package + corfu + :init + (setq + corfu-auto t + corfu-auto-delay 0.2) + (global-corfu-mode)) + + (setq tab-always-indent 'complete) + (use-package + cape + :bind ("C-c p" . cape-prefix-map) ;; Alternative key: M-, M-p, M-+ + :init (add-hook 'completion-at-point-functions #'cape-file)) + (setq corfu-auto-prefix 2) + (use-package qml-mode) + (use-package lua-mode) + (use-package elcord :init (elcord-mode)) + + (add-to-list + 'display-buffer-alist + '("\\*compilation\\*" (display-buffer-reuse-window + display-buffer-below-selected) + (window-height . 0.3))) + + + ;; remove useless shit and set default opts + (setq ring-bell-function 'ignore) + (menu-bar-mode -1) + (tool-bar-mode -1) + (setq display-line-numbers-type 'relative) + (global-display-line-numbers-mode +1) + (global-tab-line-mode 1) + (scroll-bar-mode -1) + (setq inhibit-splash-screen 1) + (setq custom-file "~/.emacs.d/custom.el") + (load custom-file 'noerror) + + + ;; lsp shit + (add-hook 'nix-mode-hook #'eglot-ensure) + (add-hook 'c-mode-hook #'eglot-ensure) + (add-hook 'qml-mode-hook #'eglot-ensure) + (with-eval-after-load 'eglot + (add-to-list 'eglot-server-programs '(nix-mode . ("nixd"))) + (add-to-list 'eglot-server-programs '(qml-mode . ("qmlls")))) + + ;; keybindings + (keymap-global-set "C-c f" 'eglot-format) + (keymap-global-set "C-c t" 'term) + (keymap-global-set "C-c c" 'compile) + (keymap-global-set "C-c k b" 'kill-current-buffer) + (keymap-global-set "C-c k w" 'kill-buffer-and-window) + (windmove-default-keybindings) + ''; + }; +} diff --git a/modules/programs/emacs/emacs.nix b/modules/programs/emacs/emacs.nix deleted file mode 100644 index 8d6e2b1..0000000 --- a/modules/programs/emacs/emacs.nix +++ /dev/null @@ -1,101 +0,0 @@ -{ - inputs, - lib, - config, - ... -}: -let - schemeName = config.scheme; -in -{ - wrappers.emacs = - { - pkgs, - wlib, - ... - }: - let - scheme = (pkgs.callPackage inputs.base16.lib { }).mkSchemeAttrs schemeName; - in - { - enable = true; - imports = [ - wlib.wrapperModules.emacs - ]; - emacsPackages = - epkgs: with epkgs.melpaPackages; [ - corfu - cape - qml-mode - lua-mode - elcord - nix-mode - base16-theme - ]; - - runtimePkgs = with pkgs; [ - nixd - nixfmt - qt6.qtdeclarative - ]; - constructFiles.early-init.content = lib.mkBefore ";;; -*- lexical-binding: t; -*-"; - configFile = '' - ;;; -*- lexical-binding: t; -*- - (setq make-backup-files nil) - (load-theme 'base16-${scheme.scheme-slug} t) - (use-package - corfu - :init - (setq - corfu-auto t - corfu-auto-delay 0.2) - (global-corfu-mode)) - - (setq tab-always-indent 'complete) - (use-package - cape - :bind ("C-c p" . cape-prefix-map) ;; Alternative key: M-, M-p, M-+ - :init (add-hook 'completion-at-point-functions #'cape-file)) - (setq corfu-auto-prefix 2) - (use-package qml-mode) - (use-package lua-mode) - (use-package elcord :init (elcord-mode)) - - (add-to-list - 'display-buffer-alist - '("\\*compilation\\*" (display-buffer-reuse-window - display-buffer-below-selected) - (window-height . 0.3))) - - - ;; remove useless shit and set default opts - (setq ring-bell-function 'ignore) - (menu-bar-mode -1) - (tool-bar-mode -1) - (setq display-line-numbers-type 'relative) - (global-display-line-numbers-mode +1) - (global-tab-line-mode 1) - (scroll-bar-mode -1) - (setq inhibit-splash-screen 1) - (setq custom-file "~/.emacs.d/custom.el") - (load custom-file 'noerror) - - - ;; lsp shit - (add-hook 'nix-mode-hook #'eglot-ensure) - (add-hook 'c-mode-hook #'eglot-ensure) - (add-hook 'qml-mode-hook #'eglot-ensure) - (with-eval-after-load 'eglot - (add-to-list 'eglot-server-programs '(nix-mode . ("nixd"))) - (add-to-list 'eglot-server-programs '(qml-mode . ("qmlls")))) - - ;; keybindings - (keymap-global-set "C-c f" 'eglot-format) - (keymap-global-set "C-c t" 'term) - (keymap-global-set "C-c c" 'compile) - (keymap-global-set "C-c k b" 'kill-current-buffer) - (keymap-global-set "C-c k w" 'kill-buffer-and-window) - (windmove-default-keybindings) - ''; - }; -} From 33f94bf90069229a4b0763ab7592ad4190c325e5 Mon Sep 17 00:00:00 2001 From: lucy Date: Mon, 31 Aug 2026 16:18:13 +0200 Subject: [PATCH 2/7] add niri file --- flake.lock | 71 +------------------------------------- flake.nix | 4 ++- modules/home.nix | 6 ++++ modules/programs/emacs.nix | 14 ++------ modules/programs/niri.nix | 8 +++++ 5 files changed, 21 insertions(+), 82 deletions(-) create mode 100644 modules/programs/niri.nix diff --git a/flake.lock b/flake.lock index 7e0959e..b2f066e 100644 --- a/flake.lock +++ b/flake.lock @@ -18,24 +18,6 @@ "type": "github" } }, - "flake-parts": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib" - }, - "locked": { - "lastModified": 1787559586, - "narHash": "sha256-onL0VLf9vPllmT0H/OlURIU5r5t5WIEl7t4tVNKT0Nw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "9d0d87172c374f89da73c1cfe6d81ae62feac1f1", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, "fromYaml": { "flake": false, "locked": { @@ -86,21 +68,6 @@ "type": "github" } }, - "nixpkgs-lib": { - "locked": { - "lastModified": 1785031560, - "narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, "nixpkgs_2": { "locked": { "lastModified": 1788039129, @@ -117,30 +84,12 @@ "type": "github" } }, - "nixpkgs_3": { - "locked": { - "lastModified": 1786719841, - "narHash": "sha256-QcpQOT0NQEFkI77t+YXPZqDJc35iIodG7zinieOwFUg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "8be7bd0c83f12e2e3bbba07c9044d6fed9e66f7f", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "root": { "inputs": { "base16": "base16", - "flake-parts": "flake-parts", "home-manager": "home-manager", "nixpkgs": "nixpkgs_2", - "tt-schemes": "tt-schemes", - "wrappers": "wrappers" + "tt-schemes": "tt-schemes" } }, "tt-schemes": { @@ -158,24 +107,6 @@ "repo": "schemes", "type": "github" } - }, - "wrappers": { - "inputs": { - "nixpkgs": "nixpkgs_3" - }, - "locked": { - "lastModified": 1787722691, - "narHash": "sha256-bWBt7v2FhgG6WTLgSi8nYGi1zXaTdA+vTdCRdvR2vcw=", - "owner": "BirdeeHub", - "repo": "nix-wrapper-modules", - "rev": "04ef216559b18214853879df862f493a9e6bb8cf", - "type": "github" - }, - "original": { - "owner": "BirdeeHub", - "repo": "nix-wrapper-modules", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index c64f856..b356df3 100644 --- a/flake.nix +++ b/flake.nix @@ -31,8 +31,10 @@ home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = { inherit inputs; }; - imports = [ + home-manager.users.lucy.imports = [ ./modules/programs/emacs.nix + ./modules/programs/niri.nix + ./modules/home.nix ]; } ]; diff --git a/modules/home.nix b/modules/home.nix index e73ed4e..9093a86 100644 --- a/modules/home.nix +++ b/modules/home.nix @@ -8,6 +8,12 @@ let in { home-manager.users.lucy = { + home.packages = with pkgs; [ + nixd + nixfmt + clang + kdePackages.qtdeclarative + ]; home.stateVersion = "26.05"; gtk = { enable = true; diff --git a/modules/programs/emacs.nix b/modules/programs/emacs.nix index 7e6a759..e79dfe4 100644 --- a/modules/programs/emacs.nix +++ b/modules/programs/emacs.nix @@ -1,13 +1,11 @@ { - pkgs, - lib, config, ... }: { - programs.emacs = { + home-manager.users.lucy.programs.emacs = { enable = true; - emacsPackages = + extraPackages = epkgs: with epkgs.melpaPackages; [ corfu cape @@ -18,13 +16,7 @@ base16-theme ]; - runtimePkgs = with pkgs; [ - nixd - nixfmt - qt6.qtdeclarative - ]; - constructFiles.early-init.content = lib.mkBefore ";;; -*- lexical-binding: t; -*-"; - configFile = '' + extraConfig = '' ;;; -*- lexical-binding: t; -*- (setq make-backup-files nil) (load-theme 'base16-${config.scheme.scheme-slug} t) diff --git a/modules/programs/niri.nix b/modules/programs/niri.nix new file mode 100644 index 0000000..f3a528a --- /dev/null +++ b/modules/programs/niri.nix @@ -0,0 +1,8 @@ +{ pkgs, config, ...}: +let + c = config.scheme.withHashtag; +in +{ + home-manager.users.lucy.wayland.windowManager.niri = {}; + +} From 58ff06858959dde297c26cc81834315ceaabe055 Mon Sep 17 00:00:00 2001 From: lucy Date: Mon, 31 Aug 2026 16:45:20 +0200 Subject: [PATCH 3/7] add foot --- flake.nix | 9 ++- modules/programs/foot.nix | 16 ++++ modules/programs/niri.nix | 156 ++++++++++++++++++++++++++++++++++++-- 3 files changed, 174 insertions(+), 7 deletions(-) create mode 100644 modules/programs/foot.nix diff --git a/flake.nix b/flake.nix index b356df3..9d4d09a 100644 --- a/flake.nix +++ b/flake.nix @@ -2,11 +2,16 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; base16.url = "github:SenchoPens/base16.nix"; + home-manager.url = "github:nix-community/home-manager"; tt-schemes = { url = "github:tinted-theming/schemes"; flake = false; }; - home-manager.url = "github:nix-community/home-manager"; + tt-terminal = { + url = "github:tinted-theming/tinted-terminal"; + flake = false; + }; + }; outputs = { @@ -31,7 +36,7 @@ home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = { inherit inputs; }; - home-manager.users.lucy.imports = [ + imports = [ ./modules/programs/emacs.nix ./modules/programs/niri.nix ./modules/home.nix diff --git a/modules/programs/foot.nix b/modules/programs/foot.nix new file mode 100644 index 0000000..b9ffe1f --- /dev/null +++ b/modules/programs/foot.nix @@ -0,0 +1,16 @@ +{ + pkgs, + config, + inputs, + ... +}: +{ + home-manager.users.lucy.programs.foot = { + enable = true; + settings = { + + } + ++ builtins.readFile (config.scheme inputs.tt-terminal); + }; + +} diff --git a/modules/programs/niri.nix b/modules/programs/niri.nix index f3a528a..646c905 100644 --- a/modules/programs/niri.nix +++ b/modules/programs/niri.nix @@ -1,8 +1,154 @@ -{ pkgs, config, ...}: -let - c = config.scheme.withHashtag; -in +{ pkgs, config, ... }: { - home-manager.users.lucy.wayland.windowManager.niri = {}; + home-manager.users.lucy.wayland.windowManager.niri = { + enable = true; + extraConfig = '' + prefer-no-csd + environment { + GTK_THEME "adw-gtk3-dark" + XDG_CURRENT_DESKTOP "niri" + XDG_SESSION_TYPE "wayland" + XDG_SESSION_DESKTOP "niri" + QT_QPA_PLATFORM "wayland;xcb" + OZONE_PLATFORM "wayland" + ELECTRON_OZONE_PLATFORM_HINT "auto" + } + cursor { + xcursor-size 24 + xcursor-theme "macOS" + } + input { + keyboard { + xkb { + layout "eu" + } + } + + touchpad { + tap + natural-scroll + } + + mouse { + accel-speed -0.4 + accel-profile "flat" + } + focus-follows-mouse max-scroll-amount="0%" + } + + output "PNP(BNQ) BenQ EX2710Q K6R04023019" { + mode "2560x1440@165.002" + scale 1 + transform "normal" + position x=1920 y=0 + } + output "Dell Inc. DELL P2317H 9KFDW6C533DB" { + position x=0 y=0 + } + + + layout { + gaps 16 + center-focused-column "never" + default-column-width { proportion 0.5; } + focus-ring { + off + } + border { + width 4 + active-color "${config.scheme.withHashtag.base0D}" + inactive-color "${config.scheme.withHashtag.base02}" + } + } + spawn-at-startup "qs" + screenshot-path null + animations {} + window-rule { + geometry-corner-radius 16 + clip-to-geometry true + } + + binds { + Mod+return { spawn "foot"; } + Mod+space { spawn "fuzzel"; } + Mod+e { spawn "nautilus"; } + + XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0"; } + XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; } + XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; } + XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; } + + XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; } + XF86AudioStop allow-when-locked=true { spawn-sh "playerctl stop"; } + XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; } + XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; } + + XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; } + XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; } + + Mod+O repeat=false { toggle-overview; } + Mod+Q repeat=false { close-window; } + + Mod+Left { focus-column-left; } + Mod+Down { focus-window-down; } + Mod+Up { focus-window-up; } + Mod+Right { focus-column-right; } + Mod+H { focus-column-left; } + Mod+J { focus-window-down; } + Mod+K { focus-window-up; } + Mod+L { focus-column-right; } + Mod+Ctrl+Left { move-column-left; } + Mod+Ctrl+Down { move-window-down; } + Mod+Ctrl+Up { move-window-up; } + Mod+Ctrl+Right { move-column-right; } + Mod+Ctrl+H { move-column-left; } + Mod+Ctrl+J { move-window-down; } + Mod+Ctrl+K { move-window-up; } + mod+ctrl+l { move-column-right; } + + Mod+comma { focus-monitor-left; } + Mod+period { focus-monitor-right; } + + Mod+Shift+comma { move-column-to-monitor-left; } + Mod+Shift+period { move-column-to-monitor-right; } + + + Mod+Shift+WheelScrollDown { focus-column-right; } + Mod+Shift+WheelScrollUp { focus-column-left; } + Mod+1 { focus-workspace 1; } + Mod+2 { focus-workspace 2; } + Mod+3 { focus-workspace 3; } + Mod+4 { focus-workspace 4; } + Mod+5 { focus-workspace 5; } + Mod+6 { focus-workspace 6; } + Mod+7 { focus-workspace 7; } + Mod+8 { focus-workspace 8; } + Mod+9 { focus-workspace 9; } + Mod+Ctrl+1 { move-column-to-workspace 1; } + Mod+Ctrl+2 { move-column-to-workspace 2; } + Mod+Ctrl+3 { move-column-to-workspace 3; } + Mod+Ctrl+4 { move-column-to-workspace 4; } + Mod+Ctrl+5 { move-column-to-workspace 5; } + Mod+Ctrl+6 { move-column-to-workspace 6; } + Mod+Ctrl+7 { move-column-to-workspace 7; } + Mod+Ctrl+8 { move-column-to-workspace 8; } + Mod+Ctrl+9 { move-column-to-workspace 9; } + + Mod+BracketLeft { consume-or-expel-window-left; } + Mod+BracketRight { consume-or-expel-window-right; } + Mod+F { maximize-column; } + + Mod+Minus { set-column-width "-10%"; } + Mod+Equal { set-column-width "+10%"; } + + Mod+V { toggle-window-floating; } + Mod+Shift+S { screenshot; } + Alt+Shift+S { screenshot-screen; } + Alt+Ctrl+S { screenshot-window; } + Mod+Shift+q { quit; } + } + ''; + + }; } From 9d32d578690c97a9064aff27ae954e6d4769ff2c Mon Sep 17 00:00:00 2001 From: lucy Date: Mon, 31 Aug 2026 17:05:14 +0200 Subject: [PATCH 4/7] add theme file --- flake.lock | 19 ++++++++++++++++++- flake.nix | 7 +++++-- modules/programs/foot.nix | 31 +++++++++++++++++++++++++++++-- theme.nix | 12 ++++++++++++ 4 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 theme.nix diff --git a/flake.lock b/flake.lock index b2f066e..8e1531b 100644 --- a/flake.lock +++ b/flake.lock @@ -89,7 +89,8 @@ "base16": "base16", "home-manager": "home-manager", "nixpkgs": "nixpkgs_2", - "tt-schemes": "tt-schemes" + "tt-schemes": "tt-schemes", + "tt-terminal": "tt-terminal" } }, "tt-schemes": { @@ -107,6 +108,22 @@ "repo": "schemes", "type": "github" } + }, + "tt-terminal": { + "flake": false, + "locked": { + "lastModified": 1786840953, + "narHash": "sha256-R5U9KnrG5cARf90nw5e33Z4A4svwLTRv9qbvFAiAaAY=", + "owner": "tinted-theming", + "repo": "tinted-terminal", + "rev": "993a33342b053b1830e4ccb82448455991dcfd54", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-terminal", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 9d4d09a..0b42623 100644 --- a/flake.nix +++ b/flake.nix @@ -28,8 +28,10 @@ nixosConfigurations.nerv = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ + ./theme.nix + { config.theming.theme = "catppuccin-mocha"; } base16.nixosModule - { scheme = "${inputs.tt-schemes}/base16/${theme}.yaml"; } + ({ config, ... }: { scheme = "${config.theming.theme}"; }) ./modules/hosts/nerv/configuration.nix home-manager.nixosModules.home-manager { @@ -37,9 +39,10 @@ home-manager.useUserPackages = true; home-manager.extraSpecialArgs = { inherit inputs; }; imports = [ + ./modules/home.nix ./modules/programs/emacs.nix ./modules/programs/niri.nix - ./modules/home.nix + ./modules/programs/foot.nix ]; } ]; diff --git a/modules/programs/foot.nix b/modules/programs/foot.nix index b9ffe1f..18acca0 100644 --- a/modules/programs/foot.nix +++ b/modules/programs/foot.nix @@ -4,13 +4,40 @@ inputs, ... }: +let + c = config.scheme; +in { home-manager.users.lucy.programs.foot = { enable = true; settings = { - } - ++ builtins.readFile (config.scheme inputs.tt-terminal); + colors-dark = { + background = c.base00; + foreground = c.base05; + + regular0 = c.base00; + regular1 = c.base08; + regular2 = c.base0B; + regular3 = c.base0A; + regular4 = c.base0D; + regular5 = c.base0E; + regular6 = c.base0C; + regular7 = c.base05; + + bright0 = c.base03; + bright1 = c.base08; + bright2 = c.base0B; + bright3 = c.base0A; + bright4 = c.base0D; + bright5 = c.base0E; + bright6 = c.base0C; + bright7 = c.base07; + + selection-foreground = c.base00; + selection-background = c.base05; + }; + }; }; } diff --git a/theme.nix b/theme.nix new file mode 100644 index 0000000..e4d0841 --- /dev/null +++ b/theme.nix @@ -0,0 +1,12 @@ +{ lib, inputs}: { + options.theming.theme = lib.mkOption { + type = lib.types.str; + apply = name: "${inputs.tt-schemes}/base16/${name}"; + }; + options.theming.font = lib.mkOption { + type = lib.types.str; + }; + options.theming.fontPackage = lib.mkOption { + type = lib.types.pkgs; + }; +} From a172869a4a830f1d010bf1277828ba0f4c6a3292 Mon Sep 17 00:00:00 2001 From: lucy Date: Mon, 31 Aug 2026 17:54:31 +0200 Subject: [PATCH 5/7] add quickshell --- flake.nix | 7 +++++- modules/home.nix | 19 +++++++++++++++ modules/hosts/nerv/configuration.nix | 12 +++++++++- modules/programs/foot.nix | 4 ++++ modules/programs/quickshell.nix | 36 ++++++++++++++++++++++++++++ theme.nix | 6 ++--- 6 files changed, 79 insertions(+), 5 deletions(-) create mode 100644 modules/programs/quickshell.nix diff --git a/flake.nix b/flake.nix index 0b42623..0d87c5d 100644 --- a/flake.nix +++ b/flake.nix @@ -29,7 +29,11 @@ specialArgs = { inherit inputs; }; modules = [ ./theme.nix - { config.theming.theme = "catppuccin-mocha"; } + ({ pkgs, ... }: { + config.theming.theme = "catppuccin-mocha"; + config.theming.font = "Iosevka"; + config.theming.fontPackage = pkgs.iosevka; + }) base16.nixosModule ({ config, ... }: { scheme = "${config.theming.theme}"; }) ./modules/hosts/nerv/configuration.nix @@ -43,6 +47,7 @@ ./modules/programs/emacs.nix ./modules/programs/niri.nix ./modules/programs/foot.nix + ./modules/programs/quickshell.nix ]; } ]; diff --git a/modules/home.nix b/modules/home.nix index 9093a86..c770b05 100644 --- a/modules/home.nix +++ b/modules/home.nix @@ -13,11 +13,29 @@ in nixfmt clang kdePackages.qtdeclarative + fuzzel ]; home.stateVersion = "26.05"; + home.pointerCursor = { + enable = true; + name = "macOS"; + package = pkgs.apple-cursor; + size = 24; + }; gtk = { enable = true; colorScheme = "dark"; + iconTheme = { + name = "Papirus-Dark"; + package = pkgs.papirus-icon-theme; + }; + font = { + name = config.theming.font; + package = config.theming.fontPackage; + size = 12; + }; + cursorTheme.name = "macOS"; + cursorTheme.size = 24; gtk3.extraCss = '' @define-color theme_bg_color ${c.base00}; @define-color theme_fg_color ${c.base05}; @@ -58,5 +76,6 @@ in @define-color success_color ${c.base0B}; ''; }; + dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-dark"; }; } diff --git a/modules/hosts/nerv/configuration.nix b/modules/hosts/nerv/configuration.nix index e7c84ea..da7f513 100644 --- a/modules/hosts/nerv/configuration.nix +++ b/modules/hosts/nerv/configuration.nix @@ -20,7 +20,10 @@ networking.networkmanager.enable = true; # enable flakes - nix.settings.experimental-features = [ "nix-command" "flakes" ]; + nix.settings.experimental-features = [ + "nix-command" + "flakes" + ]; # use proprietary nvidia drivers hardware.graphics.enable = true; @@ -39,6 +42,10 @@ i18n.defaultLocale = "en_US.UTF-8"; services.desktopManager.gnome.enable = true; services.displayManager.gdm.enable = true; + programs.niri = { + enable = true; + + }; services.xserver.xkb.layout = "us"; services.pipewire = { enable = true; @@ -62,6 +69,9 @@ git clang ]; + fonts.packages = [ + config.theming.fontPackage + ]; system.stateVersion = "26.05"; # Did you read the comment? } diff --git a/modules/programs/foot.nix b/modules/programs/foot.nix index 18acca0..cef2d41 100644 --- a/modules/programs/foot.nix +++ b/modules/programs/foot.nix @@ -11,6 +11,10 @@ in home-manager.users.lucy.programs.foot = { enable = true; settings = { + main = { + font = "${config.theming.font}:size=12"; + pad = "10x10"; + }; colors-dark = { background = c.base00; diff --git a/modules/programs/quickshell.nix b/modules/programs/quickshell.nix new file mode 100644 index 0000000..b601367 --- /dev/null +++ b/modules/programs/quickshell.nix @@ -0,0 +1,36 @@ +{ pkgs, config, ... }: +let + c = config.scheme.withHashtag; +in +{ + + home-manager.users.lucy = { + programs.quickshell.enable = true; + programs.quickshell.systemd.enable = true; + xdg.configFile."quickshell/Colors.js" = { + enable = true; + text = '' + const colors = { + base00: "${c.base00}", + base01: "${c.base01}", + base02: "${c.base02}", + base03: "${c.base03}", + base04: "${c.base04}", + base05: "${c.base05}", + base06: "${c.base06}", + base07: "${c.base07}", + base08: "${c.base08}", + base09: "${c.base09}", + base0A: "${c.base0A}", + base0B: "${c.base0B}", + base0C: "${c.base0C}", + base0D: "${c.base0D}", + base0E: "${c.base0E}", + base0F: "${c.base0F}", + } + ''; + force = true; + }; + + }; +} diff --git a/theme.nix b/theme.nix index e4d0841..9d01887 100644 --- a/theme.nix +++ b/theme.nix @@ -1,12 +1,12 @@ -{ lib, inputs}: { +{ lib, inputs, ...}: { options.theming.theme = lib.mkOption { type = lib.types.str; - apply = name: "${inputs.tt-schemes}/base16/${name}"; + apply = name: "${inputs.tt-schemes}/base16/${name}.yaml"; }; options.theming.font = lib.mkOption { type = lib.types.str; }; options.theming.fontPackage = lib.mkOption { - type = lib.types.pkgs; + type = lib.types.package; }; } From 23b4031d3584b739d54779a3ff7f0bb3b3adcb88 Mon Sep 17 00:00:00 2001 From: lucy Date: Mon, 31 Aug 2026 17:59:16 +0200 Subject: [PATCH 6/7] add fuzzel file --- #flake.nix# | 59 +++++++++++++++++++++++++++++++++++++ .#flake.nix | 1 + modules/programs/foot.nix | 2 +- modules/programs/fuzzel.nix | 22 ++++++++++++++ 4 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 #flake.nix# create mode 120000 .#flake.nix create mode 100644 modules/programs/fuzzel.nix diff --git a/#flake.nix# b/#flake.nix# new file mode 100644 index 0000000..a596813 --- /dev/null +++ b/#flake.nix# @@ -0,0 +1,59 @@ +{ + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + base16.url = "github:SenchoPens/base16.nix"; + home-manager.url = "github:nix-community/home-manager"; + tt-schemes = { + url = "github:tinted-theming/schemes"; + flake = false; + }; + tt-terminal = { + url = "github:tinted-theming/tinted-terminal"; + flake = false; + }; + + }; + outputs = + { + self, + nixpkgs, + base16, + home-manager, + ... + }@inputs: + let + theme = "catppuccin-mocha"; + in + { + nixosConfigurations.nerv = nixpkgs.lib.nixosSystem { + specialArgs = { inherit inputs; }; + modules = [ + ./theme.nix + ({ pkgs, ... }: { + config.theming.theme = "catppuccin-mocha"; + config.theming.font = "Iosevka"; + config.theming.fontPackage = pkgs.iosevka; + }) + base16.nixosModule + ({ config, ... }: { scheme = "${config.theming.theme}"; }) + ./modules/hosts/nerv/configuration.nix + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = { inherit inputs; }; + imports = [ + ./modules/home.nix + ./modules/programs/emacs.nix + ./modules/programs/niri.nix + ./modules/programs/foot.nix + ./modules/programs/quickshell.nix + ./modules/programs/fuzzel.nix + ]; + } + ]; + }; + + }; + +} diff --git a/.#flake.nix b/.#flake.nix new file mode 120000 index 0000000..8bdf959 --- /dev/null +++ b/.#flake.nix @@ -0,0 +1 @@ +lucy@nerv.7899:1788190389 \ No newline at end of file diff --git a/modules/programs/foot.nix b/modules/programs/foot.nix index cef2d41..e063b36 100644 --- a/modules/programs/foot.nix +++ b/modules/programs/foot.nix @@ -13,7 +13,7 @@ in settings = { main = { font = "${config.theming.font}:size=12"; - pad = "10x10"; + pad = "15x15"; }; colors-dark = { diff --git a/modules/programs/fuzzel.nix b/modules/programs/fuzzel.nix new file mode 100644 index 0000000..36e0ac8 --- /dev/null +++ b/modules/programs/fuzzel.nix @@ -0,0 +1,22 @@ +{ config }: +let + c = config.scheme.withHashtag; +in +{ + home-manager.users.lucy.programs.fuzzel = { + enable = true; + settings = { + main = { + font = "${config.theming.font}:size=12"; + }; + border.width = 2; + colors = { + background = c.base00; + text = c.base05; + match = c.base0D; + selection = c.base0D; + border = c.base0D; + }; + }; + }; +} From 462c4c400428d45911415e93c457cfa904cc3e1a Mon Sep 17 00:00:00 2001 From: lucy Date: Mon, 31 Aug 2026 18:07:45 +0200 Subject: [PATCH 7/7] add more apps to theme and remove quickshell startup from niri --- #flake.nix# | 59 ------------------------------------- .#flake.nix | 1 - flake.nix | 1 + modules/home.nix | 5 +++- modules/programs/fuzzel.nix | 30 ++++++++++--------- modules/programs/niri.nix | 1 - 6 files changed, 21 insertions(+), 76 deletions(-) delete mode 100644 #flake.nix# delete mode 120000 .#flake.nix diff --git a/#flake.nix# b/#flake.nix# deleted file mode 100644 index a596813..0000000 --- a/#flake.nix# +++ /dev/null @@ -1,59 +0,0 @@ -{ - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - base16.url = "github:SenchoPens/base16.nix"; - home-manager.url = "github:nix-community/home-manager"; - tt-schemes = { - url = "github:tinted-theming/schemes"; - flake = false; - }; - tt-terminal = { - url = "github:tinted-theming/tinted-terminal"; - flake = false; - }; - - }; - outputs = - { - self, - nixpkgs, - base16, - home-manager, - ... - }@inputs: - let - theme = "catppuccin-mocha"; - in - { - nixosConfigurations.nerv = nixpkgs.lib.nixosSystem { - specialArgs = { inherit inputs; }; - modules = [ - ./theme.nix - ({ pkgs, ... }: { - config.theming.theme = "catppuccin-mocha"; - config.theming.font = "Iosevka"; - config.theming.fontPackage = pkgs.iosevka; - }) - base16.nixosModule - ({ config, ... }: { scheme = "${config.theming.theme}"; }) - ./modules/hosts/nerv/configuration.nix - home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.extraSpecialArgs = { inherit inputs; }; - imports = [ - ./modules/home.nix - ./modules/programs/emacs.nix - ./modules/programs/niri.nix - ./modules/programs/foot.nix - ./modules/programs/quickshell.nix - ./modules/programs/fuzzel.nix - ]; - } - ]; - }; - - }; - -} diff --git a/.#flake.nix b/.#flake.nix deleted file mode 120000 index 8bdf959..0000000 --- a/.#flake.nix +++ /dev/null @@ -1 +0,0 @@ -lucy@nerv.7899:1788190389 \ No newline at end of file diff --git a/flake.nix b/flake.nix index 0d87c5d..a596813 100644 --- a/flake.nix +++ b/flake.nix @@ -48,6 +48,7 @@ ./modules/programs/niri.nix ./modules/programs/foot.nix ./modules/programs/quickshell.nix + ./modules/programs/fuzzel.nix ]; } ]; diff --git a/modules/home.nix b/modules/home.nix index c770b05..8dd2351 100644 --- a/modules/home.nix +++ b/modules/home.nix @@ -13,7 +13,6 @@ in nixfmt clang kdePackages.qtdeclarative - fuzzel ]; home.stateVersion = "26.05"; home.pointerCursor = { @@ -25,6 +24,10 @@ in gtk = { enable = true; colorScheme = "dark"; + theme = { + name = "adw-gtk3-dark"; + package = pkgs.adw-gtk3; + }; iconTheme = { name = "Papirus-Dark"; package = pkgs.papirus-icon-theme; diff --git a/modules/programs/fuzzel.nix b/modules/programs/fuzzel.nix index 36e0ac8..f490212 100644 --- a/modules/programs/fuzzel.nix +++ b/modules/programs/fuzzel.nix @@ -1,21 +1,23 @@ -{ config }: +{ config, ... }: let c = config.scheme.withHashtag; in { - home-manager.users.lucy.programs.fuzzel = { - enable = true; - settings = { - main = { - font = "${config.theming.font}:size=12"; - }; - border.width = 2; - colors = { - background = c.base00; - text = c.base05; - match = c.base0D; - selection = c.base0D; - border = c.base0D; + home-manager.users.lucy = { + programs.fuzzel = { + enable = true; + settings = { + main = { + font = "${config.theming.font}:size=12"; + }; + border.width = 2; + colors = { + background = "${c.base00}ff"; + text = "${c.base05}ff"; + match = "${c.base0D}ff"; + selection = "${c.base0D}ff"; + border = "${c.base0D}ff"; + }; }; }; }; diff --git a/modules/programs/niri.nix b/modules/programs/niri.nix index 646c905..eb117e1 100644 --- a/modules/programs/niri.nix +++ b/modules/programs/niri.nix @@ -60,7 +60,6 @@ inactive-color "${config.scheme.withHashtag.base02}" } } - spawn-at-startup "qs" screenshot-path null animations {} window-rule {