summaryrefslogtreecommitdiff
path: root/configuration.nix
diff options
context:
space:
mode:
Diffstat (limited to 'configuration.nix')
-rw-r--r--configuration.nix180
1 files changed, 180 insertions, 0 deletions
diff --git a/configuration.nix b/configuration.nix
new file mode 100644
index 0000000..1e071b5
--- /dev/null
+++ b/configuration.nix
@@ -0,0 +1,180 @@
+# 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
+ ];
+
+ # 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
+ ];
+}
+