init
This commit is contained in:
211
home-manager/home.nix
Normal file
211
home-manager/home.nix
Normal file
@@ -0,0 +1,211 @@
|
||||
{ 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;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user