nixos/users/ruben/home.nix

283 lines
9 KiB
Nix
Raw Normal View History

# ╭──────────────────────────────────────────────────────────────────────────────────╮
# │ __ │
# │ / /_ ____ ____ ___ ___ ____ ___ ____ _____ ____ _____ ____ _____ │
# │ / __ \/ __ \/ __ `__ \/ _ \______/ __ `__ \/ __ `/ __ \/ __ `/ __ `/ _ \/ ___/ │
# │ / / / / /_/ / / / / / / __/_____/ / / / / / /_/ / / / / /_/ / /_/ / __/ / │
# │ /_/ /_/\____/_/ /_/ /_/\___/ /_/ /_/ /_/\__,_/_/ /_/\__,_/\__, /\___/_/ │
# │ /____/ │
# │ home manager config │
# ╰──────────────────────────────────────────────────────────────────────────────────╯
2024-04-17 15:43:14 -05:00
{
inputs,
lib,
2024-04-18 22:04:30 -05:00
osConfig,
2024-04-17 15:43:14 -05:00
config,
pkgs,
flake-inputs,
2024-04-17 15:43:14 -05:00
...
}: {
# You can import other home-manager modules here
imports = [
# flatpaks home-manager flake
flake-inputs.flatpaks.homeManagerModules.nix-flatpak
2024-04-17 15:43:14 -05:00
# catppuccin home-manager flake
flake-inputs.catppuccin.homeManagerModules.catppuccin
2024-04-17 15:43:14 -05:00
];
home = {
username = "ruben";
homeDirectory = "/home/ruben";
};
# ╭─────────────────────────────────╮
# │ __ _ _ _ │
# │ / _| |__ _| |_ _ __ __ _| |__ │
# │ | _| / _` | _| '_ \/ _` | / / │
# │ |_| |_\__,_|\__| .__/\__,_|_\_\ │
# │ |_| │
# │ flatpak │
# ╰─────────────────────────────────╯
services.flatpak.remotes = lib.mkOptionDefault [
{
name = "flathub-user";
location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
}
];
services.flatpak.update.auto.enable = true;
services.flatpak.uninstallUnmanaged = true;
# flatpak user packages
services.flatpak.packages = [
"org.kde.kdenlive"
"org.kde.krita"
"org.nicotine_plus.Nicotine"
"org.kde.okteta"
"md.obsidian.Obsidian"
"io.github.martinrotter.rssguardlite"
"com.dec05eba.gpu_screen_recorder"
2024-04-20 15:49:30 -05:00
"org.gajim.Gajim"
"in.cinny.Cinny"
"chat.revolt.RevoltDesktop"
"dev.vencord.Vesktop"
"org.signal.Signal"
2024-04-20 15:49:30 -05:00
"page.kramo.Cartridges"
"org.prismlauncher.PrismLauncher"
"org.libretro.RetroArch"
"net.pcsx2.PCSX2"
"org.duckstation.DuckStation"
"net.kuribo64.melonDS"
"org.DolphinEmu.dolphin-emu"
"org.ppsspp.PPSSPP"
"io.github.dosbox-staging"
"com.usebottles.bottles"
"net.davidotek.pupgui2"
"com.github.Matoking.protontricks"
2024-04-20 15:49:30 -05:00
"io.gitlab.azymohliad.WatchMate"
];
services.flatpak.overrides = {
global = {
Context.filesystems = [
"xdg-config/gtk-4.0:ro"
"xdg-config/gtk-3.0:ro"
"xdg-run/discord-ipc-*"
"xdg-run/.flatpak/dev.vencord.Vesktop:create"
"xdg-config/fontconfig:ro"
"~/.themes:ro"
"~/.local/share/themes:ro"
];
Environment = {
GTK_THEME = "Catppuccin-Mocha-Compact-Green-Dark";
ICON_THEME = "Papirus-Dark";
XCURSOR_PATH = "/run/host/user-share/icons:/run/host/share/icons";
XCURSOR_SIZE = "24";
XCURSOR_THEME = "Bibata-Modern-Light";
};
};
};
# ╭──────────────────────────────────────╮
# │ _ │
# │ _ __ __ _ __| |____ _ __ _ ___ ___ │
# │ | '_ \/ _` / _| / / _` / _` / -_|_-< │
# │ | .__/\__,_\__|_\_\__,_\__, \___/__/ │
# │ |_| |___/ │
# │ user packages │
# ╰──────────────────────────────────────╯
# Add stuff for your user as you see fit:
programs.neovim.enable = true;
home.packages = with pkgs; [
btop
bat
duf
fastfetch
fd
delta
lsd
ripgrep
sd
starship
zoxide
2024-04-17 21:31:20 -05:00
2024-04-20 15:49:30 -05:00
alejandra
cargo
usbutils
jq
ffmpeg_6-full
imagemagick
yt-dlp
mpdris2
2024-04-20 09:49:16 -05:00
ncmpcpp
mpv
nextcloud-client
obs-studio
joystickwake
ventoy-full
];
2024-04-17 15:43:14 -05:00
# my preferred shell customized to my needs
# TODO: theres only oh-my-zsh support out of the box, figure out
# how to customize sheldon and starship
programs.zsh = {
enable = true;
history.size = 50000;
syntaxHighlighting.enable = true;
};
2024-04-17 15:43:14 -05:00
# fuzzy command finder, required by a decent amount of things
programs.fzf = {
enable = true;
enableZshIntegration = true;
2024-04-17 21:31:20 -05:00
catppuccin.enable = true;
2024-04-17 15:43:14 -05:00
};
programs.git = {
enable = true;
userName = "Sneexy";
userEmail = "sneexy@disroot.org";
signing.signByDefault = true;
2024-04-20 15:49:30 -05:00
signing.key = "A6C94D84D2DA13EE";
2024-04-17 15:43:14 -05:00
extraConfig = {
commit.verbose = true;
init.defaultBranch = "main";
};
};
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!!
2024-04-17 15:43:14 -05:00
services.mpd = {
enable = true;
2024-04-19 21:47:35 -05:00
dataDir = "/home/ruben/.config/mpd";
musicDirectory = "/home/ruben/Music";
playlistDirectory = "/home/ruben/.config/mpd/playlists";
dbFile = "/home/ruben/.config/mpd/db";
extraConfig = ''
state_file_interval "120"
restore_paused "yes"
audio_output {
type "pipewire"
name "PipeWire"
}
'';
2024-04-17 15:43:14 -05:00
};
xdg.userDirs.enable = true;
# ╭───────────────────────────────────────────╮
# │ _ _ │
# │ __ __ _| |_ _ __ _ __ _ _ __ __(_)_ _ │
# │ / _/ _` | _| '_ \ '_ \ || / _/ _| | ' \ │
# │ \__\__,_|\__| .__/ .__/\_,_\__\__|_|_||_| │
# │ |_| |_| │
# │ catppuccin │
# ╰───────────────────────────────────────────╯
# catppuccin flavour
catppuccin.flavour = "mocha";
2024-04-17 15:43:14 -05:00
2024-04-17 21:31:20 -05:00
# catppuccin's gtk theme
gtk = {
enable = true;
theme = {
name = "Catppuccin-Mocha-Compact-Green-Dark";
package = pkgs.catppuccin-gtk.override {
accents = ["green"];
2024-04-17 21:31:20 -05:00
size = "compact";
#tweaks = [ "rimless" "black" ];
variant = "mocha";
};
};
};
xdg.configFile = {
# required for catppuccin's gtk4 theme
2024-04-17 21:31:20 -05:00
"gtk-4.0/assets".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/assets";
"gtk-4.0/gtk.css".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/gtk.css";
"gtk-4.0/gtk-dark.css".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/gtk-dark.css";
};
# ╭───────────────────────────────────────────────╮
# │ _ __ _ │
# │ _ __ ___ __| |_ ___ __ ___ _ _ / _(_)__ _ │
# │ | '_ \/ _ (_-< _|___/ _/ _ \ ' \| _| / _` | │
# │ | .__/\___/__/\__| \__\___/_||_|_| |_\__, | │
# │ |_| |___/ │
# │ post-config │
# ╰───────────────────────────────────────────────╯
# post-setup things
2024-04-17 15:43:14 -05:00
# Nicely reload system units when changing configs
systemd.user.startServices = "sd-switch";
# Enable home-manager
programs.home-manager.enable = true;
# home-manager should automatically update for me
services.home-manager.autoUpgrade.enable = true;
services.home-manager.autoUpgrade.frequency = "daily";
2024-04-17 15:43:14 -05:00
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
home.stateVersion = "23.11";
2024-04-17 15:43:14 -05:00
}