Commit Graph

336 Commits

Author SHA1 Message Date
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 3e930a568a format: fix format 2024-03-09 03:09:25 +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
Zach DeCook b1e2ca04a0
CrashReporter: Fix compilation with musl libc (#4805)
It can be assumed this doesn't function correctly:
my 'configuration does not support execinfo.h', so I have no backtrace to test against
2024-03-05 22:51:34 +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
thejch 030ed27cc8
crashreporter: Use ~/.cache as cache dir (#4719)
* use ~/.cache for crash reports

* minor word edit

* clang-format

* minor typo
2024-02-20 00:55:04 +00:00
Vaxry 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
Vaxry 2a002f31e4 renderer: don't set solitary on present notifications
fixes #4647
2024-02-14 11:09:18 +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
thejch 3d9ca6381d
crashreporter: fix logging of function data (#4632) 2024-02-07 09:50:23 +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
Vaxry f40e382fc6 crashreporter: skip first possibly cut off line in log tail 2024-01-20 09:16:27 +01: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
Vaxry 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
Vaxry bc51a91043 crashreporter: don't explicitly set 777 on crash report directory
fixes #4218
2023-12-21 22:18:07 +01:00
Vaxry ef445093f9 internal: convert uname fields to strings before logging
fixes #4188, thanks @jbeich
2023-12-18 23:33:10 +00: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
Vaxry 03c6f4506a internal: various improvements to avoid crashes on exit 2023-12-06 14:46:29 +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
Vaxry 2ebfd0c745
renderer: Move to a full Hyprland GL rendering pipeline (#3920)
Also updates wlroots
2023-11-24 10:54:21 +00:00
zakk4223 4729265284
hyprctl: Add 'layouts' command (#3895)
* Add hyprctl 'layouts' command

formatting

* Add getAllLayoutNames(), move m_vLayouts back to private

Formatting

* clang-format
2023-11-21 18:43:38 +00:00
Vaxry 51282f964f plugins: make logging on error more verbose
ref #3874
2023-11-17 22:22:31 +00:00
TheAngusMcFire db8f13291a
hyprctl: add monitors all to report all connected monitors (#3730)
---------

Co-authored-by: Christian Rieger <christian.rieger@student.tugraz.at>
2023-11-17 16:01:21 +00:00
Vaxry e195e51c1b logging: move to an internal rolling log buffer
disables logging to the logfile by default
2023-11-14 20:06:04 +00:00
Vaxry 016a7a9c9b hyprctl: use a rolling buffer for reading requests
fixes #3846
2023-11-13 16:30:37 +00:00
Tobias Pisani da6fa9cbd2
hyprctl: return group list in correct order (#3683) 2023-11-09 16:05:05 +00:00
Vaxry 55b4f84fea
Internal: Hyprland box implementation (#3755)
* box impl

* remove unused operators

* missed applyfromwlr
2023-11-04 17:03:05 +00:00
Vaxry 21e9313c10
Core: various unsafe state improvements (#3713)
Fixes #3637
2023-11-01 18:53:36 +00:00
Vaxry 7f4b0aaadc hyprctl: add focusHistoryID to hyprctl clients
fixes #3661
2023-10-28 17:22:42 +01:00
Vaxry 03771d3aa9 windowrules: add nearestneighbor 2023-10-24 21:29:03 +01:00
Vaxry 14a3c939ce hyprctl: log monitor id in workspaces request
fixes #3640
2023-10-24 01:03:40 +01:00
Vaxry a61eb7694d hooksystem: add callbackinfo struct and cancellable events 2023-10-21 14:52:43 +01:00
Roberto Previdi af72404259
hyprctl: add a query for workspace rules (#3630) 2023-10-21 02:28:34 +01:00
memchr 54e1c2ccbd
fix(build): do not include wlr headers directly, use includes.hpp instead. (#3587) 2023-10-16 17:39:12 +01:00
Alexander Seleznev 1f582457cf
Debug: respect logging settings for wlr (#3584) 2023-10-15 19:19:07 +01:00
Philip Damianik 442209942f
cleanup: Replace find() with C++20 starts_with(), ends_with() and contains() (#3572)
* Replace find() with C++20 starts_with() and ends_with()

* Replace find() with C++20 contains()
2023-10-15 19:07:23 +01:00
Michał Lewandowski 3a61350286
notifications: Schedule a frame on notification creation (#3556) 2023-10-13 00:05:05 +01:00
Vaxry 06cc42441c
build: guard execinfo.h via build systems (#3547)
* guard execinfo via cmake

* libexecinfo -> execinfo macro name

* meson: add execinfo check

* move check in cmake up

---------

Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-10-11 22:27:53 +01:00
vaxerski 24c04a8b7c crashreporter: avoid using empty CACHE_HOME 2023-10-05 16:57:54 +01:00
vaxerski a2a29a60e5 tearing: cleanup vars and avoid rendering before drm is ready 2023-09-30 17:07:50 +01:00
vaxerski 6a4643842d hyprctl: log activelyTearing for monitors 2023-09-30 13:12:04 +01:00
Vaxry 88b63a00b6
renderer: Tearing implementation (#3441) 2023-09-28 21:48:33 +01:00
Vaxry ffacd2efd1 hyprctl: fix crash in unsafe state with activeworkspace
fixes #3419
2023-09-25 15:00:28 +01:00
vaxerski 9c00381dfc hyprctl: avoid .pop_back() on empty string 2023-09-23 13:26:35 +01:00
memchr 6594b50e57
logging/format: use std::format_string to catch formatting string errors at compile time (#3377)
* fix(log): use constexpr format string

* deprecate getFormat
2023-09-20 08:26:20 +01:00
vaxerski 60f10e6037 hyprctl: print monitor IDs as int64 2023-09-19 00:41:56 +01:00
Philip Damianik 1a6f961de2
hyprctl: Make device configs queryable (#3226)
* Make device configs queryable

Signed-off-by: pdamianik <39028343+pdamianik@users.noreply.github.com>

* Add set property to getoption output

---------

Signed-off-by: pdamianik <39028343+pdamianik@users.noreply.github.com>
2023-09-09 12:25:17 +01:00
vaxerski b2516010b7 hyprctl: fix missing comma in getopt -j
Fixes #3200
2023-09-06 23:52:25 +02:00
Philip Damianik 8c83852704
internal: Remove all `.c_str()` calls when using `std::vformat` (#3198)
Signed-off-by: pdamianik <39028343+pdamianik@users.noreply.github.com>
2023-09-06 21:45:37 +02:00
Vaxry 61a71c65ac
internal: Formatter rework (#3186) 2023-09-06 12:51:36 +02:00
Vaxry 37128bfd43
internal: Wayland Protocol impl improvements (#2944) 2023-08-21 19:36:09 +02:00
Vaxry 60b548296d internal: move backtrace to specific func 2023-08-11 17:22:19 +02:00
MightyPlaza 6295cbe9cb
keybinds: Keep aspect ratio (#2907) 2023-08-08 18:52:20 +02:00
vaxerski 51cda87fe4 hyprctl: rerender on cursor_zoom_factor dynamic calls 2023-08-01 18:08:53 +02:00
Gioele Pannetto ef26f711c9
Added git tag in json version command (#2821) 2023-07-27 10:51:04 +02:00
vaxerski 975c4175b2 hyprctl: unify and sanitize ver commit msg better 2023-07-23 19:43:15 +02:00
vaxerski 263b9c6e39 socket1: add a timeout for requests 2023-07-21 17:20:23 +02:00
vaxerski a921c5b89e Debug: add tracy 2023-07-20 17:47:49 +02:00
MightyPlaza ddb8c89776
Allow empty args in hyprctl dispatch (#2724) 2023-07-16 21:01:06 +02:00
Mykola Perehudov 0c974b7236
Avoid passing control unix socket descriptors to children (#2656)
Add SOCK_CLOEXEC flags to server side connection FDs to make them
closed during execve(2).
2023-07-06 11:39:02 +02:00
Vaxry c241da5ea5 crashreporter: log tag 2023-06-23 13:22:38 +02:00
outfoxxed f0e4f6622e
Implement pass binds (#2503)
* Implement pass binds

Pass binds run the associated dispatcher but do not prevent windows
from receiving the bind.

* Fix pass binds not working properly with release binds

* Rename `pass` to `nonConsuming`
2023-06-14 13:08:56 +02:00
Vaxry 4ef684f615 hyprctl: recalc layout on setprop 2023-06-04 21:35:23 +02:00
Vaxry d83e5b8409 internal: make borderSize prop overridable 2023-06-04 21:35:23 +02:00
Sinkerine ca3791fed8
[hyprctl] Expose the special workspace id and name of the monitor (#2392)
* [hyprctl] Expose the special workspace id of the monitor

So that we know if a special workspace is shown on a monitor

* [hyprctl] Add special workspace name to the output
2023-06-02 13:25:33 +02:00
Vaxry e76bd43f53 rules: add nodim 2023-05-31 21:11:20 +02:00
eriedaberrie 53285a75ad
hyprctl: fix cut-off json outputs (#2352)
* hyprctl: fix cut-off json outputs

* Address comments
2023-05-24 17:46:56 +02:00
vaxerski cc01550aff hyprctl: recalc layout on dynamic workspace 2023-05-12 01:16:27 +01:00
Yavor Kolev ac3edec14b
Add `activeworkspace` hyprctl command (#2202)
* Add `activeworkspace` hyprctl command

* fix format in hyprctl

* Make stuff more shared in workspace hyprctl

---------

Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
2023-05-02 14:51:52 +01:00
vaxerski 5ce76cd0b0 internal: add tag to version, send hash in release ci 2023-04-27 14:28:40 +01:00
vaxerski 7b5b4a1049 crashReporter: log on crash 2023-04-21 16:48:36 +01:00
vaxerski 510db64860 hyprctl: allow spaces in cursor themes 2023-04-20 23:59:31 +01:00
vaxerski 8b3d8dc792 Format: use %lx for all addresses 2023-04-17 17:35:28 +01:00
vaxerski 5cb5b628b8 crashReporter: fix invalid format string 2023-04-17 17:32:07 +01:00