1
0
mirror of https://github.com/KDE/krfb synced 2026-07-01 15:51:18 -07:00

Compare commits

...

32 Commits

Author SHA1 Message Date
Heiko Becker
b2e736c21a GIT_SILENT Update Appstream for new release 2022-04-12 23:56:57 +02:00
Heiko Becker
77b5b11edf GIT_SILENT Upgrade release service version to 22.04.0. 2022-04-12 23:11:09 +02:00
Heiko Becker
17acd677d2 GIT_SILENT Upgrade release service version to 22.03.90. 2022-04-05 21:39:37 +02:00
l10n daemon script
53262081e2 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-04-01 03:20:33 +00:00
l10n daemon script
a8c33efdb0 GIT_SILENT made messages (after extraction) 2022-04-01 02:34:24 +00:00
Andreas Sturmlechner
4b7985db1b Make KF5Wayland optional behind existing DISABLE_PIPEWIRE
We have an option so let's be consistent.

Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
2022-03-24 18:04:52 +01:00
Albert Astals Cid
944e4ddc07 GIT_SILENT Upgrade release service version to 22.03.80. 2022-03-12 12:40:43 +01:00
Aleix Pol
c14d37e56f virtualmonitor: Return 1 if it failed to start 2022-03-08 02:24:19 +00:00
l10n daemon script
2d391672e5 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-03-05 01:43:41 +00:00
Heiko Becker
64252e52f6 GIT_SILENT Update Appstream for new release
(cherry picked from commit ef32c9266a)
2022-02-27 19:36:20 +01:00
l10n daemon script
a4fed2f0d5 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-02-27 01:52:27 +00:00
l10n daemon script
70488a7b59 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-02-17 01:51:20 +00:00
Laurent Montel
78205f9116 Make it compile without deprecated methods 2022-02-12 10:52:31 +01:00
l10n daemon script
59db6f6b7b GIT_SILENT made messages (after extraction) 2022-02-06 00:47:00 +00:00
Heiko Becker
18e76cfc0c GIT_SILENT Update Appstream for new release
(cherry picked from commit fa7bbbc872)
2022-01-29 00:24:20 +01:00
Luke Dashjr
1222c2067c Add CMake option DISABLE_PIPEWIRE to skip dependency check 2022-01-24 01:35:21 +00:00
Alexey Minnekhanov
25f5492f33 Port away from deprecated methods
Fixes thigs like:
warning: ‘static QVector<KPluginMetaData> KPluginLoader::findPlugins(
  const QString&, std::function<bool(const KPluginMetaData&)>)’
  is deprecated: Since 5.86.
  Use KPluginMetaData::findPlugins instead [-Wdeprecated-declarations]
2022-01-11 22:43:59 +00:00
Jan Grulich
96eb21da35 PipeWire fb: process cursor metadata even for empty buffer
It is possible to have zero data in the buffer, but have the
buffer to carry metadata about the mouse cursor. In that case
we should try to process the cursor metadata before we discard
the buffer for not having any data.
2022-01-05 11:39:29 +01:00
Heiko Becker
cf5f045cab GIT_SILENT Update Appstream for new release
(cherry picked from commit 1d5bf08467)
2022-01-03 22:55:25 +01:00
l10n daemon script
dce8e6dc85 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-01-02 01:56:58 +00:00
l10n daemon script
1e5ff7f93a SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2021-12-31 01:40:11 +00:00
Nicolas Fella
6bec921ec0 Remove dead CMake code 2021-12-29 01:44:42 +01:00
Alexey Minnekhanov
b13a8e9613 fix build warning in VirtualMonitorRfbServer
mark VirtualMonitorRfbServer:newClient() as oveeride

