{ config, pkgs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ]; # System boot = { loader = { grub.enable = false; gummiboot.enable = true; generationsDir = { enable = false; copyKernels = false; }; }; kernel = { sysctl = { "kernel.nmi_watchdog" = 0; # Disable watchdog "vm.swappiness" = 0; # Avoid swapping as much as possible "vm.laptop_mode" = 5; # Use laptop mode (Knob at 5) "vm.dirty_writeback_centisecs" = 6000; # Aggregate disk IO }; }; }; # SSD boot.tmpOnTmpfs = true; # save some writes fileSystems."/".options = "discard,noatime"; time.timeZone = "Europe/Rome"; virtualisation.virtualbox.host.enable = true; # Networking networking.hostName = "warren"; networking.hostId = "6bc261fc"; networking.firewall.enable = false; networking.wireless.enable = true; networking.connman.enable = true; i18n = { consoleFont = "lat9w-16"; consoleKeyMap = "it"; defaultLocale = "it_IT.UTF-8"; }; # Packages nixpkgs.config = { allowUnfree = true; packageOverrides = pkgs: { ncmpcpp = pkgs.ncmpcpp.override { outputsSupport = true; visualizerSupport = true; clockSupport = true; }; chromium = pkgs.chromium.override { enablePepperFlash = true; }; }; }; environment.systemPackages = with pkgs; [ # Development atom git nodejs (haskellPackages.ghcWithPackages (hs: with hs; [ cabal-install ] )) # Libs and Tools xsel urxvt_perls xclip python34Packages.udiskie encfs # Desktop Environment helpers dmenu bar i3lock sxhkd # Games minecraft steam dwarf_fortress # Applications neovim ranger weechat bc w3m gnupg zathura go14Packages.ipfs.bin tmux htop rxvt_unicode pandoc mosh ncdu cv pv tree screenfetch scrot iotop iftop unzip zip p7zip # Desktop Applications chromium libreoffice gparted # Media beets mpd mpc_cli ncmpcpp popcorntime mpv # Drivers, file systems and other compatibility-aimed packages ntfs3g exfat utillinuxCurses gptfdisk encfs xlibs.xbacklight acpi powertop ]; fonts = { enableFontDir = true; enableGhostscriptFonts = true; fonts = with pkgs; [ gohufont ]; }; # Services services = { # SSH openssh = { enable = true; permitRootLogin = "no"; passwordAuthentication = false; }; # Desktop Environment xserver = { enable = true; layout = "it"; windowManager.bspwm.enable = true; desktopManager.xterm.enable = false; desktopManager.default = "none"; windowManager.default = "bspwm"; displayManager.slim.theme = pkgs.fetchurl { url = "https://github.com/rnhmjoj/nix-slim/archive/0.2.0.tar.gz"; sha256 = "08m6ks6crdyr02ll50gy3vpn3rzq6rp5jm2bli526r432xacdmj1"; }; displayManager.desktopManagerHandlesLidAndPower = false; synaptics = { enable = true; }; }; mpd = { enable = true; user = "fazo"; group = "users"; dataDir = "/home/fazo/.config/mpd"; musicDirectory = "/home/fazo/Music"; extraConfig = '' audio_output { type "fifo" name "FIFO" path "/tmp/mpd.fifo" format "44100:16:1" } audio_output { type "alsa" name "warren" mixer_type "software" } ''; }; redshift = { enable = true; latitude = "9.6"; longitude = "45.47"; }; transmission = { enable = false; settings = { download-dir = "/mnt/Dati/Download/"; }; }; syncthing = { enable = true; user = "fazo"; dataDir = "/home/fazo/.config/syncthing"; }; }; # Custom Services systemd.services.ipfs = { enable = false; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; path = [ pkgs.bash pkgs.fuse ]; serviceConfig = { User = "fazo"; ExecStart = "${pkgs.go14Packages.ipfs.bin}/bin/ipfs daemon --init"; }; }; # User environment programs.zsh = { enable = true; shellInit = "export ZDOTDIR=~/.config/zsh"; }; users.extraUsers.fazo = { isNormalUser = true; extraGroups = [ "wheel" "transmission" "vboxusers" ]; uid = 1000; shell = "/run/current-system/sw/bin/zsh"; openssh.authorizedKeys.keys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIqHaL0uH1ko/jLI3JeetD4bITUF34IE9HTEvF2Go8JYbhk3YSsG0/EoNu8dhA35S45Y7TXUk/K0axcqmFUePVwY271b7L+9I7/ehUg1wHOaNLCf/ueAyRfo5ZUHuH1YnTg9TinwVi0dynjVMaaVDR1YWVgzuw0KTEDW5em5m+jRbDvFrrq72D2GD/fYqkc2Z/cmnRijMi26PCF1xTq4g6BlIUYloCN+ZlDRvkSWiqCcFD3a/QOZXsUBVg80K4QrHVwj4+Bu2M1KDLhmW+8fzMkbwzKumUFt9SwcQh5Tq/MQfzSWOO2wtn1sys0BDKGazJwn9gMFNkcFbRsD5Uqcgh fazo@mac.lan" ]; }; }