Compare commits

...

13 Commits

Author SHA1 Message Date
Thomas Avé 14cefceba4 Back to old ags 2025-07-18 12:52:29 +02:00
Thomas Avé 6231770123 disable remote fzgo 2025-07-14 17:45:21 +02:00
Thomas Avé 9ad6527d69 Lazygit update 2025-07-14 17:44:54 +02:00
Thomas Avé 8f189802a2 Fix kitty copy/paste 2025-07-11 13:05:49 +02:00
Thomas Avé d773883c02 Merge branch 'master' of git.thomasave.be:thomasave/dotfiles 2025-07-11 12:21:44 +02:00
Thomas Avé 7ee1cd7112 Exclude resources from backup 2025-07-11 12:21:22 +02:00
Thomas Avé 6bb8808fc2 Fix ags font weight 2025-07-11 12:18:43 +02:00
Thomas Avé 1a2bef6b9b Add notification timeout 2025-07-11 11:47:47 +02:00
Thomas Avé 77825859ec Add gocryptfs 2025-07-11 11:31:35 +02:00
Thomas Avé 1cb83a2ec5 Add Zellij 2025-07-10 13:10:56 +02:00
Thomas Avé b0afcbb290 Update flake.lock 2025-07-09 18:51:03 +02:00
Thomas Avé ffed9ee873 Ported to new ags version 2025-07-09 18:50:26 +02:00
Thomas Avé c5712bb3d4 Disable DNS on riva 2025-06-26 20:41:07 +02:00
98 changed files with 963058 additions and 796 deletions

View File

@ -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": 1750304462,
"narHash": "sha256-Mj5t4yX05/rXnRqJkpoLZTWqgStB88Mr/fegTRqyiWc=",
"lastModified": 1751990210,
"narHash": "sha256-krWErNDl9ggMLSfK00Q2BcoSk3+IRTSON/DiDgUzzMw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "863842639722dd12ae9e37ca83bcb61a63b36f6c",
"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": 1750134718,
"narHash": "sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI=",
"lastModified": 1751792365,
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9e83b64f727c88a7711a2c463a7b16eedb69a84c",
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
"type": "github"
},
"original": {
@ -213,11 +230,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1750134718,
"narHash": "sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI=",
"lastModified": 1751792365,
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "9e83b64f727c88a7711a2c463a7b16eedb69a84c",
"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": 1750323839,
"narHash": "sha256-r2Izw07xe5JEWLjQLI4Y3C/Sw2VNBGNmnZTVWtOyzlg=",
"lastModified": 1752056583,
"narHash": "sha256-dtBwaZET1p20izsqoIDnx7BzU25t7AwaoVmnCgv9kqw=",
"owner": "nix-community",
"repo": "NUR",
"rev": "7f1902da6a047ccffbbb809b98205d08cd5df509",
"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",

View File

@ -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
@ -45,9 +42,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:${

View File

@ -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

View File

@ -2,7 +2,6 @@
{
# add the home manager module
imports = [ inputs.ags.homeManagerModules.default ];
programs.ags = {
enable = true;
@ -11,6 +10,7 @@
extraPackages = with inputs.ags.packages.${pkgs.system}; [
pkgs.gtksourceview
pkgs.accountsservice
pkgs.libadwaita
battery
hyprland

View File

@ -0,0 +1,980 @@
/// <reference path="./gio-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gmodule-2.0.d.ts" />
/**
* 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<UserAccountType>;
}
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<UserManagerError>;
// 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<UserPasswordMode>;
}
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<User>;
// 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 users 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 wasnt 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<User.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect<K extends keyof User.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, User.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof User.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, User.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof User.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<User.SignalSignatures[K]> 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 users 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 users 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<UserManager>;
// 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<UserManager.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect<K extends keyof UserManager.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, UserManager.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof UserManager.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, UserManager.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof UserManager.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<UserManager.SignalSignatures[K]> 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<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
* @param callback a #GAsyncReadyCallback to call when the request is satisfied
*/
cache_user_async(
username: string,
cancellable: Gio.Cancellable | null,
callback: Gio.AsyncReadyCallback<this> | 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<this> | null,
): Promise<User> | 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<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
* @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<this> | 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<this> | null,
): Promise<User> | 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<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
* @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<this> | 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<this> | null,
): Promise<boolean> | 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<boolean>;
uncache_user_async(
username: string,
cancellable: Gio.Cancellable | null,
callback: Gio.AsyncReadyCallback<this> | null,
): void;
uncache_user_async(
username: string,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): Promise<boolean> | 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

View File

@ -0,0 +1,118 @@
/// <reference path="./gio-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gmodule-2.0.d.ts" />
/**
* 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<Importer>;
// 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<Importer.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](bus_name: string, object_path: string): Importer;
// Signals
connect<K extends keyof Importer.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Importer.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Importer.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Importer.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Importer.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Importer.SignalSignatures[K]> 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

3286
home/ags/files/@girs/astal-3.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

1922
home/ags/files/@girs/astal-4.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

465
home/ags/files/@girs/astalapps-0.1.d.ts vendored Normal file
View File

@ -0,0 +1,465 @@
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://AstalApps?version=0.1' {
// Module dependencies
import type GLib from 'gi://GLib?version=2.0';
import type GObject from 'gi://GObject?version=2.0';
export namespace AstalApps {
/**
* AstalApps-0.1
*/
const MAJOR_VERSION: number;
const MINOR_VERSION: number;
const MICRO_VERSION: number;
const VERSION: string;
namespace Application {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {
'notify::app': (pspec: GObject.ParamSpec) => void;
'notify::frequency': (pspec: GObject.ParamSpec) => void;
'notify::name': (pspec: GObject.ParamSpec) => void;
'notify::entry': (pspec: GObject.ParamSpec) => void;
'notify::description': (pspec: GObject.ParamSpec) => void;
'notify::wm-class': (pspec: GObject.ParamSpec) => void;
'notify::executable': (pspec: GObject.ParamSpec) => void;
'notify::icon-name': (pspec: GObject.ParamSpec) => void;
'notify::keywords': (pspec: GObject.ParamSpec) => void;
'notify::categories': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
app: never;
frequency: number;
name: string;
entry: string;
description: string;
wm_class: string;
wmClass: string;
executable: string;
icon_name: string;
iconName: string;
keywords: string[];
categories: string[];
}
}
/**
* Object representing an applications .desktop file.
*/
class Application extends GObject.Object {
static $gtype: GObject.GType<Application>;
// Properties
/**
* The underlying DesktopAppInfo.
*/
get app(): never;
set app(val: never);
/**
* The number of times [method`AstalApps`.Application.launch] was called on this Application.
*/
get frequency(): number;
set frequency(val: number);
/**
* The name of this Application.
*/
get name(): string;
/**
* Name of the .desktop of this Application.
*/
get entry(): string;
/**
* Description of this Application.
*/
get description(): string;
/**
* `StartupWMClass` field from the desktop file. This represents the `WM_CLASS` property of the main window of the application.
*/
get wm_class(): string;
/**
* `StartupWMClass` field from the desktop file. This represents the `WM_CLASS` property of the main window of the application.
*/
get wmClass(): string;
/**
* `Exec` field from the desktop file. Note that if you want to launch this Application you should use the [method@
* AstalApps.Application.launch] method.
*/
get executable(): string;
/**
* `Icon` field from the desktop file. This is usually a named icon or a path to a file.
*/
get icon_name(): string;
/**
* `Icon` field from the desktop file. This is usually a named icon or a path to a file.
*/
get iconName(): string;
/**
* `Keywords` field from the desktop file.
*/
get keywords(): string[];
/**
* `Categories` field from the desktop file.
*/
get categories(): 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: Application.SignalSignatures;
// Constructors
constructor(properties?: Partial<Application.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect<K extends keyof Application.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Application.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Application.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Application.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Application.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Application.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Methods
/**
* Get a value from the .desktop file by its key.
* @param key
*/
get_key(key: string): string;
/**
* Launches this application. The launched application inherits the environment of the launching process
*/
launch(): boolean;
/**
* Calculate a score for an application using fuzzy matching algorithm.
* @param term
*/
fuzzy_match(term: string): Score;
/**
* Calculate a score using exact string algorithm.
* @param term
*/
exact_match(term: string): Score;
get_app(): never;
set_app(value: never): void;
get_frequency(): number;
set_frequency(value: number): void;
get_name(): string;
get_entry(): string;
get_description(): string;
get_wm_class(): string;
get_executable(): string;
get_icon_name(): string;
get_keywords(): string[];
get_categories(): string[];
}
namespace Apps {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {
'notify::show-hidden': (pspec: GObject.ParamSpec) => void;
'notify::list': (pspec: GObject.ParamSpec) => void;
'notify::min-score': (pspec: GObject.ParamSpec) => void;
'notify::name-multiplier': (pspec: GObject.ParamSpec) => void;
'notify::entry-multiplier': (pspec: GObject.ParamSpec) => void;
'notify::executable-multiplier': (pspec: GObject.ParamSpec) => void;
'notify::description-multiplier': (pspec: GObject.ParamSpec) => void;
'notify::keywords-multiplier': (pspec: GObject.ParamSpec) => void;
'notify::categories-multiplier': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
show_hidden: boolean;
showHidden: boolean;
list: Application[];
min_score: number;
minScore: number;
name_multiplier: number;
nameMultiplier: number;
entry_multiplier: number;
entryMultiplier: number;
executable_multiplier: number;
executableMultiplier: number;
description_multiplier: number;
descriptionMultiplier: number;
keywords_multiplier: number;
keywordsMultiplier: number;
categories_multiplier: number;
categoriesMultiplier: number;
}
}
/**
* This object can be used to query applications. Multipliers can be set to customize [struct`AstalApps`.Score] results from queries which
* then are summed and sorted accordingly.
*/
class Apps extends GObject.Object {
static $gtype: GObject.GType<Apps>;
// Properties
/**
* Indicates wether hidden applications should included in queries.
*/
get show_hidden(): boolean;
set show_hidden(val: boolean);
/**
* Indicates wether hidden applications should included in queries.
*/
get showHidden(): boolean;
set showHidden(val: boolean);
/**
* Full list of available applications.
*/
get list(): Application[];
/**
* The minimum score the application has to meet in order to be included in queries.
*/
get min_score(): number;
set min_score(val: number);
/**
* The minimum score the application has to meet in order to be included in queries.
*/
get minScore(): number;
set minScore(val: number);
/**
* Extra multiplier to apply when matching the `name` of an application. Defaults to `2`
*/
get name_multiplier(): number;
set name_multiplier(val: number);
/**
* Extra multiplier to apply when matching the `name` of an application. Defaults to `2`
*/
get nameMultiplier(): number;
set nameMultiplier(val: number);
/**
* Extra multiplier to apply when matching the entry of an application. Defaults to `0`
*/
get entry_multiplier(): number;
set entry_multiplier(val: number);
/**
* Extra multiplier to apply when matching the entry of an application. Defaults to `0`
*/
get entryMultiplier(): number;
set entryMultiplier(val: number);
/**
* Extra multiplier to apply when matching the executable of an application. Defaults to `0.5`
*/
get executable_multiplier(): number;
set executable_multiplier(val: number);
/**
* Extra multiplier to apply when matching the executable of an application. Defaults to `0.5`
*/
get executableMultiplier(): number;
set executableMultiplier(val: number);
/**
* Extra multiplier to apply when matching the description of an application. Defaults to `0`
*/
get description_multiplier(): number;
set description_multiplier(val: number);
/**
* Extra multiplier to apply when matching the description of an application. Defaults to `0`
*/
get descriptionMultiplier(): number;
set descriptionMultiplier(val: number);
/**
* Extra multiplier to apply when matching the keywords of an application. Defaults to `0.5`
*/
get keywords_multiplier(): number;
set keywords_multiplier(val: number);
/**
* Extra multiplier to apply when matching the keywords of an application. Defaults to `0.5`
*/
get keywordsMultiplier(): number;
set keywordsMultiplier(val: number);
/**
* Extra multiplier to apply when matching the categories of an application. Defaults to `0`
*/
get categories_multiplier(): number;
set categories_multiplier(val: number);
/**
* Extra multiplier to apply when matching the categories of an application. Defaults to `0`
*/
get categoriesMultiplier(): number;
set categoriesMultiplier(val: number);
/**
* 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: Apps.SignalSignatures;
// Constructors
constructor(properties?: Partial<Apps.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Apps;
// Signals
connect<K extends keyof Apps.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Apps.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Apps.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Apps.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Apps.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Apps.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Methods
/**
* Calculate a score for an application using fuzzy matching algorithm. Taking this Apps' include settings into consideration .
* @param search
* @param a
*/
fuzzy_score(search: string, a: Application): number;
/**
* Calculate a score for an application using exact string algorithm. Taking this Apps' include settings into consideration .
* @param search
* @param a
*/
exact_score(search: string, a: Application): number;
/**
* Query the `list` of applications with a fuzzy matching algorithm.
* @param search
*/
fuzzy_query(search?: string | null): Application[];
/**
* Query the `list` of applications with a simple string matching algorithm.
* @param search
*/
exact_query(search?: string | null): Application[];
/**
* Reload the `list` of Applications.
*/
reload(): void;
get_show_hidden(): boolean;
set_show_hidden(value: boolean): void;
get_list(): Application[];
get_min_score(): number;
set_min_score(value: number): void;
get_name_multiplier(): number;
set_name_multiplier(value: number): void;
get_entry_multiplier(): number;
set_entry_multiplier(value: number): void;
get_executable_multiplier(): number;
set_executable_multiplier(value: number): void;
get_description_multiplier(): number;
set_description_multiplier(value: number): void;
get_keywords_multiplier(): number;
set_keywords_multiplier(value: number): void;
get_categories_multiplier(): number;
set_categories_multiplier(value: number): void;
}
type ApplicationClass = typeof Application;
abstract class ApplicationPrivate {
static $gtype: GObject.GType<ApplicationPrivate>;
// Constructors
_init(...args: any[]): void;
}
type AppsClass = typeof Apps;
abstract class AppsPrivate {
static $gtype: GObject.GType<AppsPrivate>;
// Constructors
_init(...args: any[]): void;
}
class Score {
static $gtype: GObject.GType<Score>;
// Fields
name: number;
entry: number;
executable: number;
description: number;
keywords: number;
categories: number;
// Constructors
constructor(
properties?: Partial<{
name: number;
entry: number;
executable: number;
description: number;
keywords: number;
categories: number;
}>,
);
_init(...args: any[]): void;
}
/**
* 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 AstalApps;
}
declare module 'gi://AstalApps' {
import AstalApps01 from 'gi://AstalApps?version=0.1';
export default AstalApps01;
}
// END

View File

@ -0,0 +1,778 @@
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://AstalBattery?version=0.1' {
// Module dependencies
import type GLib from 'gi://GLib?version=2.0';
import type GObject from 'gi://GObject?version=2.0';
export namespace AstalBattery {
/**
* AstalBattery-0.1
*/
export namespace State {
export const $gtype: GObject.GType<State>;
}
enum State {
UNKNOWN,
CHARGING,
DISCHARGING,
EMPTY,
FULLY_CHARGED,
PENDING_CHARGE,
PENDING_DISCHARGE,
}
export namespace Technology {
export const $gtype: GObject.GType<Technology>;
}
enum Technology {
UNKNOWN,
LITHIUM_ION,
LITHIUM_POLYMER,
LITHIUM_IRON_PHOSPHATE,
LEAD_ACID,
NICKEL_CADMIUM,
NICKEL_METAL_HYDRIDE,
}
export namespace WarningLevel {
export const $gtype: GObject.GType<WarningLevel>;
}
enum WarningLevel {
UNKNOWN,
NONE,
DISCHARGING,
LOW,
CRITICIAL,
ACTION,
}
export namespace BatteryLevel {
export const $gtype: GObject.GType<BatteryLevel>;
}
enum BatteryLevel {
UNKNOWN,
NONE,
LOW,
CRITICIAL,
NORMAL,
HIGH,
FULL,
}
export namespace Type {
export const $gtype: GObject.GType<Type>;
}
enum Type {
UNKNOWN,
LINE_POWER,
BATTERY,
UPS,
MONITOR,
MOUSE,
KEYBOARD,
PDA,
PHONE,
MEDIA_PLAYER,
TABLET,
COMPUTER,
GAMING_INPUT,
PEN,
TOUCHPAD,
MODEM,
NETWORK,
HEADSET,
SPEAKERS,
HEADPHONES,
VIDEO,
OTHER_AUDIO,
REMOVE_CONTROL,
PRINTER,
SCANNER,
CAMERA,
WEARABLE,
TOY,
BLUETOOTH_GENERIC,
}
const MAJOR_VERSION: number;
const MINOR_VERSION: number;
const MICRO_VERSION: number;
const VERSION: string;
/**
* Get the DisplayDevice.
*/
function get_default(): Device;
namespace Device {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {
'notify::device-type': (pspec: GObject.ParamSpec) => void;
'notify::native-path': (pspec: GObject.ParamSpec) => void;
'notify::vendor': (pspec: GObject.ParamSpec) => void;
'notify::model': (pspec: GObject.ParamSpec) => void;
'notify::serial': (pspec: GObject.ParamSpec) => void;
'notify::update-time': (pspec: GObject.ParamSpec) => void;
'notify::power-supply': (pspec: GObject.ParamSpec) => void;
'notify::online': (pspec: GObject.ParamSpec) => void;
'notify::energy': (pspec: GObject.ParamSpec) => void;
'notify::energy-empty': (pspec: GObject.ParamSpec) => void;
'notify::energy-full': (pspec: GObject.ParamSpec) => void;
'notify::energy-full-design': (pspec: GObject.ParamSpec) => void;
'notify::energy-rate': (pspec: GObject.ParamSpec) => void;
'notify::voltage': (pspec: GObject.ParamSpec) => void;
'notify::charge-cycles': (pspec: GObject.ParamSpec) => void;
'notify::luminosity': (pspec: GObject.ParamSpec) => void;
'notify::time-to-empty': (pspec: GObject.ParamSpec) => void;
'notify::time-to-full': (pspec: GObject.ParamSpec) => void;
'notify::percentage': (pspec: GObject.ParamSpec) => void;
'notify::temperature': (pspec: GObject.ParamSpec) => void;
'notify::is-present': (pspec: GObject.ParamSpec) => void;
'notify::state': (pspec: GObject.ParamSpec) => void;
'notify::is-rechargable': (pspec: GObject.ParamSpec) => void;
'notify::capacity': (pspec: GObject.ParamSpec) => void;
'notify::technology': (pspec: GObject.ParamSpec) => void;
'notify::warning-level': (pspec: GObject.ParamSpec) => void;
'notify::battery-level': (pspec: GObject.ParamSpec) => void;
'notify::icon-name': (pspec: GObject.ParamSpec) => void;
'notify::charging': (pspec: GObject.ParamSpec) => void;
'notify::is-battery': (pspec: GObject.ParamSpec) => void;
'notify::battery-icon-name': (pspec: GObject.ParamSpec) => void;
'notify::device-type-name': (pspec: GObject.ParamSpec) => void;
'notify::device-type-icon': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
device_type: Type;
deviceType: Type;
native_path: string;
nativePath: string;
vendor: string;
model: string;
serial: string;
update_time: number;
updateTime: number;
power_supply: boolean;
powerSupply: boolean;
online: boolean;
energy: number;
energy_empty: number;
energyEmpty: number;
energy_full: number;
energyFull: number;
energy_full_design: number;
energyFullDesign: number;
energy_rate: number;
energyRate: number;
voltage: number;
charge_cycles: number;
chargeCycles: number;
luminosity: number;
time_to_empty: number;
timeToEmpty: number;
time_to_full: number;
timeToFull: number;
percentage: number;
temperature: number;
is_present: boolean;
isPresent: boolean;
state: State;
is_rechargable: boolean;
isRechargable: boolean;
capacity: number;
technology: Technology;
warning_level: WarningLevel;
warningLevel: WarningLevel;
battery_level: BatteryLevel;
batteryLevel: BatteryLevel;
icon_name: string;
iconName: string;
charging: boolean;
is_battery: boolean;
isBattery: boolean;
battery_icon_name: string;
batteryIconName: string;
device_type_name: string;
deviceTypeName: string;
device_type_icon: string;
deviceTypeIcon: string;
}
}
/**
* Client for a UPower [device](https://upower.freedesktop.org/docs/Device.html).
*/
class Device extends GObject.Object {
static $gtype: GObject.GType<Device>;
// Properties
/**
* If it is [enum`AstalBattery`.Type.BATTERY], you will need to verify that the property power-supply has the value `true` before
* considering it as a laptop battery. Otherwise it will likely be the battery for a device of an unknown type.
*/
get device_type(): Type;
set device_type(val: Type);
/**
* If it is [enum`AstalBattery`.Type.BATTERY], you will need to verify that the property power-supply has the value `true` before
* considering it as a laptop battery. Otherwise it will likely be the battery for a device of an unknown type.
*/
get deviceType(): Type;
set deviceType(val: Type);
/**
* Native path of the power source. This is the sysfs path, for example /sys/devices/LNXSYSTM:00/device:00/PNP0C0A:00/power_supply/BAT0. It is
* blank if the device is being driven by a user space driver.
*/
get native_path(): string;
set native_path(val: string);
/**
* Native path of the power source. This is the sysfs path, for example /sys/devices/LNXSYSTM:00/device:00/PNP0C0A:00/power_supply/BAT0. It is
* blank if the device is being driven by a user space driver.
*/
get nativePath(): string;
set nativePath(val: string);
/**
* Name of the vendor of the battery.
*/
get vendor(): string;
set vendor(val: string);
/**
* Name of the model of this battery.
*/
get model(): string;
set model(val: string);
/**
* Unique serial number of the battery.
*/
get serial(): string;
set serial(val: string);
/**
* The point in time (seconds since the Epoch) that data was read from the power source.
*/
get update_time(): number;
set update_time(val: number);
/**
* The point in time (seconds since the Epoch) that data was read from the power source.
*/
get updateTime(): number;
set updateTime(val: number);
/**
* If the power device is used to supply the system. This would be set `true` for laptop batteries and UPS devices, but set to `false` for
* wireless mice or PDAs.
*/
get power_supply(): boolean;
set power_supply(val: boolean);
/**
* If the power device is used to supply the system. This would be set `true` for laptop batteries and UPS devices, but set to `false` for
* wireless mice or PDAs.
*/
get powerSupply(): boolean;
set powerSupply(val: boolean);
/**
* Whether power is currently being provided through line power.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.LINE_POWER].
*/
get online(): boolean;
set online(val: boolean);
/**
* Amount of energy (measured in Wh) currently available in the power source.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get energy(): number;
set energy(val: number);
/**
* Amount of energy (measured in Wh) in the power source when it's considered to be empty.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get energy_empty(): number;
set energy_empty(val: number);
/**
* Amount of energy (measured in Wh) in the power source when it's considered to be empty.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get energyEmpty(): number;
set energyEmpty(val: number);
/**
* Amount of energy (measured in Wh) in the power source when it's considered full.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get energy_full(): number;
set energy_full(val: number);
/**
* Amount of energy (measured in Wh) in the power source when it's considered full.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get energyFull(): number;
set energyFull(val: number);
/**
* Amount of energy (measured in Wh) the power source is designed to hold when it's considered full.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get energy_full_design(): number;
set energy_full_design(val: number);
/**
* Amount of energy (measured in Wh) the power source is designed to hold when it's considered full.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get energyFullDesign(): number;
set energyFullDesign(val: number);
/**
* Amount of energy being drained from the source, measured in W. If positive, the source is being discharged, if negative it's being charged.
*
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get energy_rate(): number;
set energy_rate(val: number);
/**
* Amount of energy being drained from the source, measured in W. If positive, the source is being discharged, if negative it's being charged.
*
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get energyRate(): number;
set energyRate(val: number);
/**
* Voltage in the Cell or being recorded by the meter.
*/
get voltage(): number;
set voltage(val: number);
/**
* The number of charge cycles as defined by the TCO certification, or -1 if that value is unknown or not applicable.
*/
get charge_cycles(): number;
set charge_cycles(val: number);
/**
* The number of charge cycles as defined by the TCO certification, or -1 if that value is unknown or not applicable.
*/
get chargeCycles(): number;
set chargeCycles(val: number);
/**
* Luminosity being recorded by the meter.
*/
get luminosity(): number;
set luminosity(val: number);
/**
* Number of seconds until the power source is considered empty. Is set to 0 if unknown.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get time_to_empty(): number;
set time_to_empty(val: number);
/**
* Number of seconds until the power source is considered empty. Is set to 0 if unknown.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get timeToEmpty(): number;
set timeToEmpty(val: number);
/**
* Number of seconds until the power source is considered full. Is set to 0 if unknown.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get time_to_full(): number;
set time_to_full(val: number);
/**
* Number of seconds until the power source is considered full. Is set to 0 if unknown.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get timeToFull(): number;
set timeToFull(val: number);
/**
* The amount of energy left in the power source expressed as a percentage between 0 and 1.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY]. The percentage
* will be an approximation if [property`AstalBattery`.Device:battery_level] is set to something other than None.
*/
get percentage(): number;
set percentage(val: number);
/**
* The temperature of the device in degrees Celsius.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get temperature(): number;
set temperature(val: number);
/**
* If the power source is present in the bay.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get is_present(): boolean;
set is_present(val: boolean);
/**
* If the power source is present in the bay.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get isPresent(): boolean;
set isPresent(val: boolean);
/**
* The battery power state.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get state(): State;
set state(val: State);
/**
* If the power source is rechargeable.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get is_rechargable(): boolean;
set is_rechargable(val: boolean);
/**
* If the power source is rechargeable.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get isRechargable(): boolean;
set isRechargable(val: boolean);
/**
* The capacity of the power source expressed as a percentage between 0 and 1.
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get capacity(): number;
set capacity(val: number);
/**
* Technology used in the battery:
* This property is only valid if [property`AstalBattery`.Device:device_type] is [enum`AstalBattery`.Type.BATTERY].
*/
get technology(): Technology;
set technology(val: Technology);
/**
* Warning level of the battery.
*/
get warning_level(): WarningLevel;
set warning_level(val: WarningLevel);
/**
* Warning level of the battery.
*/
get warningLevel(): WarningLevel;
set warningLevel(val: WarningLevel);
/**
* The level of the battery for devices which do not report a percentage but rather a coarse battery level. If the value is None. then the device
* does not support coarse battery reporting, and the [property`AstalBattery`.Device:percentage] should be used instead.
*/
get battery_level(): BatteryLevel;
set battery_level(val: BatteryLevel);
/**
* The level of the battery for devices which do not report a percentage but rather a coarse battery level. If the value is None. then the device
* does not support coarse battery reporting, and the [property`AstalBattery`.Device:percentage] should be used instead.
*/
get batteryLevel(): BatteryLevel;
set batteryLevel(val: BatteryLevel);
/**
* An icon name representing this Device.
* NOTE: [property`AstalBattery`.Device:battery_icon_name] might be a better fit as it is calculated from percentage.
*/
get icon_name(): string;
set icon_name(val: string);
/**
* An icon name representing this Device.
* NOTE: [property`AstalBattery`.Device:battery_icon_name] might be a better fit as it is calculated from percentage.
*/
get iconName(): string;
set iconName(val: string);
/**
* Indicates if [property`AstalBattery`.Device:state] is charging or fully charged.
*/
get charging(): boolean;
set charging(val: boolean);
/**
* Indicates if [property`AstalBattery`.Device:device_type] is not line power or unknown.
*/
get is_battery(): boolean;
set is_battery(val: boolean);
/**
* Indicates if [property`AstalBattery`.Device:device_type] is not line power or unknown.
*/
get isBattery(): boolean;
set isBattery(val: boolean);
/**
* An icon name in the form of "battery-level-$percentage-$state-symbolic".
*/
get battery_icon_name(): string;
set battery_icon_name(val: string);
/**
* An icon name in the form of "battery-level-$percentage-$state-symbolic".
*/
get batteryIconName(): string;
set batteryIconName(val: string);
/**
* A string representation of this device's [property`AstalBattery`.Device:device_type].
*/
get device_type_name(): string;
set device_type_name(val: string);
/**
* A string representation of this device's [property`AstalBattery`.Device:device_type].
*/
get deviceTypeName(): string;
set deviceTypeName(val: string);
/**
* An icon name that can be used to represent this device's [property`AstalBattery`.Device:device_type].
*/
get device_type_icon(): string;
set device_type_icon(val: string);
/**
* An icon name that can be used to represent this device's [property`AstalBattery`.Device:device_type].
*/
get deviceTypeIcon(): string;
set deviceTypeIcon(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: Device.SignalSignatures;
// Constructors
constructor(properties?: Partial<Device.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](path: never): Device;
// Signals
connect<K extends keyof Device.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Device.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Device.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Device.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Device.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Device.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Static methods
/**
* Get the DisplayDevice.
*/
static get_default(): Device | null;
// Methods
get_device_type(): Type;
get_native_path(): string;
get_vendor(): string;
get_model(): string;
get_serial(): string;
get_update_time(): number;
get_power_supply(): boolean;
get_online(): boolean;
get_energy(): number;
get_energy_empty(): number;
get_energy_full(): number;
get_energy_full_design(): number;
get_energy_rate(): number;
get_voltage(): number;
get_charge_cycles(): number;
get_luminosity(): number;
get_time_to_empty(): number;
get_time_to_full(): number;
get_percentage(): number;
get_temperature(): number;
get_is_present(): boolean;
get_state(): State;
get_is_rechargable(): boolean;
get_capacity(): number;
get_technology(): Technology;
get_warning_level(): WarningLevel;
get_battery_level(): BatteryLevel;
get_icon_name(): string;
get_charging(): boolean;
get_is_battery(): boolean;
get_battery_icon_name(): string;
get_device_type_name(): string;
get_device_type_icon(): string;
}
namespace UPower {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {
'device-added': (arg0: Device) => void;
'device-removed': (arg0: Device) => void;
'notify::devices': (pspec: GObject.ParamSpec) => void;
'notify::display-device': (pspec: GObject.ParamSpec) => void;
'notify::daemon-version': (pspec: GObject.ParamSpec) => void;
'notify::on-battery': (pspec: GObject.ParamSpec) => void;
'notify::lid-is-closed': (pspec: GObject.ParamSpec) => void;
'notify::lid-is-present': (pspec: GObject.ParamSpec) => void;
'notify::critical-action': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
devices: Device[];
display_device: Device;
displayDevice: Device;
daemon_version: string;
daemonVersion: string;
on_battery: boolean;
onBattery: boolean;
lid_is_closed: boolean;
lidIsClosed: boolean;
lid_is_present: boolean;
lidIsPresent: boolean;
critical_action: string;
criticalAction: string;
}
}
/**
* Client for the UPower [dbus interface](https://upower.freedesktop.org/docs/UPower.html).
*/
class UPower extends GObject.Object {
static $gtype: GObject.GType<UPower>;
// Properties
/**
* List of UPower devices.
*/
get devices(): Device[];
/**
* A composite device that represents the battery status.
*/
get display_device(): Device;
/**
* A composite device that represents the battery status.
*/
get displayDevice(): Device;
get daemon_version(): string;
get daemonVersion(): string;
/**
* Indicates whether the system is running on battery power.
*/
get on_battery(): boolean;
/**
* Indicates whether the system is running on battery power.
*/
get onBattery(): boolean;
/**
* Indicates if the laptop lid is closed where the display cannot be seen.
*/
get lid_is_closed(): boolean;
/**
* Indicates if the laptop lid is closed where the display cannot be seen.
*/
get lidIsClosed(): boolean;
/**
* Indicates if the system has a lid device.
*/
get lid_is_present(): boolean;
/**
* Indicates if the system has a lid device.
*/
get lidIsPresent(): boolean;
/**
* When the system's power supply is critical (critically low batteries or UPS), the system will take this action.
*/
get critical_action(): string;
/**
* When the system's power supply is critical (critically low batteries or UPS), the system will take this action.
*/
get criticalAction(): 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: UPower.SignalSignatures;
// Constructors
constructor(properties?: Partial<UPower.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): UPower;
// Signals
connect<K extends keyof UPower.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, UPower.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof UPower.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, UPower.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof UPower.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<UPower.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Methods
get_devices(): Device[];
get_display_device(): Device;
get_daemon_version(): string;
get_on_battery(): boolean;
get_lid_is_closed(): boolean;
get_lid_is_present(): boolean;
get_critical_action(): string;
}
type DeviceClass = typeof Device;
abstract class DevicePrivate {
static $gtype: GObject.GType<DevicePrivate>;
// Constructors
_init(...args: any[]): void;
}
type UPowerClass = typeof UPower;
abstract class UPowerPrivate {
static $gtype: GObject.GType<UPowerPrivate>;
// Constructors
_init(...args: any[]): void;
}
/**
* 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 AstalBattery;
}
declare module 'gi://AstalBattery' {
import AstalBattery01 from 'gi://AstalBattery?version=0.1';
export default AstalBattery01;
}
// END

File diff suppressed because it is too large Load Diff

1208
home/ags/files/@girs/astalio-0.1.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

730
home/ags/files/@girs/astalmpris-0.1.d.ts vendored Normal file
View File

@ -0,0 +1,730 @@
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://AstalMpris?version=0.1' {
// Module dependencies
import type GLib from 'gi://GLib?version=2.0';
import type GObject from 'gi://GObject?version=2.0';
export namespace AstalMpris {
/**
* AstalMpris-0.1
*/
export namespace PlaybackStatus {
export const $gtype: GObject.GType<PlaybackStatus>;
}
enum PlaybackStatus {
PLAYING,
PAUSED,
STOPPED,
}
export namespace Loop {
export const $gtype: GObject.GType<Loop>;
}
enum Loop {
UNSUPPORTED,
/**
* The playback will stop when there are no more tracks to play.
*/
NONE,
/**
* The current track will start again from the begining once it has finished playing.
*/
TRACK,
/**
* The playback loops through a list of tracks.
*/
PLAYLIST,
}
export namespace Shuffle {
export const $gtype: GObject.GType<Shuffle>;
}
enum Shuffle {
UNSUPPORTED,
/**
* Playback is progressing through a playlist in some other order.
*/
ON,
/**
* Playback is progressing linearly through a playlist.
*/
OFF,
}
const MAJOR_VERSION: number;
const MINOR_VERSION: number;
const MICRO_VERSION: number;
const VERSION: string;
/**
* Gets the default singleton Mpris instance.
*/
function get_default(): Mpris;
namespace Mpris {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {
'player-added': (arg0: Player) => void;
'player-closed': (arg0: Player) => void;
'notify::players': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
players: Player[];
}
}
/**
* Object that monitors dbus for players to appear and disappear.
*/
class Mpris extends GObject.Object {
static $gtype: GObject.GType<Mpris>;
// Properties
/**
* List of currently available players.
*/
get players(): Player[];
/**
* 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: Mpris.SignalSignatures;
// Constructors
constructor(properties?: Partial<Mpris.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Mpris;
// Signals
connect<K extends keyof Mpris.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Mpris.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Mpris.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Mpris.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Mpris.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Mpris.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Static methods
/**
* Gets the default singleton Mpris instance.
*/
static get_default(): Mpris;
// Methods
get_players(): Player[];
}
namespace Player {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {
'notify::bus-name': (pspec: GObject.ParamSpec) => void;
'notify::available': (pspec: GObject.ParamSpec) => void;
'notify::can-quit': (pspec: GObject.ParamSpec) => void;
'notify::fullscreen': (pspec: GObject.ParamSpec) => void;
'notify::can-set-fullscreen': (pspec: GObject.ParamSpec) => void;
'notify::can-raise': (pspec: GObject.ParamSpec) => void;
'notify::identity': (pspec: GObject.ParamSpec) => void;
'notify::entry': (pspec: GObject.ParamSpec) => void;
'notify::supported-uri-schemes': (pspec: GObject.ParamSpec) => void;
'notify::supported-mime-types': (pspec: GObject.ParamSpec) => void;
'notify::loop-status': (pspec: GObject.ParamSpec) => void;
'notify::rate': (pspec: GObject.ParamSpec) => void;
'notify::shuffle-status': (pspec: GObject.ParamSpec) => void;
'notify::volume': (pspec: GObject.ParamSpec) => void;
'notify::position': (pspec: GObject.ParamSpec) => void;
'notify::playback-status': (pspec: GObject.ParamSpec) => void;
'notify::minimum-rate': (pspec: GObject.ParamSpec) => void;
'notify::maximum-rate': (pspec: GObject.ParamSpec) => void;
'notify::can-go-next': (pspec: GObject.ParamSpec) => void;
'notify::can-go-previous': (pspec: GObject.ParamSpec) => void;
'notify::can-play': (pspec: GObject.ParamSpec) => void;
'notify::can-pause': (pspec: GObject.ParamSpec) => void;
'notify::can-seek': (pspec: GObject.ParamSpec) => void;
'notify::can-control': (pspec: GObject.ParamSpec) => void;
'notify::metadata': (pspec: GObject.ParamSpec) => void;
'notify::trackid': (pspec: GObject.ParamSpec) => void;
'notify::length': (pspec: GObject.ParamSpec) => void;
'notify::art-url': (pspec: GObject.ParamSpec) => void;
'notify::album': (pspec: GObject.ParamSpec) => void;
'notify::album-artist': (pspec: GObject.ParamSpec) => void;
'notify::artist': (pspec: GObject.ParamSpec) => void;
'notify::lyrics': (pspec: GObject.ParamSpec) => void;
'notify::title': (pspec: GObject.ParamSpec) => void;
'notify::composer': (pspec: GObject.ParamSpec) => void;
'notify::comments': (pspec: GObject.ParamSpec) => void;
'notify::cover-art': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
bus_name: string;
busName: string;
available: boolean;
can_quit: boolean;
canQuit: boolean;
fullscreen: boolean;
can_set_fullscreen: boolean;
canSetFullscreen: boolean;
can_raise: boolean;
canRaise: boolean;
identity: string;
entry: string;
supported_uri_schemes: string[];
supportedUriSchemes: string[];
supported_mime_types: string[];
supportedMimeTypes: string[];
loop_status: Loop;
loopStatus: Loop;
rate: number;
shuffle_status: Shuffle;
shuffleStatus: Shuffle;
volume: number;
position: number;
playback_status: PlaybackStatus;
playbackStatus: PlaybackStatus;
minimum_rate: number;
minimumRate: number;
maximum_rate: number;
maximumRate: number;
can_go_next: boolean;
canGoNext: boolean;
can_go_previous: boolean;
canGoPrevious: boolean;
can_play: boolean;
canPlay: boolean;
can_pause: boolean;
canPause: boolean;
can_seek: boolean;
canSeek: boolean;
can_control: boolean;
canControl: boolean;
metadata: GLib.HashTable<string, GLib.Variant>;
trackid: string;
length: number;
art_url: string;
artUrl: string;
album: string;
album_artist: string;
albumArtist: string;
artist: string;
lyrics: string;
title: string;
composer: string;
comments: string;
cover_art: string;
coverArt: string;
}
}
/**
* Object which tracks players through their mpris dbus interface. The most simple way is to use [class`AstalMpris`.Mpris] which tracks
* every player, but [class`AstalMpris`.Player] can be constructed for a dedicated players too.
*/
class Player extends GObject.Object {
static $gtype: GObject.GType<Player>;
// Properties
/**
* Full dbus namae of this player.
*/
get bus_name(): string;
set bus_name(val: string);
/**
* Full dbus namae of this player.
*/
get busName(): string;
set busName(val: string);
/**
* Indicates if [property`AstalMpris`.Player:bus_name] is available on dbus.
*/
get available(): boolean;
set available(val: boolean);
/**
* Indicates if [method`AstalMpris`.Player.quit] has any effect.
*/
get can_quit(): boolean;
set can_quit(val: boolean);
/**
* Indicates if [method`AstalMpris`.Player.quit] has any effect.
*/
get canQuit(): boolean;
set canQuit(val: boolean);
/**
* Indicates if the player is occupying the fullscreen. This is typically used for videos. Use [method`AstalMpris`.Player.toggle_fullscreen]
* to toggle fullscreen state.
*/
get fullscreen(): boolean;
set fullscreen(val: boolean);
/**
* Indicates if [method`AstalMpris`.Player.toggle_fullscreen] has any effect.
*/
get can_set_fullscreen(): boolean;
set can_set_fullscreen(val: boolean);
/**
* Indicates if [method`AstalMpris`.Player.toggle_fullscreen] has any effect.
*/
get canSetFullscreen(): boolean;
set canSetFullscreen(val: boolean);
/**
* Indicates if [method`AstalMpris`.Player.raise] has any effect.
*/
get can_raise(): boolean;
set can_raise(val: boolean);
/**
* Indicates if [method`AstalMpris`.Player.raise] has any effect.
*/
get canRaise(): boolean;
set canRaise(val: boolean);
/**
* A human friendly name to identify the player.
*/
get identity(): string;
set identity(val: string);
/**
* The base name of a .desktop file
*/
get entry(): string;
set entry(val: string);
/**
* The URI schemes supported by the media player.
* This can be viewed as protocols supported by the player in almost all cases. Almost every media player will include support for the "file
* " scheme. Other common schemes are "http" and "rtsp".
*/
get supported_uri_schemes(): string[];
set supported_uri_schemes(val: string[]);
/**
* The URI schemes supported by the media player.
* This can be viewed as protocols supported by the player in almost all cases. Almost every media player will include support for the "file
* " scheme. Other common schemes are "http" and "rtsp".
*/
get supportedUriSchemes(): string[];
set supportedUriSchemes(val: string[]);
/**
* The mime-types supported by the player.
*/
get supported_mime_types(): string[];
set supported_mime_types(val: string[]);
/**
* The mime-types supported by the player.
*/
get supportedMimeTypes(): string[];
set supportedMimeTypes(val: string[]);
/**
* The current loop/repeat status.
*/
get loop_status(): Loop;
set loop_status(val: Loop);
/**
* The current loop/repeat status.
*/
get loopStatus(): Loop;
set loopStatus(val: Loop);
/**
* The current playback rate.
*/
get rate(): number;
set rate(val: number);
/**
* The current shuffle status.
*/
get shuffle_status(): Shuffle;
set shuffle_status(val: Shuffle);
/**
* The current shuffle status.
*/
get shuffleStatus(): Shuffle;
set shuffleStatus(val: Shuffle);
/**
* The current volume level between 0 and 1.
*/
get volume(): number;
set volume(val: number);
/**
* The current position of the track in seconds. To get a progress percentage simply divide this with [property`AstalMpris`.Player:length].
*/
get position(): number;
set position(val: number);
/**
* The current playback status.
*/
get playback_status(): PlaybackStatus;
set playback_status(val: PlaybackStatus);
/**
* The current playback status.
*/
get playbackStatus(): PlaybackStatus;
set playbackStatus(val: PlaybackStatus);
/**
* The minimum value which the [property`AstalMpris`.Player:rate] can take.
*/
get minimum_rate(): number;
set minimum_rate(val: number);
/**
* The minimum value which the [property`AstalMpris`.Player:rate] can take.
*/
get minimumRate(): number;
set minimumRate(val: number);
/**
* The maximum value which the [property`AstalMpris`.Player:rate] can take.
*/
get maximum_rate(): number;
set maximum_rate(val: number);
/**
* The maximum value which the [property`AstalMpris`.Player:rate] can take.
*/
get maximumRate(): number;
set maximumRate(val: number);
/**
* Indicates if invoking [method`AstalMpris`.Player.next] has effect.
*/
get can_go_next(): boolean;
set can_go_next(val: boolean);
/**
* Indicates if invoking [method`AstalMpris`.Player.next] has effect.
*/
get canGoNext(): boolean;
set canGoNext(val: boolean);
/**
* Indicates if invoking [method`AstalMpris`.Player.previous] has effect.
*/
get can_go_previous(): boolean;
set can_go_previous(val: boolean);
/**
* Indicates if invoking [method`AstalMpris`.Player.previous] has effect.
*/
get canGoPrevious(): boolean;
set canGoPrevious(val: boolean);
/**
* Indicates if invoking [method`AstalMpris`.Player.play] has effect.
*/
get can_play(): boolean;
set can_play(val: boolean);
/**
* Indicates if invoking [method`AstalMpris`.Player.play] has effect.
*/
get canPlay(): boolean;
set canPlay(val: boolean);
/**
* Indicates if invoking [method`AstalMpris`.Player.pause] has effect.
*/
get can_pause(): boolean;
set can_pause(val: boolean);
/**
* Indicates if invoking [method`AstalMpris`.Player.pause] has effect.
*/
get canPause(): boolean;
set canPause(val: boolean);
/**
* Indicates if setting [property`AstalMpris`.Player:position] has effect.
*/
get can_seek(): boolean;
set can_seek(val: boolean);
/**
* Indicates if setting [property`AstalMpris`.Player:position] has effect.
*/
get canSeek(): boolean;
set canSeek(val: boolean);
/**
* Indicates if the player can be controlled with methods such as [method`AstalMpris`.Player.play_pause].
*/
get can_control(): boolean;
set can_control(val: boolean);
/**
* Indicates if the player can be controlled with methods such as [method`AstalMpris`.Player.play_pause].
*/
get canControl(): boolean;
set canControl(val: boolean);
/**
* Metadata hashtable of this player. In languages that cannot introspect this use [method`AstalMpris`.Player.get_meta].
*/
get metadata(): GLib.HashTable<string, GLib.Variant>;
set metadata(val: GLib.HashTable<string, GLib.Variant>);
/**
* Currently playing track's id.
*/
get trackid(): string;
set trackid(val: string);
/**
* Length of the currently playing track in seconds.
*/
get length(): number;
set length(val: number);
/**
* The location of an image representing the track or album. You should always prefer to use [property`AstalMpris`.Player:cover_art].
*/
get art_url(): string;
set art_url(val: string);
/**
* The location of an image representing the track or album. You should always prefer to use [property`AstalMpris`.Player:cover_art].
*/
get artUrl(): string;
set artUrl(val: string);
/**
* Title of the currently playing album.
*/
get album(): string;
set album(val: string);
/**
* Artists of the currently playing album.
*/
get album_artist(): string;
set album_artist(val: string);
/**
* Artists of the currently playing album.
*/
get albumArtist(): string;
set albumArtist(val: string);
/**
* Artists of the currently playing track.
*/
get artist(): string;
set artist(val: string);
/**
* Lyrics of the currently playing track.
*/
get lyrics(): string;
set lyrics(val: string);
/**
* Title of the currently playing track.
*/
get title(): string;
set title(val: string);
/**
* Composers of the currently playing track.
*/
get composer(): string;
set composer(val: string);
/**
* Comments of the currently playing track.
*/
get comments(): string;
set comments(val: string);
/**
* Path of the cached [property`AstalMpris`.Player:art_url].
*/
get cover_art(): string;
set cover_art(val: string);
/**
* Path of the cached [property`AstalMpris`.Player:art_url].
*/
get coverArt(): string;
set coverArt(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: Player.SignalSignatures;
// Constructors
constructor(properties?: Partial<Player.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](name: string): Player;
// Signals
connect<K extends keyof Player.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Player.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Player.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Player.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Player.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Player.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Methods
/**
* Brings the player's user interface to the front using any appropriate mechanism available.
* The media player may be unable to control how its user interface is displayed, or it may not have a graphical user interface at all. In this
* case, the [property`AstalMpris`.Player:can_raise] is `false` and this method does nothing.
*/
raise(): void;
/**
* Causes the media player to stop running.
* The media player may refuse to allow clients to shut it down. In this case, the [property`AstalMpris`.Player:can_quit] property is false
* and this method does nothing.
*/
quit(): void;
/**
* Toggle [property`AstalMpris`.Player:fullscreen] state.
*/
toggle_fullscreen(): void;
/**
* Skips to the next track in the tracklist. If there is no next track (and endless playback and track repeat are both off), stop
* playback. If [property`AstalMpris`.Player:can_go_next] is `false` this method has no effect.
*/
next(): void;
/**
* Skips to the previous track in the tracklist. If there is no previous track (and endless playback and track repeat are both off),
* stop playback. If [property`AstalMpris`.Player:can_go_previous] is `false` this method has no effect.
*/
previous(): void;
/**
* Pauses playback. If playback is already paused, this has no effect. If [property`AstalMpris`.Player:can_pause] is `false` this method has
* no effect.
*/
pause(): void;
/**
* Pauses playback. If playback is already paused, resumes playback. If playback is stopped, starts playback.
*/
play_pause(): void;
/**
* Stops playback. If playback is already stopped, this has no effect. If [property`AstalMpris`.Player:can_control] is `false` this method
* has no effect.
*/
stop(): void;
/**
* Starts or resumes playback. If already playing, this has no effect. If paused, playback resumes from the current position. If [property@
* AstalMpris.Player:can_play] is `false` this method has no effect.
*/
play(): void;
/**
* uri scheme should be an element of [property`AstalMpris`.Player:supported_uri_schemes] and the mime-type should match one of the elements
* of [property`AstalMpris`.Player:supported_mime_types].
* @param uri Uri of the track to load.
*/
open_uri(uri: string): void;
/**
* Change [property`AstalMpris`.Player:loop_status] from none to track, from track to playlist, from playlist to none.
*/
loop(): void;
/**
* Toggle [property`AstalMpris`.Player:shuffle_status].
*/
shuffle(): void;
/**
* Lookup a key from [property`AstalMpris`.Player:metadata]. This method is useful for languages that fail to introspect hashtables.
* @param key
*/
get_meta(key: string): GLib.Variant | null;
get_bus_name(): string;
get_available(): boolean;
get_can_quit(): boolean;
get_fullscreen(): boolean;
get_can_set_fullscreen(): boolean;
get_can_raise(): boolean;
get_identity(): string;
get_entry(): string;
get_supported_uri_schemes(): string[];
get_supported_mime_types(): string[];
get_loop_status(): Loop;
set_loop_status(value: Loop | null): void;
get_rate(): number;
set_rate(value: number): void;
get_shuffle_status(): Shuffle;
set_shuffle_status(value: Shuffle | null): void;
get_volume(): number;
set_volume(value: number): void;
get_position(): number;
set_position(value: number): void;
get_playback_status(): PlaybackStatus;
get_minimum_rate(): number;
get_maximum_rate(): number;
get_can_go_next(): boolean;
get_can_go_previous(): boolean;
get_can_play(): boolean;
get_can_pause(): boolean;
get_can_seek(): boolean;
get_can_control(): boolean;
get_metadata(): GLib.HashTable<string, GLib.Variant>;
get_trackid(): string;
get_length(): number;
get_art_url(): string;
get_album(): string;
get_album_artist(): string;
get_artist(): string;
get_lyrics(): string;
get_title(): string;
get_composer(): string;
get_comments(): string;
get_cover_art(): string;
}
type MprisClass = typeof Mpris;
abstract class MprisPrivate {
static $gtype: GObject.GType<MprisPrivate>;
// Constructors
_init(...args: any[]): void;
}
type PlayerClass = typeof Player;
abstract class PlayerPrivate {
static $gtype: GObject.GType<PlayerPrivate>;
// Constructors
_init(...args: any[]): void;
}
/**
* 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 AstalMpris;
}
declare module 'gi://AstalMpris' {
import AstalMpris01 from 'gi://AstalMpris?version=0.1';
export default AstalMpris01;
}
// END

View File

@ -0,0 +1,625 @@
/// <reference path="./gio-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gmodule-2.0.d.ts" />
/// <reference path="./nm-1.0.d.ts" />
/**
* 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://AstalNetwork?version=0.1' {
// 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';
import type NM from 'gi://NM?version=1.0';
export namespace AstalNetwork {
/**
* AstalNetwork-0.1
*/
export namespace Primary {
export const $gtype: GObject.GType<Primary>;
}
enum Primary {
UNKNOWN,
WIRED,
WIFI,
}
export namespace State {
export const $gtype: GObject.GType<State>;
}
enum State {
UNKNOWN,
ASLEEP,
DISCONNECTED,
DISCONNECTING,
CONNECTING,
CONNECTED_LOCAL,
CONNECTED_SITE,
CONNECTED_GLOBAL,
}
export namespace Connectivity {
export const $gtype: GObject.GType<Connectivity>;
}
enum Connectivity {
UNKNOWN,
NONE,
PORTAL,
LIMITED,
FULL,
}
export namespace DeviceState {
export const $gtype: GObject.GType<DeviceState>;
}
enum DeviceState {
UNKNOWN,
UNMANAGED,
UNAVAILABLE,
DISCONNECTED,
PREPARE,
CONFIG,
NEED_AUTH,
IP_CONFIG,
IP_CHECK,
SECONDARIES,
ACTIVATED,
DEACTIVATING,
FAILED,
}
export namespace Internet {
export const $gtype: GObject.GType<Internet>;
}
enum Internet {
CONNECTED,
CONNECTING,
DISCONNECTED,
}
const MAJOR_VERSION: number;
const MINOR_VERSION: number;
const MICRO_VERSION: number;
const VERSION: string;
function primary_to_string(): string;
function primary_from_connection_type(type: string): Primary;
function state_to_string(): string;
function connectivity_to_string(): string;
function device_state_to_string(): string;
function internet_from_device(device: NM.Device): Internet;
function internet_to_string(): string;
function get_default(): Network;
namespace AccessPoint {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {
'notify::bandwidth': (pspec: GObject.ParamSpec) => void;
'notify::bssid': (pspec: GObject.ParamSpec) => void;
'notify::frequency': (pspec: GObject.ParamSpec) => void;
'notify::last-seen': (pspec: GObject.ParamSpec) => void;
'notify::max-bitrate': (pspec: GObject.ParamSpec) => void;
'notify::strength': (pspec: GObject.ParamSpec) => void;
'notify::icon-name': (pspec: GObject.ParamSpec) => void;
'notify::mode': (pspec: GObject.ParamSpec) => void;
'notify::flags': (pspec: GObject.ParamSpec) => void;
'notify::rsn-flags': (pspec: GObject.ParamSpec) => void;
'notify::wpa-flags': (pspec: GObject.ParamSpec) => void;
'notify::requires-password': (pspec: GObject.ParamSpec) => void;
'notify::ssid': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
bandwidth: number;
bssid: string;
frequency: number;
last_seen: number;
lastSeen: number;
max_bitrate: number;
maxBitrate: number;
strength: number;
icon_name: string;
iconName: string;
mode: NM.__80211Mode;
flags: NM.__80211ApFlags;
rsn_flags: NM.__80211ApSecurityFlags;
rsnFlags: NM.__80211ApSecurityFlags;
wpa_flags: NM.__80211ApSecurityFlags;
wpaFlags: NM.__80211ApSecurityFlags;
requires_password: boolean;
requiresPassword: boolean;
ssid: string;
}
}
class AccessPoint extends GObject.Object {
static $gtype: GObject.GType<AccessPoint>;
// Properties
get bandwidth(): number;
get bssid(): string;
get frequency(): number;
get last_seen(): number;
get lastSeen(): number;
get max_bitrate(): number;
get maxBitrate(): number;
get strength(): number;
get icon_name(): string;
set icon_name(val: string);
get iconName(): string;
set iconName(val: string);
get mode(): NM.__80211Mode;
get flags(): NM.__80211ApFlags;
get rsn_flags(): NM.__80211ApSecurityFlags;
get rsnFlags(): NM.__80211ApSecurityFlags;
get wpa_flags(): NM.__80211ApSecurityFlags;
get wpaFlags(): NM.__80211ApSecurityFlags;
get requires_password(): boolean;
get requiresPassword(): boolean;
get ssid(): 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: AccessPoint.SignalSignatures;
// Constructors
constructor(properties?: Partial<AccessPoint.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect<K extends keyof AccessPoint.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, AccessPoint.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof AccessPoint.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, AccessPoint.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof AccessPoint.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<AccessPoint.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Methods
get_connections(): NM.RemoteConnection[];
get_path(): string;
/**
* Activates the first connection associated with this AccessPoint or creates a new SimpleConnection using "wpa-psk" and activates it.
* Returns whether the connection is the new active connection.
* @param password
*/
activate(password?: string | null): Promise<void>;
/**
* Activates the first connection associated with this AccessPoint or creates a new SimpleConnection using "wpa-psk" and activates it.
* Returns whether the connection is the new active connection.
* @param password
* @param _callback_
*/
activate(password: string | null, _callback_: Gio.AsyncReadyCallback<this> | null): void;
/**
* Activates the first connection associated with this AccessPoint or creates a new SimpleConnection using "wpa-psk" and activates it.
* Returns whether the connection is the new active connection.
* @param password
* @param _callback_
*/
activate(password?: string | null, _callback_?: Gio.AsyncReadyCallback<this> | null): Promise<void> | void;
activate_finish(_res_: Gio.AsyncResult): void;
get_bandwidth(): number;
get_bssid(): string;
get_frequency(): number;
get_last_seen(): number;
get_max_bitrate(): number;
get_strength(): number;
get_icon_name(): string;
get_mode(): NM.__80211Mode;
get_flags(): NM.__80211ApFlags;
get_rsn_flags(): NM.__80211ApSecurityFlags;
get_wpa_flags(): NM.__80211ApSecurityFlags;
get_requires_password(): boolean;
get_ssid(): string | null;
}
namespace Network {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {
'notify::client': (pspec: GObject.ParamSpec) => void;
'notify::wifi': (pspec: GObject.ParamSpec) => void;
'notify::wired': (pspec: GObject.ParamSpec) => void;
'notify::primary': (pspec: GObject.ParamSpec) => void;
'notify::connectivity': (pspec: GObject.ParamSpec) => void;
'notify::state': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
client: NM.Client;
wifi: Wifi;
wired: Wired;
primary: Primary;
connectivity: Connectivity;
state: State;
}
}
class Network extends GObject.Object {
static $gtype: GObject.GType<Network>;
// Properties
get client(): NM.Client;
set client(val: NM.Client);
get wifi(): Wifi;
set wifi(val: Wifi);
get wired(): Wired;
set wired(val: Wired);
get primary(): Primary;
set primary(val: Primary);
get connectivity(): Connectivity;
get state(): State;
/**
* 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: Network.SignalSignatures;
// Constructors
constructor(properties?: Partial<Network.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Network;
// Signals
connect<K extends keyof Network.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Network.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Network.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Network.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Network.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Network.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Static methods
static get_default(): Network;
// Methods
get_client(): NM.Client;
get_wifi(): Wifi | null;
get_wired(): Wired | null;
get_primary(): Primary;
get_connectivity(): Connectivity;
get_state(): State;
}
namespace Wifi {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {
'state-changed': (arg0: DeviceState, arg1: DeviceState, arg2: NM.DeviceStateReason) => void;
'notify::device': (pspec: GObject.ParamSpec) => void;
'notify::active-connection': (pspec: GObject.ParamSpec) => void;
'notify::active-access-point': (pspec: GObject.ParamSpec) => void;
'notify::access-points': (pspec: GObject.ParamSpec) => void;
'notify::enabled': (pspec: GObject.ParamSpec) => void;
'notify::internet': (pspec: GObject.ParamSpec) => void;
'notify::bandwidth': (pspec: GObject.ParamSpec) => void;
'notify::ssid': (pspec: GObject.ParamSpec) => void;
'notify::strength': (pspec: GObject.ParamSpec) => void;
'notify::frequency': (pspec: GObject.ParamSpec) => void;
'notify::state': (pspec: GObject.ParamSpec) => void;
'notify::icon-name': (pspec: GObject.ParamSpec) => void;
'notify::is-hotspot': (pspec: GObject.ParamSpec) => void;
'notify::scanning': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
device: NM.DeviceWifi;
active_connection: NM.ActiveConnection;
activeConnection: NM.ActiveConnection;
active_access_point: AccessPoint;
activeAccessPoint: AccessPoint;
access_points: AccessPoint[];
accessPoints: AccessPoint[];
enabled: boolean;
internet: Internet;
bandwidth: number;
ssid: string;
strength: number;
frequency: number;
state: DeviceState;
icon_name: string;
iconName: string;
is_hotspot: boolean;
isHotspot: boolean;
scanning: boolean;
}
}
class Wifi extends GObject.Object {
static $gtype: GObject.GType<Wifi>;
// Properties
get device(): NM.DeviceWifi;
set device(val: NM.DeviceWifi);
get active_connection(): NM.ActiveConnection;
set active_connection(val: NM.ActiveConnection);
get activeConnection(): NM.ActiveConnection;
set activeConnection(val: NM.ActiveConnection);
get active_access_point(): AccessPoint;
set active_access_point(val: AccessPoint);
get activeAccessPoint(): AccessPoint;
set activeAccessPoint(val: AccessPoint);
get access_points(): AccessPoint[];
get accessPoints(): AccessPoint[];
get enabled(): boolean;
set enabled(val: boolean);
get internet(): Internet;
set internet(val: Internet);
get bandwidth(): number;
set bandwidth(val: number);
get ssid(): string;
set ssid(val: string);
get strength(): number;
set strength(val: number);
get frequency(): number;
set frequency(val: number);
get state(): DeviceState;
set state(val: DeviceState);
get icon_name(): string;
set icon_name(val: string);
get iconName(): string;
set iconName(val: string);
get is_hotspot(): boolean;
set is_hotspot(val: boolean);
get isHotspot(): boolean;
set isHotspot(val: boolean);
get scanning(): boolean;
set scanning(val: 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: Wifi.SignalSignatures;
// Constructors
constructor(properties?: Partial<Wifi.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect<K extends keyof Wifi.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Wifi.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Wifi.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Wifi.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Wifi.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Wifi.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Methods
scan(): void;
deactivate_connection(): Promise<void>;
deactivate_connection(_callback_: Gio.AsyncReadyCallback<this> | null): void;
deactivate_connection(_callback_?: Gio.AsyncReadyCallback<this> | null): Promise<void> | void;
deactivate_connection_finish(_res_: Gio.AsyncResult): void;
get_device(): NM.DeviceWifi;
set_device(value: NM.DeviceWifi): void;
get_active_connection(): NM.ActiveConnection | null;
get_active_access_point(): AccessPoint | null;
get_access_points(): AccessPoint[];
get_enabled(): boolean;
set_enabled(value: boolean): void;
get_internet(): Internet;
get_bandwidth(): number;
get_ssid(): string;
get_strength(): number;
get_frequency(): number;
get_state(): DeviceState;
get_icon_name(): string;
get_is_hotspot(): boolean;
get_scanning(): boolean;
}
namespace Wired {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {
'notify::device': (pspec: GObject.ParamSpec) => void;
'notify::speed': (pspec: GObject.ParamSpec) => void;
'notify::internet': (pspec: GObject.ParamSpec) => void;
'notify::state': (pspec: GObject.ParamSpec) => void;
'notify::icon-name': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
device: NM.DeviceEthernet;
speed: number;
internet: Internet;
state: DeviceState;
icon_name: string;
iconName: string;
}
}
class Wired extends GObject.Object {
static $gtype: GObject.GType<Wired>;
// Properties
get device(): NM.DeviceEthernet;
set device(val: NM.DeviceEthernet);
get speed(): number;
set speed(val: number);
get internet(): Internet;
set internet(val: Internet);
get state(): DeviceState;
set state(val: DeviceState);
get icon_name(): string;
set icon_name(val: string);
get iconName(): string;
set iconName(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: Wired.SignalSignatures;
// Fields
connection: NM.ActiveConnection;
// Constructors
constructor(properties?: Partial<Wired.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect<K extends keyof Wired.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Wired.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Wired.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Wired.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Wired.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Wired.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Methods
get_device(): NM.DeviceEthernet;
set_device(value: NM.DeviceEthernet): void;
get_speed(): number;
get_internet(): Internet;
get_state(): DeviceState;
get_icon_name(): string;
}
type AccessPointClass = typeof AccessPoint;
abstract class AccessPointPrivate {
static $gtype: GObject.GType<AccessPointPrivate>;
// Constructors
_init(...args: any[]): void;
}
type NetworkClass = typeof Network;
abstract class NetworkPrivate {
static $gtype: GObject.GType<NetworkPrivate>;
// Constructors
_init(...args: any[]): void;
}
type WifiClass = typeof Wifi;
abstract class WifiPrivate {
static $gtype: GObject.GType<WifiPrivate>;
// Constructors
_init(...args: any[]): void;
}
type WiredClass = typeof Wired;
abstract class WiredPrivate {
static $gtype: GObject.GType<WiredPrivate>;
// Constructors
_init(...args: any[]): void;
}
/**
* 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 AstalNetwork;
}
declare module 'gi://AstalNetwork' {
import AstalNetwork01 from 'gi://AstalNetwork?version=0.1';
export default AstalNetwork01;
}
// END

View File

@ -0,0 +1,485 @@
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://AstalNotifd?version=0.1' {
// Module dependencies
import type GLib from 'gi://GLib?version=2.0';
import type GObject from 'gi://GObject?version=2.0';
export namespace AstalNotifd {
/**
* AstalNotifd-0.1
*/
export namespace ClosedReason {
export const $gtype: GObject.GType<ClosedReason>;
}
enum ClosedReason {
EXPIRED,
DISMISSED_BY_USER,
CLOSED,
UNDEFINED,
}
export namespace Urgency {
export const $gtype: GObject.GType<Urgency>;
}
enum Urgency {
LOW,
NORMAL,
CRITICAL,
}
const MAJOR_VERSION: number;
const MINOR_VERSION: number;
const MICRO_VERSION: number;
const VERSION: string;
function get_default(): Notifd;
namespace Notifd {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {
notified: (arg0: number, arg1: boolean) => void;
resolved: (arg0: number, arg1: ClosedReason) => void;
'notify::ignore-timeout': (pspec: GObject.ParamSpec) => void;
'notify::dont-disturb': (pspec: GObject.ParamSpec) => void;
'notify::notifications': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
ignore_timeout: boolean;
ignoreTimeout: boolean;
dont_disturb: boolean;
dontDisturb: boolean;
notifications: Notification[];
}
}
/**
* The Notification daemon.
* This class queues up to become the next daemon, while acting as a proxy in the meantime.
*/
class Notifd extends GObject.Object {
static $gtype: GObject.GType<Notifd>;
// Properties
/**
* Ignore the timeout specified by incoming notifications.
* By default notifications can specify a timeout in milliseconds after which the daemon will resolve them even without user input.
*/
get ignore_timeout(): boolean;
set ignore_timeout(val: boolean);
/**
* Ignore the timeout specified by incoming notifications.
* By default notifications can specify a timeout in milliseconds after which the daemon will resolve them even without user input.
*/
get ignoreTimeout(): boolean;
set ignoreTimeout(val: boolean);
/**
* Indicate to frontends to not show popups to the user.
* This property does not have any effect on its own, its merely a value to use between the daemon process and proxies for frontends to use.
*/
get dont_disturb(): boolean;
set dont_disturb(val: boolean);
/**
* Indicate to frontends to not show popups to the user.
* This property does not have any effect on its own, its merely a value to use between the daemon process and proxies for frontends to use.
*/
get dontDisturb(): boolean;
set dontDisturb(val: boolean);
/**
* List of currently unresolved notifications.
*/
get notifications(): Notification[];
/**
* 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: Notifd.SignalSignatures;
// Constructors
constructor(properties?: Partial<Notifd.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Notifd;
// Signals
connect<K extends keyof Notifd.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Notifd.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Notifd.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Notifd.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Notifd.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Notifd.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Static methods
/**
* Get the singleton instance
*/
static get_default(): Notifd;
// Methods
/**
* Gets the [class`AstalNotifd`.Notification] with id or null if there is no such Notification.
* @param id
*/
get_notification(id: number): Notification;
get_ignore_timeout(): boolean;
set_ignore_timeout(value: boolean): void;
get_dont_disturb(): boolean;
set_dont_disturb(value: boolean): void;
get_notifications(): Notification[];
}
namespace Notification {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {
resolved: (arg0: ClosedReason) => void;
invoked: (arg0: string) => void;
'notify::time': (pspec: GObject.ParamSpec) => void;
'notify::app-name': (pspec: GObject.ParamSpec) => void;
'notify::app-icon': (pspec: GObject.ParamSpec) => void;
'notify::summary': (pspec: GObject.ParamSpec) => void;
'notify::body': (pspec: GObject.ParamSpec) => void;
'notify::id': (pspec: GObject.ParamSpec) => void;
'notify::expire-timeout': (pspec: GObject.ParamSpec) => void;
'notify::actions': (pspec: GObject.ParamSpec) => void;
'notify::image': (pspec: GObject.ParamSpec) => void;
'notify::action-icons': (pspec: GObject.ParamSpec) => void;
'notify::category': (pspec: GObject.ParamSpec) => void;
'notify::desktop-entry': (pspec: GObject.ParamSpec) => void;
'notify::resident': (pspec: GObject.ParamSpec) => void;
'notify::sound-file': (pspec: GObject.ParamSpec) => void;
'notify::sound-name': (pspec: GObject.ParamSpec) => void;
'notify::suppress-sound': (pspec: GObject.ParamSpec) => void;
'notify::transient': (pspec: GObject.ParamSpec) => void;
'notify::x': (pspec: GObject.ParamSpec) => void;
'notify::y': (pspec: GObject.ParamSpec) => void;
'notify::urgency': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
time: number;
app_name: string;
appName: string;
app_icon: string;
appIcon: string;
summary: string;
body: string;
id: number;
expire_timeout: number;
expireTimeout: number;
actions: Action[];
image: string;
action_icons: boolean;
actionIcons: boolean;
category: string;
desktop_entry: string;
desktopEntry: string;
resident: boolean;
sound_file: string;
soundFile: string;
sound_name: string;
soundName: string;
suppress_sound: boolean;
suppressSound: boolean;
transient: boolean;
x: number;
y: number;
urgency: Urgency;
}
}
/**
* Class representing a notification.
*/
class Notification extends GObject.Object {
static $gtype: GObject.GType<Notification>;
// Properties
/**
* Unix time of when the notification was sent.
*/
get time(): number;
set time(val: number);
/**
* Name of the sending application.
*/
get app_name(): string;
set app_name(val: string);
/**
* Name of the sending application.
*/
get appName(): string;
set appName(val: string);
/**
* Icon name of the sending application.
*/
get app_icon(): string;
set app_icon(val: string);
/**
* Icon name of the sending application.
*/
get appIcon(): string;
set appIcon(val: string);
/**
* Single line overview of the notification.
*/
get summary(): string;
set summary(val: string);
/**
* Multi-line body of text, where each line is a paragraph. May contain markup.
*/
get body(): string;
set body(val: string);
/**
* Id of the notification.
*/
get id(): number;
set id(val: number);
/**
* Time in milliseconds after the notification expires.
*/
get expire_timeout(): number;
set expire_timeout(val: number);
/**
* Time in milliseconds after the notification expires.
*/
get expireTimeout(): number;
set expireTimeout(val: number);
/**
* List of [struct`AstalNotifd`.Action] of the notification.
* Can be invoked by calling [method`AstalNotifd`.Notification.invoke] with the action's id.
*/
get actions(): Action[];
/**
* Path of an image
*/
get image(): string;
/**
* Indicates whether [struct`AstalNotifd`.Action] identifier should be interpreted as a named icon.
*/
get action_icons(): boolean;
/**
* Indicates whether [struct`AstalNotifd`.Action] identifier should be interpreted as a named icon.
*/
get actionIcons(): boolean;
/**
* [](https://specifications.freedesktop.org/notification-spec/latest/categories.html)
*/
get category(): string;
/**
* Specifies the name of the desktop filename representing the calling program.
*/
get desktop_entry(): string;
/**
* Specifies the name of the desktop filename representing the calling program.
*/
get desktopEntry(): string;
/**
* Indicates whether notification is kept after action invocation.
*/
get resident(): boolean;
/**
* The path to a sound file to play when the notification pops up.
*/
get sound_file(): string;
/**
* The path to a sound file to play when the notification pops up.
*/
get soundFile(): string;
/**
* A themeable named sound from to play when the notification pops up
*/
get sound_name(): string;
/**
* A themeable named sound from to play when the notification pops up
*/
get soundName(): string;
/**
* Indicates to suppress playing any sounds.
*/
get suppress_sound(): boolean;
/**
* Indicates to suppress playing any sounds.
*/
get suppressSound(): boolean;
/**
* Indicates that the notification should be excluded from persistency.
*/
get transient(): boolean;
/**
* Specifies the X location on the screen that the notification should point to. The "y" hint must also be specified.
*/
get x(): number;
/**
* Specifies the Y location on the screen that the notification should point to. The "x" hint must also be specified.
*/
get y(): number;
/**
* [enum`AstalNotifd`.Urgency] level of the notification.
*/
get urgency(): Urgency;
/**
* 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: Notification.SignalSignatures;
// Constructors
constructor(properties?: Partial<Notification.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect<K extends keyof Notification.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Notification.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Notification.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Notification.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Notification.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Notification.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Methods
get_hint(hint: string): GLib.Variant | null;
get_str_hint(hint: string): string;
get_bool_hint(hint: string): boolean;
get_int_hint(hint: string): number;
get_byte_hint(hint: string): number;
/**
* Resolve this notification with [enum`AstalNotifd`.ClosedReason.DISMISSED_BY_USER].
*/
dismiss(): void;
/**
* Invoke an [struct`AstalNotifd`.Action] of this notification.
* Note that this method just notifies the client that this action was invoked by the user. If for example this notification persists through the
* lifetime of the sending program this action will have no effect.
* @param action_id
*/
invoke(action_id: string): void;
get_time(): number;
get_app_name(): string;
get_app_icon(): string;
get_summary(): string;
get_body(): string;
get_id(): number;
get_expire_timeout(): number;
get_actions(): Action[];
get_image(): string;
get_action_icons(): boolean;
get_category(): string;
get_desktop_entry(): string;
get_resident(): boolean;
get_sound_file(): string;
get_sound_name(): string;
get_suppress_sound(): boolean;
get_transient(): boolean;
get_x(): number;
get_y(): number;
get_urgency(): Urgency;
}
type NotifdClass = typeof Notifd;
abstract class NotifdPrivate {
static $gtype: GObject.GType<NotifdPrivate>;
// Constructors
_init(...args: any[]): void;
}
type NotificationClass = typeof Notification;
abstract class NotificationPrivate {
static $gtype: GObject.GType<NotificationPrivate>;
// Constructors
_init(...args: any[]): void;
}
class Action {
static $gtype: GObject.GType<Action>;
// Fields
id: string;
label: string;
// Constructors
constructor(
properties?: Partial<{
id: string;
label: string;
}>,
);
_init(...args: any[]): void;
}
/**
* 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 AstalNotifd;
}
declare module 'gi://AstalNotifd' {
import AstalNotifd01 from 'gi://AstalNotifd?version=0.1';
export default AstalNotifd01;
}
// END

View File

@ -0,0 +1,246 @@
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/**
* 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://AstalPowerProfiles?version=0.1' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
import type GLib from 'gi://GLib?version=2.0';
export namespace AstalPowerProfiles {
/**
* AstalPowerProfiles-0.1
*/
const MAJOR_VERSION: number;
const MINOR_VERSION: number;
const MICRO_VERSION: number;
const VERSION: string;
function get_default(): PowerProfiles;
namespace PowerProfiles {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {
'profile-released': (arg0: number) => void;
'notify::active-profile': (pspec: GObject.ParamSpec) => void;
'notify::icon-name': (pspec: GObject.ParamSpec) => void;
'notify::actions': (pspec: GObject.ParamSpec) => void;
'notify::performance-degraded': (pspec: GObject.ParamSpec) => void;
'notify::version': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
active_profile: string;
activeProfile: string;
icon_name: string;
iconName: string;
actions: string[];
performance_degraded: string;
performanceDegraded: string;
version: string;
}
}
/**
* Client for <ulink url="https://freedesktop-team.pages.debian.net/power-profiles-daemon/gdbus-org.freedesktop.UPower.PowerProfiles.html">
* PowerProfiles</ulink>.
*/
class PowerProfiles extends GObject.Object {
static $gtype: GObject.GType<PowerProfiles>;
// Properties
/**
* The type of the currently active profile. It might change automatically if a profile is held, using the [method@
* AstalPowerProfiles.PowerProfiles.hold_profile] method.
*/
get active_profile(): string;
set active_profile(val: string);
/**
* The type of the currently active profile. It might change automatically if a profile is held, using the [method@
* AstalPowerProfiles.PowerProfiles.hold_profile] method.
*/
get activeProfile(): string;
set activeProfile(val: string);
/**
* Return a named icon based [property`AstalPowerProfiles`.PowerProfiles:active_profile].
*/
get icon_name(): string;
/**
* Return a named icon based [property`AstalPowerProfiles`.PowerProfiles:active_profile].
*/
get iconName(): string;
/**
* List of the "actions" implemented in the running daemon. This can used to figure out whether particular functionality is available in
* the daemon.
*/
get actions(): string[];
/**
* This will be set if the performance power profile is running in degraded mode, with the value being used to identify the reason for that
* degradation. Possible values are: - "lap-detected" (the computer is sitting on the user's lap) - "high-operating-
* temperature" (the computer is close to overheating) - "" (the empty string, if not performance is not degraded)
*/
get performance_degraded(): string;
/**
* This will be set if the performance power profile is running in degraded mode, with the value being used to identify the reason for that
* degradation. Possible values are: - "lap-detected" (the computer is sitting on the user's lap) - "high-operating-
* temperature" (the computer is close to overheating) - "" (the empty string, if not performance is not degraded)
*/
get performanceDegraded(): string;
/**
* The version of the power-profiles-daemon software.
*/
get version(): 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: PowerProfiles.SignalSignatures;
// Constructors
constructor(properties?: Partial<PowerProfiles.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): PowerProfiles;
// Signals
connect<K extends keyof PowerProfiles.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, PowerProfiles.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof PowerProfiles.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, PowerProfiles.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof PowerProfiles.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<PowerProfiles.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Static methods
/**
* Gets the default singleton PowerProfiles instance.
*/
static get_default(): PowerProfiles;
// Methods
/**
* This forces the passed profile (either 'power-saver' or 'performance') to be activated until either the caller
* quits, [method`AstalPowerProfiles`.PowerProfiles.release_profile] is called, or the [property@
* AstalPowerProfiles.PowerProfiles:active_profile] is changed by the user. When conflicting profiles are requested to be held, the 'power-saver
* ' profile will be activated in preference to the 'performance' profile. Those holds will be automatically cancelled if the user
* manually switches to another profile, and the [signal`AstalPowerProfiles`.PowerProfiles::profile_released] signal will be emitted.
* @param profile
* @param reason
* @param application_id
*/
hold_profile(profile: string, reason: string, application_id: string): number;
/**
* This removes the hold that was set on a profile.
* @param cookie
*/
release_profile(cookie: number): void;
get_active_profile(): string;
set_active_profile(value: string): void;
get_icon_name(): string;
get_actions(): string[];
get_active_profile_holds(): Hold[];
get_performance_degraded(): string;
get_profiles(): Profile[];
get_version(): string;
}
type PowerProfilesClass = typeof PowerProfiles;
abstract class PowerProfilesPrivate {
static $gtype: GObject.GType<PowerProfilesPrivate>;
// Constructors
_init(...args: any[]): void;
}
class Profile {
static $gtype: GObject.GType<Profile>;
// Fields
profile: string;
cpu_driver: string;
platform_driver: string;
driver: string;
// Constructors
constructor(
properties?: Partial<{
profile: string;
cpu_driver: string;
platform_driver: string;
driver: string;
}>,
);
_init(...args: any[]): void;
}
class Hold {
static $gtype: GObject.GType<Hold>;
// Fields
application_id: string;
profile: string;
reason: string;
// Constructors
constructor(
properties?: Partial<{
application_id: string;
profile: string;
reason: string;
}>,
);
_init(...args: any[]): void;
}
/**
* 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 AstalPowerProfiles;
}
declare module 'gi://AstalPowerProfiles' {
import AstalPowerProfiles01 from 'gi://AstalPowerProfiles?version=0.1';
export default AstalPowerProfiles01;
}
// END

493
home/ags/files/@girs/astaltray-0.1.d.ts vendored Normal file
View File

@ -0,0 +1,493 @@
/// <reference path="./gio-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gmodule-2.0.d.ts" />
/// <reference path="./gdkpixbuf-2.0.d.ts" />
/**
* 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://AstalTray?version=0.1' {
// 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';
import type GdkPixbuf from 'gi://GdkPixbuf?version=2.0';
export namespace AstalTray {
/**
* AstalTray-0.1
*/
export namespace Category {
export const $gtype: GObject.GType<Category>;
}
enum Category {
APPLICATION,
COMMUNICATIONS,
SYSTEM,
HARDWARE,
}
export namespace Status {
export const $gtype: GObject.GType<Status>;
}
enum Status {
PASSIVE,
ACTIVE,
NEEDS_ATTENTION,
}
const MAJOR_VERSION: number;
const MINOR_VERSION: number;
const MICRO_VERSION: number;
const VERSION: string;
function category_to_nick(): string;
function category_from_string(value: string): Category;
function status_to_nick(): string;
function status_from_string(value: string): Status;
/**
* Get the singleton instance of [class`AstalTray`.Tray]
*/
function get_default(): Tray;
namespace Tray {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {
'item-added': (arg0: string) => void;
'item-removed': (arg0: string) => void;
'notify::items': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
items: TrayItem[];
}
}
class Tray extends GObject.Object {
static $gtype: GObject.GType<Tray>;
// Properties
/**
* List of currently registered tray items
*/
get items(): TrayItem[];
/**
* 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: Tray.SignalSignatures;
// Constructors
constructor(properties?: Partial<Tray.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Tray;
// Signals
connect<K extends keyof Tray.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Tray.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Tray.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Tray.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Tray.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Tray.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Static methods
/**
* Get the singleton instance of [class`AstalTray`.Tray]
*/
static get_default(): Tray;
// Methods
/**
* gets the TrayItem with the given item-id.
* @param item_id
*/
get_item(item_id: string): TrayItem;
get_items(): TrayItem[];
}
namespace TrayItem {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {
changed: () => void;
ready: () => void;
'notify::title': (pspec: GObject.ParamSpec) => void;
'notify::category': (pspec: GObject.ParamSpec) => void;
'notify::status': (pspec: GObject.ParamSpec) => void;
'notify::tooltip': (pspec: GObject.ParamSpec) => void;
'notify::tooltip-markup': (pspec: GObject.ParamSpec) => void;
'notify::tooltip-text': (pspec: GObject.ParamSpec) => void;
'notify::id': (pspec: GObject.ParamSpec) => void;
'notify::is-menu': (pspec: GObject.ParamSpec) => void;
'notify::icon-theme-path': (pspec: GObject.ParamSpec) => void;
'notify::icon-name': (pspec: GObject.ParamSpec) => void;
'notify::icon-pixbuf': (pspec: GObject.ParamSpec) => void;
'notify::gicon': (pspec: GObject.ParamSpec) => void;
'notify::item-id': (pspec: GObject.ParamSpec) => void;
'notify::menu-path': (pspec: GObject.ParamSpec) => void;
'notify::menu-model': (pspec: GObject.ParamSpec) => void;
'notify::action-group': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
title: string;
category: Category;
status: Status;
tooltip: Tooltip;
tooltip_markup: string;
tooltipMarkup: string;
tooltip_text: string;
tooltipText: string;
id: string;
is_menu: boolean;
isMenu: boolean;
icon_theme_path: string;
iconThemePath: string;
icon_name: string;
iconName: string;
icon_pixbuf: GdkPixbuf.Pixbuf;
iconPixbuf: GdkPixbuf.Pixbuf;
gicon: Gio.Icon;
item_id: string;
itemId: string;
menu_path: never;
menuPath: never;
menu_model: Gio.MenuModel;
menuModel: Gio.MenuModel;
action_group: Gio.ActionGroup;
actionGroup: Gio.ActionGroup;
}
}
class TrayItem extends GObject.Object {
static $gtype: GObject.GType<TrayItem>;
// Properties
/**
* The Title of the TrayItem
*/
get title(): string;
set title(val: string);
/**
* The category this item belongs to
*/
get category(): Category;
set category(val: Category);
/**
* The current status of this item
*/
get status(): Status;
set status(val: Status);
/**
* The tooltip of this item
*/
get tooltip(): Tooltip;
set tooltip(val: Tooltip);
/**
* A markup representation of the tooltip. This is basically equvivalent to `tooltip.title \n tooltip.description`
*/
get tooltip_markup(): string;
/**
* A markup representation of the tooltip. This is basically equvivalent to `tooltip.title \n tooltip.description`
*/
get tooltipMarkup(): string;
/**
* A text representation of the tooltip. This is basically equvivalent to `tooltip.title \n tooltip.description.`
*/
get tooltip_text(): string;
/**
* A text representation of the tooltip. This is basically equvivalent to `tooltip.title \n tooltip.description.`
*/
get tooltipText(): string;
/**
* the id of the item. This id is specified by the tray app.
*/
get id(): string;
set id(val: string);
/**
* If set, this only supports the menu, so showing the menu should be prefered over calling [method`AstalTray`.TrayItem.activate].
*/
get is_menu(): boolean;
set is_menu(val: boolean);
/**
* If set, this only supports the menu, so showing the menu should be prefered over calling [method`AstalTray`.TrayItem.activate].
*/
get isMenu(): boolean;
set isMenu(val: boolean);
/**
* The icon theme path, where to look for the [property`AstalTray`.TrayItem:icon-name]. It is recommended to use the [property@
* AstalTray.TrayItem:gicon] property, which does the icon lookups for you.
*/
get icon_theme_path(): string;
set icon_theme_path(val: string);
/**
* The icon theme path, where to look for the [property`AstalTray`.TrayItem:icon-name]. It is recommended to use the [property@
* AstalTray.TrayItem:gicon] property, which does the icon lookups for you.
*/
get iconThemePath(): string;
set iconThemePath(val: string);
/**
* The name of the icon. This should be looked up in the [property`AstalTray`.TrayItem:icon-theme-path] if set or in the currently used icon
* theme otherwise. It is recommended to use the [property`AstalTray`.TrayItem:gicon] property, which does the icon lookups for you.
*/
get icon_name(): string;
/**
* The name of the icon. This should be looked up in the [property`AstalTray`.TrayItem:icon-theme-path] if set or in the currently used icon
* theme otherwise. It is recommended to use the [property`AstalTray`.TrayItem:gicon] property, which does the icon lookups for you.
*/
get iconName(): string;
/**
* A pixbuf containing the icon. It is recommended to use the [property`AstalTray`.TrayItem:gicon] property, which does the icon lookups for
* you.
*/
get icon_pixbuf(): GdkPixbuf.Pixbuf;
/**
* A pixbuf containing the icon. It is recommended to use the [property`AstalTray`.TrayItem:gicon] property, which does the icon lookups for
* you.
*/
get iconPixbuf(): GdkPixbuf.Pixbuf;
/**
* Contains the items icon. This property is intended to be used with the gicon property of the Icon widget and the recommended way to display the
* icon. This property unifies the [property`AstalTray`.TrayItem:icon-name], [property`AstalTray`.TrayItem:icon-theme-path] and [property
* `AstalTray`.TrayItem:icon-pixbuf] properties.
*/
get gicon(): Gio.Icon;
set gicon(val: Gio.Icon);
/**
* The id of the item used to uniquely identify the TrayItems by this lib.
*/
get item_id(): string;
set item_id(val: string);
/**
* The id of the item used to uniquely identify the TrayItems by this lib.
*/
get itemId(): string;
set itemId(val: string);
/**
* The object path to the dbusmenu
*/
get menu_path(): never;
set menu_path(val: never);
/**
* The object path to the dbusmenu
*/
get menuPath(): never;
set menuPath(val: never);
/**
* The MenuModel describing the menu for this TrayItem to be used with a MenuButton or PopoverMenu. The actions for this menu are defined in
* [property`AstalTray`.TrayItem:action-group].
*/
get menu_model(): Gio.MenuModel;
/**
* The MenuModel describing the menu for this TrayItem to be used with a MenuButton or PopoverMenu. The actions for this menu are defined in
* [property`AstalTray`.TrayItem:action-group].
*/
get menuModel(): Gio.MenuModel;
/**
* The ActionGroup containing the actions for the menu. All actions have the `dbusmenu` prefix and are setup to work with the [property@
* AstalTray.TrayItem:menu-model]. Make sure to insert this action group into a parent widget of the menu, eg the MenuButton for which the MenuModel for
* this TrayItem is set.
*/
get action_group(): Gio.ActionGroup;
/**
* The ActionGroup containing the actions for the menu. All actions have the `dbusmenu` prefix and are setup to work with the [property@
* AstalTray.TrayItem:menu-model]. Make sure to insert this action group into a parent widget of the menu, eg the MenuButton for which the MenuModel for
* this TrayItem is set.
*/
get actionGroup(): Gio.ActionGroup;
/**
* 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: TrayItem.SignalSignatures;
// Constructors
constructor(properties?: Partial<TrayItem.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect<K extends keyof TrayItem.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, TrayItem.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof TrayItem.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, TrayItem.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof TrayItem.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<TrayItem.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Methods
/**
* tells the tray app that its menu is about to be opened, so it can update the menu if needed. You should call this method before openening the
* menu.
*/
about_to_show(): void;
/**
* Send an activate request to the tray app.
* @param x
* @param y
*/
activate(x: number, y: number): void;
/**
* Send a secondary activate request to the tray app.
* @param x
* @param y
*/
secondary_activate(x: number, y: number): void;
/**
* Send a scroll request to the tray app. valid values for the orientation are "horizontal" and "vertical".
* @param delta
* @param orientation
*/
scroll(delta: number, orientation: string): void;
to_json_string(): string;
get_title(): string;
get_category(): Category;
get_status(): Status;
get_tooltip(): Tooltip | null;
get_tooltip_markup(): string;
get_tooltip_text(): string;
get_id(): string;
get_is_menu(): boolean;
get_icon_theme_path(): string;
get_icon_name(): string;
get_icon_pixbuf(): GdkPixbuf.Pixbuf;
get_gicon(): Gio.Icon;
get_item_id(): string;
get_menu_path(): never;
get_menu_model(): Gio.MenuModel | null;
get_action_group(): Gio.ActionGroup | null;
}
type TrayClass = typeof Tray;
abstract class TrayPrivate {
static $gtype: GObject.GType<TrayPrivate>;
// Constructors
_init(...args: any[]): void;
}
type TrayItemClass = typeof TrayItem;
abstract class TrayItemPrivate {
static $gtype: GObject.GType<TrayItemPrivate>;
// Constructors
_init(...args: any[]): void;
}
class Pixmap {
static $gtype: GObject.GType<Pixmap>;
// Fields
width: number;
height: number;
bytes: Uint8Array;
bytes_length1: number;
// Constructors
constructor(
properties?: Partial<{
width: number;
height: number;
bytes: Uint8Array;
bytes_length1: number;
}>,
);
_init(...args: any[]): void;
}
class Tooltip {
static $gtype: GObject.GType<Tooltip>;
// Fields
icon_name: string;
icon: Pixmap[];
icon_length1: number;
title: string;
description: string;
// Constructors
constructor(
properties?: Partial<{
icon_name: string;
icon: Pixmap[];
icon_length1: number;
title: string;
description: string;
}>,
);
_init(...args: any[]): void;
}
/**
* 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 AstalTray;
}
declare module 'gi://AstalTray' {
import AstalTray01 from 'gi://AstalTray?version=0.1';
export default AstalTray01;
}
// END

1647
home/ags/files/@girs/astalwp-0.1.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

10872
home/ags/files/@girs/atk-1.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

6908
home/ags/files/@girs/atspi-2.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

536
home/ags/files/@girs/cairo-1.0.d.ts vendored Normal file
View File

@ -0,0 +1,536 @@
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/**
* 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://cairo?version=1.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
import type GLib from 'gi://GLib?version=2.0';
export namespace cairo {
/**
* cairo-1.0
*/
export namespace Status {
export const $gtype: GObject.GType<Status>;
}
enum Status {
SUCCESS,
NO_MEMORY,
INVALID_RESTORE,
INVALID_POP_GROUP,
NO_CURRENT_POINT,
INVALID_MATRIX,
INVALID_STATUS,
NULL_POINTER,
INVALID_STRING,
INVALID_PATH_DATA,
READ_ERROR,
WRITE_ERROR,
SURFACE_FINISHED,
SURFACE_TYPE_MISMATCH,
PATTERN_TYPE_MISMATCH,
INVALID_CONTENT,
INVALID_FORMAT,
INVALID_VISUAL,
FILE_NOT_FOUND,
INVALID_DASH,
INVALID_DSC_COMMENT,
INVALID_INDEX,
CLIP_NOT_REPRESENTABLE,
TEMP_FILE_ERROR,
INVALID_STRIDE,
FONT_TYPE_MISMATCH,
USER_FONT_IMMUTABLE,
USER_FONT_ERROR,
NEGATIVE_COUNT,
INVALID_CLUSTERS,
INVALID_SLANT,
INVALID_WEIGHT,
INVALID_SIZE,
USER_FONT_NOT_IMPLEMENTED,
DEVICE_TYPE_MISMATCH,
DEVICE_ERROR,
INVALID_MESH_CONSTRUCTION,
DEVICE_FINISHED,
JBIG2_GLOBAL_MISSING,
}
export namespace Content {
export const $gtype: GObject.GType<Content>;
}
enum Content {
COLOR,
ALPHA,
COLOR_ALPHA,
}
export namespace Operator {
export const $gtype: GObject.GType<Operator>;
}
enum Operator {
CLEAR,
SOURCE,
OVER,
IN,
OUT,
ATOP,
DEST,
DEST_OVER,
DEST_IN,
DEST_OUT,
DEST_ATOP,
XOR,
ADD,
SATURATE,
MULTIPLY,
SCREEN,
OVERLAY,
DARKEN,
LIGHTEN,
COLOR_DODGE,
COLOR_BURN,
HARD_LIGHT,
SOFT_LIGHT,
DIFFERENCE,
EXCLUSION,
HSL_HUE,
HSL_SATURATION,
HSL_COLOR,
HSL_LUMINOSITY,
}
export namespace Antialias {
export const $gtype: GObject.GType<Antialias>;
}
enum Antialias {
DEFAULT,
NONE,
GRAY,
SUBPIXEL,
FAST,
GOOD,
BEST,
}
export namespace FillRule {
export const $gtype: GObject.GType<FillRule>;
}
enum FillRule {
WINDING,
EVEN_ODD,
}
export namespace LineCap {
export const $gtype: GObject.GType<LineCap>;
}
enum LineCap {
BUTT,
ROUND,
SQUARE,
}
export namespace LineJoin {
export const $gtype: GObject.GType<LineJoin>;
}
enum LineJoin {
MITER,
ROUND,
BEVEL,
}
export namespace TextClusterFlags {
export const $gtype: GObject.GType<TextClusterFlags>;
}
enum TextClusterFlags {
BACKWARD,
}
export namespace FontSlant {
export const $gtype: GObject.GType<FontSlant>;
}
enum FontSlant {
NORMAL,
ITALIC,
OBLIQUE,
}
export namespace FontWeight {
export const $gtype: GObject.GType<FontWeight>;
}
enum FontWeight {
NORMAL,
BOLD,
}
export namespace SubpixelOrder {
export const $gtype: GObject.GType<SubpixelOrder>;
}
enum SubpixelOrder {
DEFAULT,
RGB,
BGR,
VRGB,
VBGR,
}
export namespace HintStyle {
export const $gtype: GObject.GType<HintStyle>;
}
enum HintStyle {
DEFAULT,
NONE,
SLIGHT,
MEDIUM,
FULL,
}
export namespace HintMetrics {
export const $gtype: GObject.GType<HintMetrics>;
}
enum HintMetrics {
DEFAULT,
OFF,
ON,
}
export namespace FontType {
export const $gtype: GObject.GType<FontType>;
}
enum FontType {
TOY,
FT,
WIN32,
QUARTZ,
USER,
}
export namespace PathDataType {
export const $gtype: GObject.GType<PathDataType>;
}
enum PathDataType {
MOVE_TO,
LINE_TO,
CURVE_TO,
CLOSE_PATH,
}
export namespace DeviceType {
export const $gtype: GObject.GType<DeviceType>;
}
enum DeviceType {
DRM,
GL,
SCRIPT,
XCB,
XLIB,
XML,
COGL,
WIN32,
INVALID,
}
export namespace SurfaceType {
export const $gtype: GObject.GType<SurfaceType>;
}
enum SurfaceType {
IMAGE,
PDF,
PS,
XLIB,
XCB,
GLITZ,
QUARTZ,
WIN32,
BEOS,
DIRECTFB,
SVG,
OS2,
WIN32_PRINTING,
QUARTZ_IMAGE,
SCRIPT,
QT,
RECORDING,
VG,
GL,
DRM,
TEE,
XML,
SKIA,
SUBSURFACE,
COGL,
}
export namespace Format {
export const $gtype: GObject.GType<Format>;
}
enum Format {
INVALID,
ARGB32,
RGB24,
A8,
A1,
RGB16_565,
RGB30,
}
export namespace PatternType {
export const $gtype: GObject.GType<PatternType>;
}
enum PatternType {
SOLID,
SURFACE,
LINEAR,
RADIAL,
MESH,
RASTER_SOURCE,
}
export namespace Extend {
export const $gtype: GObject.GType<Extend>;
}
enum Extend {
NONE,
REPEAT,
REFLECT,
PAD,
}
export namespace Filter {
export const $gtype: GObject.GType<Filter>;
}
enum Filter {
FAST,
GOOD,
BEST,
NEAREST,
BILINEAR,
GAUSSIAN,
}
export namespace RegionOverlap {
export const $gtype: GObject.GType<RegionOverlap>;
}
enum RegionOverlap {
IN,
OUT,
PART,
}
function image_surface_create(): void;
class Context {
static $gtype: GObject.GType<Context>;
// Constructors
_init(...args: any[]): void;
}
class Device {
static $gtype: GObject.GType<Device>;
// Constructors
_init(...args: any[]): void;
}
class Surface {
static $gtype: GObject.GType<Surface>;
// Constructors
_init(...args: any[]): void;
}
class Matrix {
static $gtype: GObject.GType<Matrix>;
// Constructors
_init(...args: any[]): void;
}
class Pattern {
static $gtype: GObject.GType<Pattern>;
// Constructors
_init(...args: any[]): void;
}
class Region {
static $gtype: GObject.GType<Region>;
// Constructors
_init(...args: any[]): void;
}
class FontOptions {
static $gtype: GObject.GType<FontOptions>;
// Constructors
_init(...args: any[]): void;
}
class FontFace {
static $gtype: GObject.GType<FontFace>;
// Constructors
_init(...args: any[]): void;
}
class ScaledFont {
static $gtype: GObject.GType<ScaledFont>;
// Constructors
_init(...args: any[]): void;
}
class Path {
static $gtype: GObject.GType<Path>;
// Constructors
_init(...args: any[]): void;
}
class Rectangle {
static $gtype: GObject.GType<Rectangle>;
// Fields
x: number;
y: number;
width: number;
height: number;
// Constructors
constructor(
properties?: Partial<{
x: number;
y: number;
width: number;
height: number;
}>,
);
_init(...args: any[]): void;
}
class RectangleInt {
static $gtype: GObject.GType<RectangleInt>;
// Fields
x: number;
y: number;
width: number;
height: number;
// Constructors
constructor(
properties?: Partial<{
x: number;
y: number;
width: number;
height: number;
}>,
);
_init(...args: any[]): void;
}
class Glyph {
static $gtype: GObject.GType<Glyph>;
// Fields
index: number;
x: number;
y: number;
// Constructors
constructor(
properties?: Partial<{
index: number;
x: number;
y: number;
}>,
);
_init(...args: any[]): void;
}
class TextCluster {
static $gtype: GObject.GType<TextCluster>;
// Fields
num_bytes: number;
num_glyphs: number;
// Constructors
constructor(
properties?: Partial<{
num_bytes: number;
num_glyphs: number;
}>,
);
_init(...args: any[]): void;
}
/**
* 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 cairo;
}
declare module 'gi://cairo' {
import Cairo10 from 'gi://cairo?version=1.0';
export default Cairo10;
}
// END

845
home/ags/files/@girs/cairo.d.ts vendored Normal file
View File

@ -0,0 +1,845 @@
declare module 'cairo' {
// Cairo 1.0
import Cairo from 'gi://cairo?version=1.0';
import type GObject from 'gi://GObject?version=2.0';
namespace giCairo {
// Re-export enums directly from Cairo
export import Status = Cairo.Status;
export import Content = Cairo.Content;
export import Operator = Cairo.Operator;
export import Antialias = Cairo.Antialias;
export import FillRule = Cairo.FillRule;
export import LineCap = Cairo.LineCap;
export import LineJoin = Cairo.LineJoin;
export import TextClusterFlags = Cairo.TextClusterFlags;
export import FontSlant = Cairo.FontSlant;
export import FontWeight = Cairo.FontWeight;
export import SubpixelOrder = Cairo.SubpixelOrder;
export import HintStyle = Cairo.HintStyle;
export import HintMetrics = Cairo.HintMetrics;
export import FontType = Cairo.FontType;
export import PathDataType = Cairo.PathDataType;
export import DeviceType = Cairo.DeviceType;
export import SurfaceType = Cairo.SurfaceType;
export import Format = Cairo.Format;
export import PatternType = Cairo.PatternType;
export import Extend = Cairo.Extend;
export import Filter = Cairo.Filter;
export import RegionOverlap = Cairo.RegionOverlap;
/**
* Describes the metrics of a string of text
*/
export interface TextExtents {
/** The horizontal distance from the origin to the leftmost part of the text */
xBearing: number;
/** The vertical distance from the origin to the topmost part of the text */
yBearing: number;
/** The width of the text */
width: number;
/** The height of the text */
height: number;
/** The distance to advance horizontally after drawing the text */
xAdvance: number;
/** The distance to advance vertically after drawing the text */
yAdvance: number;
}
/**
* The main Cairo drawing context
*
* A Cairo context is used to draw to surfaces and perform drawing operations.
* When you're done with a context, you must call $dispose() to free memory.
*/
export class Context extends Cairo.Context {
/**
* Creates a new Cairo context for drawing to the given surface
* @param surface The surface to draw on
*/
constructor(surface: Surface);
/**
* Free a Cairo.Context and all associated memory
*
* Unlike other objects in GJS, Cairo contexts must be explicitly disposed
* to avoid memory leaks.
*/
$dispose(): void;
/**
* Adds a circular arc of the given radius to the current path
* @param xc X coordinate of the center of the arc
* @param yc Y coordinate of the center of the arc
* @param radius Radius of the arc
* @param angle1 Starting angle in radians
* @param angle2 End angle in radians
*/
arc(xc: number, yc: number, radius: number, angle1: number, angle2: number): void;
/**
* Adds a circular arc of the given radius to the current path, but draws
* the arc in the opposite direction from arc()
* @param xc X coordinate of the center of the arc
* @param yc Y coordinate of the center of the arc
* @param radius Radius of the arc
* @param angle1 Starting angle in radians
* @param angle2 End angle in radians
*/
arcNegative(xc: number, yc: number, radius: number, angle1: number, angle2: number): void;
/**
* Adds a cubic Bézier spline to the current path
* @param x1 X coordinate of the first control point
* @param y1 Y coordinate of the first control point
* @param x2 X coordinate of the second control point
* @param y2 Y coordinate of the second control point
* @param x3 X coordinate of the end point
* @param y3 Y coordinate of the end point
*/
curveTo(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): void;
/**
* Establishes a new clip region by intersecting the current clip region
* with the current path, then clearing the current path
*/
clip(): void;
/**
* Like clip() but preserves the current path
*/
clipPreserve(): void;
/**
* Returns the current clip extents as [x1, y1, x2, y2]
* @returns An array with [x1, y1, x2, y2] clip extents
*/
clipExtents(): [number, number, number, number];
/**
* Closes the current path by drawing a line to the beginning of the current subpath
*/
closePath(): void;
/**
* Emits the current page, but doesn't clear it
*/
copyPage(): void;
/**
* Transforms a coordinate from device space to user space
* @param x X coordinate
* @param y Y coordinate
* @returns An array with [x, y] transformed coordinates
*/
deviceToUser(x: number, y: number): [number, number];
/**
* Transforms a distance vector from device space to user space
* @param x X component of the distance vector
* @param y Y component of the distance vector
* @returns An array with [x, y] transformed distance vector
*/
deviceToUserDistance(x: number, y: number): [number, number];
/**
* Fills the current path using the current fill rule, then clears the path
*/
fill(): void;
/**
* Fills the current path using the current fill rule, but doesn't clear the path
*/
fillPreserve(): void;
/**
* Returns the current fill extents as [x1, y1, x2, y2]
* @returns An array with [x1, y1, x2, y2] fill extents
*/
fillExtents(): [number, number, number, number];
/**
* Gets the current antialiasing mode
* @returns The current antialiasing mode
*/
getAntialias(): Antialias;
/**
* Gets the current point of the current path
* @returns An array with [x, y] coordinates of the current point
*/
getCurrentPoint(): [number, number];
/**
* Gets the current dash count
* @returns The number of elements in the current dash pattern
*/
getDashCount(): number;
/**
* Gets the current fill rule
* @returns The current fill rule
*/
getFillRule(): FillRule;
/**
* Gets the current line cap style
* @returns The current line cap style
*/
getLineCap(): LineCap;
/**
* Gets the current line join style
* @returns The current line join style
*/
getLineJoin(): LineJoin;
/**
* Gets the current line width
* @returns The current line width
*/
getLineWidth(): number;
/**
* Gets the current miter limit
* @returns The current miter limit
*/
getMiterLimit(): number;
/**
* Gets the current compositing operator
* @returns The current compositing operator
*/
getOperator(): Operator;
/**
* Gets the current source pattern
* @returns The current source pattern
*/
getSource(): Pattern;
/**
* Gets the surface the Cairo context is drawing on
* @returns The target surface
*/
getTarget(): Surface;
/**
* Gets the current tolerance value
* @returns The current tolerance value
*/
getTolerance(): number;
/**
* Checks if there is a current point defined
* @returns True if there is a current point
*/
hasCurrentPoint(): boolean;
/**
* Resets the current transformation matrix to the identity matrix
*/
identityMatrix(): void;
/**
* Tests whether the given point is inside the area filled by the current path
* @param x X coordinate of the point to test
* @param y Y coordinate of the point to test
* @returns True if the point is inside the path
*/
inFill(x: number, y: number): boolean;
/**
* Tests whether the given point is inside the area that would be inked
* by the current path with the current line width and stroke parameters
* @param x X coordinate of the point to test
* @param y Y coordinate of the point to test
* @returns True if the point would be inked
*/
inStroke(x: number, y: number): boolean;
/**
* Adds a line to the current path from the current point to the given point
* @param x X coordinate of the end point
* @param y Y coordinate of the end point
*/
lineTo(x: number, y: number): void;
/**
* Sets the current mask pattern used for painting operations
* @param pattern A pattern to use as mask
*/
mask(pattern: Pattern): void;
/**
* Sets the current mask to a surface
* @param surface A surface to use as mask
* @param x X coordinate at which to place the origin of the surface
* @param y Y coordinate at which to place the origin of the surface
*/
maskSurface(surface: Surface, x: number, y: number): void;
/**
* Begins a new subpath at the given point
* @param x X coordinate of the new position
* @param y Y coordinate of the new position
*/
moveTo(x: number, y: number): void;
/**
* Clears the current path and begins a new path
*/
newPath(): void;
/**
* Begins a new subpath without changing the current point
*/
newSubPath(): void;
/**
* Paints the current source everywhere within the current clip region
*/
paint(): void;
/**
* Paints the current source everywhere within the current clip region
* using the given alpha value
* @param alpha Alpha value to use, between 0 and 1
*/
paintWithAlpha(alpha: number): void;
/**
* Returns the current path extents as [x1, y1, x2, y2]
* @returns An array with [x1, y1, x2, y2] path extents
*/
pathExtents(): [number, number, number, number];
/**
* Terminates the current pattern group and returns a new pattern
* representing everything drawn to the group
* @returns A new pattern representing the group
*/
popGroup(): Pattern;
/**
* Terminates the current pattern group and makes it the current source pattern
*/
popGroupToSource(): void;
/**
* Temporarily redirects drawing to an intermediate surface
*/
pushGroup(): void;
/**
* Temporarily redirects drawing to an intermediate surface with the given content
* @param content The content type for the group
*/
pushGroupWithContent(content: Content): void;
/**
* Adds a rectangle to the current path
* @param x X coordinate of the top-left corner
* @param y Y coordinate of the top-left corner
* @param width Width of the rectangle
* @param height Height of the rectangle
*/
rectangle(x: number, y: number, width: number, height: number): void;
/**
* Adds a cubic Bézier spline to the current path using relative coordinates
* @param dx1 X offset to the first control point from current point
* @param dy1 Y offset to the first control point from current point
* @param dx2 X offset to the second control point from current point
* @param dy2 Y offset to the second control point from current point
* @param dx3 X offset to the end point from current point
* @param dy3 Y offset to the end point from current point
*/
relCurveTo(dx1: number, dy1: number, dx2: number, dy2: number, dx3: number, dy3: number): void;
/**
* Adds a line to the current path relative to the current point
* @param dx X offset from the current point
* @param dy Y offset from the current point
*/
relLineTo(dx: number, dy: number): void;
/**
* Begins a new subpath relative to the current point
* @param dx X offset from the current point
* @param dy Y offset from the current point
*/
relMoveTo(dx: number, dy: number): void;
/**
* Resets the current clip region to its original, unrestricted state
*/
resetClip(): void;
/**
* Restores the context state from the stack
*/
restore(): void;
/**
* Rotates the current transformation matrix
* @param angle Angle of rotation in radians
*/
rotate(angle: number): void;
/**
* Saves the current context state to the stack
*/
save(): void;
/**
* Scales the current transformation matrix
* @param sx Scale factor for the X dimension
* @param sy Scale factor for the Y dimension
*/
scale(sx: number, sy: number): void;
/**
* Selects a font face
* @param family A font family name
* @param slant A font slant
* @param weight A font weight
*/
selectFontFace(family: string, slant: number, weight: number): void;
/**
* Sets the antialiasing mode
* @param antialias The new antialiasing mode
*/
setAntialias(antialias: Antialias): void;
/**
* Sets the dash pattern to be used by stroke()
* @param dashes Array of dash lengths
* @param offset Offset into the dash pattern
*/
setDash(dashes: number[], offset: number): void;
/**
* Sets the current font size in user space units
* @param size Font size in user space units
*/
setFontSize(size: number): void;
/**
* Sets the current fill rule
* @param fillRule The new fill rule
*/
setFillRule(fillRule: FillRule): void;
/**
* Sets the current line cap style
* @param lineCap The new line cap style
*/
setLineCap(lineCap: LineCap): void;
/**
* Sets the current line join style
* @param lineJoin The new line join style
*/
setLineJoin(lineJoin: LineJoin): void;
/**
* Sets the current line width
* @param width The new line width
*/
setLineWidth(width: number): void;
/**
* Sets the current miter limit
* @param limit The new miter limit
*/
setMiterLimit(limit: number): void;
/**
* Sets the current compositing operator
* @param op The new compositing operator
*/
setOperator(op: Operator): void;
/**
* Sets the current source pattern
* @param pattern The new source pattern
*/
setSource(pattern: Pattern): void;
/**
* Sets the source pattern to an RGB opaque color
* @param red Red component, between 0 and 1
* @param green Green component, between 0 and 1
* @param blue Blue component, between 0 and 1
*/
setSourceRGB(red: number, green: number, blue: number): void;
/**
* Sets the source pattern to an RGBA color
* @param red Red component, between 0 and 1
* @param green Green component, between 0 and 1
* @param blue Blue component, between 0 and 1
* @param alpha Alpha component, between 0 and 1
*/
setSourceRGBA(red: number, green: number, blue: number, alpha: number): void;
/**
* Sets the source pattern to the given surface
* @param surface The new source surface
* @param x X coordinate where to place the surface origin
* @param y Y coordinate where to place the surface origin
*/
setSourceSurface(surface: Surface, x: number, y: number): void;
/**
* Sets the tolerance used when converting paths to trapezoids
* @param tolerance The new tolerance value
*/
setTolerance(tolerance: number): void;
/**
* Emits the current page and clears it
*/
showPage(): void;
/**
* Draws text at the current position
* @param utf8 A string of text encoded in UTF-8
*/
showText(utf8: string): void;
/**
* Strokes the current path using the current line width, line join,
* line cap, and dash settings, then clears the path
*/
stroke(): void;
/**
* Like stroke() but preserves the current path
*/
strokePreserve(): void;
/**
* Returns the current stroke extents as [x1, y1, x2, y2]
* @returns An array with [x1, y1, x2, y2] stroke extents
*/
strokeExtents(): [number, number, number, number];
/**
* Gets the extents of the given text if it were drawn at the current point
* @param utf8 A string of text encoded in UTF-8
* @returns Text extents information
*/
textExtents(utf8: string): TextExtents;
/**
* Translates the current transformation matrix
* @param tx Translation in the X direction
* @param ty Translation in the Y direction
*/
translate(tx: number, ty: number): void;
/**
* Transforms a coordinate from user space to device space
* @param x X coordinate
* @param y Y coordinate
* @returns An array with [x, y] transformed coordinates
*/
userToDevice(x: number, y: number): [number, number];
/**
* Transforms a distance vector from user space to device space
* @param x X component of the distance vector
* @param y Y component of the distance vector
* @returns An array with [x, y] transformed distance vector
*/
userToDeviceDistance(x: number, y: number): [number, number];
/**
* Creates a copy of the current path and returns it
* @returns A copy of the current path
*/
copyPath(): Path;
/**
* Appends a path to the current path
* @param path A path to append
*/
appendPath(path: Path): void;
}
/**
* Base class for all Cairo surfaces
*/
export abstract class Surface extends Cairo.Surface {
/**
* Gets the device scale of the surface
* @returns An array with [x, y] device scale
*/
getDeviceScale(): [number, number];
/**
* Sets the device scale of the surface
* @param x X scale factor
* @param y Y scale factor
*/
setDeviceScale(x: number, y: number): void;
/**
* Gets the device offset of the surface
* @returns An array with [x, y] device offset
*/
getDeviceOffset(): [number, number];
/**
* Sets the device offset of the surface
* @param x X offset
* @param y Y offset
*/
setDeviceOffset(x: number, y: number): void;
/**
* Performs all pending drawing operations
*/
flush(): void;
/**
* Finishes the surface and drops all references to external resources
*/
finish(): void;
}
/**
* A surface that uses in-memory image data buffers
*/
export class ImageSurface extends Surface {
/**
* Creates a new image surface
* @param format The format of pixels in the surface
* @param width Width of the surface in pixels
* @param height Height of the surface in pixels
*/
constructor(format: Format, width: number, height: number);
/**
* Creates a new image surface from a PNG file
* @param filename Path to a PNG file
* @returns A new image surface
*/
static createFromPNG(filename: string): ImageSurface;
/**
* Gets the format of the surface
* @returns The format of the surface
*/
getFormat(): Format;
/**
* Gets the width of the surface in pixels
* @returns The width of the surface
*/
getWidth(): number;
/**
* Gets the height of the surface in pixels
* @returns The height of the surface
*/
getHeight(): number;
/**
* Writes the contents of the surface to a PNG file
* @param filename Path to the PNG file to write
*/
writeToPNG(filename: string): void;
}
/**
* A surface that produces output in the PDF format
*/
export class PDFSurface extends Surface {
/**
* Creates a new PDF surface
* @param filename Path to the PDF file to write to
* @param width Width of the surface in points (1 point = 1/72 inch)
* @param height Height of the surface in points (1 point = 1/72 inch)
*/
constructor(filename: string, width: number, height: number);
}
/**
* A surface that produces output in the PostScript format
*/
export class PSSurface extends Surface {
/**
* Creates a new PostScript surface
* @param filename Path to the PostScript file to write to
* @param width Width of the surface in points (1 point = 1/72 inch)
* @param height Height of the surface in points (1 point = 1/72 inch)
*/
constructor(filename: string, width: number, height: number);
}
/**
* A surface that produces output in the SVG format
*/
export class SVGSurface extends Surface {
/**
* Creates a new SVG surface
* @param filename Path to the SVG file to write to
* @param width Width of the surface in points (1 point = 1/72 inch)
* @param height Height of the surface in points (1 point = 1/72 inch)
*/
constructor(filename: string, width: number, height: number);
}
/**
* Base class for all Cairo patterns
*/
export class Pattern extends Cairo.Pattern {}
/**
* Base class for all gradient patterns
*/
export class Gradient extends Pattern {
/**
* Adds a color stop to the gradient at the given offset
* @param offset Offset position of the stop, between 0 and 1
* @param red Red component, between 0 and 1
* @param green Green component, between 0 and 1
* @param blue Blue component, between 0 and 1
* @param alpha Alpha component, between 0 and 1
*/
addColorStopRGBA(offset: number, red: number, green: number, blue: number, alpha: number): void;
/**
* Adds an opaque color stop to the gradient at the given offset
* @param offset Offset position of the stop, between 0 and 1
* @param red Red component, between 0 and 1
* @param green Green component, between 0 and 1
* @param blue Blue component, between 0 and 1
*/
addColorStopRGB(offset: number, red: number, green: number, blue: number): void;
}
/**
* A pattern for linear gradients
*/
export class LinearGradient extends Gradient {
/**
* Creates a new linear gradient pattern
* @param x0 X coordinate of the start point
* @param y0 Y coordinate of the start point
* @param x1 X coordinate of the end point
* @param y1 Y coordinate of the end point
*/
constructor(x0: number, y0: number, x1: number, y1: number);
}
/**
* A pattern for radial gradients
*/
export class RadialGradient extends Gradient {
/**
* Creates a new radial gradient pattern
* @param cx0 X coordinate of the start circle
* @param cy0 Y coordinate of the start circle
* @param radius0 Radius of the start circle
* @param cx1 X coordinate of the end circle
* @param cy1 Y coordinate of the end circle
* @param radius1 Radius of the end circle
*/
constructor(cx0: number, cy0: number, radius0: number, cx1: number, cy1: number, radius1: number);
}
/**
* A pattern that uses a surface as its source
*/
export class SurfacePattern extends Pattern {
/**
* Creates a new pattern for the given surface
* @param surface The surface to use
*/
constructor(surface: Surface);
}
/**
* A pattern for solid colors
*/
export class SolidPattern extends Pattern {
/**
* Creates a new solid pattern with an opaque color
* @param red Red component, between 0 and 1
* @param green Green component, between 0 and 1
* @param blue Blue component, between 0 and 1
* @returns A new solid pattern
*/
static createRGB(red: number, green: number, blue: number): SolidPattern;
/**
* Creates a new solid pattern with a transparent color
* @param red Red component, between 0 and 1
* @param green Green component, between 0 and 1
* @param blue Blue component, between 0 and 1
* @param alpha Alpha component, between 0 and 1
* @returns A new solid pattern
*/
static createRGBA(red: number, green: number, blue: number, alpha: number): SolidPattern;
}
export class Path extends Cairo.Path {}
/**
* A rectangle
*/
export class Rectangle extends Cairo.Rectangle {}
/**
* A rectangle integer
*/
export class RectangleInt extends Cairo.RectangleInt {}
/**
* A region object used for representing a set of pixels
*/
export class Region extends Cairo.Region {}
/**
* A matrix object used for transforming coordinates
*/
export class Matrix extends Cairo.Matrix {}
/**
* A font face object used for storing and manipulating font faces
*/
export class FontFace extends Cairo.FontFace {}
/**
* A scaled font object used for storing and manipulating scaled fonts
*/
export class ScaledFont extends Cairo.ScaledFont {}
/**
* A glyph object used for storing and manipulating glyphs
*/
export class Glyph extends Cairo.Glyph {}
/**
* A text cluster object used for storing and manipulating text clusters
*/
export class TextCluster extends Cairo.TextCluster {}
/**
* A font options object used for storing and manipulating font options
*/
export class FontOptions extends Cairo.FontOptions {}
/**
* A device object used for storing and manipulating devices
*/
export class Device extends Cairo.Device {}
}
export default giCairo;
}

23
home/ags/files/@girs/console.d.ts vendored Normal file
View File

@ -0,0 +1,23 @@
declare module 'console' {
/**
* @param logDomain the GLib log domain this Console should print
* with. Defaults to 'Gjs-Console'.
*/
export function setConsoleLogDomain(logDomain: string): void;
/**
* @param logDomain the GLib log domain this Console should print
* with. Defaults to 'Gjs-Console'.
*/
export function getConsoleLogDomain(): string;
export const DEFAULT_LOG_DOMAIN: string;
const Console: {
setConsoleLogDomain: typeof setConsoleLogDomain;
getConsoleLogDomain: typeof getConsoleLogDomain;
DEFAULT_LOG_DOMAIN: typeof DEFAULT_LOG_DOMAIN;
};
export default Console;
}

89
home/ags/files/@girs/dbus-1.0.d.ts vendored Normal file
View File

@ -0,0 +1,89 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://DBus?version=1.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace DBus {
/**
* DBus-1.0
*/
export namespace BusType {
export const $gtype: GObject.GType<BusType>;
}
enum BusType {
SESSION,
SYSTEM,
STARTER,
}
class Connection {
static $gtype: GObject.GType<Connection>;
// Constructors
_init(...args: any[]): void;
}
class Error {
static $gtype: GObject.GType<Error>;
// Constructors
_init(...args: any[]): void;
}
class Message {
static $gtype: GObject.GType<Message>;
// Constructors
_init(...args: any[]): void;
}
class MessageIter {
static $gtype: GObject.GType<MessageIter>;
// Constructors
_init(...args: any[]): void;
}
class PendingCall {
static $gtype: GObject.GType<PendingCall>;
// Constructors
_init(...args: any[]): void;
}
/**
* 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 DBus;
}
declare module 'gi://DBus' {
import DBus10 from 'gi://DBus?version=1.0';
export default DBus10;
}
// END

112
home/ags/files/@girs/dbusglib-1.0.d.ts vendored Normal file
View File

@ -0,0 +1,112 @@
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/**
* 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://DBusGLib?version=1.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
import type GLib from 'gi://GLib?version=2.0';
export namespace DBusGLib {
/**
* DBusGLib-1.0
*/
namespace Proxy {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {}
}
class Proxy extends GObject.Object {
static $gtype: GObject.GType<Proxy>;
/**
* 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: Proxy.SignalSignatures;
// Constructors
constructor(properties?: Partial<Proxy.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect<K extends keyof Proxy.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Proxy.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Proxy.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Proxy.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Proxy.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Proxy.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
}
class Connection {
static $gtype: GObject.GType<Connection>;
// Constructors
_init(...args: any[]): void;
}
class MethodInvocation {
static $gtype: GObject.GType<MethodInvocation>;
// Constructors
_init(...args: any[]): void;
}
class ProxyClass {
static $gtype: GObject.GType<ProxyClass>;
// Constructors
_init(...args: any[]): void;
}
/**
* 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 DBusGLib;
}
declare module 'gi://DBusGLib' {
import DBusGLib10 from 'gi://DBusGLib?version=1.0';
export default DBusGLib10;
}
// END

306
home/ags/files/@girs/dom.d.ts vendored Normal file
View File

@ -0,0 +1,306 @@
/// <reference path="./glib-2.0.d.ts" />
/**
* Gjs has implemented some functionality from the DOM API,
* this leads to a conflict when all DOM (`lib.dom.d.ts`) should be used.
* This should normally not be the case, since the other - not yet reimplemented - API's cannot be used in GJS anyway.
*
* If for some reason the entire DOM types should still be used,
* this file can be ignored and `lib.dom.d.ts` used instead, otherwise this file should be imported in your project.
*
* See also https://github.com/microsoft/TypeScript/blob/main/lib/lib.dom.d.ts
*/
import type GLib from 'gi://GLib?version=2.0';
import type GObject from 'gi://GObject?version=2.0';
declare global {
interface ImportMeta {
/**
* The absolute file: or resource: URL of the module.
*
* @see https://gitlab.gnome.org/GNOME/gjs/-/blob/master/doc/ESModules.md#importmetaurl
*/
url: string; // with readonly this type is incompatible with e.g. https://github.com/vitejs/vite/blob/main/packages/vite/types/importMeta.d.ts
}
// Timers
// See https://gitlab.gnome.org/GNOME/gjs/-/blob/master/modules/esm/_timers.js
/**
* @version Gjs 1.71.1
* @param callback a callback function
* @param delay the duration in milliseconds to wait before running callback
* @param args arguments to pass to callback
*/
function setTimeout(callback: (...args: any[]) => any, delay?: number, ...args: any[]): GLib.Source;
/**
* @version Gjs 1.71.1
* @param callback a callback function
* @param delay the duration in milliseconds to wait between calling callback
* @param args arguments to pass to callback
*/
function setInterval(callback: (...args: any[]) => any, delay?: number, ...args: any[]): GLib.Source;
/**
* @version Gjs 1.71.1
* @param timeout the timeout to clear
*/
function clearTimeout(timeout: GLib.Source): void;
/**
* @version Gjs 1.71.1
* @param timeout the timeout to clear
*/
function clearInterval(timeout: GLib.Source): void;
interface Console {
/**
* Logs a critical message if the condition is not truthy.
* {@link console.error()} for additional information.
*
* @param condition a boolean condition which, if false, causes
* the log to print
* @param data formatting substitutions, if applicable
* @returns
*/
assert(condition: boolean, ...data: any[]): void;
/**
* Resets grouping and clears the terminal on systems supporting ANSI
* terminal control sequences.
*
* In file-based stdout or systems which do not support clearing,
* console.clear() has no visual effect.
*
*/
clear(): void;
/**
* Logs a message with severity equal to {@link GLib.LogLevelFlags.DEBUG}.
*
* @param {...any} data formatting substitutions, if applicable
*/
debug(...data: any[]): void;
/**
* Logs a message with severity equal to {@link GLib.LogLevelFlags.CRITICAL}.
* Does not use {@link GLib.LogLevelFlags.ERROR} to avoid asserting and
* forcibly shutting down the application.
*
* @param data formatting substitutions, if applicable
*/
error(...data: any[]): void;
/**
* Logs a message with severity equal to {@link GLib.LogLevelFlags.INFO}.
*
* @param data formatting substitutions, if applicable
*/
info(...data: any[]): void;
/**
* Logs a message with severity equal to {@link GLib.LogLevelFlags.MESSAGE}.
*
* @param data formatting substitutions, if applicable
*/
log(...data: any[]): void;
// 1.1.7 table(tabularData, properties)
table(tabularData: any, _properties: never): void;
/**
* @param data formatting substitutions, if applicable
*/
trace(...data: any[]): void;
/**
* @param data formatting substitutions, if applicable
*/
warn(...data: any[]): void;
/**
* @param item an item to format generically
* @param [options] any additional options for the formatter. Unused
* in our implementation.
*/
dir(item: object, options: never): void;
/**
* @param data formatting substitutions, if applicable
*/
dirxml(...data: any[]): void;
// 1.2 Counting functions
// https://console.spec.whatwg.org/#counting
/**
* Logs how many times console.count(label) has been called with a given
* label.
* {@link console.countReset()} for resetting a count.
*
* @param label unique identifier for this action
*/
count(label: string): void;
/**
* @param label the unique label to reset the count for
*/
countReset(label: string): void;
// 1.3 Grouping functions
// https://console.spec.whatwg.org/#grouping
/**
* @param data formatting substitutions, if applicable
*/
group(...data: any[]): void;
/**
* Alias for console.group()
*
* @param {...any} data formatting substitutions, if applicable
*/
groupCollapsed(...data: any[]): void;
/**
*/
groupEnd(): void;
// 1.4 Timing functions
// https://console.spec.whatwg.org/#timing
/**
* @param label unique identifier for this action, pass to
* console.timeEnd() to complete
*/
time(label: string): void;
/**
* Logs the time since the last call to console.time(label) where label is
* the same.
*
* @param label unique identifier for this action, pass to
* console.timeEnd() to complete
* @param data string substitutions, if applicable
*/
timeLog(label: string, ...data: any[]): void;
/**
* Logs the time since the last call to console.time(label) and completes
* the action.
* Call console.time(label) again to re-measure.
*
* @param label unique identifier for this action
*/
timeEnd(label: string): void;
// Non-standard functions which are de-facto standards.
// Similar to Node, we define these as no-ops for now.
/**
* @deprecated Not implemented in GJS
*
* @param _label unique identifier for this action, pass to
* console.profileEnd to complete
*/
profile(_label: string): void;
/**
* @deprecated Not implemented in GJS
*
* @param _label unique identifier for this action
*/
profileEnd(_label: string): void;
/**
* @deprecated Not implemented in GJS
*
* @param _label unique identifier for this action
*/
timeStamp(_label: string): void;
}
interface TextDecodeOptions {
// As of Gjs 1.73.2 stream mode is not supported yet.
// stream?: boolean
}
interface TextDecoderOptions {
/** Indicates whether the error mode is fatal. */
fatal?: boolean;
/** Indicates whether whether the byte order mark is ignored. */
ignoreBOM?: boolean;
}
/**
* The TextDecoder interface represents a decoder for a specific text encoding.
* It takes a stream of bytes as input and emits a stream of code points.
*
* @version Gjs 1.69.2
*/
interface TextDecoder {
/** A string containing the name of the decoder, that is a string describing the method the TextDecoder will use. */
readonly encoding: TextDecoderEncoding;
/** A Boolean indicating whether the error mode is fatal. */
readonly fatal: boolean;
/** A Boolean indicating whether the byte order mark is ignored. */
readonly ignoreBOM: boolean;
/**
* Returns a string containing the text decoded with the method of the specific TextDecoder object.
*
* If the error mode is "fatal" and the encoder method encounter an error it WILL THROW a TypeError.
*
* @param input Buffer containing the text to decode
* @param options Object defining the decode options
*/
decode(input?: ArrayBufferView | ArrayBuffer, options?: TextDecodeOptions): string;
}
interface TextEncoderEncodeIntoResult {
read?: number;
written?: number;
}
/**
* TextEncoder takes a stream of code points as input and emits a stream of bytes.
*
* @version Gjs 1.69.2
*/
interface TextEncoder {
readonly encoding: 'utf-8';
/**
* Takes a string as input, and returns a buffer containing the text given in parameters encoded with the UTF-8 method.
*
* @param input Text to encode.
*/
encode(input?: string): Uint8Array;
/**
* Takes a string to encode and a destination Uint8Array to put resulting UTF-8 encoded text into,
* and returns a dictionary object indicating the progress of the encoding.
*
* This is potentially more performant than the older encode() method.
*
* @param source Text to encode.
* @param destination Buffer where to place the resulting UTF-8 encoded text into.
*/
encodeInto(source: string, destination: Uint8Array): TextEncoderEncodeIntoResult;
}
const console: Console;
const TextDecoder: {
prototype: TextDecoder;
new (label?: TextDecoderEncoding, options?: TextDecoderOptions): TextDecoder;
};
const TextEncoder: {
prototype: TextEncoder;
new (): TextEncoder;
};
}
export {};

View File

@ -0,0 +1,65 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://fontconfig?version=2.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace fontconfig {
/**
* fontconfig-2.0
*/
function init(): void;
class Pattern {
static $gtype: GObject.GType<Pattern>;
// Constructors
_init(...args: any[]): void;
}
class CharSet {
static $gtype: GObject.GType<CharSet>;
// Constructors
_init(...args: any[]): void;
}
class Config {
static $gtype: GObject.GType<Config>;
// Constructors
_init(...args: any[]): void;
}
/**
* 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 fontconfig;
}
declare module 'gi://fontconfig' {
import Fontconfig20 from 'gi://fontconfig?version=2.0';
export default Fontconfig20;
}
// END

65
home/ags/files/@girs/freetype2-2.0.d.ts vendored Normal file
View File

@ -0,0 +1,65 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://freetype2?version=2.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace freetype2 {
/**
* freetype2-2.0
*/
class Bitmap {
static $gtype: GObject.GType<Bitmap>;
// Constructors
_init(...args: any[]): void;
}
class Face {
static $gtype: GObject.GType<Face>;
// Constructors
_init(...args: any[]): void;
}
class Library {
static $gtype: GObject.GType<Library>;
// Constructors
_init(...args: any[]): void;
}
type Int32 = number;
/**
* 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 freetype2;
}
declare module 'gi://freetype2' {
import Freetype220 from 'gi://freetype2?version=2.0';
export default Freetype220;
}
// END

View File

@ -0,0 +1,405 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://GDesktopEnums?version=3.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace GDesktopEnums {
/**
* GDesktopEnums-3.0
*/
export namespace AccentColor {
export const $gtype: GObject.GType<AccentColor>;
}
enum AccentColor {
BLUE,
TEAL,
GREEN,
YELLOW,
ORANGE,
RED,
PINK,
PURPLE,
SLATE,
}
export namespace BackgroundShading {
export const $gtype: GObject.GType<BackgroundShading>;
}
enum BackgroundShading {
SOLID,
VERTICAL,
HORIZONTAL,
}
export namespace BackgroundStyle {
export const $gtype: GObject.GType<BackgroundStyle>;
}
enum BackgroundStyle {
NONE,
WALLPAPER,
CENTERED,
SCALED,
STRETCHED,
ZOOM,
SPANNED,
}
export namespace ClockFormat {
export const $gtype: GObject.GType<ClockFormat>;
}
enum ClockFormat {
'24H',
'12H',
}
export namespace ColorScheme {
export const $gtype: GObject.GType<ColorScheme>;
}
enum ColorScheme {
DEFAULT,
PREFER_DARK,
PREFER_LIGHT,
}
export namespace DeviceSendEvents {
export const $gtype: GObject.GType<DeviceSendEvents>;
}
enum DeviceSendEvents {
ENABLED,
DISABLED,
DISABLED_ON_EXTERNAL_MOUSE,
}
export namespace FocusMode {
export const $gtype: GObject.GType<FocusMode>;
}
enum FocusMode {
CLICK,
SLOPPY,
MOUSE,
}
export namespace FocusNewWindows {
export const $gtype: GObject.GType<FocusNewWindows>;
}
enum FocusNewWindows {
SMART,
STRICT,
}
export namespace FontAntialiasingMode {
export const $gtype: GObject.GType<FontAntialiasingMode>;
}
enum FontAntialiasingMode {
NONE,
GRAYSCALE,
RGBA,
}
export namespace FontHinting {
export const $gtype: GObject.GType<FontHinting>;
}
enum FontHinting {
NONE,
SLIGHT,
MEDIUM,
FULL,
}
export namespace FontRendering {
export const $gtype: GObject.GType<FontRendering>;
}
enum FontRendering {
AUTOMATIC,
MANUAL,
}
export namespace FontRgbaOrder {
export const $gtype: GObject.GType<FontRgbaOrder>;
}
enum FontRgbaOrder {
RGBA,
RGB,
BGR,
VRGB,
VBGR,
}
export namespace LocationAccuracyLevel {
export const $gtype: GObject.GType<LocationAccuracyLevel>;
}
enum LocationAccuracyLevel {
COUNTRY,
CITY,
NEIGHBORHOOD,
STREET,
EXACT,
}
export namespace MagnifierCaretTrackingMode {
export const $gtype: GObject.GType<MagnifierCaretTrackingMode>;
}
enum MagnifierCaretTrackingMode {
NONE,
CENTERED,
PROPORTIONAL,
PUSH,
}
export namespace MagnifierFocusTrackingMode {
export const $gtype: GObject.GType<MagnifierFocusTrackingMode>;
}
enum MagnifierFocusTrackingMode {
NONE,
CENTERED,
PROPORTIONAL,
PUSH,
}
export namespace MagnifierMouseTrackingMode {
export const $gtype: GObject.GType<MagnifierMouseTrackingMode>;
}
enum MagnifierMouseTrackingMode {
NONE,
CENTERED,
PROPORTIONAL,
PUSH,
}
export namespace MagnifierScreenPosition {
export const $gtype: GObject.GType<MagnifierScreenPosition>;
}
enum MagnifierScreenPosition {
NONE,
FULL_SCREEN,
TOP_HALF,
BOTTOM_HALF,
LEFT_HALF,
RIGHT_HALF,
}
export namespace MouseDwellDirection {
export const $gtype: GObject.GType<MouseDwellDirection>;
}
enum MouseDwellDirection {
LEFT,
RIGHT,
UP,
DOWN,
}
export namespace MouseDwellMode {
export const $gtype: GObject.GType<MouseDwellMode>;
}
enum MouseDwellMode {
WINDOW,
GESTURE,
}
export namespace PadButtonAction {
export const $gtype: GObject.GType<PadButtonAction>;
}
enum PadButtonAction {
NONE,
HELP,
SWITCH_MONITOR,
KEYBINDING,
}
export namespace PointerAccelProfile {
export const $gtype: GObject.GType<PointerAccelProfile>;
}
enum PointerAccelProfile {
DEFAULT,
FLAT,
ADAPTIVE,
}
export namespace PointingStickScrollMethod {
export const $gtype: GObject.GType<PointingStickScrollMethod>;
}
enum PointingStickScrollMethod {
DEFAULT,
NONE,
ON_BUTTON_DOWN,
}
export namespace ProxyMode {
export const $gtype: GObject.GType<ProxyMode>;
}
enum ProxyMode {
NONE,
MANUAL,
AUTO,
}
export namespace ScreensaverMode {
export const $gtype: GObject.GType<ScreensaverMode>;
}
enum ScreensaverMode {
BLANK_ONLY,
RANDOM,
SINGLE,
}
export namespace StylusButtonAction {
export const $gtype: GObject.GType<StylusButtonAction>;
}
enum StylusButtonAction {
DEFAULT,
MIDDLE,
RIGHT,
BACK,
FORWARD,
SWITCH_MONITOR,
KEYBINDING,
}
export namespace TabletMapping {
export const $gtype: GObject.GType<TabletMapping>;
}
enum TabletMapping {
ABSOLUTE,
RELATIVE,
}
export namespace TitlebarAction {
export const $gtype: GObject.GType<TitlebarAction>;
}
enum TitlebarAction {
TOGGLE_SHADE,
TOGGLE_MAXIMIZE,
TOGGLE_MAXIMIZE_HORIZONTALLY,
TOGGLE_MAXIMIZE_VERTICALLY,
MINIMIZE,
NONE,
LOWER,
MENU,
}
export namespace ToolbarIconSize {
export const $gtype: GObject.GType<ToolbarIconSize>;
}
enum ToolbarIconSize {
SMALL,
LARGE,
}
export namespace ToolbarStyle {
export const $gtype: GObject.GType<ToolbarStyle>;
}
enum ToolbarStyle {
BOTH,
BOTH_HORIZ,
ICONS,
TEXT,
}
export namespace TouchpadClickMethod {
export const $gtype: GObject.GType<TouchpadClickMethod>;
}
enum TouchpadClickMethod {
DEFAULT,
NONE,
AREAS,
FINGERS,
}
export namespace TouchpadHandedness {
export const $gtype: GObject.GType<TouchpadHandedness>;
}
enum TouchpadHandedness {
RIGHT,
LEFT,
MOUSE,
}
export namespace TouchpadTapButtonMap {
export const $gtype: GObject.GType<TouchpadTapButtonMap>;
}
enum TouchpadTapButtonMap {
DEFAULT,
LRM,
LMR,
}
export namespace UsbProtection {
export const $gtype: GObject.GType<UsbProtection>;
}
enum UsbProtection {
LOCKSCREEN,
ALWAYS,
}
export namespace VisualBellType {
export const $gtype: GObject.GType<VisualBellType>;
}
enum VisualBellType {
FULLSCREEN_FLASH,
FRAME_FLASH,
}
/**
* 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 GDesktopEnums;
}
declare module 'gi://GDesktopEnums' {
import GDesktopEnums30 from 'gi://GDesktopEnums?version=3.0';
export default GDesktopEnums30;
}
// END

13337
home/ags/files/@girs/gdk-3.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

18372
home/ags/files/@girs/gdk-4.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

2985
home/ags/files/@girs/gdkpixbuf-2.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

264
home/ags/files/@girs/gdkpixdata-2.0.d.ts vendored Normal file
View File

@ -0,0 +1,264 @@
/// <reference path="./gdkpixbuf-2.0.d.ts" />
/// <reference path="./gio-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gmodule-2.0.d.ts" />
/**
* 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://GdkPixdata?version=2.0' {
// Module dependencies
import type GdkPixbuf from 'gi://GdkPixbuf?version=2.0';
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 GdkPixdata {
/**
* GdkPixdata-2.0
*/
/**
* Magic number for #GdkPixdata structures.
*/
const PIXBUF_MAGIC_NUMBER: number;
/**
* The length of a #GdkPixdata structure without the `pixel_data` pointer.
*/
const PIXDATA_HEADER_LENGTH: number;
/**
* Converts a `GdkPixdata` to a `GdkPixbuf`.
*
* If `copy_pixels` is `TRUE` or if the pixel data is run-length-encoded,
* the pixel data is copied into newly-allocated memory; otherwise it is
* reused.
* @param pixdata a #GdkPixdata to convert into a `GdkPixbuf`.
* @param copy_pixels whether to copy raw pixel data; run-length encoded pixel data is always copied.
* @returns a new pixbuf
*/
function pixbuf_from_pixdata(pixdata: Pixdata, copy_pixels: boolean): GdkPixbuf.Pixbuf;
/**
* An enumeration which is used by gdk_pixdata_to_csource() to
* determine the form of C source to be generated. The three values
* `GDK_PIXDATA_DUMP_PIXDATA_STREAM,` `GDK_PIXDATA_DUMP_PIXDATA_STRUCT`
* and `GDK_PIXDATA_DUMP_MACROS` are mutually exclusive, as are
* `GDK_PIXBUF_DUMP_GTYPES` and `GDK_PIXBUF_DUMP_CTYPES`. The remaining
* elements are optional flags that can be freely added.
*/
/**
* An enumeration which is used by gdk_pixdata_to_csource() to
* determine the form of C source to be generated. The three values
* `GDK_PIXDATA_DUMP_PIXDATA_STREAM,` `GDK_PIXDATA_DUMP_PIXDATA_STRUCT`
* and `GDK_PIXDATA_DUMP_MACROS` are mutually exclusive, as are
* `GDK_PIXBUF_DUMP_GTYPES` and `GDK_PIXBUF_DUMP_CTYPES`. The remaining
* elements are optional flags that can be freely added.
*/
export namespace PixdataDumpType {
export const $gtype: GObject.GType<PixdataDumpType>;
}
enum PixdataDumpType {
/**
* Generate pixbuf data stream (a single
* string containing a serialized #GdkPixdata structure in network byte
* order).
*/
PIXDATA_STREAM,
/**
* Generate #GdkPixdata structure (needs
* the #GdkPixdata structure definition from gdk-pixdata.h).
*/
PIXDATA_STRUCT,
/**
* Generate <function>*_ROWSTRIDE</function>,
* <function>*_WIDTH</function>, <function>*_HEIGHT</function>,
* <function>*_BYTES_PER_PIXEL</function> and
* <function>*_RLE_PIXEL_DATA</function> or <function>*_PIXEL_DATA</function>
* macro definitions for the image.
*/
MACROS,
/**
* Generate GLib data types instead of
* standard C data types.
*/
GTYPES,
/**
* Generate standard C data types instead of
* GLib data types.
*/
CTYPES,
/**
* Generate static symbols.
*/
STATIC,
/**
* Generate const symbols.
*/
CONST,
/**
* Provide a <function>*_RUN_LENGTH_DECODE(image_buf, rle_data, size, bpp)</function>
* macro definition to decode run-length encoded image data.
*/
RLE_DECODER,
}
/**
* An enumeration containing three sets of flags for a #GdkPixdata struct:
* one for the used colorspace, one for the width of the samples and one
* for the encoding of the pixel data.
*/
/**
* An enumeration containing three sets of flags for a #GdkPixdata struct:
* one for the used colorspace, one for the width of the samples and one
* for the encoding of the pixel data.
*/
export namespace PixdataType {
export const $gtype: GObject.GType<PixdataType>;
}
enum PixdataType {
/**
* each pixel has red, green and blue samples.
*/
COLOR_TYPE_RGB,
/**
* each pixel has red, green and blue samples
* and an alpha value.
*/
COLOR_TYPE_RGBA,
/**
* mask for the colortype flags of the enum.
*/
COLOR_TYPE_MASK,
/**
* each sample has 8 bits.
*/
SAMPLE_WIDTH_8,
/**
* mask for the sample width flags of the enum.
*/
SAMPLE_WIDTH_MASK,
/**
* the pixel data is in raw form.
*/
ENCODING_RAW,
/**
* the pixel data is run-length encoded. Runs may
* be up to 127 bytes long; their length is stored in a single byte
* preceding the pixel data for the run. If a run is constant, its length
* byte has the high bit set and the pixel data consists of a single pixel
* which must be repeated.
*/
ENCODING_RLE,
/**
* mask for the encoding flags of the enum.
*/
ENCODING_MASK,
}
/**
* A pixel buffer suitable for serialization and streaming.
*
* Using `GdkPixdata`, images can be compiled into an application,
* making it unnecessary to refer to external image files at runtime.
*
* `GdkPixbuf` includes a utility named `gdk-pixbuf-csource`, which
* can be used to convert image files into `GdkPixdata` structures suitable
* for inclusion in C sources. To convert the `GdkPixdata` structures back
* into a `GdkPixbuf`, use `gdk_pixbuf_from_pixdata()`.
*/
class Pixdata {
static $gtype: GObject.GType<Pixdata>;
// Fields
magic: number;
length: number;
pixdata_type: number;
rowstride: number;
width: number;
height: number;
pixel_data: Uint8Array;
// Constructors
constructor(
properties?: Partial<{
magic: number;
length: number;
pixdata_type: number;
rowstride: number;
width: number;
height: number;
pixel_data: Uint8Array;
}>,
);
_init(...args: any[]): void;
// Methods
/**
* Deserializes (reconstruct) a #GdkPixdata structure from a byte stream.
*
* The byte stream consists of a straightforward writeout of the
* `GdkPixdata` fields in network byte order, plus the `pixel_data`
* bytes the structure points to.
*
* The `pixdata` contents are reconstructed byte by byte and are checked
* for validity.
*
* This function may fail with `GDK_PIXBUF_ERROR_CORRUPT_IMAGE`
* or `GDK_PIXBUF_ERROR_UNKNOWN_TYPE`.
* @param stream stream of bytes containing a serialized #GdkPixdata structure.
* @returns Upon successful deserialization `TRUE` is returned, `FALSE` otherwise.
*/
deserialize(stream: Uint8Array | string): boolean;
/**
* Serializes a #GdkPixdata structure into a byte stream.
* The byte stream consists of a straightforward writeout of the
* #GdkPixdata fields in network byte order, plus the `pixel_data`
* bytes the structure points to.
* @returns A newly-allocated string containing the serialized #GdkPixdata structure.
*/
serialize(): Uint8Array;
/**
* Generates C source code suitable for compiling images directly
* into programs.
*
* GdkPixbuf ships with a program called `gdk-pixbuf-csource`, which offers
* a command line interface to this function.
* @param name used for naming generated data structures or macros
* @param dump_type the kind of C source to be generated
* @returns a newly-allocated string buffer containing the C source form of `pixdata`.
*/
to_csource(name: string, dump_type: PixdataDumpType | null): GLib.String;
}
/**
* 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 GdkPixdata;
}
declare module 'gi://GdkPixdata' {
import GdkPixdata20 from 'gi://GdkPixdata?version=2.0';
export default GdkPixdata20;
}
// END

1689
home/ags/files/@girs/gdkwayland-4.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

1403
home/ags/files/@girs/gdkx11-3.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

1063
home/ags/files/@girs/gdkx11-4.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

43
home/ags/files/@girs/gettext.d.ts vendored Normal file
View File

@ -0,0 +1,43 @@
declare module 'gettext' {
export enum LocaleCategory {
ALL,
COLLATE,
CTYPE,
MESSAGES,
MONETARY,
NUMERIC,
TIME,
}
export function setlocale(category: number, locale: string | null): string;
export function textdomain(domainname: string | null): string;
export function bindtextdomain(domainname: string, dirname: string | null): string;
export function gettext(msgid: string): string;
export function dgettext(domainname: string | null, msgid: string): string;
export function dcgettext(domainname: string | null, msgid: string, category: number): string;
export function ngettext(msgid: string, msgid_plural: string, n: number): string;
export function dngettext(domainname: string, msgid: string, msgid_plural: string, n: number): string;
export function pgettext(context: string, msgid: string): string;
export function dpgettext(dom: string | null, context: string, msgid: string): string;
export function domain(domainName: string): {
gettext: (msgid: string) => string;
ngettext: (msgid: string, msgid_plural: string, n: number) => string;
pgettext: (context: string, msgid: string) => string;
};
const Gettext: {
LocaleCategory: typeof LocaleCategory;
setlocale: typeof setlocale;
textdomain: typeof textdomain;
bindtextdomain: typeof bindtextdomain;
gettext: typeof gettext;
dgettext: typeof dgettext;
dcgettext: typeof dcgettext;
ngettext: typeof ngettext;
dngettext: typeof dngettext;
pgettext: typeof pgettext;
dpgettext: typeof dpgettext;
domain: typeof domain;
};
export default Gettext;
}

68
home/ags/files/@girs/gi.d.ts vendored Normal file
View File

@ -0,0 +1,68 @@
/**
* This file exports all GIR module type definitions.
*/
import './glib-2.0.d.ts';
import './gio-2.0.d.ts';
import './gobject-2.0.d.ts';
import './xrandr-1.3.d.ts';
import './xlib-2.0.d.ts';
import './xft-2.0.d.ts';
import './xfixes-4.0.d.ts';
import './win32-1.0.d.ts';
import './libxml2-2.0.d.ts';
import './freetype2-2.0.d.ts';
import './fontconfig-2.0.d.ts';
import './cairo-1.0.d.ts';
import './wp-0.5.d.ts';
import './vulkan-1.0.d.ts';
import './soup-3.0.d.ts';
import './pangoxft-1.0.d.ts';
import './pangoot-1.0.d.ts';
import './pangofc-1.0.d.ts';
import './pangoft2-1.0.d.ts';
import './pangocairo-1.0.d.ts';
import './pango-1.0.d.ts';
import './nm-1.0.d.ts';
import './json-1.0.d.ts';
import './harfbuzz-0.0.d.ts';
import './gtksource-3.0.d.ts';
import './gtklayershell-0.1.d.ts';
import './gtk4sessionlock-1.0.d.ts';
import './gtk4layershell-1.0.d.ts';
import './gtk-4.0.d.ts';
import './gtk-3.0.d.ts';
import './gsk-4.0.d.ts';
import './graphene-1.0.d.ts';
import './giounix-2.0.d.ts';
import './gdkx11-4.0.d.ts';
import './gdkx11-3.0.d.ts';
import './gdkwayland-4.0.d.ts';
import './gdkpixdata-2.0.d.ts';
import './gdkpixbuf-2.0.d.ts';
import './gdk-4.0.d.ts';
import './gdk-3.0.d.ts';
import './gmodule-2.0.d.ts';
import './glibunix-2.0.d.ts';
import './gl-1.0.d.ts';
import './girepository-3.0.d.ts';
import './girepository-2.0.d.ts';
import './gdesktopenums-3.0.d.ts';
import './dbusglib-1.0.d.ts';
import './dbus-1.0.d.ts';
import './atspi-2.0.d.ts';
import './atk-1.0.d.ts';
import './astalwp-0.1.d.ts';
import './astaltray-0.1.d.ts';
import './astalpowerprofiles-0.1.d.ts';
import './astalnotifd-0.1.d.ts';
import './astalnetwork-0.1.d.ts';
import './astalmpris-0.1.d.ts';
import './astalio-0.1.d.ts';
import './astalhyprland-0.1.d.ts';
import './astalbattery-0.1.d.ts';
import './astalapps-0.1.d.ts';
import './astal-4.0.d.ts';
import './astal-3.0.d.ts';
import './appmenuglibtranslator-24.02.d.ts';
import './accountsservice-1.0.d.ts';

87669
home/ags/files/@girs/gio-2.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

5688
home/ags/files/@girs/giounix-2.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

2291
home/ags/files/@girs/girepository-2.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

3083
home/ags/files/@girs/girepository-3.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

738
home/ags/files/@girs/gjs.d.ts vendored Normal file
View File

@ -0,0 +1,738 @@
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gettext.d.ts" />
/// <reference path="./system.d.ts" />
/// <reference path="./cairo.d.ts" />
/**
* 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 itself or create a bug report on https://github.com/gjsify/ts-for-gir
*/
import type GObject from 'gi://GObject?version=2.0';
import type GLib from 'gi://GLib?version=2.0';
import gettext from 'gettext';
import system from 'system';
import cairo from 'cairo';
// https://gitlab.gnome.org/GNOME/gjs/-/blob/1.72.0/modules/script/package.js
declare namespace package {
/**
* Although there are references in the documentation of more properties that
* this object should accepts, only the following are actually used in the init code,
* and all the other have their values derived from them.
*/
interface PackageInitParams {
/** The base name of the entry point (eg. org.foo.Bar.App) */
name: string;
/** The version of the package */
version: string;
/** The prefix of the package */
prefix: string;
/**
* The final datadir and libdir when installed;
* usually, these would be prefix + '/share' and
* and prefix + '/lib' (or '/lib64')
*/
libdir: string;
/**
* The final datadir and libdir when installed;
* usually, these would be prefix + '/share' and
* and prefix + '/lib' (or '/lib64')
*/
datadir?: string;
}
/**
* The base name of the entry point (eg. org.foo.Bar.App)
*
* Note: Run `pkg.init()` before accessing this property.
*/
export const name: string;
/**
* The version of the package
*
* Note: Run `pkg.init()` before accessing this property.
*/
export const version: string;
/**
* The prefix of the package
*
* Note: Run `pkg.init()` before accessing this property.
*/
export const prefix: string;
/**
* The final datadir when installed; usually, these would be prefix + '/share'
*
* Note: Run `pkg.init()` before accessing this property.
*/
export const datadir: string;
/**
* The final libdir when installed; usually, these would be prefix + '/lib' (or '/lib64')
*
* Note: Run `pkg.init()` before accessing this property.
*/
export const libdir: string;
/**
* The final pkglibdir when installed; usually, this would be prefix + '/lib' (or '/lib64')
*
* Note: Run `pkg.init()` before accessing this property.
*/
export const pkglibdir: string;
/**
* The final moduledir when installed; usually, this would be prefix + '/lib' (or '/lib64')
*
* Note: Run `pkg.init()` before accessing this property.
*/
export const moduledir: string;
/**
* The directory containing gettext translation files; this will be datadir + '/locale' when installed and './po' in the source tree
*
* Note: Run `pkg.init()` before accessing this property.
*/
export const localedir: string;
/**
* Initialize directories and global variables. Must be called
* before any of other API in Package is used.
* `params` must be an object with at least the following keys:
* - name: the package name ($(PACKAGE_NAME) in autotools,
* eg. org.foo.Bar)
* - version: the package version
* - prefix: the installation prefix
*
* init() will take care to check if the program is running from
* the source directory or not, by looking for a 'src' directory.
*
* At the end, the global variable 'pkg' will contain the
* Package module (imports.package). Additionally, the following
* module variables will be available:
* - name: the base name of the entry point (eg. org.foo.Bar.App)
* - version: same as in @params
* - prefix: the installation prefix (as passed in @params)
* - datadir, libdir: the final datadir and libdir when installed;
* usually, these would be prefix + '/share' and
* and prefix + '/lib' (or '/lib64')
* - pkgdatadir: the directory to look for private data files, such as
* images, stylesheets and UI definitions;
* this will be datadir + name when installed and
* './data' when running from the source tree
* - pkglibdir: the directory to look for private typelibs and C
* libraries;
* this will be libdir + name when installed and
* './lib' when running from the source tree
* - moduledir: the directory to look for JS modules;
* this will be pkglibdir when installed and
* './src' when running from the source tree
* - localedir: the directory containing gettext translation files;
* this will be datadir + '/locale' when installed
* and './po' in the source tree
*
* All paths are absolute and will not end with '/'.
*
* As a side effect, init() calls GLib.set_prgname().
*
* @param {object} params package parameters
*/
export function init(params: PackageInitParams): void;
/**
* This is the function to use if you want to have multiple
* entry points in one package.
* You must define a main(ARGV) function inside the passed
* in module, and then the launcher would be
*
* imports.package.init(...);
* imports.package.run(imports.entrypoint);
*
* @param module the module to run
* @returns the exit code of the module's main() function
*/
export function run(module: { main: (argv: string[]) => void }): number | undefined;
/**
* This is a convenience function if your package has a
* single entry point.
* You must define a main(ARGV) function inside a main.js
* module in moduledir.
*
* @param params see init()
*/
export function start(params: PackageInitParams): void;
/**
* Mark a dependency on a specific version of one or more
* external GI typelibs.
* `libs` must be an object whose keys are a typelib name,
* and values are the respective version. The empty string
* indicates any version.
* @param deps The external dependencies to import
*/
export function require(deps: Record<string, string>): void;
/**
* As checkSymbol(), but exit with an error if the
* dependency cannot be satisfied.
*
* @param lib an external dependency to import
* @param ver version of the dependency
* @param symbol symbol to check for
*/
export function requireSymbol(lib: string, ver?: string, symbol?: string): void;
/**
* Check whether an external GI typelib can be imported
* and provides @symbol.
*
* Symbols may refer to
* - global functions ('main_quit')
* - classes ('Window')
* - class / instance methods ('IconTheme.get_default' / 'IconTheme.has_icon')
* - GObject properties ('Window.default_height')
*
* @param lib an external dependency to import
* @param ver version of the dependency
* @param symbol symbol to check for
* @returns true if `lib` can be imported and provides `symbol`, false
* otherwise
*/
export function checkSymbol(lib: string, ver: string, symbol: string): boolean;
/**
* Initialize `gettext`.
* After calling this method `globalThis._`, `globalThis.C_` and `globalThis.N_` will be available.
*/
export function initGettext(): void;
/**
* Initializes string formatting capabilities by adding a format() method to String.prototype.
*
* After calling this method, you can use a printf-style string formatting by calling
* the format() method on any string:
*
* @example
* ```ts
* pkg.initFormat();
*
* // Now you can use format() on any string
* const name = "User";
* const count = 5;
* const formatted = "Hello %s, you have %d items".format(name, count);
* // formatted = "Hello User, you have 5 items"
*
* // Format numbers with precision
* const price = 10.5;
* const priceStr = "Price: $%.2f".format(price);
* // priceStr = "Price: $10.50"
*
* // Pad with zeros
* const id = 42;
* const idStr = "ID: %05d".format(id);
* // idStr = "ID: 00042"
* ```
*/
export function initFormat(): void;
/**
* As checkSymbol(), but exit with an error if the
* dependency cannot be satisfied.
*
* @param lib an external dependency to import
* @param ver version of the dependency
* @param symbol symbol to check for
*/
export function initSubmodule(lib: string, ver?: string, symbol?: string): void;
/**
* Load and register a GResource named @name. @name is optional and defaults to ${package-name}
* @param name The name of the GResource to load
*/
export function loadResource(name?: string): void;
}
declare namespace byteArray {
export class ByteArray {
static get(target: any, property: string, receiver: any): any;
static set(target: any, property: string, value: any, receiver: any): boolean;
length: number;
protected _array: Uint8Array;
constructor(x: Uint8Array | number);
toString(encoding?: TextDecoderEncoding): string;
fromString(input: string, encoding?: TextDecoderEncoding): ByteArray;
toGBytes(): GLib.Bytes;
}
/** @deprecated Use {@link TextEncoder.encode} instead */
export function fromString(input: string, encoding?: TextDecoderEncoding): Uint8Array;
/** @deprecated Use {@link GLib.Bytes.toArray} instead */
export function fromGBytes(input: GLib.Bytes): Uint8Array;
/** @deprecated Use {@link TextDecoder.decode} instead */
export function toString(x: Uint8Array, encoding?: TextDecoderEncoding): string;
/** @deprecated Use {@link GLib.Bytes new GLib.Bytes() } instead */
export function toGBytes(x: Uint8Array): GLib.Bytes;
/** @deprecated Use {@link ByteArray new ByteArray()} instead */
export function fromArray(array: Iterable<number>): ByteArray;
}
declare namespace lang {
// TODO: There is a lot more in Lang
export function Class(props: any): void;
}
declare namespace format {
/**
* Formats a string using printf-style format specifiers.
*
* @param str The format string
* @param args The arguments to be formatted
* @returns The formatted string
*/
export function vprintf(str: string, args: (string | number | boolean | null | undefined)[]): string;
/**
* Prints a formatted string to the console.
* Similar to C's printf function.
*
* @param fmt The format string
* @param args The arguments to be formatted
*/
export function printf(fmt: string, ...args: (string | number | boolean | null | undefined)[]): void;
/**
* Formats a string with the given arguments.
* This is the implementation that backs String.prototype.format
* when pkg.initFormat() is called.
*
* Supported format specifiers:
* - %s: Formats as a string
* - %d: Formats as an integer
* - %x: Formats as a hexadecimal number
* - %f: Formats as a floating point number, optionally with precision (e.g. %.2f)
*
* All specifiers can be prefixed with a minimum field width, e.g. "%5s" will pad with spaces.
* If the width is prefixed with '0', it will pad with zeroes instead of spaces.
*
* @example
* ```ts
* format.format("Hello %s, you have %d items", "User", 5);
* // Returns: "Hello User, you have 5 items"
* ```
*
* @param fmt The format string
* @param args The arguments to format the string with
* @returns The formatted string
*/
export function format(fmt: string, ...args: (string | number | boolean | null | undefined)[]): string;
}
declare namespace mainloop {
export function quit(name: string): void;
export function idle_source(handler: any, priority?: number): any;
export function idle_add(handler: any, priority?: number): any;
export function timeout_source(timeout: any, handler: any, priority?: number): any;
export function timeout_seconds_source(timeout: any, handler: any, priority?: number): any;
export function timeout_add(timeout: any, handler: any, priority?: number): any;
export function timeout_add_seconds(timeout: any, handler: any, priority?: number): any;
export function source_remove(id: any): any;
export function run(name: string): void;
}
/**
* You can use the `Signals.addSignalMethods` method to apply the `Signals` convenience methods to an `Object`.
* Generally, this is called on an object prototype, but may also be called on an object instance.
* You can use this Interface for this object or prototype to make the methods in typescript known
* @example
* ```ts
* const Signals = imports.signals;
*
* // Define an interface with the same name of your class to make the methods known
* interface Events extends Signals.Methods {}
*
* class Events {}
* Signals.addSignalMethods(Events.prototype);
*
* const events = new Events();
*
* // Typescript will not complain here
* events.emit("test-signal", "test argument");
* ```
*/
export interface SignalMethods {
/**
* Connects a callback to a signal for an object. Pass the returned ID to
* `disconnect()` to remove the handler.
*
* If `callback` returns `true`, emission will stop and no other handlers will be
* invoked.
*
* > Warning: Unlike GObject signals, `this` within a signal callback will always
* > refer to the global object (ie. `globalThis`).
*
* @param sigName A signal name
* @param callback A callback function
* @returns A handler ID
*/
connect(sigName: string, callback: (self: any, ...args: any[]) => void): number;
/**
* Emits a signal for an object. Emission stops if a signal handler returns `true`.
*
* Unlike GObject signals, it is not necessary to declare signals or define their
* signature. Simply call `emit()` with whatever signal name you wish, with
* whatever arguments you wish.
* @param sigName A signal name
* @param args Any number of arguments, of any type
*/
emit(sigName: string, ...args: any[]): void;
/**
* Disconnects a handler for a signal.
* @param id The ID of the handler to be disconnected
*/
disconnect(id: number): void;
/**
* Disconnects all signal handlers for an object.
*/
disconnectAll(): void;
/**
* Checks if a handler ID is connected.
* @param id The ID of the handler to be disconnected
* @returns `true` if connected, or `false` if not
*/
signalHandlerIsConnected(id: number): boolean;
}
declare namespace signals {
export function addSignalMethods<T = any>(proto: T): proto is T & SignalMethods;
}
declare global {
// https://gitlab.gnome.org/GNOME/gjs/-/blob/1.73.2/modules/esm/_encoding/encodingMap.js#L7-232
type TextDecoderEncoding =
| 'unicode-1-1-utf-8'
| 'unicode11utf8'
| 'unicode20utf8'
| 'utf-8'
| 'utf8'
| 'x-unicode20utf8'
| '866'
| 'cp866'
| 'csibm866'
| 'ibm866'
| 'csisolatin2'
| 'iso-8859-2'
| 'iso-ir-101'
| 'iso8859-2'
| 'iso88592'
| 'iso_8859-2'
| 'iso_8859-2:1987'
| 'l2'
| 'latin2'
| 'csisolatin3'
| 'iso-8859-3'
| 'iso-ir-109'
| 'iso8859-3'
| 'iso88593'
| 'iso_8859-3'
| 'iso_8859-3:1988'
| 'l3'
| 'latin3'
| 'csisolatin4'
| 'iso-8859-4'
| 'iso-ir-110'
| 'iso8859-4'
| 'iso88594'
| 'iso_8859-4'
| 'iso_8859-4:1988'
| 'l4'
| 'latin4'
| 'csisolatincyrillic'
| 'cyrillic'
| 'iso-8859-5'
| 'iso-ir-144'
| 'iso8859-5'
| 'iso88595'
| 'iso_8859-5'
| 'iso_8859-5:1988'
| 'arabic'
| 'asmo-708'
| 'csiso88596e'
| 'csiso88596i'
| 'csisolatinarabic'
| 'ecma-114'
| 'iso-8859-6'
| 'iso-8859-6-e'
| 'iso-8859-6-i'
| 'iso-ir-127'
| 'iso8859-6'
| 'iso88596'
| 'iso_8859-6'
| 'iso_8859-6:1987'
| 'csisolatingreek'
| 'ecma-118'
| 'elot_928'
| 'greek'
| 'greek8'
| 'iso-8859-7'
| 'iso-ir-126'
| 'iso8859-7'
| 'iso88597'
| 'iso_8859-7'
| 'iso_8859-7:1987'
| 'sun_eu_greek'
| 'csiso88598e'
| 'csisolatinhebrew'
| 'hebrew'
| 'iso-8859-8'
| 'iso-8859-8-e'
| 'iso-ir-138'
| 'iso8859-8'
| 'iso88598'
| 'iso_8859-8'
| 'iso_8859-8:1988'
| 'visual'
| 'csiso88598i'
| 'iso-8859-8-i'
| 'logical'
| 'csisolatin6'
| 'iso-8859-10'
| 'iso-ir-157'
| 'iso8859-10'
| 'iso885910'
| 'l6'
| 'latin6'
| 'iso-8859-13'
| 'iso8859-13'
| 'iso885913'
| 'iso-8859-14'
| 'iso8859-14'
| 'iso885914'
| 'csisolatin9'
| 'iso-8859-15'
| 'iso8859-15'
| 'iso885915'
| 'iso_8859-15'
| 'l9'
| 'iso-8859-16'
| 'cskoi8r'
| 'koi'
| 'koi8'
| 'koi8-r'
| 'koi8_r'
| 'koi8-ru'
| 'koi8-u'
| 'csmacintosh'
| 'mac'
| 'macintosh'
| 'x-mac-roman'
| 'dos-874'
| 'iso-8859-11'
| 'iso8859-11'
| 'iso885911'
| 'tis-620'
| 'windows-874'
| 'cp1250'
| 'windows-1250'
| 'x-cp1250'
| 'cp1251'
| 'windows-1251'
| 'x-cp1251'
| 'ansi_x3.4-1968'
| 'ascii'
| 'cp1252'
| 'cp819'
| 'csisolatin1'
| 'ibm819'
| 'iso-8859-1'
| 'iso-ir-100'
| 'iso8859-1'
| 'iso88591'
| 'iso_8859-1'
| 'iso_8859-1:1987'
| 'l1'
| 'latin1'
| 'us-ascii'
| 'windows-1252'
| 'x-cp1252'
| 'cp1253'
| 'windows-1253'
| 'x-cp1253'
| 'cp1254'
| 'csisolatin5'
| 'iso-8859-9'
| 'iso-ir-148'
| 'iso8859-9'
| 'iso88599'
| 'iso_8859-9'
| 'iso_8859-9:1989'
| 'l5'
| 'latin5'
| 'windows-1254'
| 'x-cp1254'
| 'cp1255'
| 'windows-1255'
| 'x-cp1255'
| 'cp1256'
| 'windows-1256'
| 'x-cp1256'
| 'cp1257'
| 'windows-1257'
| 'x-cp1257'
| 'cp1258'
| 'windows-1258'
| 'x-cp1258'
| 'x-mac-cyrillic'
| 'x-mac-ukrainian'
| 'chinese'
| 'csgb2312'
| 'csiso58gb231280'
| 'gb2312'
| 'gb_2312'
| 'gb_2312-80'
| 'gbk'
| 'iso-ir-58'
| 'x-gbk'
| 'gb18030'
| 'big5'
| 'cn-big5'
| 'csbig5'
| 'x-x-big5'
| 'cseucpkdfmtjapanese'
| 'euc-jp'
| 'x-euc-jp'
| 'csiso2022jp'
| 'iso-2022-jp'
| 'csshiftjis'
| 'ms932'
| 'ms_kanji'
| 'shift-jis'
| 'shift_jis'
| 'sjis'
| 'windows-31j'
| 'x-sjis'
| 'cseuckr'
| 'csksc56011987'
| 'euc-kr'
| 'iso-ir-149'
| 'korean'
| 'ks_c_5601-1987'
| 'ks_c_5601-1989'
| 'ksc5601'
| 'ksc_5601'
| 'windows-949'
| 'unicodefffe'
| 'utf-16be'
| 'csunicode'
| 'iso-10646-ucs-2'
| 'ucs-2'
| 'unicode'
| 'unicodefeff'
| 'utf-16'
| 'utf-16le';
interface GjsGiImports {
// Will be extended by the import of more gir types
versions: {
[namespace: string]: string;
};
}
interface GjsImports {
gi: GjsGiImports;
lang: typeof lang;
system: typeof system;
signals: typeof signals;
package: typeof package;
mainloop: typeof mainloop;
searchPath: string[];
gettext: typeof gettext;
byteArray: typeof byteArray;
format: typeof format;
cairo: typeof cairo;
}
// Overwrites, see https://gitlab.gnome.org/GNOME/gjs/-/blob/master/modules/script/package.js
/**
* Run `pkg.initGettext()` before using this.
* See {@link gettext.gettext}
*/
const _: typeof gettext.gettext;
/**
* Run `pkg.initGettext()` before using this.
* See {@link gettext.pgettext}
*/
const C_: typeof gettext.pgettext;
/**
* Run `pkg.initGettext()` before using this.
* Currently not implemented.
*/
const N_: (x: string) => string;
function print(...args: any[]): void;
function printerr(...args: any[]): void;
function log(obj: object, others?: object[]): void;
function log(msg: string, substitutions?: any[]): void;
function logError(exception: object, message?: any): void;
function logError(message?: any): void;
const pkg: typeof package;
interface BooleanConstructor {
$gtype: GObject.GType<boolean>;
}
interface NumberConstructor {
$gtype: GObject.GType<number>;
}
interface StringConstructor {
$gtype: GObject.GType<string>;
}
interface StringConstructor {
$gtype: GObject.GType<string>;
}
interface ObjectConstructor {
$gtype: GObject.GType<Object>;
}
const imports: GjsImports;
const ARGV: string[];
interface String {
/**
* Formats a string with the given arguments.
* This method is made available by calling `pkg.initFormat()`.
*
* Supported format specifiers:
* - %s: Formats as a string
* - %d: Formats as an integer
* - %x: Formats as a hexadecimal number
* - %f: Formats as a floating point number, optionally with precision (e.g. %.2f)
*
* All specifiers can be prefixed with a minimum field width, e.g. "%5s" will pad with spaces.
* If the width is prefixed with '0', it will pad with zeroes instead of spaces.
*
* @example
* ```ts
* // After calling pkg.initFormat()
* "Hello %s, you have %d items".format("User", 5);
* // Returns: "Hello User, you have 5 items"
*
* "Price: $%.2f".format(10.5);
* // Returns: "Price: $10.50"
*
* "ID: %05d".format(42);
* // Returns: "ID: 00042"
* ```
*
* @param args The arguments to format the string with
* @returns The formatted string
*/
format(...args: (string | number | boolean | null | undefined)[]): string;
}
}
declare const _imports: GjsImports;
export default _imports;
export { _imports as imports };

145
home/ags/files/@girs/gl-1.0.d.ts vendored Normal file
View File

@ -0,0 +1,145 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://GL?version=1.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace GL {
/**
* GL-1.0
*/
function InitNames(): void;
class bitfield {
static $gtype: GObject.GType<bitfield>;
// Constructors
_init(...args: any[]): void;
}
class charARB {
static $gtype: GObject.GType<charARB>;
// Constructors
_init(...args: any[]): void;
}
class clampf {
static $gtype: GObject.GType<clampf>;
// Constructors
_init(...args: any[]): void;
}
class __boolean {
static $gtype: GObject.GType<__boolean>;
// Constructors
_init(...args: any[]): void;
}
class __enum {
static $gtype: GObject.GType<__enum>;
// Constructors
_init(...args: any[]): void;
}
class float {
static $gtype: GObject.GType<float>;
// Constructors
_init(...args: any[]): void;
}
class handleARB {
static $gtype: GObject.GType<handleARB>;
// Constructors
_init(...args: any[]): void;
}
class int {
static $gtype: GObject.GType<int>;
// Constructors
_init(...args: any[]): void;
}
class intptr {
static $gtype: GObject.GType<intptr>;
// Constructors
_init(...args: any[]): void;
}
class sizei {
static $gtype: GObject.GType<sizei>;
// Constructors
_init(...args: any[]): void;
}
class sizeiptr {
static $gtype: GObject.GType<sizeiptr>;
// Constructors
_init(...args: any[]): void;
}
class uint {
static $gtype: GObject.GType<uint>;
// Constructors
_init(...args: any[]): void;
}
class __void {
static $gtype: GObject.GType<__void>;
// Constructors
_init(...args: any[]): void;
}
/**
* 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 GL;
}
declare module 'gi://GL' {
import GL10 from 'gi://GL?version=1.0';
export default GL10;
}
// END

27609
home/ags/files/@girs/glib-2.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

103
home/ags/files/@girs/glibunix-2.0.d.ts vendored Normal file
View File

@ -0,0 +1,103 @@
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://GLibUnix?version=2.0' {
// Module dependencies
import type GLib from 'gi://GLib?version=2.0';
import type GObject from 'gi://GObject?version=2.0';
export namespace GLibUnix {
/**
* GLibUnix-2.0
*/
/**
* Mnemonic constants for the ends of a Unix pipe.
*/
/**
* Mnemonic constants for the ends of a Unix pipe.
*/
export namespace PipeEnd {
export const $gtype: GObject.GType<PipeEnd>;
}
enum PipeEnd {
/**
* The readable file descriptor 0
*/
READ,
/**
* The writable file descriptor 1
*/
WRITE,
}
function closefrom(lowfd: number): number;
function error_quark(): GLib.Quark;
function fd_add_full(
priority: number,
fd: number,
condition: GLib.IOCondition | null,
_function: GLib.UnixFDSourceFunc,
): number;
function fd_source_new(fd: number, condition: GLib.IOCondition | null): GLib.Source;
function fdwalk_set_cloexec(lowfd: number): number;
function get_passwd_entry(user_name: string): any | null;
function open_pipe(fds: number, flags: number): boolean;
function set_fd_nonblocking(fd: number, nonblock: boolean): boolean;
function signal_add_full(priority: number, signum: number, handler: GLib.SourceFunc): number;
function signal_source_new(signum: number): GLib.Source;
interface FDSourceFunc {
(fd: number, condition: GLib.IOCondition): boolean;
}
/**
* A Unix pipe. The advantage of this type over `int[2]` is that it can
* be closed automatically when it goes out of scope, using `g_auto(GUnixPipe)`,
* on compilers that support that feature.
*/
class Pipe {
static $gtype: GObject.GType<Pipe>;
// Fields
fds: number[];
// Constructors
constructor(
properties?: Partial<{
fds: number[];
}>,
);
_init(...args: any[]): void;
}
/**
* 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 GLibUnix;
}
declare module 'gi://GLibUnix' {
import GLibUnix20 from 'gi://GLibUnix?version=2.0';
export default GLibUnix20;
}
// END

207
home/ags/files/@girs/gmodule-2.0.d.ts vendored Normal file
View File

@ -0,0 +1,207 @@
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://GModule?version=2.0' {
// Module dependencies
import type GLib from 'gi://GLib?version=2.0';
import type GObject from 'gi://GObject?version=2.0';
export namespace GModule {
/**
* GModule-2.0
*/
/**
* Errors returned by g_module_open_full().
*/
class ModuleError extends GLib.Error {
static $gtype: GObject.GType<ModuleError>;
// Static fields
/**
* there was an error loading or opening a module file
*/
static FAILED: number;
/**
* a module returned an error from its `g_module_check_init()` function
*/
static CHECK_FAILED: number;
// Constructors
constructor(options: { message: string; code: number });
_init(...args: any[]): void;
}
const MODULE_IMPL_AR: number;
const MODULE_IMPL_DL: number;
const MODULE_IMPL_NONE: number;
const MODULE_IMPL_WIN32: number;
/**
* A portable way to build the filename of a module. The platform-specific
* prefix and suffix are added to the filename, if needed, and the result
* is added to the directory, using the correct separator character.
*
* The directory should specify the directory where the module can be found.
* It can be %NULL or an empty string to indicate that the module is in a
* standard platform-specific directory, though this is not recommended
* since the wrong module may be found.
*
* For example, calling g_module_build_path() on a Linux system with a
* `directory` of `/lib` and a `module_name` of "mylibrary" will return
* `/lib/libmylibrary.so`. On a Windows system, using `\Windows` as the
* directory it will return `\Windows\mylibrary.dll`.
* @param directory the directory where the module is. This can be %NULL or the empty string to indicate that the standard platform-specific directories will be used, though that is not recommended
* @param module_name the name of the module
* @returns the complete path of the module, including the standard library prefix and suffix. This should be freed when no longer needed
*/
function module_build_path(directory: string | null, module_name: string): string;
/**
* Gets a string describing the last module error.
* @returns a string describing the last module error
*/
function module_error(): string;
function module_error_quark(): GLib.Quark;
/**
* Checks if modules are supported on the current platform.
* @returns %TRUE if modules are supported
*/
function module_supported(): boolean;
interface ModuleCheckInit {
(module: Module): string;
}
interface ModuleUnload {
(module: Module): void;
}
/**
* Flags passed to g_module_open().
* Note that these flags are not supported on all platforms.
*/
/**
* Flags passed to g_module_open().
* Note that these flags are not supported on all platforms.
*/
export namespace ModuleFlags {
export const $gtype: GObject.GType<ModuleFlags>;
}
enum ModuleFlags {
/**
* specifies that symbols are only resolved when
* needed. The default action is to bind all symbols when the module
* is loaded.
*/
LAZY,
/**
* specifies that symbols in the module should
* not be added to the global name space. The default action on most
* platforms is to place symbols in the module in the global name space,
* which may cause conflicts with existing symbols.
*/
LOCAL,
/**
* mask for all flags.
*/
MASK,
}
/**
* The #GModule struct is an opaque data structure to represent a
* [dynamically-loaded module](modules.html#dynamic-loading-of-modules).
* It should only be accessed via the following functions.
*/
abstract class Module {
static $gtype: GObject.GType<Module>;
// Constructors
_init(...args: any[]): void;
// Static methods
/**
* A portable way to build the filename of a module. The platform-specific
* prefix and suffix are added to the filename, if needed, and the result
* is added to the directory, using the correct separator character.
*
* The directory should specify the directory where the module can be found.
* It can be %NULL or an empty string to indicate that the module is in a
* standard platform-specific directory, though this is not recommended
* since the wrong module may be found.
*
* For example, calling g_module_build_path() on a Linux system with a
* `directory` of `/lib` and a `module_name` of "mylibrary" will return
* `/lib/libmylibrary.so`. On a Windows system, using `\Windows` as the
* directory it will return `\Windows\mylibrary.dll`.
* @param directory the directory where the module is. This can be %NULL or the empty string to indicate that the standard platform-specific directories will be used, though that is not recommended
* @param module_name the name of the module
*/
static build_path(directory: string | null, module_name: string): string;
/**
* Gets a string describing the last module error.
*/
static error(): string;
static error_quark(): GLib.Quark;
/**
* Checks if modules are supported on the current platform.
*/
static supported(): boolean;
// Methods
/**
* Closes a module.
* @returns %TRUE on success
*/
close(): boolean;
/**
* Ensures that a module will never be unloaded.
* Any future g_module_close() calls on the module will be ignored.
*/
make_resident(): void;
/**
* Returns the filename that the module was opened with.
*
* If `module` refers to the application itself, "main" is returned.
* @returns the filename of the module
*/
name(): string;
/**
* Gets a symbol pointer from a module, such as one exported
* by %G_MODULE_EXPORT. Note that a valid symbol can be %NULL.
* @param symbol_name the name of the symbol to find
* @returns %TRUE on success
*/
symbol(symbol_name: string): [boolean, any];
}
/**
* 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 GModule;
}
declare module 'gi://GModule' {
import GModule20 from 'gi://GModule?version=2.0';
export default GModule20;
}
// END

7149
home/ags/files/@girs/gobject-2.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

3382
home/ags/files/@girs/graphene-1.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

5072
home/ags/files/@girs/gsk-4.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

353331
home/ags/files/@girs/gtk-3.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

273760
home/ags/files/@girs/gtk-4.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,271 @@
/// <reference path="./gtk-4.0.d.ts" />
/// <reference path="./gsk-4.0.d.ts" />
/// <reference path="./graphene-1.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gdk-4.0.d.ts" />
/// <reference path="./cairo-1.0.d.ts" />
/// <reference path="./cairo.d.ts" />
/// <reference path="./pangocairo-1.0.d.ts" />
/// <reference path="./pango-1.0.d.ts" />
/// <reference path="./harfbuzz-0.0.d.ts" />
/// <reference path="./freetype2-2.0.d.ts" />
/// <reference path="./gio-2.0.d.ts" />
/// <reference path="./gmodule-2.0.d.ts" />
/// <reference path="./gdkpixbuf-2.0.d.ts" />
/**
* 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://Gtk4LayerShell?version=1.0' {
// Module dependencies
import type Gtk from 'gi://Gtk?version=4.0';
import type Gsk from 'gi://Gsk?version=4.0';
import type Graphene from 'gi://Graphene?version=1.0';
import type GObject from 'gi://GObject?version=2.0';
import type GLib from 'gi://GLib?version=2.0';
import type Gdk from 'gi://Gdk?version=4.0';
import type cairo from 'cairo';
import type PangoCairo from 'gi://PangoCairo?version=1.0';
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 Gio from 'gi://Gio?version=2.0';
import type GModule from 'gi://GModule?version=2.0';
import type GdkPixbuf from 'gi://GdkPixbuf?version=2.0';
export namespace Gtk4LayerShell {
/**
* Gtk4LayerShell-1.0
*/
export namespace Edge {
export const $gtype: GObject.GType<Edge>;
}
enum Edge {
/**
* The left edge of the screen.
*/
LEFT,
/**
* The right edge of the screen.
*/
RIGHT,
/**
* The top edge of the screen.
*/
TOP,
/**
* The bottom edge of the screen.
*/
BOTTOM,
/**
* Should not be used except to get the number of entries. (NOTE: may change in
* future releases as more entries are added)
*/
ENTRY_NUMBER,
}
export namespace KeyboardMode {
export const $gtype: GObject.GType<KeyboardMode>;
}
enum KeyboardMode {
/**
* This window should not receive keyboard events.
*/
NONE,
/**
* This window should have exclusive focus if it is on the top or overlay layer.
*/
EXCLUSIVE,
/**
* The user should be able to focus and unfocues this window in an implementation
* defined way. Not supported for protocol version < 4.
*/
ON_DEMAND,
/**
* Should not be used except to get the number of entries. (NOTE: may change in
* future releases as more entries are added)
*/
ENTRY_NUMBER,
}
export namespace Layer {
export const $gtype: GObject.GType<Layer>;
}
enum Layer {
/**
* The background layer.
*/
BACKGROUND,
/**
* The bottom layer.
*/
BOTTOM,
/**
* The top layer.
*/
TOP,
/**
* The overlay layer.
*/
OVERLAY,
/**
* Should not be used except to get the number of entries. (NOTE: may change in
* future releases as more entries are added)
*/
ENTRY_NUMBER,
}
/**
* When auto exclusive zone is enabled, exclusive zone is automatically set to the
* size of the `window` + relevant margin. To disable auto exclusive zone, just set the
* exclusive zone to 0 or any other fixed value.
*
* NOTE: you can control the auto exclusive zone by changing the margin on the non-anchored
* edge. This behavior is specific to gtk4-layer-shell and not part of the underlying protocol
* @param window A layer surface.
*/
function auto_exclusive_zone_enable(window: Gtk.Window): void;
function auto_exclusive_zone_is_enabled(window: Gtk.Window): boolean;
function get_anchor(window: Gtk.Window, edge: Edge | null): boolean;
function get_exclusive_zone(window: Gtk.Window): number;
function get_keyboard_mode(window: Gtk.Window): KeyboardMode;
function get_layer(window: Gtk.Window): Layer;
function get_major_version(): number;
function get_margin(window: Gtk.Window, edge: Edge | null): number;
function get_micro_version(): number;
function get_minor_version(): number;
/**
* NOTE: To get which monitor the surface is actually on, use
* gdk_display_get_monitor_at_surface().
* @param window A layer surface.
* @returns the monitor this surface will/has requested to be on.
*/
function get_monitor(window: Gtk.Window): Gdk.Monitor | null;
/**
* NOTE: this function does not return ownership of the string. Do not free the returned string.
* Future calls into the library may invalidate the returned string.
* @param window A layer surface.
* @returns a reference to the namespace property. If namespace is unset, returns the default namespace("gtk4-layer-shell"). Never returns %NULL.
*/
function get_namespace(window: Gtk.Window): string;
/**
* May block for a Wayland roundtrip the first time it's called.
* @returns version of the zwlr_layer_shell_v1 protocol supported by the compositor or 0 if the protocol is not supported.
*/
function get_protocol_version(): number;
function get_zwlr_layer_surface_v1(window: Gtk.Window): any | null;
/**
* Set the `window` up to be a layer surface once it is mapped. this must be called before
* the `window` is realized.
* @param window A #GtkWindow to be turned into a layer surface.
*/
function init_for_window(window: Gtk.Window): void;
function is_layer_window(window: Gtk.Window): boolean;
/**
* May block for a Wayland roundtrip the first time it's called.
* @returns %TRUE if the platform is Wayland and Wayland compositor supports the zwlr_layer_shell_v1 protocol.
*/
function is_supported(): boolean;
/**
* Set whether `window` should be anchored to `edge`.
* - If two perpendicular edges are anchored, the surface with be anchored to that corner
* - If two opposite edges are anchored, the window will be stretched across the screen in that direction
*
* Default is %FALSE for each #GtkLayerShellEdge
* @param window A layer surface.
* @param edge A #GtkLayerShellEdge this layer surface may be anchored to.
* @param anchor_to_edge Whether or not to anchor this layer surface to @edge.
*/
function set_anchor(window: Gtk.Window, edge: Edge | null, anchor_to_edge: boolean): void;
/**
* Has no effect unless the surface is anchored to an edge. Requests that the compositor
* does not place other surfaces within the given exclusive zone of the anchored edge.
* For example, a panel can request to not be covered by maximized windows. See
* wlr-layer-shell-unstable-v1.xml for details.
*
* Default is 0
* @param window A layer surface.
* @param exclusive_zone The size of the exclusive zone.
*/
function set_exclusive_zone(window: Gtk.Window, exclusive_zone: number): void;
/**
* Sets if/when `window` should receive keyboard events from the compositor, see
* GtkLayerShellKeyboardMode for details.
*
* Default is %GTK_LAYER_SHELL_KEYBOARD_MODE_NONE
* @param window A layer surface.
* @param mode The type of keyboard interactivity requested.
*/
function set_keyboard_mode(window: Gtk.Window, mode: KeyboardMode | null): void;
/**
* Set the "layer" on which the surface appears(controls if it is over top of or below other surfaces). The layer may
* be changed on-the-fly in the current version of the layer shell protocol, but on compositors that only support an
* older version the `window` is remapped so the change can take effect.
*
* Default is %GTK_LAYER_SHELL_LAYER_TOP
* @param window A layer surface.
* @param layer The layer on which this surface appears.
*/
function set_layer(window: Gtk.Window, layer: Layer | null): void;
/**
* Set the margin for a specific `edge` of a `window`. Effects both surface's distance from
* the edge and its exclusive zone size(if auto exclusive zone enabled).
*
* Default is 0 for each #GtkLayerShellEdge
* @param window A layer surface.
* @param edge The #GtkLayerShellEdge for which to set the margin.
* @param margin_size The margin for @edge to be set.
*/
function set_margin(window: Gtk.Window, edge: Edge | null, margin_size: number): void;
/**
* Set the output for the window to be placed on, or %NULL to let the compositor choose.
* If the window is currently mapped, it will get remapped so the change can take effect.
*
* Default is %NULL
* @param window A layer surface.
* @param monitor The output this layer surface will be placed on (%NULL to let the compositor decide).
*/
function set_monitor(window: Gtk.Window, monitor?: Gdk.Monitor | null): void;
/**
* Set the "namespace" of the surface.
*
* No one is quite sure what this is for, but it probably should be something generic
* ("panel", "osk", etc). The `name_space` string is copied, and caller maintains
* ownership of original. If the window is currently mapped, it will get remapped so
* the change can take effect.
*
* Default is "gtk4-layer-shell" (which will be used if set to %NULL)
* @param window A layer surface.
* @param name_space The namespace of this layer surface.
*/
function set_namespace(window: Gtk.Window, name_space?: string | null): void;
/**
* 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 Gtk4LayerShell;
}
declare module 'gi://Gtk4LayerShell' {
import Gtk4LayerShell10 from 'gi://Gtk4LayerShell?version=1.0';
export default Gtk4LayerShell10;
}
// END

View File

@ -0,0 +1,156 @@
/// <reference path="./gtk-4.0.d.ts" />
/// <reference path="./gsk-4.0.d.ts" />
/// <reference path="./graphene-1.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gdk-4.0.d.ts" />
/// <reference path="./cairo-1.0.d.ts" />
/// <reference path="./cairo.d.ts" />
/// <reference path="./pangocairo-1.0.d.ts" />
/// <reference path="./pango-1.0.d.ts" />
/// <reference path="./harfbuzz-0.0.d.ts" />
/// <reference path="./freetype2-2.0.d.ts" />
/// <reference path="./gio-2.0.d.ts" />
/// <reference path="./gmodule-2.0.d.ts" />
/// <reference path="./gdkpixbuf-2.0.d.ts" />
/**
* 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://Gtk4SessionLock?version=1.0' {
// Module dependencies
import type Gtk from 'gi://Gtk?version=4.0';
import type Gsk from 'gi://Gsk?version=4.0';
import type Graphene from 'gi://Graphene?version=1.0';
import type GObject from 'gi://GObject?version=2.0';
import type GLib from 'gi://GLib?version=2.0';
import type Gdk from 'gi://Gdk?version=4.0';
import type cairo from 'cairo';
import type PangoCairo from 'gi://PangoCairo?version=1.0';
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 Gio from 'gi://Gio?version=2.0';
import type GModule from 'gi://GModule?version=2.0';
import type GdkPixbuf from 'gi://GdkPixbuf?version=2.0';
export namespace Gtk4SessionLock {
/**
* Gtk4SessionLock-1.0
*/
/**
* May block for a Wayland roundtrip the first time it's called.
* @returns %TRUE if the platform is Wayland and Wayland compositor supports the Session Lock protocol.
*/
function is_supported(): boolean;
namespace Instance {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {
failed: () => void;
locked: () => void;
unlocked: () => void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {}
}
/**
* An instance of the object used to control locking the screen.
* Multiple instances can exist at once, but only one can be locked at a time.
*/
class Instance extends GObject.Object {
static $gtype: GObject.GType<Instance>;
/**
* 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: Instance.SignalSignatures;
// Constructors
constructor(properties?: Partial<Instance.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Instance;
// Signals
connect<K extends keyof Instance.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Instance.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Instance.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Instance.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Instance.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Instance.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Methods
/**
* This must be called with a different window once for each monitor, immediately after calling
* gtk_session_lock_lock(). Hiding a window that is active on a monitor or not letting a window be resized by the
* library is not allowed (may result in a Wayland protocol error).
* @param window The GTK Window to use as a lock surface
* @param monitor The monitor to show it on
*/
assign_window_to_monitor(window: Gtk.Window, monitor: Gdk.Monitor): void;
/**
* Returns if this instance currently holds a lock.
*/
is_locked(): boolean;
/**
* Lock the screen. This should be called before assigning any windows to monitors. If this function fails the ::failed
* signal is emitted, if it succeeds the ::locked signal is emitted. The ::failed signal may be emitted before the
* function returns (for example, if another #GtkSessionLockInstance holds a lock) or later (if another process holds a
* lock). The only case where neither signal is triggered is if the instance is already locked.
* @returns false on immediate fail, true if lock acquisition was successfully started
*/
lock(): boolean;
/**
* If the screen is locked by this instance unlocks it and fires ::unlocked. Otherwise has no effect
*/
unlock(): void;
}
type InstanceClass = typeof Instance;
/**
* 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 Gtk4SessionLock;
}
declare module 'gi://Gtk4SessionLock' {
import Gtk4SessionLock10 from 'gi://Gtk4SessionLock?version=1.0';
export default Gtk4SessionLock10;
}
// END

View File

@ -0,0 +1,286 @@
/// <reference path="./gtk-3.0.d.ts" />
/// <reference path="./xlib-2.0.d.ts" />
/// <reference path="./gdk-3.0.d.ts" />
/// <reference path="./cairo-1.0.d.ts" />
/// <reference path="./cairo.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./pango-1.0.d.ts" />
/// <reference path="./harfbuzz-0.0.d.ts" />
/// <reference path="./freetype2-2.0.d.ts" />
/// <reference path="./gio-2.0.d.ts" />
/// <reference path="./gmodule-2.0.d.ts" />
/// <reference path="./gdkpixbuf-2.0.d.ts" />
/// <reference path="./atk-1.0.d.ts" />
/**
* 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://GtkLayerShell?version=0.1' {
// Module dependencies
import type Gtk from 'gi://Gtk?version=3.0';
import type xlib from 'gi://xlib?version=2.0';
import type Gdk from 'gi://Gdk?version=3.0';
import type cairo from 'cairo';
import type GObject from 'gi://GObject?version=2.0';
import type GLib from 'gi://GLib?version=2.0';
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 Gio from 'gi://Gio?version=2.0';
import type GModule from 'gi://GModule?version=2.0';
import type GdkPixbuf from 'gi://GdkPixbuf?version=2.0';
import type Atk from 'gi://Atk?version=1.0';
export namespace GtkLayerShell {
/**
* GtkLayerShell-0.1
*/
export namespace Edge {
export const $gtype: GObject.GType<Edge>;
}
enum Edge {
/**
* The left edge of the screen.
*/
LEFT,
/**
* The right edge of the screen.
*/
RIGHT,
/**
* The top edge of the screen.
*/
TOP,
/**
* The bottom edge of the screen.
*/
BOTTOM,
/**
* Should not be used except to get the number of entries. (NOTE: may change in
* future releases as more entries are added)
*/
ENTRY_NUMBER,
}
export namespace KeyboardMode {
export const $gtype: GObject.GType<KeyboardMode>;
}
enum KeyboardMode {
/**
* This window should not receive keyboard events.
*/
NONE,
/**
* This window should have exclusive focus if it is on the top or overlay layer.
*/
EXCLUSIVE,
/**
* The user should be able to focus and unfocues this window in an implementation
* defined way. Not supported for protocol version < 4.
*/
ON_DEMAND,
/**
* Should not be used except to get the number of entries. (NOTE: may change in
* future releases as more entries are added)
*/
ENTRY_NUMBER,
}
export namespace Layer {
export const $gtype: GObject.GType<Layer>;
}
enum Layer {
/**
* The background layer.
*/
BACKGROUND,
/**
* The bottom layer.
*/
BOTTOM,
/**
* The top layer.
*/
TOP,
/**
* The overlay layer.
*/
OVERLAY,
/**
* Should not be used except to get the number of entries. (NOTE: may change in
* future releases as more entries are added)
*/
ENTRY_NUMBER,
}
/**
* When auto exclusive zone is enabled, exclusive zone is automatically set to the
* size of the `window` + relevant margin. To disable auto exclusive zone, just set the
* exclusive zone to 0 or any other fixed value.
*
* NOTE: you can control the auto exclusive zone by changing the margin on the non-anchored
* edge. This behavior is specific to gtk-layer-shell and not part of the underlying protocol
* @param window A layer surface.
*/
function auto_exclusive_zone_enable(window: Gtk.Window): void;
function auto_exclusive_zone_is_enabled(window: Gtk.Window): boolean;
function get_anchor(window: Gtk.Window, edge: Edge | null): boolean;
function get_exclusive_zone(window: Gtk.Window): number;
function get_keyboard_interactivity(window: Gtk.Window): boolean;
function get_keyboard_mode(window: Gtk.Window): KeyboardMode;
function get_layer(window: Gtk.Window): Layer;
function get_major_version(): number;
function get_margin(window: Gtk.Window, edge: Edge | null): number;
function get_micro_version(): number;
function get_minor_version(): number;
/**
* NOTE: To get which monitor the surface is actually on, use
* gdk_display_get_monitor_at_window().
* @param window A layer surface.
* @returns the monitor this surface will/has requested to be on, can be %NULL.
*/
function get_monitor(window: Gtk.Window): Gdk.Monitor;
/**
* NOTE: this function does not return ownership of the string. Do not free the returned string.
* Future calls into the library may invalidate the returned string.
* @param window A layer surface.
* @returns a reference to the namespace property. If namespace is unset, returns the default namespace ("gtk-layer-shell"). Never returns %NULL.
*/
function get_namespace(window: Gtk.Window): string;
/**
* May block for a Wayland roundtrip the first time it's called.
* @returns version of the zwlr_layer_shell_v1 protocol supported by the compositor or 0 if the protocol is not supported.
*/
function get_protocol_version(): number;
function get_zwlr_layer_surface_v1(window: Gtk.Window): any | null;
/**
* Set the `window` up to be a layer surface once it is mapped. this must be called before
* the `window` is realized.
* @param window A #GtkWindow to be turned into a layer surface.
*/
function init_for_window(window: Gtk.Window): void;
function is_layer_window(window: Gtk.Window): boolean;
/**
* May block for a Wayland roundtrip the first time it's called.
* @returns %TRUE if the platform is Wayland and Wayland compositor supports the zwlr_layer_shell_v1 protocol.
*/
function is_supported(): boolean;
/**
* Set whether `window` should be anchored to `edge`.
* - If two perpendicular edges are anchored, the surface with be anchored to that corner
* - If two opposite edges are anchored, the window will be stretched across the screen in that direction
*
* Default is %FALSE for each #GtkLayerShellEdge
* @param window A layer surface.
* @param edge A #GtkLayerShellEdge this layer surface may be anchored to.
* @param anchor_to_edge Whether or not to anchor this layer surface to @edge.
*/
function set_anchor(window: Gtk.Window, edge: Edge | null, anchor_to_edge: boolean): void;
/**
* Has no effect unless the surface is anchored to an edge. Requests that the compositor
* does not place other surfaces within the given exclusive zone of the anchored edge.
* For example, a panel can request to not be covered by maximized windows. See
* wlr-layer-shell-unstable-v1.xml for details.
*
* Default is 0
* @param window A layer surface.
* @param exclusive_zone The size of the exclusive zone.
*/
function set_exclusive_zone(window: Gtk.Window, exclusive_zone: number): void;
/**
* Whether the `window` should receive keyboard events from the compositor.
*
* Default is %FALSE
* @param window A layer surface.
* @param interactivity Whether the layer surface should receive keyboard events.
*/
function set_keyboard_interactivity(window: Gtk.Window, interactivity: boolean): void;
/**
* Sets if/when `window` should receive keyboard events from the compositor, see
* GtkLayerShellKeyboardMode for details.
*
* Default is %GTK_LAYER_SHELL_KEYBOARD_MODE_NONE
* @param window A layer surface.
* @param mode The type of keyboard interactivity requested.
*/
function set_keyboard_mode(window: Gtk.Window, mode: KeyboardMode | null): void;
/**
* Set the "layer" on which the surface appears (controls if it is over top of or below other surfaces). The layer may
* be changed on-the-fly in the current version of the layer shell protocol, but on compositors that only support an
* older version the `window` is remapped so the change can take effect.
*
* Default is %GTK_LAYER_SHELL_LAYER_TOP
* @param window A layer surface.
* @param layer The layer on which this surface appears.
*/
function set_layer(window: Gtk.Window, layer: Layer | null): void;
/**
* Set the margin for a specific `edge` of a `window`. Effects both surface's distance from
* the edge and its exclusive zone size (if auto exclusive zone enabled).
*
* Default is 0 for each #GtkLayerShellEdge
* @param window A layer surface.
* @param edge The #GtkLayerShellEdge for which to set the margin.
* @param margin_size The margin for @edge to be set.
*/
function set_margin(window: Gtk.Window, edge: Edge | null, margin_size: number): void;
/**
* Set the output for the window to be placed on, or %NULL to let the compositor choose.
* If the window is currently mapped, it will get remapped so the change can take effect.
*
* Default is %NULL
* @param window A layer surface.
* @param monitor The output this layer surface will be placed on (%NULL to let the compositor decide).
*/
function set_monitor(window: Gtk.Window, monitor: Gdk.Monitor): void;
/**
* Set the "namespace" of the surface.
*
* No one is quite sure what this is for, but it probably should be something generic
* ("panel", "osk", etc). The `name_space` string is copied, and caller maintains
* ownership of original. If the window is currently mapped, it will get remapped so
* the change can take effect.
*
* Default is "gtk-layer-shell" (which will be used if set to %NULL)
* @param window A layer surface.
* @param name_space The namespace of this layer surface.
*/
function set_namespace(window: Gtk.Window, name_space: string): void;
/**
* Commits a surface state if there's no pending commit scheduled by the GTK.
* You almost never need to call this; the only known case is when the surface is in a state
* where it does not receive frame callbacks and the regular deferred commit mechanism
* is unavailable.
* @param window A layer surface.
*/
function try_force_commit(window: Gtk.Window): void;
/**
* 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 GtkLayerShell;
}
declare module 'gi://GtkLayerShell' {
import GtkLayerShell01 from 'gi://GtkLayerShell?version=0.1';
export default GtkLayerShell01;
}
// END

16083
home/ags/files/@girs/gtksource-3.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

9626
home/ags/files/@girs/harfbuzz-0.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

8
home/ags/files/@girs/index.d.ts vendored Normal file
View File

@ -0,0 +1,8 @@
/**
* This file exports all type definitions.
*/
import './gjs.d.ts';
import './dom.d.ts';
import './gi.d.ts';
import './console.d.ts';

3177
home/ags/files/@girs/json-1.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

105
home/ags/files/@girs/libxml2-2.0.d.ts vendored Normal file
View File

@ -0,0 +1,105 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://libxml2?version=2.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace libxml2 {
/**
* libxml2-2.0
*/
function dummy(): void;
class Node {
static $gtype: GObject.GType<Node>;
// Constructors
_init(...args: any[]): void;
}
class NodePtr {
static $gtype: GObject.GType<NodePtr>;
// Constructors
_init(...args: any[]): void;
}
class Doc {
static $gtype: GObject.GType<Doc>;
// Constructors
_init(...args: any[]): void;
}
class DocPtr {
static $gtype: GObject.GType<DocPtr>;
// Constructors
_init(...args: any[]): void;
}
class NsPtr {
static $gtype: GObject.GType<NsPtr>;
// Constructors
_init(...args: any[]): void;
}
class Char {
static $gtype: GObject.GType<Char>;
// Constructors
_init(...args: any[]): void;
}
class TextWriter {
static $gtype: GObject.GType<TextWriter>;
// Constructors
_init(...args: any[]): void;
}
class TextReader {
static $gtype: GObject.GType<TextReader>;
// Constructors
_init(...args: any[]): void;
}
/**
* 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 libxml2;
}
declare module 'gi://libxml2' {
import Libxml220 from 'gi://libxml2?version=2.0';
export default Libxml220;
}
// END

37964
home/ags/files/@girs/nm-1.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

9500
home/ags/files/@girs/pango-1.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

450
home/ags/files/@girs/pangocairo-1.0.d.ts vendored Normal file
View File

@ -0,0 +1,450 @@
/// <reference path="./cairo-1.0.d.ts" />
/// <reference path="./cairo.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./pango-1.0.d.ts" />
/// <reference path="./harfbuzz-0.0.d.ts" />
/// <reference path="./freetype2-2.0.d.ts" />
/// <reference path="./gio-2.0.d.ts" />
/// <reference path="./gmodule-2.0.d.ts" />
/**
* 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://PangoCairo?version=1.0' {
// Module dependencies
import type cairo from 'cairo';
import type GObject from 'gi://GObject?version=2.0';
import type GLib from 'gi://GLib?version=2.0';
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 Gio from 'gi://Gio?version=2.0';
import type GModule from 'gi://GModule?version=2.0';
export namespace PangoCairo {
/**
* PangoCairo-1.0
*/
/**
* Retrieves any font rendering options previously set with
* [func`PangoCairo`.context_set_font_options].
*
* This function does not report options that are derived from
* the target surface by [func`update_context]`.
* @param context a `PangoContext`, from a pangocairo font map
* @returns the font options previously set on the context, or %NULL if no options have been set. This value is owned by the context and must not be modified or freed.
*/
function context_get_font_options(context: Pango.Context): cairo.FontOptions | null;
/**
* Gets the resolution for the context.
*
* See [func`PangoCairo`.context_set_resolution]
* @param context a `PangoContext`, from a pangocairo font map
* @returns the resolution in "dots per inch". A negative value will be returned if no resolution has previously been set.
*/
function context_get_resolution(context: Pango.Context): number;
/**
* Sets the font options used when rendering text with this context.
*
* These options override any options that [func`update_context]`
* derives from the target surface.
* @param context a `PangoContext`, from a pangocairo font map
* @param options a `cairo_font_options_t`, or %NULL to unset any previously set options. A copy is made.
*/
function context_set_font_options(context: Pango.Context, options?: cairo.FontOptions | null): void;
/**
* Sets the resolution for the context.
*
* This is a scale factor between points specified in a `PangoFontDescription`
* and Cairo units. The default value is 96, meaning that a 10 point font will
* be 13 units high. (10 * 96. / 72. = 13.3).
* @param context a `PangoContext`, from a pangocairo font map
* @param dpi the resolution in "dots per inch". (Physical inches aren't actually involved; the terminology is conventional.) A 0 or negative value means to use the resolution from the font map.
*/
function context_set_resolution(context: Pango.Context, dpi: number): void;
/**
* Sets callback function for context to use for rendering attributes
* of type %PANGO_ATTR_SHAPE.
*
* See `PangoCairoShapeRendererFunc` for details.
* @param context a `PangoContext`, from a pangocairo font map
* @param func Callback function for rendering attributes of type %PANGO_ATTR_SHAPE, or %NULL to disable shape rendering.
* @param dnotify Callback that will be called when the context is freed to release @data
*/
function context_set_shape_renderer(
context: Pango.Context,
func?: ShapeRendererFunc | null,
dnotify?: GLib.DestroyNotify | null,
): void;
/**
* Creates a context object set up to match the current transformation
* and target surface of the Cairo context.
*
* This context can then be
* used to create a layout using [ctor`Pango`.Layout.new].
*
* This function is a convenience function that creates a context using
* the default font map, then updates it to `cr`. If you just need to
* create a layout for use with `cr` and do not need to access `PangoContext`
* directly, you can use [func`create_layout]` instead.
* @param cr a Cairo context
* @returns the newly created `PangoContext`
*/
function create_context(cr: cairo.Context): Pango.Context;
/**
* Creates a layout object set up to match the current transformation
* and target surface of the Cairo context.
*
* This layout can then be used for text measurement with functions
* like [method`Pango`.Layout.get_size] or drawing with functions like
* [func`show_layout]`. If you change the transformation or target
* surface for `cr,` you need to call [func`update_layout]`.
*
* This function is the most convenient way to use Cairo with Pango,
* however it is slightly inefficient since it creates a separate
* `PangoContext` object for each layout. This might matter in an
* application that was laying out large amounts of text.
* @param cr a Cairo context
* @returns the newly created `PangoLayout`
*/
function create_layout(cr: cairo.Context): Pango.Layout;
/**
* Add a squiggly line to the current path in the specified cairo context that
* approximately covers the given rectangle in the style of an underline used
* to indicate a spelling error.
*
* The width of the underline is rounded to an integer number of up/down
* segments and the resulting rectangle is centered in the original rectangle.
* @param cr a Cairo context
* @param x The X coordinate of one corner of the rectangle
* @param y The Y coordinate of one corner of the rectangle
* @param width Non-negative width of the rectangle
* @param height Non-negative height of the rectangle
*/
function error_underline_path(cr: cairo.Context, x: number, y: number, width: number, height: number): void;
/**
* Gets a default `PangoCairoFontMap` to use with Cairo.
*
* Note that the type of the returned object will depend on the
* particular font backend Cairo was compiled to use; you generally
* should only use the `PangoFontMap` and `PangoCairoFontMap`
* interfaces on the returned object.
*
* The default Cairo fontmap can be changed by using
* [method`PangoCairo`.FontMap.set_default]. This can be used to
* change the Cairo font backend that the default fontmap uses
* for example.
*
* Note that since Pango 1.32.6, the default fontmap is per-thread.
* Each thread gets its own default fontmap. In this way, PangoCairo
* can be used safely from multiple threads.
* @returns the default PangoCairo fontmap for the current thread. This object is owned by Pango and must not be freed.
*/
function font_map_get_default(): Pango.FontMap;
/**
* Creates a new `PangoCairoFontMap` object.
*
* A fontmap is used to cache information about available fonts,
* and holds certain global parameters such as the resolution.
* In most cases, you can use `func`PangoCairo`.font_map_get_default]
* instead.
*
* Note that the type of the returned object will depend
* on the particular font backend Cairo was compiled to use;
* You generally should only use the `PangoFontMap` and
* `PangoCairoFontMap` interfaces on the returned object.
*
* You can override the type of backend returned by using an
* environment variable %PANGOCAIRO_BACKEND. Supported types,
* based on your build, are fc (fontconfig), win32, and coretext.
* If requested type is not available, NULL is returned. Ie.
* this is only useful for testing, when at least two backends
* are compiled in.
* @returns the newly allocated `PangoFontMap`, which should be freed with g_object_unref().
*/
function font_map_new(): Pango.FontMap;
/**
* Creates a new `PangoCairoFontMap` object of the type suitable
* to be used with cairo font backend of type `fonttype`.
*
* In most cases one should simply use [func`PangoCairo`.FontMap.new], or
* in fact in most of those cases, just use [func`PangoCairo`.FontMap.get_default].
* @param fonttype desired #cairo_font_type_t
* @returns the newly allocated `PangoFontMap` of suitable type which should be freed with g_object_unref(), or %NULL if the requested cairo font backend is not supported / compiled in.
*/
function font_map_new_for_font_type(fonttype: cairo.FontType | null): Pango.FontMap | null;
/**
* Adds the glyphs in `glyphs` to the current path in the specified
* cairo context.
*
* The origin of the glyphs (the left edge of the baseline)
* will be at the current point of the cairo context.
* @param cr a Cairo context
* @param font a `PangoFont` from a `PangoCairoFontMap`
* @param glyphs a `PangoGlyphString`
*/
function glyph_string_path(cr: cairo.Context, font: Pango.Font, glyphs: Pango.GlyphString): void;
/**
* Adds the text in `PangoLayoutLine` to the current path in the
* specified cairo context.
*
* The origin of the glyphs (the left edge of the line) will be
* at the current point of the cairo context.
* @param cr a Cairo context
* @param line a `PangoLayoutLine`
*/
function layout_line_path(cr: cairo.Context, line: Pango.LayoutLine): void;
/**
* Adds the text in a `PangoLayout` to the current path in the
* specified cairo context.
*
* The top-left corner of the `PangoLayout` will be at the
* current point of the cairo context.
* @param cr a Cairo context
* @param layout a Pango layout
*/
function layout_path(cr: cairo.Context, layout: Pango.Layout): void;
/**
* Draw a squiggly line in the specified cairo context that approximately
* covers the given rectangle in the style of an underline used to indicate a
* spelling error.
*
* The width of the underline is rounded to an integer
* number of up/down segments and the resulting rectangle is centered in the
* original rectangle.
* @param cr a Cairo context
* @param x The X coordinate of one corner of the rectangle
* @param y The Y coordinate of one corner of the rectangle
* @param width Non-negative width of the rectangle
* @param height Non-negative height of the rectangle
*/
function show_error_underline(cr: cairo.Context, x: number, y: number, width: number, height: number): void;
/**
* Draws the glyphs in `glyph_item` in the specified cairo context,
*
* embedding the text associated with the glyphs in the output if the
* output format supports it (PDF for example), otherwise it acts
* similar to [func`show_glyph_string]`.
*
* The origin of the glyphs (the left edge of the baseline) will
* be drawn at the current point of the cairo context.
*
* Note that `text` is the start of the text for layout, which is then
* indexed by `glyph_item->item->offset`.
* @param cr a Cairo context
* @param text the UTF-8 text that @glyph_item refers to
* @param glyph_item a `PangoGlyphItem`
*/
function show_glyph_item(cr: cairo.Context, text: string, glyph_item: Pango.GlyphItem): void;
/**
* Draws the glyphs in `glyphs` in the specified cairo context.
*
* The origin of the glyphs (the left edge of the baseline) will
* be drawn at the current point of the cairo context.
* @param cr a Cairo context
* @param font a `PangoFont` from a `PangoCairoFontMap`
* @param glyphs a `PangoGlyphString`
*/
function show_glyph_string(cr: cairo.Context, font: Pango.Font, glyphs: Pango.GlyphString): void;
/**
* Draws a `PangoLayout` in the specified cairo context.
*
* The top-left corner of the `PangoLayout` will be drawn
* at the current point of the cairo context.
* @param cr a Cairo context
* @param layout a Pango layout
*/
function show_layout(cr: cairo.Context, layout: Pango.Layout): void;
/**
* Draws a `PangoLayoutLine` in the specified cairo context.
*
* The origin of the glyphs (the left edge of the line) will
* be drawn at the current point of the cairo context.
* @param cr a Cairo context
* @param line a `PangoLayoutLine`
*/
function show_layout_line(cr: cairo.Context, line: Pango.LayoutLine): void;
/**
* Updates a `PangoContext` previously created for use with Cairo to
* match the current transformation and target surface of a Cairo
* context.
*
* If any layouts have been created for the context, it's necessary
* to call [method`Pango`.Layout.context_changed] on those layouts.
* @param cr a Cairo context
* @param context a `PangoContext`, from a pangocairo font map
*/
function update_context(cr: cairo.Context, context: Pango.Context): void;
/**
* Updates the private `PangoContext` of a `PangoLayout` created with
* [func`create_layout]` to match the current transformation and target
* surface of a Cairo context.
* @param cr a Cairo context
* @param layout a `PangoLayout`, from [func@create_layout]
*/
function update_layout(cr: cairo.Context, layout: Pango.Layout): void;
interface ShapeRendererFunc {
(cr: cairo.Context, attr: Pango.AttrShape, do_path: boolean): void;
}
namespace Font {
// Constructor properties interface
interface ConstructorProps extends Pango.Font.ConstructorProps {}
}
export interface FontNamespace {
$gtype: GObject.GType<Font>;
prototype: Font;
}
interface Font extends Pango.Font {
// Methods
/**
* Gets the `cairo_scaled_font_t` used by `font`.
* The scaled font can be referenced and kept using
* cairo_scaled_font_reference().
* @returns the `cairo_scaled_font_t` used by @font
*/
get_scaled_font(): cairo.ScaledFont | null;
}
export const Font: FontNamespace & {
new (): Font; // This allows `obj instanceof Font`
};
namespace FontMap {
// Constructor properties interface
interface ConstructorProps extends Pango.FontMap.ConstructorProps {}
}
export interface FontMapNamespace {
$gtype: GObject.GType<FontMap>;
prototype: FontMap;
/**
* Gets a default `PangoCairoFontMap` to use with Cairo.
*
* Note that the type of the returned object will depend on the
* particular font backend Cairo was compiled to use; you generally
* should only use the `PangoFontMap` and `PangoCairoFontMap`
* interfaces on the returned object.
*
* The default Cairo fontmap can be changed by using
* [method`PangoCairo`.FontMap.set_default]. This can be used to
* change the Cairo font backend that the default fontmap uses
* for example.
*
* Note that since Pango 1.32.6, the default fontmap is per-thread.
* Each thread gets its own default fontmap. In this way, PangoCairo
* can be used safely from multiple threads.
*/
get_default(): Pango.FontMap;
/**
* Creates a new `PangoCairoFontMap` object.
*
* A fontmap is used to cache information about available fonts,
* and holds certain global parameters such as the resolution.
* In most cases, you can use `func`PangoCairo`.font_map_get_default]
* instead.
*
* Note that the type of the returned object will depend
* on the particular font backend Cairo was compiled to use;
* You generally should only use the `PangoFontMap` and
* `PangoCairoFontMap` interfaces on the returned object.
*
* You can override the type of backend returned by using an
* environment variable %PANGOCAIRO_BACKEND. Supported types,
* based on your build, are fc (fontconfig), win32, and coretext.
* If requested type is not available, NULL is returned. Ie.
* this is only useful for testing, when at least two backends
* are compiled in.
*/
['new'](): Pango.FontMap;
/**
* Creates a new `PangoCairoFontMap` object of the type suitable
* to be used with cairo font backend of type `fonttype`.
*
* In most cases one should simply use [func`PangoCairo`.FontMap.new], or
* in fact in most of those cases, just use [func`PangoCairo`.FontMap.get_default].
* @param fonttype desired #cairo_font_type_t
*/
new_for_font_type(fonttype: cairo.FontType): Pango.FontMap | null;
}
interface FontMap extends Pango.FontMap {
// Methods
/**
* Gets the type of Cairo font backend that `fontmap` uses.
* @returns the `cairo_font_type_t` cairo font backend type
*/
get_font_type(): cairo.FontType;
/**
* Gets the resolution for the fontmap.
*
* See [method`PangoCairo`.FontMap.set_resolution].
* @returns the resolution in "dots per inch"
*/
get_resolution(): number;
/**
* Sets a default `PangoCairoFontMap` to use with Cairo.
*
* This can be used to change the Cairo font backend that the
* default fontmap uses for example. The old default font map
* is unreffed and the new font map referenced.
*
* Note that since Pango 1.32.6, the default fontmap is per-thread.
* This function only changes the default fontmap for
* the current thread. Default fontmaps of existing threads
* are not changed. Default fontmaps of any new threads will
* still be created using [func`PangoCairo`.FontMap.new].
*
* A value of %NULL for `fontmap` will cause the current default
* font map to be released and a new default font map to be created
* on demand, using [func`PangoCairo`.FontMap.new].
*/
set_default(): void;
/**
* Sets the resolution for the fontmap.
*
* This is a scale factor between
* points specified in a `PangoFontDescription` and Cairo units. The
* default value is 96, meaning that a 10 point font will be 13
* units high. (10 * 96. / 72. = 13.3).
* @param dpi the resolution in "dots per inch". (Physical inches aren't actually involved; the terminology is conventional.)
*/
set_resolution(dpi: number): void;
}
export const FontMap: FontMapNamespace & {
new (): FontMap; // This allows `obj instanceof FontMap`
};
/**
* 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 PangoCairo;
}
declare module 'gi://PangoCairo' {
import PangoCairo10 from 'gi://PangoCairo?version=1.0';
export default PangoCairo10;
}
// END

1058
home/ags/files/@girs/pangofc-1.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

810
home/ags/files/@girs/pangoft2-1.0.d.ts vendored Normal file
View File

@ -0,0 +1,810 @@
/// <reference path="./freetype2-2.0.d.ts" />
/// <reference path="./pangofc-1.0.d.ts" />
/// <reference path="./fontconfig-2.0.d.ts" />
/// <reference path="./pango-1.0.d.ts" />
/// <reference path="./cairo-1.0.d.ts" />
/// <reference path="./cairo.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./harfbuzz-0.0.d.ts" />
/// <reference path="./gio-2.0.d.ts" />
/// <reference path="./gmodule-2.0.d.ts" />
/**
* 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://PangoFT2?version=1.0' {
// Module dependencies
import type freetype2 from 'gi://freetype2?version=2.0';
import type PangoFc from 'gi://PangoFc?version=1.0';
import type fontconfig from 'gi://fontconfig?version=2.0';
import type Pango from 'gi://Pango?version=1.0';
import type cairo from 'cairo';
import type GObject from 'gi://GObject?version=2.0';
import type GLib from 'gi://GLib?version=2.0';
import type HarfBuzz from 'gi://HarfBuzz?version=0.0';
import type Gio from 'gi://Gio?version=2.0';
import type GModule from 'gi://GModule?version=2.0';
export namespace PangoFT2 {
/**
* PangoFT2-1.0
*/
/**
* Gets the `PangoCoverage` for a `PangoFT2Font`.
*
* Use [method`Pango`.Font.get_coverage] instead.
* @param font a Pango FT2 font
* @param language a language tag.
* @returns a `PangoCoverage`
*/
function font_get_coverage(font: Pango.Font, language: Pango.Language): Pango.Coverage;
/**
* Retrieves kerning information for a combination of two glyphs.
*
* Use pango_fc_font_kern_glyphs() instead.
* @param font a `PangoFont`
* @param left the left `PangoGlyph`
* @param right the right `PangoGlyph`
* @returns The amount of kerning (in Pango units) to apply for the given combination of glyphs.
*/
function font_get_kerning(font: Pango.Font, left: Pango.Glyph, right: Pango.Glyph): number;
/**
* Return the index of a glyph suitable for drawing unknown
* characters with `font,` or %PANGO_GLYPH_EMPTY if no suitable
* glyph found.
*
* If you want to draw an unknown-box for a character that
* is not covered by the font, use PANGO_GET_UNKNOWN_GLYPH()
* instead.
* @param font a `PangoFont`
* @returns a glyph index into @font, or %PANGO_GLYPH_EMPTY
*/
function get_unknown_glyph(font: Pango.Font): Pango.Glyph;
/**
* Renders a `PangoGlyphString` onto a FreeType2 bitmap.
* @param bitmap the FreeType2 bitmap onto which to draw the string
* @param font the font in which to draw the string
* @param glyphs the glyph string to draw
* @param x the x position of the start of the string (in pixels)
* @param y the y position of the baseline (in pixels)
*/
function render(
bitmap: freetype2.Bitmap,
font: Pango.Font,
glyphs: Pango.GlyphString,
x: number,
y: number,
): void;
/**
* Render a `PangoLayout` onto a FreeType2 bitmap
* @param bitmap a FT_Bitmap to render the layout onto
* @param layout a `PangoLayout`
* @param x the X position of the left of the layout (in pixels)
* @param y the Y position of the top of the layout (in pixels)
*/
function render_layout(bitmap: freetype2.Bitmap, layout: Pango.Layout, x: number, y: number): void;
/**
* Render a `PangoLayoutLine` onto a FreeType2 bitmap
* @param bitmap a FT_Bitmap to render the line onto
* @param line a `PangoLayoutLine`
* @param x the x position of start of string (in pixels)
* @param y the y position of baseline (in pixels)
*/
function render_layout_line(bitmap: freetype2.Bitmap, line: Pango.LayoutLine, x: number, y: number): void;
/**
* Render a `PangoLayoutLine` onto a FreeType2 bitmap, with he
* location specified in fixed-point Pango units rather than
* pixels.
*
* (Using this will avoid extra inaccuracies from rounding
* to integer pixels multiple times, even if the final glyph
* positions are integers.)
* @param bitmap a FT_Bitmap to render the line onto
* @param line a `PangoLayoutLine`
* @param x the x position of start of string (in Pango units)
* @param y the y position of baseline (in Pango units)
*/
function render_layout_line_subpixel(
bitmap: freetype2.Bitmap,
line: Pango.LayoutLine,
x: number,
y: number,
): void;
/**
* Render a `PangoLayout` onto a FreeType2 bitmap, with he
* location specified in fixed-point Pango units rather than
* pixels.
*
* (Using this will avoid extra inaccuracies from rounding
* to integer pixels multiple times, even if the final glyph
* positions are integers.)
* @param bitmap a FT_Bitmap to render the layout onto
* @param layout a `PangoLayout`
* @param x the X position of the left of the layout (in Pango units)
* @param y the Y position of the top of the layout (in Pango units)
*/
function render_layout_subpixel(bitmap: freetype2.Bitmap, layout: Pango.Layout, x: number, y: number): void;
/**
* Renders a `PangoGlyphString` onto a FreeType2 bitmap, possibly
* transforming the layed-out coordinates through a transformation
* matrix.
*
* Note that the transformation matrix for `font` is not
* changed, so to produce correct rendering results, the `font`
* must have been loaded using a `PangoContext` with an identical
* transformation matrix to that passed in to this function.
* @param bitmap the FreeType2 bitmap onto which to draw the string
* @param matrix a `PangoMatrix`
* @param font the font in which to draw the string
* @param glyphs the glyph string to draw
* @param x the x position of the start of the string (in Pango units in user space coordinates)
* @param y the y position of the baseline (in Pango units in user space coordinates)
*/
function render_transformed(
bitmap: freetype2.Bitmap,
matrix: Pango.Matrix | null,
font: Pango.Font,
glyphs: Pango.GlyphString,
x: number,
y: number,
): void;
/**
* Free the global fontmap. (See pango_ft2_font_map_for_display())
* Use of the global PangoFT2 fontmap is deprecated.
*/
function shutdown_display(): void;
interface SubstituteFunc {
(pattern: fontconfig.Pattern, data?: any | null): void;
}
namespace FontMap {
// Signal signatures
interface SignalSignatures extends PangoFc.FontMap.SignalSignatures {
'notify::item-type': (pspec: GObject.ParamSpec) => void;
'notify::n-items': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps<A extends GObject.Object = GObject.Object>
extends PangoFc.FontMap.ConstructorProps<A>,
Gio.ListModel.ConstructorProps {}
}
/**
* The `PangoFT2FontMap` is the `PangoFontMap` implementation for FreeType fonts.
*/
class FontMap<A extends GObject.Object = GObject.Object>
extends PangoFc.FontMap<A>
implements Gio.ListModel<A>
{
static $gtype: GObject.GType<FontMap>;
/**
* 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: FontMap.SignalSignatures;
// Constructors
constructor(properties?: Partial<FontMap.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): FontMap;
// Signals
connect<K extends keyof FontMap.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, FontMap.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof FontMap.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, FontMap.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof FontMap.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<FontMap.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Methods
/**
* Sets a function that will be called to do final configuration
* substitution on a `FcPattern` before it is used to load
* the font.
*
* This function can be used to do things like set
* hinting and antialiasing options.
* @param func function to call to to do final config tweaking on #FcPattern objects.
*/
set_default_substitute(func: SubstituteFunc): void;
// Conflicted with PangoFc.FontMap.set_default_substitute
set_default_substitute(...args: never[]): any;
/**
* Sets the horizontal and vertical resolutions for the fontmap.
* @param dpi_x dots per inch in the X direction
* @param dpi_y dots per inch in the Y direction
*/
set_resolution(dpi_x: number, dpi_y: number): void;
/**
* Call this function any time the results of the
* default substitution function set with
* pango_ft2_font_map_set_default_substitute() change.
*
* That is, if your substitution function will return different
* results for the same input pattern, you must call this function.
*/
substitute_changed(): void;
// Inherited methods
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
* @returns the #GType of the items contained in @list.
*/
get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
* @returns the number of items in @list.
*/
get_n_items(): number;
/**
* Get the item at `position`.
*
* If `position` is greater than the number of items in `list,` %NULL is
* returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list.
*
* This function is meant to be used by language bindings in place
* of g_list_model_get_item().
*
* See also: g_list_model_get_n_items()
* @param position the position of the item to fetch
* @returns the object at @position.
*/
get_item(position: number): A | null;
/**
* Emits the #GListModel::items-changed signal on `list`.
*
* This function should only be called by classes implementing
* #GListModel. It has to be called after the internal representation
* of `list` has been updated, because handlers connected to this signal
* might query the new state of the list.
*
* Implementations must only make changes to the model (as visible to
* its consumer) in places that will not cause problems for that
* consumer. For models that are driven directly by a write API (such
* as #GListStore), changes can be reported in response to uses of that
* API. For models that represent remote data, changes should only be
* made from a fresh mainloop dispatch. It is particularly not
* permitted to make changes in response to a call to the #GListModel
* consumer API.
*
* Stated another way: in general, it is assumed that code making a
* series of accesses to the model via the API, without returning to the
* mainloop, and without calling other code, will continue to view the
* same contents of the model.
* @param position the position at which @list changed
* @param removed the number of items removed
* @param added the number of items added
*/
items_changed(position: number, removed: number, added: number): void;
/**
* Get the item at `position`. If `position` is greater than the number of
* items in `list,` %NULL is returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list. See g_list_model_get_n_items().
*
* The same #GObject instance may not appear more than once in a #GListModel.
* @param position the position of the item to fetch
*/
vfunc_get_item(position: number): A | null;
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
*/
vfunc_get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
*/
vfunc_get_n_items(): number;
/**
* Creates a binding between `source_property` on `source` and `target_property`
* on `target`.
*
* Whenever the `source_property` is changed the `target_property` is
* updated using the same value. For instance:
*
*
* ```c
* g_object_bind_property (action, "active", widget, "sensitive", 0);
* ```
*
*
* Will result in the "sensitive" property of the widget #GObject instance to be
* updated with the same value of the "active" property of the action #GObject
* instance.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well.
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. To remove the binding without affecting the
* `source` and the `target` you can just call g_object_unref() on the returned
* #GBinding instance.
*
* Removing the binding by calling g_object_unref() on it must only be done if
* the binding, `source` and `target` are only used from a single thread and it
* is clear that both `source` and `target` outlive the binding. Especially it
* is not safe to rely on this if the binding, `source` or `target` can be
* finalized from different threads. Keep another reference to the binding and
* use g_binding_unbind() instead to be on the safe side.
*
* A #GObject can have multiple bindings.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
): GObject.Binding;
/**
* Complete version of g_object_bind_property().
*
* Creates a binding between `source_property` on `source` and `target_property`
* on `target,` allowing you to set the transformation functions to be used by
* the binding.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well. The `transform_from` function is only used in case
* of bidirectional bindings, otherwise it will be ignored
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. This will release the reference that is
* being held on the #GBinding instance; if you want to hold on to the
* #GBinding instance, you will need to hold a reference to it.
*
* To remove the binding, call g_binding_unbind().
*
* A #GObject can have multiple bindings.
*
* The same `user_data` parameter will be used for both `transform_to`
* and `transform_from` transformation functions; the `notify` function will
* be called once, when the binding is removed. If you need different data
* for each transformation function, please use
* g_object_bind_property_with_closures() instead.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @param transform_to the transformation function from the @source to the @target, or %NULL to use the default
* @param transform_from the transformation function from the @target to the @source, or %NULL to use the default
* @param notify a function to call when disposing the binding, to free resources used by the transformation functions, or %NULL if not required
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property_full(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
transform_to?: GObject.BindingTransformFunc | null,
transform_from?: GObject.BindingTransformFunc | null,
notify?: GLib.DestroyNotify | null,
): GObject.Binding;
// Conflicted with GObject.Object.bind_property_full
bind_property_full(...args: never[]): any;
/**
* This function is intended for #GObject implementations to re-enforce
* a [floating][floating-ref] object reference. Doing this is seldom
* required: all #GInitiallyUnowneds are created with a floating reference
* which usually just needs to be sunken by calling g_object_ref_sink().
*/
force_floating(): void;
/**
* Increases the freeze count on `object`. If the freeze count is
* non-zero, the emission of "notify" signals on `object` is
* stopped. The signals are queued until the freeze count is decreased
* to zero. Duplicate notifications are squashed so that at most one
* #GObject::notify signal is emitted for each property modified while the
* object is frozen.
*
* This is necessary for accessors that modify multiple properties to prevent
* premature notification while the object is still being modified.
*/
freeze_notify(): void;
/**
* Gets a named field from the objects table of associations (see g_object_set_data()).
* @param key name of the key for that association
* @returns the data if found, or %NULL if no such data exists.
*/
get_data(key: string): any | null;
/**
* Gets a property of an object.
*
* The value can be:
* - an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
* - a GObject.Value initialized with the expected type of the property
* - a GObject.Value initialized with a type to which the expected type of the property can be transformed
*
* In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.
*
* Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.
* @param property_name The name of the property to get
* @param value Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type
*/
get_property(property_name: string, value: GObject.Value | any): any;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
get_qdata(quark: GLib.Quark): any | null;
/**
* Gets `n_properties` properties for an `object`.
* Obtained properties will be set to `values`. All properties must be valid.
* Warnings will be emitted and undefined behaviour may result if invalid
* properties are passed in.
* @param names the names of each property to get
* @param values the values of each property to get
*/
getv(names: string[], values: (GObject.Value | any)[]): void;
/**
* Checks whether `object` has a [floating][floating-ref] reference.
* @returns %TRUE if @object has a floating reference
*/
is_floating(): boolean;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param property_name the name of a property installed on the class of @object.
*/
notify(property_name: string): void;
/**
* Emits a "notify" signal for the property specified by `pspec` on `object`.
*
* This function omits the property name lookup, hence it is faster than
* g_object_notify().
*
* One way to avoid using g_object_notify() from within the
* class that registered the properties, and using g_object_notify_by_pspec()
* instead, is to store the GParamSpec used with
* g_object_class_install_property() inside a static array, e.g.:
*
*
* ```c
* typedef enum
* {
* PROP_FOO = 1,
* PROP_LAST
* } MyObjectProperty;
*
* static GParamSpec *properties[PROP_LAST];
*
* static void
* my_object_class_init (MyObjectClass *klass)
* {
* properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
* 0, 100,
* 50,
* G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
* g_object_class_install_property (gobject_class,
* PROP_FOO,
* properties[PROP_FOO]);
* }
* ```
*
*
* and then notify a change on the "foo" property with:
*
*
* ```c
* g_object_notify_by_pspec (self, properties[PROP_FOO]);
* ```
*
* @param pspec the #GParamSpec of a property installed on the class of @object.
*/
notify_by_pspec(pspec: GObject.ParamSpec): void;
/**
* Increases the reference count of `object`.
*
* Since GLib 2.56, if `GLIB_VERSION_MAX_ALLOWED` is 2.56 or greater, the type
* of `object` will be propagated to the return type (using the GCC typeof()
* extension), so any casting the caller needs to do on the return type must be
* explicit.
* @returns the same @object
*/
ref(): GObject.Object;
/**
* Increase the reference count of `object,` and possibly remove the
* [floating][floating-ref] reference, if `object` has a floating reference.
*
* In other words, if the object is floating, then this call "assumes
* ownership" of the floating reference, converting it to a normal
* reference by clearing the floating flag while leaving the reference
* count unchanged. If the object is not floating, then this call
* adds a new normal reference increasing the reference count by one.
*
* Since GLib 2.56, the type of `object` will be propagated to the return type
* under the same conditions as for g_object_ref().
* @returns @object
*/
ref_sink(): GObject.Object;
/**
* Releases all references to other objects. This can be used to break
* reference cycles.
*
* This function should only be called from object system implementations.
*/
run_dispose(): void;
/**
* Each object carries around a table of associations from
* strings to pointers. This function lets you set an association.
*
* If the object already had an association with that name,
* the old association will be destroyed.
*
* Internally, the `key` is converted to a #GQuark using g_quark_from_string().
* This means a copy of `key` is kept permanently (even after `object` has been
* finalized) so it is recommended to only use a small, bounded set of values
* for `key` in your program, to avoid the #GQuark storage growing unbounded.
* @param key name of the key
* @param data data to associate with that key
*/
set_data(key: string, data?: any | null): void;
/**
* Sets a property on an object.
* @param property_name The name of the property to set
* @param value The value to set the property to
*/
set_property(property_name: string, value: GObject.Value | any): void;
/**
* Remove a specified datum from the object's data associations,
* without invoking the association's destroy handler.
* @param key name of the key
* @returns the data if found, or %NULL if no such data exists.
*/
steal_data(key: string): any | null;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata() and removes the `data` from object
* without invoking its destroy() function (if any was
* set).
* Usually, calling this function is only required to update
* user data pointers with a destroy notifier, for example:
*
* ```c
* void
* object_add_to_user_list (GObject *object,
* const gchar *new_string)
* {
* // the quark, naming the object data
* GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
* // retrieve the old string list
* GList *list = g_object_steal_qdata (object, quark_string_list);
*
* // prepend new string
* list = g_list_prepend (list, g_strdup (new_string));
* // this changed 'list', so we need to set it again
* g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
* }
* static void
* free_string_list (gpointer data)
* {
* GList *node, *list = data;
*
* for (node = list; node; node = node->next)
* g_free (node->data);
* g_list_free (list);
* }
* ```
*
* Using g_object_get_qdata() in the above example, instead of
* g_object_steal_qdata() would have left the destroy function set,
* and thus the partial string list would have been freed upon
* g_object_set_qdata_full().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
steal_qdata(quark: GLib.Quark): any | null;
/**
* Reverts the effect of a previous call to
* g_object_freeze_notify(). The freeze count is decreased on `object`
* and when it reaches zero, queued "notify" signals are emitted.
*
* Duplicate notifications for each property are squashed so that at most one
* #GObject::notify signal is emitted for each property, in the reverse order
* in which they have been queued.
*
* It is an error to call this function when the freeze count is zero.
*/
thaw_notify(): void;
/**
* Decreases the reference count of `object`. When its reference count
* drops to 0, the object is finalized (i.e. its memory is freed).
*
* If the pointer to the #GObject may be reused in future (for example, if it is
* an instance variable of another object), it is recommended to clear the
* pointer to %NULL rather than retain a dangling pointer to a potentially
* invalid #GObject instance. Use g_clear_object() for this.
*/
unref(): void;
/**
* This function essentially limits the life time of the `closure` to
* the life time of the object. That is, when the object is finalized,
* the `closure` is invalidated by calling g_closure_invalidate() on
* it, in order to prevent invocations of the closure with a finalized
* (nonexisting) object. Also, g_object_ref() and g_object_unref() are
* added as marshal guards to the `closure,` to ensure that an extra
* reference count is held on `object` during invocation of the
* `closure`. Usually, this function will be called on closures that
* use this `object` as closure data.
* @param closure #GClosure to watch
*/
watch_closure(closure: GObject.Closure): void;
/**
* the `constructed` function is called by g_object_new() as the
* final step of the object creation process. At the point of the call, all
* construction properties have been set on the object. The purpose of this
* call is to allow for object initialisation steps that can only be performed
* after construction properties have been set. `constructed` implementors
* should chain up to the `constructed` call of their parent class to allow it
* to complete its initialisation.
*/
vfunc_constructed(): void;
/**
* emits property change notification for a bunch
* of properties. Overriding `dispatch_properties_changed` should be rarely
* needed.
* @param n_pspecs
* @param pspecs
*/
vfunc_dispatch_properties_changed(n_pspecs: number, pspecs: GObject.ParamSpec): void;
/**
* the `dispose` function is supposed to drop all references to other
* objects, but keep the instance otherwise intact, so that client method
* invocations still work. It may be run multiple times (due to reference
* loops). Before returning, `dispose` should chain up to the `dispose` method
* of the parent class.
*/
vfunc_dispose(): void;
/**
* instance finalization function, should finish the finalization of
* the instance begun in `dispose` and chain up to the `finalize` method of the
* parent class.
*/
vfunc_finalize(): void;
/**
* the generic getter for all properties of this type. Should be
* overridden for every type with properties.
* @param property_id
* @param value
* @param pspec
*/
vfunc_get_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param pspec
*/
vfunc_notify(pspec: GObject.ParamSpec): void;
/**
* the generic setter for all properties of this type. Should be
* overridden for every type with properties. If implementations of
* `set_property` don't emit property change notification explicitly, this will
* be done implicitly by the type system. However, if the notify signal is
* emitted explicitly, the type system will not emit it a second time.
* @param property_id
* @param value
* @param pspec
*/
vfunc_set_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to.
* @param id Handler ID of the handler to be disconnected
*/
disconnect(id: number): void;
/**
* Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.
* @param properties Object containing the properties to set
*/
set(properties: { [key: string]: any }): void;
/**
* Blocks a handler of an instance so it will not be called during any signal emissions
* @param id Handler ID of the handler to be blocked
*/
block_signal_handler(id: number): void;
/**
* Unblocks a handler so it will be called again during any signal emissions
* @param id Handler ID of the handler to be unblocked
*/
unblock_signal_handler(id: number): void;
/**
* Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked.
* @param detailedName Name of the signal to stop emission of
*/
stop_emission_by_name(detailedName: string): void;
}
/**
* 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 PangoFT2;
}
declare module 'gi://PangoFT2' {
import PangoFT210 from 'gi://PangoFT2?version=1.0';
export default PangoFT210;
}
// END

620
home/ags/files/@girs/pangoot-1.0.d.ts vendored Normal file
View File

@ -0,0 +1,620 @@
/// <reference path="./freetype2-2.0.d.ts" />
/// <reference path="./pangofc-1.0.d.ts" />
/// <reference path="./fontconfig-2.0.d.ts" />
/// <reference path="./pango-1.0.d.ts" />
/// <reference path="./cairo-1.0.d.ts" />
/// <reference path="./cairo.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./harfbuzz-0.0.d.ts" />
/// <reference path="./gio-2.0.d.ts" />
/// <reference path="./gmodule-2.0.d.ts" />
/**
* 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://PangoOT?version=1.0' {
// Module dependencies
import type freetype2 from 'gi://freetype2?version=2.0';
import type PangoFc from 'gi://PangoFc?version=1.0';
import type fontconfig from 'gi://fontconfig?version=2.0';
import type Pango from 'gi://Pango?version=1.0';
import type cairo from 'cairo';
import type GObject from 'gi://GObject?version=2.0';
import type GLib from 'gi://GLib?version=2.0';
import type HarfBuzz from 'gi://HarfBuzz?version=0.0';
import type Gio from 'gi://Gio?version=2.0';
import type GModule from 'gi://GModule?version=2.0';
export namespace PangoOT {
/**
* PangoOT-1.0
*/
/**
* The PangoOTTableType enumeration values are used to
* identify the various OpenType tables in the
* pango_ot_info_ functions.
*/
/**
* The PangoOTTableType enumeration values are used to
* identify the various OpenType tables in the
* pango_ot_info_ functions.
*/
export namespace TableType {
export const $gtype: GObject.GType<TableType>;
}
enum TableType {
/**
* The GSUB table.
*/
GSUB,
/**
* The GPOS table.
*/
GPOS,
}
/**
* This is used as the property bit in pango_ot_ruleset_add_feature() when a
* feature should be applied to all glyphs.
*/
const ALL_GLYPHS: number;
/**
* This is used as the language index in pango_ot_info_find_feature() when
* the default language system of the script is desired.
*
* It is also returned by pango_ot_info_find_language() if the requested language
* is not found, or the requested language tag was PANGO_OT_TAG_DEFAULT_LANGUAGE.
* The end result is that one can always call pango_ot_tag_from_language()
* followed by pango_ot_info_find_language() and pass the result to
* pango_ot_info_find_feature() without having to worry about falling back to
* default language system explicitly.
*/
const DEFAULT_LANGUAGE: number;
/**
* This is used as a feature index that represent no feature, that is, should be
* skipped. It may be returned as feature index by pango_ot_info_find_feature()
* if the feature is not found, and pango_ot_ruleset_add_feature() function
* automatically skips this value, so no special handling is required by the user.
*/
const NO_FEATURE: number;
/**
* This is used as a script index that represent no script, that is, when the
* requested script was not found, and a default ('DFLT') script was not found
* either. It may be returned as script index by pango_ot_info_find_script()
* if the script or a default script are not found, all other functions
* taking a script index essentially return if the input script index is
* this value, so no special handling is required by the user.
*/
const NO_SCRIPT: number;
/**
* Finds the OpenType language-system tag best describing `language`.
* @param language A `PangoLanguage`
* @returns `PangoOTTag` best matching @language or %PANGO_OT_TAG_DEFAULT_LANGUAGE if none found or if @language is %NULL.
*/
function tag_from_language(language?: Pango.Language | null): Tag;
/**
* Finds the OpenType script tag corresponding to `script`.
*
* The %PANGO_SCRIPT_COMMON, %PANGO_SCRIPT_INHERITED, and
* %PANGO_SCRIPT_UNKNOWN scripts are mapped to the OpenType
* 'DFLT' script tag that is also defined as
* %PANGO_OT_TAG_DEFAULT_SCRIPT.
*
* Note that multiple `PangoScript` values may map to the same
* OpenType script tag. In particular, %PANGO_SCRIPT_HIRAGANA
* and %PANGO_SCRIPT_KATAKANA both map to the OT tag 'kana'.
* @param script A `PangoScript`
* @returns `PangoOTTag` corresponding to @script or %PANGO_OT_TAG_DEFAULT_SCRIPT if none found.
*/
function tag_from_script(script: Pango.Script | null): Tag;
/**
* Finds a `PangoLanguage` corresponding to `language_tag`.
* @param language_tag A `PangoOTTag` OpenType language-system tag
* @returns `PangoLanguage` best matching @language_tag or `PangoLanguage` corresponding to the string "xx" if none found.
*/
function tag_to_language(language_tag: Tag): Pango.Language;
/**
* Finds the `PangoScript` corresponding to `script_tag`.
*
* The 'DFLT' script tag is mapped to %PANGO_SCRIPT_COMMON.
*
* Note that an OpenType script tag may correspond to multiple
* `PangoScript` values. In such cases, the `PangoScript` value
* with the smallest value is returned.
* In particular, %PANGO_SCRIPT_HIRAGANA
* and %PANGO_SCRIPT_KATAKANA both map to the OT tag 'kana'.
* This function will return %PANGO_SCRIPT_HIRAGANA for
* 'kana'.
* @param script_tag A `PangoOTTag` OpenType script tag
* @returns `PangoScript` corresponding to @script_tag or %PANGO_SCRIPT_UNKNOWN if none found.
*/
function tag_to_script(script_tag: Tag): Pango.Script;
namespace Info {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {}
}
class Info extends GObject.Object {
static $gtype: GObject.GType<Info>;
/**
* 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: Info.SignalSignatures;
// Constructors
constructor(properties?: Partial<Info.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect<K extends keyof Info.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Info.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Info.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Info.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Info.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Info.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Static methods
/**
* Returns the `PangoOTInfo` structure for the given FreeType font face.
* @param face a `FT_Face`
*/
static get(face: freetype2.Face): Info;
// Methods
/**
* Finds the index of a feature.
*
* If the feature is not found, sets `feature_index` to PANGO_OT_NO_FEATURE,
* which is safe to pass to [method`PangoOT`.Ruleset.add_feature] and similar
* functions.
*
* In the future, this may set `feature_index` to an special value that if
* used in [method`PangoOT`.Ruleset.add_feature] will ask Pango to synthesize
* the requested feature based on Unicode properties and data. However, this
* function will still return %FALSE in those cases. So, users may want to
* ignore the return value of this function in certain cases.
* @param table_type the table type to obtain information about
* @param feature_tag the tag of the feature to find
* @param script_index the index of the script
* @param language_index the index of the language whose features are searched, or %PANGO_OT_DEFAULT_LANGUAGE to use the default language of the script
* @returns %TRUE if the feature was found
*/
find_feature(
table_type: TableType | null,
feature_tag: Tag,
script_index: number,
language_index: number,
): [boolean, number];
/**
* Finds the index of a language and its required feature index.
*
* If the language is not found, sets `language_index` to %PANGO_OT_DEFAULT_LANGUAGE
* and the required feature of the default language system is returned in
* required_feature_index. For best compatibility with some fonts, also
* searches the language system tag 'dflt' before falling back to the default
* language system, but that is transparent to the user. The user can simply
* ignore the return value of this function to automatically fall back to the
* default language system.
* @param table_type the table type to obtain information about
* @param script_index the index of the script whose languages are searched
* @param language_tag the tag of the language to find
* @returns %TRUE if the language was found
*/
find_language(
table_type: TableType | null,
script_index: number,
language_tag: Tag,
): [boolean, number, number];
/**
* Finds the index of a script.
*
* If not found, tries to find the 'DFLT' and then 'dflt' scripts and
* return the index of that in `script_index`. If none of those is found
* either, %PANGO_OT_NO_SCRIPT is placed in `script_index`.
*
* All other functions taking an input script_index parameter know
* how to handle %PANGO_OT_NO_SCRIPT, so one can ignore the return
* value of this function completely and proceed, to enjoy the automatic
* fallback to the 'DFLT'/'dflt' script.
* @param table_type the table type to obtain information about
* @param script_tag the tag of the script to find
* @returns %TRUE if the script was found
*/
find_script(table_type: TableType | null, script_tag: Tag): [boolean, number];
/**
* Obtains the list of features for the given language of the given script.
* @param table_type the table type to obtain information about
* @param tag unused parameter
* @param script_index the index of the script to obtain information about
* @param language_index the index of the language to list features for, or %PANGO_OT_DEFAULT_LANGUAGE, to list features for the default language of the script
* @returns a newly-allocated zero-terminated array containing the tags of the available features
*/
list_features(table_type: TableType | null, tag: Tag, script_index: number, language_index: number): Tag;
/**
* Obtains the list of available languages for a given script.
* @param table_type the table type to obtain information about
* @param script_index the index of the script to list languages for
* @param language_tag unused parameter
* @returns a newly-allocated zero-terminated array containing the tags of the available languages
*/
list_languages(table_type: TableType | null, script_index: number, language_tag: Tag): Tag;
/**
* Obtains the list of available scripts.
* @param table_type the table type to obtain information about
* @returns a newly-allocated zero-terminated array containing the tags of the available scripts
*/
list_scripts(table_type: TableType | null): Tag;
}
namespace Ruleset {
// Signal signatures
interface SignalSignatures extends GObject.Object.SignalSignatures {}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {}
}
/**
* The `PangoOTRuleset` structure holds a set of features selected
* from the tables in an OpenType font.
*
* A feature is an operation such as adjusting glyph positioning
* that should be applied to a text feature such as a certain
* type of accent.
*
* A `PangoOTRuleset` is created with [ctor`PangoOT`.Ruleset.new],
* features are added to it with [method`PangoOT`.Ruleset.add_feature],
* then it is applied to a `PangoGlyphString` with
* [method`PangoOT`.Ruleset.position].
*/
class Ruleset extends GObject.Object {
static $gtype: GObject.GType<Ruleset>;
/**
* 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: Ruleset.SignalSignatures;
// Constructors
constructor(properties?: Partial<Ruleset.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](info: Info): Ruleset;
static new_for(info: Info, script: Pango.Script, language: Pango.Language): Ruleset;
static new_from_description(info: Info, desc: RulesetDescription): Ruleset;
// Signals
connect<K extends keyof Ruleset.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Ruleset.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Ruleset.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Ruleset.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Ruleset.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Ruleset.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Static methods
/**
* Returns a ruleset for the given OpenType info and ruleset
* description.
*
* Rulesets are created on demand using
* [ctor`PangoOT`.Ruleset.new_from_description].
* The returned ruleset should not be modified or destroyed.
*
* The static feature map members of `desc` should be alive as
* long as `info` is.
* @param info a `PangoOTInfo`
* @param desc a `PangoOTRulesetDescription`
*/
static get_for_description(info: Info, desc: RulesetDescription): Ruleset;
// Methods
/**
* Adds a feature to the ruleset.
* @param table_type the table type to add a feature to
* @param feature_index the index of the feature to add
* @param property_bit the property bit to use for this feature. Used to identify the glyphs that this feature should be applied to, or %PANGO_OT_ALL_GLYPHS if it should be applied to all glyphs.
*/
add_feature(table_type: TableType | null, feature_index: number, property_bit: number): void;
/**
* Gets the number of GSUB and GPOS features in the ruleset.
* @returns Total number of features in the @ruleset
*/
get_feature_count(): [number, number, number];
/**
* This is a convenience function that first tries to find the feature
* using [method`PangoOT`.Info.find_feature] and the ruleset script and
* language passed to [ctor`PangoOT`.Ruleset.new_for] and if the feature
* is found, adds it to the ruleset.
*
* If `ruleset` was not created using [ctor`PangoOT`.Ruleset.new_for],
* this function does nothing.
* @param table_type the table type to add a feature to
* @param feature_tag the tag of the feature to add
* @param property_bit the property bit to use for this feature. Used to identify the glyphs that this feature should be applied to, or %PANGO_OT_ALL_GLYPHS if it should be applied to all glyphs.
* @returns %TRUE if the feature was found and added to ruleset, %FALSE otherwise
*/
maybe_add_feature(table_type: TableType | null, feature_tag: Tag, property_bit: number): boolean;
/**
* This is a convenience function that for each feature in the feature map
* array `features` converts the feature name to a `PangoOTTag` feature tag
* using PANGO_OT_TAG_MAKE() and calls [method`PangoOT`.Ruleset.maybe_add_feature]
* on it.
* @param table_type the table type to add features to
* @param features array of feature name and property bits to add
* @param n_features number of feature records in @features array
* @returns The number of features in @features that were found and added to @ruleset
*/
maybe_add_features(table_type: TableType | null, features: FeatureMap, n_features: number): number;
/**
* Performs the OpenType GPOS positioning on `buffer` using
* the features in `ruleset`.
* @param buffer a `PangoOTBuffer`
*/
position(buffer: Buffer): void;
/**
* Performs the OpenType GSUB substitution on `buffer` using
* the features in `ruleset`.
* @param buffer a `PangoOTBuffer`
*/
substitute(buffer: Buffer): void;
}
class Buffer {
static $gtype: GObject.GType<Buffer>;
// Constructors
constructor(font: PangoFc.Font);
_init(...args: any[]): void;
static ['new'](font: PangoFc.Font): Buffer;
// Methods
/**
* Appends a glyph to a `PangoOTBuffer`, with `properties` identifying which
* features should be applied on this glyph.
*
* See [method`PangoOT`.Ruleset.add_feature].
* @param glyph the glyph index to add, like a `PangoGlyph`
* @param properties the glyph properties
* @param cluster the cluster that this glyph belongs to
*/
add_glyph(glyph: number, properties: number, cluster: number): void;
/**
* Empties a `PangoOTBuffer`, make it ready to add glyphs to.
*/
clear(): void;
/**
* Destroys a `PangoOTBuffer` and free all associated memory.
*/
destroy(): void;
/**
* Gets the glyph array contained in a `PangoOTBuffer`.
*
* The glyphs are owned by the buffer and should not be freed,
* and are only valid as long as buffer is not modified.
*/
get_glyphs(): Glyph[] | null;
/**
* Exports the glyphs in a `PangoOTBuffer` into a `PangoGlyphString`.
*
* This is typically used after the OpenType layout processing
* is over, to convert the resulting glyphs into a generic Pango
* glyph string.
* @param glyphs a `PangoGlyphString`
*/
output(glyphs: Pango.GlyphString): void;
/**
* Sets whether glyphs will be rendered right-to-left.
*
* This setting is needed for proper horizontal positioning
* of right-to-left scripts.
* @param rtl %TRUE for right-to-left text
*/
set_rtl(rtl: boolean): void;
/**
* Sets whether characters with a mark class should be forced to zero width.
*
* This setting is needed for proper positioning of Arabic accents,
* but will produce incorrect results with standard OpenType Indic
* fonts.
* @param zero_width_marks %TRUE if characters with a mark class should be forced to zero width
*/
set_zero_width_marks(zero_width_marks: boolean): void;
}
/**
* The `PangoOTFeatureMap` typedef is used to represent an OpenType
* feature with the property bit associated with it. The feature tag is
* represented as a char array instead of a `PangoOTTag` for convenience.
*/
class FeatureMap {
static $gtype: GObject.GType<FeatureMap>;
// Fields
feature_name: number[];
property_bit: number;
// Constructors
constructor(
properties?: Partial<{
feature_name: number[];
property_bit: number;
}>,
);
_init(...args: any[]): void;
}
/**
* The `PangoOTGlyph` structure represents a single glyph together with
* information used for OpenType layout processing of the glyph.
* It contains the following fields.
*/
class Glyph {
static $gtype: GObject.GType<Glyph>;
// Fields
glyph: number;
properties: number;
cluster: number;
component: number;
ligID: number;
internal: number;
// Constructors
constructor(
properties?: Partial<{
glyph: number;
properties: number;
cluster: number;
component: number;
ligID: number;
internal: number;
}>,
);
_init(...args: any[]): void;
}
/**
* The `PangoOTRuleset` structure holds all the information needed
* to build a complete `PangoOTRuleset` from an OpenType font.
* The main use of this struct is to act as the key for a per-font
* hash of rulesets. The user populates a ruleset description and
* gets the ruleset using pango_ot_ruleset_get_for_description()
* or create a new one using pango_ot_ruleset_new_from_description().
*/
class RulesetDescription {
static $gtype: GObject.GType<RulesetDescription>;
// Fields
script: Pango.Script;
static_gsub_features: FeatureMap;
n_static_gsub_features: number;
static_gpos_features: FeatureMap;
n_static_gpos_features: number;
other_features: FeatureMap;
n_other_features: number;
// Constructors
_init(...args: any[]): void;
// Methods
/**
* Creates a copy of `desc,` which should be freed with
* [method`PangoOT`.RulesetDescription.free].
*
* Primarily used internally by [func`PangoOT`.Ruleset.get_for_description]
* to cache rulesets for ruleset descriptions.
* @returns the newly allocated `PangoOTRulesetDescription`
*/
copy(): RulesetDescription;
/**
* Compares two ruleset descriptions for equality.
*
* Two ruleset descriptions are considered equal if the rulesets
* they describe are provably identical. This means that their
* script, language, and all feature sets should be equal.
*
* For static feature sets, the array addresses are compared directly,
* while for other features, the list of features is compared one by
* one.(Two ruleset descriptions may result in identical rulesets
* being created, but still compare %FALSE.)
* @param desc2 a ruleset description
* @returns %TRUE if two ruleset descriptions are identical, %FALSE otherwise
*/
equal(desc2: RulesetDescription): boolean;
/**
* Frees a ruleset description allocated by
* pango_ot_ruleset_description_copy().
*/
free(): void;
/**
* Computes a hash of a `PangoOTRulesetDescription` structure suitable
* to be used, for example, as an argument to g_hash_table_new().
* @returns the hash value
*/
hash(): number;
}
type Tag = number;
/**
* 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 PangoOT;
}
declare module 'gi://PangoOT' {
import PangoOT10 from 'gi://PangoOT?version=1.0';
export default PangoOT10;
}
// END

978
home/ags/files/@girs/pangoxft-1.0.d.ts vendored Normal file
View File

@ -0,0 +1,978 @@
/// <reference path="./xlib-2.0.d.ts" />
/// <reference path="./xft-2.0.d.ts" />
/// <reference path="./pangoot-1.0.d.ts" />
/// <reference path="./freetype2-2.0.d.ts" />
/// <reference path="./pangofc-1.0.d.ts" />
/// <reference path="./fontconfig-2.0.d.ts" />
/// <reference path="./pango-1.0.d.ts" />
/// <reference path="./cairo-1.0.d.ts" />
/// <reference path="./cairo.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./harfbuzz-0.0.d.ts" />
/// <reference path="./gio-2.0.d.ts" />
/// <reference path="./gmodule-2.0.d.ts" />
/// <reference path="./pangoft2-1.0.d.ts" />
/**
* 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://PangoXft?version=1.0' {
// Module dependencies
import type xlib from 'gi://xlib?version=2.0';
import type xft from 'gi://xft?version=2.0';
import type PangoOT from 'gi://PangoOT?version=1.0';
import type freetype2 from 'gi://freetype2?version=2.0';
import type PangoFc from 'gi://PangoFc?version=1.0';
import type fontconfig from 'gi://fontconfig?version=2.0';
import type Pango from 'gi://Pango?version=1.0';
import type cairo from 'cairo';
import type GObject from 'gi://GObject?version=2.0';
import type GLib from 'gi://GLib?version=2.0';
import type HarfBuzz from 'gi://HarfBuzz?version=0.0';
import type Gio from 'gi://Gio?version=2.0';
import type GModule from 'gi://GModule?version=2.0';
import type PangoFT2 from 'gi://PangoFT2?version=1.0';
export namespace PangoXft {
/**
* PangoXft-1.0
*/
/**
* Returns the `PangoXftFontMap` for the given display and screen.
* The fontmap is owned by Pango and will be valid until
* the display is closed.
* @param display an X display
* @param screen the screen number of a screen within @display
* @returns a `PangoFontMap` object, owned by Pango.
*/
function get_font_map(display: xlib.Display, screen: number): Pango.FontMap;
/**
* Renders a `PangoGlyphString` onto an Xrender Picture object.
* @param display an X display
* @param src_picture the source picture to draw the string with
* @param dest_picture the destination picture to draw the string onto
* @param font the font in which to draw the string
* @param glyphs the glyph string to draw
* @param x the x position of start of string (in pixels)
* @param y the y position of baseline (in pixels)
*/
function picture_render(
display: xlib.Display,
src_picture: xlib.Picture,
dest_picture: xlib.Picture,
font: Pango.Font,
glyphs: Pango.GlyphString,
x: number,
y: number,
): void;
/**
* Renders a `PangoGlyphString` onto an XftDraw object wrapping an X drawable.
* @param draw the XftDraw object.
* @param color the color in which to draw the string
* @param font the font in which to draw the string
* @param glyphs the glyph string to draw
* @param x the x position of start of string (in pixels)
* @param y the y position of baseline (in pixels)
*/
function render(
draw: xft.Draw,
color: xft.Color,
font: Pango.Font,
glyphs: Pango.GlyphString,
x: number,
y: number,
): void;
/**
* Render a `PangoLayout` onto a XftDraw
* @param draw an XftDraw
* @param color the foreground color in which to draw the layout (may be overridden by color attributes)
* @param layout a `PangoLayout`
* @param x the X position of the left of the layout (in Pango units)
* @param y the Y position of the top of the layout (in Pango units)
*/
function render_layout(draw: xft.Draw, color: xft.Color, layout: Pango.Layout, x: number, y: number): void;
/**
* Render a `PangoLayoutLine` onto a XftDraw
* @param draw an XftDraw
* @param color the foreground color in which to draw the layout line (may be overridden by color attributes)
* @param line a `PangoLayoutLine`
* @param x the x position of start of string (in Pango units)
* @param y the y position of baseline (in Pango units)
*/
function render_layout_line(
draw: xft.Draw,
color: xft.Color,
line: Pango.LayoutLine,
x: number,
y: number,
): void;
/**
* Renders a `PangoGlyphString` onto a XftDraw, possibly
* transforming the layed-out coordinates through a transformation
* matrix.
*
* Note that the transformation matrix for `font` is not
* changed, so to produce correct rendering results, the `font`
* must have been loaded using a `PangoContext` with an identical
* transformation matrix to that passed in to this function.
* @param draw an XftDraw
* @param color the color in which to draw the glyphs
* @param matrix a `PangoMatrix`
* @param font the font in which to draw the string
* @param glyphs the glyph string to draw
* @param x the x position of the start of the string (in Pango units in user space coordinates)
* @param y the y position of the baseline (in Pango units in user space coordinates)
*/
function render_transformed(
draw: xft.Draw,
color: xft.Color,
matrix: Pango.Matrix | null,
font: Pango.Font,
glyphs: Pango.GlyphString,
x: number,
y: number,
): void;
/**
* Sets a function that will be called to do final configuration
* substitution on a #FcPattern before it is used to load
* the font. This function can be used to do things like set
* hinting and antialiasing options.
* @param display an X Display
* @param screen the screen number of a screen within @display
* @param func function to call to to do final config tweaking on #FcPattern objects.
*/
function set_default_substitute(display: xlib.Display, screen: number, func: SubstituteFunc): void;
/**
* Release any resources that have been cached for the
* combination of `display` and `screen`. Note that when the
* X display is closed, resources are released automatically,
* without needing to call this function.
* @param display an X display
* @param screen the screen number of a screen within @display
*/
function shutdown_display(display: xlib.Display, screen: number): void;
/**
* Call this function any time the results of the
* default substitution function set with
* pango_xft_set_default_substitute() change.
* That is, if your substitution function will return different
* results for the same input pattern, you must call this function.
* @param display an X Display
* @param screen the screen number of a screen within @display
*/
function substitute_changed(display: xlib.Display, screen: number): void;
interface SubstituteFunc {
(pattern: fontconfig.Pattern, data?: any | null): void;
}
namespace Font {
// Signal signatures
interface SignalSignatures extends PangoFc.Font.SignalSignatures {
'notify::fontmap': (pspec: GObject.ParamSpec) => void;
'notify::pattern': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends PangoFc.Font.ConstructorProps {}
}
/**
* `PangoXftFont` is an implementation of `PangoFcFont` using the Xft
* library for rendering. It is used in conjunction with `PangoXftFontMap`.
*/
class Font extends PangoFc.Font {
static $gtype: GObject.GType<Font>;
/**
* 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: Font.SignalSignatures;
// Constructors
constructor(properties?: Partial<Font.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect<K extends keyof Font.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Font.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Font.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Font.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Font.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Font.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Methods
/**
* Gets the glyph index for a given Unicode character
* for `font`.
*
* If you only want to determine whether the font has
* the glyph, use pango_xft_font_has_char().
*
* Use pango_fc_font_get_glyph() instead.
* @param wc Unicode codepoint to look up
* @returns the glyph index, or 0, if the Unicode character does not exist in the font.
*/
get_glyph(wc: string): number;
/**
* Returns the index of a glyph suitable for drawing `wc` as an
* unknown character.
*
* Use PANGO_GET_UNKNOWN_GLYPH() instead.
* @param wc the Unicode character for which a glyph is needed.
* @returns a glyph index into @font.
*/
get_unknown_glyph(wc: string): Pango.Glyph;
/**
* Determines whether `font` has a glyph for the codepoint `wc`.
*
* Use pango_fc_font_has_char() instead.
* @param wc Unicode codepoint to look up
* @returns %TRUE if @font has the requested codepoint.
*/
has_char(wc: string): boolean;
}
namespace FontMap {
// Signal signatures
interface SignalSignatures extends PangoFc.FontMap.SignalSignatures {
'notify::item-type': (pspec: GObject.ParamSpec) => void;
'notify::n-items': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps<A extends GObject.Object = GObject.Object>
extends PangoFc.FontMap.ConstructorProps,
Gio.ListModel.ConstructorProps {}
}
/**
* `PangoXftFontMap` is an implementation of `PangoFcFontMap` suitable for
* the Xft library as the renderer. It is used in to create fonts of
* type `PangoXftFont`.
*/
class FontMap<A extends GObject.Object = GObject.Object> extends PangoFc.FontMap implements Gio.ListModel<A> {
static $gtype: GObject.GType<FontMap>;
/**
* 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: FontMap.SignalSignatures;
// Constructors
constructor(properties?: Partial<FontMap.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect<K extends keyof FontMap.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, FontMap.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof FontMap.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, FontMap.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof FontMap.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<FontMap.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Inherited methods
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
* @returns the #GType of the items contained in @list.
*/
get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
* @returns the number of items in @list.
*/
get_n_items(): number;
/**
* Get the item at `position`.
*
* If `position` is greater than the number of items in `list,` %NULL is
* returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list.
*
* This function is meant to be used by language bindings in place
* of g_list_model_get_item().
*
* See also: g_list_model_get_n_items()
* @param position the position of the item to fetch
* @returns the object at @position.
*/
get_item(position: number): A | null;
/**
* Emits the #GListModel::items-changed signal on `list`.
*
* This function should only be called by classes implementing
* #GListModel. It has to be called after the internal representation
* of `list` has been updated, because handlers connected to this signal
* might query the new state of the list.
*
* Implementations must only make changes to the model (as visible to
* its consumer) in places that will not cause problems for that
* consumer. For models that are driven directly by a write API (such
* as #GListStore), changes can be reported in response to uses of that
* API. For models that represent remote data, changes should only be
* made from a fresh mainloop dispatch. It is particularly not
* permitted to make changes in response to a call to the #GListModel
* consumer API.
*
* Stated another way: in general, it is assumed that code making a
* series of accesses to the model via the API, without returning to the
* mainloop, and without calling other code, will continue to view the
* same contents of the model.
* @param position the position at which @list changed
* @param removed the number of items removed
* @param added the number of items added
*/
items_changed(position: number, removed: number, added: number): void;
/**
* Get the item at `position`. If `position` is greater than the number of
* items in `list,` %NULL is returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list. See g_list_model_get_n_items().
*
* The same #GObject instance may not appear more than once in a #GListModel.
* @param position the position of the item to fetch
*/
vfunc_get_item(position: number): A | null;
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
*/
vfunc_get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
*/
vfunc_get_n_items(): number;
/**
* Creates a binding between `source_property` on `source` and `target_property`
* on `target`.
*
* Whenever the `source_property` is changed the `target_property` is
* updated using the same value. For instance:
*
*
* ```c
* g_object_bind_property (action, "active", widget, "sensitive", 0);
* ```
*
*
* Will result in the "sensitive" property of the widget #GObject instance to be
* updated with the same value of the "active" property of the action #GObject
* instance.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well.
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. To remove the binding without affecting the
* `source` and the `target` you can just call g_object_unref() on the returned
* #GBinding instance.
*
* Removing the binding by calling g_object_unref() on it must only be done if
* the binding, `source` and `target` are only used from a single thread and it
* is clear that both `source` and `target` outlive the binding. Especially it
* is not safe to rely on this if the binding, `source` or `target` can be
* finalized from different threads. Keep another reference to the binding and
* use g_binding_unbind() instead to be on the safe side.
*
* A #GObject can have multiple bindings.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
): GObject.Binding;
/**
* Complete version of g_object_bind_property().
*
* Creates a binding between `source_property` on `source` and `target_property`
* on `target,` allowing you to set the transformation functions to be used by
* the binding.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well. The `transform_from` function is only used in case
* of bidirectional bindings, otherwise it will be ignored
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. This will release the reference that is
* being held on the #GBinding instance; if you want to hold on to the
* #GBinding instance, you will need to hold a reference to it.
*
* To remove the binding, call g_binding_unbind().
*
* A #GObject can have multiple bindings.
*
* The same `user_data` parameter will be used for both `transform_to`
* and `transform_from` transformation functions; the `notify` function will
* be called once, when the binding is removed. If you need different data
* for each transformation function, please use
* g_object_bind_property_with_closures() instead.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @param transform_to the transformation function from the @source to the @target, or %NULL to use the default
* @param transform_from the transformation function from the @target to the @source, or %NULL to use the default
* @param notify a function to call when disposing the binding, to free resources used by the transformation functions, or %NULL if not required
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property_full(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
transform_to?: GObject.BindingTransformFunc | null,
transform_from?: GObject.BindingTransformFunc | null,
notify?: GLib.DestroyNotify | null,
): GObject.Binding;
// Conflicted with GObject.Object.bind_property_full
bind_property_full(...args: never[]): any;
/**
* This function is intended for #GObject implementations to re-enforce
* a [floating][floating-ref] object reference. Doing this is seldom
* required: all #GInitiallyUnowneds are created with a floating reference
* which usually just needs to be sunken by calling g_object_ref_sink().
*/
force_floating(): void;
/**
* Increases the freeze count on `object`. If the freeze count is
* non-zero, the emission of "notify" signals on `object` is
* stopped. The signals are queued until the freeze count is decreased
* to zero. Duplicate notifications are squashed so that at most one
* #GObject::notify signal is emitted for each property modified while the
* object is frozen.
*
* This is necessary for accessors that modify multiple properties to prevent
* premature notification while the object is still being modified.
*/
freeze_notify(): void;
/**
* Gets a named field from the objects table of associations (see g_object_set_data()).
* @param key name of the key for that association
* @returns the data if found, or %NULL if no such data exists.
*/
get_data(key: string): any | null;
/**
* Gets a property of an object.
*
* The value can be:
* - an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
* - a GObject.Value initialized with the expected type of the property
* - a GObject.Value initialized with a type to which the expected type of the property can be transformed
*
* In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.
*
* Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.
* @param property_name The name of the property to get
* @param value Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type
*/
get_property(property_name: string, value: GObject.Value | any): any;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
get_qdata(quark: GLib.Quark): any | null;
/**
* Gets `n_properties` properties for an `object`.
* Obtained properties will be set to `values`. All properties must be valid.
* Warnings will be emitted and undefined behaviour may result if invalid
* properties are passed in.
* @param names the names of each property to get
* @param values the values of each property to get
*/
getv(names: string[], values: (GObject.Value | any)[]): void;
/**
* Checks whether `object` has a [floating][floating-ref] reference.
* @returns %TRUE if @object has a floating reference
*/
is_floating(): boolean;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param property_name the name of a property installed on the class of @object.
*/
notify(property_name: string): void;
/**
* Emits a "notify" signal for the property specified by `pspec` on `object`.
*
* This function omits the property name lookup, hence it is faster than
* g_object_notify().
*
* One way to avoid using g_object_notify() from within the
* class that registered the properties, and using g_object_notify_by_pspec()
* instead, is to store the GParamSpec used with
* g_object_class_install_property() inside a static array, e.g.:
*
*
* ```c
* typedef enum
* {
* PROP_FOO = 1,
* PROP_LAST
* } MyObjectProperty;
*
* static GParamSpec *properties[PROP_LAST];
*
* static void
* my_object_class_init (MyObjectClass *klass)
* {
* properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
* 0, 100,
* 50,
* G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
* g_object_class_install_property (gobject_class,
* PROP_FOO,
* properties[PROP_FOO]);
* }
* ```
*
*
* and then notify a change on the "foo" property with:
*
*
* ```c
* g_object_notify_by_pspec (self, properties[PROP_FOO]);
* ```
*
* @param pspec the #GParamSpec of a property installed on the class of @object.
*/
notify_by_pspec(pspec: GObject.ParamSpec): void;
/**
* Increases the reference count of `object`.
*
* Since GLib 2.56, if `GLIB_VERSION_MAX_ALLOWED` is 2.56 or greater, the type
* of `object` will be propagated to the return type (using the GCC typeof()
* extension), so any casting the caller needs to do on the return type must be
* explicit.
* @returns the same @object
*/
ref(): GObject.Object;
/**
* Increase the reference count of `object,` and possibly remove the
* [floating][floating-ref] reference, if `object` has a floating reference.
*
* In other words, if the object is floating, then this call "assumes
* ownership" of the floating reference, converting it to a normal
* reference by clearing the floating flag while leaving the reference
* count unchanged. If the object is not floating, then this call
* adds a new normal reference increasing the reference count by one.
*
* Since GLib 2.56, the type of `object` will be propagated to the return type
* under the same conditions as for g_object_ref().
* @returns @object
*/
ref_sink(): GObject.Object;
/**
* Releases all references to other objects. This can be used to break
* reference cycles.
*
* This function should only be called from object system implementations.
*/
run_dispose(): void;
/**
* Each object carries around a table of associations from
* strings to pointers. This function lets you set an association.
*
* If the object already had an association with that name,
* the old association will be destroyed.
*
* Internally, the `key` is converted to a #GQuark using g_quark_from_string().
* This means a copy of `key` is kept permanently (even after `object` has been
* finalized) so it is recommended to only use a small, bounded set of values
* for `key` in your program, to avoid the #GQuark storage growing unbounded.
* @param key name of the key
* @param data data to associate with that key
*/
set_data(key: string, data?: any | null): void;
/**
* Sets a property on an object.
* @param property_name The name of the property to set
* @param value The value to set the property to
*/
set_property(property_name: string, value: GObject.Value | any): void;
/**
* Remove a specified datum from the object's data associations,
* without invoking the association's destroy handler.
* @param key name of the key
* @returns the data if found, or %NULL if no such data exists.
*/
steal_data(key: string): any | null;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata() and removes the `data` from object
* without invoking its destroy() function (if any was
* set).
* Usually, calling this function is only required to update
* user data pointers with a destroy notifier, for example:
*
* ```c
* void
* object_add_to_user_list (GObject *object,
* const gchar *new_string)
* {
* // the quark, naming the object data
* GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
* // retrieve the old string list
* GList *list = g_object_steal_qdata (object, quark_string_list);
*
* // prepend new string
* list = g_list_prepend (list, g_strdup (new_string));
* // this changed 'list', so we need to set it again
* g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
* }
* static void
* free_string_list (gpointer data)
* {
* GList *node, *list = data;
*
* for (node = list; node; node = node->next)
* g_free (node->data);
* g_list_free (list);
* }
* ```
*
* Using g_object_get_qdata() in the above example, instead of
* g_object_steal_qdata() would have left the destroy function set,
* and thus the partial string list would have been freed upon
* g_object_set_qdata_full().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
steal_qdata(quark: GLib.Quark): any | null;
/**
* Reverts the effect of a previous call to
* g_object_freeze_notify(). The freeze count is decreased on `object`
* and when it reaches zero, queued "notify" signals are emitted.
*
* Duplicate notifications for each property are squashed so that at most one
* #GObject::notify signal is emitted for each property, in the reverse order
* in which they have been queued.
*
* It is an error to call this function when the freeze count is zero.
*/
thaw_notify(): void;
/**
* Decreases the reference count of `object`. When its reference count
* drops to 0, the object is finalized (i.e. its memory is freed).
*
* If the pointer to the #GObject may be reused in future (for example, if it is
* an instance variable of another object), it is recommended to clear the
* pointer to %NULL rather than retain a dangling pointer to a potentially
* invalid #GObject instance. Use g_clear_object() for this.
*/
unref(): void;
/**
* This function essentially limits the life time of the `closure` to
* the life time of the object. That is, when the object is finalized,
* the `closure` is invalidated by calling g_closure_invalidate() on
* it, in order to prevent invocations of the closure with a finalized
* (nonexisting) object. Also, g_object_ref() and g_object_unref() are
* added as marshal guards to the `closure,` to ensure that an extra
* reference count is held on `object` during invocation of the
* `closure`. Usually, this function will be called on closures that
* use this `object` as closure data.
* @param closure #GClosure to watch
*/
watch_closure(closure: GObject.Closure): void;
/**
* the `constructed` function is called by g_object_new() as the
* final step of the object creation process. At the point of the call, all
* construction properties have been set on the object. The purpose of this
* call is to allow for object initialisation steps that can only be performed
* after construction properties have been set. `constructed` implementors
* should chain up to the `constructed` call of their parent class to allow it
* to complete its initialisation.
*/
vfunc_constructed(): void;
/**
* emits property change notification for a bunch
* of properties. Overriding `dispatch_properties_changed` should be rarely
* needed.
* @param n_pspecs
* @param pspecs
*/
vfunc_dispatch_properties_changed(n_pspecs: number, pspecs: GObject.ParamSpec): void;
/**
* the `dispose` function is supposed to drop all references to other
* objects, but keep the instance otherwise intact, so that client method
* invocations still work. It may be run multiple times (due to reference
* loops). Before returning, `dispose` should chain up to the `dispose` method
* of the parent class.
*/
vfunc_dispose(): void;
/**
* instance finalization function, should finish the finalization of
* the instance begun in `dispose` and chain up to the `finalize` method of the
* parent class.
*/
vfunc_finalize(): void;
/**
* the generic getter for all properties of this type. Should be
* overridden for every type with properties.
* @param property_id
* @param value
* @param pspec
*/
vfunc_get_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param pspec
*/
vfunc_notify(pspec: GObject.ParamSpec): void;
/**
* the generic setter for all properties of this type. Should be
* overridden for every type with properties. If implementations of
* `set_property` don't emit property change notification explicitly, this will
* be done implicitly by the type system. However, if the notify signal is
* emitted explicitly, the type system will not emit it a second time.
* @param property_id
* @param value
* @param pspec
*/
vfunc_set_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to.
* @param id Handler ID of the handler to be disconnected
*/
disconnect(id: number): void;
/**
* Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.
* @param properties Object containing the properties to set
*/
set(properties: { [key: string]: any }): void;
/**
* Blocks a handler of an instance so it will not be called during any signal emissions
* @param id Handler ID of the handler to be blocked
*/
block_signal_handler(id: number): void;
/**
* Unblocks a handler so it will be called again during any signal emissions
* @param id Handler ID of the handler to be unblocked
*/
unblock_signal_handler(id: number): void;
/**
* Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked.
* @param detailedName Name of the signal to stop emission of
*/
stop_emission_by_name(detailedName: string): void;
}
namespace Renderer {
// Signal signatures
interface SignalSignatures extends Pango.Renderer.SignalSignatures {
'notify::display': (pspec: GObject.ParamSpec) => void;
'notify::screen': (pspec: GObject.ParamSpec) => void;
}
// Constructor properties interface
interface ConstructorProps extends Pango.Renderer.ConstructorProps {
display: any;
screen: number;
}
}
/**
* `PangoXftRenderer` is a subclass of `PangoRenderer` used for rendering
* with Pango's Xft backend. It can be used directly, or it can be
* further subclassed to modify exactly how drawing of individual
* elements occurs.
*/
class Renderer extends Pango.Renderer {
static $gtype: GObject.GType<Renderer>;
// Properties
set display(val: any);
set screen(val: number);
/**
* 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: Renderer.SignalSignatures;
// Constructors
constructor(properties?: Partial<Renderer.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](display: xlib.Display, screen: number): Renderer;
// Signals
connect<K extends keyof Renderer.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Renderer.SignalSignatures[K]>,
): number;
connect(signal: string, callback: (...args: any[]) => any): number;
connect_after<K extends keyof Renderer.SignalSignatures>(
signal: K,
callback: GObject.SignalCallback<this, Renderer.SignalSignatures[K]>,
): number;
connect_after(signal: string, callback: (...args: any[]) => any): number;
emit<K extends keyof Renderer.SignalSignatures>(
signal: K,
...args: GObject.GjsParameters<Renderer.SignalSignatures[K]> extends [any, ...infer Q] ? Q : never
): void;
emit(signal: string, ...args: any[]): void;
// Virtual methods
/**
* draw the specified glyphs using
* the current foreground color and other foreground
* attributes
* @param xft_font
* @param glyphs
* @param n_glyphs
*/
vfunc_composite_glyphs(xft_font: xft.Font, glyphs: xft.GlyphSpec, n_glyphs: number): void;
/**
* draw the specified trapezoids using
* the current color and other attributes for `part`
* @param part
* @param trapezoids
* @param n_trapezoids
*/
vfunc_composite_trapezoids(part: Pango.RenderPart, trapezoids: xlib.XTrapezoid, n_trapezoids: number): void;
// Methods
/**
* Sets the default foreground color for a XftRenderer.
* @param default_color the default foreground color
*/
set_default_color(default_color: Pango.Color): void;
/**
* Sets the XftDraw object that the renderer is drawing to.
* The renderer must not be currently active.
* @param draw a XftDraw
*/
set_draw(draw: xft.Draw): void;
}
type RendererClass = typeof Renderer;
abstract class RendererPrivate {
static $gtype: GObject.GType<RendererPrivate>;
// Constructors
_init(...args: any[]): void;
}
/**
* 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 PangoXft;
}
declare module 'gi://PangoXft' {
import PangoXft10 from 'gi://PangoXft?version=1.0';
export default PangoXft10;
}
// END

14139
home/ags/files/@girs/soup-3.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

178
home/ags/files/@girs/system.d.ts vendored Normal file
View File

@ -0,0 +1,178 @@
/// <reference path="./gobject-2.0.d.ts" />
declare module 'system' {
import type GObject from 'gi://GObject?version=2.0';
/**
* This property contains the name of the script as it was invoked from the command
* line. In C and other languages, this information is contained in the first element of
* the platform's equivalent of argv, but GJS's ARGV only contains the
* subsequent command-line arguments. In other words, `ARGV[0]` in GJS is the same as `argv[1]` in C.
* @version Gjs 1.68
*/
export const programInvocationName: string;
/**
* This property contains version information about GJS.
*/
export const version: number;
/**
* The full path of the executed program.
* @version Gjs 1.68
*/
export const programPath: string | null;
/**
* A list of arguments passed to the current process.
* This is effectively an alias for the global `ARGV`, which is misleading in that
* it is not equivalent to the platform'`s` argv.
* @version Gjs 1.68
*/
export const programArgs: string[];
/**
* Return the memory address of any object as a string.
* This is the address of memory being managed by the JavaScript engine, which may
* represent a wrapper around memory elsewhere.
* **Caution**, don't use this as a unique identifier!
* JavaScript's garbage collector can move objects around in memory, or
* deduplicate identical objects, so this value may change during the execution
* of a program.
* @param o Any Object
* @returns A hexadecimal string (e.g. `0xb4f170f0`)
*/
export function addressOf(o: object): string;
/**
* Return the memory address of any GObject as a string.
* See also {@link addressOf}
* @param o Any {@link GObject.Object}-derived instance
* @returns A hexadecimal string (e.g. `0xb4f170f0`)
* @version Gjs 1.58
*/
export function addressOfGObject(o: GObject.Object): string;
/**
* Inserts a breakpoint instruction into the code.
* **Warning**: Using this function in code run outside of GDB will abort the process.
* With `System.breakpoint()` calls in your code, a GJS program can be debugged by
* running it in GDB:
* ```bash
* gdb --args gjs script.js
* ```
* Once GDB has started, you can start the program with run. When the debugger
* hits a breakpoint it will pause execution of the process and return to the
* prompt. You can then use the standard `backtrace` command to print a C++ stack
* trace, or use `call gjs_dumpstack()` to print a JavaScript stack trace:
* ```bash
* (gdb) run
* tarting program: /usr/bin/gjs -m script.js
* ...
* Thread 1 "gjs" received signal SIGTRAP, Trace/breakpoint trap.
* (gdb) call gjs_dumpstack()
* == Stack trace for context 0x5555555b7180 ==
* #0 555555640548 i file:///path/to/script.js:4 (394b8c3cc060 @ 12)
* #1 5555556404c8 i file:///path/to/script.js:7 (394b8c3cc0b0 @ 6)
* #2 7fffffffd3a0 b self-hosted:2408 (394b8c3a9650 @ 753)
* #3 5555556403e8 i self-hosted:2355 (394b8c3a9600 @ 375)
* (gdb)
* ```
* To continue executing the program, you can use the `continue` (or `cont`) to
* resume the process and debug further.
* Remember that if you run the program outside of GDB, it will abort at the
* breakpoint, so make sure to remove any calls to `System.breakpoint()` when
* you're done debugging.
*/
export function breakpoint(): void;
/**
* Clears the timezone cache.
* This is a workaround for SpiderMonkey Bug [#1004706](https://bugzilla.mozilla.org/show_bug.cgi?id=1004706).
*/
export function clearDateCaches(): void;
/** Runs the garbage collector */
export function gc(): void;
/**
* Return the reference count of any GObject-derived type. When an object's
* reference count is zero, it is cleaned up and erased from memory.
* @param o A {@link GObject.Object}
*/
export function refcount(o: GObject.Object): number;
/**
* See also: The [heapgraph](https://gitlab.gnome.org/GNOME/gjs/blob/HEAD/tools/heapgraph.md) utility in the GJS repository.
* Dump a representation of internal heap memory. If `path` is not given, GJS will
* write the contents to `stdout`.
* @param path Optional file path
*/
export function dumpHeap(path?: string): void;
/**
* Dump internal garbage collector statistics. If `path` is not given, GJS will
* write the contents to `stdout`.
* @param path Optional file path
* @version Gjs 1.70
* @example Output:
* ```json
* {
* "gcBytes": 794624,
* "gcMaxBytes": 4294967295,
* "mallocBytes": 224459,
* "gcIsHighFrequencyMode": true,
* "gcNumber": 1,
* "majorGCCount": 1,
* "minorGCCount": 1,
* "sliceCount": 1,
* "zone": {
* "gcBytes": 323584,
* "gcTriggerBytes": 42467328,
* "gcAllocTrigger": 36097228.8,
* "mallocBytes": 120432,
* "mallocTriggerBytes": 59768832,
* "gcNumber": 1
* }
* }
* ```
*
*/
export function dumpMemoryInfo(path?: string): void;
/**
* This works the same as C's exit() function; exits the program, passing a
* certain error code to the shell. The shell expects the error code to be zero if
* there was no error, or non-zero (any value you please) to indicate an error.
*
* This value is used by other tools such as `make`; if `make` calls a program that
* returns a non-zero error code, then `make` aborts the build.
* @param code An exit code
*/
export function exit(code: number): never;
/**
* The System module provides common low-level facilities such as access to
* process arguments and exit(), as well as a number of useful functions and
* properties for debugging.
*
* Note that the majority of the functions and properties in this module should not
* be used in normal operation of a GJS application.
*/
const System: {
programInvocationName: typeof programInvocationName;
version: typeof version;
programPath: typeof programPath;
programArgs: typeof programArgs;
addressOf: typeof addressOf;
addressOfGObject: typeof addressOfGObject;
breakpoint: typeof breakpoint;
clearDateCaches: typeof clearDateCaches;
gc: typeof gc;
refcount: typeof refcount;
dumpHeap: typeof dumpHeap;
dumpMemoryInfo: typeof dumpMemoryInfo;
exit: typeof exit;
};
export default System;
}

13648
home/ags/files/@girs/vulkan-1.0.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

52
home/ags/files/@girs/win32-1.0.d.ts vendored Normal file
View File

@ -0,0 +1,52 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://win32?version=1.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace win32 {
/**
* win32-1.0
*/
class MSG {
static $gtype: GObject.GType<MSG>;
// Constructors
_init(...args: any[]): void;
}
type HWND = number;
type HICON = number;
type HCURSOR = number;
type HGDIOBJ = number;
/**
* 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 win32;
}
declare module 'gi://win32' {
import Win3210 from 'gi://win32?version=1.0';
export default Win3210;
}
// END

8653
home/ags/files/@girs/wp-0.5.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

48
home/ags/files/@girs/xfixes-4.0.d.ts vendored Normal file
View File

@ -0,0 +1,48 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://xfixes?version=4.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace xfixes {
/**
* xfixes-4.0
*/
class XserverRegion {
static $gtype: GObject.GType<XserverRegion>;
// Constructors
_init(...args: any[]): void;
}
/**
* 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 xfixes;
}
declare module 'gi://xfixes' {
import Xfixes40 from 'gi://xfixes?version=4.0';
export default Xfixes40;
}
// END

75
home/ags/files/@girs/xft-2.0.d.ts vendored Normal file
View File

@ -0,0 +1,75 @@
/// <reference path="./xlib-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://xft?version=2.0' {
// Module dependencies
import type xlib from 'gi://xlib?version=2.0';
import type GObject from 'gi://GObject?version=2.0';
export namespace xft {
/**
* xft-2.0
*/
function init(): void;
class Color {
static $gtype: GObject.GType<Color>;
// Constructors
_init(...args: any[]): void;
}
class Draw {
static $gtype: GObject.GType<Draw>;
// Constructors
_init(...args: any[]): void;
}
class Font {
static $gtype: GObject.GType<Font>;
// Constructors
_init(...args: any[]): void;
}
class GlyphSpec {
static $gtype: GObject.GType<GlyphSpec>;
// Constructors
_init(...args: any[]): void;
}
/**
* 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 xft;
}
declare module 'gi://xft' {
import Xft20 from 'gi://xft?version=2.0';
export default Xft20;
}
// END

134
home/ags/files/@girs/xlib-2.0.d.ts vendored Normal file
View File

@ -0,0 +1,134 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://xlib?version=2.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace xlib {
/**
* xlib-2.0
*/
function open_display(): void;
class Display {
static $gtype: GObject.GType<Display>;
// Constructors
_init(...args: any[]): void;
}
class Screen {
static $gtype: GObject.GType<Screen>;
// Constructors
_init(...args: any[]): void;
}
class Visual {
static $gtype: GObject.GType<Visual>;
// Constructors
_init(...args: any[]): void;
}
class XConfigureEvent {
static $gtype: GObject.GType<XConfigureEvent>;
// Constructors
_init(...args: any[]): void;
}
class XImage {
static $gtype: GObject.GType<XImage>;
// Constructors
_init(...args: any[]): void;
}
class XFontStruct {
static $gtype: GObject.GType<XFontStruct>;
// Constructors
_init(...args: any[]): void;
}
class XTrapezoid {
static $gtype: GObject.GType<XTrapezoid>;
// Constructors
_init(...args: any[]): void;
}
class XVisualInfo {
static $gtype: GObject.GType<XVisualInfo>;
// Constructors
_init(...args: any[]): void;
}
class XWindowAttributes {
static $gtype: GObject.GType<XWindowAttributes>;
// Constructors
_init(...args: any[]): void;
}
class XEvent {
static $gtype: GObject.GType<XEvent>;
// Constructors
_init(...args: any[]): void;
}
type Atom = number;
type Colormap = number;
type Cursor = number;
type Drawable = number;
type GC = any;
type KeyCode = number;
type KeySym = number;
type Picture = number;
type Time = number;
type VisualID = number;
type Window = number;
type XID = number;
type Pixmap = number;
/**
* 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 xlib;
}
declare module 'gi://xlib' {
import Xlib20 from 'gi://xlib?version=2.0';
export default Xlib20;
}
// END

96
home/ags/files/@girs/xrandr-1.3.d.ts vendored Normal file
View File

@ -0,0 +1,96 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* 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://xrandr?version=1.3' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace xrandr {
/**
* xrandr-1.3
*/
class ScreenSize {
static $gtype: GObject.GType<ScreenSize>;
// Constructors
_init(...args: any[]): void;
}
class ScreenChangeNotifyEvent {
static $gtype: GObject.GType<ScreenChangeNotifyEvent>;
// Constructors
_init(...args: any[]): void;
}
class NotifyEvent {
static $gtype: GObject.GType<NotifyEvent>;
// Constructors
_init(...args: any[]): void;
}
class ScreenResources {
static $gtype: GObject.GType<ScreenResources>;
// Constructors
_init(...args: any[]): void;
}
class OutputChangeNotifyEvent {
static $gtype: GObject.GType<OutputChangeNotifyEvent>;
// Constructors
_init(...args: any[]): void;
}
class CrtcChangeNotifyEvent {
static $gtype: GObject.GType<CrtcChangeNotifyEvent>;
// Constructors
_init(...args: any[]): void;
}
class OutputPropertyNotifyEvent {
static $gtype: GObject.GType<OutputPropertyNotifyEvent>;
// Constructors
_init(...args: any[]): void;
}
/**
* 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 xrandr;
}
declare module 'gi://xrandr' {
import Xrandr13 from 'gi://xrandr?version=1.3';
export default Xrandr13;
}
// END

View File

@ -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 (
<box>
{bind(tray, "items").as((items) =>
items.map((item) => {
if (item.iconThemePath) App.add_icons(item.iconThemePath);
<For each={items}>
{(item: Tray.TrayItem) => {
if (item.iconThemePath) app.add_icons(item.iconThemePath);
return (
<menubutton
className="systray"
tooltipMarkup={bind(item, "tooltipMarkup")}
usePopover={false}
actionGroup={bind(item, "actionGroup").as(ag => ["dbusmenu", ag])}
menuModel={bind(item, "menuModel")}>
<icon gicon={bind(item, "gicon")} className="systray-item" />
$={(self) => init(self, item)}
class="systray"
tooltipMarkup={createBinding(item, "tooltipMarkup")}
menuModel={createBinding(item, "menuModel")}>
<image gicon={item.gicon} class="systray-item" />
</menubutton>
);
}),
)}
}}
</For>
</box>
);
}
function Left() : JSX.Element {
function Left(): JSX.Element {
return (
<box hexpand halign={Gtk.Align.START}>
<Clients />
@ -42,7 +53,7 @@ function Left() : JSX.Element {
);
}
function Center() : JSX.Element {
function Center(): JSX.Element {
return (
<box>
<Workspaces />
@ -51,85 +62,77 @@ function Center() : JSX.Element {
}
function Date({ format = "%Y-%m-%d" }): JSX.Element {
const time = Variable<string>("").poll(60000, () =>
GLib.DateTime.new_now_local().format(format)!)
const time = createPoll<string>("", 60000, () => GLib.DateTime.new_now_local().format(format)!)
return <button
className="item"
onDestroy={() => time.drop()}
label={time()}
class="item"
label={time}
onClicked={() => execAsync(['gnome-calendar'])}
/>
}
function Time({ format = "%H:%M:%S" }): JSX.Element {
const time = Variable<string>("").poll(1000, () =>
GLib.DateTime.new_now_local().format(format)!)
const time = createPoll<string>("", 1000, () => GLib.DateTime.new_now_local().format(format)!)
return <label
className="item blue"
onDestroy={() => time.drop()}
label={time()}
class="item blue"
label={time}
/>
}
function Temp(): JSX.Element {
let label = Variable<string>("N/A");
let [label, _setlabel] = createState<string>("N/A");
if (sensorsAvailable) {
label = Variable<string>("").poll(5000, 'sensors', out => {
label = createPoll<string>("", 3000, 'sensors', out => {
const match = out.split('\n').find(line => line.includes('Tctl') || line.includes('Package'))?.match(/[0-9.]*°C/);
return match ? match[0] : "N/A";
})
}
return <label
className="item blue"
onDestroy={() => label.drop()}
label={label()}
class="item blue"
label={label}
/>
}
function Memory(): JSX.Element {
const memory = Variable<string>("").poll(2000, "free", out => {
const memory = createPoll<string>("", 2000, "free", out => {
const line = out.split('\n').find(line => line.includes('Mem:'));
if (!line) return "N/A";
const split = line.split(/\s+/).map(Number);
return (split[2] / 1000000).toFixed(2) + "GB";
});
return <label
className="item blue"
onDestroy={() => memory.drop()}
label={memory()}
class="item blue"
label={memory}
/>
}
function ClockSpeed(): JSX.Element {
const command = 'bash -c "cat /proc/cpuinfo | grep \\"MHz\\" | awk \'{print \\$4}\' | sort -n | tail -1 | awk \'{printf \\"%.2fGHz\\", \\$1/1000}\'"';
const speed = Variable<string>("").poll(5000, command)
const speed = createPoll<string>("", 1000, command, out => out)
return <label
className="item"
onDestroy={() => speed.drop()}
label={speed()}
class="item"
label={speed}
/>
}
function CPU(): JSX.Element {
const usage = Variable<string>("").poll(2000, "top -b -n 1", out => {
const usage = createPoll<string>("", 2000, "top -b -n 1", out => {
const line = out.split("\n").find(line => line.includes('Cpu(s)'));
if (!line) return "N/A";
return line.split(/\s+/)[1].replace(',', '.').toString() + "%";
});
return <box className="item">
<icon icon="speedometer" css="margin-right: 0.7em;" />
return <box class="item">
<image iconName="speedometer" css="margin-right: 0.7em;" />
<label
onDestroy={() => usage.drop()}
label={usage()}
label={usage}
/>
</box>
}
function Right() : JSX.Element {
function Right() {
return (
<box className="right" hexpand halign={Gtk.Align.END} spacing={6}>
<box class="right" hexpand halign={Gtk.Align.END} spacing={6}>
<Icons />
<Volume />
<CPU />
@ -144,25 +147,26 @@ function Right() : JSX.Element {
function BatteryIcon(): JSX.Element {
if (battery.get_state() == 0) return <box />;
return <button className="battery-item" onClicked={() => execAsync(['gnome-power-statistics'])}>
let batteryPercentage = createBinding(battery, "percentage");
return <button class="battery-item" onClicked={() => execAsync(['gnome-power-statistics'])}>
<box>
{
bind(battery, "percentage").as((percentage) => {
const thresholds = [...Array(11).keys()].map( i => i * 10);
<With value={batteryPercentage}>
{(percentage) => {
const thresholds = [...Array(11).keys()].map(i => i * 10);
const icon = thresholds.find(threshold => threshold >= percentage * 100)
const charging_name = battery.percentage >= 0.99 ? "charged" : "charging"
return <icon
icon={battery.charging? `battery-level-${icon}-${charging_name}-symbolic` : `battery-level-${icon}-symbolic`}
return <image
iconName={battery.charging ? `battery-level-${icon}-${charging_name}-symbolic` : `battery-level-${icon}-symbolic`}
/>
})
}
}}
</With>
</box>
</button>
}
function Icons() {
return (
<box className="item icon-group">
<box class="item icon-group">
<SysTray />
<BatteryIcon />
</box>
@ -173,7 +177,7 @@ function Volume(): JSX.Element {
if (!wirePlumber) return <box />;
const audio = wirePlumber.audio;
const icon = bind(audio.default_speaker, "volume").as((volume) => {
const icon = createBinding(audio.default_speaker, "volume").as((volume) => {
const vol = volume * 100
const icon = [
[101, 'overamplified'],
@ -184,49 +188,63 @@ function Volume(): JSX.Element {
].find(([threshold]) => Number(threshold) <= vol)?.[1]
return `audio-volume-${icon}-symbolic`
});
const css = bind(audio.default_speaker, "mute").as((mute) => {
return mute ? "margin-left:0;": "margin-left: 0.7em;"
const css = createBinding(audio.default_speaker, "mute").as((mute) => {
return mute ? "margin-left:0;" : "margin-left: 0.7em;"
});
let volume = createBinding(audio.default_speaker, "volume");
let mute = createBinding(audio.default_speaker, "mute");
return (
<button className="item blue" onClicked={() => audio.default_speaker.mute = !audio.default_speaker.mute}>
<button class="item blue" onClicked={() => audio.default_speaker.mute = !audio.default_speaker.mute}>
<box>
<icon icon={icon} />
{
bind(audio.default_speaker, "volume").as((volume) => <box>
{
bind(audio.default_speaker, "mute").as((mute) => <box>
{
<label label={mute? "": `${Math.floor(volume * 100)}%`} css={css} />
}
</box>)
}
</box>)
}
<image iconName={icon} />
<With value={volume}>
{(vol) => <box>
<With value={mute}>
{(muted) => {
return (
<label label={muted ? "" : `${Math.floor(vol * 100)}%`} css={css} />
)
}}
</With>
</box>}
</With>
</box>
</button>
);
}
function Workspaces() : JSX.Element {
function Workspaces(): JSX.Element {
const hyprland = Hyprland.get_default();
let workspaces = createBinding(hyprland, "workspaces");
return (
<box className="workspaces">
{bind(hyprland, "workspaces").as((wss) =>
<box class="workspaces">
<With value={workspaces}>
{(wss: Array<Hyprland.Workspace>) => (
<box>
{bind(hyprland, "focusedMonitor").as((fm) =>
wss.sort((a, b) => a.id - b.id)
.filter(ws => ws && ws.get_monitor() && ws.get_monitor().get_id() === fm.get_id())
.map((ws) => (
<With value={createBinding(hyprland, "focusedMonitor")}>
{(fm: Hyprland.Monitor) => {
let filtered_wss = new Accessor(() => wss.sort((a, b) => a.id - b.id)
.filter(ws => ws && ws.get_monitor() && ws.get_monitor().get_id() === fm.get_id()))
return (
<box>
<For each={filtered_wss}>
{(ws: Hyprland.Workspace, _index) => (
<button
className={bind(hyprland, "focusedWorkspace").as((fw) => ws === fw ? "focused" : "",)}
class={createBinding(hyprland, "focusedWorkspace").as((fw) => ws === fw ? "focused" : "",)}
onClicked={() => ws.focus()}
>
{`${ws.id}`.slice(-1)}
</button>
)))}
)}
</For>
</box>
)
}}
</With>
</box>
)}
</With>
</box>
);
}
@ -235,59 +253,66 @@ function shorten(title: string) {
return title.length > 40 ? title.slice(0, 20) + "..." : title
}
function Clients() : JSX.Element {
function Clients(): JSX.Element {
const hyprland = Hyprland.get_default();
let clients = createBinding(hyprland, "clients")
return (
<box>
{
bind(hyprland, "focusedWorkspace").as(fw => (
<box className="clients">
{
bind(hyprland, "clients").as(cls =>
cls
<With value={createBinding(hyprland, "focusedWorkspace")}>
{(fw: Hyprland.Workspace) => (
<box class="clients">
<With value={clients}>
{(cls: Array<Hyprland.Client>) => {
let filtered_clients = new Accessor(() => cls
.sort((a, b) => a.pid - b.pid)
.filter(cl => !cl.title.includes("rofi"))
.filter(cl => fw && cl.get_workspace().get_id() === fw.get_id())
.map(cl => (
<box
className={bind(hyprland, "focusedClient").as(a => a && a.address === cl.address ? "focused" : "unfocused")}
>
<icon
icon={getIconName(cl)}
className="app-icon"
/>
<label label={bind(cl, 'title').as(title => shorten(title))} />
</box>
)
)
)
.filter(cl => fw && cl.get_workspace().get_id() === fw.get_id()))
}
return (
<box>
<For each={filtered_clients}>
{(cl: Hyprland.Client, _index) => (
<box
class={createBinding(hyprland, "focusedClient").as(a => a && a.address === cl.address ? "focused" : "unfocused")}
>
<image
iconName={getIconName(cl)}
class="app-icon"
/>
<label label={createBinding(cl, 'title').as(title => shorten(title))} />
</box>
)}
</For>
</box>
)
}
}
</With>
</box>
)
}
</box>
</With >
</box >
);
}
export default function Bar(gdkmonitor: Gdk.Monitor, scaleFactor: number = 1): Widget.Window {
return new Widget.Window({
gdkmonitor,
css: "font-size: " + scaleFactor + "em;",
exclusivity: Astal.Exclusivity.EXCLUSIVE,
anchor: Astal.WindowAnchor.TOP | Astal.WindowAnchor.LEFT | Astal.WindowAnchor.RIGHT,
application: App,
className: "Bar",
name: "top-bar",
setup: self => self.connect("destroy", () => {
print("Detroying bar");
App.remove_window(self);
}),
child: <centerbox className="window-box">
<Left />
<Center />
<Right />
export default function Bar(gdkmonitor: Gdk.Monitor, scaleFactor: number = 1) {
console.log("Creating Bar on monitor:", gdkmonitor);
return (
<window
visible
gdkmonitor={gdkmonitor}
css={"font-size: " + scaleFactor + "em;"}
exclusivity={Astal.Exclusivity.EXCLUSIVE}
anchor={Astal.WindowAnchor.TOP | Astal.WindowAnchor.LEFT | Astal.WindowAnchor.RIGHT}
application={app}
class="Bar"
name="top-bar" >
<centerbox class="window-box">
<Left $type="start" />
<Center $type="center" />
<Right $type="end" />
</centerbox>
})
</window >
)
}

View File

@ -1,4 +1,4 @@
import { App, Gdk, Widget } from "astal/gtk3"
import app from "ags/gtk4/app"
import style from "./style.scss"
import Bar from "./Bar"
import Hyprland from "gi://AstalHyprland";
@ -22,21 +22,21 @@ function find_main_monitor(): Hyprland.Monitor {
}
function register_windows(monitor: Hyprland.Monitor) {
let gtkMonitor = App.get_monitors()[0].get_display().get_monitor_at_point(monitor.get_x(), monitor.get_y())
let scale = (monitor.get_width() >= 3000)? 1.2: 1
let gtkMonitor = app.get_monitors()[0]
let scale = (monitor.get_width() >= 3000) ? 1.2 : 1
Bar(gtkMonitor, scale)
NotificationPopups(gtkMonitor)
NotificationPopups()
}
function switch_to_best_monitor() {
let mainMonitor = find_main_monitor()
for (var wd of App.get_windows()) {
for (var wd of app.get_windows()) {
wd.destroy();
}
register_windows(mainMonitor);
}
hyprland.connect("monitor-added", (_, monitor) => {
hyprland.connect("monitor-added", (_, _monitor: Hyprland.Monitor) => {
switch_to_best_monitor()
})
@ -44,7 +44,7 @@ hyprland.connect("monitor-removed", () => {
switch_to_best_monitor()
})
App.start({
app.start({
css: style,
iconTheme: "Papirus",
main() {

1
home/ags/files/node_modules/ags generated vendored Symbolic link
View File

@ -0,0 +1 @@
/home/user/.local/share/ags/js

View File

@ -5,7 +5,7 @@
}
// https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/gtk/theme/Adwaita/_colors-public.scss
$fg-color: #{"@theme_fg_color"};
$fg-color: #{"@theme_bg_color"};
$bg-color: #1f2430;
$error: red;
@ -13,78 +13,63 @@ window.NotificationPopups {
all: unset;
}
eventbox.Notification {
&:first-child>box {
margin-top: 1rem;
}
&:last-child>box {
margin-bottom: 1rem;
}
// eventboxes can not take margins so we style its inner box instead
>box {
min-width: 400px;
.Notification {
border-radius: 13px;
background-color: #1f2430;
margin: .5rem 1rem .5rem 1rem;
box-shadow: 2px 3px 8px 0 gtkalpha(black, .4);
border: 1pt solid gtkalpha($fg-color, .03);
}
background-color: $bg-color;
margin: 0.5rem 1rem 0.5rem 1rem;
box-shadow: 2px 3px 8px 0 gtkalpha(black, 0.4);
border: 1pt solid gtkalpha($fg-color, 0.03);
&.critical>box {
border: 1pt solid gtkalpha($error, .4);
&.critical {
border: 1pt solid gtkalpha($error, 0.4);
.header {
.app-name {
color: gtkalpha($error, .8);
color: gtkalpha($error, 0.8);
}
.app-icon {
color: gtkalpha($error, .6);
color: gtkalpha($error, 0.6);
}
}
}
.header {
padding: .5rem;
padding: 0.5rem;
color: gtkalpha($fg-color, 0.5);
.app-icon {
margin: 0 .4rem;
margin: 0 0.4rem;
}
.app-name {
margin-right: .3rem;
margin-right: 0.3rem;
font-weight: bold;
&:first-child {
margin-left: .4rem;
margin-left: 0.4rem;
}
}
.time {
margin: 0 .4rem;
margin: 0 0.4rem;
}
button {
padding: .2rem;
padding: 0.2rem;
min-width: 0;
min-height: 0;
}
}
separator {
margin: 0 .4rem;
background-color: gtkalpha($fg-color, .1);
margin: 0 0.4rem;
background-color: gtkalpha($fg-color, 0.1);
}
.content {
margin: 1rem;
margin-top: .5rem;
margin-top: 0.5rem;
.summary {
font-size: 1.2em;
@ -96,8 +81,8 @@ eventbox.Notification {
}
.image {
border: 1px solid gtkalpha($fg-color, .02);
margin-right: .5rem;
border: 1px solid gtkalpha($fg-color, 0.02);
margin-right: 0.5rem;
border-radius: 9px;
min-width: 100px;
min-height: 100px;
@ -111,7 +96,7 @@ eventbox.Notification {
margin-top: 0;
button {
margin: 0 .3rem;
margin: 0 0.3rem;
&:first-child {
margin-left: 0;

View File

@ -1,107 +1,124 @@
import { GLib } from "astal"
import { Gtk, Astal } from "astal/gtk3"
import { type EventBox } from "astal/gtk3/widget"
import Notifd from "gi://AstalNotifd"
import Gtk from "gi://Gtk?version=4.0"
import Gdk from "gi://Gdk?version=4.0"
import Adw from "gi://Adw"
import GLib from "gi://GLib"
import AstalNotifd from "gi://AstalNotifd"
import Pango from "gi://Pango"
import { timeout } from "ags/time"
const isIcon = (icon: string) =>
!!Astal.Icon.lookup_icon(icon)
function isIcon(icon?: string | null) {
const iconTheme = Gtk.IconTheme.get_for_display(Gdk.Display.get_default()!)
return icon && iconTheme.has_icon(icon)
}
const fileExists = (path: string) =>
GLib.file_test(path, GLib.FileTest.EXISTS)
function fileExists(path: string) {
return GLib.file_test(path, GLib.FileTest.EXISTS)
}
const time = (time: number, format = "%H:%M") => GLib.DateTime
.new_from_unix_local(time)
.format(format)!
function time(time: number, format = "%H:%M") {
return GLib.DateTime.new_from_unix_local(time).format(format)!
}
const urgency = (n: Notifd.Notification) => {
const { LOW, NORMAL, CRITICAL } = Notifd.Urgency
// match operator when?
function urgency(n: AstalNotifd.Notification) {
const { LOW, NORMAL, CRITICAL } = AstalNotifd.Urgency
switch (n.urgency) {
case LOW: return "low"
case CRITICAL: return "critical"
case LOW:
return "low"
case CRITICAL:
return "critical"
case NORMAL:
default: return "normal"
default:
return "normal"
}
}
type Props = {
setup(self: EventBox): void
onHoverLost(self: EventBox): void
notification: Notifd.Notification
}
export default function Notification(props: Props) {
const { notification: n, onHoverLost, setup } = props
const { START, CENTER, END } = Gtk.Align
return <eventbox
className={`Notification ${urgency(n)}`}
setup={setup}
onHoverLost={onHoverLost}>
<box vertical>
<box className="header">
{(n.appIcon || n.desktopEntry) && <icon
className="app-icon"
export default function Notification({
notification: n,
onHoverLost,
}: {
notification: AstalNotifd.Notification
onHoverLost: () => void
}) {
const timer = timeout(3000, () => {
onHoverLost()
})
return (
<Adw.Clamp maximumSize={400}>
<box
widthRequest={400}
class={`Notification ${urgency(n)}`}
orientation={Gtk.Orientation.VERTICAL}
>
<Gtk.EventControllerMotion onEnter={() => timer.cancel()} onLeave={onHoverLost} />
<box class="header">
{(n.appIcon || isIcon(n.desktopEntry)) && (
<image
class="app-icon"
visible={Boolean(n.appIcon || n.desktopEntry)}
icon={n.appIcon || n.desktopEntry}
/>}
iconName={n.appIcon || n.desktopEntry}
/>
)}
<label
className="app-name"
halign={START}
truncate
class="app-name"
halign={Gtk.Align.START}
ellipsize={Pango.EllipsizeMode.END}
label={n.appName || "Unknown"}
/>
<label
className="time"
class="time"
hexpand
halign={END}
halign={Gtk.Align.END}
label={time(n.time)}
/>
<button onClicked={() => n.dismiss()}>
<icon icon="window-close-symbolic" />
<image iconName="window-close-symbolic" />
</button>
</box>
<Gtk.Separator visible />
<box className="content">
{n.image && fileExists(n.image) && <box
valign={START}
className="image"
css={`background-image: url('${n.image}')`}
/>}
{n.image && isIcon(n.image) && <box
expand={false}
valign={START}
className="icon-image">
<icon icon={n.image} expand halign={CENTER} valign={CENTER} />
</box>}
<box vertical>
<box class="content">
{n.image && fileExists(n.image) && (
<image valign={Gtk.Align.START} class="image" file={n.image} />
)}
{n.image && isIcon(n.image) && (
<box valign={Gtk.Align.START} class="icon-image">
<image
iconName={n.image}
halign={Gtk.Align.CENTER}
valign={Gtk.Align.CENTER}
/>
</box>
)}
<box orientation={Gtk.Orientation.VERTICAL}>
<label
className="summary"
halign={START}
class="summary"
halign={Gtk.Align.START}
xalign={0}
label={n.summary}
truncate
ellipsize={Pango.EllipsizeMode.END}
/>
{n.body && <label
className="body"
{n.body && (
<label
class="body"
wrap
useMarkup
halign={START}
halign={Gtk.Align.START}
xalign={0}
justifyFill
justify={Gtk.Justification.FILL}
label={n.body}
/>}
/>
)}
</box>
</box>
{n.get_actions().length > 0 && <box className="actions">
{n.get_actions().map(({ label, id }) => (
<button
hexpand
onClicked={() => n.invoke(id)}>
<label label={label} halign={CENTER} hexpand />
{n.actions.length > 0 && (
<box class="actions">
{n.actions.map(({ label, id }) => (
<button hexpand onClicked={() => n.invoke(id)}>
<label label={label} halign={Gtk.Align.CENTER} hexpand />
</button>
))}
</box>}
</box>
</eventbox>
)}
</box>
</Adw.Clamp>
)
}

View File

@ -1,105 +1,65 @@
import { Astal, Gtk, Gdk } from "astal/gtk3"
import Notifd from "gi://AstalNotifd"
import app from "ags/gtk4/app"
import { Astal, Gtk } from "ags/gtk4"
import AstalNotifd from "gi://AstalNotifd"
import Notification from "./Notification"
import { type Subscribable } from "astal/binding"
import { GLib, Variable, bind, timeout } from "astal"
import { createBinding, For, createState, onCleanup } from "ags"
// see comment below in constructor
const TIMEOUT_DELAY = 5000
export default function NotificationPopups() {
const monitors = createBinding(app, "monitors")
// The purpose if this class is to replace Variable<Array<Widget>>
// with a Map<number, Widget> type in order to track notification widgets
// by their id, while making it conviniently bindable as an array
class NotifiationMap implements Subscribable {
// the underlying map to keep track of id widget pairs
private map: Map<number, Gtk.Widget> = new Map()
const notifd = AstalNotifd.get_default()
// it makes sense to use a Variable under the hood and use its
// reactivity implementation instead of keeping track of subscribers ourselves
private var: Variable<Array<Gtk.Widget>> = Variable([])
const [notifications, setNotifications] = createState(
new Array<AstalNotifd.Notification>(),
)
// notify subscribers to rerender when state changes
private notifiy() {
this.var.set([...this.map.values()].reverse())
const notifiedHandler = notifd.connect("notified", (_, id, replaced) => {
const notification = notifd.get_notification(id)
if (replaced && notifications.get().some(n => n.id === id)) {
setNotifications((ns) => ns.map((n) => (n.id === id ? notification : n)))
} else {
setNotifications((ns) => [notification, ...ns])
}
private constructor() {
const notifd = Notifd.get_default()
/**
* uncomment this if you want to
* ignore timeout by senders and enforce our own timeout
* note that if the notification has any actions
* they might not work, since the sender already treats them as resolved
*/
// notifd.ignoreTimeout = true
notifd.connect("notified", (_, id) => {
this.set(id, Notification({
notification: notifd.get_notification(id)!,
// once hovering over the notification is done
// destroy the widget without calling notification.dismiss()
// so that it acts as a "popup" and we can still display it
// in a notification center like widget
// but clicking on the close button will close it
onHoverLost: () => this.delete(id),
// notifd by default does not close notifications
// until user input or the timeout specified by sender
// which we set to ignore above
setup: () => timeout(TIMEOUT_DELAY, () => {
/**
* uncomment this if you want to "hide" the notifications
* after TIMEOUT_DELAY
*/
this.delete(id)
})
}))
})
// notifications can be closed by the outside before
// any user input, which have to be handled too
notifd.connect("resolved", (_, id) => {
this.delete(id)
const resolvedHandler = notifd.connect("resolved", (_, id) => {
setNotifications((ns) => ns.filter((n) => n.id !== id))
})
// technically, we don't need to cleanup because in this example this is a root component
// and this cleanup function is only called when the program exits, but exiting will cleanup either way
// but it's here to remind you that you should not forget to cleanup signal connections
onCleanup(() => {
notifd.disconnect(notifiedHandler)
notifd.disconnect(resolvedHandler)
})
return (
<For each={monitors} cleanup={(win) => (win as Gtk.Window).destroy()}>
{(monitor) => (
<window
class="NotificationPopups"
gdkmonitor={monitor}
visible={notifications((ns) => ns.length > 0)}
anchor={Astal.WindowAnchor.TOP | Astal.WindowAnchor.RIGHT}
>
<box orientation={Gtk.Orientation.VERTICAL}>
<For each={notifications}>
{(notification) => (
<Notification
notification={notification}
onHoverLost={() =>
setNotifications((ns) =>
ns.filter((n) => n.id !== notification.id),
)
}
private set(key: number, value: Gtk.Widget) {
// in case of replacecment destroy previous widget
this.map.get(key)?.destroy()
this.map.set(key, value)
this.notifiy()
}
private delete(key: number) {
this.map.get(key)?.destroy()
this.map.delete(key)
this.notifiy()
}
// needed by the Subscribable interface
get() {
return this.var.get()
}
// needed by the Subscribable interface
subscribe(callback: (list: Array<Gtk.Widget>) => void) {
return this.var.subscribe(callback)
}
}
export default function NotificationPopups(gdkmonitor: Gdk.Monitor) {
const { TOP, RIGHT } = Astal.WindowAnchor
const notifs = new NotifiationMap()
return <window
className="NotificationPopups"
gdkmonitor={gdkmonitor}
exclusivity={Astal.Exclusivity.EXCLUSIVE}
anchor={TOP | RIGHT}>
<box vertical>
{bind(notifs)}
/>
)}
</For>
</box>
</window>
)}
</For>
)
}

View File

@ -0,0 +1,5 @@
{
"dependencies": {
"ags": "*"
}
}

View File

@ -17,7 +17,7 @@ window.Bar {
margin-top: 0.2em;
}
.clients box {
.clients box box {
margin-right: 0.3em;
}
@ -27,11 +27,13 @@ window.Bar {
border-radius: 0.3em;
background: #1f2430;
}
.battery-item:hover {
background: #023269;
}
.item, .clients box {
.item,
.clients box box {
background: #1f2430;
padding-left: 0.7em;
padding-right: 0.7em;
@ -49,12 +51,14 @@ window.Bar {
button {
background: #1f2430;
border:none;
border: none;
padding: 0.2em;
border-radius: 0.3em;
font-weight: normal;
}
.focused, .clients box.focused {
.focused,
.clients box.focused {
background: #023269;
}

View File

@ -1,22 +1,16 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
"experimentalDecorators": true,
"strict": true,
"target": "ES2022",
"module": "ES2022",
"target": "ES2020",
"lib": [
"ES2023"
],
"moduleResolution": "Bundler",
// "checkJs": true,
// "allowJs": true,
"jsx": "react-jsx",
"jsxImportSource": "/nix/store/1pd4fdq90f4vla3zghmfci9axsbvkd3w-astal-gjs/share/astal/gjs/gtk3",
"paths": {
"astal": [
"/nix/store/1pd4fdq90f4vla3zghmfci9axsbvkd3w-astal-gjs/share/astal/gjs"
],
"astal/*": [
"/nix/store/1pd4fdq90f4vla3zghmfci9axsbvkd3w-astal-gjs/share/astal/gjs/*"
]
},
"jsxImportSource": "ags/gtk4"
}
}

View File

@ -34,6 +34,7 @@
settings = {
os = {
editPreset = "nvim";
autoStageResolvedConflicts = false;
};
};
};

View File

@ -1,4 +1,4 @@
{ config, pkgs, lib, ... }:
{ lib, ... }:
{
programs.kitty = {
@ -15,8 +15,11 @@
"kitty_mod+enter" = "nop";
"kitty_mod+equal" = "change_font_size current +1.0";
"kitty_mod+minus" = "change_font_size current -1.0";
"ctrl+shift+c" = "copy_to_clipboard";
"ctrl+shift+v" = "paste_from_clipboard";
};
settings = {
kitty_mod= "ctrl+alt";
cursor_shape = "block";
cursor_beam_thickness = 1;
scrollback_lines = 100000;

View File

@ -8,7 +8,7 @@ video-sync=display-resample
interpolation
tscale=oversample
vo=gpu-next
gpu-api=opengl
hwdec=auto
force-window=yes
keep-open=yes

View File

@ -93,6 +93,7 @@ echo -e '\n\n\n'
echo "Running Workspace Backups"
borg create -s --progress \
10.4.0.1:Storage/Thomas/Borg/Workspace::'{hostname}-{now}' \
--exclude /home/server/Workspace/TrackBox/Resources \
/home/server/Workspace/
borg prune --keep-daily 7 --keep-weekly 4 --keep-monthly -1 --save-space 10.4.0.1:Storage/Thomas/Borg/Workspace
borg compact 10.4.0.1:Storage/Thomas/Borg/Workspace

View File

@ -10,6 +10,7 @@
../lf
../tmux
../yazi
../zellij
];
home.stateVersion = "24.11";
@ -20,6 +21,8 @@
waypipe
inputs.worktimer.packages.${pkgs.system}.default
usbutils
gocryptfs
sshfs
];
programs.nh = {
enable = true;

10
home/zellij/default.nix Normal file
View File

@ -0,0 +1,10 @@
{ config, ... }:
{
programs.zellij = {
enable = true;
};
home.file."${config.xdg.configHome}/zellij" = {
source = ./files;
recursive = true;
};
}

View File

@ -0,0 +1,451 @@
ui {
pane_frames {
hide_session_name true
}
}
keybinds clear-defaults=true {
locked {
bind "Ctrl a" { SwitchToMode "normal"; }
bind "Ctrl H" { MoveFocus "left"; }
bind "Ctrl J" { MoveFocus "down"; }
bind "Ctrl K" { MoveFocus "up"; }
bind "Ctrl L" { MoveFocus "right"; }
}
normal {
bind "-" { NewPane "down"; SwitchToMode "locked"; }
bind "|" { NewPane "right"; SwitchToMode "locked"; }
bind "c" { NewTab; SwitchToMode "locked"; }
bind "d" { Detach; }
bind "n" { GoToNextTab; SwitchToMode "locked"; }
}
pane {
bind "left" { MoveFocus "left"; }
bind "down" { MoveFocus "down"; }
bind "up" { MoveFocus "up"; }
bind "right" { MoveFocus "right"; }
bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; }
bind "d" { NewPane "down"; SwitchToMode "locked"; }
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "locked"; }
bind "f" { ToggleFocusFullscreen; SwitchToMode "locked"; }
bind "h" { MoveFocus "left"; }
bind "i" { TogglePanePinned; SwitchToMode "locked"; }
bind "j" { MoveFocus "down"; }
bind "k" { MoveFocus "up"; }
bind "l" { MoveFocus "right"; }
bind "n" { NewPane; SwitchToMode "locked"; }
bind "p" { SwitchToMode "normal"; }
bind "r" { NewPane "right"; SwitchToMode "locked"; }
bind "w" { ToggleFloatingPanes; SwitchToMode "locked"; }
bind "x" { CloseFocus; SwitchToMode "locked"; }
bind "z" { TogglePaneFrames; SwitchToMode "locked"; }
bind "tab" { SwitchFocus; }
}
tab {
bind "left" { GoToPreviousTab; }
bind "down" { GoToNextTab; }
bind "up" { GoToPreviousTab; }
bind "right" { GoToNextTab; }
bind "1" { GoToTab 1; SwitchToMode "locked"; }
bind "2" { GoToTab 2; SwitchToMode "locked"; }
bind "3" { GoToTab 3; SwitchToMode "locked"; }
bind "4" { GoToTab 4; SwitchToMode "locked"; }
bind "5" { GoToTab 5; SwitchToMode "locked"; }
bind "6" { GoToTab 6; SwitchToMode "locked"; }
bind "7" { GoToTab 7; SwitchToMode "locked"; }
bind "8" { GoToTab 8; SwitchToMode "locked"; }
bind "9" { GoToTab 9; SwitchToMode "locked"; }
bind "[" { BreakPaneLeft; SwitchToMode "locked"; }
bind "]" { BreakPaneRight; SwitchToMode "locked"; }
bind "b" { BreakPane; SwitchToMode "locked"; }
bind "h" { GoToPreviousTab; }
bind "j" { GoToNextTab; }
bind "k" { GoToPreviousTab; }
bind "l" { GoToNextTab; }
bind "n" { NewTab; SwitchToMode "locked"; }
bind "r" { SwitchToMode "renametab"; TabNameInput 0; }
bind "s" { ToggleActiveSyncTab; SwitchToMode "locked"; }
bind "t" { SwitchToMode "normal"; }
bind "x" { CloseTab; SwitchToMode "locked"; }
bind "tab" { ToggleTab; }
}
resize {
bind "left" { Resize "Increase left"; }
bind "down" { Resize "Increase down"; }
bind "up" { Resize "Increase up"; }
bind "right" { Resize "Increase right"; }
bind "+" { Resize "Increase"; }
bind "-" { Resize "Decrease"; }
bind "=" { Resize "Increase"; }
bind "H" { Resize "Decrease left"; }
bind "J" { Resize "Decrease down"; }
bind "K" { Resize "Decrease up"; }
bind "L" { Resize "Decrease right"; }
bind "h" { Resize "Increase left"; }
bind "j" { Resize "Increase down"; }
bind "k" { Resize "Increase up"; }
bind "l" { Resize "Increase right"; }
bind "r" { SwitchToMode "normal"; }
}
move {
bind "left" { MovePane "left"; }
bind "down" { MovePane "down"; }
bind "up" { MovePane "up"; }
bind "right" { MovePane "right"; }
bind "h" { MovePane "left"; }
bind "j" { MovePane "down"; }
bind "k" { MovePane "up"; }
bind "l" { MovePane "right"; }
bind "m" { SwitchToMode "normal"; }
bind "n" { MovePane; }
bind "p" { MovePaneBackwards; }
bind "tab" { MovePane; }
}
scroll {
bind "Alt left" { MoveFocusOrTab "left"; SwitchToMode "locked"; }
bind "Alt down" { MoveFocus "down"; SwitchToMode "locked"; }
bind "Alt up" { MoveFocus "up"; SwitchToMode "locked"; }
bind "Alt right" { MoveFocusOrTab "right"; SwitchToMode "locked"; }
bind "e" { EditScrollback; SwitchToMode "locked"; }
bind "f" { SwitchToMode "entersearch"; SearchInput 0; }
bind "Alt h" { MoveFocusOrTab "left"; SwitchToMode "locked"; }
bind "Alt j" { MoveFocus "down"; SwitchToMode "locked"; }
bind "Alt k" { MoveFocus "up"; SwitchToMode "locked"; }
bind "Alt l" { MoveFocusOrTab "right"; SwitchToMode "locked"; }
bind "s" { SwitchToMode "normal"; }
}
search {
bind "c" { SearchToggleOption "CaseSensitivity"; }
bind "n" { Search "down"; }
bind "o" { SearchToggleOption "WholeWord"; }
bind "p" { Search "up"; }
bind "w" { SearchToggleOption "Wrap"; }
}
session {
bind "a" {
LaunchOrFocusPlugin "zellij:about" {
floating true
move_to_focused_tab true
}
SwitchToMode "locked"
}
bind "c" {
LaunchOrFocusPlugin "configuration" {
floating true
move_to_focused_tab true
}
SwitchToMode "locked"
}
bind "d" { Detach; }
bind "o" { SwitchToMode "normal"; }
bind "p" {
LaunchOrFocusPlugin "plugin-manager" {
floating true
move_to_focused_tab true
}
SwitchToMode "locked"
}
bind "w" {
LaunchOrFocusPlugin "session-manager" {
floating true
move_to_focused_tab true
}
SwitchToMode "locked"
}
}
shared_among "normal" "locked" {
bind "Alt left" { MoveFocusOrTab "left"; }
bind "Alt down" { MoveFocus "down"; }
bind "Alt up" { MoveFocus "up"; }
bind "Alt right" { MoveFocusOrTab "right"; }
bind "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
bind "Alt =" { Resize "Increase"; }
bind "Alt [" { PreviousSwapLayout; }
bind "Alt ]" { NextSwapLayout; }
bind "Alt f" { ToggleFloatingPanes; }
bind "Alt h" { MoveFocusOrTab "left"; }
bind "Alt i" { MoveTab "left"; }
bind "Alt j" { MoveFocus "down"; }
bind "Alt k" { MoveFocus "up"; }
bind "Alt l" { MoveFocusOrTab "right"; }
bind "Alt n" { NewPane; }
bind "Alt o" { MoveTab "right"; }
}
shared_except "locked" "renametab" "renamepane" {
bind "Ctrl g" { SwitchToMode "locked"; }
bind "Ctrl q" { Quit; }
}
shared_except "locked" "entersearch" {
bind "enter" { SwitchToMode "locked"; }
}
shared_except "locked" "entersearch" "renametab" "renamepane" {
bind "esc" { SwitchToMode "locked"; }
}
shared_except "locked" "entersearch" "renametab" "renamepane" "move" {
bind "m" { SwitchToMode "move"; }
}
shared_except "locked" "entersearch" "search" "renametab" "renamepane" "session" {
bind "o" { SwitchToMode "session"; }
}
shared_except "locked" "tab" "entersearch" "renametab" "renamepane" {
bind "t" { SwitchToMode "tab"; }
}
shared_except "locked" "tab" "scroll" "entersearch" "renametab" "renamepane" {
bind "s" { SwitchToMode "scroll"; }
}
shared_among "normal" "resize" "tab" "scroll" "prompt" "tmux" {
bind "p" { SwitchToMode "pane"; }
}
shared_except "locked" "resize" "pane" "tab" "entersearch" "renametab" "renamepane" {
bind "r" { SwitchToMode "resize"; }
}
shared_among "scroll" "search" {
bind "PageDown" { PageScrollDown; }
bind "PageUp" { PageScrollUp; }
bind "left" { PageScrollUp; }
bind "down" { ScrollDown; }
bind "up" { ScrollUp; }
bind "right" { PageScrollDown; }
bind "Ctrl b" { PageScrollUp; }
bind "Ctrl c" { ScrollToBottom; SwitchToMode "locked"; }
bind "d" { HalfPageScrollDown; }
bind "Ctrl f" { PageScrollDown; }
bind "h" { PageScrollUp; }
bind "j" { ScrollDown; }
bind "k" { ScrollUp; }
bind "l" { PageScrollDown; }
bind "u" { HalfPageScrollUp; }
}
entersearch {
bind "Ctrl c" { SwitchToMode "scroll"; }
bind "esc" { SwitchToMode "scroll"; }
bind "enter" { SwitchToMode "search"; }
}
renametab {
bind "esc" { UndoRenameTab; SwitchToMode "tab"; }
}
shared_among "renametab" "renamepane" {
bind "Ctrl c" { SwitchToMode "locked"; }
}
renamepane {
bind "esc" { UndoRenamePane; SwitchToMode "pane"; }
}
}
// Plugin aliases - can be used to change the implementation of Zellij
// changing these requires a restart to take effect
plugins {
about location="zellij:about"
compact-bar location="zellij:compact-bar"
configuration location="zellij:configuration"
filepicker location="zellij:strider" {
cwd "/"
}
plugin-manager location="zellij:plugin-manager"
session-manager location="zellij:session-manager"
status-bar location="zellij:status-bar"
strider location="zellij:strider"
tab-bar location="zellij:tab-bar"
welcome-screen location="zellij:session-manager" {
welcome_screen true
}
}
// Plugins to load in the background when a new session starts
// eg. "file:/path/to/my-plugin.wasm"
// eg. "https://example.com/my-plugin.wasm"
load_plugins {
}
// Use a simplified UI without special fonts (arrow glyphs)
// Options:
// - true
// - false (Default)
//
// simplified_ui true
// Choose the theme that is specified in the themes section.
// Default: default
//
theme "tokyo-night-dark"
// Choose the base input mode of zellij.
// Default: normal
//
default_mode "locked"
// Choose the path to the default shell that zellij will use for opening new panes
// Default: $SHELL
//
// default_shell "fish"
// Choose the path to override cwd that zellij will use for opening new panes
//
// default_cwd "/tmp"
// The name of the default layout to load on startup
// Default: "default"
//
default_layout "compact"
// The folder in which Zellij will look for layouts
// (Requires restart)
//
// layout_dir "/tmp"
// The folder in which Zellij will look for themes
// (Requires restart)
//
// theme_dir "/tmp"
// Toggle enabling the mouse mode.
// On certain configurations, or terminals this could
// potentially interfere with copying text.
// Options:
// - true (default)
// - false
//
mouse_mode true
// Toggle having pane frames around the panes
// Options:
// - true (default, enabled)
// - false
//
pane_frames false
// When attaching to an existing session with other users,
// should the session be mirrored (true)
// or should each user have their own cursor (false)
// (Requires restart)
// Default: false
//
// mirror_session true
// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
// eg. when terminal window with an active zellij session is closed
// (Requires restart)
// Options:
// - detach (Default)
// - quit
//
// on_force_close "quit"
// Configure the scroll back buffer size
// This is the number of lines zellij stores for each pane in the scroll back
// buffer. Excess number of lines are discarded in a FIFO fashion.
// (Requires restart)
// Valid values: positive integers
// Default value: 10000
//
// scroll_buffer_size 10000
// Provide a command to execute when copying text. The text will be piped to
// the stdin of the program to perform the copy. This can be used with
// terminal emulators which do not support the OSC 52 ANSI control sequence
// that will be used by default if this option is not set.
// Examples:
//
// copy_command "xclip -selection clipboard" // x11
copy_command "wl-copy" // wayland
// copy_command "pbcopy" // osx
//
// copy_command "pbcopy"
// Choose the destination for copied text
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
// Does not apply when using copy_command.
// Options:
// - system (default)
// - primary
//
// copy_clipboard "primary"
// Enable automatic copying (and clearing) of selection when releasing mouse
// Default: true
//
// copy_on_select true
// Path to the default editor to use to edit pane scrollbuffer
// Default: $EDITOR or $VISUAL
// scrollback_editor "/usr/bin/vim"
// A fixed name to always give the Zellij session.
// Consider also setting `attach_to_session true,`
// otherwise this will error if such a session exists.
// Default: <RANDOM>
//
// session_name "My singleton session"
// When `session_name` is provided, attaches to that session
// if it is already running or creates it otherwise.
// Default: false
//
// attach_to_session true
// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible
// Options:
// - true (default)
// - false
//
// auto_layout false
// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected
// Options:
// - true (default)
// - false
//
// session_serialization false
// Whether pane viewports are serialized along with the session, default is false
// Options:
// - true
// - false (default)
//
// serialize_pane_viewport false
// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0
// defaults to the scrollback size. If this number is higher than the scrollback size, it will
// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true.
//
// scrollback_lines_to_serialize 10000
// Enable or disable the rendering of styled and colored underlines (undercurl).
// May need to be disabled for certain unsupported terminals
// (Requires restart)
// Default: true
//
// styled_underlines false
// How often in seconds sessions are serialized
//
// serialization_interval 10000
// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know
// metadata info on this session)
// (Requires restart)
// Default: false
//
// disable_session_metadata false
// Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it)
// (Requires restart)
// Default: true (if the host terminal supports it)
//
support_kitty_keyboard_protocol true
// Whether to stack panes when resizing beyond a certain size
// Default: true
//
// stacked_resize false
// Whether to show tips on startup
// Default: true
//
show_startup_tips false
// Whether to show release notes on first version run
// Default: true
//
// show_release_notes false

View File

@ -40,6 +40,7 @@ in {
};
Settings = {
AutoConnect = true;
Country = "ES";
};
General = {
EnableNetworkConfiguration = true;
@ -119,4 +120,5 @@ in {
];
fonts.fontDir.enable = true;
services.flatpak.enable = true;
boot.kernel.sysctl."net.ipv4.ip_forward" = 1;
}

View File

@ -75,8 +75,8 @@
};
services.resolved = {
enable = true;
enable = pkgs.lib.mkDefault true;
fallbackDns = [ "1.1.1.1" "1.0.0.1" ];
};
networking.nameservers = ["1.1.1.1" "1.0.0.1"];
networking.nameservers = pkgs.lib.mkDefault ["1.1.1.1" "1.0.0.1"];
}

View File

@ -9,7 +9,7 @@ let
"soft"
"bg"
"intr"
"x-systemd.automount"
# "x-systemd.automount"
"x-systemd.idle-timeout=600"
"x-systemd.device-timeout=2s"
"x-systemd.mount-timeout=2s"

View File

@ -1,4 +1,4 @@
{ inputs, config, pkgs, ... }:
{ ... }:
{
boot.initrd.supportedFilesystems = [ "zfs" ];
boot.supportedFilesystems = [ "zfs" ];
@ -18,6 +18,17 @@
autoprune = true;
autosnap = true;
};
"rpool/storage" = {
frequently = 8;
yearly = 0;
monthly = 0;
weekly = 0;
daily = 0;
hourly = 0;
frequent_period = 15;
autoprune = true;
autosnap = true;
};
};
};
}

View File

@ -45,4 +45,12 @@
device = "/home/server/Workspace";
options = ["bind"];
};
services.resolved = {
enable = false;
};
networking.nameservers = ["192.168.1.2"];
programs.steam = {
enable = true;
gamescopeSession.enable = true;
};
}