150 lines
3.8 KiB
Nix
150 lines
3.8 KiB
Nix
{ config, pkgs, lib, ... }:
|
|
{
|
|
imports = [
|
|
./options.nix
|
|
./zsh.nix
|
|
./fish.nix
|
|
];
|
|
manual.json.enable = true;
|
|
services.gpg-agent = {
|
|
enable = true;
|
|
enableSshSupport = true;
|
|
maxCacheTtl = 72000;
|
|
maxCacheTtlSsh = 72000;
|
|
};
|
|
home.shellAliases = {
|
|
s = "sudo -A";
|
|
se = "sudo -AE";
|
|
l = "lsd";
|
|
};
|
|
|
|
programs = {
|
|
atuin = {
|
|
enable = true;
|
|
settings = {
|
|
update_check = false;
|
|
};
|
|
};
|
|
nnn = let pluginSrc = "${pkgs.nnn.src}/plugins"; in {
|
|
enable = true;
|
|
package = (pkgs.nnn.override ({ withNerdIcons = true; })).overrideAttrs (oldAttrs: {
|
|
# no need to add makeWrapper to nativeBuildInputs as home-manager does it already
|
|
postInstall =
|
|
let nnnArchiveRegex = "\\.(${lib.strings.concatStringsSep "|" [
|
|
"7z" "a" "ace" "alz" "arc" "arj" "bz" "bz2" "cab" "cpio" "deb" "gz" "jar" "lha" "lz" "lzh" "lzma" "lzo" "rar" "rpm" "rz" "t7z" "tar" "tbz" "tbz2" "tgz" "tlz" "txz" "tZ" "tzo" "war" "xpi" "xz" "Z" "zip"
|
|
]})$"; in with lib; with strings; ''
|
|
wrapProgram $out/bin/nnn \
|
|
--set GUI 1 \
|
|
--set NNN_OPENER ${escapeShellArg "${pluginSrc}/nuke"} \
|
|
--set NNN_ARCHIVE ${escapeShellArg nnnArchiveRegex} \
|
|
--add-flags ${
|
|
# -a: auto create fifo file
|
|
# -c: use NNN_OPENER
|
|
# -x: x server features
|
|
escapeShellArg "-a -c -x"
|
|
}
|
|
'';
|
|
});
|
|
extraPackages = with pkgs; [
|
|
# utils
|
|
gnused mktemp fzf coreutils-full findutils xdg-utils git gnupg whois curl
|
|
file mediainfo unzip gnutar man rclone sshfs trash-cli
|
|
# drag & drop
|
|
xdragon
|
|
# xembed
|
|
tabbed
|
|
# for preview
|
|
exa bat
|
|
ffmpeg ffmpegthumbnailer nsxiv imagemagick
|
|
libarchive unzip gnutar atool
|
|
libreoffice poppler_utils fontpreview djvulibre
|
|
glow w3m
|
|
# for opening
|
|
p7zip unrar-wrapper zathura mpv odt2txt
|
|
];
|
|
plugins = {
|
|
src = pluginSrc;
|
|
mappings = {
|
|
p = "-preview-tui";
|
|
P = "fzplug";
|
|
D = "dragdrop";
|
|
c = "-chksum";
|
|
d = "-diffs";
|
|
f = "fzopen";
|
|
s = "suedit";
|
|
x = "togglex";
|
|
u = "umounttree";
|
|
};
|
|
};
|
|
};
|
|
neomutt = {
|
|
enable = true;
|
|
sidebar.enable = true;
|
|
vimKeys = true;
|
|
};
|
|
home-manager.enable = true;
|
|
# i only use this as a login shell
|
|
bash = {
|
|
enable = true;
|
|
initExtra = ''
|
|
bind -x '"\C-r": __atuin_history'
|
|
export ATUIN_NOBIND=true
|
|
'';
|
|
};
|
|
git = {
|
|
enable = true;
|
|
package = pkgs.gitAndTools.gitFull;
|
|
delta.enable = true;
|
|
extraConfig = {
|
|
core.askPass = "";
|
|
credential.helper = "${pkgs.gitAndTools.gitFull}/bin/git-credential-libsecret";
|
|
};
|
|
};
|
|
bat = {
|
|
enable = true;
|
|
};
|
|
bottom = {
|
|
enable = true;
|
|
settings = {
|
|
flags.network_use_bytes = true;
|
|
flags.enable_gpu_memory = true;
|
|
};
|
|
};
|
|
lsd = {
|
|
enable = true;
|
|
settings = {
|
|
date = "+%Y-%m-%d %H:%M:%S";
|
|
permission = "octal";
|
|
size = "short";
|
|
};
|
|
};
|
|
ssh = {
|
|
enable = true;
|
|
compression = true;
|
|
};
|
|
tmux = {
|
|
enable = true;
|
|
clock24 = true;
|
|
customPaneNavigationAndResize = true;
|
|
keyMode = "vi";
|
|
};
|
|
gpg = {
|
|
enable = true;
|
|
homedir = "${config.xdg.dataHome}/gnupg";
|
|
mutableKeys = true;
|
|
mutableTrust = true;
|
|
};
|
|
nix-index.enable = true;
|
|
readline = {
|
|
enable = true;
|
|
variables.editing-mode = "vi";
|
|
};
|
|
};
|
|
|
|
home.packages = with pkgs; [
|
|
rclone sshfs fuse
|
|
file jq python3Full killall
|
|
appimage-run comma
|
|
];
|
|
}
|