{ pkgs, lib, config, ... }: let inherit (lib.strings) makeBinPath; in { imports = [ { services.dbus.packages = [ pkgs.gnome3.dconf ]; } # # # { niveum.user = { github = "kmein"; email = "kieran.meinhardt@gmail.com"; name = "KierĂ¡n Meinhardt"; }; niveum.applications = rec { fileManager = "${config.niveum.applications.terminal} -e ${pkgs.ranger}/bin/ranger"; }; niveum.theme = { gtk = { name = "Arc"; package = pkgs.arc-theme; }; icon = { name = "Arc"; package = pkgs.arc-icon-theme; }; cursor = { name = "capitaine-cursors"; package = pkgs.capitaine-cursors; }; }; } { nixpkgs.config = { allowUnfree = true; packageOverrides = pkgs: { python3Packages = pkgs.python3Packages.override { overrides = new: old: { spotify-cli-linux = new.callPackage {}; instaloader = new.callPackage {}; sncli = new.callPackage {}; }; }; haskellPackages = pkgs.haskellPackages.override { overrides = new: old: { blessings = new.callPackage {}; scanner = new.callPackage {}; }; }; git-quick-stats = pkgs.callPackage {}; writeDash = pkgs.writers.writeDash; writeDashBin = pkgs.writers.writeDashBin; iolanguage = pkgs.callPackage {}; nix-git = pkgs.callPackage {}; kmein = { autorenkalender = pkgs.callPackage {}; bvg = pkgs.callPackage {}; daybook = pkgs.callPackage {}; font-size = pkgs.callPackage { font = config.niveum.fonts.terminal; }; genius = pkgs.callPackage {}; instaget = pkgs.callPackage {}; literature-quote = pkgs.callPackage {}; n = pkgs.callPackage {}; depp = pkgs.callPackage {}; odyssey = pkgs.callPackage {}; wttr = pkgs.callPackage {}; nav = pkgs.callPackage {}; dirmir = pkgs.callPackage {}; tolino-screensaver = pkgs.callPackage {}; # fzf-wrappers = pkgs.callPackage {}; (broken) slide = let slide-package = pkgs.fetchFromGitHub { owner = "kmein"; repo = "slide"; rev = "0470583d22212745eab4f46076267addf4d2346c"; sha256 = "0skcp3va9v4hmxy5ramghpz53gnyxv10wsacgmc2jr0v1wrqlzbh"; }; in pkgs.callPackage slide-package {}; haskellPackages.mnemosyne = let mnemosyne-package = pkgs.fetchFromGitHub { repo = "mnemosyne"; owner = "kmein"; rev = "6bfa13c88db176af80be90840ff03573d67d679f"; sha256 = "1rimv5c5q9602y501hbkgkfbimqnmdkcr5hp1434q06gcazhjhca"; }; in pkgs.haskellPackages.callPackage mnemosyne-package {}; }; }; }; } { boot.cleanTmpDir = true; boot.loader.timeout = 1; boot.extraModulePackages = [ config.boot.kernelPackages.exfat-nofuse ]; } { time.timeZone = "Europe/Berlin"; } { home-manager.users.me = { programs.zathura = { enable = true; options.selection-clipboard = "clipboard"; }; }; } { users.mutableUsers = false; users.defaultUserShell = pkgs.zsh; users.users.me = { name = "kfm"; description = config.niveum.user.name; hashedPassword = "$6$w9hXyGFl/.IZBXk$5OiWzS1G.5hImhh1YQmZiCXYNAJhi3X6Y3uSLupJNYYXPLMsQpx2fwF4Xr2uYzGMV8Foqh8TgUavx1APD9rcb/"; isNormalUser = true; }; } { sound.enable = true; hardware.pulseaudio = { enable = true; package = pkgs.pulseaudioFull; # for bluetooth sound output }; users.users.me.extraGroups = [ "audio" ]; environment.systemPackages = [ pkgs.pavucontrol pkgs.pamixer ]; } { environment.systemPackages = let niveumPath = "${config.users.users.me.home}/prog/git/niveum"; in [ (pkgs.writers.writeDashBin "niveum-deploy" '' [ $# -eq 1 ] || echo >&2 "Usage: niveum-deploy SYSTEM" eval $(${pkgs.nix}/bin/nix-build --no-out-link "${niveumPath}/deploy.nix" -A "$1") '') (pkgs.writers.writeDashBin "niveum-update" '' ${pkgs.nix-prefetch-git}/bin/nix-prefetch-git \ --url https://github.com/NixOS/nixpkgs-channels \ --rev refs/heads/nixos-${config.system.stateVersion} > "${niveumPath}/nixpkgs.json" '') ]; } { environment.interactiveShellInit = "export PATH=$PATH:$HOME/.cargo/bin"; environment.shellAliases = let path = makeBinPath [ pkgs.which pkgs.coreutils pkgs.findutils ]; wcd = pkgs.writers.writeDash "wcd" '' PATH=${path} cd "$(readlink "$(which --skip-alias "$1")" | xargs dirname)/.." ''; where = pkgs.writers.writeDash "where" '' PATH=${path} readlink "$(which --skip-alias "$1")" | xargs dirname ''; take = pkgs.writers.writeDash "take" '' mkdir "$1" && cd "$1" ''; in { "ix.io" = "${pkgs.curl}/bin/curl -F 'f:1=<-' ix.io"; cat = "${pkgs.bat}/bin/bat --style=plain"; chromium-incognito = "chromium --user-data-dir=$(mktemp -d /tmp/chr.XXXXXX) --no-first-run --incognito"; clipboard = "${pkgs.xclip}/bin/xclip -se c"; cp = "cp -i"; dig = "dig +short"; ip = "${pkgs.iproute}/bin/ip -c"; l = "${pkgs.exa}/bin/exa -s type -a"; la = "${pkgs.exa}/bin/exa -s type -la"; ll = "${pkgs.exa}/bin/exa -s type -l"; ls = "${pkgs.exa}/bin/exa -s type"; mv = "mv -i"; nixi = "nix repl ''"; ns = "nix-shell --run zsh"; o = "${pkgs.xdg_utils}/bin/xdg-open"; rm = "rm -i"; take = "source ${take}"; tmux = "${pkgs.tmux}/bin/tmux -2"; tree = "${pkgs.exa}/bin/exa --tree"; wcd = "source ${wcd}"; weechat = "${pkgs.openssh}/bin/ssh kmein@prism.r -t tmux attach"; where = "source ${where}"; }; } { networking.wireless = { enable = true; userControlled.enable = true; networks = { "Aether".pskRaw = "e1b18af54036c5c9a747fe681c6a694636d60a5f8450f7dec0d76bc93e2ec85a"; "Asoziales Netzwerk".pskRaw = "8e234041ec5f0cd1b6a14e9adeee9840ed51b2f18856a52137485523e46b0cb6"; "EasyBox-927376".pskRaw = "dbd490ab69b39bd67cfa06daf70fc3ef3ee90f482972a668ed758f90f5577c22"; "FlixBus Wi-Fi" = {}; "FlixBus" = {}; "FlixTrain" = {}; "Libertarian WiFi".pskRaw = "e9beaae6ffa55d10e80b8a2e7d997411d676a3cc6f1f29d0b080391f04555050"; "Ni/Schukajlow".pskRaw = "ffc47f6829da59c48aea878a32252223303f5c47a3859edc90971ffc63346781"; "WIFIonICE" = {}; "WLAN-914742".psk = "67647139648174545446"; "WLAN-XVMU6T".pskRaw = "46ea807283255a3d7029233bd79c18837df582666c007c86a8d591f65fae17cc"; "c-base-public" = {}; "discord".psk = "baraustrinken"; "security-by-obscurity".psk = "44629828256481964386"; "Mayflower".psk = "Fr31EsLan"; }; }; environment.systemPackages = [ pkgs.wpa_supplicant_gui ]; } { networking.hosts = { "192.168.178.1" = [ "fritz.box" ]; "192.168.178.21" = [ "scardanelli" ]; "192.168.178.22" = [ "homeros" ]; "192.168.178.24" = [ "catullus" ]; }; } { i18n.defaultLocale = "en_GB.UTF-8"; } { services.illum.enable = true; } { services.xserver = { enable = true; displayManager.lightdm = { enable = true; autoLogin = { enable = true; user = config.users.users.me.name; }; greeters.gtk = { enable = true; indicators = [ "~spacer" "~host" "~spacer" "~session" "~power" ]; }; }; desktopManager.default = "none"; }; } { security.wrappers = { pmount.source = "${pkgs.pmount}/bin/pmount"; pumount.source = "${pkgs.pmount}/bin/pumount"; }; } { programs.command-not-found.enable = true; } { programs.java = { enable = true; package = pkgs.openjdk; }; } { systemd.services.restart-vpn = { description = "Restart VPNs after suspend"; wantedBy = [ "suspend.target" ]; after = [ "suspend.target" ]; serviceConfig.Type = "oneshot"; script = '' set -efu export PATH=${makeBinPath [ pkgs.procps ]} pkill -HUP --exact openvpn pkill -ALRM --exact tincd ''; }; } ]; }