Commit graph

241 commits

Author SHA1 Message Date
Vaxry
0cfdde3d1a xdg-shell: move to new impl 2024-05-14 23:02:24 +01:00
Paul
064bdb06f1
hyprctl: Add locked cmd to requests (#6042)
Co-authored-by: Leftas <info@leftas.dev>
2024-05-13 14:57:06 +01:00
Vaxry
b0861b6709 config: move various cursor-related vars to cursor: 2024-05-09 22:25:20 +01:00
Vaxry
84e8d1810d Tablet: move to new impl
Ring and strip are not implemented. Will I implement this? God fucking knows. Nobody seems to have that anyways.
2024-05-09 13:37:39 +01:00
Vaxry
ed411f53bd cursor: move to a hyprland impl
This moves wlr_cursor to a completely new impl mostly under
CPointerManager

Also adds beginSimple to OpenGL for simple render passes (e.g. cursor)
2024-05-09 13:37:39 +01:00
Ikalco
6ccc22194c
xkb: check value correctly with xkb_state_layout_index_is_active() (#5925) 2024-05-07 16:07:50 +01:00
Vaxry
1ed1ce9506
internal: new shared_ptr and weak_ptr implementation (#5883)
moves std::shared_ptrs to a new implementation

Advantages:
- you can dereference a weak_ptr directly. This will obviously segfault on a nullptr deref if it's expired.
   - this is useful to avoid the .lock() hell where we are 100% sure the pointer _should_ be valid. (and if it isn't, it should throw.)
- weak_ptrs are still valid while the SP is being destroyed.
   - reasoning: while an object (e.g. CWindow) is being destroyed, its `weak_ptr self` should be accessible (the sp is still alive, and so is CWindow), but it's not because by stl it's already expired (to prevent resurrection)
   - this impl solves it differently. w_p is expired, but can still be dereferenced and used. Creating `s_p`s is not possible anymore, though.
   - this is useful in destructors and callbacks.
2024-05-05 17:16:00 +01:00
Vaxry
1237732b97 input: Introduce basic hyprland HID classes
Implements an intermediary HID class for mice, keyboards and touch devices, removing the old structs from WLClasses.hpp

Yes, virtual ones are duplicated a bit, but will likely be de-duped once wlr_input_device is not used anymore.
2024-05-03 22:40:27 +01:00
Sungyoon Cho
801437cd54
hyprctl: add missing json string escapes (#5811) 2024-04-30 14:13:36 +01:00
Vaxry
39595aaca3 hyprctl: make commits wrapped in quotes in json 2024-04-29 16:10:26 +01:00
Vaxry
a5a6480917
core: Move /tmp/hypr to $XDG_RUNTIME_DIR/hypr (#5788)
Moves the directory containing sockets and logs.
Also restructures lockfiles a bit.

For consumers, check if `$XDG_RUNTIME_DIR/hypr` exists. If so, use it. If not, use the old `/tmp/hypr`.
2024-04-28 22:25:24 +01:00
Vaxry
bca7804bb6
internal: Window storage rework - part 1 (#5762)
* Window storage rework - part 1

* format

* remove useless include

* fix pch

* format

* fix crash in dwindle

* fix vram leak

* prefer .expired() for bool checks
2024-04-27 12:43:12 +01:00
Thomas Lindae
78b04c3a76
hyprctl: fix activewindow request not showing workspace name (#5623) 2024-04-17 17:44:46 +01:00
JManch
303b9956b2
hyprctl: print monitor disabled status (#5525) 2024-04-10 09:50:00 +01:00
SoSeDiK
f2addfb404
props: Parse border color props as gradient (#5513) 2024-04-09 16:14:53 +01:00
SoSeDiK
43b96f03b5
props: Allow setting per-window fullscreen opacity (#5470) 2024-04-07 23:19:02 +01:00
Vaxry
1ae592fcd9 hyprpm: add support for minimum versions 2024-04-05 00:46:37 +01:00
Vaxry
ef23ef60c5
Workspace/core: Refactor workspace storage (#5380)
* refactor workspaces to use ptrs

* clang-format
2024-04-02 20:32:39 +01:00
Micovec
8cb38d41d2
hyprctl: fix plugin list on no plugins (#5357) 2024-03-31 21:45:22 +01:00
Khalid
059e85ae69
input: Add options to set tablet's active area (#5199)
* Add options to set tablet's active area

* Set tablet's active area in `setTabletConfigs`

* Fix formatting for new variables in ConfigManager

* Report tablet's physical size with hyprctl
2024-03-23 20:31:03 +00:00
zakk4223
4c796683c0
config: Config error limit/hyprctl (#5165)
* Add error_limit to limit the number of config error messages shown in notification

* Add configerrors hyprctl command

* Formatting

* Formatting for not my code

* Use CVarList, add escapeJSONStrings

* Add indication there are more undisplayed errors

* Restore suppress_errors; move getErrors() to ConfigManager

* Formatting, wtf

* Format
2024-03-21 01:55:13 +00:00
Vaxry
c3882bb832
internal: Support libhyprcursor (#5009)
woo

---------

Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2024-03-09 16:52:59 +00:00
Vaxry
717d5b3cc2 hyprctl: hide unmapped windows without -a 2024-03-08 17:47:12 +00:00
Epilepsy Gatherings
e52d3fa852
windowrules: Make min/maxsize rules dynamic (#4775)
* rebase

* simplify and remove prop

* Stuff

- add back win prop
- change minsize defaults
- change request formatting for setprop

* style fix

* remove empty line

* change defaults

* redo string to vec

* remove redundant parsing

* change to vec

* support commas

* remove static rules

* take out garbage

* format

* don't allow commas and resize on setprop

* use isNumber
2024-03-08 02:24:44 +00:00
ItsDrike
ceecdd0fd5
hyprctl: Fix incorrect invalid fontsize kwarg response (#5013) 2024-03-07 23:34:33 +00:00
ItsDrike
067df84388
notify: Add custom fontsize support for notifications (#4981)
* Add custom fontsize support for notifications

* Remove debug stuff

* Use original default font size

* Handle fontsize as keyword arg

* Use CVarList::join instead of for loop

* Use size_t for msgidx
2024-03-06 21:20:26 +00:00
Vaxry
bdfa8ab856 hyprctl: print format and modes
fixes #4971
2024-03-05 13:55:38 +00:00
Vaxry
12da0fc84f hyprctl: parse custom types in getoption 2024-03-04 10:36:38 +00:00
Vaxry
063708df26 config: improve config value infrastructure 2024-03-03 18:41:38 +00:00
Tobias Zimmermann
964f1a438d
keybinds: Add the 'catchall' keyword that matches all keys (#4930)
* Add the 'catchall' keyword that matches all keys

This keyword can be used to define arbitrary keybinds. The only special
behavior that it exhibits is that it matches every key, including
modifier keys. Any flags still apply normally.

This commit also fixes an issue that keys bound via the code:KEYCODE
format were not unbound correctly.

* Disallow catchall keybinds outside of submaps

A catchall keybind outside a submap would prevent essentially all key
events from going through to applications and would be difficult to
remove again.
2024-03-03 00:17:02 +00:00
ItsDrike
be89d6faa9
notifs: Implement notification dimissing (#4790) 2024-03-02 18:12:31 +00:00
GartoxFR
b2c3440477
animations: Refactor AnimatedVariable (#4911)
* animation: Refactor AnimatedVariable

This commit decomposes the AnimatedVariable class into a base class
with the common attribute to all variable types and a templated derived
type containing strongly typed info on the type being animated.

Access to the typed version is perfomed using the visitor pattern. A
utility is provided to build a visitor on the fly using lambdas.

Adding a new type to be animated should just be a matter of adding the
typed in the list defined by the ANIMABLE_TYPES macro

The size of the commit is justified by the API change in the
AnimatedVariable class. No more vec(), fl() or col() method but a unified
value() method.

* animation: Remove visitor pattern

* animation: Fix coding style

* animation: Fix coding style
2024-03-02 00:35:17 +00:00
Vaxry
6f83856025 hyprctl: add -r argument 2024-02-24 14:02:03 +00:00
Vaxry
bdbd8d965d hyprctl: jsonify new gaps
fixes #4820
2024-02-23 21:25:04 +00:00
Dashie
ddf022d61c
feat: Add css style gaps (#4723) 2024-02-21 11:07:39 +00:00
vaxerski
df82625206 hyprctl: reload everything on dynamic source keywords 2024-02-19 12:45:05 +00:00
Vaxry
13f6f0b923
Migrate the config to hyprlang (#4656)
* Migrate to hyprlang

* pop up errors

* fix swapped args

* Meson & Nix: build with hyprlang

* CI: add hyprlang to setup action

* add infra for plugin stuff

* fix hyprctl getoption

* fix hyprctl getoption with json

* format

* fix post parse logic

* fix autogen config

* oops missed exec-once

* fmt

* fix ws rules

* require 0.3.0 for hyprlang

* nix: flaek

* minor type fixes

* fix cfg usages in swipe

* use cvarlist for ws rules

* fix throw in addPluginConfigVar

* Nix: update hyprlang

* minor fixes

* fix disableLogs

* mention hyprlang docs

* bump hyprlang dep in cmake

* Meson: bump min hyprlang version

Nix: update hyprlang

* minor fix

* Nix: update meson patch

---------

Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2024-02-18 15:00:34 +00:00
Jacob Birkett
a8dae8f5e1
socket2: monitoraddedv2 IPC event for monitor description and id (#4646)
* add monitor szShortDescription without DRM node name

* change hyprctl to use szShortDescription

* add monitoraddedv2 event

* add monitor ID as first param of monitoraddedv2
2024-02-15 14:22:20 +00:00
Epilepsy Gatherings
2a3429d4cf
internal: add forcenofocus prop (#4672)
* add forcenofocus

* change nofocus to overridable var
2024-02-13 18:07:19 +00:00
ComycSans
927da86e3e
hyprctl: fix dispatchBatch() treating empty curitem as last request (#4681) 2024-02-12 15:16:00 +00:00
Vaxry
60bda7ee3d pluginapi: allow registering hyprctl commands
closes #4616
2024-02-05 01:57:29 +00:00
Vaxry
939696f97e hyprctl: move to a class and unify commands 2024-02-05 01:56:49 +00:00
Isaac Myhal
b6516bad02
config: Add border gradients to windowrulev2 (#4335)
* Add border gradients to windowrulev2

* windowrule border gradient: Use CVarList to parse

* windowrule border gradient: No {} around short ifs
2024-01-14 18:27:32 +01:00
dranull
13d9a637d6
hyprctl: screen_shader config fixes (#4102)
* Allow "/" in values of requests

* Don't tick on empty value
2024-01-14 18:12:52 +01:00
vaxerski
069880e374 hyprctl: add systeminfo 2024-01-01 17:53:03 +01:00
MightyPlaza
5f65946c84
hyprctl: add decorations (#4275)
* add hyprctl decorations

modified:   hyprctl/main.cpp
modified:   src/debug/HyprCtl.cpp
modified:   src/render/decorations/CHyprBorderDecoration.cpp
modified:   src/render/decorations/CHyprBorderDecoration.hpp
modified:   src/render/decorations/CHyprDropShadowDecoration.cpp
modified:   src/render/decorations/CHyprDropShadowDecoration.hpp
modified:   src/render/decorations/CHyprGroupBarDecoration.cpp
modified:   src/render/decorations/CHyprGroupBarDecoration.hpp
modified:   src/render/decorations/IHyprWindowDecoration.cpp
modified:   src/render/decorations/IHyprWindowDecoration.hpp

* fixes
modified:   hyprctl/main.cpp
modified:   src/render/decorations/IHyprWindowDecoration.cpp
2023-12-28 16:38:16 +01:00
André Silva
2c2ff4b61b
hyprctl: check only ISDEBUG in version (#3702) 2023-12-26 14:14:12 +01:00
MightyPlaza
2a777cb71b
hyprctl: add commit date to "hyprctl version" (#4171)
* add commit date to "hyprctl version"
modified:   scripts/generateVersion.sh
modified:   src/debug/HyprCtl.cpp
modified:   src/version.h.in

* Nix: add date to hyprctl

---------

Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-12-17 14:29:58 +00:00
François Conzelmann
4a42344e97
style/ci: apply clang-format and verify it in ci (#4039)
* style: apply clang-format

* ci: add new clang-format job to CI
2023-12-06 22:54:56 +00:00
François Conzelmann
1fc1e4e9cb
monitor: remove comma from monitor description (#3996)
this allows for monitor specific rules to work on monitor with comma on
their description

fixes #2457
2023-11-30 01:48:10 +00:00