mirror of
https://github.com/hyprwm/hyprland-wiki.git
synced 2024-12-22 17:49:48 +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.
|
||||
|
||||
```ini
|
||||
animation=NAME,ONOFF,SPEED,CURVE,STYLE
|
||||
or
|
||||
animation=NAME,ONOFF,SPEED,CURVE
|
||||
animation=NAME,ONOFF,SPEED,CURVE[,STYLE]
|
||||
```
|
||||
|
||||
`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
|
||||
```
|
||||
|
||||
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 >}}
|
||||
|
||||
|
@ -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
|
||||
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.:
|
||||
|
||||
```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"
|
||||
```
|
||||
|
||||
check out your switches in `hyprctl devices`.
|
||||
You can view your switches in `hyprctl devices`.
|
||||
|
||||
### Multiple binds to one key
|
||||
|
||||
|
@ -143,7 +143,7 @@ bindrl=MOD,KEY,exec,amongus
|
|||
Flags:
|
||||
|
||||
```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.
|
||||
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.
|
||||
|
@ -169,14 +169,14 @@ bindr=SUPER, SUPER_L, exec, pkill wofi || wofi
|
|||
|
||||
## Mouse Binds
|
||||
|
||||
Mouse binds are binds that heavily rely on a mouse, usually its movement. They
|
||||
will have one less arg, and look for example like this:
|
||||
Mouse binds are binds that rely on mouse movement. They
|
||||
will have one less arg, and may look like this:
|
||||
|
||||
```ini
|
||||
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.
|
||||
|
||||
_Available mouse binds_:
|
||||
|
@ -242,10 +242,9 @@ Will pass MOUSE5 to TeamSpeak3.
|
|||
|
||||
{{< callout >}}
|
||||
|
||||
XWayland is a bit wonky. 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.
|
||||
This works flawlessly with all native Wayland applications. However, XWayland is a bit wonky.
|
||||
Make sure that what you're passing is a "global Xorg keybind",
|
||||
otherwise passing from a different XWayland app may not work.
|
||||
|
||||
{{< /callout >}}
|
||||
|
||||
|
@ -276,9 +275,9 @@ Please note that this function will _only_ work with
|
|||
|
||||
## Submaps
|
||||
|
||||
If you want keybind submaps, also known as _modes_ or _groups_, for example if
|
||||
you press <key>ALT</key> + <key>R</key>, you can enter a "resize" mode, resize
|
||||
with arrow keys, and leave with escape, do it like this:
|
||||
Keybind submaps, also known as _modes_ or _groups_, allow you to activate a
|
||||
seperate set of keybinds. For example, if you want to enter a "resize" mode
|
||||
which allows you to resize windows with the arrow keys, you can do it like this:
|
||||
|
||||
```ini
|
||||
# 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
|
||||
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
|
||||
|
||||
# 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.
|
||||
|
||||
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!_**
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ layout pages (See the sidebar).
|
|||
| closewindow | closes a specified window | window |
|
||||
| workspace | changes the workspace | workspace |
|
||||
| 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 |
|
||||
| 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 |
|
||||
|
@ -102,13 +102,13 @@ The new group’s border colors are configurable with the appropriate `col.`
|
|||
settings in the `group` config section.
|
||||
|
||||
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
|
||||
used to toggle an independent global group lock that will prevent new window
|
||||
windows from entering this group. In addition, the `lockgroups` dispatcher can be
|
||||
used to toggle an independent global group lock that will prevent new windows
|
||||
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
|
||||
`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.
|
||||
|
||||
## Workspaces
|
||||
|
@ -173,8 +173,8 @@ bind = SUPER, C, movetoworkspace, special
|
|||
## Executing with rules
|
||||
|
||||
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
|
||||
your process e.g. forks and then the fork opens a window, this will not work.
|
||||
better, some worse. It records the PID of the spawned process and uses that. For example, if
|
||||
your process forks and then the fork opens a window, this will not work.
|
||||
|
||||
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 |
|
||||
| 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.:
|
||||
|
||||
|
|
|
@ -29,8 +29,8 @@ three_param_keyword = A, B, # OK
|
|||
|
||||
## Executing
|
||||
|
||||
you can execute a shell script on startup of the compositor or on each time it's
|
||||
reloaded.
|
||||
You can execute a shell script on startup of the compositor or every time
|
||||
the config is reloaded.
|
||||
|
||||
`exec-once=command` will execute only on launch
|
||||
|
||||
|
@ -38,25 +38,25 @@ reloaded.
|
|||
|
||||
## Defining variables
|
||||
|
||||
You can define your own custom variables like this:
|
||||
You can define your own custom variables using a dollar sign (`$`):
|
||||
|
||||
```ini
|
||||
$VAR = value
|
||||
```
|
||||
|
||||
for example:
|
||||
For example:
|
||||
|
||||
```ini
|
||||
$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
|
||||
col.active_border=$MyColor
|
||||
```
|
||||
|
||||
You ARE allowed to do this:
|
||||
You are allowed to combine variables in-place with other strings, like this:
|
||||
|
||||
```ini
|
||||
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
|
||||
|
||||
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.
|
||||
|
||||
To set a wallpaper, use a wallpaper utility like
|
||||
|
@ -167,7 +167,7 @@ layerrule = blur,NAMESPACE
|
|||
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:
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ title: Master Layout
|
|||
|
||||
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
|
||||
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.
|
||||
|
||||
![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 |
|
||||
| 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 >}}
|
||||
|
||||
example usage:
|
||||
Example usage:
|
||||
|
||||
```ini
|
||||
bind=MOD,KEY,layoutmsg,cyclenext
|
||||
|
|
|
@ -5,7 +5,7 @@ title: Monitors
|
|||
|
||||
## General
|
||||
|
||||
The general config of a monitor looks like this
|
||||
The general config of a monitor looks like this:
|
||||
|
||||
```ini
|
||||
monitor=name,resolution,position,scale
|
||||
|
@ -17,7 +17,7 @@ A common example:
|
|||
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).
|
||||
|
||||
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
|
||||
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`.
|
||||
|
||||
{{</ 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
|
||||
match.
|
||||
|
||||
You can use `preferred` as a resolution to use the display's preferred size and
|
||||
`auto` as a position to let Hyprland decide on a position for you.
|
||||
You can use `preferred` as a resolution to use the display's preferred size,
|
||||
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.
|
||||
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
|
||||
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
|
||||
`hyprctl monitors` for more details). If the output of `hyprctl monitors` looks
|
||||
like the following:
|
||||
|
@ -145,14 +132,15 @@ screensaver style (just turn off the monitor) use the `dpms`
|
|||
|
||||
## 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
|
||||
monitor=name,addreserved,TOP,BOTTOM,LEFT,RIGHT
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
## 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
|
||||
```
|
||||
|
||||
See bellow for more detail about each argument.
|
||||
See below for more detail about each argument.
|
||||
|
||||
### Mirrored displays
|
||||
|
||||
|
@ -221,24 +209,6 @@ flipped + 180 degrees -> 6
|
|||
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
|
||||
|
||||
See [Workspace Rules](../Workspace-Rules).
|
||||
|
|
|
@ -5,7 +5,7 @@ title: Multi-GPU
|
|||
|
||||
## 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
|
||||
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
|
||||
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
|
||||
with a lower and higher power rating GPUs respectively.
|
||||
with lower and higher power rating GPUs respectively.
|
||||
|
||||
{{< /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.
|
||||
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
|
||||
feeling laggy then try setting the scaling to integer numbers such as `1` or `2`
|
||||
If you have problems with your graphics card having high usage or Hyprland
|
||||
feeling laggy, try setting the scaling to integer numbers such as `1` or `2`
|
||||
like in this example `monitor=,preferred,auto,2`.
|
||||
|
||||
## 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
|
||||
|
||||
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
|
||||
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
|
||||
likely your GPU driver's fault.
|
||||
|
||||
Could be the below as well
|
||||
|
||||
### Other graphical issues
|
||||
|
||||
or
|
||||
|
||||
### Hyprland instantly crashes on launch
|
||||
### Other graphical issues/Hyprland instantly crashes on launch
|
||||
|
||||
Likely issue with `WLR_DRM_NO_ATOMIC`.
|
||||
|
||||
|
|
|
@ -25,9 +25,9 @@ For live event handling, see the [socket2](../../IPC/).
|
|||
|
||||
## 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.
|
||||
|
||||
|
@ -49,7 +49,7 @@ Returns: `ok` on success, an error message on fail.
|
|||
|
||||
See [Dispatchers](../Dispatchers) for a list of dispatchers.
|
||||
|
||||
### Keyword
|
||||
### keyword
|
||||
|
||||
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.
|
||||
|
||||
### Reload
|
||||
### reload
|
||||
|
||||
issue a `reload` to force reload the config.
|
||||
Issue a `reload` to force reload the config.
|
||||
|
||||
### 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.
|
||||
|
||||
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
|
||||
`DEVICE` using `hyprctl devices` command.
|
||||
|
||||
example command for a typical keyboard:
|
||||
Example command for a typical keyboard:
|
||||
|
||||
```sh
|
||||
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
|
||||
```
|
||||
|
||||
or disable:
|
||||
To disable:
|
||||
|
||||
```sh
|
||||
hyprctl seterror disable
|
||||
|
@ -270,23 +270,23 @@ hyprctl dismissnotify -1 # dismiss all notifications (same as no arguments)
|
|||
## Info
|
||||
|
||||
```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
|
||||
workspaces - lists all workspaces with their properties
|
||||
activeworkspace - gets the active workspace and its properties
|
||||
workspacerules - gets the list of defined workspace rules
|
||||
clients - lists all windows with their properties
|
||||
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
|
||||
activewindow - gets the active window name and its properties
|
||||
layers - lists all the layers
|
||||
splash - prints the current random splash
|
||||
getoption [option] - gets the config option status (values)
|
||||
cursorpos - gets the current cursor pos in global layout coordinates
|
||||
animations - gets the current config'd info about animations and beziers
|
||||
instances - lists all running instances of hyprland with their info
|
||||
layouts - lists all layouts available (including plugin'd ones)
|
||||
cursorpos - gets the current cursor position in global layout coordinates
|
||||
animations - gets the currently configured info about animations and beziers
|
||||
instances - lists all running instances of Hyprland with their info
|
||||
layouts - lists all layouts available (including from plugins)
|
||||
configerrors - lists all current config parsing errors
|
||||
rollinglog - prints tail of the log
|
||||
```
|
||||
|
@ -301,11 +301,11 @@ hyprctl getoption general:border_size
|
|||
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
|
||||
|
||||
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.
|
||||
|
||||
|
|
|
@ -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. |
|
||||
| float | floating point number |
|
||||
| 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 `,`) |
|
||||
| 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` |
|
||||
|
@ -176,21 +176,21 @@ _[More about Animations](../Animations)._
|
|||
| 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\]\] |
|
||||
| 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_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\]\]
|
||||
| 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 |
|
||||
| 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_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 |
|
||||
| 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 |
|
||||
| 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 |
|
||||
| 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 |
|
||||
|
@ -226,7 +226,7 @@ For switchable keyboard configurations, take a look at
|
|||
|
||||
`custom <step> <points...>`
|
||||
|
||||
for example `custom 200 0.0 0.5`
|
||||
Example: `custom 200 0.0 0.5`
|
||||
|
||||
#### `scroll_points`
|
||||
|
||||
|
@ -234,7 +234,7 @@ NOTE: Only works when `accel_profile` is set to `custom`.
|
|||
|
||||
`<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
|
||||
[this script](https://gist.github.com/fufexan/de2099bc3086f3a6c83d61fc1fcc06c9).
|
||||
|
@ -252,7 +252,7 @@ _Subcategory `input:touchpad:`_
|
|||
| name | description | type | default |
|
||||
| --- | --- | --- | --- |
|
||||
| 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 |
|
||||
| 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\]\] |
|
||||
|
@ -267,8 +267,8 @@ _Subcategory `input:touchdevice:`_
|
|||
|
||||
| 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 |
|
||||
| output | the monitor to bind touch devices. The default is autodetection. To stop autotection use an empty string or the "\[\[Empty\]\]" value. | string | \[\[Auto\]\] |
|
||||
| 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 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 |
|
||||
|
||||
#### Tablet
|
||||
|
@ -326,7 +326,7 @@ _Subcategory `group:groupbar:`_
|
|||
| --- | --- | --- | --- |
|
||||
| enabled | enables groupbars | bool | true |
|
||||
| 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 |
|
||||
| height | height of the groupbar | int | 14 |
|
||||
| priority | sets the decoration priority for groupbars | int | 3 |
|
||||
|
@ -342,12 +342,12 @@ _Subcategory `group:groupbar:`_
|
|||
|
||||
| name | description | type | default |
|
||||
|---|---|---|---|
|
||||
| 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_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 |
|
||||
| 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 |
|
||||
| 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 |
|
||||
| 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 |
|
||||
|
@ -367,7 +367,7 @@ _Subcategory `group:groupbar:`_
|
|||
| 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_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 |
|
||||
| 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 |
|
||||
|
@ -380,7 +380,7 @@ _Subcategory `group:groupbar:`_
|
|||
| 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 |
|
||||
| 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 |
|
||||
| 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 |
|
||||
|
@ -422,7 +422,7 @@ Only for developers.
|
|||
| 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 |
|
||||
| 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 |
|
||||
|
||||
### More
|
||||
|
|
|
@ -50,16 +50,16 @@ windowrulev2 = float,class:(kitty),title:(kitty)
|
|||
|
||||
{{< 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.
|
||||
|
||||
for example a window rule of:
|
||||
For example, a window rule of:
|
||||
`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
|
||||
could be multiple browser windows or other applications that contain the string
|
||||
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
|
||||
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.
|
||||
|
||||
{{< 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 >}}
|
||||
|
||||
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 type=warning >}}
|
||||
|
||||
Please beware that `hyprctl clients` will display the field as **initialClass** while the WINDOW field in the configuration uses `initialclass`.
|
||||
|
||||
{{< /callout >}}
|
||||
|
||||
## 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 |
|
||||
| ---- | ----------- |
|
||||
|
@ -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. |
|
||||
| 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. |
|
||||
| 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) |
|
||||
|
@ -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
|
||||
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
|
||||
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
|
||||
```
|
||||
|
||||
-> all non-fullscreen kitty windows will have opacity 0.8, except if they are floating. Then
|
||||
they will have opacity 0.5. -> all non-fullscreen floating windows will have opacity 0.5.
|
||||
Here, all non-fullscreen kitty windows will have `opacity 0.8`, except if they are floating.
|
||||
Otherwise, they will have `opacity 0.5`. The rest of the non-fullscreen floating windows will have `opacity 0.5`.
|
||||
|
||||
```ini
|
||||
windowrulev2 = opacity 0.5 0.5,floating:1
|
||||
windowrulev2 = opacity 0.8 0.8,class:^(kitty)$
|
||||
```
|
||||
|
||||
-> all kitty windows will have opacity 0.8, also if they are floating. -> all
|
||||
other floating windows will have opacity 0.5.
|
||||
Here, all kitty windows will have `opacity 0.8`, even if they are floating.
|
||||
The rest of the floating windows will have `opacity 0.5`.
|
||||
|
||||
{{< callout type=info >}}
|
||||
|
||||
Opacity is a PRODUCT of all opacities by default. E.g. `active_opacity` to 0.5 and
|
||||
windowrule opacity to 0.5 will result in a total opacity 0.25. You are allowed
|
||||
Opacity is a PRODUCT of all opacities by default. For example, setting `activeopacity` to 0.5
|
||||
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
|
||||
glitches. E.g. `0.5 * 2 = 1`, and it will be fine, `0.5 * 4` will cause
|
||||
graphical glitches. You can use `override` after an opacity to make it override
|
||||
instead of a multiplier. E.g. to set active and inactive opacity to 0.8,
|
||||
and make fullscreen fully opaque regardless of other opacity rules:
|
||||
glitches. For example, using `0.5 * 2 = 1` is fine, but `0.5 * 4 = 2` will cause
|
||||
graphical glitches. You can put `override` after an opacity value to override it to an exact value
|
||||
rather than a multiplier. For example, to set active and inactive opacity to 0.8,
|
||||
and make fullscreen windows fully opaque regardless of other opacity rules:
|
||||
|
||||
```ini
|
||||
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
|
||||
|
||||
Some things in wayland are not windows, but layers. That includes for example
|
||||
most launchers, your status bar or wallpaper.
|
||||
Some things in Wayland are not windows, but layers. That includes, for example:
|
||||
app launchers, status bars, or wallpapers.
|
||||
|
||||
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 |
|
||||
| --- | --- |
|
||||
| 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 |
|
||||
| blur | enables blur for the layer |
|
||||
| blurpopups | enables blur for the popups |
|
||||
|
|
|
@ -51,7 +51,7 @@ workspace=w[tg1-4],shadow:false
|
|||
|
||||
| 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 |
|
||||
| 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 |
|
||||
|
|
|
@ -3,7 +3,7 @@ weight: 12
|
|||
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
|
||||
|
||||
|
@ -19,4 +19,4 @@ Matrix: `#hyprland:matrix.vaxry.net`
|
|||
## Other
|
||||
|
||||
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`
|
||||
|
||||
attach and profile in your preferred way.
|
||||
Attach and profile in your preferred way.
|
||||
|
||||
### Meson
|
||||
|
||||
|
@ -62,7 +62,7 @@ This code can go in the `package` attribute of the NixOS/Home Manager modules.
|
|||
|
||||
## 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
|
||||
`/tmp/hypr/[INSTANCE SIGNATURE]/hyprlandd.log`.
|
||||
|
||||
|
|
|
@ -5,15 +5,13 @@ title: Crashes and Bugs
|
|||
|
||||
## Getting the log
|
||||
|
||||
If you are in a TTY, and the hyprland session that crashed was the last one you
|
||||
launched, the log will be printed with
|
||||
If you are in a TTY, and the Hyprland session that crashed was the last one you
|
||||
launched, the log can be printed with
|
||||
|
||||
```sh
|
||||
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
|
||||
|
||||
```sh
|
||||
|
@ -62,7 +60,7 @@ issue on GitHub.
|
|||
|
||||
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`
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ title: FAQ
|
|||
This just means they are running through XWayland, which physically cannot scale
|
||||
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).
|
||||
|
||||
If they can't, see [the XWayland page](../Configuring/XWayland).
|
||||
|
@ -32,8 +32,7 @@ _[wiki page](../Crashes-and-Bugs)_
|
|||
|
||||
### Me cursor no render?
|
||||
|
||||
Are you on NVIDIA? If so, then you have been naughty and haven't listened
|
||||
to my tips on other pages. Use the `WLR_NO_HARDWARE_CURSORS=1` environment
|
||||
If you are on NVIDIA, you may need to use the `WLR_NO_HARDWARE_CURSORS=1` environment
|
||||
variable.
|
||||
|
||||
### 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?
|
||||
|
||||
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
|
||||
GitHub pages).
|
||||
|
||||
|
@ -122,7 +121,7 @@ update the package. Paru has been problematic with updating before, use Yay.
|
|||
|
||||
### 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?
|
||||
|
||||
|
@ -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?
|
||||
|
||||
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
|
||||
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?
|
||||
|
||||
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:
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
|
@ -247,10 +246,10 @@ env = XDG_CURRENT_DESKTOP,Hyprland
|
|||
|
||||
### How to disable middle-click paste?
|
||||
|
||||
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
|
||||
You can simply intercept the middle-click action all together via Hyprland
|
||||
binds. However, there are drawbacks to this solution. It disables the
|
||||
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
|
||||
themselves, bypassing the solution altogether. For this solution, add this bind
|
||||
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)
|
||||
|
||||
**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>
|
||||
|
||||
|
@ -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
|
||||
|
||||
Some programs like flameshot (currently) has limited wayland support so on most
|
||||
Wayland compositors, you will have to do few tweaks. For Hyprland, you can add
|
||||
these window rules to your config to make said programs work with both of your
|
||||
Some programs like Flameshot (currently) have limited Wayland support, so on most
|
||||
Wayland compositors, you will have to do a few tweaks. For Hyprland, you can add
|
||||
these window rules to your config to make these programs work with both of your
|
||||
screens.
|
||||
|
||||
```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
|
||||
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
|
||||
`FN+SUPER` doesn't work, consult your laptop's manual.
|
||||
|
||||
|
@ -335,12 +334,10 @@ bind = SUPER,Escape,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
|
||||
keybinds and passes them on to the vm.
|
||||
|
||||
Then, pressing `SUPER + Escape` will leave that mode.
|
||||
By pressing the selected combo, you will enter a mode where Hyprland ignores your
|
||||
keybinds and passes them on to the VM. Pressing `SUPER + Escape` will leave that mode.
|
||||
|
||||
### 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
|
||||
|
||||
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
|
||||
from steam.
|
||||
from Steam.
|
||||
|
||||
Steam has its own file picker, however, it's not functional. Install
|
||||
`xdg-desktop-portal-gtk` to show the desktop's file picker.
|
||||
|
|
|
@ -19,14 +19,14 @@ might have **major** issues running Hyprland.
|
|||
|
||||
## Installation
|
||||
|
||||
Installing Hyprland is very easy. Either you install it from your local package
|
||||
provider (if they provide pkgs for Hyprland) or you install/build it yourself.
|
||||
Installing Hyprland is very easy. Simply install it with your package manager
|
||||
(if there is a Hyprland package available) or install/build it yourself.
|
||||
|
||||
{{< callout >}}
|
||||
|
||||
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
|
||||
with `yay -Syu --devel`, or your other preferred package manager.
|
||||
with `yay -Syu --devel`, or your preferred package manager.
|
||||
|
||||
{{< /callout >}}
|
||||
|
||||
|
|
|
@ -101,7 +101,7 @@ If your cursor does not appear, then see
|
|||
|
||||
## 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` /
|
||||
`qt6ct` for their respective Qt versions. Some older applications may also
|
||||
require `qt4ct`.
|
||||
|
|
|
@ -3,7 +3,7 @@ weight: 4
|
|||
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 >}}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ over the widely used xcursor.
|
|||
|
||||
## 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`
|
||||
|
||||
|
@ -53,5 +53,5 @@ icons and XCursors in both `/usr/share/icons` and `~/.icons`.
|
|||
|
||||
## 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`.
|
||||
|
|
|
@ -3,13 +3,13 @@ weight: 3
|
|||
title: hypridle
|
||||
---
|
||||
|
||||
hypridle is hyprland's idle management daemon.
|
||||
hypridle is Hyprland's idle management daemon.
|
||||
|
||||
## Configuration
|
||||
|
||||
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
|
||||
startup edit `hyprland.conf` and add: `exec-once = hypridle`.
|
||||
startup, edit `hyprland.conf` and add: `exec-once = hypridle`.
|
||||
|
||||
### General
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ title: hyprlock
|
|||
---
|
||||
|
||||
hyprlock is a simple, yet fast, multi-threaded and GPU-accelerated screen lock
|
||||
for hyprland.
|
||||
for Hyprland.
|
||||
|
||||
## 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 |
|
||||
| no_fade_in | disables the fadein 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 |
|
||||
|
||||
## 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 |
|
||||
| -- | -- |
|
||||
| ESC | Clear password buffer |
|
||||
|
@ -62,7 +62,7 @@ widget_name {
|
|||
|
||||
### 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 |
|
||||
| -- | -- | -- | -- |
|
||||
| shadow_passes | passes for shadow, 0 to disable | int | 0 |
|
||||
|
@ -188,7 +188,7 @@ input-field {
|
|||
|
||||
#### 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:
|
||||
- `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
|
||||
---
|
||||
|
||||
hyprpaper is a fast, IPC-controlled wallpaper utility for hyprland.
|
||||
hyprpaper is a fast, IPC-controlled wallpaper utility for Hyprland.
|
||||
|
||||
## Configuration
|
||||
|
||||
The config file is located at `~/.config/hypr/hyprpaper.conf`. It is not
|
||||
required.
|
||||
|
||||
Configuration is done via `preload`s, which _load_ an image into memory. Then,
|
||||
you use `wallpaper` keywords to apply the preloaded image to your monitor(s):
|
||||
Configuration is done using `preload`, which _loads_ an image into memory. Then,
|
||||
the `wallpaper` keyword is used to apply the preloaded image to your monitor(s):
|
||||
|
||||
```ini
|
||||
preload = /home/me/amongus.png
|
||||
|
@ -20,8 +20,8 @@ wallpaper = DP-1,/home/me/amongus.png
|
|||
|
||||
For wallpaper keywords:
|
||||
|
||||
You can also `unload` preloaded images to free up memory. `unload all` and
|
||||
`unload unused` are a thing too.
|
||||
You can use `unload` to unload preloaded images. You can also specify `unload all`
|
||||
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:
|
||||
`exec-once = hyprpaper`.
|
||||
|
|
|
@ -3,7 +3,7 @@ weight: 2
|
|||
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
|
||||
|
||||
|
|
|
@ -69,15 +69,15 @@ e.g.: `workspace>>2`
|
|||
|
||||
{{< callout type=warning >}}
|
||||
|
||||
A fullscreen event is not guaranteed to fire on/off once in succession. A window
|
||||
might do for example 3 requests to be fullscreen'd, which would result in 3
|
||||
A fullscreen event is not guaranteed to fire on/off once in succession. Some windows
|
||||
may fire multiple requests to be fullscreened, resulting in multiple
|
||||
fullscreen events.
|
||||
|
||||
{{< /callout >}}
|
||||
|
||||
## 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
|
||||
#!/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).
|
||||
|
||||
## 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
|
||||
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
|
||||
|
||||
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
|
||||
services. This is the most common with user-configured services such as
|
||||
`hypridle` or `swayidle`.
|
||||
|
|
|
@ -137,5 +137,5 @@ in {
|
|||
|
||||
## 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).
|
||||
|
|
|
@ -47,13 +47,13 @@ nix profile install github:guibou/nixGL --impure
|
|||
|
||||
`--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
|
||||
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
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ See [XWayland](../../Configuring/XWayland).
|
|||
## Using Nix repl
|
||||
|
||||
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 repl
|
||||
|
|
|
@ -10,20 +10,17 @@ have had success with the instructions on this page.
|
|||
|
||||
You can choose between the proprietary
|
||||
[Nvidia drivers](https://wiki.archlinux.org/title/NVIDIA) or the open source
|
||||
[Nouveau driver](https://wiki.archlinux.org/title/Nouveau). Under the
|
||||
proprietary Nvidia drivers category, there are 3 of them: the current driver
|
||||
[Nouveau driver](https://wiki.archlinux.org/title/Nouveau). For the
|
||||
proprietary drivers, there are 3 of them: the current driver
|
||||
named 'nvidia' (or 'nvidia-dkms' to use with custom linux kernels) which is
|
||||
under active development, the legacy drivers 'nvidia-3xxxx' for older cards
|
||||
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
|
||||
driver for newer cards.
|
||||
|
||||
If your card is supported by the proprietary nvidia drivers, there is a very
|
||||
high chance that you will most likely want to use those. Benefits include but
|
||||
are not limited to:
|
||||
|
||||
- (Much) better gaming performance
|
||||
- Better power management on recent GPUs
|
||||
If the proprietary drivers support your graphics card, it's generally recommended
|
||||
to use them instead, as it includes significantly improved gaming performance
|
||||
and power management for recent GPUs.
|
||||
|
||||
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
|
||||
|
@ -54,12 +51,10 @@ similarly between the two.
|
|||
Next up, you need to enable modeset for nvidia, this can be done via editing
|
||||
the kernel paramaters for your bootloader.
|
||||
|
||||
For people using [systemd-boot](https://wiki.archlinux.org/title/systemd-boot)
|
||||
you can do this by adding `nvidia_drm.modeset=1` to the end of
|
||||
`/boot/loader/entries/arch.conf`.
|
||||
|
||||
For people using
|
||||
[GRUB](https://wiki.archlinux.org/title/GRUB) you can do this by adding
|
||||
If you use [systemd-boot](https://wiki.archlinux.org/title/systemd-boot)
|
||||
you can do this adding `nvidia_drm.modeset=1` to the end of
|
||||
`/boot/loader/entries/arch.conf`. If you use
|
||||
[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
|
||||
`/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.
|
||||
|
||||
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
|
||||
in the 555 series of nvidia driver updates.
|
||||
Wayland, the root cause of the flickering will likely be solved
|
||||
in the 555 series of Nvidia driver updates.
|
||||
|
||||
### Fixing flickering in XWayland games specifically
|
||||
|
||||
|
@ -233,11 +228,11 @@ More info about explicit sync is available
|
|||
|
||||
### Fixing other random flickering (nuclear method)
|
||||
|
||||
Do note that this forces performance mode to be active, resulting in
|
||||
increased power-consumption (from 22W idle on an RTX 3070TI, to 74W).
|
||||
Note that this forces performance mode to be active, resulting in
|
||||
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
|
||||
you in-fact do notice flickering artifacts from being idle for ~5 seconds.
|
||||
This may not be needed for some users. Only apply these 'fixes' if you
|
||||
do notice flickering artifacts from being idle for ~5 seconds.
|
||||
|
||||
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:
|
||||
|
||||
- lowering your monitors' refresh rate, as this can stop the flickering
|
||||
- lowering your monitor's refresh rate, as this can stop the flickering
|
||||
altogether
|
||||
- using the [Nouveau driver](https://wiki.archlinux.org/title/Nouveau) as
|
||||
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.
|
||||
|
||||
Add `nvidia.NVreg_PreserveVideoMemoryAllocations=1` to your kernel parameters if
|
||||
you don't have it already.
|
||||
you haven't already.
|
||||
|
||||
{{< callout >}}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ Let's look at a simple example:
|
|||
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.
|
||||
|
||||
```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:
|
||||
|
||||
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,
|
||||
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,
|
||||
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;
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
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
|
||||
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`.
|
||||
|
||||
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
|
||||
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
|
||||
```
|
||||
|
||||
once it finishes, you can list your installed plugins with
|
||||
Once it finishes, you can list your installed plugins with:
|
||||
|
||||
```sh
|
||||
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
|
||||
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`.
|
||||
|
||||
|
@ -65,8 +65,8 @@ For all options of `hyprpm`, run `hyprpm -h`.
|
|||
|
||||
Different plugins may have different build methods, refer to their instructions.
|
||||
|
||||
If you don't have hyprland headers installed, clone hyprland, checkout to your
|
||||
version, build hyprland, and run `sudo make installheaders`. Then build 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
|
||||
plugin(s).
|
||||
|
||||
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?
|
||||
|
||||
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.
|
||||
|
||||
### Are plugins safe?
|
||||
|
|
|
@ -9,7 +9,7 @@ replacements for them:
|
|||
## Discord
|
||||
|
||||
- [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
|
||||
infringe on the Discord ToS.
|
||||
|
||||
|
|
|
@ -40,11 +40,11 @@ For the config you can check out [DistroTube's Configuring Emacs](https://gitlab
|
|||
|
||||
## 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.
|
||||
[GitHub](https://github.com/Kirottu/anyrun)
|
||||
|
||||
## 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)
|
||||
|
|
|
@ -5,8 +5,8 @@ title: Clipboard managers
|
|||
|
||||
_Starting method:_ manual (`exec-once`)
|
||||
|
||||
Clipboard Managers are useful tools that allows one to manage their copied
|
||||
items, be-it texts or images.
|
||||
Clipboard Managers provide a convenient way to organize and access previously
|
||||
copied content, including both text and images.
|
||||
|
||||
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
|
||||
text [Github](https://github.com/sentriz/cliphist)
|
||||
|
||||
`wl-clip-persist` - When we copy something on Wayland (using wl-clipboard) and
|
||||
close the application we copied from, the copied data disappears from the
|
||||
clipboard and we cannot paste it anymore. So to fix this problem we can use a
|
||||
program called as `wl-clip-persist` which will preserve the data in the
|
||||
clipboard after the application is closed.
|
||||
`wl-clip-persist` - When copying something on Wayland, the copied data remains
|
||||
in the clipboard until the application that was copied from is closed.
|
||||
After that, the data disappears and can no longer be pasted.
|
||||
To fix this problem, you can use `wl-clip-persist` which will preserve the data
|
||||
in the clipboard after the application is closed.
|
||||
[Github](https://github.com/Linus789/wl-clip-persist)
|
||||
|
||||
## copyq
|
||||
|
@ -31,8 +31,8 @@ Start by adding the following lines to your `~/.config/hypr/hyprland.conf`
|
|||
exec-once = copyq --start-server
|
||||
```
|
||||
|
||||
If your `copyq`'s main window cannot close/hide properly, try to enable its
|
||||
"Hide main window" option in Layout configuration tab in Preferences dialog.
|
||||
If the main window of `copyq` cannot close/hide properly, try to enable its
|
||||
"Hide main window" option in the Layout configuration tab in the Preferences dialog.
|
||||
|
||||
## 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
|
||||
```
|
||||
|
||||
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`,
|
||||
again head over to `~/.config/hypr/hyprland.conf`
|
||||
you can edit it in `~/.config/hypr/hyprland.conf`.
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
```
|
||||
|
||||
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
|
||||
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
|
||||
`~/.local/share/clipman-primary.json`
|
||||
Ensure that `~/.local/share/clipman-primary.json` is already created.
|
||||
|
||||
Now bind the `clipman` like this:
|
||||
Now you can bind `clipman` like this:
|
||||
|
||||
### For `rofi` users
|
||||
|
||||
|
@ -108,5 +107,5 @@ bind = SUPER, V, exec, clipman pick -t dmenu
|
|||
bind = SUPER, V, exec, clipman pick -t wofi
|
||||
```
|
||||
|
||||
So on and so forth. For further information, please refer to the repository
|
||||
mentioned above
|
||||
...and so on. For further information, please refer to the repository
|
||||
mentioned above.
|
||||
|
|
|
@ -6,7 +6,7 @@ title: Color pickers
|
|||
Color pickers are useful for quickly grabbing a color of _something_ on your
|
||||
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.
|
||||
|
||||
## Hyprpicker
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
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
|
||||
|
||||
|
@ -9,7 +9,7 @@ A cool, fast, IPC-controlled wallpaper utility.
|
|||
|
||||
## hyprpicker
|
||||
|
||||
A neat color picker for your hyprland desktop.
|
||||
A neat color picker for your Hyprland desktop.
|
||||
|
||||
[Github link](https://github.com/hyprwm/hyprpicker)
|
||||
|
||||
|
@ -19,13 +19,13 @@ A must-have, see [The wiki page](../xdg-desktop-portal-hyprland)
|
|||
|
||||
## 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)
|
||||
|
||||
## 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)
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ title: Must have
|
|||
This page documents software that is **strongly** recommended to have running
|
||||
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.
|
||||
|
||||
### A notification daemon
|
||||
|
@ -15,37 +15,37 @@ _Starting method:_ most likely manual (`exec-once`)
|
|||
|
||||
Many apps (e.g. Discord) may freeze without one running.
|
||||
|
||||
Use e.g. `dunst`, `mako`, `swaync`, etc.
|
||||
Examples: `dunst`, `mako`, and `swaync`.
|
||||
|
||||
### 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
|
||||
it.
|
||||
|
||||
Install `pipewire` and `wireplumber` (**not** `pipewire-media-session`)
|
||||
Install `pipewire` and `wireplumber` (**not** `pipewire-media-session`).
|
||||
|
||||
#### Non-systemd distros
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
[^1]: https://wiki.gentoo.org/wiki/PipeWire#OpenRC
|
||||
|
||||
### 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,
|
||||
screensharing, etc.
|
||||
|
||||
See the [Hyprland Desktop Portal Page](../xdg-desktop-portal-hyprland)
|
||||
See the [Hyprland Desktop Portal Page.](../xdg-desktop-portal-hyprland)
|
||||
|
||||
### Authentication Agent
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ Hyprland.
|
|||
### IPC wrappers
|
||||
|
||||
[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
|
||||
|
||||
|
@ -38,10 +38,10 @@ swapping and scheduling screen shaders; also functions as an
|
|||
|
||||
_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.
|
||||
|
||||
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.
|
||||
|
||||
|
@ -57,7 +57,7 @@ Head over to your `~/.config/hypr/hyprland.conf` and add the following lines:
|
|||
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.
|
||||
|
||||
[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
|
||||
|
||||
If your screensharing application is running under XWayland (like Discord,
|
||||
Skype,...), it can only see other XWayland windows and cannot share an entire
|
||||
If your screensharing application is running under XWayland (like Discord or
|
||||
Skype), it can only see other XWayland windows and cannot share an entire
|
||||
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
|
||||
can use
|
||||
[this AUR package](https://aur.archlinux.org/packages/xwaylandvideobridge-git)
|
||||
on ArchLinux. 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
|
||||
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
|
||||
the same effect. See
|
||||
[this issue](https://invent.kde.org/system/xwaylandvideobridge/-/issues/1) for
|
||||
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
|
||||
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
|
||||
to your hyprland configuration that reads `exec-once=waybar`
|
||||
would like Waybar to launch alongside Hyprland, you can do this by adding a line
|
||||
to your Hyprland configuration that reads `exec-once=waybar`.
|
||||
|
||||
### Waybar popups render behind the windows
|
||||
|
||||
|
@ -36,7 +36,7 @@ Replace `#workspaces button.focused` with `#workspaces button.active` in
|
|||
|
||||
### 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
|
||||
look like this:
|
||||
|
||||
|
@ -52,14 +52,14 @@ look like this:
|
|||
|
||||
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
|
||||
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`.
|
||||
|
||||
### Window title is missing
|
||||
|
||||
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
|
||||
waybar config, insert this module:
|
||||
Waybar config, insert this module:
|
||||
|
||||
```json
|
||||
"modules-center": ["hyprland/window"],
|
||||
|
@ -226,9 +226,9 @@ socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | s
|
|||
## Hybrid
|
||||
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
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`
|
||||
|
||||
#### 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 `gtk-layer-shell` and can be changed in the HybridBar configuration
|
||||
at
|
||||
|
|
|
@ -19,7 +19,7 @@ change, and don't want to make a config file. Get it
|
|||
|
||||
## 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).
|
||||
|
||||
## mpvpaper
|
||||
|
@ -29,7 +29,7 @@ A neat mpv wrapper to play a video as your wallpaper.
|
|||
|
||||
## 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.
|
||||
[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
|
||||
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
|
||||
`xdg-desktop-portal-wlr` (later called XDPW)
|
||||
|
||||
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
|
||||
features, called
|
||||
|
@ -22,7 +22,7 @@ features, called
|
|||
{{< callout >}}
|
||||
|
||||
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
|
||||
features (other will be disabled).
|
||||
|
@ -114,15 +114,15 @@ XDPH doesn't implement a file picker. For that, I recommend installing
|
|||
|
||||
Should start automatically.
|
||||
|
||||
The most basic way of telling everything is OK is by trying to screenshare
|
||||
anything, or open OBS and select pipewire source. If XDPH is running, a qt menu
|
||||
The most basic way of seeing if everything is OK is by trying to screenshare
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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:
|
||||
|
||||
|
@ -137,7 +137,7 @@ sleep 2
|
|||
/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
|
||||
|
||||
|
@ -148,7 +148,7 @@ dbus-update-activation-environment --systemd --all
|
|||
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
|
||||
|
||||
|
@ -158,7 +158,7 @@ XDPH does not implement a file picker and uses the GTK one as a fallback by defa
|
|||
default=hyprland;gtk
|
||||
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
|
||||
|
||||
|
@ -167,5 +167,5 @@ logs.
|
|||
|
||||
`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`.
|
||||
|
|
Loading…
Reference in a new issue