nixos/hosts/dynamix.nix

153 lines
5.0 KiB
Nix
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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";
};
};
}