Compare commits
	
		
			2 Commits
		
	
	
		
			7e368b4f40
			...
			8ea644f665
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 8ea644f665 | ||
|   | b921c2ac47 | 
| @ -16,6 +16,7 @@ | |||||||
|     # Enabled modules |     # Enabled modules | ||||||
|     modules = { |     modules = { | ||||||
|       base.enable = true; |       base.enable = true; | ||||||
|  |       bluetooth.enable = true; | ||||||
|       power-saving.enable = false; |       power-saving.enable = false; | ||||||
|       pipewire.enable = true; |       pipewire.enable = true; | ||||||
|       wpa_supplicant.enable = true; |       wpa_supplicant.enable = true; | ||||||
|  | |||||||
							
								
								
									
										23
									
								
								modules/bluetooth/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								modules/bluetooth/default.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | |||||||
|  | { | ||||||
|  |   lib, | ||||||
|  |   config, | ||||||
|  |   pkgs, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | 
 | ||||||
|  | with lib; | ||||||
|  | let | ||||||
|  |   cfg = config.modules.bluetooth; | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   options.modules.bluetooth = { | ||||||
|  |     enable = mkEnableOption "bluetooth"; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = mkIf cfg.enable { | ||||||
|  |     environment.systemPackages = with pkgs; [ bluez ]; | ||||||
|  | 
 | ||||||
|  |     hardware.bluetooth.enable = true; | ||||||
|  |     hardware.bluetooth.powerOnBoot = true; | ||||||
|  |   }; | ||||||
|  | } | ||||||
| @ -10,6 +10,7 @@ with lib; | |||||||
|   imports = [ |   imports = [ | ||||||
|     # Import modules |     # Import modules | ||||||
|     ./base/default.nix |     ./base/default.nix | ||||||
|  |     ./bluetooth/default.nix | ||||||
|     ./boot/clean-tmp.nix |     ./boot/clean-tmp.nix | ||||||
|     ./boot/silent-boot.nix |     ./boot/silent-boot.nix | ||||||
|     ./boot/systemd-boot.nix |     ./boot/systemd-boot.nix | ||||||
|  | |||||||
| @ -8,7 +8,12 @@ | |||||||
| 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"; | ||||||
|  |       # ref = "nixos-24.05"; | ||||||
|  |     } | ||||||
|  |   ); | ||||||
| 
 | 
 | ||||||
|   # Stylix |   # Stylix | ||||||
|   stylix = import ( |   stylix = import ( | ||||||
|  | |||||||
							
								
								
									
										28
									
								
								modules/users/modules/bluetuith/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								modules/users/modules/bluetuith/default.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | |||||||
|  | { | ||||||
|  |   lib, | ||||||
|  |   config, | ||||||
|  |   pkgs, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | 
 | ||||||
|  | with lib; | ||||||
|  | let | ||||||
|  |   cfg = config.modules.bluetuith; | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   options.modules.bluetuith = { | ||||||
|  |     enable = mkEnableOption "bluetuith"; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = mkIf cfg.enable { | ||||||
|  |     home.packages = with pkgs; [ bluetuith ]; | ||||||
|  | 
 | ||||||
|  |     # Add nix tree | ||||||
|  |     xdg.desktopEntries.bluetuith = { | ||||||
|  |       exec = "${pkgs.bluetuith}/bin/bluetuith"; | ||||||
|  |       name = "Bluetuith"; | ||||||
|  |       terminal = true; | ||||||
|  |       type = "Application"; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
| @ -19,6 +19,23 @@ in | |||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|     default.browser = mkIf cfg.default "org.qutebrowser.qutebrowser.desktop"; |     default.browser = mkIf cfg.default "org.qutebrowser.qutebrowser.desktop"; | ||||||
| 
 | 
 | ||||||
|  |     # TODO: Remove once nixpkgs updates | ||||||
|  |     nixpkgs.config.packageOverrides = pkgs: { | ||||||
|  |       python3 = pkgs.python3.override { | ||||||
|  |         packageOverrides = self: super: { | ||||||
|  |           pykeepass = super.pykeepass.overrideAttrs (attrs: { | ||||||
|  |             version = "4.1.0.post1"; | ||||||
|  |             src = pkgs.fetchFromGitHub { | ||||||
|  |               owner = "libkeepass"; | ||||||
|  |               repo = "pykeepass"; | ||||||
|  |               rev = "refs/tags/v4.1.0.post1"; | ||||||
|  |               hash = "sha256-64is/XoRF/kojqd4jQIAQi1od8TRhiv9uR+WNIGvP2A="; | ||||||
|  |             }; | ||||||
|  |           }); | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|     programs.qutebrowser = { |     programs.qutebrowser = { | ||||||
|       enable = true; |       enable = true; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -8,11 +8,13 @@ | |||||||
| { | { | ||||||
|   imports = [ |   imports = [ | ||||||
|     # Import all modules |     # Import all modules | ||||||
|  |     ./bluetuith/default.nix | ||||||
|     ./browser/default.nix |     ./browser/default.nix | ||||||
|     ./desktop/default.nix |     ./desktop/default.nix | ||||||
|     ./discord/default.nix |     ./discord/default.nix | ||||||
|     ./feishin/default.nix |     ./feishin/default.nix | ||||||
|     ./fontconfig/default.nix |     ./fontconfig/default.nix | ||||||
|  |     ./language/haskell.nix | ||||||
|     ./language/nix.nix |     ./language/nix.nix | ||||||
|     ./language/rust.nix |     ./language/rust.nix | ||||||
|     ./mako/default.nix |     ./mako/default.nix | ||||||
| @ -27,6 +29,7 @@ | |||||||
|     ./terminal/foot/default.nix |     ./terminal/foot/default.nix | ||||||
|     ./theming/default.nix |     ./theming/default.nix | ||||||
|     ./vscode/default.nix |     ./vscode/default.nix | ||||||
|  |     ./whatsapp/default.nix | ||||||
|     ./winbox/default.nix |     ./winbox/default.nix | ||||||
|     ./zathura/default.nix |     ./zathura/default.nix | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ precision mediump float; | |||||||
| uniform float time; | uniform float time; | ||||||
| uniform vec2 resolution; | uniform vec2 resolution; | ||||||
| 
 | 
 | ||||||
| #define iTime time * 0.01 + 10.0 | #define iTime time * 0.05 + 50.0 | ||||||
| #define iResolution resolution | #define iResolution resolution | ||||||
| #define fragCoord gl_FragCoord | #define fragCoord gl_FragCoord | ||||||
| #define fragColor gl_FragColor | #define fragColor gl_FragColor | ||||||
|  | |||||||
| @ -20,6 +20,7 @@ in | |||||||
|     home.packages = with pkgs; [ |     home.packages = with pkgs; [ | ||||||
|       pulsemixer |       pulsemixer | ||||||
|       playerctl |       playerctl | ||||||
|  |       wpa_supplicant_gui # TODO: Move | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|     programs.waybar = { |     programs.waybar = { | ||||||
| @ -34,6 +35,8 @@ in | |||||||
|             "mpris" |             "mpris" | ||||||
|           ]; |           ]; | ||||||
|           modules-right = [ |           modules-right = [ | ||||||
|  |             "bluetooth" | ||||||
|  |             "network" | ||||||
|             "pulseaudio" |             "pulseaudio" | ||||||
|             "battery" |             "battery" | ||||||
|             "clock" |             "clock" | ||||||
| @ -55,6 +58,13 @@ in | |||||||
|             ]; |             ]; | ||||||
|             disable-click = false; |             disable-click = false; | ||||||
|           }; |           }; | ||||||
|  |           network = { | ||||||
|  |             tooltip = false; | ||||||
|  |             on-click = "wpa_gui"; | ||||||
|  |             format-wifi = "直 {essid}"; # Spacing achieved using "Thin Space" | ||||||
|  |             format-ethernet = "TODO"; | ||||||
|  |             format-disconnected = "睊"; | ||||||
|  |           }; | ||||||
|           pulseaudio = { |           pulseaudio = { | ||||||
|             tooltip = false; |             tooltip = false; | ||||||
|             format = "{icon}   {volume}%"; # Spacing achieved using "Thin Space" |             format = "{icon}   {volume}%"; # Spacing achieved using "Thin Space" | ||||||
| @ -101,6 +111,11 @@ in | |||||||
|             tooltip-format = ""; |             tooltip-format = ""; | ||||||
|             interval = 1; |             interval = 1; | ||||||
|           }; |           }; | ||||||
|  |           bluetooth = { | ||||||
|  |             tooltip = false; | ||||||
|  |             format = "  {status}"; # Spacing achieved using "Thin Space" | ||||||
|  |             format-connected = "  {device_alias}"; # Spacing achieved using "Thin Space" | ||||||
|  |           }; | ||||||
|         }; |         }; | ||||||
|       }; |       }; | ||||||
|       # TODO: Replace base03 color with named color |       # TODO: Replace base03 color with named color | ||||||
| @ -124,7 +139,7 @@ in | |||||||
|           padding: 0 5px 1px 5px; |           padding: 0 5px 1px 5px; | ||||||
|           border-radius: 0; |           border-radius: 0; | ||||||
|           font-size: 16px; |           font-size: 16px; | ||||||
|           font-family: "Unifont"; |           font-family: "wenquanyi bitmap song"; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         #tags button.occupied { |         #tags button.occupied { | ||||||
|  | |||||||
| @ -36,6 +36,8 @@ in | |||||||
|       [ |       [ | ||||||
|         pkgs.wl-clipboard |         pkgs.wl-clipboard | ||||||
|         pkgs.wtype |         pkgs.wtype | ||||||
|  |         pkgs.grim | ||||||
|  |         pkgs.slurp | ||||||
|       ] |       ] | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -22,27 +22,34 @@ in | |||||||
|     # TODO: Move elsewhere and make keybindings more configurable |     # TODO: Move elsewhere and make keybindings more configurable | ||||||
|     modules.rofi.enable = true; |     modules.rofi.enable = true; | ||||||
| 
 | 
 | ||||||
|  |     # TODO: Move elsewhere | ||||||
|  |     home.packages = with pkgs; [ | ||||||
|  |       brightnessctl | ||||||
|  |       river-filtile | ||||||
|  |       # owm | ||||||
|  |     ]; | ||||||
|  | 
 | ||||||
|     # Change desktop to execute river |     # Change desktop to execute river | ||||||
|     modules.desktop.initScript = '' |     modules.desktop.initScript = '' | ||||||
|       river |       river | ||||||
|     ''; |     ''; | ||||||
| 
 | 
 | ||||||
|     # Update background after rebuild |     # Update background after rebuild | ||||||
|     home.activation = { |     # home.activation = { | ||||||
|       river = lib.hm.dag.entryBetween [ "reloadSystemd" ] [ "installPackages" ] '' |     #   river = lib.hm.dag.entryBetween [ "reloadSystemd" ] [ "installPackages" ] '' | ||||||
|         # Close waybar |     #     # Close waybar | ||||||
|         PATH="${pkgs.procps}/bin:$PATH" $DRY_RUN_CMD pkill waybar |     #     PATH="${pkgs.procps}/bin:$PATH" $DRY_RUN_CMD pkill waybar | ||||||
| 
 | 
 | ||||||
|         # Kill rivertile |     #     # Kill rivertile | ||||||
|         PATH="${pkgs.procps}/bin:$PATH" $DRY_RUN_CMD pkill rivertile |     #     PATH="${pkgs.procps}/bin:$PATH" $DRY_RUN_CMD pkill rivertile | ||||||
| 
 | 
 | ||||||
|         # Kill glpaper |     #     # Kill glpaper | ||||||
|         PATH="${pkgs.procps}/bin:$PATH" $DRY_RUN_CMD pkill glpaper |     #     PATH="${pkgs.procps}/bin:$PATH" $DRY_RUN_CMD pkill glpaper | ||||||
| 
 | 
 | ||||||
|         # Restart river |     #     # Restart river | ||||||
|         PATH="${pkgs.river}/bin:${pkgs.systemd}/bin:$PATH" $DRY_RUN_CMD ~/.config/river/init |     #     PATH="${pkgs.river}/bin:${pkgs.systemd}/bin:${pkgs.waybar}/bin:$PATH" $DRY_RUN_CMD ~/.config/river/init | ||||||
|       ''; |     #   ''; | ||||||
|     }; |     # }; | ||||||
| 
 | 
 | ||||||
|     # River setup |     # River setup | ||||||
|     wayland.windowManager.river = { |     wayland.windowManager.river = { | ||||||
| @ -50,7 +57,7 @@ in | |||||||
|       xwayland.enable = true; |       xwayland.enable = true; | ||||||
|       settings = |       settings = | ||||||
|         let |         let | ||||||
|           layout = "rivertile"; |           layout = "filtile"; | ||||||
|           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" |             "normal" | ||||||
| @ -102,7 +109,7 @@ in | |||||||
|           ]; |           ]; | ||||||
|           map = ( |           map = ( | ||||||
|             lib.attrsets.recursiveUpdate |             lib.attrsets.recursiveUpdate | ||||||
|               ({ |               { | ||||||
|                 normal = |                 normal = | ||||||
|                   { |                   { | ||||||
|                     "${main} Q" = "close"; |                     "${main} Q" = "close"; | ||||||
| @ -113,6 +120,7 @@ in | |||||||
|                     "${ssm} Return" = "spawn foot"; |                     "${ssm} Return" = "spawn foot"; | ||||||
|                     "${main} P" = "spawn \"rofi -show drun\""; |                     "${main} P" = "spawn \"rofi -show drun\""; | ||||||
|                     "${ssm} P" = "spawn rofi-rbw"; |                     "${ssm} P" = "spawn rofi-rbw"; | ||||||
|  |                     "${main} S" = "spawn \"grim -g \\\"\\\$(slurp)\\\" ~/Images/Screenshots/\\\$(date +'%s_grim.png')\""; | ||||||
| 
 | 
 | ||||||
|                     # Window focus |                     # Window focus | ||||||
|                     "${main} J" = "focus-view next"; |                     "${main} J" = "focus-view next"; | ||||||
| @ -124,22 +132,22 @@ in | |||||||
|                     "${main} Return" = "zoom"; |                     "${main} Return" = "zoom"; | ||||||
| 
 | 
 | ||||||
|                     # Main ratio |                     # Main ratio | ||||||
|                     "${main} H" = "send-layout-cmd rivertile 'main-ratio -0.05'"; |                     "${main} H" = "send-layout-cmd ${layout} 'main-ratio -0.05'"; | ||||||
|                     "${main} L" = "send-layout-cmd rivertile 'main-ratio +0.05'"; |                     "${main} L" = "send-layout-cmd ${layout} 'main-ratio +0.05'"; | ||||||
| 
 | 
 | ||||||
|                     # Main count |                     # Main count | ||||||
|                     "${ssm} H" = "send-layout-cmd rivertile 'main-count +1'"; |                     "${ssm} H" = "send-layout-cmd ${layout} 'main-count +1'"; | ||||||
|                     "${ssm} L" = "send-layout-cmd rivertile 'main-count -1'"; |                     "${ssm} L" = "send-layout-cmd ${layout} 'main-count -1'"; | ||||||
| 
 | 
 | ||||||
|                     # Tags |                     # Tags | ||||||
|                     "${main} 0" = "set-focused-tags ${toString (pow2 32 - 1)}"; |                     "${main} 0" = "set-focused-tags ${toString (pow2 32 - 1)}"; | ||||||
|                     "${ssm} 0" = "set-view-tags ${toString (pow2 32 - 1)}"; |                     "${ssm} 0" = "set-view-tags ${toString (pow2 32 - 1)}"; | ||||||
| 
 | 
 | ||||||
|                     # Orientation |                     # Orientation | ||||||
|                     "${main} Up" = "send-layout-cmd rivertile \"main-location top\""; |                     "${main} Up" = "send-layout-cmd ${layout} \"main-location top\""; | ||||||
|                     "${main} Right" = "send-layout-cmd rivertile \"main-location right\""; |                     "${main} Right" = "send-layout-cmd ${layout} \"main-location right\""; | ||||||
|                     "${main} Down" = "send-layout-cmd rivertile \"main-location bottom\""; |                     "${main} Down" = "send-layout-cmd ${layout} \"main-location bottom\""; | ||||||
|                     "${main} Left" = "send-layout-cmd rivertile \"main-location left\""; |                     "${main} Left" = "send-layout-cmd ${layout} \"main-location left\""; | ||||||
| 
 | 
 | ||||||
|                     # Move floating windows |                     # Move floating windows | ||||||
|                     "${sam} H" = "move left 100"; |                     "${sam} H" = "move left 100"; | ||||||
| @ -185,7 +193,7 @@ in | |||||||
|                       ]) tags |                       ]) tags | ||||||
|                     ) |                     ) | ||||||
|                   ); |                   ); | ||||||
|               }) |               } | ||||||
|               ( |               ( | ||||||
|                 builtins.listToAttrs ( |                 builtins.listToAttrs ( | ||||||
|                   map (mode: { |                   map (mode: { | ||||||
| @ -230,6 +238,7 @@ in | |||||||
|             "-app-id" = { |             "-app-id" = { | ||||||
|               "'bar'" = "csd"; |               "'bar'" = "csd"; | ||||||
|               "'*'" = "ssd"; |               "'*'" = "ssd"; | ||||||
|  |               "'wpa_gui'" = "float"; | ||||||
|             }; |             }; | ||||||
|           }; |           }; | ||||||
|         }; |         }; | ||||||
|  | |||||||
							
								
								
									
										40
									
								
								modules/users/modules/language/haskell.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								modules/users/modules/language/haskell.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,40 @@ | |||||||
|  | { | ||||||
|  |   lib, | ||||||
|  |   config, | ||||||
|  |   pkgs, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | 
 | ||||||
|  | with lib; | ||||||
|  | let | ||||||
|  |   cfg = config.modules.haskell; | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   options.modules.haskell = { | ||||||
|  |     enable = mkEnableOption "haskell"; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = mkIf cfg.enable { | ||||||
|  |     # Development packages | ||||||
|  |     home.packages = with pkgs; [ | ||||||
|  |       haskell.compiler.ghc948 | ||||||
|  |       (haskell-language-server.override { supportedGhcVersions = [ "948" ]; }) | ||||||
|  |     ]; | ||||||
|  | 
 | ||||||
|  |     # VSCode configuration | ||||||
|  |     programs.vscode = { | ||||||
|  |       extensions = with pkgs.vscode-extensions; [ | ||||||
|  |         haskell.haskell | ||||||
|  |         justusadam.language-haskell | ||||||
|  |       ]; | ||||||
|  | 
 | ||||||
|  |       userSettings = { | ||||||
|  |         "[haskell]" = { }; | ||||||
|  |         # "haskell.formattingProvider" = "fourmolu"; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     # Neovim configuration | ||||||
|  |     programs.nixvim = { }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
| @ -17,18 +17,31 @@ in | |||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable { | ||||||
|     # Development packages |     # Development packages | ||||||
|     home.packages = with pkgs; [ |     home.packages = with pkgs; [ | ||||||
|       rustc |       rustup | ||||||
|       cargo |       # rustc | ||||||
|       rust-analyzer |       # cargo | ||||||
|       rustfmt |       gcc | ||||||
|  |       lldb | ||||||
|  |       # rust-analyzer | ||||||
|  |       # rustfmt | ||||||
|  |       # clippy | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|     # VSCode configuration |     # VSCode configuration | ||||||
|     programs.vscode = { |     programs.vscode = { | ||||||
|       extensions = with pkgs.vscode-extensions; [ rust-lang.rust-analyzer ]; |       extensions = with pkgs.vscode-extensions; [ | ||||||
|  |         rust-lang.rust-analyzer | ||||||
|  |         vadimcn.vscode-lldb | ||||||
|  |         tamasfe.even-better-toml | ||||||
|  |         serayuzgur.crates | ||||||
|  |       ]; | ||||||
| 
 | 
 | ||||||
|       userSettings = { |       userSettings = { | ||||||
|         "[rust]" = { }; |         "[rust]" = { | ||||||
|  |           "editor.inlayHints.enabled" = "off"; | ||||||
|  |         }; | ||||||
|  |         "rust-analyzer.check.command" = "clippy"; | ||||||
|  |         "rust-analyzer.showUnlinkedFileNotification" = false; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -14,5 +14,9 @@ in | |||||||
|     enable = mkEnableOption "obsidian"; |     enable = mkEnableOption "obsidian"; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { home.packages = with pkgs; [ obsidian ]; }; |   config = mkIf cfg.enable { | ||||||
|  |     modules.unfree.allowedPackages = [ "obsidian" ]; | ||||||
|  | 
 | ||||||
|  |     home.packages = with pkgs; [ obsidian ]; | ||||||
|  |   }; | ||||||
| } | } | ||||||
|  | |||||||
| @ -22,7 +22,6 @@ in | |||||||
|       enable = true; |       enable = true; | ||||||
|       settings = { |       settings = { | ||||||
|         base_url = "https://keys.bulthuis.dev"; |         base_url = "https://keys.bulthuis.dev"; | ||||||
|         identity_url = "https://keys.bulthuis.dev"; |  | ||||||
|         email = "jan@bulthuis.dev"; |         email = "jan@bulthuis.dev"; | ||||||
|         pinentry = pkgs.pinentry; |         pinentry = pkgs.pinentry; | ||||||
|       }; |       }; | ||||||
|  | |||||||
| @ -101,6 +101,8 @@ in | |||||||
|     # Import all themes |     # Import all themes | ||||||
|     ./themes/catppuccin.nix |     ./themes/catppuccin.nix | ||||||
|     ./themes/gruvbox.nix |     ./themes/gruvbox.nix | ||||||
|  |     ./themes/oxocarbon.nix | ||||||
|  |     ./themes/papercolor.nix | ||||||
|     ./themes/sakura.nix |     ./themes/sakura.nix | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										25
									
								
								modules/users/modules/theming/themes/oxocarbon.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								modules/users/modules/theming/themes/oxocarbon.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,25 @@ | |||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   pkgs, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | 
 | ||||||
|  | with lib; | ||||||
|  | let | ||||||
|  |   cfg = config.theming.themes.oxocarbon; | ||||||
|  |   mode = if cfg.darkMode then "dark" else "light"; | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   options = { | ||||||
|  |     theming.themes.oxocarbon = { | ||||||
|  |       enable = mkEnableOption "oxocarbon"; | ||||||
|  |       darkMode = mkEnableOption "dark mode"; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config.theming = mkIf cfg.enable { | ||||||
|  |     darkMode = cfg.darkMode; | ||||||
|  |     colorScheme = "${pkgs.base16-schemes}/share/themes/oxocarbon-${mode}.yaml"; | ||||||
|  |   }; | ||||||
|  | } | ||||||
							
								
								
									
										25
									
								
								modules/users/modules/theming/themes/papercolor.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								modules/users/modules/theming/themes/papercolor.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,25 @@ | |||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   pkgs, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | 
 | ||||||
|  | with lib; | ||||||
|  | let | ||||||
|  |   cfg = config.theming.themes.papercolor; | ||||||
|  |   mode = if cfg.darkMode then "dark" else "light"; | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   options = { | ||||||
|  |     theming.themes.papercolor = { | ||||||
|  |       enable = mkEnableOption "papercolor"; | ||||||
|  |       darkMode = mkEnableOption "dark mode"; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config.theming = mkIf cfg.enable { | ||||||
|  |     darkMode = cfg.darkMode; | ||||||
|  |     colorScheme = "${pkgs.base16-schemes}/share/themes/papercolor-${mode}.yaml"; | ||||||
|  |   }; | ||||||
|  | } | ||||||
| @ -32,7 +32,13 @@ in | |||||||
|       enable = true; |       enable = true; | ||||||
| 
 | 
 | ||||||
|       mutableExtensionsDir = false; |       mutableExtensionsDir = false; | ||||||
|       extensions = with pkgs.vscode-extensions; [ eamodio.gitlens ]; |       extensions = with pkgs.vscode-extensions; [ | ||||||
|  |         eamodio.gitlens | ||||||
|  |         ms-vscode.hexeditor | ||||||
|  |         mkhl.direnv | ||||||
|  |         usernamehw.errorlens | ||||||
|  |         gruntfuggly.todo-tree | ||||||
|  |       ]; | ||||||
| 
 | 
 | ||||||
|       userSettings = { |       userSettings = { | ||||||
|         # Font setup |         # Font setup | ||||||
|  | |||||||
							
								
								
									
										22
									
								
								modules/users/modules/whatsapp/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								modules/users/modules/whatsapp/default.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | |||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   pkgs, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | 
 | ||||||
|  | with lib; | ||||||
|  | let | ||||||
|  |   cfg = config.modules.whatsapp; | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   options.modules.whatsapp = { | ||||||
|  |     enable = mkEnableOption "whatsapp"; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = mkIf cfg.enable { | ||||||
|  |     modules.unfree.allowedPackages = [ "whatsapp-for-linux" ]; | ||||||
|  | 
 | ||||||
|  |     home.packages = with pkgs; [ whatsapp-for-linux ]; | ||||||
|  |   }; | ||||||
|  | } | ||||||
| @ -6,20 +6,6 @@ | |||||||
| }: | }: | ||||||
| 
 | 
 | ||||||
| with lib; | with lib; | ||||||
| # let |  | ||||||
| #   mkPackage = path: (mkOption { |  | ||||||
| #     type = types.package; |  | ||||||
| #     default = (pkgs.callPackage path) {}; |  | ||||||
| #     description = (mkPackage path).default.name; |  | ||||||
| #   }); |  | ||||||
| # in { |  | ||||||
| #   options.pkgs = { |  | ||||||
| #     # Add all custom packages |  | ||||||
| #     wqy-zenhei = mkPackage ./fonts/wqy-zenhei.nix; |  | ||||||
| #     wqy-microhei = mkPackage ./fonts/wqy-microhei.nix; |  | ||||||
| #     wqy-bitmapsong = mkPackage ./fonts/wqy-bitmapsong.nix; |  | ||||||
| #   };  |  | ||||||
| # } |  | ||||||
| { | { | ||||||
|   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 { }; | ||||||
|  | |||||||
							
								
								
									
										20
									
								
								pkgs/river/owm.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								pkgs/river/owm.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,20 @@ | |||||||
|  | { | ||||||
|  |   lib, | ||||||
|  |   config, | ||||||
|  |   pkgs, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | 
 | ||||||
|  | pkgs.rustPlatform.buildRustPackage rec { | ||||||
|  |   pname = "owm"; | ||||||
|  |   version = "0.1.0"; | ||||||
|  | 
 | ||||||
|  |   src = pkgs.fetchFromGitHub { | ||||||
|  |     owner = "justinlovinger"; | ||||||
|  |     repo = pname; | ||||||
|  |     rev = "master"; | ||||||
|  |     sha256 = "sha256-l9usg0XGtghCX8elvjExYJgMuMGeujOoS2n1hCQkN78="; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   cargoSha256 = ""; | ||||||
|  | } | ||||||
| @ -7,6 +7,9 @@ | |||||||
|     # State version |     # State version | ||||||
|     home.stateVersion = "24.05"; |     home.stateVersion = "24.05"; | ||||||
| 
 | 
 | ||||||
|  |     # TODO: Move into modules | ||||||
|  |     home.packages = with pkgs; [ libreoffice-fresh ]; | ||||||
|  | 
 | ||||||
|     # Enabled modules |     # Enabled modules | ||||||
|     modules = { |     modules = { | ||||||
|       # Window manager |       # Window manager | ||||||
| @ -26,6 +29,7 @@ | |||||||
|       vscode.enable = true; |       vscode.enable = true; | ||||||
|       zathura.enable = true; |       zathura.enable = true; | ||||||
|       fish.enable = true; |       fish.enable = true; | ||||||
|  |       whatsapp.enable = true; | ||||||
|       winbox.enable = true; |       winbox.enable = true; | ||||||
|       discord.enable = true; |       discord.enable = true; | ||||||
|       qutebrowser = { |       qutebrowser = { | ||||||
| @ -34,8 +38,11 @@ | |||||||
|       }; |       }; | ||||||
|       neovim.enable = true; |       neovim.enable = true; | ||||||
|       rofi-rbw.enable = true; |       rofi-rbw.enable = true; | ||||||
|  |       obsidian.enable = true; | ||||||
|  |       bluetuith.enable = true; | ||||||
| 
 | 
 | ||||||
|       # Programming languages |       # Programming languages | ||||||
|  |       haskell.enable = true; | ||||||
|       nix.enable = true; |       nix.enable = true; | ||||||
|       rust.enable = true; |       rust.enable = true; | ||||||
| 
 | 
 | ||||||
| @ -57,11 +64,25 @@ | |||||||
|         fonts.extraFonts = [ ]; |         fonts.extraFonts = [ ]; | ||||||
| 
 | 
 | ||||||
|         # Color scheme |         # Color scheme | ||||||
|         themes.catppuccin = { |         themes.oxocarbon = { | ||||||
|           enable = false; |           enable = false; | ||||||
|           flavor = "latte"; |           darkMode = false; | ||||||
|         }; |         }; | ||||||
|         themes.sakura.enable = true; |         themes.catppuccin = { | ||||||
|  |           enable = true; | ||||||
|  |           flavor = "mocha"; | ||||||
|  |         }; | ||||||
|  |         themes.sakura.enable = false; | ||||||
|  | 
 | ||||||
|  |         # TODO: Remove | ||||||
|  |         # Nice themes: | ||||||
|  |         # - rose-pine-dawn: Decent, bit too yellow though. | ||||||
|  |         # - sagelight: Barely readable | ||||||
|  |         # - danqing-light: Too minty | ||||||
|  |         # - fruit-soda: Colors too bright, background too dark. | ||||||
|  |         # - solarflare-light: Nice | ||||||
|  |         # darkMode = false; | ||||||
|  |         # colorScheme = "${pkgs.base16-schemes}/share/themes/solarflare-light.yaml"; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|     # TODO: Remove everything below, it is here out of convenience and should be elsewhere |     # TODO: Remove everything below, it is here out of convenience and should be elsewhere | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user