1 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 3 /* Mutter preferences */ 4 5 /* 6 * Copyright (C) 2001 Havoc Pennington 7 * Copyright (C) 2006 Elijah Newren 8 * 9 * This program is free software; you can redistribute it and/or 10 * modify it under the terms of the GNU General Public License as 11 * published by the Free Software Foundation; either version 2 of the 12 * License, or (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, but 15 * WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 * General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with this program; if not, see <http://www.gnu.org/licenses/>. 21 */ 22 23 #ifndef META_PREFS_H 24 #define META_PREFS_H 25 26 /* This header is a "common" one between the UI and core side */ 27 #include <meta/common.h> 28 #include <meta/types.h> 29 #include <pango/pango-font.h> 30 #include <gdesktop-enums.h> 31 #include <gio/gio.h> 32 33 /** 34 * MetaPreference: 35 * @META_PREF_MOUSE_BUTTON_MODS: mouse button modifiers 36 * @META_PREF_FOCUS_MODE: focus mode 37 * @META_PREF_FOCUS_NEW_WINDOWS: focus new windows 38 * @META_PREF_ATTACH_MODAL_DIALOGS: attach modal dialogs 39 * @META_PREF_RAISE_ON_CLICK: raise on click 40 * @META_PREF_ACTION_DOUBLE_CLICK_TITLEBAR: action double click titlebar 41 * @META_PREF_ACTION_MIDDLE_CLICK_TITLEBAR: action middle click titlebar 42 * @META_PREF_ACTION_RIGHT_CLICK_TITLEBAR: action right click titlebar 43 * @META_PREF_AUTO_RAISE: auto-raise 44 * @META_PREF_AUTO_RAISE_DELAY: auto-raise delay 45 * @META_PREF_FOCUS_CHANGE_ON_POINTER_REST: focus change on pointer rest 46 * @META_PREF_TITLEBAR_FONT: title-bar font 47 * @META_PREF_NUM_WORKSPACES: number of workspaces 48 * @META_PREF_DYNAMIC_WORKSPACES: dynamic workspaces 49 * @META_PREF_KEYBINDINGS: keybindings 50 * @META_PREF_DISABLE_WORKAROUNDS: disable workarounds 51 * @META_PREF_BUTTON_LAYOUT: button layout 52 * @META_PREF_WORKSPACE_NAMES: workspace names 53 * @META_PREF_VISUAL_BELL: visual bell 54 * @META_PREF_AUDIBLE_BELL: audible bell 55 * @META_PREF_VISUAL_BELL_TYPE: visual bell type 56 * @META_PREF_GNOME_ACCESSIBILITY: GNOME accessibility 57 * @META_PREF_GNOME_ANIMATIONS: GNOME animations 58 * @META_PREF_CURSOR_THEME: cursor theme 59 * @META_PREF_CURSOR_SIZE: cursor size 60 * @META_PREF_RESIZE_WITH_RIGHT_BUTTON: resize with right button 61 * @META_PREF_EDGE_TILING: edge tiling 62 * @META_PREF_FORCE_FULLSCREEN: force fullscreen 63 * @META_PREF_WORKSPACES_ONLY_ON_PRIMARY: workspaces only on primary 64 * @META_PREF_DRAGGABLE_BORDER_WIDTH: draggable border width 65 * @META_PREF_AUTO_MAXIMIZE: auto-maximize 66 * @META_PREF_CENTER_NEW_WINDOWS: center new windows 67 * @META_PREF_DRAG_THRESHOLD: drag threshold 68 * @META_PREF_LOCATE_POINTER: show pointer location 69 */ 70 71 /* Keep in sync with GSettings schemas! */ 72 typedef enum 73 { 74 META_PREF_MOUSE_BUTTON_MODS, 75 META_PREF_FOCUS_MODE, 76 META_PREF_FOCUS_NEW_WINDOWS, 77 META_PREF_ATTACH_MODAL_DIALOGS, 78 META_PREF_RAISE_ON_CLICK, 79 META_PREF_ACTION_DOUBLE_CLICK_TITLEBAR, 80 META_PREF_ACTION_MIDDLE_CLICK_TITLEBAR, 81 META_PREF_ACTION_RIGHT_CLICK_TITLEBAR, 82 META_PREF_AUTO_RAISE, 83 META_PREF_AUTO_RAISE_DELAY, 84 META_PREF_FOCUS_CHANGE_ON_POINTER_REST, 85 META_PREF_TITLEBAR_FONT, 86 META_PREF_NUM_WORKSPACES, 87 META_PREF_DYNAMIC_WORKSPACES, 88 META_PREF_KEYBINDINGS, 89 META_PREF_DISABLE_WORKAROUNDS, 90 META_PREF_BUTTON_LAYOUT, 91 META_PREF_WORKSPACE_NAMES, 92 META_PREF_VISUAL_BELL, 93 META_PREF_AUDIBLE_BELL, 94 META_PREF_VISUAL_BELL_TYPE, 95 META_PREF_GNOME_ACCESSIBILITY, 96 META_PREF_GNOME_ANIMATIONS, 97 META_PREF_CURSOR_THEME, 98 META_PREF_CURSOR_SIZE, 99 META_PREF_RESIZE_WITH_RIGHT_BUTTON, 100 META_PREF_EDGE_TILING, 101 META_PREF_FORCE_FULLSCREEN, 102 META_PREF_WORKSPACES_ONLY_ON_PRIMARY, 103 META_PREF_DRAGGABLE_BORDER_WIDTH, 104 META_PREF_AUTO_MAXIMIZE, 105 META_PREF_CENTER_NEW_WINDOWS, 106 META_PREF_DRAG_THRESHOLD, 107 META_PREF_LOCATE_POINTER, 108 META_PREF_CHECK_ALIVE_TIMEOUT, 109 } MetaPreference; 110 111 typedef void (* MetaPrefsChangedFunc) (MetaPreference pref, 112 gpointer user_data); 113 114 META_EXPORT 115 void meta_prefs_add_listener (MetaPrefsChangedFunc func, 116 gpointer user_data); 117 118 META_EXPORT 119 void meta_prefs_remove_listener (MetaPrefsChangedFunc func, 120 gpointer user_data); 121 122 META_EXPORT 123 const char* meta_preference_to_string (MetaPreference pref); 124 125 META_EXPORT 126 MetaVirtualModifier meta_prefs_get_mouse_button_mods (void); 127 128 META_EXPORT 129 gint meta_prefs_get_mouse_button_resize (void); 130 131 META_EXPORT 132 gint meta_prefs_get_mouse_button_menu (void); 133 134 META_EXPORT 135 GDesktopFocusMode meta_prefs_get_focus_mode (void); 136 137 META_EXPORT 138 GDesktopFocusNewWindows meta_prefs_get_focus_new_windows (void); 139 140 META_EXPORT 141 gboolean meta_prefs_get_attach_modal_dialogs (void); 142 143 META_EXPORT 144 gboolean meta_prefs_get_raise_on_click (void); 145 146 /* returns NULL if GTK default should be used */ 147 META_EXPORT 148 const PangoFontDescription* meta_prefs_get_titlebar_font (void); 149 150 META_EXPORT 151 int meta_prefs_get_num_workspaces (void); 152 153 META_EXPORT 154 gboolean meta_prefs_get_dynamic_workspaces (void); 155 156 META_EXPORT 157 gboolean meta_prefs_get_disable_workarounds (void); 158 159 META_EXPORT 160 gboolean meta_prefs_get_auto_raise (void); 161 162 META_EXPORT 163 int meta_prefs_get_auto_raise_delay (void); 164 165 META_EXPORT 166 gboolean meta_prefs_get_focus_change_on_pointer_rest (void); 167 168 META_EXPORT 169 gboolean meta_prefs_get_gnome_accessibility (void); 170 171 META_EXPORT 172 gboolean meta_prefs_get_gnome_animations (void); 173 174 META_EXPORT 175 gboolean meta_prefs_get_edge_tiling (void); 176 177 META_EXPORT 178 gboolean meta_prefs_get_auto_maximize (void); 179 180 META_EXPORT 181 gboolean meta_prefs_get_center_new_windows (void); 182 183 META_EXPORT 184 gboolean meta_prefs_get_show_fallback_app_menu (void); 185 186 META_EXPORT 187 void meta_prefs_set_show_fallback_app_menu (gboolean whether); 188 189 META_EXPORT 190 void meta_prefs_get_button_layout (MetaButtonLayout *button_layout); 191 192 /* Double, right, middle click can be configured to any titlebar meta-action */ 193 META_EXPORT 194 GDesktopTitlebarAction meta_prefs_get_action_double_click_titlebar (void); 195 196 META_EXPORT 197 GDesktopTitlebarAction meta_prefs_get_action_middle_click_titlebar (void); 198 199 META_EXPORT 200 GDesktopTitlebarAction meta_prefs_get_action_right_click_titlebar (void); 201 202 META_EXPORT 203 void meta_prefs_set_num_workspaces (int n_workspaces); 204 205 META_EXPORT 206 const char* meta_prefs_get_workspace_name (int i); 207 208 META_EXPORT 209 void meta_prefs_change_workspace_name (int i, 210 const char *name); 211 212 META_EXPORT 213 const char* meta_prefs_get_cursor_theme (void); 214 215 META_EXPORT 216 int meta_prefs_get_cursor_size (void); 217 218 META_EXPORT 219 gboolean meta_prefs_get_compositing_manager (void); 220 221 META_EXPORT 222 gboolean meta_prefs_get_force_fullscreen (void); 223 224 META_EXPORT 225 void meta_prefs_set_force_fullscreen (gboolean whether); 226 227 META_EXPORT 228 gboolean meta_prefs_get_workspaces_only_on_primary (void); 229 230 META_EXPORT 231 int meta_prefs_get_draggable_border_width (void); 232 233 META_EXPORT 234 int meta_prefs_get_drag_threshold (void); 235 236 /** 237 * MetaKeyBindingAction: 238 * @META_KEYBINDING_ACTION_NONE: FILLME 239 * @META_KEYBINDING_ACTION_WORKSPACE_1: FILLME 240 * @META_KEYBINDING_ACTION_WORKSPACE_2: FILLME 241 * @META_KEYBINDING_ACTION_WORKSPACE_3: FILLME 242 * @META_KEYBINDING_ACTION_WORKSPACE_4: FILLME 243 * @META_KEYBINDING_ACTION_WORKSPACE_5: FILLME 244 * @META_KEYBINDING_ACTION_WORKSPACE_6: FILLME 245 * @META_KEYBINDING_ACTION_WORKSPACE_7: FILLME 246 * @META_KEYBINDING_ACTION_WORKSPACE_8: FILLME 247 * @META_KEYBINDING_ACTION_WORKSPACE_9: FILLME 248 * @META_KEYBINDING_ACTION_WORKSPACE_10: FILLME 249 * @META_KEYBINDING_ACTION_WORKSPACE_11: FILLME 250 * @META_KEYBINDING_ACTION_WORKSPACE_12: FILLME 251 * @META_KEYBINDING_ACTION_WORKSPACE_LEFT: FILLME 252 * @META_KEYBINDING_ACTION_WORKSPACE_RIGHT: FILLME 253 * @META_KEYBINDING_ACTION_WORKSPACE_UP: FILLME 254 * @META_KEYBINDING_ACTION_WORKSPACE_DOWN: FILLME 255 * @META_KEYBINDING_ACTION_WORKSPACE_LAST: FILLME 256 * @META_KEYBINDING_ACTION_SWITCH_APPLICATIONS: FILLME 257 * @META_KEYBINDING_ACTION_SWITCH_APPLICATIONS_BACKWARD: FILLME 258 * @META_KEYBINDING_ACTION_SWITCH_GROUP: FILLME 259 * @META_KEYBINDING_ACTION_SWITCH_GROUP_BACKWARD: FILLME 260 * @META_KEYBINDING_ACTION_SWITCH_WINDOWS: FILLME 261 * @META_KEYBINDING_ACTION_SWITCH_WINDOWS_BACKWARD: FILLME 262 * @META_KEYBINDING_ACTION_SWITCH_PANELS: FILLME 263 * @META_KEYBINDING_ACTION_SWITCH_PANELS_BACKWARD: FILLME 264 * @META_KEYBINDING_ACTION_CYCLE_GROUP: FILLME 265 * @META_KEYBINDING_ACTION_CYCLE_GROUP_BACKWARD: FILLME 266 * @META_KEYBINDING_ACTION_CYCLE_WINDOWS: FILLME 267 * @META_KEYBINDING_ACTION_CYCLE_WINDOWS_BACKWARD: FILLME 268 * @META_KEYBINDING_ACTION_CYCLE_PANELS: FILLME 269 * @META_KEYBINDING_ACTION_CYCLE_PANELS_BACKWARD: FILLME 270 * @META_KEYBINDING_ACTION_SHOW_DESKTOP: FILLME 271 * @META_KEYBINDING_ACTION_PANEL_RUN_DIALOG: FILLME 272 * @META_KEYBINDING_ACTION_TOGGLE_RECORDING: FILLME 273 * @META_KEYBINDING_ACTION_SET_SPEW_MARK: FILLME 274 * @META_KEYBINDING_ACTION_ACTIVATE_WINDOW_MENU: FILLME 275 * @META_KEYBINDING_ACTION_TOGGLE_FULLSCREEN: FILLME 276 * @META_KEYBINDING_ACTION_TOGGLE_MAXIMIZED: FILLME 277 * @META_KEYBINDING_ACTION_TOGGLE_TILED_LEFT: FILLME 278 * @META_KEYBINDING_ACTION_TOGGLE_TILED_RIGHT: FILLME 279 * @META_KEYBINDING_ACTION_TOGGLE_ABOVE: FILLME 280 * @META_KEYBINDING_ACTION_MAXIMIZE: FILLME 281 * @META_KEYBINDING_ACTION_UNMAXIMIZE: FILLME 282 * @META_KEYBINDING_ACTION_TOGGLE_SHADED: FILLME 283 * @META_KEYBINDING_ACTION_MINIMIZE: FILLME 284 * @META_KEYBINDING_ACTION_CLOSE: FILLME 285 * @META_KEYBINDING_ACTION_BEGIN_MOVE: FILLME 286 * @META_KEYBINDING_ACTION_BEGIN_RESIZE: FILLME 287 * @META_KEYBINDING_ACTION_TOGGLE_ON_ALL_WORKSPACES: FILLME 288 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_1: FILLME 289 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_2: FILLME 290 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_3: FILLME 291 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_4: FILLME 292 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_5: FILLME 293 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_6: FILLME 294 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_7: FILLME 295 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_8: FILLME 296 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_9: FILLME 297 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_10: FILLME 298 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_11: FILLME 299 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_12: FILLME 300 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_LEFT: FILLME 301 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_RIGHT: FILLME 302 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_UP: FILLME 303 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_DOWN: FILLME 304 * @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_LAST: FILLME 305 * @META_KEYBINDING_ACTION_MOVE_TO_MONITOR_LEFT: FILLME 306 * @META_KEYBINDING_ACTION_MOVE_TO_MONITOR_RIGHT: FILLME 307 * @META_KEYBINDING_ACTION_MOVE_TO_MONITOR_UP: FILLME 308 * @META_KEYBINDING_ACTION_MOVE_TO_MONITOR_DOWN: FILLME 309 * @META_KEYBINDING_ACTION_RAISE_OR_LOWER: FILLME 310 * @META_KEYBINDING_ACTION_RAISE: FILLME 311 * @META_KEYBINDING_ACTION_LOWER: FILLME 312 * @META_KEYBINDING_ACTION_MAXIMIZE_VERTICALLY: FILLME 313 * @META_KEYBINDING_ACTION_MAXIMIZE_HORIZONTALLY: FILLME 314 * @META_KEYBINDING_ACTION_MOVE_TO_CORNER_NW: FILLME 315 * @META_KEYBINDING_ACTION_MOVE_TO_CORNER_NE: FILLME 316 * @META_KEYBINDING_ACTION_MOVE_TO_CORNER_SW: FILLME 317 * @META_KEYBINDING_ACTION_MOVE_TO_CORNER_SE: FILLME 318 * @META_KEYBINDING_ACTION_MOVE_TO_SIDE_N: FILLME 319 * @META_KEYBINDING_ACTION_MOVE_TO_SIDE_S: FILLME 320 * @META_KEYBINDING_ACTION_MOVE_TO_SIDE_E: FILLME 321 * @META_KEYBINDING_ACTION_MOVE_TO_SIDE_W: FILLME 322 * @META_KEYBINDING_ACTION_MOVE_TO_CENTER: FILLME 323 * @META_KEYBINDING_ACTION_OVERLAY_KEY: FILLME 324 * @META_KEYBINDING_ACTION_LOCATE_POINTER_KEY: FILLME 325 * @META_KEYBINDING_ACTION_ALWAYS_ON_TOP: FILLME 326 * @META_KEYBINDING_ACTION_LAST: FILLME 327 */ 328 /* XXX FIXME This should be x-macroed, but isn't yet because it would be 329 * difficult (or perhaps impossible) to add the suffixes using the current 330 * system. It needs some more thought, perhaps after the current system 331 * evolves a little. 332 */ 333 typedef enum _MetaKeyBindingAction 334 { 335 META_KEYBINDING_ACTION_NONE, 336 META_KEYBINDING_ACTION_WORKSPACE_1, 337 META_KEYBINDING_ACTION_WORKSPACE_2, 338 META_KEYBINDING_ACTION_WORKSPACE_3, 339 META_KEYBINDING_ACTION_WORKSPACE_4, 340 META_KEYBINDING_ACTION_WORKSPACE_5, 341 META_KEYBINDING_ACTION_WORKSPACE_6, 342 META_KEYBINDING_ACTION_WORKSPACE_7, 343 META_KEYBINDING_ACTION_WORKSPACE_8, 344 META_KEYBINDING_ACTION_WORKSPACE_9, 345 META_KEYBINDING_ACTION_WORKSPACE_10, 346 META_KEYBINDING_ACTION_WORKSPACE_11, 347 META_KEYBINDING_ACTION_WORKSPACE_12, 348 META_KEYBINDING_ACTION_WORKSPACE_LEFT, 349 META_KEYBINDING_ACTION_WORKSPACE_RIGHT, 350 META_KEYBINDING_ACTION_WORKSPACE_UP, 351 META_KEYBINDING_ACTION_WORKSPACE_DOWN, 352 META_KEYBINDING_ACTION_WORKSPACE_LAST, 353 META_KEYBINDING_ACTION_SWITCH_APPLICATIONS, 354 META_KEYBINDING_ACTION_SWITCH_APPLICATIONS_BACKWARD, 355 META_KEYBINDING_ACTION_SWITCH_GROUP, 356 META_KEYBINDING_ACTION_SWITCH_GROUP_BACKWARD, 357 META_KEYBINDING_ACTION_SWITCH_WINDOWS, 358 META_KEYBINDING_ACTION_SWITCH_WINDOWS_BACKWARD, 359 META_KEYBINDING_ACTION_SWITCH_PANELS, 360 META_KEYBINDING_ACTION_SWITCH_PANELS_BACKWARD, 361 META_KEYBINDING_ACTION_CYCLE_GROUP, 362 META_KEYBINDING_ACTION_CYCLE_GROUP_BACKWARD, 363 META_KEYBINDING_ACTION_CYCLE_WINDOWS, 364 META_KEYBINDING_ACTION_CYCLE_WINDOWS_BACKWARD, 365 META_KEYBINDING_ACTION_CYCLE_PANELS, 366 META_KEYBINDING_ACTION_CYCLE_PANELS_BACKWARD, 367 META_KEYBINDING_ACTION_SHOW_DESKTOP, 368 META_KEYBINDING_ACTION_PANEL_RUN_DIALOG, 369 META_KEYBINDING_ACTION_TOGGLE_RECORDING, 370 META_KEYBINDING_ACTION_SET_SPEW_MARK, 371 META_KEYBINDING_ACTION_ACTIVATE_WINDOW_MENU, 372 META_KEYBINDING_ACTION_TOGGLE_FULLSCREEN, 373 META_KEYBINDING_ACTION_TOGGLE_MAXIMIZED, 374 META_KEYBINDING_ACTION_TOGGLE_TILED_LEFT, 375 META_KEYBINDING_ACTION_TOGGLE_TILED_RIGHT, 376 META_KEYBINDING_ACTION_TOGGLE_ABOVE, 377 META_KEYBINDING_ACTION_MAXIMIZE, 378 META_KEYBINDING_ACTION_UNMAXIMIZE, 379 META_KEYBINDING_ACTION_TOGGLE_SHADED, 380 META_KEYBINDING_ACTION_MINIMIZE, 381 META_KEYBINDING_ACTION_CLOSE, 382 META_KEYBINDING_ACTION_BEGIN_MOVE, 383 META_KEYBINDING_ACTION_BEGIN_RESIZE, 384 META_KEYBINDING_ACTION_TOGGLE_ON_ALL_WORKSPACES, 385 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_1, 386 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_2, 387 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_3, 388 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_4, 389 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_5, 390 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_6, 391 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_7, 392 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_8, 393 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_9, 394 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_10, 395 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_11, 396 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_12, 397 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_LEFT, 398 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_RIGHT, 399 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_UP, 400 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_DOWN, 401 META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_LAST, 402 META_KEYBINDING_ACTION_MOVE_TO_MONITOR_LEFT, 403 META_KEYBINDING_ACTION_MOVE_TO_MONITOR_RIGHT, 404 META_KEYBINDING_ACTION_MOVE_TO_MONITOR_UP, 405 META_KEYBINDING_ACTION_MOVE_TO_MONITOR_DOWN, 406 META_KEYBINDING_ACTION_RAISE_OR_LOWER, 407 META_KEYBINDING_ACTION_RAISE, 408 META_KEYBINDING_ACTION_LOWER, 409 META_KEYBINDING_ACTION_MAXIMIZE_VERTICALLY, 410 META_KEYBINDING_ACTION_MAXIMIZE_HORIZONTALLY, 411 META_KEYBINDING_ACTION_MOVE_TO_CORNER_NW, 412 META_KEYBINDING_ACTION_MOVE_TO_CORNER_NE, 413 META_KEYBINDING_ACTION_MOVE_TO_CORNER_SW, 414 META_KEYBINDING_ACTION_MOVE_TO_CORNER_SE, 415 META_KEYBINDING_ACTION_MOVE_TO_SIDE_N, 416 META_KEYBINDING_ACTION_MOVE_TO_SIDE_S, 417 META_KEYBINDING_ACTION_MOVE_TO_SIDE_E, 418 META_KEYBINDING_ACTION_MOVE_TO_SIDE_W, 419 META_KEYBINDING_ACTION_MOVE_TO_CENTER, 420 META_KEYBINDING_ACTION_OVERLAY_KEY, 421 META_KEYBINDING_ACTION_LOCATE_POINTER_KEY, 422 META_KEYBINDING_ACTION_ISO_NEXT_GROUP, 423 META_KEYBINDING_ACTION_ALWAYS_ON_TOP, 424 META_KEYBINDING_ACTION_SWITCH_MONITOR, 425 META_KEYBINDING_ACTION_ROTATE_MONITOR, 426 427 META_KEYBINDING_ACTION_LAST 428 } MetaKeyBindingAction; 429 430 /** 431 * MetaKeyBindingFlags: 432 * @META_KEY_BINDING_NONE: none 433 * @META_KEY_BINDING_PER_WINDOW: per-window 434 * @META_KEY_BINDING_BUILTIN: built-in 435 * @META_KEY_BINDING_IS_REVERSED: is reversed 436 * @META_KEY_BINDING_NON_MASKABLE: always active 437 * @META_KEY_BINDING_NO_AUTO_GRAB: not grabbed automatically 438 */ 439 typedef enum 440 { 441 META_KEY_BINDING_NONE, 442 META_KEY_BINDING_PER_WINDOW = 1 << 0, 443 META_KEY_BINDING_BUILTIN = 1 << 1, 444 META_KEY_BINDING_IS_REVERSED = 1 << 2, 445 META_KEY_BINDING_NON_MASKABLE = 1 << 3, 446 META_KEY_BINDING_IGNORE_AUTOREPEAT = 1 << 4, 447 META_KEY_BINDING_NO_AUTO_GRAB = 1 << 5, 448 } MetaKeyBindingFlags; 449 450 /** 451 * MetaKeyHandlerFunc: 452 * @display: a #MetaDisplay 453 * @window: a #MetaWindow 454 * @event: (type gpointer): a #ClutterKeyEvent 455 * @binding: a #MetaKeyBinding 456 * @user_data: data passed to the function 457 * 458 */ 459 typedef void (* MetaKeyHandlerFunc) (MetaDisplay *display, 460 MetaWindow *window, 461 ClutterKeyEvent *event, 462 MetaKeyBinding *binding, 463 gpointer user_data); 464 465 META_EXPORT 466 GType meta_key_binding_get_type (void); 467 468 META_EXPORT 469 MetaKeyBindingAction meta_prefs_get_keybinding_action (const char *name); 470 471 META_EXPORT 472 gboolean meta_prefs_get_visual_bell (void); 473 474 META_EXPORT 475 gboolean meta_prefs_bell_is_audible (void); 476 477 META_EXPORT 478 GDesktopVisualBellType meta_prefs_get_visual_bell_type (void); 479 480 META_EXPORT 481 unsigned int meta_prefs_get_check_alive_timeout (void); 482 483 #endif 484