diff --git a/app.ts b/app.ts index 83217ef..f1aaa3e 100644 --- a/app.ts +++ b/app.ts @@ -1,10 +1,11 @@ -import { App } from "astal/gtk3" -import style from "./style.scss" -import Bar from "./widget/Bar" +import { App } from "astal/gtk3"; +import style from "./style.scss"; +import Bar from "./widget/Bar"; +import Agenda from "./widget/Agenda"; App.start({ - css: style, - main() { - App.get_monitors().map(Bar) - }, -}) + css: style, + main() { + App.get_monitors().map(Agenda); + }, +}); diff --git a/flake.nix b/flake.nix index 21f31c9..dac0a54 100644 --- a/flake.nix +++ b/flake.nix @@ -24,7 +24,7 @@ pane name="command" pane command="bash" { name "ags" - args "-c" "ags run ./app.ts" + args "-c" "wgo -file=.ts -file=.tsx -xfile=.d.ts -file=.scss ags run ./app.ts" } } } @@ -33,8 +33,10 @@ zellij --layout ${layout} attach --create ags ''; devStopScript = pkgs.writeShellScriptBin "dev-stop" '' + killall gjs || true zellij delete-session --force ags || true ''; + agsPkg = ags.packages.${system}; in { packages.${system} = { @@ -46,6 +48,7 @@ # additional libraries and executables to add to gjs' runtime extraPackages = [ + agsPkg.hyprland # ags.packages.${system}.battery # pkgs.fzf ]; @@ -58,12 +61,15 @@ devRunScript devStopScript pkgs.zellij + pkgs.typescript + pkgs.wgo # includes all Astal libraries # ags.packages.${system}.agsFull # includes astal3 astal4 astal-io by default (ags.packages.${system}.default.override { extraPackages = [ + agsPkg.hyprland # cherry pick packages ]; }) diff --git a/widget/Agenda.tsx b/widget/Agenda.tsx new file mode 100644 index 0000000..d43da4c --- /dev/null +++ b/widget/Agenda.tsx @@ -0,0 +1,19 @@ +import { App, Astal, Gtk, Gdk } from "astal/gtk3"; +import { exec, Variable } from "astal"; + +const agenda = exec(["gcalcli", "agenda", "--tsv", "--details=end"]); + +export default function Agenda(gdkmonitor: Gdk.Monitor) { + agenda.split("\n").map(console.log); + return ( + + {agenda} + + ); +} diff --git a/widget/Bar.tsx b/widget/Bar.tsx index ed1d845..baa3412 100644 --- a/widget/Bar.tsx +++ b/widget/Bar.tsx @@ -1,29 +1,30 @@ -import { App, Astal, Gtk, Gdk } from "astal/gtk3" -import { Variable } from "astal" +import { App, Astal, Gtk, Gdk } from "astal/gtk3"; +import { Variable } from "astal"; -const time = Variable("").poll(1000, "date") +const time = Variable("").poll(1000, "date"); export default function Bar(gdkmonitor: Gdk.Monitor) { - return - - - - - + return ( + + + + + + + ); }