fixes warning:
krfb/main-virtualmonitor.cpp:67:23: warning:
 ‘virtual PendingRfbClient* VirtualMonitorRfbServer::newClient(rfbClientPtr)’
 can be marked override [-Wsuggest-override]
   67 |     PendingRfbClient *newClient(rfbClientPtr client) {
      |                       ^~~~~~~~~
2021-12-24 02:00:50 +03:00
Albert Astals Cid
8a1261191f GIT_SILENT Update Appstream for new release
(cherry picked from commit 39b068b143)
2021-12-09 17:31:10 +01:00
l10n daemon script
dddb12708d SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2021-11-26 01:25:48 +00:00
l10n daemon script
384cfdcbed SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2021-11-25 01:30:05 +00:00
l10n daemon script
9b26c11c2f GIT_SILENT made messages (after extraction) 2021-11-21 00:27:53 +00:00
Heiko Becker
2c6cb1e6f5 Merge remote-tracking branch 'origin/release/21.12' 2021-11-17 09:19:01 +01:00
l10n daemon script
a0fd0c3a31 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2021-11-14 01:28:24 +00:00
l10n daemon script
6a01a98c9f SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2021-11-13 01:25:23 +00:00
l10n daemon script
30455f6308 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2021-11-09 01:21:09 +00:00
Heiko Becker
cbafc2fdad GIT_SILENT Upgrade release service version to 22.03.70. 2021-11-08 20:54:20 +01:00
13 changed files with 79 additions and 80 deletions

View File

@@ -1,15 +1,15 @@
cmake_minimum_required(VERSION 3.16)
# KDE Application Version, managed by release script
set (RELEASE_SERVICE_VERSION_MAJOR "21")
set (RELEASE_SERVICE_VERSION_MINOR "11")
set (RELEASE_SERVICE_VERSION_MICRO "80")
set (RELEASE_SERVICE_VERSION_MAJOR "22")
set (RELEASE_SERVICE_VERSION_MINOR "04")
set (RELEASE_SERVICE_VERSION_MICRO "0")
set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
project(krfb VERSION ${RELEASE_SERVICE_VERSION})
set(QT_MIN_VERSION 5.15.0)
set(KF5_MIN_VERSION 5.85.0)
set(KF5_MIN_VERSION 5.86.0)
find_package(ECM ${KF5_MIN_VERSION} NO_MODULE REQUIRED)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ${ECM_MODULE_PATH})
@@ -38,7 +38,6 @@ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
DocTools
Notifications
Wallet
Wayland
WidgetsAddons
WindowSystem
XmlGui
@@ -63,7 +62,6 @@ endif(WIN32)
add_definitions(
-DQT_DEPRECATED_WARNINGS
-DQT_DISABLE_DEPRECATED_BEFORE=0x050600
-DQT_USE_QSTRINGBUILDER
-DQT_NO_CAST_TO_ASCII
-DQT_NO_CAST_FROM_ASCII
@@ -74,16 +72,24 @@ add_definitions(
-DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT
)
add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050f02)
add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055A00)
include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} )
find_package(LibVNCServer REQUIRED)
pkg_check_modules(PipeWire IMPORTED_TARGET libpipewire-0.3)
option(DISABLE_PIPEWIRE "Disable PipeWire support." OFF)
if(NOT DISABLE_PIPEWIRE)
pkg_check_modules(PipeWire IMPORTED_TARGET libpipewire-0.3)
endif()
add_feature_info(PipeWire PipeWire_FOUND "Required for pipewire screencast plugin")
find_package(PlasmaWaylandProtocols 1.5.0)
if(PipeWire_FOUND AND PlasmaWaylandProtocols_FOUND)
find_package(KF5Wayland ${KF5_MIN_VERSION})
find_package(QtWaylandScanner REQUIRED)
find_package(Qt5WaylandClient)
find_package(Qt5XkbCommonSupport)
@@ -124,12 +130,6 @@ include_directories ("${CMAKE_CURRENT_BINARY_DIR}/krfb"
"${CMAKE_CURRENT_SOURCE_DIR}/krfb/ui"
)
if(Q_WS_X11)
if(NOT X11_XTest_FOUND)
message(FATAL_ERROR "krfb requires the libXtst (https://xorg.freedesktop.org) to be built")
endif(NOT X11_XTest_FOUND)
endif(Q_WS_X11)
add_subdirectory(events)
add_subdirectory(krfb)
add_subdirectory(framebuffers)

View File

