detached 1a6c6c9

xwaylandkeyboardgrab_generated.go RawHistoryFolder

1// Code generated by wlbgen. DO NOT EDIT.
2// Protocol: xwayland_keyboard_grab_unstable_v1
3// Source: xwayland-keyboard-grab-unstable-v1.xml
4
5// Upstream protocol copyright and license:
6// Copyright © 2017 Red Hat Inc.
7//
8// Permission is hereby granted, free of charge, to any person obtaining a
9// copy of this software and associated documentation files (the "Software"),
10// to deal in the Software without restriction, including without limitation
11// the rights to use, copy, modify, merge, publish, distribute, sublicense,
12// and/or sell copies of the Software, and to permit persons to whom the
13// Software is furnished to do so, subject to the following conditions:
14//
15// The above copyright notice and this permission notice (including the next
16// paragraph) shall be included in all copies or substantial portions of the
17// Software.
18//
19// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
22// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25// DEALINGS IN THE SOFTWARE.
26
27package xwaylandkeyboardgrab
28
29import (
30	cross_wl_seat "github.com/bnema/go-wayland-bindings/client/wayland"
31	cross_wl_surface "github.com/bnema/go-wayland-bindings/client/wayland"
32	"github.com/bnema/wlturbo/wl"
33)
34
35// XwaylandKeyboardGrabManagerInterface is the protocol interface name.
36const XwaylandKeyboardGrabManagerInterface = "zwp_xwayland_keyboard_grab_manager_v1"
37
38// XwaylandKeyboardGrabManager is the generated binding for zwp_xwayland_keyboard_grab_manager_v1 version 1.
39type XwaylandKeyboardGrabManager struct {
40	wl.BaseProxy
41}
42
43// NewXwaylandKeyboardGrabManager returns an unbound XwaylandKeyboardGrabManager.
44func NewXwaylandKeyboardGrabManager(ctx *wl.Context) *XwaylandKeyboardGrabManager {
45	obj := &XwaylandKeyboardGrabManager{}
46	obj.SetContext(ctx)
47	ctx.Register(obj)
48	return obj
49}
50
51// Destroy the keyboard grab manager.
52func (o *XwaylandKeyboardGrabManager) Destroy() error {
53	if err := o.Context().RequestArgs(wl.Request{Proxy: o, Opcode: 0, Name: "zwp_xwayland_keyboard_grab_manager_v1.destroy", Destructor: true}); err != nil {
54		return err
55	}
56	return nil
57}
58
59// The grab_keyboard request asks for a grab of the keyboard, forcing the keyboard focus for the given seat upon the given surface. The protocol provides no guarantee that the grab is ever satisfied, and does not require the compositor to send an error if the grab cannot ever be satisfied. It is thus possible to request a keyboard grab that will never be effective. The protocol: * does not guarantee that the grab itself is applied for a surface, the grab request may be silently ignored by the compositor, * does not guarantee that any events are sent to this client even if the grab is applied to a surface, * does not guarantee that events sent to this client are exhaustive, a compositor may filter some events for its own consumption, * does not guarantee that events sent to this client are continuous, a compositor may change and reroute keyboard events while the grab is nominally active.
60func (o *XwaylandKeyboardGrabManager) GrabKeyboard(surface *cross_wl_surface.Surface, seat *cross_wl_seat.Seat) (*XwaylandKeyboardGrab, error) {
61	var arg1 wl.Object
62	if surface != nil {
63		arg1 = surface
64	}
65	var arg2 wl.Object
66	if seat != nil {
67		arg2 = seat
68	}
69	child := &XwaylandKeyboardGrab{}
70	child.SetContext(o.Context())
71	if err := o.Context().RequestArgs(wl.Request{Proxy: o, Opcode: 1, Name: "zwp_xwayland_keyboard_grab_manager_v1.grab_keyboard", Child: child}, wl.ArgObject(child), wl.ArgObject(arg1), wl.ArgObject(arg2)); err != nil {
72		return nil, err
73	}
74	return child, nil
75}
76
77// EventSignature returns the declared event argument types in wire order.
78func (o *XwaylandKeyboardGrabManager) EventSignature(opcode uint16) (string, bool) {
79	switch opcode {
80	default:
81		return "", false
82	}
83}
84
85// Dispatch decodes one event on zwp_xwayland_keyboard_grab_manager_v1 and calls the registered handlers.
86func (o *XwaylandKeyboardGrabManager) Dispatch(event *wl.Event) {
87	switch event.Opcode {
88	default:
89	}
90}
91
92// XwaylandKeyboardGrabInterface is the protocol interface name.
93const XwaylandKeyboardGrabInterface = "zwp_xwayland_keyboard_grab_v1"
94
95// XwaylandKeyboardGrab is the generated binding for zwp_xwayland_keyboard_grab_v1 version 1.
96type XwaylandKeyboardGrab struct {
97	wl.BaseProxy
98}
99
100// NewXwaylandKeyboardGrab returns an unbound XwaylandKeyboardGrab.
101func NewXwaylandKeyboardGrab(ctx *wl.Context) *XwaylandKeyboardGrab {
102	obj := &XwaylandKeyboardGrab{}
103	obj.SetContext(ctx)
104	ctx.Register(obj)
105	return obj
106}
107
108// Destroy the grabbed keyboard object. If applicable, the compositor will ungrab the keyboard.
109func (o *XwaylandKeyboardGrab) Destroy() error {
110	if err := o.Context().RequestArgs(wl.Request{Proxy: o, Opcode: 0, Name: "zwp_xwayland_keyboard_grab_v1.destroy", Destructor: true}); err != nil {
111		return err
112	}
113	return nil
114}
115
116// EventSignature returns the declared event argument types in wire order.
117func (o *XwaylandKeyboardGrab) EventSignature(opcode uint16) (string, bool) {
118	switch opcode {
119	default:
120		return "", false
121	}
122}
123
124// Dispatch decodes one event on zwp_xwayland_keyboard_grab_v1 and calls the registered handlers.
125func (o *XwaylandKeyboardGrab) Dispatch(event *wl.Event) {
126	switch event.Opcode {
127	default:
128	}
129}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 1

↑↓ moveenter openesc close