Compare commits

..

1 Commits

Author SHA1 Message Date
Thomas Avé eaba3a8978 Working on porting to new ags version 2025-07-09 16:09:53 +02:00
95 changed files with 760 additions and 963012 deletions

View File

@ -1,316 +1,321 @@
{
"nodes": {
"ags": {
"inputs": {
"astal": "astal",
"gnim": "gnim",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1751930350,
"narHash": "sha256-hBIrzyrwG3XjeNyzVNWKDX+yYVlpwAqf9ovgF7qecug=",
"owner": "aylur",
"repo": "ags",
"rev": "22f37ccb0db58d9d8a11ad0054ab20ecfad005ad",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "ags",
"type": "github"
}
},
"astal": {
"inputs": {
"nixpkgs": [
"ags",
"nixpkgs"
]
},
"locked": {
"lastModified": 1751126708,
"narHash": "sha256-AodIKw7TmI7rHVcOfEsO82stupMYIMVQeLAUQfVxnkU=",
"owner": "aylur",
"repo": "astal",
"rev": "ac90f09385a2295da9fdc108aaba4a317aaeacc7",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "astal",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"fzgo",
"nixpkgs"
]
},
"locked": {
"lastModified": 1719994518,
"narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733312601,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
"worktimer",
"nixpkgs"
]
},
"locked": {
"lastModified": 1727826117,
"narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"fzgo": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1737991358,
"narHash": "sha256-Xye+N7I2FMb+GC96xMDjWi/HX5XCoFCz1Ak+KvP9jUQ=",
"ref": "refs/heads/master",
"rev": "a005938761624fd8d3ab7cbb64fe57a40a9b36e9",
"revCount": 14,
"type": "git",
"url": "https://git.thomasave.be/thomasave/fzgo.git"
},
"original": {
"type": "git",
"url": "https://git.thomasave.be/thomasave/fzgo.git"
}
},
"gnim": {
"flake": false,
"locked": {
"lastModified": 1751928958,
"narHash": "sha256-vQY2L+Hnp6F1MHFa3UbMft1goGw3iODI5M+96Z7P+9Q=",
"owner": "aylur",
"repo": "gnim",
"rev": "9bffa83f52f711b13e3c139454623a9aea4f5552",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "gnim",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1751990210,
"narHash": "sha256-krWErNDl9ggMLSfK00Q2BcoSk3+IRTSON/DiDgUzzMw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "218da00bfa73f2a61682417efe74549416c16ba6",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nixos-06cb-009a-fingerprint-sensor": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1734692513,
"narHash": "sha256-3QEzFFrkXLj/JgZGoLaxq/pPkflSXfBOP10bXL8/Niw=",
"owner": "ahbnr",
"repo": "nixos-06cb-009a-fingerprint-sensor",
"rev": "3678b193efa1e06aab86058aecee18ddaa8878d2",
"type": "github"
},
"original": {
"owner": "ahbnr",
"ref": "24.11",
"repo": "nixos-06cb-009a-fingerprint-sensor",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1751792365,
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1722421184,
"narHash": "sha256-/DJBI6trCeVnasdjUo9pbnodCLZcFqnVZiLUfqLH4jA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9f918d616c5321ad374ae6cb5ea89c9e04bf3e58",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1751792365,
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1751792365,
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1730200266,
"narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1752056583,
"narHash": "sha256-dtBwaZET1p20izsqoIDnx7BzU25t7AwaoVmnCgv9kqw=",
"owner": "nix-community",
"repo": "NUR",
"rev": "9db2aa1b8673461fef354c788abe40e0973b0427",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"root": {
"inputs": {
"ags": "ags",
"fzgo": "fzgo",
"home-manager": "home-manager",
"nixos-06cb-009a-fingerprint-sensor": "nixos-06cb-009a-fingerprint-sensor",
"nixpkgs": "nixpkgs_3",
"nur": "nur",
"worktimer": "worktimer"
}
},
"worktimer": {
"inputs": {
"flake-parts": "flake-parts_3",
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1739738223,
"narHash": "sha256-p14lbBwGNJilt2J8y6mCg2pSHM9Bs7vbICYoyUy3XMM=",
"ref": "cli",
"rev": "eeae39d050f22edcae63ac8b3afa797dab8955b2",
"revCount": 6,
"type": "git",
"url": "https://git.thomasave.be/thomasave/WorkTimer"
},
"original": {
"ref": "cli",
"type": "git",
"url": "https://git.thomasave.be/thomasave/WorkTimer"
}
}
"nodes": {
"ags": {
"inputs": {
"astal": "astal",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1744557573,
"narHash": "sha256-XAyj0iDuI51BytJ1PwN53uLpzTDdznPDQFG4RwihlTQ=",
"owner": "aylur",
"repo": "ags",
"rev": "3ed9737bdbc8fc7a7c7ceef2165c9109f336bff6",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "ags",
"type": "github"
}
},
"root": "root",
"version": 7
"astal": {
"inputs": {
"nixpkgs": [
"ags",
"nixpkgs"
]
},
"locked": {
"lastModified": 1742571008,
"narHash": "sha256-5WgfJAeBpxiKbTR/gJvxrGYfqQRge5aUDcGKmU1YZ1Q=",
"owner": "aylur",
"repo": "astal",
"rev": "dc0e5d37abe9424c53dcbd2506a4886ffee6296e",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "astal",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"fzgo",
"nixpkgs"
]
},
"locked": {
"lastModified": 1719994518,
"narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733312601,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
"worktimer",
"nixpkgs"
]
},
"locked": {
"lastModified": 1727826117,
"narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"fzgo": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1737991358,
"narHash": "sha256-Xye+N7I2FMb+GC96xMDjWi/HX5XCoFCz1Ak+KvP9jUQ=",
"ref": "refs/heads/master",
"rev": "a005938761624fd8d3ab7cbb64fe57a40a9b36e9",
"revCount": 14,
"type": "git",
"url": "https://git.thomasave.be/thomasave/fzgo.git"
},
"original": {
"type": "git",
"url": "https://git.thomasave.be/thomasave/fzgo.git"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1750304462,
"narHash": "sha256-Mj5t4yX05/rXnRqJkpoLZTWqgStB88Mr/fegTRqyiWc=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "863842639722dd12ae9e37ca83bcb61a63b36f6c",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nixos-06cb-009a-fingerprint-sensor": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1734692513,
"narHash": "sha256-3QEzFFrkXLj/JgZGoLaxq/pPkflSXfBOP10bXL8/Niw=",
"owner": "ahbnr",
"repo": "nixos-06cb-009a-fingerprint-sensor",
"rev": "3678b193efa1e06aab86058aecee18ddaa8878d2",
"type": "github"
},
"original": {
"owner": "ahbnr",
"ref": "24.11",
"repo": "nixos-06cb-009a-fingerprint-sensor",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1743583204,
"narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1722421184,
"narHash": "sha256-/DJBI6trCeVnasdjUo9pbnodCLZcFqnVZiLUfqLH4jA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9f918d616c5321ad374ae6cb5ea89c9e04bf3e58",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1750134718,
"narHash": "sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9e83b64f727c88a7711a2c463a7b16eedb69a84c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1750134718,
"narHash": "sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "9e83b64f727c88a7711a2c463a7b16eedb69a84c",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1730200266,
"narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_4",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1750323839,
"narHash": "sha256-r2Izw07xe5JEWLjQLI4Y3C/Sw2VNBGNmnZTVWtOyzlg=",
"owner": "nix-community",
"repo": "NUR",
"rev": "7f1902da6a047ccffbbb809b98205d08cd5df509",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"root": {
"inputs": {
"ags": "ags",
"fzgo": "fzgo",
"home-manager": "home-manager",
"nixos-06cb-009a-fingerprint-sensor": "nixos-06cb-009a-fingerprint-sensor",
"nixpkgs": "nixpkgs_3",
"nur": "nur",
"worktimer": "worktimer"
}
},
"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",
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1739738223,
"narHash": "sha256-p14lbBwGNJilt2J8y6mCg2pSHM9Bs7vbICYoyUy3XMM=",
"ref": "cli",
"rev": "eeae39d050f22edcae63ac8b3afa797dab8955b2",
"revCount": 6,
"type": "git",
"url": "https://git.thomasave.be/thomasave/WorkTimer"
},
"original": {
"ref": "cli",
"type": "git",
"url": "https://git.thomasave.be/thomasave/WorkTimer"
}
}
},
"root": "root",
"version": 7
}

