diff options
Diffstat (limited to 'configuration.nix')
-rw-r--r-- | configuration.nix | 313 |
1 files changed, 144 insertions, 169 deletions
diff --git a/configuration.nix b/configuration.nix index 1e071b5..0e24ab4 100644 --- a/configuration.nix +++ b/configuration.nix @@ -5,176 +5,151 @@ { config, pkgs, ... }: { - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix + 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.tmpOnTmpfs = true; + + # Define on which hard drive you want to install Grub. + boot.loader.grub.device = "/dev/sda"; + + networking = { + # Hostname and wireless enabled + hostName = "jx230"; + # wireless.enable = true; + + # 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. + interfaces.enp0s25.useDHCP = true; + interfaces.wlp3s0.useDHCP = true; + + # Firewall configuration + firewall.enable = true; + + networkmanager = { + enable = true; + }; + }; + + # Select internationalisation properties. + i18n = { + consoleFont = "Lat2-Terminus16"; + consoleKeyMap = "us"; + defaultLocale = "en_DK.UTF-8"; + }; + + # Set your time zone. + time.timeZone = "Europe/Copenhagen"; + + # Enabled services + + # 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.*"; + }; + }; + + # Enable the X11 windowing system. + services.xserver = { + enable = true; + layout = "us"; + xkbVariant = "altgr-intl"; + exportConfiguration = true; + + windowManager = { + default = "i3"; + i3.enable = true; + }; + + # Touchpad studd + libinput.enable = true; + + # Start dbus? + startDbusSession = 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; + shell = pkgs.zsh; + extraGroups = [ "wheel" "video" ]; + }; + + # 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? + + fonts.fonts = with pkgs; [ + noto-fonts noto-fonts-emoji liberation_ttf ubuntu_font_family ]; - # Use the GRUB 2 boot loader. - boot.loader.grub.enable = true; - boot.loader.grub.version = 2; - boot.tmpOnTmpfs = true; - - # Define on which hard drive you want to install Grub. - boot.loader.grub.device = "/dev/sda"; - - networking = { - # Hostname and wireless enabled - hostName = "jx230"; - # wireless.enable = true; - - # 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. - interfaces.enp0s25.useDHCP = true; - interfaces.wlp3s0.useDHCP = true; - interfaces.wwp0s20u4i6.useDHCP = true; - - # Firewall configuration - firewall.enable = true; - - networkmanager = { - enable = true; - }; - }; - - # Select internationalisation properties. - i18n = { - consoleFont = "Lat2-Terminus16"; - consoleKeyMap = "us"; - defaultLocale = "en_DK.UTF-8"; - }; - - # Set your time zone. - time.timeZone = "Europe/Copenhagen"; - - environment.shellInit = '' - export GPG_TTY="$(tty)" - gpg-connect-agent /bye - export SSH_AUTH_SOCK="/run/user/$UID/gnupg/S.gpg-agent.ssh" - ''; - - # Enabled services - - # 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.*"; - }; - }; - - # Enable the X11 windowing system. - services.xserver = { - enable = true; - layout = "us"; - xkbVariant = "altgr-intl"; - exportConfiguration = true; - - desktopManager = { - default = "none"; - xterm.enable = false; - xfce = { - enable = true; - }; - }; - windowManager = { - default = "i3"; - bspwm.enable = true; - i3.enable = true; - }; - - # Touchpad studd - libinput.enable = true; - - # Start dbus? - startDbusSession = true; - }; - - services.gvfs.enable = true; - - # Yubikey - services.pcscd.enable = true; - - # Thinkpad stuff - hardware.acpilight.enable = true; - services.acpid.enable = true; - services.tlp.enable = true; - - # Xfce panel stuff - environment.pathsToLink = [ - "/share/xfce4" - "/lib/xfce4" - ]; - - # 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; - shell = pkgs.zsh; - extraGroups = [ "wheel" "video" ]; # Enable ‘sudo’ for the user. - }; - - # 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 = "19.09"; # Did you read the comment? - - fonts.fonts = with pkgs; [ - noto-fonts noto-fonts-emoji liberation_ttf ubuntu_font_family - ]; - # List packages installed in system profile. To search, run: - # $ nix search wget - environment.systemPackages = with pkgs; [ - # General stuff - wget vim neovim git htop zsh stow pass python tree python3 dnsutils - - # Other stuff - networkmanagerapplet - - # X stuff - bspwm sxhkd feh xscreensaver dmenu rofi xfce.xfce4-icon-theme autorandr xfce.xfce4-panel - xcape xorg.xmodmap xss-lock xfce.terminal xfce.xfconf acpilight xdotool - dunst - # Panel plugins - xfce.xfce4-battery-plugin xfce.xfce4-datetime-plugin xfce.xfce4-pulseaudio-plugin - xfce.xfce4-settings xfce.xfce4-appfinder - - # Gui applications - firefox gnome3.evolution pavucontrol okular leafpad inkscape gimp meld pinentry - gnome3.gnome-system-monitor gnome3.dconf pcmanfm - # (st.override { conf = builtins.readFile ./st-config.h; }) - - # Other stuff - texlive.combined.scheme-full biber - nodePackages.typescript - - # Hardware stuff. X230 - linuxPackages.acpi_call - ]; + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + # General stuff + wget vim neovim git htop zsh stow pass python tree python3 dnsutils + + # Other stuff + networkmanagerapplet + + # X stuff + feh xscreensaver dmenu rofi xorg.xmodmap xss-lock xfce.terminal + acpilight xdotool dunst + + # Gui applications + firefox gnome3.evolution pavucontrol okular leafpad inkscape gimp meld + pinentry gnome3.gnome-system-monitor gnome3.dconf pcmanfm + # (st.override { conf = builtins.readFile ./st-config.h; }) + + # Other stuff + texlive.combined.scheme-full biber + + # Hardware stuff. X230 + linuxPackages.acpi_call + ]; } |