Add kwin full source tree, greeter login, zsh, pcid service, and build system improvements

This commit is contained in:
2026-04-26 22:31:07 +01:00
parent d4a6b356eb
commit 70a84cefee
3416 changed files with 1360518 additions and 10522 deletions
@@ -0,0 +1 @@
kwin_add_script(videowall package)
@@ -0,0 +1,38 @@
/*
KWin - the KDE window manager
This file is part of the KDE project.
SPDX-FileCopyrightText: 2012 Martin Gräßlin <mgraesslin@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
var applyTo = readConfig("ApplyTo", true);
var whitelist = readConfig("Whitelist", "vlc, xv, vdpau, smplayer, dragon, xine, ffplay, mplayer").toString().toLowerCase().split(",");
for (i = 0; i < whitelist.length; ++i)
whitelist[i] = whitelist[i].trim();
var ignore = readConfig("Ignore", false);
var blacklist = readConfig("Blacklist", "").toString().toLowerCase().split(",");
for (i = 0; i < blacklist.length; ++i)
blacklist[i] = blacklist[i].trim();
function isVideoPlayer(client) {
if (applyTo == true && whitelist.indexOf(client.resourceClass.toString()) < 0)
return false; // required whitelist match failed
if (ignore == true && blacklist.indexOf(client.resourceClass.toString()) > -1)
return false; // required blacklist match hit
return true;
}
function setup(window) {
window.fullScreenChanged.connect(() => {
if (window.fullScreen && isVideoPlayer(window)) {
window.frameGeometry = workspace.clientArea(KWin.FullArea, window);
}
});
}
workspace.windowAdded.connect(setup);
workspace.windowList().forEach(setup);
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
<kcfgfile name=""/>
<group name="">
<entry name="ApplyTo" type="bool">
<default>true</default>
</entry>
<entry name="Whitelist" type="string">
<default>vlc, xv, vdpau, smplayer, dragon, xine, ffplay, mplayer</default>
</entry>
<entry name="Ignore" type="bool">
<default>false</default>
</entry>
<entry name="Blacklist" type="string">
<default></default>
</entry>
</group>
</kcfg>
@@ -0,0 +1,148 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>KWin::VideoWallConfigForm</class>
<widget class="QWidget" name="KWin::VideoWallConfigForm">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>334</width>
<height>59</height>
</rect>
</property>
<property name="windowTitle">
<string>Video Wall</string>
</property>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QCheckBox" name="kcfg_ApplyTo">
<property name="text">
<string>Apply to</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLineEdit" name="kcfg_Whitelist">
<property name="text">
<string>vlc, xv, vdpau, smplayer, dragon, xine, ffplay</string>
</property>
<property name="placeholderText">
<string>Comma separated list of window classes</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="applyLabel">
<property name="visible">
<bool>false</bool>
</property>
<property name="text">
<string>All</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="kcfg_Ignore">
<property name="text">
<string>Ignore</string>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLineEdit" name="kcfg_Blacklist">
<property name="visible">
<bool>false</bool>
</property>
<property name="placeholderText">
<string>Comma separated list of window classes</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="ignoreLabel">
<property name="text">
<string>None</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>kcfg_ApplyTo</sender>
<signal>toggled(bool)</signal>
<receiver>kcfg_Whitelist</receiver>
<slot>setVisible(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>41</x>
<y>9</y>
</hint>
<hint type="destinationlabel">
<x>143</x>
<y>13</y>
</hint>
</hints>
</connection>
<connection>
<sender>kcfg_ApplyTo</sender>
<signal>toggled(bool)</signal>
<receiver>applyLabel</receiver>
<slot>setHidden(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>28</x>
<y>15</y>
</hint>
<hint type="destinationlabel">
<x>330</x>
<y>20</y>
</hint>
</hints>
</connection>
<connection>
<sender>kcfg_Ignore</sender>
<signal>toggled(bool)</signal>
<receiver>kcfg_Blacklist</receiver>
<slot>setVisible(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>33</x>
<y>44</y>
</hint>
<hint type="destinationlabel">
<x>111</x>
<y>45</y>
</hint>
</hints>
</connection>
<connection>
<sender>kcfg_Ignore</sender>
<signal>toggled(bool)</signal>
<receiver>ignoreLabel</receiver>
<slot>setHidden(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>51</x>
<y>33</y>
</hint>
<hint type="destinationlabel">
<x>327</x>
<y>42</y>
</hint>
</hints>
</connection>
</connections>
</ui>
@@ -0,0 +1,153 @@
{
"KPackageStructure": "KWin/Script",
"KPlugin": {
"Authors": [
{
"Email": "mgraesslin@kde.org",
"Name": "Martin Gräßlin",
"Name[ar]": "مارتن جراجلين",
"Name[be]": "Martin Gräßlin",
"Name[bg]": "Martin Gräßlin",
"Name[ca@valencia]": "Martin Gräßlin",
"Name[ca]": "Martin Gräßlin",
"Name[cs]": "Martin Gräßlin",
"Name[da]": "Martin Gräßlin",
"Name[de]": "Martin Gräßlin",
"Name[en_GB]": "Martin Gräßlin",
"Name[eo]": "Martin Gräßlin",
"Name[es]": "Martin Gräßlin",
"Name[et]": "Martin Gräßlin",
"Name[eu]": "Martin Gräßlin",
"Name[fi]": "Martin Gräßlin",
"Name[fr]": "Martin Gräßlin",
"Name[gl]": "Martin Gräßlin.",
"Name[he]": "מרטין גרייסלין",
"Name[hu]": "Martin Gräßlin",
"Name[ia]": "Martin Gräßlin",
"Name[id]": "Martin Gräßlin",
"Name[is]": "Martin Gräßlin",
"Name[it]": "Martin Gräßlin",
"Name[ja]": "Martin Gräßlin",
"Name[ka]": "მარტინ გრესსლინი",
"Name[ko]": "Martin Gräßlin",
"Name[lt]": "Martin Gräßlin",
"Name[lv]": "Martin Gräßlin",
"Name[nb]": "Martin Gräßlin",
"Name[nl]": "Martin Gräßlin",
"Name[nn]": "Martin Gräßlin",
"Name[pl]": "Martin Gräßlin",
"Name[pt]": "Martin Gräßlin",
"Name[pt_BR]": "Martin Gräßlin",
"Name[ro]": "Martin Gräßlin",
"Name[ru]": "Martin Gräßlin",
"Name[sa]": "मार्टिन् ग्रास्लिन्",
"Name[sk]": "Martin Gräßlin",
"Name[sl]": "Martin Gräßlin",
"Name[sv]": "Martin Gräßlin",
"Name[ta]": "மார்ட்டின் கிராஸ்லின்",
"Name[tr]": "Martin Gräßlin",
"Name[uk]": "Martin Gräßlin",
"Name[vi]": "Martin Gräßlin",
"Name[x-test]": "xxMartin Gräßlinxx",
"Name[zh_CN]": "Martin Gräßlin",
"Name[zh_TW]": "Martin Gräßlin"
}
],
"Description": "Spans fullscreen video player over all attached screens to create a Video Wall",
"Description[ar]": "يمتد مشغل الفيديو بملء الشاشة على جميع الشاشات المرفقة لإنشاء حائط فيديو",
"Description[be]": "Размяркоўвае поўнаэкранны відэаплэер на ўсе падлучаныя экраны, каб стварыць відэасцяну",
"Description[bg]": "Разпределяне на видео предаването на всички прикачени екрани, за да се създаде видео стена",
"Description[ca@valencia]": "Expandix el reproductor de vídeo a pantalla completa per a totes les pantalles adjuntades per a crear un mur de vídeo",
"Description[ca]": "Expandeix el reproductor de vídeo a pantalla completa per a totes les pantalles adjuntades per a crear un mur de vídeo",
"Description[cs]": "Roztáhne přehrávání videa přes všechny plochy pro vytvoření video zdi",
"Description[da]": "Spænder fuldskærmsvinduer over alle tilsluttede skærme for at lave en videovæg",
"Description[de]": "Erweitert einen Videospieler im Vollbildmodus über alle Bildschirme, um eine Video-Wand zu erzeugen",
"Description[en_GB]": "Spans fullscreen video player over all attached screens to create a Video Wall",
"Description[eo]": "Enhavas plenekranan videoludilon super ĉiuj kunigitaj ekranoj por krei Videomuron",
"Description[es]": "Amplía el reproductor de video en pantalla completa a todas las pantallas conectadas para crear un muro de vídeo",
"Description[et]": "Täisekraan-videomängija laiendamine kõigile ühendatud ekraanile videoseina loomiseks",
"Description[eu]": "Bideo-horma bat sortzeko, leiho-osoko bideo jotzailea atxikitako pantaila guzietara hedatzen du",
"Description[fi]": "Luo videoseinän ulottamalla koko näytön videon kaikkiin kytkettyihin näyttöihin",
"Description[fr]": "Affiche le lecteur vidéo en plein écran sur tous les écrans connectés pour créer un mur d'images",
"Description[gl]": "Estende un reprodutor de vídeo a pantalla completa por todas as pantallas anexas para crear unha parede de vídeo.",
"Description[he]": "פורש נגן וידאו במסך מלא כל פני כל המסכים המצורפים כדי ליצור מסך סרטונים",
"Description[hu]": "Teljes képernyős videólejátszó kiterjesztése az összes csatlakoztatott kijelzőre, létrehozva egy videófalat",
"Description[ia]": "Extende jocator de video de schermo plen super omne schermos attachate pro crea un Muro de Video",
"Description[is]": "Láta myndskeið sem fylla skjá ná yfir alla tengda skjái til að mynda einn vídeóvegg",
"Description[it]": "Distribuisce il lettore video a schermo intero su tutti gli schermi per creare una parete video",
"Description[ja]": "フルスクリーンの動画プレーヤーを接続されたすべてのスクリーンに広げて一つの画面を作ります",
"Description[ka]": "მთლიან ეკრანზე დაკვრის შემთხვევაში ვიდეოდამკვრელის ყველა მიერთებულ ეკრანზე გაწელვა და ამით ვიდეოკედლის შექმნა",
"Description[ko]": "전체 화면 동영상 재생기를 모든 화면에 걸쳐서 동영상 벽 만들기",
"Description[lt]": "Ištempia viso ekrano vaizdo leistuvę taip, kad per visus prijungtus ekranus būtų matoma vaizdo siena",
"Description[lv]": "Pilnekrāna video atskaņotāju izpleš pāri visiem pievienotajiem ekrāniem, izveidojot video sienu",
"Description[nb]": "Filmfremsyning i fullskjermsmodus over alle tilgjengelige skjermer",
"Description[nl]": "Verdeelt de videospeler in modus volledig scherm over alle aangesloten schermen om een Videomuur te creëren",
"Description[nn]": "Filmframsyning i fullskjermsmodus over alle tilgjengelege skjermar",
"Description[pl]": "Rozciąga pełnoekranowy odtwarzacz filmów na wszystkie podłączone ekrany, tworząc ścianę wideo",
"Description[pt]": "Expande o leitor de vídeo de ecrã completo para todos os ecrãs ligados, de forma a formar um mural de vídeo",
"Description[pt_BR]": "Estende o player de vídeo em tela cheia para todas as telas anexadas criando um mural de vídeo",
"Description[ru]": "Для создания видеостены вывод видеопроигрывателя распределяется по всем подключённым экранам",
"Description[sa]": "Video Wall निर्मातुं सर्वेषु संलग्नस्क्रीन् उपरि पूर्णपर्दे विडियो प्लेयरं व्याप्नोति",
"Description[sk]": "Rozšíri prehrávač videa na celú obrazovku na všetky pripojené obrazovky a vytvorí tak veľkoplošnú projekčnú plochu",
"Description[sl]": "Raztegne celozaslonski video predvajalnik na vseh pripete zaslone, da ustvarite video steno",
"Description[sv]": "Utökar en videospelare med fullskärm över alla anslutna bildskärmar för att skapa en videovägg",
"Description[ta]": "முழுத்திரை நிகழ்படத்தை பல திரைகளில் பரப்பி ஒரே திரையை போல் காட்டும்",
"Description[tr]": "Tam ekran video oynatıcılarını tüm bağlı ekranlara genişleterek bir tür Video Duvarı oluşturur",
"Description[uk]": "Розподіл зображення відеопрогравача у повноекранному режимі на всі екрани з метою створення відеостіни",
"Description[vi]": "Trải trình phát phim toàn màn hình ra tất cả các màn hình đang được gắn vào để tạo nên một màn hình ghép",
"Description[x-test]": "xxSpans fullscreen video player over all attached screens to create a Video Wallxx",
"Description[zh_CN]": "视频播放器在全屏时将显示在全部已连接的屏幕上,组成视频墙",
"Description[zh_TW]": "將全螢幕的影片播放器擴展到所有的螢幕,建立一個影片牆",
"Icon": "preferences-system-windows-script-test",
"Id": "videowall",
"License": "GPL",
"Name": "Video Wall",
"Name[ar]": "حائط الفيديو",
"Name[be]": "Відэасцяна",
"Name[bg]": "Видео стена",
"Name[ca@valencia]": "Mur de vídeo",
"Name[ca]": "Mur de vídeo",
"Name[cs]": "Video stěna",
"Name[da]": "Videovæg",
"Name[de]": "Video-Wand",
"Name[en_GB]": "Video Wall",
"Name[eo]": "Video Muro",
"Name[es]": "Video wall",
"Name[et]": "Videosein",
"Name[eu]": "Bideo-horma",
"Name[fi]": "Videoseinä",
"Name[fr]": "Mur de vidéos",
"Name[gl]": "Parede de vídeo",
"Name[he]": "קיר סרטון",
"Name[hu]": "Videófal",
"Name[ia]": "Muro de Video",
"Name[is]": "Vídeóveggur",
"Name[it]": "Parete video",
"Name[ja]": "ビデオウォール",
"Name[ka]": "ვიდეო კედელი",
"Name[ko]": "동영상 벽",
"Name[lt]": "Vaizdo siena",
"Name[lv]": "Video siena",
"Name[nb]": "Videovegg",
"Name[nl]": "Videomuur",
"Name[nn]": "Videovegg",
"Name[pl]": "Ściana wideo",
"Name[pt]": "Painel de Vídeo",
"Name[pt_BR]": "Parede de vídeo",
"Name[ro]": "Perete video",
"Name[ru]": "Видеостена",
"Name[sa]": "विडियो वाल",
"Name[sk]": "Veľkoplošná projekčná plocha",
"Name[sl]": "Video stena",
"Name[sv]": "Videovägg",
"Name[ta]": "நிகழ்பட சுவர்",
"Name[tr]": "Video Duvarı",
"Name[uk]": "Відеостіна",
"Name[vi]": "Màn hình ghép",
"Name[x-test]": "xxVideo Wallxx",
"Name[zh_CN]": "视频墙",
"Name[zh_TW]": "影片牆"
},
"X-KDE-ConfigModule": "kwin/effects/configs/kcm_kwin4_genericscripted",
"X-Plasma-API": "javascript"
}