Commit graph

131 commits

Author SHA1 Message Date
Ivailo Monev
e2981d0cc2 generic: remove unused config-workspace header inclusions
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-15 15:50:06 +03:00
Ivailo Monev
6bab293d34 ksmserver: do not enable focus for the icons of the shutdown dialog
I can just say no

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-14 14:46:57 +03:00
Ivailo Monev
797a038098 ksmserver: handle key events for icons via event filter in shutdown dialog
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-14 11:38:04 +03:00
Ivailo Monev
b67914031d ksmserver: set the title text before starting the timer in the shutdown dialog
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-14 11:02:40 +03:00
Ivailo Monev
b783be6185 ksmserver: tweak the shutdown dialog sizes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-14 10:08:55 +03:00
Ivailo Monev
33980544b8 ksmserver: animate the shutdown dialog
much like the lockout plasma applet (which I implemented)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-14 08:24:57 +03:00
Ivailo Monev
e9fa3491a8 ksmserver: change the shutdown dialog title based on more events
fancier than tooltips

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-14 08:08:40 +03:00
Ivailo Monev
545ec5fffa ksmserver: change the shutdown dialog title based on focus
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-14 07:43:50 +03:00
Ivailo Monev
aca377b5d0 ksmserver: correct comment in shutdowndlg source file
the timeout used to be 30 seconds but 10 seconds is more than enough to
cancel the operation

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-13 15:36:31 +03:00
Ivailo Monev
15f45fdc81 ksmserver: remove debug bits in KSMShutdownDlg::confirmShutdown()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-13 12:50:24 +03:00
Ivailo Monev
84cc8bfdd0 ksmserver: setup keyboard shortcuts for the shutdown dialog buttons
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-13 12:34:05 +03:00
Ivailo Monev
0bceff7f00 ksmserver: shutdown dialog reimplementation
layout is subject to change, lock and hibernation may or may not be
implemented again

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-13 12:18:37 +03:00
Ivailo Monev
5a9eef2d1a ksmserver: remove now redundant _KDE_RUNNING atom ownership
kded no longer requires it during early startup, see the following
commit in the kdelibs repo:
e482da906734dcd5434fc322eac262c775125825

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-08-31 23:26:11 +03:00
Ivailo Monev
4e4cf0bac1 ksmserver: reset the error buffer before re-using it in KSMServer constructor
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-08-31 19:06:52 +03:00
Ivailo Monev
51c61de406 ksmserver: include the error message of SmsInitialize() in the warning
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-08-31 19:06:02 +03:00
Ivailo Monev
2c2a653de8 ksmserver: zero-initialize the error message buffer in KSMServer constructor
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-08-31 19:03:36 +03:00
Ivailo Monev
db6643a680 generic: remove redundant logout effect hack
ksmserver no longer uses custom effect for logout, for reference:
36d3e65630

bonus points for less X11 round-trips on logout

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-08-30 20:12:17 +03:00
Ivailo Monev
f47177f876 generic: adjust to KNotification changes
some notification files, such as the style KCM one, were not even used

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-08-25 08:07:58 +03:00
Ivailo Monev
1091d4d98c ksmserver: use KSMServer::isWM() to check if session command is window manager command
fixes window manager session restoration, for reference:
c920743903

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-08-19 15:12:51 +03:00
Ivailo Monev
e16e97bb10 generic: adjust to KCrash changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-08-04 10:04:29 +03:00
Ivailo Monev
cb37a5683f generic: adjust to Solid::PowerManagement changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-07-09 18:11:38 +03:00
Ivailo Monev
0ba740c6c5 generic: purge most manual tests
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-07-03 07:41:07 +03:00
Ivailo Monev
d8830fd749 ksmserver: reap processes started by klauncher before the window manager
so that it is still running for applications that require window manager
on quit, requires the following commit from kdelibs:
4c5361d34d5f125ca7fca1f2dad505480b8a7692

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-29 00:17:11 +03:00
Ivailo Monev
a693e41a4a ksmserver: update socket path in README
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-20 19:15:11 +03:00
Ivailo Monev
1ba13c2c77 ksmserver: remove no-op rebootRequested2() signal
defined but never emitted

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-20 19:04:28 +03:00
Ivailo Monev
6f288381c1 ksmserver: drop legacy session support
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-20 09:14:40 +03:00
Ivailo Monev
ce48bc0997 generic: preperations for kdelibs changes
automatically replaced via:
find -name CMakeLists.txt -exec sed -e 's|${KDE4_PLASMA_LIBS}|KDE4::plasma|g' -e 's|${KDE4_KIO_LIBS}|KDE4::kio|g' -e 's|${KDE4_SOLID_LIBS}|KDE4::solid|g' -e 's|${KDE4_KFILE_LIBS}|KDE4::kfile|g' -e 's|${KDE4_KDECORE_LIBS}|KDE4::kdecore|g' -e 's|${KDE4_KDEUI_LIBS}|KDE4::kdeui|g' -e 's|${KDE4_KCMUTILS_LIBS}|KDE4::kcmutils|g' -e 's|${KDE4_KDECLARATIVE_LIBS}|KDE4::kdeclarative|g' -e 's|${KDE4_KPTY_LIBS}|KDE4::kpty|g' -e 's|${KDE4_KEMAIL_LIBS}|KDE4::kemail|g' -e 's|${KDE4_KMEDIAPLAYER_LIBS}|KDE4::kmediaplayer|g' -e 's|${KDE4_KPARTS_LIBS}|KDE4::kparts|g' -e 's|${KDE4_KIDLETIME_LIBS}|KDE4::kidletime|g' -e 's|${KDE4_KTEXTEDITOR_LIBS}|KDE4::ktexteditor|g' -e 's|${KDE4_KPASSWDSTORE_LIBS}|KDE4::kpasswdstore|g' -e 's|${KDE4_KARCHIVE_LIBS}|KDE4::karchive|g' -e 's|${KDE4_KDNSSD_LIBS}|KDE4::kdnssd|g' -e 's|${KDE4_KNOTIFYCONFIG_LIBS}|KDE4::knotifyconfig|g' -e 's|${KDE4_KEXIV2_LIBS}|KDE4::kexiv2|g' -i {} +

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-17 23:27:11 +03:00
Ivailo Monev
472f24878b generic: adjust to kdelibs changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-17 18:38:55 +03:00
Ivailo Monev
c45dc296ab ksmserver: remove debugging bits
"KSMSERVER_STARTUP_DEBUGl" is not defined btw, drat?

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-10 19:58:37 +03:00
Ivailo Monev
1cbda72fad generic: replace use of QTime as timer with QElapsedTimer
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-07 12:57:37 +03:00
Ivailo Monev
c6d63798cf generic: adjust to KApplication changes
KApplication::quitOnSignal() is now called from KApplication constructor

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-23 15:13:14 +02:00
Ivailo Monev
c920743903 ksmserver: try filename match when checking if the command is the window manager
Exec may or may not be set to full path in the .desktop file for the window
manager, still it is like brute-force guess

