Reconfigured AGS; types, tsc version, and flake are fixed up and working

This commit is contained in:
Chris Toph 2025-05-09 22:57:35 -04:00
parent c9fa10ccbd
commit 35de755a6c
93 changed files with 883862 additions and 225 deletions

1
.gitignore vendored
View file

@ -1,2 +1 @@
node_modules/
@girs/

1
.tool-versions Normal file
View file

@ -0,0 +1 @@
nodejs system

28
.vscode/settings.json vendored
View file

@ -1,12 +1,28 @@
{
"typescript.tsdk": "node_modules/typescript/lib",
"biome.enabled": true,
"editor.formatOnSave": true,
"explorer.fileNesting.patterns": {
"flake.nix": "*.nix, flake.lock, .envrc",
"flake.nix": "*.nix, flake.lock, .envrc, .tool-versions",
"package.json": " pnpm-lock.yaml, tsconfig.json, .gitignore"
},
"files.exclude": {
".direnv": true,
"node_modules": true,
"@girs": true
}
".direnv": true
// "@girs": true,
// "node_modules": true
},
"terminal.integrated.defaultProfile.linux": "fish-fhs",
"terminal.integrated.profiles.linux": {
"fish-fhs": {
"args": [
"--user",
"--pty",
"--quiet",
"--same-dir",
"--service-type=exec",
"fish"
],
"path": "systemd-run"
}
},
"typescript.tsdk": "./node_modules/typescript/lib"
}

83
@girs/appmenuglibtranslator-24.02.d.ts vendored Normal file
View file

@ -0,0 +1,83 @@
/// <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 {
// 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);
// Constructors
constructor(properties?: Partial<Importer.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](bus_name: string, object_path: string): Importer;
}
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

2248
@girs/astal-3.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

1564
@girs/astal-4.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

384
@girs/astalapps-0.1.d.ts vendored Normal file
View file

