Base NixOS configuration
This commit is contained in:
		
							parent
							
								
									5ac70cc706
								
							
						
					
					
						commit
						611b5384ae
					
				
							
								
								
									
										168
									
								
								configuration.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										168
									
								
								configuration.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,168 @@ | ||||
| # 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 systemd-boot EFI boot loader. | ||||
|   boot.loader.systemd-boot.enable = true; | ||||
|   boot.loader.efi.canTouchEfiVariables = true; | ||||
| 
 | ||||
|   networking.hostName = "ekzyis-x1"; # Define your hostname. | ||||
|   # 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"; | ||||
|   console = { | ||||
|     font = "Lat2-Terminus16"; | ||||
|     keyMap = "de-latin1"; | ||||
|     useXkbConfig = false; # use xkb.options in tty. | ||||
|   }; | ||||
| 
 | ||||
|   # Enable the X11 windowing system. | ||||
|   services.xserver.enable = true; | ||||
|   services.xserver.windowManager.dwm = { | ||||
|     enable = true; | ||||
|     package = pkgs.dwm.overrideAttrs { | ||||
|       src = pkgs.fetchFromGitea { | ||||
|         domain = "git.ekzy.is"; | ||||
|         owner = "ekzyis"; | ||||
|         repo = "dwm"; | ||||
|         rev = "dcc5981499"; | ||||
|         hash = "sha256-LMcjwjmfOit3/iHBJDNKy5qjdJZ7uyW/SNIQ/pgAlhE="; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
|   services.xserver.displayManager.startx.enable = true; | ||||
| 
 | ||||
|   # Configure keymap in X11 | ||||
|   services.xserver.xkb.layout = "de"; | ||||
|   services.xserver.xkb.options = "eurosign:e,caps:escape"; | ||||
| 
 | ||||
|   # Enable CUPS to print documents. | ||||
|   services.printing.enable = false; | ||||
| 
 | ||||
|   # Enable sound. | ||||
|   sound.enable = true; | ||||
|   hardware.pulseaudio.enable = true; | ||||
| 
 | ||||
|   # Enable touchpad support (enabled default in most desktopManager). | ||||
|   services.xserver.libinput.enable = true; | ||||
| 
 | ||||
|   # Define a user account. Don't forget to set a password with ‘passwd’. | ||||
|   users.users.ekzyis = { | ||||
|     isNormalUser = true; | ||||
|     home = "/home/ekzyis"; | ||||
|     extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. | ||||
|     packages = with pkgs; [ | ||||
|     ]; | ||||
|   }; | ||||
|   users.groups.ekzyis.members = [ "ekzyis" ]; | ||||
| 
 | ||||
|   # List packages installed in system profile. To search, run: | ||||
|   # $ nix search wget | ||||
|   environment.systemPackages = with pkgs; | ||||
|   let | ||||
|     dwmstatus = pkgs.stdenv.mkDerivation { | ||||
|       name = "dwmstatus"; | ||||
|       src = pkgs.fetchFromGitea { | ||||
|         domain = "git.ekzy.is"; | ||||
|         owner = "ekzyis"; | ||||
|         repo = "dwmstatus"; | ||||
|         rev = "6c078d4"; | ||||
|         hash = "sha256-9ibrM0ZOJUC5YsSZjpqcw4GyeBmtyGaGFausjL96yTo="; | ||||
|       }; | ||||
|       buildInputs = [ xorg.libX11 ]; | ||||
|       installPhase = '' | ||||
|         mkdir -p "$out/bin" | ||||
|         DESTDIR="$out" make install | ||||
|         mv "$out/usr/bin/dwmstatus" "$out/bin" | ||||
|         rm -r "$out/usr/" | ||||
|       ''; | ||||
|     }; | ||||
|   in | ||||
|   [ | ||||
|     vim wget curl git tmux | ||||
|     (st.overrideAttrs (oldAttrs: rec { | ||||
|       src = pkgs.fetchFromGitea { | ||||
|         domain = "git.ekzy.is"; | ||||
|         owner = "ekzyis"; | ||||
|         repo = "st"; | ||||
|         rev = "5696d7d7bb"; | ||||
|         hash = "sha256-W9fPCF+6m84MoelErioM3BQFzFEzxcqTtZeAmKTsEWI="; | ||||
|       }; | ||||
|     })) | ||||
|     (dmenu.overrideAttrs (oldAttrs: rec { | ||||
|       src = pkgs.fetchFromGitea { | ||||
|         domain = "git.ekzy.is"; | ||||
|         owner = "ekzyis"; | ||||
|         repo = "dmenu"; | ||||
|         rev = "e2cf3c8a88"; | ||||
|         hash = "sha256-9zr0IlHa3BVqpJYB/J8ecB5y0gIl4cqjqTLD/cic9JU="; | ||||
|       }; | ||||
|     })) | ||||
|     dwmstatus | ||||
|   ]; | ||||
| 
 | ||||
|   fonts.packages = with pkgs; [ | ||||
|     hack-font | ||||
|   ]; | ||||
| 
 | ||||
|   # Some programs need SUID wrappers, can be configured further or are | ||||
|   # started in user sessions. | ||||
|   # programs.mtr.enable = true; | ||||
|   # programs.gnupg.agent = { | ||||
|   #   enable = true; | ||||
|   #   enableSSHSupport = true; | ||||
|   # }; | ||||
| 
 | ||||
|   # List services that you want to enable: | ||||
| 
 | ||||
|   # Enable the OpenSSH daemon. | ||||
|   services.openssh.enable = true; | ||||
| 
 | ||||
|   # Open ports in the firewall. | ||||
|   # networking.firewall.allowedTCPPorts = [ ... ]; | ||||
|   # networking.firewall.allowedUDPPorts = [ ... ]; | ||||
|   # Or disable the firewall altogether. | ||||
|   # networking.firewall.enable = false; | ||||
| 
 | ||||
|   # Copy the NixOS configuration file and link it from the resulting system | ||||
|   # (/run/current-system/configuration.nix). This is useful in case you | ||||
|   # accidentally delete configuration.nix. | ||||
|   # system.copySystemConfiguration = true; | ||||
| 
 | ||||
|   # This option defines the first version of NixOS you have installed on this particular machine, | ||||
|   # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. | ||||
|   # | ||||
|   # Most users should NEVER change this value after the initial install, for any reason, | ||||
|   # even if you've upgraded your system to a new NixOS release. | ||||
|   # | ||||
|   # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, | ||||
|   # so changing it will NOT upgrade your system. | ||||
|   # | ||||
|   # This value being lower than the current NixOS release does NOT mean your system is | ||||
|   # out of date, out of support, or vulnerable. | ||||
|   # | ||||
|   # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, | ||||
|   # and migrated your data accordingly. | ||||
|   # | ||||
|   # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . | ||||
|   system.stateVersion = "23.11"; # Did you read the comment? | ||||
| } | ||||
| 
 | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user