From 42d18d89afdf5bca0c7b5d251755319d2c3aeed8 Mon Sep 17 00:00:00 2001 From: bricked Date: Thu, 28 Mar 2024 17:45:15 +0100 Subject: [PATCH] ags: add simple bar --- modules/home/ags/default.nix | 8 +++++++- modules/home/ags/src/index.ts | 5 ++++- modules/home/ags/src/widget/Bar/index.ts | 21 +++++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 modules/home/ags/src/widget/Bar/index.ts diff --git a/modules/home/ags/default.nix b/modules/home/ags/default.nix index 7e711c6..f6cfebb 100644 --- a/modules/home/ags/default.nix +++ b/modules/home/ags/default.nix @@ -1,6 +1,7 @@ { config, lib, + pkgs, ... }: with lib; let @@ -12,11 +13,16 @@ in { programs.ags = { configDir = ./.; }; - xdg.configFile."ags".recursive = true; + xdg.configFile."ags/src/style/colors.css".text = concatMapStringsSep "\n" (color: "@define-color ${color} ${colors.withHashtag.${color}};") colorNames; + + xdg.configFile."ags/src/assets/nixos-symbolic.svg".source = pkgs.fetchurl { + url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/35ebbbf01c3119005ed180726c388a01d4d1100c/logo/white.svg"; + hash = "sha256-Ed2l6i2wi/YTcWCq23bspH/t3RYp6AodykpXF1Zgccw="; + }; }; } diff --git a/modules/home/ags/src/index.ts b/modules/home/ags/src/index.ts index f403d80..dfd7406 100644 --- a/modules/home/ags/src/index.ts +++ b/modules/home/ags/src/index.ts @@ -1,4 +1,7 @@ +import Bar from "./widget/Bar"; + +App.addIcons(`${App.configDir}/src/assets`); App.config({ - windows: [], + windows: [Bar(0)], style: `${App.configDir}/src/style/global.css`, }); diff --git a/modules/home/ags/src/widget/Bar/index.ts b/modules/home/ags/src/widget/Bar/index.ts new file mode 100644 index 0000000..13113cb --- /dev/null +++ b/modules/home/ags/src/widget/Bar/index.ts @@ -0,0 +1,21 @@ +export default (monitor = 0) => Widget.Window({ + monitor, + name: `bar-${monitor}`, + anchor: ['top', 'left', 'right'], + child: Widget.CenterBox({ + startWidget: Widget.Box({ + hexpand: true, + hpack: "start", + child: Widget.Icon("nixos-symbolic"), + }), + centerWidget: Widget.Box({ + hpack: "center", + child: Widget.Label().poll(1000, self => self.label = Utils.exec("date")), + }), + endWidget: Widget.Box({ + hexpand: true, + hpack: "end", + child: Widget.Icon("nixos-symbolic"), + }), + }), +});