UNPKG

@girs/gnome-shell

Version:

GJS TypeScript type definitions for GNOME Shell Extensions

392 lines (321 loc) 12.9 kB
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/main.js import type Gio from '@girs/gio-2.0'; import type Shell from '@girs/shell-16'; import type Clutter from '@girs/clutter-16'; import type St from '@girs/st-16'; import type Meta from '@girs/meta-16'; import { ComponentManager } from './components.js'; import { AccessDialogDBus } from './accessDialog.js'; import { AudioDeviceSelectionDBus } from './audioDeviceSelection.js'; // import * as BreakManager from '../misc/breakManager.js'; // import * as CtrlAltTab from './ctrlAltTab.js'; // import * as EndSessionDialog from './endSessionDialog.js'; import { ExtensionManager } from './extensionSystem.js'; // import * as ExtensionSystem from './extensionSystem.js'; // import * as ExtensionDownloader from './extensionDownloader.js'; // import * as InputMethod from '../misc/inputMethod.js' // import * as Introspect from '../misc/introspect.js' // import * as Keyboard from './keyboard.js'; import { MessageTray } from './messageTray.js'; // import * as ModalDialog from './modalDialog.js'; // import * as OsdWindow from './osdWindow.js'; // import * as OsdMonitorLabeler from './osdMonitorLabeler.js'; // import * as Overview from './overview.js'; // import * as PadOsd from './padOsd.js'; import { Panel } from './panel.js'; // import * as Params from '../misc/params.js' // import * as RunDialog from './runDialog.js'; // import * as WelcomeDialog from './welcomeDialog.js'; import { LayoutManager, UiActor } from './layout.js'; // import * as LoginManager from '../misc/loginManager.js' // import * as LookingGlass from './lookingGlass.js'; import { NotificationDaemon } from './notificationDaemon.js'; // import * as WindowAttentionHandler from './windowAttentionHandler.js'; // import * as Screenshot from './screenshot.js'; // import * as ScreenShield from './screenShield.js'; // import * as Scripting from './scripting.js'; // import * as SessionMode from './sessionMode.js'; // import * as ShellDBus from './shellDBus.js'; // import * as ShellMountOperation from './shellMountOperation.js'; // import * as TimeLimitsManager from '../misc/timeLimitsManager.js'; import { WindowManager } from './windowManager.js'; // import * as Magnifier from './magnifier.js'; // import * as XdndHandler from './xdndHandler.js'; // import * as KbdA11yDialog from './kbdA11yDialog.js'; // import * as LocatePointer from './locatePointer.js'; // import * as PointerA11yTimeout from './pointerA11yTimeout.js'; // import * as ParentalControlsManager from '../misc/parentalControlsManager.js' // import * as Config from '../misc/config.js' // import * as Util from '../misc/util.js' export declare const componentManager: ComponentManager; export declare const extensionManager: ExtensionManager; export declare const panel: Panel; export declare const overview: any; export declare const runDialog: any; export declare const lookingGlass: any; export declare const welcomeDialog: any; export declare const wm: WindowManager; export declare const messageTray: MessageTray; export declare const screenShield: any; export declare const notificationDaemon: NotificationDaemon; export declare const windowAttentionHandler: any; export declare const ctrlAltTabManager: any; export declare const padOsdService: any; export declare const osdWindowManager: any; export declare const osdMonitorLabeler: any; export declare const sessionMode: any; export declare const screenshotUI: any; export declare const shellAccessDialogDBusService: AccessDialogDBus; export declare const shellAudioSelectionDBusService: AudioDeviceSelectionDBus; export declare const shellDBusService: any; export declare const shellMountOpDBusService: any; export declare const screenSaverDBus: any; export declare const modalCount: any; export declare const actionMode: Shell.ActionMode.NONE; export declare const modalActorFocusStack: any[]; export declare const screenTimeDBus: any; /** * @deprecated use layoutManager.uiGroup instead * @see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/main.js#L212 */ export declare const uiGroup: UiActor; export declare const magnifier: any; export declare const xdndHandler: any; export declare const keyboard: any; export declare const layoutManager: LayoutManager; export declare const kbdA11yDialog: any; export declare const inputMethod: any; export declare const introspectService: any; export declare const locatePointer: any; /** * pushModal: * @param actor: actor which will be given keyboard focus * @param params: optional parameters * * Ensure we are in a mode where all keyboard and mouse input goes to * the stage, and focus @actor. Multiple calls to this function act in * a stacking fashion; the effect will be undone when an equal number * of popModal() invocations have been made. * * Next, record the current Clutter keyboard focus on a stack. If the * modal stack returns to this actor, reset the focus to the actor * which was focused at the time pushModal() was invoked. * * @params may be used to provide the following parameters: * - timestamp: used to associate the call with a specific user initiated * event. If not provided then the value of * global.get_current_time() is assumed. * * - options: Meta.ModalOptions flags to indicate that the pointer is * already grabbed * * - actionMode: used to set the current Shell.ActionMode to filter * global keybindings; the default of NONE will filter * out all keybindings * * @returns The grab handle created */ export function pushModal(actor: any /* Clutter.Actor */, params?: any): any; /* Clutter.Grab */ /** * popModal: * @param grab - the grab given by pushModal() * @param timestamp - optional timestamp * * Reverse the effect of pushModal(). If this invocation is undoing * the topmost invocation, then the focus will be restored to the * previous focus at the time when pushModal() was invoked. * * @timestamp is optionally used to associate the call with a specific user * initiated event. If not provided then the value of * global.get_current_time() is assumed. */ export function popModal(grab: any /* Clutter.Grab */, timestamp?: number): void; /** * activateWindow: * @param {Meta.Window} window: the window to activate * @param {number=} time: current event time * @param {number=} workspaceNum: window's workspace number * * Activates @window, switching to its workspace first if necessary, * and switching out of the overview if it's currently active */ export function activateWindow(window: any /* Meta.Window */, time?: number, workspaceNum?: number): void; /** * Move @window to the specified monitor and workspace. * * @param window - the window to move * @param monitorIndex - the requested monitor * @param workspaceIndex - the requested workspace * @param append - create workspace if it doesn't exist */ export function moveWindowToMonitorAndWorkspace(window: any /* Meta.Window */, monitorIndex: number, workspaceIndex: number, append: boolean): void; /** * loadTheme: * * Reloads the theme CSS file */ export function loadTheme(): void; /** * notify: * @param msg: A message * @param details: Additional information */ export function notify(msg: string, details?: string): void; /** * notifyError: * @param msg: An error message * @param details: Additional information * * See shell_global_notify_problem(). */ export function notifyError(msg: string, details?: string): void; export function start(): void; export function getStyleVariant(): string; /** * Creates an adjustment that has its lower, upper, and value * properties set for the number of available workspaces. Consumers * of the returned adjustment must only change the 'value' property, * and only that. * * @param actor * * @returns {St.Adjustment} - an adjustment representing the * current workspaces layout */ export function createWorkspacesAdjustment(actor: Clutter.Actor): St.Adjustment; /** * getThemeStylesheet: * * Get the theme CSS file that the shell will load * * @returns A #GFile that contains the theme CSS, * null if using the default */ export function getThemeStylesheet(): Gio.File | null; /** * setThemeStylesheet: * @param {string=} cssStylesheet: A file path that contains the theme CSS, * set it to null to use the default * * Set the theme CSS file that the shell will load */ export function setThemeStylesheet(cssStylesheet: string): void; export function reloadThemeResource(): void; /** * loadTheme: * * Reloads the theme CSS file */ export function loadTheme(): void; /** * @param msg A message * @param details Additional information */ export function notify(msg: string, details: string): void; /** * See shell_global_notify_problem(). * * @param msg An error message * @param details Additional information */ export function notifyError(msg: string, details: string): void; /** * Ensure we are in a mode where all keyboard and mouse input goes to * the stage, and focus @actor. Multiple calls to this function act in * a stacking fashion; the effect will be undone when an equal number * of popModal() invocations have been made. * * Next, record the current Clutter keyboard focus on a stack. If the * modal stack returns to this actor, reset the focus to the actor * which was focused at the time pushModal() was invoked. * * `params` may be used to provide the following parameters: * - timestamp: used to associate the call with a specific user initiated * event. If not provided then the value of * global.get_current_time() is assumed. * * - options: Meta.ModalOptions flags to indicate that the pointer is * already grabbed * * - actionMode: used to set the current Shell.ActionMode to filter * global keybindings; the default of NONE will filter * out all keybindings * * @param actor Actor which will be given keyboard focus * @param params Optional parameters * @returns The grab handle created */ export function pushModal(actor: Clutter.Actor, params?: any): Clutter.Grab; /** * Reverse the effect of pushModal(). If this invocation is undoing * the topmost invocation, then the focus will be restored to the * previous focus at the time when pushModal() was invoked. * * `timestamp` is optionally used to associate the call with a specific user * initiated event. If not provided then the value of * global.get_current_time() is assumed. * * @param grab - the grab given by pushModal() * @param timestamp - optional timestamp */ export function popModal(grab: Clutter.Grab, timestamp?: number): void; /** * Creates the looking glass panel * * @returns */ export function createLookingGlass(): any; // TODO: Replace any with LookingGlass; /** * Opens the run dialog */ export function openRunDialog(): void; export function openWelcomeDialog(): void; /** * activateWindow: * * @param window the window to activate * @param time current event time * @param workspaceNum window's workspace number * * Activates @window, switching to its workspace first if necessary, * and switching out of the overview if it's currently active */ export function activateWindow(window: Meta.Window, time?: number, workspaceNum?: number): void; /** * Move @window to the specified monitor and workspace. * * @param {Meta.Window} window - the window to move * @param {number} monitorIndex - the requested monitor * @param {number} workspaceIndex - the requested workspace * @param {bool} append - create workspace if it doesn't exist */ export function moveWindowToMonitorAndWorkspace(window: Meta.Window, monitorIndex: number, workspaceIndex: number, append?: boolean): void; /** * This function sets up a callback to be invoked when either the * given actor is mapped, or after some period of time when the machine * is idle. This is useful if your actor isn't always visible on the * screen (for example, all actors in the overview), and you don't want * to consume resources updating if the actor isn't actually going to be * displaying to the user. * * Note that queueDeferredWork is called by default immediately on * initialization as well, under the assumption that new actors * will need it. * * @param actor - an actor * @param callback - Function to invoke to perform work * * @returns - A string work identifier */ export function initializeDeferredWork(actor: Clutter.Actor, callback: (...args: any[]) => any): string; /** * queueDeferredWork: * * @param {string} workId work identifier * * Ensure that the work identified by @workId will be * run on map or timeout. You should call this function * for example when data being displayed by the actor has * changed. */ export function queueDeferredWork(workId: string): void;