From d1d4a63d4473cd4910b678cf5b385f622186fbd3 Mon Sep 17 00:00:00 2001 From: BossCode45 Date: Thu, 19 Dec 2024 15:00:45 +1300 Subject: feat: Added IPC client side to main binary Updated command line arguments to use `getopt_long' Made it so both -v and --version work Made it so that if you give it non recognised arguments they are sent through the socket to the running window manager if possible. --- nix/hm-module.nix | 20 ++++++++++++++++++++ nix/module.nix | 26 ++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 nix/hm-module.nix create mode 100644 nix/module.nix (limited to 'nix') diff --git a/nix/hm-module.nix b/nix/hm-module.nix new file mode 100644 index 0000000..87b47f2 --- /dev/null +++ b/nix/hm-module.nix @@ -0,0 +1,20 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.xsession.windowManager.YATwm; +in + +{ + options.xsession.windowManager.YATwm = { + enable = mkEnableOption "YATwm"; + package = mkPackageOption pkgs null { }; + }; + + config = mkIf cfg.enable { + home.packages = [ cfg.package ]; + xsession.windowManager.command = "${cfg.package}/bin/YATwm"; + xsession.enable = true; + }; +} diff --git a/nix/module.nix b/nix/module.nix new file mode 100644 index 0000000..829c26d --- /dev/null +++ b/nix/module.nix @@ -0,0 +1,26 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.xserver.windowManager.YATwm; +in + +{ + options.services.xserver.windowManager.YATwm = { + enable = mkEnableOption "YATwm"; + + package = mkPackageOption pkgs null { }; + }; + + config = mkIf cfg.enable { + services.xserver.windowManager.session = [{ + name = "YATwm"; + start = '' + ${cfg.package}/bin/YATwm & + waitPID=$! + ''; + }]; + environment.systemPackages = [ cfg.package ]; + }; +} -- cgit v1.2.3