Files
nix-config/home/home.nix
2026-03-11 18:45:48 +01:00

233 lines
4.5 KiB
Nix

top @ { config
, pkgs
, username
, inputs
, ...
}: {
imports = [
inputs.nixvim.homeModules.nixvim
inputs.catppuccin.homeModules.catppuccin
inputs.spicetify-nix.homeManagerModules.default
./borgmatic.nix
./ssh.nix
# ./wlr-which-key.nix
];
home.username = username;
home.homeDirectory = "/home/${username}";
home.packages = with pkgs; [
mpv
feh
grim
slurp
xdg-user-dirs
hyprpicker
libqalculate
btop-rocm
xfce.thunar
prismlauncher
playerctl
signal-desktop
qbittorrent
unzip
file
gnucash
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default
prusa-slicer
gdb
];
home.sessionVariables = {
EDITOR = "nvim";
};
home.pointerCursor =
let
size = 24;
in
{
enable = true;
package = pkgs.catppuccin-cursors.mochaMauve;
name = "catppuccin-mocha-mauve-cursors";
inherit size;
dotIcons.enable = true;
gtk.enable = true;
hyprcursor.enable = true;
hyprcursor.size = size;
};
catppuccin.enable = true;
gtk = {
enable = true;
colorScheme = "dark";
font.name = "JetBrainsMono";
};
qt = {
enable = true;
style.name = "kvantum";
};
wayland.windowManager.hyprland = {
enable = true;
settings = (import ./hyprland/settings.nix) top;
};
#TODO: GDB configuration
programs.nixvim = {
enable = true;
imports = [ ./nixvim ];
};
programs.thunderbird = {
enable = true;
profiles.default.isDefault = true;
};
programs.zathura.enable = true;
programs.direnv = {
enable = true;
enableZshIntegration = true;
nix-direnv.enable = true;
};
programs.zoxide = {
enable = true;
enableZshIntegration = true;
options = [
"--cmd cd"
];
};
programs.spicetify =
let
spkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
enable = true;
enabledExtensions = with spkgs.extensions; [
fullAppDisplay
shuffle
aiBandBlocker
];
enabledCustomApps = with spkgs.apps; [
newReleases
];
theme = spkgs.themes.catppuccin;
colorScheme = "mocha";
};
programs.vesktop.enable = true;
programs.rofi = {
enable = true;
modes = [
"combi"
"drun"
"calc"
"ssh"
];
plugins = [
pkgs.rofi-calc
];
};
programs.zsh = {
enable = true;
# For automatic login
profileExtra = ''
if [ -z "$WAYLAND_DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then
exec hyprland
fi
'';
autocd = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
initContent = pkgs.lib.mkBefore ''
date
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "''${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-''${(%):-%n}.zsh" ]]; then
source "''${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-''${(%):-%n}.zsh"
fi
'';
plugins = [
{
name = "powerlevel10k";
src = "${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/";
file = "powerlevel10k.zsh-theme";
}
{
name = "p10k-config";
src = ./p10k;
file = "p10k.zsh";
}
];
oh-my-zsh = {
enable = true;
plugins = [
"git"
];
theme = "robbyrussell";
};
};
programs.fzf = {
enable = true;
enableZshIntegration = true;
};
programs.kitty = {
enable = true;
enableGitIntegration = true;
font = {
name = "JetBrains Mono";
size = 10;
};
shellIntegration.enableZshIntegration = true;
#TODO: kitty config
};
programs.git = {
enable = true;
settings.user = {
email = "weckyy702@gmail.com";
name = "Weckyy702";
};
#TODO: signing
};
services.hyprpaper = {
enable = true;
settings =
let
# TODO: this should be done more cleanly
wallpaper_path = ./hyprland/horizontal_16x9.png;
in
{
preload = "${wallpaper_path}";
wallpaper = [
#TODO: this should be dynamic
"DP-1,${wallpaper_path}"
"HDMI-A-1,${wallpaper_path}"
];
};
};
services.dunst.enable = true;
services.hyprpolkitagent.enable = true;
home.stateVersion = "25.11";
}