Nix-Configs/configs/home.nogui.nix
2023-01-31 20:07:21 -05:00

147 lines
3.4 KiB
Nix

{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";
};
};
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;
}