summaryrefslogtreecommitdiff
path: root/docs/desktop/wayland.md
blob: 367e85551f811a52785e9cdf347f202a5fa2a8a2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Wayland installation

## dwl and dwlb

Follow installation instructions from dwl + dwlb to compile the two packages and install theme

Create a startup script or put into .bash_profile the following command to allow dwl to start correctly:

    exec dbus-run-session dwl -s 'dwlb -font "HackNerdFont:size=16"'

dwl requires that a status bar be provided for -s, in this case we are using dwlb

References:

[Arch Linux Article](https://wiki.archlinux.org/title/Dwl)

Software:

[dwlb](https://github.com/kolunmi/dwlb)
[dwl](https://codeberg.org/dwl/dwl)
[wmenu](https://codeberg.org/adnano/wmenu)

## Escape + Super key mapping

Since wayland does not have support for xcape, we need to use interception with a plugin instead.

### Interception Plugin

The following part goes over how to install and use the interception plugin.

These are the configurations for my setup:

/etc/interception/dual-function-keys/mappings.yml:

    MAPPINGS:
        - KEY: KEY_CAPSLOCK
          TAP: KEY_ESC
          HOLD: KEY_LEFTMETA

/etc/interception/udevmon.d/rivos-laptop-udevmon.yml:

    - JOB: "intercept -g $DEVNODE | dual-function-keys -c /etc/interception/dual-function-keys/mappings.yml | uinput -d $DEVNODE"
      DEVICE:
        NAME: "AT Translated Set 2 keyboard"

To get the device name: see the reference link.

References:

[interception](https://gitlab.com/interception/linux/plugins/dual-function-keys/)

### keyd

Example keyd config that maps all keyboards to caps lock single press escape, hold super key

    [ids]

    *

    [main]

    # Maps capslock to escape when pressed and control when held.
    capslock = overload(meta, esc)

References:

[keyd](https://github.com/rvaiya/keyd)

## Multi-Monitor Hotplug
[Kanshi:](https://wiki.archlinux.org/title/Kanshi) a monitor hot plug program

## Multi-Monitor Tags for Hyprland
[Split Monitor Plugin](https://github.com/Duckonaut/split-monitor-workspaces)