+
+
generated/.config/zsh/.zshrc
+
This sets up the zsh in the terminal
@@ -6445,7 +6440,7 @@ cd() {
Author: Henro Veijer
-
Created: 2026-04-29 wo 08:47
+
Created: 2026-04-29 wo 09:50
Validate
diff --git a/Droidnix/README.org b/Droidnix/README.org
index 1e364a00c..54b351543 100644
--- a/Droidnix/README.org
+++ b/Droidnix/README.org
@@ -1343,18 +1343,13 @@ in
environment.systemPackages = [ pkgs.waybar ];
home-manager.users.${username} = {
- home.file = {
- ".config/waybar/config.jsonc".source = "${waybarPath}/config.jsonc";
- ".config/waybar/style-dark.css".source = "${waybarPath}/style-dark.css";
- };
-
- home.activation.MakeMutable = {
+ home.activation.MakeWaybarMutable = {
after = [ "writeBoundary" ];
before = [];
data = ''
rm -f $HOME/.config/waybar/*
- cp ${waybarPath}/* $HOME/.config/waybar/
- chmod u+w $HOME/.config/waybar/*
+ cp ${waybarPath}/* $HOME/.config/waybar/
+ chmod u+w $HOME/.config/waybar/*
'';
};
};
@@ -3746,9 +3741,9 @@ ShellRoot {
}
#+END_SRC
-** =generated/.config/scripts/batterywarn.sh=
+** =generated/.config/waybar/scripts/batterywarn.sh=
Providing an media
-#+BEGIN_SRC sh :tangle generated/.config/scripts/batterywarn.sh :shebang "#!/usr/bin/env bash" :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC sh :tangle generated/.config/waybar/scripts/batterywarn.sh :shebang "#!/usr/bin/env bash" :noweb yes :mkdirp yes :eval never
capacity=$(cat /sys/class/power_supply/BAT*/capacity)
status=$(cat /sys/class/power_supply/BAT*/status)
@@ -3759,9 +3754,9 @@ else
fi
#+END_SRC
-** =generated/.config/scripts/media.sh=
+** =generated/.config/waybar/scripts/media.sh=
Providing an media
-#+BEGIN_SRC sh :tangle generated/.config/scripts/media.sh :shebang "#!/usr/bin/env bash" :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC sh :tangle generated/.config/waybar/scripts/media.sh :shebang "#!/usr/bin/env bash" :noweb yes :mkdirp yes :eval never
# Player selection — prefer actively playing player
player=$(playerctl -l 2>/dev/null | while read -r p; do
@@ -4829,15 +4824,15 @@ These are config files for waybar
"custom/windows": {
"align": 0,
"format": "{text}",
- "exec": "~/.config/scripts/hypr-workspaces.sh",
+ "exec": "~/.config/waybar/scripts/hypr-workspaces.sh",
"interval": 2,
"return-type": "json",
- "on-click": "~/.config/scripts/hypr-workspacesmenu.sh",
+ "on-click": "~/.config/waybar/scripts/hypr-workspacesmenu.sh",
"tooltip": true
},
"custom/media": {
- "exec": "~/.config/scripts/media.sh",
+ "exec": "~/.config/waybar/scripts/media.sh",
"interval": 1,
"return-type": "json",
"format": "{}",
@@ -4848,7 +4843,7 @@ These are config files for waybar
},
"custom/bluetooth": {
- "exec": "~/.config/scripts/bluetooth-status.sh",
+ "exec": "~/.config/waybar/scripts/bluetooth-status.sh",
"interval": 5,
"return-type": "json",
"on-click": "blueman-manager",
@@ -4856,7 +4851,7 @@ These are config files for waybar
},
"custom/batterywarn": {
- "exec": "~/.config/scripts/batterywarn.sh",
+ "exec": "~/.config/waybar/scripts/batterywarn.sh",
"interval": 60,
"format": "{}"
},
@@ -4864,7 +4859,7 @@ These are config files for waybar
"custom/kdeconnect": {
"format": "{name} {battery}% ",
"interval": 10,
- "exec": "~/.config/scripts/kdeconnect-status.sh",
+ "exec": "~/.config/waybar/scripts/kdeconnect-status.sh",
"tooltip": true
},
@@ -5243,9 +5238,9 @@ label#custom-windows:not(.active) {
}
#+END_SRC
-** =generated/.config/scripts/bluetooth-status.sh=
+** =generated/.config/waybar/scripts/bluetooth-status.sh=
These are config files for waybar
-#+BEGIN_SRC sh :tangle generated/.config/scripts/bluetooth-status.sh :shebang "#!/usr/bin/env bash" :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC sh :tangle generated/.config/waybar/scripts/bluetooth-status.sh :shebang "#!/usr/bin/env bash" :noweb yes :mkdirp yes :eval never
bt_connected=""
while read -r _ mac name_rest; do
if [ "$(bluetoothctl info "$mac" | awk '/Connected:/ {print $2}')" = "yes" ]; then
@@ -5264,9 +5259,9 @@ fi
printf '{"text": "%s", "tooltip": "%s"}\n' "$icon" "$tooltip"
#+END_SRC
-** =generated/.config/scripts/hypr-workspaces.sh=
+** =generated/.config/waybar/scripts/hypr-workspaces.sh=
These are config files for waybar
-#+BEGIN_SRC sh :tangle generated/.config/scripts/hypr-workspaces.sh :shebang "#!/usr/bin/env bash" :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC sh :tangle generated/.config/waybar/scripts/hypr-workspaces.sh :shebang "#!/usr/bin/env bash" :noweb yes :mkdirp yes :eval never
# Get focused monitor name
focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused==true) | .name')
monitor="${WAYBAR_OUTPUT_NAME:-$focused_monitor}"
@@ -5302,9 +5297,9 @@ jq -c -n \
'{text:$text, tooltip:$tooltip, class:$class}'
#+END_SRC
-** =generated/.config/scripts/hypr-workspacesmenu.sh=
+** =generated/.config/waybar/scripts/hypr-workspacesmenu.sh=
These are config files for waybar
-#+BEGIN_SRC sh :tangle generated/.config/scripts/hypr-workspacesmenu.sh :shebang "#!/usr/bin/env bash" :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC sh :tangle generated/.config/waybar/scripts/hypr-workspacesmenu.sh :shebang "#!/usr/bin/env bash" :noweb yes :mkdirp yes :eval never
active_ws=$(hyprctl activeworkspace -j | jq -r '.id')
clients=$(hyprctl clients -j | jq -r \
".[] | select(.workspace.id==$active_ws) | \"\(.address)|\(.title)\"")
@@ -5320,9 +5315,9 @@ addr=$(echo "$clients" | grep "|$choice" | head -n1 | cut -d'|' -f1)
hyprctl dispatch focuswindow address:"$addr"
#+END_SRC
-** =generated/.config/scripts/kdeconnect-status.sh=
+** =generated/.config/waybar/scripts/kdeconnect-status.sh=
These are config files for waybar
-#+BEGIN_SRC sh :tangle generated/.config/scripts/kdeconnect-status.sh :shebang "#!/usr/bin/env bash" :noweb yes :mkdirp yes :eval never
+#+BEGIN_SRC sh :tangle generated/.config/waybar/scripts/kdeconnect-status.sh :shebang "#!/usr/bin/env bash" :noweb yes :mkdirp yes :eval never
DEVICE=$(kdeconnect-cli --list-devices | grep -oP '(?<=\().*?(?=\))' | head -n 1)
if [ -z "$DEVICE" ]; then
diff --git a/Droidnix/generated/.config/emacs/early-init.el b/Droidnix/generated/.config/emacs/early-init.el
deleted file mode 100644
index 09a331075..000000000
--- a/Droidnix/generated/.config/emacs/early-init.el
+++ /dev/null
@@ -1,93 +0,0 @@
-;; --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-;;; package --- early init -*- lexical-binding: t -*-
- ;;; Commentary:
- ;;; Prevents white flash and better Emacs defaults
- ;;; Code:
- (set-language-environment "UTF-8")
- (setq-default
-default-frame-alist
-'((background-color . "#1e1e2e")
- (bottom-divider-width . 1) ; Thin horizontal window divider
- (foreground-color . "#bac2de") ; Default foreground color
- (fullscreen . maximized) ; Maximize the window by default
- (horizontal-scroll-bars . nil) ; No horizontal scroll-bars
- (left-fringe . 8) ; Thin left fringe
- (menu-bar-lines . 0) ; No menu bar
- (right-divider-width . 1) ; Thin vertical window divider
- (right-fringe . 8) ; Thin right fringe
- (tool-bar-lines . 0) ; No tool bar
- (undecorated . t) ; Remove extraneous X decorations
- (vertical-scroll-bars . nil)) ; No vertical scroll-bars
-user-full-name "Henrov henrov" ; ME!
-;; memory configuration
-;; Higher garbage collection threshold, prevents frequent gc locks, reset later
-gc-cons-threshold most-positive-fixnum
-;; Ignore warnings for (obsolete) elisp compilations
-byte-compile-warnings '(not obsolete)
-;; And other log types completely
-warning-suppress-log-types '((comp) (bytecomp))
-;; Large files are okay in the new millenium.
-large-file-warning-threshold 100000000
-;; dont show garbage collection messages at startup, will reset later
-garbage-collection-messages nil
-;; native compilation
-package-native-compile t
-native-comp-warning-on-missing-source nil
-native-comp-async-report-warnings-errors 'silent
-;; Read more based on system pipe capacity
-read-process-output-max (max (* 10240 10240) read-process-output-max)
-;; scroll configuration
-scroll-margin 0 ; Lets scroll to the end of the margin
-scroll-conservatively 100000 ; Never recenter the window
-scroll-preserve-screen-position 1 ; Scrolling back and forth
-;; frame config
-;; Improve emacs startup time by not resizing to adjust for custom settings
-frame-inhibit-implied-resize t
-;; Dont resize based on character height / width but to exact pixels
-frame-resize-pixelwise t
-;; backups & files
-backup-directory-alist '(("." . "~/.backups/")) ; Don't clutter
-backup-by-copying t ; Don't clobber symlinks
-create-lockfiles nil ; Don't have temp files
-delete-old-versions t ; Cleanup automatically
-kept-new-versions 6 ; Update every few times
-kept-old-versions 2 ; And cleanup even more
-version-control t ; Version them backups
-delete-by-moving-to-trash t ; Dont delete, send to trash instead
-;; startup
-inhibit-startup-screen t ; I have already done the tutorial. Twice
-inhibit-startup-message t ; I know I am ready
-inhibit-startup-echo-area-message t ; Yep, still know it
-initial-scratch-message nil ; I know it is the scratch buffer!
-initial-buffer-choice nil
-inhibit-startup-buffer-menu t
-inhibit-x-resources t
-initial-major-mode 'fundamental-mode
-pgtk-wait-for-event-timeout 0.001 ; faster child frames
-ad-redefinition-action 'accept ; dont care about legacy things being redefined
-inhibit-compacting-font-caches t
-;; tabs
-tab-width 4 ; Always tab 4 spaces.
-indent-tabs-mode nil ; Never use actual tabs.
-;; rendering
-cursor-in-non-selected-windows nil ; dont render cursors other windows
-;; packages
-use-package-always-defer t
-load-prefer-newer t
-default-input-method nil
-use-dialog-box nil
-use-file-dialog nil
-use-package-expand-minimally t
-package-enable-at-startup nil
-use-package-enable-imenu-support t
-auto-mode-case-fold nil ; No second pass of case-insensitive search over auto-mode-alist.
-package-archives '(("melpa" . "https://melpa.org/packages/")
- ("gnu" . "https://elpa.gnu.org/packages/")
- ("nongnu" . "https://elpa.nongnu.org/nongnu/")
- ("melpa-stable" . "https://stable.melpa.org/packages/"))
-package-archive-priorities '(("gnu" . 99)
- ("nongnu" . 80)
- ("melpa" . 70)
- ("melpa-stable" . 50))
-)
-;;; early-init.el ends here
diff --git a/Droidnix/generated/.config/emacs/init.el b/Droidnix/generated/.config/emacs/init.el
deleted file mode 100644
index e7cbb920d..000000000
--- a/Droidnix/generated/.config/emacs/init.el
+++ /dev/null
@@ -1,401 +0,0 @@
-;; --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-;;; package --- Summary - My minimal Emacs init file -*- lexical-binding: t -*-
-
-;;; Commentary:
-;;; Simple Emacs setup I carry everywhere
-
-;;; Code:
-(setq custom-file (locate-user-emacs-file "custom.el"))
-(load custom-file 'noerror) ;; no error on missing custom file
-
-(require 'package)
-(package-initialize)
-
-(defun reset-custom-vars ()
-"Resets the custom variables that were set to crazy numbers"
-(setopt gc-cons-threshold (* 1024 1024 100))
-(setopt garbage-collection-messages t))
-
-(use-package emacs
-:custom
-(native-comp-async-query-on-exit t)
-(read-answer-short t)
-(use-short-answers t)
-(enable-recursive-minibuffers t)
-(which-func-update-delay 1.0)
-(visible-bell nil)
-(custom-buffer-done-kill t)
-(whitespace-line-column nil)
-(x-underline-at-descent-line t)
-(imenu-auto-rescan t)
-(uniquify-buffer-name-style 'forward)
-(confirm-nonexistent-file-or-buffer nil)
-(create-lockfiles nil)
-(make-backup-files nil)
-(kill-do-not-save-duplicates t)
-(sentence-end-double-space nil)
-(treesit-enabled-modes t)
-:init
-;; base visual
-(menu-bar-mode -1) ;; no menu bar
-(toggle-scroll-bar -1) ;; no scroll bar
-(tool-bar-mode -1) ;; no tool bar either
-(blink-cursor-mode -1) ;; stop blinking
-
-;; font of the century
-(set-frame-font "Aporetic Sans Mono 12" nil t)
-
-:bind
-(("C-
" . 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/.config/hypr/animations.conf b/Droidnix/generated/.config/hypr/animations.conf
deleted file mode 100644
index 4177605dc..000000000
--- a/Droidnix/generated/.config/hypr/animations.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-animations {
- enabled = yes
- bezier = myBezier, 0.05, 0.9, 0.1, 1.05
- animation = windows, 1, 7, myBezier
- animation = windowsOut, 1, 7, default, popin 80%
- animation = border, 1, 10, default
- animation = borderangle, 1, 8, default
- animation = fade, 1, 7, default
- animation = workspaces, 1, 6, default
-}
diff --git a/Droidnix/generated/.config/hypr/behaviour.conf b/Droidnix/generated/.config/hypr/behaviour.conf
deleted file mode 100644
index b0c1feaf5..000000000
--- a/Droidnix/generated/.config/hypr/behaviour.conf
+++ /dev/null
@@ -1,14 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-# Keyboard and mouse settings
-input {
- numlock_by_default = true
- touchpad {
- natural_scroll = true
- tap-to-click = true
- drag_lock = true
- }
-}
-# Scrolling modifier settings
-# Touchpad settings (applies to all touchpads)
-# Focus settings
-# Miscellaneous settings
diff --git a/Droidnix/generated/.config/hypr/bindings.conf b/Droidnix/generated/.config/hypr/bindings.conf
deleted file mode 100644
index 0d6f2ba25..000000000
--- a/Droidnix/generated/.config/hypr/bindings.conf
+++ /dev/null
@@ -1,168 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-$mainMod = SUPER
-
-# launcher / kill / reload
-
-bind = $mainMod, Space, exec, ~/.config/scripts/wofi-launcher.sh
-bind = ALT, Space, exec, ~/.config/scripts/wofi-launcher.sh
-bind = $mainMod, Q, killactive,
-bind = $mainMod SHIFT, Q, exit,
-bind = $mainMod SHIFT, R, exec, hyprctl reload
-bind = $mainMod, X , exec, qs -c powermenu
-bind = $mainMod, L, exec, hyprlock
-
-# grimblast
-bind = $mainMod SHIFT, P, exec, grimblast -n -f copysave active
-bind = $mainMod SHIFT, S, exec, grimblast -n -f copysave area
-bind = , XF86Screenshot, exec, grimblast -n -f copysave area
-bind = $mainMod ALT, P, exec, grimblast -n -f copysave output
-bind = $mainMod CTRL, P, exec, grimblast -n -f copysave screen
-
-# Flameshot keybindings
-# bind = $mainMod SHIFT, P, exec, flameshot full -p ~/Pictures/Screenshots -c
-# bind = $mainMod SHIFT, S, exec, flameshot gui 2>/dev/null
-# bind = , XF86Screenshot, exec, flameshot gui 2>/dev/null
-# bind = $mainMod ALT, P, exec, flameshot full -d 5000 -p ~/Pictures/Screenshots -c
-# bind = $mainMod CTRL, P, exec, flameshot screen -n 0 -p ~/Pictures/Screenshots -c
-
-# Switch windows
-bind = ALT, TAB, cyclenext, prev
-bind = ALT SHIFT, TAB, cyclenext, prev
-bind = ALT, mouse_down, cyclenext, prev
-bind = ALT , mouse_up, cyclenext, prev
-bindel = CTRL ALT, mouse_up, layoutmsg, addmaster
-bindel = CTRL ALT, mouse_down, layoutmsg, removemaster
-bind = CTRL ALT, right, layoutmsg, colwidth +conf
-bind = CTRL ALT, left, layoutmsg, colwidth -conf
-
-# switch layouts
-bind = $mainMod, T , exec, qs -c layoutswitcher
-
-# Hyprscrolling
-bind = $mainMod, period, layoutmsg, move +col
-bind = $mainMod, comma, layoutmsg, swapcol l
-# Column resize
-bind = $mainMod SHIFT, period, layoutmsg, colresize +conf
-bind = $mainMod SHIFT, comma, layoutmsg, colresize -conf
-# Make / break a tab-group (stack)
-bind = $mainMod, S, togglegroup
-# Cycle tabs in the group
-bind = $mainMod, bracketright, changegroupactive, f
-bind = $mainMod, bracketleft, changegroupactive, b
-
-# Focus movement
-bind = $mainMod, H, movefocus, l
-bind = $mainMod, L, movefocus, r
-bind = $mainMod, K, movefocus, u
-bind = $mainMod, J, movefocus, d
-bind = $mainMod, left, movefocus, l
-bind = $mainMod, right, movefocus, r
-bind = $mainMod, up, movefocus, u
-bind = $mainMod, down, movefocus, d
-
-# Move windows
-bind = $mainMod SHIFT, H, movewindow, l
-bind = $mainMod SHIFT, L, movewindow, r
-bind = $mainMod SHIFT, K, movewindow, u
-bind = $mainMod SHIFT, J, movewindow, d
-bind = $mainMod SHIFT, left, movewindow, l
-bind = $mainMod SHIFT, right, movewindow, r
-bind = $mainMod SHIFT, up, movewindow, u
-bind = $mainMod SHIFT, down, movewindow, d
-
-# Resize windows
-bind = $mainMod CTRL, H, resizeactive, -30 0
-bind = $mainMod CTRL, L, resizeactive, 30 0
-bind = $mainMod CTRL, K, resizeactive, 0 -30
-bind = $mainMod CTRL, J, resizeactive, 0 30
-
-# Floating / fullscreen
-bind = $mainMod, V, togglefloating,
-bind = $mainMod, F, fullscreen, 0
-bind = $mainMod SHIFT, F, fullscreen, 1
-
-# Workspaces
-bind = $mainMod, 1, workspace, 1
-bind = $mainMod, 2, workspace, 2
-bind = $mainMod, 3, workspace, 3
-bind = $mainMod, 4, workspace, 4
-bind = $mainMod, 5, workspace, 5
-bind = $mainMod, 6, workspace, 6
-bind = $mainMod, 7, workspace, 7
-bind = $mainMod, 8, workspace, 8
-bind = $mainMod, 9, workspace, 9
-bind = $mainMod, 0, workspace, 10
-
-bind = $mainMod SHIFT, 1, movetoworkspace, 1
-bind = $mainMod SHIFT, 2, movetoworkspace, 2
-bind = $mainMod SHIFT, 3, movetoworkspace, 3
-bind = $mainMod SHIFT, 4, movetoworkspace, 4
-bind = $mainMod SHIFT, 5, movetoworkspace, 5
-bind = $mainMod SHIFT, 6, movetoworkspace, 6
-bind = $mainMod SHIFT, 7, movetoworkspace, 7
-bind = $mainMod SHIFT, 8, movetoworkspace, 8
-bind = $mainMod SHIFT, 9, movetoworkspace, 9
-bind = $mainMod SHIFT, 0, movetoworkspace, 10
-
-# Cycle workspaces
-bind = $mainMod, mouse_down, workspace, e+1
-bind = $mainMod, mouse_up, workspace, e-1
-
-# Mouse drag
-bindm = $mainMod, mouse:272, movewindow
-bindm = $mainMod, mouse:273, resizewindow
-
-#########################
-# Audio (pamixer)
-#########################
-bind = , XF86AudioRaiseVolume, exec, pamixer -i 5
-bind = , XF86AudioLowerVolume, exec, pamixer -d 5
-bind = , XF86AudioMute, exec, pamixer -t
-bind = , XF86AudioMicMute, exec, pamixer --default-source -t
-
-#########################
-# Media (playerctl)
-#########################
-bind = , XF86AudioPlay, exec, bash -c "playerctl -l | grep -q spotify && playerctl -p spotify play-pause || playerctl play-pause"
-bind = , XF86AudioPause, exec, playerctl pause
-bind = , XF86AudioNext, exec, playerctl next
-bind = , XF86AudioPrev, exec, playerctl previous
-bind = , XF86AudioStop, exec, playerctl stop
-
-#########################
-# Brightness (brightnessctl)
-#########################
-bind = , XF86MonBrightnessUp, exec, brightnessctl set +10%
-bind = , XF86MonBrightnessDown, exec, brightnessctl set 10%-
-bind = , XF86KbdBrightnessUp, exec, brightnessctl -d '*kbd_backlight*' set +10%
-bind = , XF86KbdBrightnessDown, exec, brightnessctl -d '*kbd_backlight*' set 10%-
-
-#########################
-# Power / session
-#########################
-bind = , XF86Sleep, exec, systemctl suspend
-bind = , XF86PowerOff, exec, systemctl poweroff
-bind = , XF86WakeUp, exec, systemctl suspend
-bind = , XF86ScreenSaver, exec, loginctl lock-session
-
-#########################
-# Start apps
-#########################
-bind = $mainMod, E, exec, thunar
-bind = $mainMod, RETURN, exec, kitty
-bind = CTRL ALT, B, exec, flatpak run eu.betterbird.Betterbird
-bind = CTRL ALT, S, exec, spotify
-bind = $mainMod, Z, exec, zeditor
-bind = $mainMod, W, exec, zen
-bind = CTRL ALT, T, exec, solidtime-desktop
-bind = , XF86Calculator, exec, gnome-calculator
-
-#########################
-# Auto apps
-#########################
-bind = , workspace, exec, ~/.config/scripts/set-workspace-wallpaper.sh
-
-#########################
-# System stuff
-#########################
-bind = $mainMod, U, exec, kitty -e bash -lc "$HOME/.config/scripts/update.sh"
diff --git a/Droidnix/generated/.config/hypr/exec-once.conf b/Droidnix/generated/.config/hypr/exec-once.conf
deleted file mode 100644
index c19bb4a5c..000000000
--- a/Droidnix/generated/.config/hypr/exec-once.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-exec-once = dbus-update-activation-environment --systemd --all
-exec-once = systemctl --user start --no-block xdg-desktop-portal-hyprland
-exec-once = systemctl --user start --no-block xdg-desktop-portal
-exec-once = hypridle
-exec-once = awww-daemon
-exec-once = awww img ~/Wallpapers/pictures/01.jpg
-exec-once = ~/.config/scripts/set-workspace-wallpaper.sh
-exec-once = ~/.config/scripts/workspace-listener.sh
-exec-once = /run/current-system/sw/libexec/polkit-gnome-authentication-agent-1
-exec-once = nextcloud --background
-# exec-once = QT_QPA_PLATFORM=wayland flameshot 2> >(grep -v "wlroots" >&2)
-exec-once = waybar
diff --git a/Droidnix/generated/.config/hypr/hypridle.conf b/Droidnix/generated/.config/hypr/hypridle.conf
deleted file mode 100644
index 0d09609b5..000000000
--- a/Droidnix/generated/.config/hypr/hypridle.conf
+++ /dev/null
@@ -1,23 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-general {
- lock_cmd = hyprlock
- before_sleep_cmd = hyprlock
- after_sleep_cmd = hyprctl dispatch dpms on
- ignore_dbus_inhibit = false
-}
-
-listener {
- timeout = 600
- on-timeout = hyprlock
-}
-
-listener {
- timeout = 900
- on-timeout = hyprctl dispatch dpms off
- on-resume = hyprctl dispatch dpms on
-}
-
-listener {
- timeout = 1200
- on-timeout = systemctl suspend
-}
diff --git a/Droidnix/generated/.config/hypr/hyprland.conf b/Droidnix/generated/.config/hypr/hyprland.conf
deleted file mode 100644
index 37f2eaec0..000000000
--- a/Droidnix/generated/.config/hypr/hyprland.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-source = ./theming.conf
-source = ./animations.conf
-source = ./bindings.conf
-source = ./behaviour.conf
-source = ./exec-once.conf
-source = ./layer-rules.conf
-source = ./layout.conf
-source = ./monitor-rules.conf
-source = ./window-rules.conf
-source = ./workspace-rules.conf
diff --git a/Droidnix/generated/.config/hypr/hyprlock.conf b/Droidnix/generated/.config/hypr/hyprlock.conf
deleted file mode 100644
index d5bb1578b..000000000
--- a/Droidnix/generated/.config/hypr/hyprlock.conf
+++ /dev/null
@@ -1,22 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-general {
- grace = 2
- hide_cursor = true
-}
-
-background {
- monitor =
- path = screenshot
- blur_passes = 3
- blur_size = 8
-}
-
-input-field {
- monitor =
- size = 250, 50
- position = 0, -80
- outline_thickness = 2
-
- dots_center = true
- fade_on_empty = false
-}
diff --git a/Droidnix/generated/.config/hypr/layer-rules.conf b/Droidnix/generated/.config/hypr/layer-rules.conf
deleted file mode 100644
index a7e7d631b..000000000
--- a/Droidnix/generated/.config/hypr/layer-rules.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-layerrule = blur on, ignore_alpha 1, match:namespace waybar
-layerrule = xray 1, match:namespace waybar
-layerrule = blur on, ignore_alpha 1, match:namespace swaync-control-center
-layerrule = xray 1, match:namespace swaync-control-center
diff --git a/Droidnix/generated/.config/hypr/layout.conf b/Droidnix/generated/.config/hypr/layout.conf
deleted file mode 100644
index aaae79878..000000000
--- a/Droidnix/generated/.config/hypr/layout.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-
-scrolling {
- fullscreen_on_one_column = true
- column_width = 0.32 # default: 3 windows side by side
- explicit_column_widths = 0.329, 0.5, 0.667, 1.0
-}
diff --git a/Droidnix/generated/.config/hypr/monitor-rules.conf b/Droidnix/generated/.config/hypr/monitor-rules.conf
deleted file mode 100644
index bdad406dc..000000000
--- a/Droidnix/generated/.config/hypr/monitor-rules.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-monitor = DP-1, preferred, 0x0, 1
-monitor = eDP-1, preferred, auto-left, 1.5
diff --git a/Droidnix/generated/.config/hypr/theming.conf b/Droidnix/generated/.config/hypr/theming.conf
deleted file mode 100644
index 0effc78c1..000000000
--- a/Droidnix/generated/.config/hypr/theming.conf
+++ /dev/null
@@ -1,58 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-# Hyprland Catppuccin Mocha Theme (solid colors)
-
-# Colors
-$base = #1e1e2e
-$baseshadow = #1e1e2e99
-$mantle = #181825
-$surface0 = #313244
-$surface1 = #45475a
-$surface2 = #585b70
-$text = #cdd6f4
-$rosewater = #f5e0dc
-$lavender = #b4befe
-$red = #f38ba8
-$peach = #fab387
-$yellow = #f9e2af
-$green = #a6e3a1
-$teal = #94e2d5
-$blue = #89b4fa
-$mauve = #cba6f7
-$flamingo = #f2cdcd
-$inactive = #595959aa
-
-# General
-general {
- gaps_in = 2
- gaps_out = 4
- border_size = 4
- resize_on_border = true
- extend_border_grab_area = 20
- col.active_border = rgb(89b4fa) rgb(a6e3a1) 45deg
- col.inactive_border = rgba(595959aa)
-}
-
-# Decorations
-decoration {
- rounding = 8
- shadow {
- color = rgba(1e1e2e99)
- }
-}
-
-# Groups
-group {
- col.border_active = rgb(89b4fa)
- col.border_inactive = rgb(45475a)
- col.border_locked_active = rgb(94e2d5)
- groupbar {
- col.active = rgb(89b4fa)
- col.inactive = rgb(45475a)
- text_color = rgb(cdd6f4)
- }
-}
-
-# Misc
-misc {
- background_color = rgb(1e1e2e)
-}
diff --git a/Droidnix/generated/.config/hypr/window-rules.conf b/Droidnix/generated/.config/hypr/window-rules.conf
deleted file mode 100644
index 72330793e..000000000
--- a/Droidnix/generated/.config/hypr/window-rules.conf
+++ /dev/null
@@ -1,75 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-
-# Network Manager editor
-windowrule {
- name = Network-Manager-editor
- match:class = nm-connection-editor
- float = on
- move = move onscreen 100%-w 0
- size = 900 700
-}
-
-# PulseAudio Volume Control
-windowrule {
- name = pavucontrol
- match:class = org.pulseaudio.pavucontrol
- float = on
- move = move onscreen 100%-w 0
- size = 900 700
-}
-
-# Blueman Manager
-windowrule {
- name = blueman
- match:class = .blueman-manager-wrapped
- float = on
- move = move onscreen 100%-w 0
- size = 900 700
-}
-
-# Networks
-windowrule {
- name = iwgtk
- match:class = org.twosheds.iwgtk
- float = on
- move = move onscreen 100%-w 0
- size = 900 700
-}
-
-#Quickshell powermenu
-windowrule {
- name = quickshell-powermenu
- match:title = quickshell-powermenu
- opacity = 1.0 0.8
- float = on
- move = cursor -50% 0
- pin = on
-}
-
-#Quickshell layoutswitcher
-windowrule {
- name = quickshell-layoutswitcher
- match:title = quickshell-layoutswitcher
- opacity = 1.0 0.8
- float = on
- move = cursor -50% 0
- pin = on
-}
-
-#Quickshell media menu
-windowrule {
- name = quickshell-media
- match:title = quickshell-media
- float = on
- move = cursor -50% 0
- pin = on
-}
-
-# Wofi window rules
-# (match: fields do not support $variables, hardcoded intentionally)
-windowrule {
- name = wofi
- match:class = ^(wofi)$
- border_color = rgb(89b4fa) rgb(a6e3a1) 45deg
- rounding = 14
-}
diff --git a/Droidnix/generated/.config/hypr/workspace-rules.conf b/Droidnix/generated/.config/hypr/workspace-rules.conf
deleted file mode 100644
index 4095c17ae..000000000
--- a/Droidnix/generated/.config/hypr/workspace-rules.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-workspace = 1, monitor:eDP-1 #, layout:master
-workspace = 2, monitor:eDP-1 #, layout:monocle
-workspace = 3, monitor:eDP-1 #, layout:master
-workspace = 4, monitor:DP-1 #, layout:scrolling
-workspace = 5, monitor:DP-1 #, layout:dwindle
-workspace = 6, monitor:DP-1 #, layout:dwindle
diff --git a/Droidnix/generated/.config/quickshell/layoutswitcher/shell.qml b/Droidnix/generated/.config/quickshell/layoutswitcher/shell.qml
deleted file mode 100644
index 6b154e8d1..000000000
--- a/Droidnix/generated/.config/quickshell/layoutswitcher/shell.qml
+++ /dev/null
@@ -1,139 +0,0 @@
-// --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-import Quickshell
-import Quickshell.Io
-import QtQuick
-import QtQuick.Layouts
-
-ShellRoot {
- QtObject {
- id: colors
- readonly property color baseAlpha: Qt.rgba(30/255, 30/255, 46/255, 0.9)
- readonly property color base: "#1e1e2e"
- readonly property color surface0: "#313244"
- readonly property color surface1: "#45475a"
- readonly property color surface2: "#585b70"
- readonly property color text: "#cdd6f4"
- readonly property color subtext0: "#a6adc8"
- readonly property color subtext1: "#bac2de"
- readonly property color blue: "#89b4fa"
- readonly property color green: "#a6e3a1"
- readonly property color teal: "#94e2d5"
- readonly property color red: "#f38ba8"
- readonly property color mauve: "#cba6f7"
- readonly property color peach: "#fab387"
- readonly property color lavender: "#b4befe"
- }
-
- FloatingWindow {
- id: root
- title: "quickshell-layoutswitcher"
- visible: true
- width: 220
- height: contentLayout.implicitHeight + 32
- color: colors.base
-
- Shortcut {
- sequence: "Escape"
- onActivated: Qt.quit()
- }
-
- Rectangle {
- anchors.fill: parent
- anchors.margins: -2
- radius: 18
- z: -1
- opacity: Qt.application.active ? 0 : 1
- Behavior on opacity {
- NumberAnimation { duration: 150 }
- }
- gradient: Gradient {
- orientation: Gradient.Horizontal
- GradientStop { position: 0.0; color: colors.blue }
- GradientStop { position: 1.0; color: colors.green }
- }
- }
-
- Rectangle {
- anchors.fill: parent
- radius: 16
- color: colors.base
-
- ColumnLayout {
- id: contentLayout
- anchors {
- top: parent.top
- left: parent.left
- right: parent.right
- margins: 16
- }
- spacing: 4
-
- Text {
- text: " Layout"
- color: colors.text
- font.pixelSize: 13
- font.bold: true
- Layout.bottomMargin: 8
- }
-
- Repeater {
-
-
- model: [
- { label: " Dwindle", layout: "dwindle", description: "Vensters splitsen recursief — elk nieuw venster halveert de ruimte" },
- { label: " Master", layout: "master", description: "Één groot hoofdvenster links, overige vensters gestapeld rechts" },
- { label: " Scrolling", layout: "scrolling", description: "Vensters naast elkaar in een horizontaal scrollbare rij" },
- { label: " Monocle", layout: "monocle", description: "Één venster tegelijk op volledig scherm, anderen verborgen" },
- ]
-
- delegate: Rectangle {
- id: item
- Layout.fillWidth: true
- height: 38
- radius: 8
- color: hovered ? colors.surface1 : colors.base
- property bool hovered: false
-
- Rectangle {
- anchors.fill: parent
- anchors.margins: -2
- radius: parent.radius + 2
- visible: item.hovered
- z: -1
- gradient: Gradient {
- orientation: Gradient.Horizontal
- GradientStop { position: 0.0; color: colors.blue }
- GradientStop { position: 1.0; color: colors.green }
- }
- }
-
- Text {
- anchors.verticalCenter: parent.verticalCenter
- anchors.left: parent.left
- anchors.leftMargin: 12
- text: modelData.label
- color: item.hovered ? colors.text : colors.subtext1
- font.pixelSize: 13
- }
-
- MouseArea {
- anchors.fill: parent
- hoverEnabled: true
- onEntered: item.hovered = true
- onExited: item.hovered = false
- onClicked: proc.running = true
- }
-
- Process {
- id: proc
- command: ["bash", "-c", "hyprctl keyword general:layout " + modelData.layout + " && hyprctl dispatch layoutmsg reload"]
- onExited: Qt.quit()
- }
- }
- }
-
- Item { height: 4 }
- }
- }
- }
-}
diff --git a/Droidnix/generated/.config/quickshell/media/shell.qml b/Droidnix/generated/.config/quickshell/media/shell.qml
deleted file mode 100644
index b7496dabc..000000000
--- a/Droidnix/generated/.config/quickshell/media/shell.qml
+++ /dev/null
@@ -1,386 +0,0 @@
-// --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-import Quickshell
-import Quickshell.Io
-import QtQuick
-import QtQuick.Layouts
-
-ShellRoot {
- QtObject {
- id: colors
- readonly property color baseAlpha: Qt.rgba(30/255, 30/255, 46/255, 0.95)
- readonly property color base: "#1e1e2e"
- readonly property color surface0: "#313244"
- readonly property color surface1: "#45475a"
- readonly property color surface2: "#585b70"
- readonly property color text: "#cdd6f4"
- readonly property color subtext0: "#a6adc8"
- readonly property color subtext1: "#bac2de"
- readonly property color blue: "#89b4fa"
- readonly property color green: "#a6e3a1"
- readonly property color teal: "#94e2d5"
- readonly property color red: "#f38ba8"
- readonly property color mauve: "#cba6f7"
- readonly property color peach: "#fab387"
- readonly property color lavender: "#b4befe"
- }
-
- QtObject {
- id: media
- property string artist: ""
- property string title: ""
- property string album: ""
- property string artUrl: ""
- property string status: ""
- property string device: ""
- property string player: ""
- property real progress: 0.0
- property real duration: 0.0
- property real position: 0.0
- property int shuffleMode: 0
- readonly property bool isSpotify: player.indexOf("spotify") !== -1
- }
-
- Timer {
- interval: 1000
- running: true
- repeat: true
- onTriggered: {
- playerProc.running = true
- artistProc.running = true
- titleProc.running = true
- albumProc.running = true
- artProc.running = true
- statusProc.running = true
- positionProc.running = true
- lengthProc.running = true
- if (media.isSpotify)
- shuffleProc.running = true
- }
- }
-
- Process {
- id: playerProc
- command: ["playerctl", "-l"]
- stdout: StdioCollector {
- onStreamFinished: {
- var lines = text.trim().split("\n")
- for (var i = 0; i < lines.length; i++) {
- if (lines[i].indexOf("spotify") !== -1) {
- media.player = lines[i].trim()
- return
- }
- }
- media.player = lines[0] ? lines[0].trim() : ""
- }
- }
- }
-
- Process {
- id: artistProc
- command: ["playerctl", "metadata", "artist"]
- stdout: StdioCollector { onStreamFinished: media.artist = text.trim() }
- }
- Process {
- id: titleProc
- command: ["playerctl", "metadata", "title"]
- stdout: StdioCollector { onStreamFinished: media.title = text.trim() }
- }
- Process {
- id: albumProc
- command: ["playerctl", "metadata", "album"]
- stdout: StdioCollector { onStreamFinished: media.album = text.trim() }
- }
- Process {
- id: artProc
- command: ["playerctl", "metadata", "mpris:artUrl"]
- stdout: StdioCollector { onStreamFinished: media.artUrl = text.trim() }
- }
- Process {
- id: statusProc
- command: ["playerctl", "status"]
- stdout: StdioCollector { onStreamFinished: media.status = text.trim() }
- }
- Process {
- id: positionProc
- command: ["playerctl", "position"]
- stdout: StdioCollector {
- onStreamFinished: {
- media.position = parseFloat(text.trim()) || 0
- if (media.duration > 0)
- media.progress = media.position / media.duration
- }
- }
- }
- Process {
- id: lengthProc
- command: ["playerctl", "metadata", "mpris:length"]
- stdout: StdioCollector {
- onStreamFinished: {
- media.duration = (parseFloat(text.trim()) || 0) / 1000000
- }
- }
- }
-
- Process {
- id: shuffleProc
- command: ["playerctl", "--player=" + media.player, "shuffle"]
- stdout: StdioCollector {
- onStreamFinished: {
- media.shuffleMode = (text.trim() === "On") ? 1 : 0
- }
- }
- }
-
- Process { id: shuffleOnProc; command: ["playerctl", "--player=" + media.player, "shuffle", "on"] }
- Process { id: shuffleOffProc; command: ["playerctl", "--player=" + media.player, "shuffle", "off"] }
-
- function cycleShuffleMode() {
- var next = (media.shuffleMode + 1) % 2
- media.shuffleMode = next
- if (next === 0)
- shuffleOffProc.running = true
- else
- shuffleOnProc.running = true
- }
-
- // Focus spotify — uses exact lowercase class as reported by hyprctl
- Process {
- id: focusSpotifyProc
- command: ["hyprctl", "dispatch", "focuswindow", "class:^(spotify)$"]
- }
-
- function focusPlayer() {
- if (media.isSpotify) {
- focusSpotifyProc.running = true
- }
- }
-
- Process { id: prevProc; command: ["playerctl", "previous"] }
- Process { id: playProc; command: ["playerctl", "play-pause"] }
- Process { id: nextProc; command: ["playerctl", "next"] }
-
- FloatingWindow {
- id: root
- title: "quickshell-media"
- visible: true
- implicitWidth: 300
- implicitHeight: 420
- color: "transparent"
-
- Shortcut {
- sequence: "Escape"
- onActivated: Qt.quit()
- }
-
- // Gradient border — hidden when app has focus
- Rectangle {
- anchors.fill: parent
- anchors.margins: -2
- radius: 18
- z: -1
- opacity: Qt.application.active ? 0 : 1
- Behavior on opacity {
- NumberAnimation { duration: 150 }
- }
- gradient: Gradient {
- orientation: Gradient.Horizontal
- GradientStop { position: 0.0; color: colors.blue }
- GradientStop { position: 1.0; color: colors.green }
- }
- }
-
- Rectangle {
- anchors.fill: parent
- radius: 16
- color: colors.base
-
- ColumnLayout {
- anchors {
- fill: parent
- margins: 16
- }
- spacing: 12
-
- // Album art — click to focus player
- Rectangle {
- Layout.fillWidth: true
- Layout.preferredHeight: 200
- radius: 12
- color: colors.surface0
- clip: true
-
- Image {
- anchors.fill: parent
- source: media.artUrl
- fillMode: Image.PreserveAspectCrop
- visible: media.artUrl !== ""
- }
-
- Text {
- anchors.centerIn: parent
- text: ""
- font.pixelSize: 48
- color: colors.surface2
- visible: media.artUrl === ""
- }
-
- MouseArea {
- anchors.fill: parent
- cursorShape: Qt.PointingHandCursor
- onClicked: focusPlayer()
- }
- }
-
- // Artist
- Text {
- Layout.fillWidth: true
- text: media.artist || "Unknown artist"
- color: colors.subtext1
- font.pixelSize: 12
- elide: Text.ElideRight
- }
-
- // Title
- Text {
- Layout.fillWidth: true
- text: media.title || "Nothing playing"
- color: colors.text
- font.pixelSize: 14
- font.bold: true
- elide: Text.ElideRight
- }
-
- // Album
- Text {
- Layout.fillWidth: true
- text: media.album
- color: colors.subtext0
- font.pixelSize: 11
- elide: Text.ElideRight
- visible: media.album !== ""
- }
-
- // Device (Spotify)
- Text {
- Layout.fillWidth: true
- text: " " + media.device
- color: colors.green
- font.pixelSize: 11
- visible: media.device !== ""
- }
-
- // Progress bar
- Rectangle {
- Layout.fillWidth: true
- height: 4
- radius: 2
- color: colors.surface1
-
- Rectangle {
- width: parent.width * media.progress
- height: parent.height
- radius: parent.radius
- gradient: Gradient {
- orientation: Gradient.Horizontal
- GradientStop { position: 0.0; color: colors.blue }
- GradientStop { position: 1.0; color: colors.green }
- }
- }
- }
-
- // Time
- RowLayout {
- Layout.fillWidth: true
-
- Text {
- text: {
- var m = Math.floor(media.position / 60)
- var s = Math.floor(media.position % 60)
- return m + ":" + (s < 10 ? "0" + s : s)
- }
- color: colors.subtext0
- font.pixelSize: 11
- }
-
- Item { Layout.fillWidth: true }
-
- Text {
- text: {
- var m = Math.floor(media.duration / 60)
- var s = Math.floor(media.duration % 60)
- return m + ":" + (s < 10 ? "0" + s : s)
- }
- color: colors.subtext0
- font.pixelSize: 11
- }
- }
-
- // Playback controls + shuffle
- RowLayout {
- Layout.fillWidth: true
- Layout.alignment: Qt.AlignHCenter
- spacing: 20
-
- // Shuffle button (Spotify only)
- Item {
- visible: media.isSpotify
- width: 28
- height: 28
-
- Text {
- anchors.centerIn: parent
- text: ""
- font.pixelSize: 18
- color: media.shuffleMode === 0 ? colors.surface2 : colors.blue
- }
-
- MouseArea {
- anchors.fill: parent
- cursorShape: Qt.PointingHandCursor
- onClicked: cycleShuffleMode()
- }
- }
-
- Text {
- text: ""
- font.pixelSize: 22
- color: prevHover.containsMouse ? colors.blue : colors.text
- MouseArea {
- id: prevHover
- anchors.fill: parent
- hoverEnabled: true
- cursorShape: Qt.PointingHandCursor
- onClicked: prevProc.running = true
- }
- }
-
- Text {
- text: media.status === "Playing" ? "" : ""
- font.pixelSize: 28
- color: playHover.containsMouse ? colors.green : colors.text
- MouseArea {
- id: playHover
- anchors.fill: parent
- hoverEnabled: true
- cursorShape: Qt.PointingHandCursor
- onClicked: playProc.running = true
- }
- }
-
- Text {
- text: ""
- font.pixelSize: 22
- color: nextHover.containsMouse ? colors.blue : colors.text
- MouseArea {
- id: nextHover
- anchors.fill: parent
- hoverEnabled: true
- cursorShape: Qt.PointingHandCursor
- onClicked: nextProc.running = true
- }
- }
- }
- }
- }
- }
-}
diff --git a/Droidnix/generated/.config/quickshell/powermenu/shell.qml b/Droidnix/generated/.config/quickshell/powermenu/shell.qml
deleted file mode 100644
index aef332e37..000000000
--- a/Droidnix/generated/.config/quickshell/powermenu/shell.qml
+++ /dev/null
@@ -1,140 +0,0 @@
-// --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-import Quickshell
-import Quickshell.Io
-import QtQuick
-import QtQuick.Layouts
-
-ShellRoot {
- QtObject {
- id: colors
- readonly property color baseAlpha: Qt.rgba(30/255, 30/255, 46/255, 0.9)
- readonly property color base: "#1e1e2e"
- readonly property color surface0: "#313244"
- readonly property color surface1: "#45475a"
- readonly property color surface2: "#585b70"
- readonly property color text: "#cdd6f4"
- readonly property color subtext0: "#a6adc8"
- readonly property color subtext1: "#bac2de"
- readonly property color blue: "#89b4fa"
- readonly property color green: "#a6e3a1"
- readonly property color teal: "#94e2d5"
- readonly property color red: "#f38ba8"
- readonly property color mauve: "#cba6f7"
- readonly property color peach: "#fab387"
- readonly property color lavender: "#b4befe"
- }
-
- FloatingWindow {
- id: root
- title: "quickshell-powermenu"
- visible: true
- width: 220
- height: contentLayout.implicitHeight + 32
- color: colors.base
-
- Shortcut {
- sequence: "Escape"
- onActivated: Qt.quit()
- }
-
- // Gradient border — hidden when app has focus
- Rectangle {
- anchors.fill: parent
- anchors.margins: -2
- radius: 18
- z: -1
- opacity: Qt.application.active ? 0 : 1
- Behavior on opacity {
- NumberAnimation { duration: 150 }
- }
- gradient: Gradient {
- orientation: Gradient.Horizontal
- GradientStop { position: 0.0; color: colors.blue }
- GradientStop { position: 1.0; color: colors.green }
- }
- }
-
- Rectangle {
- anchors.fill: parent
- radius: 16
- color: colors.base
-
- ColumnLayout {
- id: contentLayout
- anchors {
- top: parent.top
- left: parent.left
- right: parent.right
- margins: 16
- }
- spacing: 4
-
- Text {
- text: " Power Menu"
- color: colors.text
- font.pixelSize: 13
- font.bold: true
- Layout.bottomMargin: 8
- }
-
- Repeater {
- model: [
- { label: " Lock", cmd: ["hyprlock"] },
- { label: " Shutdown", cmd: ["systemctl", "poweroff"] },
- { label: " Reboot", cmd: ["systemctl", "reboot"] },
- { label: " Logout", cmd: ["bash", "-c", "loginctl terminate-session $XDG_SESSION_ID"] },
- { label: " Hibernate", cmd: ["systemctl", "hibernate"] },
- { label: " Suspend", cmd: ["systemctl", "suspend"] },
- ]
-
- delegate: Rectangle {
- id: item
- Layout.fillWidth: true
- height: 38
- radius: 8
- color: hovered ? colors.surface1 : colors.base
- property bool hovered: false
-
- Rectangle {
- anchors.fill: parent
- anchors.margins: -2
- radius: parent.radius + 2
- visible: item.hovered
- z: -1
- gradient: Gradient {
- orientation: Gradient.Horizontal
- GradientStop { position: 0.0; color: colors.blue }
- GradientStop { position: 1.0; color: colors.green }
- }
- }
-
- Text {
- anchors.verticalCenter: parent.verticalCenter
- anchors.left: parent.left
- anchors.leftMargin: 12
- text: modelData.label
- color: item.hovered ? colors.text : colors.subtext1
- font.pixelSize: 13
- }
-
- MouseArea {
- anchors.fill: parent
- hoverEnabled: true
- onEntered: item.hovered = true
- onExited: item.hovered = false
- onClicked: proc.running = true
- }
-
- Process {
- id: proc
- command: modelData.cmd
- onExited: Qt.quit()
- }
- }
- }
-
- Item { height: 4 }
- }
- }
- }
-}
diff --git a/Droidnix/generated/.config/scripts/batterywarn.sh b/Droidnix/generated/.config/scripts/batterywarn.sh
deleted file mode 100755
index 54d212ed2..000000000
--- a/Droidnix/generated/.config/scripts/batterywarn.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env bash
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-capacity=$(cat /sys/class/power_supply/BAT*/capacity)
-status=$(cat /sys/class/power_supply/BAT*/status)
-
-if [ "$status" != "Charging" ] && [ "$capacity" -lt 15 ]; then
- echo " $capacity%"
-else
- echo ""
-fi
diff --git a/Droidnix/generated/.config/scripts/bluetooth-status.sh b/Droidnix/generated/.config/scripts/bluetooth-status.sh
deleted file mode 100755
index 22d0278f9..000000000
--- a/Droidnix/generated/.config/scripts/bluetooth-status.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-bt_connected=""
-while read -r _ mac name_rest; do
- if [ "$(bluetoothctl info "$mac" | awk '/Connected:/ {print $2}')" = "yes" ]; then
- bt_connected+="$name_rest\n"
- fi
-done < <(bluetoothctl devices)
-# icon
-if [ -n "$bt_connected" ]; then
- icon=""
- tooltip=$(printf "%b" "$bt_connected")
-else
- icon=""
- tooltip="No devices connected"
-fi
-# ALWAYS produce valid JSON
-printf '{"text": "%s", "tooltip": "%s"}\n' "$icon" "$tooltip"
diff --git a/Droidnix/generated/.config/scripts/hypr-workspaces.sh b/Droidnix/generated/.config/scripts/hypr-workspaces.sh
deleted file mode 100755
index 1436c5e42..000000000
--- a/Droidnix/generated/.config/scripts/hypr-workspaces.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env bash
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-# Get focused monitor name
-focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused==true) | .name')
-monitor="${WAYBAR_OUTPUT_NAME:-$focused_monitor}"
-
-# Hide if not focused monitor
-if [ "$monitor" != "$focused_monitor" ]; then
- jq -c -n '{text:"", class:"hidden"}'
- exit 0
-fi
-
-# Get active workspace on this monitor
-active_ws=$(hyprctl monitors -j | jq -r \
- ".[] | select(.name==\"$monitor\") | .activeWorkspace.id")
-
-# Get clients
-clients=$(hyprctl clients -j | jq -r \
- ".[] | select(.workspace.id==$active_ws) | \"\(.title)\"")
-
-count=$(echo "$clients" | grep -c '\S')
-
-# Hide if 0 or 1 clients — no point showing window switcher
-if [ "$count" -le 1 ]; then
- jq -c -n '{text:"", class:"hidden"}'
- exit 0
-fi
-
-tooltip=$(echo "$clients" | sed 's/^/• /' | paste -sd '\n' -)
-
-jq -c -n \
- --arg text "$count" \
- --arg tooltip "$tooltip" \
- --arg class "active" \
- '{text:$text, tooltip:$tooltip, class:$class}'
diff --git a/Droidnix/generated/.config/scripts/hypr-workspacesmenu.sh b/Droidnix/generated/.config/scripts/hypr-workspacesmenu.sh
deleted file mode 100755
index d18c6042a..000000000
--- a/Droidnix/generated/.config/scripts/hypr-workspacesmenu.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env bash
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-active_ws=$(hyprctl activeworkspace -j | jq -r '.id')
-clients=$(hyprctl clients -j | jq -r \
- ".[] | select(.workspace.id==$active_ws) | \"\(.address)|\(.title)\"")
-
-choice=$(echo "$clients" | cut -d'|' -f2 \
- | wofi --dmenu \
- --style ~/.config/wofi/style.css \
- --allow-images=false \
- --prompt "Active windows ...")
-
-[ -z "$choice" ] && exit 0
-addr=$(echo "$clients" | grep "|$choice" | head -n1 | cut -d'|' -f1)
-hyprctl dispatch focuswindow address:"$addr"
diff --git a/Droidnix/generated/.config/scripts/kdeconnect-status.sh b/Droidnix/generated/.config/scripts/kdeconnect-status.sh
deleted file mode 100755
index 0d73f455d..000000000
--- a/Droidnix/generated/.config/scripts/kdeconnect-status.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env bash
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-DEVICE=$(kdeconnect-cli --list-devices | grep -oP '(?<=\().*?(?=\))' | head -n 1)
-
-if [ -z "$DEVICE" ]; then
- echo "No phone"
- exit 0
-fi
-
-NAME=$(kdeconnect-cli -d "$DEVICE" --name 2>/dev/null)
-BATTERY=$(kdeconnect-cli -d "$DEVICE" --battery 2>/dev/null | grep -o '[0-9]\+' | head -n 1)
-
-if [ -z "$BATTERY" ]; then
- echo "$NAME"
-else
- echo "$NAME $BATTERY%"
-fi
diff --git a/Droidnix/generated/.config/scripts/media.sh b/Droidnix/generated/.config/scripts/media.sh
deleted file mode 100755
index f186cb582..000000000
--- a/Droidnix/generated/.config/scripts/media.sh
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/env bash
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-
-# Player selection — prefer actively playing player
-player=$(playerctl -l 2>/dev/null | while read -r p; do
- st=$(playerctl --player="$p" status 2>/dev/null)
- [ "$st" = "Playing" ] && echo "$p" && break
-done)
-[ -z "$player" ] && player=$(playerctl -l 2>/dev/null | head -n1)
-
-if [ -z "$player" ]; then
- jq -c -n '{text: "", tooltip: "", class: "inactive"}'
- exit 0
-fi
-
-status=$(playerctl --player="$player" status 2>/dev/null)
-if [ "$status" != "Playing" ] && [ "$status" != "Paused" ]; then
- jq -c -n '{text: "", tooltip: "", class: "inactive"}'
- exit 0
-fi
-
-artist=$(playerctl --player="$player" metadata artist 2>/dev/null)
-title=$(playerctl --player="$player" metadata title 2>/dev/null)
-album=$(playerctl --player="$player" metadata album 2>/dev/null)
-art=$(playerctl --player="$player" metadata mpris:artUrl 2>/dev/null)
-length=$(playerctl --player="$player" metadata mpris:length 2>/dev/null)
-position=$(playerctl --player="$player" position 2>/dev/null)
-
-# Progress percentage — pure bash, no bc needed
-if [ -n "$length" ] && [ -n "$position" ] && [ "$length" -gt 0 ] 2>/dev/null; then
- pos_us=$(echo "$position" | awk '{printf "%d", $1 * 1000000}')
- progress=$(( pos_us * 100 / length ))
-else
- progress=0
-fi
-
-# Spotify device
-device=""
-if [[ "$player" == *"spotify"* ]]; then
- device=$(playerctl --player="$player" metadata xesam:url 2>/dev/null | grep -o 'device=[^&]*' | cut -d= -f2)
-fi
-
-# Icon
-if [ "$status" = "Paused" ]; then
- icon="⏸ "
-else
- icon="▶ "
-fi
-
-# Scrolling ticker
-CACHE_FILE="/tmp/waybar_media_scroll_${player//\//_}"
-full_text="${artist} — ${title}"
-text_len=${#full_text}
-display_len=30
-
-# Reset scroll offset when track changes
-TRACK_FILE="/tmp/waybar_media_track_${player//\//_}"
-last_track=""
-[ -f "$TRACK_FILE" ] && last_track=$(cat "$TRACK_FILE")
-if [ "$full_text" != "$last_track" ]; then
- echo "0" > "$CACHE_FILE"
- echo "$full_text" > "$TRACK_FILE"
-fi
-
-if [ "$text_len" -le "$display_len" ]; then
- text="$full_text"
-else
- offset=0
- [ -f "$CACHE_FILE" ] && offset=$(cat "$CACHE_FILE")
-
- padded="${full_text} ${full_text}"
- text="${padded:$offset:$display_len}"
-
- next_offset=$(( (offset + 1) % (text_len + 4) ))
- echo "$next_offset" > "$CACHE_FILE"
-fi
-
-# Build tooltip
-tooltip="Artist: ${artist}
-Title: ${title}
-Album: ${album}"
-if [ -n "$device" ]; then
- tooltip="${tooltip}
- ${device}"
-fi
-tooltip="${tooltip}"
-jq -c -n \
- --arg text "${icon}${text}" \
- --arg tooltip "$tooltip" \
- --arg class "$player" \
- --arg art "$art" \
- '{text: $text, tooltip: $tooltip, class: $class, alt: $art}'
diff --git a/Droidnix/generated/.config/scripts/numlock-check.sh b/Droidnix/generated/.config/scripts/numlock-check.sh
deleted file mode 100755
index 6be5e31a4..000000000
--- a/Droidnix/generated/.config/scripts/numlock-check.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env bash
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-# Tel toetsenborden met volledige toetsset (geen media-only apparaten)
-COUNT=$(libinput list-devices 2>/dev/null \
- | grep -A5 "Keyboard" \
- | grep -c "kbd")
-
-# Of via xinput / /proc alternatief:
-# COUNT=$(cat /proc/bus/input/devices | grep -B5 'KEY=.*[a-f0-9]\{10\}' | grep -c 'Name=')
-
-if [ "$COUNT" -ge 2 ]; then
- numlockx on
-else
- numlockx off
-fi
diff --git a/Droidnix/generated/.config/scripts/power.sh b/Droidnix/generated/.config/scripts/power.sh
deleted file mode 100755
index 927bdc644..000000000
--- a/Droidnix/generated/.config/scripts/power.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env bash
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-#
-# Launch a power menu
-#
-# Requires fzf and systemd (loginctl, systemctl)
-#
-# Author: Jesse Mirabel
-# Date: August 19, 2025
-# License: MIT
-
-main() {
- local list=(
- " Lock"
- " Shutdown"
- " Reboot"
- " Logout"
- " Hibernate"
- " Suspend"
- )
-
- local options=(
- "--border=sharp"
- "--border-label= Power Menu "
- "--cycle"
- "--ghost=Search"
- "--height=~100%"
- "--highlight-line"
- "--info=inline-right"
- "--pointer="
- "--reverse"
- )
-
- local selected
- selected=$(printf "%s\n" "${list[@]}" | fzf "${options[@]}")
-
- case $selected in
- Lock) loginctl lock-session ;;
- Shutdown) systemctl poweroff ;;
- Reboot) systemctl reboot ;;
- Logout) loginctl terminate-session "$XDG_SESSION_ID" ;;
- Hibernate) systemctl hibernate ;;
- Suspend) systemctl suspend ;;
- *) return 1 ;;
- esac
-}
-
-main
diff --git a/Droidnix/generated/.config/scripts/update.sh b/Droidnix/generated/.config/scripts/update.sh
deleted file mode 100755
index 86e731bb5..000000000
--- a/Droidnix/generated/.config/scripts/update.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-set -e
-REPO="/home/$USER/Repos/nixos/Droidnix"
-HOSTNAME="$(hostname)"
-cd "$REPO"
-
-echo "🔧 Fixing ownership..."
-sudo chown "$USER":"$USER" flake.lock 2>/dev/null || true
-
-echo "🔄 Updating flake..."
-nix flake update
-
-echo "🏗 Rebuilding NixOS..."
-sudo nixos-rebuild switch --flake ".#$HOSTNAME"
-
-echo "📦 Updating Flatpaks..."
-flatpak update -y
diff --git a/Droidnix/generated/.config/scripts/wofi-launcher.sh b/Droidnix/generated/.config/scripts/wofi-launcher.sh
deleted file mode 100755
index 59ba3ae6c..000000000
--- a/Droidnix/generated/.config/scripts/wofi-launcher.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env bash
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-wofi --show drun \
- --style ~/.config/wofi/style.css \
- --no-actions \
- --allow-images=false \
- --columns 1 \
- --prompt "Apps ..."
diff --git a/Droidnix/generated/.config/shared/colors.css b/Droidnix/generated/.config/shared/colors.css
deleted file mode 100644
index 58971af77..000000000
--- a/Droidnix/generated/.config/shared/colors.css
+++ /dev/null
@@ -1,33 +0,0 @@
-/* --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. --- */
-/* Catppuccin Mocha Palette */
-@define-color border #97C9E6;
-@define-color crust #11111b;
-@define-color mantle #181825;
-@define-color base #1e1e2e;
-@define-color base-alpha rgba(30, 30, 46, 0.2);
-
-@define-color surface0 #313244;
-@define-color surface1 #45475a;
-@define-color surface2 #585b70;
-
-@define-color overlay0 #6c7086;
-@define-color overlay1 #7f849c;
-@define-color overlay2 #9399b2;
-
-@define-color subtext0 #a6adc8;
-@define-color subtext1 #bac2de;
-@define-color text #cdd6f4;
-
-@define-color rosewater #f5e0dc;
-@define-color flamingo #f2cdcd;
-@define-color pink #f5c2e7;
-@define-color mauve #cba6f7;
-@define-color red #f38ba8;
-@define-color maroon #eba0ac;
-@define-color peach #fab387;
-@define-color yellow #f9e2af;
-@define-color green #a6e3a1;
-@define-color teal #94e2d5;
-@define-color sapphire #74c7ec;
-@define-color blue #89b4fa;
-@define-color lavender #b4befe;
diff --git a/Droidnix/generated/.config/starship.toml b/Droidnix/generated/.config/starship.toml
deleted file mode 100644
index b72b464ed..000000000
--- a/Droidnix/generated/.config/starship.toml
+++ /dev/null
@@ -1,280 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-"$schema" = 'https://starship.rs/config-schema.json'
-
-format = """
-[](red)\
-$os\
-$username\
-[](bg:peach fg:red)\
-$directory\
-[](bg:yellow fg:peach)\
-$git_branch\
-$git_status\
-[](fg:yellow bg:green)\
-$c\
-$rust\
-$golang\
-$nodejs\
-$php\
-$java\
-$kotlin\
-$haskell\
-$python\
-[](fg:green bg:sapphire)\
-$conda\
-[](fg:sapphire bg:lavender)\
-$time\
-[ ](fg:lavender)\
-$cmd_duration\
-$line_break\
-$character"""
-
-palette = 'catppuccin_mocha'
-
-[os]
-disabled = false
-style = "bg:red fg:crust"
-
-[os.symbols]
-Windows = ""
-Ubuntu = ""
-SUSE = ""
-Raspbian = ""
-Mint = ""
-Macos = ""
-Manjaro = ""
-Linux = ""
-Gentoo = ""
-Fedora = ""
-Alpine = ""
-Amazon = ""
-Android = ""
-AOSC = ""
-Arch = ""
-Artix = ""
-CentOS = ""
-Debian = ""
-Redhat = ""
-RedHatEnterprise = ""
-
-[username]
-show_always = true
-style_user = "bg:red fg:crust"
-style_root = "bg:red fg:crust"
-format = '[ $user]($style)'
-
-[directory]
-style = "bg:peach fg:crust"
-format = "[ $path ]($style)"
-truncation_length = 3
-truncation_symbol = "…/"
-
-[directory.substitutions]
-"Documents" = " "
-"Downloads" = " "
-"Music" = " "
-"Pictures" = " "
-"Developer" = " "
-
-[git_branch]
-symbol = ""
-style = "bg:yellow"
-format = '[[ $symbol $branch ](fg:crust bg:yellow)]($style)'
-
-[git_status]
-style = "bg:yellow"
-format = '[[($all_status$ahead_behind )](fg:crust bg:yellow)]($style)'
-
-[nodejs]
-symbol = ""
-style = "bg:green"
-format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
-
-[c]
-symbol = " "
-style = "bg:green"
-format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
-
-[rust]
-symbol = ""
-style = "bg:green"
-format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
-
-[golang]
-symbol = ""
-style = "bg:green"
-format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
-
-[php]
-symbol = ""
-style = "bg:green"
-format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
-
-[java]
-symbol = " "
-style = "bg:green"
-format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
-
-[kotlin]
-symbol = ""
-style = "bg:green"
-format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
-
-[haskell]
-symbol = ""
-style = "bg:green"
-format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
-
-[python]
-symbol = ""
-style = "bg:green"
-format = '[[ $symbol( $version)(\(#$virtualenv\)) ](fg:crust bg:green)]($style)'
-
-[docker_context]
-symbol = ""
-style = "bg:sapphire"
-format = '[[ $symbol( $context) ](fg:crust bg:sapphire)]($style)'
-
-[conda]
-symbol = " "
-style = "fg:crust bg:sapphire"
-format = '[$symbol$environment ]($style)'
-ignore_base = false
-
-[time]
-disabled = false
-time_format = "%R"
-style = "bg:lavender"
-format = '[[ $time ](fg:crust bg:lavender)]($style)'
-
-[line_break]
-disabled = false
-
-[character]
-disabled = false
-success_symbol = '[❯](bold fg:green)'
-error_symbol = '[❯](bold fg:red)'
-vimcmd_symbol = '[❮](bold fg:green)'
-vimcmd_replace_one_symbol = '[❮](bold fg:lavender)'
-vimcmd_replace_symbol = '[❮](bold fg:lavender)'
-vimcmd_visual_symbol = '[❮](bold fg:yellow)'
-
-[cmd_duration]
-show_milliseconds = true
-format = " in $duration "
-style = "bg:lavender"
-disabled = false
-show_notifications = true
-min_time_to_notify = 60000
-
-[palettes.catppuccin_mocha]
-rosewater = "#f5e0dc"
-flamingo = "#f2cdcd"
-pink = "#f5c2e7"
-mauve = "#cba6f7"
-red = "#f38ba8"
-maroon = "#eba0ac"
-peach = "#fab387"
-yellow = "#f9e2af"
-green = "#a6e3a1"
-teal = "#94e2d5"
-sky = "#89dceb"
-sapphire = "#74c7ec"
-blue = "#89b4fa"
-lavender = "#b4befe"
-text = "#cdd6f4"
-subtext1 = "#bac2de"
-subtext0 = "#a6adc8"
-overlay2 = "#9399b2"
-overlay1 = "#7f849c"
-overlay0 = "#6c7086"
-surface2 = "#585b70"
-surface1 = "#45475a"
-surface0 = "#313244"
-base = "#1e1e2e"
-mantle = "#181825"
-crust = "#11111b"
-
-[palettes.catppuccin_frappe]
-rosewater = "#f2d5cf"
-flamingo = "#eebebe"
-pink = "#f4b8e4"
-mauve = "#ca9ee6"
-red = "#e78284"
-maroon = "#ea999c"
-peach = "#ef9f76"
-yellow = "#e5c890"
-green = "#a6d189"
-teal = "#81c8be"
-sky = "#99d1db"
-sapphire = "#85c1dc"
-blue = "#8caaee"
-lavender = "#babbf1"
-text = "#c6d0f5"
-subtext1 = "#b5bfe2"
-subtext0 = "#a5adce"
-overlay2 = "#949cbb"
-overlay1 = "#838ba7"
-overlay0 = "#737994"
-surface2 = "#626880"
-surface1 = "#51576d"
-surface0 = "#414559"
-base = "#303446"
-mantle = "#292c3c"
-crust = "#232634"
-
-[palettes.catppuccin_latte]
-rosewater = "#dc8a78"
-flamingo = "#dd7878"
-pink = "#ea76cb"
-mauve = "#8839ef"
-red = "#d20f39"
-maroon = "#e64553"
-peach = "#fe640b"
-yellow = "#df8e1d"
-green = "#40a02b"
-teal = "#179299"
-sky = "#04a5e5"
-sapphire = "#209fb5"
-blue = "#1e66f5"
-lavender = "#7287fd"
-text = "#4c4f69"
-subtext1 = "#5c5f77"
-subtext0 = "#6c6f85"
-overlay2 = "#7c7f93"
-overlay1 = "#8c8fa1"
-overlay0 = "#9ca0b0"
-surface2 = "#acb0be"
-surface1 = "#bcc0cc"
-surface0 = "#ccd0da"
-base = "#eff1f5"
-mantle = "#e6e9ef"
-crust = "#dce0e8"
-
-[palettes.catppuccin_macchiato]
-rosewater = "#f4dbd6"
-flamingo = "#f0c6c6"
-pink = "#f5bde6"
-mauve = "#c6a0f6"
-red = "#ed8796"
-maroon = "#ee99a0"
-peach = "#f5a97f"
-yellow = "#eed49f"
-green = "#a6da95"
-teal = "#8bd5ca"
-sky = "#91d7e3"
-sapphire = "#7dc4e4"
-blue = "#8aadf4"
-lavender = "#b7bdf8"
-text = "#cad3f5"
-subtext1 = "#b8c0e0"
-subtext0 = "#a5adcb"
-overlay2 = "#939ab7"
-overlay1 = "#8087a2"
-overlay0 = "#6e738d"
-surface2 = "#5b6078"
-surface1 = "#494d64"
-surface0 = "#363a4f"
-base = "#24273a"
-mantle = "#1e2030"
-crust = "#181926"
diff --git a/Droidnix/generated/.config/stylix/palette.html b/Droidnix/generated/.config/stylix/palette.html
deleted file mode 100644
index 08b479aad..000000000
--- a/Droidnix/generated/.config/stylix/palette.html
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
-
- Primary colors
-
-
00
-
01
-
02
-
03
-
04
-
05
-
06
-
07
-
-
- Accents
-
-
08
-
09
-
0A
-
0B
-
0C
-
0D
-
0E
-
0F
-
-
- Documentation
- Each color should be used as described in this table .
- See the Stylix documentation for how to apply these colors on NixOS.
-
-
diff --git a/Droidnix/generated/.config/stylix/palette.json b/Droidnix/generated/.config/stylix/palette.json
deleted file mode 100644
index 5e7417b72..000000000
--- a/Droidnix/generated/.config/stylix/palette.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "base00": "1e1e2e",
- "base01": "181825",
- "base02": "313244",
- "base03": "45475a",
- "base04": "585b70",
- "base05": "cdd6f4",
- "base06": "f5e0dc",
- "base07": "b4befe",
- "base08": "f38ba8",
- "base09": "fab387",
- "base0A": "f9e2af",
- "base0B": "a6e3a1",
- "base0C": "94e2d5",
- "base0D": "89b4fa",
- "base0E": "cba6f7",
- "base0F": "f2cdcd",
- "author": "https://github.com/catppuccin/catppuccin",
- "scheme": "Catppuccin Mocha",
- "slug": "catppuccin-mocha"
-}
diff --git a/Droidnix/generated/.config/stylix/stylix.conf b/Droidnix/generated/.config/stylix/stylix.conf
deleted file mode 100644
index 2d0605ca4..000000000
--- a/Droidnix/generated/.config/stylix/stylix.conf
+++ /dev/null
@@ -1,29 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-enable = true;
-base16Scheme = ../../../assets/system/theming/stylix/catppuccin-mocha.yaml;
-image = ../../../assets/hyprland/wallpaperstuff/pictures/wall1.jpg;
-polarity = "dark";
-
-cursor = {
- package = "phinger-cursors"; # symbolic reference
- name = "phinger-cursors-light";
- size = 24;
-};
-
-fonts = {
- monospace = {
- package = "nerd-fonts-fira-code";
- name = "Fira Code Nerd Font";
- };
- sansSerif = {
- package = "lato";
- name = "Lato";
- };
-};
-
-icons = {
- enable = true;
- package = "papirus-icon-theme";
- dark = "Papirus-Dark";
- light = "Papirus-Light";
-};
diff --git a/Droidnix/generated/.config/swaync/config.json b/Droidnix/generated/.config/swaync/config.json
deleted file mode 100644
index 3d7806982..000000000
--- a/Droidnix/generated/.config/swaync/config.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "positionX": "right",
- "positionY": "top",
- "layer": "overlay",
- "control-center-layer": "top",
- "layer-shell": true,
- "cssPriority": "application",
- "control-center-margin-top": 8,
- "control-center-margin-bottom": 8,
- "control-center-margin-right": 8,
- "control-center-margin-left": 0,
- "notification-2fa-action": true,
- "notification-inline-replies": false,
- "notification-icon-size": 48,
- "notification-body-image-height": 100,
- "notification-body-image-width": 200,
- "timeout": 10,
- "timeout-low": 5,
- "timeout-critical": 0,
- "fit-to-screen": true,
- "control-center-height": -1,
- "control-center-width": 300,
- "notification-window-width": 400,
- "keyboard-shortcuts": true,
- "image-visibility": "when-available",
- "transition-time": 200,
- "hide-on-clear": false,
- "hide-on-action": true,
- "script-fail-notify": true,
- "widgets": [
- "inhibitors",
- "title",
- "dnd",
- "notifications"
- ],
- "widget-config": {
- "inhibitors": {
- "text": "Inhibitors",
- "button-text": "Clear All",
- "clear-all-button": true
- },
- "title": {
- "text": "Notifications",
- "clear-all-button": true,
- "button-text": "Clear All"
- },
- "dnd": {
- "text": "Do Not Disturb"
- },
- "notifications": {}
- }
-}
diff --git a/Droidnix/generated/.config/swaync/style.css b/Droidnix/generated/.config/swaync/style.css
deleted file mode 100644
index ee34f9d09..000000000
--- a/Droidnix/generated/.config/swaync/style.css
+++ /dev/null
@@ -1,184 +0,0 @@
-/* --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. --- */
-@import url("/home/henrov/.config/shared/colors.css");
-
- * {
- all: unset;
- font-size: 13px;
- font-family: sans-serif;
- transition: 200ms;
-}
-
-/* ── Notification rows ─────────────────────────────────────────────────── */
-
-.notification-row {
- outline: none;
- margin: 4px 0;
-}
-
-.notification-row:focus,
-.notification-row:hover {
- opacity: 0.85;
-}
-
-/* ── Individual notification ───────────────────────────────────────────── */
-
-.notification {
- border-radius: 12px;
- padding: 8px;
- margin: 4px 8px;
- color: @text;
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
-
- /* gradient border */
- border: 2px solid transparent;
- background-image:
- linear-gradient(@base-alpha, @base-alpha),
- linear-gradient(45deg, @blue, @green);
- background-clip: padding-box, border-box;
- background-origin: padding-box, border-box;
-}
-
-.notification-content {
- padding: 4px;
-}
-
-.notification-default-action {
- border-radius: 12px;
-}
-
-.notification-default-action:hover {
- background: alpha(@blue, 0.1);
-}
-
-/* ── Text elements ─────────────────────────────────────────────────────── */
-
-.summary {
- font-size: 13px;
- font-weight: bold;
- color: @text;
-}
-
-.time {
- font-size: 11px;
- color: @overlay0;
-}
-
-.body {
- font-size: 12px;
- color: @subtext1;
-}
-
-/* ── Control center ────────────────────────────────────────────────────── */
-
-.control-center {
- min-height: unset;
- border-radius: 30px;
- padding: 8px;
- margin: 8px;
- color: @text;
- box-shadow: 0 4px 24px rgba(0, 0, 0, 0.5);
- border: 2px solid transparent;
- background-image:
- linear-gradient(@base-alpha, @base-alpha),
- linear-gradient(45deg, @blue, @green);
- background-clip: padding-box, border-box;
- background-origin: padding-box, border-box;
-}
-
-.control-center-list {
- background: transparent;
- min-height: unset;
-}
-
-.control-center-list-placeholder {
- opacity: 0.4;
- font-size: 14px;
-}
-
-/* ── Misc windows ──────────────────────────────────────────────────────── */
-
-.floating-notifications {
- background: transparent;
-}
-
-.blank-window {
- background: transparent;
-}
-
-/* ── Widget: title ─────────────────────────────────────────────────────── */
-
-.widget-title {
- font-size: 14px;
- font-weight: bold;
- color: @blue;
- padding: 8px 4px 4px 4px;
-}
-
-.widget-title > button {
- font-size: 12px;
- color: @overlay0;
- background: alpha(@blue, 0.1);
- border-radius: 8px;
- padding: 2px 8px;
-}
-
-.widget-title > button:hover {
- background: alpha(@blue, 0.2);
- color: @text;
-}
-
-/* ── Widget: Do Not Disturb ────────────────────────────────────────────── */
-
-.widget-dnd {
- padding: 4px;
-}
-
-.widget-dnd > switch {
- border-radius: 20px;
- background: alpha(@surface1, 0.3);
-
- /* gradient border */
- border: 1px solid transparent;
- background-image:
- linear-gradient(alpha(@surface1, 0.3), alpha(@surface1, 0.3)),
- linear-gradient(45deg, @blue, @green);
- background-clip: padding-box, border-box;
- background-origin: padding-box, border-box;
-}
-
-.widget-dnd > switch:checked {
- background-image:
- linear-gradient(alpha(@blue, 0.5), alpha(@blue, 0.5)),
- linear-gradient(45deg, @blue, @green);
- background-clip: padding-box, border-box;
- background-origin: padding-box, border-box;
-}
-
-.widget-dnd > switch slider {
- border-radius: 20px;
- background: @text;
- min-width: 20px;
- min-height: 20px;
-}
-
-/* ── Widget: inhibitors ────────────────────────────────────────────────── */
-
-.widget-inhibitors {
- padding: 4px;
- color: @red;
- font-size: 12px;
-}
-
-/* ── Close button ──────────────────────────────────────────────────────── */
-
-.close-button {
- background: alpha(@red, 0.15);
- border-radius: 6px;
- color: @red;
- padding: 2px 6px;
- font-size: 11px;
-}
-
-.close-button:hover {
- background: alpha(@red, 0.3);
-}
diff --git a/Droidnix/generated/.config/waybar/config.jsonc b/Droidnix/generated/.config/waybar/config.jsonc
deleted file mode 100644
index 134ab1d17..000000000
--- a/Droidnix/generated/.config/waybar/config.jsonc
+++ /dev/null
@@ -1,327 +0,0 @@
-{
- "layer": "top",
- "position": "top",
- "autohide": true,
- "autohide-blocked": false,
- "exclusive": true,
- "passthrough": false,
- "gtk-layer-shell": true,
-
-
- /*******************************************************************/
- "modules-left": [
- "group/hardware"
- ],
-
- "modules-center": [
- "group/workspaces"
- ,"group/sporadic"
-
- ],
-
- "modules-right": [
- "group/audio"
- ,"group/tray"
- ,"group/datestuff"
- ,"group/system"
- ,"group/notifications"
- ],
-
- /*******************************************************************/
- "group/workspaces": {
- "orientation": "horizontal",
- "modules": [
- "hyprland/workspaces",
- "custom/windows"
- ]
- },
-
-/*******************************************************************/
- "group/hardware": {
- "orientation": "horizontal",
- "drawer": {
- "transition-duration": 500,
- "transition-left-to-right": true
- },
- "modules": [
- "custom/hardware-anchor",
- "battery",
- "cpu",
- "memory",
- "temperature"
- ]
- },
-
- "custom/hardware-anchor": {
-
- "format": " ",
- "tooltip": false
- },
-
- /*******************************************************************/
- "group/tray": {
- "orientation": "horizontal",
- "drawer": {
- "transition-duration": 500,
- "transition-left-to-right": true
- },
- "modules": [
- "custom/tray-anchor"
- ,"tray"
- ]
- },
-
- "custom/tray-anchor": {
-
- "format": " ",
- "tooltip": false
- },
-
- /*******************************************************************/
- "group/system": {
- "orientation": "horizontal",
- "drawer": {
- "transition-duration": 500,
- "transition-left-to-right": true
- },
- "modules": [
- "custom/system-anchor"
- ,"custom/power"
- ,"idle_inhibitor"
- ]
- },
-
- "custom/system-anchor": {
-
- "format": "",
- "tooltip": false
- },
-
-
-/*************************/
-
- "group/connections": {
- "orientation": "horizontal",
- "drawer": {
- "transition-duration": 500,
- "transition-left-to-right": true
- },
- "modules": [
- "custom/connections-anchor"
- ,"custom/bluetooth"
- ,"network"
- ]
- },
-
- "custom/connections-anchor": {
-
- "format": " ",
- "tooltip": false
- },
-
- /*************************/
-
- "group/audio": {
- "orientation": "horizontal",
- "modules": [
- /* "custom/media", */
- "pulseaudio"
- ,"pulseaudio/slider"
- ]
- },
-
- /*************************/
-
- "group/sporadic": {
- "orientation": "horizontal",
- "modules": [
- "custom/media"
- ,"custom/batterywarn"
- /* ,"custom/kdeconnect" */
- ]
- },
-
-/*************************/
-
- "group/datestuff": {
- "orientation": "horizontal",
- "modules": [
- "clock"
- ]
- },
-
- /*************************/
-
- "group/notifications": {
- "orientation": "horizontal",
- "modules": [
- "custom/notifications"
- ]
- },
-
-/*******************************************************************/
-
-"hyprland/workspaces": {
- "align": 1,
- "format": "{name}",
- "interval": 2,
-},
-
-"custom/windows": {
- "align": 0,
- "format": "{text}",
- "exec": "~/.config/scripts/hypr-workspaces.sh",
- "interval": 2,
- "return-type": "json",
- "on-click": "~/.config/scripts/hypr-workspacesmenu.sh",
- "tooltip": true
-},
-
-"custom/media": {
- "exec": "~/.config/scripts/media.sh",
- "interval": 1,
- "return-type": "json",
- "format": "{}",
- "on-click": "qs -c media",
- "max-length": 20,
- "scroll-step": 1,
- "tooltip": true
-},
-
- "custom/bluetooth": {
- "exec": "~/.config/scripts/bluetooth-status.sh",
- "interval": 5,
- "return-type": "json",
- "on-click": "blueman-manager",
- "format": "{}"
- },
-
- "custom/batterywarn": {
- "exec": "~/.config/scripts/batterywarn.sh",
- "interval": 60,
- "format": "{}"
- },
-
- "custom/kdeconnect": {
- "format": "{name} {battery}% ",
- "interval": 10,
- "exec": "~/.config/scripts/kdeconnect-status.sh",
- "tooltip": true
- },
-
- "custom/notifications": {
- "tooltip": false,
- "return-type": "json",
- "exec-if": "which swaync-client",
- "exec": "swaync-client -swb",
- "format": "{icon}",
- "format-icons": {
- "notification": "",
- "none": "",
- "dnd-notification": "",
- "dnd-none": "",
- },
- "on-click": "swaync-client -t",
- "on-click-right": "swaync-client -d",
- "on-click-middle": "swaync-client -dn",
- },
-
- "custom/power": {
- "format": "",
- "on-click": "qs -c powermenu",
- "tooltip-format": "Power Menu"
- },
-
- "pulseaudio": {
- "format": "{volume}% {icon}",
- "format-bluetooth": "{volume}% {icon}",
- "format-muted": "",
- "format-icons": {
- "headphones": "",
- "headset": "",
- "phone": "",
- "portable": "",
- "default": ["", ""]
- },
- "on-click": "pavucontrol"
- },
-
- "pulseaudio/slider": {
- "min": 0,
- "max": 100,
- "orientation": "horizontal"
- },
-
- "idle_inhibitor": {
- "tooltip": true,
- "format": "{icon}",
- "format-icons": {
- "activated": " ",
- "deactivated": " "
- },
- "tooltip-format-activated": "Staying awake",
- "tooltip-format-deactivated": "Might sleep...."
- },
-
- "network": {
- "format-wifi": " ({bandwidthDownBits})",
- "format-ethernet": " ({bandwidthDownBits})",
- "format-disconnected": "Disconnected ⚠",
- "tooltip-format-wifi": "{essid} ({signalStrength}%)",
- "tooltip-format-ethernet": "{ifname}: {ipaddr}/{cidr}",
- "on-click": "networkmanager_dmenu --dmenu --style ~/.config/wofi/style.css --allow-images=false",
- "on-click-right": "nm-connection-editor"
- },
-
- "cpu": {
- "format": "{usage}% ",
- "tooltip": false
- },
-
- "memory": {
- "format": "{percentage}% "
- },
-
- "temperature": {
- "format": "{temperatureC}°C ",
- "tooltip": false
- },
-
- "tray": {
- "spacing": 10,
- "icon-size": 13
- },
-
- "clock": {
- "format": "{:%H:%M}",
- "tooltip-format": "{calendar} ",
- "calendar": {
- "mode" : "year",
- "mode-mon-col" : 3,
- "weeks-pos" : "left",
- "on-scroll" : 1,
- "on-click-right": "mode",
- "format": {
- "months": "{} ",
- "days": "{} ",
- "weeks": "W{} ",
- "weekdays": "{} ",
- "today": "{} "
- }
- },
- "on-click": "flatpak run eu.betterbird.Betterbird -calendar"
- },
-
- "battery": {
- "bat": "BAT0",
- "states": {
- "good": 95,
- "warning": 30,
- "critical": 15
- },
- "format": "{capacity}% {icon}",
- "format-charging": "{capacity}% ",
- "format-plugged": "{capacity}% ",
- "format-icons": ["", "", "", "", " "]
- }
-}
diff --git a/Droidnix/generated/.config/waybar/style-dark.css b/Droidnix/generated/.config/waybar/style-dark.css
deleted file mode 100644
index 6084289bf..000000000
--- a/Droidnix/generated/.config/waybar/style-dark.css
+++ /dev/null
@@ -1,252 +0,0 @@
-/* --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. --- */
-@import url("file:///home/henrov/.config/shared/colors.css");
-
-/* --- Global --- */
- * {
- font-family:
- Aporetic Sans Mono,
- Iosevka Nerd Font,
- Roboto,
- Helvetica,
- Arial,
- sans-serif;
- font-size: 13px;
-}
-
-window#waybar {
- background-color: transparent;
- color: @text;
- padding-top: 0;
- padding-bottom: 0;
- margin-top: 0;
- margin-bottom: 0;
-}
-
-
-/* ---------GROUPS------------------------------------------------ */
-
-/* --- Group-level theming --- */
-#hardware,
-#workspaces,
-#sporadic,
-#audio,
-#tray,
-#datestuff,
-#system,
-#notifications,
-#connections {
- color: @text;
- font-weight: bold;
- border-radius: 30px;
- /* --- Option 1 Green blue filled
- background:
- linear-gradient(transparent, transparent) padding-box,
- linear-gradient(45deg, @blue, @green) border-box;
- border: 2px solid transparent;
- --- */
- /* --- Option 2 default background green blue border
- background:
- linear-gradient(@base, @base) padding-box,
- linear-gradient(45deg, @blue, @green) border-box;
- border: 2px solid transparent;
- */
- /* --- Option 3 NO background, no border */
- background: transparent;
- border: 2px solid transparent;
- /* --- Option 5 Solid border
- background: transparent;
- border: 2px solid @border;
- --- */
- margin: 0px 3px;
- padding: 1px 4px;
-}
-
-/* --- Group-level label padding --- */
-#hardware label,
-#workspaces label,
-#sporadic label,
-#audio label,
-#tray label,
-#datestuff label,
-#system label,
-#notifications label,
-#connections label {
- padding: 0px 5px;
- transition: padding 0.2s ease;
-}
-
-/* --- Group anchors default visible --- */
-#custom-hardware-anchor,
-#custom-tray-anchor,
-#custom-system-anchor,
-#custom-connections-anchor {
- /* min-width: 80px; */
- padding: 0 5px;
- margin: 0 2px;
- opacity: 1;
- transition: opacity 0.2s ease, min-width 0.2s ease, padding 0.2s ease;
-}
-
-/* --- Hide anchors on hover of the group --- */
-#hardware:hover #custom-hardware-anchor,
-#tray:hover #custom-tray-anchor,
-#system:hover #custom-system-anchor,
-#connections:hover #custom-connections-anchor {
- opacity: 0;
- min-width: 0;
- padding: 0;
- margin: 0;
-}
-
-/* -----------------------------
- WORKSPACES / WINDOWS MODULE
------------------------------ */
-
-#workspaces {
- border: none;
- background: none;
-}
-
-/* Disable hover effects completely */
-#workspaces button,
-#workspaces button:hover {
- border: 2px solid transparent;
- padding: 0 6px;
- margin: 0;
- border-radius: 30px;
- transition: none;
-}
-
-/* Active vs inactive workspace colors */
-#workspaces button.active {
- background: linear-gradient(45deg, @blue, @green);
- color: @base;
-}
-
-activeworkspaces:not(.active) {
- background: linear-gradient(@base-alpha, @base-alpha);
- border: 2px solid transparent;
- color: @text-muted;
-}
-
-label#custom-windows.module {
- font-size: 14px;
- color: @base;
- padding: 0 8px;
- border-radius: 30px;
- transition: all 0.3s ease;
-}
-
-label#custom-windows.active {
- background: linear-gradient(45deg, alpha(@blue, 0.5), alpha(@green, 0.5));
-}
-
-label#custom-windows:not(.active) {
- background: transparent;
- color: transparent;
-}
-
-/* ---- Media ---*/
-
-#custom-media {
- padding: 0 8px;
- color: @text;
-}
-
-#custom-media.inactive {
- background: transparent;
- color: transparent;
- opacity: 0;
- padding: 0;
- margin: 0;
- min-width: 0;
-}
-
-/* ---- Pulseaudio ---*/
-
-#pulseaudio-slider {
- padding: 0 4px;
- margin: 0;
- min-width: 140px;
-}
-#pulseaudio-slider slider {
- min-height: 0px;
- min-width: 0px;
- opacity: 0;
- border-radius: 30px;
- background: linear-gradient(45deg, @blue, @green);
- border: none;
- box-shadow: none;
- margin: 0;
- padding: 0;
-}
-#pulseaudio-slider trough {
- min-height: 10px;
- min-width: 120px;
- border-radius: 30px;
- background: transparent;
-}
-#pulseaudio-slider highlight {
- min-width: 10px;
- border-radius: 30px;
- background: linear-gradient(45deg, @blue, @green);
- border: 2px solid transparent;
-}
-
-
-/* --------------------------------------------------------- */
-/* STATES / SPECIALS */
-#custom-notifications.notification,
-#custom-notifications.dnd-notification,
-#idle_inhibitor.activated {
- background: linear-gradient(45deg, @blue, @green);
- border: 2px solid transparent;
- color: @base;
- border-radius: 30px;
-}
-
-#battery.charging {
- color: @green;
-}
-
-#batterywarn {
- color: @red;
- animation: blink 0.5s linear infinite alternate;
- border-radius: 30px;
- border: 2px solid transparent;
-}
-
-#battery.warning:not(.charging) {
- color: @text;
- animation: blink 0.5s linear infinite alternate;
- border-radius: 30px;
- border: 2px solid transparent;
-}
-
-#custom-batterywarn {
- margin: 0 5px;
- padding: 0 10px;
- color: @red;
- animation: blink 0.5s linear infinite alternate;
-}
-
-@keyframes blink {
- to {
- background-color: #ffffff;
- color: @base;
- border-radius: 30px;
- border: 2px solid transparent;
- }
-}
-
-#network.disconnected {
- background-color: @red;
- border-radius: 30px;
- border: 2px solid transparent;
-}
-
-#temperature.critical {
- background-color: @red;
- border-radius: 30px;
- border: 2px solid transparent;
-}
diff --git a/Droidnix/generated/.config/waypaper/config.ini b/Droidnix/generated/.config/waypaper/config.ini
deleted file mode 100644
index 73a1e1169..000000000
--- a/Droidnix/generated/.config/waypaper/config.ini
+++ /dev/null
@@ -1,56 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-[Settings]
-language = en
-backend = awww
-folder = ~/Wallpapers/pictures
-monitors = All
-wallpaper = ~/Wallpapers/pictures/13.jpg
-show_path_in_tooltip = True
-fill = fill
-sort = name
-color = #ffffff
-subfolders = False
-all_subfolders = False
-show_hidden = False
-show_gifs_only = False
-zen_mode = False
-post_command =
-number_of_columns = 3
-awww_transition_type = any
-awww_transition_step = 63
-awww_transition_angle = 0
-awww_transition_duration = 2
-awww_transition_fps = 60
-mpvpaper_sound = False
-mpvpaper_options =
-use_xdg_state = False
-stylesheet = /home/henrov/.config/waypaper/style.css
-keybindings = ~/.config/waypaper/keybindings.ini
-
-[Settings]
-language = en
-backend = awww
-folder = ~/Wallpapers/pictures
-monitors = All
-wallpaper = ~/Wallpapers/pictures/13.jpg
-show_path_in_tooltip = True
-fill = fill
-sort = name
-color = #ffffff
-subfolders = False
-all_subfolders = False
-show_hidden = False
-show_gifs_only = False
-zen_mode = False
-post_command =
-number_of_columns = 3
-awww_transition_type = any
-awww_transition_step = 63
-awww_transition_angle = 0
-awww_transition_duration = 2
-awww_transition_fps = 60
-mpvpaper_sound = False
-mpvpaper_options =
-use_xdg_state = False
-stylesheet = /home/henrov/.config/waypaper/style.css
-keybindings = ~/.config/waypaper/keybindings.ini
diff --git a/Droidnix/generated/.config/wofi/config b/Droidnix/generated/.config/wofi/config
deleted file mode 100644
index 090437bce..000000000
--- a/Droidnix/generated/.config/wofi/config
+++ /dev/null
@@ -1,19 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-[global]
-allow_markup = true
-
-location = center
-anchor = center
-
-lines = 10
-columns = 1
-sort_order = last-used
-sort_method = fuzzy
-allow_scrolling = true
-scroll_wrap = true
-scroll_step = 10
-cycle = true
-hide_scroll = false
-hide_search = false
-
-prompt = > ...
diff --git a/Droidnix/generated/.config/wofi/style.css b/Droidnix/generated/.config/wofi/style.css
deleted file mode 100644
index 3dbe907dd..000000000
--- a/Droidnix/generated/.config/wofi/style.css
+++ /dev/null
@@ -1,88 +0,0 @@
-/* --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. --- */
-@import "~/.config/shared/colors.css";
-
- * {
- background-color: transparent;
- color: @text;
- font-family: "JetBrainsMono Nerd Font", monospace;
- font-size: 12pt;
-}
-
-#window {
- background: linear-gradient(45deg, #89b4fa, #a6e3a1);
- border-radius: 28px;
- padding: 2px;
-}
-
-#outer-box {
- background-color: rgba(30, 30, 46, 0.98); /* almost solid */
- border-radius: 26px;
- padding: 12px;
-}
-
-#inner-box {
- background: transparent;
- padding: 0;
-}
-
-#input {
- background-color: @surface1; /* stronger than surface0 */
- color: @text;
- border: 1px solid @surface2;
- border-radius: 18px;
- padding: 10px 14px;
- margin-bottom: 10px;
-}
-
-#input:focus {
- border: 1px solid @blue;
- background-color: @surface2;
-}
-
-#entry {
- background-color: rgba(0, 0, 0, 0.35);
- color: @subtext1;
- border-radius: 18px;
- padding: 10px 14px;
- margin: 2px 0;
- transition: all 0.15s ease;
-}
-
-
-#entry:hover {
- background-color: rgba(0, 0, 0, 0.5);
- color: @text;
-}
-
-#entry:focus {
- background: linear-gradient(45deg, #89b4fa, #89b4fa);
- color: @lavender;
- border-radius: 18px;
-}
-
-#entry:selected {
- background: linear-gradient(45deg, #89b4fa, #a6e3a1);
- border-radius: 18px;
- font-weight: bold;
-}
-
-#entry image {
- margin-right: 10px;
- opacity: 0.9;
-}
-
-#scrollbar {
- background-color: @surface1;
- border-radius: 20px;
- width: 6px;
-}
-
-#scrollbar handle {
- background: linear-gradient(45deg, #89b4fa, #a6e3a1);
- border-radius: 20px;
-}
-
-#prompt {
- color: @subtext0;
- margin-right: 6px;
-}
diff --git a/Droidnix/generated/.config/zed/settings.json b/Droidnix/generated/.config/zed/settings.json
deleted file mode 100644
index 91f605bbe..000000000
--- a/Droidnix/generated/.config/zed/settings.json
+++ /dev/null
@@ -1,27 +0,0 @@
-// Zed settings
-//
-// For information on how to configure Zed, see the Zed
-// documentation: https://zed.dev/docs/configuring-zed
-//
-// To see all of Zed's default settings without changing your
-// custom settings, run `zed: open default settings` from the
-// command palette (cmd-shift-p / ctrl-shift-p)
-{
- "icon_theme": "Catppuccin Mocha",
- "agent": {
- "default_model": {
- "provider": "ollama",
- "model": "codellama:34b",
- "enable_thinking": false
- },
- "favorite_models": [],
- "model_parameters": []
- },
- "ui_font_size": 16,
- "buffer_font_size": 15,
- "theme": {
- "mode": "dark",
- "light": "One Light",
- "dark": "Catppuccin Mocha",
- },
-}
diff --git a/Droidnix/generated/.config/zsh/.zshrc b/Droidnix/generated/.config/zsh/.zshrc
deleted file mode 100644
index 5d0b99f60..000000000
--- a/Droidnix/generated/.config/zsh/.zshrc
+++ /dev/null
@@ -1,25 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-# Path to syntax highlighting installed by Nix
-ZSH_SYNTAX_HIGHLIGHTING="${HOME}/.nix-profile/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
-
-# Load syntax highlighting if available
-if [ -f "$ZSH_SYNTAX_HIGHLIGHTING" ]; then
- source "$ZSH_SYNTAX_HIGHLIGHTING"
-fi
-
-# Initialize Starship prompt
-if command -v starship >/dev/null 2>&1; then
- eval "$(starship init zsh)"
-fi
-
-source /etc/profile.d/99-alias-functions.sh
-eval "$(/run/current-system/sw/bin/z.lua --init zsh)"
-cd() {
- if [ "$#" -eq 0 ]; then
- builtin cd ~
- else
- builtin cd "$@" || return
- fi
-
- command z "$PWD"
- }
diff --git a/Droidnix/generated/assets/2_b_installed.conf b/Droidnix/generated/assets/2_b_installed.conf
deleted file mode 100644
index f2aa4a11e..000000000
--- a/Droidnix/generated/assets/2_b_installed.conf
+++ /dev/null
@@ -1,70 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-#packages
-_1password-gui
-audacity
-baobab
-bat
-blender
-brave
-btop
-chromium
-cliphist
-comma
-direnv
-duf
-delta
-eza
-fd
-file
-fzf
-gimp
-git
-gparted
-grim
-grimblast
-gnome-calculator
-qalculate-gtk
-handbrake
-hyperfine
-just
-jq
-libreoffice
-lua
-nextcloud-client
-nextcloud-talk-desktop
-nix-index
-nix-output-monitor
-nh
-numlockx
-obsidian
-openssl
-pandoc
-postman
-python3
-qdirstat
-ripgrep
-signal-desktop
-slurp
-solidtime-desktop
-spotify
-solaar
-swappy
-sweethome3d.application
-tea
-todoist
-tree
-usbutils
-vlc
-wev
-wget
-wl-clipboard
-wf-recorder
-yazi
-z-lua
-zed-editor
-zoxide
-
-#flatpaks
-eu.betterbird.Betterbird
-com.todoist.Todoist
-com.logseq.Logseq
diff --git a/Droidnix/generated/assets/aliases.conf b/Droidnix/generated/assets/aliases.conf
deleted file mode 100644
index f3d79d923..000000000
--- a/Droidnix/generated/assets/aliases.conf
+++ /dev/null
@@ -1,26 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-#File & navigation
-repo=cd ~/Repos && ls -lah
-
-#Nix commands
-nps=xdg-open https://search.nixos.org
-
-#system commands
-please=sudo
-pls=sudo
-rb=sudo reboot
-po=sudo poweroff
-
-#flatpak commands
-fpl=flatpak list
-fps=flatpak search
-fpi=flatpak install
-fpr=flatpak run
-fpu=flatpak update
-
-#ssh commands
-nxc=ssh henrov@nextcloud.data-pro.nu
-
-#app shortcuts
-vs=code
-keys=hyprctl binds
diff --git a/Droidnix/generated/disabled/modules/traveldroid/apps/flameshot.nix b/Droidnix/generated/disabled/modules/traveldroid/apps/flameshot.nix
deleted file mode 100644
index 69df75052..000000000
--- a/Droidnix/generated/disabled/modules/traveldroid/apps/flameshot.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ pkgs, config, lib, ... }:
-let
- username = config.defaultUser or "henrov";
-in
-{
- ############################
- # System-level packages
- ############################
- environment.systemPackages = with pkgs; [
- flameshot
- ];
-
- ############################
- # Home Manager user-level configuration
- ############################
- home-manager.users."${username}" = {
- home.sessionVariables = {
- SCREENSHOT_TOOL = "flameshot";
- USERNAME = username;
- };
-
- # Create ~/Pictures/Screenshots by touching a dummy file
- home.file."Pictures/Screenshots/.keep" = {
- text = ""; # empty file
- };
-
- services.flameshot = {
- enable = true;
- settings = {
- General = {
- uiColor = "#97cbbe";
- contrastUiColor = "#1e1e2e";
- showDesktopNotification = true;
- savePath = "/home/${username}/Pictures/Screenshots";
- filenamePattern = "$Y-$m-$d_$H-$M-$S";
- useGrimAdapter = true;
- };
- };
- };
-
- systemd.user.services.flameshot = {
- Service = {
- Environment = [
- "WAYLAND_DISPLAY=wayland-1"
- "XDG_CURRENT_DESKTOP=hyprland"
- "XDG_SESSION_TYPE=wayland"
- ];
- };
- };
- };
-}
diff --git a/Droidnix/generated/hosts/traveldroid/boot.nix b/Droidnix/generated/hosts/traveldroid/boot.nix
deleted file mode 100644
index 82879277e..000000000
--- a/Droidnix/generated/hosts/traveldroid/boot.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ config, pkgs, lib, flakeRoot, ... }:
-{
- boot.loader = {
- systemd-boot.enable = true;
- efi.canTouchEfiVariables = true;
- efi.efiSysMountPoint = "/boot";
- timeout = 5;
- };
- boot.kernelPackages = pkgs.linuxPackages_latest;
- boot.kernelParams = [
- "quiet"
- "splash"
- "udev.log_level=3"
- "rd.systemd.show_status=false"
- # Sleep / power management
- "mem_sleep_default=deep" # Use S3 deep sleep, fixes sleep not working
- "acpi_osi=Linux" # Tell ACPI this is a Linux system
- "acpi_backlight=native" # Proper backlight control
- # Intel GPU — fixes screen blinking on sleep/wake
- "i915.enable_psr=0"
- "i915.enable_psr2_sel_fetch=0"
- # Prevent nvme from waking the system
- "nvme.noacpi=1"
- ];
- boot.consoleLogLevel = 0;
- #boot.initrd.systemd.enable = true;
- boot.initrd.availableKernelModules = [
- "xhci_pci"
- "nvme"
- "usb_storage"
- "sd_mod"
- "rtsx_usb_sdmmc"
- ];
- hardware.enableAllFirmware = true;
- boot.kernelModules = [
- "kvm-intel"
- "asus_wmi" # Asus-specific power/fan/keyboard control
- ];
- boot.plymouth = {
- enable = true;
- };
- hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
- nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
-
- # Power management
- powerManagement.enable = true;
- services.logind.settings.Login = {
- HandleSleepKey = "ignore";
- HandleSleepKeyLongPress = "ignore";
- };
- services.thermald.enable = true; # Intel thermal management daemon
- services.tlp = {
- enable = true;
- settings = {
- CPU_SCALING_GOVERNOR_ON_AC = "performance";
- CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
- CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
- PLATFORM_PROFILE_ON_AC = "performance";
- PLATFORM_PROFILE_ON_BAT = "low-power";
- };
- };
-}
diff --git a/Droidnix/generated/hosts/traveldroid/hardware-configuration.nix b/Droidnix/generated/hosts/traveldroid/hardware-configuration.nix
deleted file mode 100644
index ca588f3b6..000000000
--- a/Droidnix/generated/hosts/traveldroid/hardware-configuration.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{
- hostname,
- pkgs,
- lib,
- modulesPath,
- user,
- config,
- ...
-}:
-{
- imports = [
- # (modulesPath + "/installer/scan/not-detected.nix")
- #../../hardware/hardware.nix
- ];
-
- boot.initrd.availableKernelModules = [
- "xhci_pci"
- "nvme"
- "usb_storage"
- "sd_mod"
- "rtsx_usb_sdmmc"
- ];
- boot.initrd.kernelModules = [ ];
- boot.kernelModules = [ "kvm-intel" ];
- boot.extraModulePackages = [ ];
-
- fileSystems."/" = {
- device = "/dev/disk/by-uuid/69433a14-fbaf-401b-af85-cd1bbf02b4e2";
- fsType = "ext4";
- };
-
- fileSystems."/boot" = {
- device = "/dev/disk/by-uuid/811D-0676";
- fsType = "vfat";
- options = [
- "fmask=0077"
- "dmask=0077"
- ];
- };
-
- swapDevices = [
- { device = "/dev/disk/by-uuid/b6c557c2-7682-460b-a5e7-8f6f2f429a3a"; }
- ];
-
- nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
- hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
-}
diff --git a/Droidnix/generated/hosts/traveldroid/host.nix b/Droidnix/generated/hosts/traveldroid/host.nix
deleted file mode 100644
index 5f4e422b3..000000000
--- a/Droidnix/generated/hosts/traveldroid/host.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, flakeRoot, import-tree, home-manager, ... }:
-
-let
- hostname = "traveldroid";
- modulesPath = "${flakeRoot}/generated/modules/${hostname}";
- hostModules = import-tree modulesPath;
- allModules = hostModules.imports;
-in
-{
- networking.hostName = hostname;
- system.stateVersion = "26.05";
-
- #################################
- # Locale
- #################################
-
- i18n = {
- defaultLocale = "nl_NL.UTF-8";
- extraLocales = [
- "nl_NL.UTF-8/UTF-8"
- "en_US.UTF-8/UTF-8"
- ];
- consoleKeyMap = "us";
- };
-
- time.timeZone = "Europe/Amsterdam";
-
- #################################
- # Imports
- #################################
-
- imports =
- [ ../../../generated/users/henrov.nix
- ./boot.nix
- ./hardware-configuration.nix
- ]
- ++ allModules
- ++ [ home-manager.nixosModules.home-manager ]
- ;
-
- #################################
- # Home Manager integration
- #################################
-
- home-manager.useGlobalPkgs = true;
- home-manager.useUserPackages = true;
-
- environment.systemPackages = [
- pkgs.dconf
- ];
-
- programs.dconf.enable = true;
-}
diff --git a/Droidnix/generated/modules/traveldroid/apps/2_b_installed.nix b/Droidnix/generated/modules/traveldroid/apps/2_b_installed.nix
deleted file mode 100644
index 442a6f26a..000000000
--- a/Droidnix/generated/modules/traveldroid/apps/2_b_installed.nix
+++ /dev/null
@@ -1,100 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, flakeRoot, ... }:
-
-let
- #################################
- # FILE
- #################################
- confPath = "${flakeRoot}/generated/assets/2_b_installed.conf";
- raw = builtins.readFile confPath;
- lines = lib.splitString "\n" raw;
-
- #################################
- # CLEAN LINE
- #################################
- cleanLine = line:
- let
- noCR = lib.replaceStrings [ "\r" ] [ "" ] line;
- noInlineComment = lib.head (lib.splitString "#" noCR);
- in
- lib.strings.trim noInlineComment;
-
- #################################
- # PARSE SECTION
- #################################
- parseSection = section:
- let
- result =
- builtins.foldl'
- (acc: line:
- let
- l = lib.strings.trim line;
- in
- if l == section then
- acc // { active = true; }
- else if lib.hasPrefix "#" l then
- acc // { active = false; }
- else if acc.active then
- acc // { entries = acc.entries ++ [ l ]; }
- else
- acc
- )
- { active = false; entries = []; }
- lines;
- in
- builtins.filter (l: l != "") (map cleanLine result.entries);
-
- #################################
- # NIX PACKAGES
- #################################
- packageEntries = parseSection "#packages";
-
- resolvePkg = name:
- let
- parts = lib.splitString "." name;
- found = lib.attrByPath parts null pkgs;
- in
- if found == null then
- throw ''
- packages.nix: package not found
- Token: ${name}
- File : ${confPath}
- ''
- else
- found;
-
- packages = map resolvePkg packageEntries;
-
- #################################
- # FLATPAKS
- #################################
- flatpakEntries = parseSection "#flatpaks";
-
-in {
- #################################
- # Allow unfree
- #################################
- nixpkgs.config.allowUnfree = true;
-
- #################################
- # System packages (Nix)
- #################################
- environment.systemPackages = packages;
-
- #################################
- # Flatpak setup
- #################################
- services.flatpak.enable = true;
-
- services.flatpak.remotes = [
- {
- name = "flathub";
- location = "https://flathub.org/repo/flathub.flatpakrepo";
- }
- ];
-
- #################################
- # Flatpak apps
- #################################
- services.flatpak.packages = flatpakEntries;
-}
diff --git a/Droidnix/generated/modules/traveldroid/apps/emacs/emacs.nix b/Droidnix/generated/modules/traveldroid/apps/emacs/emacs.nix
deleted file mode 100644
index 359d581b7..000000000
--- a/Droidnix/generated/modules/traveldroid/apps/emacs/emacs.nix
+++ /dev/null
@@ -1,87 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ config, pkgs, lib, flakeRoot, ... }:
-
-let
- username = config.defaultUser or "henrov";
-
- assetPath = "${flakeRoot}/generated/.config/emacs";
-
- # Emacs package with Tree-sitter support
- emacsPkg = pkgs.emacs-pgtk.override { withTreeSitter = true; };
-
- # Extra packages for Emacs via Home Manager
- emacsExtraPackages = epkgs: [
- epkgs.manualPackages.treesit-grammars.with-all-grammars
- epkgs.nerd-icons
- epkgs.doom-modeline
- epkgs.diminish
- epkgs.eldoc
- epkgs.pulsar
- epkgs.which-key
- epkgs.expreg
- epkgs.vundo
- epkgs.puni
- epkgs.avy
- epkgs.consult
- epkgs.vertico
- epkgs.marginalia
- epkgs.crux
- epkgs.magit
- epkgs.nerd-icons-corfu
- epkgs.corfu
- epkgs.cape
- epkgs.orderless
- epkgs.yasnippet
- epkgs.yasnippet-snippets
- epkgs.rg
- epkgs.exec-path-from-shell
- epkgs.eat
- epkgs.rust-mode
- epkgs.rustic
- epkgs.nix-mode
- epkgs.hcl-mode
- epkgs.shell-pop
- epkgs.envrc
- epkgs.nixpkgs-fmt
- epkgs.f
- epkgs.gptel
- epkgs.catppuccin-theme
- epkgs.eldoc-box
- epkgs.sideline
- epkgs.sideline-flymake
- epkgs.sideline-eglot
- ];
-in
-{
- # System-wide installation
- environment.systemPackages = [
- emacsPkg
- ];
-
- # Home Manager user-specific configuration for your default user
- home-manager.users = {
- ${username} = {
- home.sessionVariables = {
- EDITOR = "emacs";
- XDG_SCREENSHOTS_DIR = "~/screenshots";
- };
-
- programs.emacs = {
- enable = true;
- package = emacsPkg;
- extraPackages = emacsExtraPackages;
- };
-
- home.file = {
- ".emacs.d/early-init.el" = {
- source = "${assetPath}/early-init.el";
- force = true; # <-- allow overwrite
- };
- ".emacs.d/init.el" = {
- source = "${assetPath}/init.el";
- force = true; # <-- allow overwrite
- };
- };
- };
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/apps/kdeconnect.nix b/Droidnix/generated/modules/traveldroid/apps/kdeconnect.nix
deleted file mode 100644
index 3d550dcb6..000000000
--- a/Droidnix/generated/modules/traveldroid/apps/kdeconnect.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ config, pkgs, ... }:
-let
- username = config.defaultUser or "henrov";
-in
-{
- environment.systemPackages = with pkgs; [
- kdePackages.kdeconnect-kde
- ];
-
- systemd.user.services.kdeconnect = {
- enable = true;
- description = "KDE Connect daemon";
- wantedBy = ["default.target"];
- serviceConfig = {
- ExecStart = "${pkgs.kdePackages.kdeconnect-kde}/bin/kdeconnectd";
- Restart = "on-failure";
- };
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/apps/kitty.nix b/Droidnix/generated/modules/traveldroid/apps/kitty.nix
deleted file mode 100644
index cff7c665a..000000000
--- a/Droidnix/generated/modules/traveldroid/apps/kitty.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, pkgs, config, flakeRoot, ... }:
-
-let
- username = config.defaultUser or "henrov";
- extraConfigFile = "${flakeRoot}/generated/.config/kitty/extra.conf";
- extraConfig =
- if builtins.pathExists extraConfigFile
- then builtins.readFile extraConfigFile
- else "";
-in
-{
- #################################
- # System-wide install
- #################################
- environment.systemPackages = [
- pkgs.kitty
- ];
- #################################
- # Home Manager
- #################################
- home-manager.users = {
- "${username}" = {
- programs.kitty = {
- enable = true;
- settings = {
- confirm_os_window_close = lib.mkForce 0;
- dynamic_background_opacity = lib.mkForce true;
- enable_audio_bell = lib.mkForce false;
- mouse_hide_wait = lib.mkForce "-1.0";
- window_padding_width = lib.mkForce 10;
- background_opacity = lib.mkForce "0.5";
- background_blur = lib.mkForce 5;
- notify_on_command_complete = lib.mkForce "never";
- };
- extraConfig = ''
- ${extraConfig}
- # Theme
- include themes/Catppuccin-Mocha.conf
- '';
- };
- };
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/apps/starship.nix b/Droidnix/generated/modules/traveldroid/apps/starship.nix
deleted file mode 100644
index 62624c989..000000000
--- a/Droidnix/generated/modules/traveldroid/apps/starship.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, flakeRoot, ... }:
-
-let
- # Default username fallback
- username = config.defaultUser or "henrov";
-
- # Path to the starship config in assets
- starshipConfSrc = "${flakeRoot}/generated/.config/starship.toml";
-in
-{
- #################################
- # Install Starship system-wide
- #################################
- environment.systemPackages = [ pkgs.starship ];
-
- #################################
- # Home Manager user configuration
- #################################
- home-manager.users = {
- ${username} = {
-
- home.file = {
- ".config/starship.toml" = {
- text = builtins.readFile "${starshipConfSrc}";
- force = true;
- };
- };
- };
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/apps/thunar.nix b/Droidnix/generated/modules/traveldroid/apps/thunar.nix
deleted file mode 100644
index fa2061880..000000000
--- a/Droidnix/generated/modules/traveldroid/apps/thunar.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ pkgs, config, lib, ... }:
-
-let
- # Resolve the default username from host config
- username = config.defaultUser or "henrov";
-in
-{
- ############################
- # System-level packages
- ############################
- 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
- tumbler # Showing thumbnails
- libmtp
- mtpfs
- jmtpfs
- ];
-
- ############################
- # Home Manager user-level configuration
- ############################
- # Direct assignment to the user avoids recursiveUpdate issues
- home-manager.users."${username}" = {
- home.stateVersion = "26.05"; # required
-
- home.sessionVariables = {
- FILE_MANAGER = "thunar";
- USERNAME = username;
- };
- };
- # Enable gvfs as a service
- services.gvfs.enable = true;
-}
diff --git a/Droidnix/generated/modules/traveldroid/apps/wofi.nix b/Droidnix/generated/modules/traveldroid/apps/wofi.nix
deleted file mode 100644
index 0b463b018..000000000
--- a/Droidnix/generated/modules/traveldroid/apps/wofi.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, flakeRoot, ... }:
-
-let
- username = config.defaultUser or "henrov";
- assetPath = "${flakeRoot}/generated/.config/wofi";
-in
-{
- environment.systemPackages = [ pkgs.wofi ];
-
- home-manager.users = {
- ${username} = {
- home.file = {
- ".config/wofi/config" = {
- text = builtins.readFile "${assetPath}/config";
- force = true;
- };
- ".config/wofi/style.css" = {
- text = builtins.replaceStrings ["PLACEHOLDER_USERNAME"] [username] (builtins.readFile "${assetPath}/style.css");
- force = true;
- };
- };
- };
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/apps/zenbrowser.nix b/Droidnix/generated/modules/traveldroid/apps/zenbrowser.nix
deleted file mode 100644
index c49cab1f4..000000000
--- a/Droidnix/generated/modules/traveldroid/apps/zenbrowser.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ config, pkgs, lib, zen-browser, ... }:
-
-let
- # Grab the Zen Browser package for this host system
- zenBrowser = zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default;
-in
-{
- environment.systemPackages = [
- zenBrowser
- ];
-}
diff --git a/Droidnix/generated/modules/traveldroid/apps/zsh.nix b/Droidnix/generated/modules/traveldroid/apps/zsh.nix
deleted file mode 100644
index d4ca4c2bb..000000000
--- a/Droidnix/generated/modules/traveldroid/apps/zsh.nix
+++ /dev/null
@@ -1,105 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, flakeRoot, ... }:
-
-let
- #################################
- # User config
- #################################
- username = config.defaultUser or "henrov";
- generatedZsh = "${flakeRoot}/generated/.config/zsh/.zshrc";
-
- #################################
- # Alias parsing
- #################################
- aliasFile = "${flakeRoot}/generated/assets/aliases.conf";
- content = builtins.readFile aliasFile;
-
- lines =
- lib.filter (l: l != "")
- (map (l:
- let
- noComment = builtins.head (lib.splitString "#" l);
- in lib.trim noComment
- ) (lib.splitString "\n" content));
-
- parseLine = line:
- let
- parts = lib.splitString "=" line;
- in
- if lib.length parts < 2 then null else {
- name = lib.trim (lib.head parts);
- value = lib.trim (lib.concatStringsSep "=" (lib.tail parts));
- };
-
- parsed =
- lib.filter (x: x != null)
- (map parseLine lines);
-
- functions =
- lib.concatStringsSep "\n"
- (map (x: ''
- ${x.name}() {
- ${x.value} "$@"
- }
- '') parsed);
-
-in
-{
- #################################
- # Packages
- #################################
- environment.systemPackages = with pkgs; [
- zsh
- oh-my-zsh
- starship
- zsh-syntax-highlighting
- ];
-
- #################################
- # Zsh config location
- #################################
- environment.etc."zshenv".text = ''
- export ZDOTDIR=$HOME/.config/zsh
- '';
-
- #################################
- # Generated alias functions (system-wide)
- #################################
- environment.etc."profile.d/99-alias-functions.sh".text = ''
- # system-wide functions generated from aliases.conf
- ${functions}
- '';
-
- #################################
- # Global zshrc
- #################################
- environment.etc."zshrc".text = ''
- export ZSH=${pkgs.oh-my-zsh}/share/oh-my-zsh
- ZSH_THEME=""
- plugins=(git sudo extract colored-man-pages command-not-found history docker kubectl)
-
- source $ZSH/oh-my-zsh.sh
-
- # Init starship FIRST (prompt)
- eval "$(starship init zsh)"
-
- # Load alias functions
- if [ -f /etc/profile.d/99-alias-functions.sh ]; then
- source /etc/profile.d/99-alias-functions.sh
- fi
-
- # Load optional generated user config
- [ -f "${generatedZsh}" ] && source "${generatedZsh}"
-
- # Syntax highlighting MUST be last
- source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
- '';
-
- #################################
- # Home Manager integration
- #################################
- home-manager.users.${username} = {
- programs.zsh.enable = true;
- home.file.".config/zsh/.zshrc".source = generatedZsh;
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/desktop/fonts.nix b/Droidnix/generated/modules/traveldroid/desktop/fonts.nix
deleted file mode 100644
index 47b5f64fc..000000000
--- a/Droidnix/generated/modules/traveldroid/desktop/fonts.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, pkgs, config, ... }:
-
-{
- fonts.packages = with pkgs; [
- nerd-fonts.iosevka
- nerd-fonts.fira-code
- nerd-fonts.jetbrains-mono
- ];
-}
diff --git a/Droidnix/generated/modules/traveldroid/desktop/gtk.nix b/Droidnix/generated/modules/traveldroid/desktop/gtk.nix
deleted file mode 100644
index fae5ee63e..000000000
--- a/Droidnix/generated/modules/traveldroid/desktop/gtk.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ pkgs, config, lib, ... }:
-
-let
- username = config.defaultUser or "henrov";
-in
-{
- environment.systemPackages = with pkgs; [
- gtk3
- gtk4
- ];
-
- home-manager.users."${username}" = {
- gtk = {
- enable = true;
- };
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/desktop/hyprland.nix b/Droidnix/generated/modules/traveldroid/desktop/hyprland.nix
deleted file mode 100644
index 4ea578190..000000000
--- a/Droidnix/generated/modules/traveldroid/desktop/hyprland.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, flakeRoot, home-manager, inputs, ... }:
-let
- username = config.defaultUser or "henrov";
- assetPath = "${flakeRoot}/generated/.config/hypr";
- hyprlandPkg =
- pkgs.hyprland or
- pkgs.hyprland-git or
- inputs.hyprland.packages.${pkgs.system}.default;
-in
-{
- # Install Hyprland systemwide
- programs.hyprland.enable = true;
- programs.hyprland.withUWSM = true;
- programs.hyprland.package = hyprlandPkg;
-
- environment.systemPackages = [ hyprlandPkg ];
-
- # Home Manager user configuration
- home-manager.users = {
- ${username} = {
-
- home.activation.MakeHyprMutable = {
- after = [ "writeBoundary" ];
- before = [];
- data = ''
- rm -f $HOME/.config/hypr/*
- cp ${assetPath}/* $HOME/.config/hypr/
- chmod u+w $HOME/.config/hypr/*
- '';
- };
- };
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/desktop/stylix.nix b/Droidnix/generated/modules/traveldroid/desktop/stylix.nix
deleted file mode 100644
index 001e97a2e..000000000
--- a/Droidnix/generated/modules/traveldroid/desktop/stylix.nix
+++ /dev/null
@@ -1,82 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, flakeRoot, stylix, ... }:
-
-let
- username = config.defaultUser or "henrov";
- moduleName = "stylix";
-
- assetPath = "${flakeRoot}/generated/.config/${moduleName}";
-
- stylixConfFile = "${assetPath}/stylix.conf";
- stylixConf =
- if builtins.pathExists stylixConfFile
- then builtins.readFile stylixConfFile
- else "";
-
- cursorName = "phinger-cursors-light";
- cursorSize = 24;
-in
-{
- #################################
- # Enable Stylix module
- #################################
- imports = [
- stylix.nixosModules.stylix
- ];
-
- #################################
- # System packages
- #################################
- environment.systemPackages = [
- pkgs.feh
- pkgs.st
- ];
-
- #################################
- # Stylix system config
- #################################
- stylix = {
- enable = true;
-
- base16Scheme = "${flakeRoot}/assets/traveldroid/theming/stylix/catppuccin-mocha.yaml";
- polarity = "dark";
-
- targets = {
- gtk.enable = true;
- qt.enable = true;
- };
-
- cursor = {
- name = cursorName;
- package = pkgs.phinger-cursors;
- size = cursorSize;
- };
- };
-
- #################################
- # Home Manager
- #################################
- home-manager.users = {
- "${username}" = {
-
- #################################
- # ONLY custom file (safe)
- #################################
- home.file.".config/stylix/stylix.conf" = {
- text = stylixConf;
- force = true;
- };
-
- #################################
- # Environment 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/traveldroid/desktop/wallpaper.nix b/Droidnix/generated/modules/traveldroid/desktop/wallpaper.nix
deleted file mode 100644
index 7ad199082..000000000
--- a/Droidnix/generated/modules/traveldroid/desktop/wallpaper.nix
+++ /dev/null
@@ -1,91 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, flakeRoot, ... }:
-
-let
- username = config.defaultUser or "henrov";
- homeDir = "/home/${username}";
- wallpaperSrc = "${flakeRoot}/assets/traveldroid/Wallpapers";
- wallpaperDst = "${homeDir}/Wallpapers";
- randoScript = "${homeDir}/Wallpapers/scripts/randomizeWallpapers.sh";
-in
-{
- # Make bash available
- environment.systemPackages = [ pkgs.bash pkgs.rsync pkgs.jq pkgs.awww pkgs.waypaper pkgs.socat ];
-
- # Create the copy script using Home Manager, following Waybar style
- home-manager.users = {
- ${username} = {
- home.file = {
- "copy-wallpapers.sh" = {
- text = ''
- #!/run/current-system/sw/bin/bash
- set -euo pipefail
- echo "Running as $(whoami)"
- echo "Copying wallpapers from ${wallpaperSrc} to ${wallpaperDst} ..."
- if [ ! -d "${wallpaperSrc}" ]; then
- echo "ERROR: ${wallpaperSrc} does not exist"
- exit 1
- fi
- mkdir -p "${wallpaperDst}"
- # Simple copy, overwrite everything
- cp -r "${wallpaperSrc}/." "${wallpaperDst}/"
- # Fix permissions
- chmod -R u+rwx "${wallpaperDst}"
- echo "Done copying wallpapers."
- '';
- executable = true;
- force = true;
- };
- };
- };
- };
-
- # User service to run the script that copies the Wallpaperstuff
- systemd.user.services.copyWallpapers = {
- description = "Copy wallpapers from repo to ~/Wallpapers";
- serviceConfig = {
- Type = "oneshot";
- ExecStart = "${homeDir}/copy-wallpapers.sh";
- Restart = "no";
- WorkingDirectory = homeDir;
- };
- wantedBy = [ "default.target" ];
- };
-
- # User service to randomize wallpapers
- systemd.user.services.randomizeWallpapers = {
- description = "Randomize wallpapers in ~/Wallpapers/pictures";
- serviceConfig = {
- Type = "oneshot";
- ExecStart = "${randoScript}";
- Restart = "no";
- WorkingDirectory = homeDir;
- };
- wantedBy = [ "default.target" ];
- };
-
- ############################
- # Random background per workspace at logon
- ############################
-
- systemd.user.services.workspaceWallpapers = {
- description = "Dynamic wallpapers per workspace for Hyprland";
- after = [ "graphical-session.target" ];
- wants = [ "graphical-session.target" ];
-
- serviceConfig = {
- Type = "simple";
- ExecStart = "${homeDir}/Wallpapers/scripts/workspace-wallpapers.sh";
- Restart = "on-failure";
- RestartSec = 5;
- WorkingDirectory = homeDir;
- Environment = [
- "HYPRLAND_INSTANCE_SIGNATURE=${builtins.getEnv "HYPRLAND_INSTANCE_SIGNATURE"}"
- "WAYLAND_DISPLAY=wayland-1"
- "PATH=/run/current-system/sw/bin:/usr/bin:/bin"
- ];
- };
-
- wantedBy = [ "default.target" ];
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/desktop/waybar.nix b/Droidnix/generated/modules/traveldroid/desktop/waybar.nix
deleted file mode 100644
index 52b81f61a..000000000
--- a/Droidnix/generated/modules/traveldroid/desktop/waybar.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, flakeRoot, ... }:
-let
- username = config.defaultUser or "henrov";
- waybarPath = "${flakeRoot}/generated/.config/waybar";
-in
-{
- environment.systemPackages = [ pkgs.waybar ];
-
- home-manager.users.${username} = {
- home.file = {
- ".config/waybar/config.jsonc".source = "${waybarPath}/config.jsonc";
- ".config/waybar/style-dark.css".source = "${waybarPath}/style-dark.css";
- };
-
- home.activation.MakeMutable = {
- after = [ "writeBoundary" ];
- before = [];
- data = ''
- rm -f $HOME/.config/waybar/*
- cp ${waybarPath}/* $HOME/.config/waybar/
- chmod u+w $HOME/.config/waybar/*
- '';
- };
- };
-
- systemd.user.services.waybar = {
- description = "Waybar for Hyprland";
- after = [ "graphical-session.target" ];
- wantedBy = [ "default.target" ];
- serviceConfig = {
- ExecStart = "${pkgs.waybar}/bin/waybar";
- Restart = "always";
- Environment = ''
- WAYLAND_DISPLAY=${config.environment.sessionVariables.WAYLAND_DISPLAY or "wayland-0"}
- XDG_CURRENT_DESKTOP=Hyprland
- '';
- };
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/desktop/wayland.nix b/Droidnix/generated/modules/traveldroid/desktop/wayland.nix
deleted file mode 100644
index 8f64ab119..000000000
--- a/Droidnix/generated/modules/traveldroid/desktop/wayland.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, ... }:
-
-{
- #################################
- # Core Wayland packages
- #################################
- environment.systemPackages = with pkgs; [
- wayland
- wl-clipboard # optional but commonly used for copy/paste
- ];
-
- #################################
- # enable graphics stack
- #################################
- hardware.graphics.enable = true;
-
- #################################
- # Optional session variables for Wayland
- #################################
- environment.sessionVariables = {
- # Forces some apps to use Wayland
- NIXOS_OZONE_WL = "1";
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/desktop/xdg.nix b/Droidnix/generated/modules/traveldroid/desktop/xdg.nix
deleted file mode 100644
index f8db07b67..000000000
--- a/Droidnix/generated/modules/traveldroid/desktop/xdg.nix
+++ /dev/null
@@ -1,62 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, flakeRoot, ... }:
-let
- username = config.defaultUser or "henrov";
- homeDir = "/home/${username}";
- basePortal = pkgs.xdg-desktop-portal-gtk;
- hyprlandPortal = pkgs.xdg-desktop-portal-hyprland;
-in
-{
- #################################
- # XDG Desktop Portals (system)
- #################################
- xdg.portal.enable = true;
- xdg.portal.xdgOpenUsePortal = true;
- xdg.portal.extraPortals = [
- basePortal
- hyprlandPortal
- ];
- xdg.portal.config = {
- common = {
- default = [ "hyprland" "gtk" ];
- };
- hyprland = {
- default = [ "hyprland" "gtk" ];
- "org.freedesktop.impl.portal.FileChooser" = [ "gtk" ];
- "org.freedesktop.impl.portal.Settings" = [ "gtk" ];
- "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
- "org.freedesktop.impl.portal.Screenshot" = [ "hyprland" ];
- };
- };
- #################################
- # System packages
- #################################
- environment.systemPackages = [
- basePortal
- hyprlandPortal
- ];
- #################################
- # Home Manager user config
- #################################
- home-manager.users.${username} = {
- #################################
- # XDG user directories
- #################################
- xdg.userDirs = {
- enable = true;
- createDirectories = true;
- desktop = null;
- download = "${homeDir}/Downloads";
- documents = "${homeDir}/Documents";
- pictures = "${homeDir}/Pictures";
- music = null;
- publicShare = null;
- templates = "${homeDir}/Experiments";
- videos = "${homeDir}/Videos";
- extraConfig = {
- XDG_PROJECTS_DIR = "${homeDir}/Projects";
- XDG_WORK_DIR = "${homeDir}/Work";
- };
- };
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/system/audio.nix b/Droidnix/generated/modules/traveldroid/system/audio.nix
deleted file mode 100644
index 40b701e74..000000000
--- a/Droidnix/generated/modules/traveldroid/system/audio.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, ... }:
-
-{
- ############################
- # Audio system
- ############################
- environment.systemPackages = with pkgs; [
- pulseaudio # PulseAudio daemon
- pavucontrol # GUI mixer
- pamixer # CLI mixer
- playerctl # Player controls
- ];
-}
diff --git a/Droidnix/generated/modules/traveldroid/system/avahi.nix b/Droidnix/generated/modules/traveldroid/system/avahi.nix
deleted file mode 100644
index 09afeee66..000000000
--- a/Droidnix/generated/modules/traveldroid/system/avahi.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ ... }:
-{
- services.avahi = {
- enable = true;
- nssmdns4 = true;
- publish = {
- enable = true;
- addresses = true;
- };
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/system/bluetooth.nix b/Droidnix/generated/modules/traveldroid/system/bluetooth.nix
deleted file mode 100644
index 1ca58b81e..000000000
--- a/Droidnix/generated/modules/traveldroid/system/bluetooth.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, home-manager, ... }:
-
-let
- username = config.defaultUser or "henrov";
-in
-{
-
-
- ############################
- # Bluetooth daemon
- ############################
- hardware.bluetooth = {
- enable = true;
- powerOnBoot = true;
- package = pkgs.bluez;
- };
- environment.systemPackages = with pkgs; [ blueman ];
-}
diff --git a/Droidnix/generated/modules/traveldroid/system/colors.nix b/Droidnix/generated/modules/traveldroid/system/colors.nix
deleted file mode 100644
index e3b4b8ac4..000000000
--- a/Droidnix/generated/modules/traveldroid/system/colors.nix
+++ /dev/null
@@ -1,69 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, flakeRoot, ... }:
-let
- colors = {
- border = "#97C9E6";
- crust = "#11111b";
- mantle = "#181825";
- base = "#1e1e2e";
- surface0 = "#313244";
- surface1 = "#45475a";
- surface2 = "#585b70";
- overlay0 = "#6c7086";
- overlay1 = "#7f849c";
- overlay2 = "#9399b2";
- subtext0 = "#a6adc8";
- subtext1 = "#bac2de";
- text = "#cdd6f4";
- rosewater = "#f5e0dc";
- flamingo = "#f2cdcd";
- pink = "#f5c2e7";
- mauve = "#cba6f7";
- red = "#f38ba8";
- maroon = "#eba0ac";
- peach = "#fab387";
- yellow = "#f9e2af";
- green = "#a6e3a1";
- teal = "#94e2d5";
- sapphire = "#74c7ec";
- blue = "#89b4fa";
- lavender = "#b4befe";
- };
-
- username = config.defaultUser or "henrov";
-
- qmlContent = ''
- pragma Singleton
- // Catppuccin Mocha Palette - auto-generated, do not edit manually
- import QtQuick
- QtObject {
- readonly property color baseAlpha: Qt.rgba(30/255, 30/255, 46/255, 0.9)
- '' + lib.concatStringsSep "\n" (
- lib.mapAttrsToList (name: value:
- " readonly property color ${name}: \"${value}\""
- ) colors
- ) + "\n}";
-
-in
-{
- home-manager.users.${username} = {
- home.file = {
- ".config/shared/colors.css" = {
- source = "${flakeRoot}/generated/.config/shared/colors.css";
- force = true;
- };
- ".config/quickshell/Colors.qml" = {
- text = qmlContent;
- force = true;
- };
- ".config/quickshell/powermenu/Colors.qml" = {
- text = qmlContent;
- force = true;
- };
- ".config/quickshell/powermenu/qmldir" = {
- text = "singleton Colors 1.0 Colors.qml";
- force = true;
- };
- };
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/system/copy_scripts.nix b/Droidnix/generated/modules/traveldroid/system/copy_scripts.nix
deleted file mode 100644
index 5d5c26a13..000000000
--- a/Droidnix/generated/modules/traveldroid/system/copy_scripts.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, flakeRoot, ... }:
-let
- username = config.defaultUser or "henrov";
- configPath = flakeRoot + "/generated/.config/scripts";
- allFiles = lib.filesystem.listFilesRecursive configPath;
-
- toRelative = file:
- let
- base = toString flakeRoot + "/generated/";
- relative = lib.removePrefix base (toString file);
- in
- builtins.unsafeDiscardStringContext relative;
-
- isShellScript = file:
- lib.hasSuffix ".sh" (toString file);
-
- toFileEntry = file: {
- name = toRelative file;
- value = {
- source = file;
- executable = isShellScript file;
- force = true;
- };
- };
-in
-{
- home-manager.users = {
- ${username} = {
- home.file = builtins.listToAttrs (map toFileEntry allFiles);
- };
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/system/dbus.nix b/Droidnix/generated/modules/traveldroid/system/dbus.nix
deleted file mode 100644
index 98db4ded2..000000000
--- a/Droidnix/generated/modules/traveldroid/system/dbus.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ config, pkgs, ... }:
-
-{
- # Enable classic D-Bus service
- services.dbus.enable = true;
-
- # Use default dbus package (classic D-Bus)
- services.dbus.dbusPackage = pkgs.dbus;
-
- # Include some essential system packages so shell and tools exist
- environment.systemPackages = with pkgs; [
- bashInteractive
- coreutils
- ];
-
- # Do not attempt to wrap dbus-daemon-launch-helper manually
- # No extra security.wrappers needed
-}
diff --git a/Droidnix/generated/modules/traveldroid/system/firewall.nix b/Droidnix/generated/modules/traveldroid/system/firewall.nix
deleted file mode 100644
index 9d9bd87e3..000000000
--- a/Droidnix/generated/modules/traveldroid/system/firewall.nix
+++ /dev/null
@@ -1,73 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ pkgs, ... }:
-
-{
- # Use nftables as the firewall backend
- networking.nftables.enable = true;
-
- networking.firewall = {
- enable = true;
-
- filterForward = false; # don't filter forwarded traffic
- # outbound is allowed by default UNLESS you've set:
-
- # LAN-only ports — Wi-Fi interface
- interfaces."wlan0" = {
- allowedTCPPorts = [
- 22 # SSH
- 80 # allow HTTP globally for outbound
- 443 # allow HTTPS globally for outbound
- 631 # CUPS / IPP network printing
- 9100 # AppSocket/JetDirect printing
- 6566 # SANE network scanner
- 57621 # Spotify Connect
- 57622 # Spotify local file sync
- ];
- allowedTCPPortRanges = [
- { from = 1714; to = 1764; } # KDE Connect
- ];
- allowedUDPPorts = [
- 5353 # mDNS / Avahi (printer + device discovery)
- 631 # CUPS / IPP
- 67 # DHCP
- 123 # NTP time sync
- 1900 # UPnP device discovery
- 57621 # Spotify Connect
- ];
- allowedUDPPortRanges = [
- { from = 1714; to = 1764; } # KDE Connect
- ];
- };
-
- # LAN-only ports — ethernet (ready for when you plug in)
- interfaces."enp0s31f6" = {
- allowedTCPPorts = [
- 631 # CUPS / IPP network printing
- 9100 # AppSocket/JetDirect printing
- 6566 # SANE network scanner
- 57621 # Spotify Connect
- 57622 # Spotify local file sync
- ];
- allowedTCPPortRanges = [
- { from = 1714; to = 1764; } # KDE Connect
- ];
- allowedUDPPorts = [
- 5353 # mDNS / Avahi (printer + device discovery)
- 631 # CUPS / IPP
- 67 # DHCP
- 123 # NTP time sync
- 1900 # UPnP device discovery
- 57621 # Spotify Connect
- ];
- allowedUDPPortRanges = [
- { from = 1714; to = 1764; } # KDE Connect
- ];
- };
- };
-
- # CLI tool for temporary rule changes without rebuilding
- # Usage: sudo nixos-firewall-tool open tcp 8080
- environment.systemPackages = with pkgs; [
- nixos-firewall-tool
- ];
-}
diff --git a/Droidnix/generated/modules/traveldroid/system/gnome-keyring.nix b/Droidnix/generated/modules/traveldroid/system/gnome-keyring.nix
deleted file mode 100644
index 30a2d016c..000000000
--- a/Droidnix/generated/modules/traveldroid/system/gnome-keyring.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ config, pkgs, ... }:
-
-{
- ##################################################
- # Core services
- ##################################################
-
- # Enable GNOME Keyring
- services.gnome.gnome-keyring.enable = true;
-
- ##################################################
- # PAM (auto unlock keyring on login)
- ##################################################
-
- security.pam.services = {
- login.enableGnomeKeyring = true;
- greetd.enableGnomeKeyring = true;
- sddm.enableGnomeKeyring = true;
- gdm.enableGnomeKeyring = true;
- };
-
- ##################################################
- # Environment packages
- ##################################################
-
- environment.systemPackages = with pkgs; [
- polkit_gnome
- seahorse
- libsecret
- ];
-
- ##################################################
- # Security / Polkit
- ##################################################
-
- security.polkit.enable = true;
-
-
-}
diff --git a/Droidnix/generated/modules/traveldroid/system/hypridle.nix b/Droidnix/generated/modules/traveldroid/system/hypridle.nix
deleted file mode 100644
index 29f949d67..000000000
--- a/Droidnix/generated/modules/traveldroid/system/hypridle.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, flakeRoot, ... }:
-
-let
- username = config.defaultUser or "henrov";
- basePath = "${flakeRoot}/generated/.config";
- assetPath = "${flakeRoot}/generated/.config/hypr";
-in
-{
- #################################
- # Install hypridle system-wide
- #################################
- environment.systemPackages = [ pkgs.hypridle ];
-
- #################################
- # Deploy config
- #################################
- home-manager.users = {
- ${username} = {
- home.file = {
- ".config/hypr/hypridle.conf" = {
- text = builtins.readFile "${assetPath}/hypridle.conf";
- force = true;
- };
- };
- };
- };
-
- #################################
- # Systemd user service
- #################################
- systemd.user.services.hypridle = {
- description = "Hypridle (Hyprland idle daemon)";
- after = [ "hyprland-session.target" ];
- bindsTo = [ "hyprland-session.target" ];
- serviceConfig = {
- ExecStart = "${pkgs.hypridle}/bin/hypridle";
- Restart = "on-failure";
- RestartSec = "5s";
- Environment = [
- "HOME=/home/${username}"
- "WAYLAND_DISPLAY=wayland-1"
- "XDG_RUNTIME_DIR=/run/user/1000"
- ];
- };
- wantedBy = [ "hyprland-session.target" ];
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/system/hyprlock.nix b/Droidnix/generated/modules/traveldroid/system/hyprlock.nix
deleted file mode 100644
index ec215e4a2..000000000
--- a/Droidnix/generated/modules/traveldroid/system/hyprlock.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, flakeRoot, ... }:
-
-let
- username = config.defaultUser or "henrov";
- basePath = "${flakeRoot}/generated/.config";
- assetPath = "${flakeRoot}/generated/.config/hypr";
-in
-{
- #################################
- # Install hyprlock system-wide
- #################################
- environment.systemPackages = [
- pkgs.hyprlock
- ];
-
- #################################
- # Deploy configuration file
- #################################
- home-manager.users = {
- ${username} = {
- home.file = {
- ".config/hypr/hyprlock.conf" = {
- text = builtins.readFile "${assetPath}/hyprlock.conf";
- force = true;
- };
- };
- };
- };
-
- #################################
- # Optional: helper systemd user service (manual start use)
- #################################
- systemd.user.services.hyprlock = {
- description = "Hyprlock (manual lock session)";
- after = [ "graphical-session.target" ];
-
- serviceConfig = {
- ExecStart = "${pkgs.hyprlock}/bin/hyprlock";
- Restart = "no";
- Environment = ''
- WAYLAND_DISPLAY=${config.environment.sessionVariables.WAYLAND_DISPLAY or "wayland-0"}
- XDG_CURRENT_DESKTOP=Hyprland
- '';
- };
-
- wantedBy = [ ];
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/system/login-tuigreet.nix b/Droidnix/generated/modules/traveldroid/system/login-tuigreet.nix
deleted file mode 100644
index c83aa4ddb..000000000
--- a/Droidnix/generated/modules/traveldroid/system/login-tuigreet.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ config, pkgs, lib, ... }:
-let
- tuigreetBin = "${pkgs.tuigreet}/bin/tuigreet";
- sessionsDir = "${pkgs.uwsm}/share/wayland-sessions";
-in
-{
- #################################
- # Greetd (tuigreet)
- #################################
- services.greetd = {
- enable = true;
- settings = {
- default_session = {
- command = ''
- ${tuigreetBin} \
- --time \
- --remember \
- --remember-session \
- --sessions ${sessionsDir} \
- --cmd "uwsm start hyprland-uwsm.desktop"
- '';
- user = "greeter";
- };
- };
- };
- #################################
- # Fix TTY / boot noise issues
- #################################
- systemd.services.greetd.serviceConfig = {
- Type = "idle";
- StandardInput = "tty";
- StandardOutput = "tty";
- StandardError = "journal";
- TTYReset = true;
- TTYVHangup = true;
- TTYVTDisallocate = true;
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/system/networking.nix b/Droidnix/generated/modules/traveldroid/system/networking.nix
deleted file mode 100644
index 39deab331..000000000
--- a/Droidnix/generated/modules/traveldroid/system/networking.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, ... }:
-
-{
- #################################
- # Networking core
- #################################
- networking = {
- # Let DHCP be default unless overridden elsewhere
- useDHCP = lib.mkDefault true;
-
- #################################
- # NetworkManager (primary stack)
- #################################
- networkmanager = {
- enable = true;
- # Use iwd backend for WiFi
- wifi.backend = "iwd";
- };
-
- #################################
- # iwd (WiFi daemon)
- #################################
- wireless.iwd = {
- enable = true;
- # Allow user control via NM / CLI
- settings.General.EnableNetworkConfiguration = true;
- };
- };
-
- #################################
- # System packages
- #################################
- environment.systemPackages = [
- pkgs.networkmanager
- pkgs.linux-firmware
- pkgs.networkmanagerapplet
- pkgs.networkmanager_dmenu
- # pkgs.iwgtk
- ];
-}
diff --git a/Droidnix/generated/modules/traveldroid/system/nix.nix b/Droidnix/generated/modules/traveldroid/system/nix.nix
deleted file mode 100644
index b33a5585b..000000000
--- a/Droidnix/generated/modules/traveldroid/system/nix.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, ... }:
-{
- nix.settings = {
- experimental-features = [ "nix-command" "flakes" ];
- download-buffer-size = 536870912; # 512 MB
- cores = 8;
- max-jobs = "auto";
- };
-
- nix.gc = {
- automatic = true;
- dates = "weekly";
- options = "--delete-older-than 30d";
- };
-
- boot.loader.systemd-boot.configurationLimit = 3;
-}
diff --git a/Droidnix/generated/modules/traveldroid/system/printing.nix b/Droidnix/generated/modules/traveldroid/system/printing.nix
deleted file mode 100644
index 2c198447a..000000000
--- a/Droidnix/generated/modules/traveldroid/system/printing.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, ... }:
-
-{
- ############################
- # Printing system
- ############################
- services.printing.enable = true; # enable CUPS printing service
-
- ############################
- # System packages for GUI management
- ############################
- environment.systemPackages = with pkgs; [
- system-config-printer # GUI to manage printers
- ];
-}
diff --git a/Droidnix/generated/modules/traveldroid/system/quickshell.nix b/Droidnix/generated/modules/traveldroid/system/quickshell.nix
deleted file mode 100644
index 8edac971a..000000000
--- a/Droidnix/generated/modules/traveldroid/system/quickshell.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ pkgs, lib, config, flakeRoot, ... }:
-let
- username = config.defaultUser or "henrov";
- quickshellPath = flakeRoot + "/generated/.config/quickshell";
- allFiles = lib.filesystem.listFilesRecursive quickshellPath;
-
- toRelative = file:
- let
- base = toString flakeRoot + "/generated/";
- relative = lib.removePrefix base (toString file);
- in
- builtins.unsafeDiscardStringContext relative;
-
- toFileEntry = file: {
- name = toRelative file;
- value = {
- source = file;
- force = true;
- };
- };
-in
-{
- environment.systemPackages = with pkgs; [
- quickshell
- qt6.qtdeclarative
- qt6.qttools
- qt6.qtsvg
- qt6.qtimageformats
- qt6.qtmultimedia
- qt6.qt5compat
- ];
-
- qt = {
- enable = true;
- platformTheme = "qt5ct";
- };
-
- home-manager.users = {
- ${username} = {
- home.file = builtins.listToAttrs (map toFileEntry allFiles);
- };
- };
-}
diff --git a/Droidnix/generated/modules/traveldroid/system/swaync.nix b/Droidnix/generated/modules/traveldroid/system/swaync.nix
deleted file mode 100644
index 64f9ba18d..000000000
--- a/Droidnix/generated/modules/traveldroid/system/swaync.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, flakeRoot, ... }:
-let
- username = config.defaultUser or "henrov";
- assetPath = "${flakeRoot}/generated/.config/swaync";
-in
-{
- environment.systemPackages = [ pkgs.swaynotificationcenter pkgs.libnotify ];
-
- home-manager.users.${username} = {
- # Do NOT enable services.swaync — it would claim the config files
- # and conflict with our home.file entries below.
-
- home.file = {
- ".config/swaync/config.json" = {
- text = builtins.readFile "${assetPath}/config.json";
- force = true;
- };
- ".config/swaync/style.css" = {
- text = builtins.replaceStrings ["henrov"] [username] (builtins.readFile "${assetPath}/style.css");
- force = true;
- };
- };
- };
-
- # Autostart swaync as a systemd user service instead
- systemd.user.services.swaync = {
- description = "SwayNotificationCenter";
- after = [ "graphical-session.target" ];
- serviceConfig = {
- ExecStart = "${pkgs.swaynotificationcenter}/bin/swaync";
- Restart = "always";
- Environment = [
- "WAYLAND_DISPLAY=${config.environment.sessionVariables.WAYLAND_DISPLAY or "wayland-1"}"
- "XDG_CURRENT_DESKTOP=Hyprland"
- ];
- };
- wantedBy = [ "default.target" ];
- };
-}
diff --git a/Droidnix/generated/users/henrov.nix b/Droidnix/generated/users/henrov.nix
deleted file mode 100644
index a6957600a..000000000
--- a/Droidnix/generated/users/henrov.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
-{ lib, config, pkgs, ... }:
-
-let
- username = "henrov";
-in
-{
- #################################
- # NixOS system user
- #################################
- users.users.${username} = {
- isNormalUser = true;
- home = "/home/${username}";
- hashedPassword = "$6$S7iShgBxB.77CwmP$i0njK.2r3OL5UEvgZbmwZ0rnpZ4QyJcv8p9uCmJ4AiVPSMXkQkIwMLzyAOnJ0q8.tPLIp/7EquEIZeK8qbmgw/";
- extraGroups = [ "wheel" "networkmanager" "bluetooth" "input" ];
- ignoreShellProgramCheck = true; # <-- avoids the assertion
- shell = pkgs.zsh;
- };
-
- #################################
- # Home Manager user definition
- #################################
- home-manager.users = {
- ${username} = {
- home.username = username;
- home.homeDirectory = "/home/${username}";
- home.stateVersion = "26.05";
-
- programs.zsh.enable = true;
-
- home.packages = [
- # add packages here
- ];
-
- # Activation to ensure the directory is writable
- home.activation.fixStylixPermissions = ''
- mkdir -p $HOME/.config
- chmod -R u+rwx $HOME/.config
- '';
-
- # Locale and timezone settings
- home.sessionVariables = {
- LANG = "nl_NL.UTF-8";
- LC_ALL = "nl_NL.UTF-8";
- TZ = "Europe/Amsterdam";
- };
- };
- };
-}
diff --git a/Droidnix_v1/.envrc b/Droidnix_v1/.envrc
deleted file mode 100644
index e69de29bb..000000000
diff --git a/Droidnix_v1/README.html b/Droidnix_v1/README.html
deleted file mode 100644
index efa33e9c9..000000000
--- a/Droidnix_v1/README.html
+++ /dev/null
@@ -1,3162 +0,0 @@
-
-
-
-
-
-
-
-Droidnix: A Dendritic NixOS + Home Manager Configuration NixOS Configuration Structure
-
-
-
-
-
-
-
-
-
-
Droidnix: A Dendritic NixOS + Home Manager Configuration NixOS Configuration Structure
-
-
-
-
Introduction intro
-
-
-
-
What is Droidnix
-
-
-Droidnix is a modular, declarative NixOS + Home Manager configuration system. It allows users to choose between Hyprland and Mangowc as their window manager, with shared and WM-specific configurations managed via Emacs Org and Nix Flakes. The project is designed for reproducibility, maintainability, and cross-machine compatibility.
-
-
-
-
Installed components:
-
-
-
- Core
- Hyprland
- Mangowc
-
-
-
-
Goals, project Structure, import hierarchy
-
-
-This project uses a modular NixOS configuration with Hyprland and MangoWC support, designed for literate programming and cross-device reusability .
-The Droidnix repository is organized into two main parts:
-
-
-.assets/: Static, non-generated files (e.g., configs, scripts, themes).
-Generated folders (system, hyprland, mangowc): NixOS and Home Manager configurations, generated from Org files.
-
-
-
-
-
-
-
Root Level
-
-
-flake.nix is the entry point and imports:
-
-generated/system/
-generated/hyprland/
-Machine-specific configurations from assets/machines/
-
-
-
-
-
-
Generated Structure
-
-
-The generated/ directory contains all generated configurations, divided into three main groups: system, hyprland, and mangowc.
-
-
-
-
System (generated/system/)
-
-
-This directory contains system-wide configurations that are independent of the window manager.
-
-
-
-
Applications (applications/)
-
-
-file_management/: Configurations for file managers and storage solutions.
-gaming/: Settings for gaming-related software.
-office_productivity/: Configurations for office software.
-media_playback_editing/: Settings for media playback and editing software.
-terminal_shell/: Configurations for terminal emulators and shells.
-
-
-
-
-
Development (development/)
-
-
-databases/: Settings for local databases.
-devops_ci_cd/: Configurations for DevOps tools.
-programming_languages/: Settings for programming languages and their runtimes.
-virtualization/: Configurations for virtualization and containerization tools.
-web_development/: Settings for web development.
-
-
-
-
-
System Management (system_management/)
-
-
-backups/: Settings for backup software.
-bluetooth/: Configurations for Bluetooth devices and services.
-power_management/: Settings for power management.
-audio/: Configurations for audio.
-hardware_sensors/: Settings for hardware monitoring.
-logging_monitoring/: Configurations for system logging and monitoring.
-login_manager/: Settings for the login manager.
-monitor_setup/: Configurations for display settings.
-networking/: Settings for networking.
-printers_scanners/: Configurations for printers and scanners.
-disk_management/: Settings for disk management.
-security/: Security-related configurations.
-system_updates/: Settings for system updates and package management.
-
-
-
-
-
-
Hyprland (generated/hyprland/)
-
-
-This directory contains configurations specific to Hyprland.
-
-
-
-animations_effects/: Settings for window animations and visual effects.
-decorations/: Configurations for window decorations.
-keyboard_binds/: Keyboard shortcuts for Hyprland.
-notifications/: Settings for notifications.
-statusbar_tray/: Configurations for the status bar and system tray.
-task_launcher/: Settings for task launchers.
-task_window_workspace_switcher/: Configurations for switching between windows and workspaces.
-window_rules/: Rules for window behavior.
-
-
-
-<<TREE>>
-
-
-
-
-
First Setup
-
-
-Clone this repository.
-Run the setup script: ./setup_droidnix.sh.
-Edit .assets/system/conf/base.conf to choose your window manager (wm = "hyprland" or wm = "mangowc").
-Tangle this Org file to generate Nix configurations: C-c C-v t in Emacs or use this: emacs README.org --batch -f org-babel-tangle && emacs --batch --eval "(setq org-html-htmlize-output-type nil)" README.org -f org-html-export-to-html
-Build and switch: sudo nixos-rebuild switch --flake .#<hostname>.
-
-
-
-—
-
-
-
-
-
-
The Assets Folder assets
-
-
-The .assets/ folder contains all static files, such as configs, scripts, and themes. These files are not generated and can be edited directly.
-
-
-
-
.assets/system/
-
-
-This folder contains files shared across both window managers, such as wallpapers, shell configs, and system scripts.
-
-
-
-conf/base.conf: Defines the window manager choice and other global settings.
-scripts/: System-wide scripts (e.g., utilities, helpers).
-
-
-
-
-
.assets/hyprland/
-
-
-Hyprland-specific assets, including configs, themes, and scripts.
-
-
-
-conf/: Hyprland configuration files (e.g., hyprland.conf).
-themes/: Hyprland-specific theme scripts.
-scripts/: Hyprland-specific scripts.
-
-
-
-
-
.assets/mangowc/
-
-
-Mangowc-specific assets, including configs, themes, and scripts.
-
-
-
-conf/: Mangowc configuration files.
-themes/: Mangowc-specific theme scripts.
-scripts/: Mangowc-specific scripts.
-
-
-
-
-
.assets/machines/
-
-
-Machine-specific NixOS configurations (e.g., configuration.nix for maindroid and traveldroid).
-
-
-
-—
-
-
-
-
-
-
The Actual Code code
-
-
-This section contains the Org blocks for tangling Nix code into the generated folders.
-
-
-
-
flake.nix
-
-
-The Nix flake definition for Droidnix.
-
-
-
{
- description = "Droidnix: A dendritic NixOS + Home Manager configuration";
-
- inputs = {
- nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
- home-manager = {
- url = "github:nix-community/home-manager";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- catppuccin = {
- url = "github:catppuccin/nix";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- emacs-overlay = {
- url = "github:nix-community/emacs-overlay";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- zen-browser = {
- url = "github:youwen5/zen-browser-flake";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- hyprland.url = "github:hyprwm/Hyprland";
- };
-
-outputs =
- inputs@{
- self,
- nixpkgs,
- home-manager,
- emacs-overlay,
- catppuccin,
- zen-browser,
- hyprland,
- ...
- }:
- let
- lib = nixpkgs.lib;
- system = "x86_64-linux";
- user = import ./generated/out_of_tree/users/henrov.nix;
- machines = [
- "traveldroid"
- "maindroid"
- ];
- flakeRoot = ./.; # Define flakeRoot here
- in
- {
- nixosConfigurations = lib.genAttrs machines (
- machine:
- lib.nixosSystem {
- inherit system;
- modules = [
- # Import machine-specific configurations
- ./generated/out_of_tree/machines/traveldroid/top.nix
- # Catppuccin theme module
- catppuccin.nixosModules.catppuccin
- # Anchoring all the other nixes
- ./generated/top.nix
- # Home Manager module
- inputs.home-manager.nixosModules.home-manager
- {
- home-manager.useGlobalPkgs = true;
- home-manager.useUserPackages = true;
- home-manager.extraSpecialArgs = { inherit user inputs flakeRoot; };
- }
- ];
- specialArgs = { inherit user inputs flakeRoot; };
- }
- );
-
- homeConfigurations = lib.genAttrs (map (machine: "${user.username}@${machine}") machines) (
- userMachine:
- home-manager.lib.homeManagerConfiguration {
- inherit system;
- configuration = import ./user.nix { inherit inputs user flakeRoot; };
- extraSpecialArgs = { inherit user inputs flakeRoot; };
- }
- );
-
- devShells.${system}.default = import ./generated/out_of_tree/terminal_shell/devshell.nix {
- inherit (nixpkgs.legacyPackages.${system}) mkShell;
- };
- };
-}
-
-
-
-
-
-
-
First the nix-files that flake really needs and that do not fit wel in the hierarchical structure
-
-
-
-
generated/out_of_tree/users/top.nix
-
-
-The ./generated/top.nix file acts as an anchor or entry point for the entire chain of imports in the pyramid structure.
-
-
-
{ config, pkgs, lib, ... }:
-{
- imports = [
- ./user.nix
- ];
-}
-
-
-
-
-
-
generated/out_of_tree/users/user.nix
-
-
-This is the default user, just search and replace henrov another name if you want to change
-
-
-
{
- config,
- pkgs,
- lib,
- inputs,
- ...
-}:
-
-let
- user = import ./henrov.nix;
-in
-{
- home-manager.users.${user.username} = {
- home.stateVersion = "25.11";
- home.username = user.username;
- home.homeDirectory = user.homeDirectory;
- home.packages = with pkgs; [
- direnv
- git-extras
- ];
- };
-
- # Ensure the user is in the necessary groups
- users.users.${config.users.users.${user.username}.username} = {
- extraGroups = [ "networkmanager" ];
-}
-
-
-
-
-
-
generated/out_of_tree/users/henrov.nix
-
-
-This is the default user, just search and replace henrov another name if you want to change
-
-
-
{
- username = "henrov";
- hashedPassword = "$6$ISAmsPLyFi7idYXr$VmZsq.zMsyh1irSkyDNqtorNXG0oEHbbMVqTii1t8bymvrQ5ZQmbdi4OiBNeNYe/huHGrojXM.3TST2fTLz0T.";
- homeDirectory = "/home/henrov";
- stateVersion = "25.11";
- locale = "nl_NL.UTF-8";
-}
-
-
-
-
-
-
generated/out_of_tree/terminal_shell/top.nix
-
-
-This code defines a Nix shell environment (also called a "devShell") that you can enter using the nix develop command. When you enter this shell, Nix will provide the tools and dependencies listed in buildInputs.
-
-
-
{
- config,
- pkgs,
- lib,
- user,
- inputs,
- flakeRoot,
- ...
-}:
-
-{
- imports = [
- ./devshell.nix
- inputs.home-manager.nixosModules.home-manager
- ];
-}
-
-
-
-
-
-
generated/out_of_tree/terminal_shell/devshell.nix
-
-
-This code defines a Nix shell environment (also called a "devShell") that you can enter using the nix develop command. When you enter this shell, Nix will provide the tools and dependencies listed in buildInputs.
-
-
-
{ mkShell, ... }:
-mkShell {
- buildInputs = with import <nixpkgs> {}; [
- nil
- nixfmt-rfc-style
- ];
-}
-
-
-
-
-
-
generated/out_of_tree/machines/traveldroid/top.nix
-
-
-This is the top of the machine hierarchy
-
-
-
{
- config,
- pkgs,
- lib,
- user,
- inputs,
- flakeRoot,
- ...
-}:
-
-{
- imports = [
- ./boot.nix
- ./hardware-configuration.nix
- ./machine.nix
- ./dbus.nix
- ./audio.nix
- ./xdg.nix
- ./session.nix
- ./networking.nix
- inputs.home-manager.nixosModules.home-manager
- ];
-}
-
-
-
-
-
-
generated/out_of_tree/machines/traveldroid/hardware-configuration.nix
-
-
-Boot into NixOS Live ISO or your installed system.
-Open a terminal.
-Run: <code>sudo nixos-generate-config –root /mnt</code> (Omit –root /mnt if already running NixOS.)
-
-
-
{
- hostname,
- pkgs,
- lib,
- modulesPath,
- user,
- config,
- ...
-}:
-{
- imports = [
- # (modulesPath + "/installer/scan/not-detected.nix")
- #../../hardware/hardware.nix
- ];
-
- boot.initrd.availableKernelModules = [
- "xhci_pci"
- "nvme"
- "usb_storage"
- "sd_mod"
- "rtsx_usb_sdmmc"
- ];
- boot.initrd.kernelModules = [ ];
- boot.kernelModules = [ "kvm-intel" ];
- boot.extraModulePackages = [ ];
-
- fileSystems."/" = {
- device = "/dev/disk/by-uuid/69433a14-fbaf-401b-af85-cd1bbf02b4e2";
- fsType = "ext4";
- };
-
- fileSystems."/boot" = {
- device = "/dev/disk/by-uuid/811D-0676";
- fsType = "vfat";
- options = [
- "fmask=0077"
- "dmask=0077"
- ];
- };
-
- swapDevices = [
- { device = "/dev/disk/by-uuid/b6c557c2-7682-460b-a5e7-8f6f2f429a3a"; }
- ];
-
- nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
- hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
-}
-
-
-
-
-
-
generated/out_of_tree/machines/traveldroid/boot.nix
-
-
-This file has most of the settings the control how the computer boots up.
-
-
-
{ pkgs, ... } :
-{
- boot = {
- initrd = {
- verbose = false; # its a lot of logs. dont need it, unless we do.
- kernelModules = [ ]; # no kernel modules on boot
- };
-
- extraModulePackages = [ ]; # no extra packages on boot either
- kernelPackages = pkgs.linuxPackages_latest; # latest greatest linux kernel
- kernelParams = [ "silent" ]; # quiet those logs
-
- consoleLogLevel = 0; # quiten more logs
- plymouth.enable = true; # graphical boot animation instead
-
- supportedFilesystems = [ "ntfs" ]; # should see the ntfs (windows)
-
- loader = {
- systemd-boot.enable = true; # systemd-boot
- systemd-boot.configurationLimit = 10;
- efi.canTouchEfiVariables = true; # allow editing efi to edit the boot loader
- timeout = 5; # grub timeout to make a selection
- };
- };
-}
-
-
-
-
-
-
generated/out_of_tree/machines/traveldroid/machine.nix
-
-
-This is the top if the machine hierarchy
-
-
-
{
- config,
- pkgs,
- lib,
- user,
- inputs,
- flakeRoot,
- ...
-}:
-
-{
- options = {
- wm = lib.mkOption {
- type = lib.types.str;
- default = "hyprland";
- description = "Type of window manager to use";
- };
- };
-
- config = {
- # Minimal settings that must be defined here
- networking.hostName = "traveldroid";
- wm.type = "hyprland";
-
- # User configuration
- users.users.${user.username} = {
- isNormalUser = true;
- extraGroups = [
- "wheel"
- "networkmanager"
- ];
- hashedPassword = user.hashedPassword;
- home = user.homeDirectory;
- };
- # Optional: Enable auto-login for testing
- services.getty.autologinUser = user.username;
- };
-}
-
-
-
-
-
-
generated/out_of_tree/machines/traveldroid/dbus.nix
-
-
-This sets the dbus implementation
-
-
-
{ 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
- '';
-}
-
-
-
-
-
-
generated/out_of_tree/machines/traveldroid/networking.nix
-
-
-This sets the networking.
-
-
-
{
- config,
- pkgs,
- lib,
- ...
-}:
-
-{
- networking = {
- useDHCP = lib.mkDefault true;
- networkmanager.enable = true;
- networkmanager.wifi.backend = "iwd";
- wireless.iwd.enable = true;
- wireless.userControlled.enable = true;
- firewall = {
- enable = true;
- # KDE Connect: discovery + encrypted connections
- allowedTCPPortRanges = [
- {
- from = 1714;
- to = 1764;
- }
- ];
- allowedUDPPortRanges = [
- {
- from = 1714;
- to = 1764;
- }
- ];
- };
- };
-
- # Install NetworkManager and wofi
- environment.systemPackages = with pkgs; [
- networkmanager
- wofi
- ];
-}
-
-
-
-
-
-
generated/out_of_tree/machines/traveldroid/session.nix
-
-
-This sets the session variables
-
-
-
{ config, pkgs, user, ... }:
-{
- environment.sessionVariables = {
- XDG_SESSION_TYPE = "wayland";
- XDG_CURRENT_DESKTOP = "Hyprland";
- XCURSOR_SIZE = "24";
- GTK_ENABLE_DARK_MODE = "1";
- GTK_THEME = "Catppuccin-Mocha-Standard-Blue-Dark";
- GTK_ICON_THEME = "Papirus-Dark";
- # Use this instead of GTK_APPLICATION_PREFER_DARK_THEME for newer GTK apps:
- GTK_THEME_VARIANT = "dark";
- # For Qt apps (if any):
- QT_STYLE_OVERRIDE = "gtk2";
- # For Zen Browser (Firefox fork):
- MOZ_ENABLE_WAYLAND = "1";
- GSETTINGS_SCHEMA_DIR = "${pkgs.gsettings-desktop-schemas}/share/glib-2.0/schemas";
- };
-
- # Add other session-wide variables here (e.g., QT_QPA_PLATFORM, SDL_VIDEODRIVER)
-}
-
-
-
-
-
-
generated/out_of_tree/machines/traveldroid/bluetooth.nix
-
-
-This sets the bluetooth implementation
-
-
-
{ 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
- ];
-}
-
-
-
-
-
-
generated/out_of_tree/machines/traveldroid/audio.nix
-
-
-This sets audiosystem for this machine
-
-
-
{ config, pkgs, ... }:
-{
- services.pipewire = {
- enable = true;
- alsa.enable = true; # ALSA compatibility
- pulse.enable = true; # PulseAudio compatibility
- wireplumber.enable = true; # Session manager for PipeWire
- };
-
- # Realtime privileges for pro audio (optional)
- security.rtkit.enable = true;
-}
-
-
-
-
-
-
generated/out_of_tree/machines/traveldroid/xdg.nix
-
-
-This sets the XDG implementation
-
-
-
{ config, pkgs, ... }:
-{
- xdg.portal = {
- enable = true;
- config.system.default = [ "hyprland" "gtk" ];
- };
-}
-
-
-
-
-
-
-
-
Now we reach the top of the hierarchy which will call all other imports
-
-
-
-
generated/top.nix
-
-
-The ./generated/top.nix file acts as an anchor or entry point for the entire chain of imports in the pyramid structure.
-
-
-
{ config, pkgs, lib, ... }:
-{
- imports = [
- ./system/top.nix
- ./hyprland/top.nix
- # ./mangowc/top.nix
- ];
-}
-
-
-
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./hyprland.nix
- ./animations_effects/top.nix
- ./decorations/top.nix
- ./notifications/top.nix
- ./statusbar_tray/top.nix
- ./task_window_workspace_switcher/top.nix
- ./window_rules/top.nix
- ];
-}
-
-
-
-
-
-
generated/hyprland/hyprland.nix
-
-
-The ./generated/top.nix file acts as an anchor or entry point for the entire chain of imports in the pyramid structure.
-
-
-
{
- config,
- pkgs,
- lib,
- user,
- flakeRoot,
- ...
-}:
-
-let
- hyprlandFiles = builtins.attrNames (builtins.readDir "${flakeRoot}/assets/hyprland/conf/hypr");
- # Filter out hyprland.conf from the list of files to symlink
- otherHyprlandFiles = lib.filter (name: name != "hyprland.conf") hyprlandFiles;
- # Generate xdg.configFile entries for all files except hyprland.conf
- otherConfigs = lib.genAttrs otherHyprlandFiles (name: {
- target = "hypr/${name}";
- source = "${flakeRoot}/assets/hyprland/conf/hypr/${name}";
- });
-in
-{
- programs.hyprland = {
- enable = true;
- };
-
- home-manager.users.${user.username} = {
- home.stateVersion = "25.11";
- home.username = user.username;
- home.homeDirectory =
- config.home-manager.users.${user.username}.homeDirectory or "/home/${user.username}";
-
- wayland.windowManager.hyprland = {
- enable = true;
- };
-
- # Merge all xdg.configFile definitions
- xdg.configFile = otherConfigs // {
- "hypr/hyprland.conf".text = ''
- ${builtins.readFile "${flakeRoot}/assets/hyprland/conf/hypr/hyprland.conf"}
- # Your manual settings will go below this line and will not be overwritten
- '';
- "hypr/.keep".text = "";
- };
- };
-}
-
-
-
-
-
-
generated/hyprland/animations_effects/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/hyprland/decorations/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/hyprland/notifications/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/hyprland/statusbar_tray/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/hyprland/task_window_workspace_switcher/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/hyprland/window_rules/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./applications/top.nix
- ./core/top.nix
- ./development/top.nix
- ./system_management/top.nix
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/applications/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./packages.nix
- ./flatpaks.nix
- ./accessibility/top.nix
- ./file_management/top.nix
- ./gaming/top.nix
- ./media_playback_editing/top.nix
- ./office_productivity/top.nix
- ./terminal_shell/top.nix
- ];
- nixpkgs.config.allowUnfree = true;
-}
-
-
-
-
-
-
generated/system/applications/packages.nix
-
-
-This will import all packages listed in ./assets/system/apps/packlages.conf
-
-
-
{ config, lib, pkgs, flakeRoot, inputs, ... }:
-let
- packagesConfPath = "${flakeRoot}/assets/system/apps/packages.conf";
- raw = builtins.readFile packagesConfPath;
- # IMPORTANT: explicit "\n" so we never accidentally split into characters
- rawLines = lib.splitString "\n" raw;
- # Guard: if we accidentally split into characters, rawLines length ~= stringLength raw
- _guard = assert !(
- builtins.stringLength raw > 1 &&
- builtins.length rawLines == builtins.stringLength raw
- ); true;
- cleanLine = l:
- let
- noCR = lib.replaceStrings [ "\r" ] [ "" ] l;
- noInlineComment = lib.head (lib.splitString "#" noCR);
- in
- lib.strings.trim noInlineComment;
- entries =
- builtins.filter (l: l != "")
- (map cleanLine rawLines);
- 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 : ${toString packagesConfPath}
- Hint : check the attribute name on search.nixos.org/packages
- ''
- else
- found;
- packages = builtins.seq _guard (map resolvePkg entries);
- zenBrowser =
- inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default;
-in
-{
- environment.systemPackages =
- packages
- ++ [ zenBrowser ];
-}
-
-
-
-
-
-
-
generated/system/applications/flatpaks.nix
-
-
-This will import all packages listed in ./assets/system/apps/flatpaks.conf
-
-
-
{
- config,
- pkgs,
- lib,
- flakeRoot,
- ...
-}:
-let
- moduleName = "install-flatpaks";
- flatpakConfPath = "${flakeRoot}/assets/system/apps/flatpaks.conf";
- raw = builtins.readFile flatpakConfPath;
- # Explicit "\n" so we never accidentally split into characters
- rawLines = lib.splitString "\n" raw;
-
- # Guard: if we accidentally split into characters, rawLines length ~= stringLength raw
- _guard =
- assert !(builtins.stringLength raw > 1 && builtins.length rawLines == builtins.stringLength raw);
- true;
-
- cleanLine =
- l:
- let
- noCR = lib.replaceStrings [ "\r" ] [ "" ] l;
- noInlineComment = lib.head (lib.splitString "#" noCR);
- in
- lib.strings.trim noInlineComment;
-
- entries = builtins.filter (l: l != "") (map cleanLine rawLines);
-
- # Flatpak app IDs are reverse-DNS style like org.example.App (at least 2 dots).
- # We'll validate and fail early with a clear message.
- dotCount = s: builtins.length (lib.splitString "." s) - 1;
-
- isValidId = s: (dotCount s) >= 2; # matches the error you're seeing: "at least 2 periods"
-
- _validate = builtins.seq _guard (
- builtins.map (
- id:
- if isValidId id then
- true
- else
- throw ''
- ${moduleName}: invalid Flatpak ID in flatpaks.conf (needs reverse-DNS with at least 2 dots)
-
- Token : ${builtins.toJSON id}
- flatpaks.conf : ${toString flatpakConfPath}
-
- Fix: remove stray tokens/headers, or comment them out with '#'.
- ''
- ) entries
- );
-
- # Use validated entries
- flatpakApps = builtins.seq _validate entries;
-
- syncFlatpaks = pkgs.writeShellScript "sync-flatpaks" ''
- set -euo pipefail
-
- # Use the deployed config path (matches environment.etc below)
- CONF="/etc/flatpak/flatpaks.conf"
- if [[ -f "$CONF" ]]; then
- echo "flatpak-sync: using $CONF"
- else
- echo "flatpak-sync: WARNING: $CONF not found, using embedded list"
- fi
-
- 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
-
- desired_apps=(
- ${lib.concatStringsSep "\n" (map (a: ''"${a}"'') flatpakApps)}
- )
-
- for app in "''${desired_apps[@]}"; do
- if ! flatpak info --system "$app" >/dev/null 2>&1; then
- flatpak install --system -y --noninteractive flathub "$app"
- fi
- done
- '';
-in
-{
- services.flatpak.enable = true;
-
- xdg.portal = {
- enable = true;
- };
-
- # Deploy the config file for runtime visibility/debugging
- environment.etc."flatpak/flatpaks.conf".source = lib.mkForce flatpakConfPath;
-
- systemd.services.flatpak-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 = syncFlatpaks;
- };
-
- restartTriggers = [ flatpakConfPath ];
- path = [
- pkgs.flatpak
- pkgs.coreutils
- pkgs.gnugrep
- pkgs.gnused
- ];
- };
-}
-
-
-
-
-
-
-
generated/system/core/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./wayland.nix
- #./eww.nix
- ./waybar.nix
- ./login-tuigreeter.nix
- #./login-lightdm.nix
- ./fonts.nix
- ./gtk.nix
- ];
-}
-
-
-
-
-
-
generated/system/core/gtk.nix
-
-
-I use the Catppuccin almost everywhere. The nix module integrates almost automatically everywhere (except gtk).
-You'll notice the color values in multiple places outside this as well.
-
-
-
{ pkgs, user, ... }:
-{
- 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;
- };
- };
-
- };
-}
-
-
-
-
-
-
generated/system/core/fonts.nix
-
-
-This file installs and configures fonts
-
-
-
{ config, pkgs, ... }:
-{
- fonts.packages = with pkgs; [
- pkgs.nerd-fonts.iosevka
- ];
-}
-
-
-
-
-
-
generated/system/core/eww.nix
-
-
-This file installs and configures eww
-
-
-
{ lib, config, pkgs, flakeRoot, user, ... }:
-let
- ewwConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/eww";
- # Dynamically read all files in assets/system/conf/eww/
- ewwConfs = lib.genAttrs (builtins.attrNames (builtins.readDir "${flakeRoot}/assets/system/conf/eww")) (name: {
- text = builtins.readFile "${flakeRoot}/assets/system/conf/eww/${name}";
- });
-in
-{
- environment.systemPackages = with pkgs; [ eww ];
-
- home-manager.users.${user.username} = {
- home.file = {
- "${ewwConfigDir}" = {
- source = "${flakeRoot}/assets/system/conf/eww";
- recursive = true;
- };
- };
-
- home.sessionVariables = {
- EWW_BIN = "${pkgs.eww}/bin/eww";
- };
-
- # Start eww with Hyprland/MangoWC
- wayland.windowManager.hyprland.settings = lib.mkForce {
- exec-once = [ "eww daemon" ];
- exec = [ "eww open-many ${ewwConfigDir}/widgets" ]; # Adjust as needed
- };
- };
-}
-
-
-
-
-
-
generated/system/core/waybar.nix
-
-
-This file installs and configures waybar
-
-
-
{ lib, pkgs, config, flakeRoot, ... }:
-let
- username = "henrov"; # Replace with your actual username
- waybar-config = pkgs.writeText "waybar-config" (builtins.readFile (flakeRoot + "/assets/system/conf/waybar/config"));
- waybar-style = pkgs.writeText "waybar-style" (builtins.readFile (flakeRoot + "/assets/system/conf/waybar/style.css"));
-in
-{
- programs.waybar = {
- enable = true;
- package = pkgs.waybar;
- };
-
- systemd.user.services.waybar = {
- description = "Waybar (status bar for Wayland)";
- wantedBy = [ "graphical-session.target" ];
- after = [ "graphical-session.target" ];
- serviceConfig = {
- ExecStart = "${config.programs.waybar.package}/bin/waybar -c ${waybar-config} -s ${waybar-style}";
- Restart = "on-failure";
- RestartSec = "5s";
- };
- };
-
- # Create symlinks for config and style
- system.activationScripts.waybarSetup = lib.mkAfter ''
- mkdir -p /home/${username}/.config/waybar
- ln -sf ${waybar-config} /home/${username}/.config/waybar/config
- ln -sf ${waybar-style} /home/${username}/.config/waybar/style.css
- chown -R ${username}:users /home/${username}/.config/waybar
- '';
-}
-
-
-
-
-
-
generated/system/core/login-tuigreeter.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ 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'";
- };
-};
-};
-}
-
-
-
-
-
-
generated/system/core/wayland.nix
-
-
-This file sets up wayland
-
-
-
{ config, pkgs, lib, user, ... }:
-{
- home-manager.users.${user.username} = {
- xdg.portal = {
- enable = true;
- extraPortals = with pkgs; [ xdg-desktop-portal-hyprland ];
- config.hyprland = {
- "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
- };
- };
-
- home.packages = with pkgs; [
- uwsm
- ];
- };
-}
-
-
-
-
-
-
generated/system/development/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./databases/top.nix
- ./devops_ci_cd/top.nix
- ./programming_languages/top.nix
- ./virtualization/top.nix
- ./web_development/top.nix
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/system_management/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./audio/top.nix
- ./backups/top.nix
- ./bluetooth/top.nix
- ./disk_management/top.nix
- ./hardware_sensors/top.nix
- ./logging_monitoring/top.nix
- ./login_manager/top.nix
- ./monitor_setup/top.nix
- ./networking/top.nix
- ./power_management/top.nix
- ./printers_scanners/top.nix
- ./security/top.nix
- ./system_updates/top.nix
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/applications/accessibility/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/applications/file_management/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./thunar.nix
- ];
-}
-
-
-
-
-
-
generated/system/applications/file_management/thunar.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{
- config,
- pkgs,
- lib,
- ...
-}:
-
-let
- username = "henrov"; # vervang door je echte gebruikersnaam
-in
-{
- home-manager.users.${username} = {
-
- # Thunar and plugins
- home.packages = with pkgs; [
- thunar
- thunar-volman
- thunar-archive-plugin
- thunar-media-tags-plugin
- tumbler
- ffmpegthumbnailer
- gvfs
- xdg-utils
- ];
-
- # Default file manager
- xdg.mimeApps = {
- defaultApplications = {
- "inode/directory" = "Thunar.desktop";
- };
- };
- };
-}
-
-
-
-
-
-
generated/system/applications/gaming/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/applications/media_playback_editing/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/applications/office_productivity/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/applications/terminal_shell/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./kitty.nix
- ./starship.nix
- ./zsh.nix
- ./emacs.nix
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/applications/terminal_shell/kitty.nix
-
-
-This file sets up Kitty terminal
-
-
-
{ config, pkgs, lib, user, flakeRoot, ... }:
-let
- kittyConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/kitty";
-in
-{
- home-manager.users.${user.username} = {
- programs.kitty = {
- enable = true;
- };
-
- # Copy the actual kitty.conf (not a symlink)
- xdg.configFile."kitty/kitty.conf".text = lib.concatStringsSep "\n" [
- (builtins.readFile "${flakeRoot}/assets/system/conf/kitty/kitty.conf")
- ];
-
- # Copy the theme file
- xdg.configFile."kitty/Catppuccin-Mocha.conf".source = "${flakeRoot}/assets/system/conf/kitty/Catppuccin-Mocha.conf";
- };
-}
-
-
-
-
-
-
generated/system/applications/terminal_shell/starship.nix
-
-
-This file sets up starship prompt
-
-
-
{
- lib,
- config,
- pkgs,
- flakeRoot,
- ...
-}:
-let
- starshipConfig = lib.importTOML (flakeRoot + "/assets/system/conf/starship.toml");
-in
-{
- programs.starship = {
- enable = true;
- settings = starshipConfig;
- };
-}
-
-
-
-
-
-
generated/system/applications/terminal_shell/zsh.nix
-
-
-This sets up the zsh terminal
-
-
-
{
- lib,
- config,
- pkgs,
- ...
-}:
-
-{
- # --- NixOS Configuration ---
- environment.systemPackages = with pkgs; [
- zsh
- git
- docker
- ];
-
- # --- Home Manager Configuration ---
- home-manager.users.henrov = {
- programs.zsh = {
- enable = true;
- enableCompletion = true;
-
- # Enable oh-my-zsh and use its plugins
- oh-my-zsh = {
- enable = true;
- plugins = [
- "git"
- "docker"
- "direnv"
- "zsh-autosuggestions"
- "zsh-syntax-highlighting"
- "zsh-completions"
- "zsh-history-substring-search"
- ];
- theme = "agnoster"; # Fallback, overridden below
- };
-
- # Source Nixpkgs-provided plugins explicitly
- initContent = ''
- # Source plugins installed by Nix
- source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh
- source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
- source ${pkgs.zsh-history-substring-search}/share/zsh-history-substring-search/zsh-history-substring-search.zsh
-
- # Catppuccin Mocha theme for oh-my-zsh
- local mocha_base="#1E1E2E"
- local mocha_surface0="#313244"
- local mocha_text="#CDD6F4"
- local mocha_lavender="#B4BEFE"
- local mocha_blue="#89B4FA"
- local mocha_sapphire="#74C7EC"
- local mocha_teal="#94E2D5"
- local mocha_green="#A6E3A1"
- local mocha_yellow="#F9E2AF"
- local mocha_peach="#FAB387"
- local mocha_maroon="#EBA0AC"
- local mocha_red="#F38BA8"
- local mocha_mauve="#CBA6F7"
- local mocha_pink="#F5C2E7"
- local mocha_flamingo="#F2CDCD"
- local mocha_rosewater="#F5E0DC"
-
- # Prompt
- PROMPT='%{$fg[$mocha_blue]%}%n%{$reset_color%}@%{$fg[$mocha_peach]%}%m%{$reset_color%} %{$fg[$mocha_lavender]%}%~%{$reset_color%} %{$fg[$mocha_red]%}$%{$reset_color%} '
- RPROMPT='%{$fg[$mocha_green]%}%T%{$reset_color%}'
-
- # Git prompt
- ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[$mocha_yellow]%}(%{$reset_color%}"
- ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[$mocha_yellow]%})%{$reset_color%}"
- ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[$mocha_red]%}✗%{$reset_color%}"
- ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[$mocha_green]%}✓%{$reset_color%}"
- ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg[$mocha_blue]%}⇡%{$reset_color%}"
- ZSH_THEME_GIT_PROMPT_BEHIND="%{$fg[$mocha_blue]%}⇣%{$reset_color%}"
- ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[$mocha_pink]%}?%{$reset_color%}"
- ZSH_THEME_GIT_PROMPT_STAGED="%{$fg[$mocha_sapphire]%}+%{$reset_color%}"
- ZSH_THEME_GIT_PROMPT_UNSTAGED="%{$fg[$mocha_red]%}!%{$reset_color%}"
-
- # Virtualenv/pyenv
- ZSH_THEME_VIRTUAL_ENV_PREFIX="(%{$fg[$mocha_teal]%}"
- ZSH_THEME_VIRTUAL_ENV_SUFFIX="%{$reset_color%})"
-
- # Right prompt with Git status
- RPROMPT='$(git_prompt_info) %{$fg[$mocha_green]%}%T%{$reset_color%}'
-
- # Set the custom theme
- ZSH_THEME="catppuccin-mocha"
- '';
- };
-
- # Home Manager packages (optional)
- home.packages = with pkgs; [
- direnv
- git-extras
- ];
- };
-}
-
-
-
-
-
-
generated/system/applications/terminal_shell/emacs.nix
-
-
-This sets up the emacs terminal
-
-
-
{ pkgs, ... }:
-
-{
- # NixOS Configuration
- environment.systemPackages = with pkgs; [
- # Add system-wide packages here, if any
- ];
-
- # Home Manager Configuration for the user 'henrov'
- home-manager.users.henrov = {
- programs.emacs = {
- enable = true;
- package = pkgs.emacs-pgtk.override { withTreeSitter = true; };
-
- # Group related packages for clarity and easier maintenance
- extraPackages = epkgs: with epkgs; [
- # Tree-sitter and language support
- manualPackages.treesit-grammars.with-all-grammars
- rust-mode
- rustic
- nix-mode
- hcl-mode
-
- # UI/UX and navigation
- nerd-icons
- doom-modeline
- diminish
- eldoc
- eldoc-box
- pulsar
- which-key
- avy
- consult
- vertico
- marginalia
- crux
- shell-pop
-
- # Completion and snippets
- nerd-icons-corfu
- corfu
- cape
- orderless
- yasnippet
- yasnippet-snippets
-
- # Utilities and tools
- rg
- exec-path-from-shell
- eat
- f
- gptel
- nixpkgs-fmt
- envrc
-
- # Theming
- catppuccin-theme
-
- # Git
- magit
-
- # Editing and workflow
- expreg
- vundo
- puni
-
- # Error and side panel support
- sideline
- sideline-flymake
- sideline-eglot
- ];
- };
-
- # Home Manager session variables
- home.sessionVariables = {
- EDITOR = "emacs";
- XDG_SCREENSHOTS_DIR = "~/screenshots";
- };
- /*
- # Home Manager file management
- home.file = {
- "emacs/early-init.el" = {
- source = ./early-init.el;
- target = ".emacs.d/early-init.el";
- };
- "emacs/init.el" = {
- source = ./init.el;
- target = ".emacs.d/init.el";
- };
- };
- */
- };
-}
-
-
-
-
-
-
-
generated/system/applications/terminal_shell/early-init.el
-
-
-This helps set up the emacs terminal
-
-
-
;;; package --- early init -*- lexical-binding: t -*-
- ;;; Commentary:
- ;;; Prevents white flash and better Emacs defaults
- ;;; Code:
- (set-language-environment "UTF-8")
- (setq-default
-default-frame-alist
-'((background-color . "#1e1e2e")
- (bottom-divider-width . 1) ; Thin horizontal window divider
- (foreground-color . "#bac2de") ; Default foreground color
- (fullscreen . maximized) ; Maximize the window by default
- (horizontal-scroll-bars . nil) ; No horizontal scroll-bars
- (left-fringe . 8) ; Thin left fringe
- (menu-bar-lines . 0) ; No menu bar
- (right-divider-width . 1) ; Thin vertical window divider
- (right-fringe . 8) ; Thin right fringe
- (tool-bar-lines . 0) ; No tool bar
- (undecorated . t) ; Remove extraneous X decorations
- (vertical-scroll-bars . nil)) ; No vertical scroll-bars
-user-full-name "Henrov henrov" ; ME!
-;; memory configuration
-;; Higher garbage collection threshold, prevents frequent gc locks, reset later
-gc-cons-threshold most-positive-fixnum
-;; Ignore warnings for (obsolete) elisp compilations
-byte-compile-warnings '(not obsolete)
-;; And other log types completely
-warning-suppress-log-types '((comp) (bytecomp))
-;; Large files are okay in the new millenium.
-large-file-warning-threshold 100000000
-;; dont show garbage collection messages at startup, will reset later
-garbage-collection-messages nil
-;; native compilation
-package-native-compile t
-native-comp-warning-on-missing-source nil
-native-comp-async-report-warnings-errors 'silent
-;; Read more based on system pipe capacity
-read-process-output-max (max (* 10240 10240) read-process-output-max)
-;; scroll configuration
-scroll-margin 0 ; Lets scroll to the end of the margin
-scroll-conservatively 100000 ; Never recenter the window
-scroll-preserve-screen-position 1 ; Scrolling back and forth
-;; frame config
-;; Improve emacs startup time by not resizing to adjust for custom settings
-frame-inhibit-implied-resize t
-;; Dont resize based on character height / width but to exact pixels
-frame-resize-pixelwise t
-;; backups & files
-backup-directory-alist '(("." . "~/.backups/")) ; Don't clutter
-backup-by-copying t ; Don't clobber symlinks
-create-lockfiles nil ; Don't have temp files
-delete-old-versions t ; Cleanup automatically
-kept-new-versions 6 ; Update every few times
-kept-old-versions 2 ; And cleanup even more
-version-control t ; Version them backups
-delete-by-moving-to-trash t ; Dont delete, send to trash instead
-;; startup
-inhibit-startup-screen t ; I have already done the tutorial. Twice
-inhibit-startup-message t ; I know I am ready
-inhibit-startup-echo-area-message t ; Yep, still know it
-initial-scratch-message nil ; I know it is the scratch buffer!
-initial-buffer-choice nil
-inhibit-startup-buffer-menu t
-inhibit-x-resources t
-initial-major-mode 'fundamental-mode
-pgtk-wait-for-event-timeout 0.001 ; faster child frames
-ad-redefinition-action 'accept ; dont care about legacy things being redefined
-inhibit-compacting-font-caches t
-;; tabs
-tab-width 4 ; Always tab 4 spaces.
-indent-tabs-mode nil ; Never use actual tabs.
-;; rendering
-cursor-in-non-selected-windows nil ; dont render cursors other windows
-;; packages
-use-package-always-defer t
-load-prefer-newer t
-default-input-method nil
-use-dialog-box nil
-use-file-dialog nil
-use-package-expand-minimally t
-package-enable-at-startup nil
-use-package-enable-imenu-support t
-auto-mode-case-fold nil ; No second pass of case-insensitive search over auto-mode-alist.
-package-archives '(("melpa" . "https://melpa.org/packages/")
- ("gnu" . "https://elpa.gnu.org/packages/")
- ("nongnu" . "https://elpa.nongnu.org/nongnu/")
- ("melpa-stable" . "https://stable.melpa.org/packages/"))
-package-archive-priorities '(("gnu" . 99)
- ("nongnu" . 80)
- ("melpa" . 70)
- ("melpa-stable" . 50))
-)
-;;; early-init.el ends here
-
-
-
-
-
-
generated/system/applications/terminal_shell/init.el
-
-
-This helps set up the emacs terminal
-
-
-
;;; package --- Summary - My minimal Emacs init file -*- lexical-binding: t -*-
-
-;;; Commentary:
-;;; Simple Emacs setup I carry everywhere
-
-;;; Code:
-(setq custom-file (locate-user-emacs-file "custom.el"))
-(load custom-file 'noerror) ;; no error on missing custom file
-
-(require 'package)
-(package-initialize)
-
-(defun reset-custom-vars ()
-"Resets the custom variables that were set to crazy numbers"
-(setopt gc-cons-threshold (* 1024 1024 100))
-(setopt garbage-collection-messages t))
-
-(use-package emacs
-:custom
-(native-comp-async-query-on-exit t)
-(read-answer-short t)
-(use-short-answers t)
-(enable-recursive-minibuffers t)
-(which-func-update-delay 1.0)
-(visible-bell nil)
-(custom-buffer-done-kill t)
-(whitespace-line-column nil)
-(x-underline-at-descent-line t)
-(imenu-auto-rescan t)
-(uniquify-buffer-name-style 'forward)
-(confirm-nonexistent-file-or-buffer nil)
-(create-lockfiles nil)
-(make-backup-files nil)
-(kill-do-not-save-duplicates t)
-(sentence-end-double-space nil)
-(treesit-enabled-modes t)
-:init
-;; base visual
-(menu-bar-mode -1) ;; no menu bar
-(toggle-scroll-bar -1) ;; no scroll bar
-(tool-bar-mode -1) ;; no tool bar either
-(blink-cursor-mode -1) ;; stop blinking
-
-;; font of the century
-(set-frame-font "Aporetic Sans Mono 12" nil t)
-
-:bind
-(("C-<wheel-up>" . pixel-scroll-precision) ; dont zoom in please, just scroll
- ("C-<wheel-down>" . 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
-
-
-
-
-
-
-
generated/system/development/databases/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/development/devops_ci_cd/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/development/programming_languages/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/development/virtualization/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/development/web_development/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/system_management/audio/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/system_management/backups/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/system_management/bluetooth/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/system_management/disk_management/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/system_management/hardware_sensors/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/system_management/logging_monitoring/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/system_management/login_manager/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/system_management/monitor_setup/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/system_management/networking/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/system_management/power_management/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/system_management/printers_scanners/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/system_management/security/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/system_management/system_updates/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/task_launcher/top.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./wofi.nix
- ];
- # .. put any code here
-}
-
-
-
-
-
-
generated/system/task_launcher/wofi.nix
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-
-
-
{
- lib,
- config,
- pkgs,
- flakeRoot,
- user,
- ...
-}:
-
-let
- wofiConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/wofi";
- # Dynamically read all files in assets/hyprland/conf/wofi/
- wofiConfs =
- lib.genAttrs (builtins.attrNames (builtins.readDir "${flakeRoot}/assets/system/conf/wofi"))
- (name: {
- text = builtins.readFile "${flakeRoot}/assets/system/conf/wofi/${name}";
- });
-in
-{
- environment.systemPackages = with pkgs; [
- wofi
- ];
-
- home-manager.users.${user.username} = {
- home.file = {
- # Map the files to their target paths in ~/.config/wofi/
- "${wofiConfigDir}/config" = wofiConfs."wofi.conf"; # Use the actual filename
- "${wofiConfigDir}/style.css" = wofiConfs."theming.css"; # Use the actual filename
- };
-
- home.sessionVariables = {
- WOFI_CONFIG = "${wofiConfigDir}/config";
- WOFI_STYLE = "${wofiConfigDir}/style.css";
- };
- };
-}
-
-
-
-
-
-
-
-
Author: Henro Veijer
-
Created: 2026-03-16 Mon 17:13
-
Validate
-
-
-
diff --git a/Droidnix_v1/README.org b/Droidnix_v1/README.org
deleted file mode 100644
index 1fb95fd39..000000000
--- a/Droidnix_v1/README.org
+++ /dev/null
@@ -1,2377 +0,0 @@
-#+title: Droidnix: A Dendritic NixOS + Home Manager Configuration
-#+author: Henro Veijer
-#+options: toc:t num:nil htmlize:nil
-#+language: en
-#+html_head:
-#+HTML_HEAD:
-#+HTML_HEAD:
-
-* Shortcuts
-[[#introduction][Introduction]]
-[[#the-assets-folder][The Assets Folder]]
-[[#the-actual-code][The Actual Code]]
-
----
-
-* Introduction :intro:
-:PROPERTIES:
-:CUSTOM_ID: introduction
-:END:
-** What is Droidnix
-Droidnix is a modular, declarative NixOS + Home Manager configuration system. It allows users to choose between =Hyprland= and =Mangowc= as their window manager, with shared and WM-specific configurations managed via Emacs Org and Nix Flakes. The project is designed for reproducibility, maintainability, and cross-machine compatibility.
-
-*** Installed components:
-**** Core
-**** Hyprland
-**** Mangowc
-
-*** Goals, project Structure, import hierarchy
-This project uses a **modular NixOS configuration** with **Hyprland** and **MangoWC** support, designed for **literate programming** and **cross-device reusability**.
-The Droidnix repository is organized into two main parts:
-1. =.assets/=: Static, non-generated files (e.g., configs, scripts, themes).
-2. Generated folders (=system=, =hyprland=, =mangowc=): NixOS and Home Manager configurations, generated from Org files.
-
-#+title: NixOS Configuration Structure
-
-* Root Level
-- =flake.nix= is the entry point and imports:
- - =generated/system/=
- - =generated/hyprland/=
- - Machine-specific configurations from =assets/machines/=
-
-* Generated Structure
-
-The =generated/= directory contains all generated configurations, divided into three main groups: =system=, =hyprland=, and =mangowc=.
-
-** System (=generated/system/=)
-This directory contains system-wide configurations that are independent of the window manager.
-
-*** Applications (=applications/=)
-- =file_management/=: Configurations for file managers and storage solutions.
-- =gaming/=: Settings for gaming-related software.
-- =office_productivity/=: Configurations for office software.
-- =media_playback_editing/=: Settings for media playback and editing software.
-- =terminal_shell/=: Configurations for terminal emulators and shells.
-
-*** Development (=development/=)
-- =databases/=: Settings for local databases.
-- =devops_ci_cd/=: Configurations for DevOps tools.
-- =programming_languages/=: Settings for programming languages and their runtimes.
-- =virtualization/=: Configurations for virtualization and containerization tools.
-- =web_development/=: Settings for web development.
-
-*** System Management (=system_management/=)
-- =backups/=: Settings for backup software.
-- =bluetooth/=: Configurations for Bluetooth devices and services.
-- =power_management/=: Settings for power management.
-- =audio/=: Configurations for audio.
-- =hardware_sensors/=: Settings for hardware monitoring.
-- =logging_monitoring/=: Configurations for system logging and monitoring.
-- =login_manager/=: Settings for the login manager.
-- =monitor_setup/=: Configurations for display settings.
-- =networking/=: Settings for networking.
-- =printers_scanners/=: Configurations for printers and scanners.
-- =disk_management/=: Settings for disk management.
-- =security/=: Security-related configurations.
-- =system_updates/=: Settings for system updates and package management.
-
-** Hyprland (=generated/hyprland/=)
-This directory contains configurations specific to Hyprland.
-
-- =animations_effects/=: Settings for window animations and visual effects.
-- =decorations/=: Configurations for window decorations.
-- =keyboard_binds/=: Keyboard shortcuts for Hyprland.
-- =notifications/=: Settings for notifications.
-- =statusbar_tray/=: Configurations for the status bar and system tray.
-- =task_launcher/=: Settings for task launchers.
-- =task_window_workspace_switcher/=: Configurations for switching between windows and workspaces.
-- =window_rules/=: Rules for window behavior.
-
-#+BEGIN_EXAMPLE
-<>
-#+END_EXAMPLE
-
-** First Setup
-1. Clone this repository.
-2. Run the setup script: =./setup_droid=.
-3. Edit =.assets/system/conf/base.conf= to choose your window manager (=wm = "hyprland"= or =wm = "mangowc"=).
-4. Tangle this Org file to generate Nix configurations: =C-c C-v t= in Emacs or use this: =emacs README.org --batch -f org-babel-tangle && emacs --batch --eval "(setq org-html-htmlize-output-type nil)" README.org -f org-html-export-to-html=
-5. Build and switch: =sudo nixos-rebuild switch --flake .#=.
-
----
-
-* The Assets Folder :assets:
-:PROPERTIES:
-:CUSTOM_ID: the-assets-folder
-:END:
-The =.assets/= folder contains all static files, such as configs, scripts, and themes. These files are not generated and can be edited directly.
-
-** =.assets/system/=
-This folder contains files shared across both window managers, such as wallpapers, shell configs, and system scripts.
-
-- =conf/base.conf=: Defines the window manager choice and other global settings.
-- =scripts/=: System-wide scripts (e.g., utilities, helpers).
-
-** =.assets/hyprland/=
-Hyprland-specific assets, including configs, themes, and scripts.
-
-- =conf/=: Hyprland configuration files (e.g., =hyprland.conf=).
-- =themes/=: Hyprland-specific theme scripts.
-- =scripts/=: Hyprland-specific scripts.
-
-** =.assets/mangowc/=
-Mangowc-specific assets, including configs, themes, and scripts.
-
-- =conf/=: Mangowc configuration files.
-- =themes/=: Mangowc-specific theme scripts.
-- =scripts/=: Mangowc-specific scripts.
-
-** =.assets/machines/=
-Machine-specific NixOS configurations (e.g., =configuration.nix= for =maindroid= and =traveldroid=).
-
----
-
-* The Actual Code :code:
-:PROPERTIES:
-:CUSTOM_ID: the-actual-code
-:END:
-
-This section contains the Org blocks for tangling Nix code into the generated folders.
-
-
-** =flake.nix=
-The Nix flake definition for Droidnix.
-#+BEGIN_SRC nix :tangle flake.nix :noweb tangle :mkdirp yes :eval never-html
-{
- description = "Droidnix: A dendritic NixOS + Home Manager configuration";
-
- inputs = {
- nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
- home-manager = {
- url = "github:nix-community/home-manager";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- catppuccin = {
- url = "github:catppuccin/nix";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- stylix = {
- url = "github:nix-community/stylix";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- emacs-overlay = {
- url = "github:nix-community/emacs-overlay";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- zen-browser = {
- url = "github:youwen5/zen-browser-flake";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- hyprland.url = "github:hyprwm/Hyprland";
- };
-
-outputs =
- inputs@{
- self,
- nixpkgs,
- home-manager,
- emacs-overlay,
- catppuccin,
- zen-browser,
- hyprland,
- stylix,
- ...
- }:
- let
- lib = nixpkgs.lib;
- system = "x86_64-linux";
- user = import ./generated/out_of_tree/users/henrov.nix;
- machines = [
- "traveldroid"
- "maindroid"
- ];
- flakeRoot = ./.; # Define flakeRoot here
- in
- {
- nixosConfigurations = lib.genAttrs machines (
- machine:
- lib.nixosSystem {
- inherit system;
- modules = [
- # Import machine-specific configurations
- ./generated/out_of_tree/machines/traveldroid/top.nix
- # Anchoring all the other nixes
- ./generated/top.nix
- # Home Manager module
- inputs.home-manager.nixosModules.home-manager
- {
- home-manager.useGlobalPkgs = true;
- home-manager.useUserPackages = true;
-
- home-manager.extraSpecialArgs = { inherit user inputs flakeRoot; };
- }
- ];
- specialArgs = { inherit user inputs flakeRoot; };
- }
- );
-
- homeConfigurations = lib.genAttrs (map (machine: "${user.username}@${machine}") machines) (
- userMachine:
- home-manager.lib.homeManagerConfiguration {
- inherit system;
- configuration = import ./user.nix { inherit inputs user flakeRoot; };
- extraSpecialArgs = { inherit user inputs flakeRoot; };
- }
- );
-
- devShells.${system}.default = import ./generated/out_of_tree/terminal_shell/devshell.nix {
- inherit (nixpkgs.legacyPackages.${system}) mkShell;
- };
- };
-}
-#+END_SRC
-
-* First the nix-files that flake really needs and that do not fit wel in the hierarchical structure
-** =generated/out_of_tree/users/top.nix=
-The ./generated/top.nix file acts as an anchor or entry point for the entire chain of imports in the pyramid structure.
-#+BEGIN_SRC nix :tangle generated/out_of_tree/users/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, ... }:
-{
- imports = [
- ./user.nix
- ];
-}
-#+END_SRC
-
-** =generated/out_of_tree/users/user.nix=
-This is the default user, just search and replace henrov another name if you want to change
-#+BEGIN_SRC nix :tangle generated/out_of_tree/users/user.nix :noweb tangle :mkdirp yes :eval never-html
-{
- config,
- pkgs,
- lib,
- inputs,
- ...
-}:
-
-let
- user = import ./henrov.nix;
-in
-{
- home-manager.users.${user.username} = {
- home.stateVersion = "25.11";
- home.username = user.username;
- home.homeDirectory = user.homeDirectory;
- home.packages = with pkgs; [
- direnv
- git-extras
- ];
- };
-
- # Ensure the user is in the necessary groups
- users.users.${config.users.users.${user.username}.username} = {
- extraGroups = [ "networkmanager" ];
-}
-#+END_SRC
-
-** =generated/out_of_tree/users/henrov.nix=
-This is the default user, just search and replace henrov another name if you want to change
-#+BEGIN_SRC nix :tangle generated/out_of_tree/users/henrov.nix :noweb tangle :mkdirp yes :eval never-html
-{
- username = "henrov";
- hashedPassword = "$6$ISAmsPLyFi7idYXr$VmZsq.zMsyh1irSkyDNqtorNXG0oEHbbMVqTii1t8bymvrQ5ZQmbdi4OiBNeNYe/huHGrojXM.3TST2fTLz0T.";
- homeDirectory = "/home/henrov";
- stateVersion = "25.11";
- locale = "nl_NL.UTF-8";
-}
-#+END_SRC
-
-** =generated/out_of_tree/terminal_shell/top.nix=
-This code defines a Nix shell environment (also called a "devShell") that you can enter using the nix develop command. When you enter this shell, Nix will provide the tools and dependencies listed in buildInputs.
-#+BEGIN_SRC nix :tangle generated/out_of_tree/terminal_shell/top.nix :noweb tangle :mkdirp yes :eval never-html
-{
- config,
- pkgs,
- lib,
- user,
- inputs,
- flakeRoot,
- ...
-}:
-
-{
- imports = [
- ./devshell.nix
- inputs.home-manager.nixosModules.home-manager
- ];
-}
-#+END_SRC
-
-** =generated/out_of_tree/terminal_shell/devshell.nix=
-This code defines a Nix shell environment (also called a "devShell") that you can enter using the nix develop command. When you enter this shell, Nix will provide the tools and dependencies listed in buildInputs.
-#+BEGIN_SRC nix :tangle generated/out_of_tree/terminal_shell/devshell.nix :noweb tangle :mkdirp yes :eval never-html
-{ mkShell, ... }:
-mkShell {
- buildInputs = with import {}; [
- nil
- nixfmt-rfc-style
- ];
-}
-#+END_SRC
-
-** =generated/out_of_tree/machines/traveldroid/top.nix=
-This is the top of the machine hierarchy
-#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/top.nix :noweb tangle :mkdirp yes :eval never-html
-{
- config,
- pkgs,
- lib,
- user,
- inputs,
- flakeRoot,
- ...
-}:
-
-{
- imports = [
- ./../../core/nix.nix
- ./../../core/stylix.nix
- ./../../core/gtk.nix
- ./../../core/terminal.nix
- ./boot.nix
- ./hardware-configuration.nix
- ./machine.nix
- ./dbus.nix
- ./audio.nix
- ./xdg.nix
- ./networking.nix
- inputs.home-manager.nixosModules.home-manager
- ];
-}
-#+END_SRC
-
-** =generated/out_of_tree/machines/traveldroid/hardware-configuration.nix=
-1. Boot into NixOS Live ISO or your installed system.
-2. Open a terminal.
-3. Run: sudo nixos-generate-config --root /mnt (Omit --root /mnt if already running NixOS.)
-#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/hardware-configuration.nix :noweb tangle :mkdirp yes :eval never-html
-{
- hostname,
- pkgs,
- lib,
- modulesPath,
- user,
- config,
- ...
-}:
-{
- imports = [
- # (modulesPath + "/installer/scan/not-detected.nix")
- #../../hardware/hardware.nix
- ];
-
- boot.initrd.availableKernelModules = [
- "xhci_pci"
- "nvme"
- "usb_storage"
- "sd_mod"
- "rtsx_usb_sdmmc"
- ];
- boot.initrd.kernelModules = [ ];
- boot.kernelModules = [ "kvm-intel" ];
- boot.extraModulePackages = [ ];
-
- fileSystems."/" = {
- device = "/dev/disk/by-uuid/69433a14-fbaf-401b-af85-cd1bbf02b4e2";
- fsType = "ext4";
- };
-
- fileSystems."/boot" = {
- device = "/dev/disk/by-uuid/811D-0676";
- fsType = "vfat";
- options = [
- "fmask=0077"
- "dmask=0077"
- ];
- };
-
- swapDevices = [
- { device = "/dev/disk/by-uuid/b6c557c2-7682-460b-a5e7-8f6f2f429a3a"; }
- ];
-
- nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
- hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
-}
-#+END_SRC
-
-** =generated/out_of_tree/machines/traveldroid/boot.nix=
-This file has most of the settings the control how the computer boots up.
-#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/boot.nix :noweb tangle :mkdirp yes :eval never-html
-{ pkgs, ... } :
-{
- boot = {
- initrd = {
- verbose = false; # its a lot of logs. dont need it, unless we do.
- kernelModules = [ ]; # no kernel modules on boot
- };
-
- extraModulePackages = [ ]; # no extra packages on boot either
- kernelPackages = pkgs.linuxPackages_latest; # latest greatest linux kernel
- kernelParams = [ "silent" ]; # quiet those logs
-
- consoleLogLevel = 0; # quiten more logs
- plymouth.enable = true; # graphical boot animation instead
-
- supportedFilesystems = [ "ntfs" ]; # should see the ntfs (windows)
-
- loader = {
- systemd-boot.enable = true; # systemd-boot
- systemd-boot.configurationLimit = 10;
- efi.canTouchEfiVariables = true; # allow editing efi to edit the boot loader
- timeout = 5; # grub timeout to make a selection
- };
- };
-}
-#+END_SRC
-
-** =generated/out_of_tree/machines/traveldroid/machine.nix=
-This is the top if the machine hierarchy
-#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/machine.nix :noweb tangle :mkdirp yes :eval never-html
-{
- config,
- pkgs,
- lib,
- user,
- inputs,
- flakeRoot,
- ...
-}:
-
-{
- options = {
- wm = lib.mkOption {
- type = lib.types.str;
- default = "hyprland";
- description = "Type of window manager to use";
- };
- };
-
- config = {
- # Minimal settings that must be defined here
- networking.hostName = "traveldroid";
- wm.type = "hyprland";
-
- # User configuration
- users.users.${user.username} = {
- isNormalUser = true;
- extraGroups = [
- "wheel"
- "networkmanager"
- ];
- hashedPassword = user.hashedPassword;
- home = user.homeDirectory;
- };
- # Optional: Enable auto-login for testing
- #services.getty.autologinUser = user.username;
- };
-}
-#+END_SRC
-
-** =generated/out_of_tree/machines/traveldroid/dbus.nix=
-This sets the dbus implementation
-#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/dbus.nix :noweb tangle :mkdirp yes :eval never-html
-{ 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
- '';
-}
-#+END_SRC
-
-** =generated/out_of_tree/machines/traveldroid/networking.nix=
-This sets the networking.
-#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/networking.nix :noweb tangle :mkdirp yes :eval never-html
-{
- config,
- pkgs,
- lib,
- ...
-}:
-
-{
- networking = {
- useDHCP = lib.mkDefault true;
- networkmanager.enable = true;
- networkmanager.wifi.backend = "iwd";
- wireless.iwd.enable = true;
- wireless.userControlled.enable = true;
- firewall = {
- enable = true;
- # KDE Connect: discovery + encrypted connections
- allowedTCPPortRanges = [
- {
- from = 1714;
- to = 1764;
- }
- ];
- allowedUDPPortRanges = [
- {
- from = 1714;
- to = 1764;
- }
- ];
- };
- };
-
- # Install NetworkManager and wofi
- environment.systemPackages = with pkgs; [
- networkmanager
- wofi
- ];
-}
-#+END_SRC
-
-** =generated/out_of_tree/machines/traveldroid/bluetooth.nix=
-This sets the bluetooth implementation
-#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/bluetooth.nix :noweb tangle :mkdirp yes :eval never-html
-{ 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
- ];
-}
-#+END_SRC
-
-** =generated/out_of_tree/machines/traveldroid/audio.nix=
-This sets audiosystem for this machine
-#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/audio.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, ... }:
-{
- services.pipewire = {
- enable = true;
- alsa.enable = true; # ALSA compatibility
- pulse.enable = true; # PulseAudio compatibility
- wireplumber.enable = true; # Session manager for PipeWire
- };
-
- # Realtime privileges for pro audio (optional)
- security.rtkit.enable = true;
-}
-#+END_SRC
-
-
-** =generated/out_of_tree/machines/traveldroid/xdg.nix=
-This sets the XDG implementation
-#+BEGIN_SRC nix :tangle generated/out_of_tree/machines/traveldroid/xdg.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, ... }:
-{
- xdg.portal = {
- enable = true;
- config.system.default = [ "hyprland" "gtk" ];
- };
-}
-#+END_SRC
-
-** =generated/out_of_tree/core/stylix.nix=
-This sets the stylix implementation
-#+BEGIN_SRC nix :tangle generated/out_of_tree/core/stylix.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, inputs, flakeRoot, ... }:
-
-let
- _ = builtins.trace ("Stylix enable = " + toString config.stylix.enable) null;
-in
-{
- imports = [
- inputs.stylix.nixosModules.stylix
- ];
-
- environment.systemPackages = with pkgs; [
- feh # wallpaper target
- #gtk3 # GTK target
- # gtk4 # GTK target
- st # NVF / terminal target, or kitty
- ];
-
- stylix = {
- enable = true;
- base16Scheme = "${flakeRoot}/assets/system/theming/stylix/catppuccin-mocha.yaml";
- polarity = "dark";
- };
-}
-#+END_SRC
-
-** =generated/out_of_tree/core/gtk.nix=
-Sets theming for GTK
-#+BEGIN_SRC nix :tangle generated/out_of_tree/core/gtk.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, ... }:
-
-{
- environment.systemPackages = with pkgs; [
- # feh # wallpaper target
- gtk3 # GTK target
- gtk4 # GTK target
- #st # NVF / terminal target, or kitty
- ];
- # Stylix GTK target
- stylix.targets.gtk.enable = true;
-}
-#+END_SRC
-
-** =generated/out_of_tree/core/terminal.nix=
-Sets theming for the terminal
-#+BEGIN_SRC nix :tangle generated/out_of_tree/core/terminal.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, ... }:
-
-{
- # (NVF = Neovim/terminal flavor)
- stylix.targets.nvf.enable = true;
- # feh wallpaper integration
- stylix.targets.feh.enable = true;
-}
-#+END_SRC
-
-** =generated/out_of_tree/core/nix.nix=
-I use the [[https://catppuccin.com/][Catppuccin]] almost everywhere. The nix module integrates almost automatically everywhere (except gtk).
-You'll notice the color values in multiple places outside this as well.
-#+BEGIN_SRC nix :tangle generated/out_of_tree/core/nix.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, ... }:
-{
- nix.settings = {
- extra-experimental-features = [ "nix-command" "flakes" ];
- };
-}
-#+END_SRC
-
-
-* Now we reach the top of the hierarchy which will call all other imports
-
-** =generated/top.nix=
-The ./generated/top.nix file acts as an anchor or entry point for the entire chain of imports in the pyramid structure.
-#+BEGIN_SRC nix :tangle generated/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, ... }:
-{
- imports = [
- ./system/top.nix
- ./hyprland/top.nix
- # ./mangowc/top.nix
- ];
-}
-#+END_SRC
-
-
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/hyprland/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./hyprland.nix
- ./animations_effects/top.nix
- ./decorations/top.nix
- ./notifications/top.nix
- ./statusbar_tray/top.nix
- ./task_window_workspace_switcher/top.nix
- ./window_rules/top.nix
- ];
-}
-#+END_SRC
-
-** =generated/hyprland/hyprland.nix=
-The ./generated/top.nix file acts as an anchor or entry point for the entire chain of imports in the pyramid structure.
-#+BEGIN_SRC nix :tangle generated/hyprland/hyprland.nix :noweb tangle :mkdirp yes :eval never-html
-{
- config,
- pkgs,
- lib,
- user,
- flakeRoot,
- ...
-}:
-
-let
- hyprlandFiles = builtins.attrNames (builtins.readDir "${flakeRoot}/assets/hyprland/conf/hypr");
- # Filter out hyprland.conf from the list of files to symlink
- otherHyprlandFiles = lib.filter (name: name != "hyprland.conf") hyprlandFiles;
- # Generate xdg.configFile entries for all files except hyprland.conf
- otherConfigs = lib.genAttrs otherHyprlandFiles (name: {
- target = "hypr/${name}";
- source = "${flakeRoot}/assets/hyprland/conf/hypr/${name}";
- });
-in
-{
- programs.hyprland = {
- enable = true;
- };
-
- home-manager.users.${user.username} = {
- home.stateVersion = "25.11";
- home.username = user.username;
- home.homeDirectory =
- config.home-manager.users.${user.username}.homeDirectory or "/home/${user.username}";
-
- wayland.windowManager.hyprland = {
- enable = true;
- settings.general."col.active_border" = lib.mkForce "0xff97cbcd 0xff89b4fa";
- };
-
- xdg.configFile = otherConfigs // {
- "hypr/hyprland.conf".text = ''
- ${builtins.readFile "${flakeRoot}/assets/hyprland/conf/hypr/hyprland.conf"}
- '';
- "hypr/.keep".text = "";
- };
- };
-}
-#+END_SRC
-
-** =generated/hyprland/animations_effects/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/hyprland/animations_effects/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/hyprland/decorations/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/hyprland/decorations/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/hyprland/notifications/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/hyprland/notifications/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/hyprland/statusbar_tray/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/hyprland/statusbar_tray/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/hyprland/task_window_workspace_switcher/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/hyprland/task_window_workspace_switcher/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/hyprland/window_rules/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/hyprland/window_rules/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-
-** =generated/system/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./applications/top.nix
- ./core/top.nix
- ./development/top.nix
- ./system_management/top.nix
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/applications/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/applications/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./packages.nix
- ./flatpaks.nix
- ./accessibility/top.nix
- ./browsing/top.nix
- ./file_management/top.nix
- ./gaming/top.nix
- ./media_playback_editing/top.nix
- ./office_productivity/top.nix
- ./terminal_shell/top.nix
- ];
- nixpkgs.config.allowUnfree = true;
-}
-#+END_SRC
-
-** =generated/system/applications/browsing/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/applications/browsing/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./zen-browser.nix
- # ./firefox.nix
- # ./vivaldi.nix
- ];
-}
-#+END_SRC
-
-** =generated/system/applications/browsing/zen-browser.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/applications/browsing/zen-browser.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, lib, pkgs, flakeRoot, inputs, ... }:
-let
-zenBrowser = inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default;
-in
-{
- environment.systemPackages = [zenBrowser];
-}
-#+END_SRC
-
-** =generated/system/applications/packages.nix=
-This will import all packages listed in ./assets/system/apps/packlages.conf
-#+BEGIN_SRC nix :tangle generated/system/applications/packages.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, lib, pkgs, flakeRoot, inputs, ... }:
-let
- packagesConfPath = "${flakeRoot}/assets/system/apps/packages.conf";
- raw = builtins.readFile packagesConfPath;
- # IMPORTANT: explicit "\n" so we never accidentally split into characters
- rawLines = lib.splitString "\n" raw;
- # Guard: if we accidentally split into characters, rawLines length ~= stringLength raw
- _guard = assert !(
- builtins.stringLength raw > 1 &&
- builtins.length rawLines == builtins.stringLength raw
- ); true;
- cleanLine = l:
- let
- noCR = lib.replaceStrings [ "\r" ] [ "" ] l;
- noInlineComment = lib.head (lib.splitString "#" noCR);
- in
- lib.strings.trim noInlineComment;
- entries =
- builtins.filter (l: l != "")
- (map cleanLine rawLines);
- 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 : ${toString packagesConfPath}
- Hint : check the attribute name on search.nixos.org/packages
- ''
- else
- found;
- packages = builtins.seq _guard (map resolvePkg entries);
-in
-{
- environment.systemPackages = packages;
-}
-#+END_SRC
-
-** =generated/system/applications/flatpaks.nix=
-This will import all packages listed in ./assets/system/apps/flatpaks.conf
-#+BEGIN_SRC nix :tangle generated/system/applications/flatpaks.nix :noweb tangle :mkdirp yes :eval never-html
-{
- config,
- pkgs,
- lib,
- flakeRoot,
- ...
-}:
-let
- moduleName = "install-flatpaks";
- flatpakConfPath = "${flakeRoot}/assets/system/apps/flatpaks.conf";
- raw = builtins.readFile flatpakConfPath;
- # Explicit "\n" so we never accidentally split into characters
- rawLines = lib.splitString "\n" raw;
-
- # Guard: if we accidentally split into characters, rawLines length ~= stringLength raw
- _guard =
- assert !(builtins.stringLength raw > 1 && builtins.length rawLines == builtins.stringLength raw);
- true;
-
- cleanLine =
- l:
- let
- noCR = lib.replaceStrings [ "\r" ] [ "" ] l;
- noInlineComment = lib.head (lib.splitString "#" noCR);
- in
- lib.strings.trim noInlineComment;
-
- entries = builtins.filter (l: l != "") (map cleanLine rawLines);
-
- # Flatpak app IDs are reverse-DNS style like org.example.App (at least 2 dots).
- # We'll validate and fail early with a clear message.
- dotCount = s: builtins.length (lib.splitString "." s) - 1;
-
- isValidId = s: (dotCount s) >= 2; # matches the error you're seeing: "at least 2 periods"
-
- _validate = builtins.seq _guard (
- builtins.map (
- id:
- if isValidId id then
- true
- else
- throw ''
- ${moduleName}: invalid Flatpak ID in flatpaks.conf (needs reverse-DNS with at least 2 dots)
-
- Token : ${builtins.toJSON id}
- flatpaks.conf : ${toString flatpakConfPath}
-
- Fix: remove stray tokens/headers, or comment them out with '#'.
- ''
- ) entries
- );
-
- # Use validated entries
- flatpakApps = builtins.seq _validate entries;
-
- syncFlatpaks = pkgs.writeShellScript "sync-flatpaks" ''
- set -euo pipefail
-
- # Use the deployed config path (matches environment.etc below)
- CONF="/etc/flatpak/flatpaks.conf"
- if [[ -f "$CONF" ]]; then
- echo "flatpak-sync: using $CONF"
- else
- echo "flatpak-sync: WARNING: $CONF not found, using embedded list"
- fi
-
- 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
-
- desired_apps=(
- ${lib.concatStringsSep "\n" (map (a: ''"${a}"'') flatpakApps)}
- )
-
- for app in "''${desired_apps[@]}"; do
- if ! flatpak info --system "$app" >/dev/null 2>&1; then
- flatpak install --system -y --noninteractive flathub "$app"
- fi
- done
- '';
-in
-{
- services.flatpak.enable = true;
-
- xdg.portal = {
- enable = true;
- };
-
- # Deploy the config file for runtime visibility/debugging
- environment.etc."flatpak/flatpaks.conf".source = lib.mkForce flatpakConfPath;
-
- systemd.services.flatpak-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 = syncFlatpaks;
- };
-
- restartTriggers = [ flatpakConfPath ];
- path = [
- pkgs.flatpak
- pkgs.coreutils
- pkgs.gnugrep
- pkgs.gnused
- ];
- };
-}
-
-#+END_SRC
-
-** =generated/system/core/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/core/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./wayland.nix
- #./eww.nix
- ./waybar.nix
- ./login-tuigreeter.nix
- #./login-lightdm.nix
- ./fonts.nix
- ];
-}
-#+END_SRC
-
-** =generated/system/core/gtk.nix=
-Sewtting up GTK
-#+BEGIN_SRC nix :tangle generated/system/core/gtk.nix :noweb tangle :mkdirp yes :eval never-html
-{ pkgs, user, ... }:
-{
- 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;
- };
- };
-
- };
-}
-#+END_SRC
-
-** =generated/system/core/fonts.nix=
-This file installs and configures fonts
-#+BEGIN_SRC nix :tangle generated/system/core/fonts.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, ... }:
-{
- fonts.packages = with pkgs; [
- pkgs.nerd-fonts.iosevka
- ];
-}
-#+END_SRC
-
-** =generated/system/core/eww.nix=
-This file installs and configures eww
-#+BEGIN_SRC nix :tangle generated/system/core/eww.nix :noweb tangle :mkdirp yes :eval never-html
-{ lib, config, pkgs, flakeRoot, user, ... }:
-let
- ewwConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/eww";
- # Dynamically read all files in assets/system/conf/eww/
- ewwConfs = lib.genAttrs (builtins.attrNames (builtins.readDir "${flakeRoot}/assets/system/conf/eww")) (name: {
- text = builtins.readFile "${flakeRoot}/assets/system/conf/eww/${name}";
- });
-in
-{
- environment.systemPackages = with pkgs; [ eww ];
-
- home-manager.users.${user.username} = {
- home.file = {
- "${ewwConfigDir}" = {
- source = "${flakeRoot}/assets/system/conf/eww";
- recursive = true;
- };
- };
-
- home.sessionVariables = {
- EWW_BIN = "${pkgs.eww}/bin/eww";
- };
-
- # Start eww with Hyprland/MangoWC
- wayland.windowManager.hyprland.settings = lib.mkForce {
- exec-once = [ "eww daemon" ];
- exec = [ "eww open-many ${ewwConfigDir}/widgets" ]; # Adjust as needed
- };
- };
-}
-#+END_SRC
-
-** =generated/system/core/waybar.nix=
-This file installs and configures waybar
-#+BEGIN_SRC nix :tangle generated/system/core/waybar.nix :noweb tangle :mkdirp yes :eval never-html
-{ lib, pkgs, config, flakeRoot, ... }:
-
-let
- username = "henrov";
- waybar-config = pkgs.writeText "waybar-config" (builtins.readFile (flakeRoot + "/assets/system/conf/waybar/config"));
- waybar-style = pkgs.writeText "waybar-style" (builtins.readFile (flakeRoot + "/assets/system/conf/waybar/style.css"));
-in
-{
- programs.waybar = {
- enable = true;
- package = pkgs.waybar;
- };
-
- systemd.user.services.waybar = {
- description = "Waybar (status bar for Wayland)";
- wantedBy = [ "graphical-session.target" ];
- after = [ "graphical-session.target" ];
- serviceConfig = {
- Type = "simple";
- ExecStart = "${config.programs.waybar.package}/bin/waybar -c ${waybar-config} -s ${waybar-style}";
- Restart = "on-failure";
- RestartSec = "5s";
- };
- };
-
- # Create symlinks for config and style
- system.activationScripts.waybarSetup = lib.mkAfter ''
- mkdir -p /home/${username}/.config/waybar
- ln -sf ${waybar-config} /home/${username}/.config/waybar/config
- ln -sf ${waybar-style} /home/${username}/.config/waybar/style.css
- chown -R ${username}:users /home/${username}/.config/waybar
- '';
-}
-#+END_SRC
-
-** =generated/system/core/login-tuigreeter.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/core/login-tuigreeter.nix :noweb tangle :mkdirp yes :eval never-html
-{ 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'";
- };
-};
-};
-}
-#+END_SRC
-
-** =generated/system/core/wayland.nix=
-This file sets up wayland
-#+BEGIN_SRC nix :tangle generated/system/core/wayland.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, ... }:
-{
- home-manager.users.${user.username} = {
- xdg.portal = {
- enable = true;
- extraPortals = with pkgs; [ xdg-desktop-portal-hyprland ];
- config.hyprland = {
- "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ];
- };
- };
-
- home.packages = with pkgs; [
- uwsm
- ];
- };
-}
-#+END_SRC
-
-** =generated/system/development/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/development/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./databases/top.nix
- ./devops_ci_cd/top.nix
- ./programming_languages/top.nix
- ./virtualization/top.nix
- ./web_development/top.nix
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/system_management/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/system_management/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./audio/top.nix
- ./backups/top.nix
- ./bluetooth/top.nix
- ./disk_management/top.nix
- ./hardware_sensors/top.nix
- ./logging_monitoring/top.nix
- ./login_manager/top.nix
- ./monitor_setup/top.nix
- ./networking/top.nix
- ./power_management/top.nix
- ./printers_scanners/top.nix
- ./security/top.nix
- ./system_updates/top.nix
- ];
- # .. put any code here
-}
-#+END_SRC
-
-
-** =generated/system/applications/accessibility/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/applications/accessibility/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/applications/file_management/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/applications/file_management/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./thunar.nix
- ];
-}
-#+END_SRC
-
-** =generated/system/applications/file_management/thunar.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/applications/file_management/thunar.nix :noweb tangle :mkdirp yes :eval never-html
-{
- config,
- pkgs,
- lib,
- ...
-}:
-
-let
- username = "henrov"; # vervang door je echte gebruikersnaam
-in
-{
- home-manager.users.${username} = {
-
- # Thunar and plugins
- home.packages = with pkgs; [
- thunar
- thunar-volman
- thunar-archive-plugin
- thunar-media-tags-plugin
- tumbler
- ffmpegthumbnailer
- gvfs
- xdg-utils
- ];
-
- # Default file manager
- xdg.mimeApps = {
- defaultApplications = {
- "inode/directory" = "Thunar.desktop";
- };
- };
- };
-}
-#+END_SRC
-
-** =generated/system/applications/gaming/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/applications/gaming/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/applications/media_playback_editing/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/applications/media_playback_editing/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/applications/office_productivity/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/applications/office_productivity/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/applications/terminal_shell/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./kitty.nix
- ./starship.nix
- ./zsh.nix
- ./emacs.nix
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/applications/terminal_shell/kitty.nix=
-This file sets up Kitty terminal
-#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/kitty.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, flakeRoot, ... }:
-let
- kittyConf = "${flakeRoot}/assets/system/conf/kitty/kitty.conf";
- kittyTheme = "${flakeRoot}/assets/system/conf/kitty/Catppuccin-Mocha.conf";
-in
-{
- home-manager.users.${user.username} = {
- programs.kitty.enable = true;
- xdg.configFile."kitty/kitty.conf".source = kittyConf;
- xdg.configFile."kitty/Catppuccin-Mocha.conf".source = kittyTheme;
- };
-}
-#+END_SRC
-
-** =generated/system/applications/terminal_shell/starship.nix=
-This file sets up starship prompt
-#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/starship.nix :noweb tangle :mkdirp yes :eval never-html
-{
- lib,
- config,
- pkgs,
- flakeRoot,
- ...
-}:
-let
- starshipConfig = lib.importTOML (flakeRoot + "/assets/system/conf/starship.toml");
-in
-{
- programs.starship = {
- enable = true;
- settings = starshipConfig;
- };
-}
-#+END_SRC
-
-** =generated/system/applications/terminal_shell/zsh.nix=
-This sets up the zsh terminal
-#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/zsh.nix :noweb tangle :mkdirp yes :eval never-html
-{
- lib,
- config,
- pkgs,
- ...
-}:
-
-{
- # --- NixOS Configuration ---
- environment.systemPackages = with pkgs; [
- zsh
- git
- docker
- ];
-
- # --- Home Manager Configuration ---
- home-manager.users.henrov = {
- programs.zsh = {
- enable = true;
- enableCompletion = true;
-
- # Enable oh-my-zsh and use its plugins
- oh-my-zsh = {
- enable = true;
- plugins = [
- "git"
- "docker"
- "direnv"
- "zsh-autosuggestions"
- "zsh-syntax-highlighting"
- "zsh-completions"
- "zsh-history-substring-search"
- ];
- theme = "agnoster"; # Fallback, overridden below
- };
-
- # Source Nixpkgs-provided plugins explicitly
- initContent = ''
- # Source plugins installed by Nix
- source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh
- source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
- source ${pkgs.zsh-history-substring-search}/share/zsh-history-substring-search/zsh-history-substring-search.zsh
-
- # Catppuccin Mocha theme for oh-my-zsh
- local mocha_base="#1E1E2E"
- local mocha_surface0="#313244"
- local mocha_text="#CDD6F4"
- local mocha_lavender="#B4BEFE"
- local mocha_blue="#89B4FA"
- local mocha_sapphire="#74C7EC"
- local mocha_teal="#94E2D5"
- local mocha_green="#A6E3A1"
- local mocha_yellow="#F9E2AF"
- local mocha_peach="#FAB387"
- local mocha_maroon="#EBA0AC"
- local mocha_red="#F38BA8"
- local mocha_mauve="#CBA6F7"
- local mocha_pink="#F5C2E7"
- local mocha_flamingo="#F2CDCD"
- local mocha_rosewater="#F5E0DC"
-
- # Prompt
- PROMPT='%{$fg[$mocha_blue]%}%n%{$reset_color%}@%{$fg[$mocha_peach]%}%m%{$reset_color%} %{$fg[$mocha_lavender]%}%~%{$reset_color%} %{$fg[$mocha_red]%}$%{$reset_color%} '
- RPROMPT='%{$fg[$mocha_green]%}%T%{$reset_color%}'
-
- # Git prompt
- ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[$mocha_yellow]%}(%{$reset_color%}"
- ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[$mocha_yellow]%})%{$reset_color%}"
- ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[$mocha_red]%}✗%{$reset_color%}"
- ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[$mocha_green]%}✓%{$reset_color%}"
- ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg[$mocha_blue]%}⇡%{$reset_color%}"
- ZSH_THEME_GIT_PROMPT_BEHIND="%{$fg[$mocha_blue]%}⇣%{$reset_color%}"
- ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[$mocha_pink]%}?%{$reset_color%}"
- ZSH_THEME_GIT_PROMPT_STAGED="%{$fg[$mocha_sapphire]%}+%{$reset_color%}"
- ZSH_THEME_GIT_PROMPT_UNSTAGED="%{$fg[$mocha_red]%}!%{$reset_color%}"
-
- # Virtualenv/pyenv
- ZSH_THEME_VIRTUAL_ENV_PREFIX="(%{$fg[$mocha_teal]%}"
- ZSH_THEME_VIRTUAL_ENV_SUFFIX="%{$reset_color%})"
-
- # Right prompt with Git status
- RPROMPT='$(git_prompt_info) %{$fg[$mocha_green]%}%T%{$reset_color%}'
-
- # Set the custom theme
- ZSH_THEME="catppuccin-mocha"
- '';
- };
-
- # Home Manager packages (optional)
- home.packages = with pkgs; [
- direnv
- git-extras
- ];
- };
-}
-#+END_SRC
-
-** =generated/system/applications/terminal_shell/emacs.nix=
-This sets up the emacs terminal
-#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/emacs.nix :noweb tangle :mkdirp yes :eval never-html
-{ pkgs, ... }:
-
-{
- # NixOS Configuration
- environment.systemPackages = with pkgs; [
- # Add system-wide packages here, if any
- ];
-
- # Home Manager Configuration for the user 'henrov'
- home-manager.users.henrov = {
- programs.emacs = {
- enable = true;
- package = pkgs.emacs-pgtk.override { withTreeSitter = true; };
-
- # Group related packages for clarity and easier maintenance
- extraPackages = epkgs: with epkgs; [
- # Tree-sitter and language support
- manualPackages.treesit-grammars.with-all-grammars
- rust-mode
- rustic
- nix-mode
- hcl-mode
-
- # UI/UX and navigation
- nerd-icons
- doom-modeline
- diminish
- eldoc
- eldoc-box
- pulsar
- which-key
- avy
- consult
- vertico
- marginalia
- crux
- shell-pop
-
- # Completion and snippets
- nerd-icons-corfu
- corfu
- cape
- orderless
- yasnippet
- yasnippet-snippets
-
- # Utilities and tools
- rg
- exec-path-from-shell
- eat
- f
- gptel
- nixpkgs-fmt
- envrc
-
- # Theming
- catppuccin-theme
-
- # Git
- magit
-
- # Editing and workflow
- expreg
- vundo
- puni
-
- # Error and side panel support
- sideline
- sideline-flymake
- sideline-eglot
- ];
- };
-
- # Home Manager session variables
- home.sessionVariables = {
- EDITOR = "emacs";
- XDG_SCREENSHOTS_DIR = "~/screenshots";
- };
- /*
- # Home Manager file management
- home.file = {
- "emacs/early-init.el" = {
- source = ./early-init.el;
- target = ".emacs.d/early-init.el";
- };
- "emacs/init.el" = {
- source = ./init.el;
- target = ".emacs.d/init.el";
- };
- };
- */
- };
-}
-
-#+END_SRC
-
-** =generated/system/applications/terminal_shell/early-init.el=
-This helps set up the emacs terminal
-#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/early-init.el :noweb tangle :mkdirp yes :eval never-html
-;;; package --- early init -*- lexical-binding: t -*-
- ;;; Commentary:
- ;;; Prevents white flash and better Emacs defaults
- ;;; Code:
- (set-language-environment "UTF-8")
- (setq-default
-default-frame-alist
-'((background-color . "#1e1e2e")
- (bottom-divider-width . 1) ; Thin horizontal window divider
- (foreground-color . "#bac2de") ; Default foreground color
- (fullscreen . maximized) ; Maximize the window by default
- (horizontal-scroll-bars . nil) ; No horizontal scroll-bars
- (left-fringe . 8) ; Thin left fringe
- (menu-bar-lines . 0) ; No menu bar
- (right-divider-width . 1) ; Thin vertical window divider
- (right-fringe . 8) ; Thin right fringe
- (tool-bar-lines . 0) ; No tool bar
- (undecorated . t) ; Remove extraneous X decorations
- (vertical-scroll-bars . nil)) ; No vertical scroll-bars
-user-full-name "Henrov henrov" ; ME!
-;; memory configuration
-;; Higher garbage collection threshold, prevents frequent gc locks, reset later
-gc-cons-threshold most-positive-fixnum
-;; Ignore warnings for (obsolete) elisp compilations
-byte-compile-warnings '(not obsolete)
-;; And other log types completely
-warning-suppress-log-types '((comp) (bytecomp))
-;; Large files are okay in the new millenium.
-large-file-warning-threshold 100000000
-;; dont show garbage collection messages at startup, will reset later
-garbage-collection-messages nil
-;; native compilation
-package-native-compile t
-native-comp-warning-on-missing-source nil
-native-comp-async-report-warnings-errors 'silent
-;; Read more based on system pipe capacity
-read-process-output-max (max (* 10240 10240) read-process-output-max)
-;; scroll configuration
-scroll-margin 0 ; Lets scroll to the end of the margin
-scroll-conservatively 100000 ; Never recenter the window
-scroll-preserve-screen-position 1 ; Scrolling back and forth
-;; frame config
-;; Improve emacs startup time by not resizing to adjust for custom settings
-frame-inhibit-implied-resize t
-;; Dont resize based on character height / width but to exact pixels
-frame-resize-pixelwise t
-;; backups & files
-backup-directory-alist '(("." . "~/.backups/")) ; Don't clutter
-backup-by-copying t ; Don't clobber symlinks
-create-lockfiles nil ; Don't have temp files
-delete-old-versions t ; Cleanup automatically
-kept-new-versions 6 ; Update every few times
-kept-old-versions 2 ; And cleanup even more
-version-control t ; Version them backups
-delete-by-moving-to-trash t ; Dont delete, send to trash instead
-;; startup
-inhibit-startup-screen t ; I have already done the tutorial. Twice
-inhibit-startup-message t ; I know I am ready
-inhibit-startup-echo-area-message t ; Yep, still know it
-initial-scratch-message nil ; I know it is the scratch buffer!
-initial-buffer-choice nil
-inhibit-startup-buffer-menu t
-inhibit-x-resources t
-initial-major-mode 'fundamental-mode
-pgtk-wait-for-event-timeout 0.001 ; faster child frames
-ad-redefinition-action 'accept ; dont care about legacy things being redefined
-inhibit-compacting-font-caches t
-;; tabs
-tab-width 4 ; Always tab 4 spaces.
-indent-tabs-mode nil ; Never use actual tabs.
-;; rendering
-cursor-in-non-selected-windows nil ; dont render cursors other windows
-;; packages
-use-package-always-defer t
-load-prefer-newer t
-default-input-method nil
-use-dialog-box nil
-use-file-dialog nil
-use-package-expand-minimally t
-package-enable-at-startup nil
-use-package-enable-imenu-support t
-auto-mode-case-fold nil ; No second pass of case-insensitive search over auto-mode-alist.
-package-archives '(("melpa" . "https://melpa.org/packages/")
- ("gnu" . "https://elpa.gnu.org/packages/")
- ("nongnu" . "https://elpa.nongnu.org/nongnu/")
- ("melpa-stable" . "https://stable.melpa.org/packages/"))
-package-archive-priorities '(("gnu" . 99)
- ("nongnu" . 80)
- ("melpa" . 70)
- ("melpa-stable" . 50))
-)
-;;; early-init.el ends here
-#+END_SRC
-
-** =generated/system/applications/terminal_shell/init.el=
-This helps set up the emacs terminal
-#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/init.el :noweb tangle :mkdirp yes :eval never-html
-;;; package --- Summary - My minimal Emacs init file -*- lexical-binding: t -*-
-
-;;; Commentary:
-;;; Simple Emacs setup I carry everywhere
-
-;;; Code:
-(setq custom-file (locate-user-emacs-file "custom.el"))
-(load custom-file 'noerror) ;; no error on missing custom file
-
-(require 'package)
-(package-initialize)
-
-(defun reset-custom-vars ()
-"Resets the custom variables that were set to crazy numbers"
-(setopt gc-cons-threshold (* 1024 1024 100))
-(setopt garbage-collection-messages t))
-
-(use-package emacs
-:custom
-(native-comp-async-query-on-exit t)
-(read-answer-short t)
-(use-short-answers t)
-(enable-recursive-minibuffers t)
-(which-func-update-delay 1.0)
-(visible-bell nil)
-(custom-buffer-done-kill t)
-(whitespace-line-column nil)
-(x-underline-at-descent-line t)
-(imenu-auto-rescan t)
-(uniquify-buffer-name-style 'forward)
-(confirm-nonexistent-file-or-buffer nil)
-(create-lockfiles nil)
-(make-backup-files nil)
-(kill-do-not-save-duplicates t)
-(sentence-end-double-space nil)
-(treesit-enabled-modes t)
-:init
-;; base visual
-(menu-bar-mode -1) ;; no menu bar
-(toggle-scroll-bar -1) ;; no scroll bar
-(tool-bar-mode -1) ;; no tool bar either
-(blink-cursor-mode -1) ;; stop blinking
-
-;; font of the century
-(set-frame-font "Aporetic Sans Mono 12" nil t)
-
-:bind
-(("C-" . 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
-
-#+END_SRC
-
-** =generated/system/development/databases/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/development/databases/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/development/devops_ci_cd/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/development/devops_ci_cd/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/development/programming_languages/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/development/programming_languages/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/development/virtualization/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/development/virtualization/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/development/web_development/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/development/web_development/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/system_management/audio/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/system_management/audio/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/system_management/backups/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/system_management/backups/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/system_management/bluetooth/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/system_management/bluetooth/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/system_management/disk_management/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/system_management/disk_management/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/system_management/hardware_sensors/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/system_management/hardware_sensors/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/system_management/logging_monitoring/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/system_management/logging_monitoring/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/system_management/login_manager/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/system_management/login_manager/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/system_management/monitor_setup/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/system_management/monitor_setup/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/system_management/networking/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/system_management/networking/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/system_management/power_management/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/system_management/power_management/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/system_management/printers_scanners/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/system_management/printers_scanners/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/system_management/security/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/system_management/security/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/system_management/system_updates/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/system_management/system_updates/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- # No subfolders to import
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/task_launcher/top.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/task_launcher/top.nix :noweb tangle :mkdirp yes :eval never-html
-{ config, pkgs, lib, user, inputs, flakeRoot,... }:
-{
- imports = [
- ./wofi.nix
- ];
- # .. put any code here
-}
-#+END_SRC
-
-** =generated/system/task_launcher/wofi.nix=
-This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
-#+BEGIN_SRC nix :tangle generated/system/task_launcher/wofi.nix :noweb tangle :mkdirp yes :eval never-html
-{
- lib,
- config,
- pkgs,
- flakeRoot,
- user,
- ...
-}:
-
-let
- wofiConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/wofi";
- # Dynamically read all files in assets/hyprland/conf/wofi/
- wofiConfs =
- lib.genAttrs (builtins.attrNames (builtins.readDir "${flakeRoot}/assets/system/conf/wofi"))
- (name: {
- text = builtins.readFile "${flakeRoot}/assets/system/conf/wofi/${name}";
- });
-in
-{
- environment.systemPackages = with pkgs; [
- wofi
- ];
-
- home-manager.users.${user.username} = {
- home.file = {
- # Map the files to their target paths in ~/.config/wofi/
- "${wofiConfigDir}/config" = wofiConfs."wofi.conf"; # Use the actual filename
- "${wofiConfigDir}/style.css" = wofiConfs."theming.css"; # Use the actual filename
- };
-
- home.sessionVariables = {
- WOFI_CONFIG = "${wofiConfigDir}/config";
- WOFI_STYLE = "${wofiConfigDir}/style.css";
- };
- };
-}
-#+END_SRC
diff --git a/Droidnix_v1/assets/copy_2_root/.config/Thunar/accels.scm b/Droidnix_v1/assets/copy_2_root/.config/Thunar/accels.scm
deleted file mode 100644
index d4035cb56..000000000
--- a/Droidnix_v1/assets/copy_2_root/.config/Thunar/accels.scm
+++ /dev/null
@@ -1,131 +0,0 @@
-; thunar GtkAccelMap rc-file -*- scheme -*-
-; this file is an automated accelerator map dump
-;
-; (gtk_accel_path "/ThunarDetailsView/expandable-folders" "")
-; (gtk_accel_path "/ThunarBookmarks/f4f9b7c05a683015a19351e94cf07e3d" "")
-; (gtk_accel_path "/ThunarStandardView/sort-by-type" "")
-; (gtk_accel_path "/ThunarStatusBar/toggle-last-modified" "")
-; (gtk_accel_path "/Thunarwindow/menu" "")
-; (gtk_accel_path "/ThunarActionManager/cut" "x")
-; (gtk_accel_path "/ThunarStandardView/sort-by-size" "")
-; (gtk_accel_path "/ThunarWindow/file-menu" "")
-; (gtk_accel_path "/ThunarWindow/close-tab" "w")
-; (gtk_accel_path "/ThunarWindow/switch-previous-tab-alt" "ISO_Left_Tab")
-; (gtk_accel_path "/ThunarStatusBar/toggle-size" "")
-; (gtk_accel_path "/ThunarWindow/new-window" "n")
-; (gtk_accel_path "/ThunarWindow/clear-directory-specific-settings" "")
-; (gtk_accel_path "/ThunarWindow/close-window" "q")
-; (gtk_accel_path "/ThunarWindow/open-parent" "Up")
-; (gtk_accel_path "/ThunarWindow/view-side-pane-menu" "")
-; (gtk_accel_path "/ThunarStatusBar/toggle-size-in-bytes" "")
-; (gtk_accel_path "/ThunarWindow/switch-previous-tab" "Page_Up")
-; (gtk_accel_path "/ThunarActionManager/open" "o")
-; (gtk_accel_path "/ThunarStandardView/sort-ascending" "")
-; (gtk_accel_path "/ThunarWindow/toggle-split-view" "F3")
-; (gtk_accel_path "/ThunarActionManager/copy-2" "Insert")
-; (gtk_accel_path "/ThunarActionManager/trash-delete" "Delete")
-; (gtk_accel_path "/ThunarWindow/open-recent" "")
-; (gtk_accel_path "/ThunarWindow/view-configure-toolbar" "")
-; (gtk_accel_path "/ThunarStandardView/forward" "Right")
-; (gtk_accel_path "/ThunarActionManager/restore" "")
-; (gtk_accel_path "/ThunarWindow/open-location-alt" "d")
-; (gtk_accel_path "/ThunarWindow/zoom-out-alt" "KP_Subtract")
-; (gtk_accel_path "/ThunarStandardView/select-by-pattern" "s")
-; (gtk_accel_path "/ThunarWindow/open-file-menu" "F10")
-; (gtk_accel_path "/ThunarWindow/contents" "F1")
-; (gtk_accel_path "/ThunarWindow/show-highlight" "")
-; (gtk_accel_path "/ThunarStandardView/sort-descending" "")
-; (gtk_accel_path "/ThunarStandardView/sort-by-name" "")
-; (gtk_accel_path "/ThunarBookmarks/b642744ba505349eb43f3232902f4a96" "")
-; (gtk_accel_path "/ThunarStandardView/select-all-files" "a")
-; (gtk_accel_path "/ThunarActionManager/execute" "")
-; (gtk_accel_path "/ThunarStandardView/properties" "Return")
-; (gtk_accel_path "/ThunarActionManager/cut-2" "")
-; (gtk_accel_path "/ThunarStandardView/sort-by-dtime" "")
-; (gtk_accel_path "/ThunarBookmarks/51e116aa815495db13c58c73eec99304" "")
-; (gtk_accel_path "/ThunarWindow/switch-next-tab" "Page_Down")
-; (gtk_accel_path "/ThunarWindow/open-templates" "")
-; (gtk_accel_path "/ThunarActionManager/paste-2" "Insert")
-; (gtk_accel_path "/ThunarStatusBar/toggle-filetype" "")
-; (gtk_accel_path "/ThunarWindow/close-all-windows" "w")
-; (gtk_accel_path "/ThunarStandardView/create-document" "")
-; (gtk_accel_path "/ThunarWindow/detach-tab" "")
-; (gtk_accel_path "/ThunarWindow/cancel-search" "Escape")
-; (gtk_accel_path "/ThunarWindow/zoom-in-alt2" "equal")
-; (gtk_accel_path "/ThunarStatusBar/toggle-hidden-count" "")
-; (gtk_accel_path "/ThunarShortcutsPane/sendto-shortcuts" "d")
-; (gtk_accel_path "/ThunarActionManager/undo" "z")
-; (gtk_accel_path "/ThunarBookmarks/f08c8da7eedf52bf1705513340708bed" "")
-; (gtk_accel_path "/ThunarStandardView/toggle-sort-order" "")
-; (gtk_accel_path "/ThunarWindow/view-location-selector-entry" "")
-; (gtk_accel_path "/ThunarActionManager/paste" "v")
-; (gtk_accel_path "/ThunarWindow/zoom-in-alt1" "KP_Add")
-; (gtk_accel_path "/ThunarWindow/view-menubar" "m")
-; (gtk_accel_path "/ThunarStandardView/back" "Left")
-; (gtk_accel_path "/ThunarWindow/open-desktop" "")
-; (gtk_accel_path "/ThunarWindow/view-as-detailed-list" "2")
-; (gtk_accel_path "/ThunarActionManager/restore-show" "")
-; (gtk_accel_path "/ThunarWindow/sendto-menu" "")
-; (gtk_accel_path "/ThunarStatusBar/toggle-display-name" "")
-; (gtk_accel_path "/ThunarWindow/go-menu" "")
-; (gtk_accel_path "/ThunarWindow/zoom-out" "minus")
-; (gtk_accel_path "/ThunarWindow/remove-from-recent" "")
-; (gtk_accel_path "/ThunarActionManager/open-with-other" "")
-; (gtk_accel_path "/ThunarStandardView/invert-selection" "i")
-; (gtk_accel_path "/ThunarWindow/view-side-pane-shortcuts" "b")
-; (gtk_accel_path "/ThunarWindow/reload-alt-2" "Reload")
-; (gtk_accel_path "/ThunarWindow/view-location-selector-menu" "")
-; (gtk_accel_path "/ThunarStandardView/sort-by-mtime" "")
-; (gtk_accel_path "/ThunarWindow/edit-menu" "")
-; (gtk_accel_path "/ThunarActionManager/copy" "c")
-; (gtk_accel_path "/ThunarWindow/bookmarks-menu" "")
-; (gtk_accel_path "/ThunarStandardView/forward-alt" "Forward")
-; (gtk_accel_path "/ThunarActionManager/move-to-trash" "")
-; (gtk_accel_path "/ThunarWindow/reload-alt-1" "F5")
-; (gtk_accel_path "/ThunarActionManager/delete-3" "KP_Delete")
-; (gtk_accel_path "/ThunarWindow/reload" "r")
-; (gtk_accel_path "/ThunarStandardView/arrange-items-menu" "")
-; (gtk_accel_path "/ThunarStandardView/unselect-all-files" "Escape")
-; (gtk_accel_path "