Files
system-taskbar/ding/app/enums.js

199 lines
6.9 KiB
JavaScript

/* eslint-disable no-unused-vars */
/* DING: Desktop Icons New Generation for GNOME Shell
*
* Copyright (C) 2024, 2025 Sundeep Mediratta (smedius@gmail.com)
* Copyright (C) 2019 Sergio Costas (rastersoft@gmail.com)
* Based on code original (C) Carlos Soriano
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
export const ICON_SIZE = {'tiny': 36, 'small': 48, 'standard': 64, 'large': 96};
export const ICON_WIDTH = {'tiny': 70, 'small': 90, 'standard': 120, 'large': 130};
export const ICON_HEIGHT = {'tiny': 80, 'small': 90, 'standard': 106, 'large': 138};
export const START_CORNER = {
'top-left': [false, false],
'top-right': [true, false],
'bottom-left': [false, true],
'bottom-right': [true, true],
};
export const FileType = {
NONE: null,
USER_DIRECTORY_HOME: 'show-home',
USER_DIRECTORY_TRASH: 'show-trash',
EXTERNAL_DRIVE: 'external-drive',
STACK_TOP: 'stack-top',
};
export const StoredCoordinates = {
PRESERVE: 0,
OVERWRITE: 1,
ASSIGN: 2,
};
export const Selection = {
ALONE: 0,
WITH_SHIFT: 1,
RIGHT_BUTTON: 2,
ENTER: 3,
LEAVE: 4,
RELEASE: 5,
};
/* From NautilusFileUndoManagerState */
export const UndoStatus = {
NONE: 0,
UNDO: 1,
REDO: 2,
};
export const FileExistOperation = {
ASK: 0,
OVERWRITE: 1,
RENAME: 2,
SKIP: 3,
};
export const WhatToDoWithExecutable = {
EXECUTE: 0,
EXECUTE_IN_TERMINAL: 1,
DISPLAY: 2,
CANCEL: 3,
};
export const SortOrder = {
ORDER: 'arrangeorder',
NAME: 1,
DESCENDINGNAME: 2,
MODIFIEDTIME: 3,
KIND: 4,
SIZE: 5,
};
export const CompressionType = {
ZIP: 0,
TAR_XZ: 1,
SEVEN_ZIP: 2,
ENCRYPTED_ZIP: 3,
};
export const DndTargetInfo = {
DING_ICON_LIST: 'x-special/ding-icon-list',
GNOME_ICON_LIST: 'x-special/gnome-icon-list',
URI_LIST: 'text/uri-list',
TEXT_PLAIN: 'text/plain',
TEXT_PLAIN_UTF8: 'text/plain;charset=utf-8',
GDKFILELIST: 'GdkFileList',
GCHARARRAY: 'gchararray',
GFILE: 'GFile',
MIME_TYPES: ['x-special/ding-icon-list', 'x-special/gnome-icon-list', 'text/uri-list', 'text/plain', 'text/plain;charset=utf-8'],
};
// Since Gnome Shell 48 the enumeration of the cursor is different,
// the name has changed, althugh the value is the same;
// We use our own enumeration names to avoid problems with the version
// of the Gnome Shell, the enumeration integer points to the correct
// value in the Gnome Shell 48 and Meta 48 Enum and earlier.
// We use strings to avoid problems with the version of the Gnome Shell
// with corresponging Enum in DingManager.js. The strings are transmitted
// over DBus to the exetension.
export const ShellDropCursor = {
DEFAULT: 'default', // 2 META_CURSOR_DEFAULT Meta.Cursor.DEFAULT
NODROP: 'dndNoDropCursor', // 15 META_CURSOR_NO_DROP Meta.Cursor.DND_UNSUPPORTED_TARGET
COPY: 'dndCopyCursor', // 13 META_CURSOR_COPY Meta.Cursor.DND_COPY
MOVE: 'dndMoveCursor', // 14 META_CURSOR_MOVE Meta.Cursor.DND_MOVE
};
export const DEFAULT_ATTRIBUTES = 'metadata::*,standard::*,access::*,time::modified,unix::mode';
export const TERMINAL_SCHEMA = 'org.gnome.desktop.default-applications.terminal';
export const SCHEMA_NAUTILUS = 'org.gnome.nautilus.preferences';
export const SCHEMA_NAUTILUS_COMPRESSION = 'org.gnome.nautilus.compression';
export const SCHEMA_GTK = 'org.gtk.gtk4.Settings.FileChooser';
export const SCHEMA = 'org.gnome.shell.extensions.vesperos-taskbar.desktop-icons';
export const SCHEMA_MUTTER = 'org.gnome.mutter';
export const SCHEMA_GNOME_SETTINGS = 'org.gnome.desktop.interface';
export const DCONF_TERMINAL_EXEC_KEY = 'exec';
export const DCONF_TERMINAL_EXEC_STRING = 'exec-arg';
export const DESKTOPFILE_TERMINAL_EXEC_KEY = 'Exec';
export const DESKTOPFILE_TERMINAL_EXEC_SWITCH = 'X-ExecArg';
export const NAUTILUS_SCRIPTS_DIR = '.local/share/nautilus/scripts';
export const THUMBNAILS_DIR = '.cache/thumbnails';
export const DND_HOVER_TIMEOUT = 1500; // In milliseconds
export const DND_SHELL_HOVER_POLL = 200; // In milliseconds
export const TOOLTIP_HOVER_TIMEOUT = 1000; // In milliseconds
export const XDG_EMAIL_CMD = 'xdg-email';
export const XDG_EMAIL_CMD_OPTIONS = '--attach';
export const ZIP_CMD = 'zip';
export const ZIP_CMD_OPTIONS = '-r';
export const XDG_TERMINAL_LIST_FILE = 'xdg-terminals.list';
export const XDG_TERMINAL_DIR = 'xdg-terminal-exec';
export const SYSTEM_DATA_DIRS = ['/usr/local/share', '/usr/share'];
export const XDG_TERMINAL_EXEC = 'xdg-terminal-exec';
export const GRID_ELEMENT_SPACING = 2;
export const GRID_PADDING = 0;
export const WIDGET_GRID_SIZE = 10;
export const XDG_USER_DIRS = 'user-dirs.dirs';
export const XDG_SYSTEM_DIRS = 'user-dirs.defaults';
export const DEFAULT_DESKTOP_NAME = 'Desktop';
export const UnixPermissions = {
S_ISUID: 0o04000, // set-user-ID bit
S_ISGID: 0o02000, // set-group-ID bit (see below)
S_ISVTX: 0o01000, // sticky bit (see below)
S_IRWXU: 0o00700, // mask for file owner permissions
S_IRUSR: 0o00400, // owner has read permission
S_IWUSR: 0o00200, // owner has write permission
S_IXUSR: 0o00100, // owner has execute permission
S_IRWXG: 0o00070, // mask for group permissions
S_IRGRP: 0o00040, // group has read permission
S_IWGRP: 0o00020, // group has write permission
S_IXGRP: 0o00010, // group has execute permission
S_IRWXO: 0o00007, // mask for permissions for others (not in group)
S_IROTH: 0o00004, // others have read permission
S_IWOTH: 0o00002, // others have write permission
S_IXOTH: 0o00001, // others have execute permission
// From https://www.commandlinux.com/man-page/man2/lstat.2.html
};
export const IgnoreKeys = [
'KEY_space', 'KEY_Shift_L', 'KEY_Shift_R', 'KEY_Control_L',
'KEY_Control_R', 'KEY_Caps_Lock', 'KEY_Shift_Lock', 'KEY_Meta_L',
'KEY_Meta_R', 'KEY_Alt_L', 'KEY_Alt_R', 'KEY_Super_L',
'KEY_Super_R', 'KEY_ISO_Level3_Shift', 'KEY_ISO_Level5_Shift',
];
export const TRANSITIONDURATION = 500; // in ms
export const WidgetManagerDebugFlags = Object.freeze({
NONE: 0,
HOST_STATE: 1 << 0,
WIDGET_MESSAGES: 1 << 1,
});
export const WIDGET_MANAGER_DEBUG = WidgetManagerDebugFlags.NONE;
// For debugging use
// const WIDGET_MANAGER_DEBUG =
// WidgetManagerDebugFlags.HOST_STATE |
// WidgetManagerDebugFlags.WIDGET_MESSAGES;
export const CspProfile = Object.freeze({
STRICT: 0,
DEV: 1,
RELAXED: 2,
});
export const DEFAULT_CSP_PROFILE = CspProfile.STRICT;