Maybe fix hyprland.

This commit is contained in:
ediblerope 2026-05-13 22:40:54 +01:00
parent e94f417cff
commit 38ef4c59f1

View file

@ -1,12 +1,38 @@
# settings/hyprland.nix # settings/hyprland.nix
{ config, pkgs, lib, inputs, ... }: { config, pkgs, lib, inputs, ... }:
let
hyprland-pkgs = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system};
hyprutils = hyprland-pkgs.hyprutils;
# hyprutils-0.13.1 was compiled with GCC 15 (requires GLIBCXX_3.4.34) but
# its RPATH was patched to gcc-14.3.0-lib which only goes to GLIBCXX_3.4.33.
# Locate gcc-15's libstdc++ from hyprutils's own runtime closure so the
# version is always in sync with whatever hyprland shipped.
gcc15-lib = lib.head (lib.filter
(p: lib.hasInfix "gcc-15" p && lib.hasSuffix "-lib" p)
(lib.splitString "\n"
(lib.removeSuffix "\n"
(builtins.readFile (pkgs.writeReferencesToFile hyprutils)))));
hyprland-wrapped = pkgs.symlinkJoin {
name = hyprland-pkgs.hyprland.name;
paths = [ hyprland-pkgs.hyprland ];
nativeBuildInputs = [ pkgs.makeWrapper ];
postBuild = ''
wrapProgram $out/bin/start-hyprland \
--set LD_PRELOAD "${gcc15-lib}/lib/libstdc++.so.6"
wrapProgram $out/bin/Hyprland \
--set LD_PRELOAD "${gcc15-lib}/lib/libstdc++.so.6"
'';
};
in
{ {
config = lib.mkIf (config.networking.hostName == "FredOS-Gaming") { config = lib.mkIf (config.networking.hostName == "FredOS-Gaming") {
programs.hyprland = { programs.hyprland = {
enable = true; enable = true;
xwayland.enable = true; xwayland.enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; package = hyprland-wrapped;
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; portalPackage = hyprland-pkgs.xdg-desktop-portal-hyprland;
}; };
xdg.portal = { xdg.portal = {
@ -58,7 +84,7 @@
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
systemd.variables = [ "--all" ]; systemd.variables = [ "--all" ];
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; package = hyprland-wrapped;
settings = { settings = {
monitor = "DP-2,3440x1440@180,0x0,1"; monitor = "DP-2,3440x1440@180,0x0,1";