Nix-Configs/configs/home.nogui.nix
2024-09-07 10:34:32 -04:00

142 lines
3.2 KiB
Nix

{pkgs, lib, ...} @ nixpkgs: {
imports = [ ../modules/parallel.nix ];
home.sessionVariables = {
NNN_FIFO = "/tmp/nnn.fifo";
LANG = "en_US.UTF-8";
EDITOR = "hx";
RCLONE_CONFIG = "${programs/rclone.conf}";
LEDGER_FILE = "/home/ember/Sync/Budget.journal";
};
home.keyboard.layout = "us";
home.keyboard.variant = "3l";
home.packages = with pkgs; with (import ../packages/all-packages.nix nixpkgs); [
encfs
entr
restic
ripgrep
libqalculate
git-annex
git-annex-remote-rclone
qrencode
libwebp
libjxl
bat
dw
rclone
bubblewrap
termdown
yt-dlp
magic-wormhole-rs
hledger
keepassxc
passhole
] ++ (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,csv},COMMIT_EDITMSG}" = {
max_line_length = 0;
};
settings."*.{elm,lisp,yml,purs,hs}" = {
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 = "hx";
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.helix = import programs/helix.nix;
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.parallel = {
enable = true;
willCite = true;
};
programs.ssh = import programs/ssh/settings.nix;
home.file.allowedKeys = {
text = builtins.concatStringsSep "\n" (import programs/ssh/authorizedKeys.nix);
target = ".ssh/authorized_keys";
};
home.file.cargoConfig = {
source = programs/cargo.toml;
target = ".cargo/config";
};
services.gpg-agent = {
enable = true;
maxCacheTtl = 180; # Seconds
pinentryFlavor = "gnome3";
};
dconf.settings = import ./dconf.nix lib.hm.gvariant.mkTuple;
home.stateVersion = "22.11";
nixpkgs.config.allowUnfree = true;
targets.genericLinux.enable = true;
}