@@ -676,8 +676,30 @@ void PWFrameBuffer::Private::handleFrame(pw_buffer *pwBuffer)
auto spaBuffer = pwBuffer->buffer;
uint8_t *src = nullptr;
// process cursor
{
struct spa_meta_cursor *cursor = static_cast<struct spa_meta_cursor*>(spa_buffer_find_meta_data (spaBuffer, SPA_META_Cursor, sizeof (*cursor)));
if (spa_meta_cursor_is_valid (cursor)) {
struct spa_meta_bitmap *bitmap = nullptr;
if (cursor->bitmap_offset)
bitmap = SPA_MEMBER (cursor, cursor->bitmap_offset, struct spa_meta_bitmap);
if (bitmap && bitmap->size.width > 0 && bitmap->size.height > 0) {
const uint8_t *bitmap_data;
bitmap_data = SPA_MEMBER (bitmap, bitmap->offset, uint8_t);
cursorHotspot = { cursor->hotspot.x, cursor->hotspot.y };
cursorTexture = QImage(bitmap_data, bitmap->size.width, bitmap->size.height, bitmap->stride, spaToQImageFormat(bitmap->format));
}
cursorPosition = QPoint{ cursor->position.x, cursor->position.y };
}
}
if (spaBuffer->datas[0].chunk->size == 0) {
qCDebug(KRFB_FB_PIPEWIRE) << "discarding null buffer";
qCDebug(KRFB_FB_PIPEWIRE) << "Got empty buffer. The buffer possibly carried only "
"information about the mouse cursor.";
return;
}
@@ -780,28 +802,6 @@ void PWFrameBuffer::Private::handleFrame(pw_buffer *pwBuffer)
}
#endif /* HAVE_DMA_BUF */
// process cursor
{
struct spa_meta_cursor *cursor = static_cast<struct spa_meta_cursor*>(spa_buffer_find_meta_data (spaBuffer, SPA_META_Cursor, sizeof (*cursor)));
if (spa_meta_cursor_is_valid (cursor)) {
struct spa_meta_bitmap *bitmap = nullptr;
if (cursor->bitmap_offset)
bitmap = SPA_MEMBER (cursor, cursor->bitmap_offset, struct spa_meta_bitmap);
if (bitmap && bitmap->size.width > 0 && bitmap->size.height > 0) {
const uint8_t *bitmap_data;
bitmap_data = SPA_MEMBER (bitmap, bitmap->offset, uint8_t);
cursorHotspot = { cursor->hotspot.x, cursor->hotspot.y };
cursorTexture = QImage(bitmap_data, bitmap->size.width, bitmap->size.height, bitmap->stride, spaToQImageFormat(bitmap->format));
}
cursorPosition = QPoint{ cursor->position.x, cursor->position.y };
}
}
struct spa_meta_region* videoMetadata =
static_cast<struct spa_meta_region*>(spa_buffer_find_meta_data(
spaBuffer, SPA_META_VideoCrop, sizeof(*videoMetadata)));

View File