note that the default in KSMServer::selectWm() is just kwin (filename) but
programs are (usually) looked for first in PATH (QProcess does that now for
example)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-11 13:00:11 +02:00
Ivailo Monev
681aec5d18 ksmserver: log message when the window manager changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-10 10:30:13 +02:00
Ivailo Monev
264cb151f9 ksmserver: log backtrace in case of crash
if it crashes a startup error will be shown via `xmessage`, there will
be not window manager (most likely) at that point and many things will
not work as expected.

ksmserver cannot be restarted for example, drkonqi is not option either
because attempting to report a bug will open a browser but the backtrace
cannot be copied (the browser window will be on top of any other window
if it launches with no way to switch to the drkonqi window), etc.

in other words - the best thing that can be done is log the backtrace to
the system log (the ksmserver debug area has to be configured for that)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-09 12:30:31 +02:00
Ivailo Monev
5d2fc37272 ksmserver: prepare for klauncher changes
doubles as performance optimization by reusing the already created
interface (klauncherSignals member)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-08 05:49:36 +02:00
Ivailo Monev
37f2410331 ksmserver: explicitly compare the qstrcmp() return value with 0
still, strcmp() is not very reliable. see my test case:
https://github.com/fluxer/strcmp

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-08 01:55:29 +02:00
Ivailo Monev
dd35263d37 ksmserver: set the default debug area
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-07 10:21:07 +02:00
Ivailo Monev
e9335d77fc ksmserver: setup quit signals via KApplication::quitOnSignal()
note that for SIGHUP sighandler() was calling signal()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-07 08:46:37 +02:00
Ivailo Monev
594e39a043 generic: adjust to KCrash and klauncher interface changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-04 22:44:00 +02:00
Ivailo Monev
fcbec5f0cc generic: adjust to solid power manager changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-12-01 23:54:21 +02:00
Ivailo Monev
83cb186aec ksmserver: handle all currently supported power sleep methods
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-30 01:54:45 +02:00
Ivailo Monev
f00e4c99b3 ksmserver: process events until kded second phase is done
now that phase 2 is properly done (see
86082941ab933b36fb7df267f3abd2625757f4ba in kdelibs repo) it could
block for a few seconds

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-26 05:13:00 +02:00
Ivailo Monev
795cb31a59 generic: remove redundant HAVE_XRENDER configuration definition
if Xrender is not found a fatal message will be issued by the top-level
CMakeLists file because it is required by KWin compositor for example

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-25 00:46:00 +02:00
Ivailo Monev
29fe3a31df ksmserver: start the shutdown feedback from KSMShutdownDlg constructor and stop it on reject
ksmserver stops it when the dialog is rejected but the test did not for
example

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 01:54:00 +02:00
Ivailo Monev
1de2f3e322 ksmserver: make KSMShutdownFeedback::stop() do the same thing as KSMShutdownFeedback::logoutCanceled()
for some reason KSMShutdownFeedback::stop() was not doing anything when the
KWin effect was taking care of the logout effect but KWin also does not
apply the effect to windows other than the one created by ksmserver

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 01:32:39 +02:00
Ivailo Monev
62439fb0f9 ksmserver: fix build of tests
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-20 01:16:35 +02:00
Ivailo Monev
36d3e65630 ksmserver: drop custom logout effect
the effect is very much bound to the window manager (KWin) because if
applications require attention (such as confirmation to cancel any
pending changes) their window or any dialog they pop may have to be
raised, will have to be focused and not be grayed out

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-16 01:37:02 +02:00
Ivailo Monev
d3da8b90b8 generic: remove redundant QT_CLEAN_NAMESPACE definitions
Katie's namespace is always clean, if there is a namespace issue perhaps
it is not cause of it

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-15 02:07:21 +02:00
Ivailo Monev
4a34d42786 ksmserver: kill window manager before cleanup
the window manager itself may want to do something session management
related (KWin does) and as such ksmserver has to be in operational state
before the window manager is killed

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-15 01:54:19 +02:00
Ivailo Monev
7fc137c6f2 ksmserver: move process launching code to startup source file
note that connecting to signals after the process is started (which is also
auto-deleted) as was done in KSMServer::launchWM() could result in a race

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-11-15 01:28:27 +02:00