View File

@ -3,10 +3,13 @@ let
fzgo_paths = {
files = [
"/home/user/.dotfiles"
"/home/server/.cache/fzgo/entries/f/|home|user|Workspace"
];
dirs = [
"/home/user/.dotfiles"
"/Storage/TrackBox"
"/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"
];
};
in
@ -19,7 +22,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
@ -42,9 +45,9 @@ in
wayland.windowManager.hyprland.settings = {
monitor = [
"eDP-1,2880x1800@120.00Hz,0x284,1.2,vrr,1"
"DP-1,1920x1080,6240x500,1"
"HDMI-A-1,3840x2160@60.00Hz,2400x0,1"
"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"
];
bind = [
", XF86PowerOff, exec, ${pkgs.rofi}/bin/rofi -show power-menu -modi power-menu:${

View File

@ -3,10 +3,13 @@ let
fzgo_paths = {
files = [
"/home/user/.dotfiles"
"/home/server/.cache/fzgo/entries/f/|home|user|Workspace"
];
dirs = [
"/home/user/.dotfiles"
"/Storage/TrackBox/"
"/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"
];
};
in

View File

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

View File

@ -1,980 +0,0 @@
/// <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

@ -1,118 +0,0 @@
/// <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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,465 +0,0 @@
/// <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

@ -1,778 +0,0 @@
/// <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

File diff suppressed because it is too large Load Diff

View File

@ -1,730 +0,0 @@
/// <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

@ -1,625 +0,0 @@
/// <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

@ -1,485 +0,0 @@
/// <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

@ -1,246 +0,0 @@
/// <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

View File

@ -1,493 +0,0 @@
/// <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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,536 +0,0 @@
/// <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

View File

@ -1,845 +0,0 @@
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;
}

View File

@ -1,23 +0,0 @@
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;
}

