mutter/src/core/window-bindings.h

294 lines
11 KiB
C
Raw Normal View History

/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* Copyright (C) 2008 Thomas Thurman
*
* 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; either version 2 of the
* License, or (at your option) any later version.
*
* 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, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/
/**
* \file A list of window keybinding information.
*
* Each action which can have a keystroke bound to it is listed below.
* To use this file, define "item" to be a six-argument macro (you can
* throw any of the arguments you please away), include this file,
* and then undefine the macro again.
*
* (If you aren't familiar with this technique, sometimes called "x-macros",
* see DDJ of May 2001: <http://www.ddj.com/cpp/184401387>.)
*
* This makes it possible to keep all information about all the keybindings
* in the same place. The only exception is the code to run when an action
* is actually invoked; while we *could* have put that in this file, it would
* have made debugging ridiculously difficult. Instead, each action should
* have a corresponding static function named handle_<name>() in
* keybindings.c.
*
* Currently, the GConf schemas in src/metacity.schemas also need to be
* updated separately. There is a program called schema-bindings.c in this
* directory which will fix that, but it needs integrating into the build
* process.
*
* The arguments to item() are:
* 1) name: the name of the binding; a bareword identifier
* 2) suffix: a string to add to the binding name to make the handler name
* (usually the empty string)
* 3) param: an integer parameter to pass to the handler
* 4) short: a short description. Mostly, you won't use this.
* It must be marked translatable (i.e. inside "_(...)").
* 5) long: like short, except long. Don't include all the stuff about
* the parser being fairly liberal.
* 6) keystroke: a string representing the default binding.
* If this is NULL, the action is unbound by default.
*
* Don't try to do XML entity escaping anywhere in the strings.
*
* Some code out there wants only the entries which have a default
* binding (i.e. whose sixth parameter is not NULL). You can get only these
* by defining ONLY_BOUND_BY_DEFAULT before you include this file.
*/
#ifndef item
#error "item () must be defined when you include window-bindings.h"
#endif
item (activate_window_menu, "", 0,
_("Activate window menu"),
_("The keybinding used to activate the window menu."),
"<Alt>Print")
#ifndef ONLY_BOUND_BY_DEFAULT
item (toggle_fullscreen, "", 0,
_("Toggle fullscreen mode"),
_("The keybinding used to toggle fullscreen mode."),
NULL)
item (toggle_maximized, "", 0,
_("Toggle maximization state"),
_("The keybinding used to toggle maximization."),
NULL)
item (toggle_above, "", 0,
_("Toggle always on top state"),
_("The keybinding used to toggle always on top. A window that is "
"always on top will always be visible over other overlapping "
"windows."),
NULL)
#endif /* ONLY_BOUND_BY_DEFAULT */
item (maximize, "", 0,
_("Maximize window"),
_("The keybinding used to maximize a window."),
"<Alt>F10")
item (unmaximize, "", 0,
_("Unmaximize window"),
_("The keybinding used to unmaximize a window."),
"<Alt>F5")
#ifndef ONLY_BOUND_BY_DEFAULT
item (toggle_shaded, "", 0,
_("Toggle shaded state"),
_("The keybinding used to toggle shaded/unshaded state."),
NULL)
#endif /* ONLY_BOUND_BY_DEFAULT */
item (minimize, "", 0,
_("Minimize window"),
_("The keybinding used to minimize a window."),
"<Alt>F9")
item (close, "", 0,
_("Close window"),
_("The keybinding used to close a window."),
"<Alt>F4")
item (begin_move, "", 0,
_("Move window"),
_("The keybinding used to enter \"move mode\" "
"and begin moving a window using the keyboard."),
"<Alt>F7")
item (begin_resize, "", 0,
_("Resize window"),
("The keybinding used to enter \"resize mode\" "
"and begin resizing a window using the keyboard."),
"<Alt>F8")
#ifndef ONLY_BOUND_BY_DEFAULT
item (toggle_on_all_workspaces, "", 0,
_("Toggle window on all workspaces"),
_("The keybinding used to toggle whether the window is on all "
"workspaces or just one."),
NULL)
item (move_to_workspace, "_1", 1,
_("Move window to workspace 1"),
_("The keybinding used to move a window to workspace 1."),
NULL)
item (move_to_workspace, "_2", 2,
_("Move window to workspace 2"),
_("The keybinding used to move a window to workspace 2."),
NULL)
item (move_to_workspace, "_3", 3,
_("Move window to workspace 3"),
_("The keybinding used to move a window to workspace 3."),
NULL)
item (move_to_workspace, "_4", 4,
_("Move window to workspace 4"),
_("The keybinding used to move a window to workspace 4."),
NULL)
item (move_to_workspace, "_5", 5,
_("Move window to workspace 5"),
_("The keybinding used to move a window to workspace 5."),
NULL)
item (move_to_workspace, "_6", 6,
_("Move window to workspace 6"),
_("The keybinding used to move a window to workspace 6."),
NULL)
item (move_to_workspace, "_7", 7,
_("Move window to workspace 7"),
_("The keybinding used to move a window to workspace 7."),
NULL)
item (move_to_workspace, "_8", 8,
_("Move window to workspace 8"),
_("The keybinding used to move a window to workspace 8."),
NULL)
item (move_to_workspace, "_9", 9,
_("Move window to workspace 9"),
_("The keybinding used to move a window to workspace 9."),
NULL)
item (move_to_workspace, "_10", 10,
_("Move window to workspace 10"),
_("The keybinding used to move a window to workspace 10."),
NULL)
item (move_to_workspace, "_11", 11,
_("Move window to workspace 11"),
_("The keybinding used to move a window to workspace 11."),
NULL)
item (move_to_workspace, "_12", 12,
_("Move window to workspace 12"),
_("The keybinding used to move a window to workspace 12."),
NULL)
#endif /* ONLY_BOUND_BY_DEFAULT */
/* META_MOTION_* are negative, and so distinct from workspace numbers,
* which are always zero or positive.
* If you make use of these constants, you will need to include workspace.h
* (which you're probably using already for other reasons anyway).
* If your definition of item() throws them away, you don't need to include
* workspace.h, of course.
*/
item (move_to_workspace, "_left", META_MOTION_LEFT,
_("Move window one workspace to the left"),
_("The keybinding used to move a window one workspace to the left."),
"<Control><Shift><Alt>Left")
item (move_to_workspace, "_right", META_MOTION_RIGHT,
_("Move window one workspace to the right"),
_("The keybinding used to move a window one workspace to the right."),
"<Control><Shift><Alt>Right")
item (move_to_workspace, "_up", META_MOTION_UP,
_("Move window one workspace up"),
_("The keybinding used to move a window one workspace up."),
"<Control><Shift><Alt>Up")
item (move_to_workspace, "_down", META_MOTION_DOWN,
_("Move window one workspace down"),
_("The keybinding used to move a window one workspace down."),
"<Control><Shift><Alt>Down")
#ifndef ONLY_BOUND_BY_DEFAULT
item (raise_or_lower, "", 0,
_("Raise obscured window, otherwise lower"),
_("This keybinding changes whether a window is above or below "
"other windows. If the window is covered by another one, it "
"raises the window above all others, and if the window is "
"already fully visible, it lowers it below all others."),
NULL)
item (raise, "", 0,
_("Raise window above other windows"),
_("This keybinding raises the window above other windows."),
NULL)
item (lower, "", 0,
_("Lower window below other windows"),
_("This keybinding lowers a window below other windows."),
NULL)
item (maximize_vertically, "", 0,
_("Maximize window vertically"),
_("This keybinding resizes a window to fill available "
"vertical space."),
NULL)
item (maximize_horizontally, "", 0,
_("Maximize window horizontally"),
_("This keybinding resizes a window to fill available "
"horizontal space."),
NULL)
item (move_to_corner_nw, "", 0,
_("Move window to north-west corner"),
_("This keybinding moves a window into the north-west (top left) "
"corner of the screen."),
NULL)
item (move_to_corner_ne, "", 0,
_("Move window to north-east corner"),
_("This keybinding moves a window into the north-east (top right) "
"corner of the screen."),
NULL)
item (move_to_corner_sw, "", 0,
_("Move window to south-west corner"),
_("This keybinding moves a window into the north-east (bottom left) "
"corner of the screen."),
NULL)
item (move_to_corner_se, "", 0,
_("Move window to south-east corner"),
_("This keybinding moves a window into the north-east (bottom right) "
"corner of the screen."),
NULL)
item (move_to_side_n, "", 0,
_("Move window to north side of screen"),
_("This keybinding moves a window against the north (top) "
"side of the screen."),
NULL)
item (move_to_side_s, "", 0,
_("Move window to south side of screen"),
_("This keybinding moves a window against the south (bottom) "
"side of the screen."),
NULL)
item (move_to_side_e, "", 0,
_("Move window to east side of screen"),
_("This keybinding moves a window against the east (right) "
"side of the screen."),
NULL)
item (move_to_side_w, "", 0,
_("Move window to west side of screen"),
_("This keybinding moves a window against the west (left) "
"side of the screen."),
NULL)
item (move_to_center, "", 0,
_("Move window to center of screen"),
_("This keybinding moves a window into the center "
"of the screen."),
NULL)
#endif /* ONLY_BOUND_BY_DEFAULT */
/* eof window-bindings.h */