summaryrefslogtreecommitdiff
path: root/src/core/keybindings.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/keybindings.c')
-rw-r--r--src/core/keybindings.c85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/core/keybindings.c b/src/core/keybindings.c
index 5455344f9..c17e670ec 100644
--- a/src/core/keybindings.c
+++ b/src/core/keybindings.c
@@ -4098,6 +4098,38 @@ handle_set_spew_mark (MetaDisplay *display,
meta_verbose ("-- MARK MARK MARK MARK --\n");
}
+static void
+handle_switch_vt (MetaDisplay *display,
+ MetaScreen *screen,
+ MetaWindow *window,
+ XIDeviceEvent *event,
+ MetaKeyBinding *binding,
+ gpointer dummy)
+{
+ gint vt = binding->handler->data;
+ MetaWaylandCompositor *compositor;
+ MetaTTY *tty;
+
+ compositor = meta_wayland_compositor_get_default ();
+ tty = meta_wayland_compositor_get_tty (compositor);
+
+ if (tty)
+ {
+ GError *error;
+
+ error = NULL;
+ if (!meta_tty_activate_vt (tty, vt, &error))
+ {
+ g_warning ("Failed to switch VT: %s", error->message);
+ g_error_free (error);
+ }
+ }
+ else
+ {
+ g_debug ("Ignoring VT switch keybinding, not running as VT manager");
+ }
+}
+
void
meta_set_keybindings_disabled (gboolean setting)
{
@@ -4430,6 +4462,59 @@ init_builtin_key_bindings (MetaDisplay *display)
META_KEYBINDING_ACTION_SET_SPEW_MARK,
handle_set_spew_mark, 0);
+ if (meta_is_display_server ())
+ {
+ add_builtin_keybinding (display,
+ "switch-to-session-1",
+ mutter_keybindings,
+ META_KEY_BINDING_NONE,
+ META_KEYBINDING_ACTION_NONE,
+ handle_switch_vt, 1);
+
+ add_builtin_keybinding (display,
+ "switch-to-session-2",
+ mutter_keybindings,
+ META_KEY_BINDING_NONE,
+ META_KEYBINDING_ACTION_NONE,
+ handle_switch_vt, 2);
+
+ add_builtin_keybinding (display,
+ "switch-to-session-3",
+ mutter_keybindings,
+ META_KEY_BINDING_NONE,
+ META_KEYBINDING_ACTION_NONE,
+ handle_switch_vt, 3);
+
+ add_builtin_keybinding (display,
+ "switch-to-session-4",
+ mutter_keybindings,
+ META_KEY_BINDING_NONE,
+ META_KEYBINDING_ACTION_NONE,
+ handle_switch_vt, 4);
+
+ add_builtin_keybinding (display,
+ "switch-to-session-5",
+ mutter_keybindings,
+ META_KEY_BINDING_NONE,
+ META_KEYBINDING_ACTION_NONE,
+ handle_switch_vt, 5);
+
+ add_builtin_keybinding (display,
+ "switch-to-session-6",
+ mutter_keybindings,
+ META_KEY_BINDING_NONE,
+ META_KEYBINDING_ACTION_NONE,
+ handle_switch_vt, 6);
+
+ add_builtin_keybinding (display,
+ "switch-to-session-7",
+ mutter_keybindings,
+ META_KEY_BINDING_NONE,
+ META_KEYBINDING_ACTION_NONE,
+ handle_switch_vt, 7);
+ }
+
+
#undef REVERSES_AND_REVERSED
/************************ PER WINDOW BINDINGS ************************/