initial commit
This commit is contained in:
		
							
								
								
									
										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