├── .gitignore ├── .gitlab-ci.yml ├── .qubesbuilder ├── 11-qubes.js ├── Makefile ├── Makefile.builder ├── applications ├── Thunar.desktop ├── kde4 │ ├── Help.desktop │ ├── knetattach.desktop │ ├── nepomukbackup.desktop │ └── nepomukcontroller.desktop ├── org.kde.klipper.desktop ├── org.kde.knetattach.desktop └── thunar-settings.desktop ├── autostart ├── nepomukcontroller.desktop ├── nepomukserver.desktop └── org.kde.klipper.desktop ├── config ├── 10-gui-daemon-shmoverride.conf └── klipperrc ├── kde-panel-layout.patch ├── kde-settings-qubes.spec.in ├── kde4 └── services │ └── kcm_nepomuk.desktop ├── kfileplaces-bookmarks.xml ├── kickoffrc ├── kscreensaverrc ├── plasma-org.kde.plasma.desktop-appletsrc ├── plasmoidsetupscripts └── template.js ├── qubes-generate-color-palette ├── qubes-generate-color-palette.desktop ├── qubes-systray.js ├── rel └── version /.gitignore: -------------------------------------------------------------------------------- 1 | rpm/ 2 | srpm/ 3 | pkgs/ 4 | *.tar.gz 5 | *.tar.bz2 6 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | include: 2 | - file: /r4.3/gitlab-base.yml 3 | project: QubesOS/qubes-continuous-integration 4 | - file: /r4.3/gitlab-host.yml 5 | project: QubesOS/qubes-continuous-integration 6 | - file: /r4.3/gitlab-vm.yml 7 | project: QubesOS/qubes-continuous-integration 8 | -------------------------------------------------------------------------------- /.qubesbuilder: -------------------------------------------------------------------------------- 1 | host: 2 | rpm: 3 | build: 4 | - kde-settings-qubes.spec 5 | vm: 6 | rpm: 7 | build: 8 | - kde-settings-qubes.spec 9 | -------------------------------------------------------------------------------- /11-qubes.js: -------------------------------------------------------------------------------- 1 | /* replace the default kickoff with Qubes menu */ 2 | for (var i in panelIds) { 3 | var panel = panelById(panelIds[i]) 4 | var widgetIds = panel.widgetIds 5 | var menuLauncherId = -1 6 | for (id in widgetIds) { 7 | var widget = panel.widgetById(widgetIds[id]) 8 | if (widget.type == 'org.kde.plasma.kickoff') { 9 | var qubesMenu = panel.addWidget('org.kde.plasma.quicklaunch') 10 | qubesMenu.index = widget.index 11 | qubesMenu.currentConfigGroup = ['General'] 12 | qubesMenu.writeConfig('launcherUrls', ['file:///usr/share/applications/open-qubes-app-menu.desktop']) 13 | menuLauncherId = qubesMenu.id 14 | widget.remove() 15 | } else if (widget.type == 'org.kde.plasma.quicklaunch') { 16 | // move existing one too, to fix after earlier broken version 17 | menuLauncherId = widget.id 18 | } 19 | } 20 | // move the menu launcher as the first applet 21 | if (menuLauncherId != -1) { 22 | panel.currentConfigGroup = ['General'] 23 | var order = panel.readConfig("AppletOrder").split(";") 24 | if (!order) 25 | order = panel.widgetIds 26 | // remove from the list (likely its end) and add it at the beginning 27 | order = order.filter(function(x) { return x != menuLauncherId }) 28 | order.unshift(menuLauncherId) 29 | panel.writeConfig("AppletOrder", order.join(";")) 30 | } 31 | } 32 | 33 | /* wallpaper */ 34 | var desktop = desktops()[0]; 35 | desktop.wallpaperPlugin = "org.kde.image" 36 | desktop.currentConfigGroup = Array('Wallpaper', 'org.kde.image', "General"); 37 | desktop.writeConfig('Image', 'file:///usr/share/wallpapers/Qubes_Steel'); 38 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | install: 2 | install -D -m 0644 kfileplaces-bookmarks.xml $(DESTDIR)/etc/skel/.kde/share/apps/kfileplaces/bookmarks.xml 3 | install -D -m 0644 kickoffrc $(DESTDIR)/etc/skel/.kde/share/config/kickoffrc 4 | install -D -m 0644 kscreensaverrc $(DESTDIR)/etc/skel/.kde/share/config/kscreensaverrc 5 | install -D -m 0644 plasma-org.kde.plasma.desktop-appletsrc $(DESTDIR)/etc/skel/.config/plasma-org.kde.plasma.desktop-appletsrc 6 | install -D -m 0755 qubes-generate-color-palette $(DESTDIR)/usr/bin/qubes-generate-color-palette 7 | install -D -m 0644 qubes-generate-color-palette.desktop $(DESTDIR)/etc/xdg/autostart/qubes-generate-color-palette.desktop 8 | install -D -m 0644 11-qubes.js $(DESTDIR)/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/11-qubes.js 9 | install -D -m 0644 qubes-systray.js $(DESTDIR)/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/qubes-systray.js 10 | install -D -m 0644 kde-panel-layout.patch $(DESTDIR)/usr/share/qubes/kde-panel-layout.patch 11 | 12 | install -D -m 0644 applications/kde4/nepomukbackup.desktop $(DESTDIR)/usr/share/kde-settings/kde-profile/default/share/applications/kde4/nepomukbackup.desktop 13 | install -D -m 0644 applications/kde4/nepomukcontroller.desktop $(DESTDIR)/usr/share/kde-settings/kde-profile/default/share/applications/kde4/nepomukcontroller.desktop 14 | install -D -m 0644 applications/kde4/knetattach.desktop $(DESTDIR)/usr/share/kde-settings/kde-profile/default/share/applications/kde4/knetattach.desktop 15 | install -D -m 0644 applications/kde4/Help.desktop $(DESTDIR)/usr/share/kde-settings/kde-profile/default/share/applications/kde4/Help.desktop 16 | install -D -m 0644 applications/Thunar.desktop $(DESTDIR)/usr/share/kde-settings/kde-profile/default/share/applications/Thunar.desktop 17 | install -D -m 0644 applications/thunar-settings.desktop $(DESTDIR)/usr/share/kde-settings/kde-profile/default/share/applications/thunar-settings.desktop 18 | install -D -m 0644 applications/org.kde.klipper.desktop $(DESTDIR)/usr/share/kde-settings/kde-profile/default/share/applications/org.kde.klipper.desktop 19 | install -D -m 0644 applications/org.kde.knetattach.desktop $(DESTDIR)/usr/share/kde-settings/kde-profile/default/share/applications/org.kde.knetattach.desktop 20 | 21 | install -D -m 0644 autostart/nepomukcontroller.desktop $(DESTDIR)/usr/share/kde-settings/kde-profile/default/share/autostart/nepomukcontroller.desktop 22 | install -D -m 0644 autostart/nepomukserver.desktop $(DESTDIR)/usr/share/kde-settings/kde-profile/default/share/config/nepomukserverrc 23 | install -D -m 0644 autostart/org.kde.klipper.desktop $(DESTDIR)/usr/share/kde-settings/kde-profile/default/share/autostart/org.kde.klipper.desktop 24 | 25 | install -D -m 0644 kde4/services/kcm_nepomuk.desktop $(DESTDIR)/usr/share/kde-settings/kde-profile/default/share/kde4/services/kcm_nepomuk.desktop 26 | 27 | install -D -m 0644 config/klipperrc $(DESTDIR)/usr/share/kde-settings/kde-profile/default/share/config/klipperrc 28 | 29 | install -D -m 0644 plasmoidsetupscripts/template.js $(DESTDIR)/usr/share/plasma/look-and-feel/org.fedoraproject.fedora.desktop/contents/plasmoidsetupscripts/org.kde.plasma.kicker.js.qubes 30 | install -D -m 0644 plasmoidsetupscripts/template.js $(DESTDIR)/usr/share/plasma/look-and-feel/org.fedoraproject.fedora.desktop/contents/plasmoidsetupscripts/org.kde.plasma.kickerdash.js.qubes 31 | install -D -m 0644 plasmoidsetupscripts/template.js $(DESTDIR)/usr/share/plasma/look-and-feel/org.fedoraproject.fedora.desktop/contents/plasmoidsetupscripts/org.kde.plasma.kickoff.js.qubes 32 | install -D -m 0644 config/10-gui-daemon-shmoverride.conf \ 33 | $(DESTDIR)/usr/lib/systemd/user/plasma-kwin_wayland.service.d/10-gui-daemon-shmoverride.conf 34 | 35 | clean: 36 | rm -rf debian/changelog.* 37 | rm -rf pkgs 38 | -------------------------------------------------------------------------------- /Makefile.builder: -------------------------------------------------------------------------------- 1 | ifneq (centos-stream,$(DISTRIBUTION)) 2 | RPM_SPEC_FILES = kde-settings-qubes.spec 3 | endif 4 | -------------------------------------------------------------------------------- /applications/Thunar.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | NoDisplay=true 3 | Name=Removed entry 4 | Exec=/bin/true 5 | -------------------------------------------------------------------------------- /applications/kde4/Help.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | NoDisplay=true 3 | Name=Removed entry 4 | Exec=/bin/true 5 | -------------------------------------------------------------------------------- /applications/kde4/knetattach.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | NoDisplay=true 3 | Name=Removed entry 4 | Exec=/bin/true 5 | -------------------------------------------------------------------------------- /applications/kde4/nepomukbackup.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | NoDisplay=true 3 | Name=Removed entry 4 | Exec=/bin/true 5 | -------------------------------------------------------------------------------- /applications/kde4/nepomukcontroller.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | NoDisplay=true 3 | Name=Removed entry 4 | Exec=/bin/true 5 | -------------------------------------------------------------------------------- /applications/org.kde.klipper.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | NoDisplay=true 3 | Name=Removed entry 4 | Exec=/bin/true 5 | -------------------------------------------------------------------------------- /applications/org.kde.knetattach.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | NoDisplay=true 3 | Name=Removed entry 4 | Exec=/bin/true 5 | -------------------------------------------------------------------------------- /applications/thunar-settings.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | NoDisplay=true 3 | Name=Removed entry 4 | Exec=/bin/true 5 | -------------------------------------------------------------------------------- /autostart/nepomukcontroller.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Hidden=true 3 | -------------------------------------------------------------------------------- /autostart/nepomukserver.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Hidden=true 3 | -------------------------------------------------------------------------------- /autostart/org.kde.klipper.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | NoDisplay=true 3 | Name=Removed entry 4 | Exec=/bin/true 5 | -------------------------------------------------------------------------------- /config/10-gui-daemon-shmoverride.conf: -------------------------------------------------------------------------------- 1 | # Adjust PATH to use Xwayland wrapper 2 | [Service] 3 | Environment=PATH=/usr/libexec/qubes/wrappers:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin 4 | -------------------------------------------------------------------------------- /config/klipperrc: -------------------------------------------------------------------------------- 1 | [General] 2 | AutoStart=false 3 | -------------------------------------------------------------------------------- /kde-panel-layout.patch: -------------------------------------------------------------------------------- 1 | --- /usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js.orig 2023-08-03 01:11:03.210000000 +0200 2 | +++ /usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js 2023-08-03 01:11:33.814000000 +0200 3 | @@ -21,7 +21,11 @@ 4 | } 5 | } 6 | 7 | -panel.addWidget("org.kde.plasma.kickoff") 8 | +var qubesMenu = panel.addWidget('org.kde.plasma.quicklaunch') 9 | +qubesMenu.currentConfigGroup = ['General'] 10 | +qubesMenu.writeConfig('launcherUrls', ['file:///usr/share/applications/open-qubes-app-menu.desktop']) 11 | +qubesMenu.currentConfigGroup = ["Shortcuts"] 12 | +qubesMenu.writeConfig("global", "Alt+F1") 13 | //panel.addWidget("org.kde.plasma.showActivityManager") 14 | panel.addWidget("org.kde.plasma.pager") 15 | panel.addWidget("org.kde.plasma.icontasks") 16 | -------------------------------------------------------------------------------- /kde-settings-qubes.spec.in: -------------------------------------------------------------------------------- 1 | Name: kde-settings-qubes 2 | Summary: Package for installing all KDE components and settings needed for Qubes GuiVM 3 | Version: @VERSION@ 4 | Release: @REL@%{?dist} 5 | 6 | License: GPL2 7 | URL: http://qubes-os.org 8 | 9 | BuildArch: noarch 10 | 11 | BuildRequires: make 12 | 13 | Requires: qubes-desktop-linux-common 14 | Requires: qubes-artwork 15 | Requires: kde-gtk-config 16 | Requires: kde-filesystem 17 | Requires: kde-runtime 18 | Requires: kde-runtime-flags 19 | Requires: kde-runtime-libs 20 | Requires: kde-settings 21 | Requires: kdeplasma-addons 22 | Requires: kscreen 23 | Requires: oxygen-cursor-themes 24 | Requires: oxygen-icon-theme 25 | Requires: plasma-workspace 26 | Requires: plasma-workspace-libs 27 | Requires: sddm 28 | Requires: sddm-breeze 29 | 30 | # Drop previous Qubes packages 31 | Requires: kde-baseapps > 16.08.3 32 | Conflicts: kde-baseapps = 2000:16.08.3 33 | Obsoletes: qubes-kde-Dom0 <= 5.12.3 34 | 35 | # Qubes-customized menus 36 | Requires: qubes-menus 37 | 38 | # Custom Breeze style for Qubes 39 | Requires: plasma-breeze-qubes 40 | 41 | Source0: %{name}-%{version}.tar.gz 42 | 43 | %description 44 | %{summary}. 45 | 46 | %package -n plasma-breeze-qubes 47 | Summary: Qubes colorful frames for Breeze plasma theme 48 | Requires: plasma-breeze 49 | %if 0%{?fedora} >=32 || 0%{?rhel} >= 8 50 | Requires: python3-pyxdg 51 | %else 52 | Requires: pyxdg 53 | %endif 54 | 55 | %description -n plasma-breeze-qubes 56 | Qubes colorful frames for Breeze plasma theme. 57 | 58 | %prep 59 | %setup 60 | 61 | %install 62 | %make_install 63 | 64 | %files 65 | %defattr (-,root,root,-) 66 | %{_sysconfdir}/skel/.kde/share/apps/kfileplaces/bookmarks.xml 67 | %{_sysconfdir}/skel/.kde/share/config/kickoffrc 68 | %{_sysconfdir}/skel/.kde/share/config/kscreensaverrc 69 | %{_sysconfdir}/skel/.config/plasma-org.kde.plasma.desktop-appletsrc 70 | %{_datadir}/qubes/kde-panel-layout.patch 71 | %{_datadir}/plasma/look-and-feel/org.fedoraproject.fedora.desktop/contents/plasmoidsetupscripts/org.kde.plasma.kicker.js.qubes 72 | %{_datadir}/plasma/look-and-feel/org.fedoraproject.fedora.desktop/contents/plasmoidsetupscripts/org.kde.plasma.kickerdash.js.qubes 73 | %{_datadir}/plasma/look-and-feel/org.fedoraproject.fedora.desktop/contents/plasmoidsetupscripts/org.kde.plasma.kickoff.js.qubes 74 | %{_datadir}/plasma/shells/org.kde.plasma.desktop/contents/updates/11-qubes.js 75 | %{_datadir}/plasma/shells/org.kde.plasma.desktop/contents/updates/qubes-systray.js 76 | %{_datadir}/kde-settings/kde-profile/default/share/applications/Thunar.desktop 77 | %{_datadir}/kde-settings/kde-profile/default/share/applications/kde4/Help.desktop 78 | %{_datadir}/kde-settings/kde-profile/default/share/applications/kde4/knetattach.desktop 79 | %{_datadir}/kde-settings/kde-profile/default/share/applications/kde4/nepomukbackup.desktop 80 | %{_datadir}/kde-settings/kde-profile/default/share/applications/kde4/nepomukcontroller.desktop 81 | %{_datadir}/kde-settings/kde-profile/default/share/applications/org.kde.klipper.desktop 82 | %{_datadir}/kde-settings/kde-profile/default/share/applications/org.kde.knetattach.desktop 83 | %{_datadir}/kde-settings/kde-profile/default/share/applications/thunar-settings.desktop 84 | %{_datadir}/kde-settings/kde-profile/default/share/autostart/nepomukcontroller.desktop 85 | %{_datadir}/kde-settings/kde-profile/default/share/autostart/org.kde.klipper.desktop 86 | %{_datadir}/kde-settings/kde-profile/default/share/config/klipperrc 87 | %{_datadir}/kde-settings/kde-profile/default/share/config/nepomukserverrc 88 | %{_datadir}/kde-settings/kde-profile/default/share/kde4/services/kcm_nepomuk.desktop 89 | /usr/lib/systemd/user/plasma-kwin_wayland.service.d/10-gui-daemon-shmoverride.conf 90 | 91 | %files -n plasma-breeze-qubes 92 | /usr/bin/qubes-generate-color-palette 93 | %config(noreplace) /etc/xdg/autostart/qubes-generate-color-palette.desktop 94 | 95 | %define settings_replace() \ 96 | qubesfile="%{1}" \ 97 | origfile=${qubesfile%.qubes} \ 98 | backupfile=${origfile}.kde \ 99 | if [ -r "$origfile" -a ! -r "$backupfile" ]; then \ 100 | mv -f "$origfile" "$backupfile" \ 101 | fi \ 102 | cp -f "$qubesfile" "$origfile" \ 103 | %{nil} 104 | 105 | %triggerin -- kde-settings 106 | # Qubes menus prefix 107 | sed -i 's|XDG_MENU_PREFIX="kde4-"|XDG_MENU_PREFIX="kde4-qubes-"|g' /etc/kde/env/env.sh 108 | sed -i 's|XDG_MENU_PREFIX="kf5-"|XDG_MENU_PREFIX="kf5-qubes-"|g' /etc/xdg/plasma-workspace/env/env.sh 109 | 110 | %settings_replace /usr/share/plasma/look-and-feel/org.fedoraproject.fedora.desktop/contents/plasmoidsetupscripts/org.kde.plasma.kicker.js.qubes 111 | %settings_replace /usr/share/plasma/look-and-feel/org.fedoraproject.fedora.desktop/contents/plasmoidsetupscripts/org.kde.plasma.kickerdash.js.qubes 112 | %settings_replace /usr/share/plasma/look-and-feel/org.fedoraproject.fedora.desktop/contents/plasmoidsetupscripts/org.kde.plasma.kickoff.js.qubes 113 | 114 | %triggerin -- plasma-desktop 115 | default_layout="/usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js" 116 | if ! grep -q qubesMenu "$default_layout"; then 117 | cp -a "$default_layout" "$default_layout.qubes-orig" 118 | patch "$default_layout" < /usr/share/qubes/kde-panel-layout.patch 119 | fi 120 | 121 | %post 122 | # it used to be replaced, but now is back to default content - restore it on 123 | # update 124 | configfile=/usr/share/plasma/plasmoids/org.kde.plasma.kickoff/contents/ui/FullRepresentation.qml 125 | backupfile=${configfile}.kde 126 | if [ -r "$backupfile" ]; then 127 | mv -f "$backupfile" "$configfile" 128 | fi 129 | 130 | touch --no-create %{_kde4_iconsdir}/hicolor ||: 131 | touch --no-create %{_kde4_iconsdir}/breeze ||: 132 | 133 | %posttrans 134 | gtk-update-icon-cache --quiet %{_kde4_iconsdir}/hicolor ||: 135 | gtk-update-icon-cache --quiet %{_kde4_iconsdir}/breeze ||: 136 | update-desktop-database -q ||: 137 | 138 | %postun 139 | if [ $1 -eq 0 ] ; then 140 | touch --no-create %{_kde4_iconsdir}/hicolor ||: 141 | touch --no-create %{_kde4_iconsdir}/breeze ||: 142 | gtk-update-icon-cache --quiet %{_kde4_iconsdir}/hicolor ||: 143 | gtk-update-icon-cache --quiet %{_kde4_iconsdir}/breeze ||: 144 | update-desktop-database -q ||: 145 | fi 146 | 147 | %changelog 148 | @CHANGELOG@ 149 | -------------------------------------------------------------------------------- /kde4/services/kcm_nepomuk.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Hidden=true 3 | -------------------------------------------------------------------------------- /kfileplaces-bookmarks.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Network 6 | 7 | 8 | 9 | 10 | 11 | 1302543893/1 12 | true 13 | true 14 | 15 | 16 | 17 | 18 | Root 19 | 20 | 21 | 22 | 23 | 24 | 1302543893/2 25 | true 26 | true 27 | 28 | 29 | 30 | 31 | Trash 32 | 33 | 34 | 35 | 36 | 37 | 1302543893/3 38 | true 39 | true 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /kickoffrc: -------------------------------------------------------------------------------- 1 | [Favorites] 2 | FavoriteURLs=/usr/share/applications/kde4/systemsettings.desktop,/usr/share/applications/qubes-manager.desktop 3 | 4 | [KRunner] 5 | loadAll=false 6 | 7 | [KRunner][PlasmaRunnerManager] 8 | pluginWhiteList=places,shell,services,bookmarks,recentdocuments,locations 9 | -------------------------------------------------------------------------------- /kscreensaverrc: -------------------------------------------------------------------------------- 1 | [ScreenSaver] 2 | ActionBottomLeft=0 3 | ActionBottomRight=0 4 | ActionTopLeft=0 5 | ActionTopRight=0 6 | Enabled=true 7 | Lock=true 8 | LockGrace=5000 9 | PlasmaEnabled=false 10 | Priority=19 11 | Saver=kblank.desktop 12 | Timeout=600 13 | -------------------------------------------------------------------------------- /plasma-org.kde.plasma.desktop-appletsrc: -------------------------------------------------------------------------------- 1 | [ActionPlugins][0] 2 | MidButton;NoModifier=org.kde.paste 3 | RightButton;NoModifier=org.kde.contextmenu 4 | wheel:Vertical;NoModifier=org.kde.switchdesktop 5 | 6 | [ActionPlugins][1] 7 | RightButton;NoModifier=org.kde.contextmenu 8 | 9 | [ActionPlugins][127] 10 | RightButton;NoModifier=org.kde.contextmenu 11 | 12 | [Containments][1] 13 | activityId= 14 | formfactor=2 15 | immutability=1 16 | lastScreen=0 17 | location=4 18 | plugin=org.kde.panel 19 | wallpaperplugin=org.kde.image 20 | 21 | [Containments][1][Applets][2] 22 | immutability=1 23 | plugin=org.kde.plasma.quicklauncher 24 | 25 | [Containments][1][Applets][2][Configuration][General] 26 | launcherUrls=file:///usr/share/applications/open-qubes-app-menu.desktop 27 | 28 | [Containments][1][Applets][2][Configuration][Shortcuts] 29 | global=Alt+F1 30 | 31 | [Containments][1][Applets][2][Shortcuts] 32 | global=Alt+F1 33 | 34 | [Containments][1][Applets][3] 35 | immutability=1 36 | plugin=org.kde.plasma.pager 37 | 38 | [Containments][1][Applets][4] 39 | immutability=1 40 | plugin=org.kde.plasma.taskmanager 41 | 42 | [Containments][1][Applets][5] 43 | immutability=1 44 | plugin=org.kde.plasma.systemtray 45 | 46 | [Containments][1][Applets][5][Configuration][ConfigDialog] 47 | DialogHeight=480 48 | DialogWidth=640 49 | 50 | [Containments][1][Applets][5][Configuration][Containments][8] 51 | formfactor=2 52 | location=4 53 | 54 | [Containments][1][Applets][5][Configuration][Containments][8][Applets][10] 55 | immutability=1 56 | plugin=org.kde.plasma.clipboard 57 | 58 | [Containments][1][Applets][5][Configuration][Containments][8][Applets][12] 59 | immutability=1 60 | plugin=org.kde.plasma.notifications 61 | 62 | [Containments][1][Applets][5][Configuration][Containments][8][Applets][13] 63 | immutability=1 64 | plugin=org.kde.plasma.pkupdates 65 | 66 | [Containments][1][Applets][5][Configuration][Containments][8][Applets][14] 67 | immutability=1 68 | plugin=org.kde.plasma.battery 69 | 70 | [Containments][1][Applets][5][Configuration][Containments][8][Applets][9] 71 | immutability=1 72 | plugin=org.kde.plasma.volume 73 | 74 | [Containments][1][Applets][5][Configuration][General] 75 | extraItems=org.kde.plasma.pkupdates,org.kde.plasma.volume,org.kde.plasma.clipboard,org.kde.plasma.notifications,org.kde.plasma.battery 76 | knownItems=org.kde.plasma.mediacontroller,org.kde.plasma.devicenotifier,org.kde.plasma.pkupdates,org.kde.plasma.volume,org.kde.plasma.clipboard,org.kde.plasma.notifications,org.kde.plasma.battery 77 | 78 | [Containments][1][Applets][6] 79 | immutability=1 80 | plugin=org.kde.plasma.digitalclock 81 | 82 | [Containments][1][General] 83 | AppletOrder=2;3;4;5;6 84 | 85 | [Containments][7] 86 | activityId=c3b6a5c4-fa52-4dea-906e-86742739a41e 87 | formfactor=0 88 | immutability=1 89 | lastScreen=0 90 | location=0 91 | plugin=org.kde.plasma.folder 92 | wallpaperplugin=org.kde.image 93 | 94 | [Containments][7][Wallpaper][org.kde.image][General] 95 | Image=file:///usr/share/wallpapers/Qubes_Steel 96 | -------------------------------------------------------------------------------- /plasmoidsetupscripts/template.js: -------------------------------------------------------------------------------- 1 | if (applet.readConfig("icon", "start-here-kde") == "start-here-kde" || 2 | applet.readConfig("icon", "start-here-kde") == "start-here") { 3 | applet.currentConfigGroup = ["General"] 4 | applet.writeConfig("icon", "qubes-logo-icon"); 5 | } -------------------------------------------------------------------------------- /qubes-generate-color-palette: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | import os 3 | import xdg.BaseDirectory 4 | 5 | 6 | def get_labels(): 7 | labels = {} 8 | try: 9 | # core3 10 | import qubesadmin 11 | app = qubesadmin.Qubes() 12 | labels = app.labels 13 | except ImportError: 14 | # core2 15 | import qubes.qubes 16 | labels = qubes.qubes.QubesVmLabels 17 | 18 | for name, label in labels.items(): 19 | yield name, label.color 20 | 21 | 22 | def generate_palete(dir): 23 | channels = 3 24 | depth = 8 25 | active_foreground_color_default = [255, 255, 255] 26 | active_foreground_colors = { 27 | # Foreground colors overrides in order to make higher contrast. 28 | # Sorted by subjective contrast gain desc. 29 | 'yellow': [0, 0, 0], 30 | 'green': [0, 0, 0], 31 | 'orange': [0, 0, 0], 32 | } 33 | if not os.path.exists(dir): 34 | os.makedirs(dir) 35 | for name, color in get_labels(): 36 | length = int(channels * depth / 4) 37 | step = int(depth / 4) 38 | # get rid of '#' or '0x' in front 39 | color = color[-length:] 40 | r, g, b = (int(color[i:i + step], 0x10) for i in range(0, length, step)) 41 | # if required in the future, this is how to check current decoration 42 | # library: 43 | # kreadconfig5 --file kwinrc --group org.kde.kdecoration2 --key library 44 | active_foreground = active_foreground_colors.get( 45 | name, active_foreground_color_default) 46 | with open(os.path.join(dir, '%s.colors' % name), 'w') as f: 47 | f.write('''[Colors:Window] 48 | BackgroundNormal=%d,%d,%d 49 | 50 | [WM] 51 | activeBackground=%d,%d,%d 52 | inactiveBackground=%d,%d,%d 53 | activeForeground=%d,%d,%d 54 | 55 | ''' % (r, g, b, r, g, b, r / 2, g / 2, b / 2, active_foreground[0], 56 | active_foreground[1], active_foreground[2])) 57 | 58 | 59 | if __name__ == '__main__': 60 | generate_palete(os.path.join(xdg.BaseDirectory.xdg_data_home, 'qubes-kde')) 61 | -------------------------------------------------------------------------------- /qubes-generate-color-palette.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Name=Generate KDE color palete for Qubes windows 4 | Exec=qubes-generate-color-palette 5 | StartupNotify=false 6 | OnlyShowIn=KDE; 7 | X-KDE-autostart-phase=1 8 | -------------------------------------------------------------------------------- /qubes-systray.js: -------------------------------------------------------------------------------- 1 | var biggestId = 0; 2 | var tmpBiggestId = 0; 3 | 4 | for (var i in activityIds) { 5 | var activity = activityById(activityIds[i]); 6 | if (activity.widgetIds.length > 0) { 7 | tmpBiggestId = Math.max.apply(null, activity.widgetIds); 8 | if (tmpBiggestId > biggestId) { 9 | biggestId = tmpBiggestId; 10 | } 11 | } 12 | } 13 | 14 | for (var i in panelIds) { 15 | var panel = panelById(panelIds[i]); 16 | if (panel.widgetIds.length > 0) { 17 | tmpBiggestId = Math.max.apply(null, panel.widgetIds); 18 | if (tmpBiggestId > biggestId) { 19 | biggestId = tmpBiggestId; 20 | } 21 | } 22 | } 23 | 24 | for (var i in panelIds) { 25 | var panel = panelById(panelIds[i]); 26 | for (var j in panel.widgetIds) { 27 | var widget = panel.widgetById(panel.widgetIds[j]); 28 | if (widget.type == "systemtray") { 29 | widget.writeConfig('DefaultAppletsAdded', 'true') 30 | widget.currentConfigGroup = new Array('Applets', biggestId+1); 31 | widget.writeConfig('plugin', 'battery'); 32 | widget.reloadConfig(); 33 | } 34 | } 35 | } 36 | panels()[0].addWidget("org.kde.notifications") 37 | -------------------------------------------------------------------------------- /rel: -------------------------------------------------------------------------------- 1 | 2 2 | -------------------------------------------------------------------------------- /version: -------------------------------------------------------------------------------- 1 | 6.2.0 2 | --------------------------------------------------------------------------------