Files
hyprlua/flake.nix
T
Nina Chlóe Kassandra Reiß 4d0693c47e Only provide config to home-manager
2026-07-26 19:54:47 +02:00

105 lines
2.3 KiB
Nix

{
description = "Hyprland test wrapper from nixpkgs only";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
};
outputs =
{ self, nixpkgs, ... }:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = false;
};
hypr = pkgs.hyprland;
configDir = pkgs.lib.cleanSource ./.;
configFile = "${configDir}/hyprland.lua";
runtimePackages = with pkgs; [
wofi
grim
swaynotificationcenter
hyprpaper
lxsession
hyprlock
hyprshot
wayvnc
pamixer
pavucontrol
brightnessctl
python313Packages.requests
networkmanagerapplet
swaybg
quickshell
waybar
blueman
];
runtimePath = pkgs.lib.makeBinPath runtimePackages;
verifyScript = pkgs.writeShellScript "hyprland-verify" ''
export PATH=${runtimePath}:$PATH
exec ${hypr}/bin/Hyprland --config ${configFile} --verify-config
'';
runScript = pkgs.writeShellScript "hyprland-run" ''
export PATH=${runtimePath}:$PATH
exec ${hypr}/bin/Hyprland --config ${configFile}
'';
startScript = pkgs.writeShellScript "start-hyprland" ''
export PATH=${runtimePath}:$PATH
export XDG_CONFIG_HOME=${configDir}
exec ${hypr}/bin/start-hyprland --config ${configFile}
'';
in
{
homeManagerModules.default =
{ pkgs, ... }:
{
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
configType = "lua";
extraConfig = "";
};
programs.waybar.enable = true;
xdg.configFile."hypr" = {
source = configDir;
recursive = true;
};
};
apps.${system} = {
default = {
type = "app";
program = "${verifyScript}";
};
run = {
type = "app";
program = "${runScript}";
};
start-hyprland = {
type = "app";
program = "${startScript}";
};
};
packages.${system}.default = pkgs.runCommand "hyprland-config-check" { } ''
${verifyScript}
touch $out
'';
};
}