View File

@ -1,89 +0,0 @@
/// <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

View File

@ -1,112 +0,0 @@
/// <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

View File

@ -1,306 +0,0 @@
/// <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

@ -1,65 +0,0 @@
/// <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

View File

@ -1,65 +0,0 @@
/// <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

@ -1,405 +0,0 @@
/// <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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,264 +0,0 @@
/// <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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,43 +0,0 @@
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;
}

View File

@ -1,68 +0,0 @@
/**
* 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';

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,738 +0,0 @@
/// <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 };

View File

@ -1,145 +0,0 @@
/// <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

File diff suppressed because it is too large Load Diff

View File

@ -1,103 +0,0 @@
/// <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

View File

@ -1,207 +0,0 @@
/// <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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,271 +0,0 @@
/// <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

@ -1,156 +0,0 @@
/// <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

@ -1,286 +0,0 @@
/// <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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -1,105 +0,0 @@
/// <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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,450 +0,0 @@
/// <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

File diff suppressed because it is too large Load Diff

View File

@ -1,810 +0,0 @@
/// <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

View File

@ -1,620 +0,0 @@
/// <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

View File

@ -1,978 +0,0 @@
/// <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

File diff suppressed because it is too large Load Diff

View File

@ -1,178 +0,0 @@
/// <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;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,52 +0,0 @@
/// <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

File diff suppressed because it is too large Load Diff

View File

@ -1,48 +0,0 @@
/// <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

View File

@ -1,75 +0,0 @@
/// <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

View File

@ -1,134 +0,0 @@
/// <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

View File

@ -1,96 +0,0 @@
/// <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,15 +1,13 @@
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 { createBinding, createState } from "ags"
import Tray from "gi://AstalTray";
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);
@ -17,30 +15,23 @@ 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>
<For each={items}>
{(item: Tray.TrayItem) => {
{createBinding(tray, "items").as((items) =>
items.map((item) => {
if (item.iconThemePath) app.add_icons(item.iconThemePath);
return (
<menubutton
$={(self) => init(self, item)}
class="systray"
tooltipMarkup={createBinding(item, "tooltipMarkup")}
usePopover={false}
actionGroup={createBinding(item, "actionGroup").as(ag => ["dbusmenu", ag])}
menuModel={createBinding(item, "menuModel")}>
<image gicon={item.gicon} class="systray-item" />
{/* <icon gicon={createBinding(item, "gicon")} class="systray-item" /> */}
</menubutton>
);
}}
</For>
}),
)}
</box>
);
}
@ -62,38 +53,43 @@ function Center(): JSX.Element {
}
function Date({ format = "%Y-%m-%d" }): JSX.Element {
const time = createPoll<string>("", 60000, () => GLib.DateTime.new_now_local().format(format)!)
const time = createState<string>("").poll(60000, () =>
GLib.DateTime.new_now_local().format(format)!)
return <button
class="item"
label={time}
onDestroy={() => time.drop()}
label={time()}
onClicked={() => execAsync(['gnome-calendar'])}
/>
}
function Time({ format = "%H:%M:%S" }): JSX.Element {
const time = createPoll<string>("", 1000, () => GLib.DateTime.new_now_local().format(format)!)
const time = createState<string>("").poll(1000, () =>
GLib.DateTime.new_now_local().format(format)!)
return <label
class="item blue"
label={time}
onDestroy={() => time.drop()}
label={time()}
/>
}
function Temp(): JSX.Element {
let [label, _setlabel] = createState<string>("N/A");
let label = createState<string>("N/A");
if (sensorsAvailable) {
label = createPoll<string>("", 3000, 'sensors', out => {
label = createState<string>("").poll(5000, '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
class="item blue"
label={label}
onDestroy={() => label.drop()}
label={label()}
/>
}
function Memory(): JSX.Element {
const memory = createPoll<string>("", 2000, "free", out => {
const memory = createState<string>("").poll(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);
@ -101,36 +97,39 @@ function Memory(): JSX.Element {
});
return <label
class="item blue"
label={memory}
onDestroy={() => memory.drop()}
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 = createPoll<string>("", 1000, command, out => out)
const speed = createState<string>("").poll(5000, command)
return <label
class="item"
label={speed}
onDestroy={() => speed.drop()}
label={speed()}
/>
}
function CPU(): JSX.Element {
const usage = createPoll<string>("", 2000, "top -b -n 1", out => {
const usage = createState<string>("").poll(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 class="item">
<image iconName="speedometer" css="margin-right: 0.7em;" />
{/* <icon icon="speedometer" css="margin-right: 0.7em;" /> */}
<label
label={usage}
onDestroy={() => usage.drop()}
label={usage()}
/>
</box>
}
function Right() {
function Right(): JSX.Element {
return (
<box class="right" hexpand halign={Gtk.Align.END} spacing={6}>
<Icons />
@ -145,30 +144,29 @@ function Right() {
);
}
function BatteryIcon(): JSX.Element {
if (battery.get_state() == 0) return <box />;
let batteryPercentage = createBinding(battery, "percentage");
return <button class="battery-item" onClicked={() => execAsync(['gnome-power-statistics'])}>
<box>
<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 <image
iconName={battery.charging ? `battery-level-${icon}-${charging_name}-symbolic` : `battery-level-${icon}-symbolic`}
/>
}}
</With>
</box>
</button>
}
// function BatteryIcon(): JSX.Element {
// if (battery.get_state() == 0) return <box />;
// return <button class="battery-item" onClicked={() => execAsync(['gnome-power-statistics'])}>
// <box>
// {
// createBinding(battery, "percentage").as((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`}
// />
// })
// }
// </box>
// </button>
// }
function Icons() {
return (
<box class="item icon-group">
<SysTray />
<BatteryIcon />
{/* <BatteryIcon /> */}
</box>
)
}
@ -191,23 +189,21 @@ function Volume(): JSX.Element {
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 class="item blue" onClicked={() => audio.default_speaker.mute = !audio.default_speaker.mute}>
<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>
{/* <icon icon={icon} /> */}
{
createBinding(audio.default_speaker, "volume").as((volume) => <box>
{
createBinding(audio.default_speaker, "mute").as((mute) => <box>
{
<label label={mute ? "" : `${Math.floor(volume * 100)}%`} css={css} />
}
</box>)
}
</box>)
}
</box>
</button>
);
@ -216,35 +212,23 @@ function Volume(): JSX.Element {
function Workspaces(): JSX.Element {
const hyprland = Hyprland.get_default();
let workspaces = createBinding(hyprland, "workspaces");
return (
<box class="workspaces">
<With value={workspaces}>
{(wss: Array<Hyprland.Workspace>) => (
<box>
<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
class={createBinding(hyprland, "focusedWorkspace").as((fw) => ws === fw ? "focused" : "",)}
onClicked={() => ws.focus()}
>
{`${ws.id}`.slice(-1)}
</button>
)}
</For>
</box>
)
}}
</With>
</box>
)}
</With>
{createBinding(hyprland, "workspaces").as((wss) =>
<box>
{createBinding(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) => (
<button
class={createBinding(hyprland, "focusedWorkspace").as((fw) => ws === fw ? "focused" : "",)}
onClicked={() => ws.focus()}
>
{`${ws.id}`.slice(-1)}
</button>
)))}
</box>
)}
</box>
);
}
@ -255,64 +239,57 @@ function shorten(title: string) {
function Clients(): JSX.Element {
const hyprland = Hyprland.get_default();
let clients = createBinding(hyprland, "clients")
return (
<box>
<With value={createBinding(hyprland, "focusedWorkspace")}>
{(fw: Hyprland.Workspace) => (
{
createBinding(hyprland, "focusedWorkspace").as(fw => (
<box class="clients">
<With value={clients}>
{(cls: Array<Hyprland.Client>) => {
let filtered_clients = new Accessor(() => cls
{
createBinding(hyprland, "clients").as(cls =>
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()))
.filter(cl => fw && cl.get_workspace().get_id() === fw.get_id())
.map(cl => (
<box
class={createBinding(hyprland, "focusedClient").as(a => a && a.address === cl.address ? "focused" : "unfocused")}
>
{/* <icon */}
{/* icon={getIconName(cl)} */}
{/* class="app-icon" */}
{/* /> */}
<label label={createBinding(cl, 'title').as(title => shorten(title))} />
</box>
)
)
)
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>
)
}
</With >
</box >
)
}
</box>
);
}
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 >
)
export default function Bar(gdkmonitor: Gdk.Monitor, scaleFactor: number = 1): Gtk.Window {
return new Gtk.Window({
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",
s: self => self.connect("destroy", () => {
print("Detroying bar");
app.remove_window(self);
}),
child: <centerbox class="window-box">
<Left />
<Center />
<Right />
</centerbox>
})
}

View File

@ -3,6 +3,8 @@ import style from "./style.scss"
import Bar from "./Bar"
import Hyprland from "gi://AstalHyprland";
import NotificationPopups from "./notifications/NotificationPopups"
import Gtk from "gi://Gtk?version=4.0";
import { Gdk } from "ags/gtk4";
const hyprland = Hyprland.get_default();
@ -22,10 +24,15 @@ function find_main_monitor(): Hyprland.Monitor {
}
function register_windows(monitor: Hyprland.Monitor) {
let gtkMonitor = app.get_monitors()[0]
let gtkMonitors = app.get_monitors()[0].get_display().get_monitors()
let gtkMonitor = gtkMonitors.get_item(0)
if (!gtkMonitor) {
console.error("No GTK monitor found for the Hyprland monitor:", monitor.get_name());
return;
}
let scale = (monitor.get_width() >= 3000) ? 1.2 : 1
Bar(gtkMonitor, scale)
NotificationPopups()
NotificationPopups(gtkMonitor)
}
function switch_to_best_monitor() {

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

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

View File

@ -1,110 +1,125 @@
@use "sass:string";
@function gtkalpha($c, $a) {
@return string.unquote("alpha(#{$c},#{$a})");
@return string.unquote("alpha(#{$c},#{$a})");
}
// https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/gtk/theme/Adwaita/_colors-public.scss
$fg-color: #{"@theme_bg_color"};
$fg-color: #{"@theme_fg_color"};
$bg-color: #1f2430;
$error: red;
window.NotificationPopups {
all: unset;
all: unset;
}
.Notification {
border-radius: 13px;
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);
eventbox.Notification {
&.critical {
border: 1pt solid gtkalpha($error, 0.4);
&: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;
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);
}
&.critical>box {
border: 1pt solid gtkalpha($error, .4);
.header {
.app-name {
color: gtkalpha($error, .8);
}
.app-icon {
color: gtkalpha($error, .6);
}
}
}
.header {
.app-name {
color: gtkalpha($error, 0.8);
}
padding: .5rem;
color: gtkalpha($fg-color, 0.5);
.app-icon {
color: gtkalpha($error, 0.6);
}
}
}
.app-icon {
margin: 0 .4rem;
}
.header {
padding: 0.5rem;
color: gtkalpha($fg-color, 0.5);
.app-name {
margin-right: .3rem;
font-weight: bold;
.app-icon {
margin: 0 0.4rem;
&:first-child {
margin-left: .4rem;
}
}
.time {
margin: 0 .4rem;
}
button {
padding: .2rem;
min-width: 0;
min-height: 0;
}
}
.app-name {
margin-right: 0.3rem;
font-weight: bold;
&:first-child {
margin-left: 0.4rem;
}
separator {
margin: 0 .4rem;
background-color: gtkalpha($fg-color, .1);
}
.time {
margin: 0 0.4rem;
.content {
margin: 1rem;
margin-top: .5rem;
.summary {
font-size: 1.2em;
color: $fg-color;
}
.body {
color: gtkalpha($fg-color, 0.8);
}
.image {
border: 1px solid gtkalpha($fg-color, .02);
margin-right: .5rem;
border-radius: 9px;
min-width: 100px;
min-height: 100px;
background-size: cover;
background-position: center;
}
}
button {
padding: 0.2rem;
min-width: 0;
min-height: 0;
.actions {
margin: 1rem;
margin-top: 0;
button {
margin: 0 .3rem;
&:first-child {
margin-left: 0;
}
&:last-child {
margin-right: 0;
}
}
}
}
separator {
margin: 0 0.4rem;
background-color: gtkalpha($fg-color, 0.1);
}
.content {
margin: 1rem;
margin-top: 0.5rem;
.summary {
font-size: 1.2em;
color: $fg-color;
}
.body {
color: gtkalpha($fg-color, 0.8);
}
.image {
border: 1px solid gtkalpha($fg-color, 0.02);
margin-right: 0.5rem;
border-radius: 9px;
min-width: 100px;
min-height: 100px;
background-size: cover;
background-position: center;
}
}
.actions {
margin: 1rem;
margin-top: 0;
button {
margin: 0 0.3rem;
&:first-child {
margin-left: 0;
}
&:last-child {
margin-right: 0;
}
}
}
}

View File

@ -1,124 +1,107 @@
import Gtk from "gi://Gtk?version=4.0"
import Gdk from "gi://Gdk?version=4.0"
import Adw from "gi://Adw"
import { Gtk, Astal } from "ags/gtk4"
import { EventBox } from "ags"
import Notifd from "gi://AstalNotifd"
import GLib from "gi://GLib"
import AstalNotifd from "gi://AstalNotifd"
import Pango from "gi://Pango"
import { timeout } from "ags/time"
function isIcon(icon?: string | null) {
const iconTheme = Gtk.IconTheme.get_for_display(Gdk.Display.get_default()!)
return icon && iconTheme.has_icon(icon)
}
const isIcon = (icon: string) =>
!!Astal.Icon.lookup_icon(icon)
function fileExists(path: string) {
return GLib.file_test(path, GLib.FileTest.EXISTS)
}
const fileExists = (path: string) =>
GLib.file_test(path, GLib.FileTest.EXISTS)
function time(time: number, format = "%H:%M") {
return GLib.DateTime.new_from_unix_local(time).format(format)!
}
const time = (time: number, format = "%H:%M") => GLib.DateTime
.new_from_unix_local(time)
.format(format)!
function urgency(n: AstalNotifd.Notification) {
const { LOW, NORMAL, CRITICAL } = AstalNotifd.Urgency
const urgency = (n: Notifd.Notification) => {
const { LOW, NORMAL, CRITICAL } = Notifd.Urgency
// match operator when?
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"
}
}
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)}
iconName={n.appIcon || n.desktopEntry}
/>
)}
<label
class="app-name"
halign={Gtk.Align.START}
ellipsize={Pango.EllipsizeMode.END}
label={n.appName || "Unknown"}
/>
<label
class="time"
hexpand
halign={Gtk.Align.END}
label={time(n.time)}
/>
<button onClicked={() => n.dismiss()}>
<image iconName="window-close-symbolic" />
</button>
</box>
<Gtk.Separator visible />
<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
class="summary"
halign={Gtk.Align.START}
xalign={0}
label={n.summary}
ellipsize={Pango.EllipsizeMode.END}
/>
{n.body && (
<label
class="body"
wrap
useMarkup
halign={Gtk.Align.START}
xalign={0}
justify={Gtk.Justification.FILL}
label={n.body}
/>
)}
</box>
</box>
{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>
</Adw.Clamp>
)
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
class={`Notification ${urgency(n)}`}
setup={setup}
onHoverLost={onHoverLost}>
<box vertical>
<box class="header">
{(n.appIcon || n.desktopEntry) && <icon
class="app-icon"
visible={Boolean(n.appIcon || n.desktopEntry)}
icon={n.appIcon || n.desktopEntry}
/>}
<label
class="app-name"
halign={START}
truncate
label={n.appName || "Unknown"}
/>
<label
class="time"
hexpand
halign={END}
label={time(n.time)}
/>
<button onClicked={() => n.dismiss()}>
<icon icon="window-close-symbolic" />
</button>
</box>
<Gtk.Separator visible />
<box class="content">
{n.image && fileExists(n.image) && <box
valign={START}
class="image"
css={`background-image: url('${n.image}')`}
/>}
{n.image && isIcon(n.image) && <box
expand={false}
valign={START}
class="icon-image">
<icon icon={n.image} expand halign={CENTER} valign={CENTER} />
</box>}
<box vertical>
<label
class="summary"
halign={START}
xalign={0}
label={n.summary}
truncate
/>
{n.body && <label
class="body"
wrap
useMarkup
halign={START}
xalign={0}
justifyFill
label={n.body}
/>}
</box>
</box>
{n.get_actions().length > 0 && <box class="actions">
{n.get_actions().map(({ label, id }) => (
<button
hexpand
onClicked={() => n.invoke(id)}>
<label label={label} halign={CENTER} hexpand />
</button>
))}
</box>}
</box>
</eventbox>
}

View File

@ -1,65 +1,107 @@
import app from "ags/gtk4/app"
import { Astal, Gtk } from "ags/gtk4"
import AstalNotifd from "gi://AstalNotifd"
import { Astal, Gtk, Gdk } from "ags/gtk4"
import Notifd from "gi://AstalNotifd"
import Notification from "./Notification"
import { createBinding, For, createState, onCleanup } from "ags"
import { type Subscribable } from "astal/binding"
import { timeout } from "ags/time"
import { createBinding, createState } from "ags"
import GLib from "gi://GLib"
export default function NotificationPopups() {
const monitors = createBinding(app, "monitors")
// see comment below in constructor
const TIMEOUT_DELAY = 5000
const notifd = AstalNotifd.get_default()
// 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 [notifications, setNotifications] = createState(
new Array<AstalNotifd.Notification>(),
)
// it makes sense to use a Variable under the hood and use its
// reactivity implementation instead of keeping track of subscribers ourselves
private var: Array<Gtk.Widget> = createState([])
const notifiedHandler = notifd.connect("notified", (_, id, replaced) => {
const notification = notifd.get_notification(id)
// notify subscribers to rerender when state changes
private notifiy() {
this.var.set([...this.map.values()].reverse())
}
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()
const resolvedHandler = notifd.connect("resolved", (_, id) => {
setNotifications((ns) => ns.filter((n) => n.id !== id))
})
/**
* 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
// 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)
})
notifd.connect("notified", (_, id) => {
this.set(id, Notification({
notification: notifd.get_notification(id)!,
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),
)
}
/>
)}
</For>
</box>
</window>
)}
</For>
)
// 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)
})
}
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>
{createBinding(notifs)}
</box>
</window>
}

View File

@ -17,7 +17,7 @@ window.Bar {
margin-top: 0.2em;
}
.clients box box {
.clients box {
margin-right: 0.3em;
}
@ -27,13 +27,11 @@ window.Bar {
border-radius: 0.3em;
background: #1f2430;
}
.battery-item:hover {
background: #023269;
}
.item,
.clients box box {
.item, .clients box {
background: #1f2430;
padding-left: 0.7em;
padding-right: 0.7em;
@ -51,14 +49,12 @@ 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

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

View File

@ -1,4 +1,4 @@
{ lib, ... }:
{ config, pkgs, lib, ... }:
{
programs.kitty = {
@ -15,11 +15,8 @@
"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
hwdec=auto
gpu-api=opengl
force-window=yes
keep-open=yes

View File

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

View File

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

View File

@ -1,451 +0,0 @@
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,7 +40,6 @@ in {
};
Settings = {
AutoConnect = true;
Country = "ES";
};
General = {
EnableNetworkConfiguration = true;
@ -120,5 +119,4 @@ 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 = pkgs.lib.mkDefault true;
enable = true;
fallbackDns = [ "1.1.1.1" "1.0.0.1" ];
};
networking.nameservers = pkgs.lib.mkDefault ["1.1.1.1" "1.0.0.1"];
networking.nameservers = ["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,17 +18,6 @@
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,12 +45,4 @@
device = "/home/server/Workspace";
options = ["bind"];
};
services.resolved = {
enable = false;
};
networking.nameservers = ["192.168.1.2"];
programs.steam = {
enable = true;
gamescopeSession.enable = true;
};
}