Files
Aurora/config/aurora/default.nix
2026-04-12 20:57:10 -05:00

130 lines
3.2 KiB
Nix

{ self, inputs, ... }: {
imports = [
inputs.home-manager.flakeModules.home-manager
];
perSystem = { self', pkgs, system, ... }: {
packages = {
aurora = pkgs.writeShellScriptBin "aurora" ''
${pkgs.quickshell}/bin/quickshell "''$@"
'';
aurora-dots = pkgs.stdenv.mkDerivation {
name = "aurora-dots";
src = ./.;
buildInputs = [];
buildPhase = ''
'';
installPhase = ''
mkdir -p $out/share
cp -r $src/* $out/share
'';
};
default = self'.packages.aurora;
};
};
flake.nixosModules.default = { config, lib, pkgs, ... }: {
config = {
services = {
upower.enable = true;
gvfs.enable = true;
power-profiles-daemon.enable = true;
};
environment.etc."pam.d/aurora-lock.conf".text = ''
auth required pam_unix.so
'';
};
};
flake.homeModules.default = { config, lib, pkgs, ... }: {
options.programs.aurora = with lib; {
enable = mkEnableOption "aurora";
package = mkPackageOption self.packages.${pkgs.stdenv.hostPlatform.system} "aurora" {
default = [ "aurora" ];
example = ''aurora.packages."x86_64-linux".hybar'';
};
systemd = {
enable = mkEnableOption "aurora systemd unit";
target = mkOption {
type = types.str;
default = "hyprland-session.target";
};
};
settings = mkOption {
type = types.attrsOf types.str;
default = {};
};
};
config = let
cfg = config.programs.aurora;
system = pkgs.stdenv.hostPlatform.system;
pkgs-a = import inputs.nixpkgs { inherit system; };
in {
home.packages = with pkgs-a; [
awww
mpvpaper
bluez
bluez-tools
brightnessctl
hyprpicker
hyprsunset
wf-recorder
self.packages.${system}.aurora-set-wallpaper
];
programs.quickshell = {
enable = cfg.enable;
package = cfg.package;
activeConfig = "aurora";
configs = {
default = "${self.packages.${system}.aurora-dots}/share";
aurora = "${self.packages.${system}.aurora-dots}/share";
hybar = "${self.packages.${system}.hybar-dots}/share";
};
systemd = {
enable = cfg.systemd.enable;
target = cfg.systemd.target;
};
};
home.file.".config/aurora/settings.json".text = builtins.toJSON cfg.settings;
systemd.user.services.quickshell.Service.Environment = [ "AURORA_SETTINGS=${config.home.homeDirectory}/${config.home.file.".config/aurora/settings.json".target}" ];
};
};
}