treewide: run linter

This commit is contained in:
Mihai Fufezan 2024-11-06 20:34:37 +02:00
parent 1b2ba381c7
commit 95697479fd
Signed by: fufexan
SSH key fingerprint: SHA256:SdnKmEpJrDu1+2UO1QpB/Eg4HKcdDi6n+xSRqFNJVpg
32 changed files with 212 additions and 171 deletions

View file

@ -200,7 +200,7 @@ bindrl = MOD, KEY, exec, amongus
Flags:
```
```plain
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.

View file

@ -138,7 +138,7 @@ You have nine choices:
- Previous workspace: `previous`, or `previous_per_monitor`
- First available empty workspace: `empty`, suffix with `m` to only search
on monitor. and/or `n` to make it the *next* available empty workspace. e.g.
on monitor. and/or `n` to make it the _next_ available empty workspace. e.g.
`emptynm`
- Special Workspace: `special` or `special:name` for named special workspaces.
@ -227,4 +227,3 @@ address:0x13371337 nomaxsize 0
address:0x13371337 opaque toggle
address:0x13371337 immediate unset
```

View file

@ -9,48 +9,48 @@ from a more tangible example.
### end_4
![](https://github.com/end-4/dots-hyprland/assets/97237370/5e081770-0f1e-45c4-ad9c-3d19f488cd85)
![end-4/dots-hyprland screenshot](https://github.com/end-4/dots-hyprland/assets/97237370/5e081770-0f1e-45c4-ad9c-3d19f488cd85)
[https://github.com/end-4/dots-hyprland](https://github.com/end-4/dots-hyprland)
### Stephan Raabe (ML4W)
![](https://i.ibb.co/6ydHNt9/screenshot-29-1.png)
![mylinuxforwork/dotfiles screenshot](https://i.ibb.co/6ydHNt9/screenshot-29-1.png)
[https://github.com/mylinuxforwork/dotfiles](https://github.com/mylinuxforwork/dotfiles)
### fufexan
![](https://user-images.githubusercontent.com/36706276/192147190-cf9cf4df-94cb-4a3b-b9d8-137ed0c2538f.png)
![fufexan/dotfiles screenshot](https://user-images.githubusercontent.com/36706276/192147190-cf9cf4df-94cb-4a3b-b9d8-137ed0c2538f.png)
[https://github.com/fufexan/dotfiles](https://github.com/fufexan/dotfiles)
### linuxmobile
![](https://i.ibb.co/kGrhpKd/68747470733a2f2f692e696d6775722e636f6d2f553173336a69372e706e67.png)
![linuxmobile/hyprland-dots screenshot](https://i.ibb.co/kGrhpKd/68747470733a2f2f692e696d6775722e636f6d2f553173336a69372e706e67.png)
[https://github.com/linuxmobile/hyprland-dots](https://github.com/linuxmobile/hyprland-dots)
### flick0
![](https://raw.githubusercontent.com/flick0/dotfiles/aurora/assets/fetch.png)
![flick0/dotfiles screenshot](https://raw.githubusercontent.com/flick0/dotfiles/aurora/assets/fetch.png)
[https://github.com/flick0/dotfiles](https://github.com/flick0/dotfiles)
### iamverysimp1e
![](https://github.com/iamverysimp1e/dots/raw/main/ScreenShots/HyprLand/Rice1.png)
![iamverysimp1e/dots screenshot](https://github.com/iamverysimp1e/dots/raw/main/ScreenShots/HyprLand/Rice1.png)
[https://github.com/iamverysimp1e/dots](https://github.com/iamverysimp1e/dots)
### notusknot
![](https://github.com/notusknot/dotfiles-nix/raw/main/pics/screenshot.png)
![notusknot/dotfiles-nix screenshot](https://github.com/notusknot/dotfiles-nix/raw/main/pics/screenshot.png)
[https://github.com/notusknot/dotfiles-nix](https://github.com/notusknot/dotfiles-nix)
### coffebar
![](https://github.com/coffebar/dotfiles/raw/6a5d595c594f108cd10219df08d338e98e1d2d7d/screenshot.png)
![coffebar/dotfiles screenshot](https://github.com/coffebar/dotfiles/raw/6a5d595c594f108cd10219df08d338e98e1d2d7d/screenshot.png)
[https://github.com/coffebar/dotfiles](https://github.com/coffebar/dotfiles)

View file

@ -27,6 +27,7 @@ three_param_keyword = A, B, # OK
## Executing
You can execute a shell script on:
- startup of the compositor
- every time the config is reloaded.
- shutdown of the compositor
@ -96,8 +97,8 @@ Remember to use the name of the `Tablet` and not `Tablet Pad` or `Tablet tool`.
Additional properties only present in per-device configs:
- `enabled` -> (only for mice / touchpads / touchdevices / keyboards)
- enables / disables the device (connects / disconnects from the on-screen cursor)
- default: Enabled
- enables / disables the device (connects / disconnects from the on-screen cursor)
- default: Enabled
Example config section:

View file

@ -85,15 +85,17 @@ Leaving the name empty will define a fallback rule to use when no other rules
match.
There are a few special values for the resolutions:
- `preferred` - use the display's preferred size and refresh rate.
- `highres` - use the highest supported resolution.
- `highrr` - use the highest supported refresh rate.
Position also has a few special values:
- `auto` - let Hyprland decide on a position. By default, it places each new monitor to the right of existing ones.
- `auto-right/left/up/down` - place the monitor to the right/left, above or below other monitors.
***Please Note:*** While specifying a monitor direction for your first monitor is allowed, this does nothing and it will
_**Please Note:**_ While specifying a monitor direction for your first monitor is allowed, this does nothing and it will
be positioned at (0,0). Also the direction is always from the center out, so you can specify `auto-up` then `auto-left`,
but the left monitors will just be left of the origin and above the origin. You can also specify duplicate directions and
monitors will continue to go in that direction.
@ -231,7 +233,7 @@ monitor = eDP-1, 2880x1800@90, 0x0, 1, transform, 1
Transform list:
```
```plain
0 -> normal (no transforms)
1 -> 90 degrees
2 -> 180 degrees

View file

@ -19,7 +19,7 @@ For this case, the writer is taking the example of their laptop.
Upon running `lspci | grep -E 'VGA|3D'`, One can list all the video devices
available.
```
```plain
01:00.0 VGA compatible controller: NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] (rev a1)
06:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] (rev c6)
```
@ -29,7 +29,7 @@ Here it is clear that 2 GPUs are available, the dedicated NVIDIA GTX 1650 Mobile
Now, run `ls -l /dev/dri/by-path`
```
```plain
total 0
lrwxrwxrwx 1 root root 8 Jul 14 15:45 pci-0000:01:00.0-card -> ../card0
lrwxrwxrwx 1 root root 13 Jul 14 15:45 pci-0000:01:00.0-render -> ../renderD128
@ -64,7 +64,7 @@ required.
If instead you would like to use another GPU, or the wrong GPU is picked by default,
set `AQ_DRM_DEVICES` to a `:`-separated list of card paths, e.g.
```
```plain
env = AQ_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1
```

View file

@ -8,7 +8,7 @@ title: Uncommon tips & tricks
The easiest way to accomplish this is to set this using XKB settings, for
example:
```
```ini
input {
kb_layout = us,cz
kb_variant = ,qwerty
@ -69,7 +69,7 @@ submap = reset
## Remap Caps-Lock to Ctrl
```
```ini
input {
kb_options = ctrl:nocaps
}
@ -77,13 +77,14 @@ input {
## Swap Caps-Lock and Escape
```
```ini
input {
kb_options = caps:swapescape
}
```
## Set F13-F24 as usual function keys
By default, F13-F24 are mapped by xkb as various "XF86" keysyms. These cause binding
issues in many programs. One example is OBS Studio, which does not detect the XF86
keysyms as usable keybindings, making you unable to use them for binds. This option
@ -94,15 +95,17 @@ This option was only added recently to `xkeyboard-config`. Please ensure you are
2.43 or greater for this option to do anything.
{{< /callout >}}
```
```ini
input {
kb_options = fkeys:basic_13-24
}
```
## Minimize windows using special workspaces
## Minimize windows using special workspaces
This approach uses special workspaces to mimic the "minimize window" function, by using a single keybind to toggle the minimized state.
Note that one keybind can only handle one window.
```ini
bind = $mod, S, togglespecialworkspace, magic
bind = $mod, S, movetoworkspace, +0

