added new usb system, started modularizing
This commit is contained in:
		
							
								
								
									
										26
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								flake.nix
									
									
									
									
									
								
							| @@ -53,13 +53,37 @@ | |||||||
|             home-manager.extraSpecialArgs = { inherit inputs; }; |             home-manager.extraSpecialArgs = { inherit inputs; }; | ||||||
|  |  | ||||||
|             home-manager.users.remy.imports = [ |             home-manager.users.remy.imports = [ | ||||||
|               ./users/remy.nix |               ./users/remy_spectre | ||||||
|               inputs.nix-flatpak.homeManagerModules.nix-flatpak |               inputs.nix-flatpak.homeManagerModules.nix-flatpak | ||||||
|             ]; |             ]; | ||||||
|           } |           } | ||||||
|       ]; |       ]; | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     nixosConfigurations.nichts = nixpkgs.lib.nixosSystem { | ||||||
|  |       system = "x86_64-linux"; | ||||||
|  |       specialArgs = { inherit inputs; }; | ||||||
|  |  | ||||||
|  |       modules = [ | ||||||
|  |         ./hosts/lenovo-yoga-usb | ||||||
|  |         stylix.nixosModules.stylix | ||||||
|  |         inputs.superfreq.nixosModules.default | ||||||
|  |         home-manager.nixosModules.home-manager | ||||||
|  |           { | ||||||
|  |             home-manager.useGlobalPkgs = true; | ||||||
|  |             home-manager.useUserPackages = true; | ||||||
|  |             home-manager.extraSpecialArgs = { inherit inputs; }; | ||||||
|  |  | ||||||
|  |             home-manager.users.remy.imports = [ | ||||||
|  |               ./users/remy_yoga-usb | ||||||
|  |               inputs.nix-flatpak.homeManagerModules.nix-flatpak | ||||||
|  |             ]; | ||||||
|  |           } | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |  | ||||||
|     # nixosConfigurations.raspberry-pi = nixpkgs.lib.nixosSystem { |     # nixosConfigurations.raspberry-pi = nixpkgs.lib.nixosSystem { | ||||||
|     #   system = "aarch64-linux"; |     #   system = "aarch64-linux"; | ||||||
|     #   modules = [ |     #   modules = [ | ||||||
|   | |||||||
							
								
								
									
										52
									
								
								hosts/lenovo-yoga-usb/configuration.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								hosts/lenovo-yoga-usb/configuration.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | |||||||
|  | # Edit this configuration file to define what should be installed on | ||||||
|  | # your system. Help is available in the configuration.nix(5) man page, on | ||||||
|  | # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). | ||||||
|  |  | ||||||
|  | { config, lib, pkgs, ... }: | ||||||
|  |  | ||||||
|  | { | ||||||
|  |   imports = | ||||||
|  |     [ # Include the results of the hardware scan. | ||||||
|  |       ./hardware-configuration.nix | ||||||
|  |     ]; | ||||||
|  |  | ||||||
|  |   # Use the "experimental" flakes for cleaner config | ||||||
|  |   nix.settings.experimental-features = [ "nix-command" "flakes" ]; | ||||||
|  |   nixpkgs.config.allowUnfree = true; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   # Use latest kernel. | ||||||
|  |   boot.kernelPackages = pkgs.linuxPackages_latest; | ||||||
|  |  | ||||||
|  |   networking.hostName = "nichts"; | ||||||
|  |   # Pick only one of the below networking options. | ||||||
|  |   # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant. | ||||||
|  |   # networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default. | ||||||
|  |  | ||||||
|  |   # Set your time zone. | ||||||
|  |   time.timeZone = "Europe/Berlin"; | ||||||
|  |  | ||||||
|  |   # Configure network proxy if necessary | ||||||
|  |   # networking.proxy.default = "http://user:password@proxy:port/"; | ||||||
|  |   # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; | ||||||
|  |  | ||||||
|  |   #   # Select internationalisation properties. | ||||||
|  |   i18n.defaultLocale = "en_US.UTF-8"; | ||||||
|  |   # i18n.supportedLocales = [ "en_US.UTF-8" "de_DE.UTF-8" ]; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   # Define a user account. Don't forget to set a password with ‘passwd’. | ||||||
|  |   users.users.remy = { | ||||||
|  |     isNormalUser = true; | ||||||
|  |     extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   networking.networkmanager.wifi.powersave = true; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . | ||||||
|  |   system.stateVersion = "24.05"; # Did you read the comment? | ||||||
|  | } | ||||||
|  |  | ||||||
							
								
								
									
										25
									
								
								hosts/lenovo-yoga-usb/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								hosts/lenovo-yoga-usb/default.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | |||||||
|  | {lib, config, options, pkgs, ...}: | ||||||
|  | { | ||||||
|  |  | ||||||
|  |     # Merge the configuration and hardware configuration | ||||||
|  |     imports = [ | ||||||
|  |         ./configuration.nix | ||||||
|  |         ./hardware-configuration.nix | ||||||
|  |         ../../modules/nixos/bluetooth.nix | ||||||
|  |         ../../modules/nixos/flakes.nix | ||||||
|  |         ../../modules/nixos/flatpak.nix | ||||||
|  |         ../../modules/nixos/fonts.nix | ||||||
|  |         ../../modules/nixos/hyprland.nix | ||||||
|  |         ../../modules/nixos/ld.nix | ||||||
|  |         ../../modules/nixos/monitoring.nix | ||||||
|  |         ../../modules/nixos/networking.nix | ||||||
|  |         ../../modules/nixos/nh.nix | ||||||
|  |         ../../modules/nixos/pipewire.nix | ||||||
|  |         ../../modules/nixos/podman.nix | ||||||
|  |         ../../modules/nixos/power.nix | ||||||
|  |         ../../modules/nixos/stylix.nix | ||||||
|  |         ../../modules/nixos/usb_config.nix | ||||||
|  |         ../../utils/binary-cache.nix | ||||||
|  |         ../../utils/garbage-collection.nix | ||||||
|  |     ]; | ||||||
|  | } | ||||||
							
								
								
									
										40
									
								
								hosts/lenovo-yoga-usb/hardware-configuration.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								hosts/lenovo-yoga-usb/hardware-configuration.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | |||||||
|  | # Do not modify this file!  It was generated by ‘nixos-generate-config’ | ||||||
|  | # and may be overwritten by future invocations.  Please make changes | ||||||
|  | # to /etc/nixos/configuration.nix instead. | ||||||
|  | { config, lib, pkgs, modulesPath, ... }: | ||||||
|  |  | ||||||
|  | { | ||||||
|  |   imports = | ||||||
|  |     [ (modulesPath + "/installer/scan/not-detected.nix") | ||||||
|  |     ]; | ||||||
|  |  | ||||||
|  |   boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" "sdhci_pci" ]; | ||||||
|  |   boot.initrd.kernelModules = [ ]; | ||||||
|  |   boot.kernelModules = [ "kvm-amd" ]; | ||||||
|  |   boot.extraModulePackages = [ ]; | ||||||
|  |  | ||||||
|  |   fileSystems."/" = | ||||||
|  |     { device = "/dev/disk/by-uuid/621498e8-64f6-4979-8489-3dc1d145e349"; | ||||||
|  |       fsType = "ext4"; | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |   boot.initrd.luks.devices."root-enc".device = "/dev/disk/by-uuid/156d0f15-397c-4bc6-8f57-026108975246"; | ||||||
|  |  | ||||||
|  |   fileSystems."/boot" = | ||||||
|  |     { device = "/dev/disk/by-uuid/B2D0-672E"; | ||||||
|  |       fsType = "vfat"; | ||||||
|  |       options = [ "fmask=0022" "dmask=0022" ]; | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |   swapDevices = [ ]; | ||||||
|  |  | ||||||
|  |   # Enables DHCP on each ethernet and wireless interface. In case of scripted networking | ||||||
|  |   # (the default) this is the recommended approach. When using systemd-networkd it's | ||||||
|  |   # still possible to use this option, but it's recommended to use it in conjunction | ||||||
|  |   # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. | ||||||
|  |   networking.useDHCP = lib.mkDefault true; | ||||||
|  |   # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true; | ||||||
|  |  | ||||||
|  |   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | ||||||
|  |   hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; | ||||||
|  | } | ||||||
| @@ -3,7 +3,7 @@ | |||||||
|   programs.vscode = { |   programs.vscode = { | ||||||
|     enable = true; |     enable = true; | ||||||
|     # install vscode in a FHS environment to allow extensions with prebuilt binaries |     # install vscode in a FHS environment to allow extensions with prebuilt binaries | ||||||
|     package = pkgs.vscode.fhs; |     # package = pkgs.vscode.fhs; | ||||||
|  |  | ||||||
|     # profiles = { |     # profiles = { | ||||||
|     #   default = { |     #   default = { | ||||||
| @@ -18,9 +18,9 @@ | |||||||
|       ms-python.isort |       ms-python.isort | ||||||
|       ms-python.debugpy |       ms-python.debugpy | ||||||
|       ms-python.vscode-pylance |       ms-python.vscode-pylance | ||||||
|       ms-toolsai.jupyter |       # ms-toolsai.jupyter | ||||||
|       ms-toolsai.vscode-jupyter-slideshow |       # ms-toolsai.vscode-jupyter-slideshow | ||||||
|       ms-toolsai.jupyter-renderers |       # ms-toolsai.jupyter-renderers | ||||||
|  |  | ||||||
|       # Nix language |       # Nix language | ||||||
|       jnoortheen.nix-ide |       jnoortheen.nix-ide | ||||||
| @@ -28,11 +28,17 @@ | |||||||
|       # typst |       # typst | ||||||
|       myriad-dreamin.tinymist |       myriad-dreamin.tinymist | ||||||
|     ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ |     ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ | ||||||
|  |       { | ||||||
|  |         name = "jupyter"; | ||||||
|  |         publisher = "ms-toolsai"; | ||||||
|  |         version = "2025.3.2025032101"; | ||||||
|  |         sha256 = "sha256-s2qEUl9J6EOije6MasZOnHErYs3NYXBqLSfMT03vEH0="; | ||||||
|  |       } | ||||||
|       { |       { | ||||||
|         name = "jupyter-hub"; |         name = "jupyter-hub"; | ||||||
|         publisher = "ms-toolsai"; |         publisher = "ms-toolsai"; | ||||||
|         version = "2024.10.1002831100"; |         version = "2024.10.1002831100"; | ||||||
|         sha256 = "sha256-3YF91Wgw5je040xPpLHPdxQIEAetpmDz6La7bw2JM+g="; |         sha256 = "sha256-5IRczwXbYkDdYEOXvQnnH+HJNLvsRsrZ6fnoVCveqrs="; | ||||||
|       } |       } | ||||||
|     ]; |     ]; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -2,6 +2,6 @@ | |||||||
| { | { | ||||||
|   home.packages = [ |   home.packages = [ | ||||||
|     # pdf viewer |     # pdf viewer | ||||||
|     pkgs.evince |     pkgs.papers | ||||||
|   ]; |   ]; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,10 +1,35 @@ | |||||||
| {inputs, pkgs, ...}: | {inputs, pkgs, lib, config, ...}: | ||||||
|  | let | ||||||
|  |   cfg = config.nix-config.hypr; | ||||||
|  | in | ||||||
| { | { | ||||||
|  |  | ||||||
|  |   options = { | ||||||
|  |     nix-config.hypr.internal-screen.resolution = lib.mkOption { type = lib.types.str; }; | ||||||
|  |     nix-config.hypr.internal-screen.scale = lib.mkOption { type = lib.types.str; }; | ||||||
|  |     nix-config.hypr.browser = lib.mkOption { | ||||||
|  |       type = lib.types.str; | ||||||
|  |       default = "firefox"; | ||||||
|  |       description = "The browser to use in Hyprland."; | ||||||
|  |     }; | ||||||
|  |     nix-config.hypr.launcher-cmd = lib.mkOption { | ||||||
|  |       type = lib.types.str; | ||||||
|  |       default = "wofi --show drun -n"; | ||||||
|  |       description = "The command to launch the application launcher in Hyprland."; | ||||||
|  |     }; | ||||||
|  |     nix-config.hypr.ide = lib.mkOption { | ||||||
|  |       type = lib.types.str; | ||||||
|  |       default = "code"; | ||||||
|  |       description = "The IDE to use in Hyprland."; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   config = { | ||||||
|     home.packages = [ |     home.packages = [ | ||||||
|       pkgs.hyprshot |       pkgs.hyprshot | ||||||
|       pkgs.nautilus |       pkgs.nautilus | ||||||
|       pkgs.gnome-control-center |       pkgs.gnome-control-center | ||||||
|  |       pkgs.gnome-bluetooth # needed by gnome-control-center to manage bluetooth | ||||||
|       pkgs.brightnessctl |       pkgs.brightnessctl | ||||||
|       pkgs.cliphist |       pkgs.cliphist | ||||||
|       pkgs.wl-clipboard |       pkgs.wl-clipboard | ||||||
| @@ -21,17 +46,14 @@ | |||||||
|       systemd.enable = true; |       systemd.enable = true; | ||||||
|       settings = { |       settings = { | ||||||
|         "$mod" = "SUPER"; |         "$mod" = "SUPER"; | ||||||
|       "$browser" = "firefox"; |  | ||||||
|       "$launcher-cmd" = "wofi --show drun -n"; |  | ||||||
|       "$ide" = "code"; |  | ||||||
|  |  | ||||||
|         # Global bindings |         # Global bindings | ||||||
|         bind = [ |         bind = [ | ||||||
|           # Launch applications |           # Launch applications | ||||||
|         "$mod, space, exec, $launcher-cmd" |           "$mod, space, exec, ${cfg.launcher-cmd}" | ||||||
|           "$mod, return, exec, kitty" |           "$mod, return, exec, kitty" | ||||||
|         "$mod, b, exec, $browser" |           "$mod, b, exec, ${cfg.browser}" | ||||||
|         "$mod, s, exec, $ide" |           "$mod, s, exec, ${cfg.ide}" | ||||||
|           "$mod, e, exec, nautilus" |           "$mod, e, exec, nautilus" | ||||||
|  |  | ||||||
|           # Lock screen |           # Lock screen | ||||||
| @@ -87,7 +109,6 @@ | |||||||
|           "$mod, KP_Subtract, resizeactive, -2% -2%" |           "$mod, KP_Subtract, resizeactive, -2% -2%" | ||||||
|           "$mod, PLUS, resizeactive, 2% 2%" |           "$mod, PLUS, resizeactive, 2% 2%" | ||||||
|           "$mod, KP_Add, resizeactive, 2% 2%" |           "$mod, KP_Add, resizeactive, 2% 2%" | ||||||
|  |  | ||||||
|         ]; |         ]; | ||||||
|  |  | ||||||
|         # lock-screen bindings |         # lock-screen bindings | ||||||
| @@ -191,7 +212,9 @@ | |||||||
|         }; |         }; | ||||||
|  |  | ||||||
|         monitor = [ |         monitor = [ | ||||||
|         "eDP-1, 3840x2160, 0x0, 1.666667" # the internal laptop monitor |           # the internal monitor, always at the "center" | ||||||
|  |           "eDP-1, ${cfg.internal-screen.resolution}, 0x0, ${cfg.internal-screen.scale}" | ||||||
|  |  | ||||||
|           # Samsung monitors at irchel (matching the description) |           # Samsung monitors at irchel (matching the description) | ||||||
|           # "desc:Samsung Electric Company LS27D80xU HK7X800803, 3840x2160, auto-up, 1.8" |           # "desc:Samsung Electric Company LS27D80xU HK7X800803, 3840x2160, auto-up, 1.8" | ||||||
|           "desc:Samsung Electric Company LS27D80xU HNAX600169, 2560x1440@59.95, auto-up, 1" |           "desc:Samsung Electric Company LS27D80xU HNAX600169, 2560x1440@59.95, auto-up, 1" | ||||||
| @@ -221,8 +244,8 @@ | |||||||
|         # Touch gestures |         # Touch gestures | ||||||
|         pkgs.hyprlandPlugins.hyprgrass |         pkgs.hyprlandPlugins.hyprgrass | ||||||
|       ]; |       ]; | ||||||
|  |  | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     services.swaync.enable = true; |     services.swaync.enable = true; | ||||||
|  |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,4 +1,7 @@ | |||||||
| {inputs, pkgs, ...}: | {inputs, pkgs, lib, config, ...}: | ||||||
|  | let | ||||||
|  |   cfg = config.nix-config.style; | ||||||
|  | in | ||||||
| { | { | ||||||
|     # required to autoload fonts from packages installed via Home Manager |     # required to autoload fonts from packages installed via Home Manager | ||||||
|     fonts.fontconfig.enable = true; |     fonts.fontconfig.enable = true; | ||||||
| @@ -14,14 +17,16 @@ | |||||||
|         settings = { |         settings = { | ||||||
|  |  | ||||||
|             mainBar = { |             mainBar = { | ||||||
|                 margin-top = 2; |  | ||||||
|                 margin-bottom = 2; |  | ||||||
|                 margin-left = 5; |  | ||||||
|                 margin-right = 5; |  | ||||||
|  |  | ||||||
|                 layer = "top"; |                 layer = "top"; | ||||||
|                 position = "top"; |                 position = "top"; | ||||||
|                 spacing = 5; |  | ||||||
|  |                 margin-top = 5; | ||||||
|  |                 # margin-bottom = 2; | ||||||
|  |                 # margin-left = 5; | ||||||
|  |                 # margin-right = 5; | ||||||
|  |  | ||||||
|  |                 # margin between the modules | ||||||
|  |                 spacing = 2; | ||||||
|  |  | ||||||
|                 modules-left = [ |                 modules-left = [ | ||||||
|                     "hyprland/workspaces" |                     "hyprland/workspaces" | ||||||
| @@ -36,8 +41,8 @@ | |||||||
|                 modules-right = [ |                 modules-right = [ | ||||||
|                     "tray" |                     "tray" | ||||||
|                     "privacy" |                     "privacy" | ||||||
|                     "wireplumber" |  | ||||||
|                     "network" |                     "network" | ||||||
|  |                     "wireplumber" | ||||||
|                     "battery" |                     "battery" | ||||||
|                     "backlight" |                     "backlight" | ||||||
|                     "idle_inhibitor" |                     "idle_inhibitor" | ||||||
| @@ -150,18 +155,29 @@ | |||||||
|                     return-type = "json"; |                     return-type = "json"; | ||||||
|                     exec-if = "which swaync-client"; |                     exec-if = "which swaync-client"; | ||||||
|                     exec = "swaync-client -swb"; |                     exec = "swaync-client -swb"; | ||||||
|                     on-click = "sleep 0.1 && task-waybar"; |                     on-click = "swaync-client -t -sw"; | ||||||
|  |                     on-click-right = "swaync-client -d -sw"; | ||||||
|                     escape = true; |                     escape = true; | ||||||
|                 }; |                 }; | ||||||
|                 "network" = { |                 "network" = { | ||||||
|                     format =  ""; |                     format =  ""; | ||||||
|                     format-wifi = "{icon} {essid}"; |                     format-ethernet = " {ipaddr}"; | ||||||
|  |                     format-wifi = "{icon}"; | ||||||
|                     format-icons = [ "" "" "" "" "" ]; |                     format-icons = [ "" "" "" "" "" ]; | ||||||
|                     format-ethernet = " {ipaddr}/{cidr}"; |                     format-disconnected = ""; | ||||||
|                     format-disconnected = ""; |                     tooltip-format = " {ifname} via {gwaddr}"; | ||||||
|                     tooltip-format = " {ifname} via {gwaddr}"; |                     # TODO - don't escape the strings in the tooltip | ||||||
|                     tooltip-format-wifi = "SSID: {essid}({signalStrength}%), {frequency} MHz\nInterface: {ifname}\nIP: {ipaddr}\nGW: {gwaddr}\n\n<span color='#a6da95'>{bandwidthUpBits}</span>\t<span color='#ee99a0'>{bandwidthDownBits}</span>\t<span color='#c6a0f6'>{bandwidthTotalBits}</span>"; |                     tooltip-format-wifi = '' | ||||||
|                     tooltip-format-ethernet = "{ifname} "; |                          {essid}({signalStrength}%), {frequency} GHz\nInterface: {ifname} | ||||||
|  |                         IP: {ipaddr}    GW: {gwaddr} | ||||||
|  |  | ||||||
|  |                         <span color='#a6da95'>{bandwidthUpBits}</span> <span color='#ee99a0'>{bandwidthDownBits}</span>    <span color='#c6a0f6'>{bandwidthTotalBits}</span> | ||||||
|  |                     ''; | ||||||
|  |                     tooltip-format-ethernet = '' | ||||||
|  |                          {ifname} - {ipaddr}/{cidr} | ||||||
|  |  | ||||||
|  |                         <span color='#a6da95'>{bandwidthUpBits}</span> <span color='#ee99a0'>{bandwidthDownBits}</span>    <span color='#c6a0f6'>{bandwidthTotalBits}</span> | ||||||
|  |                     ''; | ||||||
|                     tooltip-format-disconnected = "Disconnected"; |                     tooltip-format-disconnected = "Disconnected"; | ||||||
|                     on-click = "XDG_CURRENT_DESKTOP=GNOME gnome-control-center wifi"; |                     on-click = "XDG_CURRENT_DESKTOP=GNOME gnome-control-center wifi"; | ||||||
|                 }; |                 }; | ||||||
| @@ -192,22 +208,20 @@ | |||||||
|  |  | ||||||
|         style = '' |         style = '' | ||||||
|             * { |             * { | ||||||
|                 font-family: "FiraCode Nerd Font"; |                 font-family: "${cfg.monospaceFont}"; | ||||||
|                 font-weight: bold; |                 font-weight: bold; | ||||||
|                 font-size: 20px; |                 font-size: ${builtins.toString (cfg.fontSizes.desktop + 7)}px; | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             window#waybar { |             window#waybar { | ||||||
|                 background-color: transparent; |                 background-color: transparent; | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  |  | ||||||
|             .module { |             .module { | ||||||
|                 background: rgba(0, 0, 0, 0.6); |                 background: rgba(0, 0, 0, 0.6); | ||||||
|                 color: white; |                 color: white; | ||||||
|                 border-radius: 7px; |                 border-radius: 7px; | ||||||
|                 padding: 5px 5px 5px 5px; |                 padding: 5px 5px 5px 5px; | ||||||
|                 margin: 5px 0; |  | ||||||
|             } |             } | ||||||
|             box.module button:hover { |             box.module button:hover { | ||||||
|                 box-shadow: inset 0 -3px #ffffff; |                 box-shadow: inset 0 -3px #ffffff; | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| {pkgs, lib, ...}: | {pkgs, lib, config, ...}: | ||||||
| let | let | ||||||
|   stylix = import ./stylix.nix { inherit pkgs; }; |   cfg = config.nix-config.style; | ||||||
| in | in | ||||||
| { | { | ||||||
|     programs.kitty = { |     programs.kitty = { | ||||||
| @@ -35,12 +35,12 @@ in | |||||||
|             # color15 = stylix.stylix.base16Scheme.base0F; |             # color15 = stylix.stylix.base16Scheme.base0F; | ||||||
|  |  | ||||||
|             # also reuse the background opacity by stylix |             # also reuse the background opacity by stylix | ||||||
|             background_opacity = stylix.stylix.opacity.terminal; |             background_opacity = cfg.terminalOpacity; | ||||||
|  |  | ||||||
|             background = "#000000"; |             background = "#000000"; | ||||||
|  |  | ||||||
|             font_family = stylix.stylix.fonts.monospace.name; |             font_family = cfg.monospaceFont; | ||||||
|             font_size = stylix.stylix.fonts.sizes.terminal; |             font_size = cfg.fontSizes.terminal; | ||||||
|             confirm_os_window_close = 0; |             confirm_os_window_close = 0; | ||||||
|             enable_audio_bell = false; |             enable_audio_bell = false; | ||||||
|             cursor_trail = 3; |             cursor_trail = 3; | ||||||
|   | |||||||
| @@ -1,5 +1,55 @@ | |||||||
| {pkgs, ...}: | {pkgs, config, lib, ...}: | ||||||
|  | let | ||||||
|  |   cfg = config.nix-config.style; | ||||||
|  | in | ||||||
| { | { | ||||||
|  |     options.nix-config.style = { | ||||||
|  |         cursor = { | ||||||
|  |             size = lib.mkOption { | ||||||
|  |                 type = lib.types.int; | ||||||
|  |                 default = 35; | ||||||
|  |                 description = "Size of the cursor in pixels."; | ||||||
|  |             }; | ||||||
|  |         }; | ||||||
|  |         fontSizes = { | ||||||
|  |             applications = lib.mkOption { | ||||||
|  |                 type = lib.types.int; | ||||||
|  |                 default = 12; | ||||||
|  |                 description = "Font size for applications."; | ||||||
|  |             }; | ||||||
|  |             desktop = lib.mkOption { | ||||||
|  |                 type = lib.types.int; | ||||||
|  |                 default = 12; | ||||||
|  |                 description = "Font size for desktop icons."; | ||||||
|  |             }; | ||||||
|  |             popups = lib.mkOption { | ||||||
|  |                 type = lib.types.int; | ||||||
|  |                 default = 12; | ||||||
|  |                 description = "Font size for popups."; | ||||||
|  |             }; | ||||||
|  |             terminal = lib.mkOption { | ||||||
|  |                 type = lib.types.int; | ||||||
|  |                 default = 12; | ||||||
|  |                 description = "Font size for terminal."; | ||||||
|  |             }; | ||||||
|  |         }; | ||||||
|  |  | ||||||
|  |         terminalOpacity = lib.mkOption { | ||||||
|  |             type = lib.types.float; | ||||||
|  |             default = 0.8; | ||||||
|  |             description = "Terminal default opacity"; | ||||||
|  |         }; | ||||||
|  |  | ||||||
|  |         monospaceFont = lib.mkOption { | ||||||
|  |             type = lib.types.str; | ||||||
|  |             default = "FiraCode Nerd Font Mono"; | ||||||
|  |             description = "Monospace font. Needs to be installed."; | ||||||
|  |         }; | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     config = { | ||||||
|  |  | ||||||
|         stylix = { |         stylix = { | ||||||
|             # Stylix is already enabled since the system is configured to use it |             # Stylix is already enabled since the system is configured to use it | ||||||
|             # enable = true; |             # enable = true; | ||||||
| @@ -9,7 +59,7 @@ | |||||||
|             cursor = { |             cursor = { | ||||||
|                 package = pkgs.apple-cursor; |                 package = pkgs.apple-cursor; | ||||||
|                 name = "macOS"; |                 name = "macOS"; | ||||||
|             size = 35; |                 size = cfg.cursor.size; | ||||||
|             }; |             }; | ||||||
|  |  | ||||||
|             iconTheme = { |             iconTheme = { | ||||||
| @@ -35,7 +85,7 @@ | |||||||
|  |  | ||||||
|                 monospace = { |                 monospace = { | ||||||
|                     package = pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; }; |                     package = pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; }; | ||||||
|                 name = "FiraCode Nerd Font Mono"; |                     name = cfg.monospaceFont; | ||||||
|                 }; |                 }; | ||||||
|  |  | ||||||
|                 emoji = { |                 emoji = { | ||||||
| @@ -44,10 +94,10 @@ | |||||||
|                 }; |                 }; | ||||||
|  |  | ||||||
|                 sizes = { |                 sizes = { | ||||||
|                 applications = 12; |                     applications = cfg.fontSizes.applications; | ||||||
|                 desktop = 12; |                     desktop = cfg.fontSizes.desktop; | ||||||
|                 popups = 12; |                     popups = cfg.fontSizes.popups; | ||||||
|                 terminal = 12; |                     terminal = cfg.fontSizes.terminal; | ||||||
|                 }; |                 }; | ||||||
|             }; |             }; | ||||||
|  |  | ||||||
| @@ -55,7 +105,7 @@ | |||||||
|                 applications = 1.0; |                 applications = 1.0; | ||||||
|                 desktop = 1.0; |                 desktop = 1.0; | ||||||
|                 popups = 0.9; |                 popups = 0.9; | ||||||
|             terminal = 0.8; |                 terminal = cfg.terminalOpacity; | ||||||
|             }; |             }; | ||||||
|         }; |         }; | ||||||
|  |  | ||||||
| @@ -93,4 +143,5 @@ | |||||||
|             # kitty.enable = true; |             # kitty.enable = true; | ||||||
|  |  | ||||||
|         }; |         }; | ||||||
|  |     }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| { config, pkgs, lib, ... }: | { config, pkgs, lib, ... }: | ||||||
| let | let | ||||||
|   stylix = import ./stylix.nix { inherit pkgs; }; |   cfg = config.nix-config.style; | ||||||
|  | in | ||||||
| in { | { | ||||||
|  |  | ||||||
|   home.packages = with pkgs; [ wofi-emoji ]; |   home.packages = with pkgs; [ wofi-emoji ]; | ||||||
|  |  | ||||||
| @@ -52,14 +52,14 @@ in { | |||||||
|  |  | ||||||
|     style = '' |     style = '' | ||||||
|       * { |       * { | ||||||
|         font-family: ${stylix.stylix.fonts.sansSerif.name}; |         font-family: ${cfg.monospaceFont}; | ||||||
|         font-size: ${builtins.toString (stylix.stylix.fonts.sizes.applications + 10)}px; |         font-size: ${builtins.toString (cfg.fontSizes.desktop + 8)}px; | ||||||
|         color: ${stylix.stylix.base16Scheme.base04}; |         color: white; | ||||||
|         background: transparent; |         background: transparent; | ||||||
|       } |       } | ||||||
|  |  | ||||||
|       #window { |       #window { | ||||||
|         background: rgba(41, 46, 66, 0.5); |         background: rgba(1, 1, 1, 0.5); | ||||||
|         margin: auto; |         margin: auto; | ||||||
|         padding: 10px; |         padding: 10px; | ||||||
|       } |       } | ||||||
|   | |||||||
| @@ -10,17 +10,17 @@ | |||||||
|   ]; |   ]; | ||||||
|   hardware.bluetooth = { |   hardware.bluetooth = { | ||||||
|     enable = true; |     enable = true; | ||||||
|     powerOnBoot = true; |     # powerOnBoot = true; | ||||||
|     settings = { |     # settings = { | ||||||
|       General = { |     #   General = { | ||||||
|         Name = "Nixtre"; |     #     Name = "Nixtre"; | ||||||
|         ControllerMode = "dual"; |     #     ControllerMode = "dual"; | ||||||
|         FastConnectable = "true"; |     #     FastConnectable = "true"; | ||||||
|         Experimental = "true"; |     #     Experimental = "true"; | ||||||
|       }; |     #   }; | ||||||
|       Policy = { |     #   Policy = { | ||||||
|         AutoEnable = "true"; |     #     AutoEnable = "true"; | ||||||
|       }; |     #   }; | ||||||
|     }; |     # }; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -4,7 +4,13 @@ | |||||||
|   pkgs, |   pkgs, | ||||||
|   ... |   ... | ||||||
| }: | }: | ||||||
|  | let | ||||||
|  |   cfg = config.nix-config; | ||||||
|  | in | ||||||
| { | { | ||||||
|  |  | ||||||
|  |   config = { | ||||||
|  |  | ||||||
|     # Use hyprland as the main desktop environment but use gdm as desktop manager |     # Use hyprland as the main desktop environment but use gdm as desktop manager | ||||||
|     programs.hyprland = { |     programs.hyprland = { | ||||||
|       enable = true; |       enable = true; | ||||||
| @@ -24,4 +30,6 @@ | |||||||
|  |  | ||||||
|     security.pam.services.gdm.enableGnomeKeyring = true; |     security.pam.services.gdm.enableGnomeKeyring = true; | ||||||
|  |  | ||||||
|  |   }; | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										17
									
								
								modules/nixos/usb_config.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								modules/nixos/usb_config.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | |||||||
|  | { | ||||||
|  |     config, | ||||||
|  |     pkgs, | ||||||
|  |     ... | ||||||
|  | }: | ||||||
|  | { | ||||||
|  |     boot.loader.grub.enable = true; | ||||||
|  |  | ||||||
|  |     boot.loader.grub.efiSupport = true; | ||||||
|  |     # location at install time. Since the drive is a USB drive this is expcected to change on each device | ||||||
|  |     boot.loader.grub.device = "/dev/sdb"; | ||||||
|  |     boot.loader.grub.efiInstallAsRemovable = true; | ||||||
|  |     boot.loader.systemd-boot.enable = false; | ||||||
|  |  | ||||||
|  |     boot.loader.efi.canTouchEfiVariables = false; | ||||||
|  |     boot.tmp.useTmpfs = true; | ||||||
|  | } | ||||||
| @@ -1,26 +1,5 @@ | |||||||
| { config, pkgs, lib, ... }: | { config, pkgs, lib, ... }: | ||||||
| with lib.hm.gvariant; |  | ||||||
| { | { | ||||||
|   imports = [ |  | ||||||
|     ../modules/home-manager/browser.nix |  | ||||||
|     ../modules/home-manager/code.nix |  | ||||||
|     ../modules/home-manager/dev.nix |  | ||||||
|     ../modules/home-manager/documents.nix |  | ||||||
|     ../modules/home-manager/fish.nix |  | ||||||
|     ../modules/home-manager/flatpaks.nix |  | ||||||
|     ../modules/home-manager/hypr |  | ||||||
|     ../modules/home-manager/keepassxc.nix |  | ||||||
|     ../modules/home-manager/kitty.nix |  | ||||||
|     ../modules/home-manager/kubectl.nix |  | ||||||
|     ../modules/home-manager/obsidian.nix |  | ||||||
|     ../modules/home-manager/owncloud-client.nix |  | ||||||
|     ../modules/home-manager/ssh.nix |  | ||||||
|     ../modules/home-manager/stylix.nix |  | ||||||
|     ../modules/home-manager/thunderbird.nix |  | ||||||
|     ../modules/home-manager/wofi.nix |  | ||||||
|     ../modules/home-manager/xdg-portals.nix |  | ||||||
|   ]; |  | ||||||
|  |  | ||||||
|   ## Home Manager configuration |   ## Home Manager configuration | ||||||
|   home.stateVersion = "24.05"; |   home.stateVersion = "24.05"; | ||||||
|   # Let Home Manager install and manage itself. |   # Let Home Manager install and manage itself. | ||||||
|   | |||||||
							
								
								
									
										38
									
								
								users/remy_spectre/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								users/remy_spectre/default.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | |||||||
|  | { config, pkgs, lib, ... }: | ||||||
|  | with lib.hm.gvariant; | ||||||
|  | { | ||||||
|  |   config = { | ||||||
|  |     nix-config = { | ||||||
|  |       hypr = { | ||||||
|  |         internal-screen = { | ||||||
|  |             resolution = "3840x2160"; | ||||||
|  |             scale = "1.666667"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   imports = [ | ||||||
|  |     ../remy.nix | ||||||
|  |     ../../modules/home-manager/browser.nix | ||||||
|  |     ../../modules/home-manager/code.nix | ||||||
|  |     ../../modules/home-manager/dev.nix | ||||||
|  |     ../../modules/home-manager/documents.nix | ||||||
|  |     ../../modules/home-manager/fish.nix | ||||||
|  |     ../../modules/home-manager/flatpaks.nix | ||||||
|  |     ../../modules/home-manager/hypr | ||||||
|  |     ../../modules/home-manager/keepassxc.nix | ||||||
|  |     ../../modules/home-manager/kitty.nix | ||||||
|  |     ../../modules/home-manager/kubectl.nix | ||||||
|  |     ../../modules/home-manager/obsidian.nix | ||||||
|  |     ../../modules/home-manager/owncloud-client.nix | ||||||
|  |     ../../modules/home-manager/ssh.nix | ||||||
|  |     ../../modules/home-manager/stylix.nix | ||||||
|  |     ../../modules/home-manager/thunderbird.nix | ||||||
|  |     ../../modules/home-manager/wofi.nix | ||||||
|  |     ../../modules/home-manager/xdg-portals.nix | ||||||
|  |   ]; | ||||||
|  |  | ||||||
|  | } | ||||||
							
								
								
									
										38
									
								
								users/remy_yoga-usb/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								users/remy_yoga-usb/default.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | |||||||
|  | { config, pkgs, lib, ... }: | ||||||
|  | with lib.hm.gvariant; | ||||||
|  | { | ||||||
|  |   config = { | ||||||
|  |     nix-config = { | ||||||
|  |       hypr = { | ||||||
|  |         internal-screen = { | ||||||
|  |             resolution = "2880x1800@90.00100"; | ||||||
|  |             scale = "1.666667"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   imports = [ | ||||||
|  |     ../remy.nix | ||||||
|  |     ../../modules/home-manager/browser.nix | ||||||
|  |     ../../modules/home-manager/code.nix | ||||||
|  |     ../../modules/home-manager/dev.nix | ||||||
|  |     ../../modules/home-manager/documents.nix | ||||||
|  |     ../../modules/home-manager/fish.nix | ||||||
|  |     ../../modules/home-manager/flatpaks.nix | ||||||
|  |     ../../modules/home-manager/hypr | ||||||
|  |     ../../modules/home-manager/keepassxc.nix | ||||||
|  |     ../../modules/home-manager/kitty.nix | ||||||
|  |     ../../modules/home-manager/kubectl.nix | ||||||
|  |     ../../modules/home-manager/obsidian.nix | ||||||
|  |     ../../modules/home-manager/owncloud-client.nix | ||||||
|  |     ../../modules/home-manager/ssh.nix | ||||||
|  |     ../../modules/home-manager/stylix.nix | ||||||
|  |     ../../modules/home-manager/thunderbird.nix | ||||||
|  |     ../../modules/home-manager/wofi.nix | ||||||
|  |     ../../modules/home-manager/xdg-portals.nix | ||||||
|  |   ]; | ||||||
|  |  | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user