diff --git a/Droidnix/README.html b/Droidnix/README.html index f5105790c..99971bb36 100644 --- a/Droidnix/README.html +++ b/Droidnix/README.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Droidnix: A Dendritic NixOS + Home Manager Configuration NixOS Configuration Structure @@ -204,119 +204,121 @@

Table of Contents

-
-

Shortcuts

-
+
+

Shortcuts

+

Introduction The Assets Folder @@ -332,41 +334,40 @@

Introduction   intro

-
-

What is Droidnix

-
+
+

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. +Droidnix is a modular, declarative NixOS + Home Manager configuration system. with configurations managed via Emacs Org and Nix Flakes. The project is designed for reproducibility, maintainability, and cross-machine compatibility.

-
-

Installed components:

-
+
+

Installed components:

+
    -
  • Core
  • -
  • Hyprland
  • -
  • Mangowc
  • +
  • Core
  • +
  • Hyprland
-
-

Goals, project Structure, import hierarchy

-
+
+

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. +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. -
  3. Generated folders (system, hyprland, mangowc): NixOS and Home Manager configurations, generated from Org files.
  4. +
  5. Generated files and folders
-
-

Root Level

-
+
+

Root Level

+
  • flake.nix is the entry point and imports:
      @@ -377,20 +378,19 @@ The Droidnix repository is organized into two main parts:
-
-

Generated Structure

-
+
+

Generated Structure

+

The generated/ directory contains all generated configurations, divided into three main groups: system, hyprland, and mangowc.

-
-

First Setup

-
+
+

First Setup

+
  1. Clone this repository.
  2. Run the setup script: ./setup_droid.
  3. -
  4. Edit .generated/.config/base.conf to choose your window manager (wm = "hyprland" or wm = "mangowc").
  5. 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
  6. Build and switch: sudo nixos-rebuild switch --flake .#<hostname>.
@@ -408,6 +408,78 @@ The generated/ directory contains all generated configurations, div The .assets/ folder contains all static files, such as configs, scripts, and themes. These files are not generated and can be edited directly.

+
+

generated/assets/2_b_installed.conf

+
+

+This is a list of additional apps to install +

+
+
#packages
+_1password-gui
+audacity
+baobab
+bat
+blueman
+bluez
+brave
+btop
+chromium
+cliphist
+comma
+direnv
+duf
+delta
+eza
+fd
+file
+fzf
+git
+gparted
+grim
+handbrake
+hyperfine
+just
+jq
+kdePackages.kdeconnect-kde
+libreoffice
+nextcloud-client
+nextcloud-talk-desktop
+nix-index
+nix-output-monitor
+nh
+obsidian
+onlyoffice-desktopeditors
+openssl
+postman
+python3
+qdirstat
+ripgrep
+signal-desktop
+slurp
+spotify
+solaar
+swappy
+tea
+todoist
+tree
+usbutils
+vlc
+wev
+wget
+wl-clipboard
+wf-recorder
+yazu
+zed-editor
+zoxide
+
+#flatpaks
+eu.betterbird.Betterbird
+com.todoist.Todoist
+
+
+
+

The Actual Code   code

@@ -416,9 +488,9 @@ The .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.nix

-
+
+

generated/flake.nix

+

The Nix flake definition for Droidnix.

@@ -487,69 +559,57 @@ The Nix flake definition for Droidnix.
-
-

generated/hosts/traveldroid/host.nix

-
+
+

generated/hosts/traveldroid/boot.nix

+
-
{ lib, config, pkgs, flakeRoot, import-tree, home-manager, ... }:
+
{ config, pkgs, lib, flakeRoot, ... }:
 
-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";
+  boot.loader = {
+    systemd-boot.enable = true;
+    efi.canTouchEfiVariables = true;
+    efi.efiSysMountPoint = "/boot";
+    timeout = 5;
   };
 
-  time.timeZone = "Europe/Amsterdam";
+  boot.kernelPackages = pkgs.linuxPackages_latest;
 
-  #################################
-  # 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
+  boot.kernelParams = [
+    "quiet"
+    "splash"
+    "udev.log_level=3"
+    "rd.systemd.show_status=false"
   ];
 
-  programs.dconf.enable = true;
+  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" ];
+
+  boot.plymouth = {
+            enable = true;
+          };
+
+  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
 }
 
-
-

generated/hosts/traveldroid/hardware-configuration.nix

-
+
+

generated/hosts/traveldroid/hardware-configuration.nix

+
  1. Boot into NixOS Live ISO or your installed system.
  2. Open a terminal.
  3. @@ -607,66 +667,74 @@ in
-
-

generated/hosts/traveldroid/boot.nix

-
+
+

generated/hosts/traveldroid/host.nix

+
-
{ config, pkgs, lib, flakeRoot, ... }:
+
{ lib, config, pkgs, flakeRoot, import-tree, home-manager, ... }:
 
+let
+  hostname = "traveldroid";
+  modulesPath = "${flakeRoot}/generated/modules/${hostname}";
+  hostModules = import-tree modulesPath;
+  allModules = hostModules.imports;
+in
 {
-  boot.loader = {
-    systemd-boot.enable = true;
-    efi.canTouchEfiVariables = true;
-    efi.efiSysMountPoint = "/boot";
-    timeout = 5;
+  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";
   };
 
-  boot.kernelPackages = pkgs.linuxPackages_latest;
+  time.timeZone = "Europe/Amsterdam";
 
-  boot.kernelParams = [
-    "quiet"
-    "splash"
-    "udev.log_level=3"
-    "rd.systemd.show_status=false"
+  #################################
+  # 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
   ];
 
-  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" ];
-
-  boot.plymouth = {
-            enable = true;
-          };
-
-  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
-  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+  programs.dconf.enable = true;
 }
 
-
-

Following are the imported modules

+
+

generated/traveldroid/modules/apps

+
- -
-

generated/traveldroid/modules/apps

-
-
-
-

generated/modules/traveldroid/apps/2_b_installed.nix

-
+
+

generated/modules/traveldroid/apps/2_b_installed.nix

+

This installs a list of apps

@@ -774,832 +842,9 @@ in {
-
-

generated/assets/2_b_installed.conf

-
-

-This is a list of additional apps to install -

-
-
#packages
-bluez
-blueman
-usbutils
-todoist
-brave
-chromium
-git
-direnv
-ripgrep
-wget
-kdePackages.kdeconnect-kde
-_1password-gui
-tree
-gparted
-file
-htop
-btop
-bat
-wev
-solaar
-baobab
-duf
-zed-editor
-eza
-z-lua
-qdirstat
-obsidian
-onlyoffice-desktopeditors
-postman
-tea
-python3
-nextcloud-client
-nextcloud-talk-desktop
-signal-desktop
-openssl
-audacity
-handbrake
-spotify
-vlc
-
-#flatpaks
-eu.betterbird.Betterbird
-com.todoist.Todoist
-
-
-
-
-
-

generated/modules/traveldroid/apps/flameshot.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, 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.stateVersion = "26.05";
-
-    home.sessionVariables = {
-      SCREENSHOT_TOOL = "flameshot";
-      USERNAME        = username;
-    };
-
-    # Create ~/Pictures/Screenshots by touching a dummy file
-    home.file."Pictures/Screenshots/.keep" = {
-      text = "";   # empty file
-    };
-  };
-}
-
-
-
-
-
-

generated/modules/traveldroid/apps/kitty.nix

-
-

-This file sets up Kitty terminal -

-
-
{ 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;
-        };
-
-        extraConfig = ''
-          ${extraConfig}
-
-          # Theme
-          include themes/Catppuccin-Mocha.conf
-        '';
-      };
-    };
-  };
-}
-
-
-
-
-
-

generated/modules/traveldroid/apps/starship.nix

-
-

-This file sets up starship prompt -

-
-
{ 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;
-        };
-      };
-    };
-  };
-}
-
-
-
-
-
-

.config/starship.toml

-
-

-These are config files for .config -

-
-
"$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 = 45000
-
-[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"
-
-
-
-
-
-
-

generated/modules/traveldroid/apps/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 -

-
-
{ 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
-  ];
-
-  ############################
-  # 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;
-    };
-  };
-}
-
-
-
-
-
-

generated/modules/traveldroid/apps/wofi.nix

-
-

-This is the install for Wofi, the launcher -

-
-
{ 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;
-        };
-      };
-    };
-  };
-}
-
-
-
-
-
-

.config/wofi/config

-
-

-These are config files for .config/wofi -

-
-
[global]
-allow_images = true
-allow_markup = true
-
-# Which modes are active
-show_drun = true:apps,false:others
-show_run = true
-show_files = false
-show_windowed = false
-show_dmenu = false
-show_ssh = false
-show_power = false
-
-# Layout / scrolling
-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
-
-# Labels
-show_labels = true
-label_search = true
-label_run = Run
-label_files = Files
-label_windowed = Windows
-label_drun = Applications
-label_dmenu = Commands
-label_ssh = SSH
-label_power = Power
-
-prompt = > ...
-
-
-
-
-
-

.config/wofi/style.css

-
-

-These are config files for .config/wofi -

-
-
@import url("file:///home/henrov/.config/shared/colors.css");
-
-/* Global styles */
-   * {
-    background-color: transparent;
-    color: @text;
-    font-family: "JetBrainsMono Nerd Font", monospace;
-    font-size: 12pt;
-}
-
-/* --- DRUN menu (full size) --- */
-#main {
-    background:
-        linear-gradient(@base-alpha, @base-alpha) padding-box, /* Inner fill */
-        linear-gradient(45deg, @blue, @green) border-box;      /* Gradient border */
-    border: 2px solid transparent; /* required for border-box layering */
-    border-radius: 30px;
-    padding: 20px;
-    box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
-    width: 800px;
-    height: 600px;
-}
-
-/* --- DMENU menu --- */
-#dmenu {
-    background:
-        linear-gradient(@base-alpha, @base-alpha) padding-box,
-        linear-gradient(45deg, @blue, @green) border-box;
-    border: 2px solid transparent;
-    border-radius: 30px;
-    padding: 10px; /* smaller padding for half-height */
-    box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
-    width: 800px;
-    height: 150px;
-}
-
-/* Input field */
-#input {
-    background-color: @surface0;
-    color: @text;
-    border: 1px solid @surface1;
-    border-radius: 30px;
-    padding: 5px 10px;
-    margin-bottom: 10px;
-}
-
-/* Entries */
-#entry {
-    background-color: rgba(200,200,200,0.2);
-    color: @text;
-    border-radius: 30px;
-    padding: 5px 10px;
-    margin: 2px 0;
-    border: 2px solid transparent; /* needed for gradient on selection */
-    transition: all 0.2s ease;
-}
-
-/* Entry focus (hover or typing) */
-#entry:focus {
-    background:
-        linear-gradient(@base-alpha, @base-alpha) padding-box,
-        linear-gradient(45deg, @blue, @green) border-box;
-    color: @lavender;
-    border-radius: 30px;
-}
-
-/* Entry selection */
-#entry:selected {
-    background:
-        linear-gradient(@base-alpha, @base-alpha) padding-box,
-        linear-gradient(45deg, @blue, @green) border-box;
-    color: @text;
-    border-radius: 30px;
-}
-
-/* Scrollbar */
-#scrollbar {
-    background-color: @surface0;
-    border-radius: 30px;
-    width: 8px;
-}
-
-#scrollbar.handle {
-    background-color: @blue;
-    border-radius: 30px;
-}
-
-
-
-
-
-

generated/modules/traveldroid/apps/zenbrowser.nix

-
-

-This installs zen browser -

-
-
{ 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
-  ];
-}
-
-
-
-
-
-

generated/modules/traveldroid/apps/zsh.nix

-
-

-This sets up the zsh in the terminal -

-
-
{ lib, config, pkgs, flakeRoot, ... }:
-
-let
-  # Default username fallback
-  username = config.defaultUser or "henrov";
-  # Path to optional per-user generated zshrc
-  generatedZsh = "${flakeRoot}/generated/.config/zsh/.zshrc";
-in
-{
-  #################################
-  # Install Zsh, Oh My Zsh, and Starship system-wide
-  #################################
-  environment.systemPackages = with pkgs; [
-    zsh
-    oh-my-zsh
-    starship
-  ];
-
-  #################################
-  # Set Zsh to use ~/.config/zsh as its config directory
-  #################################
-  environment.etc."zshenv".text = ''
-    export ZDOTDIR=$HOME/.config/zsh
-  '';
-
-  #################################
-  # Deploy global zshrc for all users
-  #################################
-  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
-
-    # Load optional per-user generated zshrc if it exists
-    [ -f "${generatedZsh}" ] && source "${generatedZsh}"
-
-    # Initialize Starship prompt
-    eval "$(starship init zsh)"
-  '';
-
-  #################################
-  # Set Zsh as default login shell for the user via Home Manager
-  #################################
-  home-manager.users = {
-    ${username} = {
-      programs.zsh.enable = true;
-
-      # Include the generated zshrc if you want
-      home.file.".config/zsh/.zshrc".source = generatedZsh;
-      };
-  };
-}
-
-
-
-
-
-

generated/.config/zsh/.zshrc

-
-

-This sets up the zsh in the terminal -

-
-
# 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
-
-
-
-
-
-

generated/modules/traveldroid/apps/emacs/emacs.nix

-
+
+

generated/modules/traveldroid/apps/emacs/emacs.nix

+

This installs emacs

@@ -1695,9 +940,1147 @@ in
-
-

generated/.config/emacs/early-init.el

-
+
+

generated/modules/traveldroid/apps/flameshot.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, 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.stateVersion = "26.05";
+
+    home.sessionVariables = {
+      SCREENSHOT_TOOL = "flameshot";
+      USERNAME        = username;
+    };
+
+    # Create ~/Pictures/Screenshots by touching a dummy file
+    home.file."Pictures/Screenshots/.keep" = {
+      text = "";   # empty file
+    };
+  };
+}
+
+
+
+
+
+

generated/modules/traveldroid/apps/kitty.nix

+
+

+This file sets up Kitty terminal +

+
+
{ 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;
+        };
+
+        extraConfig = ''
+          ${extraConfig}
+
+          # Theme
+          include themes/Catppuccin-Mocha.conf
+        '';
+      };
+    };
+  };
+}
+
+
+
+
+
+