View file

@ -194,6 +194,7 @@ To disable:
```sh
hyprctl seterror disable
```
### notify
Sends a notification using the built-in Hyprland notification system.

View file

@ -347,7 +347,7 @@ _Subcategory `group:groupbar:`_
| name | description | type | default |
| --- | --- | --- | --- |
| enabled | enables groupbars | bool | true |
| font_family | font used to display groupbar titles, use `misc:font_family` if not specified | string | [[Empty]] |
| font_family | font used to display groupbar titles, use `misc:font_family` if not specified | string | [\[Empty]] |
| font_size | font size of groupbar title | int | 8 |
| gradients | enables gradients | bool | true |
| height | height of the groupbar | int | 14 |
@ -369,7 +369,7 @@ _Subcategory `group:groupbar:`_
| 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 |
| font_family | Set the global default font to render the text including debug fps/notification, config error messages and etc., selected from system fonts. | string | Sans |
| splash_font_family | Changes the font used to render the splash text, selected from system fonts (requires a monitor reload to take effect). | string | [[Empty]] |
| splash_font_family | Changes the font used to render the splash text, selected from system fonts (requires a monitor reload to take effect). | string | [\[Empty]] |
| 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 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 |
@ -381,8 +381,8 @@ _Subcategory `group:groupbar:`_
| animate_mouse_windowdragging | If true, will animate windows being dragged by mouse, note that this can cause weird behavior on some curves | bool | false |
| disable_autoreload | If true, the config will not reload automatically on save, and instead needs to be reloaded with `hyprctl reload`. Might save on battery. | bool | false |
| enable_swallow | Enable window swallowing | bool | false |
| swallow_regex | The *class* regex to be used for windows that should be swallowed (usually, a terminal). To know more about the list of regex which can be used [use this cheatsheet](https://github.com/ziishaned/learn-regex/blob/master/README.md). | str | \[\[Empty\]\] |
| swallow_exception_regex | The *title* regex to be used for windows that should *not* be swallowed by the windows specified in swallow_regex (e.g. wev). The regex is matched against the parent (e.g. Kitty) window's title on the assumption that it changes to whatever process it's running. | str | \[\[Empty\]\] |
| swallow_regex | The _class_ regex to be used for windows that should be swallowed (usually, a terminal). To know more about the list of regex which can be used [use this cheatsheet](https://github.com/ziishaned/learn-regex/blob/master/README.md). | str | \[\[Empty\]\] |
| swallow_exception_regex | The _title_ regex to be used for windows that should _not_ be swallowed by the windows specified in swallow_regex (e.g. wev). The regex is matched against the parent (e.g. Kitty) window's title on the assumption that it changes to whatever process it's running. | str | \[\[Empty\]\] |
| focus_on_activate | Whether Hyprland should focus an app that requests to be focused (an `activate` request) | bool | false |
| mouse_move_focuses_monitor | Whether mouse moving into a different monitor should focus it | bool | true |
| render_ahead_of_time | [Warning: buggy] starts rendering _before_ your monitor displays a frame in order to lower latency | bool | false |

View file

@ -118,7 +118,7 @@ It is not possible to `float` (or any other of the static rules) a window based
| monitor \[id\] | sets the monitor on which a window should open. `id` can be either id or name (either e.g. `1` or e.g. `DP-1`) |
| workspace \[w\] | sets the workspace on which a window should open (for workspace syntax, see [dispatchers->workspaces](../Dispatchers#workspaces)). You can also make \[w\] to `unset`, will unset all previous workspace rules applied to this window. You can also add `silent` after the workspace to make the window open silently. |
| noinitialfocus | disables the initial focus to the window |
| pin | pins the window (i.e. show it on all workspaces) *note: floating only* |
| pin | pins the window (i.e. show it on all workspaces) _note: floating only_ |
| unset | removes all previously set rules for the given parameters. Please note it has to match EXACTLY. |
| nomaxsize | removes max size limitations. Especially useful with windows that report invalid max sizes (e.g. winecfg) |
| stayfocused | forces focus on the window as long as it's visible |

View file

@ -19,19 +19,20 @@ Selectors have props separated by a space. No spaces are allowed inside props
themselves.
Props:
- `r[A-B]` - ID range from A to B inclusive
- `s[bool]` - Whether the workspace is special or not
- `n[bool]`, `n[s:string]`, `n[e:string]` - named actions. `n[bool]` ->
whether a workspace is a named workspace, `s` and `e` are starts and ends
with respectively
- `m[monitor]` - Monitor selector
- `w[(flags)A-B]`, `w[(flags)X]` - Prop for window counts on the workspace.
A-B is an inclusive range, X is a specific number. Flags can be omitted.
It can be `t` for tiled-only, `f` for floating-only, `g` to count groups
instead of windows, and `v` to count only visible windows.
- `f[-1]`, `f[0]`, `f[1]`, `f[2]` - fullscreen state of the workspace. `-1`: no
fullscreen, `0`: fullscreen, `1`: maximized, `2`, fullscreen without
fullscreen state sent to the window.
- `r[A-B]` - ID range from A to B inclusive
- `s[bool]` - Whether the workspace is special or not
- `n[bool]`, `n[s:string]`, `n[e:string]` - named actions. `n[bool]` ->
whether a workspace is a named workspace, `s` and `e` are starts and ends
with respectively
- `m[monitor]` - Monitor selector
- `w[(flags)A-B]`, `w[(flags)X]` - Prop for window counts on the workspace.
A-B is an inclusive range, X is a specific number. Flags can be omitted.
It can be `t` for tiled-only, `f` for floating-only, `g` to count groups
instead of windows, and `v` to count only visible windows.
- `f[-1]`, `f[0]`, `f[1]`, `f[2]` - fullscreen state of the workspace. `-1`: no
fullscreen, `0`: fullscreen, `1`: maximized, `2`, fullscreen without
fullscreen state sent to the window.
### Syntax

View file

@ -9,13 +9,11 @@ These are the links to official Hyprland-related spaces or profiles:
Twitter: [twitter.com/hyprwm](https://twitter.com/hyprwm)
## Spaces
Discord: [discord.gg/hQ9XvMUjjr](https://discord.gg/hQ9XvMUjjr)<br/>
Matrix: `#hyprland:matrix.vaxry.net`
## Other
hyprland.org git instance: [code.hyprland.org](https://code.hyprland.org/)<br/>

View file

@ -27,7 +27,7 @@ that you can copy to your .vscode/ folder in the repo root.
With that, you can build in debug, go to the debugging tab and hit
`(gdb) Launch`.
*note:* You probably want to set `watchdog_timeout = 0` in the debug {} section
_note:_ You probably want to set `watchdog_timeout = 0` in the debug {} section
of your config. Otherwise Hyprland will notice its hanging when you hit a
breakpoint and it will crash after you continue out of it.
@ -78,7 +78,7 @@ If you want proper LSP support in an editor that doesn't automatically set it
up, use clangd. You'll probably notice there will be a bunch of warnings
because we haven't generated compile commands, to do this run:
```
```sh
cmake -S . -B build/ -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
```

View file

@ -53,10 +53,10 @@ Report an issue on GitHub or on the Discord server.
1. Build Hyprland in debug (`make debug`).
2. Start Hyprland and get it to crash.
3. In a tty or terminal, do `coredumpctl debug Hyprland`.
- If gdb asks you for symbols, say `y`.
- If it asks about paging, say `c`.
- If gdb asks you for symbols, say `y`.
- If it asks about paging, say `c`.
4. Once you get to `(gdb)`, start file logging with `set logging on`.
- For a specific file, use `set logging file output.log`.
- For a specific file, use `set logging file output.log`.
5. Run `bt -full`, then `exit` once finished, and attach the output.
## Obtaining a trace log
@ -152,7 +152,11 @@ we can render to) and put it on your screen (via the gpu) instead of a window.
Freezes, glitches, and others, can be caused by issues with Hyprland's communication with DRM, the driver
or kernel. In those cases, a DRM log is helpful.
_Please note, these logs are EXTREMELY verbose. Please reproduce your bug(s) ASAP to avoid getting a 1GB log_
{{< callout >}}
Please note, these logs are EXTREMELY verbose. Please reproduce your bug(s) ASAP to avoid getting a 1GB log.
{{< /callout >}}
```sh
echo 0x19F | sudo tee /sys/module/drm/parameters/debug # cnables verbose drm logging

View file

@ -35,10 +35,10 @@ _[wiki page](../Crashes-and-Bugs)_
For Nvidia graphics - This issue appears to be resolved when using Nvidia
Drivers 525.60.11 or later, but it may persist with older drivers.
For systems with limited hardware (Ex. iGPU, USB-C, USB Hubs) - Set `env = AQ_NO_MODIFIERS,1` in your config \
For systems with limited hardware (Ex. iGPU, USB-C, USB Hubs) - Set `env = AQ_NO_MODIFIERS,1` in your config.
To diagnose if you have the exact problem above you can get a [DRM log](https://wiki.hyprland.org/Crashes-and-Bugs/#debugging-drm-issues) and look for
```
```plain
Requested display configuration exceeds system DDB limitations
```
@ -78,7 +78,6 @@ utility, try our own screenshotting utility:
**Option 2:** You can also use hyprshot, more info [here](https://github.com/Gustash/Hyprshot).
**Option 3:** Install `flameshot`.
Flameshot has many built-in features like allowing you to draw with a paintbrush,
@ -90,7 +89,7 @@ The options above are smoother and more native to Wayland. If you still want to
use Flameshot, here are some configuration recommendations by users who've found
workarounds.
```
```ini
# noanim isn't necessary but animations with these rules might look bad. use at your own discretion.
windowrulev2 = noanim, class:^(flameshot)$
windowrulev2 = float, class:^(flameshot)$
@ -158,6 +157,7 @@ Be aware that they will not prevent tty-changing using Ctrl-Alt-F1...F7.
### How do I change me mouse cursor?
See [hyprcursor](../Hypr-Ecosystem/hyprcursor)
1. Set the GTK cursor using [nwg-look](https://github.com/nwg-piotr/nwg-look).
2. Add `exec-once=hyprctl setcursor [THEME] [SIZE]` to your config and restart Hyprland.
@ -351,10 +351,10 @@ pop-up. It should look something like this:
```bash
Window 55d794495400 -> :
...
class: [CLASS here]
title: [TITLE here]
...
...
class: [CLASS here]
title: [TITLE here]
...
```
If the pop-up disappears as you hover over it, you can add to your config:
@ -414,7 +414,7 @@ monitor = Unknown-1,disabled
If you are using a -git package, this is a common occurrence when ABI-breaking updates are done.
***Do not*** symlink different .so versions, this will cause crashes!!!
_**Do not**_ symlink different .so versions, this will cause crashes!!!
Instead, find all hypr* packages with `-git` you have installed, remove them (possibly remove dependencies of them, too)
and simply install them again.

View file

@ -341,6 +341,7 @@ epmi hypridle
epmi hyprpaper
epmi hyprpicker
```
{{% /details %}}
{{% details title="Solus*" closed="true" %}}

View file

@ -19,14 +19,22 @@ repositories.
## Nvidia?
_If not using an Nvidia card, skip this step_
{{< callout type=info >}}
If not using an Nvidia card, skip this step.
{{< /callout >}}
Please take a look at [The Nvidia page](../../Nvidia) before launching. It has
information regarding the needed environment and tweaks.
## VM?
_If not using a VM, skip this step_
{{< callout type=info >}}
If not using a VM, skip this step.
{{< /callout >}}
In a VM, make sure you have 3D acceleration enabled in your `virtio` config (or
`virt-manager`) otherwise Hyprland _**will not work**_.

View file

@ -14,19 +14,20 @@ These docs always target latest -git branch of respective apps.
## Wiki pages
### Apps/utilities for the user
- **[hyprpaper](./hyprpaper)**
- **[hyprpicker](./hyprpicker)**
- **[hypridle](./hypridle)**
- **[hyprlock](./hyprlock)**
- **[xdg-desktop-portal-hyprland](./xdg-desktop-portal-hyprland)**
- **[hyprsysteminfo](./hyprsysteminfo)**
- **[hyprsunset](./hyprsunset)**
- **[hyprpolkitagent](./hyprpolkitagent)**
- **[hyprpaper](./hyprpaper)**
- **[hyprpicker](./hyprpicker)**
- **[hypridle](./hypridle)**
- **[hyprlock](./hyprlock)**
- **[xdg-desktop-portal-hyprland](./xdg-desktop-portal-hyprland)**
- **[hyprsysteminfo](./hyprsysteminfo)**
- **[hyprsunset](./hyprsunset)**
- **[hyprpolkitagent](./hyprpolkitagent)**
### Libraries and other utilities
- **[hyprcursor](./hyprcursor)**
- **[hyprutils](./hyprutils)**
- **[hyprlang](./hyprlang)**
- **[hyprwayland-scanner](./hyprwayland-scanner)**
- **[aquamarine](./aquamarine)**
- **[hyprcursor](./hyprcursor)**
- **[hyprutils](./hyprutils)**
- **[hyprlang](./hyprlang)**
- **[hyprwayland-scanner](./hyprwayland-scanner)**
- **[aquamarine](./aquamarine)**

View file

@ -24,4 +24,3 @@ Configuration options are passed via environment variables starting with `AQ_` t
## Documentation
Documentation will come soon.

View file

@ -2,6 +2,7 @@
weight: 101
title: hyprcursor
---
hyprcursor is a new cursor theme format that has many advantages
over the widely used xcursor.
@ -22,8 +23,9 @@ to potential permission issues.
You can set your theme with envvars, or with `hyprctl setcursor`.
Env:
- `HYPRCURSOR_THEME` controls the theme.
- `HYPRCURSOR_SIZE` controls the cursor size.
- `HYPRCURSOR_THEME` controls the theme.
- `HYPRCURSOR_SIZE` controls the cursor size.
example snippet of `hyprland.conf`:

View file

@ -30,6 +30,7 @@ there only for legibility.
Categories can be regular, and "special".
Both are specified the same:
```ini
category {
variable = value
@ -37,6 +38,7 @@ category {
```
Special categories can have other properties, like for example containing a key:
```ini
special {
key = A
@ -54,11 +56,13 @@ example uses those for per-device configs.
### Defining variables
Variables can be defined like so:
```ini
$VAR = myData
```
Later on, you can use them like so:
```ini
$SUFFIX = -san
$NAME = Jeremy
@ -91,11 +95,13 @@ someoption = blah
### Inline options
If you want to specify an option inline, without opening and closing a category, the separator is `:`:
```ini
category:variable = value
```
If the category is special and requires a key, you can do:
```ini
category[keyvalue]:variable = value
```
@ -105,4 +111,3 @@ This is the syntax used by `hyprctl keyword`, for example.
## Developer documentation
See the documentation at [hyprland.org/hyprlang](https://hyprland.org/hyprlang/).

View file

@ -14,6 +14,7 @@ is not required, but recommended. Without it, locking shows the current screen.
### General
Variables in the `general` category:
| variable | description | type | default |
| -- | -- | -- | -- |
| disable_loading_bar | disables the loading bar on the bottom of the screen while hyprlock is booting up. | bool | false |
@ -32,13 +33,14 @@ Variables in the `general` category:
{{< callout type=warning >}}
If you are not on hyprland, or your `XDG_CURRENT_DESKTOP` is not Hyprland, the fade out will be disabled and the value of your `no_fade_out` variable will be ignored.
If you are not on hyprland, or your `XDG_CURRENT_DESKTOP` is not Hyprland, the fade out will be disabled and the value of your `no_fade_out` variable will be ignored.
{{< /callout >}}
## Keyboard Shortcuts and Actions
The following keys and key-combinations describe hyprlock's default behaviour:
| input | description |
| -- | -- |
| ESC | Clear password buffer |
@ -80,6 +82,7 @@ widget_name {
### Shadowable
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 |
@ -212,17 +215,20 @@ input-field {
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).
- `outline_thickness` is not `0`: if set, font and inner colors will be swapped on password check and authentication failure.
- `outline_thickness` is `0`: if set, font color will be swapped with inner one on color change events (e.g. Caps-lock on or password check).
- `outline_thickness` is not `0`: if set, font and inner colors will be swapped on password check and authentication failure.
{{< /callout >}}
Available variables for `placeholder_text`:
- `$PROMPT` - prompt text provided by pam. Usually this will be "Password: ", but it depends on your pam configuration.
- `$PROMPT` - prompt text provided by pam. Usually this will be "Password: ", but it depends on your pam configuration.
Available variables for `fail_text`:
- `$FAIL` - pam fail reason
- `$ATTEMPTS` - number of failed authentication attempts
- `$FAIL` - pam fail reason
- `$ATTEMPTS` - number of failed authentication attempts
### Label
@ -247,15 +253,16 @@ label {
```
Available variables for `text`:
- `$USER` - username (e.g. linux-user)
- `$DESC` - user description (e.g. Linux User)
- `$TIME` - current time in 24-hour format (e.g. `13:37`)
- `$TIME12` - current time in 12-hour format (e.g. `1:37 PM`)
- `$PROMPT` - last pam prompt
- `$FAIL` - last pam fail reason
- `$ATTEMPTS` - failed attempts
- `$LAYOUT` - current keyboard layout
- `$FPRINTMESSAGE` - last message from fingerprint matching
- `$USER` - username (e.g. linux-user)
- `$DESC` - user description (e.g. Linux User)
- `$TIME` - current time in 24-hour format (e.g. `13:37`)
- `$TIME12` - current time in 12-hour format (e.g. `1:37 PM`)
- `$PROMPT` - last pam prompt
- `$FAIL` - last pam fail reason
- `$ATTEMPTS` - failed attempts
- `$LAYOUT` - current keyboard layout
- `$FPRINTMESSAGE` - last message from fingerprint matching
`text` also supports launching commands, for example:
@ -264,12 +271,13 @@ text = cmd[update:1000] echo "<span foreground='##ff2222'>$(date)</span>"
```
Worth noting:
- `update:` - time is in ms.
- label can be forcefully updated by specifying `update:<time>:1` or `update:<time>:true` and sending `SIGUSR2` to hyprlock. `<time>` can be `0` in this case.
- `$ATTEMPTS[<string>]` format can be used to show `<string>` when there are no failed attempts. You can use pango-markup here. `<string>` can be empty to hide.
- `$LAYOUT[<str0>,<str1>,...]` format is available to replace indexed layouts. You can use settings from `hyprland.conf`, e.g. `$LAYOUT[en,ru,de]`. Also, single `!` character will hide layout. E.g. `$LAYOUT[!]` will hide default (0 indexed) and show others.
- Variables seen above are parsed _before_ the command is ran.
- **do not** run commands that never exit. This will hang the AsyncResourceGatherer and you won't have a good time.
- `update:` - time is in ms.
- label can be forcefully updated by specifying `update:<time>:1` or `update:<time>:true` and sending `SIGUSR2` to hyprlock. `<time>` can be `0` in this case.
- `$ATTEMPTS[<string>]` format can be used to show `<string>` when there are no failed attempts. You can use pango-markup here. `<string>` can be empty to hide.
- `$LAYOUT[<str0>,<str1>,...]` format is available to replace indexed layouts. You can use settings from `hyprland.conf`, e.g. `$LAYOUT[en,ru,de]`. Also, single `!` character will hide layout. E.g. `$LAYOUT[!]` will hide default (0 indexed) and show others.
- Variables seen above are parsed _before_ the command is ran.
- **do not** run commands that never exit. This will hang the AsyncResourceGatherer and you won't have a good time.
## User Signals

View file

@ -31,12 +31,12 @@ sudo dnf install hyprpaper
{{% /details %}}
{{% details title="Manual" closed="true" %}}
### Dependencies
The development files of these packages need to be installed on the system for `hyprpaper` to build correctly.
(Development packages are usually suffixed with `-dev` or `-devel` in most distros' repos).
- wayland
- wayland-protocols
- pango
@ -51,17 +51,20 @@ The development files of these packages need to be installed on the system for `
- hyprwayland-scanner
To install all of these in Fedora, run this command:
```
```sh
sudo dnf install wayland-devel wayland-protocols-devel hyprlang-devel pango-devel cairo-devel file-devel libglvnd-devel libglvnd-core-devel libjpeg-turbo-devel libwebp-devel gcc-c++ hyprutils-devel hyprwayland-scanner
```
On Arch:
```
```sh
sudo pacman -S ninja gcc wayland-protocols libjpeg-turbo libwebp pango cairo pkgconf cmake libglvnd wayland hyprutils hyprwayland-scanner hyprlang
```
On OpenSUSE:
```
```sh
sudo zypper install ninja gcc-c++ wayland-protocols-devel Mesa-libGLESv3-devel file-devel hyprutils-devel hyprwayland-scanner
```
@ -101,9 +104,9 @@ wallpaper = monitor, /home/me/amongus.png
wallpaper = , /home/me/amongus.png
```
Monitor names can be checked with `hyprctl monitors`
Monitor names can be checked with `hyprctl monitors`.
Also can be used with `desc:` followed by the monitor's description without the (PORT) at the end
Also can be used with `desc:` followed by the monitor's description without the (PORT) at the end.
You may add `contain:` or `tile:` before the file path in `wallpaper =` to set the mode to either contain or tile, respectively, instead of cover:

View file

@ -7,4 +7,3 @@ hyprwayland-scanner, also called hw-s, is a utility to generate sources and head
for wayland protocol specifications.
It is similar to wayland-scanner, but instead of C, it generates neat and safe C++ implementations.

View file

@ -52,15 +52,15 @@ in the `nix develop` shell.
For CMake:
```bash
$ cmakeConfigurePhase # to run the CMake configure phase
$ ninjaBuildPhase # to run the Ninja build phase (or buildPhase when ninja is not available)
$ ninjaInstallPhase # to run the Ninja install phase (or installPhase when ninja is not available)
cmakeConfigurePhase # to run the CMake configure phase
ninjaBuildPhase # to run the Ninja build phase (or buildPhase when ninja is not available)
ninjaInstallPhase # to run the Ninja install phase (or installPhase when ninja is not available)
```
For Meson:
```bash
$ mesonConfigurePhase # to run the Meson configure phase
$ ninjaBuildPhase # to run the Ninja build phase
$ mesonInstallPhase # to run the Meson install phase
mesonConfigurePhase # to run the Meson configure phase
ninjaBuildPhase # to run the Ninja build phase
mesonInstallPhase # to run the Meson install phase
```

View file

@ -39,18 +39,18 @@ One issue is with [suspend](https://github.com/NVIDIA/open-gpu-kernel-modules/is
You can choose between the `nvidia` or the `nvidia-dkms` package. There are pros and cons
for each, but it is generally recommended to use the `dkms` package,
as you won't have to rebuild the initramfs [manually](https://wiki.archlinux.org/title/NVIDIA#mkinitcpio) every time the kernel and drivers update, for example.
If you're using a kernel that isn't `linux` or `linux-lts`, the `dkms` package is *required*.
If you're using a kernel that isn't `linux` or `linux-lts`, the `dkms` package is _required_.
## Installation
Install the following packages:
1. `nvidia` or `nvidia-dkms`: The driver itself. Optionally, the open source drivers
from NVIDIA can be installed as `nvidia-open` or `nvidia-open-dkms`.
from NVIDIA can be installed as `nvidia-open` or `nvidia-open-dkms`.
2. `nvidia-utils`: The userspace graphics drivers. You need this for running Vulkan
applications. If you'd like to use apps like Steam or Wine, install `lib32-nvidia-utils` as well.
applications. If you'd like to use apps like Steam or Wine, install `lib32-nvidia-utils` as well.
3. `egl-wayland` (`libnvidia-egl-wayland1` and `libnvidia-egl-gbm1` on Ubuntu): This is required
in order to enable compatibility between the EGL API and the Wayland protocol.
in order to enable compatibility between the EGL API and the Wayland protocol.
## DRM kernel mode setting
@ -86,6 +86,7 @@ env = __GLX_VENDOR_LIBRARY_NAME,nvidia
```
and set this variable:
```ini
cursor {
no_hardware_cursors = true
@ -126,7 +127,7 @@ The install instructions are available in the README, however, a quick guide wil
be given here:
1. Install the package. On Arch, this is `libva-nvidia-driver` in the official
repos.
repos.
2. Add this variable to your hyprland config:
```sh
@ -143,12 +144,12 @@ You can check the README to get it working for Firefox.
### Regarding environment variables
- If you encounter crashes in Firefox, remove the line
`env = GBM_BACKEND,nvidia-drm`.
`env = GBM_BACKEND,nvidia-drm`.
- If you face problems with Discord windows not displaying or screen sharing not
working in Zoom, first try running them in Native Wayland (more details below).
Otherwise, remove or comment the line
`env = __GLX_VENDOR_LIBRARY_NAME,nvidia`.
working in Zoom, first try running them in Native Wayland (more details below).
Otherwise, remove or comment the line
`env = __GLX_VENDOR_LIBRARY_NAME,nvidia`.
### Multi-monitor with hybrid graphics
@ -244,9 +245,9 @@ Reboot your computer and it should be working.
If it does not, try:
1. Lowering your monitor's refresh rate: This can stop the flickering
altogether.
altogether.
2. Using the [Nouveau driver](https://wiki.archlinux.org/title/Nouveau) as
mentioned above.
mentioned above.
### Suspend/wakeup issues

View file

@ -34,6 +34,7 @@ image/text previews, multi-select, pinned items and more.
[GitHub](https://github.com/savedra1/clipse)
## cb
Start by adding the following line to your `~/.config/hypr/hyprland.conf`
```ini
@ -166,4 +167,3 @@ GUI-like behavior.
For more details on `clipse`, please refer to its GitHub repo linked at the top
of the page.

View file

@ -7,12 +7,12 @@ title: File Managers
- [dolphin](https://github.com/KDE/dolphin): File manager by KDE.
- [nautilus](https://apps.gnome.org/en/Nautilus/): File manager by Gnome.
- [nautilus-admin-gtk4](https://github.com/MacTavishAO/nautilus-admin-gtk4): Open files with elevated privileges.
- [nautilus-image-converter](https://gitlab.gnome.org/coreyberla/nautilus-image-converter): Resize and rotate images.
- [nautilus-open-any-terminal](https://github.com/Stunkymonkey/nautilus-open-any-terminal): Open terminals in selected directory.
- [nautilus-admin-gtk4](https://github.com/MacTavishAO/nautilus-admin-gtk4): Open files with elevated privileges.
- [nautilus-image-converter](https://gitlab.gnome.org/coreyberla/nautilus-image-converter): Resize and rotate images.
- [nautilus-open-any-terminal](https://github.com/Stunkymonkey/nautilus-open-any-terminal): Open terminals in selected directory.
- [nemo](https://github.com/linuxmint/nemo): File manager by Cinnamon.
- [nemo-fileroller](https://github.com/linuxmint/nemo-extensions/tree/master/nemo-fileroller): File archiver extension.
- [nemo-terminal](https://github.com/linuxmint/nemo-extensions/tree/master/nemo-terminal): Embedded terminal window.
- [nemo-fileroller](https://github.com/linuxmint/nemo-extensions/tree/master/nemo-fileroller): File archiver extension.
- [nemo-terminal](https://github.com/linuxmint/nemo-extensions/tree/master/nemo-terminal): Embedded terminal window.
- [pcmanfm](https://github.com/lxde/pcmanfm): File manager by LXDE.
- [thunar](https://github.com/neilbrown/thunar): File manager by XFCE.

View file

@ -1,3 +1,7 @@
---
weight: 12
title: Hypr Ecosystem
---
The hypr ecosystem is a collection of apps developed by HyprWM, that are
designed for Hyprland and to integrate with it as nicely as possible.

View file

@ -29,11 +29,12 @@ for Hyprland's IPC written in Rust.
### Screen shaders/color temperature
- [hyprshade](https://github.com/loqusion/hyprshade) by _loqusion_: Utility for
swapping and scheduling screen shaders; also functions as an
[automatic color temperature shifter](https://en.wikipedia.org/wiki/F.lux).
swapping and scheduling screen shaders; also functions as an
[automatic color temperature shifter](https://en.wikipedia.org/wiki/F.lux).
- [gammastep](https://gitlab.com/chinstrap/gammastep) by _Chinstrap_: Control temperature color automatically depending on the time of the day and location.
### Wireless settings
- [iwgtk](https://github.com/J-Lentz/iwgtk) by _Jesse Lentz_: WiFi settings frontend for `iwd` in GTK
- [blueberry](https://github.com/linuxmint/blueberry) by _Linux Mint_: Bluetooth settings frontend in GTK
- [Overskride](https://github.com/kaii-lb/overskride) by _kaii-lb_: A simple yet powerful bluetooth client in GTK4

View file

@ -139,24 +139,24 @@ workspaces. It requires [bash](https://linux.die.net/man/1/bash),
```sh
#!/usr/bin/env bash
function clamp {
min=$1
max=$2
val=$3
python -c "print(max($min, min($val, $max)))"
min=$1
max=$2
val=$3
python -c "print(max($min, min($val, $max)))"
}
direction=$1
current=$2
if test "$direction" = "down"
then
target=$(clamp 1 10 $(($current+1)))
echo "jumping to $target"
hyprctl dispatch workspace $target
target=$(clamp 1 10 $(($current+1)))
echo "jumping to $target"
hyprctl dispatch workspace $target
elif test "$direction" = "up"
then
target=$(clamp 1 10 $(($current-1)))
echo "jumping to $target"
hyprctl dispatch workspace $target
target=$(clamp 1 10 $(($current-1)))
echo "jumping to $target"
hyprctl dispatch workspace $target
fi
```
@ -177,13 +177,13 @@ socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket
#!/usr/bin/env bash
spaces (){
WORKSPACE_WINDOWS=$(hyprctl workspaces -j | jq 'map({key: .id | tostring, value: .windows}) | from_entries')
seq 1 10 | jq --argjson windows "${WORKSPACE_WINDOWS}" --slurp -Mc 'map(tostring) | map({id: ., windows: ($windows[.]//0)})'
WORKSPACE_WINDOWS=$(hyprctl workspaces -j | jq 'map({key: .id | tostring, value: .windows}) | from_entries')
seq 1 10 | jq --argjson windows "${WORKSPACE_WINDOWS}" --slurp -Mc 'map(tostring) | map({id: ., windows: ($windows[.]//0)})'
}
spaces
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
spaces
spaces
done
```