mirror of
https://github.com/hyprwm/hyprland-wiki.git
synced 2024-11-22 04:35:59 +01:00
treewide: fix grammar/punctuation + rewrites (#605)
This commit is contained in:
parent
d4121fb7dc
commit
f1dbaf0a65
47 changed files with 268 additions and 317 deletions
|
@ -8,9 +8,7 @@ title: Animations
|
||||||
Animations are declared with the `animation` keyword.
|
Animations are declared with the `animation` keyword.
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
animation=NAME,ONOFF,SPEED,CURVE,STYLE
|
animation=NAME,ONOFF,SPEED,CURVE[,STYLE]
|
||||||
or
|
|
||||||
animation=NAME,ONOFF,SPEED,CURVE
|
|
||||||
```
|
```
|
||||||
|
|
||||||
`ONOFF` can be either 0 or 1, 0 to disable, 1 to enable. _note:_ if it's 0, you
|
`ONOFF` can be either 0 or 1, 0 to disable, 1 to enable. _note:_ if it's 0, you
|
||||||
|
|
|
@ -15,7 +15,7 @@ for example,
|
||||||
bind=SUPER_SHIFT,Q,exec,firefox
|
bind=SUPER_SHIFT,Q,exec,firefox
|
||||||
```
|
```
|
||||||
|
|
||||||
will bind opening firefox to <key>SUPER</key> + <key>SHIFT</key> + <key>Q</key>
|
will bind opening Firefox to <key>SUPER</key> + <key>SHIFT</key> + <key>Q</key>
|
||||||
|
|
||||||
{{< callout type=info >}}
|
{{< callout type=info >}}
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ for all the keysyms. The name you should use is the segment after `XKB_KEY_`.
|
||||||
If you are unsure of what your key's name is, you can use `xev` or `wev` to find
|
If you are unsure of what your key's name is, you can use `xev` or `wev` to find
|
||||||
that information.
|
that information.
|
||||||
|
|
||||||
If you want to bind by a keycode, you can just input it in the KEY position with
|
If you want to bind by a keycode, you can put it in the KEY position with
|
||||||
a `code:` prefix, e.g.:
|
a `code:` prefix, e.g.:
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
|
@ -111,7 +111,7 @@ bindl=,switch:on:[switch name],exec,hyprctl keyword monitor "eDP-1, disable"
|
||||||
bindl=,switch:off:[switch name],exec,hyprctl keyword monitor "eDP-1, 2560x1600, 0x0, 1"
|
bindl=,switch:off:[switch name],exec,hyprctl keyword monitor "eDP-1, 2560x1600, 0x0, 1"
|
||||||
```
|
```
|
||||||
|
|
||||||
check out your switches in `hyprctl devices`.
|
You can view your switches in `hyprctl devices`.
|
||||||
|
|
||||||
### Multiple binds to one key
|
### Multiple binds to one key
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ bindrl=MOD,KEY,exec,amongus
|
||||||
Flags:
|
Flags:
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
l -> locked, aka. works also when an input inhibitor (e.g. a lockscreen) is active.
|
l -> locked, will also work when an input inhibitor (e.g. a lockscreen) is active.
|
||||||
r -> release, will trigger on release of a key.
|
r -> release, will trigger on release of a key.
|
||||||
e -> repeat, will repeat when held.
|
e -> repeat, will repeat when held.
|
||||||
n -> non-consuming, key/mouse events will be passed to the active window in addition to triggering the dispatcher.
|
n -> non-consuming, key/mouse events will be passed to the active window in addition to triggering the dispatcher.
|
||||||
|
@ -169,14 +169,14 @@ bindr=SUPER, SUPER_L, exec, pkill wofi || wofi
|
||||||
|
|
||||||
## Mouse Binds
|
## Mouse Binds
|
||||||
|
|
||||||
Mouse binds are binds that heavily rely on a mouse, usually its movement. They
|
Mouse binds are binds that rely on mouse movement. They
|
||||||
will have one less arg, and look for example like this:
|
will have one less arg, and may look like this:
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
bindm=ALT,mouse:272,movewindow
|
bindm=ALT,mouse:272,movewindow
|
||||||
```
|
```
|
||||||
|
|
||||||
this will create a bind with <key>ALT</key> + <key>LMB</key> to move the window
|
This will create a bind with <key>ALT</key> + <key>LMB</key> to move the window
|
||||||
with your mouse.
|
with your mouse.
|
||||||
|
|
||||||
_Available mouse binds_:
|
_Available mouse binds_:
|
||||||
|
@ -242,10 +242,9 @@ Will pass MOUSE5 to TeamSpeak3.
|
||||||
|
|
||||||
{{< callout >}}
|
{{< callout >}}
|
||||||
|
|
||||||
XWayland is a bit wonky. Make sure that what you're passing is a "global Xorg
|
This works flawlessly with all native Wayland applications. However, XWayland is a bit wonky.
|
||||||
keybind", otherwise passing from a different XWayland app may not work.
|
Make sure that what you're passing is a "global Xorg keybind",
|
||||||
|
otherwise passing from a different XWayland app may not work.
|
||||||
It works flawlessly with all native Wayland applications though.
|
|
||||||
|
|
||||||
{{< /callout >}}
|
{{< /callout >}}
|
||||||
|
|
||||||
|
@ -276,9 +275,9 @@ Please note that this function will _only_ work with
|
||||||
|
|
||||||
## Submaps
|
## Submaps
|
||||||
|
|
||||||
If you want keybind submaps, also known as _modes_ or _groups_, for example if
|
Keybind submaps, also known as _modes_ or _groups_, allow you to activate a
|
||||||
you press <key>ALT</key> + <key>R</key>, you can enter a "resize" mode, resize
|
seperate set of keybinds. For example, if you want to enter a "resize" mode
|
||||||
with arrow keys, and leave with escape, do it like this:
|
which allows you to resize windows with the arrow keys, you can do it like this:
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
# will switch to a submap called resize
|
# will switch to a submap called resize
|
||||||
|
@ -296,7 +295,7 @@ binde=,down,resizeactive,0 10
|
||||||
# use reset to go back to the global submap
|
# use reset to go back to the global submap
|
||||||
bind=,escape,submap,reset
|
bind=,escape,submap,reset
|
||||||
|
|
||||||
# will reset the submap, meaning end the current one and return to the global one
|
# will reset the submap, which will return to the global submap
|
||||||
submap=reset
|
submap=reset
|
||||||
|
|
||||||
# keybinds further down will be global again...
|
# keybinds further down will be global again...
|
||||||
|
|
|
@ -14,7 +14,7 @@ one. You can find an example config
|
||||||
|
|
||||||
By removing the line `autogenerated=1` you'll remove the yellow warning.
|
By removing the line `autogenerated=1` you'll remove the yellow warning.
|
||||||
|
|
||||||
There is no "reload" keybind. The config is reloaded the moment you save it.
|
The config is reloaded the moment you save it. However, you can use `hyprctl reload` to reload the config manually.
|
||||||
|
|
||||||
Start a section with `name {` and end in `}` **_in separate lines!_**
|
Start a section with `name {` and end in `}` **_in separate lines!_**
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ layout pages (See the sidebar).
|
||||||
| closewindow | closes a specified window | window |
|
| closewindow | closes a specified window | window |
|
||||||
| workspace | changes the workspace | workspace |
|
| workspace | changes the workspace | workspace |
|
||||||
| movetoworkspace | moves the focused window to a workspace | workspace OR `workspace,window` for a specific window |
|
| movetoworkspace | moves the focused window to a workspace | workspace OR `workspace,window` for a specific window |
|
||||||
| movetoworkspacesilent | same as above, but doesnt switch to the workspace | workspace OR `workspace,window` for a specific window |
|
| movetoworkspacesilent | same as above, but doesn't switch to the workspace | workspace OR `workspace,window` for a specific window |
|
||||||
| togglefloating | toggles the current window's floating state | left empty / `active` for current, or `window` for a specific window |
|
| togglefloating | toggles the current window's floating state | left empty / `active` for current, or `window` for a specific window |
|
||||||
| setfloating | sets the current window's floating state to true | left empty / `active` for current, or `window` for a specific window |
|
| setfloating | sets the current window's floating state to true | left empty / `active` for current, or `window` for a specific window |
|
||||||
| settiled | sets the current window's floating state to false | left empty / `active` for current, or `window` for a specific window |
|
| settiled | sets the current window's floating state to false | left empty / `active` for current, or `window` for a specific window |
|
||||||
|
@ -102,13 +102,13 @@ The new group’s border colors are configurable with the appropriate `col.`
|
||||||
settings in the `group` config section.
|
settings in the `group` config section.
|
||||||
|
|
||||||
You can lock a group with the `lockactivegroup` dispatcher in order to stop new
|
You can lock a group with the `lockactivegroup` dispatcher in order to stop new
|
||||||
window from entering this group. In addition, the `lockgroups` dispatcher can be
|
windows from entering this group. In addition, the `lockgroups` dispatcher can be
|
||||||
used to toggle an independent global group lock that will prevent new window
|
used to toggle an independent global group lock that will prevent new windows
|
||||||
from entering any groups, regardless of their local group lock stat.
|
from entering any groups, regardless of their local group lock stat.
|
||||||
|
|
||||||
You can prevent a window from being added to group or becoming a group with the
|
You can prevent a window from being added to a group or becoming a group with the
|
||||||
`denywindowfromgroup` dispatcher. `movewindoworgroup` will behave like
|
`denywindowfromgroup` dispatcher. `movewindoworgroup` will behave like
|
||||||
`movewindow` if current active window or window in direction has this property
|
`movewindow` if the current active window or window in direction has this property
|
||||||
set.
|
set.
|
||||||
|
|
||||||
## Workspaces
|
## Workspaces
|
||||||
|
@ -173,8 +173,8 @@ bind = SUPER, C, movetoworkspace, special
|
||||||
## Executing with rules
|
## Executing with rules
|
||||||
|
|
||||||
The `exec` dispatcher supports adding rules. Please note some windows might work
|
The `exec` dispatcher supports adding rules. Please note some windows might work
|
||||||
better, some worse. It records the PID of the spawned process and uses that. If
|
better, some worse. It records the PID of the spawned process and uses that. For example, if
|
||||||
your process e.g. forks and then the fork opens a window, this will not work.
|
your process forks and then the fork opens a window, this will not work.
|
||||||
|
|
||||||
The syntax is:
|
The syntax is:
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ Dispatcher `layoutmsg` params:
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| togglesplit | toggles the split (top/side) of the current window. `preserve_split` must be enabled for toggling to work. | none |
|
| togglesplit | toggles the split (top/side) of the current window. `preserve_split` must be enabled for toggling to work. | none |
|
||||||
| swapsplit | swaps the two halves of the split of the current window. | none |
|
| swapsplit | swaps the two halves of the split of the current window. | none |
|
||||||
| preselect | A onetime override for the split direction. (valid for the next window to be opened, only works on tiled windows) | direction |
|
| preselect | A one-time override for the split direction. (valid for the next window to be opened, only works on tiled windows) | direction |
|
||||||
|
|
||||||
e.g.:
|
e.g.:
|
||||||
|
|
||||||
|
|
|
@ -29,8 +29,8 @@ three_param_keyword = A, B, # OK
|
||||||
|
|
||||||
## Executing
|
## Executing
|
||||||
|
|
||||||
you can execute a shell script on startup of the compositor or on each time it's
|
You can execute a shell script on startup of the compositor or every time
|
||||||
reloaded.
|
the config is reloaded.
|
||||||
|
|
||||||
`exec-once=command` will execute only on launch
|
`exec-once=command` will execute only on launch
|
||||||
|
|
||||||
|
@ -38,25 +38,25 @@ reloaded.
|
||||||
|
|
||||||
## Defining variables
|
## Defining variables
|
||||||
|
|
||||||
You can define your own custom variables like this:
|
You can define your own custom variables using a dollar sign (`$`):
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
$VAR = value
|
$VAR = value
|
||||||
```
|
```
|
||||||
|
|
||||||
for example:
|
For example:
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
$MyFavoriteGame = Among Us
|
$MyFavoriteGame = Among Us
|
||||||
```
|
```
|
||||||
|
|
||||||
then, to use them, simply use them. For example:
|
Then you can reference them in the rest of the config. For example:
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
col.active_border=$MyColor
|
col.active_border=$MyColor
|
||||||
```
|
```
|
||||||
|
|
||||||
You ARE allowed to do this:
|
You are allowed to combine variables in-place with other strings, like this:
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
col.active_border=ff$MyRedValue1111
|
col.active_border=ff$MyRedValue1111
|
||||||
|
@ -145,7 +145,7 @@ In that case you'll need to type the symbol specified in the bind to activate it
|
||||||
|
|
||||||
## Wallpapers
|
## Wallpapers
|
||||||
|
|
||||||
The hyprland background you see when you first start Hyprland is **NOT A
|
The "Hyprland" background you see when you first start Hyprland is **NOT A
|
||||||
WALLPAPER**, it's the default image rendered at the bottom of the render stack.
|
WALLPAPER**, it's the default image rendered at the bottom of the render stack.
|
||||||
|
|
||||||
To set a wallpaper, use a wallpaper utility like
|
To set a wallpaper, use a wallpaper utility like
|
||||||
|
@ -167,7 +167,7 @@ layerrule = blur,NAMESPACE
|
||||||
layerrule = blur,address:0x<ADDRESS>
|
layerrule = blur,address:0x<ADDRESS>
|
||||||
```
|
```
|
||||||
|
|
||||||
you can get the namespace / address from `hyprctl layers`.
|
You can get the namespace / address from `hyprctl layers`.
|
||||||
|
|
||||||
To remove a layer rule (useful in dynamic situations) use:
|
To remove a layer rule (useful in dynamic situations) use:
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ title: Master Layout
|
||||||
|
|
||||||
The master layout makes one (or more) window(s) be the "master", taking (by
|
The master layout makes one (or more) window(s) be the "master", taking (by
|
||||||
default) the left part of the screen, and tiles the rest on the right. You can
|
default) the left part of the screen, and tiles the rest on the right. You can
|
||||||
change the orientation on per-workspace basis if you want to use anything other
|
change the orientation on a per-workspace basis if you want to use anything other
|
||||||
than the default left/right split.
|
than the default left/right split.
|
||||||
|
|
||||||
![master1](https://user-images.githubusercontent.com/43317083/179357849-321f042c-f536-44b3-9e6f-371df5321836.gif)
|
![master1](https://user-images.githubusercontent.com/43317083/179357849-321f042c-f536-44b3-9e6f-371df5321836.gif)
|
||||||
|
@ -54,11 +54,11 @@ _category name `master`_
|
||||||
| rollnext | rotate the next window in stack to be the master, while keeping the focus on master | none |
|
| rollnext | rotate the next window in stack to be the master, while keeping the focus on master | none |
|
||||||
| rollprev | rotate the previous window in stack to be the master, while keeping the focus on master | none |
|
| rollprev | rotate the previous window in stack to be the master, while keeping the focus on master | none |
|
||||||
|
|
||||||
params for the commands are separated by a single space
|
Parameters for the commands are separated by a single space.
|
||||||
|
|
||||||
{{< callout type=info >}}
|
{{< callout type=info >}}
|
||||||
|
|
||||||
example usage:
|
Example usage:
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
bind=MOD,KEY,layoutmsg,cyclenext
|
bind=MOD,KEY,layoutmsg,cyclenext
|
||||||
|
|
|
@ -5,7 +5,7 @@ title: Monitors
|
||||||
|
|
||||||
## General
|
## General
|
||||||
|
|
||||||
The general config of a monitor looks like this
|
The general config of a monitor looks like this:
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
monitor=name,resolution,position,scale
|
monitor=name,resolution,position,scale
|
||||||
|
@ -17,7 +17,7 @@ A common example:
|
||||||
monitor=DP-1,1920x1080@144,0x0,1
|
monitor=DP-1,1920x1080@144,0x0,1
|
||||||
```
|
```
|
||||||
|
|
||||||
will tell Hyprland to make the monitor on `DP-1` a `1920x1080` display, at
|
This will make the monitor on `DP-1` a `1920x1080` display, at
|
||||||
144Hz, `0x0` off from the top left corner, with a scale of 1 (unscaled).
|
144Hz, `0x0` off from the top left corner, with a scale of 1 (unscaled).
|
||||||
|
|
||||||
To list all available monitors (active and inactive):
|
To list all available monitors (active and inactive):
|
||||||
|
@ -57,7 +57,7 @@ monitor=DP-2, 1920x1080, -1920x0, 1
|
||||||
|
|
||||||
The position is calculated with the scaled (and transformed) resolution, meaning
|
The position is calculated with the scaled (and transformed) resolution, meaning
|
||||||
if you want your 4K monitor with scale 2 to the left of your 1080p one, you'd
|
if you want your 4K monitor with scale 2 to the left of your 1080p one, you'd
|
||||||
use the position `1920x0` for the second screen. (3840 / 2) If the monitor is
|
use the position `1920x0` for the second screen (3840 / 2). If the monitor is
|
||||||
also rotated 90 degrees (vertical), you'd use `1080x0`.
|
also rotated 90 degrees (vertical), you'd use `1080x0`.
|
||||||
|
|
||||||
{{</ callout >}}
|
{{</ callout >}}
|
||||||
|
@ -65,8 +65,10 @@ also rotated 90 degrees (vertical), you'd use `1080x0`.
|
||||||
Leaving the name empty will define a fallback rule to use when no other rules
|
Leaving the name empty will define a fallback rule to use when no other rules
|
||||||
match.
|
match.
|
||||||
|
|
||||||
You can use `preferred` as a resolution to use the display's preferred size and
|
You can use `preferred` as a resolution to use the display's preferred size,
|
||||||
`auto` as a position to let Hyprland decide on a position for you.
|
or you can use `highres` or `highrr` to get the best possible resolution or refresh rate for your monitor.
|
||||||
|
|
||||||
|
You can use `auto` as a position to let Hyprland decide on a position for you.
|
||||||
|
|
||||||
You can also use `auto` as a scale to let Hyprland decide on a scale for you.
|
You can also use `auto` as a scale to let Hyprland decide on a scale for you.
|
||||||
These depend on the PPI of the monitor.
|
These depend on the PPI of the monitor.
|
||||||
|
@ -80,21 +82,6 @@ monitor=,preferred,auto,1
|
||||||
Will make any monitor that was not specified with an explicit rule automatically
|
Will make any monitor that was not specified with an explicit rule automatically
|
||||||
placed on the right of the other(s) with its preferred resolution.
|
placed on the right of the other(s) with its preferred resolution.
|
||||||
|
|
||||||
Alternatively, you can use the `highres` or `highrr` rules in order to get the
|
|
||||||
best possible resolution or refreshrate mix.
|
|
||||||
|
|
||||||
for a focus on refreshrate use this:
|
|
||||||
|
|
||||||
```ini
|
|
||||||
monitor=,highrr,auto,1
|
|
||||||
```
|
|
||||||
|
|
||||||
for a focus on resolution this:
|
|
||||||
|
|
||||||
```ini
|
|
||||||
monitor=,highres,auto,1
|
|
||||||
```
|
|
||||||
|
|
||||||
For more specific rules, you can also use the output's description (see
|
For more specific rules, you can also use the output's description (see
|
||||||
`hyprctl monitors` for more details). If the output of `hyprctl monitors` looks
|
`hyprctl monitors` for more details). If the output of `hyprctl monitors` looks
|
||||||
like the following:
|
like the following:
|
||||||
|
@ -145,14 +132,15 @@ screensaver style (just turn off the monitor) use the `dpms`
|
||||||
|
|
||||||
## Custom reserved area
|
## Custom reserved area
|
||||||
|
|
||||||
If your workflow requires custom reserved area, you can add it with
|
A reserved area is an area that remains unoccupied by tiled windows.
|
||||||
|
If your workflow requires a custom reserved area, you can add it with:
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
monitor=name,addreserved,TOP,BOTTOM,LEFT,RIGHT
|
monitor=name,addreserved,TOP,BOTTOM,LEFT,RIGHT
|
||||||
```
|
```
|
||||||
|
|
||||||
Where `TOP` `BOTTOM` `LEFT` `RIGHT` are integers in pixels of the reserved area
|
Where `TOP` `BOTTOM` `LEFT` `RIGHT` are integers in pixels of the reserved area
|
||||||
to add. This does stack on top of the calculated one, (e.g. bars) but you may
|
to add. This does stack on top of the calculated one (e.g. bars), but you may
|
||||||
only use one of these rules per monitor in the config.
|
only use one of these rules per monitor in the config.
|
||||||
|
|
||||||
## Extra args
|
## Extra args
|
||||||
|
@ -163,7 +151,7 @@ You can combine extra arguments at the end of the monitor rule, examples:
|
||||||
monitor=eDP-1,2880x1800@90,0x0,1,transform,1,mirror,DP-2,bitdepth,10
|
monitor=eDP-1,2880x1800@90,0x0,1,transform,1,mirror,DP-2,bitdepth,10
|
||||||
```
|
```
|
||||||
|
|
||||||
See bellow for more detail about each argument.
|
See below for more detail about each argument.
|
||||||
|
|
||||||
### Mirrored displays
|
### Mirrored displays
|
||||||
|
|
||||||
|
@ -221,24 +209,6 @@ flipped + 180 degrees -> 6
|
||||||
flipped + 270 degrees -> 7
|
flipped + 270 degrees -> 7
|
||||||
```
|
```
|
||||||
|
|
||||||
{{< callout type=info >}}
|
|
||||||
|
|
||||||
If you're using a touchscreen, you'll also have to rotate its digitizer to
|
|
||||||
match:
|
|
||||||
|
|
||||||
```ini
|
|
||||||
input {
|
|
||||||
touchdevice {
|
|
||||||
transform = 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
This will be done automatically when
|
|
||||||
[#3544](https://github.com/hyprwm/Hyprland/pull/3544) lands.
|
|
||||||
|
|
||||||
{{< /callout >}}
|
|
||||||
|
|
||||||
## Default workspace
|
## Default workspace
|
||||||
|
|
||||||
See [Workspace Rules](../Workspace-Rules).
|
See [Workspace Rules](../Workspace-Rules).
|
||||||
|
|
|
@ -5,7 +5,7 @@ title: Multi-GPU
|
||||||
|
|
||||||
## General
|
## General
|
||||||
|
|
||||||
If your host machine uses multiple GPUs, you may want to primarily use one GPU
|
If your host machine uses multiple GPUs, you may want to use one GPU
|
||||||
for rendering all the elements for Hyprland including windows, animations, and
|
for rendering all the elements for Hyprland including windows, animations, and
|
||||||
another for hardware acceleration for certain applications, etc.
|
another for hardware acceleration for certain applications, etc.
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ It is generally a good idea for laptops to use the integrated GPU as the primary
|
||||||
renderer as this preserves battery life and is practically indistinguishable
|
renderer as this preserves battery life and is practically indistinguishable
|
||||||
from using the dedicated GPU on modern systems in most cases. Hyprland can be
|
from using the dedicated GPU on modern systems in most cases. Hyprland can be
|
||||||
run on integrated GPUs just fine. The same principle applies for desktop setups
|
run on integrated GPUs just fine. The same principle applies for desktop setups
|
||||||
with a lower and higher power rating GPUs respectively.
|
with lower and higher power rating GPUs respectively.
|
||||||
|
|
||||||
{{< /callout >}}
|
{{< /callout >}}
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,8 @@ you stumble upon problems or you do not care that much about animations.
|
||||||
|
|
||||||
Wayland fractional scaling is a lot better than before, but it is not perfect.
|
Wayland fractional scaling is a lot better than before, but it is not perfect.
|
||||||
Some applications do not support it yet or the support is experimental at best.
|
Some applications do not support it yet or the support is experimental at best.
|
||||||
If you have problems with your graphics card having high usage and hyprland
|
If you have problems with your graphics card having high usage or Hyprland
|
||||||
feeling laggy then try setting the scaling to integer numbers such as `1` or `2`
|
feeling laggy, try setting the scaling to integer numbers such as `1` or `2`
|
||||||
like in this example `monitor=,preferred,auto,2`.
|
like in this example `monitor=,preferred,auto,2`.
|
||||||
|
|
||||||
## Low FPS/stutter/FPS drops on Intel iGPU with TLP (mainly laptops)
|
## Low FPS/stutter/FPS drops on Intel iGPU with TLP (mainly laptops)
|
||||||
|
|
|
@ -58,7 +58,7 @@ See the likely culprits below.
|
||||||
|
|
||||||
### No tearing at all
|
### No tearing at all
|
||||||
|
|
||||||
Make sure your windowrules are matching and you have the master toggle enabled.
|
Make sure your window rules are matching and you have the master toggle enabled.
|
||||||
|
|
||||||
Also make sure nothing except for your game is showing on your monitor. No
|
Also make sure nothing except for your game is showing on your monitor. No
|
||||||
notifications, overlays, lockscreens, bars, other windows, etc. (on a different
|
notifications, overlays, lockscreens, bars, other windows, etc. (on a different
|
||||||
|
@ -78,13 +78,7 @@ Likely issue with your graphics driver.
|
||||||
Please _do not_ report issues if this is the culprit. Unfortunately, it's most
|
Please _do not_ report issues if this is the culprit. Unfortunately, it's most
|
||||||
likely your GPU driver's fault.
|
likely your GPU driver's fault.
|
||||||
|
|
||||||
Could be the below as well
|
### Other graphical issues/Hyprland instantly crashes on launch
|
||||||
|
|
||||||
### Other graphical issues
|
|
||||||
|
|
||||||
or
|
|
||||||
|
|
||||||
### Hyprland instantly crashes on launch
|
|
||||||
|
|
||||||
Likely issue with `WLR_DRM_NO_ATOMIC`.
|
Likely issue with `WLR_DRM_NO_ATOMIC`.
|
||||||
|
|
||||||
|
|
|
@ -25,9 +25,9 @@ For live event handling, see the [socket2](../../IPC/).
|
||||||
|
|
||||||
## Commands
|
## Commands
|
||||||
|
|
||||||
### Dispatch
|
### dispatch
|
||||||
|
|
||||||
issue a `dispatch` to call a keybind dispatcher with an arg.
|
Issue a `dispatch` to call a keybind dispatcher with an arg.
|
||||||
|
|
||||||
An arg has to be present, for dispatchers without parameters it can be anything.
|
An arg has to be present, for dispatchers without parameters it can be anything.
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ Returns: `ok` on success, an error message on fail.
|
||||||
|
|
||||||
See [Dispatchers](../Dispatchers) for a list of dispatchers.
|
See [Dispatchers](../Dispatchers) for a list of dispatchers.
|
||||||
|
|
||||||
### Keyword
|
### keyword
|
||||||
|
|
||||||
issue a `keyword` to call a config keyword dynamically.
|
issue a `keyword` to call a config keyword dynamically.
|
||||||
|
|
||||||
|
@ -65,13 +65,13 @@ hyprctl keyword monitor DP-3,1920x1080@144,0x0,1
|
||||||
|
|
||||||
Returns: `ok` on success, an error message on fail.
|
Returns: `ok` on success, an error message on fail.
|
||||||
|
|
||||||
### Reload
|
### reload
|
||||||
|
|
||||||
issue a `reload` to force reload the config.
|
Issue a `reload` to force reload the config.
|
||||||
|
|
||||||
### kill
|
### kill
|
||||||
|
|
||||||
issue a `kill` to get into a kill mode, where you can kill an app by clicking on
|
Issue a `kill` to get into a kill mode, where you can kill an app by clicking on
|
||||||
it. You can exit it with ESCAPE.
|
it. You can exit it with ESCAPE.
|
||||||
|
|
||||||
Kind of like xkill.
|
Kind of like xkill.
|
||||||
|
@ -142,7 +142,7 @@ where `CMD` is either `next` for next, `prev` for previous, or `ID` for a
|
||||||
specific one (in the above case, `us`: 0, `pl`: 1, `de`: 2). You can find the
|
specific one (in the above case, `us`: 0, `pl`: 1, `de`: 2). You can find the
|
||||||
`DEVICE` using `hyprctl devices` command.
|
`DEVICE` using `hyprctl devices` command.
|
||||||
|
|
||||||
example command for a typical keyboard:
|
Example command for a typical keyboard:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
hyprctl switchxkblayout at-translated-set-2-keyboard next
|
hyprctl switchxkblayout at-translated-set-2-keyboard next
|
||||||
|
@ -173,7 +173,7 @@ Sets the hyprctl error string. Will reset when Hyprland's config is reloaded.
|
||||||
hyprctl seterror 'rgba(66ee66ff)' hello world this is my problem
|
hyprctl seterror 'rgba(66ee66ff)' hello world this is my problem
|
||||||
```
|
```
|
||||||
|
|
||||||
or disable:
|
To disable:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
hyprctl seterror disable
|
hyprctl seterror disable
|
||||||
|
@ -270,23 +270,23 @@ hyprctl dismissnotify -1 # dismiss all notifications (same as no arguments)
|
||||||
## Info
|
## Info
|
||||||
|
|
||||||
```plain
|
```plain
|
||||||
version - prints the hyprland version, meaning flags, commit and branch of build.
|
version - prints the Hyprland version along with flags, commit and branch of build.
|
||||||
monitors - lists active outputs with their properties, 'monitors all' lists active and inactive outputs
|
monitors - lists active outputs with their properties, 'monitors all' lists active and inactive outputs
|
||||||
workspaces - lists all workspaces with their properties
|
workspaces - lists all workspaces with their properties
|
||||||
activeworkspace - gets the active workspace and its properties
|
activeworkspace - gets the active workspace and its properties
|
||||||
workspacerules - gets the list of defined workspace rules
|
workspacerules - gets the list of defined workspace rules
|
||||||
clients - lists all windows with their properties
|
clients - lists all windows with their properties
|
||||||
devices - lists all connected keyboards and mice
|
devices - lists all connected keyboards and mice
|
||||||
decorations [window]- lists all decorations and their info
|
decorations [window] - lists all decorations and their info
|
||||||
binds - lists all registered binds
|
binds - lists all registered binds
|
||||||
activewindow - gets the active window name and its properties
|
activewindow - gets the active window name and its properties
|
||||||
layers - lists all the layers
|
layers - lists all the layers
|
||||||
splash - prints the current random splash
|
splash - prints the current random splash
|
||||||
getoption [option] - gets the config option status (values)
|
getoption [option] - gets the config option status (values)
|
||||||
cursorpos - gets the current cursor pos in global layout coordinates
|
cursorpos - gets the current cursor position in global layout coordinates
|
||||||
animations - gets the current config'd info about animations and beziers
|
animations - gets the currently configured info about animations and beziers
|
||||||
instances - lists all running instances of hyprland with their info
|
instances - lists all running instances of Hyprland with their info
|
||||||
layouts - lists all layouts available (including plugin'd ones)
|
layouts - lists all layouts available (including from plugins)
|
||||||
configerrors - lists all current config parsing errors
|
configerrors - lists all current config parsing errors
|
||||||
rollinglog - prints tail of the log
|
rollinglog - prints tail of the log
|
||||||
```
|
```
|
||||||
|
@ -301,11 +301,11 @@ hyprctl getoption general:border_size
|
||||||
hyprctl getoption input:touchpad:disable_while_typing
|
hyprctl getoption input:touchpad:disable_while_typing
|
||||||
```
|
```
|
||||||
|
|
||||||
See [Variables](../Variables) for section and options you can use.
|
See [Variables](../Variables) for sections and options you can use.
|
||||||
|
|
||||||
## Batch
|
## Batch
|
||||||
|
|
||||||
You can also use `--batch` to specify a batch of commands to execute
|
You can also use `--batch` to specify a batch of commands to execute.
|
||||||
|
|
||||||
e.g.
|
e.g.
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ the layout pages and not here. (See the Sidebar for Dwindle and Master layouts)
|
||||||
| bool | boolean, `true` or `false` (`yes` or `no`, `on` or `off`, `0` or `1`) - any numerical value that is not `0` or `1` will cause undefined behavior. |
|
| bool | boolean, `true` or `false` (`yes` or `no`, `on` or `off`, `0` or `1`) - any numerical value that is not `0` or `1` will cause undefined behavior. |
|
||||||
| float | floating point number |
|
| float | floating point number |
|
||||||
| color | color (see hint below for color info) |
|
| color | color (see hint below for color info) |
|
||||||
| vec2 | vector with 2 values (float), separated by a space (e.g. `0 0` or `-10.9 99.1`) |
|
| vec2 | vector with 2 float values, separated by a space (e.g. `0 0` or `-10.9 99.1`) |
|
||||||
| MOD | a string modmask (e.g. `SUPER` or `SUPERSHIFT` or `SUPER + SHIFT` or `SUPER and SHIFT` or `CTRL_SHIFT` or empty for none. You are allowed to put any separators you please except for a `,`) |
|
| MOD | a string modmask (e.g. `SUPER` or `SUPERSHIFT` or `SUPER + SHIFT` or `SUPER and SHIFT` or `CTRL_SHIFT` or empty for none. You are allowed to put any separators you please except for a `,`) |
|
||||||
| str | a string |
|
| str | a string |
|
||||||
| gradient | a gradient, in the form of `color color ... [angle]` where `color` is a color (see above) and angle is an angle in degrees, in the format of `123deg` e.g. `45deg` (e.g. `rgba(11ee11ff) rgba(1111eeff) 45deg`) Angle is optional and will default to `0deg` |
|
| gradient | a gradient, in the form of `color color ... [angle]` where `color` is a color (see above) and angle is an angle in degrees, in the format of `123deg` e.g. `45deg` (e.g. `rgba(11ee11ff) rgba(1111eeff) 45deg`) Angle is optional and will default to `0deg` |
|
||||||
|
@ -176,21 +176,21 @@ _[More about Animations](../Animations)._
|
||||||
| kb_rules | Appropriate XKB keymap parameter | str | \[\[Empty\]\] |
|
| kb_rules | Appropriate XKB keymap parameter | str | \[\[Empty\]\] |
|
||||||
| kb_file | If you prefer, you can use a path to your custom .xkb file. | str | \[\[Empty\]\] |
|
| kb_file | If you prefer, you can use a path to your custom .xkb file. | str | \[\[Empty\]\] |
|
||||||
| numlock_by_default | Engage numlock by default. | bool | false |
|
| numlock_by_default | Engage numlock by default. | bool | false |
|
||||||
| resolve_binds_by_sym | Determines how keybinds act when multiple layouts are used. If false, keybinds will always act as if the first specified layout were active. If true, keybinds specified by symbols activate if you type the respective symbol with the current layout. | bool | false |
|
| resolve_binds_by_sym | Determines how keybinds act when multiple layouts are used. If false, keybinds will always act as if the first specified layout is active. If true, keybinds specified by symbols are activated when you type the respective symbol with the current layout. | bool | false |
|
||||||
| repeat_rate | The repeat rate for held-down keys, in repeats per second. | int | 25 |
|
| repeat_rate | The repeat rate for held-down keys, in repeats per second. | int | 25 |
|
||||||
| repeat_delay | Delay before a held-down key is repeated, in milliseconds. | int | 600 |
|
| repeat_delay | Delay before a held-down key is repeated, in milliseconds. | int | 600 |
|
||||||
| sensitivity | Sets the mouse input sensitivity. Value will be clamped to the range -1.0 to 1.0. [libinput#pointer-acceleration](https://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html#pointer-acceleration) | float | 0.0 |
|
| sensitivity | Sets the mouse input sensitivity. Value is clamped to the range -1.0 to 1.0. [libinput#pointer-acceleration](https://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html#pointer-acceleration) | float | 0.0 |
|
||||||
| accel_profile | Sets the cursor acceleration profile. Can be one of `adaptive`, `flat`. Can also be `custom`, see [below](#custom-accel-profiles). Leave empty to use `libinput`'s default mode for your input device. [libinput#pointer-acceleration](https://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html#pointer-acceleration) [adaptive/flat/custom]| str | \[\[Empty\]\]
|
| accel_profile | Sets the cursor acceleration profile. Can be one of `adaptive`, `flat`. Can also be `custom`, see [below](#custom-accel-profiles). Leave empty to use `libinput`'s default mode for your input device. [libinput#pointer-acceleration](https://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html#pointer-acceleration) [adaptive/flat/custom]| str | \[\[Empty\]\]
|
||||||
| force_no_accel | Force no cursor acceleration. This bypasses most of your pointer settings to get as raw of a signal as possible. **Enabling this is not recommended due to potential cursor desynchronization.** | bool | false |
|
| force_no_accel | Force no cursor acceleration. This bypasses most of your pointer settings to get as raw of a signal as possible. **Enabling this is not recommended due to potential cursor desynchronization.** | bool | false |
|
||||||
| left_handed | Switches RMB and LMB | bool | false |
|
| left_handed | Switches RMB and LMB | bool | false |
|
||||||
| scroll_points | Sets the scroll acceleration profile, when `accel_profile` is set to `custom`. Has to be in the form `<step> <points>`. Leave empty to have a flat scroll curve. | str | \[\[Empty\]\]
|
| scroll_points | Sets the scroll acceleration profile, when `accel_profile` is set to `custom`. Has to be in the form `<step> <points>`. Leave empty to have a flat scroll curve. | str | \[\[Empty\]\]
|
||||||
| scroll_method | Sets the scroll method. Can be one of `2fg` (2 fingers), `edge`, `on_button_down`, `no_scroll`. [libinput#scrolling](https://wayland.freedesktop.org/libinput/doc/latest/scrolling.html) [2fg/edge/on_button_down/no_scroll] | str | \[\[Empty\]\]
|
| scroll_method | Sets the scroll method. Can be one of `2fg` (2 fingers), `edge`, `on_button_down`, `no_scroll`. [libinput#scrolling](https://wayland.freedesktop.org/libinput/doc/latest/scrolling.html) [2fg/edge/on_button_down/no_scroll] | str | \[\[Empty\]\]
|
||||||
| scroll_button | Sets the scroll button. Has to be an int, cannot be a string. Check `wev` if you have any doubts regarding the ID. 0 means default. | int | 0 |
|
| scroll_button | Sets the scroll button. Has to be an int, cannot be a string. Check `wev` if you have any doubts regarding the ID. 0 means default. | int | 0 |
|
||||||
| scroll_button_lock | If the scroll button lock is enabled, the button does not need to be held down. Pressing and releasing the button once enables the button lock, the button is now considered logically held down. Pressing and releasing the button a second time logically releases the button. While the button is logically held down, motion events are converted to scroll events. | bool | 0 |
|
| scroll_button_lock | If the scroll button lock is enabled, the button does not need to be held down. Pressing and releasing the button toggles the button lock, which logically holds the button down or releases it. While the button is logically held down, motion events are converted to scroll events. | bool | 0 |
|
||||||
| scroll_factor | Multiplier added to scroll movement for external mice. Note that there is a separate setting for [touchpad scroll_factor](#touchpad). | float | 1.0 |
|
| scroll_factor | Multiplier added to scroll movement for external mice. Note that there is a separate setting for [touchpad scroll_factor](#touchpad). | float | 1.0 |
|
||||||
| natural_scroll | Inverts scrolling direction. When enabled, scrolling moves content directly instead of manipulating a scrollbar. | bool | false |
|
| natural_scroll | Inverts scrolling direction. When enabled, scrolling moves content directly, rather than manipulating a scrollbar. | bool | false |
|
||||||
| follow_mouse | Specify if and how cursor movement should affect window focus. See the note below. [0/1/2/3] | int | 1 |
|
| follow_mouse | Specify if and how cursor movement should affect window focus. See the note below. [0/1/2/3] | int | 1 |
|
||||||
| mouse_refocus | If disabled and `follow_mouse=1` then mouse focus will not switch to the hovered window unless the mouse crosses a window boundary. | bool | true |
|
| mouse_refocus | If disabled, mouse focus won't switch to the hovered window unless the mouse crosses a window boundary when `follow_mouse=1`. | bool | true |
|
||||||
| float_switch_override_focus | If enabled (1 or 2), focus will change to the window under the cursor when changing from tiled-to-floating and vice versa. If 2, focus will also follow mouse on float-to-float switches. | int | 1 |
|
| float_switch_override_focus | If enabled (1 or 2), focus will change to the window under the cursor when changing from tiled-to-floating and vice versa. If 2, focus will also follow mouse on float-to-float switches. | int | 1 |
|
||||||
| special_fallthrough | if enabled, having only floating windows in the special workspace will not block focusing windows in the regular workspace. | bool | false |
|
| special_fallthrough | if enabled, having only floating windows in the special workspace will not block focusing windows in the regular workspace. | bool | false |
|
||||||
| off_window_axis_events | Handles axis events around (gaps/border for tiled, dragarea/border for floated) a focused window. `0` ignores axis events `1` sends out-of-bound coordinates `2` fakes pointer coordinates to the closest point inside the window `3` warps the cursor to the closest point inside the window | int | 1 |
|
| off_window_axis_events | Handles axis events around (gaps/border for tiled, dragarea/border for floated) a focused window. `0` ignores axis events `1` sends out-of-bound coordinates `2` fakes pointer coordinates to the closest point inside the window `3` warps the cursor to the closest point inside the window | int | 1 |
|
||||||
|
@ -226,7 +226,7 @@ For switchable keyboard configurations, take a look at
|
||||||
|
|
||||||
`custom <step> <points...>`
|
`custom <step> <points...>`
|
||||||
|
|
||||||
for example `custom 200 0.0 0.5`
|
Example: `custom 200 0.0 0.5`
|
||||||
|
|
||||||
#### `scroll_points`
|
#### `scroll_points`
|
||||||
|
|
||||||
|
@ -234,7 +234,7 @@ NOTE: Only works when `accel_profile` is set to `custom`.
|
||||||
|
|
||||||
`<step> <points...>`
|
`<step> <points...>`
|
||||||
|
|
||||||
For example `0.2 0.0 0.5 1 1.2 1.5`
|
Example: `0.2 0.0 0.5 1 1.2 1.5`
|
||||||
|
|
||||||
To mimic the Windows acceleration curves, take a look at
|
To mimic the Windows acceleration curves, take a look at
|
||||||
[this script](https://gist.github.com/fufexan/de2099bc3086f3a6c83d61fc1fcc06c9).
|
[this script](https://gist.github.com/fufexan/de2099bc3086f3a6c83d61fc1fcc06c9).
|
||||||
|
@ -252,7 +252,7 @@ _Subcategory `input:touchpad:`_
|
||||||
| name | description | type | default |
|
| name | description | type | default |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| disable_while_typing | Disable the touchpad while typing. | bool | true |
|
| disable_while_typing | Disable the touchpad while typing. | bool | true |
|
||||||
| natural_scroll | Inverts scrolling direction. When enabled, scrolling moves content directly instead of manipulating a scrollbar. | bool | false |
|
| natural_scroll | Inverts scrolling direction. When enabled, scrolling moves content directly, rather than manipulating a scrollbar. | bool | false |
|
||||||
| scroll_factor | Multiplier applied to the amount of scroll movement. | float | 1.0 |
|
| scroll_factor | Multiplier applied to the amount of scroll movement. | float | 1.0 |
|
||||||
| middle_button_emulation | Sending LMB and RMB simultaneously will be interpreted as a middle click. This disables any touchpad area that would normally send a middle click based on location. [libinput#middle-button-emulation](https://wayland.freedesktop.org/libinput/doc/latest/middle-button-emulation.html) | bool | false |
|
| middle_button_emulation | Sending LMB and RMB simultaneously will be interpreted as a middle click. This disables any touchpad area that would normally send a middle click based on location. [libinput#middle-button-emulation](https://wayland.freedesktop.org/libinput/doc/latest/middle-button-emulation.html) | bool | false |
|
||||||
| tap_button_map | Sets the tap button mapping for touchpad button emulation. Can be one of `lrm` (default) or `lmr` (Left, Middle, Right Buttons). [lrm/lmr] | str | \[\[Empty\]\] |
|
| tap_button_map | Sets the tap button mapping for touchpad button emulation. Can be one of `lrm` (default) or `lmr` (Left, Middle, Right Buttons). [lrm/lmr] | str | \[\[Empty\]\] |
|
||||||
|
@ -267,8 +267,8 @@ _Subcategory `input:touchdevice:`_
|
||||||
|
|
||||||
| name | description | type | default |
|
| name | description | type | default |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| transform | transform the input from touchdevices. The possible transformations are the same as [those of the monitors](../Monitors/#rotating) | int | 0 |
|
| transform | Transform the input from touchdevices. The possible transformations are the same as [those of the monitors](../Monitors/#rotating) | int | 0 |
|
||||||
| output | the monitor to bind touch devices. The default is autodetection. To stop autotection use an empty string or the "\[\[Empty\]\]" value. | string | \[\[Auto\]\] |
|
| output | The monitor to bind touch devices. The default is auto-detection. To stop auto-detection, use an empty string or the "\[\[Empty\]\]" value. | string | \[\[Auto\]\] |
|
||||||
| enabled | Whether input is enabled for touch devices. | bool | true |
|
| enabled | Whether input is enabled for touch devices. | bool | true |
|
||||||
|
|
||||||
#### Tablet
|
#### Tablet
|
||||||
|
@ -326,7 +326,7 @@ _Subcategory `group:groupbar:`_
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| enabled | enables groupbars | bool | true |
|
| enabled | enables groupbars | bool | true |
|
||||||
| font_family | font used to display groupbar titles | string | Sans |
|
| font_family | font used to display groupbar titles | string | Sans |
|
||||||
| font_size | font size for the above | int | 8 |
|
| font_size | font size of groupbar title | int | 8 |
|
||||||
| gradients | enables gradients | bool | true |
|
| gradients | enables gradients | bool | true |
|
||||||
| height | height of the groupbar | int | 14 |
|
| height | height of the groupbar | int | 14 |
|
||||||
| priority | sets the decoration priority for groupbars | int | 3 |
|
| priority | sets the decoration priority for groupbars | int | 3 |
|
||||||
|
@ -342,12 +342,12 @@ _Subcategory `group:groupbar:`_
|
||||||
|
|
||||||
| name | description | type | default |
|
| name | description | type | default |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| disable_hyprland_logo | disables the random hyprland logo / anime girl background. :( | bool | false |
|
| disable_hyprland_logo | disables the random Hyprland logo / anime girl background. :( | bool | false |
|
||||||
| disable_splash_rendering | disables the hyprland splash rendering. (requires a monitor reload to take effect) | bool | false |
|
| disable_splash_rendering | disables the Hyprland splash rendering. (requires a monitor reload to take effect) | bool | false |
|
||||||
| col.splash | Changes the color of the splash text (requires a monitor reload to take effect). | color | 0xffffffff |
|
| col.splash | Changes the color of the splash text (requires a monitor reload to take effect). | color | 0xffffffff |
|
||||||
| splash_font_family | Changes the font used to render the splash text, selected from system fonts (requires a monitor reload to take effect). | string | Sans |
|
| splash_font_family | Changes the font used to render the splash text, selected from system fonts (requires a monitor reload to take effect). | string | Sans |
|
||||||
| force_default_wallpaper | Enforce any of the 3 default wallpapers. Setting this to `0` or `1` disables the anime background. `-1` means "random". [-1/0/1/2] | int | -1 |
|
| force_default_wallpaper | Enforce any of the 3 default wallpapers. Setting this to `0` or `1` disables the anime background. `-1` means "random". [-1/0/1/2] | int | -1 |
|
||||||
| vfr | controls the VFR status of hyprland. Heavily recommended to leave on true to conserve resources. | bool | true |
|
| vfr | controls the VFR status of Hyprland. Heavily recommended to leave enabled to conserve resources. | bool | true |
|
||||||
| vrr | controls the VRR (Adaptive Sync) of your monitors. 0 - off, 1 - on, 2 - fullscreen only [0/1/2] | int | 0 |
|
| vrr | controls the VRR (Adaptive Sync) of your monitors. 0 - off, 1 - on, 2 - fullscreen only [0/1/2] | int | 0 |
|
||||||
| mouse_move_enables_dpms | If DPMS is set to off, wake up the monitors if the mouse moves. | bool | false |
|
| mouse_move_enables_dpms | If DPMS is set to off, wake up the monitors if the mouse moves. | bool | false |
|
||||||
| key_press_enables_dpms | If DPMS is set to off, wake up the monitors if a key is pressed. | bool | false |
|
| key_press_enables_dpms | If DPMS is set to off, wake up the monitors if a key is pressed. | bool | false |
|
||||||
|
@ -367,7 +367,7 @@ _Subcategory `group:groupbar:`_
|
||||||
| suppress_portal_warnings | disables warnings about incompatible portal implementations. | bool | false |
|
| suppress_portal_warnings | disables warnings about incompatible portal implementations. | bool | false |
|
||||||
| render_ahead_of_time | [Warning: buggy] starts rendering _before_ your monitor displays a frame in order to lower latency | bool | false |
|
| render_ahead_of_time | [Warning: buggy] starts rendering _before_ your monitor displays a frame in order to lower latency | bool | false |
|
||||||
| render_ahead_safezone | how many ms of safezone to add to rendering ahead of time. Recommended 1-2. | int | 1 |
|
| render_ahead_safezone | how many ms of safezone to add to rendering ahead of time. Recommended 1-2. | int | 1 |
|
||||||
| cursor_zoom_factor | the factor to zoom by around the cursor. AKA. Magnifying glass. Minimum 1.0 (meaning no zoom) | float | 1.0 |
|
| cursor_zoom_factor | the factor to zoom by around the cursor. Like a magnifying glass. Minimum 1.0 (meaning no zoom) | float | 1.0 |
|
||||||
| cursor_zoom_rigid | whether the zoom should follow the cursor rigidly (cursor is always centered if it can be) or loosely | bool | false |
|
| cursor_zoom_rigid | whether the zoom should follow the cursor rigidly (cursor is always centered if it can be) or loosely | bool | false |
|
||||||
| allow_session_lock_restore | if true, will allow you to restart a lockscreen app in case it crashes (red screen of death) | bool | false |
|
| allow_session_lock_restore | if true, will allow you to restart a lockscreen app in case it crashes (red screen of death) | bool | false |
|
||||||
| background_color | change the background color. (requires enabled `disable_hyprland_logo`) | color | 0x111111 |
|
| background_color | change the background color. (requires enabled `disable_hyprland_logo`) | color | 0x111111 |
|
||||||
|
@ -380,7 +380,7 @@ _Subcategory `group:groupbar:`_
|
||||||
| name | description | type | default |
|
| name | description | type | default |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| pass_mouse_when_bound | if disabled, will not pass the mouse events to apps / dragging windows around if a keybind has been triggered. | bool | false |
|
| pass_mouse_when_bound | if disabled, will not pass the mouse events to apps / dragging windows around if a keybind has been triggered. | bool | false |
|
||||||
| scroll_event_delay | in ms, how many ms to wait after a scroll event to allow to pass another one for the binds. | int | 300 |
|
| scroll_event_delay | in ms, how many ms to wait after a scroll event to allow passing another one for the binds. | int | 300 |
|
||||||
| workspace_back_and_forth | If enabled, an attempt to switch to the currently focused workspace will instead switch to the previous workspace. Akin to i3's _auto_back_and_forth_. | bool | false |
|
| workspace_back_and_forth | If enabled, an attempt to switch to the currently focused workspace will instead switch to the previous workspace. Akin to i3's _auto_back_and_forth_. | bool | false |
|
||||||
| allow_workspace_cycles | If enabled, workspaces don't forget their previous workspace, so cycles can be created by switching to the first workspace in a sequence, then endlessly going to the previous workspace. | bool | false |
|
| allow_workspace_cycles | If enabled, workspaces don't forget their previous workspace, so cycles can be created by switching to the first workspace in a sequence, then endlessly going to the previous workspace. | bool | false |
|
||||||
| workspace_center_on | Whether switching workspaces should center the cursor on the workspace (0) or on the last active window for that workspace (1) | int | 0 |
|
| workspace_center_on | Whether switching workspaces should center the cursor on the workspace (0) or on the last active window for that workspace (1) | int | 0 |
|
||||||
|
@ -422,7 +422,7 @@ Only for developers.
|
||||||
| manual_crash | set to 1 and then back to 0 to crash Hyprland. | int | 0 |
|
| manual_crash | set to 1 and then back to 0 to crash Hyprland. | int | 0 |
|
||||||
| suppress_errors | if true, do not display config file parsing errors. | bool | false |
|
| suppress_errors | if true, do not display config file parsing errors. | bool | false |
|
||||||
| watchdog_timeout | sets the timeout in seconds for watchdog to abort processing of a signal of the main thread. Set to 0 to disable. | int | 5 |
|
| watchdog_timeout | sets the timeout in seconds for watchdog to abort processing of a signal of the main thread. Set to 0 to disable. | int | 5 |
|
||||||
| disable_scale_checks | disables verifying of the scale factors. Will result in pixel alignment and rounding errors. | bool | false |
|
| disable_scale_checks | disables verification of the scale factors. Will result in pixel alignment and rounding errors. | bool | false |
|
||||||
| error_limit | limits the number of displayed config file parsing errors. | int | 5 |
|
| error_limit | limits the number of displayed config file parsing errors. | int | 5 |
|
||||||
|
|
||||||
### More
|
### More
|
||||||
|
|
|
@ -50,16 +50,16 @@ windowrulev2 = float,class:(kitty),title:(kitty)
|
||||||
|
|
||||||
{{< callout type=info >}}
|
{{< callout type=info >}}
|
||||||
|
|
||||||
In the case of dynamic window titles such as browser windows keep in mind how
|
In the case of dynamic window titles such as browser windows, keep in mind how
|
||||||
powerful regex is.
|
powerful regex is.
|
||||||
|
|
||||||
for example a window rule of:
|
For example, a window rule of:
|
||||||
`windowrule=opacity 0.3 override 0.3 override,title:(.*)(- Youtube)$` will match
|
`windowrule=opacity 0.3 override 0.3 override,title:(.*)(- Youtube)$` will match
|
||||||
_any_ window that contains a string of "- Youtube" after any other text. This
|
_any_ window that contains a string of "- Youtube" after any other text. This
|
||||||
could be multiple browser windows or other applications that contain the string
|
could be multiple browser windows or other applications that contain the string
|
||||||
for any reason.
|
for any reason.
|
||||||
|
|
||||||
for the `windowrulev2 = float,class:(kitty),title:(kitty)` example, the
|
For the `windowrulev2 = float,class:(kitty),title:(kitty)` example, the
|
||||||
`class:(kitty)` `WINDOW` field is what keeps the window rule specific to kitty
|
`class:(kitty)` `WINDOW` field is what keeps the window rule specific to kitty
|
||||||
terminals.
|
terminals.
|
||||||
|
|
||||||
|
@ -83,11 +83,6 @@ onworkspace - id, name: and name, or workspace selector (see Workspace Rules)
|
||||||
|
|
||||||
Keep in mind that you _have_ to declare at least one field, but not all.
|
Keep in mind that you _have_ to declare at least one field, but not all.
|
||||||
|
|
||||||
{{< callout type=warning >}}
|
|
||||||
Please beware that `hyprctl clients` display the field as **initialClass** while the WINDOW field in the configuration uses `initialclass`.
|
|
||||||
|
|
||||||
{{< /callout >}}
|
|
||||||
|
|
||||||
{{< callout type=info >}}
|
{{< callout type=info >}}
|
||||||
|
|
||||||
To get more information about a window's class, title, XWayland status or its
|
To get more information about a window's class, title, XWayland status or its
|
||||||
|
@ -95,11 +90,17 @@ size, you can use `hyprctl clients`.
|
||||||
|
|
||||||
{{< /callout >}}
|
{{< /callout >}}
|
||||||
|
|
||||||
|
{{< callout type=warning >}}
|
||||||
|
|
||||||
|
Please beware that `hyprctl clients` will display the field as **initialClass** while the WINDOW field in the configuration uses `initialclass`.
|
||||||
|
|
||||||
|
{{< /callout >}}
|
||||||
|
|
||||||
## Rules
|
## Rules
|
||||||
|
|
||||||
### Static rules
|
### Static rules
|
||||||
|
|
||||||
Static rules are evaluated once at window open and never again.
|
Static rules are evaluated once when the window is opened and never again.
|
||||||
|
|
||||||
| Rule | Description |
|
| Rule | Description |
|
||||||
| ---- | ----------- |
|
| ---- | ----------- |
|
||||||
|
@ -134,7 +135,7 @@ Dynamic rules are re-evaluated every time a property changes.
|
||||||
| ---- | ----------- |
|
| ---- | ----------- |
|
||||||
| opacity \[a\] | additional opacity multiplier. Options for a: `float` -> sets an overall opacity OR `float float` -> sets activeopacity and inactiveopacity respectively, OR `float float float` -> sets activeopacity, inactiveopacity and fullscreenopacity respectively. |
|
| opacity \[a\] | additional opacity multiplier. Options for a: `float` -> sets an overall opacity OR `float float` -> sets activeopacity and inactiveopacity respectively, OR `float float float` -> sets activeopacity, inactiveopacity and fullscreenopacity respectively. |
|
||||||
| opaque | forces the window to be opaque (can be toggled with the toggleopaque dispatcher) |
|
| opaque | forces the window to be opaque (can be toggled with the toggleopaque dispatcher) |
|
||||||
| forcergbx | makes hyprland ignore the alpha channel of all the window's surfaces, effectively making it _actually, fully 100% opaque_ |
|
| forcergbx | makes Hyprland ignore the alpha channel of all the window's surfaces, effectively making it _actually, fully 100% opaque_ |
|
||||||
| animation \[style\] (\[opt\]) | forces an animation onto a window, with a selected opt. Opt is optional. |
|
| animation \[style\] (\[opt\]) | forces an animation onto a window, with a selected opt. Opt is optional. |
|
||||||
| rounding \[x\] | forces the application to have X pixels of rounding, ignoring the set default (in `decoration:rounding`). Has to be an int. |
|
| rounding \[x\] | forces the application to have X pixels of rounding, ignoring the set default (in `decoration:rounding`). Has to be an int. |
|
||||||
| minsize \[x\] \[y\] | sets the minimum size (x,y -> int) |
|
| minsize \[x\] \[y\] | sets the minimum size (x,y -> int) |
|
||||||
|
@ -197,7 +198,7 @@ windowrulev2 = stayfocused, class:^(pinentry-) # fix pinentry losing focus
|
||||||
|
|
||||||
Rules that are marked as _Dynamic_ will be reevaluated if the matching property
|
Rules that are marked as _Dynamic_ will be reevaluated if the matching property
|
||||||
of the window changes. For instance, if a rule is defined that changes the
|
of the window changes. For instance, if a rule is defined that changes the
|
||||||
bordercolor of a window when it is floating, then the bordercolor will change to
|
`bordercolor` of a window when it is floating, then the `bordercolor` will change to
|
||||||
the requested color when it is set to floating, and revert to the default color
|
the requested color when it is set to floating, and revert to the default color
|
||||||
when it is tiled again.
|
when it is tiled again.
|
||||||
|
|
||||||
|
@ -209,26 +210,26 @@ windowrulev2 = opacity 0.8 0.8,class:^(kitty)$
|
||||||
windowrulev2 = opacity 0.5 0.5,floating:1
|
windowrulev2 = opacity 0.5 0.5,floating:1
|
||||||
```
|
```
|
||||||
|
|
||||||
-> all non-fullscreen kitty windows will have opacity 0.8, except if they are floating. Then
|
Here, all non-fullscreen kitty windows will have `opacity 0.8`, except if they are floating.
|
||||||
they will have opacity 0.5. -> all non-fullscreen floating windows will have opacity 0.5.
|
Otherwise, they will have `opacity 0.5`. The rest of the non-fullscreen floating windows will have `opacity 0.5`.
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
windowrulev2 = opacity 0.5 0.5,floating:1
|
windowrulev2 = opacity 0.5 0.5,floating:1
|
||||||
windowrulev2 = opacity 0.8 0.8,class:^(kitty)$
|
windowrulev2 = opacity 0.8 0.8,class:^(kitty)$
|
||||||
```
|
```
|
||||||
|
|
||||||
-> all kitty windows will have opacity 0.8, also if they are floating. -> all
|
Here, all kitty windows will have `opacity 0.8`, even if they are floating.
|
||||||
other floating windows will have opacity 0.5.
|
The rest of the floating windows will have `opacity 0.5`.
|
||||||
|
|
||||||
{{< callout type=info >}}
|
{{< callout type=info >}}
|
||||||
|
|
||||||
Opacity is a PRODUCT of all opacities by default. E.g. `active_opacity` to 0.5 and
|
Opacity is a PRODUCT of all opacities by default. For example, setting `activeopacity` to 0.5
|
||||||
windowrule opacity to 0.5 will result in a total opacity 0.25. You are allowed
|
and `opacity` to 0.5 will result in a total opacity of 0.25. You are allowed
|
||||||
to set opacities over 1, but any opacity product over 1 will cause graphical
|
to set opacities over 1, but any opacity product over 1 will cause graphical
|
||||||
glitches. E.g. `0.5 * 2 = 1`, and it will be fine, `0.5 * 4` will cause
|
glitches. For example, using `0.5 * 2 = 1` is fine, but `0.5 * 4 = 2` will cause
|
||||||
graphical glitches. You can use `override` after an opacity to make it override
|
graphical glitches. You can put `override` after an opacity value to override it to an exact value
|
||||||
instead of a multiplier. E.g. to set active and inactive opacity to 0.8,
|
rather than a multiplier. For example, to set active and inactive opacity to 0.8,
|
||||||
and make fullscreen fully opaque regardless of other opacity rules:
|
and make fullscreen windows fully opaque regardless of other opacity rules:
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
windowrulev2 = opacity 0.8 override 0.8 override 1.0 override,^(kitty)$
|
windowrulev2 = opacity 0.8 override 0.8 override 1.0 override,^(kitty)$
|
||||||
|
@ -238,8 +239,8 @@ windowrulev2 = opacity 0.8 override 0.8 override 1.0 override,^(kitty)$
|
||||||
|
|
||||||
## Layer Rules
|
## Layer Rules
|
||||||
|
|
||||||
Some things in wayland are not windows, but layers. That includes for example
|
Some things in Wayland are not windows, but layers. That includes, for example:
|
||||||
most launchers, your status bar or wallpaper.
|
app launchers, status bars, or wallpapers.
|
||||||
|
|
||||||
Those have specific rules separate from windows:
|
Those have specific rules separate from windows:
|
||||||
|
|
||||||
|
@ -256,7 +257,7 @@ in `hyprctl layers`) or `address` is an address in the form of `address:0x[hex]`
|
||||||
|
|
||||||
| rule | description |
|
| rule | description |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| unset | removes all layerRules previously set for a select namespace regex. Please note it has to match _exactly_ |
|
| unset | removes all layerRules previously set for a select namespace regex. Please note it has to match _exactly_. |
|
||||||
| noanim | disables animations |
|
| noanim | disables animations |
|
||||||
| blur | enables blur for the layer |
|
| blur | enables blur for the layer |
|
||||||
| blurpopups | enables blur for the popups |
|
| blurpopups | enables blur for the popups |
|
||||||
|
|
|
@ -51,7 +51,7 @@ workspace=w[tg1-4],shadow:false
|
||||||
|
|
||||||
| Rule | Description | type |
|
| Rule | Description | type |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| monitor:[m] | Binds a workspace to a monitor See [syntax](#syntax) and [Monitors](../Monitors). | string |
|
| monitor:[m] | Binds a workspace to a monitor. See [syntax](#syntax) and [Monitors](../Monitors). | string |
|
||||||
| default:[b] | Whether this workspace should be the default workspace for the given monitor | bool |
|
| default:[b] | Whether this workspace should be the default workspace for the given monitor | bool |
|
||||||
| gapsin:[x] | Set the gaps between windows (equivalent to [General->gaps_in](../Variables#general)) | int |
|
| gapsin:[x] | Set the gaps between windows (equivalent to [General->gaps_in](../Variables#general)) | int |
|
||||||
| gapsout:[x] | Set the gaps between windows and monitor edges (equivalent to [General->gaps_out](../Variables#general)) | int |
|
| gapsout:[x] | Set the gaps between windows and monitor edges (equivalent to [General->gaps_out](../Variables#general)) | int |
|
||||||
|
|
|
@ -3,7 +3,7 @@ weight: 12
|
||||||
title: Connect
|
title: Connect
|
||||||
---
|
---
|
||||||
|
|
||||||
These are the links to official hyprland-related spaces or profiles:
|
These are the links to official Hyprland-related spaces or profiles:
|
||||||
|
|
||||||
## Profiles
|
## Profiles
|
||||||
|
|
||||||
|
@ -19,4 +19,4 @@ Matrix: `#hyprland:matrix.vaxry.net`
|
||||||
## Other
|
## Other
|
||||||
|
|
||||||
hyprland.org git instance: [code.hyprland.org](https://code.hyprland.org/)<br/>
|
hyprland.org git instance: [code.hyprland.org](https://code.hyprland.org/)<br/>
|
||||||
hyprland website: [hyprland.org](https://hyprland.org/)<br/>
|
Hyprland website: [hyprland.org](https://hyprland.org/)<br/>
|
||||||
|
|
|
@ -39,7 +39,7 @@ With that, you can build in debug, go to the debugging tab and hit
|
||||||
|
|
||||||
`make debug`
|
`make debug`
|
||||||
|
|
||||||
attach and profile in your preferred way.
|
Attach and profile in your preferred way.
|
||||||
|
|
||||||
### Meson
|
### Meson
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ This code can go in the `package` attribute of the NixOS/Home Manager modules.
|
||||||
|
|
||||||
## Running
|
## Running
|
||||||
|
|
||||||
when running Hyprland in Debug mode, the config is
|
When running Hyprland in Debug mode, the config is
|
||||||
`~/.config/hypr/hyprlandd.conf` and the logs can be found at
|
`~/.config/hypr/hyprlandd.conf` and the logs can be found at
|
||||||
`/tmp/hypr/[INSTANCE SIGNATURE]/hyprlandd.log`.
|
`/tmp/hypr/[INSTANCE SIGNATURE]/hyprlandd.log`.
|
||||||
|
|
||||||
|
|
|
@ -5,15 +5,13 @@ title: Crashes and Bugs
|
||||||
|
|
||||||
## Getting the log
|
## Getting the log
|
||||||
|
|
||||||
If you are in a TTY, and the hyprland session that crashed was the last one you
|
If you are in a TTY, and the Hyprland session that crashed was the last one you
|
||||||
launched, the log will be printed with
|
launched, the log can be printed with
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cat /tmp/hypr/$(ls -t /tmp/hypr/ | head -n 1)/hyprland.log
|
cat /tmp/hypr/$(ls -t /tmp/hypr/ | head -n 1)/hyprland.log
|
||||||
```
|
```
|
||||||
|
|
||||||
feel free to save it to a file, save, copy, etc.
|
|
||||||
|
|
||||||
if you are in a Hyprland session, and you want the log of the last session, use
|
if you are in a Hyprland session, and you want the log of the last session, use
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
@ -62,7 +60,7 @@ issue on GitHub.
|
||||||
|
|
||||||
If requested, this is the deepest level of memory issue debugging possible.
|
If requested, this is the deepest level of memory issue debugging possible.
|
||||||
|
|
||||||
_Do this in the tty, with no Hyprland instances running_
|
_Do this in the tty, with no Hyprland instances running._
|
||||||
|
|
||||||
Clone hyprland: `git clone --recursive https://github.com/hyprwm/Hyprland`
|
Clone hyprland: `git clone --recursive https://github.com/hyprwm/Hyprland`
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ title: FAQ
|
||||||
This just means they are running through XWayland, which physically cannot scale
|
This just means they are running through XWayland, which physically cannot scale
|
||||||
by fractional amounts.
|
by fractional amounts.
|
||||||
|
|
||||||
To force them to run in wayland-native mode, see
|
To force them to run in native Wayland mode, see
|
||||||
[the Master Tutorial](../Getting-Started/Master-Tutorial/#force-apps-to-use-wayland).
|
[the Master Tutorial](../Getting-Started/Master-Tutorial/#force-apps-to-use-wayland).
|
||||||
|
|
||||||
If they can't, see [the XWayland page](../Configuring/XWayland).
|
If they can't, see [the XWayland page](../Configuring/XWayland).
|
||||||
|
@ -32,8 +32,7 @@ _[wiki page](../Crashes-and-Bugs)_
|
||||||
|
|
||||||
### Me cursor no render?
|
### Me cursor no render?
|
||||||
|
|
||||||
Are you on NVIDIA? If so, then you have been naughty and haven't listened
|
If you are on NVIDIA, you may need to use the `WLR_NO_HARDWARE_CURSORS=1` environment
|
||||||
to my tips on other pages. Use the `WLR_NO_HARDWARE_CURSORS=1` environment
|
|
||||||
variable.
|
variable.
|
||||||
|
|
||||||
### My external monitor is blank / doesn't render / receives no signal (laptop)
|
### My external monitor is blank / doesn't render / receives no signal (laptop)
|
||||||
|
@ -62,9 +61,9 @@ external monitor through the iGPU.
|
||||||
|
|
||||||
### How do I screenshot?
|
### How do I screenshot?
|
||||||
|
|
||||||
Install `grim` and `slurp`
|
Install `grim` and `slurp`.
|
||||||
|
|
||||||
Use a keybind (or execute) `grim -g "$(slurp)"`, select a region. A screenshot
|
Use a keybind (or execute) `grim -g "$(slurp)"`, and select a region. A screenshot
|
||||||
will pop into your `~/Pictures/` (You can configure grim and slurp, see their
|
will pop into your `~/Pictures/` (You can configure grim and slurp, see their
|
||||||
GitHub pages).
|
GitHub pages).
|
||||||
|
|
||||||
|
@ -122,7 +121,7 @@ update the package. Paru has been problematic with updating before, use Yay.
|
||||||
|
|
||||||
### How do I screen lock?
|
### How do I screen lock?
|
||||||
|
|
||||||
Use a wayland-compatible locking utility using WLR protocols, e.g. `swaylock`.
|
Use a Wayland-compatible locking utility using WLR protocols, e.g. `swaylock`.
|
||||||
|
|
||||||
### How do I change me mouse cursor?
|
### How do I change me mouse cursor?
|
||||||
|
|
||||||
|
@ -158,7 +157,7 @@ Waybar has a set of caveats or settings that you need to be aware of. See
|
||||||
|
|
||||||
### How do I autostart my favorite apps?
|
### How do I autostart my favorite apps?
|
||||||
|
|
||||||
Using the window rules to assign apps to workspace you can open a bunch of
|
Using the window rules to assign apps to workspaces, you can open a bunch of
|
||||||
applications on various workspaces. The following method will start these apps
|
applications on various workspaces. The following method will start these apps
|
||||||
silently (i.e. without the flickering from workspace to workspace).
|
silently (i.e. without the flickering from workspace to workspace).
|
||||||
|
|
||||||
|
@ -173,7 +172,7 @@ exec-once=[workspace 4 silent] firefox
|
||||||
|
|
||||||
### How do I move my favorite workspaces to a new monitor when I plug it in?
|
### How do I move my favorite workspaces to a new monitor when I plug it in?
|
||||||
|
|
||||||
if you want workspaces to automatically go to a monitor upon connection, use the
|
If you want workspaces to automatically go to a monitor upon connection, use the
|
||||||
following:
|
following:
|
||||||
|
|
||||||
In hyprland.conf:
|
In hyprland.conf:
|
||||||
|
@ -199,7 +198,7 @@ handle() {
|
||||||
socat - "UNIX-CONNECT:/tmp/hypr/${HYPRLAND_INSTANCE_SIGNATURE}/.socket2.sock" | while read -r line; do handle "$line"; done
|
socat - "UNIX-CONNECT:/tmp/hypr/${HYPRLAND_INSTANCE_SIGNATURE}/.socket2.sock" | while read -r line; do handle "$line"; done
|
||||||
```
|
```
|
||||||
|
|
||||||
if you want workspaces 1 2 4 5 to go to monitor 1 when connecting it.
|
This makes workspaces 1, 2, 4, and 5 go to monitor 1 when connecting it.
|
||||||
|
|
||||||
Please note this requires `socat` to be installed.
|
Please note this requires `socat` to be installed.
|
||||||
|
|
||||||
|
@ -247,10 +246,10 @@ env = XDG_CURRENT_DESKTOP,Hyprland
|
||||||
|
|
||||||
### How to disable middle-click paste?
|
### How to disable middle-click paste?
|
||||||
|
|
||||||
You can simply intercept the middle-click action all together, via hyprland
|
You can simply intercept the middle-click action all together via Hyprland
|
||||||
binds for example. The drawbacks to this solution are that 1. it disables the
|
binds. However, there are drawbacks to this solution. It disables the
|
||||||
rest of the functionality of the middle-click action, such as auto scroll,
|
rest of the functionality of the middle-click action, such as auto scroll,
|
||||||
closing browser tabs, etc., and 2. many applications (such as kitty) manually
|
closing browser tabs, etc. Additionally, many applications (such as kitty) manually
|
||||||
intercept the middle-click events and bind them to paste from the primary buffer
|
intercept the middle-click events and bind them to paste from the primary buffer
|
||||||
themselves, bypassing the solution altogether. For this solution, add this bind
|
themselves, bypassing the solution altogether. For this solution, add this bind
|
||||||
to your config:
|
to your config:
|
||||||
|
@ -272,7 +271,7 @@ your config with `exec-once`, for example) to achieve this:
|
||||||
to the primary buffer, `wl-copy -p ''` clears the primary buffer)
|
to the primary buffer, `wl-copy -p ''` clears the primary buffer)
|
||||||
|
|
||||||
**As you can see, however, this creates an endless loop (found copied text ->
|
**As you can see, however, this creates an endless loop (found copied text ->
|
||||||
copy -> found copied text...). Therefore this method is not recommended.**
|
copy -> found copied text...). Therefore, this method is not recommended.**
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
@ -298,9 +297,9 @@ You most likely have multiple portal impls / an impl is failing to launch.
|
||||||
|
|
||||||
### My screenshot utilities won't work with multiple screens
|
### My screenshot utilities won't work with multiple screens
|
||||||
|
|
||||||
Some programs like flameshot (currently) has limited wayland support so on most
|
Some programs like Flameshot (currently) have limited Wayland support, so on most
|
||||||
Wayland compositors, you will have to do few tweaks. For Hyprland, you can add
|
Wayland compositors, you will have to do a few tweaks. For Hyprland, you can add
|
||||||
these window rules to your config to make said programs work with both of your
|
these window rules to your config to make these programs work with both of your
|
||||||
screens.
|
screens.
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
|
@ -318,7 +317,7 @@ First, install and run `wev`, then press `SUPER`. If you see a key press event
|
||||||
followed by an instant key release event, then it's likely your `SUPER` key is
|
followed by an instant key release event, then it's likely your `SUPER` key is
|
||||||
set to single press mode.
|
set to single press mode.
|
||||||
|
|
||||||
On most laptops this can be fixed by pressing `FN+SUPER` and verified in `wev`.
|
On most laptops, this can be fixed by pressing `FN+SUPER` and verified in `wev`.
|
||||||
You should be able to hold `SUPER` and not see an instant release event. In case
|
You should be able to hold `SUPER` and not see an instant release event. In case
|
||||||
`FN+SUPER` doesn't work, consult your laptop's manual.
|
`FN+SUPER` doesn't work, consult your laptop's manual.
|
||||||
|
|
||||||
|
@ -335,12 +334,10 @@ bind = SUPER,Escape,submap,reset
|
||||||
submap = reset
|
submap = reset
|
||||||
```
|
```
|
||||||
|
|
||||||
set `MOD` and `KEY` to desired values.
|
Set `MOD` and `KEY` to desired values.
|
||||||
|
|
||||||
By pressing the selected combo you will enter a mode where hyprland ignores your
|
By pressing the selected combo, you will enter a mode where Hyprland ignores your
|
||||||
keybinds and passes them on to the vm.
|
keybinds and passes them on to the VM. Pressing `SUPER + Escape` will leave that mode.
|
||||||
|
|
||||||
Then, pressing `SUPER + Escape` will leave that mode.
|
|
||||||
|
|
||||||
### Some of my drop-down/pop-up windows in apps disappear/don't open at cursor position
|
### Some of my drop-down/pop-up windows in apps disappear/don't open at cursor position
|
||||||
|
|
||||||
|
@ -385,9 +382,9 @@ to use the first solution if opening at the cursor position.
|
||||||
|
|
||||||
### Steam's file picker no worky
|
### Steam's file picker no worky
|
||||||
|
|
||||||
On instances where you have a steam library on another drive that you have to
|
On instances where you have a Steam library on another drive that you have to
|
||||||
add, Hyprland's file picker would not normally appear when selecting a directory
|
add, Hyprland's file picker would not normally appear when selecting a directory
|
||||||
from steam.
|
from Steam.
|
||||||
|
|
||||||
Steam has its own file picker, however, it's not functional. Install
|
Steam has its own file picker, however, it's not functional. Install
|
||||||
`xdg-desktop-portal-gtk` to show the desktop's file picker.
|
`xdg-desktop-portal-gtk` to show the desktop's file picker.
|
||||||
|
|
|
@ -19,14 +19,14 @@ might have **major** issues running Hyprland.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Installing Hyprland is very easy. Either you install it from your local package
|
Installing Hyprland is very easy. Simply install it with your package manager
|
||||||
provider (if they provide pkgs for Hyprland) or you install/build it yourself.
|
(if there is a Hyprland package available) or install/build it yourself.
|
||||||
|
|
||||||
{{< callout >}}
|
{{< callout >}}
|
||||||
|
|
||||||
This project is under development and is constantly changing. If you want to
|
This project is under development and is constantly changing. If you want to
|
||||||
keep up to date with the latest commits, please consider updating your packages
|
keep up to date with the latest commits, please consider updating your packages
|
||||||
with `yay -Syu --devel`, or your other preferred package manager.
|
with `yay -Syu --devel`, or your preferred package manager.
|
||||||
|
|
||||||
{{< /callout >}}
|
{{< /callout >}}
|
||||||
|
|
||||||
|
|
|
@ -101,7 +101,7 @@ If your cursor does not appear, then see
|
||||||
|
|
||||||
## Themes
|
## Themes
|
||||||
|
|
||||||
Since this is not a full fledged Desktop Environment, you will need to use tools
|
Since this is not a fully-fledged Desktop Environment, you will need to use tools
|
||||||
such as `lxappearance` and `nwg-look` (recommended) for GTK, and `qt5ct` /
|
such as `lxappearance` and `nwg-look` (recommended) for GTK, and `qt5ct` /
|
||||||
`qt6ct` for their respective Qt versions. Some older applications may also
|
`qt6ct` for their respective Qt versions. Some older applications may also
|
||||||
require `qt4ct`.
|
require `qt4ct`.
|
||||||
|
|
|
@ -3,7 +3,7 @@ weight: 4
|
||||||
title: Hypr Ecosystem
|
title: Hypr Ecosystem
|
||||||
---
|
---
|
||||||
|
|
||||||
This wiki section hosts docs for various hypr* projects. See a list bere:
|
This wiki section hosts docs for various hypr* projects. See a list here:
|
||||||
|
|
||||||
{{< callout type=info >}}
|
{{< callout type=info >}}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ over the widely used xcursor.
|
||||||
|
|
||||||
## Hyprcursor themes
|
## Hyprcursor themes
|
||||||
|
|
||||||
You will need to obtain those yourself. If you are on the discord server, see `#hyprcursor-themes`.
|
You will need to obtain those yourself. If you are on the Discord server, see `#hyprcursor-themes`.
|
||||||
|
|
||||||
Put your theme(s) in `~/.local/share/icons` or `~/.icons`
|
Put your theme(s) in `~/.local/share/icons` or `~/.icons`
|
||||||
|
|
||||||
|
@ -53,5 +53,5 @@ icons and XCursors in both `/usr/share/icons` and `~/.icons`.
|
||||||
|
|
||||||
## I don't want to use hyprcursor
|
## I don't want to use hyprcursor
|
||||||
|
|
||||||
If you don't have any hyprcursor themes installed, hyprland will fall back to XCursor, and use
|
If you don't have any hyprcursor themes installed, Hyprland will fall back to XCursor, and use
|
||||||
whatever you define with `XCURSOR_THEME` and `XCURSOR_SIZE`.
|
whatever you define with `XCURSOR_THEME` and `XCURSOR_SIZE`.
|
||||||
|
|
|
@ -3,13 +3,13 @@ weight: 3
|
||||||
title: hypridle
|
title: hypridle
|
||||||
---
|
---
|
||||||
|
|
||||||
hypridle is hyprland's idle management daemon.
|
hypridle is Hyprland's idle management daemon.
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
Configuration is done via the config file at `~/.config/hypr/hypridle.conf`. A
|
Configuration is done via the config file at `~/.config/hypr/hypridle.conf`. A
|
||||||
config file is required; hypridle won't run without one. To run hypridle at
|
config file is required; hypridle won't run without one. To run hypridle at
|
||||||
startup edit `hyprland.conf` and add: `exec-once = hypridle`.
|
startup, edit `hyprland.conf` and add: `exec-once = hypridle`.
|
||||||
|
|
||||||
### General
|
### General
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ title: hyprlock
|
||||||
---
|
---
|
||||||
|
|
||||||
hyprlock is a simple, yet fast, multi-threaded and GPU-accelerated screen lock
|
hyprlock is a simple, yet fast, multi-threaded and GPU-accelerated screen lock
|
||||||
for hyprland.
|
for Hyprland.
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
|
@ -21,12 +21,12 @@ Variables in the `general` category:
|
||||||
| grace | the amount of seconds for which the lockscreen will unlock on mouse movement. | int | 0 |
|
| grace | the amount of seconds for which the lockscreen will unlock on mouse movement. | int | 0 |
|
||||||
| no_fade_in | disables the fadein animation | bool | false |
|
| no_fade_in | disables the fadein animation | bool | false |
|
||||||
| no_fade_out | disables the fadeout animation | bool | false |
|
| no_fade_out | disables the fadeout animation | bool | false |
|
||||||
| ignore_empty_input | skips validation when empty password is provided | bool | false |
|
| ignore_empty_input | skips validation when no password is provided | bool | false |
|
||||||
| pam_module | sets the pam module used for authentication. If the module isn't found in `/etc/pam.d`, "su" will be used as a fallback | str | hyprlock |
|
| pam_module | sets the pam module used for authentication. If the module isn't found in `/etc/pam.d`, "su" will be used as a fallback | str | hyprlock |
|
||||||
|
|
||||||
## Keyboard Shortcuts and Actions
|
## Keyboard Shortcuts and Actions
|
||||||
|
|
||||||
The following keys and key-combinations describe hyprlocks default behaviour:
|
The following keys and key-combinations describe hyprlock's default behaviour:
|
||||||
| input | description |
|
| input | description |
|
||||||
| -- | -- |
|
| -- | -- |
|
||||||
| ESC | Clear password buffer |
|
| ESC | Clear password buffer |
|
||||||
|
@ -62,7 +62,7 @@ widget_name {
|
||||||
|
|
||||||
### Shadowable
|
### Shadowable
|
||||||
|
|
||||||
Some widgets are shadowable, aka. can have a shadow. For those widgets, you get:
|
Some widgets are shadowable, meaning they can have a shadow. For those widgets, you get:
|
||||||
| variable | description | type | default |
|
| variable | description | type | default |
|
||||||
| -- | -- | -- | -- |
|
| -- | -- | -- | -- |
|
||||||
| shadow_passes | passes for shadow, 0 to disable | int | 0 |
|
| shadow_passes | passes for shadow, 0 to disable | int | 0 |
|
||||||
|
@ -188,7 +188,7 @@ input-field {
|
||||||
|
|
||||||
#### Colors information
|
#### Colors information
|
||||||
|
|
||||||
When `outline_thickness` set to `0`, color of the inner box will be changed instead of outer.
|
When `outline_thickness` set to `0`, the color of the inner box will be changed instead of the outer.
|
||||||
|
|
||||||
Behaviour of `swap_font_color` is as follows:
|
Behaviour of `swap_font_color` is as follows:
|
||||||
- `outline_thickness` is `0`: if set, font color will be swapped with inner one on color change events (e.g. Caps-lock on or password check).
|
- `outline_thickness` is `0`: if set, font color will be swapped with inner one on color change events (e.g. Caps-lock on or password check).
|
||||||
|
|
|
@ -3,15 +3,15 @@ weight: 1
|
||||||
title: hyprpaper
|
title: hyprpaper
|
||||||
---
|
---
|
||||||
|
|
||||||
hyprpaper is a fast, IPC-controlled wallpaper utility for hyprland.
|
hyprpaper is a fast, IPC-controlled wallpaper utility for Hyprland.
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
The config file is located at `~/.config/hypr/hyprpaper.conf`. It is not
|
The config file is located at `~/.config/hypr/hyprpaper.conf`. It is not
|
||||||
required.
|
required.
|
||||||
|
|
||||||
Configuration is done via `preload`s, which _load_ an image into memory. Then,
|
Configuration is done using `preload`, which _loads_ an image into memory. Then,
|
||||||
you use `wallpaper` keywords to apply the preloaded image to your monitor(s):
|
the `wallpaper` keyword is used to apply the preloaded image to your monitor(s):
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
preload = /home/me/amongus.png
|
preload = /home/me/amongus.png
|
||||||
|
@ -20,8 +20,8 @@ wallpaper = DP-1,/home/me/amongus.png
|
||||||
|
|
||||||
For wallpaper keywords:
|
For wallpaper keywords:
|
||||||
|
|
||||||
You can also `unload` preloaded images to free up memory. `unload all` and
|
You can use `unload` to unload preloaded images. You can also specify `unload all`
|
||||||
`unload unused` are a thing too.
|
to unload all images or `unload unused` to unload images that aren't being used.
|
||||||
|
|
||||||
To run hyprpaper at startup edit `hyprland.conf` and add:
|
To run hyprpaper at startup edit `hyprland.conf` and add:
|
||||||
`exec-once = hyprpaper`.
|
`exec-once = hyprpaper`.
|
||||||
|
|
|
@ -3,7 +3,7 @@ weight: 2
|
||||||
title: hyprpicker
|
title: hyprpicker
|
||||||
---
|
---
|
||||||
|
|
||||||
hyprpicker is a neat utility for picking a color your screen on hyprland.
|
hyprpicker is a neat utility for picking a color your screen on Hyprland.
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
|
|
|
@ -69,15 +69,15 @@ e.g.: `workspace>>2`
|
||||||
|
|
||||||
{{< callout type=warning >}}
|
{{< callout type=warning >}}
|
||||||
|
|
||||||
A fullscreen event is not guaranteed to fire on/off once in succession. A window
|
A fullscreen event is not guaranteed to fire on/off once in succession. Some windows
|
||||||
might do for example 3 requests to be fullscreen'd, which would result in 3
|
may fire multiple requests to be fullscreened, resulting in multiple
|
||||||
fullscreen events.
|
fullscreen events.
|
||||||
|
|
||||||
{{< /callout >}}
|
{{< /callout >}}
|
||||||
|
|
||||||
## How to use socket2 with bash
|
## How to use socket2 with bash
|
||||||
|
|
||||||
example script using socket2 events with bash and `socat`:
|
Example script using socket2 events with bash and `socat`:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
|
@ -157,12 +157,12 @@ wayland.windowManager.hyprland.plugins = [
|
||||||
];
|
];
|
||||||
```
|
```
|
||||||
|
|
||||||
For examples on how to build Hyprland plugins using nix see the
|
For examples on how to build Hyprland plugins using Nix, see the
|
||||||
[official plugins](https://github.com/hyprwm/hyprland-plugins).
|
[official plugins](https://github.com/hyprwm/hyprland-plugins).
|
||||||
|
|
||||||
## Fixing problems with themes
|
## Fixing problems with themes
|
||||||
|
|
||||||
If your themes for mouse cursor, icons or windows don't load correctly, try
|
If your themes for mouse cursors, icons or windows don't load correctly, try
|
||||||
setting them with `home.pointerCursor` and `gtk.theme`, which enable a bunch of
|
setting them with `home.pointerCursor` and `gtk.theme`, which enable a bunch of
|
||||||
compatibility options that should make the themes load in all situations.
|
compatibility options that should make the themes load in all situations.
|
||||||
|
|
||||||
|
@ -198,7 +198,7 @@ gtk = {
|
||||||
|
|
||||||
## Programs don't work in systemd services, but do on the terminal
|
## Programs don't work in systemd services, but do on the terminal
|
||||||
|
|
||||||
This problem is related to Systemd not importing the environment by default. It
|
This problem is related to systemd not importing the environment by default. It
|
||||||
will not have knowledge of `PATH`, so it cannot run the commands in the
|
will not have knowledge of `PATH`, so it cannot run the commands in the
|
||||||
services. This is the most common with user-configured services such as
|
services. This is the most common with user-configured services such as
|
||||||
`hypridle` or `swayidle`.
|
`hypridle` or `swayidle`.
|
||||||
|
|
|
@ -137,5 +137,5 @@ in {
|
||||||
|
|
||||||
## Fixing problems with themes
|
## Fixing problems with themes
|
||||||
|
|
||||||
If your themes for mouse cursor, icons or windows don't load correctly, see the
|
If your themes for mouse cursors, icons or windows don't load correctly, see the
|
||||||
relevant section in [Hyprland on Home Manager](../Hyprland-on-Home-Manager).
|
relevant section in [Hyprland on Home Manager](../Hyprland-on-Home-Manager).
|
||||||
|
|
|
@ -47,13 +47,13 @@ nix profile install github:guibou/nixGL --impure
|
||||||
|
|
||||||
`--impure` is needed due to `nixGL`'s reliance on hardware information.
|
`--impure` is needed due to `nixGL`'s reliance on hardware information.
|
||||||
|
|
||||||
From now on, you can run Hyprland by invoking it with nixGL
|
From now on, you can run Hyprland by invoking it with nixGL.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
nixGL Hyprland
|
nixGL Hyprland
|
||||||
```
|
```
|
||||||
|
|
||||||
or by creating a wrapper script that runs the above command inside.
|
Or by creating a wrapper script that runs the above command inside.
|
||||||
|
|
||||||
## Upgrading
|
## Upgrading
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ See [XWayland](../../Configuring/XWayland).
|
||||||
## Using Nix repl
|
## Using Nix repl
|
||||||
|
|
||||||
If you're using Nix (and not NixOS or Home Manager) and you want to override,
|
If you're using Nix (and not NixOS or Home Manager) and you want to override,
|
||||||
you can do it like this
|
you can do it like this:
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
$ nix repl
|
$ nix repl
|
||||||
|
|
|
@ -10,20 +10,17 @@ have had success with the instructions on this page.
|
||||||
|
|
||||||
You can choose between the proprietary
|
You can choose between the proprietary
|
||||||
[Nvidia drivers](https://wiki.archlinux.org/title/NVIDIA) or the open source
|
[Nvidia drivers](https://wiki.archlinux.org/title/NVIDIA) or the open source
|
||||||
[Nouveau driver](https://wiki.archlinux.org/title/Nouveau). Under the
|
[Nouveau driver](https://wiki.archlinux.org/title/Nouveau). For the
|
||||||
proprietary Nvidia drivers category, there are 3 of them: the current driver
|
proprietary drivers, there are 3 of them: the current driver
|
||||||
named 'nvidia' (or 'nvidia-dkms' to use with custom linux kernels) which is
|
named 'nvidia' (or 'nvidia-dkms' to use with custom linux kernels) which is
|
||||||
under active development, the legacy drivers 'nvidia-3xxxx' for older cards
|
under active development, the legacy drivers 'nvidia-3xxxx' for older cards
|
||||||
which Nvidia no longer actively supports, and the 'nvidia-open' driver which is
|
which Nvidia no longer actively supports, and the 'nvidia-open' driver which is
|
||||||
currently an alpha stage attempt to open source a part of their closed source
|
currently an alpha stage attempt to open source a part of their closed source
|
||||||
driver for newer cards.
|
driver for newer cards.
|
||||||
|
|
||||||
If your card is supported by the proprietary nvidia drivers, there is a very
|
If the proprietary drivers support your graphics card, it's generally recommended
|
||||||
high chance that you will most likely want to use those. Benefits include but
|
to use them instead, as it includes significantly improved gaming performance
|
||||||
are not limited to:
|
and power management for recent GPUs.
|
||||||
|
|
||||||
- (Much) better gaming performance
|
|
||||||
- Better power management on recent GPUs
|
|
||||||
|
|
||||||
However, keep in mind that if the proprietary Nvidia drivers do not work
|
However, keep in mind that if the proprietary Nvidia drivers do not work
|
||||||
properly on your computer, the Nouveau driver might work fine. This will
|
properly on your computer, the Nouveau driver might work fine. This will
|
||||||
|
@ -54,12 +51,10 @@ similarly between the two.
|
||||||
Next up, you need to enable modeset for nvidia, this can be done via editing
|
Next up, you need to enable modeset for nvidia, this can be done via editing
|
||||||
the kernel paramaters for your bootloader.
|
the kernel paramaters for your bootloader.
|
||||||
|
|
||||||
For people using [systemd-boot](https://wiki.archlinux.org/title/systemd-boot)
|
If you use [systemd-boot](https://wiki.archlinux.org/title/systemd-boot)
|
||||||
you can do this by adding `nvidia_drm.modeset=1` to the end of
|
you can do this adding `nvidia_drm.modeset=1` to the end of
|
||||||
`/boot/loader/entries/arch.conf`.
|
`/boot/loader/entries/arch.conf`. If you use
|
||||||
|
[grub](https://wiki.archlinux.org/title/GRUB) you can do this by adding
|
||||||
For people using
|
|
||||||
[GRUB](https://wiki.archlinux.org/title/GRUB) you can do this by adding
|
|
||||||
`nvidia_drm.modeset=1` to the end of `GRUB_CMDLINE_LINUX_DEFAULT=` in
|
`nvidia_drm.modeset=1` to the end of `GRUB_CMDLINE_LINUX_DEFAULT=` in
|
||||||
`/etc/default/grub`, then running `sudo grub-mkconfig -o /boot/grub/grub.cfg`.
|
`/etc/default/grub`, then running `sudo grub-mkconfig -o /boot/grub/grub.cfg`.
|
||||||
|
|
||||||
|
@ -207,8 +202,8 @@ to `1`, which should automatically configure Electron / CEF apps to run with nat
|
||||||
Wayland for you.
|
Wayland for you.
|
||||||
|
|
||||||
While it is best to have as many things as possible running natively in
|
While it is best to have as many things as possible running natively in
|
||||||
wayland, the root cause of the flickering will likely be solved
|
Wayland, the root cause of the flickering will likely be solved
|
||||||
in the 555 series of nvidia driver updates.
|
in the 555 series of Nvidia driver updates.
|
||||||
|
|
||||||
### Fixing flickering in XWayland games specifically
|
### Fixing flickering in XWayland games specifically
|
||||||
|
|
||||||
|
@ -233,11 +228,11 @@ More info about explicit sync is available
|
||||||
|
|
||||||
### Fixing other random flickering (nuclear method)
|
### Fixing other random flickering (nuclear method)
|
||||||
|
|
||||||
Do note that this forces performance mode to be active, resulting in
|
Note that this forces performance mode to be active, resulting in
|
||||||
increased power-consumption (from 22W idle on an RTX 3070TI, to 74W).
|
increased power-consumption (from 22W idle on a RTX 3070TI, to 74W).
|
||||||
|
|
||||||
This is probably not needed for most users, so only apply these 'fixes' if
|
This may not be needed for some users. Only apply these 'fixes' if you
|
||||||
you in-fact do notice flickering artifacts from being idle for ~5 seconds.
|
do notice flickering artifacts from being idle for ~5 seconds.
|
||||||
|
|
||||||
Make a new file at `/etc/modprobe.d/nvidia.conf` and paste this in:
|
Make a new file at `/etc/modprobe.d/nvidia.conf` and paste this in:
|
||||||
|
|
||||||
|
@ -249,7 +244,7 @@ Reboot your computer and it should be working.
|
||||||
|
|
||||||
If it does not, try:
|
If it does not, try:
|
||||||
|
|
||||||
- lowering your monitors' refresh rate, as this can stop the flickering
|
- lowering your monitor's refresh rate, as this can stop the flickering
|
||||||
altogether
|
altogether
|
||||||
- using the [Nouveau driver](https://wiki.archlinux.org/title/Nouveau) as
|
- using the [Nouveau driver](https://wiki.archlinux.org/title/Nouveau) as
|
||||||
mentioned above
|
mentioned above
|
||||||
|
@ -260,7 +255,7 @@ Enable the services `nvidia-suspend.service`, `nvidia-hibernate.service` and
|
||||||
`nvidia-resume.service`, they will be started by systemd when needed.
|
`nvidia-resume.service`, they will be started by systemd when needed.
|
||||||
|
|
||||||
Add `nvidia.NVreg_PreserveVideoMemoryAllocations=1` to your kernel parameters if
|
Add `nvidia.NVreg_PreserveVideoMemoryAllocations=1` to your kernel parameters if
|
||||||
you don't have it already.
|
you haven't already.
|
||||||
|
|
||||||
{{< callout >}}
|
{{< callout >}}
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ Let's look at a simple example:
|
||||||
void Events::listener_monitorFrame(void* owner, void* data)
|
void Events::listener_monitorFrame(void* owner, void* data)
|
||||||
```
|
```
|
||||||
|
|
||||||
will be the function we want to hook. `Events::` is a namespace, not a class, so
|
This will be the function we want to hook. `Events::` is a namespace, not a class, so
|
||||||
this is just a plain function.
|
this is just a plain function.
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
|
@ -100,11 +100,11 @@ _will not_ change during runtime, so it's a good idea to make the lookups
|
||||||
|
|
||||||
Why use that instead of e.g. `&CCompositor::focusWindow`? Two reasons:
|
Why use that instead of e.g. `&CCompositor::focusWindow`? Two reasons:
|
||||||
|
|
||||||
1 - less breakage. Whenever someone updates hyprland, that address might become
|
1. Less breakage. Whenever someone updates Hyprland, that address might become
|
||||||
invalid. findFunctionsByName is more resilient. As long as the function exists,
|
invalid. findFunctionsByName is more resilient. As long as the function exists,
|
||||||
it will be found.
|
it will be found.
|
||||||
|
|
||||||
2 - error handling. The method array contains, besides the address, the
|
2. Error handling. The method array contains, besides the address, the
|
||||||
signatures. You can verify those to make 100% sure you got the right function,
|
signatures. You can verify those to make 100% sure you got the right function,
|
||||||
or throw an error if it was not found.
|
or throw an error if it was not found.
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ We also create a global pointer for our handle:
|
||||||
inline HANDLE PHANDLE = nullptr;
|
inline HANDLE PHANDLE = nullptr;
|
||||||
```
|
```
|
||||||
|
|
||||||
we will initialize it in our plugin init function later. It serves as an
|
We will initialize it in our plugin init function later. It serves as an
|
||||||
internal "ID" of our plugin.
|
internal "ID" of our plugin.
|
||||||
|
|
||||||
Then, there is the API version method:
|
Then, there is the API version method:
|
||||||
|
@ -100,7 +100,7 @@ APICALL EXPORT void PLUGIN_EXIT() {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
The first method will be called when your plugin gets initialized (loaded)
|
The first method will be called when your plugin gets initialized (loaded).
|
||||||
|
|
||||||
You can, and probably should, initialize everything you may want to use in
|
You can, and probably should, initialize everything you may want to use in
|
||||||
there.
|
there.
|
||||||
|
@ -130,13 +130,13 @@ for you.
|
||||||
In order to make your life easier, it's a good idea to work on a nested debug
|
In order to make your life easier, it's a good idea to work on a nested debug
|
||||||
Hyprland session.
|
Hyprland session.
|
||||||
|
|
||||||
Enter your Hyprland directory and run `make debug`
|
Enter your Hyprland directory and run `make debug`.
|
||||||
|
|
||||||
Make a copy of your config in `~/.config/hypr` called `hyprlandd.conf`.
|
Make a copy of your config in `~/.config/hypr` called `hyprlandd.conf`.
|
||||||
|
|
||||||
Remove _all_ `exec=` or `exec-once=` directives from your config.
|
Remove _all_ `exec=` or `exec-once=` directives from your config.
|
||||||
|
|
||||||
_recommended_: Change the modifier for your keybinds (e.g. `SUPER` -> `ALT`)
|
_recommended_: Change the modifier for your keybinds (e.g. `SUPER` -> `ALT`).
|
||||||
|
|
||||||
Launch the output `Hyprland` binary in `./build/` _when logged into a Hyprland
|
Launch the output `Hyprland` binary in `./build/` _when logged into a Hyprland
|
||||||
session_.
|
session_.
|
||||||
|
|
|
@ -43,21 +43,21 @@ Find a repository you want to install plugins from. As an example, we will use
|
||||||
hyprpm add https://github.com/hyprwm/hyprland-plugins
|
hyprpm add https://github.com/hyprwm/hyprland-plugins
|
||||||
```
|
```
|
||||||
|
|
||||||
once it finishes, you can list your installed plugins with
|
Once it finishes, you can list your installed plugins with:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
hyprpm list
|
hyprpm list
|
||||||
```
|
```
|
||||||
|
|
||||||
and enable or disable them via `hyprpm enable name` and `hyprpm disable name`.
|
Then, enable or disable them via `hyprpm enable name` and `hyprpm disable name`.
|
||||||
|
|
||||||
In order for the plugins to be loaded into hyprland, run `hyprpm reload`.
|
In order for the plugins to be loaded into Hyprland, run `hyprpm reload`.
|
||||||
|
|
||||||
You can add `exec-once = hyprpm reload -n` to your hyprland config to have
|
You can add `exec-once = hyprpm reload -n` to your Hyprland config to have
|
||||||
plugins loaded at startup. `-n` will make hyprpm send a notification if anything
|
plugins loaded at startup. `-n` will make hyprpm send a notification if anything
|
||||||
goes wrong (e.g. update needed)
|
goes wrong (e.g. update needed)
|
||||||
|
|
||||||
In order update your plugins, run `hyprpm update`.
|
To update your plugins, run `hyprpm update`.
|
||||||
|
|
||||||
For all options of `hyprpm`, run `hyprpm -h`.
|
For all options of `hyprpm`, run `hyprpm -h`.
|
||||||
|
|
||||||
|
@ -65,8 +65,8 @@ For all options of `hyprpm`, run `hyprpm -h`.
|
||||||
|
|
||||||
Different plugins may have different build methods, refer to their instructions.
|
Different plugins may have different build methods, refer to their instructions.
|
||||||
|
|
||||||
If you don't have hyprland headers installed, clone hyprland, checkout to your
|
If you don't have Hyprland headers installed, clone Hyprland, checkout to your
|
||||||
version, build hyprland, and run `sudo make installheaders`. Then build your
|
version, build Hyprland, and run `sudo make installheaders`. Then build your
|
||||||
plugin(s).
|
plugin(s).
|
||||||
|
|
||||||
To load plugins manually, use `hyprctl plugin load path` !NOTE: Path HAS TO BE
|
To load plugins manually, use `hyprctl plugin load path` !NOTE: Path HAS TO BE
|
||||||
|
@ -91,7 +91,7 @@ See [here](../Development/Getting-Started).
|
||||||
### Where do I find plugins?
|
### Where do I find plugins?
|
||||||
|
|
||||||
You can find our featured plugins at [hyprland.org/plugins](https://hyprland.org/plugins/).
|
You can find our featured plugins at [hyprland.org/plugins](https://hyprland.org/plugins/).
|
||||||
You can also see a list at [awesome-hyprland](https://github.com/hyprland-community/awesome-hyprland#plugins). Note it may not be complete.
|
You can also see a list at [awesome-hyprland](https://github.com/hyprland-community/awesome-hyprland#plugins). Note that it may not be complete.
|
||||||
Lastly, you can try searching around github for the `"hyprland plugin"` keyword.
|
Lastly, you can try searching around github for the `"hyprland plugin"` keyword.
|
||||||
|
|
||||||
### Are plugins safe?
|
### Are plugins safe?
|
||||||
|
|
|
@ -9,7 +9,7 @@ replacements for them:
|
||||||
## Discord
|
## Discord
|
||||||
|
|
||||||
- [WebCord](https://github.com/SpacingBat3/WebCord) is a Discord client based on
|
- [WebCord](https://github.com/SpacingBat3/WebCord) is a Discord client based on
|
||||||
the latest Electron, with support for Wayland Ozone platform, as well as
|
the latest Electron, with support for the Wayland Ozone platform, as well as
|
||||||
PipeWire screensharing. It has tons of great features and tries not to
|
PipeWire screensharing. It has tons of great features and tries not to
|
||||||
infringe on the Discord ToS.
|
infringe on the Discord ToS.
|
||||||
|
|
||||||
|
|
|
@ -40,11 +40,11 @@ For the config you can check out [DistroTube's Configuring Emacs](https://gitlab
|
||||||
|
|
||||||
## Anyrun
|
## Anyrun
|
||||||
|
|
||||||
Anyrun is a wayland native krunner-like runner, made with customizability in
|
Anyrun is a Wayland-native krunner-like runner, made with customizability in
|
||||||
mind. It is modular and extensible through plugins. It can be used as an app launcher with its Applications Plugin.
|
mind. It is modular and extensible through plugins. It can be used as an app launcher with its Applications Plugin.
|
||||||
[GitHub](https://github.com/Kirottu/anyrun)
|
[GitHub](https://github.com/Kirottu/anyrun)
|
||||||
|
|
||||||
## Walker
|
## Walker
|
||||||
|
|
||||||
Walker is an extensible wayland-native runner with various built-in modules (applications, runner, hyprland windows, websearch [as of 2024-03-15]). It can be run as a service for faster startups.
|
Walker is an extensible Wayland-native runner with various built-in modules (applications, runner, hyprland windows, websearch [as of 2024-03-15]). It can be run as a service for faster startups.
|
||||||
[GitHub](https://github.com/abenz1267/walker)
|
[GitHub](https://github.com/abenz1267/walker)
|
||||||
|
|
|
@ -5,8 +5,8 @@ title: Clipboard managers
|
||||||
|
|
||||||
_Starting method:_ manual (`exec-once`)
|
_Starting method:_ manual (`exec-once`)
|
||||||
|
|
||||||
Clipboard Managers are useful tools that allows one to manage their copied
|
Clipboard Managers provide a convenient way to organize and access previously
|
||||||
items, be-it texts or images.
|
copied content, including both text and images.
|
||||||
|
|
||||||
Some common ones used are `copyq`, `clipman` and `cliphist`.
|
Some common ones used are `copyq`, `clipman` and `cliphist`.
|
||||||
|
|
||||||
|
@ -16,11 +16,11 @@ Some common ones used are `copyq`, `clipman` and `cliphist`.
|
||||||
`cliphist` - Utilizes Wayland with `wl-clipboard` and can store both images and
|
`cliphist` - Utilizes Wayland with `wl-clipboard` and can store both images and
|
||||||
text [Github](https://github.com/sentriz/cliphist)
|
text [Github](https://github.com/sentriz/cliphist)
|
||||||
|
|
||||||
`wl-clip-persist` - When we copy something on Wayland (using wl-clipboard) and
|
`wl-clip-persist` - When copying something on Wayland, the copied data remains
|
||||||
close the application we copied from, the copied data disappears from the
|
in the clipboard until the application that was copied from is closed.
|
||||||
clipboard and we cannot paste it anymore. So to fix this problem we can use a
|
After that, the data disappears and can no longer be pasted.
|
||||||
program called as `wl-clip-persist` which will preserve the data in the
|
To fix this problem, you can use `wl-clip-persist` which will preserve the data
|
||||||
clipboard after the application is closed.
|
in the clipboard after the application is closed.
|
||||||
[Github](https://github.com/Linus789/wl-clip-persist)
|
[Github](https://github.com/Linus789/wl-clip-persist)
|
||||||
|
|
||||||
## copyq
|
## copyq
|
||||||
|
@ -31,8 +31,8 @@ Start by adding the following lines to your `~/.config/hypr/hyprland.conf`
|
||||||
exec-once = copyq --start-server
|
exec-once = copyq --start-server
|
||||||
```
|
```
|
||||||
|
|
||||||
If your `copyq`'s main window cannot close/hide properly, try to enable its
|
If the main window of `copyq` cannot close/hide properly, try to enable its
|
||||||
"Hide main window" option in Layout configuration tab in Preferences dialog.
|
"Hide main window" option in the Layout configuration tab in the Preferences dialog.
|
||||||
|
|
||||||
## cliphist
|
## cliphist
|
||||||
|
|
||||||
|
@ -44,10 +44,10 @@ exec-once = wl-paste --type text --watch cliphist store #Stores only text data
|
||||||
exec-once = wl-paste --type image --watch cliphist store #Stores only image data
|
exec-once = wl-paste --type image --watch cliphist store #Stores only image data
|
||||||
```
|
```
|
||||||
|
|
||||||
Do note that any of the above lines can be disabled based on your needs
|
Note that any of the above lines can be disabled based on your needs.
|
||||||
|
|
||||||
To bind `cliphist` to a hotkey and display it under `rofi` or `dmenu` or `wofi`,
|
To bind `cliphist` to a hotkey and display it under `rofi` or `dmenu` or `wofi`,
|
||||||
again head over to `~/.config/hypr/hyprland.conf`
|
you can edit it in `~/.config/hypr/hyprland.conf`.
|
||||||
|
|
||||||
### For `rofi` users
|
### For `rofi` users
|
||||||
|
|
||||||
|
@ -67,9 +67,9 @@ bind = SUPER, V, exec, cliphist list | dmenu | cliphist decode | wl-copy
|
||||||
bind = SUPER, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy
|
bind = SUPER, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy
|
||||||
```
|
```
|
||||||
|
|
||||||
The binds mention above correspond to SUPER+V to access the clipboard history
|
The binds above allow `SUPER + V` to be used to access the clipboard history.
|
||||||
|
|
||||||
For further info, please refer to the repository mentioned above
|
For further info, please refer to the repository mentioned above.
|
||||||
|
|
||||||
## clipman
|
## clipman
|
||||||
|
|
||||||
|
@ -79,16 +79,15 @@ Start by adding the following line to your `~/.config/hypr/hyprland.conf`
|
||||||
exec-once = wl-paste -t text --watch clipman store --no-persist
|
exec-once = wl-paste -t text --watch clipman store --no-persist
|
||||||
```
|
```
|
||||||
|
|
||||||
If you wish to use it as a primary clipboard manager, use this instead
|
If you wish to use it as a primary clipboard manager, use this instead:
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
exec-once = wl-paste -p -t text --watch clipman store -P --histpath="~/.local/share/clipman-primary.json"
|
exec-once = wl-paste -p -t text --watch clipman store -P --histpath="~/.local/share/clipman-primary.json"
|
||||||
```
|
```
|
||||||
|
|
||||||
And also make sure to create a file named `clipman-primary.json` in
|
Ensure that `~/.local/share/clipman-primary.json` is already created.
|
||||||
`~/.local/share/clipman-primary.json`
|
|
||||||
|
|
||||||
Now bind the `clipman` like this:
|
Now you can bind `clipman` like this:
|
||||||
|
|
||||||
### For `rofi` users
|
### For `rofi` users
|
||||||
|
|
||||||
|
@ -108,5 +107,5 @@ bind = SUPER, V, exec, clipman pick -t dmenu
|
||||||
bind = SUPER, V, exec, clipman pick -t wofi
|
bind = SUPER, V, exec, clipman pick -t wofi
|
||||||
```
|
```
|
||||||
|
|
||||||
So on and so forth. For further information, please refer to the repository
|
...and so on. For further information, please refer to the repository
|
||||||
mentioned above
|
mentioned above.
|
||||||
|
|
|
@ -6,7 +6,7 @@ title: Color pickers
|
||||||
Color pickers are useful for quickly grabbing a color of _something_ on your
|
Color pickers are useful for quickly grabbing a color of _something_ on your
|
||||||
screen.
|
screen.
|
||||||
|
|
||||||
It's preferred using _hyrpwm_'s own solution, which, so far, seems to be the
|
It's preferred using _hyprwm_'s own solution, which, so far, seems to be the
|
||||||
only one that doesn't suck.
|
only one that doesn't suck.
|
||||||
|
|
||||||
## Hyprpicker
|
## Hyprpicker
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
The hypr ecosystem is a collection of apps developed by me (aka hyprwm)
|
The hypr ecosystem is a collection of apps developed by me (aka hyprwm)
|
||||||
that are designed for hyprland and to integrate with it as nicely as possible.
|
that are designed for Hyprland and to integrate with it as nicely as possible.
|
||||||
|
|
||||||
## hyprpaper
|
## hyprpaper
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ A cool, fast, IPC-controlled wallpaper utility.
|
||||||
|
|
||||||
## hyprpicker
|
## hyprpicker
|
||||||
|
|
||||||
A neat color picker for your hyprland desktop.
|
A neat color picker for your Hyprland desktop.
|
||||||
|
|
||||||
[Github link](https://github.com/hyprwm/hyprpicker)
|
[Github link](https://github.com/hyprwm/hyprpicker)
|
||||||
|
|
||||||
|
@ -19,13 +19,13 @@ A must-have, see [The wiki page](../xdg-desktop-portal-hyprland)
|
||||||
|
|
||||||
## hypridle
|
## hypridle
|
||||||
|
|
||||||
An idle management daemon for hyprland, to set stuff like lockscreen or monitor poweroff when idle.
|
An idle management daemon for Hyprland, for things like opening lock screens or powering off the monitor when idle.
|
||||||
|
|
||||||
[Github link](https://github.com/hyprwm/hypridle)
|
[Github link](https://github.com/hyprwm/hypridle)
|
||||||
|
|
||||||
## hyprlock
|
## hyprlock
|
||||||
|
|
||||||
A simple, but fast, multithreaded, GPU-accelerated screen locker for hyprland.
|
A simple, but fast, multithreaded, GPU-accelerated screen locker for Hyprland.
|
||||||
|
|
||||||
[Github link](https://github.com/hyprwm/hyprlock)
|
[Github link](https://github.com/hyprwm/hyprlock)
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ title: Must have
|
||||||
This page documents software that is **strongly** recommended to have running
|
This page documents software that is **strongly** recommended to have running
|
||||||
for a smooth Hyprland experience.
|
for a smooth Hyprland experience.
|
||||||
|
|
||||||
DEs like Plasma or Gnome will take care of this automatically. Hyprland will
|
DEs like Plasma or GNOME will take care of this automatically. Hyprland will
|
||||||
not, as you might want to use something else.
|
not, as you might want to use something else.
|
||||||
|
|
||||||
### A notification daemon
|
### A notification daemon
|
||||||
|
@ -15,37 +15,37 @@ _Starting method:_ most likely manual (`exec-once`)
|
||||||
|
|
||||||
Many apps (e.g. Discord) may freeze without one running.
|
Many apps (e.g. Discord) may freeze without one running.
|
||||||
|
|
||||||
Use e.g. `dunst`, `mako`, `swaync`, etc.
|
Examples: `dunst`, `mako`, and `swaync`.
|
||||||
|
|
||||||
### Pipewire
|
### Pipewire
|
||||||
|
|
||||||
_Starting method:_ Automatic on Systemd, manual otherwise
|
_Starting method:_ Automatic on systemd, manual otherwise.
|
||||||
|
|
||||||
Pipewire is not necessarily required, but screensharing will not work without
|
Pipewire is not necessarily required, but screensharing will not work without
|
||||||
it.
|
it.
|
||||||
|
|
||||||
Install `pipewire` and `wireplumber` (**not** `pipewire-media-session`)
|
Install `pipewire` and `wireplumber` (**not** `pipewire-media-session`).
|
||||||
|
|
||||||
#### Non-systemd distros
|
#### Non-systemd distros
|
||||||
|
|
||||||
Since there is no truly standardized way (outside of systemd) to load PipeWire
|
Since there is no truly standardized way (outside of systemd) to load PipeWire
|
||||||
when starting a graphical shell[^1] non-systemd distros like Gentoo or Artix
|
when starting a graphical shell,[^1] non-systemd distros like Gentoo or Artix
|
||||||
provide a dedicated launcher.
|
provide a dedicated launcher.
|
||||||
|
|
||||||
It can be usually found by running `whereis <distro>-pipewire-launcher`. If such
|
It can be usually found by running `whereis <distro>-pipewire-launcher`. If such
|
||||||
file does not exist on your install please refer to your distro's documentation
|
a file does not exist on your install, please refer to your distro's documentation
|
||||||
for help.
|
for help.
|
||||||
|
|
||||||
[^1]: https://wiki.gentoo.org/wiki/PipeWire#OpenRC
|
[^1]: https://wiki.gentoo.org/wiki/PipeWire#OpenRC
|
||||||
|
|
||||||
### XDG Desktop Portal
|
### XDG Desktop Portal
|
||||||
|
|
||||||
_Starting method:_ Automatic on Systemd, manual otherwise
|
_Starting method:_ Automatic on systemd, manual otherwise.
|
||||||
|
|
||||||
XDG Desktop Portal handles a lot of stuff for your desktop, like file pickers,
|
XDG Desktop Portal handles a lot of stuff for your desktop, like file pickers,
|
||||||
screensharing, etc.
|
screensharing, etc.
|
||||||
|
|
||||||
See the [Hyprland Desktop Portal Page](../xdg-desktop-portal-hyprland)
|
See the [Hyprland Desktop Portal Page.](../xdg-desktop-portal-hyprland)
|
||||||
|
|
||||||
### Authentication Agent
|
### Authentication Agent
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ Hyprland.
|
||||||
### IPC wrappers
|
### IPC wrappers
|
||||||
|
|
||||||
[hyprland-rs](https://github.com/yavko/hyprland-rs) by _yavko_: A neat wrapper
|
[hyprland-rs](https://github.com/yavko/hyprland-rs) by _yavko_: A neat wrapper
|
||||||
for Hyprland's IPC written in Rust
|
for Hyprland's IPC written in Rust.
|
||||||
|
|
||||||
### Screen shaders/color temperature
|
### Screen shaders/color temperature
|
||||||
|
|
||||||
|
@ -38,10 +38,10 @@ swapping and scheduling screen shaders; also functions as an
|
||||||
|
|
||||||
_Starting method:_ manual ('exec-once')
|
_Starting method:_ manual ('exec-once')
|
||||||
|
|
||||||
USB Mass storage devices, like thumb drives, mobile phones, digital cameras,
|
USB mass storage devices, like thumb drives, mobile phones, digital cameras,
|
||||||
etc. do not mount automatically to the file system.
|
etc. do not mount automatically to the file system.
|
||||||
|
|
||||||
We generally have to manually mount it, often using root and `umount` to do so.
|
Typically, we have to manually mount them, often using root and `umount` to do so.
|
||||||
|
|
||||||
Many popular DEs automatically handle this by using `udisks2` wrappers.
|
Many popular DEs automatically handle this by using `udisks2` wrappers.
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ Head over to your `~/.config/hypr/hyprland.conf` and add the following lines:
|
||||||
exec-once = udiskie &
|
exec-once = udiskie &
|
||||||
```
|
```
|
||||||
|
|
||||||
What this does is launches `udiskie` and `&` argument launches it in the
|
This launches `udiskie` and the `&` argument launches it in the
|
||||||
background.
|
background.
|
||||||
|
|
||||||
[See more uses here](https://github.com/coldfix/udiskie/wiki/Usage) .
|
[See more uses here](https://github.com/coldfix/udiskie/wiki/Usage).
|
||||||
|
|
|
@ -22,16 +22,16 @@ See [the hyprland portal page](../xdg-desktop-portal-hyprland)
|
||||||
|
|
||||||
## XWayland
|
## XWayland
|
||||||
|
|
||||||
If your screensharing application is running under XWayland (like Discord,
|
If your screensharing application is running under XWayland (like Discord or
|
||||||
Skype,...), it can only see other XWayland windows and cannot share an entire
|
Skype), it can only see other XWayland windows and cannot share an entire
|
||||||
screen or a Wayland window.
|
screen or a Wayland window.
|
||||||
|
|
||||||
The KDE-team has implemented a workaround for this called
|
The KDE team has implemented a workaround for this called
|
||||||
[xwaylandvideobridge](https://invent.kde.org/system/xwaylandvideobridge). You
|
[xwaylandvideobridge](https://invent.kde.org/system/xwaylandvideobridge). You
|
||||||
can use
|
can use
|
||||||
[this AUR package](https://aur.archlinux.org/packages/xwaylandvideobridge-git)
|
[this AUR package](https://aur.archlinux.org/packages/xwaylandvideobridge-git)
|
||||||
on ArchLinux. Note that Hyprland currently doesn't support the way it tries to
|
on Arch Linux. Note that Hyprland currently doesn't support the way it tries to
|
||||||
hide the main window, so you will have to create some window-rules to achieve
|
hide the main window, so you will have to create some window rules to achieve
|
||||||
the same effect. See
|
the same effect. See
|
||||||
[this issue](https://invent.kde.org/system/xwaylandvideobridge/-/issues/1) for
|
[this issue](https://invent.kde.org/system/xwaylandvideobridge/-/issues/1) for
|
||||||
more information. For example:
|
more information. For example:
|
||||||
|
|
|
@ -21,8 +21,8 @@ For more info regarding configuration, see
|
||||||
|
|
||||||
After getting everything set up, you might want to check if Waybar is configured
|
After getting everything set up, you might want to check if Waybar is configured
|
||||||
to your liking. To launch it, simply type `waybar` into your terminal. If you
|
to your liking. To launch it, simply type `waybar` into your terminal. If you
|
||||||
would like waybar to launch alongside hyprland, you can do this by adding a line
|
would like Waybar to launch alongside Hyprland, you can do this by adding a line
|
||||||
to your hyprland configuration that reads `exec-once=waybar`
|
to your Hyprland configuration that reads `exec-once=waybar`.
|
||||||
|
|
||||||
### Waybar popups render behind the windows
|
### Waybar popups render behind the windows
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ Replace `#workspaces button.focused` with `#workspaces button.active` in
|
||||||
|
|
||||||
### Scrolling through workspaces
|
### Scrolling through workspaces
|
||||||
|
|
||||||
Since there a lot of configuration options from `sway/workspaces` are missing,
|
Since a lot of configuration options from `sway/workspaces` are missing,
|
||||||
you should deduce some of them by yourself. In the case of scrolling, it should
|
you should deduce some of them by yourself. In the case of scrolling, it should
|
||||||
look like this:
|
look like this:
|
||||||
|
|
||||||
|
@ -52,14 +52,14 @@ look like this:
|
||||||
|
|
||||||
On the `hyprland/workspaces` module, add `"on-click": "activate"`. That's the
|
On the `hyprland/workspaces` module, add `"on-click": "activate"`. That's the
|
||||||
purpose of the `sed` command used before building Waybar: the default way to
|
purpose of the `sed` command used before building Waybar: the default way to
|
||||||
select a workspace by clicking uses the `swaymsg`'s way, and thus it is required
|
select a workspace by clicking uses `swaymsg`, and thus it is required
|
||||||
to edit this function to make it work with `hyprctl`.
|
to edit this function to make it work with `hyprctl`.
|
||||||
|
|
||||||
### Window title is missing
|
### Window title is missing
|
||||||
|
|
||||||
Follow the above instructions to make sure everything is working. The prefix for
|
Follow the above instructions to make sure everything is working. The prefix for
|
||||||
the window module that provides the title is `hyprland` not `wlr`. In your
|
the window module that provides the title is `hyprland` not `wlr`. In your
|
||||||
waybar config, insert this module:
|
Waybar config, insert this module:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
"modules-center": ["hyprland/window"],
|
"modules-center": ["hyprland/window"],
|
||||||
|
@ -226,9 +226,9 @@ socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | s
|
||||||
## Hybrid
|
## Hybrid
|
||||||
|
|
||||||
Like Waybar, [Hybrid](https://github.com/vars1ty/HybridBar) is a GTK status bar
|
Like Waybar, [Hybrid](https://github.com/vars1ty/HybridBar) is a GTK status bar
|
||||||
mainly focused for wlroots compositors.
|
mainly focused on wlroots compositors.
|
||||||
|
|
||||||
You can install it from the AUR by the name `hybrid-bar`.
|
You can install it by installing `hybrid-bar` from the AUR.
|
||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
|
|
||||||
|
@ -239,12 +239,12 @@ The configuration is done through JSON, more information is available
|
||||||
|
|
||||||
After configuring HybridBar, you can launch it by typing `hybrid-bar` into your
|
After configuring HybridBar, you can launch it by typing `hybrid-bar` into your
|
||||||
terminal to try it out. It is also possible to set it to launch at start, to do
|
terminal to try it out. It is also possible to set it to launch at start, to do
|
||||||
this you can add a line to your hyprland configuration that reads
|
this you can add a line to your Hyprland configuration that reads
|
||||||
`exec-once=hybrid-bar`
|
`exec-once=hybrid-bar`
|
||||||
|
|
||||||
#### Blur
|
#### Blur
|
||||||
|
|
||||||
To activate blur, set `blurls=NAMESPACE` in your hyprland configuration, where
|
To activate blur, set `blurls=NAMESPACE` in your Hyprland configuration, where
|
||||||
`NAMESPACE` is the gtk-layer-shell namespace of your HybridBar. The default
|
`NAMESPACE` is the gtk-layer-shell namespace of your HybridBar. The default
|
||||||
namespace is `gtk-layer-shell` and can be changed in the HybridBar configuration
|
namespace is `gtk-layer-shell` and can be changed in the HybridBar configuration
|
||||||
at
|
at
|
||||||
|
|
|
@ -19,7 +19,7 @@ change, and don't want to make a config file. Get it
|
||||||
|
|
||||||
## wpaperd
|
## wpaperd
|
||||||
|
|
||||||
A bit more advanced wallpaper daemon with automatic wallpaper changing options
|
A slightly more advanced wallpaper daemon with automatic wallpaper changing options
|
||||||
and other fancy stuff. [GitHub](https://github.com/danyspin97/wpaperd).
|
and other fancy stuff. [GitHub](https://github.com/danyspin97/wpaperd).
|
||||||
|
|
||||||
## mpvpaper
|
## mpvpaper
|
||||||
|
@ -29,7 +29,7 @@ A neat mpv wrapper to play a video as your wallpaper.
|
||||||
|
|
||||||
## swww
|
## swww
|
||||||
|
|
||||||
An efficient animated wallpaper daemon for wayland, controlled at runtime, which
|
An efficient animated wallpaper daemon for Wayland, controlled at runtime, which
|
||||||
means you can change wallpapers without even needing to restart.
|
means you can change wallpapers without even needing to restart.
|
||||||
[GitHub](https://github.com/Horus645/swww)
|
[GitHub](https://github.com/Horus645/swww)
|
||||||
|
|
||||||
|
|
|
@ -6,13 +6,13 @@ title: Hyprland Desktop Portal
|
||||||
An XDG Desktop Portal (later called XDP) is a program that lets other
|
An XDG Desktop Portal (later called XDP) is a program that lets other
|
||||||
applications communicate swiftly with the compositor through D-Bus.
|
applications communicate swiftly with the compositor through D-Bus.
|
||||||
|
|
||||||
It's used for stuff like e.g. opening file pickers, screen sharing.
|
It's used for things like opening file pickers or screen sharing.
|
||||||
|
|
||||||
On Wayland, it also requires an implementation. For Hyprland, you'd usually use
|
On Wayland, it also requires an implementation. For Hyprland, you'd usually use
|
||||||
`xdg-desktop-portal-wlr` (later called XDPW)
|
`xdg-desktop-portal-wlr` (later called XDPW)
|
||||||
|
|
||||||
Unfortunately, due to various reasons the -wlr portal is inferior to the KDE or
|
Unfortunately, due to various reasons the -wlr portal is inferior to the KDE or
|
||||||
Gnome ones.
|
GNOME ones.
|
||||||
|
|
||||||
In order to bridge the gap, Hyprland has its own fork of XDPW that has more
|
In order to bridge the gap, Hyprland has its own fork of XDPW that has more
|
||||||
features, called
|
features, called
|
||||||
|
@ -22,7 +22,7 @@ features, called
|
||||||
{{< callout >}}
|
{{< callout >}}
|
||||||
|
|
||||||
You don't **need** XDPH. Hyprland will work with XDPW, but XDPH has more
|
You don't **need** XDPH. Hyprland will work with XDPW, but XDPH has more
|
||||||
features, like e.g. window sharing.
|
features, such as window sharing.
|
||||||
|
|
||||||
XDPH will work on other wlroots-based compositors, although limited to the XDPW
|
XDPH will work on other wlroots-based compositors, although limited to the XDPW
|
||||||
features (other will be disabled).
|
features (other will be disabled).
|
||||||
|
@ -114,15 +114,15 @@ XDPH doesn't implement a file picker. For that, I recommend installing
|
||||||
|
|
||||||
Should start automatically.
|
Should start automatically.
|
||||||
|
|
||||||
The most basic way of telling everything is OK is by trying to screenshare
|
The most basic way of seeing if everything is OK is by trying to screenshare
|
||||||
anything, or open OBS and select pipewire source. If XDPH is running, a qt menu
|
anything, or by opening OBS and selecting the PipeWire source. If XDPH is running, a Qt menu
|
||||||
will pop up asking you what to share.
|
will pop up asking you what to share.
|
||||||
|
|
||||||
If it doesn't, and you get e.g. slurp, then XDPW is launching. In that case, try
|
If it doesn't, or if, for example, `slurp` gets opened instead, then XDPW is launching. In that case, try
|
||||||
removing XDPW.
|
removing XDPW.
|
||||||
|
|
||||||
XDPH will work on other wlroots compositors, but features available only on
|
XDPH will work on other wlroots compositors, but features available only on
|
||||||
Hyprland will not work (e.g. window sharing)
|
Hyprland will not work (e.g. window sharing).
|
||||||
|
|
||||||
For a nuclear option, you can use this script and `exec-once` it:
|
For a nuclear option, you can use this script and `exec-once` it:
|
||||||
|
|
||||||
|
@ -137,7 +137,7 @@ sleep 2
|
||||||
/usr/lib/xdg-desktop-portal &
|
/usr/lib/xdg-desktop-portal &
|
||||||
```
|
```
|
||||||
|
|
||||||
adjust the paths if incorrect.
|
Adjust the paths if they're incorrect.
|
||||||
|
|
||||||
## Share picker doesn't use the system theme
|
## Share picker doesn't use the system theme
|
||||||
|
|
||||||
|
@ -148,7 +148,7 @@ dbus-update-activation-environment --systemd --all
|
||||||
systemctl --user import-environment QT_QPA_PLATFORMTHEME
|
systemctl --user import-environment QT_QPA_PLATFORMTHEME
|
||||||
```
|
```
|
||||||
|
|
||||||
If it works, add it to your config in an `exec-once`.
|
If it works, add it to your config in `exec-once`.
|
||||||
|
|
||||||
## Using the KDE file picker with XDPH
|
## Using the KDE file picker with XDPH
|
||||||
|
|
||||||
|
@ -158,7 +158,7 @@ XDPH does not implement a file picker and uses the GTK one as a fallback by defa
|
||||||
default=hyprland;gtk
|
default=hyprland;gtk
|
||||||
org.freedesktop.impl.portal.FileChooser=kde
|
org.freedesktop.impl.portal.FileChooser=kde
|
||||||
```
|
```
|
||||||
You can read more about this in the [xdg-desktop-portal documentation in the Arch Wiki](https://wiki.archlinux.org/title/XDG_Desktop_Portal). Note that some applications like Firefox might require additional configuration to use the KDE file picker.
|
You can read more about this in the [xdg-desktop-portal documentation in the Arch Wiki](https://wiki.archlinux.org/title/XDG_Desktop_Portal). Note that some applications like Firefox may require additional configuration to use the KDE file picker.
|
||||||
|
|
||||||
## Debugging
|
## Debugging
|
||||||
|
|
||||||
|
@ -167,5 +167,5 @@ logs.
|
||||||
|
|
||||||
`systemctl --user status xdg-desktop-portal-hyprland`
|
`systemctl --user status xdg-desktop-portal-hyprland`
|
||||||
|
|
||||||
if you see a crash, it's most likely you are missing `qt6-wayland` and/or
|
If you see a crash, it's likely you are missing either `qt6-wayland` or
|
||||||
`qt5-wayland`.
|
`qt5-wayland`.
|
||||||
|
|
Loading…
Reference in a new issue