{ config, pkgs, lib, ... }: let flake-compat = builtins.fetchTarball "https://github.com/edolstra/flake-compat/archive/master.tar.gz"; hyprland = (import flake-compat { src = builtins.fetchTarball "https://github.com/hyprwm/Hyprland/archive/master.tar.gz"; }).defaultNix; wlogout_style_base = dots/wlogout/style.css; wlogout_style = pkgs.runCommandLocal "wlogout_style_base" {wlogpath = lib.strings.escape ["/"] "${pkgs.wlogout}";} '' cp ${wlogout_style_base} $out sed -i "s/\/usr\/share\/wlogout/$wlogpath\/share\/wlogout/g" $out sed -i "s/\/etc\/wlogout/$wlogpath\/etc\/wlogout/g" $out ''; in { imports = [ hyprland.homeManagerModules.default ../foreign/dotfiles/home/programs/eww/default.nix ../foreign/dotfiles/modules/regreet.nix ]; nixpkgs.overlays = [ (self: super: { kwin-system76-scheduler-integration = pkgs.libsForQt5.callPackage ../system/syspkgs/kwin-system76-scheduler-integration.nix {}; hyprland-s76 = pkgs.callPackage ../system/syspkgs/hyprland-system76-scheduler-integration.nix {}; swayosd = pkgs.callPackage ./homepkgs/swayosd.nix {}; }) ]; programs.eww-hyprland = { enable = true; colors = builtins.readFile dots/eww/colors.scss; }; home.username = "bolt"; home.homeDirectory = "/home/bolt"; home.packages = with pkgs; [ zellij xonotic nicotine-plus glib # for gsettings fuzzel grim slurp swaybg wlogout wf-recorder libnotify xorg.xrdb swayidle swaynotificationcenter swayosd playerctl ]; xdg.configFile = builtins.mapAttrs (name: value: { enable=true; text=builtins.readFile value; }) { "wlogout/layout" = dots/wlogout/layout; "wlogout/style.css" = wlogout_style; "swaync/config.json" = dots/swaync/config.json; "swaync/configSchema.json" = dots/swaync/configSchema.json; "swaync/style.css" = dots/swaync/style.css; "fuzzel/fuzzel.ini" = dots/fuzzel/fuzzel.ini; }; wayland.windowManager.hyprland = { enable = true; systemdIntegration = true; nvidiaPatches = true; xwayland = { enable = true; hidpi = false; }; recommendedEnvironment = true; extraConfig = builtins.readFile dots/hyprland/hyprland.conf; }; systemd.user.startServices = true; systemd.user.services."com.system76.Scheduler.dbusproxy" = { Unit = { Description = "the system76 process scheduler kwin dbus proxy"; Requires = [ "dbus.service" ]; }; Install = { WantedBy = [ "graphical-session.target" "default.target" ]; }; Service = { ExecStart = ''${pkgs.kwin-system76-scheduler-integration}/bin/kwin-system76-scheduler-dbus-proxy.sh''; }; }; systemd.user.services."hyprland-system76" = { Unit = { Description = "the hyprland process scheduler hook"; Requires = [ "dbus.service" ]; }; Install = { WantedBy = [ "graphical-session.target" "default.target" ]; }; Service = { ExecStart = ''${pkgs.hyprland-s76}/bin/hyprland-system76-scheduler-hook.sh''; }; }; }