{pkgs, lib, ...}: { home.sessionVariables = { NNN_FIFO = "/tmp/nnn.fifo"; LANG = "en_US.UTF-8"; EDITOR = "nvim"; }; home.keyboard.layout = "us"; home.keyboard.variant = "3l"; home.packages = with pkgs; [ restic ripgrep rclone libqalculate git-annex git-annex-remote-rclone qrencode libwebp bat ] ++ (import ../system/home-manager.nix).extraPackages pkgs; editorconfig = { enable = true; settings."*" = { indent_style = "tab"; indent_size = 4; end_of_line = "lf"; charset = "utf-8"; max_line_length = 90; trim_trailing_whitespace = true; insert_final_newline = false; }; settings."{*.{md,gmi,adoc},COMMIT_EDITMSG}" = { max_line_length = 0; }; settings."*.{elm,lisp,yml,purs}" = { indent_style = "space"; indent_size = 2; }; settings."*.{wat,nix}" = { indent_size = 2; }; settings."*.asm" = { indent_style = "tab"; indent_size = "tab"; max_line_length = 80; }; }; programs.git = { enable = true; lfs.enable = true; signing.key = "ACABBABE77B76F6301F4ACF97A0F4799BF91C8C1"; signing.signByDefault = true; userName = "Emi Simpson"; userEmail = "emi@alchemi.dev"; extraConfig = { init.defaultbranch = "main"; diff.algorithm = "patience"; core.compression = 9; core.editor = "nvim"; pull.rebase = false; }; }; programs.password-store = { enable = true; package = pkgs.pass.withExtensions (exts: [ exts.pass-otp ]); settings.PASSWORD_STORE_DIR = "$HOME/Sync/Secure/Passwords"; }; programs.fish = import programs/fish.nix pkgs; programs.nnn = { enable = true; plugins.mappings = { p = "preview-tui"; }; plugins.src = (pkgs.fetchFromGitHub { owner = "jarun"; repo = "nnn"; rev = "0c23406"; sha256 = "sha256-Hpc8YaJeAzJoEi7aJ6DntH2VLkoR6ToP6tPYn3llR7k="; }) + "/plugins"; extraPackages = with pkgs; [ tree file unzip bat ffmpeg ffmpegthumbnailer poppler_utils glow w3m ]; }; programs.neovim = import programs/neovim.nix {inherit pkgs lib;}; programs.gpg.enable = true; programs.jq.enable = true; programs.tmux = { enable = true; prefix = "C-Space"; clock24 = true; historyLimit = 10000; keyMode = "vi"; shell = "${pkgs.fish}/bin/fish"; shortcut = "Space"; }; programs.ssh = { enable = true; compression = true; controlMaster = "auto"; controlPath = "~/.ssh/socket-%r@%h:%p"; controlPersist = "1m"; forwardAgent = true; matchBlocks = { foss-dashboard.hostname = "foss-dashboard.rit.edu"; foss-dashboard.proxyCommand = "ssh glados -W %h:%p"; foss-dashboard.user = "emi"; glados.hostname = "129.21.22.196"; glados.user = "tts1848"; muscaria.hostname = "69.61.2.204"; muscaria.user = "emi"; redwood.hostname = "redwood.corviform.gay"; redwood.port = 57452; redwood.user = "ember"; redwood.localForwards = [{ bind.port = 8080; host.port = 8080; host.address = "localhost"; }]; serenity.hostname = "serenity.ist.rit.edu"; serenity.user = "tts1848"; serenity.proxyCommand = "ssh glados -W %h:%p"; sol.hostname = "sol.is.geeky.gay"; sol.user = "emi"; awoo.hostname = "awoo.systems"; awoo.port = 1922; awoo.user = "root"; }; }; services.gpg-agent = { enable = true; maxCacheTtl = 180; # Seconds pinentryFlavor = "gnome3"; }; dconf.settings = import ./dconf.nix lib.hm.gvariant.mkTuple; xdg.configFile."rclone/rclone.conf".source = programs/rclone.conf; home.stateVersion = "22.11"; targets.genericLinux.enable = true; }