initial commit
This commit is contained in:
		
							
								
								
									
										45
									
								
								config/base.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										45
									
								
								config/base.nix
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					# base.nix: basic have-this-everywhere nixos config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{ config, lib, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  imports = [ 
 | 
				
			||||||
 | 
					    ../hardware-configuration.nix
 | 
				
			||||||
 | 
					    ./users.nix
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Select internationalisation properties.
 | 
				
			||||||
 | 
					  i18n.defaultLocale = "de_DE.UTF-8";
 | 
				
			||||||
 | 
					  console.font = "Lat2-Terminus16";
 | 
				
			||||||
 | 
					  console.keyMap = "de";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  time.timeZone = "Europe/Berlin";
 | 
				
			||||||
 | 
					  services.timesyncd.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					    pkgs.vim_configurable
 | 
				
			||||||
 | 
					    pkgs.neovim
 | 
				
			||||||
 | 
					    pkgs.zsh
 | 
				
			||||||
 | 
					    pkgs.wget 
 | 
				
			||||||
 | 
					    pkgs.curl 
 | 
				
			||||||
 | 
					    pkgs.rsync 
 | 
				
			||||||
 | 
					    pkgs.git
 | 
				
			||||||
 | 
					    pkgs.git-hub 
 | 
				
			||||||
 | 
					    pkgs.python3
 | 
				
			||||||
 | 
					    pkgs.pciutils
 | 
				
			||||||
 | 
					    pkgs.dmidecode
 | 
				
			||||||
 | 
					    pkgs.cpufrequtils
 | 
				
			||||||
 | 
					    pkgs.binutils
 | 
				
			||||||
 | 
					    pkgs.mc
 | 
				
			||||||
 | 
					    pkgs.git
 | 
				
			||||||
 | 
					    pkgs.htop
 | 
				
			||||||
 | 
					    pkgs.bpytop
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  networking.firewall = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    allowPing = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  services.openssh.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										20
									
								
								config/gnome.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										20
									
								
								config/gnome.nix
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					# gnome.nix: install gnome
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 { config, pkgs, ... }:
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					 services.xserver.desktopManager.gnome3.enable = true;
 | 
				
			||||||
 | 
					   environment.gnome3.excludePackages = with pkgs.gnome3; [
 | 
				
			||||||
 | 
					     epiphany
 | 
				
			||||||
 | 
					     evolution
 | 
				
			||||||
 | 
					     gnome-maps
 | 
				
			||||||
 | 
					     gnome-music
 | 
				
			||||||
 | 
					     gnome-photos
 | 
				
			||||||
 | 
					     gedit
 | 
				
			||||||
 | 
					     totem
 | 
				
			||||||
 | 
					     gnome-calendar
 | 
				
			||||||
 | 
					     gnome-weather
 | 
				
			||||||
 | 
					     accerciser
 | 
				
			||||||
 | 
					     gnome-software
 | 
				
			||||||
 | 
					   ];
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
							
								
								
									
										27
									
								
								config/grsec.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										27
									
								
								config/grsec.nix
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					# grsec.nix: NIXOS used HARDEN! NIXOS's DEFENSE ROSE!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{ config, lib, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # if you're an acer c710 (i know i am sometimes) you might also want:
 | 
				
			||||||
 | 
					  # CHROME_PLATFORMS y
 | 
				
			||||||
 | 
					  # CHROMEOS_LAPTOP m
 | 
				
			||||||
 | 
					  # CHROMEOS_PSTORE m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  nixpkgs.config.packageOverrides = pkgs: {
 | 
				
			||||||
 | 
					    linux_grsec_nixos = pkgs.linux_grsec_nixos.override {
 | 
				
			||||||
 | 
					      extraConfig = ''
 | 
				
			||||||
 | 
					            PAX y
 | 
				
			||||||
 | 
					            GRKERNSEC y
 | 
				
			||||||
 | 
					            GRKERNSEC_CONFIG_AUTO y
 | 
				
			||||||
 | 
					            GRKERNSEC_CONFIG_DESKTOP y
 | 
				
			||||||
 | 
					            GRKERNSEC_CONFIG_SECURE y
 | 
				
			||||||
 | 
					            GRKERNSEC_CONFIG_VIRT_EPT y
 | 
				
			||||||
 | 
					      '';
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  security.grsecurity.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										82
									
								
								config/gui.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										82
									
								
								config/gui.nix
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,82 @@
 | 
				
			|||||||
 | 
					# gui.nix: configure x11 stuff common to any wm/de
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{ config, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  #imports = [ ./base.nix ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  networking.wireless.enable = false;
 | 
				
			||||||
 | 
					  networking.networkmanager.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					    pkgs.powerline-fonts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pkgs.gtk3
 | 
				
			||||||
 | 
					    pkgs.gtk_engines
 | 
				
			||||||
 | 
					    pkgs.gnome2.gnome_icon_theme
 | 
				
			||||||
 | 
					    pkgs.shared_mime_info
 | 
				
			||||||
 | 
					    pkgs.arc-theme
 | 
				
			||||||
 | 
					    pkgs.arc-icon-theme
 | 
				
			||||||
 | 
					    pkgs.hicolor_icon_theme
 | 
				
			||||||
 | 
					    pkgs.elementary-xfce-icon-theme
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pkgs.rxvt_unicode
 | 
				
			||||||
 | 
					    pkgs.redshift
 | 
				
			||||||
 | 
					    pkgs.xorg.xbacklight
 | 
				
			||||||
 | 
					    # internet / communication stuff
 | 
				
			||||||
 | 
					    pkgs.pulseaudioFull
 | 
				
			||||||
 | 
					    pkgs.pamixer
 | 
				
			||||||
 | 
					    pkgs.pulsemixer
 | 
				
			||||||
 | 
					    pkgs.google-chrome
 | 
				
			||||||
 | 
					    pkgs.chromium
 | 
				
			||||||
 | 
					    pkgs.firefox
 | 
				
			||||||
 | 
					    #pkgs.flashplayer
 | 
				
			||||||
 | 
					    pkgs.discord
 | 
				
			||||||
 | 
					    pkgs.tdesktop
 | 
				
			||||||
 | 
					    pkgs.thunderbird
 | 
				
			||||||
 | 
					    pkgs.keepassxc
 | 
				
			||||||
 | 
					    pkgs.xorg.xkill
 | 
				
			||||||
 | 
					    pkgs.nextcloud-client
 | 
				
			||||||
 | 
					    pkgs.rxvt_unicode
 | 
				
			||||||
 | 
					    pkgs.networkmanager_openvpn
 | 
				
			||||||
 | 
					    pkgs.networkmanager_vpnc
 | 
				
			||||||
 | 
					    pkgs.networkmanager_strongswan
 | 
				
			||||||
 | 
					    pkgs.networkmanagerapplet
 | 
				
			||||||
 | 
					    pkgs.signal-desktop
 | 
				
			||||||
 | 
					    pkgs.anydesk
 | 
				
			||||||
 | 
					    pkgs.keybase
 | 
				
			||||||
 | 
					    pkgs.keybase-gui
 | 
				
			||||||
 | 
					    pkgs.kbfs
 | 
				
			||||||
 | 
					    #stable.spotify
 | 
				
			||||||
 | 
					    pkgs.pavucontrol
 | 
				
			||||||
 | 
					    pkgs.gnupg
 | 
				
			||||||
 | 
					    pkgs.libsecret
 | 
				
			||||||
 | 
					#    pkgs.gnome3.gnome-keyring
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.xserver = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    layout = "de";
 | 
				
			||||||
 | 
					    displayManager.lightdm.enable = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  services.gnome3.gnome-keyring = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fonts = {
 | 
				
			||||||
 | 
					    enableFontDir = true;
 | 
				
			||||||
 | 
					    enableGhostscriptFonts = true;
 | 
				
			||||||
 | 
					    fonts = with pkgs; [
 | 
				
			||||||
 | 
					      corefonts
 | 
				
			||||||
 | 
					      roboto
 | 
				
			||||||
 | 
					      inconsolata
 | 
				
			||||||
 | 
					      ubuntu_font_family
 | 
				
			||||||
 | 
					      unifont
 | 
				
			||||||
 | 
					      terminus_font
 | 
				
			||||||
 | 
					      powerline-fonts
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					#  security.pam.enableGnomeKeyring = {
 | 
				
			||||||
 | 
					#    enable = true;
 | 
				
			||||||
 | 
					# };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										48
									
								
								config/i3.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										48
									
								
								config/i3.nix
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					# i3.nix: use i3 as the desktop manager
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{ config, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					    # window manager + basic essentials
 | 
				
			||||||
 | 
					    pkgs.lightdm
 | 
				
			||||||
 | 
					    pkgs.i3
 | 
				
			||||||
 | 
					    pkgs.i3status
 | 
				
			||||||
 | 
					    pkgs.i3status-rust
 | 
				
			||||||
 | 
					    pkgs.i3lock-fancy
 | 
				
			||||||
 | 
					    pkgs.xautolock
 | 
				
			||||||
 | 
					    pkgs.dmenu
 | 
				
			||||||
 | 
					    pkgs.j4-dmenu-desktop
 | 
				
			||||||
 | 
					    pkgs.powerline-fonts
 | 
				
			||||||
 | 
					    pkgs.font-awesome
 | 
				
			||||||
 | 
					    pkgs.font-awesome-ttf
 | 
				
			||||||
 | 
					    pkgs.font-awesome_5
 | 
				
			||||||
 | 
					    pkgs.font-awesome_4
 | 
				
			||||||
 | 
					    pkgs.lxappearance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pkgs.xfce.exo
 | 
				
			||||||
 | 
					    pkgs.xfce.gvfs
 | 
				
			||||||
 | 
					    pkgs.xfce.thunar
 | 
				
			||||||
 | 
					    pkgs.xfce.thunar_volman
 | 
				
			||||||
 | 
					    pkgs.xfce.thunar-archive-plugin
 | 
				
			||||||
 | 
					    pkgs.xfce.xfce4icontheme
 | 
				
			||||||
 | 
					    pkgs.xfce.terminal
 | 
				
			||||||
 | 
					    # internet / communication stuff
 | 
				
			||||||
 | 
					    pkgs.tdesktop
 | 
				
			||||||
 | 
					    pkgs.rofi
 | 
				
			||||||
 | 
					    pkgs.maim
 | 
				
			||||||
 | 
					    pkgs.pasystray
 | 
				
			||||||
 | 
					    pkgs.feh
 | 
				
			||||||
 | 
					    pkgs.networkmanager_dmenu
 | 
				
			||||||
 | 
					    pkgs.udiskie
 | 
				
			||||||
 | 
					    pkgs.inconsolata
 | 
				
			||||||
 | 
					    pkgs.termite
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.xserver = {
 | 
				
			||||||
 | 
					    windowManager.i3.enable = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  services.gnome3.at-spi2-core.enable = true;
 | 
				
			||||||
 | 
					  services.dbus.socketActivated = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										15
									
								
								config/laptop.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								config/laptop.nix
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					# laptop.nix: basic laptop config, power management, etc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{ config, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					    pkgs.powertop
 | 
				
			||||||
 | 
					    pkgs.acpi
 | 
				
			||||||
 | 
					    pkgs.upower
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.upower.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										36
									
								
								config/screenlock.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										36
									
								
								config/screenlock.nix
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					{ pkgs, config, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#with import <stockholm/lib>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  cfg = config.screenlock;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  out = {
 | 
				
			||||||
 | 
					    options.screenlock = api;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  api = {
 | 
				
			||||||
 | 
					    enable = mkEnableOption "screenlock";
 | 
				
			||||||
 | 
					    command = mkOption {
 | 
				
			||||||
 | 
					      type = types.str;
 | 
				
			||||||
 | 
					      default = "${pkgs.xlockmore}/bin/i3lock-fancy";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  imp = {
 | 
				
			||||||
 | 
					    systemd.services.screenlock = {
 | 
				
			||||||
 | 
					      before = [ "sleep.target" ];
 | 
				
			||||||
 | 
					      wantedBy = [ "sleep.target" ];
 | 
				
			||||||
 | 
					      environment = {
 | 
				
			||||||
 | 
					        DISPLAY = ":${toString config.services.xserver.display}";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      serviceConfig = {
 | 
				
			||||||
 | 
					        SyslogIdentifier = "screenlock";
 | 
				
			||||||
 | 
					        ExecStart = cfg.command;
 | 
				
			||||||
 | 
					        Type = "simple";
 | 
				
			||||||
 | 
					        User = "templis";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					in out
 | 
				
			||||||
							
								
								
									
										10
									
								
								config/unify.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										10
									
								
								config/unify.nix
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					 # unify.nix: config for unify network devices
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 { config, lib, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					    pkgs.unifi
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					services.unifi.enable = true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										15
									
								
								config/users.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								config/users.nix
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					{ config, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  users.extraUsers.templis = {
 | 
				
			||||||
 | 
					    isNormalUser = true;
 | 
				
			||||||
 | 
					    createHome = true;
 | 
				
			||||||
 | 
					    uid = 1000;
 | 
				
			||||||
 | 
					    group = "users";
 | 
				
			||||||
 | 
					    extraGroups = [
 | 
				
			||||||
 | 
					      "wheel" "audio" "video" "netdev" "networkmanager" "systemd-journal"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					    shell = "/run/current-system/sw/bin/zsh";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										1
									
								
								configuration.nix
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								configuration.nix
									
									
									
									
									
										Symbolic link
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					hosts/dynamix.nix
 | 
				
			||||||
							
								
								
									
										112
									
								
								configuration.nix.bak
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								configuration.nix.bak
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,112 @@
 | 
				
			|||||||
 | 
					# Edit this configuration file to define what should be installed on
 | 
				
			||||||
 | 
					# your system.  Help is available in the configuration.nix(5) man page
 | 
				
			||||||
 | 
					# and in the NixOS manual (accessible by running ‘nixos-help’).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{ config, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  imports =
 | 
				
			||||||
 | 
					    [ # Include the results of the hardware scan.
 | 
				
			||||||
 | 
					      ./hardware-configuration.nix
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Use the GRUB 2 boot loader.
 | 
				
			||||||
 | 
					  boot.loader.grub.enable = true;
 | 
				
			||||||
 | 
					  boot.loader.grub.version = 2;
 | 
				
			||||||
 | 
					  # boot.loader.grub.efiSupport = true;
 | 
				
			||||||
 | 
					  # boot.loader.grub.efiInstallAsRemovable = true;
 | 
				
			||||||
 | 
					  # boot.loader.efi.efiSysMountPoint = "/boot/efi";
 | 
				
			||||||
 | 
					  # Define on which hard drive you want to install Grub.
 | 
				
			||||||
 | 
					  boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only
 | 
				
			||||||
 | 
					  boot.initrd.availableKernelModules = [ "aes_x86_64" "aesni_intel" "cryptd" ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  swapDevices = [{device = "/swapfile"; size = 10000;}];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # networking.hostName = "nixos"; # Define your hostname.
 | 
				
			||||||
 | 
					  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Set your time zone.
 | 
				
			||||||
 | 
					  # time.timeZone = "Europe/Amsterdam";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # The global useDHCP flag is deprecated, therefore explicitly set to false here.
 | 
				
			||||||
 | 
					  # Per-interface useDHCP will be mandatory in the future, so this generated config
 | 
				
			||||||
 | 
					  # replicates the default behaviour.
 | 
				
			||||||
 | 
					  networking.useDHCP = false;
 | 
				
			||||||
 | 
					  networking.interfaces.eno0.useDHCP = true;
 | 
				
			||||||
 | 
					  networking.interfaces.wlp2s0.useDHCP = true;
 | 
				
			||||||
 | 
					  networking.interfaces.wwp0s20u4i6.useDHCP = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # 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 = "us";
 | 
				
			||||||
 | 
					  # };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Enable the GNOME 3 Desktop Environment.
 | 
				
			||||||
 | 
					  services.xserver.enable = true;
 | 
				
			||||||
 | 
					  services.xserver.displayManager.gdm.enable = true;
 | 
				
			||||||
 | 
					  services.xserver.desktopManager.gnome3.enable = true;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Configure keymap in X11
 | 
				
			||||||
 | 
					  # services.xserver.layout = "us";
 | 
				
			||||||
 | 
					  # services.xserver.xkbOptions = "eurosign:e";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Enable CUPS to print documents.
 | 
				
			||||||
 | 
					  # services.printing.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # 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.jane = {
 | 
				
			||||||
 | 
					  #   isNormalUser = true;
 | 
				
			||||||
 | 
					  #   extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
 | 
				
			||||||
 | 
					  # };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # List packages installed in system profile. To search, run:
 | 
				
			||||||
 | 
					  # $ nix search wget
 | 
				
			||||||
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					     wget vim
 | 
				
			||||||
 | 
					     firefox
 | 
				
			||||||
 | 
					     ntfs3g
 | 
				
			||||||
 | 
					   ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # 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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # This value determines the NixOS release from which the default
 | 
				
			||||||
 | 
					  # settings for stateful data, like file locations and database versions
 | 
				
			||||||
 | 
					  # on your system were taken. It‘s perfectly fine and recommended to leave
 | 
				
			||||||
 | 
					  # this value at the release version of the first install of this system.
 | 
				
			||||||
 | 
					  # Before changing this value read the documentation for this option
 | 
				
			||||||
 | 
					  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
 | 
				
			||||||
 | 
					  system.stateVersion = "20.09"; # Did you read the comment?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										32
									
								
								hardware-configuration.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								hardware-configuration.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					# 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 = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "sdhci_pci" ];
 | 
				
			||||||
 | 
					  boot.initrd.kernelModules = [ ];
 | 
				
			||||||
 | 
					  boot.kernelModules = [ "kvm-intel" ];
 | 
				
			||||||
 | 
					  boot.extraModulePackages = [ ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fileSystems."/" =
 | 
				
			||||||
 | 
					    { device = "/dev/disk/by-uuid/5d9455de-01c4-4e45-b89d-ec8b39c50c25";
 | 
				
			||||||
 | 
					      fsType = "btrfs";
 | 
				
			||||||
 | 
					      options = [ "subvol=nixos" ];
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/f116eea8-651d-4c93-bfb4-6c3fcb74a94d";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fileSystems."/boot" =
 | 
				
			||||||
 | 
					    { device = "/dev/disk/by-uuid/7d02a865-66af-4711-abbb-ac2e5741899f";
 | 
				
			||||||
 | 
					      fsType = "ext4";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  swapDevices = [ ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										152
									
								
								hosts/dynamix.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										152
									
								
								hosts/dynamix.nix
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,152 @@
 | 
				
			|||||||
 | 
					# Edit this configuration file to define what should be installed on
 | 
				
			||||||
 | 
					# your system.  Help is available in the configuration.nix(5) man page
 | 
				
			||||||
 | 
					# and in the NixOS manual (accessible by running ‘nixos-help’).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{ config, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  imports =
 | 
				
			||||||
 | 
					    [ # Include the results of the hardware scan.
 | 
				
			||||||
 | 
					      ../hardware-configuration.nix
 | 
				
			||||||
 | 
					      ../config/base.nix
 | 
				
			||||||
 | 
					      ../config/users.nix
 | 
				
			||||||
 | 
					      ../config/laptop.nix
 | 
				
			||||||
 | 
					      ../config/gui.nix
 | 
				
			||||||
 | 
					      ../config/i3.nix
 | 
				
			||||||
 | 
					      ../config/gnome.nix
 | 
				
			||||||
 | 
					      #../config/grsec.nix
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  services.xserver.displayManager.defaultSession = "none+i3"; # set default WM
 | 
				
			||||||
 | 
					  networking.hostName = "dynamix"; # Set Hostname
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # https://bugzilla.kernel.org/show_bug.cgi?id=1l0941
 | 
				
			||||||
 | 
					  boot.kernelParams = ["intel_pstate=no_hwp" ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Supposedly better for the SSD
 | 
				
			||||||
 | 
					  fileSystems."/".options = [ "noatime" "nodiratime" "discard" ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Use the GRUB 2 boot loader.
 | 
				
			||||||
 | 
					  boot.loader.grub.enable = true;
 | 
				
			||||||
 | 
					  boot.loader.grub.version = 2;
 | 
				
			||||||
 | 
					  #boot.loader.grub.efiSupport = true;
 | 
				
			||||||
 | 
					  # boot.loader.grub.efiInstallAsRemovable = true;
 | 
				
			||||||
 | 
					  # boot.loader.efi.efiSysMountPoint = "/boot/efi";
 | 
				
			||||||
 | 
					  # Define on which hard drive you want to install Grub.
 | 
				
			||||||
 | 
					  #boot.loader.grub.device = "nodev"; # or "nodev" for efi only
 | 
				
			||||||
 | 
					  #boot.loader.efi.canTouchEfiVariables = true;
 | 
				
			||||||
 | 
					  #boot.loader.grub.gfxmodeEfi = "1024x768";
 | 
				
			||||||
 | 
					  #boot.loader.systemd-boot.enable = true;
 | 
				
			||||||
 | 
					  #boot.loader.efi.canTouchEfiVariables = true;
 | 
				
			||||||
 | 
					  #boot.cleanTmpDir = true;
 | 
				
			||||||
 | 
					  boot.loader.grub.device = "/dev/sda";
 | 
				
			||||||
 | 
					  boot.initrd.availableKernelModules = [ "aes_x86_64" "aesni_intel" "cryptd" ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  swapDevices = [{device = "/swapfile"; size = 10000;}];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  #networking.useNetworkd = true; # Use Networkd as default Networking Daemon - suitable on static Networks e.g. PCs
 | 
				
			||||||
 | 
					  networking.networkmanager.enable = true; # Use Networkmanager as defaukt Networking Daemon - suitable on dynamic Networks e.g. Laptops
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  hardware.pulseaudio.package = pkgs.pulseaudioFull; # support for bluetooth headsets
 | 
				
			||||||
 | 
					  hardware.bluetooth.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Have stable and unstable Packages
 | 
				
			||||||
 | 
					  nixpkgs.config = {
 | 
				
			||||||
 | 
					    # Allow proprietary packages
 | 
				
			||||||
 | 
					    allowUnfree = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Create an alias for the unstable channel
 | 
				
			||||||
 | 
					    packageOverrides = pkgs: {
 | 
				
			||||||
 | 
					      unstable = import <nixos-unstable> {
 | 
				
			||||||
 | 
					        # pass the nixpgs config to the unstable alias
 | 
				
			||||||
 | 
					        # to ensure 'allowUnfree = true;' is propagated:
 | 
				
			||||||
 | 
					        config = config.nixpkgs.config;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					     # stable = import <nixos-stable> {
 | 
				
			||||||
 | 
					        # pass the nixpgs config to the unstable alias
 | 
				
			||||||
 | 
					        # to ensure 'allowUnfree = true;' is propagated:
 | 
				
			||||||
 | 
					       # config = config.nixpkgs.config;
 | 
				
			||||||
 | 
					     # };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #firefox.enableAdobeFlash = true;
 | 
				
			||||||
 | 
					    #chromium.enablePepperFlash = true;
 | 
				
			||||||
 | 
					    #google-chrome-stable.enablePepperFlash = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # List packages installed in system profile. To search by name, run:
 | 
				
			||||||
 | 
					  # $ nix-env -qaP | grep wget
 | 
				
			||||||
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					    acpi
 | 
				
			||||||
 | 
					    acpitool
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Some programs need SUID wrappers, can be configured further or are
 | 
				
			||||||
 | 
					  # started in user sessions.
 | 
				
			||||||
 | 
					  programs.bash.enableCompletion = true;
 | 
				
			||||||
 | 
					  # 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 = [ 80 443 ];
 | 
				
			||||||
 | 
					  networking.firewall.allowedUDPPorts = [ ];
 | 
				
			||||||
 | 
					  # Or disable the firewall altogether.
 | 
				
			||||||
 | 
					  # networking.firewall.enable = false;
 | 
				
			||||||
 | 
					  networking.firewall.allowPing = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.journald.extraConfig = ''
 | 
				
			||||||
 | 
					  MaxRetentionSec=4day
 | 
				
			||||||
 | 
					  '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Enable CUPS to print documents.
 | 
				
			||||||
 | 
					  services.printing.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Enable touchpad support.
 | 
				
			||||||
 | 
					  services.xserver.libinput.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Enable the KDE Desktop Environment.
 | 
				
			||||||
 | 
					  # services.xserver.displayManager.sddm.enable = true;
 | 
				
			||||||
 | 
					  # services.xserver.desktopManager.plasma5.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # This value determines the NixOS release with which your system is to be
 | 
				
			||||||
 | 
					  # compatible, in order to avoid breaking some software such as database
 | 
				
			||||||
 | 
					  # servers. You should change this only after NixOS release notes say you
 | 
				
			||||||
 | 
					  # should.
 | 
				
			||||||
 | 
					  system.stateVersion = "20.09"; # Did you read the comment?
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  # Enable Autoupgrades
 | 
				
			||||||
 | 
					  system.autoUpgrade.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # enable pulseaudio
 | 
				
			||||||
 | 
					  hardware.pulseaudio.enable = true;
 | 
				
			||||||
 | 
					  hardware.pulseaudio.support32Bit = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Add user to sudoers file
 | 
				
			||||||
 | 
					  security.sudo.configFile = "templis ALL=(ALL) NOPASSWD: ALL";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  programs.zsh.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.acpid = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      lidEventCommands = ''
 | 
				
			||||||
 | 
					        if grep -q closed /proc/acpi/button/lid/LID/state; then
 | 
				
			||||||
 | 
					          date >> /tmp/i3lock.log
 | 
				
			||||||
 | 
					          DISPLAY=":0.0" XAUTHORITY=/home/templis/.Xauthority ${pkgs.i3lock}/bin/i3lock-fancy &>> /tmp/i3lock.log
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					      '';
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  systemd.user.services.i3lock-sleep = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    description = "Automatically lock screen before going to sleep";
 | 
				
			||||||
 | 
					    wantedBy = [ "default.target" ];
 | 
				
			||||||
 | 
					    path = with pkgs; [ xss-lock i3lock-fancy getopt fontconfig ];
 | 
				
			||||||
 | 
					    serviceConfig = {
 | 
				
			||||||
 | 
					      Restart = "always";
 | 
				
			||||||
 | 
					      ExecStart = "${pkgs.xss-lock}/bin/xss-lock ${pkgs.i3lock-fancy}/bin/i3lock-fancy";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user