nixos-config/modules/home/shell-conf.nix
2025-03-09 13:33:31 -04:00

276 lines
5.3 KiB
Nix

{ nix-config, inputs, pkgs, ... }:
{
home.packages = with pkgs; [
inputs.isd.packages.x86_64-linux.default
cmake
cmake-format
just
readline
rlwrap
yt-dlp
erdtree
age
figlet
ffmpeg-full
ouch
pinentry
gcr
gnutar
libnotify
unzip
zip
stdenv
tldr
rich-cli
delta
(btop-rocm.override { cudaSupport = true; })
gnupg
imagemagick
gnutls
gettext
gnumake
nix-du
nix-melt
usbutils
pciutils
util-linux
coreutils
binutils
editorconfig-core-c
openssl
exiftool
libsecret
shellcheck
libffi.dev
nodejs_18
platformio-core
icloudpd
pkg-config
ftgl
gperf
numbat
glpng
nurl
fastfetch
nvd
# ripgrep-all
silver-searcher
powertop
age
kdotool
manix
caligula
sqlite
yaml-language-server
typescript-language-server
svelte-language-server
bash-language-server
nginx-language-server
lua-language-server
lemminx
stylelint-lsp
htmx-lsp
autotools-language-server
arduino-language-server
ccls
vscode-langservers-extracted
java-language-server
nix-config.pkgs-stable.javascript-typescript-langserver
haskell-language-server
cmake-language-server
stylelint-lsp
marksman
ruff-lsp
haskell-language-server
emacs-lsp-booster
zstd
black
jsbeautifier
typescript
prettierd
stylelint
nixd
nixdoc
nix-init
alejandra
ncdu
dua
git-annex
bfg-repo-cleaner
delta
tree
emoji-picker
fishPlugins.foreign-env
fishPlugins.fzf-fish
fishPlugins.bass
fishPlugins.autopair
fishPlugins.forgit
fishPlugins.colored-man-pages
imgcat
ghostscript
playerctl
tesseract
alsa-utils
alsa-tools
dockfmt
icloudpd
borgbackup
trash-cli
poppler_utils
faircamp
];
programs = {
nix-index = {
enable = true;
enableFishIntegration = true;
};
direnv = {
enable = true;
nix-direnv.enable = true;
};
fish = {
enable = true;
shellAliases = {
"ls" = "eza";
"em" = "emacsclient -n -r";
"mkdir" = "mkdir -pv";
};
interactiveShellInit = ''
bind --erase \ct
'';
plugins = [
{
name = "upto";
src = pkgs.fetchFromGitHub {
owner = "Markcial";
repo = "upto";
rev = "2d1f35453fb55747d50da8c1cb1809840f99a646";
sha256 = "sha256-Lv2XtP2x9dkIkUUjMBWVpAs/l55Ztu7gIjKYH6ZzK4s=";
};
}
];
};
zoxide = {
enableFishIntegration = true;
enable = true;
};
starship = {
enableFishIntegration = true;
enable = true;
};
ripgrep = {
enable = true;
package = (pkgs.ripgrep.override {withPCRE2 = true;});
};
thefuck = {
enableFishIntegration = true;
enable = true;
};
wezterm = {
enable = true;
package = inputs.wezterm.packages.${pkgs.system}.default;
# extraConfig = lib.readFile ./dotfiles/dot_config/wezterm/wezterm.lua;
};
bat = {
enable = true;
};
borgmatic = {
enable = true;
backups = {
eddie = {
location = {
patterns = [
"R /home/emenel"
"- home/emenel/.cache"
"- home/emenel/.nix*"
"- home/emenel/.steam*"
"- home/emenel/Dropbox"
"- home/emenel/Sync"
"- home/emenel/.dropbox*"
"- home/emenel/.BitwigStudio"
"- home/emenel/.local/share/bitwig"
];
repositories = [
{
"path" = "ssh://oyi3ydnz@oyi3ydnz.repo.borgbase.com/./repo";
"label" = "eddie on borgbase";
}
];
};
retention = {
keepDaily = 3;
keepHourly = 3;
keepMonthly = 2;
};
};
};
};
eza = {
enable = true;
git = true;
enableFishIntegration = true;
};
fd = {
enable = true;
};
fzf = {
enable = true;
enableFishIntegration = false;
};
broot = {
enable = true;
};
lazygit.enable = true;
jq.enable = true;
rbw = {
enable = true;
package = nix-config.packages.x86_64-linux.rbw-latest;
};
};
home.file.".ssh/config".source = ../../homes/emenel/dotfiles/dot_ssh/config;
xdg.configFile."starship.toml".source = ../../homes/emenel/dotfiles/dot_config/starship.toml;
xdg.configFile."wezterm" = {
recursive = true;
source = ../../homes/emenel/dotfiles/dot_config/wezterm;
};
xdg.configFile."rbw".source = ../../homes/emenel/dotfiles/dot_config/rbw;
xdg.configFile."isd_tui/config.yaml".source = ../../homes/emenel/dotfiles/dot_config/isd_tui/config.yaml;
home.file.".config/fish/functions" = {
source = ../../homes/emenel/dotfiles/dot_config/fish/functions;
recursive = true;
};
home.file.".config/fish/completions" = {
source = ../../homes/emenel/dotfiles/dot_config/fish/completions;
recursive = true;
};
home.file.".local/share/flf".source = ../../homes/emenel/dotfiles/dot_local/share/flf;
}