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
This commit is contained in:
Thiago Sposito 2025-08-24 08:49:55 -03:00
parent 90825889e8
commit 60eef49dc2
8 changed files with 260 additions and 51 deletions

View file

@ -0,0 +1,39 @@
{ pkgs, ... }:
{
dconf.settings = {
"org/gnome/shell" = {
disable-user-extensions = false;
favorite-apps = [
"org.gnome.Settings.desktop"
"org.gnome.Nautilus.desktop"
"firefox.desktop"
"org.gnome.Calendar.desktop"
"code.desktop"
"kitty.desktop"
];
enabled-extensions = [
""
"trayIconsReloaded@selfmade.pl"
"Vitals@CoreCoding.com"
"sound-output-device-chooser@kgshank.net"
"space-bar@luchrioh"
"Forge@forge-ext"
];
};
};
home.packages = with pkgs; [
gnomeExtensions.pop-shell
gnomeExtensions.forge
gnomeExtensions.tray-icons-reloaded
gnomeExtensions.vitals
gnomeExtensions.sound-output-device-chooser
gnomeExtensions.space-bar
nordzy-icon-theme
];
}

View file

@ -1,12 +1,9 @@
{ config
, inputs
, lib
, pkgs
{ pkgs
, ...
}:
{
imports = [
./hyprland
./gnome
./vim.nix
./zsh.nix
];
@ -14,9 +11,6 @@
nixpkgs = {
config = {
allowUnfree = true;
config.permittedInsecurePackages = [
"libsoup-2.74.3"
];
# Workaround for https://github.com/nix-community/home-manager/issues/2942
# nixpkgs.config.allowUnfreePredicate =
# pkg:
@ -40,11 +34,15 @@
hwinfo
hydralauncher
inkscape
wl-clipboard
kanshi
keymapp
lazygit
libinput
librespot
luarocks
nerd-fonts.gohufont
nerd-fonts.fira-code
nil
nixpkgs-fmt
nordic
@ -57,9 +55,12 @@
statix
stylua
sysbench
swaybg
transmission_4
uget
unzip
wl-clipboard
zed-editor
];
username = "thiago";
};
@ -99,19 +100,24 @@
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 = 16;
font = "ComicShannsMono Nerd Font Mono";
font_size = 18;
font_family="GohuFont 14 Nerd Font Mono";
inactive_text_alpha = "0.6";
background_blur = 16;
background_opacity = 0.0;
# background_blur = 32;
background_opacity = 1.0;
};
themeFile = "Nord";
};

View file

@ -0,0 +1,58 @@
{
"layer": "top",
"position": "right",
"exclusive": true,
"modules-left": [
"hyprland/workspaces",
"hyprland/window"
],
"modules-center": [
"clock",
"temperature"
],
"modules-right": [
"pulseaudio",
"battery",
"network",
"tray"
],
"clock": {
"format": "{:%d/%m %H:%M}",
"interval": 1
},
"temperature": {
"hwmon-path-abs": "/sys/class/hwmon/hwmon1/temp1_input",
"format": " {temperatureC}°C",
"critical-threshold": 90,
"format-icons": [
"",
"",
""
]
},
"battery": {
"format": "{capacity}% {icon}",
"format-charging": "{capacity}% ⚡",
"format-icons": [
"",
"",
"",
"",
""
]
},
"network": {
"format-wifi": " {essid}",
"format-ethernet": " {ipaddr}",
"format-disconnected": " "
},
"pulseaudio": {
"format": "{volume}% {icon}",
"format-muted": "",
"format-icons": [
"",
"",
""
]
}
}

View file