@@ -28,7 +28,6 @@
#include <QGlobalStatic>
#include <KPluginFactory>
#include <KPluginLoader>
#include <KPluginMetaData>
#include <QtCore/QSharedPointer>
@@ -70,22 +69,15 @@ void EventsManager::loadPlugins()
i.toBack();
QSet<QString> unique;
while (i.hasPrevious()) {
KPluginMetaData data = i.previous();
KPluginMetaData data = i.previous();
// only load plugins once, even if found multiple times!
if (unique.contains(data.name()))
if (unique.contains(data.name())) {
continue;
KPluginFactory *factory = KPluginLoader(data.fileName()).factory();
if (!factory) {
qCDebug(KRFB) << "KPluginFactory could not load the plugin:" << data.fileName();
continue;
} else {
qCDebug(KRFB) << "found plugin at " << data.fileName();
}
auto plugin = factory->create<EventsPlugin>(this);
if (plugin) {
m_plugins.insert(data.pluginId(), plugin);
const KPluginFactory::Result<EventsPlugin> result = KPluginFactory::instantiatePlugin<EventsPlugin>(data);
if (result.plugin) {
m_plugins.insert(data.pluginId(), result.plugin);
qCDebug(KRFB) << "Loaded plugin with name " << data.pluginId();
} else {
qCDebug(KRFB) << "unable to load plugin for " << data.fileName();

View File

@@ -27,7 +27,6 @@
#include <QGlobalStatic>
#include <KPluginFactory>
#include <KPluginLoader>
#include <KPluginMetaData>
#include <QSharedPointer>
@@ -61,9 +60,7 @@ FrameBufferManager *FrameBufferManager::instance()
void FrameBufferManager::loadPlugins()
{
//qDebug();
const QVector<KPluginMetaData> plugins = KPluginLoader::findPlugins(QStringLiteral("krfb/framebuffer"));
const QVector<KPluginMetaData> plugins = KPluginMetaData::findPlugins(QStringLiteral("krfb/framebuffer"));
QVectorIterator<KPluginMetaData> i(plugins);
i.toBack();
@@ -73,18 +70,10 @@ void FrameBufferManager::loadPlugins()
// only load plugins once, even if found multiple times!
if (unique.contains(data.name()))
continue;
KPluginFactory *factory = KPluginLoader(data.fileName()).factory();
if (!factory) {
qCDebug(KRFB) << "KPluginFactory could not load the plugin:" << data.fileName();
continue;
} else {
qCDebug(KRFB) << "found plugin at " << data.fileName();
}
auto plugin = factory->create<FrameBufferPlugin>(this);
if (plugin) {
m_plugins.insert(data.pluginId(), plugin);
const KPluginFactory::Result<FrameBufferPlugin> result = KPluginFactory::instantiatePlugin<FrameBufferPlugin>(data);
if (result.plugin) {
m_plugins.insert(data.pluginId(), result.plugin);
qCDebug(KRFB) << "Loaded plugin with name " << data.pluginId();
} else {
qCDebug(KRFB) << "unable to load plugin for " << data.fileName();

View File

@@ -24,6 +24,7 @@ Comment[nn]=Hendingstillegg for KRfb
Comment[pl]=Wtyczki wydarzeń dla KRfb
Comment[pt]='Plugins' de eventos para o KRfb
Comment[pt_BR]=Plugins de evento para o KRfb
Comment[ro]=Extensii de evenimente pentru KRfb
Comment[sk]=Doplnky udalostí pre KRfb
Comment[sl]=Vstavki dogodkov za KRFB
Comment[sv]=Händelseinsticksprogram för Krfb

View File

@@ -38,6 +38,7 @@ Comment[pa]=KRfb ਲਈ ਫਰੇਮ ਬਫ਼ਰ ਪਲੱਗਇਨ
Comment[pl]=Wtyczki buforów ramek dla KRfb
Comment[pt]='Plugins' do 'Framebuffer' para o KRfb
Comment[pt_BR]=Plugins de framebuffers para o KRfb
Comment[ro]=Extensii de tampon de cadre pentru KRfb
Comment[ru]=Модуль буфера кадров для KRfb
Comment[si]=KRfb සඳහා රාමු බෆර ප්ලගින
Comment[sk]=Frame Buffer modul pre KRfb

View File

@@ -518,7 +518,7 @@ Name[nds]=Leeg Passwoort
Name[nl]=Ongeldig wachtwoord
Name[nn]=Ugyldig passord
Name[pa]=ਗਲਤ ਪਾਸਵਰਡ
Name[pl]=Błędne hasło
Name[pl]=Nieprawidłowe hasło
Name[pt]=Senha Inválida
Name[pt_BR]=Senha inválida
Name[ro]=Parolă nevalidă
@@ -589,7 +589,7 @@ Comment[nl]=Ongeldig wachtwoord
Comment[nn]=Passordet var ugyldig
Comment[oc]=Mot de pas invalid
Comment[pa]=ਗਲਤ ਪਾਸਵਰਡ
Comment[pl]=Błędne hasło
Comment[pl]=Nieprawidłowe hasło
Comment[pt]=A senha é inválida
Comment[pt_BR]=Senha inválida
Comment[ro]=Parolă nevalidă

View File

@@ -64,7 +64,7 @@ QByteArray PendingVirtualMonitorRfbClient::password;
class VirtualMonitorRfbServer : public RfbServer
{
public:
PendingRfbClient *newClient(rfbClientPtr client) {
PendingRfbClient *newClient(rfbClientPtr client) override {
qDebug() << "new client request";
return new PendingVirtualMonitorRfbClient(client, this);
}
@@ -167,7 +167,9 @@ int main(int argc, char *argv[])
sigemptyset(&sigs);
sigaddset(&sigs, SIGPIPE);
sigprocmask(SIG_BLOCK, &sigs, nullptr);
server.start();
if (!server.start()) {
return 1;
}
return app.exec();
}

View File

@@ -38,8 +38,6 @@
#include <QCommandLineOption>
static const char description[] = I18N_NOOP("VNC-compatible server to share "
"desktops");
static bool checkX11Capabilities()
{
int bp1, bp2, majorv, minorv;
@@ -95,7 +93,7 @@ int main(int argc, char *argv[])
KAboutData aboutData(QStringLiteral("krfb"),
i18n("Desktop Sharing"),
QStringLiteral(KRFB_VERSION_STRING),
i18n(description),
i18n("VNC-compatible server to share desktops"),
KAboutLicense::GPL,
i18n("(c) 2009-2010, Collabora Ltd.\n"
"(c) 2007, Alessandro Praduroux\n"

View File

@@ -22,7 +22,6 @@
#include <KStandardAction>
#include <KActionCollection>
#include <KNewPasswordDialog>
#include <KPluginLoader>
#include <KPluginMetaData>
#include <QIcon>
@@ -83,7 +82,7 @@ public:
}
void fillFrameBuffersCombo() {
const QVector<KPluginMetaData> plugins = KPluginLoader::findPlugins(QStringLiteral("krfb/framebuffer"));
const QVector<KPluginMetaData> plugins = KPluginMetaData::findPlugins(QStringLiteral("krfb/framebuffer"));
QSet<QString> unique;
QVectorIterator<KPluginMetaData> i(plugins);
i.toBack();

View File

@@ -26,6 +26,7 @@
<name xml:lang="pl">Krfb</name>
<name xml:lang="pt">Krfb</name>
<name xml:lang="pt-BR">Krfb</name>
<name xml:lang="ro">Krfb</name>
<name xml:lang="ru">Krfb</name>
<name xml:lang="sk">Krfb</name>
<name xml:lang="sl">Krfb</name>
@@ -61,6 +62,8 @@
<summary xml:lang="pl">Udostępnij swój pulpit innemu komputerowi przez VNC</summary>
<summary xml:lang="pt">Partilhar o seu ecrã com outro computador por VNC</summary>
<summary xml:lang="pt-BR">Compartilhar sua área de trabalho com outro computador via VNC</summary>
<summary xml:lang="ro">Partajați-vă biroul cu alt calculator prin VNC</summary>
<summary xml:lang="sk">Zdieľajte vašu plochu s iným počítačom cez VNC</summary>
<summary xml:lang="sl">Deli namizje z drugim računalnikom prek VNC</summary>
<summary xml:lang="sv">Dela ditt skrivbord med en annan dator via VNC</summary>
<summary xml:lang="uk">Надайте вашу стільницю у спільне користування з іншим комп'ютером за допомогою VNC</summary>
@@ -69,7 +72,7 @@
<description>
<p>Krfb Desktop Sharing is a server application that allows you to share your current session with a user on another machine, who can use a VNC client to view or even control the desktop.</p>
<p xml:lang="ca">El Krfb és una aplicació de servidor que permet compartir la vostra sessió actual amb un usuari en una altra màquina, la qual pot emprar un client VNC per a veure o controlar l'escriptori.</p>
<p xml:lang="ca-valencia">El Krfb és una aplicació de servidor que permet compartir la vostra sessió actual amb un usuari en una altra màquina, la qual pot emprar un client VNC per a veure o controlar l'escriptori.</p>
<p xml:lang="ca-valencia">Krfb és una aplicació de servidor que permet compartir la vostra sessió actual amb un usuari en una altra màquina, la qual pot emprar un client VNC per a veure o controlar l'escriptori.</p>
<p xml:lang="da">Krfb-skrivebordsdeling er et serverprogram der giver dig mulighed for at dele din nuværende session med en bruger på en anden maskine som kan bruge en VNC-klient til at vise eller endda styrer skrivebordet.</p>
<p xml:lang="de">Krfb ist eine Serveranwendung, welche die gemeinsame Benutzung der aktuellen Sitzung mit einem Benutzer auf einem anderen Rechner ermöglicht, der mit Hilfe eines VNC-Programms den Bildschirminhalt sehen oder sogar die Arbeitsfläche bedienen kann.</p>
<p xml:lang="el">Η κοινή χρήση επιφάνειας εργασίας Krfb είναι μια εφαρμογή εξυπηρετητή που σας επιτρέπει να μοιράζεστε την τρέχουσα συνεδρία σας με έναν χρήστη σε άλλο μηχάνημα, ο οποίος μπορεί να χρησιμοποιεί έναν πελάτη VNC για να παρακολουθεί ή και να ελέγχει την επιφάνεια εργασίας σας.</p>
@@ -111,7 +114,7 @@
<screenshot type="default">
<caption>Sharing desktop with Krfb</caption>
<caption xml:lang="ca">Compartint l'escriptori amb el Krfb</caption>
<caption xml:lang="ca-valencia">Compartint l'escriptori amb el Krfb</caption>
<caption xml:lang="ca-valencia">Compartint l'escriptori amb Krfb</caption>
<caption xml:lang="cs">Sdílím pracovní plochu pomocí Krfb</caption>
<caption xml:lang="da">Deler skrivebord med Krfb</caption>
<caption xml:lang="de">Freigabe der Arbeitsfläche mit Krfb</caption>
@@ -132,6 +135,7 @@
<caption xml:lang="pl">Udostępnienie pulpitu przy użyciu Krfb</caption>
<caption xml:lang="pt">Partilha do ecrã com o Krfb</caption>
<caption xml:lang="pt-BR">Compartilhando a área de trabalho com o Krfb</caption>
<caption xml:lang="ro">Partajarea biroului cu Krfb</caption>
<caption xml:lang="ru">Общий доступ к рабочему столу с использованием Krfb</caption>
<caption xml:lang="sk">Zdieľanie pracovnej plochy s Krfb</caption>
<caption xml:lang="sl">Deljenje namizij s Krfb</caption>
@@ -148,9 +152,9 @@
</provides>
<project_group>KDE</project_group>
<releases>
<release version="21.08.3" date="2021-11-04"/>
<release version="21.08.2" date="2021-10-07"/>
<release version="21.08.1" date="2021-09-02"/>
<release version="21.08.0" date="2021-08-12"/>
<release version="22.04.0" date="2022-04-21"/>
<release version="21.12.3" date="2022-03-03"/>
<release version="21.12.2" date="2022-02-03"/>
<release version="21.12.1" date="2022-01-06"/>
</releases>
</component>

View File

@@ -95,6 +95,7 @@ GenericName[nn]=Skrivebordsdeling (VNC)
GenericName[pl]=Współdzielenie pulpitu (VNC)
GenericName[pt]=Partilha do Ecrã (VNC)
GenericName[pt_BR]=Compartilhamento de ambiente de trabalho (VNC)
GenericName[ro]=Partajare birou (VNC)
GenericName[sl]=Souporaba namizja (VNC)
GenericName[sv]=Skrivbordsdelning (VNC)
GenericName[uk]=Спільні стільниці (VNC)

View File

@@ -6,35 +6,47 @@ Icon=krfb
Terminal=false
Name=KRFBs Virtual Monitor
Name[ca]=Monitor virtual del Krfb
Name[ca@valencia]=Monitor virtual del Krfb
Name[ca@valencia]=Monitor virtual de Krfb
Name[cs]=Virtuální monitor KRFB
Name[el]=Εικονική οθόνη του KRFB
Name[en_GB]=KRFBs Virtual Monitor
Name[es]=Monitor virtual de KRFB
Name[fi]=KRFB:n virtuaalinäyttö
Name[fr]=Moniteur virtuel « Krfb »
Name[ia]=Virtual Monitor de KRFB
Name[it]=Monitor virtuale di KRFB
Name[ko]=KRFBs
Name[nl]=Virtuele monitor van KRFB
Name[pl]=Monitor wirtualny KRFB
Name[pt]=Monitor Virtual do KRFB
Name[pt_BR]=Monitor virtual do KRFB
Name[ro]=Monitor virtual KRFB
Name[sl]=Navidezni monitor KRFB
Name[sv]=Krfb:s virtuella bildskärm
Name[uk]=Віртуальний монітор KRFB
Name[x-test]=xxKRFBs Virtual Monitorxx
Name[zh_CN]=KRBs
Comment=Remote Virtual Monitor
Comment[ca]=Monitor virtual remot
Comment[ca@valencia]=Monitor virtual remot
Comment[cs]=Vzdálený virtuální monitor
Comment[el]=Απομακρυσμένη εικονική οθόνη
Comment[en_GB]=Remote Virtual Monitor
Comment[es]=Monitor virtual remoto
Comment[fi]=Virtuaalinen etänäyttö
Comment[fr]=Moniteur virtuel distant
Comment[ia]=Monitor Virtual Remote
Comment[it]=Monitor virtuale remoto
Comment[ko]=
Comment[nl]=Virtual Monitor op afstand
Comment[pl]=Zdalny monitor wirtualny
Comment[pt]=Monitor Virtual Remoto
Comment[pt_BR]=Monitor virtual remoto
Comment[ro]=Monitor virtual distant
Comment[sl]=Oddaljeni navidezni monitor
Comment[sv]=Virtuell fjärrbildskärm
Comment[uk]=Віддалений віртуальний монітор
Comment[x-test]=xxRemote Virtual Monitorxx
Comment[zh_CN]=
NoDisplay=true
X-KDE-Wayland-Interfaces=zkde_screencast_unstable_v1