nix-conf/home-manager/home.nix
Thiago Sposito 60eef49dc2 feat: update to use hyprland and than back to gnome (wayland)
* add Waybar configs under `home-manager/hyprland/config/`
* extend Hyprland config with wallpaper, blur, animations, and new keybindings
* adjust common configs: Keychron (remove redundant xserver enable) and NVIDIA (add `videoDrivers = [ "nvidia" ]`)
* update `hosts/Nixstation` with GNOME desktop, GDM, Wacom config, and disable Hyprland
* add `home-manager/gnome/default.nix` with dconf, extensions, icons, and packages
* switch `home-manager/home.nix` from Hyprland to GNOME and update packages and Kitty config
2025-08-24 08:49:55 -03:00

155 lines
3.3 KiB
Nix

{ pkgs
, ...
}:
{
imports = [
./gnome
./vim.nix
./zsh.nix
];
nixpkgs = {
config = {
allowUnfree = true;
# Workaround for https://github.com/nix-community/home-manager/issues/2942
# nixpkgs.config.allowUnfreePredicate =
# pkg:
# builtins.elem (lib.getName pkg) [
# "steam"
# "steam-original"
# "steam-run"
# "steamtinkerlaunch"
# ];
};
};
home = {
homeDirectory = "/home/thiago";
packages = with pkgs; [
bambu-studio
direnv
fira-code
firefox
heroic
hwinfo
hydralauncher
inkscape
wl-clipboard
kanshi
keymapp
lazygit
libinput
librespot
luarocks
nerd-fonts.gohufont
nerd-fonts.fira-code
nil
nixpkgs-fmt
nordic
obsidian
python3
python3Packages.pip
rclone
ripgrep
shfmt
statix
stylua
sysbench
swaybg
transmission_4
uget
unzip
wl-clipboard
zed-editor
];
username = "thiago";
};
programs = {
git = {
aliases = {
br = "branch";
ca = "commit --amend";
can = "commit --amend --no-edit";
ci = "commit";
co = "checkout";
lg = "log --oneline --graph --decorate --all";
st = "status";
};
enable = true;
extraConfig = {
color.ui = "auto";
core = {
editor = "nvim";
autocrlf = "input";
};
init.defaultBranch = "main";
pull.rebase = true;
};
lfs.enable = true;
signing = {
key = "3065EA73A976D430";
signByDefault = true;
};
userEmail = "th.spo@pm.me";
userName = "Thiago Sposito";
};
home-manager.enable = true;
kitty = {
enable = true;
keybindings = {
# splitting
"ctrl+shift+enter" = "new_window";
"ctrl+shift+\\" = "new_window --location=hsplit";
# resizing
"ctrl+alt+left" = "resize_window narrower";
"ctrl+alt+right" = "resize_window wider";
"ctrl+alt+up" = "resize_window taller";
"ctrl+alt+down" = "resize_window shorter";
};
settings = {
hide_window_decorations = "titlebar-only";
font_size = 18;
font_family="GohuFont 14 Nerd Font Mono";
inactive_text_alpha = "0.6";
# background_blur = 32;
background_opacity = 1.0;
};
themeFile = "Nord";
};
vscode = {
enable = true;
};
};
systemd.user.services.librespot-connect = {
Unit = {
Description = "Librespot (Spotify Connect) bound to LAN interface";
After = [ "network.target" ];
};
Service = {
ExecStart = "${pkgs.librespot}/bin/librespot \
--name LS-TEST \
--backend pulseaudio \
--device default \
--bitrate 320 \
--disable-audio-cache \
--enable-volume-normalisation \
--initial-volume 75 \
--zeroconf-port 17005";
Restart = "on-failure";
BindToDevice = "wlp7s0"; # Force binding to LAN interface
};
Install = {
WantedBy = [ "default.target" ];
};
};
systemd.user.startServices = "sd-switch";
home.stateVersion = "24.05";
}