{ config, lib, pkgs, ... }: let loc = config.local; colo = loc.scheme; in { users.users.andrew = { isNormalUser = true; uid = 1000; extraGroups = [ "wheel" "input" "audio" "video" "render" "disk" "cdrom" ]; }; nix.settings.trusted-users = [ "andrew" ]; documentation = { enable = true; man.enable = true; dev.enable = true; }; fonts = { fontDir.enable = true; packages = with pkgs; [ local-fonts vista-fonts noto-fonts noto-fonts-cjk-sans noto-fonts-cjk-serif noto-fonts-emoji-blob-bin mplus-outline-fonts.osdnRelease intel-one-mono nanum-gothic-coding iosevka-comfy.comfy dina-font freefont_ttf # FreeMono ]; fontconfig = { enable = true; includeUserConf = false; allowBitmaps = true; cache32Bit = true; antialias = true; hinting = { enable = false; style = "slight"; }; subpixel = { rgba = "rgb"; lcdfilter = "light"; }; defaultFonts = { serif = [ loc.ui-font.name ]; sansSerif = [ loc.ui-font.name ]; monospace = [ loc.font.name ]; emoji = [ loc.emoji-font.name ]; }; }; }; environment.systemPackages = with pkgs; lib.lists.flatten [ man-pages man-pages-posix home-manager mercurial file bc screen loccount (aspellWithDicts (dicts: with dicts; [ en en-computers en-science ])) rsync (python3.withPackages (python-pkgs: [ python-pkgs.requests python-pkgs.beautifulsoup4 ])) htop ufetch (asNeeded "cmatrix" ["cmatrix"]) hdparm #dcfldd ddrescue cdrtools usbutils cryptsetup (asNeeded "nix-index" ["nix-channel-index" "nix-index" "nix-locate"]) imagemagick pngcheck (asNeeded "optipng" ["optipng"]) (asNeeded "dmtx-utils" ["dmtxquery" "dmtxread" "dmtxwrite"]) (asNeeded "zbar" ["zbarcam" "zbarcam-gtk" "zbarcam-qt" "zbarimg"]) perlPackages.ArchiveZip # For crc32. b3sum libfaketime cpulimit dos2unix socat curl (asNeeded "httrack" ["htsserver" "httrack" "proxytrack" "webhttrack"]) libuchardet (unzip.override { enableNLS = true; }) rar unrar p7zip rclone ffmpeg-headless xdg-utils jq when evtest linuxConsoleTools wev gcr pass zenity ]; local.scripts.imports = [ "install-as-needed" "cpu-vulns" "sp" # spell "ts-date" "term-font-size" "shift-jis-zip" "7z-password" "moonrune-charset-utf8" "gpg-pubkey" "img-fstype" "mount-nfs" "rewrite-git" "xbox360-ffmpeg-enc" ]; programs.screen = { enable = true; screenrc = '' termcapinfo xterm* ti@:te@ defscrollback 10000 startup_message off ''; }; programs.mtr.enable = true; services.gnome.gnome-keyring.enable = false; programs.gnupg.agent = { enable = true; pinentryPackage = pkgs.pinentry-gnome3; enableSSHSupport = true; settings = { default-cache-ttl = 28800; max-cache-ttl = 28800; }; }; programs.ssh = { extraConfig = "AddKeysToAgent yes"; }; home-manager.users.andrew = let homeDir = "${config.users.users.andrew.home}"; in { home.username = "andrew"; xdg.userDirs = { enable = true; setSessionVariables = true; desktop = "${homeDir}/tmp"; documents = "${homeDir}/docs"; download = "${homeDir}/dl"; music = "${homeDir}/tmp"; pictures = "${homeDir}/pics"; publicShare = "${homeDir}/tmp"; templates = "${homeDir}/tmp"; videos = "${homeDir}/dl/mp4"; }; home.sessionVariables = { GOPATH = "${homeDir}/tmp/go"; }; programs.git = { enable = true; settings = { user = { email = "andrew@akon.city"; name = "Andrew Opalach"; }; format.signOff = true; init.defaultBranch = "master"; }; signing = { key = "99659CB58598BDDB"; # The last digits of the key. signByDefault = true; format = "openpgp"; }; }; home.file.".config/gdb/gdbinit".source = ../../files/gdbinit; home.file.".config/colors.json".text = '' { "special": { "background": "${colo.background}", "foreground": "${colo.foreground}" }, "colors": { "color0": "${colo.color0}", "color1": "${colo.color1}", "color2": "${colo.color2}", "color3": "${colo.color3}", "color4": "${colo.color4}", "color5": "${colo.color5}", "color6": "${colo.color6}", "color7": "${colo.color7}", "color8": "${colo.color8}", "color9": "${colo.color9}", "color10": "${colo.color10}", "color11": "${colo.color11}", "color12": "${colo.color12}", "color13": "${colo.color13}", "color14": "${colo.color14}", "color15": "${colo.color15}" } } ''; }; }