generated/modules/traveldroid/apps/starship.nix

+
+

+This file sets up starship prompt +

+
+
{ 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;
+        };
+      };
+    };
+  };
+}
+
+
+
+
+
+

generated/modules/traveldroid/apps/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 +

+
+
{ 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
+  ];
+
+  ############################
+  # 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;
+    };
+  };
+}
+
+
+
+
+
+

generated/modules/traveldroid/apps/wofi.nix

+
+

+This is the install for Wofi, the launcher +

+
+
{ 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;
+        };
+      };
+    };
+  };
+}
+
+
+
+
+
+

generated/modules/traveldroid/apps/zenbrowser.nix

+
+

+This installs zen browser +

+
+
{ 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
+  ];
+}
+
+
+
+
+
+

generated/modules/traveldroid/apps/zsh.nix

+
+

+This sets up the zsh in the terminal +

+
+
{ lib, config, pkgs, flakeRoot, ... }:
+
+let
+  # Default username fallback
+  username = config.defaultUser or "henrov";
+  # Path to optional per-user generated zshrc
+  generatedZsh = "${flakeRoot}/generated/.config/zsh/.zshrc";
+in
+{
+  #################################
+  # Install Zsh, Oh My Zsh, and Starship system-wide
+  #################################
+  environment.systemPackages = with pkgs; [
+    zsh
+    oh-my-zsh
+    starship
+  ];
+
+  #################################
+  # Set Zsh to use ~/.config/zsh as its config directory
+  #################################
+  environment.etc."zshenv".text = ''
+    export ZDOTDIR=$HOME/.config/zsh
+  '';
+
+  #################################
+  # Deploy global zshrc for all users
+  #################################
+  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
+
+    # Load optional per-user generated zshrc if it exists
+    [ -f "${generatedZsh}" ] && source "${generatedZsh}"
+
+    # Initialize Starship prompt
+    eval "$(starship init zsh)"
+  '';
+
+  #################################
+  # Set Zsh as default login shell for the user via Home Manager
+  #################################
+  home-manager.users = {
+    ${username} = {
+      programs.zsh.enable = true;
+
+      # Include the generated zshrc if you want
+      home.file.".config/zsh/.zshrc".source = generatedZsh;
+      };
+  };
+}
+
+
+
+
+
+
+

generated/modules/traveldroid/desktop

+
+
+
+

generated/modules/traveldroid/desktop/fonts.nix

+
+

+This file installs and configures fonts +

+
+
{ lib, pkgs, config, ... }:
+
+{
+    fonts.packages = with pkgs; [
+      nerd-fonts.iosevka
+      nerd-fonts.fira-code
+      nerd-fonts.jetbrains-mono
+    ];
+}
+
+
+
+
+
+

generated/modules/traveldroid/desktop/gtk.nix

+
+

+Setting up GTK +

+
+
{ pkgs, config, lib, ... }:
+
+let
+  username = config.defaultUser or "henrov";
+in
+{
+  environment.systemPackages = with pkgs; [
+    gtk3
+    gtk4
+  ];
+
+  home-manager.users."${username}" = {
+    gtk = {
+      enable = true;
+    };
+  };
+}
+
+
+
+
+
+

generated/modules/traveldroid/desktop/hyprland.nix

+
+

+Setting up Hyprland +

+
+
{ 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
+  environment.systemPackages = [ hyprlandPkg ];
+
+  # Home Manager user configuration
+  home-manager.users = {
+    ${username} = {
+      home.file = {
+        ".config/hypr/animations.conf"     = { source = "${assetPath}/animations.conf"; force = true; };
+        ".config/hypr/behaviour.conf"     = { source = "${assetPath}/behaviour.conf"; force = true; };
+        ".config/hypr/bindings.conf"      = { source = "${assetPath}/bindings.conf"; force = true; };
+        ".config/hypr/exec-once.conf"     = { source = "${assetPath}/exec-once.conf"; force = true; };
+        ".config/hypr/hypridle.conf"      = { source = "${assetPath}/hypridle.conf";  force = true; };
+        ".config/hypr/hyprland.conf"      = { source = "${assetPath}/hyprland.conf"; force = true; };
+        ".config/hypr/hyprlock.conf"      = { source = "${assetPath}/hyprlock.conf";  force = true; };
+        ".config/hypr/layer-rules.conf"   = { source = "${assetPath}/layer-rules.conf"; force = true; };
+        ".config/hypr/layout.conf"        = { source = "${assetPath}/layout.conf"; force = true; };
+        ".config/hypr/monitor-rules.conf" = { source = "${assetPath}/monitor-rules.conf"; force = true; };
+        ".config/hypr/scripts/layout-selector.sh" = { source = "${assetPath}/scripts/layout-selector.sh"; executable = true;  force = true; };
+        ".config/hypr/theming.css"        = { source = "${assetPath}/theming.css"; force = true; };
+        ".config/hypr/window-rules.conf"  = { source = "${assetPath}/window-rules.conf"; force = true; };
+        ".config/hypr/workspace-rules.conf" = { source = "${assetPath}/workspace-rules.conf"; force = true; };
+      };
+    };
+  };
+}
+
+
+
+
+
+

generated/modules/traveldroid/desktop/stylix.nix

+
+
+
{ 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;
+      };
+    };
+  };
+}
+
+
+
+
+
+

generated/modules/traveldroid/desktop/wallpaper.nix

+
+

+Setting up wallpaper engine + wallpaper gui +

+
+
{ 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" ];
+  };
+}
+
+
+
+
+
+

generated/modules/traveldroid/desktop/waybar.nix

+
+

+This file installs and configures waybar +

+
+
{ lib, config, pkgs, flakeRoot, ... }:
+let
+  # Use the config option defaultUser directly, fallback to "henrov"
+  username = config.defaultUser or "henrov";
+  assetPath = "${flakeRoot}/generated/.config/waybar";
+in
+{
+  # Install Waybar system-wide
+  environment.systemPackages = [ pkgs.waybar ];
+
+  home-manager.users = {
+      ${username} = {
+        home.file = {
+          ".config/waybar/config" = {
+            text = builtins.readFile "${assetPath}/config";
+            force = true;
+          };
+          ".config/waybar/style.css" = {
+            text = builtins.replaceStrings ["henrov"] [username] (builtins.readFile "${assetPath}/style.css");
+            force = true;
+          };
+          ".config/waybar/scripts/bluetooth-status.sh" = {
+            text = builtins.readFile "${assetPath}/scripts/bluetooth-status.sh";
+            force = true;
+            executable = true;
+          };
+          ".config/waybar/scripts/hypr-workspaces.sh" = {
+            text = builtins.readFile "${assetPath}/scripts/hypr-workspaces.sh";
+            force = true;
+            executable = true;
+          };
+          ".config/waybar/scripts/hypr-workspacesmenu.sh" = {
+            text = builtins.readFile "${assetPath}/scripts/hypr-workspacesmenu.sh";
+            force = true;
+            executable = true;
+          };
+        };
+      };
+    };
+
+  # Systemd user service for Waybar
+  systemd.user.services.waybar = {
+    description = "Waybar for Hyprland";
+    after = [ "graphical-session.target" ];
+
+    serviceConfig = {
+      ExecStart = "${pkgs.waybar}/bin/waybar";
+      Restart = "always";
+      Environment = ''
+        WAYLAND_DISPLAY=${config.environment.sessionVariables.WAYLAND_DISPLAY or "wayland-0"}
+        XDG_CURRENT_DESKTOP=Hyprland
+      '';
+    };
+
+    wantedBy = [ "default.target" ];
+  };
+}
+
+
+
+
+
+

generated/modules/traveldroid/desktop/wayland.nix

+
+
+
{ 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";
+  };
+}
+
+
+
+
+
+

generated/modules/traveldroid/desktop/xdg.nix

+
+

+This sets the XDG implementation +

+
+
{ lib, config, pkgs, flakeRoot, ... }:
+
+let
+  # Use the config option defaultUser directly, fallback to "henrov"
+  username = config.defaultUser or "henrov";
+
+  # Portal backends
+  basePortal = pkgs.xdg-desktop-portal-gtk;    # full portal implementation
+  hyprlandPortal = pkgs.xdg-desktop-portal-hyprland;  # Hyprland screencast
+in
+{
+  #################################
+  # Enable XDG desktop portals system-wide
+  #################################
+  xdg.portal.enable = true;
+
+  # Base + Hyprland portals
+  xdg.portal.extraPortals = [ basePortal hyprlandPortal ];
+
+  # Map screencast interface explicitly to Hyprland
+  xdg.portal.config = {
+    "org.freedesktop.impl.portal.Screencast".backend = "hyprland";
+  };
+
+  #################################
+  # Install portal packages system-wide
+  #################################
+  environment.systemPackages = [
+    basePortal
+    hyprlandPortal
+  ];
+
+  #################################
+  # Home Manager user configuration
+  #################################
+  home-manager.users = {
+    ${username} = {
+      home.packages = [
+        basePortal
+        hyprlandPortal
+      ];
+    };
+  };
+}
+
+
+
+
+
+
+

generated/modules/traveldroid/system

+
+
+
+

generated/modules/traveldroid/system/audio.nix

+
+
+
{ lib, config, pkgs, ... }:
+
+{
+  ############################
+  # Audio system
+  ############################
+  environment.systemPackages = with pkgs; [
+    pulseaudio       # PulseAudio daemon
+    pavucontrol      # GUI mixer
+    pamixer          # CLI mixer
+  ];
+}
+
+
+
+
+
+

generated/modules/traveldroid/system/base-colors.nix

+
+
+
{ config, pkgs, flakeRoot, ... }:
+let
+  username = "henrov";  # Replace with your username if needed
+in
+{
+  home-manager.users = {
+    ${username} = {
+      home.file = {
+        ".config/shared/colors.css" = {
+          text = builtins.readFile "${flakeRoot}/generated/.config/shared/colors.css";
+          force = true;
+        };
+      };
+    };
+  };
+}
+
+
+
+
+
+

generated/modules/traveldroid/system/bluetooth.nix

+
+
+
{ lib, config, pkgs, home-manager, ... }:
+
+let
+  username = config.defaultUser or "henrov";
+in
+{
+  ############################
+  # Bluetooth daemon
+  ############################
+  hardware.bluetooth = {
+    enable      = true;
+    powerOnBoot = true;
+    package     = pkgs.bluez;
+  };
+}
+
+
+
+
+
+

generated/modules/traveldroid/system/dbus.nix

+
+

+This sets the dbus implementation +

+
+
{ 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
+}
+
+
+
+
+
+

generated/modules/traveldroid/system/gnome-keyring.nix

+
+

+This sets the dbus implementation +

+
+
{ 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;
+
+
+}
+
+
+
+
+
+

generated/modules/traveldroid/system/login-tuigreet.nix

+
+

+This sets up tuigreeter which is not fancy but imo fits the aesthetic I am aiming for +

+
+
{ config, pkgs, lib, ... }:
+
+let
+  tuigreetBin = "${pkgs.tuigreet}/bin/tuigreet";
+  sessionsDir = "${pkgs.hyprland}/share/wayland-sessions";
+in
+{
+  #################################
+  # Greetd (tuigreet)
+  #################################
+
+  services.greetd = {
+    enable = true;
+
+    settings = {
+      default_session = {
+        command = ''
+          ${tuigreetBin} \
+            --time \
+            --remember \
+            --remember-session \
+            --sessions ${sessionsDir} \
+            --cmd "start-hyprland"
+        '';
+        user = "greeter";
+      };
+    };
+  };
+
+  #################################
+  # Fix TTY / boot noise issues
+  #################################
+
+  systemd.services.greetd.serviceConfig = {
+    Type = "idle";
+    StandardInput = "tty";
+    StandardOutput = "tty";
+    StandardError = "journal";
+
+    # Prevent boot log spam on tty
+    TTYReset = true;
+    TTYVHangup = true;
+    TTYVTDisallocate = true;
+  };
+}
+
+
+
+
+
+

generated/modules/traveldroid/system/networking.nix

+
+

+This sets the networking. +

+
+
{ lib, config, pkgs, ... }:
+
+{
+  #################################
+  # Networking core
+  #################################
+  networking = {
+    # Let DHCP be default unless overridden elsewhere
+    useDHCP = lib.mkDefault true;
+
+    # Hostname comes from host.nix, do NOT redefine here
+
+    #################################
+    # 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;
+    };
+
+    #################################
+    # Firewall
+    #################################
+    firewall = {
+      enable = true;
+      # KDE Connect support
+      allowedTCPPortRanges = [
+        { from = 1714; to = 1764; }
+      ];
+      allowedUDPPortRanges = [
+        { from = 1714; to = 1764; }
+      ];
+    };
+  };
+
+  #################################
+  # System packages
+  #################################
+  environment.systemPackages = [
+    pkgs.networkmanager
+    pkgs.linux-firmware
+    pkgs.networkmanagerapplet
+  ];
+}
+
+
+
+
+
+

generated/modules/traveldroid/system/nix.nix

+
+
+
{ lib, config, ... }:
+
+{
+    nix.settings = {
+      experimental-features = [ "nix-command" "flakes" ];
+      download-buffer-size = 536870912; # 512 MB
+      cores = 2;
+      max-jobs = 1;
+    };
+}
+
+
+
+
+
+

generated/modules/traveldroid/system/printing.nix

+
+

+This sets the dbus implementation +

+
+
{ 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
+  ];
+}
+
+
+
+
+
+
+

generated/users

+
+
+
+

generated/users/

+
+

+This is the default user, just search and replace henrov another name if you want to change +

+
+
{ 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" ];
+    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";
+      };
+    };
+  };
+}
+
+
+
+
+
+
+

These are all the prepared config files

+
+
+
+

generated/.config/emacs/early-init.el

+

This contaions emacs

@@ -1798,9 +2181,9 @@ package-archive-priorities '(("gnu" . 99)
-
-

generated/.config/emacs/init.el

-
+
+

generated/.config/emacs/init.el

+

This contaions emacs

@@ -2210,111 +2593,9 @@ the top of the file."
-
-
-

generated/modules/traveldroid/desktop

-
-
-
-

generated/modules/traveldroid/desktop/fonts.nix

-
-

-This file installs and configures fonts -

