hyprland is giving me so much shit

This commit is contained in:
RingOfStorms (Joshua Bell) 2025-08-31 00:58:34 -05:00
parent 85b427cb12
commit 00a045d0c1
6 changed files with 65 additions and 34 deletions

View file

@ -59,7 +59,6 @@ with lib;
gnome-tweaks
wayland
wayland-utils
# xwayland
wl-clipboard
numix-cursor-theme
gnomeExtensions.vertical-workspaces

View file

@ -70,8 +70,10 @@ with lib;
wl-clipboard
wl-clip-persist
wofi # application launcher
nemo # file manager
feh # image viewer
nemo # file manager (x11)
# nautilus # file manager
feh # image viewer (x11)
# imv # image viewer
networkmanager # network management
upower # power management
brightnessctl # screen/keyboard brightness control
@ -91,13 +93,26 @@ with lib;
programs.hyprland = {
enable = true;
# xwayland.enable = true;
# xwayland.enable = false;
withUWSM = true;
# set the flake package
package = hyprlandPkgs.hyprland;
# make sure to also set the portal package, so that they are in sync
portalPackage = hyprlandPkgs.xdg-desktop-portal-hyprland;
# This is set below now in xdf portal directly so we can also add things like gtk
# portalPackage = hyprlandPkgs.xdg-desktop-portal-hyprland;
};
xdg.portal = {
enable = true;
extraPortals = lib.mkForce [
hyprlandPkgs.xdg-desktop-portal-hyprland
hyprlandPkgs.xdg-desktop-portal-gtk
];
config.common.default = [
"hyprland"
"gtk"
];
};
hardware.graphics = {
@ -110,14 +125,20 @@ with lib;
# Environment variables
environment.sessionVariables = {
NIXOS_OZONE_WL = "1";
GTK_THEME = "Adwaita:dark";
XDG_SESSION_TYPE = "wayland";
XDG_CURRENT_DESKTOP = "Hyprland";
XDG_SESSION_DESKTOP = "Hyprland";
ELECTRON_OZONE_PLATFORM_HINT = "wayland";
CLUTTER_BACKEND = "wayland";
WLR_RENDERER = "vulkan";
# Tell apps to run native wayland
NIXOS_OZONE_WL = "1";
ELECTRON_OZONE_PLATFORM_HINT = "wayland";
GDK_BACKEND = "wayland,x11"; # GTK
QT_QPA_PLATFORM = "wayland;xcb"; # Qt 5/6
MOZ_ENABLE_WAYLAND = "1"; # Firefox
SDL_VIDEODRIVER = "wayland"; # SDL apps/games
CLUTTER_BACKEND = "wayland"; # You already have this
};
# Qt theming

View file

@ -16,13 +16,17 @@ in
{
wayland.windowManager.hyprland = {
enable = true;
plugins = with hyprlandPkgs.hyprlandPlugins; [
hyprspace
];
xwayland.enable = osConfig.programs.hyprland.xwayland.enable;
# plugins = with hyprlandPkgs.hyprlandPlugins; [
# hyprspace
# ];
settings = lib.attrsets.recursiveUpdate {
# Debug logs enabled when this is uncommented
"debug:disable_logs" = false;
debug.disable_logs = false;
debug.disable_time = false;
exec-once = [ "pgrep waybar>/dev/null || waybar" ];
# Default monitor configuration
monitor = "monitor = , preferred, auto, 1";
@ -144,7 +148,7 @@ in
bindr = [
# overview
"$mainMod, SUPER_L, overview:toggle"
# "$mainMod, SUPER_L, overview:toggle" $ hyprspace plugin
"$mainMod SHIFT, R, exec, systemctl --user restart hyprpanel.service"
];

View file

@ -32,14 +32,16 @@ in
global = {
Context.sockets = [
"wayland"
"x11"
"fallback-x11"
];
Environment = {
XCURSOR_PATH = "/run/host/user-share/icons:/run/host/share/icons";
GTK_THEME = "Adwaita:dark";
# Force wayland as much as possible.
ELECTRON_OZONE_PLATFORM_HINT = "wayland"; # or 'auto'
ELECTRON_OZONE_PLATFORM_HINT = "auto"; # or 'auto'
GTK_USE_PORTAL = "1";
OZONE_PLATFORM = "wayland";
};
};
"org.signal.Signal" = {
@ -52,6 +54,11 @@ in
];
};
};
"com.google.Chrome" = {
Environment = {
CHROME_EXTRA_ARGS = "--enable-features=WaylandWindowDecorations --ozone-platform-hint=auto";
};
};
};
};
};

View file

@ -114,7 +114,7 @@
enable = true;
packages = [
"org.signal.Signal"
"com.discordapp.Discord"
"dev.vencord.Vesktop"
"md.obsidian.Obsidian"
"com.spotify.Client"
"org.videolan.VLC"

View file

@ -123,23 +123,23 @@ in
ringofstorms_common.desktopEnvironment.hyprland.extraOptions = hyprlandExtraOptions;
# User-level systemd service that follows your Hyprland session and watches for monitor changes
systemd.user.services.hyprland-move-workspaces = {
description = "Keep workspaces 16 on main and 710 on secondary; react to monitor changes";
# Start/stop with Hyprland specifically
wantedBy = [ "hyprland-session.target" ];
after = [ "hyprland-session.target" ];
partOf = [ "hyprland-session.target" ];
bindsTo = [ "hyprland-session.target" ];
# Only start once Hyprland's event socket exists
unitConfig.ConditionPathExistsGlob = "%t/hypr/*/.socket2.sock";
serviceConfig = {
Type = "simple";
ExecStart = "${moveScript}/bin/hyprland-move-workspaces";
Restart = "always";
RestartSec = "2s";
};
};
# systemd.user.services.hyprland-move-workspaces = {
# description = "Keep workspaces 16 on main and 710 on secondary; react to monitor changes";
#
# # Start/stop with Hyprland specifically
# wantedBy = [ "hyprland-session.target" ];
# after = [ "hyprland-session.target" ];
# partOf = [ "hyprland-session.target" ];
# bindsTo = [ "hyprland-session.target" ];
# # Only start once Hyprland's event socket exists
# unitConfig.ConditionPathExistsGlob = "%t/hypr/*/.socket2.sock";
#
# serviceConfig = {
# Type = "simple";
# ExecStart = "${moveScript}/bin/hyprland-move-workspaces";
# Restart = "always";
# RestartSec = "2s";
# };
# };
};
}