nixos/users/ruben/packages.nix

499 lines
16 KiB
Nix

# ╭──────────────────────────────────────╮
# │ _ │
# │ _ __ __ _ __| |____ _ __ _ ___ ___ │
# │ | '_ \/ _` / _| / / _` / _` / -_|_-< │
# │ | .__/\__,_\__|_\_\__,_\__, \___/__/ │
# │ |_| |___/ │
# │ user packages │
# ╰──────────────────────────────────────╯
{
inputs,
lib,
osConfig,
config,
pkgs,
...
}: {
# ╭───────────────────────────────╮
# │ _ _ │
# │ _ _ (_)_ ___ __| |____ _ ___ │
# │ | ' \| \ \ / '_ \ / / _` (_-< │
# │ |_||_|_/_\_\ .__/_\_\__, /__/ │
# │ |_| |___/ │
# │ user nixpkgs │
# ╰───────────────────────────────╯
# Add stuff for your user as you see fit:
programs.neovim.enable = true;
home.packages = with pkgs; [
bat
duf
fastfetch
fd
delta
eza
ripgrep
sd
zoxide
krabby
#sheldonkdePackages.kdeconnect-kde
cod
alejandra
usbutils
jq
ffmpeg_6-full
imagemagick
figlet
yt-dlp
wgcf
mpdris2
rustc
cargo
openssl
gcc
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
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"];
#})
];
# ╭──────────────╮
# │ _ │
# │ _____| |_ │
# │ |_ (_-< ' \ │
# │ /__/__/_||_| │
# │ zsh │
# ╰──────────────╯
# thanks to https://github.com/Yumasi/nixos-home/blob/main/zsh.nix
programs.zsh = {
enable = true;
dotDir = ".config/zsh";
history.size = 50000;
# ╭───────────────────────────────────╮
# │ _ _ _ _ │
# │ __ _ _ _| |_(_)__| |___| |_ ___ │
# │ / _` | ' \ _| / _` / _ \ _/ -_) │
# │ \__,_|_||_\__|_\__,_\___/\__\___| │
# │ antidote │
# ╰───────────────────────────────────╯
# NOTE: disables for now to try sheldon
#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 kind:defer"
# "ohmyzsh/ohmyzsh path:plugins/copybuffer kind:defer"
# "ohmyzsh/ohmyzsh path:plugins/copyfile kind:defer"
# "ohmyzsh/ohmyzsh path:plugins/copypath kind:defer"
# "ohmyzsh/ohmyzsh path:plugins/extract kind:defer"
#
# # zsh-utils (modified editor plugin to remove block cursor)
# "belak/zsh-utils path:utility kind:defer"
# "${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"
#];
# ╭────────────────────────────╮
# │ _ _ │
# │ __ _| (_)__ _ ___ ___ ___ │
# │ / _` | | / _` (_-</ -_|_-< │
# │ \__,_|_|_\__,_/__/\___/__/ │
# │ aliases │
# ╰────────────────────────────╯
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";
};
# ╭───────────────────────╮
# │ _ │
# │ _____| |_ _ _ __ │
# │ _|_ (_-< ' \| '_/ _| │
# │ (_)__/__/_||_|_| \__| │
# │ .zshrc / zsh config │
# ╰───────────────────────╯
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 sheldon
eval "$(sheldon source)"
'';
};
# ╭─────────────────────╮
# │ _ _ │
# │ | |__| |_ ___ _ __ │
# │ | '_ \ _/ _ \ '_ \ │
# │ |_.__/\__\___/ .__/ │
# │ |_| │
# │ btop │
# ╰─────────────────────╯
programs.btop = {
enable = true;
catppuccin.enable = true;
};
# ╭────────────────────╮
# │ __ __ ___ ____ _ │
# │ / _/ _` \ V / _` | │
# │ \__\__,_|\_/\__,_| │
# │ cava │
# ╰────────────────────╯
programs.cava = {
enable = true;
catppuccin.enable = true;
};
# ╭──────────────────────────────────╮
# │ _ _ _ │
# │ __| |_ __ _ _ _ __| |_ (_)_ __ │
# │ (_-< _/ _` | '_(_-< ' \| | '_ \ │
# │ /__/\__\__,_|_| /__/_||_|_| .__/ │
# │ |_| │
# │ starship │
# ╰──────────────────────────────────╯
programs.starship = {
enable = true;
settings = pkgs.lib.importTOML ./config/starship.toml;
catppuccin.enable = true;
};
# ╭──────────────╮
# │ __ __ │
# │ / _|___/ _| │
# │ | _|_ / _| │
# │ |_| /__|_| │
# │ fzf │
# ╰──────────────╯
programs.fzf = {
enable = true;
enableZshIntegration = true;
catppuccin.enable = true;
};
# ╭────────────────────────╮
# │ _ _ │
# │ __ _| |_ _ _(_)_ _ │
# │ / _` | _| || | | ' \ │
# │ \__,_|\__|\_,_|_|_||_| │
# │ atuin │
# ╰────────────────────────╯
programs.atuin = {
enable = true;
enableZshIntegration = true;
};
# ╭─────────────────────────╮
# │ _ _ │
# │ ________ _(_)__| |___ │
# │ |_ / _ \ \ / / _` / -_) │
# │ /__\___/_\_\_\__,_\___| │
# │ zoxide │
# ╰─────────────────────────╯
programs.zoxide = {
enable = true;
enableZshIntegration = true;
};
# ╭──────────────╮
# │ _ _ │
# │ __ _(_) |_ │
# │ / _` | | _| │
# │ \__, |_|\__| │
# │ |___/ │
# │ git │
# ╰──────────────╯
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;
catppuccin.enable = true;
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;
};
# ╭─────────────────────────────────────╮
# │ _ _ │
# │ __ _____ __ ___ __| (_)_ _ _ __ │
# │ \ V (_-</ _/ _ \/ _` | | || | ' \ │
# │ \_//__/\__\___/\__,_|_|\_,_|_|_|_| │
# │ vscodium/vscode │
# ╰─────────────────────────────────────╯
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";
};
};
# ╭────────────────────╮
# │ _ │
# │ _ __ _ __ __| | │
# │ | ' \| '_ \/ _` | │
# │ |_|_|_| .__/\__,_| │
# │ |_| │
# │ mpd │
# ╰────────────────────╯
services.mpd = {
enable = true;
dataDir = "${config.home.homeDirectory}/.config/mpd";
musicDirectory = "${config.xdg.userDirs.music}";
playlistDirectory = "${config.home.homeDirectory}/.config/mpd/playlists";
dbFile = "${config.home.homeDirectory}/.config/mpd/db";
extraConfig = ''
state_file_interval "120"
restore_paused "yes"
auto_update "yes"
audio_output {
type "pipewire"
name "PipeWire"
}
'';
};
# ╭────────────────────────────────────╮
# │ _ _ __ _ __ _ __ __ _ __ _ __ │
# │ | ' \/ _| ' \| '_ \/ _| '_ \ '_ \ │
# │ |_||_\__|_|_|_| .__/\__| .__/ .__/ │
# │ |_| |_| |_| │
# │ ncmpcpp/mpd client │
# ╰────────────────────────────────────╯
programs.ncmpcpp = {
enable = true;
mpdMusicDir = "~/Music";
settings = {
# genderal
lyrics_directory = "~/.config/mpd/lyrics";
connected_message_on_startup = "yes";
cyclic_scrolling = "yes";
mouse_support = "yes";
mouse_list_scroll_whole_page = "yes";
lines_scrolled = "3";
message_delay_time = "1";
playlist_shorten_total_times = "yes";
playlist_display_mode = "columns";
browser_display_mode = "columns";
search_engine_display_mode = "columns";
playlist_editor_display_mode = "columns";
autocenter_mode = "yes";
centered_cursor = "yes";
user_interface = "classic";
locked_screen_width_part = "50";
ask_for_locked_screen_width_part = "yes";
external_editor = "nvim";
main_window_color = "default";
startup_screen = "playlist";
# ui elements visbility
header_visibility = "yes";
statusbar_visibility = "yes";
titles_visibility = "yes";
enable_window_title = "yes";
display_volume_level = "yes";
# ui theming
statusbar_color = "white";
color1 = "white";
color2 = "green";
progressbar_look = "󰮯󰧟";
progressbar_elapsed_color = "green";
progressbar_color = "black";
now_playing_prefix = "$b$3$3 ";
now_playing_suffix = " $/b$8";
current_item_prefix = "$b$7$/b$5 ";
current_item_suffix = " $8";
song_columns_list_format = "(50)[]{t|fr:Title} (0)[cyan]{a}";
song_list_format = " {%t $R $8%a$8}|{%f $R $8%l$8} $8";
song_status_format = "$6 {$3$b%t$/b} $1 $5󰀥 {$7$b%b$/b} $1 $4󰠃 {$8$b%a$/b}";
song_window_title_format = "{%a -}{ %t}";
};
};
# ╭─────────────────────────────────╮
# │ _ _ ___ │
# │ _ __ _ __ __| |_ _(_)__|_ ) │
# │ | ' \| '_ \/ _` | '_| (_-</ / │
# │ |_|_|_| .__/\__,_|_| |_/__/___| │
# │ |_| │
# │ mpdris2/mpd mpris bridge │
# ╰─────────────────────────────────╯
services.mpdris2 = {
enable = true;
};
# ╭────────────────────────────────────────────────────────────────────╮
# │ _ _ _ _ │
# │ _ __ _ __ __| |___ __| (_)___ __ ___ _ _ __| |___ _ _ _ __ __ │
# │ | ' \| '_ \/ _` |___/ _` | (_-</ _/ _ \ '_/ _` |___| '_| '_ \/ _| │
# │ |_|_|_| .__/\__,_| \__,_|_/__/\__\___/_| \__,_| |_| | .__/\__| │
# │ |_| |_| │
# │ mpd-discord-rpc │
# ╰────────────────────────────────────────────────────────────────────╯
services.mpd-discord-rpc = {
enable = true;
settings = {
id = 1165747824231723149;
format = {
details = "$title";
state = "$artist - $album";
timestamp = "elapsed";
large_image = "blobcatheadphones";
small_image = "blobfoxheadphones";
large_text = "$album by $artist";
small_text = "i love music";
};
};
};
}