-
-
{ lib, pkgs, config, ... }:
-
-{
-    fonts.packages = with pkgs; [
-      nerd-fonts.iosevka
-      nerd-fonts.fira-code
-      nerd-fonts.jetbrains-mono
-    ];
-}
-
-
-
-
-
-

generated/modules/traveldroid/desktop/gtk.nix

-
-

-Setting up GTK -

-
-
{ pkgs, config, lib, ... }:
-
-let
-  username = config.defaultUser or "henrov";
-in
-{
-  environment.systemPackages = with pkgs; [
-    gtk3
-    gtk4
-  ];
-
-  home-manager.users."${username}" = {
-    gtk = {
-      enable = true;
-    };
-  };
-}
-
-
-
-
-
-

generated/modules/traveldroid/desktop/hyprland.nix

-
-

-Setting up Hyprland -

-
-
{ 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
-  environment.systemPackages = [ hyprlandPkg ];
-
-  # Home Manager user configuration
-  home-manager.users = {
-    ${username} = {
-      home.file = {
-        ".config/hypr/animations.conf"     = { source = "${assetPath}/animations.conf"; force = true; };
-        ".config/hypr/behaviour.conf"     = { source = "${assetPath}/behaviour.conf"; force = true; };
-        ".config/hypr/bindings.conf"      = { source = "${assetPath}/bindings.conf"; force = true; };
-        ".config/hypr/exec-once.conf"     = { source = "${assetPath}/exec-once.conf"; force = true; };
-        ".config/hypr/hypridle.conf"      = { source = "${assetPath}/hypridle.conf";  force = true; };
-        ".config/hypr/hyprland.conf"      = { source = "${assetPath}/hyprland.conf"; force = true; };
-        ".config/hypr/hyprlock.conf"      = { source = "${assetPath}/hyprlock.conf";  force = true; };
-        ".config/hypr/layer-rules.conf"   = { source = "${assetPath}/layer-rules.conf"; force = true; };
-        ".config/hypr/layout.conf"        = { source = "${assetPath}/layout.conf"; force = true; };
-        ".config/hypr/monitor-rules.conf" = { source = "${assetPath}/monitor-rules.conf"; force = true; };
-        ".config/hypr/scripts/layout-selector.sh" = { source = "${assetPath}/scripts/layout-selector.sh"; executable = true;  force = true; };
-        ".config/hypr/theming.css"        = { source = "${assetPath}/theming.css"; force = true; };
-        ".config/hypr/window-rules.conf"  = { source = "${assetPath}/window-rules.conf"; force = true; };
-        ".config/hypr/workspace-rules.conf" = { source = "${assetPath}/workspace-rules.conf"; force = true; };
-      };
-    };
-  };
-}
-
-
-
-
-
-

.config/hypr/animations.conf

-
+
+

generated/.config/hypr/animations.conf

+

These are config files for .config/hypr

@@ -2335,9 +2616,9 @@ animations {
-
-

.config/hypr/behaviour.conf

-
+
+

generated/.config/hypr/behaviour.conf

+

These are config files for .config/hypr

@@ -2351,9 +2632,9 @@ These are config files for .config/hypr
-
-

.config/hypr/bindings.conf

-
+
+

generated/.config/hypr/bindings.conf

+

These are config files for .config/hypr

@@ -2510,9 +2791,9 @@ bind = , workspace, exec, ~/.config/hypr/scripts/set-workspace-wallpaper.sh
-
-

.config/hypr/exec-once.conf

-
+
+

generated/.config/hypr/exec-once.conf

+

These are config files for .config/hypr

@@ -2531,9 +2812,9 @@ exec-once = nextcloud --background
-
-

.config/hypr/hypridle.conf

-
+
+

generated/.config/hypr/hypridle.conf

+

These are config files for .config/hypr

@@ -2558,9 +2839,9 @@ listener {
-
-

.config/hypr/hyprland.conf

-
+
+

generated/.config/hypr/hyprland.conf

+

These are config files for .config/hypr

@@ -2606,9 +2887,9 @@ misc {
-
-

.config/hypr/hyprlock.conf

-
+
+

generated/.config/hypr/hyprlock.conf

+

These are config files for .config/hypr

@@ -2649,9 +2930,9 @@ label {
-
-

.config/hypr/layer-rules.conf

-
+
+

generated/.config/hypr/layer-rules.conf

+

These are config files for .config/hypr

@@ -2666,9 +2947,9 @@ layerrule = blur on, ignore_alpha 1, match:namespace swaync-notification-window
-
-

.config/hypr/layout.conf

-
+
+

generated/.config/hypr/layout.conf

+

These are config files for .config/hypr

@@ -2678,9 +2959,9 @@ These are config files for .config/hypr
-
-

.config/hypr/monitor-rules.conf

-
+
+

generated/.config/hypr/monitor-rules.conf

+

These are config files for .config/hypr

@@ -2691,9 +2972,9 @@ monitor=DP-1,3840x1080@144,1920x0,1
-
-

.config/hypr/scripts/layout-selector.sh

-
+
+

generated/.config/hypr/scripts/layout-selector.sh

+

These are config files for .config/hypr/scripts

@@ -2736,9 +3017,9 @@ hyprctl dispatch oSD "Layout: $LAYOUT_NAME" 2000
-
-

.config/hypr/theming.css

-
+
+

generated/.config/hypr/theming.css

+

These are config files for .config/hypr

@@ -2787,9 +3068,9 @@ decoration {
-
-

.config/hypr/window-rules.conf

-
+
+

generated/.config/hypr/window-rules.conf

+

These are config files for .config/hypr

@@ -2827,9 +3108,9 @@ windowrule {
-
-

.config/hypr/workspace-rules.conf

-
+
+

generated/.config/hypr/workspace-rules.conf

+

These are config files for .config/hypr

@@ -2855,199 +3136,341 @@ workspace = 10
-
-

generated/modules/traveldroid/desktop/wallpaper.nix

-
+
+

generated/.config/shared/colors.css

+

-Setting up wallpaper engine + wallpaper gui +A file containing colopr variables

-
{ lib, config, pkgs, flakeRoot, ... }:
+
/* Catppuccin Mocha Palette */
+@define-color crust      #11111b;
+@define-color mantle     #181825;
+@define-color base       #1e1e2e;
+@define-color base-alpha rgba(30, 30, 46, 0.9);
 
-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 ];
+@define-color surface0   #313244;
+@define-color surface1   #45475a;
+@define-color surface2   #585b70;
 
-  # 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;
-        };
-      };
-    };
-  };
+@define-color overlay0   #6c7086;
+@define-color overlay1   #7f849c;
+@define-color overlay2   #9399b2;
 
-  # 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" ];
-  };
+@define-color subtext0   #a6adc8;
+@define-color subtext1   #bac2de;
+@define-color text       #cdd6f4;
 
-  # 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" ];
-  };
-}
+@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;
 
-
-

generated/modules/traveldroid/desktop/stylix.nix

-
+
+

generated/.config/starship.toml

+
+

+These are config files for Starship +

-
{ lib, config, pkgs, flakeRoot, stylix, ... }:
+
"$schema" = 'https://starship.rs/config-schema.json'
 
