forked from jan-leila/nix-config
		
	moved overlays to own folder
made environments folder
This commit is contained in:
		
							parent
							
								
									eda1db9136
								
							
						
					
					
						commit
						ffe16a8d25
					
				
					 7 changed files with 189 additions and 132 deletions
				
			
		
							
								
								
									
										72
									
								
								enviroments/client/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								enviroments/client/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,72 @@ | ||||||
|  | { pkgs, ... }: | ||||||
|  | { | ||||||
|  |   imports = [ | ||||||
|  |     ../common | ||||||
|  |   ]; | ||||||
|  | 
 | ||||||
|  |   # Enable CUPS to print documents. | ||||||
|  |   services.printing.enable = true; | ||||||
|  | 
 | ||||||
|  |   # Enable networking | ||||||
|  |   networking.networkmanager.enable = true; | ||||||
|  | 
 | ||||||
|  |   # Enable the X11 windowing system. | ||||||
|  |   services.xserver.enable = true; | ||||||
|  | 
 | ||||||
|  |   # Enable the GNOME Desktop Environment. | ||||||
|  |   services.xserver.displayManager.gdm.enable = true; | ||||||
|  |   services.xserver.desktopManager.gnome.enable = true; | ||||||
|  |   services.xserver.desktopManager.xterm.enable = false;  | ||||||
|  | 
 | ||||||
|  |   # Get rid of xTerm | ||||||
|  |   services.xserver.excludePackages = [ pkgs.xterm ]; | ||||||
|  | 
 | ||||||
|  |   # Configure keymap in X11 | ||||||
|  |   services.xserver = { | ||||||
|  |     layout = "us,it,de"; | ||||||
|  |     xkbVariant = ""; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   # Enable sound with pipewire. | ||||||
|  |   sound.enable = true; | ||||||
|  |   hardware.pulseaudio.enable = false; | ||||||
|  |   security.rtkit.enable = true; | ||||||
|  |   services.pipewire = { | ||||||
|  |     enable = true; | ||||||
|  |     alsa.enable = true; | ||||||
|  |     alsa.support32Bit = true; | ||||||
|  |     pulse.enable = true; | ||||||
|  |     # If you want to use JACK applications, uncomment this | ||||||
|  |     #jack.enable = true; | ||||||
|  | 
 | ||||||
|  |     # use the example session manager (no others are packaged yet so this is enabled by default, | ||||||
|  |     # no need to redefine it in your config for now) | ||||||
|  |     #media-session.enable = true; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   i18n.defaultLocale = "en_US.UTF-8"; | ||||||
|  | 
 | ||||||
|  |   i18n.extraLocaleSettings = { | ||||||
|  |     LC_ADDRESS = "en_US.UTF-8"; | ||||||
|  |     LC_IDENTIFICATION = "en_US.UTF-8"; | ||||||
|  |     LC_MEASUREMENT = "en_US.UTF-8"; | ||||||
|  |     LC_MONETARY = "en_US.UTF-8"; | ||||||
|  |     LC_NAME = "en_US.UTF-8"; | ||||||
|  |     LC_NUMERIC = "en_US.UTF-8"; | ||||||
|  |     LC_PAPER = "en_US.UTF-8"; | ||||||
|  |     LC_TELEPHONE = "en_US.UTF-8"; | ||||||
|  |     LC_TIME = "en_US.UTF-8"; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   environment.systemPackages = with pkgs; [ | ||||||
|  |     # version control | ||||||
|  |     git | ||||||
|  |      | ||||||
|  |     # helvetica font | ||||||
|  |     aileron | ||||||
|  | 
 | ||||||
|  |     # system debuging tools | ||||||
|  |     iputils | ||||||
|  |     dnsutils | ||||||
|  |   ]; | ||||||
|  | } | ||||||
							
								
								
									
										16
									
								
								enviroments/common/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								enviroments/common/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | ||||||
|  | { pkgs, ... }: | ||||||
|  | { | ||||||
|  |   imports = [ | ||||||
|  |       ../../users | ||||||
|  |   ]; | ||||||
|  | 
 | ||||||
|  |   nix.settings.experimental-features = [ "nix-command" "flakes" ]; | ||||||
|  | 
 | ||||||
|  |   # Set your time zone. | ||||||
|  |   time.timeZone = "America/Chicago"; | ||||||
|  | 
 | ||||||
|  |   # List packages installed in system profile. | ||||||
|  |   environment.systemPackages = with pkgs; [ | ||||||
|  |     wget | ||||||
|  |   ]; | ||||||
|  | } | ||||||
|  | @ -8,7 +8,7 @@ | ||||||
| 
 | 
 | ||||||
|       ./hardware-configuration.nix |       ./hardware-configuration.nix | ||||||
|        |        | ||||||
|       ../../users |       ../../enviroments/client | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|   sops.defaultSopsFile = ../../secrets/secrets.yaml; |   sops.defaultSopsFile = ../../secrets/secrets.yaml; | ||||||
|  | @ -26,68 +26,7 @@ | ||||||
|    |    | ||||||
|   boot.kernelModules = [ "sg" ]; |   boot.kernelModules = [ "sg" ]; | ||||||
| 
 | 
 | ||||||
|   nix.settings.experimental-features = [ "nix-command" "flakes" ]; |  | ||||||
| 
 |  | ||||||
|   networking.hostName = "horizon"; # Define your hostname. |   networking.hostName = "horizon"; # Define your hostname. | ||||||
|   # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant. |  | ||||||
| 
 |  | ||||||
|   # Enable networking |  | ||||||
|   networking.networkmanager.enable = true; |  | ||||||
| 
 |  | ||||||
|   # Set your time zone. |  | ||||||
|   time.timeZone = "America/Chicago"; |  | ||||||
| 
 |  | ||||||
|   # Select internationalisation properties. |  | ||||||
|   i18n.defaultLocale = "en_US.UTF-8"; |  | ||||||
| 
 |  | ||||||
|   i18n.extraLocaleSettings = { |  | ||||||
|     LC_ADDRESS = "en_US.UTF-8"; |  | ||||||
|     LC_IDENTIFICATION = "en_US.UTF-8"; |  | ||||||
|     LC_MEASUREMENT = "en_US.UTF-8"; |  | ||||||
|     LC_MONETARY = "en_US.UTF-8"; |  | ||||||
|     LC_NAME = "en_US.UTF-8"; |  | ||||||
|     LC_NUMERIC = "en_US.UTF-8"; |  | ||||||
|     LC_PAPER = "en_US.UTF-8"; |  | ||||||
|     LC_TELEPHONE = "en_US.UTF-8"; |  | ||||||
|     LC_TIME = "en_US.UTF-8"; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   # Enable the X11 windowing system. |  | ||||||
|   services.xserver.enable = true; |  | ||||||
| 
 |  | ||||||
|   # Enable the GNOME Desktop Environment. |  | ||||||
|   services.xserver.displayManager.gdm.enable = true; |  | ||||||
|   services.xserver.desktopManager.gnome.enable = true; |  | ||||||
|   services.xserver.desktopManager.xterm.enable = false;  |  | ||||||
| 
 |  | ||||||
|   # Get rid of xTerm |  | ||||||
|   services.xserver.excludePackages = [ pkgs.xterm ]; |  | ||||||
| 
 |  | ||||||
|   # Configure keymap in X11 |  | ||||||
|   services.xserver = { |  | ||||||
|     layout = "us"; |  | ||||||
|     xkbVariant = ""; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   # Enable CUPS to print documents. |  | ||||||
|   services.printing.enable = true; |  | ||||||
| 
 |  | ||||||
|   # Enable sound with pipewire. |  | ||||||
|   sound.enable = true; |  | ||||||
|   hardware.pulseaudio.enable = false; |  | ||||||
|   security.rtkit.enable = true; |  | ||||||
|   services.pipewire = { |  | ||||||
|     enable = true; |  | ||||||
|     alsa.enable = true; |  | ||||||
|     alsa.support32Bit = true; |  | ||||||
|     pulse.enable = true; |  | ||||||
|     # If you want to use JACK applications, uncomment this |  | ||||||
|     #jack.enable = true; |  | ||||||
| 
 |  | ||||||
|     # use the example session manager (no others are packaged yet so this is enabled by default, |  | ||||||
|     # no need to redefine it in your config for now) |  | ||||||
|     #media-session.enable = true; |  | ||||||
|   }; |  | ||||||
| 
 | 
 | ||||||
|   # enabled virtualisation for docker |   # enabled virtualisation for docker | ||||||
|   # virtualisation.docker.enable = true; |   # virtualisation.docker.enable = true; | ||||||
|  | @ -127,24 +66,6 @@ | ||||||
|   # Allow unfree packages |   # Allow unfree packages | ||||||
|   nixpkgs.config.allowUnfree = true; |   nixpkgs.config.allowUnfree = true; | ||||||
| 
 | 
 | ||||||
|   # List packages installed in system profile. To search, run: |  | ||||||
|   # $ nix search wget |  | ||||||
|   environment.systemPackages = with pkgs; [ |  | ||||||
|   #  vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. |  | ||||||
|     # wget |  | ||||||
|     # resilio-sync |  | ||||||
|     # yt-dlp |  | ||||||
|     # spotdl |  | ||||||
|     # ffmpeg |  | ||||||
|     # chromaprint |  | ||||||
|     # docker |  | ||||||
|     aileron |  | ||||||
| #    sox |  | ||||||
| #    songrec |  | ||||||
| #    csvkit |  | ||||||
| #    losslessaudiochecker |  | ||||||
|   ]; |  | ||||||
| 
 |  | ||||||
|   # Some programs need SUID wrappers, can be configured further or are |   # Some programs need SUID wrappers, can be configured further or are | ||||||
|   # started in user sessions. |   # started in user sessions. | ||||||
|   # programs.mtr.enable = true; |   # programs.mtr.enable = true; | ||||||
|  |  | ||||||
							
								
								
									
										19
									
								
								overlays/intellij.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								overlays/intellij.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | ||||||
|  | { ... }: | ||||||
|  | { | ||||||
|  |   nixpkgs.overlays = [ | ||||||
|  |     (self: super: { | ||||||
|  |       # idea is too out of date for android gradle things | ||||||
|  |       jetbrains = { | ||||||
|  |         jdk = super.jdk17; | ||||||
|  |         idea-community = super.jetbrains.idea-community.overrideAttrs (oldAttrs: rec { | ||||||
|  |           version = "2023.3.3"; | ||||||
|  |           name = "idea-community-${version}"; | ||||||
|  |           src = super.fetchurl { | ||||||
|  |             sha256 = "sha256-3BI97Tx+3onnzT1NXkb62pa4dj9kjNDNvFt9biYgP9I="; | ||||||
|  |             url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz"; | ||||||
|  |           }; | ||||||
|  |         }); | ||||||
|  |       }; | ||||||
|  |     }) | ||||||
|  |   ]; | ||||||
|  | } | ||||||
							
								
								
									
										15
									
								
								overlays/vscodium.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								overlays/vscodium.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,15 @@ | ||||||
|  | { ... }: | ||||||
|  | { | ||||||
|  |   nixpkgs.overlays = [ | ||||||
|  |     (self: super: { | ||||||
|  |       # ui is broken on 1.84 | ||||||
|  |       vscodium = super.vscodium.overrideAttrs (oldAttrs: rec { | ||||||
|  |         version = "1.85.2.24019"; | ||||||
|  |         src = super.fetchurl { | ||||||
|  |           sha256 = "sha256-OBGFXOSN+Oq9uj/5O6tF0Kp7rxTY1AzNbhLK8G+EqVk="; | ||||||
|  |           url = "https://github.com/VSCodium/vscodium/releases/download/${version}/VSCodium-linux-x64-${version}.tar.gz"; | ||||||
|  |         }; | ||||||
|  |       }); | ||||||
|  |     }) | ||||||
|  |   ]; | ||||||
|  | } | ||||||
|  | @ -3,6 +3,10 @@ let | ||||||
|   cfg = config.users.leyla; |   cfg = config.users.leyla; | ||||||
| in | in | ||||||
| { | { | ||||||
|  |   imports =[ | ||||||
|  |     ./packages.nix | ||||||
|  |   ]; | ||||||
|  | 
 | ||||||
|   options.users.leyla = { |   options.users.leyla = { | ||||||
|     isNormalUser = lib.mkEnableOption "leyla"; |     isNormalUser = lib.mkEnableOption "leyla"; | ||||||
|   }; |   }; | ||||||
|  | @ -30,58 +34,6 @@ in | ||||||
|           extraGroups = [ "networkmanager" "wheel" ]; |           extraGroups = [ "networkmanager" "wheel" ]; | ||||||
| 
 | 
 | ||||||
|           hashedPasswordFile = config.sops.secrets."passwords/leyla".path; |           hashedPasswordFile = config.sops.secrets."passwords/leyla".path; | ||||||
|            |  | ||||||
|           packages = with pkgs; [ |  | ||||||
|             iputils |  | ||||||
|             dnsutils |  | ||||||
|             git |  | ||||||
|             firefox |  | ||||||
|             signal-desktop |  | ||||||
|             obsidian |  | ||||||
|             bitwarden |  | ||||||
|             vscodium |  | ||||||
|             nextcloud-client |  | ||||||
|             inkscape |  | ||||||
|             steam |  | ||||||
|             discord |  | ||||||
|             rhythmbox |  | ||||||
|             makemkv |  | ||||||
|             protonvpn-gui |  | ||||||
|             transmission-gtk |  | ||||||
|             freecad |  | ||||||
|             mupen64plus |  | ||||||
|             dbeaver |  | ||||||
|             easytag |  | ||||||
|             cura |  | ||||||
|             kicad-small |  | ||||||
|       #        jdk |  | ||||||
|       #        android-tools |  | ||||||
|       #        android-studio |  | ||||||
|             androidStudioPackages.canary |  | ||||||
|             jetbrains.idea-community |  | ||||||
|             ungoogled-chromium |  | ||||||
|             nodejs |  | ||||||
|             exiftool |  | ||||||
|             libreoffice |  | ||||||
|             # N64 Emulator |  | ||||||
|             mupen64plus |  | ||||||
|             # GameCube Emulator and Wii Emulator |  | ||||||
|             dolphin-emu |  | ||||||
|             # Switch Emulator |  | ||||||
|             yuzu-mainline |  | ||||||
|             # Atari 2600 Emulator |  | ||||||
|             stella |  | ||||||
|             # mame Emulator |  | ||||||
|             mame |  | ||||||
|             # Game Boy Advanced Emulator |  | ||||||
|             vbam |  | ||||||
|             # NES Emulator |  | ||||||
|             fceux |  | ||||||
|             # SNES Emulator |  | ||||||
|             zsnes |  | ||||||
|             # DS Emulator |  | ||||||
|             desmume |  | ||||||
|           ]; |  | ||||||
|         } else { |         } else { | ||||||
|           isSystemUser = true; |           isSystemUser = true; | ||||||
|         } |         } | ||||||
|  |  | ||||||
							
								
								
									
										62
									
								
								users/leyla/packages.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								users/leyla/packages.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,62 @@ | ||||||
|  | { lib, config, pkgs, ... }: | ||||||
|  | let | ||||||
|  |   cfg = config.users.leyla; | ||||||
|  | in | ||||||
|  | { | ||||||
|  |   imports = [ | ||||||
|  |     ../../overlays/intellij.nix | ||||||
|  |     ../../overlays/vscodium.nix | ||||||
|  |   ]; | ||||||
|  | 
 | ||||||
|  |   users.users.leyla.packages = lib.mkIf cfg.isNormalUser ( | ||||||
|  |     with pkgs; [ | ||||||
|  |       #foss platforms | ||||||
|  |       signal-desktop | ||||||
|  |       bitwarden | ||||||
|  |       firefox | ||||||
|  |       ungoogled-chromium | ||||||
|  |       libreoffice | ||||||
|  |       inkscape | ||||||
|  |       freecad | ||||||
|  |       kicad-small | ||||||
|  |       cura | ||||||
|  |       makemkv | ||||||
|  |       transmission-gtk | ||||||
|  |       easytag | ||||||
|  |       rhythmbox | ||||||
|  | 
 | ||||||
|  |       # proprietary platforms | ||||||
|  |       discord | ||||||
|  |       obsidian | ||||||
|  |        | ||||||
|  |       # development enviroments | ||||||
|  |       vscodium | ||||||
|  |       androidStudioPackages.canary | ||||||
|  |       jetbrains.idea-community | ||||||
|  |       dbeaver | ||||||
|  | 
 | ||||||
|  |       # development tools | ||||||
|  |       # TODO: move these to flakes | ||||||
|  |       nodejs | ||||||
|  |        | ||||||
|  |       # bridges | ||||||
|  |       protonvpn-gui | ||||||
|  |       nextcloud-client | ||||||
|  |        | ||||||
|  |       # gaming | ||||||
|  |       steam | ||||||
|  |       # emulators | ||||||
|  |       yuzu-mainline # Switch Emulator | ||||||
|  |       dolphin-emu # GameCube and Wii Emulator | ||||||
|  |       desmume # DS Emulator | ||||||
|  |       mupen64plus # N64 Emulator | ||||||
|  |       zsnes # SNES Emulator | ||||||
|  |       vbam # Game Boy Advanced Emulator | ||||||
|  |       fceux # NES Emulator | ||||||
|  |       stella # Atari 2600 Emulator | ||||||
|  |       mame # mame Emulator | ||||||
|  |        | ||||||
|  |        | ||||||
|  |     ] | ||||||
|  |   ); | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue