Fedora 43 KDE an KWin
Claude Vibet
claudevibet at yahoo.fr
Tue Jan 20 16:00:45 GMT 2026
Please find incuded with this a post which concerns the ability of
KWin to restore Sessions (without Sub-Sessions) on Fedora KDE 43
wayland; its last part could be put in gzip form.
Fedora 43 KDE agrees to restore KWin INIT Data. VIBET
The KWin Option 'saved by user_' can be used with success when the INIT
files designed by Fedora39KDE are directly introduced in Fedora43KDE.
And this works also with Fc42KDE.
This operation requires three KWin files (detailed at the end of this post)
as ~/.config/session/konsole-xxx, ~/.config/session/'kwin_xxx' and
~/.config/ksmserver. And what we have to do is to select manually in
"System Settings/Window Management/Virtual Desktops" the corresponding
number of Vitual Desktop, which was used on Fc39KDE; for example, in
the case of 6xVirtual Desktops, the use of KWin option "saved by user"
has lead to the files:
'~/.config/session/konsole_1020b17a1a5175000171775076400000016730010_1717751840_254928'
'~/.config/session/'kwin_saved by user_''
and
'~/.config/ksmserverrc'
The reintroduction of these files in Fc43KDE makes (after a Reboot)
6xWindows on the first Virtual Desktop. To change this one have
either to push each window on its corresponding virtual desktop,
or to launch a script with cron. In fact cron is able to run a
script shell just after a reboot. So, on command line do:
systemctl stop crond.service
and run:
crontab -e
This opens a file with the "nano" editor. Then write the following
line in it:
@reboot sleep 25 && ~/startup.sh
Close/save the file. Now the service must be reactivated by running:
systemctl enable crond.service
Finally the startup.sh file which launch another script is:
#!/bin/bash
sleep 4
./Window2Desk-N : xdotool key ctrl+j
exit 0
where the script Window2Desk-N contains the qdbus orders:
#! /bin/bash
DISPLAY=:0.0 qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Window to Desktop 6"
DISPLAY=:0.0 qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Window to Desktop 5"
DISPLAY=:0.0 qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Window to Desktop 4"
DISPLAY=:0.0 qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Window to Desktop 3"
DISPLAY=:0.0 qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Window to Desktop 2"
exit 0
Sleep 25 and sleep 4 are delays in seconds to be set in function of the
PC speed. Note that to change 'sleep 25' one must stop the crond-service
and rewrite/save the script and next enable the crond service.
The next three KWin files are used to get around the KWin INIT process
when running 6xVirtual Desktops on Fedora 43 KDE. The first one is:
'~/.config/session/konsole_1020b17a1a5175000171775076400000016730010_1717751840_254928'
[1]
Active=0
Tabs=[{"Orientation":"Horizontal","Widgets":[{"SessionRestoreId":1}]}]
[2]
Active=0
Tabs=[{"Orientation":"Horizontal","Widgets":[{"SessionRestoreId":2}]}]
[3]
Active=0
Tabs=[{"Orientation":"Horizontal","Widgets":[{"SessionRestoreId":3}]}]
[4]
Active=0
Tabs=[{"Orientation":"Horizontal","Widgets":[{"SessionRestoreId":4}]}]
[5]
Active=0
Tabs=[{"Orientation":"Horizontal","Widgets":[{"SessionRestoreId":5}]}]
[6]
Active=0
Tabs=[{"Orientation":"Horizontal","Widgets":[{"SessionRestoreId":6}]}]
[Number]
NumberOfSessions=6
NumberOfWindows=6
[Session1]
Encoding=UTF-8
LocalTab=%d : %n
Profile[$e]=$HOME/.local/share/konsole/Prof1.profile
RemoteTab=(%u) %H
SessionGuid={41b26277-39f8-4514-a959-c32d319b83c1}
TabColor=
WorkingDir[$e]=$HOME
[Session2]
Encoding=UTF-8
LocalTab=%d : %n
Profile[$e]=$HOME/.local/share/konsole/Prof2.profile
RemoteTab=(%u) %H
SessionGuid={de4692ae-43f4-4e59-a300-a28760ee9f23}
TabColor=
WorkingDir[$e]=$HOME
[Session3]
Encoding=UTF-8
LocalTab=%d : %n
Profile[$e]=$HOME/.local/share/konsole/Prof3.profile
RemoteTab=(%u) %H
SessionGuid={624a1e9e-4753-4213-aa2e-f78366b9ea04}
TabColor=
WorkingDir[$e]=$HOME
[Session4]
Encoding=UTF-8
LocalTab=%d : %n
Profile[$e]=$HOME/.local/share/konsole/Prof4.profile
RemoteTab=(%u) %H
SessionGuid={2fe62da4-34c4-4d8a-b999-620bc0c159a2}
TabColor=
WorkingDir[$e]=$HOME
[Session5]
Encoding=UTF-8
LocalTab=%d : %n
Profile[$e]=$HOME/.local/share/konsole/Prof5.profile
RemoteTab=(%u) %H
SessionGuid={7076bca2-17e9-4308-b982-cde34c042f45}
TabColor=
WorkingDir[$e]=$HOME
[Session6]
Encoding=UTF-8
LocalTab=%d : %n
Profile[$e]=$HOME/.local/share/konsole/Prof6.profile
RemoteTab=(%u) %H
SessionGuid={11dc5bcf-871b-4a93-8488-5d97d4c85900}
TabColor=
WorkingDir[$e]=$HOME
[WindowProperties1]
1920x1080 screen: Height=994
1920x1080 screen: Width=1020
1920x1080 screen: XPosition=900
1920x1080 screen: YPosition=28
ClassName=Konsole::MainWindow
ObjectName=MainWindow#1
RestorePositionForNextInstance=false
VGA-1=VGA-1
[WindowProperties2]
1920x1080 screen: Height=994
1920x1080 screen: Width=1020
1920x1080 screen: XPosition=899
1920x1080 screen: YPosition=28
ClassName=Konsole::MainWindow
ObjectName=MainWindow#2
RestorePositionForNextInstance=false
VGA-1=VGA-1
[WindowProperties3]
1920x1080 screen: Height=994
1920x1080 screen: Width=1020
1920x1080 screen: XPosition=899
1920x1080 screen: YPosition=28
ClassName=Konsole::MainWindow
ObjectName=MainWindow#3
RestorePositionForNextInstance=false
VGA-1=VGA-1
[WindowProperties4]
1920x1080 screen: Height=994
1920x1080 screen: Width=1020
1920x1080 screen: XPosition=899
1920x1080 screen: YPosition=28
ClassName=Konsole::MainWindow
ObjectName=MainWindow#4
RestorePositionForNextInstance=false
VGA-1=VGA-1
[WindowProperties5]
1920x1080 screen: Height=994
1920x1080 screen: Width=1020
1920x1080 screen: XPosition=900
1920x1080 screen: YPosition=28
ClassName=Konsole::MainWindow
ObjectName=MainWindow#5
RestorePositionForNextInstance=false
VGA-1=VGA-1
[WindowProperties6]
1920x1080 screen: Height=994
1920x1080 screen: Width=1020
1920x1080 screen: XPosition=900
1920x1080 screen: YPosition=28
ClassName=Konsole::MainWindow
ObjectName=MainWindow#6
RestorePositionForNextInstance=false
VGA-1=VGA-1
the second file ~/.config/session/'kwin_saved by user_' is used
to set the windows on the screen:
[Session]
active=2
activities1=
activities2=ab93c009-71d4-4bd4-bda9-4496987eaa14
activities3=ab93c009-71d4-4bd4-bda9-4496987eaa14
activities4=ab93c009-71d4-4bd4-bda9-4496987eaa14
activities5=ab93c009-71d4-4bd4-bda9-4496987eaa14
activities6=ab93c009-71d4-4bd4-bda9-4496987eaa14
activities7=ab93c009-71d4-4bd4-bda9-4496987eaa14
activities8=
count=8
desktop=1
desktop1=-1
desktop2=1
desktop3=2
desktop4=3
desktop5=4
desktop6=5
desktop7=6
desktop8=-1
fsrestore1=0,0,0,0
fsrestore2=0,0,0,0
fsrestore3=0,0,0,0
fsrestore4=0,0,0,0
fsrestore5=0,0,0,0
fsrestore6=0,0,0,0
fsrestore7=0,0,0,0
fsrestore8=0,0,0,0
fullscreen1=0
fullscreen2=0
fullscreen3=0
fullscreen4=0
fullscreen5=0
fullscreen6=0
fullscreen7=0
fullscreen8=0
geometry1=0,0,1920,1080
geometry2=900,28,1020,994
geometry3=900,28,1020,994
geometry4=900,28,1020,994
geometry5=900,28,1020,994
geometry6=900,28,1020,994
geometry7=899,28,1020,994
geometry8=0,1022,1920,58
iconified1=false
iconified2=false
iconified3=false
iconified4=false
iconified5=false
iconified6=false
iconified7=false
iconified8=false
keepBelow1=true
keepBelow2=false
keepBelow3=false
keepBelow4=false
keepBelow5=false
keepBelow6=false
keepBelow7=false
keepBelow8=false
maximize1=0
maximize2=1
maximize3=1
maximize4=1
maximize5=1
maximize6=1
maximize7=1
maximize8=0
opacity1=1
opacity2=1
opacity3=1
opacity4=1
opacity5=1
opacity6=1
opacity7=1
opacity8=1
resourceClass1=xwaylandvideobridge
resourceClass2=konsole
resourceClass3=konsole
resourceClass4=konsole
resourceClass5=konsole
resourceClass6=konsole
resourceClass7=konsole
resourceClass8=plasmashell
resourceName1=xwaylandvideobridge
resourceName2=konsole
resourceName3=konsole
resourceName4=konsole
resourceName5=konsole
resourceName6=konsole
resourceName7=konsole
resourceName8=plasmashell
restore1=0,0,1920,1080
restore2=450,29,1020,1022
restore3=490,51,1020,1022
restore4=450,29,1020,1022
restore5=450,29,1020,1022
restore6=899,0,1020,1022
restore7=900,0,1020,1022
restore8=0,1022,1920,58
sessionId1=1020b17a1a5175000171775076400000016730010
sessionId2=1020b17a1a5175000171775076400000016730010
sessionId3=1020b17a1a5175000171775076400000016730010
sessionId4=1020b17a1a5175000171775076400000016730010
sessionId5=1020b17a1a5175000171775076400000016730010
sessionId6=1020b17a1a5175000171775076400000016730010
sessionId7=1020b17a1a5175000171775076500000016730011
sessionId8=1020b17a1a5175000171786037900000016530004
shaded1=false
shaded2=false
shaded3=false
shaded4=false
shaded5=false
shaded6=false
shaded7=false
shaded8=false
shortcut1=
shortcut2=
shortcut3=
shortcut4=
shortcut5=
shortcut6=
shortcut7=
shortcut8=
skipPager1=false
skipPager2=false
skipPager3=false
skipPager4=false
skipPager5=false
skipPager6=false
skipPager7=false
skipPager8=false
skipSwitcher1=false
skipSwitcher2=false
skipSwitcher3=false
skipSwitcher4=false
skipSwitcher5=false
skipSwitcher6=false
skipSwitcher7=false
skipSwitcher8=false
skipTaskbar1=false
skipTaskbar2=false
skipTaskbar3=false
skipTaskbar4=false
skipTaskbar5=false
skipTaskbar6=false
skipTaskbar7=false
skipTaskbar8=false
stackingOrder1=
stackingOrder2=1
stackingOrder3=2
stackingOrder4=3
stackingOrder5=4
stackingOrder6=5
stackingOrder7=6
stackingOrder8=-1
staysOnTop1=false
staysOnTop2=false
staysOnTop3=false
staysOnTop4=false
staysOnTop5=false
staysOnTop6=false
staysOnTop7=false
staysOnTop8=false
sticky1=true
sticky2=false
sticky3=false
sticky4=false
sticky5=false
sticky6=false
sticky7=false
sticky8=true
userNoBorder1=true
userNoBorder2=false
userNoBorder3=false
userNoBorder4=false
userNoBorder5=false
userNoBorder6=false
userNoBorder7=false
userNoBorder8=true
windowRole1=
windowRole2=MainWindow#1
windowRole3=MainWindow#2
windowRole4=MainWindow#3
windowRole5=MainWindow#4
windowRole6=MainWindow#5
windowRole7=MainWindow#6
windowRole8=
windowType1=Desktop
windowType2=Normal
windowType3=Normal
windowType4=Normal
windowType5=Normal
windowType6=Normal
windowType7=Normal
windowType8=Dock
wmCommand1=
wmCommand2=
wmCommand3=
wmCommand4=
wmCommand5=
wmCommand6=
wmCommand7=
wmCommand8=
and the last immutable file '~/.config/ksmserverrc' is devoted to the
window restoration task:
[General]
loginMode=restoreSavedSession
[LegacySession: saved at previous logout]
count=0
[LegacySession: saved by user]
count=0
[Session: saved at previous logout]
clientId1=1020b17a1a5175000171786037900000016530006
clientId2=1020b17a1a5175000171775073200000016730007
clientId3=1020b17a1a5175000171775076400000016730010
count=3
'discardCommand3[$e]=rm,$HOME/.config/session/konsole_1020b17a1a5175000171775076400000016730010_1717861393_25732'
program1=/usr/libexec/DiscoverNotifier
program2=/usr/bin/kalendarac
program3=/usr/bin/konsole
'restartCommand1=/usr/libexec/DiscoverNotifier,-session,1020b17a1a5175000171786037900000016530006_1717861393_296878'
'restartCommand2=/usr/bin/kalendarac,-session,1020b17a1a5175000171775073200000016730007_1717861393_297107'
'restartCommand3=/usr/bin/konsole,-session,1020b17a1a5175000171775076400000016730010_1717861393_25732'
restartStyleHint1=0
restartStyleHint2=0
restartStyleHint3=0
userId1=username
userId2=username
userId3=username
[Session: saved by user]
clientId1=1020b17a1a5175000171786037900000016530006
clientId2=1020b17a1a5175000171775073200000016730007
clientId3=1020b17a1a5175000171775076400000016730010
count=3
'discardCommand3[$e]=rm,$HOME/.config/session/konsole_1020b17a1a5175000171775076400000016730010_1717751840_254928'
program1=/usr/libexec/DiscoverNotifier
program2=/usr/bin/kalendarac
program3=/usr/bin/konsole
'restartCommand1=/usr/libexec/DiscoverNotifier,-session,1020b17a1a5175000171786037900000016530006_1717861393_296878'
'restartCommand2=/usr/bin/kalendarac,-session,1020b17a1a5175000171775073200000016730007_1717861393_297107'
'restartCommand3=/usr/bin/konsole,-session,1020b17a1a5175000171775076400000016730010_1717751840_254928'
restartStyleHint1=0
restartStyleHint2=0
restartStyleHint3=0
userId1=username
userId2=username
userId3=username
where the home-user-name must replace "username". In this text
the profiles are designed by: Prof1,Prof2...Prof6. If needed
change VGA-1 in DVI-I-1, or use both when two monitors are
running on the machine. Note that the mention 'xwaylandvideobridge'
appears in 'kwin_saved by user_' though the system works without
it.
Finaly, owing to ksmserverrc, the two other files can be easily
reshaped with an editor. This leads to get the INIT elements
required by KWin sessions based on 4,2 or 1 Virtual Desktop.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-www/attachments/20260120/42ff665d/attachment-0001.htm>
More information about the kde-www
mailing list