-let
-  username   = config.defaultUser or "henrov";
-  moduleName = "stylix";
+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"""
 
-  assetPath  = "${flakeRoot}/generated/.config/${moduleName}";
+palette = 'catppuccin_mocha'
 
-  stylixConfFile = "${assetPath}/stylix.conf";
-  stylixConf =
-    if builtins.pathExists stylixConfFile
-    then builtins.readFile stylixConfFile
-    else "";
+[os]
+disabled = false
+style = "bg:red fg:crust"
 
-  cursorName = "phinger-cursors-light";
-  cursorSize = 24;
-in
-{
-  #################################
-  # Enable Stylix module
-  #################################
-  imports = [
-    stylix.nixosModules.stylix
-  ];
+[os.symbols]
+Windows = ""
+Ubuntu = "󰕈"
+SUSE = ""
+Raspbian = "󰐿"
+Mint = "󰣭"
+Macos = "󰀵"
+Manjaro = ""
+Linux = "󰌽"
+Gentoo = "󰣨"
+Fedora = "󰣛"
+Alpine = ""
+Amazon = ""
+Android = ""
+AOSC = ""
+Arch = "󰣇"
+Artix = "󰣇"
+CentOS = ""
+Debian = "󰣚"
+Redhat = "󱄛"
+RedHatEnterprise = "󱄛"
 
-  #################################
-  # System packages
-  #################################
-  environment.systemPackages = [
-    pkgs.feh
-    pkgs.st
-  ];
+[username]
+show_always = true
+style_user = "bg:red fg:crust"
+style_root = "bg:red fg:crust"
+format = '[ $user]($style)'
 
-  #################################
-  # Stylix system config
-  #################################
-  stylix = {
-    enable = true;
+[directory]
+style = "bg:peach fg:crust"
+format = "[ $path ]($style)"
+truncation_length = 3
+truncation_symbol = "…/"
 
-    base16Scheme = "${flakeRoot}/assets/traveldroid/theming/stylix/catppuccin-mocha.yaml";
-    polarity = "dark";
+[directory.substitutions]
+"Documents" = "󰈙 "
+"Downloads" = " "
+"Music" = "󰝚 "
+"Pictures" = " "
+"Developer" = "󰲋 "
 
-    targets = {
-      gtk.enable = true;
-      qt.enable  = true;
-    };
+[git_branch]
+symbol = ""
+style = "bg:yellow"
+format = '[[ $symbol $branch ](fg:crust bg:yellow)]($style)'
 
-    cursor = {
-      name    = cursorName;
-      package = pkgs.phinger-cursors;
-      size    = cursorSize;
-    };
-  };
+[git_status]
+style = "bg:yellow"
+format = '[[($all_status$ahead_behind )](fg:crust bg:yellow)]($style)'
 
-  #################################
-  # Home Manager
-  #################################
-  home-manager.users = {
-    "${username}" = {
+[nodejs]
+symbol = ""
+style = "bg:green"
+format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
 
-      #################################
-      # ONLY custom file (safe)
-      #################################
-      home.file.".config/stylix/stylix.conf" = {
-        text  = stylixConf;
-        force = true;
-      };
+[c]
+symbol = " "
+style = "bg:green"
+format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
 
-      #################################
-      # 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;
-      };
-    };
-  };
-}
+[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 = 45000
+
+[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"
 
-
-

.config/stylix/stylix.conf

-
+
+

generated/.config/stylix/stylix.conf

+

These are config files for .config/stylix

@@ -3084,9 +3507,9 @@ icons = {
-
-

.config/stylix/palette.json

-
+
+

generated/.config/stylix/palette.json

+

These are config files for .config/stylix

@@ -3116,9 +3539,9 @@ These are config files for .config/stylix
-
-

.config/stylix/palette.html

-
+
+

generated/.config/stylix/palette.html

+

These are config files for .config/stylix

@@ -3196,77 +3619,9 @@ These are config files for .config/stylix
-
-

generated/modules/traveldroid/desktop/waybar.nix

-
-

-This file installs and configures waybar -

-
-
{ lib, config, pkgs, flakeRoot, ... }:
-let
-  # Use the config option defaultUser directly, fallback to "henrov"
-  username = config.defaultUser or "henrov";
-  assetPath = "${flakeRoot}/generated/.config/waybar";
-in
-{
-  # Install Waybar system-wide
-  environment.systemPackages = [ pkgs.waybar ];
-
-  home-manager.users = {
-      ${username} = {
-        home.file = {
-          ".config/waybar/config" = {
-            text = builtins.readFile "${assetPath}/config";
-            force = true;
-          };
-          ".config/waybar/style.css" = {
-            text = builtins.replaceStrings ["henrov"] [username] (builtins.readFile "${assetPath}/style.css");
-            force = true;
-          };
-          ".config/waybar/scripts/bluetooth-status.sh" = {
-            text = builtins.readFile "${assetPath}/scripts/bluetooth-status.sh";
-            force = true;
-            executable = true;
-          };
-          ".config/waybar/scripts/hypr-workspaces.sh" = {
-            text = builtins.readFile "${assetPath}/scripts/hypr-workspaces.sh";
-            force = true;
-            executable = true;
-          };
-          ".config/waybar/scripts/hypr-workspacesmenu.sh" = {
-            text = builtins.readFile "${assetPath}/scripts/hypr-workspacesmenu.sh";
-            force = true;
-            executable = true;
-          };
-        };
-      };
-    };
-
-  # Systemd user service for Waybar
-  systemd.user.services.waybar = {
-    description = "Waybar for Hyprland";
-    after = [ "graphical-session.target" ];
-
-    serviceConfig = {
-      ExecStart = "${pkgs.waybar}/bin/waybar";
-      Restart = "always";
-      Environment = ''
-        WAYLAND_DISPLAY=${config.environment.sessionVariables.WAYLAND_DISPLAY or "wayland-0"}
-        XDG_CURRENT_DESKTOP=Hyprland
-      '';
-    };
-
-    wantedBy = [ "default.target" ];
-  };
-}
-
-
-
-
-
-

.config/waybar/config

-
+
+

generated/.config/waybar/config

+

These are config files for waybar

@@ -3484,9 +3839,9 @@ These are config files for waybar
-
-

.config/waybar/style.css

-
+
+

generated/.config/waybar/style.css

+

This file contains all css for waybar

@@ -3679,9 +4034,9 @@ activeworkspaces:not(.active) {
-
-

.config/waybar/scripts/bluetooth-status.sh

-
+
+

generated/.config/waybar/scripts/bluetooth-status.sh

+

These are config files for waybar

@@ -3707,9 +4062,9 @@ printf '{"text": "%s", "tooltip": "%s"}\n' "$icon" "$tooltip"
-
-

.config/waybar/scripts/hypr-workspaces.sh

-
+
+

generated/.config/waybar/scripts/hypr-workspaces.sh

+

These are config files for waybar

@@ -3739,9 +4094,9 @@ jq -c -n \
-
-

.config/waybar/scripts/hypr-workspacesmenu.sh

-
+
+

generated/.config/waybar/scripts/hypr-workspacesmenu.sh

+

These are config files for waybar

@@ -3758,9 +4113,9 @@ hyprctl dispatch focuswindow address:$addr
-
-

.config/waypaper/config.ini

-
+
+

generated/.config/waypaper/config.ini

+

These are config files for waypaper

@@ -3797,487 +4152,14 @@ keybindings = ~/.config/waypaper/keybindings.ini
-
-

generated/modules/traveldroid/desktop/wayland.nix

-
-
-
{ 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";
-  };
-}
-
-
-
-
-
-

generated/modules/traveldroid/desktop/xdg.nix

-
-

-This sets the XDG implementation -

-
-
{ lib, config, pkgs, flakeRoot, ... }:
-
-let
-  # Use the config option defaultUser directly, fallback to "henrov"
-  username = config.defaultUser or "henrov";
-
-  # Portal backends
-  basePortal = pkgs.xdg-desktop-portal-gtk;    # full portal implementation
-  hyprlandPortal = pkgs.xdg-desktop-portal-hyprland;  # Hyprland screencast
-in
-{
-  #################################
-  # Enable XDG desktop portals system-wide
-  #################################
-  xdg.portal.enable = true;
-
-  # Base + Hyprland portals
-  xdg.portal.extraPortals = [ basePortal hyprlandPortal ];
-
-  # Map screencast interface explicitly to Hyprland
-  xdg.portal.config = {
-    "org.freedesktop.impl.portal.Screencast".backend = "hyprland";
-  };
-
-  #################################
-  # Install portal packages system-wide
-  #################################
-  environment.systemPackages = [
-    basePortal
-    hyprlandPortal
-  ];
-
-  #################################
-  # Home Manager user configuration
-  #################################
-  home-manager.users = {
-    ${username} = {
-      home.packages = [
-        basePortal
-        hyprlandPortal
-      ];
-    };
-  };
-}
-
-
-
-
-
-
-

generated/modules/traveldroid/system

-
-
-
-

generated/modules/traveldroid/system/audio.nix

-
-
-
{ lib, config, pkgs, ... }:
-
-{
-  ############################
-  # Audio system
-  ############################
-  environment.systemPackages = with pkgs; [
-    pulseaudio       # PulseAudio daemon
-    pavucontrol      # GUI mixer
-    pamixer          # CLI mixer
-  ];
-}
-
-
-
-
-
-

generated/modules/traveldroid/system/base-colors.nix

-
-
-
{ config, pkgs, flakeRoot, ... }:
-let
-  username = "henrov";  # Replace with your username if needed
-in
-{
-  home-manager.users = {
-    ${username} = {
-      home.file = {
-        ".config/shared/colors.css" = {
-          text = builtins.readFile "${flakeRoot}/generated/.config/shared/colors.css";
-          force = true;
-        };
-      };
-    };
-  };
-}
-
-
-
-
-
-

generated/modules/traveldroid/system/bluetooth.nix

-
-
-
{ lib, config, pkgs, home-manager, ... }:
-
-let
-  username = config.defaultUser or "henrov";
-in
-{
-  ############################
-  # Bluetooth daemon
-  ############################
-  hardware.bluetooth = {
-    enable      = true;
-    powerOnBoot = true;
-    package     = pkgs.bluez;
-  };
-}
-
-
-
-
-
-

generated/modules/traveldroid/system/dbus.nix

-
-

-This sets the dbus implementation -

-
-
{ 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
-}
-
-
-
-
-
-

generated/modules/traveldroid/system/gnome-keyring.nix

-
-

-This sets the dbus implementation -

-
-
{ 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;
-
-
-}
-
-
-
-
-
-

generated/modules/traveldroid/system/login-tuigreet.nix

-
-

-This sets up tuigreeter which is not fancy but imo fits the aesthetic I am aiming for -

-
-
{ config, pkgs, lib, ... }:
-
-let
-  tuigreetBin = "${pkgs.tuigreet}/bin/tuigreet";
-  sessionsDir = "${pkgs.hyprland}/share/wayland-sessions";
-in
-{
-  #################################
-  # Greetd (tuigreet)
-  #################################
-
-  services.greetd = {
-    enable = true;
-
-    settings = {
-      default_session = {
-        command = ''
-          ${tuigreetBin} \
-            --time \
-            --remember \
-            --remember-session \
-            --sessions ${sessionsDir} \
-            --cmd "start-hyprland"
-        '';
-        user = "greeter";
-      };
-    };
-  };
-
-  #################################
-  # Fix TTY / boot noise issues
-  #################################
-
-  systemd.services.greetd.serviceConfig = {
-    Type = "idle";
-    StandardInput = "tty";
-    StandardOutput = "tty";
-    StandardError = "journal";
-
-    # Prevent boot log spam on tty
-    TTYReset = true;
-    TTYVHangup = true;
-    TTYVTDisallocate = true;
-  };
-}
-
-
-
-
-
-

generated/modules/traveldroid/system/networking.nix

-
-

-This sets the networking. -

-
-
{ lib, config, pkgs, ... }:
-
-{
-  #################################
-  # Networking core
-  #################################
-  networking = {
-    # Let DHCP be default unless overridden elsewhere
-    useDHCP = lib.mkDefault true;
-
-    # Hostname comes from host.nix, do NOT redefine here
-
-    #################################
-    # 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;
-    };
-
-    #################################
-    # Firewall
-    #################################
-    firewall = {
-      enable = true;
-      # KDE Connect support
-      allowedTCPPortRanges = [
-        { from = 1714; to = 1764; }
-      ];
-      allowedUDPPortRanges = [
-        { from = 1714; to = 1764; }
-      ];
-    };
-  };
-
-  #################################
-  # System packages
-  #################################
-  environment.systemPackages = [
-    pkgs.networkmanager
-    pkgs.linux-firmware
-    pkgs.networkmanagerapplet
-  ];
-}
-
-
-
-
-
-

generated/modules/traveldroid/system/nix.nix

-
-
-
{ lib, config, ... }:
-
-{
-    nix.settings = {
-      experimental-features = [ "nix-command" "flakes" ];
-      download-buffer-size = 536870912; # 512 MB
-      cores = 2;
-      max-jobs = 1;
-    };
-}
-
-
-
-
-
-

generated/modules/traveldroid/system/printing.nix

-
-

-This sets the dbus implementation -

-
-
{ 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
-  ];
-}
-
-
-
-
-
-
-

generated/users

-
-
-
-

generated/users/

-
-

-This is the default user, just search and replace henrov another name if you want to change -

-
-
{ 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" ];
-    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.file.".config/zsh/.zshrc".source = generatedZsh;
-
-      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";
-      };
-    };
-  };
-}
-
-
-
-
-
-
-

These are all the prepared config files

-
-
-
-

.config/waypaper/config.ini

-
+
+

generated/.config/waypaper/config.ini

+

These are config files for .config/waypaper

-
[Settings]
+
[Settings]
 language = en
 backend = awww
 folder = ~/Wallpapers/pictures
@@ -4304,16 +4186,163 @@ mpvpaper_options =
 use_xdg_state = False
 stylesheet = /home/henrov/.config/waypaper/style.css
 keybindings = ~/.config/waypaper/keybindings.ini
-
 
-
-

.config/zed/settings.json

-
+
+

generated/.config/wofi/config

+

-These are config files for .config/zed +These are config files for .config/wofi +

+
+
[global]
+allow_images = true
+allow_markup = true
+
+# Which modes are active
+show_drun = true:apps,false:others
+show_run = true
+show_files = false
+show_windowed = false
+show_dmenu = false
+show_ssh = false
+show_power = false
+
+# Layout / scrolling
+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
+
+# Labels
+show_labels = true
+label_search = true
+label_run = Run
+label_files = Files
+label_windowed = Windows
+label_drun = Applications
+label_dmenu = Commands
+label_ssh = SSH
+label_power = Power
+
+prompt = > ...
+
+
+
+
+
+

generated/.config/wofi/style.css

+
+

+These are config files for .config/wofi +

+
+
@import url("file:///home/henrov/.config/shared/colors.css");
+
+/* Global styles */
+   * {
+    background-color: transparent;
+    color: @text;
+    font-family: "JetBrainsMono Nerd Font", monospace;
+    font-size: 12pt;
+}
+
+/* --- DRUN menu (full size) --- */
+#main {
+    background:
+        linear-gradient(@base-alpha, @base-alpha) padding-box, /* Inner fill */
+        linear-gradient(45deg, @blue, @green) border-box;      /* Gradient border */
+    border: 2px solid transparent; /* required for border-box layering */
+    border-radius: 30px;
+    padding: 20px;
+    box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
+    width: 800px;
+    height: 600px;
+}
+
+/* --- DMENU menu --- */
+#dmenu {
+    background:
+        linear-gradient(@base-alpha, @base-alpha) padding-box,
+        linear-gradient(45deg, @blue, @green) border-box;
+    border: 2px solid transparent;
+    border-radius: 30px;
+    padding: 10px; /* smaller padding for half-height */
+    box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
+    width: 800px;
+    height: 150px;
+}
+
+/* Input field */
+#input {
+    background-color: @surface0;
+    color: @text;
+    border: 1px solid @surface1;
+    border-radius: 30px;
+    padding: 5px 10px;
+    margin-bottom: 10px;
+}
+
+/* Entries */
+#entry {
+    background-color: rgba(200,200,200,0.2);
+    color: @text;
+    border-radius: 30px;
+    padding: 5px 10px;
+    margin: 2px 0;
+    border: 2px solid transparent; /* needed for gradient on selection */
+    transition: all 0.2s ease;
+}
+
+/* Entry focus (hover or typing) */
+#entry:focus {
+    background:
+        linear-gradient(@base-alpha, @base-alpha) padding-box,
+        linear-gradient(45deg, @blue, @green) border-box;
+    color: @lavender;
+    border-radius: 30px;
+}
+
+/* Entry selection */
+#entry:selected {
+    background:
+        linear-gradient(@base-alpha, @base-alpha) padding-box,
+        linear-gradient(45deg, @blue, @green) border-box;
+    color: @text;
+    border-radius: 30px;
+}
+
+/* Scrollbar */
+#scrollbar {
+    background-color: @surface0;
+    border-radius: 30px;
+    width: 8px;
+}
+
+#scrollbar.handle {
+    background-color: @blue;
+    border-radius: 30px;
+}
+
+
+
+
+
+

generated/.config/zed/settings.json

+
+

+These are config files for Zed editor

// Zed settings
@@ -4347,44 +4376,25 @@ These are config files for .config/zed
 
-
-

.config/shared/colors.css

-
+
+

generated/.config/zsh/.zshrc

+

-These are config files for .config/wofi +This sets up the zsh in the terminal

-
/* Catppuccin Mocha Palette */
-@define-color crust      #11111b;
-@define-color mantle     #181825;
-@define-color base       #1e1e2e;
-@define-color base-alpha rgba(30, 30, 46, 0.9);
+
# Path to syntax highlighting installed by Nix
+ZSH_SYNTAX_HIGHLIGHTING="${HOME}/.nix-profile/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
 
-@define-color surface0   #313244;
-@define-color surface1   #45475a;
-@define-color surface2   #585b70;
+# Load syntax highlighting if available
+if [ -f "$ZSH_SYNTAX_HIGHLIGHTING" ]; then
+    source "$ZSH_SYNTAX_HIGHLIGHTING"
+fi
 
-@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;
+# Initialize Starship prompt
+if command -v starship >/dev/null 2>&1; then
+    eval "$(starship init zsh)"
+fi
 
@@ -4393,7 +4403,7 @@ These are config files for .config/wofi

Author: Henro Veijer

-

Created: 2026-04-09 do 16:24

+

Created: 2026-04-10 vr 18:20

Validate

diff --git a/Droidnix/README.org b/Droidnix/README.org index 2dd1fff55..b0f25d722 100644 --- a/Droidnix/README.org +++ b/Droidnix/README.org @@ -18,18 +18,17 @@ :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. +Droidnix is a modular, declarative NixOS + Home Manager configuration system. with 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**. +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 folders (=system=, =hyprland=, =mangowc=): NixOS and Home Manager configurations, generated from Org files. +2. Generated files and folders #+title: NixOS Configuration Structure @@ -46,8 +45,7 @@ The =generated/= directory contains all generated configurations, divided into t ** First Setup 1. Clone this repository. 2. Run the setup script: =./setup_droid=. -3. Edit =.generated/.config/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= +3. 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 .#=. --- @@ -58,6 +56,72 @@ The =generated/= directory contains all generated configurations, divided into t :END: The =.assets/= folder contains all static files, such as configs, scripts, and themes. These files are not generated and can be edited directly. +** =generated/assets/2_b_installed.conf= +This is a list of additional apps to install +#+BEGIN_SRC toml :tangle generated/assets/2_b_installed.conf :noweb yes :mkdirp yes :eval never +#packages +_1password-gui +audacity +baobab +bat +blueman +bluez +brave +btop +chromium +cliphist +comma +direnv +duf +delta +eza +fd +file +fzf +git +gparted +grim +handbrake +hyperfine +just +jq +kdePackages.kdeconnect-kde +libreoffice +nextcloud-client +nextcloud-talk-desktop +nix-index +nix-output-monitor +nh +obsidian +onlyoffice-desktopeditors +openssl +postman +python3 +qdirstat +ripgrep +signal-desktop +slurp +spotify +solaar +swappy +tea +todoist +tree +usbutils +vlc +wev +wget +wl-clipboard +wf-recorder +yazu +zed-editor +zoxide + +#flatpaks +eu.betterbird.Betterbird +com.todoist.Todoist +#+END_SRC + * The Actual Code :code: :PROPERTIES: @@ -65,7 +129,7 @@ The =.assets/= folder contains all static files, such as configs, scripts, and t :END: This section contains the Org blocks for tangling Nix code into the generated folders. -** =flake.nix= +** =generated/flake.nix= The Nix flake definition for Droidnix. #+BEGIN_SRC nix :tangle flake.nix :noweb yes :mkdirp yes :eval never { @@ -130,59 +194,47 @@ The Nix flake definition for Droidnix. } #+END_SRC -** =generated/hosts/traveldroid/host.nix= -#+BEGIN_SRC nix :tangle generated/hosts/traveldroid/host.nix :noweb yes :mkdirp yes :eval never -{ lib, config, pkgs, flakeRoot, import-tree, home-manager, ... }: +** =generated/hosts/traveldroid/boot.nix= +#+BEGIN_SRC nix :tangle generated/hosts/traveldroid/boot.nix :noweb yes :mkdirp yes :eval never +{ config, pkgs, lib, flakeRoot, ... }: -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"; + boot.loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + efi.efiSysMountPoint = "/boot"; + timeout = 5; }; - time.timeZone = "Europe/Amsterdam"; + boot.kernelPackages = pkgs.linuxPackages_latest; - ################################# - # 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 + boot.kernelParams = [ + "quiet" + "splash" + "udev.log_level=3" + "rd.systemd.show_status=false" ]; - programs.dconf.enable = true; + 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" ]; + + boot.plymouth = { + enable = true; + }; + + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; } #+END_SRC @@ -240,53 +292,62 @@ in } #+END_SRC -** =generated/hosts/traveldroid/boot.nix= -#+BEGIN_SRC nix :tangle generated/hosts/traveldroid/boot.nix :noweb yes :mkdirp yes :eval never -{ config, pkgs, lib, flakeRoot, ... }: +** =generated/hosts/traveldroid/host.nix= +#+BEGIN_SRC nix :tangle generated/hosts/traveldroid/host.nix :noweb yes :mkdirp yes :eval never +{ lib, config, pkgs, flakeRoot, import-tree, home-manager, ... }: +let + hostname = "traveldroid"; + modulesPath = "${flakeRoot}/generated/modules/${hostname}"; + hostModules = import-tree modulesPath; + allModules = hostModules.imports; +in { - boot.loader = { - systemd-boot.enable = true; - efi.canTouchEfiVariables = true; - efi.efiSysMountPoint = "/boot"; - timeout = 5; + 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"; }; - boot.kernelPackages = pkgs.linuxPackages_latest; + time.timeZone = "Europe/Amsterdam"; - boot.kernelParams = [ - "quiet" - "splash" - "udev.log_level=3" - "rd.systemd.show_status=false" + ################################# + # 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 ]; - 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" ]; - - boot.plymouth = { - enable = true; - }; - - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + programs.dconf.enable = true; } #+END_SRC - -* Following are the imported modules - * generated/traveldroid/modules/apps ** =generated/modules/traveldroid/apps/2_b_installed.nix= @@ -393,53 +454,96 @@ in { } #+END_SRC -** =generated/assets/2_b_installed.conf= -This is a list of additional apps to install -#+BEGIN_SRC toml :tangle generated/assets/2_b_installed.conf :noweb yes :mkdirp yes :eval never -#packages -bluez -blueman -usbutils -todoist -brave -chromium -git -direnv -ripgrep -wget -kdePackages.kdeconnect-kde -_1password-gui -tree -gparted -file -htop -btop -bat -wev -solaar -baobab -duf -zed-editor -eza -z-lua -qdirstat -obsidian -onlyoffice-desktopeditors -postman -tea -python3 -nextcloud-client -nextcloud-talk-desktop -signal-desktop -openssl -audacity -handbrake -spotify -vlc +** =generated/modules/traveldroid/apps/emacs/emacs.nix= +This installs emacs +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/apps/emacs/emacs.nix :noweb yes :mkdirp yes :eval never +{ 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 + }; + }; + }; + }; +} -#flatpaks -eu.betterbird.Betterbird -com.todoist.Todoist #+END_SRC ** =generated/modules/traveldroid/apps/flameshot.nix= @@ -566,290 +670,7 @@ in } #+END_SRC -** =.config/starship.toml= -These are config files for .config -#+BEGIN_SRC toml :tangle generated/.config/starship.toml :noweb yes :mkdirp yes :eval never -"$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 = 45000 - -[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" - -#+END_SRC ** =generated/modules/traveldroid/apps/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 @@ -918,141 +739,7 @@ in } #+END_SRC -** =.config/wofi/config= -These are config files for .config/wofi -#+BEGIN_SRC ini :tangle generated/.config/wofi/config :noweb yes :mkdirp yes :eval never -[global] -allow_images = true -allow_markup = true -# Which modes are active -show_drun = true:apps,false:others -show_run = true -show_files = false -show_windowed = false -show_dmenu = false -show_ssh = false -show_power = false - -# Layout / scrolling -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 - -# Labels -show_labels = true -label_search = true -label_run = Run -label_files = Files -label_windowed = Windows -label_drun = Applications -label_dmenu = Commands -label_ssh = SSH -label_power = Power - -prompt = > ... -#+END_SRC - -** =.config/wofi/style.css= -These are config files for .config/wofi -#+BEGIN_SRC css :tangle generated/.config/wofi/style.css :noweb yes :mkdirp yes :eval never -@import url("file:///home/henrov/.config/shared/colors.css"); - -/* Global styles */ - * { - background-color: transparent; - color: @text; - font-family: "JetBrainsMono Nerd Font", monospace; - font-size: 12pt; -} - -/* --- DRUN menu (full size) --- */ -#main { - background: - linear-gradient(@base-alpha, @base-alpha) padding-box, /* Inner fill */ - linear-gradient(45deg, @blue, @green) border-box; /* Gradient border */ - border: 2px solid transparent; /* required for border-box layering */ - border-radius: 30px; - padding: 20px; - box-shadow: 0 0 20px rgba(0, 0, 0, 0.3); - width: 800px; - height: 600px; -} - -/* --- DMENU menu --- */ -#dmenu { - background: - linear-gradient(@base-alpha, @base-alpha) padding-box, - linear-gradient(45deg, @blue, @green) border-box; - border: 2px solid transparent; - border-radius: 30px; - padding: 10px; /* smaller padding for half-height */ - box-shadow: 0 0 20px rgba(0, 0, 0, 0.3); - width: 800px; - height: 150px; -} - -/* Input field */ -#input { - background-color: @surface0; - color: @text; - border: 1px solid @surface1; - border-radius: 30px; - padding: 5px 10px; - margin-bottom: 10px; -} - -/* Entries */ -#entry { - background-color: rgba(200,200,200,0.2); - color: @text; - border-radius: 30px; - padding: 5px 10px; - margin: 2px 0; - border: 2px solid transparent; /* needed for gradient on selection */ - transition: all 0.2s ease; -} - -/* Entry focus (hover or typing) */ -#entry:focus { - background: - linear-gradient(@base-alpha, @base-alpha) padding-box, - linear-gradient(45deg, @blue, @green) border-box; - color: @lavender; - border-radius: 30px; -} - -/* Entry selection */ -#entry:selected { - background: - linear-gradient(@base-alpha, @base-alpha) padding-box, - linear-gradient(45deg, @blue, @green) border-box; - color: @text; - border-radius: 30px; -} - -/* Scrollbar */ -#scrollbar { - background-color: @surface0; - border-radius: 30px; - width: 8px; -} - -#scrollbar.handle { - background-color: @blue; - border-radius: 30px; -} -#+END_SRC ** =generated/modules/traveldroid/apps/zenbrowser.nix= This installs zen browser @@ -1128,115 +815,737 @@ in } #+END_SRC -** =generated/.config/zsh/.zshrc= -This sets up the zsh in the terminal -#+BEGIN_SRC bash :tangle generated/.config/zsh/.zshrc :noweb yes :mkdirp yes :eval never -# Path to syntax highlighting installed by Nix -ZSH_SYNTAX_HIGHLIGHTING="${HOME}/.nix-profile/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" +* generated/modules/traveldroid/desktop -# Load syntax highlighting if available -if [ -f "$ZSH_SYNTAX_HIGHLIGHTING" ]; then - source "$ZSH_SYNTAX_HIGHLIGHTING" -fi +** =generated/modules/traveldroid/desktop/fonts.nix= +This file installs and configures fonts +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/fonts.nix :noweb yes :mkdirp yes :eval never +{ lib, pkgs, config, ... }: -# Initialize Starship prompt -if command -v starship >/dev/null 2>&1; then - eval "$(starship init zsh)" -fi +{ + fonts.packages = with pkgs; [ + nerd-fonts.iosevka + nerd-fonts.fira-code + nerd-fonts.jetbrains-mono + ]; +} #+END_SRC -** =generated/modules/traveldroid/apps/emacs/emacs.nix= -This installs emacs -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/apps/emacs/emacs.nix :noweb yes :mkdirp yes :eval never -{ config, pkgs, lib, flakeRoot, ... }: +** =generated/modules/traveldroid/desktop/gtk.nix= +Setting up GTK +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/gtk.nix :noweb yes :mkdirp yes :eval never +{ pkgs, config, lib, ... }: 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 + environment.systemPackages = with pkgs; [ + gtk3 + gtk4 ]; - # Home Manager user-specific configuration for your default user + home-manager.users."${username}" = { + gtk = { + enable = true; + }; + }; +} +#+END_SRC + +** =generated/modules/traveldroid/desktop/hyprland.nix= +Setting up Hyprland +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/hyprland.nix :noweb yes :mkdirp yes :eval never +{ 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 + environment.systemPackages = [ hyprlandPkg ]; + + # Home Manager user configuration 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 + ".config/hypr/animations.conf" = { source = "${assetPath}/animations.conf"; force = true; }; + ".config/hypr/behaviour.conf" = { source = "${assetPath}/behaviour.conf"; force = true; }; + ".config/hypr/bindings.conf" = { source = "${assetPath}/bindings.conf"; force = true; }; + ".config/hypr/exec-once.conf" = { source = "${assetPath}/exec-once.conf"; force = true; }; + ".config/hypr/hypridle.conf" = { source = "${assetPath}/hypridle.conf"; force = true; }; + ".config/hypr/hyprland.conf" = { source = "${assetPath}/hyprland.conf"; force = true; }; + ".config/hypr/hyprlock.conf" = { source = "${assetPath}/hyprlock.conf"; force = true; }; + ".config/hypr/layer-rules.conf" = { source = "${assetPath}/layer-rules.conf"; force = true; }; + ".config/hypr/layout.conf" = { source = "${assetPath}/layout.conf"; force = true; }; + ".config/hypr/monitor-rules.conf" = { source = "${assetPath}/monitor-rules.conf"; force = true; }; + ".config/hypr/scripts/layout-selector.sh" = { source = "${assetPath}/scripts/layout-selector.sh"; executable = true; force = true; }; + ".config/hypr/theming.css" = { source = "${assetPath}/theming.css"; force = true; }; + ".config/hypr/window-rules.conf" = { source = "${assetPath}/window-rules.conf"; force = true; }; + ".config/hypr/workspace-rules.conf" = { source = "${assetPath}/workspace-rules.conf"; force = true; }; + }; + }; + }; +} +#+END_SRC + +** =generated/modules/traveldroid/desktop/stylix.nix= +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/stylix.nix :noweb yes :mkdirp yes :eval never +{ 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; + }; + }; + }; +} +#+END_SRC + +** =generated/modules/traveldroid/desktop/wallpaper.nix= +Setting up wallpaper engine + wallpaper gui +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/wallpaper.nix :noweb yes :mkdirp yes :eval never +{ 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; }; - ".emacs.d/init.el" = { - source = "${assetPath}/init.el"; - force = true; # <-- allow overwrite + }; + }; + }; + + # 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" ]; + }; +} +#+END_SRC + +** =generated/modules/traveldroid/desktop/waybar.nix= +This file installs and configures waybar +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/waybar.nix :noweb yes :mkdirp yes :eval never +{ lib, config, pkgs, flakeRoot, ... }: +let + # Use the config option defaultUser directly, fallback to "henrov" + username = config.defaultUser or "henrov"; + assetPath = "${flakeRoot}/generated/.config/waybar"; +in +{ + # Install Waybar system-wide + environment.systemPackages = [ pkgs.waybar ]; + + home-manager.users = { + ${username} = { + home.file = { + ".config/waybar/config" = { + text = builtins.readFile "${assetPath}/config"; + force = true; + }; + ".config/waybar/style.css" = { + text = builtins.replaceStrings ["henrov"] [username] (builtins.readFile "${assetPath}/style.css"); + force = true; + }; + ".config/waybar/scripts/bluetooth-status.sh" = { + text = builtins.readFile "${assetPath}/scripts/bluetooth-status.sh"; + force = true; + executable = true; + }; + ".config/waybar/scripts/hypr-workspaces.sh" = { + text = builtins.readFile "${assetPath}/scripts/hypr-workspaces.sh"; + force = true; + executable = true; + }; + ".config/waybar/scripts/hypr-workspacesmenu.sh" = { + text = builtins.readFile "${assetPath}/scripts/hypr-workspacesmenu.sh"; + force = true; + executable = true; + }; + }; + }; + }; + + # Systemd user service for Waybar + systemd.user.services.waybar = { + description = "Waybar for Hyprland"; + after = [ "graphical-session.target" ]; + + serviceConfig = { + ExecStart = "${pkgs.waybar}/bin/waybar"; + Restart = "always"; + Environment = '' + WAYLAND_DISPLAY=${config.environment.sessionVariables.WAYLAND_DISPLAY or "wayland-0"} + XDG_CURRENT_DESKTOP=Hyprland + ''; + }; + + wantedBy = [ "default.target" ]; + }; +} +#+END_SRC + + + +** =generated/modules/traveldroid/desktop/wayland.nix= +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/wayland.nix :noweb yes :mkdirp yes :eval never +{ 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"; + }; +} +#+END_SRC + +** =generated/modules/traveldroid/desktop/xdg.nix= +This sets the XDG implementation +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/xdg.nix :noweb yes :mkdirp yes :eval never +{ lib, config, pkgs, flakeRoot, ... }: + +let + # Use the config option defaultUser directly, fallback to "henrov" + username = config.defaultUser or "henrov"; + + # Portal backends + basePortal = pkgs.xdg-desktop-portal-gtk; # full portal implementation + hyprlandPortal = pkgs.xdg-desktop-portal-hyprland; # Hyprland screencast +in +{ + ################################# + # Enable XDG desktop portals system-wide + ################################# + xdg.portal.enable = true; + + # Base + Hyprland portals + xdg.portal.extraPortals = [ basePortal hyprlandPortal ]; + + # Map screencast interface explicitly to Hyprland + xdg.portal.config = { + "org.freedesktop.impl.portal.Screencast".backend = "hyprland"; + }; + + ################################# + # Install portal packages system-wide + ################################# + environment.systemPackages = [ + basePortal + hyprlandPortal + ]; + + ################################# + # Home Manager user configuration + ################################# + home-manager.users = { + ${username} = { + home.packages = [ + basePortal + hyprlandPortal + ]; + }; + }; +} +#+END_SRC + +* generated/modules/traveldroid/system + +** =generated/modules/traveldroid/system/audio.nix= +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/audio.nix :noweb yes :mkdirp yes :eval never +{ lib, config, pkgs, ... }: + +{ + ############################ + # Audio system + ############################ + environment.systemPackages = with pkgs; [ + pulseaudio # PulseAudio daemon + pavucontrol # GUI mixer + pamixer # CLI mixer + ]; +} +#+END_SRC + +** =generated/modules/traveldroid/system/base-colors.nix= +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/base-colors.nix :noweb yes :mkdirp yes :eval never +{ config, pkgs, flakeRoot, ... }: +let + username = "henrov"; # Replace with your username if needed +in +{ + home-manager.users = { + ${username} = { + home.file = { + ".config/shared/colors.css" = { + text = builtins.readFile "${flakeRoot}/generated/.config/shared/colors.css"; + force = true; }; }; }; }; } - #+END_SRC +** =generated/modules/traveldroid/system/bluetooth.nix= +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/bluetooth.nix :noweb yes :mkdirp yes :eval never +{ lib, config, pkgs, home-manager, ... }: + +let + username = config.defaultUser or "henrov"; +in +{ + ############################ + # Bluetooth daemon + ############################ + hardware.bluetooth = { + enable = true; + powerOnBoot = true; + package = pkgs.bluez; + }; +} +#+END_SRC + +** =generated/modules/traveldroid/system/dbus.nix= +This sets the dbus implementation +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/dbus.nix :noweb yes :mkdirp yes :eval never +{ 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 +} +#+END_SRC + +** =generated/modules/traveldroid/system/gnome-keyring.nix= +This sets the dbus implementation +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/gnome-keyring.nix :noweb yes :mkdirp yes :eval never +{ 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; + + +} +#+END_SRC + +** =generated/modules/traveldroid/system/login-tuigreet.nix= +This sets up tuigreeter which is not fancy but imo fits the aesthetic I am aiming for +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/login-tuigreet.nix :noweb yes :mkdirp yes :eval never +{ config, pkgs, lib, ... }: + +let + tuigreetBin = "${pkgs.tuigreet}/bin/tuigreet"; + sessionsDir = "${pkgs.hyprland}/share/wayland-sessions"; +in +{ + ################################# + # Greetd (tuigreet) + ################################# + + services.greetd = { + enable = true; + + settings = { + default_session = { + command = '' + ${tuigreetBin} \ + --time \ + --remember \ + --remember-session \ + --sessions ${sessionsDir} \ + --cmd "start-hyprland" + ''; + user = "greeter"; + }; + }; + }; + + ################################# + # Fix TTY / boot noise issues + ################################# + + systemd.services.greetd.serviceConfig = { + Type = "idle"; + StandardInput = "tty"; + StandardOutput = "tty"; + StandardError = "journal"; + + # Prevent boot log spam on tty + TTYReset = true; + TTYVHangup = true; + TTYVTDisallocate = true; + }; +} +#+END_SRC + +** =generated/modules/traveldroid/system/networking.nix= +This sets the networking. +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/networking.nix :noweb yes :mkdirp yes :eval never +{ lib, config, pkgs, ... }: + +{ + ################################# + # Networking core + ################################# + networking = { + # Let DHCP be default unless overridden elsewhere + useDHCP = lib.mkDefault true; + + # Hostname comes from host.nix, do NOT redefine here + + ################################# + # 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; + }; + + ################################# + # Firewall + ################################# + firewall = { + enable = true; + # KDE Connect support + allowedTCPPortRanges = [ + { from = 1714; to = 1764; } + ]; + allowedUDPPortRanges = [ + { from = 1714; to = 1764; } + ]; + }; + }; + + ################################# + # System packages + ################################# + environment.systemPackages = [ + pkgs.networkmanager + pkgs.linux-firmware + pkgs.networkmanagerapplet + ]; +} +#+END_SRC + +** =generated/modules/traveldroid/system/nix.nix= +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/nix.nix :noweb yes :mkdirp yes :eval never +{ lib, config, ... }: + +{ + nix.settings = { + experimental-features = [ "nix-command" "flakes" ]; + download-buffer-size = 536870912; # 512 MB + cores = 2; + max-jobs = 1; + }; +} +#+END_SRC + +** =generated/modules/traveldroid/system/printing.nix= +This sets the dbus implementation +#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/printing.nix :noweb yes :mkdirp yes :eval never +{ 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 + ]; +} +#+END_SRC + + +* generated/users + +** =generated/users/= +This is the default user, just search and replace henrov another name if you want to change +#+BEGIN_SRC nix :tangle generated/users/henrov.nix :noweb yes :mkdirp yes :eval never +{ 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" ]; + 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"; + }; + }; + }; +} +#+END_SRC + + +* These are all the prepared config files +:PROPERTIES: +:CUSTOM_ID: the-config-files +:END: + ** =generated/.config/emacs/early-init.el= This contaions emacs #+BEGIN_SRC el :tangle generated/.config/emacs/early-init.el :noweb yes :mkdirp yes :eval never @@ -1740,88 +2049,7 @@ the top of the file." #+END_SRC -* generated/modules/traveldroid/desktop - -** =generated/modules/traveldroid/desktop/fonts.nix= -This file installs and configures fonts -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/fonts.nix :noweb yes :mkdirp yes :eval never -{ lib, pkgs, config, ... }: - -{ - fonts.packages = with pkgs; [ - nerd-fonts.iosevka - nerd-fonts.fira-code - nerd-fonts.jetbrains-mono - ]; -} -#+END_SRC - -** =generated/modules/traveldroid/desktop/gtk.nix= -Setting up GTK -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/gtk.nix :noweb yes :mkdirp yes :eval never -{ pkgs, config, lib, ... }: - -let - username = config.defaultUser or "henrov"; -in -{ - environment.systemPackages = with pkgs; [ - gtk3 - gtk4 - ]; - - home-manager.users."${username}" = { - gtk = { - enable = true; - }; - }; -} -#+END_SRC - -** =generated/modules/traveldroid/desktop/hyprland.nix= -Setting up Hyprland -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/hyprland.nix :noweb yes :mkdirp yes :eval never -{ 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 - environment.systemPackages = [ hyprlandPkg ]; - - # Home Manager user configuration - home-manager.users = { - ${username} = { - home.file = { - ".config/hypr/animations.conf" = { source = "${assetPath}/animations.conf"; force = true; }; - ".config/hypr/behaviour.conf" = { source = "${assetPath}/behaviour.conf"; force = true; }; - ".config/hypr/bindings.conf" = { source = "${assetPath}/bindings.conf"; force = true; }; - ".config/hypr/exec-once.conf" = { source = "${assetPath}/exec-once.conf"; force = true; }; - ".config/hypr/hypridle.conf" = { source = "${assetPath}/hypridle.conf"; force = true; }; - ".config/hypr/hyprland.conf" = { source = "${assetPath}/hyprland.conf"; force = true; }; - ".config/hypr/hyprlock.conf" = { source = "${assetPath}/hyprlock.conf"; force = true; }; - ".config/hypr/layer-rules.conf" = { source = "${assetPath}/layer-rules.conf"; force = true; }; - ".config/hypr/layout.conf" = { source = "${assetPath}/layout.conf"; force = true; }; - ".config/hypr/monitor-rules.conf" = { source = "${assetPath}/monitor-rules.conf"; force = true; }; - ".config/hypr/scripts/layout-selector.sh" = { source = "${assetPath}/scripts/layout-selector.sh"; executable = true; force = true; }; - ".config/hypr/theming.css" = { source = "${assetPath}/theming.css"; force = true; }; - ".config/hypr/window-rules.conf" = { source = "${assetPath}/window-rules.conf"; force = true; }; - ".config/hypr/workspace-rules.conf" = { source = "${assetPath}/workspace-rules.conf"; force = true; }; - }; - }; - }; -} -#+END_SRC - -** =.config/hypr/animations.conf= +** =generated/.config/hypr/animations.conf= These are config files for .config/hypr #+BEGIN_SRC conf :tangle generated/.config/hypr/animations.conf :noweb yes :mkdirp yes :eval never # ./assets/conf/desktop/hypr/animations.conf @@ -1838,7 +2066,7 @@ animations { } #+END_SRC -** =.config/hypr/behaviour.conf= +** =generated/.config/hypr/behaviour.conf= These are config files for .config/hypr #+BEGIN_SRC conf :tangle generated/.config/hypr/behaviour.conf :noweb yes :exports code :wrap nil :mkdirp yes :eval never # Keyboard and mouse settings @@ -1848,7 +2076,7 @@ These are config files for .config/hypr # Miscellaneous settings #+END_SRC -** =.config/hypr/bindings.conf= +** =generated/.config/hypr/bindings.conf= These are config files for .config/hypr #+BEGIN_SRC conf :tangle generated/.config/hypr/bindings.conf :noweb yes :mkdirp yes :eval never $mainMod = SUPER @@ -2001,7 +2229,7 @@ bind = $mainMod, W, exec, zen bind = , workspace, exec, ~/.config/hypr/scripts/set-workspace-wallpaper.sh #+END_SRC -** =.config/hypr/exec-once.conf= +** =generated/.config/hypr/exec-once.conf= These are config files for .config/hypr #+BEGIN_SRC conf :tangle generated/.config/hypr/exec-once.conf :noweb yes :mkdirp yes :eval never exec-once = dbus-update-activation-environment --systemd --all @@ -2016,7 +2244,7 @@ exec-once = /run/current-system/sw/libexec/polkit-gnome-authentication-agent-1 exec-once = nextcloud --background #+END_SRC -** =.config/hypr/hypridle.conf= +** =generated/.config/hypr/hypridle.conf= These are config files for .config/hypr #+BEGIN_SRC conf :tangle generated/.config/hypr/hypridle.conf :noweb yes :mkdirp yes :eval never general { @@ -2037,7 +2265,7 @@ listener { } #+END_SRC -** =.config/hypr/hyprland.conf= +** =generated/.config/hypr/hyprland.conf= These are config files for .config/hypr #+BEGIN_SRC json :tangle generated/.config/hypr/hyprland.conf :noweb yes :mkdirp yes :eval never source = ./theming.css @@ -2079,7 +2307,7 @@ misc { } #+END_SRC -** =.config/hypr/hyprlock.conf= +** =generated/.config/hypr/hyprlock.conf= These are config files for .config/hypr #+BEGIN_SRC conf :tangle generated/.config/hypr/hyprlock.conf :noweb yes :mkdirp yes :eval never # ~/.config/hypr/hyprlock.conf @@ -2116,7 +2344,7 @@ label { } #+END_SRC -** =.config/hypr/layer-rules.conf= +** =generated/.config/hypr/layer-rules.conf= These are config files for .config/hypr #+BEGIN_SRC conf :tangle generated/.config/hypr/layer-rules.conf :noweb yes :mkdirp yes :eval never layerrule = blur on, ignore_alpha 1, match:namespace waybar @@ -2127,20 +2355,20 @@ layerrule = blur on, ignore_alpha 1, match:namespace swaync-control-center layerrule = blur on, ignore_alpha 1, match:namespace swaync-notification-window #+END_SRC -** =.config/hypr/layout.conf= +** =generated/.config/hypr/layout.conf= These are config files for .config/hypr #+BEGIN_SRC conf :tangle generated/.config/hypr/layout.conf :noweb yes :mkdirp yes :eval never workspace_layouts = dwindle, master, scrolling, monocle #+END_SRC -** =.config/hypr/monitor-rules.conf= +** =generated/.config/hypr/monitor-rules.conf= These are config files for .config/hypr #+BEGIN_SRC conf :tangle generated/.config/hypr/monitor-rules.conf :noweb yes :mkdirp yes :eval never # Default portable monitor rule monitor=DP-1,3840x1080@144,1920x0,1 #+END_SRC -** =.config/hypr/scripts/layout-selector.sh= +** =generated/.config/hypr/scripts/layout-selector.sh= These are config files for .config/hypr/scripts #+BEGIN_SRC bash :tangle generated/.config/hypr/scripts/layout-selector.sh :noweb yes :mkdirp yes :eval never #!/usr/bin/env bash @@ -2179,7 +2407,7 @@ hyprctl dispatch layoutmsg setlayout "$LAYOUT_NAME" hyprctl dispatch oSD "Layout: $LAYOUT_NAME" 2000 #+END_SRC -** =.config/hypr/theming.css= +** =generated/.config/hypr/theming.css= These are config files for .config/hypr #+BEGIN_SRC css :tangle generated/.config/hypr/theming.css :noweb yes :mkdirp yes :eval never # Hyprland Catppuccin Mocha Theme (solid colors) @@ -2224,7 +2452,7 @@ decoration { } #+END_SRC -** =.config/hypr/window-rules.conf= +** =generated/.config/hypr/window-rules.conf= These are config files for .config/hypr #+BEGIN_SRC toml :tangle generated/.config/hypr/window-rules.conf :noweb yes :mkdirp yes :eval never @@ -2258,7 +2486,7 @@ windowrule { #+END_SRC -** =.config/hypr/workspace-rules.conf= +** =generated/.config/hypr/workspace-rules.conf= These are config files for .config/hypr #+BEGIN_SRC conf :tangle generated/.config/hypr/workspace-rules.conf :noweb yes :mkdirp yes :eval never @@ -2280,187 +2508,327 @@ workspace = 10 #+END_SRC -** =generated/modules/traveldroid/desktop/wallpaper.nix= -Setting up wallpaper engine + wallpaper gui -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/wallpaper.nix :noweb yes :mkdirp yes :eval never -{ lib, config, pkgs, flakeRoot, ... }: +** =generated/.config/shared/colors.css= +A file containing colopr variables +#+BEGIN_SRC css :tangle generated/.config/shared/colors.css :noweb yes :mkdirp yes :eval never +/* Catppuccin Mocha Palette */ +@define-color crust #11111b; +@define-color mantle #181825; +@define-color base #1e1e2e; +@define-color base-alpha rgba(30, 30, 46, 0.9); -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 ]; +@define-color surface0 #313244; +@define-color surface1 #45475a; +@define-color surface2 #585b70; - # 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; - }; - }; - }; - }; +@define-color overlay0 #6c7086; +@define-color overlay1 #7f849c; +@define-color overlay2 #9399b2; - # 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" ]; - }; +@define-color subtext0 #a6adc8; +@define-color subtext1 #bac2de; +@define-color text #cdd6f4; - # 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" ]; - }; -} +@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; #+END_SRC -** =generated/modules/traveldroid/desktop/stylix.nix= -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/stylix.nix :noweb yes :mkdirp yes :eval never -{ lib, config, pkgs, flakeRoot, stylix, ... }: +** =generated/.config/starship.toml= +These are config files for Starship +#+BEGIN_SRC toml :tangle generated/.config/starship.toml :noweb yes :mkdirp yes :eval never +"$schema" = 'https://starship.rs/config-schema.json' -let - username = config.defaultUser or "henrov"; - moduleName = "stylix"; +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""" - assetPath = "${flakeRoot}/generated/.config/${moduleName}"; +palette = 'catppuccin_mocha' - stylixConfFile = "${assetPath}/stylix.conf"; - stylixConf = - if builtins.pathExists stylixConfFile - then builtins.readFile stylixConfFile - else ""; +[os] +disabled = false +style = "bg:red fg:crust" - cursorName = "phinger-cursors-light"; - cursorSize = 24; -in -{ - ################################# - # Enable Stylix module - ################################# - imports = [ - stylix.nixosModules.stylix - ]; +[os.symbols] +Windows = "" +Ubuntu = "󰕈" +SUSE = "" +Raspbian = "󰐿" +Mint = "󰣭" +Macos = "󰀵" +Manjaro = "" +Linux = "󰌽" +Gentoo = "󰣨" +Fedora = "󰣛" +Alpine = "" +Amazon = "" +Android = "" +AOSC = "" +Arch = "󰣇" +Artix = "󰣇" +CentOS = "" +Debian = "󰣚" +Redhat = "󱄛" +RedHatEnterprise = "󱄛" - ################################# - # System packages - ################################# - environment.systemPackages = [ - pkgs.feh - pkgs.st - ]; +[username] +show_always = true +style_user = "bg:red fg:crust" +style_root = "bg:red fg:crust" +format = '[ $user]($style)' - ################################# - # Stylix system config - ################################# - stylix = { - enable = true; +[directory] +style = "bg:peach fg:crust" +format = "[ $path ]($style)" +truncation_length = 3 +truncation_symbol = "…/" - base16Scheme = "${flakeRoot}/assets/traveldroid/theming/stylix/catppuccin-mocha.yaml"; - polarity = "dark"; +[directory.substitutions] +"Documents" = "󰈙 " +"Downloads" = " " +"Music" = "󰝚 " +"Pictures" = " " +"Developer" = "󰲋 " - targets = { - gtk.enable = true; - qt.enable = true; - }; +[git_branch] +symbol = "" +style = "bg:yellow" +format = '[[ $symbol $branch ](fg:crust bg:yellow)]($style)' - cursor = { - name = cursorName; - package = pkgs.phinger-cursors; - size = cursorSize; - }; - }; +[git_status] +style = "bg:yellow" +format = '[[($all_status$ahead_behind )](fg:crust bg:yellow)]($style)' - ################################# - # Home Manager - ################################# - home-manager.users = { - "${username}" = { +[nodejs] +symbol = "" +style = "bg:green" +format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)' - ################################# - # ONLY custom file (safe) - ################################# - home.file.".config/stylix/stylix.conf" = { - text = stylixConf; - force = true; - }; +[c] +symbol = " " +style = "bg:green" +format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)' - ################################# - # 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; - }; - }; - }; -} +[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 = 45000 + +[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" #+END_SRC -** =.config/stylix/stylix.conf= +** =generated/.config/stylix/stylix.conf= These are config files for .config/stylix #+BEGIN_SRC conf :tangle generated/.config/stylix/stylix.conf :noweb yes :mkdirp yes :eval never enable = true; @@ -2493,7 +2861,7 @@ icons = { }; #+END_SRC -** =.config/stylix/palette.json= +** =generated/.config/stylix/palette.json= These are config files for .config/stylix #+BEGIN_SRC json :tangle generated/.config/stylix/palette.json :noweb yes :mkdirp yes :eval never { @@ -2519,7 +2887,7 @@ These are config files for .config/stylix } #+END_SRC -** =.config/stylix/palette.html= +** =generated/.config/stylix/palette.html= These are config files for .config/stylix #+BEGIN_SRC html :tangle generated/.config/stylix/palette.html :noweb yes :mkdirp yes :eval never @@ -2593,69 +2961,7 @@ These are config files for .config/stylix #+END_SRC -** =generated/modules/traveldroid/desktop/waybar.nix= -This file installs and configures waybar -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/waybar.nix :noweb yes :mkdirp yes :eval never -{ lib, config, pkgs, flakeRoot, ... }: -let - # Use the config option defaultUser directly, fallback to "henrov" - username = config.defaultUser or "henrov"; - assetPath = "${flakeRoot}/generated/.config/waybar"; -in -{ - # Install Waybar system-wide - environment.systemPackages = [ pkgs.waybar ]; - - home-manager.users = { - ${username} = { - home.file = { - ".config/waybar/config" = { - text = builtins.readFile "${assetPath}/config"; - force = true; - }; - ".config/waybar/style.css" = { - text = builtins.replaceStrings ["henrov"] [username] (builtins.readFile "${assetPath}/style.css"); - force = true; - }; - ".config/waybar/scripts/bluetooth-status.sh" = { - text = builtins.readFile "${assetPath}/scripts/bluetooth-status.sh"; - force = true; - executable = true; - }; - ".config/waybar/scripts/hypr-workspaces.sh" = { - text = builtins.readFile "${assetPath}/scripts/hypr-workspaces.sh"; - force = true; - executable = true; - }; - ".config/waybar/scripts/hypr-workspacesmenu.sh" = { - text = builtins.readFile "${assetPath}/scripts/hypr-workspacesmenu.sh"; - force = true; - executable = true; - }; - }; - }; - }; - - # Systemd user service for Waybar - systemd.user.services.waybar = { - description = "Waybar for Hyprland"; - after = [ "graphical-session.target" ]; - - serviceConfig = { - ExecStart = "${pkgs.waybar}/bin/waybar"; - Restart = "always"; - Environment = '' - WAYLAND_DISPLAY=${config.environment.sessionVariables.WAYLAND_DISPLAY or "wayland-0"} - XDG_CURRENT_DESKTOP=Hyprland - ''; - }; - - wantedBy = [ "default.target" ]; - }; -} -#+END_SRC - -** =.config/waybar/config= +** =generated/.config/waybar/config= These are config files for waybar #+BEGIN_SRC jsonc :tangle generated/.config/waybar/config :noweb yes :mkdirp yes :eval never { @@ -2869,7 +3175,7 @@ These are config files for waybar #+END_SRC -** =.config/waybar/style.css= +** =generated/.config/waybar/style.css= This file contains all css for waybar #+BEGIN_SRC css :tangle generated/.config/waybar/style.css :noweb yes :mkdirp yes :eval never @import url("file:///home/henrov/.config/shared/colors.css"); @@ -3058,7 +3364,7 @@ activeworkspaces:not(.active) { } #+END_SRC -** =.config/waybar/scripts/bluetooth-status.sh= +** =generated/.config/waybar/scripts/bluetooth-status.sh= These are config files for waybar #+BEGIN_SRC sh :tangle generated/.config/waybar/scripts/bluetooth-status.sh :noweb yes :mkdirp yes :eval never #!/usr/bin/env bash @@ -3080,7 +3386,7 @@ fi printf '{"text": "%s", "tooltip": "%s"}\n' "$icon" "$tooltip" #+END_SRC -** =.config/waybar/scripts/hypr-workspaces.sh= +** =generated/.config/waybar/scripts/hypr-workspaces.sh= These are config files for waybar #+BEGIN_SRC sh :tangle generated/.config/waybar/scripts/hypr-workspaces.sh :noweb yes :mkdirp yes :eval never #!/usr/bin/env bash @@ -3106,7 +3412,7 @@ jq -c -n \ '{text:$text, tooltip:$tooltip, class:$class}' #+END_SRC -** =.config/waybar/scripts/hypr-workspacesmenu.sh= +** =generated/.config/waybar/scripts/hypr-workspacesmenu.sh= These are config files for waybar #+BEGIN_SRC sh :tangle generated/.config/waybar/scripts/hypr-workspacesmenu.sh :noweb yes :mkdirp yes :eval never #!/usr/bin/env bash @@ -3119,7 +3425,7 @@ addr=$(echo "$clients" | grep "|$choice" | head -n1 | cut -d'|' -f1) hyprctl dispatch focuswindow address:$addr #+END_SRC -** =.config/waypaper/config.ini= +** =generated/.config/waypaper/config.ini= These are config files for waypaper #+BEGIN_SRC conf :tangle generated/.config/waypaper/config.ini :noweb yes :mkdirp yes :eval never [Settings] @@ -3152,416 +3458,9 @@ keybindings = ~/.config/waypaper/keybindings.ini #+END_SRC -** =generated/modules/traveldroid/desktop/wayland.nix= -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/wayland.nix :noweb yes :mkdirp yes :eval never -{ 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"; - }; -} -#+END_SRC - -** =generated/modules/traveldroid/desktop/xdg.nix= -This sets the XDG implementation -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/xdg.nix :noweb yes :mkdirp yes :eval never -{ lib, config, pkgs, flakeRoot, ... }: - -let - # Use the config option defaultUser directly, fallback to "henrov" - username = config.defaultUser or "henrov"; - - # Portal backends - basePortal = pkgs.xdg-desktop-portal-gtk; # full portal implementation - hyprlandPortal = pkgs.xdg-desktop-portal-hyprland; # Hyprland screencast -in -{ - ################################# - # Enable XDG desktop portals system-wide - ################################# - xdg.portal.enable = true; - - # Base + Hyprland portals - xdg.portal.extraPortals = [ basePortal hyprlandPortal ]; - - # Map screencast interface explicitly to Hyprland - xdg.portal.config = { - "org.freedesktop.impl.portal.Screencast".backend = "hyprland"; - }; - - ################################# - # Install portal packages system-wide - ################################# - environment.systemPackages = [ - basePortal - hyprlandPortal - ]; - - ################################# - # Home Manager user configuration - ################################# - home-manager.users = { - ${username} = { - home.packages = [ - basePortal - hyprlandPortal - ]; - }; - }; -} -#+END_SRC - -* generated/modules/traveldroid/system - -** =generated/modules/traveldroid/system/audio.nix= -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/audio.nix :noweb yes :mkdirp yes :eval never -{ lib, config, pkgs, ... }: - -{ - ############################ - # Audio system - ############################ - environment.systemPackages = with pkgs; [ - pulseaudio # PulseAudio daemon - pavucontrol # GUI mixer - pamixer # CLI mixer - ]; -} -#+END_SRC - -** =generated/modules/traveldroid/system/base-colors.nix= -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/base-colors.nix :noweb yes :mkdirp yes :eval never -{ config, pkgs, flakeRoot, ... }: -let - username = "henrov"; # Replace with your username if needed -in -{ - home-manager.users = { - ${username} = { - home.file = { - ".config/shared/colors.css" = { - text = builtins.readFile "${flakeRoot}/generated/.config/shared/colors.css"; - force = true; - }; - }; - }; - }; -} -#+END_SRC - -** =generated/modules/traveldroid/system/bluetooth.nix= -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/bluetooth.nix :noweb yes :mkdirp yes :eval never -{ lib, config, pkgs, home-manager, ... }: - -let - username = config.defaultUser or "henrov"; -in -{ - ############################ - # Bluetooth daemon - ############################ - hardware.bluetooth = { - enable = true; - powerOnBoot = true; - package = pkgs.bluez; - }; -} -#+END_SRC - -** =generated/modules/traveldroid/system/dbus.nix= -This sets the dbus implementation -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/dbus.nix :noweb yes :mkdirp yes :eval never -{ 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 -} -#+END_SRC - -** =generated/modules/traveldroid/system/gnome-keyring.nix= -This sets the dbus implementation -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/gnome-keyring.nix :noweb yes :mkdirp yes :eval never -{ 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; - - -} -#+END_SRC - -** =generated/modules/traveldroid/system/login-tuigreet.nix= -This sets up tuigreeter which is not fancy but imo fits the aesthetic I am aiming for -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/login-tuigreet.nix :noweb yes :mkdirp yes :eval never -{ config, pkgs, lib, ... }: - -let - tuigreetBin = "${pkgs.tuigreet}/bin/tuigreet"; - sessionsDir = "${pkgs.hyprland}/share/wayland-sessions"; -in -{ - ################################# - # Greetd (tuigreet) - ################################# - - services.greetd = { - enable = true; - - settings = { - default_session = { - command = '' - ${tuigreetBin} \ - --time \ - --remember \ - --remember-session \ - --sessions ${sessionsDir} \ - --cmd "start-hyprland" - ''; - user = "greeter"; - }; - }; - }; - - ################################# - # Fix TTY / boot noise issues - ################################# - - systemd.services.greetd.serviceConfig = { - Type = "idle"; - StandardInput = "tty"; - StandardOutput = "tty"; - StandardError = "journal"; - - # Prevent boot log spam on tty - TTYReset = true; - TTYVHangup = true; - TTYVTDisallocate = true; - }; -} -#+END_SRC - -** =generated/modules/traveldroid/system/networking.nix= -This sets the networking. -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/networking.nix :noweb yes :mkdirp yes :eval never -{ lib, config, pkgs, ... }: - -{ - ################################# - # Networking core - ################################# - networking = { - # Let DHCP be default unless overridden elsewhere - useDHCP = lib.mkDefault true; - - # Hostname comes from host.nix, do NOT redefine here - - ################################# - # 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; - }; - - ################################# - # Firewall - ################################# - firewall = { - enable = true; - # KDE Connect support - allowedTCPPortRanges = [ - { from = 1714; to = 1764; } - ]; - allowedUDPPortRanges = [ - { from = 1714; to = 1764; } - ]; - }; - }; - - ################################# - # System packages - ################################# - environment.systemPackages = [ - pkgs.networkmanager - pkgs.linux-firmware - pkgs.networkmanagerapplet - ]; -} -#+END_SRC - -** =generated/modules/traveldroid/system/nix.nix= -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/nix.nix :noweb yes :mkdirp yes :eval never -{ lib, config, ... }: - -{ - nix.settings = { - experimental-features = [ "nix-command" "flakes" ]; - download-buffer-size = 536870912; # 512 MB - cores = 2; - max-jobs = 1; - }; -} -#+END_SRC - -** =generated/modules/traveldroid/system/printing.nix= -This sets the dbus implementation -#+BEGIN_SRC nix :tangle generated/modules/traveldroid/system/printing.nix :noweb yes :mkdirp yes :eval never -{ 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 - ]; -} -#+END_SRC - - -* generated/users - -** =generated/users/= -This is the default user, just search and replace henrov another name if you want to change -#+BEGIN_SRC nix :tangle generated/users/henrov.nix :noweb yes :mkdirp yes :eval never -{ 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" ]; - 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.file.".config/zsh/.zshrc".source = generatedZsh; - - 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"; - }; - }; - }; -} -#+END_SRC - - -* These are all the prepared config files -:PROPERTIES: -:CUSTOM_ID: the-config-files -:END: - -** =.config/waypaper/config.ini= +** =generated/.config/waypaper/config.ini= These are config files for .config/waypaper -#+BEGIN_SRC conf :tangle generated/.config/waypaper/config.ini :noweb yes :mkdirp yes :eval never +#+BEGIN_SRC ini :tangle generated/.config/waypaper/config.ini :noweb yes :mkdirp yes :eval never [Settings] language = en backend = awww @@ -3589,13 +3488,148 @@ mpvpaper_options = use_xdg_state = False stylesheet = /home/henrov/.config/waypaper/style.css keybindings = ~/.config/waypaper/keybindings.ini +#+END_SRC +** =generated/.config/wofi/config= +These are config files for .config/wofi +#+BEGIN_SRC toml :tangle generated/.config/wofi/config :noweb yes :mkdirp yes :eval never +[global] +allow_images = true +allow_markup = true + +# Which modes are active +show_drun = true:apps,false:others +show_run = true +show_files = false +show_windowed = false +show_dmenu = false +show_ssh = false +show_power = false + +# Layout / scrolling +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 + +# Labels +show_labels = true +label_search = true +label_run = Run +label_files = Files +label_windowed = Windows +label_drun = Applications +label_dmenu = Commands +label_ssh = SSH +label_power = Power + +prompt = > ... +#+END_SRC + +** =generated/.config/wofi/style.css= +These are config files for .config/wofi +#+BEGIN_SRC css :tangle generated/.config/wofi/style.css :noweb yes :mkdirp yes :eval never +@import url("file:///home/henrov/.config/shared/colors.css"); + +/* Global styles */ + * { + background-color: transparent; + color: @text; + font-family: "JetBrainsMono Nerd Font", monospace; + font-size: 12pt; +} + +/* --- DRUN menu (full size) --- */ +#main { + background: + linear-gradient(@base-alpha, @base-alpha) padding-box, /* Inner fill */ + linear-gradient(45deg, @blue, @green) border-box; /* Gradient border */ + border: 2px solid transparent; /* required for border-box layering */ + border-radius: 30px; + padding: 20px; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.3); + width: 800px; + height: 600px; +} + +/* --- DMENU menu --- */ +#dmenu { + background: + linear-gradient(@base-alpha, @base-alpha) padding-box, + linear-gradient(45deg, @blue, @green) border-box; + border: 2px solid transparent; + border-radius: 30px; + padding: 10px; /* smaller padding for half-height */ + box-shadow: 0 0 20px rgba(0, 0, 0, 0.3); + width: 800px; + height: 150px; +} + +/* Input field */ +#input { + background-color: @surface0; + color: @text; + border: 1px solid @surface1; + border-radius: 30px; + padding: 5px 10px; + margin-bottom: 10px; +} + +/* Entries */ +#entry { + background-color: rgba(200,200,200,0.2); + color: @text; + border-radius: 30px; + padding: 5px 10px; + margin: 2px 0; + border: 2px solid transparent; /* needed for gradient on selection */ + transition: all 0.2s ease; +} + +/* Entry focus (hover or typing) */ +#entry:focus { + background: + linear-gradient(@base-alpha, @base-alpha) padding-box, + linear-gradient(45deg, @blue, @green) border-box; + color: @lavender; + border-radius: 30px; +} + +/* Entry selection */ +#entry:selected { + background: + linear-gradient(@base-alpha, @base-alpha) padding-box, + linear-gradient(45deg, @blue, @green) border-box; + color: @text; + border-radius: 30px; +} + +/* Scrollbar */ +#scrollbar { + background-color: @surface0; + border-radius: 30px; + width: 8px; +} + +#scrollbar.handle { + background-color: @blue; + border-radius: 30px; +} #+END_SRC -** =.config/zed/settings.json= -These are config files for .config/zed +** =generated/.config/zed/settings.json= +These are config files for Zed editor #+BEGIN_SRC json :tangle generated/.config/zed/settings.json :noweb yes :mkdirp yes :eval never // Zed settings // @@ -3626,39 +3660,19 @@ These are config files for .config/zed } #+END_SRC +** =generated/.config/zsh/.zshrc= +This sets up the zsh in the terminal +#+BEGIN_SRC bash :tangle generated/.config/zsh/.zshrc :noweb yes :mkdirp yes :eval never +# Path to syntax highlighting installed by Nix +ZSH_SYNTAX_HIGHLIGHTING="${HOME}/.nix-profile/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" -** =.config/shared/colors.css= -These are config files for .config/wofi -#+BEGIN_SRC css :tangle generated/.config/shared/colors.css :noweb yes :mkdirp yes :eval never -/* Catppuccin Mocha Palette */ -@define-color crust #11111b; -@define-color mantle #181825; -@define-color base #1e1e2e; -@define-color base-alpha rgba(30, 30, 46, 0.9); +# Load syntax highlighting if available +if [ -f "$ZSH_SYNTAX_HIGHLIGHTING" ]; then + source "$ZSH_SYNTAX_HIGHLIGHTING" +fi -@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; +# Initialize Starship prompt +if command -v starship >/dev/null 2>&1; then + eval "$(starship init zsh)" +fi #+END_SRC diff --git a/Droidnix/assets/traveldroid/Wallpapers/scripts/wallpaper.sh b/Droidnix/assets/traveldroid/Wallpapers/scripts/wallpaper.sh deleted file mode 100755 index b55a282cd..000000000 --- a/Droidnix/assets/traveldroid/Wallpapers/scripts/wallpaper.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -set -euo pipefail - -WALLPAPER_DIR="$HOME/Wallpapers" - -# ----------------------------- -# Set wallpaper on all monitors -# ----------------------------- -set_wallpaper_all_monitors() { - pic="$1" - monitors=$(hyprctl monitors -j | jq -r '.[].name') # list all monitor names - for m in $monitors; do - awww img -o "$m" -t fade --transition-duration 1 "$pic" - done -} - -# ----------------------------- -# Handle workspace events -# ----------------------------- -handle() { - case $1 in - workspace*) - workspace="${1: -1}" # last character - pic="" - case $workspace in - 1) pic="$WALLPAPER_DIR/01.jpg" ;; - 2) pic="$WALLPAPER_DIR/02.jpg" ;; - 3) pic="$WALLPAPER_DIR/03.jpg" ;; - 4) pic="$WALLPAPER_DIR/04.jpg" ;; - 5) pic="$WALLPAPER_DIR/05.jpg" ;; - 6) pic="$WALLPAPER_DIR/06.jpg" ;; - 7) pic="$WALLPAPER_DIR/07.jpg" ;; - 8) pic="$WALLPAPER_DIR/08.jpg" ;; - 9) pic="$WALLPAPER_DIR/09.jpg" ;; - 10) pic="$WALLPAPER_DIR/10.jpg" ;; - esac - - [ -n "$pic" ] && set_wallpaper_all_monitors "$pic" - ;; - esac -} - -# ----------------------------- -# Listen to Hyprland socket events -# ----------------------------- -socat -U - UNIX-CONNECT:"$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock" | while read -r line; do - handle "$line" -done diff --git a/Droidnix/assets/traveldroid/firmware/iwlwifi-QuZ-a0-hr-b0-77.ucode b/Droidnix/assets/traveldroid/firmware/iwlwifi-QuZ-a0-hr-b0-77.ucode deleted file mode 100755 index 5064cab70..000000000 Binary files a/Droidnix/assets/traveldroid/firmware/iwlwifi-QuZ-a0-hr-b0-77.ucode and /dev/null differ diff --git a/Droidnix/assets/traveldroid/scripts/copy_wallpaperstuff.sh b/Droidnix/assets/traveldroid/scripts/copy_wallpaperstuff.sh deleted file mode 100755 index 6ca933353..000000000 --- a/Droidnix/assets/traveldroid/scripts/copy_wallpaperstuff.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -# Source and destination directories -SOURCE_DIR="../wallpaperstuff" -DEST_DIR="$HOME/Droidnix/" -# Check if source directory exists -if [ ! -d "$SOURCE_DIR" ]; then - echo "Error: Source directory $SOURCE_DIR does not exist." - exit 1 -fi -if [ ! -d "$DEST_DIR" ]; then - mkdir -p $DEST_DIR -fi -# Use rsync to copy files, overwriting symlinks and existing files -# --no-group --no-owner preserves your user ownership -rsync -av --no-group --no-owner "$SOURCE_DIR/" "$DEST_DIR/" -echo "Config files copied from $SOURCE_DIR to $DEST_DIR." diff --git a/Droidnix/assets/traveldroid/scripts/end_script.sh b/Droidnix/assets/traveldroid/scripts/end_script.sh deleted file mode 100755 index 2fcb45933..000000000 --- a/Droidnix/assets/traveldroid/scripts/end_script.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -set -euo pipefail - -#creating a timestamp-file to see whether this script ran -TIMESTAMP_FILE="/home/henrov/nixos_conf/nixos_timestamp.txt" -date +"%Y-%m-%d %H:%M:%S" > "$TIMESTAMP_FILE" -echo "File $TIMESTAMP_FILE created" - -#cleaning up .backup files (do not worry, they exist safely in ./assets/copy_stuff/.config) -find /home/henrov/.config -name "*.backup" -delete -echo "~/.config/*.backup files deleted" - -#copying stuff from assets/copy_stuff to ~ -echo "Now in path $(pwd)" -COPY_SCRIPT="/home/henrov/Repos/nixos/henrovnix_ok/assets/scripts/copy_stuff.sh" -if [ ! -f "$COPY_SCRIPT" ]; then - echo "Error: Script $COPY_SCRIPT does not exist." - exit 1 -fi -"$COPY_SCRIPT" diff --git a/Droidnix/assets/traveldroid/scripts/networking_in_wofi.sh b/Droidnix/assets/traveldroid/scripts/networking_in_wofi.sh deleted file mode 100755 index 05acee664..000000000 --- a/Droidnix/assets/traveldroid/scripts/networking_in_wofi.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/run/current-system/sw/bin/bash - -# Get a list of available Wi-Fi networks -networks=$(nmcli -t -f SSID device wifi list) - -# Show the list using wofi with dmenu mode -selected=$(echo "$networks" | wofi --show dmenu --width=300 --height=500 --prompt="Select a network") - -# Connect to the selected network with the --ask option -if [ -n "$selected" ]; then - nmcli --ask device wifi connect "$selected" -fi diff --git a/Droidnix/generated/assets/2_b_installed.conf b/Droidnix/generated/assets/2_b_installed.conf index 45f861124..774e96e8e 100644 --- a/Droidnix/generated/assets/2_b_installed.conf +++ b/Droidnix/generated/assets/2_b_installed.conf @@ -1,43 +1,60 @@ #packages -bluez -blueman -usbutils -todoist -brave -chromium -git -direnv -ripgrep -wget -kdePackages.kdeconnect-kde _1password-gui -tree -gparted -file -htop -btop -bat -wev -solaar +audacity baobab +bat +blueman +bluez +brave +btop +chromium +cliphist +comma +direnv duf -zed-editor +delta eza -z-lua -qdirstat -obsidian -onlyoffice-desktopeditors -postman -tea -python3 +fd +file +fzf +git +gparted +grim +handbrake +hyperfine +just +jq +kdePackages.kdeconnect-kde +libreoffice nextcloud-client nextcloud-talk-desktop -signal-desktop +nix-index +nix-output-monitor +nh +obsidian +onlyoffice-desktopeditors openssl -audacity -handbrake +postman +python3 +qdirstat +ripgrep +signal-desktop +slurp spotify +solaar +swappy +tea +todoist +tree +usbutils vlc +wev +wget +wl-clipboard +wf-recorder +yazu +zed-editor +zoxide #flatpaks eu.betterbird.Betterbird diff --git a/Droidnix/generated/modules/traveldroid/desktop/wallpaper.nix b/Droidnix/generated/modules/traveldroid/desktop/wallpaper.nix index beb6e2941..25e32bbdf 100644 --- a/Droidnix/generated/modules/traveldroid/desktop/wallpaper.nix +++ b/Droidnix/generated/modules/traveldroid/desktop/wallpaper.nix @@ -79,7 +79,7 @@ in RestartSec = 5; WorkingDirectory = homeDir; Environment = [ - "HYPRLAND_INSTANCE_SIGNATURE=${builtins.getEnv "HYPRLAND_INSTANCE_SIGNATURE"}" + "HYPRLAND_INSTANCE_SIGNATURE=${builtins.getEnv "HYPRLAND_INSTANCE_SIGNATURE"}" "WAYLAND_DISPLAY=wayland-1" "PATH=/run/current-system/sw/bin:/usr/bin:/bin" ]; diff --git a/Droidnix/generated/users/henrov.nix b/Droidnix/generated/users/henrov.nix index 0c8aec72a..5b028ff1f 100644 --- a/Droidnix/generated/users/henrov.nix +++ b/Droidnix/generated/users/henrov.nix @@ -26,7 +26,6 @@ in home.stateVersion = "26.05"; programs.zsh.enable = true; - # home.file.".config/zsh/.zshrc".source = generatedZsh; home.packages = [ # add packages here