vaxerski
785fc8d669
dispatchers: fix missing log param
2023-04-17 13:30:37 +01:00
vaxerski
c62ab1bee7
internal: use setSpecialWorkspace on destroy in sanityCheck
2023-04-16 21:33:28 +01:00
vaxerski
f80f4f3194
dispatchers: fix named ws-es on changeworkspace
2023-04-16 21:32:32 +01:00
vaxerski
b05ff89c76
Render: add cursor_zoom
2023-04-16 14:48:38 +01:00
vaxerski
28dfe21584
blur: fixup optimization bool
2023-04-16 14:18:02 +01:00
dann-merlin
c86f06caa0
Fix possible usage of clamp with lo > hi in Vector2D ( #2049 )
2023-04-16 01:27:14 +01:00
vaxerski
afc887d941
monitor: recalc layout on switched ws
2023-04-16 01:11:57 +01:00
vaxerski
edad24c257
Screencopy: unify frame and client between impls + event
...
Adds a new event to both hooks and ipc: screencopy
2023-04-15 23:43:41 +01:00
vaxerski
12604b7676
compositor: ignore contraints on warp in moveWorkspaceToMonitor
2023-04-15 21:27:11 +01:00
Jan Beich
63841c8aac
Disable systemctl when built without systemd support ( #2066 )
...
/bin/sh: systemctl: not found
2023-04-15 20:03:09 +01:00
vaxerski
8944db49be
swallow: fix invalid regexes with empty vals
2023-04-15 19:15:59 +01:00
vaxerski
4c4fcc128b
input: fix ls focus in non-input area
2023-04-15 16:53:31 +01:00
vaxerski
d6c4ae71d0
damage: fix damage on moves / workspace changes
2023-04-15 16:16:33 +01:00
vaxerski
a6d94eafba
tick: don't tick on invalid session
2023-04-15 12:45:25 +01:00
vaxerski
29fc410a8f
crashReporter: avoid segfault in deref plugin system
2023-04-15 10:58:46 +01:00
vaxerski
83f1616a65
keybinds: minor adjustments to workspace
2023-04-14 17:51:10 +01:00
vaxerski
7ec23254fd
workspace: don't lose monitor with refocus on no warps
2023-04-14 17:03:12 +01:00
vaxerski
c2b5dd1be6
keybinds: only warp on different monitor ws
2023-04-14 16:22:55 +01:00
vaxerski
727160f0a4
workspaces: fixup workspaces not activating on workspace switch
2023-04-14 15:28:22 +01:00
vaxerski
3f2a18a435
keybinds: remove old comment
2023-04-14 15:16:59 +01:00
vaxerski
e329bc2c7b
renderer: fix incorrect shouldRenderWindow calcs
2023-04-14 15:16:43 +01:00
vaxerski
8dd0c4fe74
workspaces: deactivate all on monitor switch
2023-04-14 15:08:27 +01:00
vaxerski
cf7c5e4dff
misc: fix a warning
2023-04-14 15:06:22 +01:00
vaxerski
287e6c4ede
internal: workspace manip handling rework
2023-04-14 15:03:53 +01:00
vaxerski
011600ac6e
keybinds: more intelligent fallback on silent move
2023-04-14 01:42:55 +01:00
vaxerski
70eb74c356
fractional-scale: notify all surfaces on window move
2023-04-14 01:36:07 +01:00
vaxerski
260ef788f5
internal: don't sanity check workspaces on internal ws calls
2023-04-13 22:21:11 +01:00
vaxerski
6131e0bef7
keybinds: refocus properly on silent move
2023-04-13 22:20:31 +01:00
vaxerski
41c7d896e3
internal: prevent premature destroy in moveworkspace
2023-04-13 21:09:50 +01:00
Person1873
33d06fb0e5
Add ability to split master when only 1 additional window ( #2025 )
...
* fix: enable master split less than 2 windows
added a config flag "master:allow_small_split"
added config to minimum windows check.
TODO: check that no bug added (remove all masters?)
* IMPL:FIX: multiple master windows full width
Implemented the ability to have multiple master windows filling the full
monitor width in master mode.
this is controlled by the config option master:allow_small_split
(true/false)
this defaults to false as it was the original behaviour before this
patch
* BUGFIX: corrected issue with blanks re: addmaster
FIX 1: Treat ORIENTATION_CENTER the same as ORIENTATION_LEFT unless
there are enough STACK_WINDOWS to fill both wings.
FIX 2: enforced last window always set as master in
MasterLayout::CHyperMasterLayout::calculateWorkspace();
FIX 3: fix 2, also fixed focus issues previously noted.
* Changes requested by vaxerski
changed how we access config variables (by reference not value)
fixed a regression previously missed prior to requested changes.
I had somehow broken the very functionality i meant to add.
* added static keyword to config variables
* removed superfluous static tags
I made a mistake with making too many variables static.
this made them only evaluate once per runtime breaking things majorly.
My appologies. I haven't touched C++ in nearly 20 years.
* remove annoying comment
---------
Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
2023-04-13 15:20:58 +01:00
vaxerski
4bc3f9adbe
config: ignore invalid paths in configPaths
2023-04-12 22:00:39 +01:00
vaxerski
a22e1174ee
screencopy: implement dmabuf
2023-04-12 21:40:51 +01:00
vaxerski
985764c8db
listeners: more safety around change
2023-04-12 20:18:55 +01:00
vaxerski
5f000306f5
popups: send scale info
2023-04-12 18:00:07 +01:00
Kajetan Puchalski
efee6a1cda
swallow: Add swallow_exception_regex ( #2026 )
...
Currently, if a window class is specified in the swallow_regex (e.g.
Kitty) it will swallow every other window spawned by it automatically.
Many other WMs implementing this functionality allow for defining
exceptions from this rule. For instance, we want Kitty to swallow sxiv
or zathura but we do not want Kitty to swallow something like wev.
This commit adds an additional regex - swallow_exception_regex where
these exceptions can be defined. This regex is then compared against the
title of the window about to be swallowed and if it happens to be a
match, aborts the swallowing.
This works because whenever an application that could be swallowed is
launched by a terminal, the class of the terminal remains the same while
the title changes to whatever the application's name is, thus letting it
be matched against a regex.
2023-04-12 13:38:15 +01:00
vaxerski
a68feb5aa0
internal: guarantee activeWindow event type
2023-04-12 13:11:38 +01:00
vaxerski
293df75b97
renderer: workspace rendering improvements
2023-04-12 13:05:57 +01:00
vaxerski
f00e11d457
renderer: fix incorrect delta calc
2023-04-12 12:50:20 +01:00
vaxerski
0fd09579a1
renderer: reset renderModif on fullscreen render
2023-04-12 12:45:16 +01:00
vaxerski
3ae33b951f
renderer: add support for rendering workspaces
2023-04-12 12:41:23 +01:00
vaxerski
92fecb8ad4
internal: don't iterate special workspaces in move
2023-04-12 11:24:36 +01:00
Stanisław Zagórowski
ac2cd0f0dc
plugins: Add "tick" event ( #2029 )
2023-04-12 11:18:33 +01:00
Max Verevkin
c2f29be9ba
make ext_workspace_unstable impl more atomic ( #2023 )
2023-04-11 14:28:32 +01:00
vaxerski
16a034a34a
keybinds: send pass with a null keymap
2023-04-10 22:42:05 +01:00
vaxerski
ea77622e04
input: send null keycodes on focusSurface
2023-04-10 22:37:55 +01:00
vaxerski
a38b0e736d
hyprctl: don't assume output validity in hyprctl workspaces
2023-04-10 21:52:14 +01:00
Hilmar Wiegand
7b43f9f056
Implement window move ( #2018 )
2023-04-10 20:07:49 +01:00
vaxerski
fa4aef4531
args: print help on invalid arg
2023-04-10 18:26:36 +01:00
vaxerski
56a307d734
Revert "keybinds: avoid sending release on suppressed press"
...
Issues with XWayland
This reverts commit a1b1480c21
.
2023-04-10 15:47:20 +01:00
Hilmar Wiegand
6a4bda60f2
Allow movefocus for empty workspaces ( #2011 )
...
* Allow switching to empty workspaces using movefocus
* Allow switching to other workspaces when no windows are focused
* Implement review feedback
* Add option to disable focus fallback
* Remove unnecessary braces
2023-04-10 14:40:03 +01:00
vaxerski
a1b1480c21
keybinds: avoid sending release on suppressed press
2023-04-10 00:56:08 +01:00
vaxerski
4ae784dc53
input: fix kb focus on top layers without interactive flag
2023-04-09 19:53:31 +01:00
vaxerski
3ade6c4a96
renderer: fixup damage repaint
2023-04-09 17:59:24 +01:00
Vaxry
046ad79d11
GlobalShortcuts protocol impl ( #1886 )
...
Implements the `hyprland-global-shortcuts-v1` protocol
---------
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-04-09 13:48:20 +01:00
vaxerski
e4e653ada6
socket2: receive bytes to avoid endless loops
2023-04-08 23:14:12 +01:00
vaxerski
b32af6ebfb
hyprctl: sanity check icons in notify
2023-04-08 18:53:54 +01:00
vaxerski
86852cdc78
textInput: don't double destroy TI
2023-04-08 15:39:14 +01:00
vaxerski
31963f823b
screencopy: fix crash in invalid format reads
2023-04-08 13:35:36 +01:00
scorpion-26
07e4ba9d80
Fix crash in CConfigManager::parseKeyword ( #1983 )
...
If debug:manual_crash is set on startup, parseKeyword tries
to call g_pHyprNotificationOverlay->addNotification, but
g_pHyprNotificationOverlay isn't initialized yet (is nullptr)
This commit adds a sanity check for that.
2023-04-07 20:15:11 +01:00
vaxerski
5e2d4d644a
screencopy: fix crash
2023-04-07 19:21:47 +01:00
vaxerski
50876f1b15
screencopy: fix read on incorrect monitor render
2023-04-07 19:11:30 +01:00
vaxerski
c2a85c9d36
screencopy: minor fixes for damage_ring
2023-04-07 18:04:02 +01:00
vaxerski
41d1fdedf2
output: handle needs_frame
2023-04-07 17:25:56 +01:00
vaxerski
cd1b982b2a
internal: listen to output.damage events
2023-04-07 16:31:55 +01:00
Andrew Nitrogenesis
a35ea4d242
Better and more secure argument parsing, and code reformatting ( #1976 )
...
* Better and more secure argument parsing, and code reformatting
* Changes to resolve PR conversation
* Formatted via clang-format, fixed typos
* More typos
2023-04-07 15:03:26 +01:00
vaxerski
d8645cd148
internal: release buttons on unmap
2023-04-07 12:54:11 +01:00
vaxerski
c9f7afbf78
subsurfaces: guard node's surface
2023-04-07 12:36:26 +01:00
Andrew Pritchard
dfb78e0593
Fix swiping onto a new workspace with multiple monitors. ( #1971 )
...
The previous code could run into issues into the following circumstances:
* The focused monitor is on its rightmost workspace with ID `i`.
* Another monitor has a workspace with ID `i+1`.
* `workspace_swipe_create_new` is enabled.
Then, swiping rightwards attempts to target a new workspace with ID
`i+1`: completing the swipe gesture unintentionally focuses that
workspace on whichever monitor it's already on while leaving the active
monitor in a broken state where it shows no windows but creates new
windows on the workspace it was previously on; and cancelling the swipe
gesture shifts the entire workspace `i+1` to the right by the width of
the active monitor.
By choosing an ID that doesn't exist, this problematic behavior is
avoided. More specifically, it's the smallest ID greater than any
existing workspace's ID, because otherwise the new workspace that was
seemingly just created to the right of the rightmost workspace could end
up somewhere in the middle of the workspace order.
2023-04-07 12:18:53 +01:00
vaxerski
24ace03780
internal: migrate to damage_ring
2023-04-07 12:18:40 +01:00
vaxerski
569eaff04c
swipe: block on locked session
2023-04-07 11:51:52 +01:00
vaxerski
1a5d5bf620
deps: update wlroots
2023-04-06 21:03:53 +01:00
vaxerski
366ebc123b
internal: don't remove x11 children on parent remove
2023-04-06 20:59:44 +01:00
vaxerski
bc4a51dbbb
internal: make togglefloat better visible on small size deltas
2023-04-06 19:45:59 +01:00
vaxerski
80650b6722
keybinds: allow MOD1 as an alias of ALT
2023-04-06 19:28:09 +01:00
vaxerski
a740e3e517
internal: comply to nofocus on vectorToWindow
2023-04-06 13:17:15 +01:00
vaxerski
19809532df
input: ignore constraints on touch
2023-04-06 11:34:18 +01:00
110f3fd658
screencopy: fix incorrect resource error post
2023-04-05 15:19:49 +01:00
vaxerski
a80ba54bbc
renderer: don't use simple rect on alphazero stencil
2023-04-04 22:58:58 +01:00
vaxerski
00d199b477
monitors: guard scale in onConnect
2023-04-04 22:54:35 +01:00
vaxerski
eea99abc49
debug: allow manual crash from hyprctl
2023-04-04 22:13:36 +01:00
vaxerski
e7185b338f
debug: minor improvements to manual crash
2023-04-04 22:04:32 +01:00
7d9977d028
debug: added manual_crash
2023-04-04 14:50:03 +01:00
vaxerski
882be7765b
toplevelExport: honor overlay_cursor
2023-04-04 00:58:30 +01:00
vaxerski
99314fbe71
render: plug missing software cursor unlocks
2023-04-04 00:46:58 +01:00
vaxerski
c50df4c0c3
screencopy: allow on legacy renderer
2023-04-03 23:34:08 +01:00
vaxerski
2f7fb2f553
input: don't set icon on held buttons without a drag
2023-04-03 23:17:06 +01:00
vaxerski
23001f6144
input: don't overset resize icons on drag
2023-04-03 23:15:33 +01:00
vaxerski
55d585ce17
input: fix click-to-refocus not working on loose
2023-04-03 23:09:44 +01:00
vaxerski
d3b0c90356
internal: rename ensureDPMS to ensureMonitorStatus
2023-04-03 22:52:09 +01:00
vaxerski
a43b18ae26
Feat: add initial class/title to hyprctl clients
2023-04-03 19:16:51 +01:00
Vaxry
0a099ca2ab
Hyprland Screencopy impl ( #1800 )
...
---------
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-04-03 17:01:05 +01:00
vaxerski
e6211eef00
log: Move stdout log disabling to the end of init
2023-04-03 10:41:49 +01:00
vaxerski
b1426cad28
input: fix minor issue with holding focus
2023-04-02 13:42:57 +01:00
vaxerski
0fc145c52c
input: hold focus on mouse buttons
2023-04-02 13:30:45 +01:00
vaxerski
c2b25f4701
swallow: move swallowed on workspace change
2023-04-02 10:24:17 +01:00
vaxerski
88a96110b7
config: default no direct scanout to true
2023-04-01 19:37:30 +01:00
Jan Beich
16bc5997bb
Misc FreeBSD fixes ( #1926 )
...
* helpers: drop incomplete GNU/kFreeBSD bits
Debian with FreeBSD kernel lacks Wayland-related packages and is not
officially supported since Jessie.
* KeybindManager: check VT ioctl availability instead of hardcoding
* plugins: add missing header for libc++ after 430778293e
src/plugins/PluginAPI.cpp:299:33: error: implicit instantiation of undefined template 'std::basic_istringstream<char>'
std::istringstream inStream(SYMBOLS);
^
/usr/include/c++/v1/iosfwd:140:32: note: template is declared here
class _LIBCPP_TEMPLATE_VIS basic_istringstream;
^
* plugins: prefer llvm-nm with Clang after 430778293e
nm: invalid option -- j
2023-03-31 20:39:04 +01:00
vaxerski
7680cd549c
plugins: mark getFunctionAddressFromSignature deprecated
2023-03-31 18:43:00 +01:00
vaxerski
430778293e
plugins: Add an API entry for finding functions by name
2023-03-31 18:31:11 +01:00
vaxerski
de3b00b5ee
renderer: go back to rendering layers without reverse
2023-03-31 17:44:36 +01:00
NotAShelf
3d9bf17f11
crashReporter: try $XDG_CACHE_HOME
before $HOME
( #1920 )
2023-03-31 13:15:24 +01:00
vaxerski
614ea53ad7
Renderer: fix dim easing
2023-03-30 21:08:20 +01:00
vaxerski
b88de63abb
Input: fix always_follow_on_dnd
2023-03-30 00:34:24 +01:00
Alexander Seiler
60527ab180
Fix some typos ( #1907 )
...
Signed-off-by: Alexander Seiler <seileralex@gmail.com>
2023-03-29 23:44:25 +01:00
vaxerski
d6241a3086
windows: only connect unmap when mapped
2023-03-28 20:17:47 +01:00
vaxerski
df54ab40ce
layer: allow focus on top/overlay surfaces without a window
2023-03-28 17:21:11 +01:00
6fec5bfbeb
keybinds: improve movefocus on fullscreen
2023-03-27 15:19:27 +01:00
vaxerski
3343aac6bf
feat: add forcergbx rule
2023-03-26 02:00:24 +01:00
vaxerski
41f7736c85
config: default manual animations to false
2023-03-24 22:24:12 +00:00
vaxerski
c418007c68
shaders: fix missing discardAlphaZero
2023-03-24 19:43:50 +00:00
vaxerski
cc2c270dde
log: log wlr logs to stdout
2023-03-24 19:38:09 +00:00
vaxerski
70e3cb8151
feat: add debug:enable_stdout_logs
2023-03-24 19:37:37 +00:00
Vaxry
a80f8f257f
Feat: Introduce render_ahead_of_time ( #1863 )
2023-03-24 19:23:16 +00:00
vaxerski
b3a70b565e
subsurfaces: avoid reading destroyed surfaces
2023-03-24 18:44:42 +00:00
vaxerski
e73c6fd3b0
logs: disable stdout after init
2023-03-24 13:00:54 +00:00
vaxerski
a5a0434fff
dbus: don't update vars in nests
2023-03-24 03:21:38 +00:00
vaxerski
463690a27a
keybinds: allow code: prefix
2023-03-23 13:05:23 +00:00
471ac474a1
core: remove old redundant shutdown stuff
2023-03-23 03:07:57 +00:00
vaxerski
a3fda12ba1
window: unassign surface on unmap
2023-03-23 00:39:32 +00:00
vaxerski
0268bb9888
surface: set to nullptr after destroy()
2023-03-23 00:22:49 +00:00
vaxerski
3a3a3f7bdb
popups: fix heap-use-after-free
2023-03-23 00:22:49 +00:00
vaxerski
a8b3be2c9c
config: add misc:suppress_portal_warnings
2023-03-22 12:17:16 +00:00
staz
5ce91bb0fd
Added overflow check for blur radius ( #1847 )
...
* internal: added overflow check for blur radius
---------
Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
2023-03-21 19:01:24 +00:00
vaxerski
adf5d8a114
monitors: update surface outputs on recover from unsafe
2023-03-21 17:46:26 +00:00
vaxerski
cb229f6436
compositor: adjust xdp error cases
2023-03-20 22:26:54 +00:00
lisuke
dc78c58c77
fix: a fullscreen bug. ( #1821 ) ( #1831 )
2023-03-20 16:07:18 +00:00
vaxerski
22721a37d5
hyprctl: add notify
2023-03-20 16:00:54 +00:00
vaxerski
dd4270eadf
notifs: add ICON_OK to icons
2023-03-20 15:49:46 +00:00
vaxerski
e2923a9385
meson: add pango deps
2023-03-20 15:39:43 +00:00
vaxerski
316674fecf
notifs: use empty color for auto
2023-03-20 15:32:11 +00:00
vaxerski
34da16b7e6
plugin api: add addNotificationV2
...
Allows for issuing fancy notifs via api
2023-03-20 15:23:25 +00:00
vaxerski
71a95a581f
feat: add pretty notifications
2023-03-20 15:03:09 +00:00
Vaxry
788a8f7c13
internal: wrap wlr surfaces ( #1822 )
2023-03-20 15:00:58 +00:00
vaxerski
d23bbd1687
workspaces: preserve pin on moves
2023-03-20 01:50:46 +00:00
vaxerski
7a514f41a3
Focus: warp cursor on movewindow
2023-03-20 01:42:21 +00:00
vaxerski
928de33447
monitors: more guards for safety
2023-03-19 02:19:52 +00:00
Mihai Fufezan
0624455591
Meson: add rdynamic ld flag
2023-03-18 21:01:24 +02:00
vaxerski
2ba5238b8e
groups: fix moving between displays
2023-03-18 16:30:29 +00:00
vaxerski
00c2ca4697
config: improve ux on workspace and transform
2023-03-18 16:12:43 +00:00
vaxerski
d544c30551
LS: don't try to get rules on non-existent ls
2023-03-18 15:02:00 +00:00
vaxerski
ef80a69399
config: fix long variables being substrd
2023-03-18 14:57:59 +00:00
vaxerski
6e6971606d
windowrules: allow monitor by str
2023-03-18 01:34:06 +00:00
vaxerski
e5ad53ac42
config: make default config use hyphenated dev names
2023-03-18 01:06:03 +00:00
vaxerski
e98ee49aee
LS: fix support for legacy blurls
2023-03-17 23:36:36 +00:00
vaxerski
d797d9905d
LS: support address: in layerrules
2023-03-17 23:33:03 +00:00
vaxerski
e5870d47c7
LS: add blur and ignorezero rules
2023-03-17 23:16:13 +00:00
vaxerski
91a565c7b0
monitors: don't refocus on apply rule
2023-03-17 20:34:33 +00:00
vaxerski
5b924aaf60
crashReporter: add hl ver
2023-03-17 11:51:16 +00:00
vaxerski
606cb2832a
keybinds: remember last workspace on focusmonitor
2023-03-16 16:40:28 +00:00
vaxerski
4b52c1e68f
monitors: remove from monitors on unsafe
2023-03-16 16:33:27 +00:00