refactor(ags): remove unneeded agsV1 stuff

This commit is contained in:
matt1432 2024-11-12 16:55:57 -05:00
parent c20ec51142
commit ab8bb48feb
137 changed files with 184 additions and 10725 deletions
nixosModules/desktop

View file

@ -36,14 +36,6 @@ in {
'';
};
ags.enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether we want to enable AGS for the DE shell.
'';
};
ags-v2.enable = mkOption {
type = types.bool;
default = false;
@ -92,6 +84,14 @@ in {
};
displayManager = {
enable = mkOption {
type = types.bool;
default = true;
description = ''
Whether we want to enable the Display Manager.
'';
};
duplicateScreen = mkOption {
type = types.bool;
description = ''

View file

@ -7,7 +7,6 @@ self: {
inherit (self.inputs) hyprgrass hyprland hyprland-plugins;
in {
imports = [
(import ../../ags self)
(import ../../ags-v2 self)
./modules/dconf.nix

View file

@ -46,7 +46,6 @@ in {
hyprgrass-bind = [
", edge:u:d, exec, ags request 'open win-applauncher'"
", edge:d:u, exec, ags request 'osk open'"
", swipe:3:d, exec, hyprctl dispatch hyprexpo:expo on"
];
hyprgrass-bindm = [", longpress:2, movewindow"];
};

View file

@ -12,19 +12,8 @@
hmCfg = config.home-manager.users.${cfg.user};
hyprPkg = hmCfg.wayland.windowManager.hyprland.finalPackage;
lockPkg =
if cfg.ags.enable
then
pkgs.writeShellApplication {
name = "lock";
runtimeInputs = [hmCfg.programs.ags.finalPackage];
text = ''
ags -r 'Tablet.setLaptopMode()'
ags -b lockscreen -c /home/${cfg.user}/.config/ags/lockscreen.js
'';
}
else hmCfg.programs.ags-v2.lockPkg;
# See nixosModules/ags-v2/packages.nix
lockPkg = hmCfg.programs.ags-v2.lockPkg;
runInDesktop = pkgs.writeShellApplication {
name = "runInDesktop";

View file

@ -3,62 +3,24 @@ self: {
lib,
pkgs,
...
}: let
# TODO: clean this up
inherit (self.inputs) agsV2 gtk-session-lock;
in {
}: {
config = let
# Libs
inherit (lib) attrValues boolToString removeAttrs;
inherit (lib) removePrefix;
# Cfg info
inherit (config.networking) hostName;
cfgDesktop = config.roles.desktop;
cfg = config.roles.desktop;
hmCfg = config.home-manager.users.${cfg.user};
# Astal libraries
gtkSessionLock = gtk-session-lock.packages.${pkgs.system}.default;
agsV2Packages = agsV2.packages.${pkgs.system};
astalLibs = attrValues (removeAttrs agsV2.inputs.astal.packages.${pkgs.system} ["docs" "gjs"]) ++ [gtkSessionLock];
# Final ags package
agsFull = agsV2Packages.ags.override {extraPackages = astalLibs;};
ags = hmCfg.programs.ags-v2.package;
hyprland = hmCfg.wayland.windowManager.hyprland.finalPackage;
agsConfig = let
tsconfig = pkgs.writers.writeJSON "tsconfig.json" {
"$schema" = "https://json.schemastore.org/tsconfig";
"compilerOptions" = {
"experimentalDecorators" = true;
"strict" = true;
"target" = "ES2023";
"moduleResolution" = "Bundler";
"jsx" = "react-jsx";
"jsxImportSource" = "${agsV2Packages.gjs}/share/astal/gjs/gtk3";
"paths" = {
"astal" = ["${agsV2Packages.gjs}/share/astal/gjs"];
"astal/*" = ["${agsV2Packages.gjs}/share/astal/gjs/*"];
};
"skipLibCheck" = true;
"module" = "ES2022";
"lib" = ["ES2023"];
};
};
homeFiles = config.home-manager.users.${cfg.user}.home.file;
agsDir = "${removePrefix "/home/${cfg.user}/" config.environment.variables.FLAKE}/nixosModules/ags-v2/config";
varsTs =
pkgs.writeText "vars.ts"
# javascript
''
export default {
mainMonitor: '${cfgDesktop.mainMonitor}',
dupeLockscreen: ${boolToString cfgDesktop.displayManager.duplicateScreen},
hasFprintd: ${boolToString (hostName == "wim")},
};
'';
flakeDir = config.environment.variables.FLAKE;
modulesDir = "${lib.removePrefix "/home/${cfg.user}/" flakeDir}/nixosModules";
nodeModules =
config.home-manager.users.${cfg.user}.home.file."${modulesDir}/ags/config/node_modules".source
or config.home-manager.users.${cfg.user}.home.file."${modulesDir}/ags-v2/config/node_modules".source;
nodeModules = homeFiles."${agsDir}/node_modules".source;
tsconfig = homeFiles."${agsDir}/tsconfig.json".source;
varsTs = homeFiles."${agsDir}/widgets/lockscreen/vars.ts".source;
in
pkgs.runCommandLocal "agsConfig" {} ''
cp -ar ${tsconfig} ./tsconfig.json
@ -66,21 +28,18 @@ in {
chmod +w -R ./.
cp -ar ${varsTs} ./widgets/lockscreen/vars.ts
cp -ar ${nodeModules} ./node_modules
${agsFull}/bin/ags bundle ./app.ts $out
${ags}/bin/ags bundle ./app.ts $out
'';
cfg = config.roles.desktop;
hyprland =
config
.home-manager
.users
.${cfg.user}
.wayland
.windowManager
.hyprland
.finalPackage;
in {
assertions = [
{
assertion = cfg.ags-v2.enable;
message = ''
The Display Manager requires AGSv2 to be enabled.
'';
}
];
# Add home folder for home-manager to work
users.users.greeter = {
home = "/var/lib/greeter";
@ -95,7 +54,7 @@ in {
name = "agsGreeter";
runtimeInputs = [
agsFull
ags
hyprland
];

View file

@ -1,5 +1,6 @@
self: {
config,
lib,
pkgs,
...
}: {
@ -9,6 +10,8 @@ self: {
];
config = let
inherit (lib) mkIf;
cfg = config.roles.desktop;
hyprland =
@ -26,30 +29,31 @@ self: {
trap 'systemctl --user stop hyprland-session.target; sleep 1' EXIT
exec Hyprland >/dev/null
'');
in {
services = {
displayManager.sessionPackages = [hyprland];
in
mkIf cfg.displayManager.enable {
services = {
displayManager.sessionPackages = [hyprland];
greetd = {
enable = true;
settings = {
default_session = {
command = cmd;
user = "greeter";
};
greetd = {
enable = true;
settings = {
default_session = {
command = cmd;
user = "greeter";
};
initial_session = {
command = cmd;
user = cfg.user;
initial_session = {
command = cmd;
user = cfg.user;
};
};
};
};
};
# unlock GPG keyring on login
services.gnome.gnome-keyring.enable = true;
security.pam.services.greetd.enableGnomeKeyring = true;
};
# unlock GPG keyring on login
services.gnome.gnome-keyring.enable = true;
security.pam.services.greetd.enableGnomeKeyring = true;
};
# For accurate stack trace
_file = ./default.nix;