Files
nixos-dots/home-manager/home.nix
2025-12-11 17:17:21 +01:00

212 lines
4.0 KiB
Nix

{ config, pkgs, inputs, ... }:
{
home.username = "lusia";
home.homeDirectory = "/home/lusia";
home.stateVersion = "24.11";
nixpkgs.config.allowUnfree = true;
home.packages = with pkgs; [
niri
btop
ripgrep
firefox-bin
claude-code
yazi
fastfetch
pywalfox-native
nautilus
loupe
gnome-text-editor
gnome-calculator
evince
vlc
p7zip
unzip
zip
unrar
file-roller
morewaita-icon-theme
codex
neovim
cargo-cross
filezilla
swayidle
python314
sshpass
dua
nh
nmap
lazygit
mpv
libreoffice-fresh
qbittorrent
gimp
mdcat
htop
vscode.fhs
blender
yt-dlp
ffmpeg
tor-browser
kdePackages.kleopatra
monero-gui
gnupg
pinentry-qt
libheif
exiftool
gnome-network-displays
dconf
jq
pywal
fd
openai-whisper
gparted
swww
tectonic
zathura
entr
waifu2x-converter-cpp
gnome-software
mission-center
kanshi
# Wrap PrismLauncher to fix Minecraft GLFW Wayland issues
(pkgs.symlinkJoin {
name = "prismlauncher";
paths = [ pkgs.prismlauncher ];
buildInputs = [ pkgs.makeWrapper ];
postBuild = ''
wrapProgram $out/bin/prismlauncher \
--set SDL_VIDEODRIVER "x11"
'';
})
# Wrap Krita to work with XWayland (Krita doesn't support native Wayland)
(pkgs.symlinkJoin {
name = "krita";
paths = [ pkgs.krita ];
buildInputs = [ pkgs.makeWrapper ];
postBuild = ''
wrapProgram $out/bin/krita \
--set DISPLAY ":0" \
--set QT_AUTO_SCREEN_SCALE_FACTOR "0" \
--set QT_SCALE_FACTOR "2" \
--set QT_FONT_DPI "96"
'';
})
];
# Set dark mode and Nautilus preferences
dconf = {
enable = true;
settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
"org/gnome/nautilus/preferences" = {
show-image-thumbnails = "always";
};
};
};
# Set morewaita as the default icon theme
gtk = {
enable = true;
iconTheme = {
name = "MoreWaita";
package = pkgs.morewaita-icon-theme;
};
# Stylix manages theme, commenting out manual config
# theme = {
# name = "Adwaita-dark";
# package = pkgs.gnome-themes-extra;
# };
cursorTheme = {
name = "Adwaita";
package = pkgs.adwaita-icon-theme;
};
# Force dark mode preference for GTK3
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
# Force dark mode preference for GTK4
gtk4.extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
};
home.pointerCursor = {
name = "Adwaita";
package = pkgs.adwaita-icon-theme;
size = 24;
gtk.enable = true;
x11 = {
enable = true;
defaultCursor = "Adwaita";
};
};
qt = {
enable = true;
platformTheme.name = "adwaita";
style = {
name = "adwaita-dark";
};
};
# Enable and configure git
programs.git = {
enable = true;
settings = {
user.name = "Lukrecja";
user.email = "lusiaaa425@gmail.com";
credential.helper = "store";
};
};
# Configure GPG agent with pinentry
services.gpg-agent = {
enable = true;
pinentry.package = pkgs.pinentry-qt;
enableSshSupport = true;
};
# OBS with plugins
programs.obs-studio = {
enable = true;
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
obs-pipewire-audio-capture
obs-vaapi
];
};
programs.home-manager.enable = true;
# Stylix theming
stylix = {
enable = true;
# Wallpaper required by Stylix (even though we use swww to actually display it)
image = ./wallpaper;
# Use pywal's color scheme instead of extracting from image
# sync-colors.sh will generate colors.yaml here
base16Scheme = ./colors.yaml;
# Use dark mode
polarity = "dark";
# Disable Qt theming (it's janky and doesn't apply everywhere)
# targets.qt.enable = false;
};
}