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">
- +generated/modules/traveldroid/apps/2_b_installed.nixgenerated/assets/2_b_installed.confgenerated/modules/traveldroid/apps/flameshot.nixgenerated/modules/traveldroid/apps/kitty.nixgenerated/modules/traveldroid/apps/starship.nix.config/starship.tomlgenerated/modules/traveldroid/apps/thunar.nixgenerated/modules/traveldroid/apps/wofi.nix.config/wofi/config.config/wofi/style.cssgenerated/modules/traveldroid/apps/zenbrowser.nixgenerated/modules/traveldroid/apps/zsh.nixgenerated/.config/zsh/.zshrcgenerated/modules/traveldroid/apps/emacs/emacs.nixgenerated/.config/emacs/early-init.elgenerated/.config/emacs/init.elgenerated/modules/traveldroid/apps/2_b_installed.nixgenerated/modules/traveldroid/apps/emacs/emacs.nixgenerated/modules/traveldroid/apps/flameshot.nixgenerated/modules/traveldroid/apps/kitty.nixgenerated/modules/traveldroid/apps/starship.nixgenerated/modules/traveldroid/apps/thunar.nixgenerated/modules/traveldroid/apps/wofi.nixgenerated/modules/traveldroid/apps/zenbrowser.nixgenerated/modules/traveldroid/apps/zsh.nixgenerated/modules/traveldroid/desktop/fonts.nixgenerated/modules/traveldroid/desktop/gtk.nixgenerated/modules/traveldroid/desktop/hyprland.nix.config/hypr/animations.conf.config/hypr/behaviour.conf.config/hypr/bindings.conf.config/hypr/exec-once.conf.config/hypr/hypridle.conf.config/hypr/hyprland.conf.config/hypr/hyprlock.conf.config/hypr/layer-rules.conf.config/hypr/layout.conf.config/hypr/monitor-rules.conf.config/hypr/scripts/layout-selector.sh.config/hypr/theming.css.config/hypr/window-rules.conf.config/hypr/workspace-rules.confgenerated/modules/traveldroid/desktop/wallpaper.nixgenerated/modules/traveldroid/desktop/stylix.nix.config/stylix/stylix.conf.config/stylix/palette.json.config/stylix/palette.htmlgenerated/modules/traveldroid/desktop/waybar.nix.config/waybar/config.config/waybar/style.css.config/waybar/scripts/bluetooth-status.sh.config/waybar/scripts/hypr-workspaces.sh.config/waybar/scripts/hypr-workspacesmenu.sh.config/waypaper/config.inigenerated/modules/traveldroid/desktop/wayland.nixgenerated/modules/traveldroid/desktop/xdg.nixgenerated/modules/traveldroid/desktop/fonts.nixgenerated/modules/traveldroid/desktop/gtk.nixgenerated/modules/traveldroid/desktop/hyprland.nixgenerated/modules/traveldroid/desktop/stylix.nixgenerated/modules/traveldroid/desktop/wallpaper.nixgenerated/modules/traveldroid/desktop/waybar.nixgenerated/modules/traveldroid/desktop/wayland.nixgenerated/modules/traveldroid/desktop/xdg.nixgenerated/modules/traveldroid/system/audio.nixgenerated/modules/traveldroid/system/base-colors.nixgenerated/modules/traveldroid/system/bluetooth.nixgenerated/modules/traveldroid/system/dbus.nixgenerated/modules/traveldroid/system/gnome-keyring.nixgenerated/modules/traveldroid/system/login-tuigreet.nixgenerated/modules/traveldroid/system/networking.nixgenerated/modules/traveldroid/system/nix.nixgenerated/modules/traveldroid/system/printing.nixgenerated/modules/traveldroid/system/audio.nixgenerated/modules/traveldroid/system/base-colors.nixgenerated/modules/traveldroid/system/bluetooth.nixgenerated/modules/traveldroid/system/dbus.nixgenerated/modules/traveldroid/system/gnome-keyring.nixgenerated/modules/traveldroid/system/login-tuigreet.nixgenerated/modules/traveldroid/system/networking.nixgenerated/modules/traveldroid/system/nix.nixgenerated/modules/traveldroid/system/printing.nix.config/waypaper/config.ini.config/zed/settings.json.config/shared/colors.cssgenerated/.config/emacs/early-init.elgenerated/.config/emacs/init.elgenerated/.config/hypr/animations.confgenerated/.config/hypr/behaviour.confgenerated/.config/hypr/bindings.confgenerated/.config/hypr/exec-once.confgenerated/.config/hypr/hypridle.confgenerated/.config/hypr/hyprland.confgenerated/.config/hypr/hyprlock.confgenerated/.config/hypr/layer-rules.confgenerated/.config/hypr/layout.confgenerated/.config/hypr/monitor-rules.confgenerated/.config/hypr/scripts/layout-selector.shgenerated/.config/hypr/theming.cssgenerated/.config/hypr/window-rules.confgenerated/.config/hypr/workspace-rules.confgenerated/.config/shared/colors.cssgenerated/.config/starship.tomlgenerated/.config/stylix/stylix.confgenerated/.config/stylix/palette.jsongenerated/.config/stylix/palette.htmlgenerated/.config/waybar/configgenerated/.config/waybar/style.cssgenerated/.config/waybar/scripts/bluetooth-status.shgenerated/.config/waybar/scripts/hypr-workspaces.shgenerated/.config/waybar/scripts/hypr-workspacesmenu.shgenerated/.config/waypaper/config.inigenerated/.config/waypaper/config.inigenerated/.config/wofi/configgenerated/.config/wofi/style.cssgenerated/.config/zed/settings.jsongenerated/.config/zsh/.zshrcIntroduction The Assets Folder @@ -332,41 +334,40 @@
-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.
-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:
.assets/: Static, non-generated files (e.g., configs, scripts, themes).system, hyprland, mangowc): NixOS and Home Manager configurations, generated from Org files.flake.nix is the entry point and imports:
The generated/ directory contains all generated configurations, divided into three main groups: system, hyprland, and mangowc.
./setup_droid..generated/.config/base.conf to choose your window manager (wm = "hyprland" or wm = "mangowc").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-htmlsudo nixos-rebuild switch --flake .#<hostname>.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 ++
.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.nixgenerated/flake.nixThe Nix flake definition for Droidnix.
@@ -487,69 +559,57 @@ The Nix flake definition for Droidnix.generated/hosts/traveldroid/host.nixgenerated/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.nixgenerated/hosts/traveldroid/hardware-configuration.nixgenerated/hosts/traveldroid/boot.nixgenerated/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;
}
generated/modules/traveldroid/apps/2_b_installed.nixgenerated/modules/traveldroid/apps/2_b_installed.nixThis 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.nixgenerated/modules/traveldroid/apps/emacs/emacs.nixThis installs emacs
@@ -1695,9 +940,1147 @@ ingenerated/.config/emacs/early-init.elgenerated/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/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/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/+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";
+ };
+ };
+ };
+}
+
+generated/.config/emacs/early-init.elThis contaions emacs
@@ -1798,9 +2181,9 @@ package-archive-priorities '(("gnu" . 99)generated/.config/emacs/init.elgenerated/.config/emacs/init.elThis contaions emacs
@@ -2210,111 +2593,9 @@ the top of the file."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.confgenerated/.config/hypr/animations.confThese are config files for .config/hypr
@@ -2335,9 +2616,9 @@ animations {.config/hypr/behaviour.confgenerated/.config/hypr/behaviour.confThese are config files for .config/hypr
@@ -2351,9 +2632,9 @@ These are config files for .config/hypr.config/hypr/bindings.confgenerated/.config/hypr/bindings.confThese are config files for .config/hypr
@@ -2510,9 +2791,9 @@ bind = , workspace, exec, ~/.config/hypr/scripts/set-workspace-wallpaper.sh.config/hypr/exec-once.confgenerated/.config/hypr/exec-once.confThese are config files for .config/hypr
@@ -2531,9 +2812,9 @@ exec-once = nextcloud --background.config/hypr/hypridle.confgenerated/.config/hypr/hypridle.confThese are config files for .config/hypr
@@ -2558,9 +2839,9 @@ listener {.config/hypr/hyprland.confgenerated/.config/hypr/hyprland.confThese are config files for .config/hypr
@@ -2606,9 +2887,9 @@ misc {.config/hypr/hyprlock.confgenerated/.config/hypr/hyprlock.confThese are config files for .config/hypr
@@ -2649,9 +2930,9 @@ label {.config/hypr/layer-rules.confgenerated/.config/hypr/layer-rules.confThese are config files for .config/hypr
@@ -2666,9 +2947,9 @@ layerrule = blur on, ignore_alpha 1, match:namespace swaync-notification-window.config/hypr/layout.confgenerated/.config/hypr/layout.confThese are config files for .config/hypr
@@ -2678,9 +2959,9 @@ These are config files for .config/hypr.config/hypr/monitor-rules.confgenerated/.config/hypr/monitor-rules.confThese are config files for .config/hypr
@@ -2691,9 +2972,9 @@ monitor=DP-1,3840x1080@144,1920x0,1.config/hypr/scripts/layout-selector.shgenerated/.config/hypr/scripts/layout-selector.shThese are config files for .config/hypr/scripts
@@ -2736,9 +3017,9 @@ hyprctl dispatch oSD "Layout: $LAYOUT_NAME" 2000.config/hypr/theming.cssgenerated/.config/hypr/theming.cssThese are config files for .config/hypr
@@ -2787,9 +3068,9 @@ decoration {.config/hypr/window-rules.confgenerated/.config/hypr/window-rules.confThese are config files for .config/hypr
@@ -2827,9 +3108,9 @@ windowrule {.config/hypr/workspace-rules.confgenerated/.config/hypr/workspace-rules.confThese are config files for .config/hypr
@@ -2855,199 +3136,341 @@ workspace = 10generated/modules/traveldroid/desktop/wallpaper.nixgenerated/.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.nixgenerated/.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.confgenerated/.config/stylix/stylix.confThese are config files for .config/stylix
@@ -3084,9 +3507,9 @@ icons = {.config/stylix/palette.jsongenerated/.config/stylix/palette.jsonThese are config files for .config/stylix
@@ -3116,9 +3539,9 @@ These are config files for .config/stylix.config/stylix/palette.htmlgenerated/.config/stylix/palette.htmlThese are config files for .config/stylix
@@ -3196,77 +3619,9 @@ These are config files for .config/stylixgenerated/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/configgenerated/.config/waybar/configThese are config files for waybar
@@ -3484,9 +3839,9 @@ These are config files for waybar.config/waybar/style.cssgenerated/.config/waybar/style.cssThis file contains all css for waybar
@@ -3679,9 +4034,9 @@ activeworkspaces:not(.active) {.config/waybar/scripts/bluetooth-status.shgenerated/.config/waybar/scripts/bluetooth-status.shThese are config files for waybar
@@ -3707,9 +4062,9 @@ printf '{"text": "%s", "tooltip": "%s"}\n' "$icon" "$tooltip".config/waybar/scripts/hypr-workspaces.shgenerated/.config/waybar/scripts/hypr-workspaces.shThese are config files for waybar
@@ -3739,9 +4094,9 @@ jq -c -n \.config/waybar/scripts/hypr-workspacesmenu.shgenerated/.config/waybar/scripts/hypr-workspacesmenu.shThese are config files for waybar
@@ -3758,9 +4113,9 @@ hyprctl dispatch focuswindow address:$addr.config/waypaper/config.inigenerated/.config/waypaper/config.iniThese are config files for waypaper
@@ -3797,487 +4152,14 @@ keybindings = ~/.config/waypaper/keybindings.inigenerated/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/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/-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";
- };
- };
- };
-}
-
-.config/waypaper/config.inigenerated/.config/waypaper/config.iniThese 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.jsongenerated/.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.cssgenerated/.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