{ config, pkgs, lib, ...}: { options.speccon18.desktop.hyprland.enable = lib.mkEnableOption "enables specs custom hyprland setup"; config = lib.mkIf config.speccon18.desktop.hyprland.enable { programs.hyprland = { enable = true; nvidiaPatches = true; xwayland.enable = true; }; environment = { systemPackages = with pkgs; [ # libsForQt5.polkit-kde-agent libsForQt5.qt5.qtwayland qt6.full qt6.qtwayland waybar swww pw-volume rofi-wayland libnotify mako hyprland font-awesome brightnessctl grim slurp wl-clipboard ]; sessionVariables = { #Enable Wayland WLR_NO_HARDWARE_CURSORS = "1"; NIXOS_OZONE_WL = "1"; MOZ_ENABLE_WAYLAND = "1"; GTK_USE_PORTAL = "1"; NIXOS_XDG_OPEN_USE_PORTAL = "1"; SDL_VIDEODRIVER = "wayland"; # XDG_Config XDG_CURRENT_DESKTOP = "Hyprland"; XDG_SESSION_DESKTOP = "Hyprland"; XDG_SESSION_TYPE = "wayland"; XDG_CACHE_HOME = "\${HOME}/.cache"; XDG_CONFIG_HOME = "\${HOME}/.config"; XDG_BIN_HOME = "\${HOME}/.local/bin"; XDG_DATA_HOME = "\${HOME}/.local/share"; #Default Applications BROWSER = "firefox"; TERMINAL = "alacritty"; }; }; xdg.portal = { enable = true; extraPortals = [ pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-hyprland ]; }; hardware = { opengl.enable = true; nvidia.modesetting.enable = true; }; wayland.windowManager.hyprland = { # systemdIntegration = true; enable = true; extraConfig = '' $mainMod = SUPER # Application Lauch Keybinds bind = $mainMod, Return, exec, alacritty bind = $mainMod, W, exec, firefox bind = $mainMod, R, exec, rofi -show drun # Switch workspaces with mainMod + [0-9] bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 bind = $mainMod, 4, workspace, 4 bind = $mainMod, 5, workspace, 5 bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod, 0, workspace, 10 # Move active window to a workspace with mainMod + SHIFT + [0-9] bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 0, movetoworkspace, 10 bind = $mainMod, Print, exec, grim -o /home/speccon18/Pictures/$(date +'%s_grim.png') -g "$(slurp)" -t png # Startup Runners exec-once=systemctl --user start waybar.service exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once=mako exec-once = swww init monitor=,highres,auto,1 ''; }; }; }