72 lines
4.0 KiB
Markdown
72 lines
4.0 KiB
Markdown
#+title: Droidnix: A Dendritic NixOS + Home Manager Configuration
|
|
#+author: Henro Veijer
|
|
|
|
#+BEGIN_SRC emacs-lisp :results silent
|
|
(let ((dir (getenv "XDG_DROIDNIX_DIR")))
|
|
(when dir
|
|
(let ((langs '("nix" "sh" "bash" "conf" "lua" "qml" "jsonc" "el" "toml" "css")))
|
|
(dolist (lang langs)
|
|
(let* ((prop (concat "header-args:" lang))
|
|
(val (org-entry-get (point-min) prop t))
|
|
(expanded (when val (replace-regexp-in-string
|
|
(regexp-quote "$XDG_DROIDNIX_DIR")
|
|
dir val))))
|
|
(when expanded
|
|
(org-global-prop-set prop expanded)))))))
|
|
#+END_SRC
|
|
|
|
#+options: toc:t num:nil htmlize:nil
|
|
#+PROPERTY: header-args:nix :prologue "# --- This file has been auto-generated. For permanent changes alter the appropriate block in $XDG_DROIDNIX_DIR/README.org. ---"
|
|
#+PROPERTY: header-args:sh :prologue "# --- This file has been auto-generated. For permanent changes alter the appropriate block in $XDG_DROIDNIX_DIR/README.org. ---"
|
|
#+PROPERTY: header-args:bash :prologue "# --- This file has been auto-generated. For permanent changes alter the appropriate block in $XDG_DROIDNIX_DIR/README.org. ---"
|
|
#+PROPERTY: header-args:css :prologue "/* --- This file has been auto-generated. For permanent changes alter the appropriate block in $XDG_DROIDNIX_DIR/README.org. --- */"
|
|
#+PROPERTY: header-args:lua :prologue "--- This file has been auto-generated. For permanent changes alter the appropriate block in $XDG_DROIDNIX_DIR/README.org. ---"
|
|
#+PROPERTY: header-args:conf :prologue "# --- This file has been auto-generated. For permanent changes alter the appropriate block in $XDG_DROIDNIX_DIR/README.org. ---"
|
|
#+PROPERTY: header-args:qml :prologue "// --- This file has been auto-generated. For permanent changes alter the appropriate block in $XDG_DROIDNIX_DIR/README.org. ---"
|
|
#+PROPERTY: header-args:json :prologue ""
|
|
#+PROPERTY: header-args:jsonc :prologue "// --- This file has been auto-generated. For permanent changes alter the appropriate block in $XDG_DROIDNIX_DIR/README.org. ---"
|
|
#+PROPERTY: header-args:el :prologue ";; --- This file has been auto-generated. For permanent changes alter the appropriate block in $XDG_DROIDNIX_DIR/README.org. ---"
|
|
#+PROPERTY: header-args:toml :prologue "# --- This file has been auto-generated. For permanent changes alter the appropriate block in $XDG_DROIDNIX_DIR/README.org. ---"
|
|
#+PROPERTY: header-args:none :prologue ""
|
|
#+language: en
|
|
#+html_head: <style>pre.src { background-color: #1e1e2e; color: #cdd6f4; padding: 1em; border-radius: 4px; }</style>
|
|
#+HTML_HEAD: <script src="https://cdn.jsdelivr.net/npm/tree.js@1.0.0/dist/tree.min.js"></script>
|
|
#+HTML_HEAD: <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/tree.js@1.0.0/dist/tree.min.css">
|
|
|
|
* Shortcuts
|
|
[#introduction][Introduction]
|
|
[#the-assets-folder][The Assets Folder]
|
|
[#the-nix-files][The .nix files]
|
|
|
|
|
|
---
|
|
|
|
* Introduction :intro:
|
|
:PROPERTIES:
|
|
:CUSTOM_ID: introduction
|
|
:END:
|
|
** What is Droidnix
|
|
Droidnix is a modular, declarative NixOS + Home Manager configuration with configurations managed via Emacs Org and Nix Flakes. The project is designed for reproducibility, maintainability, and cross-machine compatibility.
|
|
|
|
*** Installed components:
|
|
**** Core
|
|
**** Hyprland
|
|
|
|
*** Goals, project Structure, import hierarchy
|
|
This project uses a **modular NixOS configuration** with **Hyprland** 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 files and folders
|
|
|
|
#+title: NixOS Configuration Structure
|
|
|
|
* Root Level
|
|
- = is the entry point and imports:
|
|
- =generated/assets/=
|
|
- =generated/modules/=
|
|
- =generated/hosts/=
|
|
|
|
* Generated Structure
|
|
|
|
The =generated/= directory contains all generated configurations, divided into three main groups: =system=, =hyprland=, and =mangowc=.
|