nixos/users/ruben/packages.nix

277 lines
6.4 KiB
Nix

# ╭──────────────────────────────────────╮
# │ _ │
# │ _ __ __ _ __| |____ _ __ _ ___ ___ │
# │ | '_ \/ _` / _| / / _` / _` / -_|_-< │
# │ | .__/\__,_\__|_\_\__,_\__, \___/__/ │
# │ |_| |___/ │
# │ user packages │
# ╰──────────────────────────────────────╯
{
inputs,
lib,
osConfig,
config,
pkgs,
...
}: {
# Add stuff for your user as you see fit:
programs.neovim.enable = true;
home.packages = with pkgs; [
btop
bat
duf
fastfetch
fd
delta
eza
ripgrep
sd
zoxide
krabby
cod
atuin
alejandra
usbutils
jq
ffmpeg_6-full
imagemagick
figlet
yt-dlp
mpdris2
ncmpcpp
firefox
thunderbird
birdtray
kdePackages.kdenlive
krita
nicotine-plus
okteta
obsidian
rssguard
gpu-screen-recorder-gtk
gajim
cinny-desktop
revolt-desktop
vesktop
signal-desktop
cartridges
(prismlauncher.override {
jdks = [ temurin-jre-bin-8 temurin-jre-bin-17 temurin-jre-bin ];
})
retroarch
pcsx2
duckstation
melonDS
dolphin-emu
ppsspp-qt
dosbox-staging
bottles
protonup-qt
protontricks
mpv
mpdris2
mpd-discord-rpc
nextcloud-client
watchmate
obs-studio
joystickwake
ventoy-full
(catppuccin-kde.override {
flavour = ["mocha"];
accents = ["green"];
winDecStyles = ["modern"];
})
#(catppuccin-papirus-folders.override {
# flavor = ["mocha"];
# accent = ["green"];
#})
];
# my preferred shell customized to my needs
# thanks to https://github.com/Yumasi/nixos-home/blob/main/zsh.nix
programs.zsh = {
enable = true;
dotDir = ".config/zsh";
history.size = 50000;
antidote.enable = true;
antidote.plugins = [
# completions
"mattmc3/zephyr path:plugins/completion"
# shell benchmarking
"romkatv/zsh-bench kind:path kind:defer"
# oh my zsh
"ohmyzsh/ohmyzsh path:lib/key-bindings.zsh"
"ohmyzsh/ohmyzsh path:lib/clipboard.zsh"
#"ohmyzsh/ohmyzsh path:lib/completion.zsh"
"ohmyzsh/ohmyzsh path:plugins/copybuffer"
"ohmyzsh/ohmyzsh path:plugins/copyfile"
"ohmyzsh/ohmyzsh path:plugins/copypath"
"ohmyzsh/ohmyzsh path:plugins/extract kind:defer"
# zsh-utils
"belak/zsh-utils path:history"
"belak/zsh-utils path:utility"
"${config.home.homeDirectory}/${config.programs.zsh.dotDir}/plugins/editor"
# useful plugins
"atuinsh/atuin kind:defer"
"paulirish/git-open kind:defer"
"clavelm/yt-dlp-omz-plugin kind:defer"
"dim-an/cod kind:defer"
"jirutka/zsh-shift-select kind:defer"
"unixorn/fzf-zsh-plugin kind:defer"
"zdharma-continuum/fast-syntax-highlighting kind:defer"
"zsh-users/zsh-autosuggestions kind:defer"
"zsh-users/zsh-history-substring-search kind:defer"
];
shellAliases = {
# kitty
s = "kitten ssh";
# alias average commands to modern unix-util counterpartrs
cd = "z";
grep = "rg";
find = "fd";
df = "duf";
# different listing/ls styles
ls = "eza -lh --icons=always --hyperlink";
l = "eza";
la = "eza -1";
lt = "eza -T";
cat = "bat --paging=never";
# custom aliases
music = "ncmpcpp";
wttr = "curl 'wttr.in/?0' && curl 'wttr.in/?0?m'";
please = "sudo";
fucking = "sudo";
for-the-love-of-god = "sudo";
};
initExtra = ''
# export some custom paths
# (required for some packages/scripts/applications and some things in here)
path+=("${config.home.homeDirectory}/.local/bin")
path+=("${config.home.homeDirectory}/.cargo/bin")
# funny pokemon
krabby random
# load zoxide
eval "$(zoxide init zsh)"
'';
};
# starship prompt
programs.starship = {
enable = true;
settings = pkgs.lib.importTOML ./config/starship.toml;
};
# fuzzy command finder, required by a decent amount of things
programs.fzf = {
enable = true;
enableZshIntegration = true;
catppuccin.enable = true;
};
programs.git = {
enable = true;
userName = "Sneexy";
userEmail = "sneexy@disroot.org";
signing.signByDefault = true;
signing.key = "AE181294E97E4802";
extraConfig = {
commit.verbose = true;
init.defaultBranch = "main";
};
};
# KITTY !!!!
programs.kitty = {
enable = true;
font.name = "JetBrainsMono NF";
font.size = 11.8;
theme = "Catppuccin-Mocha";
settings = {
cursor_shape = "beam";
window_padding_width = 8;
scrollback_lines = 2000;
scrollback_pager_history_size = 512;
tab_bar_style = "powerline";
tab_powerline_style = "round";
};
shellIntegration.enableZshIntegration = true;
};
programs.vscode = {
enable = true;
package = pkgs.vscodium;
extensions = with pkgs.vscode-extensions; [
esbenp.prettier-vscode
catppuccin.catppuccin-vsc
catppuccin.catppuccin-vsc-icons
arrterian.nix-env-selector
donjayamanne.githistory
];
userSettings = {
"editor.fontFamily" = "\'JetBrainsMono Nerd Font\', \'Droid Sans Mono\', \'monospace\', monospace";
"editor.fontSize" = 16;
"files.autoSave" = "onFocusChange";
"editor.cursorBlinking" = "expand";
"editor.cursorSmoothCaretAnimation" = "on";
"window.dialogStyle" = "custom";
"window.titleBarStyle" = "custom";
"workbench.colorTheme" = "Catppuccin Mocha";
"workbench.iconTheme" = "catppuccin-mocha";
"catppuccin.accentColor" = "green";
};
};
# this is a got damn NEO VIMME HOUSE !!
home.sessionVariables = {
EDITOR = "nvim";
};
# music!!
services.mpd = {
enable = true;
dataDir = "${config.home.homeDirectory}/.config/mpd";
musicDirectory = "${config.home.homeDirectory}/Music";
playlistDirectory = "${config.home.homeDirectory}/.config/mpd/playlists";
dbFile = "${config.home.homeDirectory}/.config/mpd/db";
extraConfig = ''
state_file_interval "120"
restore_paused "yes"
audio_output {
type "pipewire"
name "PipeWire"
}
'';
};
}