Compare commits
	
		
			No commits in common. "16de891fc7a7e416f8962fcddd53f0bf3323a7bd" and "47365d05f5cf035271c69c6899fd88957cabf075" have entirely different histories.
		
	
	
		
			16de891fc7
			...
			47365d05f5
		
	
		
| @ -1,15 +1,9 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.base; |   cfg = config.modules.base; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.base = { |   options.modules.base = { | ||||||
|     enable = mkEnableOption "base"; |     enable = mkEnableOption "base"; | ||||||
|   }; |   }; | ||||||
| @ -21,6 +15,7 @@ in | |||||||
|       wget |       wget | ||||||
|       curl |       curl | ||||||
|       dig |       dig | ||||||
|  |       nix-tree | ||||||
|       procps |       procps | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,18 +1,14 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.clean-tmp; |   cfg = config.modules.clean-tmp; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.clean-tmp = { |   options.modules.clean-tmp = { | ||||||
|     enable = mkEnableOption "clean-tmp"; |     enable = mkEnableOption "clean-tmp"; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { boot.tmp.cleanOnBoot = true; }; |   config = mkIf cfg.enable { | ||||||
|  |     boot.tmp.cleanOnBoot = true; | ||||||
|  |   }; | ||||||
| } | } | ||||||
| @ -1,15 +1,9 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.silent-boot; |   cfg = config.modules.silent-boot; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.silent-boot = { |   options.modules.silent-boot = { | ||||||
|     enable = mkEnableOption "silent-boot"; |     enable = mkEnableOption "silent-boot"; | ||||||
|   }; |   }; | ||||||
|  | |||||||
| @ -1,15 +1,9 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.systemd-boot; |   cfg = config.modules.systemd-boot; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.systemd-boot = { |   options.modules.systemd-boot = { | ||||||
|     enable = mkEnableOption "systemd-boot"; |     enable = mkEnableOption "systemd-boot"; | ||||||
|   }; |   }; | ||||||
|  | |||||||
| @ -1,18 +1,16 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.brightnessctl; |   cfg = config.modules.brightnessctl; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.brightnessctl = { |   options.modules.brightnessctl = { | ||||||
|     enable = mkEnableOption "brightnessctl"; |     enable = mkEnableOption "brightnessctl"; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { environment.systemPackages = [ pkgs.brightnessctl ]; }; |   config = mkIf cfg.enable { | ||||||
|  |     environment.systemPackages = [ | ||||||
|  |         pkgs.brightnessctl | ||||||
|  |     ]; | ||||||
|  |   }; | ||||||
| } | } | ||||||
| @ -1,12 +1,6 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; { | ||||||
| { |  | ||||||
|   imports = [ |   imports = [ | ||||||
|     # Import modules |     # Import modules | ||||||
|     ./base/default.nix |     ./base/default.nix | ||||||
|  | |||||||
| @ -1,15 +1,9 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.fontconfig; |   cfg = config.modules.fontconfig; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.fontconfig = { |   options.modules.fontconfig = { | ||||||
|     enable = mkEnableOption "fontconfig"; |     enable = mkEnableOption "fontconfig"; | ||||||
|   }; |   }; | ||||||
| @ -18,10 +12,10 @@ in | |||||||
|     fonts.fontconfig.enable = cfg.enable; |     fonts.fontconfig.enable = cfg.enable; | ||||||
|     fonts.enableDefaultPackages = false; |     fonts.enableDefaultPackages = false; | ||||||
|     fonts.fontconfig.defaultFonts = { |     fonts.fontconfig.defaultFonts = { | ||||||
|       serif = mkDefault [ ]; |         serif = mkDefault []; | ||||||
|       sansSerif = mkDefault [ ]; |         sansSerif = mkDefault []; | ||||||
|       monospace = mkDefault [ ]; |         monospace = mkDefault []; | ||||||
|       emoji = mkDefault [ ]; |         emoji = mkDefault []; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,9 +1,4 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
|   config = { |   config = { | ||||||
| @ -11,7 +6,7 @@ | |||||||
|     # Set up graphics |     # Set up graphics | ||||||
|     hardware.graphics.enable32Bit = true; |     hardware.graphics.enable32Bit = true; | ||||||
|     hardware.graphics.enable = true; |     hardware.graphics.enable = true; | ||||||
|     services.xserver.videoDrivers = [ "nvidia" ]; |     services.xserver.videoDrivers = ["nvidia"]; | ||||||
|     hardware.nvidia = { |     hardware.nvidia = { | ||||||
|       modesetting.enable = true; |       modesetting.enable = true; | ||||||
|       powerManagement.enable = false; |       powerManagement.enable = false; | ||||||
|  | |||||||
| @ -1,15 +1,9 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.greetd; |   cfg = config.modules.greetd; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.greetd = { |   options.modules.greetd = { | ||||||
|     enable = mkEnableOption "greetd"; |     enable = mkEnableOption "greetd"; | ||||||
|     command = mkOption { |     command = mkOption { | ||||||
|  | |||||||
| @ -1,15 +1,9 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.tuigreet; |   cfg = config.modules.tuigreet; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.tuigreet = {  |   options.modules.tuigreet = {  | ||||||
|     enable = mkEnableOption "tuigreet";  |     enable = mkEnableOption "tuigreet";  | ||||||
|     greeting = mkOption { |     greeting = mkOption { | ||||||
|  | |||||||
| @ -1,9 +1,4 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
|   config = { |   config = { | ||||||
|  | |||||||
| @ -1,15 +1,9 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.neovim; |   cfg = config.modules.neovim; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.neovim = { |   options.modules.neovim = { | ||||||
|     enable = mkEnableOption "neovim"; |     enable = mkEnableOption "neovim"; | ||||||
|   }; |   }; | ||||||
|  | |||||||
| @ -1,15 +1,9 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.pipewire; |   cfg = config.modules.pipewire; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.pipewire = { |   options.modules.pipewire = { | ||||||
|     enable = mkEnableOption "pipewire"; |     enable = mkEnableOption "pipewire"; | ||||||
|   }; |   }; | ||||||
|  | |||||||
| @ -1,20 +1,14 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let  | let  | ||||||
|   cfg = config.modules.unfree; |   cfg = config.modules.unfree; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.unfree = { |   options.modules.unfree = { | ||||||
|     enable = mkEnableOption "unfree"; |     enable = mkEnableOption "unfree"; | ||||||
|     allowedPackages = mkOption { |     allowedPackages = mkOption { | ||||||
|       type = types.listOf types.str; |       type = types.listOf types.str; | ||||||
|       default = [ ]; |       default = []; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,24 +1,19 @@ | |||||||
| { | { config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   # Nixvim |   # Nixvim | ||||||
|   nixvim = import (builtins.fetchGit { url = "https://github.com/nix-community/nixvim"; }); |   nixvim = import (builtins.fetchGit { | ||||||
|  |     url = "https://github.com/nix-community/nixvim"; | ||||||
|  |   }); | ||||||
| 
 | 
 | ||||||
|   # Stylix |   # Stylix | ||||||
|   stylix = import ( |   stylix = import (pkgs.fetchFromGitHub { | ||||||
|     pkgs.fetchFromGitHub { |  | ||||||
|     owner = "danth"; |     owner = "danth"; | ||||||
|     repo = "stylix"; |     repo = "stylix"; | ||||||
|     rev = "1ff9d37d27377bfe8994c24a8d6c6c1734ffa116"; |     rev = "1ff9d37d27377bfe8994c24a8d6c6c1734ffa116"; | ||||||
|     sha256 = "0dz8h1ga8lnfvvmvsf6iqvnbvxrvx3qxi0y8s8b72066mqgvy8y5"; |     sha256 = "0dz8h1ga8lnfvvmvsf6iqvnbvxrvx3qxi0y8s8b72066mqgvy8y5"; | ||||||
|     } |   }); | ||||||
|   ); |  | ||||||
| 
 | 
 | ||||||
|   # User configuration |   # User configuration | ||||||
|   userModule = types.submodule { |   userModule = types.submodule { | ||||||
| @ -41,8 +36,7 @@ let | |||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   imports = [ |   imports = [ | ||||||
|     # Import home manager |     # Import home manager | ||||||
|     <home-manager/nixos> |     <home-manager/nixos> | ||||||
| @ -54,7 +48,7 @@ in | |||||||
|   options = { |   options = { | ||||||
|     machine.users = mkOption { |     machine.users = mkOption { | ||||||
|       type = types.attrsOf userModule; |       type = types.attrsOf userModule; | ||||||
|       default = { }; |       default = {}; | ||||||
|       description = "Users configured on this system."; |       description = "Users configured on this system."; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
|  | |||||||
| @ -1,9 +1,4 @@ | |||||||
| { | { input, pkgs, config, ... }: | ||||||
|   input, |  | ||||||
|   pkgs, |  | ||||||
|   config, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| {  | {  | ||||||
|   imports = [ |   imports = [ | ||||||
| @ -14,8 +9,6 @@ | |||||||
|     ./firefox/default.nix |     ./firefox/default.nix | ||||||
|     ./fontconfig/default.nix |     ./fontconfig/default.nix | ||||||
|     ./foot/default.nix |     ./foot/default.nix | ||||||
|     ./language/nix.nix |  | ||||||
|     ./language/rust.nix |  | ||||||
|     ./mako/default.nix |     ./mako/default.nix | ||||||
|     ./neovim/default.nix |     ./neovim/default.nix | ||||||
|     ./obsidian/default.nix |     ./obsidian/default.nix | ||||||
|  | |||||||
| @ -1,17 +1,11 @@ | |||||||
| { | { lib, config, pkgs, ... }:  | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.waybar; |   cfg = config.modules.waybar; | ||||||
|   theme = config.theming; |   theme = config.theming; | ||||||
|   colors = theme.colors; |   colors = theme.colors; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.waybar = { |   options.modules.waybar = { | ||||||
|     enable = mkEnableOption "waybar"; |     enable = mkEnableOption "waybar"; | ||||||
|   }; |   }; | ||||||
| @ -28,7 +22,9 @@ in | |||||||
|         mainBar = { |         mainBar = { | ||||||
|           layer = "top"; |           layer = "top"; | ||||||
|           spacing = 16; |           spacing = 16; | ||||||
|           modules-left = [ "river/tags" ]; |           modules-left = [ | ||||||
|  |             "river/tags" | ||||||
|  |           ]; | ||||||
|           modules-center = [ |           modules-center = [ | ||||||
|             #"river/window" |             #"river/window" | ||||||
|             "mpris" |             "mpris" | ||||||
| @ -65,30 +61,14 @@ in | |||||||
|               #default = [ "" "" ]; |               #default = [ "" "" ]; | ||||||
|               headphone = ""; |               headphone = ""; | ||||||
|               headphone-muted = ""; |               headphone-muted = ""; | ||||||
|               default = [ |               default = [ "" "" "" ]; | ||||||
|                 "" |  | ||||||
|                 "" |  | ||||||
|                 "" |  | ||||||
|               ]; |  | ||||||
|             }; |             }; | ||||||
|           }; |           }; | ||||||
|           battery = { |           battery = { | ||||||
|             format = "{icon} {capacity}%"; # Spacing achieved using "Thin Space" |             format = "{icon} {capacity}%"; # Spacing achieved using "Thin Space" | ||||||
|             format-charging = " {capacity}%"; # Spacing achieved using "Thin Space" |             format-charging = " {capacity}%"; # Spacing achieved using "Thin Space" | ||||||
|             #format-icons = [ "" "" "" "" "" "" "" "" "" "" "" ]; |             #format-icons = [ "" "" "" "" "" "" "" "" "" "" "" ]; | ||||||
|             format-icons = [ |             format-icons = [ "" "" "" "" "" "" "" "" "" "" "" ]; | ||||||
|               "" |  | ||||||
|               "" |  | ||||||
|               "" |  | ||||||
|               "" |  | ||||||
|               "" |  | ||||||
|               "" |  | ||||||
|               "" |  | ||||||
|               "" |  | ||||||
|               "" |  | ||||||
|               "" |  | ||||||
|               "" |  | ||||||
|             ]; |  | ||||||
|             interval = 1; |             interval = 1; | ||||||
|           }; |           }; | ||||||
|           clock = { |           clock = { | ||||||
|  | |||||||
| @ -1,15 +1,9 @@ | |||||||
| { | { lib, pkgs, config, ... }: | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   config, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.desktop; |   cfg = config.modules.desktop; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   imports = [ |   imports = [ | ||||||
|     # Import desktop environment modules |     # Import desktop environment modules | ||||||
|     ./bar/waybar.nix |     ./bar/waybar.nix | ||||||
| @ -27,23 +21,18 @@ in | |||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = { |   config = { | ||||||
|     home.packages = optionals cfg.wayland ( |     home.packages = optionals cfg.wayland (with pkgs; [ | ||||||
|       with pkgs; |  | ||||||
|       [ |  | ||||||
|       pkgs.wl-clipboard |       pkgs.wl-clipboard | ||||||
|       pkgs.wtype |       pkgs.wtype | ||||||
|       ] |     ]); | ||||||
|     ); |  | ||||||
| 
 | 
 | ||||||
|     home.file.".initrc" = { |     home.file.".initrc" = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       executable = true; |       executable = true; | ||||||
|       text = |       text = '' | ||||||
|         '' |  | ||||||
|         #!${pkgs.bash}/bin/bash |         #!${pkgs.bash}/bin/bash | ||||||
| 
 | 
 | ||||||
|         '' |       '' + cfg.initScript; | ||||||
|         + cfg.initScript; |  | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,20 +1,16 @@ | |||||||
| { | { lib, pkgs, config, ... }: | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   config, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.waylock; |   cfg = config.modules.waylock; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.waylock = { |   options.modules.waylock = { | ||||||
|     enable = mkEnableOption "waylock"; |     enable = mkEnableOption "waylock"; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = { |   config = { | ||||||
|     home.packages = mkIf cfg.enable (with pkgs; [ waylock ]); |     home.packages = mkIf cfg.enable (with pkgs; [ | ||||||
|  |       waylock | ||||||
|  |     ]); | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
| @ -1,14 +1,8 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| let | let | ||||||
|   cfg = config.modules.river; |   cfg = config.modules.river; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.river.enable = lib.mkEnableOption "river"; |   options.modules.river.enable = lib.mkEnableOption "river"; | ||||||
| 
 | 
 | ||||||
|   # osConfig = lib.mkIf cfg.enable { |   # osConfig = lib.mkIf cfg.enable { | ||||||
| @ -19,9 +13,6 @@ in | |||||||
|     # Set desktop type to wayland |     # Set desktop type to wayland | ||||||
|     modules.desktop.wayland = true; |     modules.desktop.wayland = true; | ||||||
| 
 | 
 | ||||||
|     # TODO: Move elsewhere and make keybindings more configurable |  | ||||||
|     modules.rofi.enable = true; |  | ||||||
| 
 |  | ||||||
|     # Change desktop to execute river |     # Change desktop to execute river | ||||||
|     modules.desktop.initScript = '' |     modules.desktop.initScript = '' | ||||||
|       river |       river | ||||||
| @ -46,31 +37,20 @@ in | |||||||
|       enable = true; |       enable = true; | ||||||
|       systemd.enable = false; |       systemd.enable = false; | ||||||
|       xwayland.enable = true; |       xwayland.enable = true; | ||||||
|       settings = |       settings = let | ||||||
|         let |  | ||||||
|         layout = "rivertile"; |         layout = "rivertile"; | ||||||
|         layoutOptions = "-outer-padding ${toString config.theming.layout.windowPadding} -view-padding ${toString config.theming.layout.windowPadding}"; |         layoutOptions = "-outer-padding ${toString config.theming.layout.windowPadding} -view-padding ${toString config.theming.layout.windowPadding}"; | ||||||
|           modes = [ |         modes = ["normal" "locked"]; | ||||||
|             "normal" |         tags = [1 2 3 4 5 6 7 8 9]; | ||||||
|             "locked" |  | ||||||
|           ]; |  | ||||||
|           tags = [ |  | ||||||
|             1 |  | ||||||
|             2 |  | ||||||
|             3 |  | ||||||
|             4 |  | ||||||
|             5 |  | ||||||
|             6 |  | ||||||
|             7 |  | ||||||
|             8 |  | ||||||
|             9 |  | ||||||
|           ]; |  | ||||||
|         waylockOptions = "-init-color 0x${colors.bg} -input-color 0x${colors.focused} -fail-color 0x${colors.bg}"; |         waylockOptions = "-init-color 0x${colors.bg} -input-color 0x${colors.focused} -fail-color 0x${colors.bg}"; | ||||||
| 
 | 
 | ||||||
|         colors = config.theming.colors; |         colors = config.theming.colors; | ||||||
| 
 | 
 | ||||||
|         # Quick pow function |         # Quick pow function | ||||||
|           pow2 = power: if power != 0 then 2 * (pow2 (power - 1)) else 1; |         pow2 = power: | ||||||
|  |           if power != 0 | ||||||
|  |           then 2 * (pow2 (power - 1)) | ||||||
|  |           else 1; | ||||||
| 
 | 
 | ||||||
|         # Modifiers |         # Modifiers | ||||||
|         main = "Super"; |         main = "Super"; | ||||||
| @ -80,8 +60,7 @@ in | |||||||
|         scm = "Super+Control"; |         scm = "Super+Control"; | ||||||
|         scam = "Super+Control+Alt"; |         scam = "Super+Control+Alt"; | ||||||
|         ssc = "Super+Shift+Control"; |         ssc = "Super+Shift+Control"; | ||||||
|         in |       in { | ||||||
|         { |  | ||||||
|         default-layout = "${layout}"; |         default-layout = "${layout}"; | ||||||
|         set-repeat = "50 300"; |         set-repeat = "50 300"; | ||||||
|         xcursor-theme = "BreezeX-RosePine-Linux 24"; |         xcursor-theme = "BreezeX-RosePine-Linux 24"; | ||||||
| @ -97,11 +76,8 @@ in | |||||||
|           "\"${layout} ${layoutOptions}\"" |           "\"${layout} ${layoutOptions}\"" | ||||||
|           "waybar" |           "waybar" | ||||||
|         ]; |         ]; | ||||||
|           map = ( |         map = (lib.attrsets.recursiveUpdate ({ | ||||||
|             lib.attrsets.recursiveUpdate |           normal = { | ||||||
|               ({ |  | ||||||
|                 normal = |  | ||||||
|                   { |  | ||||||
|             "${main} Q" = "close"; |             "${main} Q" = "close"; | ||||||
|             "${ssm} E" = "exit"; |             "${ssm} E" = "exit"; | ||||||
| 
 | 
 | ||||||
| @ -159,33 +135,13 @@ in | |||||||
|             # Toggle modes |             # Toggle modes | ||||||
|             "${main} Space" = "toggle-float"; |             "${main} Space" = "toggle-float"; | ||||||
|             "${main} F" = "toggle-fullscreen"; |             "${main} F" = "toggle-fullscreen"; | ||||||
|                   } |           } // builtins.listToAttrs (builtins.concatLists (map (tag: [ | ||||||
|                   // builtins.listToAttrs ( |             { name = "${main} ${toString tag}"; value = "set-focused-tags ${toString (pow2 (tag - 1))}"; } | ||||||
|                     builtins.concatLists ( |             { name = "${ssm} ${toString tag}"; value = "set-view-tags ${toString (pow2 (tag - 1))}"; } | ||||||
|                       map (tag: [ |             { name = "${scm} ${toString tag}"; value = "toggle-focused-tags ${toString (pow2 (tag - 1))}"; } | ||||||
|                         { |             { name = "${ssc} ${toString tag}"; value = "toggle-view-tags ${toString (pow2 (tag - 1))}"; } | ||||||
|                           name = "${main} ${toString tag}"; |           ]) tags));  | ||||||
|                           value = "set-focused-tags ${toString (pow2 (tag - 1))}"; |         }) (builtins.listToAttrs (map (mode: { | ||||||
|                         } |  | ||||||
|                         { |  | ||||||
|                           name = "${ssm} ${toString tag}"; |  | ||||||
|                           value = "set-view-tags ${toString (pow2 (tag - 1))}"; |  | ||||||
|                         } |  | ||||||
|                         { |  | ||||||
|                           name = "${scm} ${toString tag}"; |  | ||||||
|                           value = "toggle-focused-tags ${toString (pow2 (tag - 1))}"; |  | ||||||
|                         } |  | ||||||
|                         { |  | ||||||
|                           name = "${ssc} ${toString tag}"; |  | ||||||
|                           value = "toggle-view-tags ${toString (pow2 (tag - 1))}"; |  | ||||||
|                         } |  | ||||||
|                       ]) tags |  | ||||||
|                     ) |  | ||||||
|                   ); |  | ||||||
|               }) |  | ||||||
|               ( |  | ||||||
|                 builtins.listToAttrs ( |  | ||||||
|                   map (mode: { |  | ||||||
|           name = "${mode}"; |           name = "${mode}"; | ||||||
|           value = { |           value = { | ||||||
|             # Control volume |             # Control volume | ||||||
| @ -202,10 +158,7 @@ in | |||||||
|             "None XF86Go" = "spawn \"playerctl play-pause\""; |             "None XF86Go" = "spawn \"playerctl play-pause\""; | ||||||
|             "None Cancel" = "spawn \"playerctl next\""; |             "None Cancel" = "spawn \"playerctl next\""; | ||||||
|           }; |           }; | ||||||
|                   }) modes |         }) modes))); | ||||||
|                 ) |  | ||||||
|               ) |  | ||||||
|           ); |  | ||||||
|         map-pointer = { |         map-pointer = { | ||||||
|           normal = { |           normal = { | ||||||
|             "${main} BTN_LEFT" = "move-view"; |             "${main} BTN_LEFT" = "move-view"; | ||||||
|  | |||||||
| @ -1,15 +1,9 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.discord; |   cfg = config.modules.discord; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.discord = { |   options.modules.discord = { | ||||||
|     enable = mkEnableOption "discord"; |     enable = mkEnableOption "discord"; | ||||||
|   }; |   }; | ||||||
| @ -17,6 +11,8 @@ in | |||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|     modules.unfree.allowedPackages = [ "discord" ]; |     modules.unfree.allowedPackages = [ "discord" ]; | ||||||
| 
 | 
 | ||||||
|     home.packages = with pkgs; [ discord ]; |     home.packages = with pkgs; [ | ||||||
|  |       discord | ||||||
|  |     ]; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
| @ -1,16 +1,14 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.feishin; |   cfg = config.modules.feishin; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.feishin.enable = mkEnableOption "feishin"; |   options.modules.feishin.enable = mkEnableOption "feishin"; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { home.packages = with pkgs; [ feishin ]; }; |   config = mkIf cfg.enable { | ||||||
|  |     home.packages = with pkgs; [ | ||||||
|  |       feishin | ||||||
|  |     ]; | ||||||
|  |   }; | ||||||
| } | } | ||||||
| @ -1,14 +1,8 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| let | let | ||||||
|   cfg = config.modules.firefox; |   cfg = config.modules.firefox; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.firefox.enable = lib.mkEnableOption "firefox"; |   options.modules.firefox.enable = lib.mkEnableOption "firefox"; | ||||||
| 
 | 
 | ||||||
|   config = lib.mkIf cfg.enable { |   config = lib.mkIf cfg.enable { | ||||||
| @ -38,9 +32,7 @@ in | |||||||
|         DisableTelemetry = true; |         DisableTelemetry = true; | ||||||
|         DisplayBookmarksToolbar = "never"; |         DisplayBookmarksToolbar = "never"; | ||||||
|         DisplayMenuBar = "never"; |         DisplayMenuBar = "never"; | ||||||
|         DNSOverHTTPS = { |         DNSOverHTTPS = { Enabled = false; }; | ||||||
|           Enabled = false; |  | ||||||
|         }; |  | ||||||
|         DontCheckDefaultBrowser = true; |         DontCheckDefaultBrowser = true; | ||||||
|         PasswordManagerEnabled = false; |         PasswordManagerEnabled = false; | ||||||
|         TranslateEnabled = true; |         TranslateEnabled = true; | ||||||
| @ -50,7 +42,9 @@ in | |||||||
|       profiles.nixos = { |       profiles.nixos = { | ||||||
|         search.default = "DuckDuckGo"; |         search.default = "DuckDuckGo"; | ||||||
| 
 | 
 | ||||||
|         extensions = with pkgs.nur.repos.rycee.firefox-addons; [ ublock-origin ]; |         extensions = with pkgs.nur.repos.rycee.firefox-addons; [ | ||||||
|  |           ublock-origin | ||||||
|  |         ]; | ||||||
| 
 | 
 | ||||||
|         settings = { |         settings = { | ||||||
|           "browser.tabs.inTitlebar" = 0; |           "browser.tabs.inTitlebar" = 0; | ||||||
|  | |||||||
| @ -1,9 +1,4 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
| @ -20,11 +15,8 @@ let | |||||||
|     </alias> |     </alias> | ||||||
|   ''; |   ''; | ||||||
| 
 | 
 | ||||||
|   configContent = concatStrings ( |   configContent = concatStrings (map (font: aliasConfig config.theming.fonts.pkgs.${font}) config.theming.fonts.installed); | ||||||
|     map (font: aliasConfig config.theming.fonts.pkgs.${font}) config.theming.fonts.installed | in { | ||||||
|   ); |  | ||||||
| in |  | ||||||
| { |  | ||||||
|   options.modules.fontconfig = { |   options.modules.fontconfig = { | ||||||
|     enable = mkEnableOption "fontconfig"; |     enable = mkEnableOption "fontconfig"; | ||||||
|   }; |   }; | ||||||
| @ -34,10 +26,18 @@ in | |||||||
|       enable = true; |       enable = true; | ||||||
| 
 | 
 | ||||||
|       defaultFonts = { |       defaultFonts = { | ||||||
|         serif = [ config.theming.fonts.serif.name ]; |         serif = [ | ||||||
|         sansSerif = [ config.theming.fonts.sansSerif.name ]; |           config.theming.fonts.serif.name | ||||||
|         monospace = [ config.theming.fonts.monospace.name ]; |         ]; | ||||||
|         emoji = [ config.theming.fonts.emoji.name ]; |         sansSerif = [ | ||||||
|  |           config.theming.fonts.sansSerif.name | ||||||
|  |         ]; | ||||||
|  |         monospace = [ | ||||||
|  |           config.theming.fonts.monospace.name | ||||||
|  |         ]; | ||||||
|  |         emoji = [ | ||||||
|  |           config.theming.fonts.emoji.name | ||||||
|  |         ]; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,27 +1,19 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.foot; |   cfg = config.modules.foot; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.foot.enable = mkEnableOption "foot"; |   options.modules.foot.enable = mkEnableOption "foot"; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|     programs.foot = { |     programs.foot = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       settings = { |       settings = { | ||||||
|         main = |         main = let | ||||||
|           let |  | ||||||
|           font = config.theming.fonts.monospace.name; |           font = config.theming.fonts.monospace.name; | ||||||
|           size = toString config.theming.fonts.monospace.recommendedSize; |           size = toString config.theming.fonts.monospace.recommendedSize; | ||||||
|           in |         in { | ||||||
|           { |  | ||||||
|           font = mkForce "${font}:style=Regular:size=${size}"; |           font = mkForce "${font}:style=Regular:size=${size}"; | ||||||
|           font-bold = "${font}:style=Bold:size=${size}"; |           font-bold = "${font}:style=Bold:size=${size}"; | ||||||
|           font-italic = "${font}:style=Italic:size=${size}"; |           font-italic = "${font}:style=Italic:size=${size}"; | ||||||
|  | |||||||
| @ -1,50 +0,0 @@ | |||||||
| { |  | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 |  | ||||||
| with lib; |  | ||||||
| let |  | ||||||
|   cfg = config.modules.nix; |  | ||||||
| in |  | ||||||
| { |  | ||||||
|   options.modules.nix = { |  | ||||||
|     enable = mkEnableOption "nix"; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   config = mkIf cfg.enable { |  | ||||||
|     # Development packages |  | ||||||
|     home.packages = with pkgs; [ |  | ||||||
|       nix-tree |  | ||||||
|       nixfmt-rfc-style |  | ||||||
|       nixd |  | ||||||
|     ]; |  | ||||||
| 
 |  | ||||||
|     # VSCode configuration |  | ||||||
|     programs.vscode = { |  | ||||||
|       extensions = with pkgs.vscode-extensions; [ jnoortheen.nix-ide ]; |  | ||||||
| 
 |  | ||||||
|       userSettings = { |  | ||||||
|         "[nix]" = { |  | ||||||
|           "editor.tabSize" = 2; |  | ||||||
|         }; |  | ||||||
|         "nix.enableLanguageServer" = true; |  | ||||||
|         "nix.serverPath" = "nixd"; |  | ||||||
|         "nix.serverSettings" = { |  | ||||||
|           nixd = { |  | ||||||
|             formatting = { |  | ||||||
|               command = [ "nixfmt" ]; |  | ||||||
|             }; |  | ||||||
|           }; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     # Neovim configuration |  | ||||||
|     programs.nixvim = { |  | ||||||
| 
 |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
| @ -1,42 +0,0 @@ | |||||||
| { |  | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 |  | ||||||
| with lib; |  | ||||||
| let |  | ||||||
|   cfg = config.modules.rust; |  | ||||||
| in |  | ||||||
| { |  | ||||||
|   options.modules.rust = { |  | ||||||
|     enable = mkEnableOption "rust"; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   config = mkIf cfg.enable { |  | ||||||
|     # Development packages |  | ||||||
|     home.packages = with pkgs; [ |  | ||||||
|       rustc |  | ||||||
|       cargo |  | ||||||
|       rust-analyzer |  | ||||||
|       rustfmt |  | ||||||
|     ]; |  | ||||||
| 
 |  | ||||||
|     # VSCode configuration |  | ||||||
|     programs.vscode = { |  | ||||||
|       extensions = with pkgs.vscode-extensions; [ rust-lang.rust-analyzer ]; |  | ||||||
| 
 |  | ||||||
|       userSettings = { |  | ||||||
|         "[rust]" = { }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     # Neovim configuration |  | ||||||
|     programs.nixvim = { |  | ||||||
|       plugins.rust-tools = { |  | ||||||
|         enable = true; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
| @ -1,17 +1,11 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.mako; |   cfg = config.modules.mako; | ||||||
|   theme = config.theming; |   theme = config.theming; | ||||||
|   colors = theme.colors; |   colors = theme.colors; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.mako.enable = mkEnableOption "mako"; |   options.modules.mako.enable = mkEnableOption "mako"; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|  | |||||||
| @ -1,17 +1,11 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.neovim; |   cfg = config.modules.neovim; | ||||||
|   theme = config.theming; |   theme = config.theming; | ||||||
|   colors = theme.colors; |   colors = theme.colors; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.neovim = { |   options.modules.neovim = { | ||||||
|     enable = mkEnableOption "neovim"; |     enable = mkEnableOption "neovim"; | ||||||
|   }; |   }; | ||||||
| @ -23,7 +17,8 @@ in | |||||||
|       viAlias = true; |       viAlias = true; | ||||||
|       vimAlias = true; |       vimAlias = true; | ||||||
| 
 | 
 | ||||||
|       extraPackages = with pkgs; [ ]; |       extraPackages = with pkgs; [ | ||||||
|  |       ]; | ||||||
| 
 | 
 | ||||||
|       opts = { |       opts = { | ||||||
|         number = true; |         number = true; | ||||||
| @ -174,6 +169,10 @@ in | |||||||
|       #  enable = true; |       #  enable = true; | ||||||
|       #}; |       #}; | ||||||
| 
 | 
 | ||||||
|  |       plugins.rust-tools = { | ||||||
|  |         enable = true; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|       plugins.vimtex = { |       plugins.vimtex = { | ||||||
|         enable = true; |         enable = true; | ||||||
|         texlivePackage = null; |         texlivePackage = null; | ||||||
|  | |||||||
| @ -1,18 +1,16 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.obsidian; |   cfg = config.modules.obsidian; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.obsidian = { |   options.modules.obsidian = { | ||||||
|     enable = mkEnableOption "obsidian"; |     enable = mkEnableOption "obsidian"; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { home.packages = with pkgs; [ obsidian ]; }; |   config = mkIf cfg.enable { | ||||||
|  |     home.packages = with pkgs; [ | ||||||
|  |       obsidian | ||||||
|  |     ]; | ||||||
|  |   }; | ||||||
| } | } | ||||||
| @ -1,16 +1,10 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.qutebrowser; |   cfg = config.modules.qutebrowser; | ||||||
|   theme = config.theming; |   theme = config.theming; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.qutebrowser.enable = mkEnableOption "qutebrowser"; |   options.modules.qutebrowser.enable = mkEnableOption "qutebrowser"; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|  | |||||||
| @ -1,17 +1,11 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.rofi; |   cfg = config.modules.rofi; | ||||||
|   theme = config.theming; |   theme = config.theming; | ||||||
|   colors = theme.colors; |   colors = theme.colors; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.rofi.enable = mkEnableOption "rofi"; |   options.modules.rofi.enable = mkEnableOption "rofi"; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
| @ -19,11 +13,9 @@ in | |||||||
|       enable = true; |       enable = true; | ||||||
|       package = pkgs.rofi-wayland; |       package = pkgs.rofi-wayland; | ||||||
|       font = "${theme.fonts.monospace.name} ${toString theme.fonts.monospace.recommendedSize}"; |       font = "${theme.fonts.monospace.name} ${toString theme.fonts.monospace.recommendedSize}"; | ||||||
|       theme = |       theme = let | ||||||
|         let |  | ||||||
|         inherit (config.lib.formats.rasi) mkLiteral; |         inherit (config.lib.formats.rasi) mkLiteral; | ||||||
|         in |       in { | ||||||
|         { |  | ||||||
|         "*" = { |         "*" = { | ||||||
|           background-color = mkLiteral "rgba(0, 0, 0, 0%)"; |           background-color = mkLiteral "rgba(0, 0, 0, 0%)"; | ||||||
|           border-color = mkLiteral "#${colors.fg}"; |           border-color = mkLiteral "#${colors.fg}"; | ||||||
|  | |||||||
| @ -1,21 +1,17 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.rofi-rbw; |   cfg = config.modules.rofi-rbw; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.rofi-rbw.enable = mkEnableOption "rofi-rbw"; |   options.modules.rofi-rbw.enable = mkEnableOption "rofi-rbw"; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|     modules.rofi.enable = true; |     modules.rofi.enable = true; | ||||||
| 
 | 
 | ||||||
|     home.packages = [ pkgs.rofi-rbw ]; |     home.packages = [ | ||||||
|  |       pkgs.rofi-rbw | ||||||
|  |     ]; | ||||||
| 
 | 
 | ||||||
|     # TODO: Move to separate module and make configurable |     # TODO: Move to separate module and make configurable | ||||||
|     programs.rbw = { |     programs.rbw = { | ||||||
|  | |||||||
| @ -1,15 +1,9 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let  | let  | ||||||
|   cfg = config.modules.bash; |   cfg = config.modules.bash; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.bash = { |   options.modules.bash = { | ||||||
|     enable = mkEnableOption "bash"; |     enable = mkEnableOption "bash"; | ||||||
|   }; |   }; | ||||||
|  | |||||||
| @ -1,15 +1,9 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let  | let  | ||||||
|   cfg = config.modules.fish; |   cfg = config.modules.fish; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.fish = { |   options.modules.fish = { | ||||||
|     enable = mkEnableOption "fish"; |     enable = mkEnableOption "fish"; | ||||||
| 
 | 
 | ||||||
| @ -37,18 +31,9 @@ in | |||||||
|       enable = true; |       enable = true; | ||||||
| 
 | 
 | ||||||
|       plugins = [ |       plugins = [ | ||||||
|         (mkIf cfg.plugins.done { |         (mkIf cfg.plugins.done { name = "done"; src = pkgs.fishPlugins.done.src; }) | ||||||
|           name = "done"; |         (mkIf cfg.plugins.fzf { name = "fzf"; src = pkgs.fishPlugins.fzf-fish.src; }) | ||||||
|           src = pkgs.fishPlugins.done.src; |         (mkIf cfg.plugins.grc { name = "grc"; src = pkgs.fishPlugins.grc.src; }) | ||||||
|         }) |  | ||||||
|         (mkIf cfg.plugins.fzf { |  | ||||||
|           name = "fzf"; |  | ||||||
|           src = pkgs.fishPlugins.fzf-fish.src; |  | ||||||
|         }) |  | ||||||
|         (mkIf cfg.plugins.grc { |  | ||||||
|           name = "grc"; |  | ||||||
|           src = pkgs.fishPlugins.grc.src; |  | ||||||
|         }) |  | ||||||
|       ]; |       ]; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,12 +1,6 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; { | ||||||
| { |  | ||||||
|   options.modules.steam = { |   options.modules.steam = { | ||||||
|     enable = mkEnableOption "steam"; |     enable = mkEnableOption "steam"; | ||||||
|   }; |   }; | ||||||
|  | |||||||
| @ -1,14 +1,10 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   enabled = any (user: user.modules.river.enable) (attrValues config.home-manager.users); |   enabled = any (user: user.modules.river.enable) (attrValues config.home-manager.users); | ||||||
| in | in { | ||||||
| { |   config = mkIf enabled { | ||||||
|   config = mkIf enabled { programs.river.enable = true; }; |     programs.river.enable = true; | ||||||
|  |   }; | ||||||
| } | } | ||||||
| @ -1,14 +1,10 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   enabled = any (user: user.modules.steam.enable) (attrValues config.home-manager.users); |   enabled = any (user: user.modules.steam.enable) (attrValues config.home-manager.users); | ||||||
| in | in { | ||||||
| { |   config = mkIf enabled { | ||||||
|   config = mkIf enabled { programs.steam.enable = true; }; |     programs.steam.enable = true; | ||||||
|  |   }; | ||||||
| } | } | ||||||
| @ -1,14 +1,10 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   enabled = any (user: user.modules.waylock.enable) (attrValues config.home-manager.users); |   enabled = any (user: user.modules.waylock.enable) (attrValues config.home-manager.users); | ||||||
| in | in { | ||||||
| { |   config = mkIf enabled { | ||||||
|   config = mkIf enabled { security.pam.services.waylock = { }; }; |     security.pam.services.waylock = {}; | ||||||
|  |   }; | ||||||
| } | } | ||||||
| @ -1,9 +1,4 @@ | |||||||
| { | { pkgs, lib, config, ... }: | ||||||
|   pkgs, |  | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
| @ -35,7 +30,7 @@ let | |||||||
|       }; |       }; | ||||||
|       fallbackFonts = mkOption { |       fallbackFonts = mkOption { | ||||||
|         type = types.listOf types.str; |         type = types.listOf types.str; | ||||||
|         default = [ ]; |         default = []; | ||||||
|         description = "Fallback fonts for specified font."; |         description = "Fallback fonts for specified font."; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
| @ -68,35 +63,25 @@ let | |||||||
|   ] ++ map (font: font.name) cfg.fonts.extraFonts; |   ] ++ map (font: font.name) cfg.fonts.extraFonts; | ||||||
| 
 | 
 | ||||||
|   # Flatten dependencies of fonts |   # Flatten dependencies of fonts | ||||||
|   fontPackages = |   fontPackages = converge (fonts: | ||||||
|     converge |     listToAttrs (map (font: { | ||||||
|       ( |  | ||||||
|         fonts: |  | ||||||
|         listToAttrs ( |  | ||||||
|           map |  | ||||||
|             (font: { |  | ||||||
|       name = font; |       name = font; | ||||||
|       value = true; |       value = true; | ||||||
|             }) |     }) ( | ||||||
|             ( |       flatten (map (font:  | ||||||
|               flatten (map (font: [ font.name ] ++ cfg.fonts.pkgs.${font.name}.fallbackFonts) (attrsToList fonts)) |         [ font.name ] | ||||||
|             ) |         ++ cfg.fonts.pkgs.${font.name}.fallbackFonts | ||||||
|         ) |       ) (attrsToList fonts)) | ||||||
|       ) |     )) | ||||||
|       ( |   ) (listToAttrs (map (font: { | ||||||
|         listToAttrs ( |  | ||||||
|           map (font: { |  | ||||||
|     name = font; |     name = font; | ||||||
|     value = true; |     value = true; | ||||||
|           }) enabledFonts |   }) enabledFonts)); | ||||||
|         ) |  | ||||||
|       ); |  | ||||||
| 
 | 
 | ||||||
|   # Convert set of fonts to list of packages |   # Convert set of fonts to list of packages | ||||||
|   fontNameList = map (font: font.name) (attrsToList fontPackages); |   fontNameList = map (font: font.name) (attrsToList fontPackages); | ||||||
|   fontPackageList = map (font: cfg.fonts.pkgs.${font}.package) fontNameList; |   fontPackageList = map (font: cfg.fonts.pkgs.${font}.package) fontNameList; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   imports = [ |   imports = [ | ||||||
|     # Import all themes |     # Import all themes | ||||||
|     ./themes/gruvbox.nix |     ./themes/gruvbox.nix | ||||||
| @ -105,11 +90,7 @@ in | |||||||
| 
 | 
 | ||||||
|   options.modules.theming.enable = mkEnableOption "theming"; |   options.modules.theming.enable = mkEnableOption "theming"; | ||||||
| 
 | 
 | ||||||
|   options.theming = |   options.theming = let colors = config.theming.schemeColors; in { | ||||||
|     let |  | ||||||
|       colors = config.theming.schemeColors; |  | ||||||
|     in |  | ||||||
|     { |  | ||||||
|     darkMode = mkOption { |     darkMode = mkOption { | ||||||
|       type = types.bool; |       type = types.bool; | ||||||
|       default = false; |       default = false; | ||||||
| @ -185,12 +166,10 @@ in | |||||||
|     fonts = { |     fonts = { | ||||||
|       pkgs = mkOption { |       pkgs = mkOption { | ||||||
|         type = types.attrsOf fontModule; |         type = types.attrsOf fontModule; | ||||||
|           default = builtins.listToAttrs ( |         default = builtins.listToAttrs (map (module: { | ||||||
|             map (module: { |  | ||||||
|           name = module.name; |           name = module.name; | ||||||
|           value = module; |           value = module; | ||||||
|             }) (map (module: (import module) { inherit lib config pkgs; }) fontModules) |         }) (map (module: (import module) { inherit lib config pkgs; }) fontModules)); | ||||||
|           ); |  | ||||||
|         description = "All available font modules."; |         description = "All available font modules."; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
| @ -222,7 +201,7 @@ in | |||||||
| 
 | 
 | ||||||
|       extraFonts = mkOption { |       extraFonts = mkOption { | ||||||
|         type = types.listOf fontModule; |         type = types.listOf fontModule; | ||||||
|           default = [ ]; |         default = []; | ||||||
|         description = "Additional fonts to install."; |         description = "Additional fonts to install."; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
| @ -250,8 +229,7 @@ in | |||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     # Configure gtk theme |     # Configure gtk theme | ||||||
|     gtk = |     gtk = let | ||||||
|       let |  | ||||||
|       disableCSD = '' |       disableCSD = '' | ||||||
|         headerbar.default-decoration { |         headerbar.default-decoration { | ||||||
|           margin-bottom: 50px; |           margin-bottom: 50px; | ||||||
| @ -263,8 +241,7 @@ in | |||||||
|           box-shadow: none; |           box-shadow: none; | ||||||
|         } |         } | ||||||
|       ''; |       ''; | ||||||
|       in |     in { | ||||||
|       { |  | ||||||
|       enable = true; |       enable = true; | ||||||
| 
 | 
 | ||||||
|       theme = { |       theme = { | ||||||
| @ -272,8 +249,8 @@ in | |||||||
|         package = pkgs.gnome-themes-extra; |         package = pkgs.gnome-themes-extra; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|         gtk3.extraCss = mkIf (!cfg.clientSideDecorations) disableCSD; |       gtk3.extraCss = mkIf (! cfg.clientSideDecorations) disableCSD; | ||||||
|         gtk4.extraCss = mkIf (!cfg.clientSideDecorations) disableCSD; |       gtk4.extraCss = mkIf (! cfg.clientSideDecorations) disableCSD; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     # TODO: This should just straight up not be here |     # TODO: This should just straight up not be here | ||||||
| @ -312,22 +289,10 @@ in | |||||||
|       polarity = if cfg.darkMode then "dark" else "light"; |       polarity = if cfg.darkMode then "dark" else "light"; | ||||||
| 
 | 
 | ||||||
|       fonts = { |       fonts = { | ||||||
|         serif = getAttrs [ |         serif = getAttrs [ "name" "package" ] cfg.fonts.serif; | ||||||
|           "name" |         sansSerif = getAttrs [ "name" "package" ] cfg.fonts.sansSerif; | ||||||
|           "package" |         monospace = getAttrs [ "name" "package" ] cfg.fonts.monospace; | ||||||
|         ] cfg.fonts.serif; |         emoji = getAttrs [ "name" "package" ] cfg.fonts.emoji; | ||||||
|         sansSerif = getAttrs [ |  | ||||||
|           "name" |  | ||||||
|           "package" |  | ||||||
|         ] cfg.fonts.sansSerif; |  | ||||||
|         monospace = getAttrs [ |  | ||||||
|           "name" |  | ||||||
|           "package" |  | ||||||
|         ] cfg.fonts.monospace; |  | ||||||
|         emoji = getAttrs [ |  | ||||||
|           "name" |  | ||||||
|           "package" |  | ||||||
|         ] cfg.fonts.emoji; |  | ||||||
| 
 | 
 | ||||||
|         sizes = { |         sizes = { | ||||||
|           applications = mkDefault cfg.fonts.serif.recommendedSize; |           applications = mkDefault cfg.fonts.serif.recommendedSize; | ||||||
|  | |||||||
| @ -4,5 +4,6 @@ | |||||||
|   name = "Cozette Vector"; |   name = "Cozette Vector"; | ||||||
|   package = pkgs.cozette; |   package = pkgs.cozette; | ||||||
|   recommendedSize = 9; |   recommendedSize = 9; | ||||||
|   fallbackFonts = [ ]; |   fallbackFonts = [ | ||||||
|  |   ]; | ||||||
| } | } | ||||||
| @ -4,5 +4,7 @@ | |||||||
|   name = "Cozette"; |   name = "Cozette"; | ||||||
|   package = pkgs.cozette; |   package = pkgs.cozette; | ||||||
|   recommendedSize = 9; |   recommendedSize = 9; | ||||||
|   fallbackFonts = [ "Cozette Vector" ]; |   fallbackFonts = [ | ||||||
|  |     "Cozette Vector" | ||||||
|  |   ]; | ||||||
| } | } | ||||||
| @ -4,5 +4,5 @@ | |||||||
|   name = "DejaVu Sans"; |   name = "DejaVu Sans"; | ||||||
|   package = pkgs.dejavu_fonts; |   package = pkgs.dejavu_fonts; | ||||||
|   recommendedSize = 12; |   recommendedSize = 12; | ||||||
|   fallbackFonts = [ ]; |   fallbackFonts = []; | ||||||
| } | } | ||||||
| @ -4,5 +4,5 @@ | |||||||
|   name = "DejaVu Serif"; |   name = "DejaVu Serif"; | ||||||
|   package = pkgs.dejavu_fonts; |   package = pkgs.dejavu_fonts; | ||||||
|   recommendedSize = 12; |   recommendedSize = 12; | ||||||
|   fallbackFonts = [ ]; |   fallbackFonts = []; | ||||||
| } | } | ||||||
| @ -4,5 +4,7 @@ | |||||||
|   name = "Fira Code"; |   name = "Fira Code"; | ||||||
|   package = pkgs.fira-code; |   package = pkgs.fira-code; | ||||||
|   recommendedSize = 12; |   recommendedSize = 12; | ||||||
|   fallbackFonts = [ "Symbols Nerd Font Mono" ]; |   fallbackFonts = [ | ||||||
|  |     "Symbols Nerd Font Mono" | ||||||
|  |   ]; | ||||||
| } | } | ||||||
| @ -4,5 +4,5 @@ | |||||||
|   name = "Symbols Nerd Font Mono"; |   name = "Symbols Nerd Font Mono"; | ||||||
|   package = pkgs.nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; }; |   package = pkgs.nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; }; | ||||||
|   recommendedSize = 12; |   recommendedSize = 12; | ||||||
|   fallbackFonts = [ ]; |   fallbackFonts = []; | ||||||
| } | } | ||||||
| @ -4,5 +4,5 @@ | |||||||
|   name = "Noto Color Emoji"; |   name = "Noto Color Emoji"; | ||||||
|   package = pkgs.noto-fonts-color-emoji; |   package = pkgs.noto-fonts-color-emoji; | ||||||
|   recommendedSize = 12; |   recommendedSize = 12; | ||||||
|   fallbackFonts = [ ]; |   fallbackFonts = []; | ||||||
| } | } | ||||||
| @ -4,5 +4,5 @@ | |||||||
|   name = "wenquanyi bitmap song"; |   name = "wenquanyi bitmap song"; | ||||||
|   package = pkgs.wqy-bitmapsong; |   package = pkgs.wqy-bitmapsong; | ||||||
|   recommendedSize = 12; |   recommendedSize = 12; | ||||||
|   fallbackFonts = [ ]; |   fallbackFonts = []; | ||||||
| } | } | ||||||
| @ -4,5 +4,5 @@ | |||||||
|   name = "WenQuanYi Micro Hei Mono"; |   name = "WenQuanYi Micro Hei Mono"; | ||||||
|   package = pkgs.wqy-microhei; |   package = pkgs.wqy-microhei; | ||||||
|   recommendedSize = 12; |   recommendedSize = 12; | ||||||
|   fallbackFonts = [ ]; |   fallbackFonts = []; | ||||||
| } | } | ||||||
| @ -4,5 +4,5 @@ | |||||||
|   name = "WenQuanYi Micro Hei"; |   name = "WenQuanYi Micro Hei"; | ||||||
|   package = pkgs.wqy-microhei; |   package = pkgs.wqy-microhei; | ||||||
|   recommendedSize = 12; |   recommendedSize = 12; | ||||||
|   fallbackFonts = [ ]; |   fallbackFonts = []; | ||||||
| } | } | ||||||
| @ -4,5 +4,5 @@ | |||||||
|   name = "WenQuanYi Zen Hei Mono"; |   name = "WenQuanYi Zen Hei Mono"; | ||||||
|   package = pkgs.wqy-zenhei; |   package = pkgs.wqy-zenhei; | ||||||
|   recommendedSize = 12; |   recommendedSize = 12; | ||||||
|   fallbackFonts = [ ]; |   fallbackFonts = []; | ||||||
| } | } | ||||||
| @ -4,5 +4,5 @@ | |||||||
|   name = "WenQuanYi Zen Hei Sharp"; |   name = "WenQuanYi Zen Hei Sharp"; | ||||||
|   package = pkgs.wqy-zenhei; |   package = pkgs.wqy-zenhei; | ||||||
|   recommendedSize = 12; |   recommendedSize = 12; | ||||||
|   fallbackFonts = [ ]; |   fallbackFonts = []; | ||||||
| } | } | ||||||
| @ -4,5 +4,5 @@ | |||||||
|   name = "WenQuanYi Zen Hei"; |   name = "WenQuanYi Zen Hei"; | ||||||
|   package = pkgs.wqy-zenhei; |   package = pkgs.wqy-zenhei; | ||||||
|   recommendedSize = 12; |   recommendedSize = 12; | ||||||
|   fallbackFonts = [ ]; |   fallbackFonts = []; | ||||||
| } | } | ||||||
| @ -1,25 +1,14 @@ | |||||||
| { | { config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.theming.themes.catppuccin; |   cfg = config.theming.themes.catppuccin; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options = { |   options = { | ||||||
|     theming.themes.catppuccin = { |     theming.themes.catppuccin = { | ||||||
|       enable = mkEnableOption "catppuccin"; |       enable = mkEnableOption "catppuccin"; | ||||||
|       flavor = mkOption { |       flavor = mkOption { | ||||||
|         type = types.enum [ |         type = types.enum [ "latte" "frappe" "macchiato" "mocha" ]; | ||||||
|           "latte" |  | ||||||
|           "frappe" |  | ||||||
|           "macchiato" |  | ||||||
|           "mocha" |  | ||||||
|         ]; |  | ||||||
|         default = "mocha"; |         default = "mocha"; | ||||||
|         description = "The flavor of catppuccin theme."; |         description = "The flavor of catppuccin theme."; | ||||||
|       }; |       }; | ||||||
|  | |||||||
| @ -1,26 +1,16 @@ | |||||||
| { | { config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.theming.themes.gruvbox; |   cfg = config.theming.themes.gruvbox; | ||||||
|   mode = if cfg.darkMode then "dark" else "light"; |   mode = if cfg.darkMode then "dark" else "light"; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options = { |   options = { | ||||||
|     theming.themes.gruvbox = { |     theming.themes.gruvbox = { | ||||||
|       enable = mkEnableOption "gruvbox-hard"; |       enable = mkEnableOption "gruvbox-hard"; | ||||||
|       darkMode = mkEnableOption "dark mode"; |       darkMode = mkEnableOption "dark mode"; | ||||||
|       contrast = mkOption { |       contrast = mkOption { | ||||||
|         type = types.enum [ |         type = types.enum [ "hard" "medium" "soft" ]; | ||||||
|           "hard" |  | ||||||
|           "medium" |  | ||||||
|           "soft" |  | ||||||
|         ]; |  | ||||||
|         default = "hard"; |         default = "hard"; | ||||||
|         description = "The contrast level of the theme."; |         description = "The contrast level of the theme."; | ||||||
|       }; |       }; | ||||||
|  | |||||||
| @ -1,16 +1,10 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.vscode; |   cfg = config.modules.vscode; | ||||||
|   theme = config.theming; |   theme = config.theming; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.vscode = { |   options.modules.vscode = { | ||||||
|     enable = mkEnableOption "vscode"; |     enable = mkEnableOption "vscode"; | ||||||
|     codeFont = mkOption { |     codeFont = mkOption { | ||||||
| @ -26,13 +20,21 @@ in | |||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|     modules.unfree.allowedPackages = [ "vscode" ]; |     modules.unfree.allowedPackages = [ "vscode" ]; | ||||||
|      |      | ||||||
|     theming.fonts.extraFonts = [ cfg.codeFont ]; |     theming.fonts.extraFonts = [ | ||||||
|  |       cfg.codeFont | ||||||
|  |     ]; | ||||||
| 
 | 
 | ||||||
|     programs.vscode = { |     programs.vscode = { | ||||||
|       enable = true; |       enable = true; | ||||||
| 
 | 
 | ||||||
|       mutableExtensionsDir = false; |       extensions = with pkgs.vscode-extensions; [ | ||||||
|       extensions = with pkgs.vscode-extensions; [ eamodio.gitlens ]; |         eamodio.gitlens | ||||||
|  | 
 | ||||||
|  |         # Language support | ||||||
|  |         # TODO: Move to separate language modules | ||||||
|  |         bbenoist.nix | ||||||
|  |         rust-lang.rust-analyzer | ||||||
|  |       ]; | ||||||
| 
 | 
 | ||||||
|       userSettings = { |       userSettings = { | ||||||
|         # Font setup |         # Font setup | ||||||
| @ -43,9 +45,8 @@ in | |||||||
|         "terminal.integrated.fontFamily" = mkForce "'${cfg.codeFont.name}', '${cfg.fallbackFont.name}'"; |         "terminal.integrated.fontFamily" = mkForce "'${cfg.codeFont.name}', '${cfg.fallbackFont.name}'"; | ||||||
|         "terminal.integrated.fontSize" = mkForce (cfg.codeFont.recommendedSize); # Convert pt to px |         "terminal.integrated.fontSize" = mkForce (cfg.codeFont.recommendedSize); # Convert pt to px | ||||||
|          |          | ||||||
|         # Formatting |         # Autoformatting | ||||||
|         "editor.formatOnSave" = true; |         "editor.formatOnSave" = true; | ||||||
|         "editor.tabSize" = 4; |  | ||||||
| 
 | 
 | ||||||
|         # Layout |         # Layout | ||||||
|         "window.menuBarVisibility" = "hidden"; |         "window.menuBarVisibility" = "hidden"; | ||||||
|  | |||||||
| @ -1,15 +1,9 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.winbox; |   cfg = config.modules.winbox; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.winbox = { |   options.modules.winbox = { | ||||||
|     enable = mkEnableOption "winbox"; |     enable = mkEnableOption "winbox"; | ||||||
|   }; |   }; | ||||||
| @ -17,6 +11,8 @@ in | |||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|     modules.unfree.allowedPackages = [ "winbox" ]; |     modules.unfree.allowedPackages = [ "winbox" ]; | ||||||
| 
 | 
 | ||||||
|     home.packages = with pkgs; [ winbox ]; |     home.packages = with pkgs; [ | ||||||
|  |       winbox | ||||||
|  |     ]; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
| @ -1,14 +1,8 @@ | |||||||
| { | {config, lib, pkgs, ... }: | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| let | let | ||||||
|   cfg = config.modules.zathura; |   cfg = config.modules.zathura; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.zathura.enable = lib.mkEnableOption "zathura"; |   options.modules.zathura.enable = lib.mkEnableOption "zathura"; | ||||||
| 
 | 
 | ||||||
|   config = lib.mkIf cfg.enable { |   config = lib.mkIf cfg.enable { | ||||||
|  | |||||||
| @ -1,15 +1,9 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.tailscale; |   cfg = config.modules.tailscale; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.tailscale = { |   options.modules.tailscale = { | ||||||
|     enable = mkEnableOption "tailscale"; |     enable = mkEnableOption "tailscale"; | ||||||
|   }; |   }; | ||||||
|  | |||||||
| @ -1,15 +1,9 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| let | let | ||||||
|   cfg = config.modules.wpa_supplicant; |   cfg = config.modules.wpa_supplicant; | ||||||
| in | in { | ||||||
| { |  | ||||||
|   options.modules.wpa_supplicant = { |   options.modules.wpa_supplicant = { | ||||||
|     enable = mkEnableOption "wpa_supplicant"; |     enable = mkEnableOption "wpa_supplicant"; | ||||||
|   }; |   }; | ||||||
|  | |||||||
| @ -1,9 +1,4 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| # let | # let | ||||||
| @ -22,8 +17,8 @@ with lib; | |||||||
| # } | # } | ||||||
| { | { | ||||||
|   nixpkgs.config.packageOverrides = pkgs: rec { |   nixpkgs.config.packageOverrides = pkgs: rec { | ||||||
|     wqy-zenhei = pkgs.callPackage ./fonts/wqy-zenhei.nix { }; |     wqy-zenhei = pkgs.callPackage ./fonts/wqy-zenhei.nix {}; | ||||||
|     wqy-microhei = pkgs.callPackage ./fonts/wqy-microhei.nix { }; |     wqy-microhei = pkgs.callPackage ./fonts/wqy-microhei.nix {}; | ||||||
|     wqy-bitmapsong = pkgs.callPackage ./fonts/wqy-bitmapsong.nix { }; |     wqy-bitmapsong = pkgs.callPackage ./fonts/wqy-bitmapsong.nix {}; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
| @ -1,9 +1,4 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| pkgs.stdenv.mkDerivation rec { | pkgs.stdenv.mkDerivation rec { | ||||||
|   pname = "wqy-bitmapsong-pcf"; |   pname = "wqy-bitmapsong-pcf"; | ||||||
|  | |||||||
| @ -1,9 +1,4 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| pkgs.stdenv.mkDerivation rec { | pkgs.stdenv.mkDerivation rec { | ||||||
|   pname = "wqy-microhei"; |   pname = "wqy-microhei"; | ||||||
|  | |||||||
| @ -1,9 +1,4 @@ | |||||||
| { | { lib, config, pkgs, ... }: | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| 
 | 
 | ||||||
| pkgs.stdenv.mkDerivation rec { | pkgs.stdenv.mkDerivation rec { | ||||||
|   pname = "wqy-zenhei"; |   pname = "wqy-zenhei"; | ||||||
|  | |||||||
| @ -29,27 +29,20 @@ | |||||||
|       discord.enable = true; |       discord.enable = true; | ||||||
|       qutebrowser.enable = true; |       qutebrowser.enable = true; | ||||||
|       neovim.enable = true; |       neovim.enable = true; | ||||||
| 
 |       rofi.enable = true; # TODO: Remove this, should be enabled by other modules that require rofi. | ||||||
|       # Programming languages |  | ||||||
|       nix.enable = true; |  | ||||||
|       rust.enable = true; |  | ||||||
| 
 | 
 | ||||||
|       # Enable unfree |       # Enable unfree | ||||||
|       unfree.enable = true; |       unfree.enable = true; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     # Theme configuration |     # Theme configuration | ||||||
|     theming = |     theming = let fontpkgs = config.theming.fonts.pkgs; in { | ||||||
|       let |  | ||||||
|         fontpkgs = config.theming.fonts.pkgs; |  | ||||||
|       in |  | ||||||
|       { |  | ||||||
|       # Fonts |       # Fonts | ||||||
|       fonts.serif = fontpkgs."DejaVu Serif"; |       fonts.serif = fontpkgs."DejaVu Serif"; | ||||||
|       fonts.sansSerif = fontpkgs."DejaVu Sans"; |       fonts.sansSerif = fontpkgs."DejaVu Sans"; | ||||||
|       fonts.monospace = fontpkgs."Dina"; |       fonts.monospace = fontpkgs."Dina"; | ||||||
|       fonts.emoji = fontpkgs."Dina"; |       fonts.emoji = fontpkgs."Dina"; | ||||||
|         fonts.extraFonts = [ ]; |       fonts.extraFonts = []; | ||||||
|        |        | ||||||
|       # Color scheme |       # Color scheme | ||||||
|       themes.catppuccin = { |       themes.catppuccin = { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user