# 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 = [ ./hardware-configuration.nix ./cachix.nix ./web-development ]; # Bootloader. boot = { loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; }; initrd.luks.devices."luks-ac06ecd4-7548-4807-a9c9-a616f8219e5f".device = "/dev/disk/by-uuid/ac06ecd4-7548-4807-a9c9-a616f8219e5f"; }; networking = { hostName = "hikari3"; extraHosts = builtins.readFile ./files/hosts; # wireless.enable = true; # Enables wireless support via wpa_supplicant. # Configure network proxy if necessary # proxy.default = "http://user:password@proxy:port/"; # proxy.noProxy = "127.0.0.1,localhost,internal.domain"; # Enable networking networkmanager.enable = true; }; # Set your time zone. time.timeZone = "Europe/Berlin"; # Select internationalisation properties. i18n = { defaultLocale = "en_US.UTF-8"; extraLocaleSettings = { LC_ADDRESS = "de_DE.UTF-8"; LC_IDENTIFICATION = "de_DE.UTF-8"; LC_MEASUREMENT = "de_DE.UTF-8"; LC_MONETARY = "de_DE.UTF-8"; LC_NAME = "de_DE.UTF-8"; LC_NUMERIC = "de_DE.UTF-8"; LC_PAPER = "de_DE.UTF-8"; LC_TELEPHONE = "de_DE.UTF-8"; LC_TIME = "de_DE.UTF-8"; }; }; documentation = { dev.enable = false; doc.enable = false; info.enable = false; man.enable = true; nixos.enable = true; }; programs = { # Enable network manager applet nm-applet.enable = true; dconf.enable = true; }; services = { # Enable the X11 windowing system. xserver = { enable = true; displayManager.lightdm.enable = true; desktopManager.lxqt.enable = true; # Configure keymap in X11 xkb = { layout = "us"; variant = ""; }; }; # Enable automatic login for the user. displayManager.autoLogin = { enable = true; user = "daniels"; }; borgbackup.jobs = { projectBackup = { paths = "/var/projects/"; user = "daniels"; group = "users"; repo = "/run/media/daniels/TimeMachine/Projects"; removableDevice = true; doInit = false; exclude = [ "*/node_modules/*" "*/typo3temp/*" "*/var/cache/*" ]; prune = { keep = { within = "1d"; weekly = 4; monthly = 2; }; }; compression = "auto,lzma"; startAt = "15minutes"; encryption = { mode = "repokey"; passCommand = "${pkgs.libsecret}/bin/secret-tool lookup password borgbackup.timemachine.projects"; }; environment = { DBUS_SESSION_BUS_ADDRESS = "unix:path=/run/user/1000/bus"; }; }; danielsHomeBackup = { paths = "/home/daniels/"; user = "daniels"; group = "users"; repo = "/run/media/daniels/TimeMachine/DanielsHome"; removableDevice = true; doInit = false; exclude = [ "/home/daniels/.cache" "/home/daniels/.config/chromium" "/home/daniels/.dbus" "/home/daniels/.gvfs" "/home/daniels/.icons" "/home/daniels/.java" "/home/daniels/.local/bin" "/home/daniels/.local/lib" "/home/daniels/.local/share/vim/" "/home/daniels/.local/share/icons/" "/home/daniels/.local/share/mime/" "/home/daniels/.local/share/containers/" "/home/daniels/.local/state" "/home/daniels/.mozilla" "/home/daniels/.nix-profile/" "/home/daniels/.node" "/home/daniels/.npm" "/home/daniels/.node-gyp" "/home/daniels/.rnd" "/home/daniels/Downloads/" "/home/daniels/Music/" ]; prune = { keep = { within = "2d"; weekly = 4; monthly = 6; }; }; compression = "auto,lzma"; startAt = "15minutes"; encryption = { mode = "repokey"; passCommand = "${pkgs.libsecret}/bin/secret-tool lookup password borgbackup.timemachine.danielsHome"; }; environment = { DBUS_SESSION_BUS_ADDRESS = "unix:path=/run/user/1000/bus"; }; }; }; }; # Enable sound with pipewire. sound.enable = true; # sound.mediaKeys.enable = true; hardware.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.daniels = { isNormalUser = true; description = "Daniel Siepmann"; extraGroups = [ "networkmanager" "wheel" "mysql" ]; packages = with pkgs; [ i3lock xsel ]; }; virtualisation.containers = { enable = true; }; # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. git xorg.xbacklight openfortivpn lxqt.pavucontrol-qt ]; environment.variables = { EDITOR = "vim"; }; security = { sudo.execWheelOnly = true; }; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "23.11"; # Did you read the comment? }