Commit Graph

598 Commits

Author SHA1 Message Date
Vaxry 2e3f0d5991 renderer: Add new background infrastructure
Adds new backgrounds from the winners of the contest
Rewrites how it works
Allows high color precision PNGs (RGB32F precisely)
Fixes a small bug in renderTextureInternalWithDamage
Nukes misc:force_hypr_chan
2024-01-29 23:11:00 +00:00
Vaxry bfcc2adbda monitor: wrap usage of wlr_output_state
for better control and convenience in usage.

fixes #4546
2024-01-28 01:57:13 +00:00
Vaxry bc7e488a4c monitor: clear output state after usage
fixes massive lag
2024-01-27 19:11:14 +00:00
Vaxry 7b3d039388 deps: update wlroots
drops requirement for WLR_DRM_NO_ATOMIC provided kernel >= 6.8
2024-01-27 13:58:28 +00:00
Zach DeCook df17991b1c
input: Allow disabling touchscreen input (#4517)
* enable/disable touch device

* ConfigManager: update documentation of 'enabled'
2024-01-24 00:15:01 +00:00
MightyPlaza f14c5ea5c5
groupbar: separate gradients from title (#4444)
* separate gradients from title logic
modified:   src/config/ConfigManager.cpp
modified:   src/render/decorations/CHyprGroupBarDecoration.cpp

* fix disabled extents
modified:   src/render/decorations/CHyprGroupBarDecoration.cpp

* fix disabled height
modified:   src/render/decorations/CHyprGroupBarDecoration.cpp
2024-01-15 16:17:42 +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 252aaaecfa input: add special_fallthrough
fixes #4323
2024-01-09 13:17:55 +01:00
flicko 4f26c4e1eb
config: variables update their value when set again (#4263)
* variables update their value when set again

* only sort if new variable is found

* clang-format
2024-01-02 16:38:30 +01:00
rszyma 37b76cd1ca
keybinds: fix keys getting stuck + minor refactor & optimizations to keybind handling (#4304) 2024-01-01 18:29:51 +01:00
MightyPlaza 2ad2e1d5f5
groupbar: add enabling groupbar and setting priority (#4299) 2023-12-30 15:18:53 +01:00
Vaxry ddf8e01c1e config: don't emit reloaded event before eventManager is created 2023-12-29 00:17:58 +01:00
Vaxry 9fba887cc9 socket2: emit configreloaded event
fixes #4285
2023-12-28 22:34:12 +01:00
Vaxry 4f3ee4c645 renderer: add decoration:blur:popups_ignorealpha
fixes #4282
2023-12-28 22:29:04 +01:00
Vaxry 2702814a3f opengl: add toggleable nvidia_anti_flicker
ref #4252
2023-12-27 19:17:07 +01:00
Tuur Vanhoutte 191fa587f4
windowrules: add initialTitle and initialClass (#4259) 2023-12-26 23:47:46 +01:00
Vaxry e2d04ae503 renderer: add option to blur popups
closes #2134
2023-12-25 18:07:07 +01:00
Vaxry cc0516a9ae windowrules: minor fixes to onworkspace
fixes #4227
2023-12-23 15:49:42 +01:00
Vaxry 6c8e0f9863 config: add debug:disable_scale_checks
ref #4225
2023-12-23 00:21:02 +01:00
Vaxry 4eb42fab7b windowrules: add onworkspace
cool
2023-12-20 23:52:18 +01:00
Vaxry b4f4bd38e8 configmanager: set a limit to config variable substitutions
fixes #4198
2023-12-20 13:07:12 +01:00
Vaxry e1ed8e11ca internal: import qt env to dbus 2023-12-15 20:59:13 +00:00
Vaxry 79d8d14fe0 config: add qt env to default config 2023-12-15 18:27:04 +00:00
Vaxry ea7569d7e0 config: improve layoutopt handling for workspacerules 2023-12-11 22:58:51 +00:00
Mihai Fufezan 0c10b8ab2d
input: Add scroll_points option for device (#4101) 2023-12-10 16:30:08 +00:00
Vaxry 9f5b9053c6
internal: Remake borders as window decorations (#4104) 2023-12-10 16:28:12 +00:00
dranull 89d8f665b5
config: Avoid regenerating config if --config is used (#4103) 2023-12-09 18:27:30 +00:00
Vaxry dd0714c22a input: add relative_input for tablets
closes #2639
2023-12-09 04:07:28 +00:00
Vaxry 11d1c50420 windowrules: add focus param 2023-12-08 16:02:16 +00:00
Glizda aa46aaed04
config: Add variables to default config (#4032)
* update default config

* Fix inconsistency in variable naming

* continuation of last commit

* edited example/hyprland.conf for parity

* fix  issue

* deleted unwanted newline
2023-12-04 18:47:58 +00:00
dranull 9a9528d093
config: Minor --config improvements, fixes (#4034)
* Follow symlink, only file, absolute path for -c

* Create config file only for default paths

* Skip non-file source= glob results

* Check for absolute path on XDG_CONFIG_HOME

As per spec, all non-absolute paths should be ignored.
https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
2023-12-04 01:35:24 +00:00
thejch 758cf90ea1
workspacerules: Add workspace rule for master layout orientation (#3964)
* add workspace rule for master layout orientation

* change rule format

* edit rule name

* use map for layoutopts

* use std::any instead of string
2023-12-02 14:42:49 +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 3caaa483d4 configmgr: fix parsing of touchdevice groups
fixes #3992
2023-11-29 03:39:45 +00:00
Vaxry e416ab740d config: log info about logs before loading vars 2023-11-26 18:02:33 +00:00
MightyPlaza 7a0a5666d5
groupbar: allow reload and fix locked groupbar gradient (#3546)
modified:   src/config/ConfigManager.cpp
modified:   src/render/decorations/CHyprGroupBarDecoration.cpp
modified:   src/render/decorations/CHyprGroupBarDecoration.hpp
2023-11-26 17:59:49 +00:00
Vaxry 512a59731b config: default special_scale_factor to 1 2023-11-25 01:45:04 +00:00
Xavier 745b998587
renderer: Adding an option to disable first launch animation (#3933) 2023-11-24 21:45:59 +00:00
Vaxry 45ebe0df8f config: fix red warn in default config
fixes #3917
2023-11-22 23:38:14 +00:00
Vaxry 44accacff9 config: add nomaximizerequest all to default cfg 2023-11-22 19:50:37 +00:00
end-4 646f4bc638
general: add workspace gaps (#3877)
* anims: workspace gap

* anims: ws gaps: on swipe end

* anims: ws gaps: add missing parentheses

* format

* refractor

* Update Swipe.cpp

* format

* fix swipe to right

* ws gaps: move animations:workspace_gap to general:gaps_workspace

* ws gaps: general:gaps_workspace -> general:gaps_workspaces
2023-11-19 12:33:26 +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 69e314207d internal: replace INT_MAX with WORKSPACE_INVALID 2023-11-12 13:34:54 +00:00
Visual-Dawg 29e0a7112e
renderer: added new customization options to the blur shaders (#3650)
Adds to `decoration:blur:` `vibrancy` and `vibrancy_darkness`
2023-11-06 18:49:03 +00:00
David Leal 0476e1b498
groups: add option to configure font name (#3751) 2023-11-05 19:25:50 +00:00
Vaxry 74cf2281dd binds: add movefocus_cycles_fullscreen
fixes #3738
2023-11-04 21:03:08 +00:00
Vaxry 21e9313c10
Core: various unsafe state improvements (#3713)
Fixes #3637
2023-11-01 18:53:36 +00:00
Vaxry 59d6a12a7e config: fixup usage of plugin in handles
would filter calls to keyword plugin: and stuff
2023-10-29 22:35:26 +00:00
Vaxry af9440152e pluginapi: add a config keyword adding method 2023-10-29 16:59:50 +00:00
Vaxry 03771d3aa9 windowrules: add nearestneighbor 2023-10-24 21:29:03 +01:00
Vaxry 2f6729f557 example: add special workspace to default config 2023-10-24 00:50:45 +01:00
Brenno Lemos b135bd6cd4
workspacerules: Add new optional "default command" for auto-launching apps on new workspaces (#3559) 2023-10-22 23:11:03 +01:00
Vaxry 386708563c workspacerules: search for special properly
fixes #3537
2023-10-19 16:04:59 +01:00
Vaxry a0b675ec9e binds: add ignoreMods flag 2023-10-17 20:10: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
MightyPlaza d537815d43
groups: create group and groupbar config sections (#3522)
* config: create group section

modified:   src/Compositor.cpp
modified:   src/config/ConfigManager.cpp
modified:   src/layout/DwindleLayout.cpp
modified:   src/layout/MasterLayout.cpp
modified:   src/managers/KeybindManager.cpp
modified:   src/managers/input/InputManager.cpp
modified:   src/render/decorations/CHyprGroupBarDecoration.cpp

* separate group border and groupbar colors

modified:   src/Compositor.cpp
modified:   src/config/ConfigManager.cpp
modified:   src/render/decorations/CHyprGroupBarDecoration.cpp

* add new line
modified:   config/ConfigManager.cpp
2023-10-10 17:42:45 +01:00
Philip Damianik ac1bd47653
dispatchers: Add option to center the cursor on the focused window when switching workspaces (#3528)
* Add option for centering on workspace when switching workspace

* Add option for centering on workspace when switching workspace

---------

Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
2023-10-10 17:34:28 +01:00
Roberto Previdi df0c8e0f7a
workspacerules: Add a persistent workspace rule (#3530)
* add persistent flag to workspace rules

* get rid of unused ws->indestructible flag
2023-10-09 20:28:22 +01:00
vaxerski 728a8bb48e config: mention force_default_wallpaper in default configs 2023-10-07 15:55:33 +01:00
DaniD3v 7d7565e7ec
renderer: add force_wallpaper instead of no_hypr_chan (#3459) 2023-10-07 14:08:38 +01:00
vaxerski 3d1a167960 wsrules: check for workspace ID matches on numbered workspaces
fixes #3494
2023-10-05 01:31:13 +01:00
Jeremy Huang d61e4f9ad7
master: add option to drag and drop windows at cursor position (#3465)
* add option to drag and drop a window at cursor position

* use getWindowIdealBoundingBoxIgnoreReserved
2023-10-03 22:16:57 +01:00
vaxerski b814ba98a7 misc: add misc:new_window_takes_over_fullscreen
referenced in #3474
2023-10-02 16:27:32 +01:00
vaxerski c298439433 renderer: nuke multisample_edges in favor of a faster algorithm 2023-09-30 01:41:05 +01:00
vaxerski 9cc614d096 internal: add a watchdog
a watchdog will abort processing a signal if a timeout specified via debug:watchdog_timeout is reached.
2023-09-29 16:38:13 +01:00
vaxerski 453128ee0e examples/readme: mention tearing 2023-09-28 22:09:14 +01:00
Vaxry 88b63a00b6
renderer: Tearing implementation (#3441) 2023-09-28 21:48:33 +01:00
Cascade aka. Isoheptane 6d7dc70f66
input: Add map to region options for tablets (#3425)
* Add region remap for tablets

* Fix code style
2023-09-27 19:49:30 +01:00
Legorel 6bdc45e9ce
config: restore configCurrenPath after sourcing file (#3339) 2023-09-24 23:11:34 +01:00
Vaxry 46d66f4bcc
internal: Further unsafe state improvements (#3404)
Instead of allowing Hyprland to sit in a state where there are no monitors, which various parts of the code don't like, we create a fake headless output on all monitor disconnect, and then remove it when a monitor appears
2023-09-24 18:04:38 +01:00
vaxerski 352ceb1117 config: trim spaces in the rule field in windowrulev2 2023-09-24 13:35:36 +01:00
memchr 1357b66091
windowrules: add rule `group` to map windows grouped (#3279)
* windows: add rule group to map windows grouped

* group rule: use `invade` to force open a window in a locked group
2023-09-22 00:42:00 +01:00
memchr 3785defaf1
logging: implement std::formatter for some types (#3380) 2023-09-20 16:25:03 +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
Mihai Fufezan f72e04d63b
misc: add disable_hypr_chan option (#3343) 2023-09-17 15:26:24 +01:00
memchr db2b72adee
config: fix relative path resolution (#3308) 2023-09-14 12:07:31 +01:00
Vaxry 2e34548aea varlist: move to a separate header, add join 2023-09-12 16:50:10 +01:00
memchr 5cc53c14d9
config: add wildcard handling in source= (#3276) 2023-09-12 12:54:05 +01:00
memchr ac2f1a9c30
feat: add a new movewindoworgroup dispatcher (#3006) 2023-09-10 23:29:10 +01:00
Jeremy Huang 19bbdeed47
master: Add smart resizing option for master layout (#3210)
* add smart resizing for master layout

* fix smart resizing workspace check

* master layout fix smart resize when at max size

* change resizing for center orientation so it doesnt use all nodes

* master layout resizing, simplify code for calculating total height and weight

* remove the redundant smart resizing check
2023-09-10 22:58:06 +01:00
Philip Damianik 6c855dd6e4
internal: Fix wlr output management (#3234) 2023-09-10 13:14:27 +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 cc5852faa2 config: disable blur special by default
very expensive
2023-09-07 00:35:44 +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
Philip Damianik 60c01dab01
config: Integrate HASCONFIG into CConfigManager::getConfigValueSafeDevice (#3195) 2023-09-06 19:16:46 +02:00
Philip Damianik a15e3e1f38
config/input: Improve fallback behavior for unset device config values (#3184)
* Fix fallback behavior for unset device config values

* Replace overload with default argument for fallback config key

* Remove default value for fallback argument in source

* Fix typos
2023-09-06 16:14:18 +02:00
unrealhoang f90a009e93
input/config: add button scroll lock (#3189) 2023-09-06 14:54:48 +02:00
vaxerski 37e2311a3e config: loosen restrictions around animation keywords
Fixes #3185, makes hyprland ignore further args if an animation is disabled
2023-09-06 12:58:01 +02:00
Vaxry 61a71c65ac
internal: Formatter rework (#3186) 2023-09-06 12:51:36 +02:00
vaxerski 4eecb8bffc config: don't enable vrr 2 for maximized workspaces
fixes #3162
2023-09-04 18:24:18 +02:00
vaxerski 5e0cf7d6a5 special: add misc:close_special_on_empty
fixes #3156
2023-09-03 13:00:06 +02:00
vaxerski bb0933437f wlr-ext-workspace: remove protocol impl
Various reasons: 1st, memory issues. 2nd, MR got closed (see https://gitlab.freedesktop.org/wlroots/wlr-protocols/-/merge_requests/35) 3rd, not needed anymore (waybar has its own hyprland/workspaces module)
2023-09-01 17:10:03 +02:00
MightyPlaza b10cae3010
decos: groupbar mouse interaction (#3102)
* allow groupbar clicking
	modified:   src/Window.cpp
	modified:   src/Window.hpp
	modified:   src/managers/input/InputManager.cpp
	modified:   src/render/decorations/CHyprGroupBarDecoration.cpp
	modified:   src/render/decorations/CHyprGroupBarDecoration.hpp

* remove setting pos inside insertWindowToGroup()

modified:   src/Window.cpp
modified:   src/layout/DwindleLayout.cpp
modified:   src/layout/MasterLayout.cpp
modified:   src/managers/KeybindManager.cpp

* add group window by index and group size functions
modified:   src/Window.cpp
modified:   src/Window.hpp
modified:   src/managers/input/InputManager.cpp

* allow dragging into groupbar
modified:   src/Window.cpp
modified:   src/layout/DwindleLayout.cpp
modified:   src/layout/MasterLayout.cpp

* allow dragging from groupbar
modified:   src/managers/KeybindManager.cpp

* try groupbar clicking before border resize
modified:   src/managers/input/InputManager.cpp

* block grabbing groupbar on floating (crash)

remove later when crashing is fixed

modified:   src/managers/KeybindManager.cpp

* remove redundant { }
modified:   src/layout/DwindleLayout.cpp
modified:   src/layout/MasterLayout.cpp

* implement getWindowDecorationBox()
modified:   src/Window.cpp
modified:   src/Window.hpp
modified:   src/layout/DwindleLayout.cpp
modified:   src/layout/MasterLayout.cpp
modified:   src/managers/KeybindManager.cpp
modified:   src/managers/input/InputManager.cpp
modified:   src/render/decorations/CHyprDropShadowDecoration.cpp
modified:   src/render/decorations/CHyprGroupBarDecoration.cpp
modified:   src/render/decorations/IHyprWindowDecoration.cpp
modified:   src/render/decorations/IHyprWindowDecoration.hpp

* fix crash when moveoutofgroup in floating windows

also removes dragging from floating windows limitation

modified:   src/layout/IHyprLayout.cpp
modified:   src/managers/KeybindManager.cpp

* use CRegion in getWindowDecorationBox()
modified:   src/helpers/Region.cpp
modified:   src/helpers/Region.hpp
modified:   src/layout/DwindleLayout.cpp
modified:   src/layout/MasterLayout.cpp
modified:   src/managers/KeybindManager.cpp
modified:   src/managers/input/InputManager.cpp
modified:   src/render/decorations/IHyprWindowDecoration.cpp
modified:   src/render/decorations/IHyprWindowDecoration.hpp

* add groupbar scrolling
modified:   src/config/ConfigManager.cpp
modified:   src/managers/input/InputManager.cpp

* change name to getWindowDecorationRegion()
modified:   src/layout/DwindleLayout.cpp
modified:   src/layout/MasterLayout.cpp
modified:   src/managers/KeybindManager.cpp
modified:   src/managers/input/InputManager.cpp
modified:   src/render/decorations/IHyprWindowDecoration.cpp
modified:   src/render/decorations/IHyprWindowDecoration.hpp

* make dragging from group less hacky for floating
modified:   src/managers/KeybindManager.cpp
2023-08-30 17:39:22 +02:00
Vaxry 4a41d013a2
internal: Fix XDP multi-portal issues (#3077)
* add a hyprland portals conf

* remove portal checks

* typo

* Nix: remove portal patch

---------

Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-08-26 17:12:21 +02:00
vaxerski 23e17700a7 renderer: add decoration:blur:special
will blur behind the special ws
2023-08-25 17:44:17 +02:00
vaxerski 6a5a5ed11e input: add transparent binds
adds a new flag for binds to be transparent (non-shadowable)
fixes #3058
2023-08-25 12:35:24 +02:00
end-4 17ea7db23a
gestures: Swipe direction lock (#3052) 2023-08-23 22:40:19 +02:00
memchr 09cc96c0d5
feat(debug): add debug:suppress_errors to suppress errors. (#3032) 2023-08-20 18:17:49 +02:00
MightyPlaza 7155b4c266
renderer: Border improvements (#2986)
* simplify getting border size
	modified:   src/Window.cpp
	modified:   src/Window.hpp
	modified:   src/layout/DwindleLayout.cpp
	modified:   src/layout/MasterLayout.cpp
	modified:   src/render/decorations/CHyprGroupBarDecoration.cpp

* fix border damage and input box
	modified:   src/Window.cpp
	modified:   src/managers/AnimationManager.cpp

* add border size in resize_on_border box
	modified:   src/managers/input/InputManager.cpp

* simplify border (fixes possible typo)
	modified:   src/Window.cpp

* use updateSpecialRenderData()
	modified:   Window.cpp
	modified:   Window.hpp
	modified:   events/Windows.cpp
	modified:   layout/DwindleLayout.cpp
	modified:   layout/IHyprLayout.cpp
	modified:   layout/MasterLayout.cpp
	modified:   render/Renderer.cpp

* update window workspace rule data on reload
	modified:   src/config/ConfigManager.cpp

* use rounding()
	modified:   src/Window.cpp
2023-08-17 10:13:19 +02:00