diff --git a/Droidnix/README.org b/Droidnix/README.org index 314aec5aa..234b68aca 100644 --- a/Droidnix/README.org +++ b/Droidnix/README.org @@ -1002,14 +1002,16 @@ This file installs and configures waybar { lib, config, pkgs, ... }: let - user = config.defaultUser or "henrov"; - assetPath = ../../../assets/system/conf/waybar; + user = config.defaultUser or "henrov"; + assetPath = ./assets/system/conf/waybar; + # Only include files that actually exist files = builtins.filter (f: builtins.pathExists f) [ "${assetPath}/waybar.conf" "${assetPath}/style.css" ]; + # Generate Home Manager file attributes homeFiles = lib.genAttrs (builtins.map builtins.baseNameOf files) (name: { source = "${assetPath}/${name}"; target = ".config/waybar/${name}"; @@ -1019,7 +1021,7 @@ in # Install Waybar system-wide environment.systemPackages = [ pkgs.waybar ]; - # Deploy only existing files via Home Manager + # Deploy config files via Home Manager home-manager.users.${user}.home.file = homeFiles; } #+END_SRC diff --git a/Droidnix/generated/hosts/traveldroid/boot.nix b/Droidnix/generated/hosts/traveldroid/boot.nix deleted file mode 100644 index 145dfda36..000000000 --- a/Droidnix/generated/hosts/traveldroid/boot.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ pkgs, config, lib, flakeRoot, ... }: - -let - grubThemeDir = "/boot/grub/themes/catppuccin-mocha"; - grubThemeFile = "${grubThemeDir}/theme.txt"; - plymouthThemeDir = "/usr/share/plymouth/themes/catppuccin"; -in -{ - boot = { - initrd = { - verbose = false; - kernelModules = []; - }; - - kernelPackages = pkgs.linuxPackages_latest; - kernelParams = [ "quiet" "udev.log_level=3" "systemd.show_status=auto" ]; - consoleLogLevel = 3; - - supportedFilesystems = [ "ntfs" ]; - - # Correct GRUB + UEFI configuration - loader = { - grub = { - enable = true; - efiSupport = true; # enable UEFI mode - devices = [ "nodev" ]; # nodev for UEFI - useOSProber = true; - theme = grubThemeFile; - }; - - timeout = 5; - }; - - # Plymouth splashscreen - plymouth = { - enable = true; - theme = "rings"; - themePackages = with pkgs; [ - (adi1090x-plymouth-themes.override { - selected_themes = [ "rings" ]; - }) - ]; - }; - }; - - # Activation script: write Catppuccin GRUB theme - system.activationScripts.grubTheme = { - text = '' - mkdir -p ${grubThemeDir} - - cat > ${grubThemeFile} <" . pixel-scroll-precision) ; dont zoom in please, just scroll - ("C-" . pixel-scroll-precision) ; dont zoom in either, just scroll - ("C-x k" . kill-current-buffer)) ; kill the buffer, dont ask -:hook -(text-mode . delete-trailing-whitespace-mode) -(prog-mode . delete-trailing-whitespace-mode) -(after-init . global-display-line-numbers-mode) ;; always show line numbers -(after-init . column-number-mode) ;; column number in the mode line -(after-init . size-indication-mode) ;; file size in the mode line -(after-init . pixel-scroll-precision-mode) ;; smooth mouse scroll -(after-init . electric-pair-mode) ;; i mean ... parens should auto create -(after-init . reset-custom-vars) -) - -(use-package autorevert -:ensure nil -:custom -(auto-revert-interval 3) -(auto-revert-remote-files nil) -(auto-revert-use-notify t) -(auto-revert-avoid-polling nil) -(auto-revert-verbose t) -:hook -(after-init . global-auto-revert-mode)) - -(use-package recentf -:ensure nil -:commands (recentf-mode recentf-cleanup) -:hook -(after-init . recentf-mode) -:custom -(recentf-auto-cleanup 'never) -(recentf-exclude - (list "\\.tar$" "\\.tbz2$" "\\.tbz$" "\\.tgz$" "\\.bz2$" - "\\.bz$" "\\.gz$" "\\.gzip$" "\\.xz$" "\\.zip$" - "\\.7z$" "\\.rar$" - "COMMIT_EDITMSG\\'" - "\\.\\(?:gz\\|gif\\|svg\\|png\\|jpe?g\\|bmp\\|xpm\\)$" - "-autoloads\\.el$" "autoload\\.el$")) - -:config -;; A cleanup depth of -90 ensures that `recentf-cleanup' runs before -;; `recentf-save-list', allowing stale entries to be removed before the list -;; is saved by `recentf-save-list', which is automatically added to -;; `kill-emacs-hook' by `recentf-mode'. -(add-hook 'kill-emacs-hook #'recentf-cleanup -90)) - -(use-package savehist -:ensure nil -:commands (savehist-mode savehist-save) -:hook -(after-init . savehist-mode) -:custom -(savehist-autosave-interval 600) -(savehist-additional-variables - '(kill-ring ; clipboard - register-alist ; macros - mark-ring global-mark-ring ; marks - search-ring regexp-search-ring))) - -(use-package hl-line -:ensure nil -:custom -(hl-line-sticky-flag nil) -(global-hl-line-sticky-flag nil) -:hook -(after-init . global-hl-line-mode)) - -(use-package saveplace -:ensure nil -:commands (save-place-mode save-place-local-mode) -:hook -(after-init . save-place-mode) -:custom -(save-place-limit 400)) - -(use-package nerd-icons -:custom -;; disable bright icon colors -(nerd-icons-color-icons nil))hells.nix - -(use-package doom-modeline -:custom -(inhibit-compacting-font-caches t) ;; speed -(doom-modeline-buffer-file-name-style 'relative-from-project) -(doom-modeline-major-mode-icon nil) ;; distracting icons, no thank you -(doom-modeline-buffer-encoding nil) ;; everything is utf-8 anyway -(doom-modeline-buffer-state-icon nil) ;; the filename already shows me -(doom-modeline-lsp nil) ;; lsp state is too distracting, too often -:hook (after-init . doom-modeline-mode)) - -(load-theme 'catppuccin :no-confirm) - -(use-package diminish :demand t) ;; declutter the modeline -(use-package eldoc -:diminish eldoc-mode -:custom -(eldoc-echo-area-use-multiline-p nil)) ;; docs for everything - -(use-package eldoc-box -:defer t -:config -(set-face-background 'eldoc-box-border (catppuccin-color 'green)) -(set-face-background 'eldoc-box-body (catppuccin-color 'base)) -:bind -(("M-h" . eldoc-box-help-at-point))) - -(use-package pulsar -:commands pulsar-global-mode pulsar-recenter-top pulsar-reveal-entry -:init -(defface pulsar-catppuccin -`((default :extend t) - (((class color) (min-colors 88) (background light)) - :background ,(catppuccin-color 'sapphire)) - (((class color) (min-colors 88) (background dark)) - :background ,(catppuccin-color 'sapphire)) - (t :inverse-video t)) -"Alternative nord face for `pulsar-face'." -:group 'pulsar-faces) -:custom -(pulsar-face 'pulsar-catppuccin) -:hook -(after-init . pulsar-global-mode)) - -(use-package which-key -:commands which-key-mode -:diminish which-key-mode -:hook -(after-init . which-key-mode)) - -(use-package expreg -:bind ("M-m" . expreg-expand)) - -(use-package vundo) ;; undo tree - -;; better structured editing -(use-package puni -:commands puni-global-mode -:hook -(after-init . puni-global-mode)) - -(use-package avy -:bind -("M-i" . avy-goto-char-2) -:custom -(avy-background t)) - -(use-package consult -:bind -("C-x b" . consult-buffer) ;; orig. switch-to-buffer -("M-y" . consult-yank-pop) ;; orig. yank-pop -("M-g M-g" . consult-goto-line) ;; orig. goto-line -("M-g i" . consult-imenu) ;; consult version is interactive -("M-g r" . consult-ripgrep) ;; find in project also works -:custom -(consult-narrow-key "<")) - -(use-package vertico -:commands vertico-mode -:custom -(read-file-name-completion-ignore-case t) -(read-buffer-completion-ignore-case t) -(completion-ignore-case t) -(enable-recursive-minibuffers t) -(minibuffer-prompt-properties '(read-only t cursor-intangible t face minibuffer-prompt)) -:init -(vertico-mode) -:hook -(minibuffer-setup-hook . cursor-intangible-mode)) - -(use-package marginalia -:commands marginalia-mode -:hook (after-init . marginalia-mode)) - -(use-package crux -:bind -("C-c M-e" . crux-find-user-init-file) -("C-c C-w" . crux-transpose-windows) -("C-c M-d" . crux-find-current-directory-dir-locals-file) -("C-a" . crux-move-beginning-of-line)) - -(use-package magit -:bind (("C-M-g" . magit-status))) - -(use-package nerd-icons-corfu -:commands nerd-icons-corfu-formatter -:defines corfu-margin-formatters) - -(use-package corfu -:commands global-corfu-mode -:custom -(corfu-cycle t) -(corfu-auto t) -(corfu-auto-delay 1) -(corfu-auto-prefix 3) -(corfu-separator ?_) -:hook -(after-init . global-corfu-mode) -:config -(add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter)) - -(use-package cape) - -(use-package orderless -:custom -(completion-styles '(orderless partial-completion basic)) -(completion-category-defaults nil) -(completion-category-overrides nil)) - -(use-package yasnippet -:commands yas-global-mode -:diminish yas-minor-mode -:hook -(after-init . yas-global-mode)) - -(use-package yasnippet-snippets :after yasnippet) - -(use-package exec-path-from-shell -:commands exec-path-from-shell-initialize -:custom -(exec-path-from-shell-arguments nil) -:hook -(after-init . exec-path-from-shell-initialize)) - -(use-package nixpkgs-fmt -:custom -(nixpkgs-fmt-command "nixfmt")) - -(use-package eat -:bind -(("C-c e p" . eat-project) - ("C-c e t" . eat))) - -(use-package f :demand t) - -(use-package envrc -:commands envrc-global-mode -:hook -(after-init . envrc-global-mode)) - -(use-package gptel -:commands gptel-make-anthropic f-read-text -:config -(gptel-make-anthropic "Claude" -:stream t :key (f-read-text "/run/secrets/claude_key"))) - -(use-package sideline-flymake) -(use-package sideline-eglot) -(use-package sideline -:custom -(sideline-backends-right '(sideline-flymake sideline-eglot)) -:hook -(eglot-managed-mode . sideline-mode) -(flymake-mode . sideline-mode)) - -(use-package eglot -:custom -(eglot-extend-to-xref t) -(eglot-ignored-server-capabilities '(:inlayHintProvider)) -(jsonrpc-event-hook nil) -:hook -(eglot-managed-mode . eldoc-box-hover-mode) -(before-save . eldoc-format-buffer) -:bind -(:map eglot-mode-map - ("C-c l a" . eglot-code-actions) - ("C-c l r" . eglot-rename) - ("C-c l h" . eldoc) - ("C-c l g" . xref-find-references) - ("C-c l w" . eglot-reconnect))) - -(use-package proced -:custom -(proced-auto-update-flag t) -(proced-auto-update-interval 3) -(proced-enable-color-flag t) -(proced-show-remote-processes t)) - -(use-package org -:ensure t -:defer t -:commands (org-mode org-capture org-agenda) -:init -(defvar org-journal-file "~/nextcloud/org/journal.org") -(defvar org-archive-file "~/nextcloud/org/archive.org") -(defvar org-notes-file "~/nextcloud/org/notes.org") -(defvar org-inbox-file "~/nextcloud/org/inbox.org") -(defvar org-work-file "~/nextcloud/org/work.org") -(defun my/org-capture-project-target-heading () -"Determine Org target headings from the current file's project path. - -This function assumes a directory structure like '~/projects/COMPANY/PROJECT/'. -It extracts 'COMPANY' and 'PROJECT' to use as nested headlines -for an Org capture template. - -If the current buffer is not visi -ting a file within such a -project structure, it returns nil, causing capture to default to -the top of the file." -(when-let* ((path (buffer-file-name))) ; Ensure we are in a file-visiting buffer - (let ((path-parts (split-string path "/" t " "))) - (when-let* ((projects-pos (cl-position "projects" path-parts :test #'string=)) - (company (nth (+ 1 projects-pos) path-parts)) - (project (nth (+ 2 projects-pos) path-parts))) - ;; Return a list of headlines for Org to find or create. - (list company project))))) -:bind -(("C-c c" . org-capture) - ("C-c i" . org-store-link) - ("C-c a" . org-agenda) - :map org-mode-map - ("C-c t" . org-toggle-inline-images) - ("C-c l" . org-toggle-link-display)) -:custom -(org-agenda-files (list org-inbox-file org-journal-file)) -(org-directory "~/nextcloud/org") -(org-default-notes-file org-inbox-file) -(org-archive-location (concat org-archive-file "::* From %s")) -(org-log-done 'time) -(org-log-into-drawer t) -(org-hide-emphasis-markers t) -(org-src-fontify-natively t) -(org-src-tab-acts-natively t) -(org-capture-templates '(("t" "todo" entry (file org-inbox-file) - "* todo %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n%a\n\n)") - ("j" "Journal" entry (file+olp+datetree org-journal-file) - "* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n%a\n\n") - ("n" "Note" entry (file org-notes-file) - "* %?\n:PROPERTIES:\n:CREATED: %U\n:END:\n\n%a\n\n") - ("p" "Project Task" item - (file+function org-work-file my/org-capture-project-target-heading) - "* todo %? \n CLOCK: %U" - )) - ) -:config -;; Enable syntax highlighting in code blocks -(add-hook 'org-mode-hook 'turn-on-font-lock) -(add-hook 'org-mode-hook 'org-indent-mode)) - -;; extras -(use-package comp-run -:ensure nil -:config -(push "tramp-loaddefs.el.gz" native-comp-jit-compilation-deny-list) -(push "cl-loaddefs.el.gz" native-comp-jit-compilation-deny-list)) - -(use-package rustic -:custom -(rustic-lsp-client 'eglot)) - -(provide 'init) - -;;; init.el ends here diff --git a/Droidnix/generated/modules/apps/packages.nix b/Droidnix/generated/modules/apps/packages.nix deleted file mode 100644 index 08aadcf82..000000000 --- a/Droidnix/generated/modules/apps/packages.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ config, lib, pkgs, flakeRoot, ... }: - -let - packagesConfPath = "${flakeRoot}/assets/system/apps/packages.conf"; - raw = builtins.readFile packagesConfPath; - - # Split lines safely, keep guard against splitting into characters - rawLines = lib.splitString "\n" raw; - _guard = - assert !(builtins.stringLength raw > 1 && builtins.length rawLines == builtins.stringLength raw); - true; - - # Clean each line: remove CRs, remove comments, trim - cleanLine = line: - let - noCR = lib.replaceStrings [ "\r" ] [ "" ] line; - noInlineComment = lib.head (lib.splitString "#" noCR); - in - lib.strings.trim noInlineComment; - - # Filter out empty lines - entries = builtins.filter (l: l != "") (map cleanLine rawLines); - - # Resolve attribute path in pkgs - resolvePkg = name: - let - parts = lib.splitString "." name; - found = lib.attrByPath parts null pkgs; - in - if found == null then - throw '' - packages.nix: package not found in pkgs - Token : ${builtins.toJSON name} - packages.conf : ${packagesConfPath} - Hint : check the attribute name on search.nixos.org/packages - '' - else - found; - - # Final system-wide package list - packages = builtins.seq _guard (map resolvePkg entries); - -in -{ - - nixpkgs.config = { allowUnfree = true; }; - environment.systemPackages = packages; -} diff --git a/Droidnix/generated/modules/apps/thunar.nix b/Droidnix/generated/modules/apps/thunar.nix deleted file mode 100644 index 3f5119fd5..000000000 --- a/Droidnix/generated/modules/apps/thunar.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ pkgs, config, lib, ... }: - -let - username = config.defaultUser or "henrov"; -in -{ - # System-wide Thunar with essential plugins - environment.systemPackages = with pkgs; [ - thunar # main file manager - thunar-archive-plugin # zip, tar, rar, 7z support - thunar-volman # auto-mount removable drives - gvfs # support for external drives and network shares - xarchiver # optional GUI archive manager - ]; - - # Home Manager configuration - home-manager.users.${username} = { - home.stateVersion = "26.05"; # required - - home.sessionVariables = { - FILE_MANAGER = "thunar"; - USERNAME = username; - }; - }; -} diff --git a/Droidnix/generated/modules/apps/wofi.nix b/Droidnix/generated/modules/apps/wofi.nix deleted file mode 100644 index f134ce272..000000000 --- a/Droidnix/generated/modules/apps/wofi.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ lib, config, pkgs, ... }: - -let - programName = "wofi"; - username = config.defaultUser or "henrov"; - assetPath = ../../../assets/system/conf/${programName}; -in -{ - # Deploy assets to ~/.config/wofi via Home Manager - home-manager.users.${username}.home.file = - if builtins.pathExists assetPath then - lib.genAttrs (builtins.attrNames (builtins.readDir assetPath)) (name: { - source = "${assetPath}/${name}"; - target = ".config/${programName}/${name}"; - }) - else {}; -} diff --git a/Droidnix/generated/modules/apps/zenbrowser.nix b/Droidnix/generated/modules/apps/zenbrowser.nix deleted file mode 100644 index e44278f52..000000000 --- a/Droidnix/generated/modules/apps/zenbrowser.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ config, pkgs, lib, inputs, ... }: - -let - # Grab the Zen Browser from the flake overlay for your system - zenBrowser = inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default; -in -{ - environment.systemPackages = [ - zenBrowser - ]; -} diff --git a/Droidnix/generated/modules/desktop/hyprland.nix b/Droidnix/generated/modules/desktop/hyprland.nix deleted file mode 100644 index d4329a857..000000000 --- a/Droidnix/generated/modules/desktop/hyprland.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ lib, config, pkgs, inputs, ... }: - -let - username = config.defaultUser or "henrov"; - - # Paths - assetPath = ../../../assets/hyprland/conf/hypr; - mainConfig = "${assetPath}/hyprland.conf"; - - # Determine Hyprland package with fallbacks - hyprlandPkg = - pkgs.hyprland or - pkgs.hyprland-git or - inputs.hyprland.packages.${pkgs.system}.default; - - # Map all files in the asset folder - hyprFiles = - builtins.listToAttrs ( - map (f: { - name = ".config/hypr/${f}"; - value = { source = "${assetPath}/${f}"; }; - }) (builtins.attrNames (builtins.readDir assetPath)) - ); -in -{ - # System-wide package - environment.systemPackages = [ hyprlandPkg ]; - - # Home Manager user settings - _module.args.hmUsers = { - ${username} = { - home.packages = [ hyprlandPkg ]; - - # Merge main config + all other files - home.file = lib.mkMerge [ - hyprFiles - { - ".config/hypr/hyprland.conf" = { source = mainConfig; }; - } - ]; - - # Optional module-specific settings - settings.general."col.active_border" = "0xff97cbcd 0xff89b4fa"; - }; - }; -} diff --git a/Droidnix/generated/modules/desktop/stylix.nix b/Droidnix/generated/modules/desktop/stylix.nix deleted file mode 100644 index 6e7add615..000000000 --- a/Droidnix/generated/modules/desktop/stylix.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ lib, config, pkgs, ... }: - -let - username = config.defaultUser or "henrov"; - - moduleName = "stylix"; - assetPath = ../../../assets/system/conf/${moduleName}; - - # Read all files in asset directory - programFiles = builtins.readDir assetPath; - - files = lib.genAttrs (builtins.attrNames programFiles) (name: { - source = "${assetPath}/${name}"; - }); - - # Read optional stylix.conf - stylixConfFile = "${assetPath}/stylix.conf"; - stylixConf = - if builtins.pathExists stylixConfFile - then builtins.readFile stylixConfFile - else ""; - - # Cursor defaults - cursorName = "phinger-cursors-light"; - cursorSize = 24; -in -{ - # System packages - environment.systemPackages = [ - pkgs.feh - pkgs.st - ]; - - # Home Manager user settings - _module.args.hmUsers = { - ${username} = { - - # Copy all stylix config files into ~/.config/stylix/ - xdg.configFile = - lib.mapAttrs' (name: value: { - name = "${moduleName}/${name}"; - value = { inherit (value) source; }; - }) files; - - # Session variables - home.sessionVariables = { - STYLIX_CONF = "$HOME/.config/stylix/stylix.conf"; - - XCURSOR_THEME = cursorName; - XCURSOR_SIZE = toString cursorSize; - HYPRCURSOR_THEME = cursorName; - HYPRCURSOR_SIZE = toString cursorSize; - }; - }; - }; -} diff --git a/Droidnix/generated/modules/desktop/waybar.nix b/Droidnix/generated/modules/desktop/waybar.nix deleted file mode 100644 index ae1f65454..000000000 --- a/Droidnix/generated/modules/desktop/waybar.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, config, pkgs, ... }: - -let - user = config.defaultUser or "henrov"; - assetPath = ../../../assets/system/conf/waybar; - - files = builtins.filter (f: builtins.pathExists f) [ - "${assetPath}/waybar.conf" - "${assetPath}/style.css" - ]; - - homeFiles = lib.genAttrs (builtins.map builtins.baseNameOf files) (name: { - source = "${assetPath}/${name}"; - target = ".config/waybar/${name}"; - }); -in -{ - # Install Waybar system-wide - environment.systemPackages = [ pkgs.waybar ]; - - # Deploy only existing files via Home Manager - home-manager.users.${user}.home.file = homeFiles; -} diff --git a/Droidnix/generated/modules/desktop/wayland.nix b/Droidnix/generated/modules/desktop/wayland.nix deleted file mode 100644 index b3fee4bb8..000000000 --- a/Droidnix/generated/modules/desktop/wayland.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, config, pkgs, inputs, ... }: - -let - username = config.defaultUser or "henrov"; - - # Wayland-specific packages: uwsm - uwsmPkg = - if builtins.hasAttr "uwsm" pkgs then - pkgs.uwsm - else - (inputs.uwsm.packages.${pkgs.system}.default or pkgs.uwsm); -in -{ - # System packages - environment.systemPackages = [ uwsmPkg ]; - - # Enable Hyprland via Home Manager / programs - programs.hyprland.enable = true; - - # Home Manager user settings - _module.args.hmUsers = { - ${username} = { - home.packages = [ uwsmPkg ]; - - # Optional Hyprland-specific user configs - # programs.hyprland.enable = true; # not needed if set at global level - }; - }; -} diff --git a/Droidnix/generated/modules/desktop/xdg.nix b/Droidnix/generated/modules/desktop/xdg.nix deleted file mode 100644 index 05edd708c..000000000 --- a/Droidnix/generated/modules/desktop/xdg.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ lib, config, pkgs, inputs, ... }: - -let - # Default user fallback - username = config.defaultUser or "henrov"; - - # Safe package reference with flake input fallback - xdgPortalHyprlandPkg = pkgs.xdg-desktop-portal-hyprland or - inputs.xdgPortalHyprland.packages.${pkgs.system}.default; -in -{ - # System-wide installation of XDG portal package - environment.systemPackages = [ - xdgPortalHyprlandPkg - ]; - - # Home Manager user configuration - _module.args.hmUsers = { - ${username} = { - home.packages = [ - xdgPortalHyprlandPkg - ]; - - # Enable XDG portal for Hyprland - xdg.portal = { - enable = true; - extraPortals = [ xdgPortalHyprlandPkg ]; - config.hyprland = { - "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ]; - }; - }; - }; - }; -} diff --git a/Droidnix/generated/modules/system/dbus.nix b/Droidnix/generated/modules/system/dbus.nix deleted file mode 100644 index b39025a6b..000000000 --- a/Droidnix/generated/modules/system/dbus.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ config, pkgs, lib, ... }: -{ - services.dbus = lib.mkForce { - enable = true; # Force this to be true - }; - - # Configure dbus-broker via its configuration file - environment.etc."dbus-broker/launch.conf".text = '' - [General] - LogLevel=warning - MaxConnectionsPerUser=2048 - ''; -} diff --git a/Droidnix/generated/modules/system/login-tuigreeter.nix b/Droidnix/generated/modules/system/login-tuigreeter.nix deleted file mode 100644 index f2b8d6ff6..000000000 --- a/Droidnix/generated/modules/system/login-tuigreeter.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ pkgs, user, ... } : -{ -environment.systemPackages = with pkgs; [ -tuigreet -]; -services.greetd = { -enable = true; -settings = { - default_session = { - command = pkgs.lib.mkForce "${pkgs.tuigreet}/bin/tuigreet --remember --time --time-format '%I:%M %p | %a • %h | %F'"; - }; -}; -}; -} diff --git a/Droidnix/generated/modules/system/networking.nix b/Droidnix/generated/modules/system/networking.nix deleted file mode 100644 index 9377faa12..000000000 --- a/Droidnix/generated/modules/system/networking.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, config, pkgs, ... }: - -{ - networking = { - useDHCP = lib.mkDefault true; - - networkmanager = { - enable = true; - wifi.backend = "iwd"; - }; - - wireless = { - iwd.enable = true; - userControlled.enable = true; - }; - - firewall = { - enable = true; - - # KDE Connect: discovery + encrypted connections - allowedTCPPortRanges = [ - { from = 1714; to = 1764; } - ]; - - allowedUDPPortRanges = [ - { from = 1714; to = 1764; } - ]; - }; - }; - - # Ensure NetworkManager tools are available - environment.systemPackages = [ - pkgs.networkmanager - ]; -} diff --git a/Droidnix/generated/modules/system/terminal.nix b/Droidnix/generated/modules/system/terminal.nix deleted file mode 100644 index 3c37aa911..000000000 --- a/Droidnix/generated/modules/system/terminal.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ config, pkgs, ... }: - -{ - # (NVF = Neovim/terminal flavor) - stylix.targets.nvf.enable = true; - # feh wallpaper integration - stylix.targets.feh.enable = true; -} diff --git a/Droidnix/generated/modules/terminals/kitty.nix b/Droidnix/generated/modules/terminals/kitty.nix deleted file mode 100644 index 198874784..000000000 --- a/Droidnix/generated/modules/terminals/kitty.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, pkgs, config, ... }: - -let - username = config.defaultUser or "henrov"; - moduleName = "kitty"; - - # Paths and files - assetPath = ../../../assets/system/conf/${moduleName}; - programFiles = builtins.readDir assetPath; - files = lib.genAttrs (builtins.attrNames programFiles) (name: { - src = "${assetPath}/${name}"; - }); -in -{ - # Install kitty system-wide - environment.systemPackages = [ pkgs.kitty ]; - - # Home Manager user-specific configuration - _module.args.hmUsers = { - ${username} = { - programs.kitty.enable = true; - - # Extra user config snippet - programs.kitty.extraConfig = '' - # Include the Catppuccin-Mocha theme - include themes/Catppuccin-Mocha.conf - ''; - - # Copy all asset files into ~/.config/kitty/ - home.file = lib.mkMerge ( - map (name: { ".config/${moduleName}/${name}" = { source = files.${name}.src; }; }) - (builtins.attrNames files) - ); - }; - }; -} diff --git a/Droidnix/generated/modules/terminals/starship.nix b/Droidnix/generated/modules/terminals/starship.nix deleted file mode 100644 index 60cc841d3..000000000 --- a/Droidnix/generated/modules/terminals/starship.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, pkgs, lib, flakeRoot, ... }: - -{ - programs.starship = { - enable = true; # enable Starship integration - }; -} diff --git a/Droidnix/generated/modules/terminals/zsh.nix b/Droidnix/generated/modules/terminals/zsh.nix deleted file mode 100644 index 70850a175..000000000 --- a/Droidnix/generated/modules/terminals/zsh.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ config, pkgs, lib, ... }: -{ - programs.zsh = { - enable = true; - enableCompletion = true; - #autocd = true; - #dotDir = "${config.xdg.configHome}/zsh"; - ohMyZsh = { - enable = true; - theme = ""; - plugins = [ - "git" - "sudo" - "extract" - "colored-man-pages" - "command-not-found" - "history" - "docker" - "kubectl" - ]; - }; - #autosuggestion.enable = true; - syntaxHighlighting.enable = true; - }; -} diff --git a/Droidnix/generated/modules/users/copy_2_home.nix b/Droidnix/generated/modules/users/copy_2_home.nix deleted file mode 100644 index 3bf0ed3a5..000000000 --- a/Droidnix/generated/modules/users/copy_2_home.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ config, pkgs, lib, flakeRoot, ... }: - -let - username = config.users.users.defaultUser or "henrov"; - homeDir = "/home/${username}"; - assetPath = "${flakeRoot}/assets/copy_2_home"; -in -{ - environment.systemPackages = [ pkgs.rsync ]; - - systemd.services.copyAssets = { - description = "Copy assets to ${username}'s home directory"; - wantedBy = [ "multi-user.target" ]; - - # oneshot service runs once at boot - serviceConfig.Type = "oneshot"; - - # Always use /bin/sh -c for multi-line commands - serviceConfig.ExecStart = '' - /bin/sh -c ' - echo "Copying assets from ${assetPath} to ${homeDir} ..." - - if [ ! -d "${assetPath}" ]; then - echo "ERROR: ${assetPath} does not exist" - exit 1 - fi - - mkdir -p "${homeDir}" - chown ${username}:${username} "${homeDir}" - - ${pkgs.rsync}/bin/rsync -a --no-owner --no-group "${assetPath}/" "${homeDir}/" - - echo "Done copying assets." - ' - ''; - }; -} diff --git a/Droidnix/generated/modules/users/henrov.nix b/Droidnix/generated/modules/users/henrov.nix deleted file mode 100644 index 97b900a0e..000000000 --- a/Droidnix/generated/modules/users/henrov.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, config, pkgs, ... }: - -let - username = "henrov"; -in -{ - # NixOS user - users.users.${username} = { - isNormalUser = true; - home = "/home/${username}"; - hashedPassword = "$6$S7iShgBxB.77CwmP$i0njK.2r3OL5UEvgZbmwZ0rnpZ4QyJcv8p9uCmJ4AiVPSMXkQkIwMLzyAOnJ0q8.tPLIp/7EquEIZeK8qbmgw/"; - extraGroups = [ "wheel" "networkmanager" ]; - }; - - # Home Manager user definition - _module.args.hmUsers = { - ${username} = { - home.username = username; - home.homeDirectory = "/home/${username}"; - home.stateVersion = "26.05"; - - # Example: user packages - home.packages = [ pkgs.git pkgs.vim ]; - }; - }; -} diff --git a/Droidnix/generated/parked/apps/emacs/emacs.nix b/Droidnix/generated/parked/apps/emacs/emacs.nix deleted file mode 100644 index 502da83e1..000000000 --- a/Droidnix/generated/parked/apps/emacs/emacs.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ pkgs, config, ... }: - -let - username = config.defaultUser or "henrov"; -in -{ - environment.systemPackages = [ - pkgs.emacs-pgtk.override { withTreeSitter = true; } - ]; - - home-manager.users.${username} = { - home.stateVersion = "26.05"; - - programs.emacs = { - enable = true; - package = pkgs.emacs-pgtk.override { withTreeSitter = true; }; - - extraPackages = epkgs: with epkgs; [ - #(epkgs.manualPackages.treesit-grammars.override { withAllGrammars = true; }) - rust-mode - rustic - nix-mode - hcl-mode - nerd-icons - doom-modeline - diminish - eldoc - eldoc-box - pulsar - which-key - avy - consult - vertico - marginalia - crux - shell-pop - nerd-icons-corfu - corfu - cape - orderless - yasnippet - yasnippet-snippets - rg - exec-path-from-shell - eat - f - gptel - nixpkgs-fmt - envrc - catppuccin-theme - magit - expreg - vundo - puni - sideline - sideline-flymake - sideline-eglot - ]; - - # Load your init.el via extraConfig - extraConfig = builtins.readFile ./init.el; - }; - - home.sessionVariables = { - EDITOR = "emacs"; - XDG_SCREENSHOTS_DIR = "~/screenshots"; - }; - }; -} diff --git a/Droidnix/generated/parked/desktop/fonts.nix b/Droidnix/generated/parked/desktop/fonts.nix deleted file mode 100644 index e8b70eee9..000000000 --- a/Droidnix/generated/parked/desktop/fonts.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ lib, pkgs, config, ... }: - -{ - options.enableFonts = lib.mkEnableOption "Enable nerd fonts"; - - config = lib.mkIf (config.enableFonts or false) { - fonts.packages = with pkgs; [ - nerd-fonts.iosevka - nerd-fonts.fira-code - ]; - }; -} diff --git a/Droidnix/generated/template.nix b/Droidnix/generated/template.nix deleted file mode 100644 index 595f36e22..000000000 --- a/Droidnix/generated/template.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ lib, config, pkgs, inputs, ... }: - -let - # Default username fallback - username = config.defaultUser or "henrov"; - - # Asset folder for configs - assetPath = ../../../assets//conf; - - # Main configuration file - mainConfig = "${assetPath}/"; - - # Determine the package: prefer Nixpkgs, fallback to -git, fallback to flake input - myPkg = - pkgs. or - pkgs.-git or - inputs..packages.${pkgs.system}.default; -in -{ - # Install system-wide - environment.systemPackages = [ myPkg ]; - - # Home Manager user settings - _module.args.hmUsers = { - ${username} = { - home.packages = [ myPkg ]; - - # Copy main config into user's home - home.file.".config//".source = mainConfig; - - # Optional module-specific settings - settings.general = { - # Example placeholder - "example.setting" = "value"; - }; - - # Optional: you can add more files dynamically from assetPath if needed - }; - }; -} diff --git a/Droidnix/generated/todo/apps/flatpaks.nix b/Droidnix/generated/todo/apps/flatpaks.nix deleted file mode 100644 index b96babbd2..000000000 --- a/Droidnix/generated/todo/apps/flatpaks.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ lib, pkgs, config, ... }: - -let - # Module name - moduleName = "flatpaks"; - - # Path to your Flatpak list - assetPath = ../../../assets/system/apps/flatpaks.conf; - - # Resolve user safely - username = config.defaultUser or "henrov"; -in -{ - # Deploy the Flatpak conf file - environment.etc."flatpak/flatpaks.conf".source = assetPath; - - # Enable system Flatpak service - services.flatpak.enable = true; - - - # Systemd service to install Flatpaks from the list - systemd.services."${moduleName}-sync" = { - description = "Install Flatpak apps listed in flatpaks.conf"; - wantedBy = [ "multi-user.target" ]; - wants = [ "network-online.target" ]; - after = [ "network-online.target" ]; - - serviceConfig = { - Type = "oneshot"; - ExecStart = '' - set -euo pipefail - CONF="${assetPath}" - - # Add Flathub if not present - if ! flatpak remotes --system --columns=name | grep -qx flathub; then - flatpak remote-add --system --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo - fi - - # Install every Flatpak listed in the conf file - while IFS= read -r app || [ -n "$app" ]; do - app=$(echo "$app" | sed 's/#.*//;s/^[[:space:]]*//;s/[[:space:]]*$//') - if [ -n "$app" ]; then - if ! flatpak info --system "$app" >/dev/null 2>&1; then - flatpak install --system -y --noninteractive flathub "$app" - fi - fi - done < "$CONF" - ''; - }; - - restartTriggers = [ assetPath ]; - - # Include only the packages needed for this service - path = [ pkgs.flatpak pkgs.coreutils pkgs.gnugrep pkgs.gnused ]; - }; -} diff --git a/Droidnix/generated/todo/desktop/gtk.nix b/Droidnix/generated/todo/desktop/gtk.nix deleted file mode 100644 index fe8171681..000000000 --- a/Droidnix/generated/todo/desktop/gtk.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ pkgs, user, ... }: -{ - environment.systemPackages = with pkgs; [ - gtk3 # GTK target - gtk4 # GTK target - ]; - # Stylix GTK target - stylix.targets.gtk.enable = true; - - home-manager.users.${user.username} = { - gtk = { - enable = true; - theme = { - name = "Catppuccin-Mocha-Standard-Blue-Dark"; - package = pkgs.magnetic-catppuccin-gtk; - }; - iconTheme = { - name = "Papirus-Dark"; - package = pkgs.papirus-icon-theme; - }; - gtk3.extraConfig = { - gtk-application-prefer-dark-theme = 1; - }; - gtk4.extraConfig = { - gtk-application-prefer-dark-theme = 1; - }; - }; - - }; -} diff --git a/Droidnix/generated/todo/system/bluetooth.nix b/Droidnix/generated/todo/system/bluetooth.nix deleted file mode 100644 index b985e6742..000000000 --- a/Droidnix/generated/todo/system/bluetooth.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ config, pkgs, ... }: -{ - # Enable Bluetooth hardware and daemon - hardware.bluetooth = { - enable = true; - powerOnBoot = true; - packages = with pkgs; [ bluez ]; - }; - - # Enable Bluetooth audio support in PipeWire - services.pipewire = { - config.pulse = { - bluez5.enable = true; - }; - }; - - # Optional: Additional Bluetooth settings - hardware.bluetooth.extraConfig = '' - AutoEnable=true - DiscoverableTimeout=0 - PairableTimeout=0 - ''; - - # Install a graphical Bluetooth manager (optional) - environment.systemPackages = with pkgs; [ - blueman - ]; -} diff --git a/Droidnix/generated/todo/system/homebase.nix b/Droidnix/generated/todo/system/homebase.nix deleted file mode 100644 index 4c5ac5a86..000000000 --- a/Droidnix/generated/todo/system/homebase.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, config, ... }: - -let - coreEnabled = config.mySystem.system.core.enable or false; -in -{ - options.mySystem.system.locale.enable = - lib.mkEnableOption "Home-Manager settings"; - - config = lib.mkIf (coreEnabled || config.mySystem.system.locale.enable) { - - # --- Home Manager Base --- - home-manager = { - backupFileExtension = "backup"; - - users.henrov = { - home.sessionVariables = { - TERMINAL = "kitty"; - EDITOR = "emacs"; - BROWSER = "zen"; - }; - - home.stateVersion = "26.05"; - }; - }; - - }; -} diff --git a/Droidnix/generated/todo/system/homebax.nix b/Droidnix/generated/todo/system/homebax.nix deleted file mode 100644 index e26960407..000000000 --- a/Droidnix/generated/todo/system/homebax.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, config, ... }: - -let - coreEnabled = config.mySystem.system.core.enable or false; -in -{ - # Top-level option for this module - options.mySystem.system.locale.enable = - lib.mkEnableOption "Enable Nix & Flake specific settings"; - - # Top-level container for all custom program configs (your myPrograms idea) - options.myPrograms = lib.mkOption { - type = lib.types.attrsOf lib.types.any; - default = {}; - description = "Container for all custom program configurations"; - }; - - # Apply the configuration only if core or locale is enabled - config = lib.mkIf (coreEnabled || config.mySystem.system.locale.enable) { - nix.settings = { - experimental-features = [ "nix-command" "flakes" ]; - download-buffer-size = 536870912; # 512 MB - cores = 2; - max-jobs = 1; - }; - }; -} diff --git a/Droidnix/generated/todo/system/services.nix b/Droidnix/generated/todo/system/services.nix deleted file mode 100644 index 79688f4fc..000000000 --- a/Droidnix/generated/todo/system/services.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, config, ... }: - -let - coreEnabled = config.mySystem.system.core.enable or false; -in -{ - options.mySystem.system.locale.enable = - lib.mkEnableOption "Services settings (printing / audio)"; - - config = lib.mkIf (coreEnabled || config.mySystem.system.locale.enable) { - - # --- Services (Printing & Audio) --- - services.printing.enable = true; - services.pulseaudio.enable = false; - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - }; - }; -}