sithlord48
74e4f1a1e1
chore: MSWindowsClipboardTextConvertor remove unused includes
2025-11-07 15:54:19 -05:00
sithlord48
d9493da173
chore: MsWindowsClipboardFacade, remove unused includes
2025-11-07 15:54:19 -05:00
sithlord48
0e8fdb18d8
chore: MsWindowsClipboard, remove unused includes
2025-11-07 15:54:19 -05:00
sithlord48
e07a9f58f7
refactor: MSWindowsClipBoard, use Text converter as last option
2025-11-07 15:54:19 -05:00
sithlord48
19814c61d7
chore: MSWindowsProcess remove unused includes
2025-11-07 15:54:19 -05:00
sithlord48
8e83b16f5e
chore: move platform/Wayland.h -> common/PlatformInfo.h
2025-11-06 09:12:18 -05:00
sithlord48
c18e3c9ef2
refactor: platform/wayland move consts kHasEI etc into wayland Warnings
2025-11-06 09:12:18 -05:00
sithlord48
8fadbecf00
chore: make TMethodJob const void*
2025-11-05 22:07:16 +00:00
Vasily Galkin
eab38dc23e
fix: High Cpu use on windows
...
port: 95f2a840be
Fixes : #8970
2025-11-05 21:46:20 +00:00
sithlord48
6ab1579d38
refactor: Log remove unneeded includes
2025-11-04 10:47:14 -05:00
sithlord48
50240c1fc3
refactor: Arch do not include common/Common.h use config.h where neeed as a result
2025-11-03 13:31:28 +00:00
sithlord48
550f7c3e06
refactor HAS_FORMAT => HAVE_FORMAT
2025-10-31 12:21:47 +00:00
sithlord48
6b2c3c1844
chore: remove unused ILogOutputters:show
2025-10-27 15:36:40 +00:00
re2zero
8226c4162b
fix: [build]Fix build issue without format support
...
add C++20 <format> support checks in Unix libraries and update logging format usage.
Log: Fix build issue without format support.
2025-10-24 15:08:11 +00:00
Matti Hiljanen
2016ce887b
fix: stuck modifiers after screen unlock on windows
...
Fix stuck modifiers (like the windows key) after unlock on Windows
by updating keyboard state after every desk switch.
2025-10-24 15:38:27 +01:00
sithlord48
a34971fee7
refactor: call xkb_keymp_num_levels_for_key, to apply shift in EiState::mapKeyfromKeyval
2025-10-24 14:46:49 +01:00
enzious
5fc4e9dba6
fix: ctrl+alt+fn issue
2025-10-24 00:30:38 +00:00
enzious
b8bd6903e4
fix: client to server modifier press/release
...
Pressing a modifier on the client and moving to the server and releasing
it breaks the modifier on the client. This resolves the issue.
2025-10-21 13:54:40 +01:00
enzious
ea7a493c13
fix: dangling pointer from scoped var
2025-10-21 13:32:13 +01:00
sithlord48
e1fbcb379e
chore: Sub classes and overloads not usings parameters of the base methods have the varible names removed
2025-10-17 09:07:21 +01:00
sithlord48
8b489b8301
chore: remove unneeded semi colons from several places
2025-10-17 09:07:21 +01:00
sithlord48
d32b98ec34
refactor: EiScreen Define Spaceship op for EiScreen::HotKeyItem
2025-10-17 09:07:21 +01:00
pika
78e394a210
fix: apply scroll lock setting on initialization
...
Co-authored-by: Nick Bolton <nick@symless.com>
2025-10-17 03:50:53 -04:00
pika
c11a1caf59
fix: handle xkb_keymap_mod_get_mask returning 0
2025-10-16 11:57:11 -04:00
Nick Bolton
3ece50e292
fix: Invert noHooks to useHooks to match new config
2025-10-14 09:04:00 -04:00
sithlord48
d98f8a524d
remove: argsBase
2025-09-30 06:39:54 -04:00
sithlord48
37827f0540
refactor: remove ClientArgs
2025-09-30 06:39:54 -04:00
sithlord48
5fc00f7af4
refactor: use bool for invert scrolling
2025-09-30 06:39:54 -04:00
sithlord48
2cb36777f9
refactor: move languageSync to coreArgs
2025-09-30 06:39:54 -04:00
sithlord48
c2ee366e23
refactor: move preventsleep option into CoreArgs
2025-09-30 06:39:54 -04:00
sithlord48
6f574a3076
refactor: set const for Reverse FQDN name to use for deployment on linux
2025-09-30 06:17:23 -04:00
sithlord48
dc86538456
feat: Set app id on wayland this is required for restore tokens to work correctly
2025-09-30 06:17:23 -04:00
sithlord48
7698980576
refactor: simplify desktop::platform::isWayland
2025-09-30 06:17:23 -04:00
sithlord48
9fe445ebd0
feat: add methods to check if running from a sandbox, flatpak and or snap
2025-09-30 06:17:23 -04:00
sithlord48
bd63d54a9e
chore: EiScreen::m_powerManager add no_unique_address
2025-09-25 15:01:17 +01:00
Roman Vasiyarov
9f8c45b449
fix: XWindowsScreen: stop centering panned screens on client when leaving screen
...
panned screens still needs `xtestIsXineramaUnaware` option enabled. this change
forcefully uses XTest only when leaving
useful examples:
* double 1 FullHD screen (main output) by:
`xrandr --fb 3840x1080 --output DP-1 --panning 3840x1080+0+0/3840x1000+0+80`,
leaving top 80 pixels for moving mouse out without actual panning
* dedicate right half of framebuffer to FullHD TV (second output):
`xrandr --fb 3840x1080 --output HDMI-0 --panning 1920x1080+1920+0`
2025-09-23 12:12:59 +01:00
Roman Vasiyarov
bf5b0de6ee
fix: XWindowsScreen: properly calculate xrandr/xinerama screens
...
this allows screens to overlap, use panning, etc
2025-09-23 12:12:59 +01:00
Roman Vasiyarov
3aef2f4309
chore: XWindowsScreen: remove duplicate function
2025-09-23 12:12:59 +01:00
sithlord48
612ca91f9c
chore: rename XWindowsPowerManager => XDGPowerManager
...
fixes: 8949
2025-09-15 13:21:51 +01:00
Nick Bolton
162cb85811
fix: Improve output loop error handling in MSWindowsWatchdog
...
Prevents high CPU usage while waiting for data (ERROR_NO_DATA)
2025-09-12 13:17:50 +01:00
Louis des Landes
7a2591a1fa
fix: wayland sleep inhibit on client
...
Fixes #8827
Adds the XWindowsPowerManager to the EiScreen as, despite the name, this
works on Wayland as well.
2025-09-12 10:54:25 +01:00
sithlord48
c4c2f7f37f
feat: begin to use QStrings for strings
...
feat: get windows building with the UNICODE forced by using Qt
refactor: remove ARCHString use QString to convert to / from utf8
build: (arch) link to common
build: (base) link to arch
build: (io) Link to common
build: (client) link to common
build: (server) link to common
fix: Append to log file instead of creating a new one each log line
refactor: Trim cipher description for neater log output
fix: Update log messages to use wide string format for Unicode support
fix: Correct event creation to use wide string for Unicode compatibility
refactor: Use QStringDecoder for UTF-8 handling on Windows Daemon child process
fix: Use correct wide type for Win32 consts
2025-09-10 18:15:19 +01:00
sithlord48
b30f8d253c
refactor: XWindowsKeyState remove name for unused KeyId in remapKeyModifiers
2025-09-05 11:52:17 +01:00
sithlord48
c477d0fcc6
refactor: XWindowsKeyState::init remove unused display var
2025-09-05 11:52:17 +01:00
sithlord48
bc63961e7e
refactor: EIEventQueueBuffer remove unused screen from constructor
2025-09-05 11:52:17 +01:00
sithlord48
138ede0536
refactor: use If in place of switch that looks for single case
2025-09-01 16:57:39 +01:00
sithlord48
507c98adff
refactor: EIKeyState::fakeKey use if in place of a switch that cares only about a single case
2025-09-01 16:57:39 +01:00
Nick Bolton
07edccb469
fix: Add 'Hyper' key handling
...
In the X11 code, we mapped hyper to super, so perhaps it makes sense to do that here too:
`src/lib/platform/XWindowsUtil.cpp`
```
case XK_Super_L:
case XK_Super_R:
case XK_Hyper_L:
case XK_Hyper_R:
return kKeyModifierBitSuper;
```
2025-08-26 09:52:43 -04:00
Zhuofeng Wang
927075688c
fix: Pass ClientScrollDirection to EiScreen
2025-08-26 09:08:45 -04:00
sithlord48
b18c3b588f
refactor: EIKeyState, compare to the current state when seeing if modifiers are inactive, suggested by wismill
2025-08-26 11:23:29 +01:00
Nick Bolton
34c439b3de
refactor: Use single case to ignore mods in EI mod mask
2025-08-22 17:04:16 +01:00
Nick Bolton
934ddf1499
fix: Disable meta mod (fixes alt key bug)
2025-08-22 17:04:16 +01:00
Nick Bolton
4302d50a42
feat: Use xkb_keymap_mod_get_mask in EiKeyState if available
...
Introduced in xkbcommon v1.10.0
2025-08-22 16:06:03 +01:00
sithlord48
299ebea0e2
refactor: replace QString::toStdString().c_str with qPrintable(...)
2025-08-22 09:54:20 +01:00
sithlord48
d3c0ce8895
refactor: move all exit codes to new ExitCodes
...
add new exitcode s_exitDuplicate for when exiting because of already running instance
2025-08-21 12:34:50 +01:00
sithlord48
b2aa638b1f
feat: Support Remote Desktop token persistance
2025-08-19 15:46:14 +01:00
sithlord48
bcb6c368b1
refactor: remove unneeded common/Common includes
2025-08-18 11:45:21 +01:00
sithlord48
4eec183598
refactor: remove IInterface class, that only adds a virtual construcor
2025-08-18 11:45:21 +01:00
sithlord48
d2d28f5ad6
refactor: XWinowsUtil make s_keymap a std::array
2025-08-15 12:15:40 +01:00
sithlord48
2e193c6a78
chore: PortalInputCapture, conform to naming conventions
2025-08-11 12:58:52 -04:00
sithlord48
f95230549a
chore: EiScreen: conform to nameing conventions
2025-08-11 12:58:52 -04:00
sithlord48
a13803df94
chore: EiKeyState, conform to naming conventions
2025-08-11 12:58:52 -04:00
sithlord48
2ba7fb2f05
chore: EiEventQueueBuffer, conform to naming conventions
2025-08-11 12:58:52 -04:00
sithlord48
9442295227
chore: remove unused HYPER key
2025-08-11 12:32:50 -04:00
sithlord48
a21d48defb
refactor: reorder initilization order in XWindowEventQueueBuffer constructor
2025-08-11 12:32:50 -04:00
sithlord48
3770e2c39e
chore: XWindowsScreen::handleSystemEvent, remove unused Window variables
2025-08-11 12:32:50 -04:00
sithlord48
8d90515446
chore: define var on seperate line from type
2025-08-11 12:32:50 -04:00
sithlord48
6153f64fb7
chore: remove uneeded casts
2025-08-11 12:32:50 -04:00
sithlord48
85d89f9846
refactor: XArch Classes => Arch Exception Classes
2025-08-11 17:14:45 +01:00
sithlord48
e4a9d1eb78
refactor: XScreen Classes => ScreenException Classes
2025-08-11 17:14:45 +01:00
Nick Bolton
a4c0e30bb8
fix: Ignore Mod2 and Mod3 to make log quieter
2025-08-07 15:31:52 -04:00
Peter Hutterer
a5c9744258
fix: Account for more modifiers in the EI keymap calculation
...
Some modifiers, notably LevelThree, were not accounted for in the
modifier mask calculation. This leads to an incorrect keymap where some
key symbols were listed for keys without (or insufficient) modifiers.
Emulating those keys can then produce the wrong keysyms.
Reproducible with server and client on English(UK) layout and typing
e.g. [. That key has its own key AD11 (right of P) but is also on
the third level of AE08 (the 8 key). When the server sends the keyid 91
(for [) the client looks it up in the pre-generated keymap. It is found
first on the 8 key with no modifiers (because LevelThree was previously
ignored), hence the client simulates a key 8 press without modifiers.
This erroneously produced an 8 instead of the wanted [.
Fix this by ensuring that all modifiers are accounted for in the key
map. This fix is likely incomplete as it does not account for the full
virtual modifier to real modifier mappings possible (e.g. Mod5 *may* be
something other than AltGr) but it does push the can a bit further down
the road, for someone else to release the worms.
Closes : #8168
2025-08-07 15:31:52 -04:00
sithlord48
2a84ef0ebf
refactor: update log calls to LOG_... fixes #8819
2025-08-06 16:18:38 +01:00
Nick Bolton
9a9bd7e262
chore: Improve logging for active sides
...
For the longest time, this log line has bugged me:
```
active sides: e
```
It's hex, but it looks like a bug, since there's no `0x` prefix. Also, most humans can't read hex, so I added a string representation.
New version:
```
[2025-08-06T11:56:00] DEBUG: active sides: LRT (0x0e)
```
2025-08-06 08:38:00 -04:00
sithlord48
0cbc922478
refactor: MSWindowsDesks::getCursorPos initialize pos to 0,0
2025-08-06 11:44:38 +01:00
sithlord48
1f92f2a2ed
chore: XWindowsScreen declare vars on seperate lines
2025-08-01 13:03:51 -04:00
sithlord48
023037f7ee
refactor: XWindowsClipboard, user std::format_to_n in place of snprintf
2025-08-01 13:03:51 -04:00
sithlord48
c78665dc35
refactor: XWindowsKeyState, updateKeysymMap use std::ranges::fill to fill modifier array
2025-08-01 13:03:51 -04:00
sithlord48
c4c4c09eb2
refactor: XwindowsClipboard , use std::ranges::for_each in sendReply
2025-08-01 13:03:51 -04:00
sithlord48
2cccc3d0c8
refactor: use std::ranges::find_if when possible
2025-08-01 13:03:51 -04:00
Corentin Rossignon
11caf55522
fix: Wrong m_buttons vector size in case of maxButton inferior to numButtons
2025-08-01 08:18:57 -04:00
sithlord48
8977d70dd9
refactor: IClipboard::EFormat => enum class Clipboard::Format
2025-07-31 13:41:29 +01:00
sithlord48
49e36cfdc6
refactor: Event, make non default constructors explicit
2025-07-29 13:41:34 +01:00
sithlord48
283e0c6367
refactor: KeyMap EType => enum class KeyType
2025-07-29 13:41:34 +01:00
Nick Bolton
51e467d45e
feat: Enable 'MouseKeys' on screen setup and never restore old settings
...
Previously we were toggling the 'MouseKeys' Windows accessibility feature on and off, but this was causing many bugs; cursor show delay while Windows brings up the mouse stack(?) and often forever lost mouse cursor when toggling off the 'MouseKeys' feature. After a few days of hacking away at this, it seems safest to just leave it on.
2025-07-28 21:45:05 +01:00
Nick Bolton
e184475a24
feat: Add logging in MSWindowsScreen for setup and cursor centering
2025-07-28 21:45:05 +01:00
Nick Bolton
1fb2789cb1
fix: Prevent flicker on desk leave with 30ms delay
2025-07-28 21:45:05 +01:00
Nick Bolton
8979d7f94f
feat: Cursor visibility retry mechanism
...
The `ShowCursor` function does not directly show/hide the cursor; it increments or decrements the internal display counter. When that counter reaches a certain positive/negative number, then the cursor is shown or hidden at a particular threshold.
2025-07-28 21:45:05 +01:00
Nick Bolton
9033198aed
refactor: Change mouse keys functions names to expose actual behavior
2025-07-28 21:45:05 +01:00
Nick Bolton
db55c3f0e7
build: remove unused includes from MSWindowsDesks.cpp|h
2025-07-28 21:45:05 +01:00
sithlord48
d1b810baa5
refactor: use std::size to get size of arrays
2025-07-17 18:47:50 +01:00
sithlord48
f51abad8cc
feat: Wayland, only set a side to a border if if has a neighboring screen
...
move protocolTypes Direction enum to new base/DirectionTypes
use the direction info when calling
fixes #8572
fixes #8452
fixes #8605
fixes #8005
2025-07-14 10:31:50 +01:00
sithlord48
ae5ba4e51f
chore: remove dev method PortalInputCapture::fakeEisFd
2025-07-14 10:31:50 +01:00
sithlord48
e37cea2d6b
refactor: replace anon Enum in XWindowsKeyState with static vars
2025-07-11 03:06:24 -07:00
sithlord48
181d862838
refactor EiEventQueue remove anon enum for a few static members
2025-07-11 03:06:24 -07:00
sithlord48
b9964b5e90
refactor: remove anon enum in IKeyState and replace with static s_numButtons
2025-07-11 03:06:24 -07:00
sithlord48
422b4c3a23
refactor ClientArgs ClientScrollDirection to enum class use Members Normal and Inverted for names
2025-07-11 03:06:24 -07:00
sithlord48
9905f32738
refactor: Common.h replace anon enum with set constexpr exit codes
2025-07-11 03:06:24 -07:00
sithlord48
3ececbcfd9
refactor: Event anon enum => EventFlags struct
2025-07-11 03:06:24 -07:00
sithlord48
c12aa4c6e9
refactor: Make IEventQueueBuffer Types an enum class, use proper names rename kNone => Unknown to reflect its unknowns an unknown type of event
2025-07-11 03:06:24 -07:00