@ -0,0 +1,48 @@
* {
color: #ffffff;
}
window#waybar {
background: transparent;
}
#workspaces {
flex-wrap: wrap;
max-width: 120px;
}
#workspaces button {
background: #ff00ff;
border-radius: 0;
width: 40px;
height: 40px;
margin: 2px;
padding: 0;
flex: 0 0 40px;
}
#workspaces button.active {
background: #ff00ff;
border: 2px solid #ffffff;
}
#window {
background: transparent;
}
#clock,
#battery,
#network,
#pulseaudio,
#tray,
#temperature {
background: transparent;
}
#pulseaudio.muted {
background: transparent;
}
#network.disconnected {
background: transparent;
}

View file

@ -1,4 +1,4 @@
_: {
{lib, ...}: {
home.sessionVariables = {
fileManager = "thunar";
menu = "fuzzel --show drun";
@ -14,17 +14,33 @@ _: {
};
home.file = {
".config/fuzzel/fuzzel.ini".text = builtins.readFile ./config/fuzzel.ini;
".config/waybar/config".text = builtins.readFile ./config/waybar_config.json;
".config/waybar/style.css".text = builtins.readFile ./config/waybar_style.css;
# ".config/waybar/config".text = builtins.readFile ./config/waybar_config.json;
# ".config/waybar/style.css".text = builtins.readFile ./config/waybar_style.css;
".config/hyprland/wallpaper/e-villa.png" = {
source = builtins.fetchurl {
url = "https://ipfs.io/ipfs/bafybeibsjbhleghcc4zdgarmsftd6jt27rb73g3mlbuup3cmuedw54uyqa";
sha256 = "0gxa45qigjcjb12v243jv37nji5dax6rn5y6l823f0a2s2hfkqm5";
};
force = true;
};
};
services.hyprpaper.enable = true;
services.hyprpaper.settings = {
preload = [ "/home/thiago/.config/hyprland/wallpaper/hydra.jpg" ];
wallpaper = [ "HDMI-A-1,/home/thiago/.config/hyprland/wallpaper/hydra.jpg" ];
};
wayland.windowManager.hyprland = {
enable = true;
settings = {
"$mod" = "SUPER";
layerrule = "ignorezero, waybar";
layerrule =[
"ignorezero, waybar"
"blur, waybar"
];
bind = [
"$mod, q, exec, kitty"
"$mod, f, exec, firefox"
"$mod, c, killactive,"
"$mod, m, exit,"
"$mod, e, exec, $fileManager"
@ -64,9 +80,10 @@ _: {
"$mod, mouse_up, workspace, e-1"
];
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
"$mod, mouse:272, movewindow" # Hold $mod and left mouse button to move window
"$mod, mouse:273, resizewindow" # Hold $mod and right mouse button to resize window
];
bindel = [
@ -91,14 +108,12 @@ _: {
];
monitor = [
",preferred,auto,auto"
"HDMI-A-2,1920x1080@50,0x0,1"
"eDP-1,2560x1600@60,1920x0,2"
];
general = {
gaps_in = 2;
gaps_out = 3;
border_size = 1;
gaps_in = 3;
gaps_out = 6;
border_size = 0;
resize_on_border = true;
allow_tearing = false;
layout = "dwindle";
@ -106,8 +121,10 @@ _: {
decoration = {
rounding = 2;
fullscreen_opacity = 1.0;
active_opacity = 1.0;
inactive_opacity = 0.9;
inactive_opacity = 0.95;
shadow = {
enabled = true;
range = 4;
@ -116,14 +133,16 @@ _: {
};
blur = {
enabled = true;
size = 17;
passes = 1;
size = 4;
passes = 4;
vibrancy = 0.1696;
vibrancy_darkness = 0.08;
# noise = 0.002;
};
};
animations = {
enabled = "yes, please :)";
enabled = true;
bezier = [
"easeOutQuint,0.23,1,0.32,1"
"easeInOutCubic,0.65,0.05,0.36,1"
@ -131,29 +150,32 @@ _: {
"almostLinear,0.5,0.5,0.75,1.0"
"quick,0.15,0,0.1,1"
];
animation = [
"global, 1, 10, default"
"border, 1, 5.39, easeOutQuint"
"windows, 1, 4.79, easeOutQuint"
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
"windowsOut, 1, 1.49, linear, popin 87%"
"fadeIn, 1, 1.73, almostLinear"
"fadeOut, 1, 1.46, almostLinear"
"fade, 1, 3.03, quick"
"layers, 1, 3.81, easeOutQuint"
"layersIn, 1, 4, easeOutQuint, fade"
"layersOut, 1, 1.5, linear, fade"
"fadeLayersIn, 1, 1.79, almostLinear"
"border, 1, 5.39, easeOutQuint"
"windows, 1, 4.79, easeOutQuint"
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
"windowsOut, 1, 1.49, linear, popin 87%"
"fadeIn, 1, 1.73, almostLinear"
"fadeOut, 1, 1.46, almostLinear"
"fade, 1, 3.03, quick"
"layers, 1, 3.81, easeOutQuint"
"layersIn, 1, 4, easeOutQuint, fade"
"layersOut, 1, 1.5, linear, fade"
"fadeLayersIn, 1, 1.79, almostLinear"
"fadeLayersOut, 1, 1.39, almostLinear"
"workspaces, 1, 1.94, almostLinear, fade"
"workspacesIn, 1, 1.21, almostLinear, fade"
"workspaces, 1, 1.94, almostLinear, fade"
"workspacesIn, 1, 1.21, almostLinear, fade"
"workspacesOut, 1, 1.94, almostLinear, fade"
];
};
dwindle = {
pseudotile = true;
default_split_ratio = 0.618;
preserve_split = true;
smart_split = true;
};
master = {

View file

@ -17,12 +17,42 @@
loader.systemd-boot.enable = true;
loader.efi.canTouchEfiVariables = true;
};
environment.etc."libwacom/intuos4-4x6.tablet".text = ''
# Wacom
# Intuos4 Small
[Device]
Name=Wacom Intuos4 4x6
DeviceMatch=usb:056a:00b8
Class=Intuos4
Width=6
Height=4
Layout=intuos4-4x6.svg
IntegratedIn=
Styli=0x802;0x804;0x806;0x80a;0x80c;0x902;0x90a;0x100802;0x100804;0x10080a;0x10080c;0x100902;0x10090a;0x120802;0x140802;0x14080a;0x160802;0x16080a;
[Features]
Reversible=true
Stylus=true
Ring=true
Buttons=7
StatusLEDs=Ring
[Buttons]
Left=A;B;C;D;E;F;G
Ring=A
RingNumModes=4
'';
environment = {
systemPackages = with pkgs; [
act
btrfs-progs
cudatoolkit
networkmanagerapplet
libwacom
wacomtablet
gnome-tweaks
gnome-session
];
variables = {
@ -82,15 +112,26 @@
# };
dconf.enable = true;
hyprland = {
enable = true;
enable = false;
withUWSM = true;
xwayland.enable = true;
};
virt-manager.enable = true;
};
# security.pam.services.gdm.enableGnomeKeyring = true;
security.pam.services.gdm.enableGnomeKeyring = true;
security.rtkit.enable = true;
services = {
xserver = {
enable = true;
desktopManager.gnome.enable = true;
displayManager.gdm = {
enable = true;
wayland = true;
};
displayManager.defaultSession = "gnome";
};
udev.packages = [ pkgs.libwacom ];
avahi = {
enable = true;
nssmdns4 = true;
@ -109,13 +150,7 @@
flatpak.enable = true;
greetd = {
enable = true;
settings.default_session = {
command = "${pkgs.hyprland}/bin/Hyprland";
user = "thiago";
};
};
pipewire = {
enable = true;

View file

@ -2,8 +2,6 @@
{
services.xserver = {
enable = true;
xkb = {
layout = "custom-br";
variant = "";

View file

@ -39,6 +39,9 @@
];
});
};
xserver = {
videoDrivers = [ "nvidia" ];
};
};
nixpkgs.config.cudaSupport = true;
environment.systemPackages = with pkgs; [