@ -0,0 +1,384 @@
/// <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 {
// 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[];
// Constructors
constructor(properties?: Partial<Application.ConstructorProps>, ...args: any[]);
_init(...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 {
// 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);
// Constructors
constructor(properties?: Partial<Apps.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Apps;
// 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

696
@girs/astalbattery-0.1.d.ts vendored Normal file
View file

@ -0,0 +1,696 @@
/// <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 {
// 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);
// Constructors
constructor(properties?: Partial<Device.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](path: never): Device;
// 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 callback interfaces
interface DeviceAdded {
(device: Device): void;
}
interface DeviceRemoved {
(device: Device): 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;
// Constructors
constructor(properties?: Partial<UPower.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): UPower;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'device-added', callback: (_source: this, device: Device) => void): number;
connect_after(signal: 'device-added', callback: (_source: this, device: Device) => void): number;
emit(signal: 'device-added', device: Device): void;
connect(signal: 'device-removed', callback: (_source: this, device: Device) => void): number;
connect_after(signal: 'device-removed', callback: (_source: this, device: Device) => void): number;
emit(signal: 'device-removed', device: Device): 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

551
@girs/astalbluetooth-0.1.d.ts vendored Normal file
View file

@ -0,0 +1,551 @@
/// <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://AstalBluetooth?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';
export namespace AstalBluetooth {
/**
* AstalBluetooth-0.1
*/
const MAJOR_VERSION: number;
const MINOR_VERSION: number;
const MICRO_VERSION: number;
const VERSION: string;
/**
* Gets the default singleton Bluetooth object.
*/
function get_default(): Bluetooth;
namespace Adapter {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
uuids: string[];
discovering: boolean;
modalias: string;
name: string;
class: number;
address: string;
discoverable: boolean;
pairable: boolean;
powered: boolean;
alias: string;
discoverable_timeout: number;
discoverableTimeout: number;
pairable_timeout: number;
pairableTimeout: number;
}
}
/**
* Object representing an [adapter](https://github.com/RadiusNetworks/bluez/blob/master/doc/adapter-api.txt).
*/
class Adapter extends GObject.Object {
static $gtype: GObject.GType<Adapter>;
// Properties
/**
* List of 128-bit UUIDs that represents the available local services.
*/
get uuids(): string[];
/**
* Indicates that a device discovery procedure is active.
*/
get discovering(): boolean;
/**
* Local Device ID information in modalias format used by the kernel and udev.
*/
get modalias(): string;
/**
* The Bluetooth system name (pretty hostname).
*/
get name(): string;
/**
* The Bluetooth class of device.
*/
get class(): number;
/**
* The Bluetooth device address.
*/
get address(): string;
/**
* Switch an adapter to discoverable or non-discoverable to either make it visible or hide it.
*/
get discoverable(): boolean;
set discoverable(val: boolean);
/**
* Switch an adapter to pairable or non-pairable.
*/
get pairable(): boolean;
set pairable(val: boolean);
/**
* Switch an adapter on or off.
*/
get powered(): boolean;
set powered(val: boolean);
/**
* The Bluetooth friendly name.
* In case no alias is set, it will return [property`AstalBluetooth`.Adapter:name].
*/
get alias(): string;
set alias(val: string);
/**
* The discoverable timeout in seconds. A value of zero means that the timeout is disabled and it will stay in discoverable/limited mode forever
* until [method`AstalBluetooth`.Adapter.stop_discovery] is invoked. The default value for the discoverable timeout should be `180`.
*/
get discoverable_timeout(): number;
set discoverable_timeout(val: number);
/**
* The discoverable timeout in seconds. A value of zero means that the timeout is disabled and it will stay in discoverable/limited mode forever
* until [method`AstalBluetooth`.Adapter.stop_discovery] is invoked. The default value for the discoverable timeout should be `180`.
*/
get discoverableTimeout(): number;
set discoverableTimeout(val: number);
/**
* The pairable timeout in seconds.
* A value of zero means that the timeout is disabled and it will stay in pairable mode forever. The default value for pairable timeout should be
* disabled `0`.
*/
get pairable_timeout(): number;
set pairable_timeout(val: number);
/**
* The pairable timeout in seconds.
* A value of zero means that the timeout is disabled and it will stay in pairable mode forever. The default value for pairable timeout should be
* disabled `0`.
*/
get pairableTimeout(): number;
set pairableTimeout(val: number);
// Constructors
constructor(properties?: Partial<Adapter.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* This removes the remote device and the pairing information.
* Possible errors: `InvalidArguments`, `Failed`.
* @param device
*/
remove_device(device: Device): void;
/**
* This method starts the device discovery procedure.
* Possible errors: `NotReady`, `Failed`.
*/
start_discovery(): void;
/**
* This method will cancel any previous [method`AstalBluetooth`.Adapter.start_discovery] procedure.
* Possible errors: `NotReady`, `Failed`, `NotAuthorized`.
*/
stop_discovery(): void;
get_uuids(): string[];
get_discovering(): boolean;
get_modalias(): string;
get_name(): string;
get_class(): number;
get_address(): string;
get_discoverable(): boolean;
set_discoverable(value: boolean): void;
get_pairable(): boolean;
set_pairable(value: boolean): void;
get_powered(): boolean;
set_powered(value: boolean): void;
get_alias(): string;
set_alias(value: string): void;
get_discoverable_timeout(): number;
set_discoverable_timeout(value: number): void;
get_pairable_timeout(): number;
set_pairable_timeout(value: number): void;
}
namespace Bluetooth {
// Signal callback interfaces
interface DeviceAdded {
(device: Device): void;
}
interface DeviceRemoved {
(device: Device): void;
}
interface AdapterAdded {
(adapter: Adapter): void;
}
interface AdapterRemoved {
(adapter: Adapter): void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
is_powered: boolean;
isPowered: boolean;
is_connected: boolean;
isConnected: boolean;
adapter: Adapter;
adapters: Adapter[];
devices: Device[];
}
}
/**
* Manager object for `org.bluez`.
*/
class Bluetooth extends GObject.Object {
static $gtype: GObject.GType<Bluetooth>;
// Properties
/**
* `true` if any of the [property`AstalBluetooth`.Bluetooth:adapters] are powered.
*/
get is_powered(): boolean;
set is_powered(val: boolean);
/**
* `true` if any of the [property`AstalBluetooth`.Bluetooth:adapters] are powered.
*/
get isPowered(): boolean;
set isPowered(val: boolean);
/**
* `true` if any of the [property`AstalBluetooth`.Bluetooth:devices] is connected.
*/
get is_connected(): boolean;
set is_connected(val: boolean);
/**
* `true` if any of the [property`AstalBluetooth`.Bluetooth:devices] is connected.
*/
get isConnected(): boolean;
set isConnected(val: boolean);
/**
* The first registered adapter which is usually the only adapter.
*/
get adapter(): Adapter;
/**
* List of adapters available on the host device.
*/
get adapters(): Adapter[];
/**
* List of registered devices on the `org.bluez` bus.
*/
get devices(): Device[];
// Constructors
constructor(properties?: Partial<Bluetooth.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Bluetooth;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'device-added', callback: (_source: this, device: Device) => void): number;
connect_after(signal: 'device-added', callback: (_source: this, device: Device) => void): number;
emit(signal: 'device-added', device: Device): void;
connect(signal: 'device-removed', callback: (_source: this, device: Device) => void): number;
connect_after(signal: 'device-removed', callback: (_source: this, device: Device) => void): number;
emit(signal: 'device-removed', device: Device): void;
connect(signal: 'adapter-added', callback: (_source: this, adapter: Adapter) => void): number;
connect_after(signal: 'adapter-added', callback: (_source: this, adapter: Adapter) => void): number;
emit(signal: 'adapter-added', adapter: Adapter): void;
connect(signal: 'adapter-removed', callback: (_source: this, adapter: Adapter) => void): number;
connect_after(signal: 'adapter-removed', callback: (_source: this, adapter: Adapter) => void): number;
emit(signal: 'adapter-removed', adapter: Adapter): void;
// Static methods
/**
* Gets the default singleton Bluetooth object.
*/
static get_default(): Bluetooth;
// Methods
/**
* Toggle the [property`AstalBluetooth`.Adapter:powered] property of the [property`AstalBluetooth`.Bluetooth:adapter].
*/
toggle(): void;
get_is_powered(): boolean;
get_is_connected(): boolean;
get_adapter(): Adapter | null;
get_adapters(): Adapter[];
get_devices(): Device[];
}
namespace Device {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
uuids: string[];
connected: boolean;
legacy_pairing: boolean;
legacyPairing: boolean;
paired: boolean;
rssi: number;
adapter: never;
address: string;
icon: string;
modalias: string;
name: string;
appearance: number;
class: number;
connecting: boolean;
blocked: boolean;
trusted: boolean;
battery_percentage: number;
batteryPercentage: number;
alias: string;
}
}
/**
* Object representing a [device](https://github.com/luetzel/bluez/blob/master/doc/device-api.txt).
*/
class Device extends GObject.Object {
static $gtype: GObject.GType<Device>;
// Properties
/**
* List of 128-bit UUIDs that represents the available remote services.
*/
get uuids(): string[];
/**
* Indicates if the remote device is currently connected.
*/
get connected(): boolean;
/**
* `true` if the device only supports the pre-2.1 pairing mechanism.
*/
get legacy_pairing(): boolean;
/**
* `true` if the device only supports the pre-2.1 pairing mechanism.
*/
get legacyPairing(): boolean;
/**
* Indicates if the remote device is paired.
*/
get paired(): boolean;
/**
* Received Signal Strength Indicator of the remote device (inquiry or advertising).
*/
get rssi(): number;
/**
* The object path of the adapter the device belongs to.
*/
get adapter(): never;
/**
* The Bluetooth device address of the remote device.
*/
get address(): string;
/**
* Proposed icon name.
*/
get icon(): string;
/**
* Remote Device ID information in modalias format used by the kernel and udev.
*/
get modalias(): string;
/**
* The Bluetooth remote name.
* It is always better to use [property`AstalBluetooth`.Device:alias].
*/
get name(): string;
/**
* External appearance of device, as found on GAP service.
*/
get appearance(): number;
/**
* The Bluetooth class of device of the remote device.
*/
get class(): number;
/**
* Indicates if this device is currently trying to be connected.
*/
get connecting(): boolean;
set connecting(val: boolean);
/**
* If set to `true` any incoming connections from the device will be immediately rejected.
*/
get blocked(): boolean;
set blocked(val: boolean);
/**
* Indicates if the remote is seen as trusted.
*/
get trusted(): boolean;
set trusted(val: boolean);
/**
* The percentage of battery left on the device if it has one, else -1.
*/
get battery_percentage(): number;
/**
* The percentage of battery left on the device if it has one, else -1.
*/
get batteryPercentage(): number;
/**
* The name alias for the remote device.
* In case no alias is set, it will return the remote device [property`AstalBluetooth`.Device:name].
*/
get alias(): string;
set alias(val: string);
// Constructors
constructor(properties?: Partial<Device.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* This is a generic method to connect any profiles the remote device supports that can be connected to.
* Possible errors: `NotReady`, `Failed`, `InProgress`, `AlreadyConnected`.
*/
connect_device(): Promise<void>;
/**
* This is a generic method to connect any profiles the remote device supports that can be connected to.
* Possible errors: `NotReady`, `Failed`, `InProgress`, `AlreadyConnected`.
* @param _callback_
*/
connect_device(_callback_: Gio.AsyncReadyCallback<this> | null): void;
/**
* This is a generic method to connect any profiles the remote device supports that can be connected to.
* Possible errors: `NotReady`, `Failed`, `InProgress`, `AlreadyConnected`.
* @param _callback_
*/
connect_device(_callback_?: Gio.AsyncReadyCallback<this> | null): Promise<void> | void;
connect_device_finish(_res_: Gio.AsyncResult): void;
/**
* This method gracefully disconnects all connected profiles.
* Possible errors: `NotConnected`.
*/
disconnect_device(): Promise<void>;
/**
* This method gracefully disconnects all connected profiles.
* Possible errors: `NotConnected`.
* @param _callback_
*/
disconnect_device(_callback_: Gio.AsyncReadyCallback<this> | null): void;
/**
* This method gracefully disconnects all connected profiles.
* Possible errors: `NotConnected`.
* @param _callback_
*/
disconnect_device(_callback_?: Gio.AsyncReadyCallback<this> | null): Promise<void> | void;
disconnect_device_finish(_res_: Gio.AsyncResult): void;
/**
* This method connects a specific profile of this device. The UUID provided is the remote service UUID for the profile.
* Possible errors: `Failed`, `InProgress`, `InvalidArguments`, `NotAvailable`, `NotReady`.
* @param uuid the remote service UUID.
*/
connect_profile(uuid: string): void;
/**
* This method disconnects a specific profile of this device.
* Possible errors: `Failed`, `InProgress`, `InvalidArguments`, `NotSupported`.
* @param uuid the remote service UUID.
*/
disconnect_profile(uuid: string): void;
/**
* This method will connect to the remote device and initiate pairing.
* Possible errors: `InvalidArguments`, `Failed`, `AlreadyExists`, `AuthenticationCanceled`, `AuthenticationFailed`, `AuthenticationRejected`,
* `AuthenticationTimeout`, `ConnectionAttemptFailed`.
*/
pair(): void;
/**
* This method can be used to cancel a pairing operation initiated by [method`AstalBluetooth`.Device.pair].
* Possible errors: `DoesNotExist`, `Failed`.
*/
cancel_pairing(): void;
get_uuids(): string[];
get_connected(): boolean;
get_legacy_pairing(): boolean;
get_paired(): boolean;
get_rssi(): number;
get_adapter(): never;
get_address(): string;
get_icon(): string;
get_modalias(): string;
get_name(): string;
get_appearance(): number;
get_class(): number;
get_connecting(): boolean;
get_blocked(): boolean;
set_blocked(value: boolean): void;
get_trusted(): boolean;
set_trusted(value: boolean): void;
get_battery_percentage(): number;
get_alias(): string;
set_alias(value: string): void;
}
type AdapterClass = typeof Adapter;
abstract class AdapterPrivate {
static $gtype: GObject.GType<AdapterPrivate>;
// Constructors
_init(...args: any[]): void;
}
type BluetoothClass = typeof Bluetooth;
abstract class BluetoothPrivate {
static $gtype: GObject.GType<BluetoothPrivate>;
// Constructors
_init(...args: any[]): void;
}
type DeviceClass = typeof Device;
abstract class DevicePrivate {
static $gtype: GObject.GType<DevicePrivate>;
// 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 AstalBluetooth;
}
declare module 'gi://AstalBluetooth' {
import AstalBluetooth01 from 'gi://AstalBluetooth?version=0.1';
export default AstalBluetooth01;
}
// END

222
@girs/astalcava-0.1.d.ts vendored Normal file
View file

@ -0,0 +1,222 @@
/// <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://AstalCava?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';
export namespace AstalCava {
/**
* AstalCava-0.1
*/
export namespace Input {
export const $gtype: GObject.GType<Input>;
}
enum Input {
FIFO,
PORTAUDIO,
PIPEWIRE,
ALSA,
PULSE,
SNDIO,
SHMEM,
WINSCAP,
}
/**
* gets the default Cava object.
*/
function get_default(): Cava | null;
namespace Cava {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
active: boolean;
autosens: boolean;
bars: number;
channels: number;
framerate: number;
high_cutoff: number;
highCutoff: number;
input: Input;
low_cutoff: number;
lowCutoff: number;
noise_reduction: number;
noiseReduction: number;
samplerate: number;
source: string;
stereo: boolean;
values: number[];
}
}
class Cava extends GObject.Object {
static $gtype: GObject.GType<Cava>;
// Properties
/**
* whether or not the audio capture and visualization is running. if false the values array will
* not be updated.
*/
get active(): boolean;
set active(val: boolean);
/**
* When set, the sensitivity will automatically be adjusted.
*/
get autosens(): boolean;
set autosens(val: boolean);
/**
* the number of bars the visualizer should create.
*/
get bars(): number;
set bars(val: number);
/**
* how many input channels to consider
*/
get channels(): number;
set channels(val: number);
/**
* how often the values should be updated
*/
get framerate(): number;
set framerate(val: number);
/**
* cut off frequencies above this value
*/
get high_cutoff(): number;
set high_cutoff(val: number);
/**
* cut off frequencies above this value
*/
get highCutoff(): number;
set highCutoff(val: number);
/**
* specifies which audio server should be used.
*/
get input(): Input;
set input(val: Input);
/**
* cut off frequencies below this value
*/
get low_cutoff(): number;
set low_cutoff(val: number);
/**
* cut off frequencies below this value
*/
get lowCutoff(): number;
set lowCutoff(val: number);
/**
* adjusts the noise-reduction filter. low values are fast and noisy, large values are slow and
* smooth.
*/
get noise_reduction(): number;
set noise_reduction(val: number);
/**
* adjusts the noise-reduction filter. low values are fast and noisy, large values are slow and
* smooth.
*/
get noiseReduction(): number;
set noiseReduction(val: number);
/**
* the samplerate of the input
*/
get samplerate(): number;
set samplerate(val: number);
/**
* specifies which audio source should be used. Refer to the cava docs on how to use this
* property.
*/
get source(): string;
set source(val: string);
get stereo(): boolean;
set stereo(val: boolean);
/**
* A list of values, each represent the height of one bar. The values are generally between 0
* and 1 but can overshoot occasionally, in which case the sensitivity will be decreased
* automatically if [property`AstalCava`.Cava:autosens] is set. The array will have
* [property`AstalCava`.Cava:bars] entries. If [property`AstalCava`.Cava:stereo] is set, the first
* half of the array will represent the left channel and the second half the right channel, so
* there will be only bars/2 bars per channel. If the number of bars is odd, the last value will
* be 0.
*/
get values(): number[];
// Constructors
constructor(properties?: Partial<Cava.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Static methods
/**
* gets the default Cava object.
*/
static get_default(): Cava | null;
// Methods
get_active(): boolean;
get_autosens(): boolean;
get_bars(): number;
get_channels(): number;
get_framerate(): number;
get_high_cutoff(): number;
get_input(): Input;
get_low_cutoff(): number;
get_noise_reduction(): number;
get_samplerate(): number;
get_source(): string;
get_stereo(): boolean;
get_values(): number[];
set_active(active: boolean): void;
set_autosens(autosens: boolean): void;
set_bars(bars: number): void;
set_channels(channels: number): void;
set_framerate(framerate: number): void;
set_high_cutoff(high_cutoff: number): void;
set_input(input: Input | null): void;
set_low_cutoff(low_cutoff: number): void;
set_noise_reduction(noise: number): void;
set_samplerate(samplerate: number): void;
set_source(source: string): void;
set_stereo(stereo: boolean): void;
}
type CavaClass = typeof Cava;
/**
* 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 AstalCava;
}
declare module 'gi://AstalCava' {
import AstalCava01 from 'gi://AstalCava?version=0.1';
export default AstalCava01;
}
// END

887
@girs/astalhyprland-0.1.d.ts vendored Normal file
View file

@ -0,0 +1,887 @@
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gio-2.0.d.ts" />
/// <reference path="./gobject-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://AstalHyprland?version=0.1' {
// Module dependencies
import type GLib from 'gi://GLib?version=2.0';
import type Gio from 'gi://Gio?version=2.0';
import type GObject from 'gi://GObject?version=2.0';
import type GModule from 'gi://GModule?version=2.0';
export namespace AstalHyprland {
/**
* AstalHyprland-0.1
*/
export namespace MonitorTransform {
export const $gtype: GObject.GType<MonitorTransform>;
}
enum MonitorTransform {
NORMAL,
ROTATE_90_DEG,
ROTATE_180_DEG,
ROTATE_270_DEG,
FLIPPED,
FLIPPED_ROTATE_90_DEG,
FLIPPED_ROTATE_180_DEG,
FLIPPED_ROTATE_270_DEG,
}
const MAJOR_VERSION: number;
const MINOR_VERSION: number;
const MICRO_VERSION: number;
const VERSION: string;
function get_default(): Hyprland;
export namespace Fullscreen {
export const $gtype: GObject.GType<Fullscreen>;
}
enum Fullscreen {
CURRENT,
NONE,
MAXIMIZED,
FULLSCREEN,
}
namespace Client {
// Signal callback interfaces
interface Removed {
(): void;
}
interface MovedTo {
(workspace: Workspace): void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
address: string;
mapped: boolean;
hidden: boolean;
x: number;
y: number;
width: number;
height: number;
workspace: Workspace;
floating: boolean;
monitor: Monitor;
class: string;
title: string;
initial_class: string;
initialClass: string;
initial_title: string;
initialTitle: string;
pid: number;
xwayland: boolean;
pinned: boolean;
fullscreen: Fullscreen;
fullscreen_client: Fullscreen;
fullscreenClient: Fullscreen;
swallowing: string;
focus_history_id: number;
focusHistoryId: number;
}
}
class Client extends GObject.Object {
static $gtype: GObject.GType<Client>;
// Properties
get address(): string;
set address(val: string);
get mapped(): boolean;
set mapped(val: boolean);
get hidden(): boolean;
set hidden(val: boolean);
get x(): number;
set x(val: number);
get y(): number;
set y(val: number);
get width(): number;
set width(val: number);
get height(): number;
set height(val: number);
get workspace(): Workspace;
set workspace(val: Workspace);
get floating(): boolean;
set floating(val: boolean);
get monitor(): Monitor;
set monitor(val: Monitor);
get class(): string;
set class(val: string);
get title(): string;
set title(val: string);
get initial_class(): string;
set initial_class(val: string);
get initialClass(): string;
set initialClass(val: string);
get initial_title(): string;
set initial_title(val: string);
get initialTitle(): string;
set initialTitle(val: string);
get pid(): number;
set pid(val: number);
get xwayland(): boolean;
set xwayland(val: boolean);
get pinned(): boolean;
set pinned(val: boolean);
get fullscreen(): Fullscreen;
set fullscreen(val: Fullscreen);
get fullscreen_client(): Fullscreen;
set fullscreen_client(val: Fullscreen);
get fullscreenClient(): Fullscreen;
set fullscreenClient(val: Fullscreen);
get swallowing(): string;
set swallowing(val: string);
get focus_history_id(): number;
set focus_history_id(val: number);
get focusHistoryId(): number;
set focusHistoryId(val: number);
// Constructors
constructor(properties?: Partial<Client.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Client;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'removed', callback: (_source: this) => void): number;
connect_after(signal: 'removed', callback: (_source: this) => void): number;
emit(signal: 'removed'): void;
connect(signal: 'moved-to', callback: (_source: this, workspace: Workspace) => void): number;
connect_after(signal: 'moved-to', callback: (_source: this, workspace: Workspace) => void): number;
emit(signal: 'moved-to', workspace: Workspace): void;
// Methods
kill(): void;
focus(): void;
move_to(ws: Workspace): void;
toggle_floating(): void;
get_address(): string;
get_mapped(): boolean;
get_hidden(): boolean;
get_x(): number;
get_y(): number;
get_width(): number;
get_height(): number;
get_workspace(): Workspace;
get_floating(): boolean;
get_monitor(): Monitor;
get_class(): string;
get_title(): string;
get_initial_class(): string;
get_initial_title(): string;
get_pid(): number;
get_xwayland(): boolean;
get_pinned(): boolean;
get_fullscreen(): Fullscreen;
get_fullscreen_client(): Fullscreen;
get_swallowing(): string;
get_focus_history_id(): number;
}
namespace Hyprland {
// Signal callback interfaces
interface Event {
(event: string, args: string): void;
}
interface Minimize {
(client: Client, minimize: boolean): void;
}
interface Floating {
(client: Client, floating: boolean): void;
}
interface Urgent {
(client: Client): void;
}
interface ClientMoved {
(client: Client, ws: Workspace): void;
}
interface Submap {
(name: string): void;
}
interface KeyboardLayout {
(keyboard: string, layout: string): void;
}
interface ConfigReloaded {
(): void;
}
interface ClientAdded {
(client: Client): void;
}
interface ClientRemoved {
(address: string): void;
}
interface WorkspaceAdded {
(workspace: Workspace): void;
}
interface WorkspaceRemoved {
(id: number): void;
}
interface MonitorAdded {
(monitor: Monitor): void;
}
interface MonitorRemoved {
(id: number): void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
monitors: Monitor[];
workspaces: Workspace[];
clients: Client[];
focused_workspace: Workspace;
focusedWorkspace: Workspace;
focused_monitor: Monitor;
focusedMonitor: Monitor;
focused_client: Client;
focusedClient: Client;
binds: Bind[];
cursor_position: Position;
cursorPosition: Position;
}
}
class Hyprland extends GObject.Object {
static $gtype: GObject.GType<Hyprland>;
// Properties
get monitors(): Monitor[];
get workspaces(): Workspace[];
get clients(): Client[];
get focused_workspace(): Workspace;
set focused_workspace(val: Workspace);
get focusedWorkspace(): Workspace;
set focusedWorkspace(val: Workspace);
get focused_monitor(): Monitor;
set focused_monitor(val: Monitor);
get focusedMonitor(): Monitor;
set focusedMonitor(val: Monitor);
get focused_client(): Client;
set focused_client(val: Client);
get focusedClient(): Client;
set focusedClient(val: Client);
get binds(): Bind[];
get cursor_position(): Position;
get cursorPosition(): Position;
// Constructors
constructor(properties?: Partial<Hyprland.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Hyprland;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'event', callback: (_source: this, event: string, args: string) => void): number;
connect_after(signal: 'event', callback: (_source: this, event: string, args: string) => void): number;
emit(signal: 'event', event: string, args: string): void;
connect(signal: 'minimize', callback: (_source: this, client: Client, minimize: boolean) => void): number;
connect_after(
signal: 'minimize',
callback: (_source: this, client: Client, minimize: boolean) => void,
): number;
emit(signal: 'minimize', client: Client, minimize: boolean): void;
connect(signal: 'floating', callback: (_source: this, client: Client, floating: boolean) => void): number;
connect_after(
signal: 'floating',
callback: (_source: this, client: Client, floating: boolean) => void,
): number;
emit(signal: 'floating', client: Client, floating: boolean): void;
connect(signal: 'urgent', callback: (_source: this, client: Client) => void): number;
connect_after(signal: 'urgent', callback: (_source: this, client: Client) => void): number;
emit(signal: 'urgent', client: Client): void;
connect(signal: 'client-moved', callback: (_source: this, client: Client, ws: Workspace) => void): number;
connect_after(
signal: 'client-moved',
callback: (_source: this, client: Client, ws: Workspace) => void,
): number;
emit(signal: 'client-moved', client: Client, ws: Workspace): void;
connect(signal: 'submap', callback: (_source: this, name: string) => void): number;
connect_after(signal: 'submap', callback: (_source: this, name: string) => void): number;
emit(signal: 'submap', name: string): void;
connect(
signal: 'keyboard-layout',
callback: (_source: this, keyboard: string, layout: string) => void,
): number;
connect_after(
signal: 'keyboard-layout',
callback: (_source: this, keyboard: string, layout: string) => void,
): number;
emit(signal: 'keyboard-layout', keyboard: string, layout: string): void;
connect(signal: 'config-reloaded', callback: (_source: this) => void): number;
connect_after(signal: 'config-reloaded', callback: (_source: this) => void): number;
emit(signal: 'config-reloaded'): void;
connect(signal: 'client-added', callback: (_source: this, client: Client) => void): number;
connect_after(signal: 'client-added', callback: (_source: this, client: Client) => void): number;
emit(signal: 'client-added', client: Client): void;
connect(signal: 'client-removed', callback: (_source: this, address: string) => void): number;
connect_after(signal: 'client-removed', callback: (_source: this, address: string) => void): number;
emit(signal: 'client-removed', address: string): void;
connect(signal: 'workspace-added', callback: (_source: this, workspace: Workspace) => void): number;
connect_after(signal: 'workspace-added', callback: (_source: this, workspace: Workspace) => void): number;
emit(signal: 'workspace-added', workspace: Workspace): void;
connect(signal: 'workspace-removed', callback: (_source: this, id: number) => void): number;
connect_after(signal: 'workspace-removed', callback: (_source: this, id: number) => void): number;
emit(signal: 'workspace-removed', id: number): void;
connect(signal: 'monitor-added', callback: (_source: this, monitor: Monitor) => void): number;
connect_after(signal: 'monitor-added', callback: (_source: this, monitor: Monitor) => void): number;
emit(signal: 'monitor-added', monitor: Monitor): void;
connect(signal: 'monitor-removed', callback: (_source: this, id: number) => void): number;
connect_after(signal: 'monitor-removed', callback: (_source: this, id: number) => void): number;
emit(signal: 'monitor-removed', id: number): void;
// Static methods
static get_default(): Hyprland | null;
// Methods
get_monitor(id: number): Monitor;
get_workspace(id: number): Workspace;
get_client(address: string): Client | null;
get_monitor_by_name(name: string): Monitor | null;
get_workspace_by_name(name: string): Workspace | null;
message(message: string): string;
message_async(message: string): Promise<string>;
message_async(message: string, _callback_: Gio.AsyncReadyCallback<this> | null): void;
message_async(message: string, _callback_?: Gio.AsyncReadyCallback<this> | null): Promise<string> | void;
message_finish(_res_: Gio.AsyncResult): string;
dispatch(dispatcher: string, args: string): void;
move_cursor(x: number, y: number): void;
sync_monitors(): Promise<void>;
sync_monitors(_callback_: Gio.AsyncReadyCallback<this> | null): void;
sync_monitors(_callback_?: Gio.AsyncReadyCallback<this> | null): Promise<void> | void;
sync_monitors_finish(_res_: Gio.AsyncResult): void;
sync_workspaces(): Promise<void>;
sync_workspaces(_callback_: Gio.AsyncReadyCallback<this> | null): void;
sync_workspaces(_callback_?: Gio.AsyncReadyCallback<this> | null): Promise<void> | void;
sync_workspaces_finish(_res_: Gio.AsyncResult): void;
sync_clients(): Promise<void>;
sync_clients(_callback_: Gio.AsyncReadyCallback<this> | null): void;
sync_clients(_callback_?: Gio.AsyncReadyCallback<this> | null): Promise<void> | void;
sync_clients_finish(_res_: Gio.AsyncResult): void;
get_monitors(): Monitor[];
get_workspaces(): Workspace[];
get_clients(): Client[];
get_focused_workspace(): Workspace;
get_focused_monitor(): Monitor;
get_focused_client(): Client;
get_binds(): Bind[];
get_cursor_position(): Position;
}
namespace Monitor {
// Signal callback interfaces
interface Removed {
(): void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
id: number;
name: string;
description: string;
make: string;
model: string;
serial: string;
width: number;
height: number;
refresh_rate: number;
refreshRate: number;
x: number;
y: number;
active_workspace: Workspace;
activeWorkspace: Workspace;
special_workspace: Workspace;
specialWorkspace: Workspace;
reserved_top: number;
reservedTop: number;
reserved_bottom: number;
reservedBottom: number;
reserved_left: number;
reservedLeft: number;
reserved_right: number;
reservedRight: number;
scale: number;
transform: MonitorTransform;
focused: boolean;
dpms_status: boolean;
dpmsStatus: boolean;
vrr: boolean;
actively_tearing: boolean;
activelyTearing: boolean;
disabled: boolean;
current_format: string;
currentFormat: string;
available_modes: string[];
availableModes: string[];
}
}
class Monitor extends GObject.Object {
static $gtype: GObject.GType<Monitor>;
// Properties
get id(): number;
set id(val: number);
get name(): string;
set name(val: string);
get description(): string;
set description(val: string);
get make(): string;
set make(val: string);
get model(): string;
set model(val: string);
get serial(): string;
set serial(val: string);
get width(): number;
set width(val: number);
get height(): number;
set height(val: number);
get refresh_rate(): number;
set refresh_rate(val: number);
get refreshRate(): number;
set refreshRate(val: number);
get x(): number;
set x(val: number);
get y(): number;
set y(val: number);
get active_workspace(): Workspace;
set active_workspace(val: Workspace);
get activeWorkspace(): Workspace;
set activeWorkspace(val: Workspace);
get special_workspace(): Workspace;
set special_workspace(val: Workspace);
get specialWorkspace(): Workspace;
set specialWorkspace(val: Workspace);
get reserved_top(): number;
set reserved_top(val: number);
get reservedTop(): number;
set reservedTop(val: number);
get reserved_bottom(): number;
set reserved_bottom(val: number);
get reservedBottom(): number;
set reservedBottom(val: number);
get reserved_left(): number;
set reserved_left(val: number);
get reservedLeft(): number;
set reservedLeft(val: number);
get reserved_right(): number;
set reserved_right(val: number);
get reservedRight(): number;
set reservedRight(val: number);
get scale(): number;
set scale(val: number);
get transform(): MonitorTransform;
set transform(val: MonitorTransform);
get focused(): boolean;
set focused(val: boolean);
get dpms_status(): boolean;
set dpms_status(val: boolean);
get dpmsStatus(): boolean;
set dpmsStatus(val: boolean);
get vrr(): boolean;
set vrr(val: boolean);
get actively_tearing(): boolean;
set actively_tearing(val: boolean);
get activelyTearing(): boolean;
set activelyTearing(val: boolean);
get disabled(): boolean;
set disabled(val: boolean);
get current_format(): string;
set current_format(val: string);
get currentFormat(): string;
set currentFormat(val: string);
get available_modes(): string[];
set available_modes(val: string[]);
get availableModes(): string[];
set availableModes(val: string[]);
// Constructors
constructor(properties?: Partial<Monitor.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Monitor;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'removed', callback: (_source: this) => void): number;
connect_after(signal: 'removed', callback: (_source: this) => void): number;
emit(signal: 'removed'): void;
// Methods
focus(): void;
get_id(): number;
get_name(): string;
get_description(): string;
get_make(): string;
get_model(): string;
get_serial(): string;
get_width(): number;
get_height(): number;
get_refresh_rate(): number;
get_x(): number;
get_y(): number;
get_active_workspace(): Workspace;
get_special_workspace(): Workspace;
get_reserved_top(): number;
get_reserved_bottom(): number;
get_reserved_left(): number;
get_reserved_right(): number;
get_scale(): number;
get_transform(): MonitorTransform;
get_focused(): boolean;
get_dpms_status(): boolean;
get_vrr(): boolean;
get_actively_tearing(): boolean;
get_disabled(): boolean;
get_current_format(): string;
get_available_modes(): string[];
}
namespace Bind {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
locked: boolean;
mouse: boolean;
release: boolean;
repeat: boolean;
long_press: boolean;
longPress: boolean;
non_consuming: boolean;
nonConsuming: boolean;
has_description: boolean;
hasDescription: boolean;
modmask: number;
submap: string;
key: string;
keycode: number;
catch_all: boolean;
catchAll: boolean;
description: string;
dispatcher: string;
arg: string;
}
}
class Bind extends GObject.Object {
static $gtype: GObject.GType<Bind>;
// Properties
get locked(): boolean;
set locked(val: boolean);
get mouse(): boolean;
set mouse(val: boolean);
get release(): boolean;
set release(val: boolean);
get repeat(): boolean;
set repeat(val: boolean);
get long_press(): boolean;
set long_press(val: boolean);
get longPress(): boolean;
set longPress(val: boolean);
get non_consuming(): boolean;
set non_consuming(val: boolean);
get nonConsuming(): boolean;
set nonConsuming(val: boolean);
get has_description(): boolean;
set has_description(val: boolean);
get hasDescription(): boolean;
set hasDescription(val: boolean);
get modmask(): number;
set modmask(val: number);
get submap(): string;
set submap(val: string);
get key(): string;
set key(val: string);
get keycode(): number;
set keycode(val: number);
get catch_all(): boolean;
set catch_all(val: boolean);
get catchAll(): boolean;
set catchAll(val: boolean);
get description(): string;
set description(val: string);
get dispatcher(): string;
set dispatcher(val: string);
get arg(): string;
set arg(val: string);
// Constructors
constructor(properties?: Partial<Bind.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Bind;
// Methods
get_locked(): boolean;
set_locked(value: boolean): void;
get_mouse(): boolean;
set_mouse(value: boolean): void;
get_release(): boolean;
set_release(value: boolean): void;
get_repeat(): boolean;
set_repeat(value: boolean): void;
get_long_press(): boolean;
set_long_press(value: boolean): void;
get_non_consuming(): boolean;
set_non_consuming(value: boolean): void;
get_has_description(): boolean;
set_has_description(value: boolean): void;
get_modmask(): number;
set_modmask(value: number): void;
get_submap(): string;
set_submap(value: string): void;
get_key(): string;
set_key(value: string): void;
get_keycode(): number;
set_keycode(value: number): void;
get_catch_all(): boolean;
set_catch_all(value: boolean): void;
get_description(): string;
set_description(value: string): void;
get_dispatcher(): string;
set_dispatcher(value: string): void;
get_arg(): string;
set_arg(value: string): void;
}
namespace Position {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
x: number;
y: number;
}
}
class Position extends GObject.Object {
static $gtype: GObject.GType<Position>;
// Properties
get x(): number;
set x(val: number);
get y(): number;
set y(val: number);
// Constructors
constructor(properties?: Partial<Position.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Position;
// Methods
get_x(): number;
set_x(value: number): void;
get_y(): number;
set_y(value: number): void;
}
namespace Workspace {
// Signal callback interfaces
interface Removed {
(): void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
id: number;
name: string;
monitor: Monitor;
clients: Client[];
has_fullscreen: boolean;
hasFullscreen: boolean;
last_client: Client;
lastClient: Client;
}
}
class Workspace extends GObject.Object {
static $gtype: GObject.GType<Workspace>;
// Properties
get id(): number;
set id(val: number);
get name(): string;
set name(val: string);
get monitor(): Monitor;
set monitor(val: Monitor);
get clients(): Client[];
get has_fullscreen(): boolean;
set has_fullscreen(val: boolean);
get hasFullscreen(): boolean;
set hasFullscreen(val: boolean);
get last_client(): Client;
set last_client(val: Client);
get lastClient(): Client;
set lastClient(val: Client);
// Constructors
constructor(properties?: Partial<Workspace.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static dummy(id: number, monitor?: Monitor | null): Workspace;
static ['new'](): Workspace;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'removed', callback: (_source: this) => void): number;
connect_after(signal: 'removed', callback: (_source: this) => void): number;
emit(signal: 'removed'): void;
// Methods
focus(): void;
move_to(m: Monitor): void;
get_id(): number;
get_name(): string;
get_monitor(): Monitor;
get_clients(): Client[];
get_has_fullscreen(): boolean;
get_last_client(): Client;
}
type ClientClass = typeof Client;
abstract class ClientPrivate {
static $gtype: GObject.GType<ClientPrivate>;
// Constructors
_init(...args: any[]): void;
}
type HyprlandClass = typeof Hyprland;
abstract class HyprlandPrivate {
static $gtype: GObject.GType<HyprlandPrivate>;
// Constructors
_init(...args: any[]): void;
}
type MonitorClass = typeof Monitor;
abstract class MonitorPrivate {
static $gtype: GObject.GType<MonitorPrivate>;
// Constructors
_init(...args: any[]): void;
}
type BindClass = typeof Bind;
abstract class BindPrivate {
static $gtype: GObject.GType<BindPrivate>;
// Constructors
_init(...args: any[]): void;
}
type PositionClass = typeof Position;
abstract class PositionPrivate {
static $gtype: GObject.GType<PositionPrivate>;
// Constructors
_init(...args: any[]): void;
}
type WorkspaceClass = typeof Workspace;
abstract class WorkspacePrivate {
static $gtype: GObject.GType<WorkspacePrivate>;
// 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 AstalHyprland;
}
declare module 'gi://AstalHyprland' {
import AstalHyprland01 from 'gi://AstalHyprland?version=0.1';
export default AstalHyprland01;
}
// END

1113
@girs/astalio-0.1.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

651
@girs/astalmpris-0.1.d.ts vendored Normal file
View file

@ -0,0 +1,651 @@
/// <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 callback interfaces
interface PlayerAdded {
(player: Player): void;
}
interface PlayerClosed {
(player: Player): 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[];
// Constructors
constructor(properties?: Partial<Mpris.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Mpris;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'player-added', callback: (_source: this, player: Player) => void): number;
connect_after(signal: 'player-added', callback: (_source: this, player: Player) => void): number;
emit(signal: 'player-added', player: Player): void;
connect(signal: 'player-closed', callback: (_source: this, player: Player) => void): number;
connect_after(signal: 'player-closed', callback: (_source: this, player: Player) => void): number;
emit(signal: 'player-closed', player: Player): void;
// Static methods
/**
* Gets the default singleton Mpris instance.
*/
static get_default(): Mpris;
// Methods
get_players(): Player[];
}
namespace Player {
// 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);
// Constructors
constructor(properties?: Partial<Player.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](name: string): Player;
// 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

466
@girs/astalnetwork-0.1.d.ts vendored Normal file
View file

@ -0,0 +1,466 @@
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./nm-1.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://AstalNetwork?version=0.1' {
// Module dependencies
import type GLib from 'gi://GLib?version=2.0';
import type GObject from 'gi://GObject?version=2.0';
import type NM from 'gi://NM?version=1.0';
import type Gio from 'gi://Gio?version=2.0';
import type GModule from 'gi://GModule?version=2.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 Network {
// 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;
// Constructors
constructor(properties?: Partial<Network.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Network;
// 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 callback interfaces
interface StateChanged {
(new_state: DeviceState, old_state: DeviceState, reaseon: NM.DeviceStateReason): 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);
// Constructors
constructor(properties?: Partial<Wifi.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(
signal: 'state-changed',
callback: (
_source: this,
new_state: DeviceState,
old_state: DeviceState,
reaseon: NM.DeviceStateReason,
) => void,
): number;
connect_after(
signal: 'state-changed',
callback: (
_source: this,
new_state: DeviceState,
old_state: DeviceState,
reaseon: NM.DeviceStateReason,
) => void,
): number;
emit(
signal: 'state-changed',
new_state: DeviceState,
old_state: DeviceState,
reaseon: NM.DeviceStateReason,
): void;
// Methods
scan(): 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 {
// 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);
// Fields
connection: NM.ActiveConnection;
// Constructors
constructor(properties?: Partial<Wired.ConstructorProps>, ...args: any[]);
_init(...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;
}
namespace AccessPoint {
// 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;
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 ssid(): string;
// Constructors
constructor(properties?: Partial<AccessPoint.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
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_ssid(): string | null;
}
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;
}
type AccessPointClass = typeof AccessPoint;
abstract class AccessPointPrivate {
static $gtype: GObject.GType<AccessPointPrivate>;
// 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

443
@girs/astalnotifd-0.1.d.ts vendored Normal file
View file

@ -0,0 +1,443 @@
/// <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 callback interfaces
interface Notified {
(id: number, replaced: boolean): void;
}
interface Resolved {
(id: number, reason: ClosedReason): 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[];
// Constructors
constructor(properties?: Partial<Notifd.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Notifd;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'notified', callback: (_source: this, id: number, replaced: boolean) => void): number;
connect_after(signal: 'notified', callback: (_source: this, id: number, replaced: boolean) => void): number;
emit(signal: 'notified', id: number, replaced: boolean): void;
connect(signal: 'resolved', callback: (_source: this, id: number, reason: ClosedReason) => void): number;
connect_after(
signal: 'resolved',
callback: (_source: this, id: number, reason: ClosedReason) => void,
): number;
emit(signal: 'resolved', id: number, reason: ClosedReason): 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 callback interfaces
interface Resolved {
(reason: ClosedReason): void;
}
interface Invoked {
(action_id: string): 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;
// Constructors
constructor(properties?: Partial<Notification.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'resolved', callback: (_source: this, reason: ClosedReason) => void): number;
connect_after(signal: 'resolved', callback: (_source: this, reason: ClosedReason) => void): number;
emit(signal: 'resolved', reason: ClosedReason): void;
connect(signal: 'invoked', callback: (_source: this, action_id: string) => void): number;
connect_after(signal: 'invoked', callback: (_source: this, action_id: string) => void): number;
emit(signal: 'invoked', action_id: string): 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

224
@girs/astalpowerprofiles-0.1.d.ts vendored Normal file
View file

@ -0,0 +1,224 @@
/// <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 callback interfaces
interface ProfileReleased {
(cookie: number): 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;
// Constructors
constructor(properties?: Partial<PowerProfiles.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): PowerProfiles;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'profile-released', callback: (_source: this, cookie: number) => void): number;
connect_after(signal: 'profile-released', callback: (_source: this, cookie: number) => void): number;
emit(signal: 'profile-released', cookie: number): 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

419
@girs/astaltray-0.1.d.ts vendored Normal file
View file

@ -0,0 +1,419 @@
/// <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 status_to_nick(): string;
/**
* Get the singleton instance of [class`AstalTray`.Tray]
*/
function get_default(): Tray;
namespace Tray {
// Signal callback interfaces
interface ItemAdded {
(item_id: string): void;
}
interface ItemRemoved {
(item_id: string): 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[];
// Constructors
constructor(properties?: Partial<Tray.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Tray;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'item-added', callback: (_source: this, item_id: string) => void): number;
connect_after(signal: 'item-added', callback: (_source: this, item_id: string) => void): number;
emit(signal: 'item-added', item_id: string): void;
connect(signal: 'item-removed', callback: (_source: this, item_id: string) => void): number;
connect_after(signal: 'item-removed', callback: (_source: this, item_id: string) => void): number;
emit(signal: 'item-removed', item_id: string): 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 callback interfaces
interface Changed {
(): void;
}
interface Ready {
(): void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
title: string;
category: Category;
status: Status;
tooltip: Tooltip;
tooltip_markup: string;
tooltipMarkup: 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_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;
/**
* The category this item belongs to
*/
get category(): Category;
/**
* The current status of this item
*/
get status(): Status;
/**
* The tooltip of this item
*/
get tooltip(): 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;
/**
* the id of the item. This id is specified by the tray app.
*/
get id(): 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;
/**
* If set, this only supports the menu, so showing the menu should be prefered over calling [method`AstalTray`.TrayItem.activate].
*/
get isMenu(): 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;
/**
* 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;
/**
* 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 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;
// Constructors
constructor(properties?: Partial<TrayItem.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'changed', callback: (_source: this) => void): number;
connect_after(signal: 'changed', callback: (_source: this) => void): number;
emit(signal: 'changed'): void;
connect(signal: 'ready', callback: (_source: this) => void): number;
connect_after(signal: 'ready', callback: (_source: this) => void): number;
emit(signal: 'ready'): 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_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_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

937
@girs/astalwp-0.1.d.ts vendored Normal file
View file

@ -0,0 +1,937 @@
/// <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://AstalWp?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';
export namespace AstalWp {
/**
* AstalWp-0.1
*/
export namespace DeviceType {
export const $gtype: GObject.GType<DeviceType>;
}
enum DeviceType {
AUDIO,
VIDEO,
}
export namespace MediaClass {
export const $gtype: GObject.GType<MediaClass>;
}
enum MediaClass {
AUDIO_MICROPHONE,
AUDIO_SPEAKER,
AUDIO_RECORDER,
AUDIO_STREAM,
VIDEO_SOURCE,
VIDEO_SINK,
VIDEO_RECORDER,
VIDEO_STREAM,
}
export namespace Scale {
export const $gtype: GObject.GType<Scale>;
}
enum Scale {
LINEAR,
CUBIC,
}
const MAJOR_VERSION: number;
const MICRO_VERSION: number;
const MINOR_VERSION: number;
const VERSION: string;
/**
* gets the default wireplumber object.
* @returns gets the default wireplumber object.
*/
function get_default(): Wp | null;
namespace Audio {
// Signal callback interfaces
interface DeviceAdded {
(object: Device): void;
}
interface DeviceRemoved {
(object: Device): void;
}
interface MicrophoneAdded {
(object: Endpoint): void;
}
interface MicrophoneRemoved {
(object: Endpoint): void;
}
interface RecorderAdded {
(object: Endpoint): void;
}
interface RecorderRemoved {
(object: Endpoint): void;
}
interface SpeakerAdded {
(object: Endpoint): void;
}
interface SpeakerRemoved {
(object: Endpoint): void;
}
interface StreamAdded {
(object: Endpoint): void;
}
interface StreamRemoved {
(object: Endpoint): void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
default_microphone: Endpoint;
defaultMicrophone: Endpoint;
default_speaker: Endpoint;
defaultSpeaker: Endpoint;
devices: Device[];
microphones: Endpoint[];
recorders: Endpoint[];
speakers: Endpoint[];
streams: Endpoint[];
}
}
/**
* is instanciated by [class`AstalWp`.Wp]. An instance of class can only be received there.
*
* This is a convinience class and acts as a filter for [class`AstalWp`.Wp] to filter for audio
* endpoints and devices.
*/
class Audio extends GObject.Object {
static $gtype: GObject.GType<Audio>;
// Properties
/**
* The AstalWndpoint object representing the default speaker
*/
get default_microphone(): Endpoint;
/**
* The AstalWndpoint object representing the default speaker
*/
get defaultMicrophone(): Endpoint;
/**
* The AstalWndpoint object representing the default speaker
*/
get default_speaker(): Endpoint;
/**
* The AstalWndpoint object representing the default speaker
*/
get defaultSpeaker(): Endpoint;
/**
* A list of AstalWpEndpoint objects
*/
get devices(): Device[];
/**
* A list of AstalWpEndpoint objects
*/
get microphones(): Endpoint[];
/**
* A list of AstalWpEndpoint objects
*/
get recorders(): Endpoint[];
/**
* A list of AstalWpEndpoint objects
*/
get speakers(): Endpoint[];
/**
* A list of AstalWpEndpoint objects
*/
get streams(): Endpoint[];
// Constructors
constructor(properties?: Partial<Audio.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](wp: Wp): Audio;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'device-added', callback: (_source: this, object: Device) => void): number;
connect_after(signal: 'device-added', callback: (_source: this, object: Device) => void): number;
emit(signal: 'device-added', object: Device): void;
connect(signal: 'device-removed', callback: (_source: this, object: Device) => void): number;
connect_after(signal: 'device-removed', callback: (_source: this, object: Device) => void): number;
emit(signal: 'device-removed', object: Device): void;
connect(signal: 'microphone-added', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'microphone-added', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'microphone-added', object: Endpoint): void;
connect(signal: 'microphone-removed', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'microphone-removed', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'microphone-removed', object: Endpoint): void;
connect(signal: 'recorder-added', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'recorder-added', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'recorder-added', object: Endpoint): void;
connect(signal: 'recorder-removed', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'recorder-removed', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'recorder-removed', object: Endpoint): void;
connect(signal: 'speaker-added', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'speaker-added', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'speaker-added', object: Endpoint): void;
connect(signal: 'speaker-removed', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'speaker-removed', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'speaker-removed', object: Endpoint): void;
connect(signal: 'stream-added', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'stream-added', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'stream-added', object: Endpoint): void;
connect(signal: 'stream-removed', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'stream-removed', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'stream-removed', object: Endpoint): void;
// Methods
/**
* gets the default microphone object
*/
get_default_microphone(): Endpoint | null;
/**
* gets the default speaker object
*/
get_default_speaker(): Endpoint | null;
/**
* gets the device with the given id
* @param id the id of the device
*/
get_device(id: number): Device | null;
/**
* a GList containing the devices
*/
get_devices(): Device[] | null;
/**
* the endpoint with the given id
* @param id the id of the endpoint
*/
get_endpoint(id: number): Endpoint | null;
/**
* gets the microphone with the given id
* @param id the id of the endpoint
*/
get_microphone(id: number): Endpoint | null;
/**
* a GList containing the microphones
*/
get_microphones(): Endpoint[] | null;
/**
* gets the recorder with the given id
* @param id the id of the endpoint
*/
get_recorder(id: number): Endpoint | null;
/**
* a GList containing the recorders
*/
get_recorders(): Endpoint[] | null;
/**
* gets the speaker with the given id
* @param id the id of the endpoint
*/
get_speaker(id: number): Endpoint | null;
/**
* a GList containing the speakers
*/
get_speakers(): Endpoint[] | null;
/**
* gets the stream with the given id
* @param id the id of the endpoint
*/
get_stream(id: number): Endpoint | null;
/**
* a GList containing the streams
*/
get_streams(): Endpoint[] | null;
}
namespace Device {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
active_profile_id: number;
activeProfileId: number;
description: string;
device_type: DeviceType;
deviceType: DeviceType;
icon: string;
id: number;
profiles: Profile[];
}
}
class Device extends GObject.Object {
static $gtype: GObject.GType<Device>;
// Properties
/**
* The id of the currently active profile.
*/
get active_profile_id(): number;
set active_profile_id(val: number);
/**
* The id of the currently active profile.
*/
get activeProfileId(): number;
set activeProfileId(val: number);
/**
* The description of this device.
*/
get description(): string;
/**
* The type of this device
*/
get device_type(): DeviceType;
/**
* The type of this device
*/
get deviceType(): DeviceType;
/**
* The icon name for this device.
*/
get icon(): string;
/**
* The id of this device.
*/
get id(): number;
/**
* A list of available profiles
*/
get profiles(): Profile[];
// Constructors
constructor(properties?: Partial<Device.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* gets the currently active profile of this device
*/
get_active_profile(): number;
/**
* gets the description of this device
*/
get_description(): string;
/**
* gets the type of this device
*/
get_device_type(): DeviceType;
/**
* gets the icon of this device
*/
get_icon(): string;
/**
* gets the id of this device
*/
get_id(): number;
/**
* gets the profile with the given id
* @param id the id of the profile
*/
get_profile(id: number): Profile | null;
/**
* gets a GList containing the profiles
*/
get_profiles(): Profile[] | null;
/**
* sets the profile for this device
* @param profile_id the id of the profile
*/
set_active_profile(profile_id: number): void;
}
namespace Endpoint {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
description: string;
icon: string;
id: number;
is_default: boolean;
isDefault: boolean;
lock_channels: boolean;
lockChannels: boolean;
media_class: MediaClass;
mediaClass: MediaClass;
mute: boolean;
name: string;
path: string;
serial: number;
volume: number;
volume_icon: string;
volumeIcon: string;
}
}
class Endpoint extends GObject.Object {
static $gtype: GObject.GType<Endpoint>;
// Properties
/**
* The description of this endpoint
*/
get description(): string;
/**
* The icon of this endpoint. Note that endpoints do not have icons associated with them in
* pipewire, so the icon of the associated device is used instead.
*/
get icon(): string;
/**
* The pipewire id of this endpoint.
*/
get id(): number;
/**
* Whether this endpoint is the default one used for this media-class. Note that setting this
* property to false has no effect.
*/
get is_default(): boolean;
set is_default(val: boolean);
/**
* Whether this endpoint is the default one used for this media-class. Note that setting this
* property to false has no effect.
*/
get isDefault(): boolean;
set isDefault(val: boolean);
/**
* Whether to lock the channels together or not.
*/
get lock_channels(): boolean;
set lock_channels(val: boolean);
/**
* Whether to lock the channels together or not.
*/
get lockChannels(): boolean;
set lockChannels(val: boolean);
/**
* The media class of this endpoint
*/
get media_class(): MediaClass;
/**
* The media class of this endpoint
*/
get mediaClass(): MediaClass;
/**
* The mute state of this endpoint
*/
get mute(): boolean;
set mute(val: boolean);
/**
* The name of this endpoint
*/
get name(): string;
/**
* The object path of this endpoint
*/
get path(): string;
/**
* The object serial of this endpoint.
*/
get serial(): number;
/**
* The volume of this endpoint
*/
get volume(): number;
set volume(val: number);
/**
* The volume icon of this endpoint
*/
get volume_icon(): string;
/**
* The volume icon of this endpoint
*/
get volumeIcon(): string;
// Constructors
constructor(properties?: Partial<Endpoint.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* gets the description of this endpoint
*/
get_description(): string;
/**
* gets the icon for this endpoint
*/
get_icon(): string;
/**
* gets the id of the endpoint.
*/
get_id(): number;
get_is_default(): boolean;
get_lock_channels(): boolean;
/**
* gets the media class of the endpoint.
*/
get_media_class(): MediaClass;
/**
* gets the mute status of the endpoint.
*/
get_mute(): boolean;
/**
* gets the name of this endpoint
*/
get_name(): string;
/**
* gets the object path of this endpoint
*/
get_path(): string;
/**
* gets the serial number of this endpoint
*/
get_serial(): number;
/**
* gets the volume
*/
get_volume(): number;
get_volume_icon(): string;
set_is_default(is_default: boolean): void;
set_lock_channels(lock_channels: boolean): void;
/**
* Sets the mute status for the endpoint.
* @param mute A boolean indicating whether to mute the endpoint.
*/
set_mute(mute: boolean): void;
/**
* Sets the volume level for this endpoint. The volume is clamped to be between
* 0 and 1.5.
* @param volume The new volume level to set.
*/
set_volume(volume: number): void;
}
namespace Profile {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
description: string;
index: number;
}
}
class Profile extends GObject.Object {
static $gtype: GObject.GType<Profile>;
// Properties
get description(): string;
get index(): number;
// Constructors
constructor(properties?: Partial<Profile.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
get_description(): string;
get_index(): number;
}
namespace Video {
// Signal callback interfaces
interface DeviceAdded {
(object: Device): void;
}
interface DeviceRemoved {
(object: Device): void;
}
interface RecorderAdded {
(object: Endpoint): void;
}
interface RecorderRemoved {
(object: Endpoint): void;
}
interface SinkAdded {
(object: Endpoint): void;
}
interface SinkRemoved {
(object: Endpoint): void;
}
interface SourceAdded {
(object: Endpoint): void;
}
interface SourceRemoved {
(object: Endpoint): void;
}
interface StreamAdded {
(object: Endpoint): void;
}
interface StreamRemoved {
(object: Endpoint): void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
devices: Endpoint[];
recorders: any;
sinks: Endpoint[];
sources: Endpoint[];
streams: Endpoint[];
}
}
/**
* is instanciated by [class`AstalWp`.Wp]. An instance of class can only be received there.
*
* This is a convinience class and acts as a filter for [class`AstalWp`.Wp] to filter for video
* endpoints and devices.
*/
class Video extends GObject.Object {
static $gtype: GObject.GType<Video>;
// Properties
/**
* A list of AstalWpEndpoint objects
*/
get devices(): Endpoint[];
get recorders(): any;
/**
* A list of AstalWpEndpoint objects
*/
get sinks(): Endpoint[];
/**
* A list of AstalWpEndpoint objects
*/
get sources(): Endpoint[];
/**
* A list of AstalWpEndpoint objects
*/
get streams(): Endpoint[];
// Constructors
constructor(properties?: Partial<Video.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](wp: Wp): Video;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'device-added', callback: (_source: this, object: Device) => void): number;
connect_after(signal: 'device-added', callback: (_source: this, object: Device) => void): number;
emit(signal: 'device-added', object: Device): void;
connect(signal: 'device-removed', callback: (_source: this, object: Device) => void): number;
connect_after(signal: 'device-removed', callback: (_source: this, object: Device) => void): number;
emit(signal: 'device-removed', object: Device): void;
connect(signal: 'recorder-added', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'recorder-added', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'recorder-added', object: Endpoint): void;
connect(signal: 'recorder-removed', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'recorder-removed', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'recorder-removed', object: Endpoint): void;
connect(signal: 'sink-added', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'sink-added', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'sink-added', object: Endpoint): void;
connect(signal: 'sink-removed', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'sink-removed', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'sink-removed', object: Endpoint): void;
connect(signal: 'source-added', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'source-added', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'source-added', object: Endpoint): void;
connect(signal: 'source-removed', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'source-removed', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'source-removed', object: Endpoint): void;
connect(signal: 'stream-added', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'stream-added', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'stream-added', object: Endpoint): void;
connect(signal: 'stream-removed', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'stream-removed', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'stream-removed', object: Endpoint): void;
// Methods
/**
* the device with the given id
* @param id the id of the device
* @returns the device with the given id
*/
get_device(id: number): Device | null;
/**
* a list containing the devices
* @returns a GList containing the devices
*/
get_devices(): Device[] | null;
/**
* the recorder with the given id
* @param id the id of the endpoint
* @returns the recorder with the given id
*/
get_recorder(id: number): Endpoint | null;
/**
* a list containing the video recorders
* @returns a GList containing the video recorders
*/
get_recorders(): Endpoint[] | null;
/**
* the sink with the given id
* @param id the id of the endpoint
* @returns the sink with the given id
*/
get_sink(id: number): Endpoint | null;
/**
* a list containing the video sinks
* @returns a GList containing the video sinks
*/
get_sinks(): Endpoint[] | null;
/**
* the source with the given id
* @param id the id of the endpoint
* @returns the source with the given id
*/
get_source(id: number): Endpoint | null;
/**
* a list containing the video sources
* @returns a GList containing the video sources
*/
get_sources(): Endpoint[] | null;
/**
* the stream with the given id
* @param id the id of the endpoint
* @returns the stream with the given id
*/
get_stream(id: number): Endpoint | null;
/**
* a list containing the video streams
* @returns a GList containing the video streams
*/
get_streams(): Endpoint[] | null;
}
namespace Wp {
// Signal callback interfaces
interface DeviceAdded {
(object: Device): void;
}
interface DeviceRemoved {
(object: Device): void;
}
interface EndpointAdded {
(object: Endpoint): void;
}
interface EndpointRemoved {
(object: Endpoint): void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
audio: Audio;
default_microphone: Endpoint;
defaultMicrophone: Endpoint;
default_speaker: Endpoint;
defaultSpeaker: Endpoint;
devices: Device[];
endpoints: Endpoint[];
scale: Scale;
video: Video;
}
}
/**
* manages the connection to wireplumber. Usually you don't want to use this class directly, but use
* the [class`AstalWp`.Audio] or [class`AstalWp`.Video] instead.
*/
class Wp extends GObject.Object {
static $gtype: GObject.GType<Wp>;
// Properties
get audio(): Audio;
/**
* The [class`AstalWp`.Endpoint] representing the default speaker
*/
get default_microphone(): Endpoint;
/**
* The [class`AstalWp`.Endpoint] representing the default speaker
*/
get defaultMicrophone(): Endpoint;
/**
* The [class`AstalWp`.Endpoint] representing the default speaker
*/
get default_speaker(): Endpoint;
/**
* The [class`AstalWp`.Endpoint] representing the default speaker
*/
get defaultSpeaker(): Endpoint;
/**
* A list of [class`AstalWp`.Device] objects
*/
get devices(): Device[];
/**
* A list of [class`AstalWp`.Endpoint] objects
*/
get endpoints(): Endpoint[];
/**
* The scale used for the volume
*/
get scale(): Scale;
set scale(val: Scale);
get video(): Video;
// Constructors
constructor(properties?: Partial<Wp.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'device-added', callback: (_source: this, object: Device) => void): number;
connect_after(signal: 'device-added', callback: (_source: this, object: Device) => void): number;
emit(signal: 'device-added', object: Device): void;
connect(signal: 'device-removed', callback: (_source: this, object: Device) => void): number;
connect_after(signal: 'device-removed', callback: (_source: this, object: Device) => void): number;
emit(signal: 'device-removed', object: Device): void;
connect(signal: 'endpoint-added', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'endpoint-added', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'endpoint-added', object: Endpoint): void;
connect(signal: 'endpoint-removed', callback: (_source: this, object: Endpoint) => void): number;
connect_after(signal: 'endpoint-removed', callback: (_source: this, object: Endpoint) => void): number;
emit(signal: 'endpoint-removed', object: Endpoint): void;
// Static methods
/**
* gets the default wireplumber object.
*/
static get_default(): Wp | null;
// Methods
/**
* gets the [class`AstalWp`.Audio] object
* @returns gets the audio object
*/
get_audio(): Audio | null;
/**
* gets the default microphone object
* @returns gets the default microphone object
*/
get_default_microphone(): Endpoint | null;
/**
* gets the default speaker object
* @returns gets the default speaker object
*/
get_default_speaker(): Endpoint | null;
/**
* the device with the given id
* @param id the id of the device
* @returns the device with the given id
*/
get_device(id: number): Device | null;
/**
* the GList containing the devices
* @returns a GList containing the devices
*/
get_devices(): Device[] | null;
/**
* the endpoint with the given id
* @param id the id of the endpoint
* @returns the endpoint with the given id
*/
get_endpoint(id: number): Endpoint | null;
/**
* a GList containing all endpoints
* @returns a GList containing the endpoints
*/
get_endpoints(): Endpoint[] | null;
get_scale(): Scale;
/**
* gets the video object
* @returns gets the video object
*/
get_video(): Video | null;
set_scale(scale: Scale | null): void;
}
type AudioClass = typeof Audio;
type DeviceClass = typeof Device;
type EndpointClass = typeof Endpoint;
type ProfileClass = typeof Profile;
type VideoClass = typeof Video;
type WpClass = typeof Wp;
/**
* 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 AstalWp;
}
declare module 'gi://AstalWp' {
import AstalWp01 from 'gi://AstalWp?version=0.1';
export default AstalWp01;
}
// END

10365
@girs/atk-1.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

6420
@girs/atspi-2.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

536
@girs/cairo-1.0.d.ts vendored Normal file
View file

@ -0,0 +1,536 @@
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://cairo?version=1.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
import type GLib from 'gi://GLib?version=2.0';
export namespace cairo {
/**
* cairo-1.0
*/
export namespace Status {
export const $gtype: GObject.GType<Status>;
}
enum Status {
SUCCESS,
NO_MEMORY,
INVALID_RESTORE,
INVALID_POP_GROUP,
NO_CURRENT_POINT,
INVALID_MATRIX,
INVALID_STATUS,
NULL_POINTER,
INVALID_STRING,
INVALID_PATH_DATA,
READ_ERROR,
WRITE_ERROR,
SURFACE_FINISHED,
SURFACE_TYPE_MISMATCH,
PATTERN_TYPE_MISMATCH,
INVALID_CONTENT,
INVALID_FORMAT,
INVALID_VISUAL,
FILE_NOT_FOUND,
INVALID_DASH,
INVALID_DSC_COMMENT,
INVALID_INDEX,
CLIP_NOT_REPRESENTABLE,
TEMP_FILE_ERROR,
INVALID_STRIDE,
FONT_TYPE_MISMATCH,
USER_FONT_IMMUTABLE,
USER_FONT_ERROR,
NEGATIVE_COUNT,
INVALID_CLUSTERS,
INVALID_SLANT,
INVALID_WEIGHT,
INVALID_SIZE,
USER_FONT_NOT_IMPLEMENTED,
DEVICE_TYPE_MISMATCH,
DEVICE_ERROR,
INVALID_MESH_CONSTRUCTION,
DEVICE_FINISHED,
JBIG2_GLOBAL_MISSING,
}
export namespace Content {
export const $gtype: GObject.GType<Content>;
}
enum Content {
COLOR,
ALPHA,
COLOR_ALPHA,
}
export namespace Operator {
export const $gtype: GObject.GType<Operator>;
}
enum Operator {
CLEAR,
SOURCE,
OVER,
IN,
OUT,
ATOP,
DEST,
DEST_OVER,
DEST_IN,
DEST_OUT,
DEST_ATOP,
XOR,
ADD,
SATURATE,
MULTIPLY,
SCREEN,
OVERLAY,
DARKEN,
LIGHTEN,
COLOR_DODGE,
COLOR_BURN,
HARD_LIGHT,
SOFT_LIGHT,
DIFFERENCE,
EXCLUSION,
HSL_HUE,
HSL_SATURATION,
HSL_COLOR,
HSL_LUMINOSITY,
}
export namespace Antialias {
export const $gtype: GObject.GType<Antialias>;
}
enum Antialias {
DEFAULT,
NONE,
GRAY,
SUBPIXEL,
FAST,
GOOD,
BEST,
}
export namespace FillRule {
export const $gtype: GObject.GType<FillRule>;
}
enum FillRule {
WINDING,
EVEN_ODD,
}
export namespace LineCap {
export const $gtype: GObject.GType<LineCap>;
}
enum LineCap {
BUTT,
ROUND,
SQUARE,
}
export namespace LineJoin {
export const $gtype: GObject.GType<LineJoin>;
}
enum LineJoin {
MITER,
ROUND,
BEVEL,
}
export namespace TextClusterFlags {
export const $gtype: GObject.GType<TextClusterFlags>;
}
enum TextClusterFlags {
BACKWARD,
}
export namespace FontSlant {
export const $gtype: GObject.GType<FontSlant>;
}
enum FontSlant {
NORMAL,
ITALIC,
OBLIQUE,
}
export namespace FontWeight {
export const $gtype: GObject.GType<FontWeight>;
}
enum FontWeight {
NORMAL,
BOLD,
}
export namespace SubpixelOrder {
export const $gtype: GObject.GType<SubpixelOrder>;
}
enum SubpixelOrder {
DEFAULT,
RGB,
BGR,
VRGB,
VBGR,
}
export namespace HintStyle {
export const $gtype: GObject.GType<HintStyle>;
}
enum HintStyle {
DEFAULT,
NONE,
SLIGHT,
MEDIUM,
FULL,
}
export namespace HintMetrics {
export const $gtype: GObject.GType<HintMetrics>;
}
enum HintMetrics {
DEFAULT,
OFF,
ON,
}
export namespace FontType {
export const $gtype: GObject.GType<FontType>;
}
enum FontType {
TOY,
FT,
WIN32,
QUARTZ,
USER,
}
export namespace PathDataType {
export const $gtype: GObject.GType<PathDataType>;
}
enum PathDataType {
MOVE_TO,
LINE_TO,
CURVE_TO,
CLOSE_PATH,
}
export namespace DeviceType {
export const $gtype: GObject.GType<DeviceType>;
}
enum DeviceType {
DRM,
GL,
SCRIPT,
XCB,
XLIB,
XML,
COGL,
WIN32,
INVALID,
}
export namespace SurfaceType {
export const $gtype: GObject.GType<SurfaceType>;
}
enum SurfaceType {
IMAGE,
PDF,
PS,
XLIB,
XCB,
GLITZ,
QUARTZ,
WIN32,
BEOS,
DIRECTFB,
SVG,
OS2,
WIN32_PRINTING,
QUARTZ_IMAGE,
SCRIPT,
QT,
RECORDING,
VG,
GL,
DRM,
TEE,
XML,
SKIA,
SUBSURFACE,
COGL,
}
export namespace Format {
export const $gtype: GObject.GType<Format>;
}
enum Format {
INVALID,
ARGB32,
RGB24,
A8,
A1,
RGB16_565,
RGB30,
}
export namespace PatternType {
export const $gtype: GObject.GType<PatternType>;
}
enum PatternType {
SOLID,
SURFACE,
LINEAR,
RADIAL,
MESH,
RASTER_SOURCE,
}
export namespace Extend {
export const $gtype: GObject.GType<Extend>;
}
enum Extend {
NONE,
REPEAT,
REFLECT,
PAD,
}
export namespace Filter {
export const $gtype: GObject.GType<Filter>;
}
enum Filter {
FAST,
GOOD,
BEST,
NEAREST,
BILINEAR,
GAUSSIAN,
}
export namespace RegionOverlap {
export const $gtype: GObject.GType<RegionOverlap>;
}
enum RegionOverlap {
IN,
OUT,
PART,
}
function image_surface_create(): void;
class Context {
static $gtype: GObject.GType<Context>;
// Constructors
_init(...args: any[]): void;
}
class Device {
static $gtype: GObject.GType<Device>;
// Constructors
_init(...args: any[]): void;
}
class Surface {
static $gtype: GObject.GType<Surface>;
// Constructors
_init(...args: any[]): void;
}
class Matrix {
static $gtype: GObject.GType<Matrix>;
// Constructors
_init(...args: any[]): void;
}
class Pattern {
static $gtype: GObject.GType<Pattern>;
// Constructors
_init(...args: any[]): void;
}
class Region {
static $gtype: GObject.GType<Region>;
// Constructors
_init(...args: any[]): void;
}
class FontOptions {
static $gtype: GObject.GType<FontOptions>;
// Constructors
_init(...args: any[]): void;
}
class FontFace {
static $gtype: GObject.GType<FontFace>;
// Constructors
_init(...args: any[]): void;
}
class ScaledFont {
static $gtype: GObject.GType<ScaledFont>;
// Constructors
_init(...args: any[]): void;
}
class Path {
static $gtype: GObject.GType<Path>;
// Constructors
_init(...args: any[]): void;
}
class Rectangle {
static $gtype: GObject.GType<Rectangle>;
// Fields
x: number;
y: number;
width: number;
height: number;
// Constructors
constructor(
properties?: Partial<{
x: number;
y: number;
width: number;
height: number;
}>,
);
_init(...args: any[]): void;
}
class RectangleInt {
static $gtype: GObject.GType<RectangleInt>;
// Fields
x: number;
y: number;
width: number;
height: number;
// Constructors
constructor(
properties?: Partial<{
x: number;
y: number;
width: number;
height: number;
}>,
);
_init(...args: any[]): void;
}
class Glyph {
static $gtype: GObject.GType<Glyph>;
// Fields
index: number;
x: number;
y: number;
// Constructors
constructor(
properties?: Partial<{
index: number;
x: number;
y: number;
}>,
);
_init(...args: any[]): void;
}
class TextCluster {
static $gtype: GObject.GType<TextCluster>;
// Fields
num_bytes: number;
num_glyphs: number;
// Constructors
constructor(
properties?: Partial<{
num_bytes: number;
num_glyphs: number;
}>,
);
_init(...args: any[]): void;
}
/**
* Name of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string;
/**
* Version of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string;
}
export default cairo;
}
declare module 'gi://cairo' {
import Cairo10 from 'gi://cairo?version=1.0';
export default Cairo10;
}
// END

845
@girs/cairo.d.ts vendored Normal file
View file

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

23
@girs/console.d.ts vendored Normal file
View file

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

89
@girs/dbus-1.0.d.ts vendored Normal file
View file

@ -0,0 +1,89 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://DBus?version=1.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace DBus {
/**
* DBus-1.0
*/
export namespace BusType {
export const $gtype: GObject.GType<BusType>;
}
enum BusType {
SESSION,
SYSTEM,
STARTER,
}
class Connection {
static $gtype: GObject.GType<Connection>;
// Constructors
_init(...args: any[]): void;
}
class Error {
static $gtype: GObject.GType<Error>;
// Constructors
_init(...args: any[]): void;
}
class Message {
static $gtype: GObject.GType<Message>;
// Constructors
_init(...args: any[]): void;
}
class MessageIter {
static $gtype: GObject.GType<MessageIter>;
// Constructors
_init(...args: any[]): void;
}
class PendingCall {
static $gtype: GObject.GType<PendingCall>;
// Constructors
_init(...args: any[]): void;
}
/**
* Name of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string;
/**
* Version of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string;
}
export default DBus;
}
declare module 'gi://DBus' {
import DBus10 from 'gi://DBus?version=1.0';
export default DBus10;
}
// END

82
@girs/dbusglib-1.0.d.ts vendored Normal file
View file

@ -0,0 +1,82 @@
/// <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 {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {}
}
class Proxy extends GObject.Object {
static $gtype: GObject.GType<Proxy>;
// Constructors
constructor(properties?: Partial<Proxy.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
class Connection {
static $gtype: GObject.GType<Connection>;
// Constructors
_init(...args: any[]): void;
}
class MethodInvocation {
static $gtype: GObject.GType<MethodInvocation>;
// Constructors
_init(...args: any[]): void;
}
class ProxyClass {
static $gtype: GObject.GType<ProxyClass>;
// Constructors
_init(...args: any[]): void;
}
/**
* Name of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string;
/**
* Version of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string;
}
export default DBusGLib;
}
declare module 'gi://DBusGLib' {
import DBusGLib10 from 'gi://DBusGLib?version=1.0';
export default DBusGLib10;
}
// END

306
@girs/dom.d.ts vendored Normal file
View file

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

65
@girs/fontconfig-2.0.d.ts vendored Normal file
View file

@ -0,0 +1,65 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://fontconfig?version=2.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace fontconfig {
/**
* fontconfig-2.0
*/
function init(): void;
class Pattern {
static $gtype: GObject.GType<Pattern>;
// Constructors
_init(...args: any[]): void;
}
class CharSet {
static $gtype: GObject.GType<CharSet>;
// Constructors
_init(...args: any[]): void;
}
class Config {
static $gtype: GObject.GType<Config>;
// Constructors
_init(...args: any[]): void;
}
/**
* Name of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string;
/**
* Version of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string;
}
export default fontconfig;
}
declare module 'gi://fontconfig' {
import Fontconfig20 from 'gi://fontconfig?version=2.0';
export default Fontconfig20;
}
// END

65
@girs/freetype2-2.0.d.ts vendored Normal file
View file

@ -0,0 +1,65 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://freetype2?version=2.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace freetype2 {
/**
* freetype2-2.0
*/
class Bitmap {
static $gtype: GObject.GType<Bitmap>;
// Constructors
_init(...args: any[]): void;
}
class Face {
static $gtype: GObject.GType<Face>;
// Constructors
_init(...args: any[]): void;
}
class Library {
static $gtype: GObject.GType<Library>;
// Constructors
_init(...args: any[]): void;
}
type Int32 = number;
/**
* Name of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string;
/**
* Version of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string;
}
export default freetype2;
}
declare module 'gi://freetype2' {
import Freetype220 from 'gi://freetype2?version=2.0';
export default Freetype220;
}
// END

405
@girs/gdesktopenums-3.0.d.ts vendored Normal file
View file

@ -0,0 +1,405 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://GDesktopEnums?version=3.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace GDesktopEnums {
/**
* GDesktopEnums-3.0
*/
export namespace AccentColor {
export const $gtype: GObject.GType<AccentColor>;
}
enum AccentColor {
BLUE,
TEAL,
GREEN,
YELLOW,
ORANGE,
RED,
PINK,
PURPLE,
SLATE,
}
export namespace BackgroundShading {
export const $gtype: GObject.GType<BackgroundShading>;
}
enum BackgroundShading {
SOLID,
VERTICAL,
HORIZONTAL,
}
export namespace BackgroundStyle {
export const $gtype: GObject.GType<BackgroundStyle>;
}
enum BackgroundStyle {
NONE,
WALLPAPER,
CENTERED,
SCALED,
STRETCHED,
ZOOM,
SPANNED,
}
export namespace ClockFormat {
export const $gtype: GObject.GType<ClockFormat>;
}
enum ClockFormat {
'24H',
'12H',
}
export namespace ColorScheme {
export const $gtype: GObject.GType<ColorScheme>;
}
enum ColorScheme {
DEFAULT,
PREFER_DARK,
PREFER_LIGHT,
}
export namespace DeviceSendEvents {
export const $gtype: GObject.GType<DeviceSendEvents>;
}
enum DeviceSendEvents {
ENABLED,
DISABLED,
DISABLED_ON_EXTERNAL_MOUSE,
}
export namespace FocusMode {
export const $gtype: GObject.GType<FocusMode>;
}
enum FocusMode {
CLICK,
SLOPPY,
MOUSE,
}
export namespace FocusNewWindows {
export const $gtype: GObject.GType<FocusNewWindows>;
}
enum FocusNewWindows {
SMART,
STRICT,
}
export namespace FontAntialiasingMode {
export const $gtype: GObject.GType<FontAntialiasingMode>;
}
enum FontAntialiasingMode {
NONE,
GRAYSCALE,
RGBA,
}
export namespace FontHinting {
export const $gtype: GObject.GType<FontHinting>;
}
enum FontHinting {
NONE,
SLIGHT,
MEDIUM,
FULL,
}
export namespace FontRendering {
export const $gtype: GObject.GType<FontRendering>;
}
enum FontRendering {
AUTOMATIC,
MANUAL,
}
export namespace FontRgbaOrder {
export const $gtype: GObject.GType<FontRgbaOrder>;
}
enum FontRgbaOrder {
RGBA,
RGB,
BGR,
VRGB,
VBGR,
}
export namespace LocationAccuracyLevel {
export const $gtype: GObject.GType<LocationAccuracyLevel>;
}
enum LocationAccuracyLevel {
COUNTRY,
CITY,
NEIGHBORHOOD,
STREET,
EXACT,
}
export namespace MagnifierCaretTrackingMode {
export const $gtype: GObject.GType<MagnifierCaretTrackingMode>;
}
enum MagnifierCaretTrackingMode {
NONE,
CENTERED,
PROPORTIONAL,
PUSH,
}
export namespace MagnifierFocusTrackingMode {
export const $gtype: GObject.GType<MagnifierFocusTrackingMode>;
}
enum MagnifierFocusTrackingMode {
NONE,
CENTERED,
PROPORTIONAL,
PUSH,
}
export namespace MagnifierMouseTrackingMode {
export const $gtype: GObject.GType<MagnifierMouseTrackingMode>;
}
enum MagnifierMouseTrackingMode {
NONE,
CENTERED,
PROPORTIONAL,
PUSH,
}
export namespace MagnifierScreenPosition {
export const $gtype: GObject.GType<MagnifierScreenPosition>;
}
enum MagnifierScreenPosition {
NONE,
FULL_SCREEN,
TOP_HALF,
BOTTOM_HALF,
LEFT_HALF,
RIGHT_HALF,
}
export namespace MouseDwellDirection {
export const $gtype: GObject.GType<MouseDwellDirection>;
}
enum MouseDwellDirection {
LEFT,
RIGHT,
UP,
DOWN,
}
export namespace MouseDwellMode {
export const $gtype: GObject.GType<MouseDwellMode>;
}
enum MouseDwellMode {
WINDOW,
GESTURE,
}
export namespace PadButtonAction {
export const $gtype: GObject.GType<PadButtonAction>;
}
enum PadButtonAction {
NONE,
HELP,
SWITCH_MONITOR,
KEYBINDING,
}
export namespace PointerAccelProfile {
export const $gtype: GObject.GType<PointerAccelProfile>;
}
enum PointerAccelProfile {
DEFAULT,
FLAT,
ADAPTIVE,
}
export namespace PointingStickScrollMethod {
export const $gtype: GObject.GType<PointingStickScrollMethod>;
}
enum PointingStickScrollMethod {
DEFAULT,
NONE,
ON_BUTTON_DOWN,
}
export namespace ProxyMode {
export const $gtype: GObject.GType<ProxyMode>;
}
enum ProxyMode {
NONE,
MANUAL,
AUTO,
}
export namespace ScreensaverMode {
export const $gtype: GObject.GType<ScreensaverMode>;
}
enum ScreensaverMode {
BLANK_ONLY,
RANDOM,
SINGLE,
}
export namespace StylusButtonAction {
export const $gtype: GObject.GType<StylusButtonAction>;
}
enum StylusButtonAction {
DEFAULT,
MIDDLE,
RIGHT,
BACK,
FORWARD,
SWITCH_MONITOR,
KEYBINDING,
}
export namespace TabletMapping {
export const $gtype: GObject.GType<TabletMapping>;
}
enum TabletMapping {
ABSOLUTE,
RELATIVE,
}
export namespace TitlebarAction {
export const $gtype: GObject.GType<TitlebarAction>;
}
enum TitlebarAction {
TOGGLE_SHADE,
TOGGLE_MAXIMIZE,
TOGGLE_MAXIMIZE_HORIZONTALLY,
TOGGLE_MAXIMIZE_VERTICALLY,
MINIMIZE,
NONE,
LOWER,
MENU,
}
export namespace ToolbarIconSize {
export const $gtype: GObject.GType<ToolbarIconSize>;
}
enum ToolbarIconSize {
SMALL,
LARGE,
}
export namespace ToolbarStyle {
export const $gtype: GObject.GType<ToolbarStyle>;
}
enum ToolbarStyle {
BOTH,
BOTH_HORIZ,
ICONS,
TEXT,
}
export namespace TouchpadClickMethod {
export const $gtype: GObject.GType<TouchpadClickMethod>;
}
enum TouchpadClickMethod {
DEFAULT,
NONE,
AREAS,
FINGERS,
}
export namespace TouchpadHandedness {
export const $gtype: GObject.GType<TouchpadHandedness>;
}
enum TouchpadHandedness {
RIGHT,
LEFT,
MOUSE,
}
export namespace TouchpadTapButtonMap {
export const $gtype: GObject.GType<TouchpadTapButtonMap>;
}
enum TouchpadTapButtonMap {
DEFAULT,
LRM,
LMR,
}
export namespace UsbProtection {
export const $gtype: GObject.GType<UsbProtection>;
}
enum UsbProtection {
LOCKSCREEN,
ALWAYS,
}
export namespace VisualBellType {
export const $gtype: GObject.GType<VisualBellType>;
}
enum VisualBellType {
FULLSCREEN_FLASH,
FRAME_FLASH,
}
/**
* Name of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string;
/**
* Version of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string;
}
export default GDesktopEnums;
}
declare module 'gi://GDesktopEnums' {
import GDesktopEnums30 from 'gi://GDesktopEnums?version=3.0';
export default GDesktopEnums30;
}
// END

13172
@girs/gdk-3.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

17058
@girs/gdk-4.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

2795
@girs/gdkpixbuf-2.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

264
@girs/gdkpixdata-2.0.d.ts vendored Normal file
View file

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

1352
@girs/gdkwayland-4.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

892
@girs/gdkx11-3.0.d.ts vendored Normal file
View file

@ -0,0 +1,892 @@
/// <reference path="./xlib-2.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="./gdk-3.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://GdkX11?version=3.0' {
// Module dependencies
import type xlib from 'gi://xlib?version=2.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 Gdk from 'gi://Gdk?version=3.0';
export namespace GdkX11 {
/**
* GdkX11-3.0
*/
/**
* Converts from a #GdkAtom to the X atom for the default GDK display
* with the same string value.
* @param atom A #GdkAtom
* @returns the X atom corresponding to @atom.
*/
function x11_atom_to_xatom(atom: Gdk.Atom): xlib.Atom;
/**
* Converts from a #GdkAtom to the X atom for a #GdkDisplay
* with the same string value. The special value %GDK_NONE
* is converted to %None.
* @param display A #GdkDisplay
* @param atom A #GdkAtom, or %GDK_NONE
* @returns the X atom corresponding to @atom, or %None
*/
function x11_atom_to_xatom_for_display(display: X11Display, atom: Gdk.Atom): xlib.Atom;
/**
* Returns the device ID as seen by XInput2.
*
* > If gdk_disable_multidevice() has been called, this function
* > will respectively return 2/3 for the core pointer and keyboard,
* > (matching the IDs for the Virtual Core Pointer and Keyboard in
* > XInput 2), but calling this function on any slave devices (i.e.
* > those managed via XInput 1.x), will return 0.
* @param device a #GdkDevice
* @returns the XInput2 device ID.
*/
function x11_device_get_id(device: X11DeviceCore): number;
/**
* Returns the #GdkDevice that wraps the given device ID.
* @param device_manager a #GdkDeviceManager
* @param device_id a device ID, as understood by the XInput2 protocol
* @returns The #GdkDevice wrapping the device ID, or %NULL if the given ID doesnt currently represent a device.
*/
function x11_device_manager_lookup(
device_manager: X11DeviceManagerCore,
device_id: number,
): X11DeviceCore | null;
/**
* Frees the data returned from gdk_x11_display_string_to_compound_text().
* @param ctext The pointer stored in @ctext from a call to gdk_x11_display_string_to_compound_text().
*/
function x11_free_compound_text(ctext: number): void;
/**
* Frees the array of strings created by
* gdk_x11_display_text_property_to_text_list().
* @param list the value stored in the @list parameter by a call to gdk_x11_display_text_property_to_text_list().
*/
function x11_free_text_list(list: string): void;
/**
* Gets the root window of the default screen
* (see gdk_x11_get_default_screen()).
* @returns an Xlib Window.
*/
function x11_get_default_root_xwindow(): xlib.Window;
/**
* Gets the default GTK+ screen number.
* @returns returns the screen number specified by the --display command line option or the DISPLAY environment variable when gdk_init() calls XOpenDisplay().
*/
function x11_get_default_screen(): number;
/**
* Gets the default GTK+ display.
* @returns the Xlib Display* for the display specified in the `--display` command line option or the `DISPLAY` environment variable.
*/
function x11_get_default_xdisplay(): xlib.Display;
/**
* Used with gdk_window_set_background_pattern() to inherit background from
* parent window. Useful for imitating transparency when compositing is not
* available. Otherwise behaves like a transparent pattern.
*/
function x11_get_parent_relative_pattern(): cairo.Pattern;
/**
* Routine to get the current X server time stamp.
* @param window a #GdkWindow, used for communication with the server. The window must have GDK_PROPERTY_CHANGE_MASK in its events mask or a hang will result.
* @returns the time stamp.
*/
function x11_get_server_time(window: X11Window): number;
/**
* Returns the X atom for GDKs default display corresponding to `atom_name`.
* This function caches the result, so if called repeatedly it is much
* faster than XInternAtom(), which is a round trip to the server each time.
* @param atom_name a string
* @returns a X atom for GDKs default display.
*/
function x11_get_xatom_by_name(atom_name: string): xlib.Atom;
/**
* Returns the X atom for a #GdkDisplay corresponding to `atom_name`.
* This function caches the result, so if called repeatedly it is much
* faster than XInternAtom(), which is a round trip to the server each time.
* @param display a #GdkDisplay
* @param atom_name a string
* @returns a X atom for a #GdkDisplay
*/
function x11_get_xatom_by_name_for_display(display: X11Display, atom_name: string): xlib.Atom;
/**
* Returns the name of an X atom for GDKs default display. This
* function is meant mainly for debugging, so for convenience, unlike
* XAtomName() and gdk_atom_name(), the result
* doesnt need to be freed. Also, this function will never return %NULL,
* even if `xatom` is invalid.
* @param xatom an X atom for GDKs default display
* @returns name of the X atom; this string is owned by GTK+, so it shouldnt be modifed or freed.
*/
function x11_get_xatom_name(xatom: xlib.Atom): string;
/**
* Returns the name of an X atom for its display. This
* function is meant mainly for debugging, so for convenience, unlike
* XAtomName() and gdk_atom_name(), the result doesnt need to
* be freed.
* @param display the #GdkDisplay where @xatom is defined
* @param xatom an X atom
* @returns name of the X atom; this string is owned by GDK, so it shouldnt be modifed or freed.
*/
function x11_get_xatom_name_for_display(display: X11Display, xatom: xlib.Atom): string;
/**
* Call gdk_x11_display_grab() on the default display.
* To ungrab the server again, use gdk_x11_ungrab_server().
*
* gdk_x11_grab_server()/gdk_x11_ungrab_server() calls can be nested.
*/
function x11_grab_server(): void;
/**
* Find the #GdkDisplay corresponding to `xdisplay,` if any exists.
* @param xdisplay a pointer to an X Display
* @returns the #GdkDisplay, if found, otherwise %NULL.
*/
function x11_lookup_xdisplay(xdisplay: xlib.Display): X11Display;
/**
* Registers interest in receiving extension events with type codes
* between `event_base` and `event_base + n_events - 1`.
* The registered events must have the window field in the same place
* as core X events (this is not the case for e.g. XKB extension events).
*
* If an event type is registered, events of this type will go through
* global and window-specific filters (see gdk_window_add_filter()).
* Unregistered events will only go through global filters.
* GDK may register the events of some X extensions on its own.
*
* This function should only be needed in unusual circumstances, e.g.
* when filtering XInput extension events on the root window.
* @param display a #GdkDisplay
* @param event_base first event type code to register
* @param n_events number of event type codes to register
*/
function x11_register_standard_event_type(display: X11Display, event_base: number, n_events: number): void;
/**
* Sets the `SM_CLIENT_ID` property on the applications leader window so that
* the window manager can save the applications state using the X11R6 ICCCM
* session management protocol.
*
* See the X Session Management Library documentation for more information on
* session management and the Inter-Client Communication Conventions Manual
* @param sm_client_id the client id assigned by the session manager when the connection was opened, or %NULL to remove the property.
*/
function x11_set_sm_client_id(sm_client_id?: string | null): void;
/**
* Ungrab the default display after it has been grabbed with
* gdk_x11_grab_server().
*/
function x11_ungrab_server(): void;
/**
* Convert from an X atom for the default display to the corresponding
* #GdkAtom.
* @param xatom an X atom for the default GDK display
* @returns the corresponding G#dkAtom.
*/
function x11_xatom_to_atom(xatom: xlib.Atom): Gdk.Atom;
/**
* Convert from an X atom for a #GdkDisplay to the corresponding
* #GdkAtom.
* @param display A #GdkDisplay
* @param xatom an X atom
* @returns the corresponding #GdkAtom.
*/
function x11_xatom_to_atom_for_display(display: X11Display, xatom: xlib.Atom): Gdk.Atom;
namespace X11AppLaunchContext {
// Constructor properties interface
interface ConstructorProps extends Gdk.AppLaunchContext.ConstructorProps {}
}
class X11AppLaunchContext extends Gdk.AppLaunchContext {
static $gtype: GObject.GType<X11AppLaunchContext>;
// Constructors
constructor(properties?: Partial<X11AppLaunchContext.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
namespace X11Cursor {
// Constructor properties interface
interface ConstructorProps extends Gdk.Cursor.ConstructorProps {}
}
class X11Cursor extends Gdk.Cursor {
static $gtype: GObject.GType<X11Cursor>;
// Constructors
constructor(properties?: Partial<X11Cursor.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns the X cursor belonging to a #GdkCursor.
* @returns an Xlib Cursor.
*/
get_xcursor(): xlib.Cursor;
/**
* Returns the display of a #GdkCursor.
* @returns an Xlib Display*.
*/
get_xdisplay(): xlib.Display;
}
namespace X11DeviceCore {
// Constructor properties interface
interface ConstructorProps extends Gdk.Device.ConstructorProps {}
}
class X11DeviceCore extends Gdk.Device {
static $gtype: GObject.GType<X11DeviceCore>;
// Constructors
constructor(properties?: Partial<X11DeviceCore.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
namespace X11DeviceManagerCore {
// Constructor properties interface
interface ConstructorProps extends Gdk.DeviceManager.ConstructorProps {}
}
class X11DeviceManagerCore extends Gdk.DeviceManager {
static $gtype: GObject.GType<X11DeviceManagerCore>;
// Constructors
constructor(properties?: Partial<X11DeviceManagerCore.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
namespace X11DeviceManagerXI2 {
// Constructor properties interface
interface ConstructorProps extends X11DeviceManagerCore.ConstructorProps {
major: number;
minor: number;
opcode: number;
}
}
class X11DeviceManagerXI2 extends X11DeviceManagerCore {
static $gtype: GObject.GType<X11DeviceManagerXI2>;
// Properties
get major(): number;
get minor(): number;
get opcode(): number;
// Constructors
constructor(properties?: Partial<X11DeviceManagerXI2.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
namespace X11DeviceXI2 {
// Constructor properties interface
interface ConstructorProps extends Gdk.Device.ConstructorProps {
device_id: number;
deviceId: number;
}
}
class X11DeviceXI2 extends Gdk.Device {
static $gtype: GObject.GType<X11DeviceXI2>;
// Properties
get device_id(): number;
get deviceId(): number;
// Constructors
constructor(properties?: Partial<X11DeviceXI2.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
namespace X11Display {
// Constructor properties interface
interface ConstructorProps extends Gdk.Display.ConstructorProps {}
}
class X11Display extends Gdk.Display {
static $gtype: GObject.GType<X11Display>;
// Constructors
constructor(properties?: Partial<X11Display.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Static methods
/**
* Retrieves the version of the GLX implementation.
* @param display a #GdkDisplay
*/
static get_glx_version(display: Gdk.Display): [boolean, number, number];
// Methods
/**
* Pops the error trap pushed by gdk_x11_display_error_trap_push().
* Will XSync() if necessary and will always block until
* the error is known to have occurred or not occurred,
* so the error code can be returned.
*
* If you dont need to use the return value,
* gdk_x11_display_error_trap_pop_ignored() would be more efficient.
*
* See gdk_error_trap_pop() for the all-displays-at-once
* equivalent.
* @returns X error code or 0 on success
*/
error_trap_pop(): number;
/**
* Pops the error trap pushed by gdk_x11_display_error_trap_push().
* Does not block to see if an error occurred; merely records the
* range of requests to ignore errors for, and ignores those errors
* if they arrive asynchronously.
*
* See gdk_error_trap_pop_ignored() for the all-displays-at-once
* equivalent.
*/
error_trap_pop_ignored(): void;
/**
* Begins a range of X requests on `display` for which X error events
* will be ignored. Unignored errors (when no trap is pushed) will abort
* the application. Use gdk_x11_display_error_trap_pop() or
* gdk_x11_display_error_trap_pop_ignored()to lift a trap pushed
* with this function.
*
* See also gdk_error_trap_push() to push a trap on all displays.
*/
error_trap_push(): void;
/**
* Gets the startup notification ID for a display.
* @returns the startup notification ID for @display
*/
get_startup_notification_id(): string;
/**
* Returns the timestamp of the last user interaction on
* `display`. The timestamp is taken from events caused
* by user interaction such as key presses or pointer
* movements. See gdk_x11_window_set_user_time().
* @returns the timestamp of the last user interaction
*/
get_user_time(): number;
/**
* Returns the X display of a #GdkDisplay.
* @returns an X display
*/
get_xdisplay(): xlib.Display;
/**
* Call XGrabServer() on `display`.
* To ungrab the display again, use gdk_x11_display_ungrab().
*
* gdk_x11_display_grab()/gdk_x11_display_ungrab() calls can be nested.
*/
grab(): void;
/**
* Sets the cursor theme from which the images for cursor
* should be taken.
*
* If the windowing system supports it, existing cursors created
* with gdk_cursor_new(), gdk_cursor_new_for_display() and
* gdk_cursor_new_from_name() are updated to reflect the theme
* change. Custom cursors constructed with
* gdk_cursor_new_from_pixbuf() will have to be handled
* by the application (GTK+ applications can learn about
* cursor theme changes by listening for change notification
* for the corresponding #GtkSetting).
* @param theme the name of the cursor theme to use, or %NULL to unset a previously set value
* @param size the cursor size to use, or 0 to keep the previous size
*/
set_cursor_theme(theme: string | null, size: number): void;
/**
* Sets the startup notification ID for a display.
*
* This is usually taken from the value of the DESKTOP_STARTUP_ID
* environment variable, but in some cases (such as the application not
* being launched using exec()) it can come from other sources.
*
* If the ID contains the string "_TIME" then the portion following that
* string is taken to be the X11 timestamp of the event that triggered
* the application to be launched and the GDK current event time is set
* accordingly.
*
* The startup ID is also what is used to signal that the startup is
* complete (for example, when opening a window or when calling
* gdk_notify_startup_complete()).
* @param startup_id the startup notification ID (must be valid utf8)
*/
set_startup_notification_id(startup_id: string): void;
/**
* Forces a specific window scale for all windows on this display,
* instead of using the default or user configured scale. This
* is can be used to disable scaling support by setting `scale` to
* 1, or to programmatically set the window scale.
*
* Once the scale is set by this call it will not change in response
* to later user configuration changes.
* @param scale The new scale value
*/
set_window_scale(scale: number): void;
/**
* Convert a string from the encoding of the current
* locale into a form suitable for storing in a window property.
* @param str a nul-terminated string
* @returns 0 upon success, non-zero upon failure
*/
string_to_compound_text(str: string): [number, Gdk.Atom, number, Uint8Array];
/**
* Convert a text string from the encoding as it is stored
* in a property into an array of strings in the encoding of
* the current locale. (The elements of the array represent the
* nul-separated elements of the original text string.)
* @param encoding an atom representing the encoding. The most common values for this are STRING, or COMPOUND_TEXT. This is value used as the type for the property
* @param format the format of the property
* @param text The text data
* @param length The number of items to transform
* @param list location to store an array of strings in the encoding of the current locale. This array should be freed using gdk_free_text_list().
* @returns the number of strings stored in list, or 0, if the conversion failed
*/
text_property_to_text_list(
encoding: Gdk.Atom,
format: number,
text: number,
length: number,
list: string,
): number;
/**
* Ungrab `display` after it has been grabbed with
* gdk_x11_display_grab().
*/
ungrab(): void;
/**
* Converts from UTF-8 to compound text.
* @param str a UTF-8 string
* @returns %TRUE if the conversion succeeded, otherwise %FALSE
*/
utf8_to_compound_text(str: string): [boolean, Gdk.Atom, number, Uint8Array];
}
namespace X11DisplayManager {
// Constructor properties interface
interface ConstructorProps extends Gdk.DisplayManager.ConstructorProps {}
}
class X11DisplayManager extends Gdk.DisplayManager {
static $gtype: GObject.GType<X11DisplayManager>;
// Constructors
constructor(properties?: Partial<X11DisplayManager.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
namespace X11DragContext {
// Constructor properties interface
interface ConstructorProps extends Gdk.DragContext.ConstructorProps {}
}
class X11DragContext extends Gdk.DragContext {
static $gtype: GObject.GType<X11DragContext>;
// Constructors
constructor(properties?: Partial<X11DragContext.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
namespace X11GLContext {
// Constructor properties interface
interface ConstructorProps extends Gdk.GLContext.ConstructorProps {}
}
class X11GLContext extends Gdk.GLContext {
static $gtype: GObject.GType<X11GLContext>;
// Constructors
constructor(properties?: Partial<X11GLContext.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
namespace X11Keymap {
// Constructor properties interface
interface ConstructorProps extends Gdk.Keymap.ConstructorProps {}
}
class X11Keymap extends Gdk.Keymap {
static $gtype: GObject.GType<X11Keymap>;
// Constructors
constructor(properties?: Partial<X11Keymap.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Extracts the group from the state field sent in an X Key event.
* This is only needed for code processing raw X events, since #GdkEventKey
* directly includes an is_modifier field.
* @param state raw state returned from X
* @returns the index of the active keyboard group for the event
*/
get_group_for_state(state: number): number;
/**
* Determines whether a particular key code represents a key that
* is a modifier. That is, its a key that normally just affects
* the keyboard state and the behavior of other keys rather than
* producing a direct effect itself. This is only needed for code
* processing raw X events, since #GdkEventKey directly includes
* an is_modifier field.
* @param keycode the hardware keycode from a key event
* @returns %TRUE if the hardware keycode is a modifier key
*/
key_is_modifier(keycode: number): boolean;
}
namespace X11Monitor {
// Constructor properties interface
interface ConstructorProps extends Gdk.Monitor.ConstructorProps {}
}
class X11Monitor extends Gdk.Monitor {
static $gtype: GObject.GType<X11Monitor>;
// Constructors
constructor(properties?: Partial<X11Monitor.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Static methods
static get_output(monitor: Gdk.Monitor): xlib.XID;
}
namespace X11Screen {
// Signal callback interfaces
interface WindowManagerChanged {
(): void;
}
// Constructor properties interface
interface ConstructorProps extends Gdk.Screen.ConstructorProps {}
}
class X11Screen extends Gdk.Screen {
static $gtype: GObject.GType<X11Screen>;
// Constructors
constructor(properties?: Partial<X11Screen.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'window-manager-changed', callback: (_source: this) => void): number;
connect_after(signal: 'window-manager-changed', callback: (_source: this) => void): number;
emit(signal: 'window-manager-changed'): void;
// Methods
/**
* Returns the current workspace for `screen` when running under a
* window manager that supports multiple workspaces, as described
* in the
* [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec) specification.
* @returns the current workspace, or 0 if workspaces are not supported
*/
get_current_desktop(): number;
/**
* Gets the XID of the specified output/monitor.
* If the X server does not support version 1.2 of the RANDR
* extension, 0 is returned.
* @param monitor_num number of the monitor, between 0 and gdk_screen_get_n_monitors (screen)
* @returns the XID of the monitor
*/
get_monitor_output(monitor_num: number): xlib.XID;
/**
* Returns the number of workspaces for `screen` when running under a
* window manager that supports multiple workspaces, as described
* in the
* [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec) specification.
* @returns the number of workspaces, or 0 if workspaces are not supported
*/
get_number_of_desktops(): number;
/**
* Returns the index of a #GdkScreen.
* @returns the position of @screen among the screens of its display
*/
get_screen_number(): number;
/**
* Returns the name of the window manager for `screen`.
* @returns the name of the window manager screen @screen, or "unknown" if the window manager is unknown. The string is owned by GDK and should not be freed.
*/
get_window_manager_name(): string;
/**
* Returns the screen of a #GdkScreen.
* @returns an Xlib Screen*
*/
get_xscreen(): xlib.Screen;
/**
* Looks up the #GdkVisual for a particular screen and X Visual ID.
* @param xvisualid an X Visual ID.
* @returns the #GdkVisual (owned by the screen object), or %NULL if the visual ID wasnt found.
*/
lookup_visual(xvisualid: xlib.VisualID): X11Visual;
/**
* This function is specific to the X11 backend of GDK, and indicates
* whether the window manager supports a certain hint from the
* [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec) specification.
*
* When using this function, keep in mind that the window manager
* can change over time; so you shouldnt use this function in
* a way that impacts persistent application state. A common bug
* is that your application can start up before the window manager
* does when the user logs in, and before the window manager starts
* gdk_x11_screen_supports_net_wm_hint() will return %FALSE for every property.
* You can monitor the window_manager_changed signal on #GdkScreen to detect
* a window manager change.
* @param property a property atom.
* @returns %TRUE if the window manager supports @property
*/
supports_net_wm_hint(property: Gdk.Atom): boolean;
}
namespace X11Visual {
// Constructor properties interface
interface ConstructorProps extends Gdk.Visual.ConstructorProps {}
}
class X11Visual extends Gdk.Visual {
static $gtype: GObject.GType<X11Visual>;
// Constructors
constructor(properties?: Partial<X11Visual.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns the X visual belonging to a #GdkVisual.
* @returns an Xlib Visual*.
*/
get_xvisual(): xlib.Visual;
}
namespace X11Window {
// Constructor properties interface
interface ConstructorProps extends Gdk.Window.ConstructorProps {}
}
class X11Window extends Gdk.Window {
static $gtype: GObject.GType<X11Window>;
// Constructors
constructor(properties?: Partial<X11Window.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static foreign_new_for_display(display: X11Display, window: xlib.Window): X11Window;
// Static methods
/**
* Looks up the #GdkWindow that wraps the given native window handle.
* @param display the #GdkDisplay corresponding to the window handle
* @param window an Xlib Window
*/
static lookup_for_display(display: X11Display, window: xlib.Window): X11Window;
// Methods
/**
* Gets the number of the workspace `window` is on.
* @returns the current workspace of @window
*/
get_desktop(): number;
/**
* Returns the X resource (window) belonging to a #GdkWindow.
* @returns the ID of @drawables X resource.
*/
get_xid(): xlib.Window;
/**
* Moves the window to the correct workspace when running under a
* window manager that supports multiple workspaces, as described
* in the [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec) specification.
* Will not do anything if the window is already on all workspaces.
*/
move_to_current_desktop(): void;
/**
* Moves the window to the given workspace when running unde a
* window manager that supports multiple workspaces, as described
* in the [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec) specification.
* @param desktop the number of the workspace to move the window to
*/
move_to_desktop(desktop: number): void;
/**
* This is the same as gdk_window_set_shadow_width() but it only works
* on GdkX11Window.
* @param left The left extent
* @param right The right extent
* @param top The top extent
* @param bottom The bottom extent
*/
set_frame_extents(left: number, right: number, top: number, bottom: number): void;
/**
* This function can be used to disable frame synchronization for a window.
* Normally frame synchronziation will be enabled or disabled based on whether
* the system has a compositor that supports frame synchronization, but if
* the window is not directly managed by the window manager, then frame
* synchronziation may need to be disabled. This is the case for a window
* embedded via the XEMBED protocol.
* @param frame_sync_enabled whether frame-synchronization should be enabled
*/
set_frame_sync_enabled(frame_sync_enabled: boolean): void;
/**
* Set a hint for the window manager, requesting that the titlebar
* should be hidden when the window is maximized.
*
* Note that this property is automatically updated by GTK+, so this
* function should only be used by applications which do not use GTK+
* to create toplevel windows.
* @param hide_titlebar_when_maximized whether to hide the titlebar when maximized
*/
set_hide_titlebar_when_maximized(hide_titlebar_when_maximized: boolean): void;
/**
* GTK+ applications can request a dark theme variant. In order to
* make other applications - namely window managers using GTK+ for
* themeing - aware of this choice, GTK+ uses this function to
* export the requested theme variant as _GTK_THEME_VARIANT property
* on toplevel windows.
*
* Note that this property is automatically updated by GTK+, so this
* function should only be used by applications which do not use GTK+
* to create toplevel windows.
* @param variant the theme variant to export
*/
set_theme_variant(variant: string): void;
/**
* The application can use this call to update the _NET_WM_USER_TIME
* property on a toplevel window. This property stores an Xserver
* time which represents the time of the last user input event
* received for this window. This property may be used by the window
* manager to alter the focus, stacking, and/or placement behavior of
* windows when they are mapped depending on whether the new window
* was created by a user action or is a "pop-up" window activated by a
* timer or some other event.
*
* Note that this property is automatically updated by GDK, so this
* function should only be used by applications which handle input
* events bypassing GDK.
* @param timestamp An XServer timestamp to which the property should be set
*/
set_user_time(timestamp: number): void;
/**
* This function modifies or removes an arbitrary X11 window
* property of type UTF8_STRING. If the given `window` is
* not a toplevel window, it is ignored.
* @param name Property name, will be interned as an X atom
* @param value Property value, or %NULL to delete
*/
set_utf8_property(name: string, value?: string | null): void;
}
type X11AppLaunchContextClass = typeof X11AppLaunchContext;
type X11CursorClass = typeof X11Cursor;
type X11DeviceCoreClass = typeof X11DeviceCore;
type X11DeviceManagerCoreClass = typeof X11DeviceManagerCore;
type X11DeviceManagerXI2Class = typeof X11DeviceManagerXI2;
type X11DeviceXI2Class = typeof X11DeviceXI2;
type X11DisplayClass = typeof X11Display;
type X11DisplayManagerClass = typeof X11DisplayManager;
type X11DragContextClass = typeof X11DragContext;
type X11GLContextClass = typeof X11GLContext;
type X11KeymapClass = typeof X11Keymap;
type X11MonitorClass = typeof X11Monitor;
type X11ScreenClass = typeof X11Screen;
type X11VisualClass = typeof X11Visual;
type X11WindowClass = typeof X11Window;
/**
* 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 GdkX11;
}
declare module 'gi://GdkX11' {
import GdkX1130 from 'gi://GdkX11?version=3.0';
export default GdkX1130;
}
// END

746
@girs/gdkx11-4.0.d.ts vendored Normal file
View file

@ -0,0 +1,746 @@
/// <reference path="./xlib-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="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.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://GdkX11?version=4.0' {
// Module dependencies
import type xlib from 'gi://xlib?version=2.0';
import type Gdk from 'gi://Gdk?version=4.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 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 GdkX11 {
/**
* GdkX11-4.0
*/
export namespace X11DeviceType {
export const $gtype: GObject.GType<X11DeviceType>;
}
enum X11DeviceType {
LOGICAL,
PHYSICAL,
FLOATING,
}
/**
* Returns the device ID as seen by XInput2.
* @param device a `GdkDevice`
* @returns the XInput2 device ID
*/
function x11_device_get_id(device: X11DeviceXI2): number;
/**
* Returns the `GdkDevice` that wraps the given device ID.
* @param device_manager a `GdkDeviceManager`
* @param device_id a device ID, as understood by the XInput2 protocol
* @returns The `GdkDevice` wrapping the device ID, or %NULL if the given ID doesnt currently represent a device.
*/
function x11_device_manager_lookup(device_manager: X11DeviceManagerXI2, device_id: number): X11DeviceXI2 | null;
/**
* Frees the data returned from gdk_x11_display_string_to_compound_text().
* @param ctext The pointer stored in @ctext from a call to gdk_x11_display_string_to_compound_text().
*/
function x11_free_compound_text(ctext: number): void;
/**
* Frees the array of strings created by
* gdk_x11_display_text_property_to_text_list().
* @param list the value stored in the @list parameter by a call to gdk_x11_display_text_property_to_text_list().
*/
function x11_free_text_list(list: string): void;
/**
* Routine to get the current X server time stamp.
* @param surface a `GdkSurface`, used for communication with the server. The surface must have `GDK_PROPERTY_CHANGE_MASK` in its events mask or a hang will result.
* @returns the time stamp
*/
function x11_get_server_time(surface: X11Surface): number;
/**
* Returns the X atom for a `GdkDisplay` corresponding to `atom_name`.
* This function caches the result, so if called repeatedly it is much
* faster than XInternAtom(), which is a round trip to the server each time.
* @param display a `GdkDisplay`
* @param atom_name a string
* @returns a X atom for a `GdkDisplay`
*/
function x11_get_xatom_by_name_for_display(display: X11Display, atom_name: string): xlib.Atom;
/**
* Returns the name of an X atom for its display. This
* function is meant mainly for debugging, so for convenience, unlike
* XAtomName() and the result doesnt need to
* be freed.
* @param display the `GdkDisplay` where @xatom is defined
* @param xatom an X atom
* @returns name of the X atom; this string is owned by GDK, so it shouldnt be modified or freed.
*/
function x11_get_xatom_name_for_display(display: X11Display, xatom: xlib.Atom): string;
/**
* Find the `GdkDisplay` corresponding to `xdisplay,` if any exists.
* @param xdisplay a pointer to an X Display
* @returns the `GdkDisplay`, if found, otherwise %NULL.
*/
function x11_lookup_xdisplay(xdisplay: xlib.Display): X11Display;
/**
* Sets the `SM_CLIENT_ID` property on the applications leader window so that
* the window manager can save the applications state using the X11R6 ICCCM
* session management protocol.
*
* See the X Session Management Library documentation for more information on
* session management and the Inter-Client Communication Conventions Manual
* @param sm_client_id the client id assigned by the session manager when the connection was opened, or %NULL to remove the property.
*/
function x11_set_sm_client_id(sm_client_id?: string | null): void;
namespace X11AppLaunchContext {
// Constructor properties interface
interface ConstructorProps extends Gdk.AppLaunchContext.ConstructorProps {}
}
class X11AppLaunchContext extends Gdk.AppLaunchContext {
static $gtype: GObject.GType<X11AppLaunchContext>;
// Constructors
constructor(properties?: Partial<X11AppLaunchContext.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
namespace X11DeviceManagerXI2 {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
display: Gdk.Display;
major: number;
minor: number;
opcode: number;
}
}
class X11DeviceManagerXI2 extends GObject.Object {
static $gtype: GObject.GType<X11DeviceManagerXI2>;
// Properties
get display(): Gdk.Display;
get major(): number;
get minor(): number;
get opcode(): number;
// Constructors
constructor(properties?: Partial<X11DeviceManagerXI2.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
namespace X11DeviceXI2 {
// Constructor properties interface
interface ConstructorProps extends Gdk.Device.ConstructorProps {
device_id: number;
deviceId: number;
}
}
class X11DeviceXI2 extends Gdk.Device {
static $gtype: GObject.GType<X11DeviceXI2>;
// Properties
get device_id(): number;
get deviceId(): number;
// Constructors
constructor(properties?: Partial<X11DeviceXI2.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
namespace X11Display {
// Signal callback interfaces
interface Xevent {
(xevent?: any | null): boolean;
}
// Constructor properties interface
interface ConstructorProps extends Gdk.Display.ConstructorProps {}
}
class X11Display extends Gdk.Display {
static $gtype: GObject.GType<X11Display>;
// Constructors
constructor(properties?: Partial<X11Display.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'xevent', callback: (_source: this, xevent: any | null) => boolean): number;
connect_after(signal: 'xevent', callback: (_source: this, xevent: any | null) => boolean): number;
emit(signal: 'xevent', xevent?: any | null): void;
// Static methods
/**
* Tries to open a new display to the X server given by
* `display_name`. If opening the display fails, %NULL is
* returned.
* @param display_name name of the X display. See the XOpenDisplay() for details.
*/
static open(display_name?: string | null): Gdk.Display | null;
/**
* Sets the program class.
*
* The X11 backend uses the program class to set the class name part
* of the `WM_CLASS` property on toplevel windows; see the ICCCM.
* @param display a `GdkDisplay`
* @param program_class a string
*/
static set_program_class(display: Gdk.Display, program_class: string): void;
// Methods
/**
* Pops the error trap pushed by gdk_x11_display_error_trap_push().
* Will XSync() if necessary and will always block until
* the error is known to have occurred or not occurred,
* so the error code can be returned.
*
* If you dont need to use the return value,
* gdk_x11_display_error_trap_pop_ignored() would be more efficient.
* @returns X error code or 0 on success
*/
error_trap_pop(): number;
/**
* Pops the error trap pushed by gdk_x11_display_error_trap_push().
* Does not block to see if an error occurred; merely records the
* range of requests to ignore errors for, and ignores those errors
* if they arrive asynchronously.
*/
error_trap_pop_ignored(): void;
/**
* Begins a range of X requests on `display` for which X error events
* will be ignored. Unignored errors (when no trap is pushed) will abort
* the application. Use gdk_x11_display_error_trap_pop() or
* gdk_x11_display_error_trap_pop_ignored()to lift a trap pushed
* with this function.
*/
error_trap_push(): void;
/**
* Returns the default group leader surface for all toplevel surfaces
* on `display`. This surface is implicitly created by GDK.
* See gdk_x11_surface_set_group().
* @returns The default group leader surface for @display
*/
get_default_group(): Gdk.Surface;
/**
* Retrieves the EGL display connection object for the given GDK display.
*
* This function returns `NULL` if GDK is using GLX.
* @returns the EGL display object
*/
get_egl_display(): any | null;
/**
* Retrieves the version of the EGL implementation.
* @returns %TRUE if EGL is available
*/
get_egl_version(): [boolean, number, number];
/**
* Retrieves the version of the GLX implementation.
* @returns %TRUE if GLX is available
*/
get_glx_version(): [boolean, number, number];
/**
* Gets the primary monitor for the display.
*
* The primary monitor is considered the monitor where the main desktop
* lives. While normal application surfaces typically allow the window
* manager to place the surfaces, specialized desktop applications
* such as panels should place themselves on the primary monitor.
*
* If no monitor is the designated primary monitor, any monitor
* (usually the first) may be returned.
* @returns the primary monitor, or any monitor if no primary monitor is configured by the user
*/
get_primary_monitor(): Gdk.Monitor;
/**
* Retrieves the `GdkX11Screen` of the `display`.
* @returns the `GdkX11Screen`
*/
get_screen(): X11Screen;
/**
* Gets the startup notification ID for a display.
* @returns the startup notification ID for @display
*/
get_startup_notification_id(): string;
// Conflicted with Gdk.Display.get_startup_notification_id
get_startup_notification_id(...args: never[]): any;
/**
* Returns the timestamp of the last user interaction on
* `display`. The timestamp is taken from events caused
* by user interaction such as key presses or pointer
* movements. See gdk_x11_surface_set_user_time().
* @returns the timestamp of the last user interaction
*/
get_user_time(): number;
/**
* Returns the X cursor belonging to a `GdkCursor`, potentially
* creating the cursor.
*
* Be aware that the returned cursor may not be unique to `cursor`.
* It may for example be shared with its fallback cursor. On old
* X servers that don't support the XCursor extension, all cursors
* may even fall back to a few default cursors.
* @param cursor a `GdkCursor`
* @returns an Xlib Cursor.
*/
get_xcursor(cursor: Gdk.Cursor): xlib.Cursor;
/**
* Returns the X display of a `GdkDisplay`.
* @returns an X display
*/
get_xdisplay(): xlib.Display;
/**
* Returns the root X window used by `GdkDisplay`.
* @returns an X Window
*/
get_xrootwindow(): xlib.Window;
/**
* Returns the X Screen used by `GdkDisplay`.
* @returns an X Screen
*/
get_xscreen(): xlib.Screen;
/**
* Call XGrabServer() on `display`.
* To ungrab the display again, use gdk_x11_display_ungrab().
*
* gdk_x11_display_grab()/gdk_x11_display_ungrab() calls can be nested.
*/
grab(): void;
/**
* Sets the cursor theme from which the images for cursor
* should be taken.
*
* If the windowing system supports it, existing cursors created
* with [ctor`Gdk`.Cursor.new_from_name] are updated to reflect the theme
* change. Custom cursors constructed with [ctor`Gdk`.Cursor.new_from_texture]
* will have to be handled by the application (GTK applications can learn
* about cursor theme changes by listening for change notification
* for the corresponding `GtkSetting`).
* @param theme the name of the cursor theme to use, or %NULL to unset a previously set value
* @param size the cursor size to use, or 0 to keep the previous size
*/
set_cursor_theme(theme: string | null, size: number): void;
/**
* Sets the startup notification ID for a display.
*
* This is usually taken from the value of the DESKTOP_STARTUP_ID
* environment variable, but in some cases (such as the application not
* being launched using exec()) it can come from other sources.
*
* If the ID contains the string "_TIME" then the portion following that
* string is taken to be the X11 timestamp of the event that triggered
* the application to be launched and the GDK current event time is set
* accordingly.
*
* The startup ID is also what is used to signal that the startup is
* complete (for example, when opening a window or when calling
* gdk_display_notify_startup_complete()).
* @param startup_id the startup notification ID (must be valid utf8)
*/
set_startup_notification_id(startup_id: string): void;
/**
* Forces a specific window scale for all windows on this display,
* instead of using the default or user configured scale. This
* is can be used to disable scaling support by setting `scale` to
* 1, or to programmatically set the window scale.
*
* Once the scale is set by this call it will not change in response
* to later user configuration changes.
* @param scale The new scale value
*/
set_surface_scale(scale: number): void;
/**
* Convert a string from the encoding of the current
* locale into a form suitable for storing in a window property.
* @param str a nul-terminated string
* @returns 0 upon success, non-zero upon failure
*/
string_to_compound_text(str: string): [number, string, number, Uint8Array];
/**
* Convert a text string from the encoding as it is stored
* in a property into an array of strings in the encoding of
* the current locale. (The elements of the array represent the
* nul-separated elements of the original text string.)
* @param encoding a string representing the encoding. The most common values for this are "STRING", or "COMPOUND_TEXT". This is value used as the type for the property
* @param format the format of the property
* @param text The text data
* @param length The number of items to transform
* @param list location to store an array of strings in the encoding of the current locale. This array should be freed using gdk_x11_free_text_list().
* @returns the number of strings stored in list, or 0, if the conversion failed
*/
text_property_to_text_list(
encoding: string,
format: number,
text: number,
length: number,
list: string,
): number;
/**
* Ungrab `display` after it has been grabbed with
* gdk_x11_display_grab().
*/
ungrab(): void;
/**
* Converts from UTF-8 to compound text.
* @param str a UTF-8 string
* @returns %TRUE if the conversion succeeded, otherwise %FALSE
*/
utf8_to_compound_text(str: string): [boolean, string, number, Uint8Array];
}
namespace X11Drag {
// Constructor properties interface
interface ConstructorProps extends Gdk.Drag.ConstructorProps {}
}
class X11Drag extends Gdk.Drag {
static $gtype: GObject.GType<X11Drag>;
// Constructors
constructor(properties?: Partial<X11Drag.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
namespace X11GLContext {
// Constructor properties interface
interface ConstructorProps extends Gdk.GLContext.ConstructorProps {}
}
abstract class X11GLContext extends Gdk.GLContext {
static $gtype: GObject.GType<X11GLContext>;
// Constructors
constructor(properties?: Partial<X11GLContext.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
}
namespace X11Monitor {
// Constructor properties interface
interface ConstructorProps extends Gdk.Monitor.ConstructorProps {}
}
class X11Monitor extends Gdk.Monitor {
static $gtype: GObject.GType<X11Monitor>;
// Constructors
constructor(properties?: Partial<X11Monitor.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns the XID of the Output corresponding to `monitor`.
* @returns the XID of @monitor
*/
get_output(): xlib.XID;
/**
* Retrieves the size and position of the work area on a monitor
* within the display coordinate space.
*
* The returned geometry is in application pixels, not in device pixels
* (see [method`Gdk`.Monitor.get_scale_factor]).
*/
get_workarea(): Gdk.Rectangle;
}
namespace X11Screen {
// Signal callback interfaces
interface WindowManagerChanged {
(): void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {}
}
class X11Screen extends GObject.Object {
static $gtype: GObject.GType<X11Screen>;
// Constructors
constructor(properties?: Partial<X11Screen.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'window-manager-changed', callback: (_source: this) => void): number;
connect_after(signal: 'window-manager-changed', callback: (_source: this) => void): number;
emit(signal: 'window-manager-changed'): void;
// Methods
/**
* Returns the current workspace for `screen` when running under a
* window manager that supports multiple workspaces, as described
* in the
* [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec) specification.
* @returns the current workspace, or 0 if workspaces are not supported
*/
get_current_desktop(): number;
/**
* Gets the XID of the specified output/monitor.
* If the X server does not support version 1.2 of the RANDR
* extension, 0 is returned.
* @param monitor_num number of the monitor, between 0 and gdk_screen_get_n_monitors (screen)
* @returns the XID of the monitor
*/
get_monitor_output(monitor_num: number): xlib.XID;
/**
* Returns the number of workspaces for `screen` when running under a
* window manager that supports multiple workspaces, as described
* in the
* [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec) specification.
* @returns the number of workspaces, or 0 if workspaces are not supported
*/
get_number_of_desktops(): number;
/**
* Returns the index of a `GdkX11Screen`.
* @returns the position of @screen among the screens of its display
*/
get_screen_number(): number;
/**
* Returns the name of the window manager for `screen`.
* @returns the name of the window manager screen @screen, or "unknown" if the window manager is unknown. The string is owned by GDK and should not be freed.
*/
get_window_manager_name(): string;
/**
* Returns the screen of a `GdkX11Screen`.
* @returns an Xlib Screen*
*/
get_xscreen(): xlib.Screen;
/**
* This function is specific to the X11 backend of GDK, and indicates
* whether the window manager supports a certain hint from the
* [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec) specification.
*
* When using this function, keep in mind that the window manager
* can change over time; so you shouldnt use this function in
* a way that impacts persistent application state. A common bug
* is that your application can start up before the window manager
* does when the user logs in, and before the window manager starts
* gdk_x11_screen_supports_net_wm_hint() will return %FALSE for every property.
* You can monitor the window_manager_changed signal on `GdkX11Screen` to detect
* a window manager change.
* @param property_name name of the WM property
* @returns %TRUE if the window manager supports @property
*/
supports_net_wm_hint(property_name: string): boolean;
}
namespace X11Surface {
// Constructor properties interface
interface ConstructorProps extends Gdk.Surface.ConstructorProps {}
}
class X11Surface extends Gdk.Surface {
static $gtype: GObject.GType<X11Surface>;
// Constructors
constructor(properties?: Partial<X11Surface.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Static methods
/**
* Looks up the `GdkSurface` that wraps the given native window handle.
* @param display the `GdkDisplay` corresponding to the window handle
* @param window an Xlib Window
*/
static lookup_for_display(display: X11Display, window: xlib.Window): X11Surface;
// Methods
/**
* Gets the number of the workspace `surface` is on.
* @returns the current workspace of @surface
*/
get_desktop(): number;
/**
* Returns the group this surface belongs to.
* @returns The group of this surface;
*/
get_group(): Gdk.Surface | null;
/**
* Returns the X resource (surface) belonging to a `GdkSurface`.
* @returns the ID of @drawables X resource.
*/
get_xid(): xlib.Window;
/**
* Moves the surface to the correct workspace when running under a
* window manager that supports multiple workspaces, as described
* in the [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec) specification.
* Will not do anything if the surface is already on all workspaces.
*/
move_to_current_desktop(): void;
/**
* Moves the surface to the given workspace when running unde a
* window manager that supports multiple workspaces, as described
* in the [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec) specification.
* @param desktop the number of the workspace to move the surface to
*/
move_to_desktop(desktop: number): void;
/**
* This function can be used to disable frame synchronization for a surface.
* Normally frame synchronziation will be enabled or disabled based on whether
* the system has a compositor that supports frame synchronization, but if
* the surface is not directly managed by the window manager, then frame
* synchronziation may need to be disabled. This is the case for a surface
* embedded via the XEMBED protocol.
* @param frame_sync_enabled whether frame-synchronization should be enabled
*/
set_frame_sync_enabled(frame_sync_enabled: boolean): void;
/**
* Sets the group leader of `surface` to be `leader`.
* See the ICCCM for details.
* @param leader a `GdkSurface`
*/
set_group(leader: Gdk.Surface): void;
/**
* Sets a hint on `surface` that pagers should not
* display it. See the EWMH for details.
* @param skips_pager %TRUE to skip pagers
*/
set_skip_pager_hint(skips_pager: boolean): void;
/**
* Sets a hint on `surface` that taskbars should not
* display it. See the EWMH for details.
* @param skips_taskbar %TRUE to skip taskbars
*/
set_skip_taskbar_hint(skips_taskbar: boolean): void;
/**
* GTK applications can request a dark theme variant. In order to
* make other applications - namely window managers using GTK for
* themeing - aware of this choice, GTK uses this function to
* export the requested theme variant as _GTK_THEME_VARIANT property
* on toplevel surfaces.
*
* Note that this property is automatically updated by GTK, so this
* function should only be used by applications which do not use GTK
* to create toplevel surfaces.
* @param variant the theme variant to export
*/
set_theme_variant(variant: string): void;
/**
* Sets a hint on `surface` that it needs user attention.
* See the ICCCM for details.
* @param urgent %TRUE to indicate urgenct attention needed
*/
set_urgency_hint(urgent: boolean): void;
/**
* The application can use this call to update the _NET_WM_USER_TIME
* property on a toplevel surface. This property stores an Xserver
* time which represents the time of the last user input event
* received for this surface. This property may be used by the window
* manager to alter the focus, stacking, and/or placement behavior of
* surfaces when they are mapped depending on whether the new surface
* was created by a user action or is a "pop-up" surface activated by a
* timer or some other event.
*
* Note that this property is automatically updated by GDK, so this
* function should only be used by applications which handle input
* events bypassing GDK.
* @param timestamp An XServer timestamp to which the property should be set
*/
set_user_time(timestamp: number): void;
/**
* This function modifies or removes an arbitrary X11 window
* property of type UTF8_STRING. If the given `surface` is
* not a toplevel surface, it is ignored.
* @param name Property name, will be interned as an X atom
* @param value Property value, or %NULL to delete
*/
set_utf8_property(name: string, value?: string | null): void;
}
type X11AppLaunchContextClass = typeof X11AppLaunchContext;
type X11DeviceManagerXI2Class = typeof X11DeviceManagerXI2;
type X11DeviceXI2Class = typeof X11DeviceXI2;
type X11DisplayClass = typeof X11Display;
type X11DragClass = typeof X11Drag;
type X11GLContextClass = typeof X11GLContext;
type X11MonitorClass = typeof X11Monitor;
type X11ScreenClass = typeof X11Screen;
type X11SurfaceClass = typeof X11Surface;
/**
* 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 GdkX11;
}
declare module 'gi://GdkX11' {
import GdkX1140 from 'gi://GdkX11?version=4.0';
export default GdkX1140;
}
// END

43
@girs/gettext.d.ts vendored Normal file
View file

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

67
@girs/gi.d.ts vendored Normal file
View file

@ -0,0 +1,67 @@
/**
* 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 './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 './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 './astalcava-0.1.d.ts';
import './astalbluetooth-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';

84175
@girs/gio-2.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

5198
@girs/giounix-2.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

2261
@girs/girepository-2.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

2566
@girs/girepository-3.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

738
@girs/gjs.d.ts vendored Normal file
View file

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

145
@girs/gl-1.0.d.ts vendored Normal file
View file

@ -0,0 +1,145 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://GL?version=1.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace GL {
/**
* GL-1.0
*/
function InitNames(): void;
class bitfield {
static $gtype: GObject.GType<bitfield>;
// Constructors
_init(...args: any[]): void;
}
class charARB {
static $gtype: GObject.GType<charARB>;
// Constructors
_init(...args: any[]): void;
}
class clampf {
static $gtype: GObject.GType<clampf>;
// Constructors
_init(...args: any[]): void;
}
class __boolean {
static $gtype: GObject.GType<__boolean>;
// Constructors
_init(...args: any[]): void;
}
class __enum {
static $gtype: GObject.GType<__enum>;
// Constructors
_init(...args: any[]): void;
}
class float {
static $gtype: GObject.GType<float>;
// Constructors
_init(...args: any[]): void;
}
class handleARB {
static $gtype: GObject.GType<handleARB>;
// Constructors
_init(...args: any[]): void;
}
class int {
static $gtype: GObject.GType<int>;
// Constructors
_init(...args: any[]): void;
}
class intptr {
static $gtype: GObject.GType<intptr>;
// Constructors
_init(...args: any[]): void;
}
class sizei {
static $gtype: GObject.GType<sizei>;
// Constructors
_init(...args: any[]): void;
}
class sizeiptr {
static $gtype: GObject.GType<sizeiptr>;
// Constructors
_init(...args: any[]): void;
}
class uint {
static $gtype: GObject.GType<uint>;
// Constructors
_init(...args: any[]): void;
}
class __void {
static $gtype: GObject.GType<__void>;
// Constructors
_init(...args: any[]): void;
}
/**
* Name of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string;
/**
* Version of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string;
}
export default GL;
}
declare module 'gi://GL' {
import GL10 from 'gi://GL?version=1.0';
export default GL10;
}
// END

27314
@girs/glib-2.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

103
@girs/glibunix-2.0.d.ts vendored Normal file
View file

@ -0,0 +1,103 @@
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://GLibUnix?version=2.0' {
// Module dependencies
import type GLib from 'gi://GLib?version=2.0';
import type GObject from 'gi://GObject?version=2.0';
export namespace GLibUnix {
/**
* GLibUnix-2.0
*/
/**
* Mnemonic constants for the ends of a Unix pipe.
*/
/**
* Mnemonic constants for the ends of a Unix pipe.
*/
export namespace PipeEnd {
export const $gtype: GObject.GType<PipeEnd>;
}
enum PipeEnd {
/**
* The readable file descriptor 0
*/
READ,
/**
* The writable file descriptor 1
*/
WRITE,
}
function closefrom(lowfd: number): number;
function error_quark(): GLib.Quark;
function fd_add_full(
priority: number,
fd: number,
condition: GLib.IOCondition | null,
_function: GLib.UnixFDSourceFunc,
): number;
function fd_source_new(fd: number, condition: GLib.IOCondition | null): GLib.Source;
function fdwalk_set_cloexec(lowfd: number): number;
function get_passwd_entry(user_name: string): any | null;
function open_pipe(fds: number, flags: number): boolean;
function set_fd_nonblocking(fd: number, nonblock: boolean): boolean;
function signal_add_full(priority: number, signum: number, handler: GLib.SourceFunc): number;
function signal_source_new(signum: number): GLib.Source;
interface FDSourceFunc {
(fd: number, condition: GLib.IOCondition): boolean;
}
/**
* A Unix pipe. The advantage of this type over `int[2]` is that it can
* be closed automatically when it goes out of scope, using `g_auto(GUnixPipe)`,
* on compilers that support that feature.
*/
class Pipe {
static $gtype: GObject.GType<Pipe>;
// Fields
fds: number[];
// Constructors
constructor(
properties?: Partial<{
fds: number[];
}>,
);
_init(...args: any[]): void;
}
/**
* Name of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string;
/**
* Version of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string;
}
export default GLibUnix;
}
declare module 'gi://GLibUnix' {
import GLibUnix20 from 'gi://GLibUnix?version=2.0';
export default GLibUnix20;
}
// END

207
@girs/gmodule-2.0.d.ts vendored Normal file
View file

@ -0,0 +1,207 @@
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://GModule?version=2.0' {
// Module dependencies
import type GLib from 'gi://GLib?version=2.0';
import type GObject from 'gi://GObject?version=2.0';
export namespace GModule {
/**
* GModule-2.0
*/
/**
* Errors returned by g_module_open_full().
*/
class ModuleError extends GLib.Error {
static $gtype: GObject.GType<ModuleError>;
// Static fields
/**
* there was an error loading or opening a module file
*/
static FAILED: number;
/**
* a module returned an error from its `g_module_check_init()` function
*/
static CHECK_FAILED: number;
// Constructors
constructor(options: { message: string; code: number });
_init(...args: any[]): void;
}
const MODULE_IMPL_AR: number;
const MODULE_IMPL_DL: number;
const MODULE_IMPL_NONE: number;
const MODULE_IMPL_WIN32: number;
/**
* A portable way to build the filename of a module. The platform-specific
* prefix and suffix are added to the filename, if needed, and the result
* is added to the directory, using the correct separator character.
*
* The directory should specify the directory where the module can be found.
* It can be %NULL or an empty string to indicate that the module is in a
* standard platform-specific directory, though this is not recommended
* since the wrong module may be found.
*
* For example, calling g_module_build_path() on a Linux system with a
* `directory` of `/lib` and a `module_name` of "mylibrary" will return
* `/lib/libmylibrary.so`. On a Windows system, using `\Windows` as the
* directory it will return `\Windows\mylibrary.dll`.
* @param directory the directory where the module is. This can be %NULL or the empty string to indicate that the standard platform-specific directories will be used, though that is not recommended
* @param module_name the name of the module
* @returns the complete path of the module, including the standard library prefix and suffix. This should be freed when no longer needed
*/
function module_build_path(directory: string | null, module_name: string): string;
/**
* Gets a string describing the last module error.
* @returns a string describing the last module error
*/
function module_error(): string;
function module_error_quark(): GLib.Quark;
/**
* Checks if modules are supported on the current platform.
* @returns %TRUE if modules are supported
*/
function module_supported(): boolean;
interface ModuleCheckInit {
(module: Module): string;
}
interface ModuleUnload {
(module: Module): void;
}
/**
* Flags passed to g_module_open().
* Note that these flags are not supported on all platforms.
*/
/**
* Flags passed to g_module_open().
* Note that these flags are not supported on all platforms.
*/
export namespace ModuleFlags {
export const $gtype: GObject.GType<ModuleFlags>;
}
enum ModuleFlags {
/**
* specifies that symbols are only resolved when
* needed. The default action is to bind all symbols when the module
* is loaded.
*/
LAZY,
/**
* specifies that symbols in the module should
* not be added to the global name space. The default action on most
* platforms is to place symbols in the module in the global name space,
* which may cause conflicts with existing symbols.
*/
LOCAL,
/**
* mask for all flags.
*/
MASK,
}
/**
* The #GModule struct is an opaque data structure to represent a
* [dynamically-loaded module][glib-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

6876
@girs/gobject-2.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

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

File diff suppressed because it is too large Load diff

4123
@girs/gsk-4.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

339522
@girs/gtk-3.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

259435
@girs/gtk-4.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

271
@girs/gtk4layershell-1.0.d.ts vendored Normal file
View file

@ -0,0 +1,271 @@
/// <reference path="./gtk-4.0.d.ts" />
/// <reference path="./gsk-4.0.d.ts" />
/// <reference path="./graphene-1.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gdk-4.0.d.ts" />
/// <reference path="./cairo-1.0.d.ts" />
/// <reference path="./cairo.d.ts" />
/// <reference path="./pangocairo-1.0.d.ts" />
/// <reference path="./pango-1.0.d.ts" />
/// <reference path="./harfbuzz-0.0.d.ts" />
/// <reference path="./freetype2-2.0.d.ts" />
/// <reference path="./gio-2.0.d.ts" />
/// <reference path="./gmodule-2.0.d.ts" />
/// <reference path="./gdkpixbuf-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://Gtk4LayerShell?version=1.0' {
// Module dependencies
import type Gtk from 'gi://Gtk?version=4.0';
import type Gsk from 'gi://Gsk?version=4.0';
import type Graphene from 'gi://Graphene?version=1.0';
import type GObject from 'gi://GObject?version=2.0';
import type GLib from 'gi://GLib?version=2.0';
import type Gdk from 'gi://Gdk?version=4.0';
import type cairo from 'cairo';
import type PangoCairo from 'gi://PangoCairo?version=1.0';
import type Pango from 'gi://Pango?version=1.0';
import type HarfBuzz from 'gi://HarfBuzz?version=0.0';
import type freetype2 from 'gi://freetype2?version=2.0';
import type Gio from 'gi://Gio?version=2.0';
import type GModule from 'gi://GModule?version=2.0';
import type GdkPixbuf from 'gi://GdkPixbuf?version=2.0';
export namespace Gtk4LayerShell {
/**
* Gtk4LayerShell-1.0
*/
export namespace Edge {
export const $gtype: GObject.GType<Edge>;
}
enum Edge {
/**
* The left edge of the screen.
*/
LEFT,
/**
* The right edge of the screen.
*/
RIGHT,
/**
* The top edge of the screen.
*/
TOP,
/**
* The bottom edge of the screen.
*/
BOTTOM,
/**
* Should not be used except to get the number of entries. (NOTE: may change in
* future releases as more entries are added)
*/
ENTRY_NUMBER,
}
export namespace KeyboardMode {
export const $gtype: GObject.GType<KeyboardMode>;
}
enum KeyboardMode {
/**
* This window should not receive keyboard events.
*/
NONE,
/**
* This window should have exclusive focus if it is on the top or overlay layer.
*/
EXCLUSIVE,
/**
* The user should be able to focus and unfocues this window in an implementation
* defined way. Not supported for protocol version < 4.
*/
ON_DEMAND,
/**
* Should not be used except to get the number of entries. (NOTE: may change in
* future releases as more entries are added)
*/
ENTRY_NUMBER,
}
export namespace Layer {
export const $gtype: GObject.GType<Layer>;
}
enum Layer {
/**
* The background layer.
*/
BACKGROUND,
/**
* The bottom layer.
*/
BOTTOM,
/**
* The top layer.
*/
TOP,
/**
* The overlay layer.
*/
OVERLAY,
/**
* Should not be used except to get the number of entries. (NOTE: may change in
* future releases as more entries are added)
*/
ENTRY_NUMBER,
}
/**
* When auto exclusive zone is enabled, exclusive zone is automatically set to the
* size of the `window` + relevant margin. To disable auto exclusive zone, just set the
* exclusive zone to 0 or any other fixed value.
*
* NOTE: you can control the auto exclusive zone by changing the margin on the non-anchored
* edge. This behavior is specific to gtk4-layer-shell and not part of the underlying protocol
* @param window A layer surface.
*/
function auto_exclusive_zone_enable(window: Gtk.Window): void;
function auto_exclusive_zone_is_enabled(window: Gtk.Window): boolean;
function get_anchor(window: Gtk.Window, edge: Edge | null): boolean;
function get_exclusive_zone(window: Gtk.Window): number;
function get_keyboard_mode(window: Gtk.Window): KeyboardMode;
function get_layer(window: Gtk.Window): Layer;
function get_major_version(): number;
function get_margin(window: Gtk.Window, edge: Edge | null): number;
function get_micro_version(): number;
function get_minor_version(): number;
/**
* NOTE: To get which monitor the surface is actually on, use
* gdk_display_get_monitor_at_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("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): 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): 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

151
@girs/gtk4sessionlock-1.0.d.ts vendored Normal file
View file

@ -0,0 +1,151 @@
/// <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 callback interfaces
interface Failed {
(): void;
}
interface Locked {
(): void;
}
interface 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>;
// Constructors
constructor(properties?: Partial<Instance.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Instance;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'failed', callback: (_source: this) => void): number;
connect_after(signal: 'failed', callback: (_source: this) => void): number;
emit(signal: 'failed'): void;
connect(signal: 'locked', callback: (_source: this) => void): number;
connect_after(signal: 'locked', callback: (_source: this) => void): number;
emit(signal: 'locked'): void;
connect(signal: 'unlocked', callback: (_source: this) => void): number;
connect_after(signal: 'unlocked', callback: (_source: this) => void): number;
emit(signal: 'unlocked'): void;
// Methods
/**
* This should 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 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

286
@girs/gtklayershell-0.1.d.ts vendored Normal file
View file

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

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

File diff suppressed because it is too large Load diff

8
@girs/index.d.ts vendored Normal file
View file

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

3086
@girs/json-1.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

105
@girs/libxml2-2.0.d.ts vendored Normal file
View file

@ -0,0 +1,105 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://libxml2?version=2.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace libxml2 {
/**
* libxml2-2.0
*/
function dummy(): void;
class Node {
static $gtype: GObject.GType<Node>;
// Constructors
_init(...args: any[]): void;
}
class NodePtr {
static $gtype: GObject.GType<NodePtr>;
// Constructors
_init(...args: any[]): void;
}
class Doc {
static $gtype: GObject.GType<Doc>;
// Constructors
_init(...args: any[]): void;
}
class DocPtr {
static $gtype: GObject.GType<DocPtr>;
// Constructors
_init(...args: any[]): void;
}
class NsPtr {
static $gtype: GObject.GType<NsPtr>;
// Constructors
_init(...args: any[]): void;
}
class Char {
static $gtype: GObject.GType<Char>;
// Constructors
_init(...args: any[]): void;
}
class TextWriter {
static $gtype: GObject.GType<TextWriter>;
// Constructors
_init(...args: any[]): void;
}
class TextReader {
static $gtype: GObject.GType<TextReader>;
// Constructors
_init(...args: any[]): void;
}
/**
* Name of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string;
/**
* Version of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string;
}
export default libxml2;
}
declare module 'gi://libxml2' {
import Libxml220 from 'gi://libxml2?version=2.0';
export default Libxml220;
}
// END

32917
@girs/nm-1.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

9203
@girs/pango-1.0.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

450
@girs/pangocairo-1.0.d.ts vendored Normal file
View file

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

962
@girs/pangofc-1.0.d.ts vendored Normal file
View file

@ -0,0 +1,962 @@
/// <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="./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://PangoFc?version=1.0' {
// Module dependencies
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 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 PangoFc {
/**
* PangoFc-1.0
*/
/**
* Fontconfig property that Pango reads from font
* patterns to populate list of OpenType features
* to be enabled for the font by default.
*
* The property will have a number of string elements,
* each of which is the OpenType feature tag of one feature
* to enable.
*
* This is equivalent to FC_FONT_FEATURES in versions of
* fontconfig that have that.
*/
const FONT_FEATURES: string;
/**
* Fontconfig property that Pango reads from font
* patterns to populate list of OpenType font variations
* to be used for a font.
*
* The property will have a string elements, each of which
* a comma-separated list of OpenType axis setting of the
* form AXIS=VALUE.
*
* This is equivalent to FC_FONT_VARIATIONS in versions of
* fontconfig that have that.
*/
const FONT_VARIATIONS: string;
/**
* Fontconfig property that Pango sets on any
* fontconfig pattern it passes to fontconfig
* if a `PangoGravity` other than %PANGO_GRAVITY_SOUTH
* is desired.
*
* The property will have a `PangoGravity` value as a string,
* like "east". This can be used to write fontconfig configuration
* rules to choose different fonts for horizontal and vertical
* writing directions.
*/
const GRAVITY: string;
/**
* Fontconfig property that Pango sets on any
* fontconfig pattern it passes to fontconfig.
*
* The property will have a string equal to what
* g_get_prgname() returns. This can be used to write
* fontconfig configuration rules that only affect
* certain applications.
*
* This is equivalent to FC_PRGNAME in versions of
* fontconfig that have that.
*/
const PRGNAME: string;
/**
* Fontconfig property that Pango sets on any
* fontconfig pattern it passes to fontconfig.
*
* The property will have an integer value equal to what
* [func`Pango`.version] returns. This can be used to write
* fontconfig configuration rules that only affect certain
* pango versions (or only pango-using applications, or only
* non-pango-using applications).
*/
const VERSION: string;
interface SubstituteFunc {
(pattern: fontconfig.Pattern, data?: any | null): void;
}
namespace Decoder {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {}
}
/**
* `PangoFcDecoder` is a virtual base class that implementations will
* inherit from.
*
* It's the interface that is used to define a custom encoding for a font.
* These objects are created in your code from a function callback that was
* originally registered with [method`PangoFc`.FontMap.add_decoder_find_func].
* Pango requires information about the supported charset for a font as well
* as the individual character to glyph conversions. Pango gets that
* information via the #get_charset and #get_glyph callbacks into your
* object implementation.
*/
abstract class Decoder extends GObject.Object {
static $gtype: GObject.GType<Decoder>;
// Constructors
constructor(properties?: Partial<Decoder.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Virtual methods
/**
* Generates an `FcCharSet` of supported characters for the `fcfont`
* given.
*
* The returned `FcCharSet` will be a reference to an
* internal value stored by the `PangoFcDecoder` and must not
* be modified or freed.
* @param fcfont the `PangoFcFont` to query.
*/
vfunc_get_charset(fcfont: Font): fontconfig.CharSet;
/**
* Generates a `PangoGlyph` for the given Unicode point using the
* custom decoder.
*
* For complex scripts where there can be multiple
* glyphs for a single character, the decoder will return whatever
* glyph is most convenient for it. (Usually whatever glyph is directly
* in the fonts character map table.)
* @param fcfont a `PangoFcFont` to query.
* @param wc the Unicode code point to convert to a single `PangoGlyph`.
*/
vfunc_get_glyph(fcfont: Font, wc: number): Pango.Glyph;
// Methods
/**
* Generates an `FcCharSet` of supported characters for the `fcfont`
* given.
*
* The returned `FcCharSet` will be a reference to an
* internal value stored by the `PangoFcDecoder` and must not
* be modified or freed.
* @param fcfont the `PangoFcFont` to query.
* @returns the `FcCharset` for @fcfont; must not be modified or freed.
*/
get_charset(fcfont: Font): fontconfig.CharSet;
/**
* Generates a `PangoGlyph` for the given Unicode point using the
* custom decoder.
*
* For complex scripts where there can be multiple
* glyphs for a single character, the decoder will return whatever
* glyph is most convenient for it. (Usually whatever glyph is directly
* in the fonts character map table.)
* @param fcfont a `PangoFcFont` to query.
* @param wc the Unicode code point to convert to a single `PangoGlyph`.
* @returns the glyph index, or 0 if the glyph isn't covered by the font.
*/
get_glyph(fcfont: Font, wc: number): Pango.Glyph;
}
namespace Font {
// Constructor properties interface
interface ConstructorProps extends Pango.Font.ConstructorProps {
fontmap: FontMap;
pattern: any;
}
}
/**
* `PangoFcFont` is a base class for font implementations
* using the Fontconfig and FreeType libraries.
*
* It is used in onjunction with [class`PangoFc`.FontMap].
* When deriving from this class, you need to implement all
* of its virtual functions other than shutdown() along with
* the get_glyph_extents() virtual function from `PangoFont`.
*/
abstract class Font extends Pango.Font {
static $gtype: GObject.GType<Font>;
// Properties
/**
* The PangoFc font map this font is associated with.
*/
get fontmap(): FontMap;
set fontmap(val: FontMap);
/**
* The fontconfig pattern for this font.
*/
get pattern(): any;
// Fields
priv: any;
matrix: Pango.Matrix;
metrics_by_lang: any[];
is_hinted: number;
is_transformed: number;
// Constructors
constructor(properties?: Partial<Font.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Static methods
/**
* Creates a `PangoFontDescription` that matches the specified
* Fontconfig pattern as closely as possible.
*
* Many possible Fontconfig pattern values, such as %FC_RASTERIZER
* or %FC_DPI, don't make sense in the context of `PangoFontDescription`,
* so will be ignored.
* @param pattern a `FcPattern`
* @param include_size if %TRUE, the pattern will include the size from the @pattern; otherwise the resulting pattern will be unsized. (only %FC_SIZE is examined, not %FC_PIXEL_SIZE)
*/
static description_from_pattern(pattern: fontconfig.Pattern, include_size: boolean): Pango.FontDescription;
// 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 [method`PangoFc`.Font.has_char].
* @param wc Unicode character to look up
* @returns the glyph index, or 0, if the Unicode character doesn't exist in the font.
*/
get_glyph(wc: number): number;
/**
* Returns the languages that are supported by `font`.
*
* This corresponds to the FC_LANG member of the FcPattern.
*
* The returned array is only valid as long as the font
* and its fontmap are valid.
* @returns a %NULL-terminated array of `PangoLanguage`*
*/
get_languages(): Pango.Language[] | null;
/**
* 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: number): Pango.Glyph;
/**
* Determines whether `font` has a glyph for the codepoint `wc`.
* @param wc Unicode codepoint to look up
* @returns %TRUE if @font has the requested codepoint.
*/
has_char(wc: number): boolean;
/**
* This function used to adjust each adjacent pair of glyphs
* in `glyphs` according to kerning information in `font`.
*
* Since 1.44, it does nothing.
* @param glyphs a `PangoGlyphString`
*/
kern_glyphs(glyphs: Pango.GlyphString): void;
/**
* Releases a font previously obtained with
* [method`PangoFc`.Font.lock_face].
*/
unlock_face(): void;
}
namespace FontMap {
// Constructor properties interface
interface ConstructorProps<A extends GObject.Object = GObject.Object>
extends Pango.FontMap.ConstructorProps,
Gio.ListModel.ConstructorProps {}
}
/**
* `PangoFcFontMap` is a base class for font map implementations using the
* Fontconfig and FreeType libraries.
*
* It is used in the Xft and FreeType backends shipped with Pango,
* but can also be used when creating new backends. Any backend
* deriving from this base class will take advantage of the wide
* range of shapers implemented using FreeType that come with Pango.
*/
abstract class FontMap<A extends GObject.Object = GObject.Object>
extends Pango.FontMap
implements Gio.ListModel<A>
{
static $gtype: GObject.GType<FontMap>;
// Constructors
constructor(properties?: Partial<FontMap.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Clear all cached information and fontsets for this font map.
*
* This should be called whenever there is a change in the
* output of the default_substitute() virtual function of the
* font map, or if fontconfig has been reinitialized to new
* configuration.
*/
cache_clear(): void;
/**
* Informs font map that the fontconfig configuration (i.e.,
* the `FcConfig` object) used by this font map has changed.
*
* This currently calls [method`PangoFc`.FontMap.cache_clear] which
* ensures that list of fonts, etc will be regenerated using the
* updated configuration.
*/
config_changed(): void;
/**
* Creates a new context for this fontmap.
*
* This function is intended only for backend implementations deriving
* from `PangoFcFontMap`; it is possible that a backend will store
* additional information needed for correct operation on the `PangoContext`
* after calling this function.
* @returns a new `PangoContext`
*/
create_context(): Pango.Context;
/**
* Finds the decoder to use for `pattern`.
*
* Decoders can be added to a font map using
* [method`PangoFc`.FontMap.add_decoder_find_func].
* @param pattern The `FcPattern` to find the decoder for.
* @returns a newly created `PangoFcDecoder` object or %NULL if no decoder is set for @pattern.
*/
find_decoder(pattern: fontconfig.Pattern): Decoder | null;
/**
* 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;
/**
* Clears all cached information for the fontmap and marks
* all fonts open for the fontmap as dead.
*
* See the shutdown() virtual function of `PangoFcFont`.
*
* This function might be used by a backend when the underlying
* windowing system for the font map exits. This function is only
* intended to be called only for backend implementations deriving
* from `PangoFcFontMap`.
*/
shutdown(): void;
/**
* Call this function any time the results of the default
* substitution function set with
* [method`PangoFc`.FontMap.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;
}
type DecoderClass = typeof Decoder;
type FontClass = typeof Font;
type FontMapClass = typeof FontMap;
abstract class FontMapPrivate {
static $gtype: GObject.GType<FontMapPrivate>;
// 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 PangoFc;
}
declare module 'gi://PangoFc' {
import PangoFc10 from 'gi://PangoFc?version=1.0';
export default PangoFc10;
}
// END

777
@girs/pangoft2-1.0.d.ts vendored Normal file
View file

@ -0,0 +1,777 @@
/// <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 {
// 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>;
// Constructors
constructor(properties?: Partial<FontMap.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): FontMap;
// 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

560
@girs/pangoot-1.0.d.ts vendored Normal file
View file

@ -0,0 +1,560 @@
/// <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 {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {}
}
class Info extends GObject.Object {
static $gtype: GObject.GType<Info>;
// Constructors
constructor(properties?: Partial<Info.ConstructorProps>, ...args: any[]);
_init(...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 {
// 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>;
// 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;
// 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

879
@girs/pangoxft-1.0.d.ts vendored Normal file
View file

@ -0,0 +1,879 @@
/// <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 {
// 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>;
// Constructors
constructor(properties?: Partial<Font.ConstructorProps>, ...args: any[]);
_init(...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: number): 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: number): 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: number): boolean;
}
namespace FontMap {
// 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>;
// Constructors
constructor(properties?: Partial<FontMap.ConstructorProps>, ...args: any[]);
_init(...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 {
// 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);
// Constructors
constructor(properties?: Partial<Renderer.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](display: xlib.Display, screen: number): Renderer;
// 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

178
@girs/system.d.ts vendored Normal file
View file

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

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

File diff suppressed because it is too large Load diff

52
@girs/win32-1.0.d.ts vendored Normal file
View file

@ -0,0 +1,52 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://win32?version=1.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace win32 {
/**
* win32-1.0
*/
class MSG {
static $gtype: GObject.GType<MSG>;
// Constructors
_init(...args: any[]): void;
}
type HWND = number;
type HICON = number;
type HCURSOR = number;
type HGDIOBJ = number;
/**
* Name of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string;
/**
* Version of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string;
}
export default win32;
}
declare module 'gi://win32' {
import Win3210 from 'gi://win32?version=1.0';
export default Win3210;
}
// END

7651
@girs/wp-0.5.d.ts vendored Normal file

File diff suppressed because it is too large Load diff

48
@girs/xfixes-4.0.d.ts vendored Normal file
View file

@ -0,0 +1,48 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://xfixes?version=4.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace xfixes {
/**
* xfixes-4.0
*/
class XserverRegion {
static $gtype: GObject.GType<XserverRegion>;
// Constructors
_init(...args: any[]): void;
}
/**
* Name of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string;
/**
* Version of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string;
}
export default xfixes;
}
declare module 'gi://xfixes' {
import Xfixes40 from 'gi://xfixes?version=4.0';
export default Xfixes40;
}
// END

75
@girs/xft-2.0.d.ts vendored Normal file
View file

@ -0,0 +1,75 @@
/// <reference path="./xlib-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://xft?version=2.0' {
// Module dependencies
import type xlib from 'gi://xlib?version=2.0';
import type GObject from 'gi://GObject?version=2.0';
export namespace xft {
/**
* xft-2.0
*/
function init(): void;
class Color {
static $gtype: GObject.GType<Color>;
// Constructors
_init(...args: any[]): void;
}
class Draw {
static $gtype: GObject.GType<Draw>;
// Constructors
_init(...args: any[]): void;
}
class Font {
static $gtype: GObject.GType<Font>;
// Constructors
_init(...args: any[]): void;
}
class GlyphSpec {
static $gtype: GObject.GType<GlyphSpec>;
// Constructors
_init(...args: any[]): void;
}
/**
* Name of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string;
/**
* Version of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string;
}
export default xft;
}
declare module 'gi://xft' {
import Xft20 from 'gi://xft?version=2.0';
export default Xft20;
}
// END

134
@girs/xlib-2.0.d.ts vendored Normal file
View file

@ -0,0 +1,134 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://xlib?version=2.0' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace xlib {
/**
* xlib-2.0
*/
function open_display(): void;
class Display {
static $gtype: GObject.GType<Display>;
// Constructors
_init(...args: any[]): void;
}
class Screen {
static $gtype: GObject.GType<Screen>;
// Constructors
_init(...args: any[]): void;
}
class Visual {
static $gtype: GObject.GType<Visual>;
// Constructors
_init(...args: any[]): void;
}
class XConfigureEvent {
static $gtype: GObject.GType<XConfigureEvent>;
// Constructors
_init(...args: any[]): void;
}
class XImage {
static $gtype: GObject.GType<XImage>;
// Constructors
_init(...args: any[]): void;
}
class XFontStruct {
static $gtype: GObject.GType<XFontStruct>;
// Constructors
_init(...args: any[]): void;
}
class XTrapezoid {
static $gtype: GObject.GType<XTrapezoid>;
// Constructors
_init(...args: any[]): void;
}
class XVisualInfo {
static $gtype: GObject.GType<XVisualInfo>;
// Constructors
_init(...args: any[]): void;
}
class XWindowAttributes {
static $gtype: GObject.GType<XWindowAttributes>;
// Constructors
_init(...args: any[]): void;
}
class XEvent {
static $gtype: GObject.GType<XEvent>;
// Constructors
_init(...args: any[]): void;
}
type Atom = number;
type Colormap = number;
type Cursor = number;
type Drawable = number;
type GC = any;
type KeyCode = number;
type KeySym = number;
type Picture = number;
type Time = number;
type VisualID = number;
type Window = number;
type XID = number;
type Pixmap = number;
/**
* Name of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string;
/**
* Version of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string;
}
export default xlib;
}
declare module 'gi://xlib' {
import Xlib20 from 'gi://xlib?version=2.0';
export default Xlib20;
}
// END

96
@girs/xrandr-1.3.d.ts vendored Normal file
View file

@ -0,0 +1,96 @@
/// <reference path="./gobject-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://xrandr?version=1.3' {
// Module dependencies
import type GObject from 'gi://GObject?version=2.0';
export namespace xrandr {
/**
* xrandr-1.3
*/
class ScreenSize {
static $gtype: GObject.GType<ScreenSize>;
// Constructors
_init(...args: any[]): void;
}
class ScreenChangeNotifyEvent {
static $gtype: GObject.GType<ScreenChangeNotifyEvent>;
// Constructors
_init(...args: any[]): void;
}
class NotifyEvent {
static $gtype: GObject.GType<NotifyEvent>;
// Constructors
_init(...args: any[]): void;
}
class ScreenResources {
static $gtype: GObject.GType<ScreenResources>;
// Constructors
_init(...args: any[]): void;
}
class OutputChangeNotifyEvent {
static $gtype: GObject.GType<OutputChangeNotifyEvent>;
// Constructors
_init(...args: any[]): void;
}
class CrtcChangeNotifyEvent {
static $gtype: GObject.GType<CrtcChangeNotifyEvent>;
// Constructors
_init(...args: any[]): void;
}
class OutputPropertyNotifyEvent {
static $gtype: GObject.GType<OutputPropertyNotifyEvent>;
// Constructors
_init(...args: any[]): void;
}
/**
* Name of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string;
/**
* Version of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string;
}
export default xrandr;
}
declare module 'gi://xrandr' {
import Xrandr13 from 'gi://xrandr?version=1.3';
export default Xrandr13;
}
// END

10
app.ts Normal file
View file

@ -0,0 +1,10 @@
import { App } from "astal/gtk4"
import style from "./style/style.scss"
import Bar from "./windows/Bar"
App.start({
css: style,
main() {
App.get_monitors().map(Bar);
},
});

View file

27
flake.lock generated
View file

@ -8,11 +8,11 @@
]
},
"locked": {
"lastModified": 1738087375,
"narHash": "sha256-GLyNtU9A2VN22jNRHZ2OXuFfTJLh8uEVVt+ftsKUX0c=",
"lastModified": 1744557573,
"narHash": "sha256-XAyj0iDuI51BytJ1PwN53uLpzTDdznPDQFG4RwihlTQ=",
"owner": "aylur",
"repo": "ags",
"rev": "a6a7a0adb17740f4c34a59902701870d46fbb6a4",
"rev": "3ed9737bdbc8fc7a7c7ceef2165c9109f336bff6",
"type": "github"
},
"original": {
@ -28,26 +28,6 @@
"nixpkgs"
]
},
"locked": {
"lastModified": 1737670815,
"narHash": "sha256-ZCxxshGN7XooabArcoGkYSNx5yVunqjKJi2aTv6cznI=",
"owner": "aylur",
"repo": "astal",
"rev": "127e9cdcbf173846a3c40ddc0abfbb038df48042",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "astal",
"type": "github"
}
},
"astal_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1742571008,
"narHash": "sha256-5WgfJAeBpxiKbTR/gJvxrGYfqQRge5aUDcGKmU1YZ1Q=",
@ -81,7 +61,6 @@
"root": {
"inputs": {
"ags": "ags",
"astal": "astal_2",
"nixpkgs": "nixpkgs"
}
}

116
flake.nix
View file

@ -1,4 +1,6 @@
{
description = "AGS Shell";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
@ -6,126 +8,62 @@
url = "github:aylur/ags";
inputs.nixpkgs.follows = "nixpkgs";
};
astal = {
url = "github:aylur/astal";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{ self, nixpkgs, ... }@inputs:
{
self,
nixpkgs,
ags,
}:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
nativeBuildInputs = with pkgs; [
blueprint-compiler
dart-sass
esbuild
fzf
gobject-introspection
libgtop
meson
ninja
pkg-config
wrapGAppsHook4
gtk4
gjs
];
agsPkgs = with inputs.ags.packages.${pkgs.system}; [
extraAgsLib = with ags.packages.${system}; [
apps
astal4
apps
battery
bluetooth
greet
cava
hyprland
io
mpris
network
notifd
powerprofiles
tray
wireplumber
];
in
{
packages.${system} = {
default = inputs.ags.lib.bundle {
default = ags.lib.bundle {
inherit pkgs;
src = ./.;
name = "yash"; # name of executable
src = src/.;
name = "ags-shell";
entry = "app.ts";
gtk4 = true;
# additional libraries and executables to add to gjs' runtime
extraPackages = nativeBuildInputs ++ agsPkgs;
extraPackages = extraAgsLib ++ [ pkgs.fzf ];
};
# TO GEN TYPES, ags types is FUCKED
# npx -y @ts-for-gir/cli generate --ignoreVersionConflicts --outdir ./@girs -g /nix/store/gq0k2imad3ijd0ih87aiinj617wyh34f-gir-dirs/share/gir-1.0
# subtree script to manage git subtree pushes and pulls. Personal use feel free to remove
subtree = pkgs.writeScriptBin "subtree" ''
#!/usr/bin/env fish
if test (count $argv) -ne 1
echo "Usage: $argv0 push|pull"
exit 1
end
set action $argv[1]
set subtree_path "ags"
set remote "yash-origin"
set branch "main"
cd (git rev-parse --show-toplevel)
switch $action
case push
set changes (git status --porcelain "$subtree_path")
if test -n "$changes"
set_color yellow; echo " Cannot push. There are uncommitted changes in $subtree_path."
exit 1
end
git subtree push --prefix="$subtree_path" $remote $branch
case pull
git subtree pull --prefix="$subtree_path" $remote $branch
case commit
set changes (git status --porcelain "$subtree_path")
if test -z "$changes"
echo "No changes to commit in $subtree_path."
exit 0
end
echo " Enter commit message:"
read commit_message
if test -z "$commit_message"
echo "Commit message cannot be empty."
exit 1
end
git add "$subtree_path"
git commit -m "$commit_message"
case '*'
echo "Unknown argument. Use push or pull."
exit 1
end
'';
};
devShells.${system} = {
default = pkgs.mkShell {
nativeBuildInputs = [
(inputs.ags.packages.${system}.agsFull.override {
extraPackages = nativeBuildInputs;
buildInputs = [
# pkgs.typescript-language-server
pkgs.glib
pkgs.glibc
pkgs.nodejs
pkgs.pnpm
pkgs.biome
pkgs.watchexec
# includes astal3 astal4 astal-io by default
(ags.packages.${system}.default.override {
extraPackages = extraAgsLib;
})
];
packages = [
pkgs.gjs
pkgs.pnpm
pkgs.nodejs
self.packages.${system}.subtree
inputs.ags.packages.${system}.agsFull
inputs.astal.packages.${system}.default
] ++ nativeBuildInputs;
};
};
};

View file

@ -1,9 +1,9 @@
{
"name": "astal-shell",
"dependencies": {
"astal": "/nix/store/88kb2cyzj1hwad8s43wzdkafyp3hsh31-astal-gjs/share/astal/gjs"
"astal": "/nix/store/linv5jqg06dn798m2hainbw78pwad0n9-astal-gjs/share/astal/gjs"
},
"devDependencies": {
"typescript": "5.7.3"
}
},
"name": "astal-shell"
}

4
pnpm-lock.yaml generated
View file

@ -7,6 +7,10 @@ settings:
importers:
.:
dependencies:
astal:
specifier: /nix/store/linv5jqg06dn798m2hainbw78pwad0n9-astal-gjs/share/astal/gjs
version: link:../../../../../nix/store/linv5jqg06dn798m2hainbw78pwad0n9-astal-gjs/share/astal/gjs
devDependencies:
typescript:
specifier: 5.7.3

View file

@ -1,10 +0,0 @@
import { App } from "astal/gtk4";
import style from "./style.scss";
import Bar from "./app/windows/Bar";
App.start({
css: style,
main() {
App.get_monitors().map(Bar);
},
});

View file

@ -1,16 +0,0 @@
import { App, Astal, Gtk, Gdk } from "astal/gtk4";
import { GLib, Variable } from "astal";
function Time({ format = "%H:%M - %A %e." }) {
const time = Variable<string>("").poll(1000, () => GLib.DateTime.new_now_local().format(format)!);
return <label cssName="Time" onDestroy={() => time.drop()} label={time()} />;
}
export default function BarCenter() {
return (
<box>
<Time />
</box>
);
}

View file

@ -1,8 +0,0 @@
import { App, Astal, Gtk, Gdk } from "astal/gtk4";
import { Variable } from "astal";
const time = Variable("").poll(1000, "date");
export default function BarRight() {
return <></>;
}

View file

@ -1,3 +0,0 @@
export { default as BarLeft } from "./BarLeft";
export { default as BarCenter } from "./BarCenter";
export { default as BarRight } from "./BarRight";

View file

@ -1,36 +0,0 @@
import { App, Astal, Gtk, Gdk } from "astal/gtk4";
import { Variable } from "astal";
import { BarLeft, BarCenter, BarRight } from "./components";
const time = Variable("").poll(1000, "date");
export default function Bar(gdkmonitor: Gdk.Monitor) {
const { TOP, LEFT, RIGHT } = Astal.WindowAnchor;
return (
<window cssName="Bar" visible gdkmonitor={gdkmonitor} exclusivity={Astal.Exclusivity.EXCLUSIVE} anchor={TOP | LEFT | RIGHT} application={App}>
<centerbox cssName="Bar-centerbox">
<BarLeft />
<BarCenter />
<BarRight />
</centerbox>
</window>
);
// return (
// <window visible cssClasses={["Bar"]} gdkmonitor={gdkmonitor} exclusivity={Astal.Exclusivity.EXCLUSIVE} anchor={TOP | LEFT | RIGHT} application={App}>
// <centerbox cssName="centerbox">
// <button onClicked="echo hello" hexpand halign={Gtk.Align.CENTER}>
// Welcome to AGS!
// </button>
// <box />
// <menubutton hexpand halign={Gtk.Align.CENTER}>
// <label label={time()} />
// <popover>
// <Gtk.Calendar />
// </popover>
// </menubutton>
// </centerbox>
// </window>
// );
}

View file

@ -2,8 +2,6 @@
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
"experimentalDecorators": true,
// "checkJs": true,
// "allowJs": true,
"jsx": "react-jsx",
"jsxImportSource": "astal/gtk4",
"module": "ES2022",

View file

@ -0,0 +1,10 @@
import { GLib } from "astal";
export default function Launcher() {
return (
<button cssName="barauncher">
<image iconName={GLib.get_os_info("LOGO") || "missing-symbolic"} />
</button>
);
}

View file

@ -0,0 +1,20 @@
import { bind } from "astal";
import Wp from "gi://AstalWp";
export default function VolumeStatus() {
const speaker = Wp.get_default()?.audio.defaultSpeaker!;
return (
<box
onScroll={(_, __, dy) =>
dy < 0 ? (speaker.volume += 0.01) : (speaker.volume += -0.01)
}
spacing={2}
>
<image iconName={bind(speaker, "volumeIcon")} />
<label
label={bind(speaker, "volume").as((p) => `${Math.floor(p * 100)}%`)}
/>
</box>
);
}

View file

@ -1,18 +1,7 @@
import { App, Astal, Gtk, Gdk } from "astal/gtk4";
import { bind, GLib, Variable } from "astal";
import { bind } from "astal";
import Hyprland from "gi://AstalHyprland";
const time = Variable("").poll(1000, "date");
function Launcher() {
return (
<button cssName="barauncher">
<image iconName={GLib.get_os_info("LOGO") || "missing-symbolic"} />
</button>
);
}
function Workspaces() {
export default function Workspaces() {
const hypr = Hyprland.get_default();
return (
@ -35,12 +24,3 @@ function Workspaces() {
</box>
);
}
export default function BarLeft() {
return (
<box>
<Launcher />
<Workspaces />
</box>
);
}

View file

@ -0,0 +1,3 @@
export { default as Workspaces } from "./Workspaces";
export { default as Volume } from "./Volume";
export { default as Launcher } from "./Launcher";

66
windows/Bar/index.tsx Normal file
View file

@ -0,0 +1,66 @@
import { bind, Variable } from "astal";
import { App, Astal, Gtk, Gdk } from "astal/gtk4";
import GLib from "gi://GLib";
import { Volume, Workspaces, Launcher } from "./components";
const time = Variable<string>("").poll(1000, () => GLib.DateTime.new_now_local().format("%H:%M - %A %e.")!);
function Left() {
return (
<box>
<Launcher />
<Gtk.Separator />
<Workspaces />
</box>
);
}
function Center() {
return (
<box>
{/* <Time /> */}
</box>
);
}
function Right() {
return <></>;
}
export default function Bar(gdkmonitor: Gdk.Monitor) {
const { TOP, LEFT, RIGHT } = Astal.WindowAnchor;
return (
<window
visible
cssName="window"
gdkmonitor={gdkmonitor}
exclusivity={Astal.Exclusivity.EXCLUSIVE}
anchor={TOP | LEFT | RIGHT}
application={App}
>
<centerbox cssName="centerbox" cssClasses={["container"]}>
<box spacing={6} halign={Gtk.Align.CENTER}>
<Launcher />
<Workspaces />
</box>
<box spacing={6} halign={Gtk.Align.CENTER}>
<box>
<menubutton>
<label label={time()} />
<popover>
<Gtk.Calendar canTarget={false} canFocus={false} />
</popover>
</menubutton>
</box>
</box>
<box spacing={6} halign={Gtk.Align.END}>
<Volume />
</box>
</centerbox>
</window>
);
}