diff --git a/Droidnix/Prompt b/Droidnix/Prompt deleted file mode 100644 index 09849945b..000000000 --- a/Droidnix/Prompt +++ /dev/null @@ -1,239 +0,0 @@ -Rewrite my ./generated/modules/traveldroid/apps/emax.nix to integrate nicely with my existing flake.nix en host.nix -This version does not install emacs -Avoid infinite recursion -Just look at how to rewrite this, ignore previous interactions around this nix. -Look at hyprland.nix to see how to avoid the home error - ------------------------------------------------------------------------- - -{ lib, pkgs, flakeRoot, home-manager, config, ... }: - -let - username = config.defaultUser or "henrov"; - - emacsPkg = pkgs.emacs-pgtk.override { withTreeSitter = true; }; - - 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 - ]; - - # Emacs config files - earlyInitFile = "${flakeRoot}/generated/.config/emacs/early-init.el"; - initFile = "${flakeRoot}/generated/.config/emacs/init.el"; - -in -{ - _module.args.hmUsers = { - ${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 = earlyInitFile; }; - ".emacs.d/init.el" = { source = initFile; }; - }; - }; - }; -} - - - ------------------------------------------------------------------------- - -flake.nix - -{ - 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"; - }; - - import-tree.url = "github:vic/import-tree"; - - 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 = { self, nixpkgs, home-manager, import-tree, stylix, hyprland, emacs-overlay, zen-browser, ... }: - let - system = "x86_64-linux"; - flakeRoot = self; - in { - nixosConfigurations = { - traveldroid = nixpkgs.lib.nixosSystem { - inherit system; - - modules = [ - ({ ... }: { - nixpkgs.overlays = [ emacs-overlay.overlays.default ]; - }) - ./generated/hosts/traveldroid/host.nix - - ]; - - specialArgs = { - inherit flakeRoot; - inherit home-manager import-tree stylix hyprland zen-browser; - }; - }; - }; - }; -} - - ------------------------------------------------------------------------- - -host.nix - -{ lib, config, pkgs, flakeRoot, import-tree, home-manager, ... }: - -let - hostname = "traveldroid"; - - modulesPath = "${flakeRoot}/generated/modules/${hostname}"; - usersPath = "${flakeRoot}/generated/users"; - - hostModules = import-tree modulesPath; - globalUsers = import-tree usersPath; - - allModules = hostModules.imports ++ globalUsers.imports; - -in -{ - ################################# - # Core system config - ################################# - - networking.hostName = hostname; - system.stateVersion = "26.05"; - - ################################# - # Imports - ################################# - - imports = - [ - ./boot.nix - ./hardware-configuration.nix - - # REQUIRED for Home Manager - home-manager.nixosModules.home-manager - ] - ++ allModules; - - ################################# - # Home Manager integration - ################################# - - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; -} - - -hyprland.Nix - - -{ lib, config, pkgs, flakeRoot, home-manager, inputs, ... }: - -let - username = config.defaultUser or "henrov"; - assetPath = "${flakeRoot}/assets/traveldroid/conf/hypr/"; - - # Read all files in the asset directory - assetFiles = builtins.attrNames (builtins.readDir assetPath); - - # Convert files to Home Manager xdg config entries - hyprFiles = lib.genAttrs assetFiles (f: { - # Destination path in home directory - name = ".config/hypr/${f}"; - # Source file path - value = { source = "${assetPath}/${f}"; }; - }); - - # Determine Hyprland package - hyprlandPkg = - pkgs.hyprland or - pkgs.hyprland-git or - inputs.hyprland.packages.${pkgs.system}.default; -in -{ - environment.systemPackages = [ hyprlandPkg ]; - - _module.args.hmUsers = { - ${username} = { - home.packages = [ hyprlandPkg ]; - - # Merge all files in the asset folder into ~/.config/hypr/ - home.file = lib.mkMerge hyprFiles; - - # Optional: Hyprland settings - settings.general."col.active_border" = "0xff97cbcd 0xff89b4fa"; - }; - }; -} diff --git a/Droidnix/README.html b/Droidnix/README.html index d1006b421..f2bc58e50 100644 --- a/Droidnix/README.html +++ b/Droidnix/README.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- +generated/modules/traveldroid/apps/2_b_installed.nixgenerated/assets/2_b_installed.confgenerated/modules/traveldroid/apps/flameshot.nixgenerated/modules/traveldroid/apps/kitty.nixgenerated/modules/traveldroid/apps/starship.nix.config/starship.tomlgenerated/modules/traveldroid/apps/thunar.nixgenerated/modules/traveldroid/apps/wofi.nix.config/wofi/config.config/wofi/style.cssgenerated/modules/traveldroid/apps/zenbrowser.nixgenerated/modules/traveldroid/apps/zsh.nixgenerated/modules/traveldroid/apps/emacs/emacs.nixgenerated/.config/emacs/early-init.elgenerated/.config/emacs/init.elgenerated/modules/traveldroid/apps/2_b_installed.nixgenerated/assets/2_b_installed.confgenerated/modules/traveldroid/apps/flameshot.nixgenerated/modules/traveldroid/apps/kitty.nixgenerated/modules/traveldroid/apps/starship.nix.config/starship.tomlgenerated/modules/traveldroid/apps/thunar.nixgenerated/modules/traveldroid/apps/wofi.nix.config/wofi/config.config/wofi/style.cssgenerated/modules/traveldroid/apps/zenbrowser.nixgenerated/modules/traveldroid/apps/zsh.nixgenerated/modules/traveldroid/apps/emacs/emacs.nixgenerated/.config/emacs/early-init.elgenerated/.config/emacs/init.elgenerated/modules/traveldroid/desktop/fonts.nixgenerated/modules/traveldroid/desktop/gtk.nixgenerated/modules/traveldroid/desktop/hyprland.nix.config/hypr/animations.conf.config/hypr/behaviour.conf.config/hypr/bindings.conf.config/hypr/exec-once.conf.config/hypr/hypridle.conf.config/hypr/hyprland.conf.config/hypr/hyprlock.conf.config/hypr/layer-rules.conf.config/hypr/layout.conf.config/hypr/monitor-rules.conf.config/hypr/scripts/layout-selector.sh.config/hypr/theming.css.config/hypr/window-rules.conf.config/hypr/workspace-rules.confgenerated/modules/traveldroid/desktop/wallpaper.nixgenerated/modules/traveldroid/desktop/stylix.nix.config/stylix/stylix.conf.config/stylix/palette.json.config/stylix/palette.htmlgenerated/modules/traveldroid/desktop/waybar.nix.config/waybar/config.config/waybar/style.cssgenerated/modules/traveldroid/desktop/fonts.nixgenerated/modules/traveldroid/desktop/gtk.nixgenerated/modules/traveldroid/desktop/hyprland.nix.config/hypr/animations.conf.config/hypr/behaviour.conf.config/hypr/bindings.conf.config/hypr/exec-once.conf.config/hypr/hypridle.conf.config/hypr/hyprland.conf.config/hypr/hyprlock.conf.config/hypr/layer-rules.conf.config/hypr/layout.conf.config/hypr/monitor-rules.conf.config/hypr/scripts/layout-selector.sh.config/hypr/theming.css.config/hypr/window-rules.conf.config/hypr/workspace-rules.confgenerated/modules/traveldroid/desktop/wallpaper.nixgenerated/modules/traveldroid/desktop/stylix.nix.config/stylix/stylix.conf.config/stylix/palette.json.config/stylix/palette.htmlgenerated/modules/traveldroid/desktop/waybar.nix.config/waybar/config.config/waybar/style.css.config/waybar/scripts/bluetooth-status.sh.config/waybar/scripts/hypr-workspaces.sh.config/waybar/scripts/hypr-workspacesmenu.sh.config/waypaper/config.inigenerated/modules/traveldroid/desktop/wayland.nixgenerated/modules/traveldroid/desktop/xdg.nix.config/waybar/scripts/bluetooth-status.sh.config/waybar/scripts/hypr-workspaces.sh.config/waybar/scripts/hypr-workspacesmenu.sh.config/waypaper/config.inigenerated/modules/traveldroid/desktop/wayland.nixgenerated/modules/traveldroid/desktop/xdg.nixgenerated/modules/traveldroid/system/audio.nixgenerated/modules/traveldroid/system/bluetooth.nixgenerated/modules/traveldroid/system/dbus.nixgenerated/modules/traveldroid/system/login-tuigreet.nixgenerated/modules/traveldroid/system/networking.nixgenerated/modules/traveldroid/system/nix.nixgenerated/modules/traveldroid/system/printing.nixgenerated/modules/traveldroid/system/audio.nixgenerated/modules/traveldroid/system/bluetooth.nixgenerated/modules/traveldroid/system/dbus.nixgenerated/modules/traveldroid/system/login-tuigreet.nixgenerated/modules/traveldroid/system/networking.nixgenerated/modules/traveldroid/system/nix.nixgenerated/modules/traveldroid/system/printing.nixIntroduction The Assets Folder @@ -333,26 +333,26 @@
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.
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: @@ -365,9 +365,9 @@ The Droidnix repository is organized into two main parts:
flake.nix is the entry point and imports:
The generated/ directory contains all generated configurations, divided into three main groups: system, hyprland, and mangowc.
./setup_droid..assets/ folder contains all static files, such as configs, scr
This section contains the Org blocks for tangling Nix code into the generated folders.
flake.nixflake.nixThe Nix flake definition for Droidnix.
@@ -488,9 +488,9 @@ The Nix flake definition for Droidnix.generated/hosts/traveldroid/host.nixgenerated/hosts/traveldroid/host.nix{ lib, config, pkgs, flakeRoot, import-tree, home-manager, ... }:
@@ -548,9 +548,9 @@ in
generated/hosts/traveldroid/hardware-configuration.nixgenerated/hosts/traveldroid/hardware-configuration.nixgenerated/hosts/traveldroid/boot.nixgenerated/hosts/traveldroid/boot.nix{ config, pkgs, lib, flakeRoot, ... }:
@@ -659,17 +659,17 @@ in
generated/modules/traveldroid/apps/2_b_installed.nixgenerated/modules/traveldroid/apps/2_b_installed.nixThis installs a list of apps
@@ -777,9 +777,9 @@ in {generated/assets/2_b_installed.confgenerated/assets/2_b_installed.confThis is a list of additional apps to install
@@ -832,9 +832,9 @@ com.todoist.Todoistgenerated/modules/traveldroid/apps/flameshot.nixgenerated/modules/traveldroid/apps/flameshot.nixThis is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
@@ -873,9 +873,9 @@ ingenerated/modules/traveldroid/apps/kitty.nixgenerated/modules/traveldroid/apps/kitty.nixThis file sets up Kitty terminal
@@ -933,9 +933,9 @@ ingenerated/modules/traveldroid/apps/starship.nixgenerated/modules/traveldroid/apps/starship.nixThis file sets up starship prompt
@@ -974,9 +974,9 @@ in.config/starship.toml.config/starship.tomlThese are config files for .config
@@ -1265,9 +1265,9 @@ crust = "#181926"generated/modules/traveldroid/apps/thunar.nixgenerated/modules/traveldroid/apps/thunar.nixThis is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
@@ -1308,9 +1308,9 @@ ingenerated/modules/traveldroid/apps/wofi.nixgenerated/modules/traveldroid/apps/wofi.nixThis is the install for Wofi, the launcher
@@ -1343,9 +1343,9 @@ in.config/wofi/config.config/wofi/configThese are config files for .config/wofi
@@ -1392,9 +1392,9 @@ prompt = >.config/wofi/style.css.config/wofi/style.cssThese are config files for .config/wofi
@@ -1483,9 +1483,9 @@ These are config files for .config/wofigenerated/modules/traveldroid/apps/zenbrowser.nixgenerated/modules/traveldroid/apps/zenbrowser.nixThis installs zen browser
@@ -1505,9 +1505,9 @@ ingenerated/modules/traveldroid/apps/zsh.nixgenerated/modules/traveldroid/apps/zsh.nixThis sets up the zsh in the terminal
@@ -1570,9 +1570,9 @@ inThis sets up the zsh in the terminal
@@ -1593,9 +1593,9 @@ figenerated/modules/traveldroid/apps/emacs/emacs.nixgenerated/modules/traveldroid/apps/emacs/emacs.nixThis installs emacs
@@ -1691,9 +1691,9 @@ ingenerated/.config/emacs/early-init.elgenerated/.config/emacs/early-init.elThis contaions emacs
@@ -1794,9 +1794,9 @@ package-archive-priorities '(("gnu" . 99)generated/.config/emacs/init.elgenerated/.config/emacs/init.elThis contaions emacs
@@ -2207,13 +2207,13 @@ the top of the file."generated/modules/traveldroid/desktop/fonts.nixgenerated/modules/traveldroid/desktop/fonts.nixThis file installs and configures fonts
@@ -2231,9 +2231,9 @@ This file installs and configures fontsgenerated/modules/traveldroid/desktop/gtk.nixgenerated/modules/traveldroid/desktop/gtk.nixSetting up GTK
@@ -2259,9 +2259,9 @@ ingenerated/modules/traveldroid/desktop/hyprland.nixgenerated/modules/traveldroid/desktop/hyprland.nixSetting up Hyprland
@@ -2308,9 +2308,9 @@ in.config/hypr/animations.conf.config/hypr/animations.confThese are config files for .config/hypr
@@ -2331,9 +2331,9 @@ animations {.config/hypr/behaviour.conf.config/hypr/behaviour.confThese are config files for .config/hypr
@@ -2347,9 +2347,9 @@ These are config files for .config/hypr.config/hypr/bindings.conf.config/hypr/bindings.confThese are config files for .config/hypr
@@ -2512,9 +2512,9 @@ bind = $mainMod, W, exec, zen.config/hypr/exec-once.conf.config/hypr/exec-once.confThese are config files for .config/hypr
@@ -2530,9 +2530,9 @@ exec-once = sh ~/Wallpapers/scripts/wallpaper.sh &.config/hypr/hypridle.conf.config/hypr/hypridle.confThese are config files for .config/hypr
@@ -2557,9 +2557,9 @@ listener {.config/hypr/hyprland.conf.config/hypr/hyprland.confThese are config files for .config/hypr
@@ -2606,9 +2606,9 @@ misc {.config/hypr/hyprlock.conf.config/hypr/hyprlock.confThese are config files for .config/hypr
@@ -2649,9 +2649,9 @@ label {.config/hypr/layer-rules.conf.config/hypr/layer-rules.confThese are config files for .config/hypr
@@ -2666,9 +2666,9 @@ layerrule = blur on, ignore_alpha 1, match:namespace swaync-notification-window.config/hypr/layout.conf.config/hypr/layout.confThese are config files for .config/hypr
@@ -2678,9 +2678,9 @@ These are config files for .config/hypr.config/hypr/monitor-rules.conf.config/hypr/monitor-rules.confThese are config files for .config/hypr
@@ -2691,9 +2691,9 @@ monitor=DP-1,3840x1080@144,1920x0,1.config/hypr/scripts/layout-selector.sh.config/hypr/scripts/layout-selector.shThese are config files for .config/hypr/scripts
@@ -2736,9 +2736,9 @@ hyprctl dispatch oSD "Layout: $LAYOUT_NAME" 2000.config/hypr/theming.css.config/hypr/theming.cssThese are config files for .config/hypr
@@ -2787,9 +2787,9 @@ decoration {.config/hypr/window-rules.conf.config/hypr/window-rules.confThese are config files for .config/hypr
@@ -2827,9 +2827,9 @@ windowrule {.config/hypr/workspace-rules.conf.config/hypr/workspace-rules.confThese are config files for .config/hypr
@@ -2855,9 +2855,9 @@ workspace = 10generated/modules/traveldroid/desktop/wallpaper.nixgenerated/modules/traveldroid/desktop/wallpaper.nixSetting up wallpaper engine + wallpaper gui
@@ -2956,9 +2956,9 @@ ingenerated/modules/traveldroid/desktop/stylix.nixgenerated/modules/traveldroid/desktop/stylix.nix{ lib, config, pkgs, flakeRoot, stylix, ... }:
@@ -3045,9 +3045,9 @@ in
.config/stylix/stylix.conf.config/stylix/stylix.confThese are config files for .config/stylix
@@ -3084,9 +3084,9 @@ icons = {.config/stylix/palette.json.config/stylix/palette.jsonThese are config files for .config/stylix
@@ -3116,9 +3116,9 @@ These are config files for .config/stylix.config/stylix/palette.html.config/stylix/palette.htmlThese are config files for .config/stylix
@@ -3196,9 +3196,9 @@ These are config files for .config/stylixgenerated/modules/traveldroid/desktop/waybar.nixgenerated/modules/traveldroid/desktop/waybar.nixThis file installs and configures waybar
@@ -3264,9 +3264,9 @@ in.config/waybar/config.config/waybar/configThese are config files for waybar
@@ -3462,9 +3462,9 @@ These are config files for waybar.config/waybar/style.css.config/waybar/style.cssThis file contains all css for waybar #+BEGINSRC css :tangle generated/.config/waybar/style.css :noweb yes :mkdirp yes :eval never @@ -3492,9 +3492,9 @@ This file contains all css for waybar
font-family: Aporetic Sans Mono, @@ -3637,9 +3637,9 @@ workspaces button.active { #+ENDSRC
.config/waybar/scripts/bluetooth-status.sh.config/waybar/scripts/bluetooth-status.shThese are config files for waybar
@@ -3665,9 +3665,9 @@ printf '{"text": "%s", "tooltip": "%s"}\n' "$icon" "$tooltip".config/waybar/scripts/hypr-workspaces.sh.config/waybar/scripts/hypr-workspaces.shThese are config files for waybar
@@ -3697,9 +3697,9 @@ jq -c -n \.config/waybar/scripts/hypr-workspacesmenu.sh.config/waybar/scripts/hypr-workspacesmenu.shThese are config files for waybar
@@ -3716,9 +3716,9 @@ hyprctl dispatch focuswindow address:$addr.config/waypaper/config.ini.config/waypaper/config.iniThese are config files for waypaper
@@ -3755,9 +3755,9 @@ keybindings = ~/.config/waypaper/keybindings.inigenerated/modules/traveldroid/desktop/wayland.nixgenerated/modules/traveldroid/desktop/wayland.nix{ lib, config, pkgs, ... }:
@@ -3787,9 +3787,9 @@ keybindings = ~/.config/waypaper/keybindings.ini
generated/modules/traveldroid/desktop/xdg.nixgenerated/modules/traveldroid/desktop/xdg.nixThis sets the XDG implementation
@@ -3843,13 +3843,13 @@ ingenerated/modules/traveldroid/system/audio.nixgenerated/modules/traveldroid/system/audio.nix{ lib, config, pkgs, ... }:
@@ -3867,9 +3867,9 @@ in
generated/modules/traveldroid/system/bluetooth.nixgenerated/modules/traveldroid/system/bluetooth.nix{ lib, config, pkgs, home-manager, ... }:
@@ -3890,9 +3890,9 @@ in
generated/modules/traveldroid/system/dbus.nixgenerated/modules/traveldroid/system/dbus.nixThis sets the dbus implementation
@@ -3919,9 +3919,9 @@ This sets the dbus implementationgenerated/modules/traveldroid/system/login-tuigreet.nixgenerated/modules/traveldroid/system/login-tuigreet.nixThis sets up tuigreeter which is not fancy but imo fits the aesthetic I am aiming for
@@ -3975,9 +3975,9 @@ ingenerated/modules/traveldroid/system/networking.nixgenerated/modules/traveldroid/system/networking.nixThis sets the networking.
@@ -4040,9 +4040,9 @@ This sets the networking.generated/modules/traveldroid/system/nix.nixgenerated/modules/traveldroid/system/nix.nix{ lib, config, ... }:
@@ -4058,9 +4058,9 @@ This sets the networking.
generated/modules/traveldroid/system/printing.nixgenerated/modules/traveldroid/system/printing.nixThis sets the dbus implementation
@@ -4085,13 +4085,13 @@ This sets the dbus implementationgenerated/users/henrov.nixgenerated/users/henrov.nixThis is the default user, just search and replace henrov another name if you want to change
@@ -4149,9 +4149,9 @@ in.config/waypaper/config.ini.config/waypaper/config.iniThese are config files for .config/waypaper
@@ -4188,9 +4188,9 @@ keybindings = ~/.config/waypaper/keybindings.ini.config/zed/settings.json.config/zed/settings.jsonThese are config files for .config/zed
@@ -4230,7 +4230,7 @@ These are config files for .config/zed