93 lines
2.4 KiB
Nix
93 lines
2.4 KiB
Nix
{ config, pkgs, lib, ... }:
|
|
|
|
let
|
|
dbus-hyprland-environment = pkgs.writeTextFile {
|
|
name = "dbus-hyprland-environment";
|
|
destination = "/bin/dbus-hyprland-environment";
|
|
executable = true;
|
|
|
|
text = ''
|
|
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=hyprland
|
|
systemctl --user stop pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
|
|
systemctl --user start pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
|
|
'';
|
|
};
|
|
|
|
configure-gtk = pkgs.writeTextFile {
|
|
name = "configure-gtk";
|
|
destination = "/bin/configure-gtk";
|
|
executable = true;
|
|
text = let
|
|
schema = pkgs.gsettings-desktop-schemas;
|
|
datadir = "${schema}/share/gesettings/schemas/${schema.name}";
|
|
in ''
|
|
export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS
|
|
gnome_schema=org.gnome.desktop.interface
|
|
gesettings set $gnome_schema gtk-theme 'Adwaita'
|
|
'';
|
|
};
|
|
|
|
flake-compat = builtins.fetchTarball "https://github.com/edolstra/flake-compat/archive/master.tar.gz";
|
|
hyprland = (import flake-compat {
|
|
src = builtins.fetchTarball "https://github.com/vaxerski/Hyprland/archive/master.tar.gz";
|
|
}).defaultNix;
|
|
|
|
in
|
|
{
|
|
environment.systemPackages = with pkgs; [
|
|
dbus-hyprland-environment
|
|
configure-gtk
|
|
wayland
|
|
glib
|
|
gnome3.adwaita-icon-theme
|
|
grim
|
|
wl-clipboard
|
|
bemenu
|
|
wlr-randr
|
|
wofi
|
|
];
|
|
|
|
services.dbus.enable = true;
|
|
xdg.portal = {
|
|
enable = true;
|
|
wlr.enable = true;
|
|
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
|
gtkUsePortal = true;
|
|
};
|
|
|
|
programs.hyprland.enable = true;
|
|
programs.xwayland.enable = true;
|
|
|
|
environment.sessionVariables = rec {
|
|
GBM_BACKEND = "nvidia-drm";
|
|
__GL_GSYNC_ALLOWED = "0";
|
|
__GL_VRR_ALLOWED = "0";
|
|
WLR_DRM_NO_ATOMIC = "1";
|
|
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
|
|
|
# Will break SDDM if running X11
|
|
QT_QPA_PLATFORM = "wayland";
|
|
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
|
|
|
GDK_BACKEND = "wayland";
|
|
WLR_NO_HARDWARE_CURSORS = "1";
|
|
MOZ_ENABLE_WAYLAND = "1";
|
|
};
|
|
|
|
services.greetd = {
|
|
enable = true;
|
|
settings = rec {
|
|
initial_session = {
|
|
command = "Hyprland";
|
|
user = "notoh";
|
|
};
|
|
default_session = initial_session;
|
|
};
|
|
};
|
|
|
|
environment.etc."greetd/environments".text = ''
|
|
Hyprland
|
|
'';
|
|
|
|
|
|
}
|