diff --git a/flake.lock b/flake.lock
index 6e6bda9e..433d4c13 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,316 +1,316 @@
{
- "nodes": {
- "ags": {
- "inputs": {
- "astal": "astal",
- "gnim": "gnim",
- "nixpkgs": "nixpkgs"
- },
- "locked": {
- "lastModified": 1751930350,
- "narHash": "sha256-hBIrzyrwG3XjeNyzVNWKDX+yYVlpwAqf9ovgF7qecug=",
- "owner": "aylur",
- "repo": "ags",
- "rev": "22f37ccb0db58d9d8a11ad0054ab20ecfad005ad",
- "type": "github"
- },
- "original": {
- "owner": "aylur",
- "repo": "ags",
- "type": "github"
- }
+ "nodes": {
+ "ags": {
+ "inputs": {
+ "astal": "astal",
+ "gnim": "gnim",
+ "nixpkgs": "nixpkgs"
+ },
+ "locked": {
+ "lastModified": 1751930350,
+ "narHash": "sha256-hBIrzyrwG3XjeNyzVNWKDX+yYVlpwAqf9ovgF7qecug=",
+ "owner": "aylur",
+ "repo": "ags",
+ "rev": "22f37ccb0db58d9d8a11ad0054ab20ecfad005ad",
+ "type": "github"
+ },
+ "original": {
+ "owner": "aylur",
+ "repo": "ags",
+ "type": "github"
+ }
+ },
+ "astal": {
+ "inputs": {
+ "nixpkgs": [
+ "ags",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1751126708,
+ "narHash": "sha256-AodIKw7TmI7rHVcOfEsO82stupMYIMVQeLAUQfVxnkU=",
+ "owner": "aylur",
+ "repo": "astal",
+ "rev": "ac90f09385a2295da9fdc108aaba4a317aaeacc7",
+ "type": "github"
+ },
+ "original": {
+ "owner": "aylur",
+ "repo": "astal",
+ "type": "github"
+ }
+ },
+ "flake-parts": {
+ "inputs": {
+ "nixpkgs-lib": [
+ "fzgo",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1719994518,
+ "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "flake-parts_2": {
+ "inputs": {
+ "nixpkgs-lib": [
+ "nur",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1733312601,
+ "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "flake-parts_3": {
+ "inputs": {
+ "nixpkgs-lib": [
+ "worktimer",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1727826117,
+ "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "fzgo": {
+ "inputs": {
+ "flake-parts": "flake-parts",
+ "nixpkgs": "nixpkgs_2"
+ },
+ "locked": {
+ "lastModified": 1737991358,
+ "narHash": "sha256-Xye+N7I2FMb+GC96xMDjWi/HX5XCoFCz1Ak+KvP9jUQ=",
+ "ref": "refs/heads/master",
+ "rev": "a005938761624fd8d3ab7cbb64fe57a40a9b36e9",
+ "revCount": 14,
+ "type": "git",
+ "url": "https://git.thomasave.be/thomasave/fzgo.git"
+ },
+ "original": {
+ "type": "git",
+ "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": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1751990210,
+ "narHash": "sha256-krWErNDl9ggMLSfK00Q2BcoSk3+IRTSON/DiDgUzzMw=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "218da00bfa73f2a61682417efe74549416c16ba6",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "type": "github"
+ }
+ },
+ "nixos-06cb-009a-fingerprint-sensor": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1734692513,
+ "narHash": "sha256-3QEzFFrkXLj/JgZGoLaxq/pPkflSXfBOP10bXL8/Niw=",
+ "owner": "ahbnr",
+ "repo": "nixos-06cb-009a-fingerprint-sensor",
+ "rev": "3678b193efa1e06aab86058aecee18ddaa8878d2",
+ "type": "github"
+ },
+ "original": {
+ "owner": "ahbnr",
+ "ref": "24.11",
+ "repo": "nixos-06cb-009a-fingerprint-sensor",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1751792365,
+ "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1722421184,
+ "narHash": "sha256-/DJBI6trCeVnasdjUo9pbnodCLZcFqnVZiLUfqLH4jA=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "9f918d616c5321ad374ae6cb5ea89c9e04bf3e58",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_3": {
+ "locked": {
+ "lastModified": 1751792365,
+ "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_4": {
+ "locked": {
+ "lastModified": 1751792365,
+ "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_5": {
+ "locked": {
+ "lastModified": 1730200266,
+ "narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nur": {
+ "inputs": {
+ "flake-parts": "flake-parts_2",
+ "nixpkgs": "nixpkgs_4"
+ },
+ "locked": {
+ "lastModified": 1752056583,
+ "narHash": "sha256-dtBwaZET1p20izsqoIDnx7BzU25t7AwaoVmnCgv9kqw=",
+ "owner": "nix-community",
+ "repo": "NUR",
+ "rev": "9db2aa1b8673461fef354c788abe40e0973b0427",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "NUR",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "ags": "ags",
+ "fzgo": "fzgo",
+ "home-manager": "home-manager",
+ "nixos-06cb-009a-fingerprint-sensor": "nixos-06cb-009a-fingerprint-sensor",
+ "nixpkgs": "nixpkgs_3",
+ "nur": "nur",
+ "worktimer": "worktimer"
+ }
+ },
+ "worktimer": {
+ "inputs": {
+ "flake-parts": "flake-parts_3",
+ "nixpkgs": "nixpkgs_5"
+ },
+ "locked": {
+ "lastModified": 1739738223,
+ "narHash": "sha256-p14lbBwGNJilt2J8y6mCg2pSHM9Bs7vbICYoyUy3XMM=",
+ "ref": "cli",
+ "rev": "eeae39d050f22edcae63ac8b3afa797dab8955b2",
+ "revCount": 6,
+ "type": "git",
+ "url": "https://git.thomasave.be/thomasave/WorkTimer"
+ },
+ "original": {
+ "ref": "cli",
+ "type": "git",
+ "url": "https://git.thomasave.be/thomasave/WorkTimer"
+ }
+ }
},
- "astal": {
- "inputs": {
- "nixpkgs": [
- "ags",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1751126708,
- "narHash": "sha256-AodIKw7TmI7rHVcOfEsO82stupMYIMVQeLAUQfVxnkU=",
- "owner": "aylur",
- "repo": "astal",
- "rev": "ac90f09385a2295da9fdc108aaba4a317aaeacc7",
- "type": "github"
- },
- "original": {
- "owner": "aylur",
- "repo": "astal",
- "type": "github"
- }
- },
- "flake-parts": {
- "inputs": {
- "nixpkgs-lib": [
- "fzgo",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1719994518,
- "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=",
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "type": "github"
- }
- },
- "flake-parts_2": {
- "inputs": {
- "nixpkgs-lib": [
- "nur",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1733312601,
- "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "type": "github"
- }
- },
- "flake-parts_3": {
- "inputs": {
- "nixpkgs-lib": [
- "worktimer",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1727826117,
- "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "type": "github"
- }
- },
- "fzgo": {
- "inputs": {
- "flake-parts": "flake-parts",
- "nixpkgs": "nixpkgs_2"
- },
- "locked": {
- "lastModified": 1737991358,
- "narHash": "sha256-Xye+N7I2FMb+GC96xMDjWi/HX5XCoFCz1Ak+KvP9jUQ=",
- "ref": "refs/heads/master",
- "rev": "a005938761624fd8d3ab7cbb64fe57a40a9b36e9",
- "revCount": 14,
- "type": "git",
- "url": "https://git.thomasave.be/thomasave/fzgo.git"
- },
- "original": {
- "type": "git",
- "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": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1751990210,
- "narHash": "sha256-krWErNDl9ggMLSfK00Q2BcoSk3+IRTSON/DiDgUzzMw=",
- "owner": "nix-community",
- "repo": "home-manager",
- "rev": "218da00bfa73f2a61682417efe74549416c16ba6",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "home-manager",
- "type": "github"
- }
- },
- "nixos-06cb-009a-fingerprint-sensor": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1734692513,
- "narHash": "sha256-3QEzFFrkXLj/JgZGoLaxq/pPkflSXfBOP10bXL8/Niw=",
- "owner": "ahbnr",
- "repo": "nixos-06cb-009a-fingerprint-sensor",
- "rev": "3678b193efa1e06aab86058aecee18ddaa8878d2",
- "type": "github"
- },
- "original": {
- "owner": "ahbnr",
- "ref": "24.11",
- "repo": "nixos-06cb-009a-fingerprint-sensor",
- "type": "github"
- }
- },
- "nixpkgs": {
- "locked": {
- "lastModified": 1751792365,
- "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_2": {
- "locked": {
- "lastModified": 1722421184,
- "narHash": "sha256-/DJBI6trCeVnasdjUo9pbnodCLZcFqnVZiLUfqLH4jA=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "9f918d616c5321ad374ae6cb5ea89c9e04bf3e58",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_3": {
- "locked": {
- "lastModified": 1751792365,
- "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_4": {
- "locked": {
- "lastModified": 1751792365,
- "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_5": {
- "locked": {
- "lastModified": 1730200266,
- "narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nur": {
- "inputs": {
- "flake-parts": "flake-parts_2",
- "nixpkgs": "nixpkgs_4"
- },
- "locked": {
- "lastModified": 1752056583,
- "narHash": "sha256-dtBwaZET1p20izsqoIDnx7BzU25t7AwaoVmnCgv9kqw=",
- "owner": "nix-community",
- "repo": "NUR",
- "rev": "9db2aa1b8673461fef354c788abe40e0973b0427",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "NUR",
- "type": "github"
- }
- },
- "root": {
- "inputs": {
- "ags": "ags",
- "fzgo": "fzgo",
- "home-manager": "home-manager",
- "nixos-06cb-009a-fingerprint-sensor": "nixos-06cb-009a-fingerprint-sensor",
- "nixpkgs": "nixpkgs_3",
- "nur": "nur",
- "worktimer": "worktimer"
- }
- },
- "worktimer": {
- "inputs": {
- "flake-parts": "flake-parts_3",
- "nixpkgs": "nixpkgs_5"
- },
- "locked": {
- "lastModified": 1739738223,
- "narHash": "sha256-p14lbBwGNJilt2J8y6mCg2pSHM9Bs7vbICYoyUy3XMM=",
- "ref": "cli",
- "rev": "eeae39d050f22edcae63ac8b3afa797dab8955b2",
- "revCount": 6,
- "type": "git",
- "url": "https://git.thomasave.be/thomasave/WorkTimer"
- },
- "original": {
- "ref": "cli",
- "type": "git",
- "url": "https://git.thomasave.be/thomasave/WorkTimer"
- }
- }
- },
- "root": "root",
- "version": 7
+ "root": "root",
+ "version": 7
}
diff --git a/home/Aloria.nix b/home/Aloria.nix
index be1ad01d..f0dcad7e 100644
--- a/home/Aloria.nix
+++ b/home/Aloria.nix
@@ -3,13 +3,10 @@ let
fzgo_paths = {
files = [
"/home/user/.dotfiles"
- "/home/server/.cache/fzgo/entries/f/|home|user|Workspace"
];
dirs = [
"/home/user/.dotfiles"
- "/home/server/.cache/fzgo/entries/d/|home|user|Workspace"
- "/home/server/.cache/fzgo/entries/d/|home|server|Storage|Thomas"
- "/home/server/.cache/fzgo/entries/d/|home|server|Storage|Shared"
+ "/Storage/TrackBox"
];
};
in
@@ -22,7 +19,7 @@ in
programs.ssh.matchBlocks."*".identityFile = "/home/user/.secrets/SSH/Aloria/id_ed25519";
home.packages = with pkgs; [
- jetbrains.pycharm-professional
+ # jetbrains.pycharm-professional
distrobox
gnome-disk-utility
moonlight-qt
diff --git a/home/ags/files/@girs/accountsservice-1.0.d.ts b/home/ags/files/@girs/accountsservice-1.0.d.ts
new file mode 100644
index 00000000..36221abb
--- /dev/null
+++ b/home/ags/files/@girs/accountsservice-1.0.d.ts
@@ -0,0 +1,980 @@
+///
+///
+///
+///
+
+/**
+ * Type Definitions for Gjs (https://gjs.guide/)
+ *
+ * These type definitions are automatically generated, do not edit them by hand.
+ * If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
+ *
+ * The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
+ */
+
+declare module 'gi://AccountsService?version=1.0' {
+ // Module dependencies
+ import type Gio from 'gi://Gio?version=2.0';
+ import type GObject from 'gi://GObject?version=2.0';
+ import type GLib from 'gi://GLib?version=2.0';
+ import type GModule from 'gi://GModule?version=2.0';
+
+ export namespace AccountsService {
+ /**
+ * AccountsService-1.0
+ */
+
+ /**
+ * Type of user account
+ */
+
+ /**
+ * Type of user account
+ */
+ export namespace UserAccountType {
+ export const $gtype: GObject.GType;
+ }
+
+ enum UserAccountType {
+ /**
+ * Normal non-administrative user
+ */
+ STANDARD,
+ /**
+ * Administrative user
+ */
+ ADMINISTRATOR,
+ }
+ /**
+ * Various error codes returned by the accounts service.
+ */
+ class UserManagerError extends GLib.Error {
+ static $gtype: GObject.GType;
+
+ // Static fields
+
+ /**
+ * Generic failure
+ */
+ static FAILED: number;
+ /**
+ * The user already exists
+ */
+ static USER_EXISTS: number;
+ /**
+ * The user does not exist
+ */
+ static USER_DOES_NOT_EXIST: number;
+ /**
+ * Permission denied
+ */
+ static PERMISSION_DENIED: number;
+ /**
+ * Operation not supported
+ */
+ static NOT_SUPPORTED: number;
+
+ // Constructors
+
+ constructor(options: { message: string; code: number });
+ _init(...args: any[]): void;
+
+ // Static methods
+
+ static quark(): GLib.Quark;
+ }
+
+ /**
+ * Mode for setting the user's password.
+ */
+
+ /**
+ * Mode for setting the user's password.
+ */
+ export namespace UserPasswordMode {
+ export const $gtype: GObject.GType;
+ }
+
+ enum UserPasswordMode {
+ /**
+ * Password set normally
+ */
+ REGULAR,
+ /**
+ * Password will be chosen at next login
+ */
+ SET_AT_LOGIN,
+ /**
+ * No password set
+ */
+ NONE,
+ }
+ function user_manager_error_quark(): GLib.Quark;
+ namespace User {
+ // Signal signatures
+ interface SignalSignatures extends GObject.Object.SignalSignatures {
+ changed: () => void;
+ 'sessions-changed': () => void;
+ 'notify::account-type': (pspec: GObject.ParamSpec) => void;
+ 'notify::automatic-login': (pspec: GObject.ParamSpec) => void;
+ 'notify::email': (pspec: GObject.ParamSpec) => void;
+ 'notify::home-directory': (pspec: GObject.ParamSpec) => void;
+ 'notify::icon-file': (pspec: GObject.ParamSpec) => void;
+ 'notify::is-loaded': (pspec: GObject.ParamSpec) => void;
+ 'notify::language': (pspec: GObject.ParamSpec) => void;
+ 'notify::local-account': (pspec: GObject.ParamSpec) => void;
+ 'notify::location': (pspec: GObject.ParamSpec) => void;
+ 'notify::locked': (pspec: GObject.ParamSpec) => void;
+ 'notify::login-frequency': (pspec: GObject.ParamSpec) => void;
+ 'notify::login-history': (pspec: GObject.ParamSpec) => void;
+ 'notify::login-time': (pspec: GObject.ParamSpec) => void;
+ 'notify::nonexistent': (pspec: GObject.ParamSpec) => void;
+ 'notify::password-hint': (pspec: GObject.ParamSpec) => void;
+ 'notify::password-mode': (pspec: GObject.ParamSpec) => void;
+ 'notify::real-name': (pspec: GObject.ParamSpec) => void;
+ 'notify::shell': (pspec: GObject.ParamSpec) => void;
+ 'notify::system-account': (pspec: GObject.ParamSpec) => void;
+ 'notify::uid': (pspec: GObject.ParamSpec) => void;
+ 'notify::user-name': (pspec: GObject.ParamSpec) => void;
+ 'notify::x-session': (pspec: GObject.ParamSpec) => void;
+ }
+
+ // Constructor properties interface
+
+ interface ConstructorProps extends GObject.Object.ConstructorProps {
+ account_type: number;
+ accountType: number;
+ automatic_login: boolean;
+ automaticLogin: boolean;
+ email: string;
+ home_directory: string;
+ homeDirectory: string;
+ icon_file: string;
+ iconFile: string;
+ is_loaded: boolean;
+ isLoaded: boolean;
+ language: string;
+ local_account: boolean;
+ localAccount: boolean;
+ location: string;
+ locked: boolean;
+ login_frequency: number;
+ loginFrequency: number;
+ login_history: GLib.Variant;
+ loginHistory: GLib.Variant;
+ login_time: number;
+ loginTime: number;
+ nonexistent: boolean;
+ password_hint: string;
+ passwordHint: string;
+ password_mode: number;
+ passwordMode: number;
+ real_name: string;
+ realName: string;
+ shell: string;
+ system_account: boolean;
+ systemAccount: boolean;
+ uid: number;
+ user_name: string;
+ userName: string;
+ x_session: string;
+ xSession: string;
+ }
+ }
+
+ /**
+ * Represents a user account on the system.
+ */
+ class User extends GObject.Object {
+ static $gtype: GObject.GType;
+
+ // Properties
+
+ get account_type(): number;
+ get accountType(): number;
+ get automatic_login(): boolean;
+ get automaticLogin(): boolean;
+ get email(): string;
+ get home_directory(): string;
+ get homeDirectory(): string;
+ get icon_file(): string;
+ get iconFile(): string;
+ get is_loaded(): boolean;
+ get isLoaded(): boolean;
+ /**
+ * The user’s locale, in the format
+ * `language[_territory][.codeset][`modifier]``, where `language` is an
+ * ISO 639 language code, `territory` is an ISO 3166 country code, and
+ * `codeset` is a character set or encoding identifier like `ISO-8859-1`
+ * or `UTF-8`; as specified by [`setlocale(3)`](man:setlocale(3)).
+ *
+ * The locale may be the empty string, which means the user is using the
+ * system default locale.
+ *
+ * The property may be %NULL if it wasn’t possible to load it from the
+ * daemon.
+ */
+ get language(): string;
+ get local_account(): boolean;
+ get localAccount(): boolean;
+ get location(): string;
+ get locked(): boolean;
+ get login_frequency(): number;
+ get loginFrequency(): number;
+ get login_history(): GLib.Variant;
+ get loginHistory(): GLib.Variant;
+ get login_time(): number;
+ get loginTime(): number;
+ get nonexistent(): boolean;
+ get password_hint(): string;
+ get passwordHint(): string;
+ get password_mode(): number;
+ get passwordMode(): number;
+ get real_name(): string;
+ get realName(): string;
+ get shell(): string;
+ get system_account(): boolean;
+ get systemAccount(): boolean;
+ get uid(): number;
+ get user_name(): string;
+ get userName(): string;
+ get x_session(): string;
+ get xSession(): string;
+
+ /**
+ * Compile-time signal type information.
+ *
+ * This instance property is generated only for TypeScript type checking.
+ * It is not defined at runtime and should not be accessed in JS code.
+ * @internal
+ */
+ $signals: User.SignalSignatures;
+
+ // Constructors
+
+ constructor(properties?: Partial, ...args: any[]);
+
+ _init(...args: any[]): void;
+
+ // Signals
+
+ connect(
+ signal: K,
+ callback: GObject.SignalCallback,
+ ): number;
+ connect(signal: string, callback: (...args: any[]) => any): number;
+ connect_after(
+ signal: K,
+ callback: GObject.SignalCallback,
+ ): number;
+ connect_after(signal: string, callback: (...args: any[]) => any): number;
+ emit(
+ signal: K,
+ ...args: GObject.GjsParameters extends [any, ...infer Q] ? Q : never
+ ): void;
+ emit(signal: string, ...args: any[]): void;
+
+ // Methods
+
+ /**
+ * Organize the user by login frequency and names.
+ * @param user2 a user
+ * @returns negative if @user1 is before @user2, zero if equal or positive if @user1 is after @user2
+ */
+ collate(user2: User): number;
+ /**
+ * Retrieves the account type of `user`.
+ * @returns a #ActUserAccountType
+ */
+ get_account_type(): UserAccountType;
+ /**
+ * Returns whether or not #ActUser is automatically logged in at boot time.
+ * @returns %TRUE or %FALSE
+ */
+ get_automatic_login(): boolean;
+ /**
+ * Retrieves the email address set by `user`.
+ * @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
+ */
+ get_email(): string;
+ /**
+ * Retrieves the home directory for `user`.
+ * @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
+ */
+ get_home_dir(): string;
+ /**
+ * Returns the path to the account icon belonging to `user`.
+ * @returns a path to an icon
+ */
+ get_icon_file(): string;
+ /**
+ * Returns the value of #ActUser:language.
+ * @returns the user’s language, or the empty string if they are using the system default language, or %NULL if there is no connection to the daemon
+ */
+ get_language(): string | null;
+ /**
+ * Returns the value of #ActUser:languages.
+ * @returns the user’s preferred languages, or the empty string if they are using the system default language, or %NULL if there is no connection to the daemon
+ */
+ get_languages(): string[] | null;
+ /**
+ * Retrieves the location set by `user`.
+ * @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
+ */
+ get_location(): string;
+ /**
+ * Returns whether or not the #ActUser account is locked.
+ * @returns %TRUE or %FALSE
+ */
+ get_locked(): boolean;
+ /**
+ * Returns the number of times `user` has logged in.
+ * @returns the login frequency
+ */
+ get_login_frequency(): number;
+ /**
+ * Returns the login history for `user`.
+ * @returns a pointer to GVariant of type "a(xxa{sv})" which must not be modified or freed, or %NULL.
+ */
+ get_login_history(): GLib.Variant;
+ /**
+ * Returns the last login time for `user`.
+ * @returns the login time
+ */
+ get_login_time(): number;
+ /**
+ * Get the number of sessions for a user that are graphical and on the
+ * same seat as the session of the calling process.
+ * @returns the number of sessions
+ */
+ get_num_sessions(): number;
+ /**
+ * Get the number of sessions for a user on any seat of any type.
+ * See also act_user_get_num_sessions().
+ *
+ * (Currently, this function is only implemented for systemd-logind.
+ * For ConsoleKit, it is equivalent to act_user_get_num_sessions.)
+ * @returns the number of sessions
+ */
+ get_num_sessions_anywhere(): number;
+ /**
+ * Returns the user accounts service object path of `user,`
+ * or %NULL if `user` doesn't have an object path associated
+ * with it.
+ * @returns the object path of the user
+ */
+ get_object_path(): string;
+ /**
+ * Get the password expiration policy for a user.
+ *
+ * Note this function is synchronous and ignores errors.
+ */
+ get_password_expiration_policy(): [number, number, number, number, number, number];
+ /**
+ * Retrieves the password hint set by `user`.
+ * @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
+ */
+ get_password_hint(): string;
+ /**
+ * Retrieves the password mode of `user`.
+ * @returns a #ActUserPasswordMode
+ */
+ get_password_mode(): UserPasswordMode;
+ /**
+ * Returns the id of the primary session of `user,` or %NULL if `user`
+ * has no primary session. The primary session will always be
+ * graphical and will be chosen from the sessions on the same seat as
+ * the seat of the session of the calling process.
+ * @returns the id of the primary session of the user
+ */
+ get_primary_session_id(): string;
+ /**
+ * Retrieves the display name of `user`.
+ * @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
+ */
+ get_real_name(): string;
+ /**
+ * Returns whether or not the #ActUser account has retained state in accountsservice.
+ * @returns %TRUE or %FALSE
+ */
+ get_saved(): boolean;
+ /**
+ * Returns the path to the configured session for `user`.
+ * @returns a path to an icon
+ */
+ get_session(): string;
+ /**
+ * Returns the type of the configured session for `user`.
+ * @returns a path to an icon
+ */
+ get_session_type(): string;
+ /**
+ * Retrieves the shell assigned to `user`.
+ * @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
+ */
+ get_shell(): string;
+ /**
+ * Retrieves the ID of `user`.
+ * @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
+ */
+ get_uid(): never;
+ /**
+ * Retrieves the login name of `user`.
+ * @returns a pointer to an array of characters which must not be modified or freed, or %NULL.
+ */
+ get_user_name(): string;
+ /**
+ * Returns the path to the configured X session for `user`.
+ * @returns a path to an icon
+ */
+ get_x_session(): string;
+ /**
+ * Retrieves whether the user is a local account or not.
+ * @returns %TRUE if the user is local
+ */
+ is_local_account(): boolean;
+ /**
+ * Returns whether or not #ActUser is currently graphically logged in
+ * on the same seat as the seat of the session of the calling process.
+ * @returns %TRUE or %FALSE
+ */
+ is_logged_in(): boolean;
+ /**
+ * Returns whether or not #ActUser is currently logged in in any way
+ * whatsoever. See also act_user_is_logged_in().
+ *
+ * (Currently, this function is only implemented for systemd-logind.
+ * For ConsoleKit, it is equivalent to act_user_is_logged_in.)
+ * @returns %TRUE or %FALSE
+ */
+ is_logged_in_anywhere(): boolean;
+ /**
+ * Retrieves whether the user is nonexistent or not.
+ * @returns %TRUE if the user is nonexistent
+ */
+ is_nonexistent(): boolean;
+ /**
+ * Returns whether or not #ActUser represents a 'system account' like
+ * 'root' or 'nobody'.
+ * @returns %TRUE or %FALSE
+ */
+ is_system_account(): boolean;
+ /**
+ * Changes the account type of `user`.
+ *
+ * Note this function is synchronous and ignores errors.
+ * @param account_type a #ActUserAccountType
+ */
+ set_account_type(account_type: UserAccountType | null): void;
+ /**
+ * If enabled is set to %TRUE then this user will automatically be logged in
+ * at boot up time. Only one user can be configured to auto login at any given
+ * time, so subsequent calls to act_user_set_automatic_login() override previous
+ * calls.
+ *
+ * Note this function is synchronous and ignores errors.
+ * @param enabled whether or not to autologin for user.
+ */
+ set_automatic_login(enabled: boolean): void;
+ /**
+ * Assigns a new email to `user`.
+ *
+ * Note this function is synchronous and ignores errors.
+ * @param email an email address
+ */
+ set_email(email: string): void;
+ /**
+ * Assigns a new icon for `user`.
+ *
+ * Note this function is synchronous and ignores errors.
+ * @param icon_file path to an icon
+ */
+ set_icon_file(icon_file: string): void;
+ /**
+ * Assigns a new locale for `user,` setting #ActUser:language.
+ *
+ * Note this function is synchronous and ignores errors.
+ * @param language a locale (for example, `en_US.utf8`), or the empty string to use the system default locale
+ */
+ set_language(language: string): void;
+ /**
+ * Assigns preferred languages for `user,` setting #ActUser:languages, and
+ * overriding #ActUser:language with the first item in the list if there is one.
+ *
+ * Note this function is synchronous and ignores errors.
+ * @param languages an array of locale (for example, `en_US.utf8`), or the empty string to use the system default locale
+ */
+ set_languages(languages: string[]): void;
+ /**
+ * Assigns a new location for `user`.
+ *
+ * Note this function is synchronous and ignores errors.
+ * @param location a location
+ */
+ set_location(location: string): void;
+ /**
+ * Note this function is synchronous and ignores errors.
+ * @param locked whether or not the account is locked
+ */
+ set_locked(locked: boolean): void;
+ /**
+ * Changes the password of `user` to `password`.
+ * `hint` is displayed to the user if they forget the password.
+ *
+ * Note this function is synchronous and ignores errors.
+ * @param password a password
+ * @param hint a hint to help user recall password
+ */
+ set_password(password: string, hint: string): void;
+ /**
+ * Set the password expiration policy for a user.
+ *
+ * Note this function is synchronous and ignores errors.
+ * @param min_days_between_changes location to write minimum number of days needed between password changes.
+ * @param max_days_between_changes location to write maximum number of days password can stay unchanged.
+ * @param days_to_warn location to write number of days to warn user password is about to expire.
+ * @param days_after_expiration_until_lock location to write number of days account will be locked after password expires.
+ */
+ set_password_expiration_policy(
+ min_days_between_changes: number,
+ max_days_between_changes: number,
+ days_to_warn: number,
+ days_after_expiration_until_lock: number,
+ ): void;
+ set_password_hint(hint: string): void;
+ /**
+ * Changes the password of `user`. If `password_mode` is
+ * ACT_USER_PASSWORD_MODE_SET_AT_LOGIN then the user will
+ * be asked for a new password at the next login. If `password_mode`
+ * is ACT_USER_PASSWORD_MODE_NONE then the user will not require
+ * a password to log in.
+ *
+ * Note this function is synchronous and ignores errors.
+ * @param password_mode a #ActUserPasswordMode
+ */
+ set_password_mode(password_mode: UserPasswordMode | null): void;
+ /**
+ * Assigns a new name for `user`.
+ *
+ * Note this function is synchronous and ignores errors.
+ * @param real_name a new name
+ */
+ set_real_name(real_name: string): void;
+ /**
+ * Assigns a new session for `user`.
+ *
+ * Note this function is synchronous and ignores errors.
+ * @param session a session (e.g. gnome)
+ */
+ set_session(session: string): void;
+ /**
+ * Assigns a type to the session for `user`.
+ *
+ * Note this function is synchronous and ignores errors.
+ * @param session_type a type of session (e.g. "wayland" or "x11")
+ */
+ set_session_type(session_type: string): void;
+ /**
+ * Set the user expiration policy for a user.
+ *
+ * Note this function is synchronous and ignores errors.
+ * @param expiration_time location to write users expires timestamp
+ */
+ set_user_expiration_policy(expiration_time: number): void;
+ /**
+ * Assigns a new username for `user`.
+ *
+ * Note this function is synchronous and ignores errors.
+ * @param user_name a new user name
+ */
+ set_user_name(user_name: string): void;
+ /**
+ * Assigns a new x session for `user`.
+ *
+ * Note this function is synchronous and ignores errors.
+ * @param x_session an x session (e.g. gnome)
+ */
+ set_x_session(x_session: string): void;
+ }
+
+ namespace UserManager {
+ // Signal signatures
+ interface SignalSignatures extends GObject.Object.SignalSignatures {
+ 'user-added': (arg0: User) => void;
+ 'user-changed': (arg0: User) => void;
+ 'user-is-logged-in-changed': (arg0: User) => void;
+ 'user-removed': (arg0: User) => void;
+ 'notify::exclude-usernames-list': (pspec: GObject.ParamSpec) => void;
+ 'notify::has-multiple-users': (pspec: GObject.ParamSpec) => void;
+ 'notify::include-usernames-list': (pspec: GObject.ParamSpec) => void;
+ 'notify::is-loaded': (pspec: GObject.ParamSpec) => void;
+ }
+
+ // Constructor properties interface
+
+ interface ConstructorProps extends GObject.Object.ConstructorProps {
+ exclude_usernames_list: any;
+ excludeUsernamesList: any;
+ has_multiple_users: boolean;
+ hasMultipleUsers: boolean;
+ include_usernames_list: any;
+ includeUsernamesList: any;
+ is_loaded: boolean;
+ isLoaded: boolean;
+ }
+ }
+
+ /**
+ * A user manager object.
+ */
+ class UserManager extends GObject.Object {
+ static $gtype: GObject.GType;
+
+ // Properties
+
+ get exclude_usernames_list(): any;
+ set exclude_usernames_list(val: any);
+ get excludeUsernamesList(): any;
+ set excludeUsernamesList(val: any);
+ get has_multiple_users(): boolean;
+ set has_multiple_users(val: boolean);
+ get hasMultipleUsers(): boolean;
+ set hasMultipleUsers(val: boolean);
+ get include_usernames_list(): any;
+ set include_usernames_list(val: any);
+ get includeUsernamesList(): any;
+ set includeUsernamesList(val: any);
+ get is_loaded(): boolean;
+ get isLoaded(): boolean;
+
+ /**
+ * Compile-time signal type information.
+ *
+ * This instance property is generated only for TypeScript type checking.
+ * It is not defined at runtime and should not be accessed in JS code.
+ * @internal
+ */
+ $signals: UserManager.SignalSignatures;
+
+ // Constructors
+
+ constructor(properties?: Partial, ...args: any[]);
+
+ _init(...args: any[]): void;
+
+ // Signals
+
+ connect(
+ signal: K,
+ callback: GObject.SignalCallback,
+ ): number;
+ connect(signal: string, callback: (...args: any[]) => any): number;
+ connect_after(
+ signal: K,
+ callback: GObject.SignalCallback,
+ ): number;
+ connect_after(signal: string, callback: (...args: any[]) => any): number;
+ emit(
+ signal: K,
+ ...args: GObject.GjsParameters extends [any, ...infer Q] ? Q : never
+ ): void;
+ emit(signal: string, ...args: any[]): void;
+
+ // Static methods
+
+ /**
+ * Returns the user manager singleton instance. Calling this function will
+ * automatically being loading the user list if it isn't loaded already.
+ * The #ActUserManager:is-loaded property will be set to %TRUE when the users
+ * are finished loading and then act_user_manager_list_users() can be called.
+ */
+ static get_default(): UserManager;
+
+ // Virtual methods
+
+ vfunc_user_added(user: User): void;
+ vfunc_user_changed(user: User): void;
+ vfunc_user_is_logged_in_changed(user: User): void;
+ vfunc_user_removed(user: User): void;
+
+ // Methods
+
+ /**
+ * Activate the session for a given user.
+ * @param user the user to activate
+ * @returns whether successfully activated
+ */
+ activate_user_session(user: User): boolean;
+ /**
+ * Caches a user account so it shows up via act_user_manager_list_users().
+ * @param username a user name
+ * @returns user object
+ */
+ cache_user(username: string): User;
+ /**
+ * Asynchronously caches a user account so it shows up via
+ * act_user_manager_list_users().
+ *
+ * For more details, see act_user_manager_cache_user(), which
+ * is the synchronous version of this call.
+ * @param username a unix user name
+ * @param cancellable optional #GCancellable object, %NULL to ignore
+ */
+ cache_user_async(username: string, cancellable?: Gio.Cancellable | null): Promise;
+ /**
+ * Asynchronously caches a user account so it shows up via
+ * act_user_manager_list_users().
+ *
+ * For more details, see act_user_manager_cache_user(), which
+ * is the synchronous version of this call.
+ * @param username a unix user name
+ * @param cancellable optional #GCancellable object, %NULL to ignore
+ * @param callback a #GAsyncReadyCallback to call when the request is satisfied
+ */
+ cache_user_async(
+ username: string,
+ cancellable: Gio.Cancellable | null,
+ callback: Gio.AsyncReadyCallback | null,
+ ): void;
+ /**
+ * Asynchronously caches a user account so it shows up via
+ * act_user_manager_list_users().
+ *
+ * For more details, see act_user_manager_cache_user(), which
+ * is the synchronous version of this call.
+ * @param username a unix user name
+ * @param cancellable optional #GCancellable object, %NULL to ignore
+ * @param callback a #GAsyncReadyCallback to call when the request is satisfied
+ */
+ cache_user_async(
+ username: string,
+ cancellable?: Gio.Cancellable | null,
+ callback?: Gio.AsyncReadyCallback | null,
+ ): Promise | void;
+ /**
+ * Finishes an asynchronous user caching.
+ *
+ * See act_user_manager_cache_user_async().
+ * @param result a #GAsyncResult
+ * @returns user object
+ */
+ cache_user_finish(result: Gio.AsyncResult): User;
+ /**
+ * Check whether the user can switch to another session.
+ * @returns whether we can switch to another session
+ */
+ can_switch(): boolean;
+ /**
+ * Creates a user account on the system.
+ * @param username a unix user name
+ * @param fullname a unix GECOS value
+ * @param accounttype a #ActUserAccountType
+ * @returns user object
+ */
+ create_user(username: string, fullname: string, accounttype: UserAccountType | null): User;
+ /**
+ * Asynchronously creates a user account on the system.
+ *
+ * For more details, see act_user_manager_create_user(), which
+ * is the synchronous version of this call.
+ * @param username a unix user name
+ * @param fullname a unix GECOS value
+ * @param accounttype a #ActUserAccountType
+ * @param cancellable optional #GCancellable object, %NULL to ignore
+ */
+ create_user_async(
+ username: string,
+ fullname: string,
+ accounttype: UserAccountType | null,
+ cancellable?: Gio.Cancellable | null,
+ ): Promise;
+ /**
+ * Asynchronously creates a user account on the system.
+ *
+ * For more details, see act_user_manager_create_user(), which
+ * is the synchronous version of this call.
+ * @param username a unix user name
+ * @param fullname a unix GECOS value
+ * @param accounttype a #ActUserAccountType
+ * @param cancellable optional #GCancellable object, %NULL to ignore
+ * @param callback a #GAsyncReadyCallback to call when the request is satisfied
+ */
+ create_user_async(
+ username: string,
+ fullname: string,
+ accounttype: UserAccountType | null,
+ cancellable: Gio.Cancellable | null,
+ callback: Gio.AsyncReadyCallback | null,
+ ): void;
+ /**
+ * Asynchronously creates a user account on the system.
+ *
+ * For more details, see act_user_manager_create_user(), which
+ * is the synchronous version of this call.
+ * @param username a unix user name
+ * @param fullname a unix GECOS value
+ * @param accounttype a #ActUserAccountType
+ * @param cancellable optional #GCancellable object, %NULL to ignore
+ * @param callback a #GAsyncReadyCallback to call when the request is satisfied
+ */
+ create_user_async(
+ username: string,
+ fullname: string,
+ accounttype: UserAccountType | null,
+ cancellable?: Gio.Cancellable | null,
+ callback?: Gio.AsyncReadyCallback | null,
+ ): Promise | void;
+ /**
+ * Finishes an asynchronous user creation.
+ *
+ * See act_user_manager_create_user_async().
+ * @param result a #GAsyncResult
+ * @returns user object
+ */
+ create_user_finish(result: Gio.AsyncResult): User;
+ /**
+ * Deletes a user account on the system.
+ * @param user an #ActUser object
+ * @param remove_files %TRUE to delete the users home directory
+ * @returns %TRUE if the user account was successfully deleted
+ */
+ delete_user(user: User, remove_files: boolean): boolean;
+ /**
+ * Asynchronously deletes a user account from the system.
+ *
+ * For more details, see act_user_manager_delete_user(), which
+ * is the synchronous version of this call.
+ * @param user a #ActUser object
+ * @param remove_files %TRUE to delete the users home directory
+ * @param cancellable optional #GCancellable object, %NULL to ignore
+ */
+ delete_user_async(
+ user: User,
+ remove_files: boolean,
+ cancellable?: Gio.Cancellable | null,
+ ): Promise;
+ /**
+ * Asynchronously deletes a user account from the system.
+ *
+ * For more details, see act_user_manager_delete_user(), which
+ * is the synchronous version of this call.
+ * @param user a #ActUser object
+ * @param remove_files %TRUE to delete the users home directory
+ * @param cancellable optional #GCancellable object, %NULL to ignore
+ * @param callback a #GAsyncReadyCallback to call when the request is satisfied
+ */
+ delete_user_async(
+ user: User,
+ remove_files: boolean,
+ cancellable: Gio.Cancellable | null,
+ callback: Gio.AsyncReadyCallback | null,
+ ): void;
+ /**
+ * Asynchronously deletes a user account from the system.
+ *
+ * For more details, see act_user_manager_delete_user(), which
+ * is the synchronous version of this call.
+ * @param user a #ActUser object
+ * @param remove_files %TRUE to delete the users home directory
+ * @param cancellable optional #GCancellable object, %NULL to ignore
+ * @param callback a #GAsyncReadyCallback to call when the request is satisfied
+ */
+ delete_user_async(
+ user: User,
+ remove_files: boolean,
+ cancellable?: Gio.Cancellable | null,
+ callback?: Gio.AsyncReadyCallback | null,
+ ): Promise | void;
+ /**
+ * Finishes an asynchronous user account deletion.
+ *
+ * See act_user_manager_delete_user_async().
+ * @param result a #GAsyncResult
+ * @returns %TRUE if the user account was successfully deleted
+ */
+ delete_user_finish(result: Gio.AsyncResult): boolean;
+ /**
+ * Retrieves a pointer to the #ActUser object for the login `username`
+ * from `manager`. Trying to use this object before its
+ * #ActUser:is-loaded property is %TRUE will result in undefined
+ * behavior.
+ * @param username the login name of the user to get.
+ * @returns #ActUser object
+ */
+ get_user(username: string): User;
+ /**
+ * Retrieves a pointer to the #ActUser object for the user with the
+ * given uid from `manager`. Trying to use this object before its
+ * #ActUser:is-loaded property is %TRUE will result in undefined
+ * behavior.
+ * @param id the uid of the user to get.
+ * @returns #ActUser object
+ */
+ get_user_by_id(id: never): User;
+ /**
+ * Switch the display to the login manager.
+ * @returns whether successful or not
+ */
+ goto_login_session(): boolean;
+ /**
+ * Get a list of system user accounts
+ * @returns List of #ActUser objects
+ */
+ list_users(): User[];
+ /**
+ * Check whether or not the accounts service is running.
+ * @returns whether or not accounts service is running
+ */
+ no_service(): boolean;
+ /**
+ * Releases all metadata about a user account, including icon,
+ * language and session. If the user account is from a remote
+ * server and the user has never logged in before, then that
+ * account will no longer show up in ListCachedUsers() output.
+ * @param username a user name
+ * @returns %TRUE if successful, otherwise %FALSE
+ */
+ uncache_user(username: string): boolean;
+ uncache_user_async(username: string, cancellable?: Gio.Cancellable | null): Promise;
+ uncache_user_async(
+ username: string,
+ cancellable: Gio.Cancellable | null,
+ callback: Gio.AsyncReadyCallback | null,
+ ): void;
+ uncache_user_async(
+ username: string,
+ cancellable?: Gio.Cancellable | null,
+ callback?: Gio.AsyncReadyCallback | null,
+ ): Promise | void;
+ /**
+ * Finishes an asynchronous user uncaching.
+ *
+ * See act_user_manager_uncache_user_async().
+ * @param result a #GAsyncResult
+ * @returns %TRUE if the user account was successfully uncached
+ */
+ uncache_user_finish(result: Gio.AsyncResult): boolean;
+ }
+
+ type UserClass = typeof User;
+ type UserManagerClass = typeof UserManager;
+ /**
+ * Name of the imported GIR library
+ * `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
+ */
+ const __name__: string;
+ /**
+ * Version of the imported GIR library
+ * `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
+ */
+ const __version__: string;
+ }
+
+ export default AccountsService;
+}
+
+declare module 'gi://AccountsService' {
+ import AccountsService10 from 'gi://AccountsService?version=1.0';
+ export default AccountsService10;
+}
+// END
diff --git a/home/ags/files/@girs/appmenuglibtranslator-24.02.d.ts b/home/ags/files/@girs/appmenuglibtranslator-24.02.d.ts
new file mode 100644
index 00000000..dc311bbe
--- /dev/null
+++ b/home/ags/files/@girs/appmenuglibtranslator-24.02.d.ts
@@ -0,0 +1,118 @@
+///
+///
+///
+///
+
+/**
+ * Type Definitions for Gjs (https://gjs.guide/)
+ *
+ * These type definitions are automatically generated, do not edit them by hand.
+ * If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
+ *
+ * The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
+ */
+
+declare module 'gi://AppmenuGLibTranslator?version=24.02' {
+ // Module dependencies
+ import type Gio from 'gi://Gio?version=2.0';
+ import type GObject from 'gi://GObject?version=2.0';
+ import type GLib from 'gi://GLib?version=2.0';
+ import type GModule from 'gi://GModule?version=2.0';
+
+ export namespace AppmenuGLibTranslator {
+ /**
+ * AppmenuGLibTranslator-24.02
+ */
+
+ namespace Importer {
+ // Signal signatures
+ interface SignalSignatures extends GObject.Object.SignalSignatures {
+ 'notify::action-group': (pspec: GObject.ParamSpec) => void;
+ 'notify::bus-name': (pspec: GObject.ParamSpec) => void;
+ 'notify::model': (pspec: GObject.ParamSpec) => void;
+ 'notify::object-path': (pspec: GObject.ParamSpec) => void;
+ }
+
+ // Constructor properties interface
+
+ interface ConstructorProps extends GObject.Object.ConstructorProps {
+ action_group: Gio.ActionGroup;
+ actionGroup: Gio.ActionGroup;
+ bus_name: string;
+ busName: string;
+ model: Gio.MenuModel;
+ object_path: string;
+ objectPath: string;
+ }
+ }
+
+ class Importer extends GObject.Object {
+ static $gtype: GObject.GType;
+
+ // Properties
+
+ get action_group(): Gio.ActionGroup;
+ get actionGroup(): Gio.ActionGroup;
+ set bus_name(val: string);
+ set busName(val: string);
+ get model(): Gio.MenuModel;
+ set object_path(val: string);
+ set objectPath(val: string);
+
+ /**
+ * Compile-time signal type information.
+ *
+ * This instance property is generated only for TypeScript type checking.
+ * It is not defined at runtime and should not be accessed in JS code.
+ * @internal
+ */
+ $signals: Importer.SignalSignatures;
+
+ // Constructors
+
+ constructor(properties?: Partial, ...args: any[]);
+
+ _init(...args: any[]): void;
+
+ static ['new'](bus_name: string, object_path: string): Importer;
+
+ // Signals
+
+ connect(
+ signal: K,
+ callback: GObject.SignalCallback,
+ ): number;
+ connect(signal: string, callback: (...args: any[]) => any): number;
+ connect_after(
+ signal: K,
+ callback: GObject.SignalCallback,
+ ): number;
+ connect_after(signal: string, callback: (...args: any[]) => any): number;
+ emit(
+ signal: K,
+ ...args: GObject.GjsParameters extends [any, ...infer Q] ? Q : never
+ ): void;
+ emit(signal: string, ...args: any[]): void;
+ }
+
+ type ImporterClass = typeof Importer;
+ /**
+ * Name of the imported GIR library
+ * `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
+ */
+ const __name__: string;
+ /**
+ * Version of the imported GIR library
+ * `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
+ */
+ const __version__: string;
+ }
+
+ export default AppmenuGLibTranslator;
+}
+
+declare module 'gi://AppmenuGLibTranslator' {
+ import AppmenuGLibTranslator2402 from 'gi://AppmenuGLibTranslator?version=24.02';
+ export default AppmenuGLibTranslator2402;
+}
+// END
diff --git a/home/ags/files/@girs/astal-3.0.d.ts b/home/ags/files/@girs/astal-3.0.d.ts
new file mode 100644
index 00000000..7b1ca0a9
--- /dev/null
+++ b/home/ags/files/@girs/astal-3.0.d.ts
@@ -0,0 +1,3286 @@
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+///
+
+/**
+ * Type Definitions for Gjs (https://gjs.guide/)
+ *
+ * These type definitions are automatically generated, do not edit them by hand.
+ * If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
+ *
+ * The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
+ */
+
+declare module 'gi://Astal?version=3.0' {
+ // Module dependencies
+ import type AstalIO from 'gi://AstalIO?version=0.1';
+ import type GLib from 'gi://GLib?version=2.0';
+ import type GObject from 'gi://GObject?version=2.0';
+ import type Gio from 'gi://Gio?version=2.0';
+ import type GModule from 'gi://GModule?version=2.0';
+ import type Gdk from 'gi://Gdk?version=3.0';
+ import type cairo from 'cairo';
+ import type Pango from 'gi://Pango?version=1.0';
+ import type HarfBuzz from 'gi://HarfBuzz?version=0.0';
+ import type freetype2 from 'gi://freetype2?version=2.0';
+ import type GdkPixbuf from 'gi://GdkPixbuf?version=2.0';
+ import type Gtk from 'gi://Gtk?version=3.0';
+ import type xlib from 'gi://xlib?version=2.0';
+ import type Atk from 'gi://Atk?version=1.0';
+
+ export namespace Astal {
+ /**
+ * Astal-3.0
+ */
+
+ export namespace MouseButton {
+ export const $gtype: GObject.GType;
+ }
+
+ enum MouseButton {
+ PRIMARY,
+ MIDDLE,
+ SECONDARY,
+ BACK,
+ FORWARD,
+ }
+
+ export namespace Exclusivity {
+ export const $gtype: GObject.GType;
+ }
+
+ enum Exclusivity {
+ NORMAL,
+ /**
+ * Request the compositor to allocate space for this window.
+ */
+ EXCLUSIVE,
+ /**
+ * Request the compositor to stack layers on top of each other.
+ */
+ IGNORE,
+ }
+
+ export namespace Layer {
+ export const $gtype: GObject.GType;
+ }
+
+ enum Layer {
+ BACKGROUND,
+ BOTTOM,
+ TOP,
+ OVERLAY,
+ }
+
+ export namespace Keymode {
+ export const $gtype: GObject.GType;
+ }
+
+ enum Keymode {
+ /**
+ * Window should not receive keyboard events.
+ */
+ NONE,
+ /**
+ * Window should have exclusive focus if it is on the top or overlay layer.
+ */
+ EXCLUSIVE,
+ /**
+ * Focus and Unfocues the window as needed.
+ */
+ ON_DEMAND,
+ }
+ const MAJOR_VERSION: number;
+ const MINOR_VERSION: number;
+ const MICRO_VERSION: number;
+ const VERSION: string;
+ function widget_set_css(widget: Gtk.Widget, css: string): void;
+ function widget_get_css(widget: Gtk.Widget): string;
+ function widget_set_class_names(widget: Gtk.Widget, class_names: string[]): void;
+ function widget_get_class_names(widget: Gtk.Widget): string[];
+ function widget_toggle_class_name(widget: Gtk.Widget, class_name: string, condition: boolean): void;
+ function widget_set_cursor(widget: Gtk.Widget, cursor: string): void;
+ function widget_get_cursor(widget: Gtk.Widget): string;
+ function widget_set_click_through(widget: Gtk.Widget, click_through: boolean): void;
+ function widget_get_click_through(widget: Gtk.Widget): boolean;
+
+ export namespace WindowAnchor {
+ export const $gtype: GObject.GType;
+ }
+
+ enum WindowAnchor {
+ NONE,
+ TOP,
+ RIGHT,
+ LEFT,
+ BOTTOM,
+ }
+ namespace Box {
+ // Signal signatures
+ interface SignalSignatures extends Gtk.Box.SignalSignatures {
+ 'notify::vertical': (pspec: GObject.ParamSpec) => void;
+ 'notify::children': (pspec: GObject.ParamSpec) => void;
+ 'notify::child': (pspec: GObject.ParamSpec) => void;
+ 'notify::baseline-position': (pspec: GObject.ParamSpec) => void;
+ 'notify::homogeneous': (pspec: GObject.ParamSpec) => void;
+ 'notify::spacing': (pspec: GObject.ParamSpec) => void;
+ 'notify::border-width': (pspec: GObject.ParamSpec) => void;
+ 'notify::resize-mode': (pspec: GObject.ParamSpec) => void;
+ 'notify::app-paintable': (pspec: GObject.ParamSpec) => void;
+ 'notify::can-default': (pspec: GObject.ParamSpec) => void;
+ 'notify::can-focus': (pspec: GObject.ParamSpec) => void;
+ 'notify::composite-child': (pspec: GObject.ParamSpec) => void;
+ 'notify::double-buffered': (pspec: GObject.ParamSpec) => void;
+ 'notify::events': (pspec: GObject.ParamSpec) => void;
+ 'notify::expand': (pspec: GObject.ParamSpec) => void;
+ 'notify::focus-on-click': (pspec: GObject.ParamSpec) => void;
+ 'notify::halign': (pspec: GObject.ParamSpec) => void;
+ 'notify::has-default': (pspec: GObject.ParamSpec) => void;
+ 'notify::has-focus': (pspec: GObject.ParamSpec) => void;
+ 'notify::has-tooltip': (pspec: GObject.ParamSpec) => void;
+ 'notify::height-request': (pspec: GObject.ParamSpec) => void;
+ 'notify::hexpand': (pspec: GObject.ParamSpec) => void;
+ 'notify::hexpand-set': (pspec: GObject.ParamSpec) => void;
+ 'notify::is-focus': (pspec: GObject.ParamSpec) => void;
+ 'notify::margin': (pspec: GObject.ParamSpec) => void;
+ 'notify::margin-bottom': (pspec: GObject.ParamSpec) => void;
+ 'notify::margin-end': (pspec: GObject.ParamSpec) => void;
+ 'notify::margin-left': (pspec: GObject.ParamSpec) => void;
+ 'notify::margin-right': (pspec: GObject.ParamSpec) => void;
+ 'notify::margin-start': (pspec: GObject.ParamSpec) => void;
+ 'notify::margin-top': (pspec: GObject.ParamSpec) => void;
+ 'notify::name': (pspec: GObject.ParamSpec) => void;
+ 'notify::no-show-all': (pspec: GObject.ParamSpec) => void;
+ 'notify::opacity': (pspec: GObject.ParamSpec) => void;
+ 'notify::parent': (pspec: GObject.ParamSpec) => void;
+ 'notify::receives-default': (pspec: GObject.ParamSpec) => void;
+ 'notify::scale-factor': (pspec: GObject.ParamSpec) => void;
+ 'notify::sensitive': (pspec: GObject.ParamSpec) => void;
+ 'notify::style': (pspec: GObject.ParamSpec) => void;
+ 'notify::tooltip-markup': (pspec: GObject.ParamSpec) => void;
+ 'notify::tooltip-text': (pspec: GObject.ParamSpec) => void;
+ 'notify::valign': (pspec: GObject.ParamSpec) => void;
+ 'notify::vexpand': (pspec: GObject.ParamSpec) => void;
+ 'notify::vexpand-set': (pspec: GObject.ParamSpec) => void;
+ 'notify::visible': (pspec: GObject.ParamSpec) => void;
+ 'notify::width-request': (pspec: GObject.ParamSpec) => void;
+ 'notify::window': (pspec: GObject.ParamSpec) => void;
+ }
+
+ // Constructor properties interface
+
+ interface ConstructorProps extends Gtk.Box.ConstructorProps {
+ vertical: boolean;
+ children: Gtk.Widget[];
+ child: Gtk.Widget;
+ }
+ }
+
+ class Box extends Gtk.Box {
+ static $gtype: GObject.GType;
+
+ // Properties
+
+ /**
+ * Corresponds to [property`Gtk`.Orientable :orientation].
+ */
+ get vertical(): boolean;
+ set vertical(val: boolean);
+ get children(): Gtk.Widget[];
+ set children(val: Gtk.Widget[]);
+ get child(): Gtk.Widget;
+ set child(val: Gtk.Widget);
+
+ /**
+ * Compile-time signal type information.
+ *
+ * This instance property is generated only for TypeScript type checking.
+ * It is not defined at runtime and should not be accessed in JS code.
+ * @internal
+ */
+ $signals: Box.SignalSignatures;
+
+ // Constructors
+
+ constructor(properties?: Partial, ...args: any[]);
+
+ _init(...args: any[]): void;
+
+ static ['new'](vertical: boolean, children: Gtk.Widget[]): Box;
+ // Conflicted with Gtk.Box.new
+
+ static ['new'](...args: never[]): any;
+
+ // Signals
+
+ connect(
+ signal: K,
+ callback: GObject.SignalCallback,
+ ): number;
+ connect(signal: string, callback: (...args: any[]) => any): number;
+ connect_after(
+ signal: K,
+ callback: GObject.SignalCallback,
+ ): number;
+ connect_after(signal: string, callback: (...args: any[]) => any): number;
+ emit(
+ signal: K,
+ ...args: GObject.GjsParameters extends [any, ...infer Q] ? Q : never
+ ): void;
+ emit(signal: string, ...args: any[]): void;
+
+ // Methods
+
+ get_vertical(): boolean;
+ set_vertical(value: boolean): void;
+ get_children(): Gtk.Widget[];
+ set_children(value: Gtk.Widget[]): void;
+ get_child(): Gtk.Widget;
+ set_child(value: Gtk.Widget): void;
+ }
+
+ namespace Button {
+ // Signal signatures
+ interface SignalSignatures extends Gtk.Button.SignalSignatures {
+ hover: (arg0: HoverEvent) => void;
+ 'hover-lost': (arg0: HoverEvent) => void;
+ click: (arg0: ClickEvent) => void;
+ 'click-release': (arg0: ClickEvent) => void;
+ scroll: (arg0: ScrollEvent) => void;
+ 'notify::always-show-image': (pspec: GObject.ParamSpec) => void;
+ 'notify::image': (pspec: GObject.ParamSpec) => void;
+ 'notify::image-position': (pspec: GObject.ParamSpec) => void;
+ 'notify::label': (pspec: GObject.ParamSpec) => void;
+ 'notify::relief': (pspec: GObject.ParamSpec) => void;
+ 'notify::use-stock': (pspec: GObject.ParamSpec) => void;
+ 'notify::use-underline': (pspec: GObject.ParamSpec) => void;
+ 'notify::xalign': (pspec: GObject.ParamSpec) => void;
+ 'notify::yalign': (pspec: GObject.ParamSpec) => void;
+ 'notify::border-width': (pspec: GObject.ParamSpec) => void;
+ 'notify::child': (pspec: GObject.ParamSpec) => void;
+ 'notify::resize-mode': (pspec: GObject.ParamSpec) => void;
+ 'notify::app-paintable': (pspec: GObject.ParamSpec) => void;
+ 'notify::can-default': (pspec: GObject.ParamSpec) => void;
+ 'notify::can-focus': (pspec: GObject.ParamSpec) => void;
+ 'notify::composite-child': (pspec: GObject.ParamSpec) => void;
+ 'notify::double-buffered': (pspec: GObject.ParamSpec) => void;
+ 'notify::events': (pspec: GObject.ParamSpec) => void;
+ 'notify::expand': (pspec: GObject.ParamSpec) => void;
+ 'notify::focus-on-click': (pspec: GObject.ParamSpec) => void;
+ 'notify::halign': (pspec: GObject.ParamSpec) => void;
+ 'notify::has-default': (pspec: GObject.ParamSpec) => void;
+ 'notify::has-focus': (pspec: GObject.ParamSpec) => void;
+ 'notify::has-tooltip': (pspec: GObject.ParamSpec) => void;
+ 'notify::height-request': (pspec: GObject.ParamSpec) => void;
+ 'notify::hexpand': (pspec: GObject.ParamSpec) => void;
+ 'notify::hexpand-set': (pspec: GObject.ParamSpec) => void;
+ 'notify::is-focus': (pspec: GObject.ParamSpec) => void;
+ 'notify::margin': (pspec: GObject.ParamSpec) => void;
+ 'notify::margin-bottom': (pspec: GObject.ParamSpec) => void;
+ 'notify::margin-end': (pspec: GObject.ParamSpec) => void;
+ 'notify::margin-left': (pspec: GObject.ParamSpec) => void;
+ 'notify::margin-right': (pspec: GObject.ParamSpec) => void;
+ 'notify::margin-start': (pspec: GObject.ParamSpec) => void;
+ 'notify::margin-top': (pspec: GObject.ParamSpec) => void;
+ 'notify::name': (pspec: GObject.ParamSpec) => void;
+ 'notify::no-show-all': (pspec: GObject.ParamSpec) => void;
+ 'notify::opacity': (pspec: GObject.ParamSpec) => void;
+ 'notify::parent': (pspec: GObject.ParamSpec) => void;
+ 'notify::receives-default': (pspec: GObject.ParamSpec) => void;
+ 'notify::scale-factor': (pspec: GObject.ParamSpec) => void;
+ 'notify::sensitive': (pspec: GObject.ParamSpec) => void;
+ 'notify::style': (pspec: GObject.ParamSpec) => void;
+ 'notify::tooltip-markup': (pspec: GObject.ParamSpec) => void;
+ 'notify::tooltip-text': (pspec: GObject.ParamSpec) => void;
+ 'notify::valign': (pspec: GObject.ParamSpec) => void;
+ 'notify::vexpand': (pspec: GObject.ParamSpec) => void;
+ 'notify::vexpand-set': (pspec: GObject.ParamSpec) => void;
+ 'notify::visible': (pspec: GObject.ParamSpec) => void;
+ 'notify::width-request': (pspec: GObject.ParamSpec) => void;
+ 'notify::window': (pspec: GObject.ParamSpec) => void;
+ }
+
+ // Constructor properties interface
+
+ interface ConstructorProps extends Gtk.Button.ConstructorProps {}
+ }
+
+ /**
+ * This button has no extra functionality on top if its base [class`Gtk`.Button] class.
+ * The purpose of this Button subclass is to have a destructable struct as the argument in GJS event handlers.
+ */
+ class Button extends Gtk.Button {
+ static $gtype: GObject.GType