{ config, pkgs, ... }: { hardware = { pulseaudio = { enable = true; # Stupid but need it to control sound from acpid # systemWide = true; # Enable bluetooth audio package = pkgs.pulseaudioFull; # Disable cork module configFile = pkgs.runCommand "default.pa" {} '' grep -v module-role-cork ${config.hardware.pulseaudio.package}/etc/pulse/default.pa > $out ''; }; bluetooth.enable = true; opengl.enable = true; }; sound.enable = true; services = { xserver = { enable = true; layout = "us"; xkbVariant = "altgr-intl"; exportConfiguration = true; windowManager = { i3 = { enable = true; package = pkgs.i3-gaps; }; }; displayManager = { defaultSession = "none+i3"; }; desktopManager = { xterm.enable = false; }; # Touchpad studd libinput.enable = true; # Start dbus? # startDbusSession = true; }; # Auto mounting gvfs.enable = true; # Evolution gnome = { gnome-keyring.enable = true; evolution-data-server.enable = true; gnome-online-accounts.enable = true; }; # Enable CUPS to print documents. printing.enable = true; blueman.enable = true; interception-tools = let mappings = [ { from = "KEY_CAPSLOCK"; to = "KEY_LEFTCTRL"; } { from = "KEY_LEFTALT"; to = "KEY_LEFTMETA"; } { from = "KEY_102ND"; to = "KEY_LEFTALT"; } ]; mapper = pkgs.callPackage ./intcp-mapper.nix { inherit mappings; }; intercept = pkgs.interception-tools; in { enable = true; # We will just use our own here plugins = []; udevmonConfig = '' - JOB: "${intercept}/bin/intercept -g $DEVNODE | ${mapper}/bin/mapper | ${intercept}/bin/uinput -d $DEVNODE" DEVICE: EVENTS: EV_KEY: ${builtins.toJSON (map (m: m.from) mappings) } ''; }; udev.packages = [ pkgs.yubikey-personalization ]; }; programs = { gnupg.agent = { enable = true; enableSSHSupport = true; pinentryFlavor = "gtk2"; }; dconf.enable = true; }; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.julian = { isNormalUser = true; shell = pkgs.fish; extraGroups = [ "wheel" "video" "libvirtd" "vboxusers" "cdrom" "networkmanager" ]; }; virtualisation.virtualbox.host = { enable = true; }; virtualisation.libvirtd.enable = true; fonts.fonts = with pkgs; [ noto-fonts noto-fonts-emoji liberation_ttf ubuntu_font_family cozette ]; programs.evolution = { enable = true; plugins = [ pkgs.evolution-ews ]; }; environment.systemPackages = with pkgs; [ # General stuff gnupg acpi gutenprint gutenprintBin termite rofi # Nixos stuff nox nix-index patchelf nix-prefetch-scripts # Network stuff networkmanagerapplet networkmanager-openconnect iw wirelesstools openconnect virtmanager ]; }