diff --git a/flake.lock b/flake.lock
index 4720fdf5..6e6bda9e 100644
--- a/flake.lock
+++ b/flake.lock
@@ -3,14 +3,15 @@
"ags": {
"inputs": {
"astal": "astal",
+ "gnim": "gnim",
"nixpkgs": "nixpkgs"
},
"locked": {
- "lastModified": 1744557573,
- "narHash": "sha256-XAyj0iDuI51BytJ1PwN53uLpzTDdznPDQFG4RwihlTQ=",
+ "lastModified": 1751930350,
+ "narHash": "sha256-hBIrzyrwG3XjeNyzVNWKDX+yYVlpwAqf9ovgF7qecug=",
"owner": "aylur",
"repo": "ags",
- "rev": "3ed9737bdbc8fc7a7c7ceef2165c9109f336bff6",
+ "rev": "22f37ccb0db58d9d8a11ad0054ab20ecfad005ad",
"type": "github"
},
"original": {
@@ -27,11 +28,11 @@
]
},
"locked": {
- "lastModified": 1742571008,
- "narHash": "sha256-5WgfJAeBpxiKbTR/gJvxrGYfqQRge5aUDcGKmU1YZ1Q=",
+ "lastModified": 1751126708,
+ "narHash": "sha256-AodIKw7TmI7rHVcOfEsO82stupMYIMVQeLAUQfVxnkU=",
"owner": "aylur",
"repo": "astal",
- "rev": "dc0e5d37abe9424c53dcbd2506a4886ffee6296e",
+ "rev": "ac90f09385a2295da9fdc108aaba4a317aaeacc7",
"type": "github"
},
"original": {
@@ -122,6 +123,22 @@
"url": "https://git.thomasave.be/thomasave/fzgo.git"
}
},
+ "gnim": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1751928958,
+ "narHash": "sha256-vQY2L+Hnp6F1MHFa3UbMft1goGw3iODI5M+96Z7P+9Q=",
+ "owner": "aylur",
+ "repo": "gnim",
+ "rev": "9bffa83f52f711b13e3c139454623a9aea4f5552",
+ "type": "github"
+ },
+ "original": {
+ "owner": "aylur",
+ "repo": "gnim",
+ "type": "github"
+ }
+ },
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -129,11 +146,11 @@
]
},
"locked": {
- "lastModified": 1748925027,
- "narHash": "sha256-BJ0qRIdvt5aeqm3zg/5if7b5rruG05zrSX3UpLqjDRk=",
+ "lastModified": 1751990210,
+ "narHash": "sha256-krWErNDl9ggMLSfK00Q2BcoSk3+IRTSON/DiDgUzzMw=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "cb809ec1ff15cf3237c6592af9bbc7e4d983e98c",
+ "rev": "218da00bfa73f2a61682417efe74549416c16ba6",
"type": "github"
},
"original": {
@@ -165,11 +182,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1743583204,
- "narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=",
+ "lastModified": 1751792365,
+ "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434",
+ "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
"type": "github"
},
"original": {
@@ -197,11 +214,11 @@
},
"nixpkgs_3": {
"locked": {
- "lastModified": 1748693115,
- "narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
+ "lastModified": 1751792365,
+ "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc",
+ "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
"type": "github"
},
"original": {
@@ -213,11 +230,11 @@
},
"nixpkgs_4": {
"locked": {
- "lastModified": 1748693115,
- "narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
+ "lastModified": 1751792365,
+ "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc",
+ "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
"type": "github"
},
"original": {
@@ -246,15 +263,14 @@
"nur": {
"inputs": {
"flake-parts": "flake-parts_2",
- "nixpkgs": "nixpkgs_4",
- "treefmt-nix": "treefmt-nix"
+ "nixpkgs": "nixpkgs_4"
},
"locked": {
- "lastModified": 1748943257,
- "narHash": "sha256-44lxtii7wjgu/rEsE5PD3uVbjn52ASUT4vAB0RiL1Jg=",
+ "lastModified": 1752056583,
+ "narHash": "sha256-dtBwaZET1p20izsqoIDnx7BzU25t7AwaoVmnCgv9kqw=",
"owner": "nix-community",
"repo": "NUR",
- "rev": "33a35d4d8e1f6c01c4bd10aae0f3ac3e085e1737",
+ "rev": "9db2aa1b8673461fef354c788abe40e0973b0427",
"type": "github"
},
"original": {
@@ -274,27 +290,6 @@
"worktimer": "worktimer"
}
},
- "treefmt-nix": {
- "inputs": {
- "nixpkgs": [
- "nur",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1733222881,
- "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
- "owner": "numtide",
- "repo": "treefmt-nix",
- "rev": "49717b5af6f80172275d47a418c9719a31a78b53",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "treefmt-nix",
- "type": "github"
- }
- },
"worktimer": {
"inputs": {
"flake-parts": "flake-parts_3",
diff --git a/home/Aloria.nix b/home/Aloria.nix
index 327bc9cc..be1ad01d 100644
--- a/home/Aloria.nix
+++ b/home/Aloria.nix
@@ -45,9 +45,9 @@ in
wayland.windowManager.hyprland.settings = {
monitor = [
- "eDP-1,2880x1800@120.00Hz,0x0,1.2"
- "DP-1,3840x2160@60.00Hz,0x-2160,1"
- "HDMI-A-1,3840x2160@60.00Hz,0x-2160,1"
+ "eDP-1,2880x1800@120.00Hz,0x284,1.2,vrr,1"
+ "DP-1,1920x1080,6240x500,1"
+ "HDMI-A-1,3840x2160@60.00Hz,2400x0,1"
];
bind = [
", XF86PowerOff, exec, ${pkgs.rofi}/bin/rofi -show power-menu -modi power-menu:${
diff --git a/home/ags/default.nix b/home/ags/default.nix
index 472f2600..ee04d108 100644
--- a/home/ags/default.nix
+++ b/home/ags/default.nix
@@ -2,7 +2,6 @@
{
# add the home manager module
imports = [ inputs.ags.homeManagerModules.default ];
-
programs.ags = {
enable = true;
@@ -10,8 +9,8 @@
extraPackages = with inputs.ags.packages.${pkgs.system}; [
pkgs.gtksourceview
- pkgs.webkitgtk
pkgs.accountsservice
+ pkgs.libadwaita
battery
hyprland
diff --git a/home/ags/files/Bar.tsx b/home/ags/files/Bar.tsx
index bbdd9b0d..e02afdb8 100644
--- a/home/ags/files/Bar.tsx
+++ b/home/ags/files/Bar.tsx
@@ -1,11 +1,15 @@
-import { App, Astal, Gdk, Gtk, Widget } from "astal/gtk3";
-import { GLib, Variable, bind } from "astal";
+import { Astal, Gdk } from "ags/gtk4";
+import app from "ags/gtk4/app"
+import Gtk from "gi://Gtk?version=4.0"
+import { createBinding, createState, For, With, Accessor } from "ags"
+import { createPoll } from "ags/time"
import Tray from "gi://AstalTray";
-import { execAsync } from "astal/process"
+import { execAsync } from "ags/process"
import Hyprland from "gi://AstalHyprland";
import { getIconName } from "./utils";
import Wp from "gi://AstalWp"
import Battery from "gi://AstalBattery"
+import GLib from "gi://GLib";
const battery = Battery.get_default()
const sensorsAvailable = await execAsync(['sensors']).then(() => true).catch(() => false);
@@ -13,28 +17,35 @@ const wirePlumber = Wp.get_default();
function SysTray(): JSX.Element {
const tray = Tray.get_default();
+ let items = createBinding(tray, "items");
+ const init = (btn: Gtk.MenuButton, item: Tray.TrayItem) => {
+ btn.menuModel = item.menuModel
+ btn.insert_action_group("dbusmenu", item.actionGroup)
+ item.connect("notify::action-group", () => {
+ btn.insert_action_group("dbusmenu", item.actionGroup)
+ })
+ }
return (
- {bind(tray, "items").as((items) =>
- items.map((item) => {
- if (item.iconThemePath) App.add_icons(item.iconThemePath);
+
+ {(item: Tray.TrayItem) => {
+ if (item.iconThemePath) app.add_icons(item.iconThemePath);
return (
["dbusmenu", ag])}
- menuModel={bind(item, "menuModel")}>
-
+ $={(self) => init(self, item)}
+ class="systray"
+ tooltipMarkup={createBinding(item, "tooltipMarkup")}
+ menuModel={createBinding(item, "menuModel")}>
+
);
- }),
- )}
+ }}
+
);
}
-function Left() : JSX.Element {
+function Left(): JSX.Element {
return (
@@ -42,7 +53,7 @@ function Left() : JSX.Element {
);
}
-function Center() : JSX.Element {
+function Center(): JSX.Element {
return (
@@ -51,85 +62,77 @@ function Center() : JSX.Element {
}
function Date({ format = "%Y-%m-%d" }): JSX.Element {
- const time = Variable("").poll(60000, () =>
- GLib.DateTime.new_now_local().format(format)!)
+ const time = createPoll("", 60000, () => GLib.DateTime.new_now_local().format(format)!)
return