diff options
-rw-r--r-- | configuration.nix | 172 |
1 files changed, 105 insertions, 67 deletions
diff --git a/configuration.nix b/configuration.nix index 96e06f5..59329f5 100644 --- a/configuration.nix +++ b/configuration.nix @@ -10,15 +10,25 @@ ./hardware-configuration.nix ]; - # Use the GRUB 2 boot loader. - boot.loader.grub.enable = true; - boot.loader.grub.version = 2; - boot.tmpOnTmpfs = true; + boot = { + # Use the GRUB 2 boot loader. + loader.grub = { + enable = true; + version = 2; + + # Define on which hard drive you want to install Grub. + device = "/dev/sda"; + }; + tmpOnTmpfs = true; + }; - # Define on which hard drive you want to install Grub. - boot.loader.grub.device = "/dev/sda"; + hardware = { + opengl.enable = true; + enableRedistributableFirmware = true; - hardware.opengl.enable = true; + # Thinkpad stuff + acpilight.enable = true; + }; networking = { # Hostname and wireless enabled @@ -32,7 +42,7 @@ interfaces.wlp3s0.useDHCP = true; # Firewall configuration - firewall.enable = true; + # firewall.enable = true; yeah who needs that networkmanager = { enable = true; @@ -57,78 +67,88 @@ # Enable the OpenSSH daemon. # services.openssh.enable = true; - # Enable CUPS to print documents. - services.printing.enable = true; - # Enable sound. sound.enable = true; hardware.pulseaudio.enable = true; # Stupid but need it to control sound from acpid # hardware.pulseaudio.systemWide = true; - # Turn down sound when inserting headphones - services.acpid.handlers = { - headphone = { - action = - '' - vals=($1) - case ''${vals[2]} in - plug) - whoami >> /tmp/acpi.log - amixer set Master 10% - ;; - esac - ''; - event = "jack/headphone.*"; - }; - }; programs.gnupg.agent = { enable = true; enableSSHSupport = true; pinentryFlavor = "gtk2"; }; + programs.dconf.enable = true; # Enable the X11 windowing system. - services.xserver = { - enable = true; - layout = "us"; - xkbVariant = "altgr-intl"; - exportConfiguration = true; - - windowManager.i3 = { + services = { + xserver = { enable = true; - package = pkgs.i3-gaps; + layout = "us"; + xkbVariant = "altgr-intl"; + exportConfiguration = true; + + windowManager = { + i3 = { + enable = false; + package = pkgs.i3-gaps; + }; + qtile.enable = true; + }; + + displayManager = { + defaultSession = "none+qtile"; + }; + + desktopManager = { + xterm.enable = false; + }; + + # Touchpad studd + libinput.enable = true; + + # Start dbus? + startDbusSession = true; }; + # Auto mounting + gvfs.enable = true; - displayManager = { - defaultSession = "none+i3"; - }; + # Yubikey + pcscd.enable = true; - desktopManager = { - xterm.enable = false; + # Thinkpad + acpid = { + enable = true; + # Turn down sound when inserting headphones + handlers = { + headphone = { + action = + '' + vals=($1) + case ''${vals[2]} in + plug) + whoami >> /tmp/acpi.log + amixer set Master 10% + ;; + esac + ''; + event = "jack/headphone.*"; + }; + }; }; + tlp.enable = true; - # Touchpad studd - libinput.enable = true; + # Evolution + gnome3 = { + gnome-keyring.enable = true; + evolution-data-server.enable = true; + }; - # Start dbus? - startDbusSession = true; + # Enable CUPS to print documents. + printing.enable = true; }; - services.gvfs.enable = true; - - # Yubikey - services.pcscd.enable = true; - - # Thinkpad stuff - hardware.acpilight.enable = true; - services.acpid.enable = true; - services.tlp.enable = true; - - # Passwords - services.gnome3.gnome-keyring.enable = true; - # Define a user account. Don't forget to set a password with ‘passwd’. users.users.julian = { isNormalUser = true; @@ -136,42 +156,60 @@ extraGroups = [ "wheel" "video" ]; }; + virtualisation.docker = { + 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.03"; # Did you read the comment? + system.stateVersion = "20.09"; # Did you read the comment? fonts.fonts = with pkgs; [ - noto-fonts noto-fonts-emoji liberation_ttf ubuntu_font_family + noto-fonts noto-fonts-emoji liberation_ttf ubuntu_font_family cozette ]; # List packages installed in system profile. To search, run: # $ nix search wget nixpkgs.config.allowUnfree = true; environment = { + etc = { + "docker/daemon.json".text = '' + { "dns": [ "1.1.1.1", "9.9.9.9" ] } + ''; + }; systemPackages = with pkgs; [ # General stuff - wget vim neovim git htop zsh stow pass python tree python3 dnsutils - gnupg zip unzip gopass tig file imagemagick gcc binutils whois - nmap go + wget vim neovim git htop zsh stow pass tree dnsutils gnupg zip + unzip gopass tig file imagemagick whois nmap usbutils lshw gnumake + aspell aspellDicts.da pv acpi jq killall netcat-gnu perl gopass + cowsay + + # Landuage support + rustup gcc binutils python3 python go clang-tools # Network stuff networkmanagerapplet networkmanager-openconnect networkmanager-l2tp + iw batctl wirelesstools # X stuff - feh xscreensaver dmenu rofi xorg.xmodmap xss-lock + feh xscreensaver dmenu rofi xorg.xmodmap xss-lock xclip acpilight xdotool dunst xcompmgr scrot libnotify # Gui applications - firefox gnome3.evolution pavucontrol okular leafpad inkscape gimp meld - pinentry gnome3.gnome-system-monitor gnome3.dconf pcmanfm termite - quasselClient nomacs wireshark spotify - # (st.override { conf = builtins.readFile ./st-config.h; }) + firefox pavucontrol okular leafpad inkscape gimp + meld pinentry gnome3.gnome-system-monitor gnome3.dconf pcmanfm + termite quasselClient nomacs wireshark spotify pavucontrol fractal + gnome3.file-roller geogebra gnome3.gnome-calculator + gnome3.simple-scan vlc xorg.xev gnome3.evolution + evolution-data-server + (mumble.override { pulseSupport = true; }) # Other stuff # texlive.combined.scheme-full biber + aldo # Hardware stuff. X230 linuxPackages.acpi_call |