Showing preview only (9,747K chars total). Download the full file or copy to clipboard to get everything.
Repository: lxqt/lxqt-panel
Branch: master
Commit: 5d1be0e72747
Files: 2503
Total size: 8.6 MB
Directory structure:
gitextract_ry8cbf98/
├── .ci/
│ └── build.sh
├── .gitattributes
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ ├── config.yml
│ │ └── feature_request.md
│ ├── ISSUE_TEMPLATE.md
│ └── workflows/
│ └── test.yml
├── .gitignore
├── .translation-update
├── AUTHORS
├── CHANGELOG
├── CMakeLists.txt
├── LICENSE
├── README.md
├── autostart/
│ ├── CMakeLists.txt
│ ├── lxqt-panel.desktop.in
│ ├── lxqt-panel_wayland.desktop.in
│ └── translations/
│ ├── lxqt-panel.desktop.yaml
│ ├── lxqt-panel_ar.desktop.yaml
│ ├── lxqt-panel_bg.desktop.yaml
│ ├── lxqt-panel_ca.desktop.yaml
│ ├── lxqt-panel_cs.desktop.yaml
│ ├── lxqt-panel_da.desktop.yaml
│ ├── lxqt-panel_de.desktop.yaml
│ ├── lxqt-panel_el.desktop.yaml
│ ├── lxqt-panel_en_GB.desktop.yaml
│ ├── lxqt-panel_eo.desktop.yaml
│ ├── lxqt-panel_es.desktop.yaml
│ ├── lxqt-panel_es_VE.desktop.yaml
│ ├── lxqt-panel_et.desktop.yaml
│ ├── lxqt-panel_eu.desktop.yaml
│ ├── lxqt-panel_fi.desktop.yaml
│ ├── lxqt-panel_fr.desktop.yaml
│ ├── lxqt-panel_gl.desktop.yaml
│ ├── lxqt-panel_he.desktop.yaml
│ ├── lxqt-panel_hr.desktop.yaml
│ ├── lxqt-panel_hu.desktop.yaml
│ ├── lxqt-panel_ia.desktop.yaml
│ ├── lxqt-panel_id.desktop.yaml
│ ├── lxqt-panel_it.desktop.yaml
│ ├── lxqt-panel_ja.desktop.yaml
│ ├── lxqt-panel_ka.desktop.yaml
│ ├── lxqt-panel_kab.desktop.yaml
│ ├── lxqt-panel_kk.desktop.yaml
│ ├── lxqt-panel_ko.desktop.yaml
│ ├── lxqt-panel_lg.desktop.yaml
│ ├── lxqt-panel_lt.desktop.yaml
│ ├── lxqt-panel_lv.desktop.yaml
│ ├── lxqt-panel_nb_NO.desktop.yaml
│ ├── lxqt-panel_nl.desktop.yaml
│ ├── lxqt-panel_oc.desktop.yaml
│ ├── lxqt-panel_pa.desktop.yaml
│ ├── lxqt-panel_pl.desktop.yaml
│ ├── lxqt-panel_pt.desktop.yaml
│ ├── lxqt-panel_pt_BR.desktop.yaml
│ ├── lxqt-panel_ro.desktop.yaml
│ ├── lxqt-panel_ru.desktop.yaml
│ ├── lxqt-panel_si.desktop.yaml
│ ├── lxqt-panel_sk.desktop.yaml
│ ├── lxqt-panel_sl.desktop.yaml
│ ├── lxqt-panel_sr.desktop.yaml
│ ├── lxqt-panel_sv.desktop.yaml
│ ├── lxqt-panel_th.desktop.yaml
│ ├── lxqt-panel_tr.desktop.yaml
│ ├── lxqt-panel_uk.desktop.yaml
│ ├── lxqt-panel_zh_CN.desktop.yaml
│ └── lxqt-panel_zh_TW.desktop.yaml
├── cmake/
│ └── BuildPlugin.cmake
├── panel/
│ ├── CMakeLists.txt
│ ├── backends/
│ │ ├── CMakeLists.txt
│ │ ├── ilxqtabstractwmiface.cpp
│ │ ├── ilxqtabstractwmiface.h
│ │ ├── lxqtdummywmbackend.cpp
│ │ ├── lxqtdummywmbackend.h
│ │ ├── lxqttaskbartypes.h
│ │ ├── wayland/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── kwin_wayland/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── lxqtplasmavirtualdesktop.cpp
│ │ │ │ ├── lxqtplasmavirtualdesktop.h
│ │ │ │ ├── lxqttaskbarplasmawindowmanagment.cpp
│ │ │ │ ├── lxqttaskbarplasmawindowmanagment.h
│ │ │ │ ├── lxqtwmbackend_kwinwayland.cpp
│ │ │ │ ├── lxqtwmbackend_kwinwayland.h
│ │ │ │ └── protocols/
│ │ │ │ ├── org-kde-plasma-virtual-desktop.xml
│ │ │ │ └── plasma-window-management.xml
│ │ │ ├── protocols/
│ │ │ │ ├── org-kde-plasma-virtual-desktop.xml
│ │ │ │ └── plasma-window-management.xml
│ │ │ ├── wayfire/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── lxqtwmbackend_wf.cpp
│ │ │ │ ├── lxqtwmbackend_wf.h
│ │ │ │ ├── wayfire-common.cpp
│ │ │ │ └── wayfire-common.h
│ │ │ └── wlroots/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── ext-workspace-v1.xml
│ │ │ ├── lxqttaskbarwlrwm.cpp
│ │ │ ├── lxqttaskbarwlrwm.h
│ │ │ ├── lxqtwmbackend_wlr.cpp
│ │ │ ├── lxqtwmbackend_wlr.h
│ │ │ ├── wlr-foreign-toplevel-management-unstable-v1.xml
│ │ │ ├── workspace.cpp
│ │ │ └── workspace.hpp
│ │ └── xcb/
│ │ ├── CMakeLists.txt
│ │ ├── lxqtwmbackend_x11.cpp
│ │ └── lxqtwmbackend_x11.h
│ ├── config/
│ │ ├── addplugindialog.cpp
│ │ ├── addplugindialog.h
│ │ ├── addplugindialog.ui
│ │ ├── configpaneldialog.cpp
│ │ ├── configpaneldialog.h
│ │ ├── configplacement.cpp
│ │ ├── configplacement.h
│ │ ├── configplacement.ui
│ │ ├── configpluginswidget.cpp
│ │ ├── configpluginswidget.h
│ │ ├── configpluginswidget.ui
│ │ ├── configstyling.cpp
│ │ ├── configstyling.h
│ │ └── configstyling.ui
│ ├── ilxqtpanel.h
│ ├── ilxqtpanelplugin.h
│ ├── lxqtpanel.cpp
│ ├── lxqtpanel.h
│ ├── lxqtpanelapplication.cpp
│ ├── lxqtpanelapplication.h
│ ├── lxqtpanelapplication_p.h
│ ├── lxqtpanelglobals.h
│ ├── lxqtpanellayout.cpp
│ ├── lxqtpanellayout.h
│ ├── lxqtpanellimits.h
│ ├── lxqtpanelpluginconfigdialog.cpp
│ ├── lxqtpanelpluginconfigdialog.h
│ ├── main.cpp
│ ├── man/
│ │ └── lxqt-panel.1
│ ├── panelpluginsmodel.cpp
│ ├── panelpluginsmodel.h
│ ├── plugin.cpp
│ ├── plugin.h
│ ├── pluginmoveprocessor.cpp
│ ├── pluginmoveprocessor.h
│ ├── pluginsettings.cpp
│ ├── pluginsettings.h
│ ├── pluginsettings_p.h
│ ├── popupmenu.cpp
│ ├── popupmenu.h
│ ├── resources/
│ │ └── panel.conf
│ ├── translations/
│ │ ├── lxqt-panel.ts
│ │ ├── lxqt-panel_ar.ts
│ │ ├── lxqt-panel_arn.ts
│ │ ├── lxqt-panel_ast.ts
│ │ ├── lxqt-panel_bg.ts
│ │ ├── lxqt-panel_ca.ts
│ │ ├── lxqt-panel_cs.ts
│ │ ├── lxqt-panel_cy.ts
│ │ ├── lxqt-panel_da.ts
│ │ ├── lxqt-panel_de.ts
│ │ ├── lxqt-panel_el.ts
│ │ ├── lxqt-panel_en_GB.ts
│ │ ├── lxqt-panel_eo.ts
│ │ ├── lxqt-panel_es.ts
│ │ ├── lxqt-panel_es_UY.ts
│ │ ├── lxqt-panel_es_VE.ts
│ │ ├── lxqt-panel_et.ts
│ │ ├── lxqt-panel_eu.ts
│ │ ├── lxqt-panel_fa.ts
│ │ ├── lxqt-panel_fi.ts
│ │ ├── lxqt-panel_fr.ts
│ │ ├── lxqt-panel_gl.ts
│ │ ├── lxqt-panel_he.ts
│ │ ├── lxqt-panel_hr.ts
│ │ ├── lxqt-panel_hu.ts
│ │ ├── lxqt-panel_ia.ts
│ │ ├── lxqt-panel_id.ts
│ │ ├── lxqt-panel_is.ts
│ │ ├── lxqt-panel_it.ts
│ │ ├── lxqt-panel_ja.ts
│ │ ├── lxqt-panel_ka.ts
│ │ ├── lxqt-panel_kab.ts
│ │ ├── lxqt-panel_kk.ts
│ │ ├── lxqt-panel_ko.ts
│ │ ├── lxqt-panel_lg.ts
│ │ ├── lxqt-panel_lt.ts
│ │ ├── lxqt-panel_lv.ts
│ │ ├── lxqt-panel_nb_NO.ts
│ │ ├── lxqt-panel_nl.ts
│ │ ├── lxqt-panel_oc.ts
│ │ ├── lxqt-panel_pa.ts
│ │ ├── lxqt-panel_pl.ts
│ │ ├── lxqt-panel_pt.ts
│ │ ├── lxqt-panel_pt_BR.ts
│ │ ├── lxqt-panel_ro_RO.ts
│ │ ├── lxqt-panel_ru.ts
│ │ ├── lxqt-panel_si.ts
│ │ ├── lxqt-panel_sk_SK.ts
│ │ ├── lxqt-panel_sl.ts
│ │ ├── lxqt-panel_sr@ijekavian.ts
│ │ ├── lxqt-panel_sr@latin.ts
│ │ ├── lxqt-panel_sr_BA.ts
│ │ ├── lxqt-panel_sr_RS.ts
│ │ ├── lxqt-panel_sv.ts
│ │ ├── lxqt-panel_th_TH.ts
│ │ ├── lxqt-panel_tr.ts
│ │ ├── lxqt-panel_uk.ts
│ │ ├── lxqt-panel_vi.ts
│ │ ├── lxqt-panel_zh_CN.ts
│ │ └── lxqt-panel_zh_TW.ts
│ ├── windownotifier.cpp
│ └── windownotifier.h
├── plugin-backlight/
│ ├── CMakeLists.txt
│ ├── backlight.cpp
│ ├── backlight.h
│ ├── resources/
│ │ └── backlight.desktop.in
│ ├── sliderdialog.cpp
│ ├── sliderdialog.h
│ └── translations/
│ ├── backlight.desktop.yaml
│ ├── backlight_ar.desktop.yaml
│ ├── backlight_bg.desktop.yaml
│ ├── backlight_ca.desktop.yaml
│ ├── backlight_cs.desktop.yaml
│ ├── backlight_da.desktop.yaml
│ ├── backlight_de.desktop.yaml
│ ├── backlight_el.desktop.yaml
│ ├── backlight_en_GB.desktop.yaml
│ ├── backlight_es.desktop.yaml
│ ├── backlight_et.desktop.yaml
│ ├── backlight_fi.desktop.yaml
│ ├── backlight_fr.desktop.yaml
│ ├── backlight_he.desktop.yaml
│ ├── backlight_hr.desktop.yaml
│ ├── backlight_hu.desktop.yaml
│ ├── backlight_it.desktop.yaml
│ ├── backlight_ja.desktop.yaml
│ ├── backlight_ka.desktop.yaml
│ ├── backlight_kk.desktop.yaml
│ ├── backlight_ko.desktop.yaml
│ ├── backlight_lg.desktop.yaml
│ ├── backlight_lt.desktop.yaml
│ ├── backlight_lv.desktop.yaml
│ ├── backlight_nb_NO.desktop.yaml
│ ├── backlight_nl.desktop.yaml
│ ├── backlight_oc.desktop.yaml
│ ├── backlight_pa.desktop.yaml
│ ├── backlight_pl.desktop.yaml
│ ├── backlight_pt.desktop.yaml
│ ├── backlight_ru.desktop.yaml
│ ├── backlight_si.desktop.yaml
│ ├── backlight_sk.desktop.yaml
│ ├── backlight_sr.desktop.yaml
│ ├── backlight_sv.desktop.yaml
│ ├── backlight_tr.desktop.yaml
│ ├── backlight_uk.desktop.yaml
│ ├── backlight_zh_CN.desktop.yaml
│ └── backlight_zh_TW.desktop.yaml
├── plugin-colorpicker/
│ ├── CMakeLists.txt
│ ├── colorbutton.cpp
│ ├── colorbutton.h
│ ├── colorpicker.cpp
│ ├── colorpicker.h
│ ├── resources/
│ │ └── colorpicker.desktop.in
│ └── translations/
│ ├── colorpicker.desktop.yaml
│ ├── colorpicker.ts
│ ├── colorpicker_ar.desktop.yaml
│ ├── colorpicker_ar.ts
│ ├── colorpicker_bg.desktop.yaml
│ ├── colorpicker_bg.ts
│ ├── colorpicker_ca.desktop.yaml
│ ├── colorpicker_ca.ts
│ ├── colorpicker_cs.desktop.yaml
│ ├── colorpicker_cs.ts
│ ├── colorpicker_da.desktop.yaml
│ ├── colorpicker_da.ts
│ ├── colorpicker_de.desktop.yaml
│ ├── colorpicker_de.ts
│ ├── colorpicker_el.desktop.yaml
│ ├── colorpicker_el.ts
│ ├── colorpicker_en_GB.desktop.yaml
│ ├── colorpicker_en_GB.ts
│ ├── colorpicker_es.desktop.yaml
│ ├── colorpicker_es_VE.desktop.yaml
│ ├── colorpicker_et.desktop.yaml
│ ├── colorpicker_et.ts
│ ├── colorpicker_eu.desktop.yaml
│ ├── colorpicker_fi.desktop.yaml
│ ├── colorpicker_fi.ts
│ ├── colorpicker_fr.desktop.yaml
│ ├── colorpicker_fr.ts
│ ├── colorpicker_he.desktop.yaml
│ ├── colorpicker_he.ts
│ ├── colorpicker_hr.desktop.yaml
│ ├── colorpicker_hr.ts
│ ├── colorpicker_hu.desktop.yaml
│ ├── colorpicker_hu.ts
│ ├── colorpicker_it.desktop.yaml
│ ├── colorpicker_it.ts
│ ├── colorpicker_ja.desktop.yaml
│ ├── colorpicker_ka.desktop.yaml
│ ├── colorpicker_ka.ts
│ ├── colorpicker_kab.desktop.yaml
│ ├── colorpicker_kab.ts
│ ├── colorpicker_kk.desktop.yaml
│ ├── colorpicker_kk.ts
│ ├── colorpicker_ko.desktop.yaml
│ ├── colorpicker_ko.ts
│ ├── colorpicker_lg.desktop.yaml
│ ├── colorpicker_lg.ts
│ ├── colorpicker_lt.desktop.yaml
│ ├── colorpicker_lt.ts
│ ├── colorpicker_lv.desktop.yaml
│ ├── colorpicker_nb_NO.desktop.yaml
│ ├── colorpicker_nl.desktop.yaml
│ ├── colorpicker_nl.ts
│ ├── colorpicker_oc.desktop.yaml
│ ├── colorpicker_oc.ts
│ ├── colorpicker_pa.desktop.yaml
│ ├── colorpicker_pl.desktop.yaml
│ ├── colorpicker_pl.ts
│ ├── colorpicker_pt.desktop.yaml
│ ├── colorpicker_pt.ts
│ ├── colorpicker_pt_BR.desktop.yaml
│ ├── colorpicker_pt_BR.ts
│ ├── colorpicker_ro.desktop.yaml
│ ├── colorpicker_ru.desktop.yaml
│ ├── colorpicker_ru.ts
│ ├── colorpicker_si.desktop.yaml
│ ├── colorpicker_sk.desktop.yaml
│ ├── colorpicker_sk.ts
│ ├── colorpicker_sr.desktop.yaml
│ ├── colorpicker_sr.ts
│ ├── colorpicker_sv.desktop.yaml
│ ├── colorpicker_sv.ts
│ ├── colorpicker_th.desktop.yaml
│ ├── colorpicker_tr.desktop.yaml
│ ├── colorpicker_tr.ts
│ ├── colorpicker_uk.desktop.yaml
│ ├── colorpicker_zh_CN.desktop.yaml
│ ├── colorpicker_zh_CN.ts
│ ├── colorpicker_zh_TW.desktop.yaml
│ └── colorpicker_zh_TW.ts
├── plugin-cpuload/
│ ├── CMakeLists.txt
│ ├── lxqtcpuload.cpp
│ ├── lxqtcpuload.h
│ ├── lxqtcpuloadconfiguration.cpp
│ ├── lxqtcpuloadconfiguration.h
│ ├── lxqtcpuloadconfiguration.ui
│ ├── lxqtcpuloadplugin.cpp
│ ├── lxqtcpuloadplugin.h
│ ├── resources/
│ │ └── cpuload.desktop.in
│ └── translations/
│ ├── cpuload.desktop.yaml
│ ├── cpuload.ts
│ ├── cpuload_ar.desktop.yaml
│ ├── cpuload_ar.ts
│ ├── cpuload_arn.ts
│ ├── cpuload_ast.ts
│ ├── cpuload_bg.desktop.yaml
│ ├── cpuload_bg.ts
│ ├── cpuload_ca.desktop.yaml
│ ├── cpuload_ca.ts
│ ├── cpuload_cs.desktop.yaml
│ ├── cpuload_cs.ts
│ ├── cpuload_cy.ts
│ ├── cpuload_da.desktop.yaml
│ ├── cpuload_da.ts
│ ├── cpuload_de.desktop.yaml
│ ├── cpuload_de.ts
│ ├── cpuload_el.desktop.yaml
│ ├── cpuload_el.ts
│ ├── cpuload_en_GB.desktop.yaml
│ ├── cpuload_en_GB.ts
│ ├── cpuload_eo.desktop.yaml
│ ├── cpuload_eo.ts
│ ├── cpuload_es.desktop.yaml
│ ├── cpuload_es.ts
│ ├── cpuload_es_VE.desktop.yaml
│ ├── cpuload_es_VE.ts
│ ├── cpuload_et.desktop.yaml
│ ├── cpuload_et.ts
│ ├── cpuload_eu.desktop.yaml
│ ├── cpuload_eu.ts
│ ├── cpuload_fi.desktop.yaml
│ ├── cpuload_fi.ts
│ ├── cpuload_fr.desktop.yaml
│ ├── cpuload_fr.ts
│ ├── cpuload_gl.ts
│ ├── cpuload_he.desktop.yaml
│ ├── cpuload_he.ts
│ ├── cpuload_hr.desktop.yaml
│ ├── cpuload_hr.ts
│ ├── cpuload_hu.desktop.yaml
│ ├── cpuload_hu.ts
│ ├── cpuload_id.ts
│ ├── cpuload_it.desktop.yaml
│ ├── cpuload_it.ts
│ ├── cpuload_ja.desktop.yaml
│ ├── cpuload_ja.ts
│ ├── cpuload_ka.desktop.yaml
│ ├── cpuload_ka.ts
│ ├── cpuload_kab.desktop.yaml
│ ├── cpuload_kk.desktop.yaml
│ ├── cpuload_kk.ts
│ ├── cpuload_ko.desktop.yaml
│ ├── cpuload_ko.ts
│ ├── cpuload_lg.desktop.yaml
│ ├── cpuload_lg.ts
│ ├── cpuload_lt.desktop.yaml
│ ├── cpuload_lt.ts
│ ├── cpuload_lv.desktop.yaml
│ ├── cpuload_lv.ts
│ ├── cpuload_nb_NO.desktop.yaml
│ ├── cpuload_nb_NO.ts
│ ├── cpuload_nl.desktop.yaml
│ ├── cpuload_nl.ts
│ ├── cpuload_oc.desktop.yaml
│ ├── cpuload_oc.ts
│ ├── cpuload_pa.desktop.yaml
│ ├── cpuload_pa.ts
│ ├── cpuload_pl.desktop.yaml
│ ├── cpuload_pl.ts
│ ├── cpuload_pt.desktop.yaml
│ ├── cpuload_pt.ts
│ ├── cpuload_pt_BR.desktop.yaml
│ ├── cpuload_pt_BR.ts
│ ├── cpuload_ro.desktop.yaml
│ ├── cpuload_ro_RO.ts
│ ├── cpuload_ru.desktop.yaml
│ ├── cpuload_ru.ts
│ ├── cpuload_si.desktop.yaml
│ ├── cpuload_si.ts
│ ├── cpuload_sk.desktop.yaml
│ ├── cpuload_sk_SK.ts
│ ├── cpuload_sl.desktop.yaml
│ ├── cpuload_sl.ts
│ ├── cpuload_sr.desktop.yaml
│ ├── cpuload_sr.ts
│ ├── cpuload_sv.desktop.yaml
│ ├── cpuload_sv.ts
│ ├── cpuload_th.desktop.yaml
│ ├── cpuload_th_TH.ts
│ ├── cpuload_tr.desktop.yaml
│ ├── cpuload_tr.ts
│ ├── cpuload_uk.desktop.yaml
│ ├── cpuload_uk.ts
│ ├── cpuload_zh_CN.desktop.yaml
│ ├── cpuload_zh_CN.ts
│ ├── cpuload_zh_TW.desktop.yaml
│ └── cpuload_zh_TW.ts
├── plugin-customcommand/
│ ├── CMakeLists.txt
│ ├── colorLabel.cpp
│ ├── colorLabel.h
│ ├── custombutton.cpp
│ ├── custombutton.h
│ ├── lxqtcustomcommand.cpp
│ ├── lxqtcustomcommand.h
│ ├── lxqtcustomcommandconfiguration.cpp
│ ├── lxqtcustomcommandconfiguration.h
│ ├── lxqtcustomcommandconfiguration.ui
│ ├── resources/
│ │ └── customcommand.desktop.in
│ └── translations/
│ ├── customcommand.desktop.yaml
│ ├── customcommand.ts
│ ├── customcommand_ar.desktop.yaml
│ ├── customcommand_ar.ts
│ ├── customcommand_bg.desktop.yaml
│ ├── customcommand_bg.ts
│ ├── customcommand_ca.desktop.yaml
│ ├── customcommand_ca.ts
│ ├── customcommand_cs.desktop.yaml
│ ├── customcommand_cs.ts
│ ├── customcommand_da.desktop.yaml
│ ├── customcommand_da.ts
│ ├── customcommand_de.desktop.yaml
│ ├── customcommand_de.ts
│ ├── customcommand_el.desktop.yaml
│ ├── customcommand_el.ts
│ ├── customcommand_en_GB.desktop.yaml
│ ├── customcommand_en_GB.ts
│ ├── customcommand_es.desktop.yaml
│ ├── customcommand_es.ts
│ ├── customcommand_et.desktop.yaml
│ ├── customcommand_et.ts
│ ├── customcommand_fi.desktop.yaml
│ ├── customcommand_fi.ts
│ ├── customcommand_fr.desktop.yaml
│ ├── customcommand_fr.ts
│ ├── customcommand_he.desktop.yaml
│ ├── customcommand_he.ts
│ ├── customcommand_hr.desktop.yaml
│ ├── customcommand_hr.ts
│ ├── customcommand_hu.desktop.yaml
│ ├── customcommand_hu.ts
│ ├── customcommand_it.desktop.yaml
│ ├── customcommand_it.ts
│ ├── customcommand_ja.desktop.yaml
│ ├── customcommand_ja.ts
│ ├── customcommand_ka.desktop.yaml
│ ├── customcommand_ka.ts
│ ├── customcommand_kk.ts
│ ├── customcommand_ko.desktop.yaml
│ ├── customcommand_ko.ts
│ ├── customcommand_lg.desktop.yaml
│ ├── customcommand_lg.ts
│ ├── customcommand_lt.desktop.yaml
│ ├── customcommand_lt.ts
│ ├── customcommand_lv.desktop.yaml
│ ├── customcommand_lv.ts
│ ├── customcommand_nb_NO.desktop.yaml
│ ├── customcommand_nb_NO.ts
│ ├── customcommand_nl.desktop.yaml
│ ├── customcommand_nl.ts
│ ├── customcommand_oc.ts
│ ├── customcommand_pa.ts
│ ├── customcommand_pl.desktop.yaml
│ ├── customcommand_pl.ts
│ ├── customcommand_pt.desktop.yaml
│ ├── customcommand_pt.ts
│ ├── customcommand_pt_BR.desktop.yaml
│ ├── customcommand_pt_BR.ts
│ ├── customcommand_ru.desktop.yaml
│ ├── customcommand_ru.ts
│ ├── customcommand_sk.desktop.yaml
│ ├── customcommand_sk.ts
│ ├── customcommand_sr.ts
│ ├── customcommand_sv.desktop.yaml
│ ├── customcommand_sv.ts
│ ├── customcommand_tr.desktop.yaml
│ ├── customcommand_tr.ts
│ ├── customcommand_uk.desktop.yaml
│ ├── customcommand_uk.ts
│ ├── customcommand_zh_CN.desktop.yaml
│ ├── customcommand_zh_CN.ts
│ ├── customcommand_zh_TW.desktop.yaml
│ └── customcommand_zh_TW.ts
├── plugin-desktopswitch/
│ ├── CMakeLists.txt
│ ├── desktopswitch.cpp
│ ├── desktopswitch.h
│ ├── desktopswitchbutton.cpp
│ ├── desktopswitchbutton.h
│ ├── desktopswitchconfiguration.cpp
│ ├── desktopswitchconfiguration.h
│ ├── desktopswitchconfiguration.ui
│ ├── resources/
│ │ └── desktopswitch.desktop.in
│ └── translations/
│ ├── desktopswitch.desktop.yaml
│ ├── desktopswitch.ts
│ ├── desktopswitch_ar.desktop.yaml
│ ├── desktopswitch_ar.ts
│ ├── desktopswitch_arn.ts
│ ├── desktopswitch_ast.ts
│ ├── desktopswitch_bg.desktop.yaml
│ ├── desktopswitch_bg.ts
│ ├── desktopswitch_ca.desktop.yaml
│ ├── desktopswitch_ca.ts
│ ├── desktopswitch_cs.desktop.yaml
│ ├── desktopswitch_cs.ts
│ ├── desktopswitch_cy.ts
│ ├── desktopswitch_da.desktop.yaml
│ ├── desktopswitch_da.ts
│ ├── desktopswitch_de.desktop.yaml
│ ├── desktopswitch_de.ts
│ ├── desktopswitch_el.desktop.yaml
│ ├── desktopswitch_el.ts
│ ├── desktopswitch_en_GB.desktop.yaml
│ ├── desktopswitch_en_GB.ts
│ ├── desktopswitch_eo.desktop.yaml
│ ├── desktopswitch_eo.ts
│ ├── desktopswitch_es.desktop.yaml
│ ├── desktopswitch_es.ts
│ ├── desktopswitch_es_UY.ts
│ ├── desktopswitch_es_VE.desktop.yaml
│ ├── desktopswitch_es_VE.ts
│ ├── desktopswitch_et.desktop.yaml
│ ├── desktopswitch_et.ts
│ ├── desktopswitch_eu.desktop.yaml
│ ├── desktopswitch_eu.ts
│ ├── desktopswitch_fi.desktop.yaml
│ ├── desktopswitch_fi.ts
│ ├── desktopswitch_fr.desktop.yaml
│ ├── desktopswitch_fr.ts
│ ├── desktopswitch_gl.ts
│ ├── desktopswitch_he.desktop.yaml
│ ├── desktopswitch_he.ts
│ ├── desktopswitch_hr.desktop.yaml
│ ├── desktopswitch_hr.ts
│ ├── desktopswitch_hu.desktop.yaml
│ ├── desktopswitch_hu.ts
│ ├── desktopswitch_ia.ts
│ ├── desktopswitch_id.ts
│ ├── desktopswitch_it.desktop.yaml
│ ├── desktopswitch_it.ts
│ ├── desktopswitch_ja.desktop.yaml
│ ├── desktopswitch_ja.ts
│ ├── desktopswitch_ka.desktop.yaml
│ ├── desktopswitch_ka.ts
│ ├── desktopswitch_kab.ts
│ ├── desktopswitch_kk.ts
│ ├── desktopswitch_ko.desktop.yaml
│ ├── desktopswitch_ko.ts
│ ├── desktopswitch_lg.desktop.yaml
│ ├── desktopswitch_lg.ts
│ ├── desktopswitch_lt.desktop.yaml
│ ├── desktopswitch_lt.ts
│ ├── desktopswitch_lv.desktop.yaml
│ ├── desktopswitch_lv.ts
│ ├── desktopswitch_nb_NO.desktop.yaml
│ ├── desktopswitch_nb_NO.ts
│ ├── desktopswitch_nl.desktop.yaml
│ ├── desktopswitch_nl.ts
│ ├── desktopswitch_oc.ts
│ ├── desktopswitch_pa.desktop.yaml
│ ├── desktopswitch_pa.ts
│ ├── desktopswitch_pl.desktop.yaml
│ ├── desktopswitch_pl.ts
│ ├── desktopswitch_pt.desktop.yaml
│ ├── desktopswitch_pt.ts
│ ├── desktopswitch_pt_BR.desktop.yaml
│ ├── desktopswitch_pt_BR.ts
│ ├── desktopswitch_ro.desktop.yaml
│ ├── desktopswitch_ro_RO.ts
│ ├── desktopswitch_ru.desktop.yaml
│ ├── desktopswitch_ru.ts
│ ├── desktopswitch_si.desktop.yaml
│ ├── desktopswitch_si.ts
│ ├── desktopswitch_sk.desktop.yaml
│ ├── desktopswitch_sk_SK.ts
│ ├── desktopswitch_sl.desktop.yaml
│ ├── desktopswitch_sl.ts
│ ├── desktopswitch_sr.desktop.yaml
│ ├── desktopswitch_sr@ijekavian.desktop.yaml
│ ├── desktopswitch_sr@ijekavian.ts
│ ├── desktopswitch_sr@ijekavianlatin.desktop.yaml
│ ├── desktopswitch_sr@latin.desktop.yaml
│ ├── desktopswitch_sr@latin.ts
│ ├── desktopswitch_sr_BA.ts
│ ├── desktopswitch_sr_RS.ts
│ ├── desktopswitch_sv.desktop.yaml
│ ├── desktopswitch_sv.ts
│ ├── desktopswitch_th.desktop.yaml
│ ├── desktopswitch_th_TH.ts
│ ├── desktopswitch_tr.desktop.yaml
│ ├── desktopswitch_tr.ts
│ ├── desktopswitch_uk.desktop.yaml
│ ├── desktopswitch_uk.ts
│ ├── desktopswitch_zh_CN.desktop.yaml
│ ├── desktopswitch_zh_CN.ts
│ ├── desktopswitch_zh_TW.desktop.yaml
│ └── desktopswitch_zh_TW.ts
├── plugin-directorymenu/
│ ├── CMakeLists.txt
│ ├── directorymenu.cpp
│ ├── directorymenu.h
│ ├── directorymenuconfiguration.cpp
│ ├── directorymenuconfiguration.h
│ ├── directorymenuconfiguration.ui
│ ├── resources/
│ │ └── directorymenu.desktop.in
│ └── translations/
│ ├── directorymenu.desktop.yaml
│ ├── directorymenu.ts
│ ├── directorymenu_ar.desktop.yaml
│ ├── directorymenu_ar.ts
│ ├── directorymenu_arn.ts
│ ├── directorymenu_ast.ts
│ ├── directorymenu_bg.desktop.yaml
│ ├── directorymenu_bg.ts
│ ├── directorymenu_ca.desktop.yaml
│ ├── directorymenu_ca.ts
│ ├── directorymenu_cs.desktop.yaml
│ ├── directorymenu_cs.ts
│ ├── directorymenu_cy.ts
│ ├── directorymenu_da.desktop.yaml
│ ├── directorymenu_da.ts
│ ├── directorymenu_de.desktop.yaml
│ ├── directorymenu_de.ts
│ ├── directorymenu_el.desktop.yaml
│ ├── directorymenu_el.ts
│ ├── directorymenu_en_GB.desktop.yaml
│ ├── directorymenu_en_GB.ts
│ ├── directorymenu_es.desktop.yaml
│ ├── directorymenu_es.ts
│ ├── directorymenu_et.desktop.yaml
│ ├── directorymenu_et.ts
│ ├── directorymenu_fi.desktop.yaml
│ ├── directorymenu_fi.ts
│ ├── directorymenu_fr.desktop.yaml
│ ├── directorymenu_fr.ts
│ ├── directorymenu_gl.ts
│ ├── directorymenu_he.desktop.yaml
│ ├── directorymenu_he.ts
│ ├── directorymenu_hr.desktop.yaml
│ ├── directorymenu_hr.ts
│ ├── directorymenu_hu.desktop.yaml
│ ├── directorymenu_hu.ts
│ ├── directorymenu_id.ts
│ ├── directorymenu_it.desktop.yaml
│ ├── directorymenu_it.ts
│ ├── directorymenu_ja.desktop.yaml
│ ├── directorymenu_ja.ts
│ ├── directorymenu_ka.desktop.yaml
│ ├── directorymenu_ka.ts
│ ├── directorymenu_kab.ts
│ ├── directorymenu_kk.desktop.yaml
│ ├── directorymenu_kk.ts
│ ├── directorymenu_ko.desktop.yaml
│ ├── directorymenu_ko.ts
│ ├── directorymenu_lg.desktop.yaml
│ ├── directorymenu_lg.ts
│ ├── directorymenu_lt.desktop.yaml
│ ├── directorymenu_lt.ts
│ ├── directorymenu_lv.desktop.yaml
│ ├── directorymenu_lv.ts
│ ├── directorymenu_nb_NO.desktop.yaml
│ ├── directorymenu_nb_NO.ts
│ ├── directorymenu_nl.desktop.yaml
│ ├── directorymenu_nl.ts
│ ├── directorymenu_oc.desktop.yaml
│ ├── directorymenu_oc.ts
│ ├── directorymenu_pa.desktop.yaml
│ ├── directorymenu_pa.ts
│ ├── directorymenu_pl.desktop.yaml
│ ├── directorymenu_pl.ts
│ ├── directorymenu_pt.desktop.yaml
│ ├── directorymenu_pt.ts
│ ├── directorymenu_pt_BR.desktop.yaml
│ ├── directorymenu_pt_BR.ts
│ ├── directorymenu_ru.desktop.yaml
│ ├── directorymenu_ru.ts
│ ├── directorymenu_si.desktop.yaml
│ ├── directorymenu_si.ts
│ ├── directorymenu_sk.desktop.yaml
│ ├── directorymenu_sk_SK.ts
│ ├── directorymenu_sr.desktop.yaml
│ ├── directorymenu_sv.desktop.yaml
│ ├── directorymenu_sv.ts
│ ├── directorymenu_tr.desktop.yaml
│ ├── directorymenu_tr.ts
│ ├── directorymenu_uk.desktop.yaml
│ ├── directorymenu_uk.ts
│ ├── directorymenu_zh_CN.desktop.yaml
│ ├── directorymenu_zh_CN.ts
│ ├── directorymenu_zh_TW.desktop.yaml
│ └── directorymenu_zh_TW.ts
├── plugin-dom/
│ ├── CMakeLists.txt
│ ├── domplugin.cpp
│ ├── domplugin.h
│ ├── domtreeitem.cpp
│ ├── domtreeitem.h
│ ├── resources/
│ │ └── dom.desktop.in
│ ├── resources.qrc
│ ├── translations/
│ │ ├── dom.desktop.yaml
│ │ ├── dom.ts
│ │ ├── dom_ar.desktop.yaml
│ │ ├── dom_ar.ts
│ │ ├── dom_arn.ts
│ │ ├── dom_ast.ts
│ │ ├── dom_bg.desktop.yaml
│ │ ├── dom_bg.ts
│ │ ├── dom_ca.desktop.yaml
│ │ ├── dom_ca.ts
│ │ ├── dom_cs.desktop.yaml
│ │ ├── dom_cs.ts
│ │ ├── dom_cy.ts
│ │ ├── dom_da.desktop.yaml
│ │ ├── dom_da.ts
│ │ ├── dom_de.desktop.yaml
│ │ ├── dom_de.ts
│ │ ├── dom_el.desktop.yaml
│ │ ├── dom_el.ts
│ │ ├── dom_en_GB.desktop.yaml
│ │ ├── dom_en_GB.ts
│ │ ├── dom_es.desktop.yaml
│ │ ├── dom_es.ts
│ │ ├── dom_et.desktop.yaml
│ │ ├── dom_et.ts
│ │ ├── dom_fi.desktop.yaml
│ │ ├── dom_fi.ts
│ │ ├── dom_fr.desktop.yaml
│ │ ├── dom_fr.ts
│ │ ├── dom_gl.ts
│ │ ├── dom_he.desktop.yaml
│ │ ├── dom_he.ts
│ │ ├── dom_hr.desktop.yaml
│ │ ├── dom_hr.ts
│ │ ├── dom_hu.desktop.yaml
│ │ ├── dom_hu.ts
│ │ ├── dom_id.ts
│ │ ├── dom_it.desktop.yaml
│ │ ├── dom_it.ts
│ │ ├── dom_ja.desktop.yaml
│ │ ├── dom_ja.ts
│ │ ├── dom_ka.desktop.yaml
│ │ ├── dom_ka.ts
│ │ ├── dom_kab.ts
│ │ ├── dom_kk.desktop.yaml
│ │ ├── dom_kk.ts
│ │ ├── dom_ko.desktop.yaml
│ │ ├── dom_ko.ts
│ │ ├── dom_lg.desktop.yaml
│ │ ├── dom_lg.ts
│ │ ├── dom_lt.desktop.yaml
│ │ ├── dom_lt.ts
│ │ ├── dom_lv.desktop.yaml
│ │ ├── dom_lv.ts
│ │ ├── dom_nb_NO.desktop.yaml
│ │ ├── dom_nb_NO.ts
│ │ ├── dom_nl.desktop.yaml
│ │ ├── dom_nl.ts
│ │ ├── dom_oc.ts
│ │ ├── dom_pa.ts
│ │ ├── dom_pl.desktop.yaml
│ │ ├── dom_pl.ts
│ │ ├── dom_pt.desktop.yaml
│ │ ├── dom_pt.ts
│ │ ├── dom_pt_BR.desktop.yaml
│ │ ├── dom_pt_BR.ts
│ │ ├── dom_ru.desktop.yaml
│ │ ├── dom_ru.ts
│ │ ├── dom_si.desktop.yaml
│ │ ├── dom_si.ts
│ │ ├── dom_sk.desktop.yaml
│ │ ├── dom_sk_SK.ts
│ │ ├── dom_sr.ts
│ │ ├── dom_sr@ijekavian.ts
│ │ ├── dom_sv.desktop.yaml
│ │ ├── dom_sv.ts
│ │ ├── dom_tr.desktop.yaml
│ │ ├── dom_tr.ts
│ │ ├── dom_uk.desktop.yaml
│ │ ├── dom_uk.ts
│ │ ├── dom_zh_CN.desktop.yaml
│ │ ├── dom_zh_CN.ts
│ │ ├── dom_zh_TW.desktop.yaml
│ │ └── dom_zh_TW.ts
│ ├── treewindow.cpp
│ ├── treewindow.h
│ └── treewindow.ui
├── plugin-fancymenu/
│ ├── CMakeLists.txt
│ ├── lxqtfancymenu.cpp
│ ├── lxqtfancymenu.h
│ ├── lxqtfancymenuappmap.cpp
│ ├── lxqtfancymenuappmap.h
│ ├── lxqtfancymenuappmodel.cpp
│ ├── lxqtfancymenuappmodel.h
│ ├── lxqtfancymenucategoriesmodel.cpp
│ ├── lxqtfancymenucategoriesmodel.h
│ ├── lxqtfancymenuconfiguration.cpp
│ ├── lxqtfancymenuconfiguration.h
│ ├── lxqtfancymenuconfiguration.ui
│ ├── lxqtfancymenutypes.h
│ ├── lxqtfancymenuwindow.cpp
│ ├── lxqtfancymenuwindow.h
│ ├── resources/
│ │ └── fancymenu.desktop.in
│ └── translations/
│ ├── fancymenu.desktop.yaml
│ ├── fancymenu.ts
│ ├── fancymenu_ar.desktop.yaml
│ ├── fancymenu_ar.ts
│ ├── fancymenu_ast.ts
│ ├── fancymenu_bg.desktop.yaml
│ ├── fancymenu_bg.ts
│ ├── fancymenu_ca.desktop.yaml
│ ├── fancymenu_ca.ts
│ ├── fancymenu_cs.desktop.yaml
│ ├── fancymenu_cs.ts
│ ├── fancymenu_cy.ts
│ ├── fancymenu_da.ts
│ ├── fancymenu_de.desktop.yaml
│ ├── fancymenu_de.ts
│ ├── fancymenu_el.desktop.yaml
│ ├── fancymenu_el.ts
│ ├── fancymenu_en_GB.desktop.yaml
│ ├── fancymenu_en_GB.ts
│ ├── fancymenu_eo.ts
│ ├── fancymenu_es.desktop.yaml
│ ├── fancymenu_es.ts
│ ├── fancymenu_es_UY.ts
│ ├── fancymenu_es_VE.ts
│ ├── fancymenu_et.desktop.yaml
│ ├── fancymenu_et.ts
│ ├── fancymenu_eu.desktop.yaml
│ ├── fancymenu_eu.ts
│ ├── fancymenu_fi.desktop.yaml
│ ├── fancymenu_fi.ts
│ ├── fancymenu_fr.desktop.yaml
│ ├── fancymenu_fr.ts
│ ├── fancymenu_gl.desktop.yaml
│ ├── fancymenu_gl.ts
│ ├── fancymenu_he.desktop.yaml
│ ├── fancymenu_he.ts
│ ├── fancymenu_hr.ts
│ ├── fancymenu_hu.desktop.yaml
│ ├── fancymenu_hu.ts
│ ├── fancymenu_ia.ts
│ ├── fancymenu_id.ts
│ ├── fancymenu_is.ts
│ ├── fancymenu_it.desktop.yaml
│ ├── fancymenu_it.ts
│ ├── fancymenu_ja.desktop.yaml
│ ├── fancymenu_ja.ts
│ ├── fancymenu_ka.desktop.yaml
│ ├── fancymenu_ka.ts
│ ├── fancymenu_kk.ts
│ ├── fancymenu_ko.desktop.yaml
│ ├── fancymenu_ko.ts
│ ├── fancymenu_lg.desktop.yaml
│ ├── fancymenu_lg.ts
│ ├── fancymenu_lt.desktop.yaml
│ ├── fancymenu_lt.ts
│ ├── fancymenu_lv.ts
│ ├── fancymenu_nb_NO.ts
│ ├── fancymenu_nl.desktop.yaml
│ ├── fancymenu_nl.ts
│ ├── fancymenu_oc.ts
│ ├── fancymenu_pa.desktop.yaml
│ ├── fancymenu_pa.ts
│ ├── fancymenu_pl.desktop.yaml
│ ├── fancymenu_pl.ts
│ ├── fancymenu_pt.desktop.yaml
│ ├── fancymenu_pt.ts
│ ├── fancymenu_pt_BR.desktop.yaml
│ ├── fancymenu_pt_BR.ts
│ ├── fancymenu_ro_RO.ts
│ ├── fancymenu_ru.desktop.yaml
│ ├── fancymenu_ru.ts
│ ├── fancymenu_si.ts
│ ├── fancymenu_sk.desktop.yaml
│ ├── fancymenu_sk_SK.ts
│ ├── fancymenu_sl.ts
│ ├── fancymenu_sr@latin.ts
│ ├── fancymenu_sr_BA.ts
│ ├── fancymenu_sr_RS.ts
│ ├── fancymenu_sv.desktop.yaml
│ ├── fancymenu_sv.ts
│ ├── fancymenu_th_TH.ts
│ ├── fancymenu_tr.desktop.yaml
│ ├── fancymenu_tr.ts
│ ├── fancymenu_uk.ts
│ ├── fancymenu_zh_CN.desktop.yaml
│ ├── fancymenu_zh_CN.ts
│ ├── fancymenu_zh_TW.desktop.yaml
│ └── fancymenu_zh_TW.ts
├── plugin-kbindicator/
│ ├── CMakeLists.txt
│ ├── kbindicator-plugin.cpp
│ ├── resources/
│ │ └── kbindicator.desktop.in
│ ├── src/
│ │ ├── content.cpp
│ │ ├── content.h
│ │ ├── controls.h
│ │ ├── kbdinfo.h
│ │ ├── kbdkeeper.cpp
│ │ ├── kbdkeeper.h
│ │ ├── kbdlayout.h
│ │ ├── kbdstate.cpp
│ │ ├── kbdstate.h
│ │ ├── kbdstateconfig.cpp
│ │ ├── kbdstateconfig.h
│ │ ├── kbdstateconfig.ui
│ │ ├── kbdwatcher.cpp
│ │ ├── kbdwatcher.h
│ │ ├── settings.cpp
│ │ ├── settings.h
│ │ └── x11/
│ │ ├── kbdlayout.cpp
│ │ └── kbdlayout.h
│ └── translations/
│ ├── kbindicator.desktop.yaml
│ ├── kbindicator.ts
│ ├── kbindicator_ar.desktop.yaml
│ ├── kbindicator_ar.ts
│ ├── kbindicator_arn.ts
│ ├── kbindicator_ast.ts
│ ├── kbindicator_bg.desktop.yaml
│ ├── kbindicator_bg.ts
│ ├── kbindicator_ca.desktop.yaml
│ ├── kbindicator_ca.ts
│ ├── kbindicator_cs.desktop.yaml
│ ├── kbindicator_cs.ts
│ ├── kbindicator_cy.ts
│ ├── kbindicator_da.desktop.yaml
│ ├── kbindicator_da.ts
│ ├── kbindicator_de.desktop.yaml
│ ├── kbindicator_de.ts
│ ├── kbindicator_el.desktop.yaml
│ ├── kbindicator_el.ts
│ ├── kbindicator_en_GB.desktop.yaml
│ ├── kbindicator_en_GB.ts
│ ├── kbindicator_es.desktop.yaml
│ ├── kbindicator_es.ts
│ ├── kbindicator_et.desktop.yaml
│ ├── kbindicator_et.ts
│ ├── kbindicator_fi.desktop.yaml
│ ├── kbindicator_fi.ts
│ ├── kbindicator_fr.desktop.yaml
│ ├── kbindicator_fr.ts
│ ├── kbindicator_gl.ts
│ ├── kbindicator_he.desktop.yaml
│ ├── kbindicator_he.ts
│ ├── kbindicator_hr.desktop.yaml
│ ├── kbindicator_hr.ts
│ ├── kbindicator_hu.desktop.yaml
│ ├── kbindicator_hu.ts
│ ├── kbindicator_id.ts
│ ├── kbindicator_it.desktop.yaml
│ ├── kbindicator_it.ts
│ ├── kbindicator_ja.desktop.yaml
│ ├── kbindicator_ja.ts
│ ├── kbindicator_ka.desktop.yaml
│ ├── kbindicator_ka.ts
│ ├── kbindicator_kab.ts
│ ├── kbindicator_kk.ts
│ ├── kbindicator_ko.desktop.yaml
│ ├── kbindicator_ko.ts
│ ├── kbindicator_lg.desktop.yaml
│ ├── kbindicator_lg.ts
│ ├── kbindicator_lt.desktop.yaml
│ ├── kbindicator_lt.ts
│ ├── kbindicator_lv.desktop.yaml
│ ├── kbindicator_lv.ts
│ ├── kbindicator_nb_NO.desktop.yaml
│ ├── kbindicator_nb_NO.ts
│ ├── kbindicator_nl.desktop.yaml
│ ├── kbindicator_nl.ts
│ ├── kbindicator_oc.ts
│ ├── kbindicator_pa.ts
│ ├── kbindicator_pl.desktop.yaml
│ ├── kbindicator_pl.ts
│ ├── kbindicator_pt.desktop.yaml
│ ├── kbindicator_pt.ts
│ ├── kbindicator_ru.desktop.yaml
│ ├── kbindicator_ru.ts
│ ├── kbindicator_si.desktop.yaml
│ ├── kbindicator_si.ts
│ ├── kbindicator_sk.desktop.yaml
│ ├── kbindicator_sk_SK.ts
│ ├── kbindicator_sr.ts
│ ├── kbindicator_sv.desktop.yaml
│ ├── kbindicator_sv.ts
│ ├── kbindicator_tr.desktop.yaml
│ ├── kbindicator_tr.ts
│ ├── kbindicator_uk.desktop.yaml
│ ├── kbindicator_uk.ts
│ ├── kbindicator_zh_CN.desktop.yaml
│ ├── kbindicator_zh_CN.ts
│ ├── kbindicator_zh_TW.desktop.yaml
│ └── kbindicator_zh_TW.ts
├── plugin-mainmenu/
│ ├── CMakeLists.txt
│ ├── actionview.cpp
│ ├── actionview.h
│ ├── lxqtmainmenu.cpp
│ ├── lxqtmainmenu.h
│ ├── lxqtmainmenuconfiguration.cpp
│ ├── lxqtmainmenuconfiguration.h
│ ├── lxqtmainmenuconfiguration.ui
│ ├── menustyle.cpp
│ ├── menustyle.h
│ ├── resources/
│ │ └── mainmenu.desktop.in
│ └── translations/
│ ├── mainmenu.desktop.yaml
│ ├── mainmenu.ts
│ ├── mainmenu_ar.desktop.yaml
│ ├── mainmenu_ar.ts
│ ├── mainmenu_arn.ts
│ ├── mainmenu_ast.ts
│ ├── mainmenu_bg.desktop.yaml
│ ├── mainmenu_bg.ts
│ ├── mainmenu_ca.desktop.yaml
│ ├── mainmenu_ca.ts
│ ├── mainmenu_cs.desktop.yaml
│ ├── mainmenu_cs.ts
│ ├── mainmenu_cy.ts
│ ├── mainmenu_da.desktop.yaml
│ ├── mainmenu_da.ts
│ ├── mainmenu_de.desktop.yaml
│ ├── mainmenu_de.ts
│ ├── mainmenu_el.desktop.yaml
│ ├── mainmenu_el.ts
│ ├── mainmenu_en_GB.desktop.yaml
│ ├── mainmenu_en_GB.ts
│ ├── mainmenu_eo.desktop.yaml
│ ├── mainmenu_eo.ts
│ ├── mainmenu_es.desktop.yaml
│ ├── mainmenu_es.ts
│ ├── mainmenu_es_UY.ts
│ ├── mainmenu_es_VE.desktop.yaml
│ ├── mainmenu_es_VE.ts
│ ├── mainmenu_et.desktop.yaml
│ ├── mainmenu_et.ts
│ ├── mainmenu_eu.desktop.yaml
│ ├── mainmenu_eu.ts
│ ├── mainmenu_fi.desktop.yaml
│ ├── mainmenu_fi.ts
│ ├── mainmenu_fr.desktop.yaml
│ ├── mainmenu_fr.ts
│ ├── mainmenu_gl.ts
│ ├── mainmenu_he.desktop.yaml
│ ├── mainmenu_he.ts
│ ├── mainmenu_hr.desktop.yaml
│ ├── mainmenu_hr.ts
│ ├── mainmenu_hu.desktop.yaml
│ ├── mainmenu_hu.ts
│ ├── mainmenu_ia.ts
│ ├── mainmenu_id.desktop.yaml
│ ├── mainmenu_id.ts
│ ├── mainmenu_is.ts
│ ├── mainmenu_it.desktop.yaml
│ ├── mainmenu_it.ts
│ ├── mainmenu_ja.desktop.yaml
│ ├── mainmenu_ja.ts
│ ├── mainmenu_ka.desktop.yaml
│ ├── mainmenu_ka.ts
│ ├── mainmenu_kab.ts
│ ├── mainmenu_kk.desktop.yaml
│ ├── mainmenu_kk.ts
│ ├── mainmenu_ko.desktop.yaml
│ ├── mainmenu_ko.ts
│ ├── mainmenu_lg.desktop.yaml
│ ├── mainmenu_lg.ts
│ ├── mainmenu_lt.desktop.yaml
│ ├── mainmenu_lt.ts
│ ├── mainmenu_lv.desktop.yaml
│ ├── mainmenu_lv.ts
│ ├── mainmenu_nb_NO.desktop.yaml
│ ├── mainmenu_nb_NO.ts
│ ├── mainmenu_nl.desktop.yaml
│ ├── mainmenu_nl.ts
│ ├── mainmenu_oc.desktop.yaml
│ ├── mainmenu_oc.ts
│ ├── mainmenu_pa.desktop.yaml
│ ├── mainmenu_pa.ts
│ ├── mainmenu_pl.desktop.yaml
│ ├── mainmenu_pl.ts
│ ├── mainmenu_pt.desktop.yaml
│ ├── mainmenu_pt.ts
│ ├── mainmenu_pt_BR.desktop.yaml
│ ├── mainmenu_pt_BR.ts
│ ├── mainmenu_ro_RO.desktop.yaml
│ ├── mainmenu_ro_RO.ts
│ ├── mainmenu_ru.desktop.yaml
│ ├── mainmenu_ru.ts
│ ├── mainmenu_si.desktop.yaml
│ ├── mainmenu_si.ts
│ ├── mainmenu_sk.desktop.yaml
│ ├── mainmenu_sk_SK.ts
│ ├── mainmenu_sl.desktop.yaml
│ ├── mainmenu_sl.ts
│ ├── mainmenu_sr.desktop.yaml
│ ├── mainmenu_sr@ijekavian.desktop.yaml
│ ├── mainmenu_sr@ijekavianlatin.desktop.yaml
│ ├── mainmenu_sr@latin.desktop.yaml
│ ├── mainmenu_sr@latin.ts
│ ├── mainmenu_sr_BA.ts
│ ├── mainmenu_sr_RS.ts
│ ├── mainmenu_sv.desktop.yaml
│ ├── mainmenu_sv.ts
│ ├── mainmenu_th.desktop.yaml
│ ├── mainmenu_th_TH.ts
│ ├── mainmenu_tr.desktop.yaml
│ ├── mainmenu_tr.ts
│ ├── mainmenu_uk.desktop.yaml
│ ├── mainmenu_uk.ts
│ ├── mainmenu_zh_CN.desktop.yaml
│ ├── mainmenu_zh_CN.ts
│ ├── mainmenu_zh_TW.desktop.yaml
│ └── mainmenu_zh_TW.ts
├── plugin-mount/
│ ├── CMakeLists.txt
│ ├── actions/
│ │ ├── deviceaction.cpp
│ │ ├── deviceaction.h
│ │ ├── deviceaction_info.cpp
│ │ ├── deviceaction_info.h
│ │ ├── deviceaction_menu.cpp
│ │ ├── deviceaction_menu.h
│ │ ├── deviceaction_nothing.cpp
│ │ ├── deviceaction_nothing.h
│ │ ├── ejectaction.cpp
│ │ ├── ejectaction.h
│ │ ├── ejectaction_nothing.cpp
│ │ ├── ejectaction_nothing.h
│ │ ├── ejectaction_optical.cpp
│ │ └── ejectaction_optical.h
│ ├── button.cpp
│ ├── button.h
│ ├── configuration.cpp
│ ├── configuration.h
│ ├── configuration.ui
│ ├── lxqtmountplugin.cpp
│ ├── lxqtmountplugin.h
│ ├── menudiskitem.cpp
│ ├── menudiskitem.h
│ ├── popup.cpp
│ ├── popup.h
│ ├── resources/
│ │ └── mount.desktop.in
│ └── translations/
│ ├── mount.desktop.yaml
│ ├── mount.ts
│ ├── mount_ar.desktop.yaml
│ ├── mount_ar.ts
│ ├── mount_arn.ts
│ ├── mount_ast.ts
│ ├── mount_bg.desktop.yaml
│ ├── mount_bg.ts
│ ├── mount_ca.desktop.yaml
│ ├── mount_ca.ts
│ ├── mount_cs.desktop.yaml
│ ├── mount_cs.ts
│ ├── mount_cy.ts
│ ├── mount_da.desktop.yaml
│ ├── mount_da.ts
│ ├── mount_de.desktop.yaml
│ ├── mount_de.ts
│ ├── mount_el.desktop.yaml
│ ├── mount_el.ts
│ ├── mount_en_GB.desktop.yaml
│ ├── mount_en_GB.ts
│ ├── mount_eo.desktop.yaml
│ ├── mount_eo.ts
│ ├── mount_es.desktop.yaml
│ ├── mount_es.ts
│ ├── mount_es_UY.ts
│ ├── mount_es_VE.desktop.yaml
│ ├── mount_es_VE.ts
│ ├── mount_et.desktop.yaml
│ ├── mount_et.ts
│ ├── mount_eu.desktop.yaml
│ ├── mount_eu.ts
│ ├── mount_fi.desktop.yaml
│ ├── mount_fi.ts
│ ├── mount_fr.desktop.yaml
│ ├── mount_fr.ts
│ ├── mount_gl.ts
│ ├── mount_he.desktop.yaml
│ ├── mount_he.ts
│ ├── mount_hr.desktop.yaml
│ ├── mount_hr.ts
│ ├── mount_hu.desktop.yaml
│ ├── mount_hu.ts
│ ├── mount_ia.ts
│ ├── mount_id.ts
│ ├── mount_it.desktop.yaml
│ ├── mount_it.ts
│ ├── mount_ja.desktop.yaml
│ ├── mount_ja.ts
│ ├── mount_ka.desktop.yaml
│ ├── mount_ka.ts
│ ├── mount_kab.desktop.yaml
│ ├── mount_kab.ts
│ ├── mount_kk.desktop.yaml
│ ├── mount_kk.ts
│ ├── mount_ko.desktop.yaml
│ ├── mount_ko.ts
│ ├── mount_lg.desktop.yaml
│ ├── mount_lg.ts
│ ├── mount_lt.desktop.yaml
│ ├── mount_lt.ts
│ ├── mount_lv.desktop.yaml
│ ├── mount_lv.ts
│ ├── mount_nb_NO.desktop.yaml
│ ├── mount_nb_NO.ts
│ ├── mount_nl.desktop.yaml
│ ├── mount_nl.ts
│ ├── mount_oc.desktop.yaml
│ ├── mount_oc.ts
│ ├── mount_pa.ts
│ ├── mount_pl.desktop.yaml
│ ├── mount_pl.ts
│ ├── mount_pt.desktop.yaml
│ ├── mount_pt.ts
│ ├── mount_pt_BR.desktop.yaml
│ ├── mount_pt_BR.ts
│ ├── mount_ro.desktop.yaml
│ ├── mount_ro_RO.ts
│ ├── mount_ru.desktop.yaml
│ ├── mount_ru.ts
│ ├── mount_si.desktop.yaml
│ ├── mount_si.ts
│ ├── mount_sk.desktop.yaml
│ ├── mount_sk_SK.ts
│ ├── mount_sl.desktop.yaml
│ ├── mount_sl.ts
│ ├── mount_sr.desktop.yaml
│ ├── mount_sr@ijekavian.desktop.yaml
│ ├── mount_sr@ijekavianlatin.desktop.yaml
│ ├── mount_sr@latin.desktop.yaml
│ ├── mount_sr@latin.ts
│ ├── mount_sr_BA.ts
│ ├── mount_sr_RS.ts
│ ├── mount_sv.desktop.yaml
│ ├── mount_sv.ts
│ ├── mount_th.desktop.yaml
│ ├── mount_th_TH.ts
│ ├── mount_tr.desktop.yaml
│ ├── mount_tr.ts
│ ├── mount_uk.desktop.yaml
│ ├── mount_uk.ts
│ ├── mount_zh_CN.desktop.yaml
│ ├── mount_zh_CN.ts
│ ├── mount_zh_TW.desktop.yaml
│ └── mount_zh_TW.ts
├── plugin-networkmonitor/
│ ├── CMakeLists.txt
│ ├── lxqtnetworkmonitor.cpp
│ ├── lxqtnetworkmonitor.h
│ ├── lxqtnetworkmonitorconfiguration.cpp
│ ├── lxqtnetworkmonitorconfiguration.h
│ ├── lxqtnetworkmonitorconfiguration.ui
│ ├── lxqtnetworkmonitorplugin.cpp
│ ├── lxqtnetworkmonitorplugin.h
│ ├── resources/
│ │ └── networkmonitor.desktop.in
│ ├── resources.qrc
│ └── translations/
│ ├── networkmonitor.desktop.yaml
│ ├── networkmonitor.ts
│ ├── networkmonitor_ar.desktop.yaml
│ ├── networkmonitor_ar.ts
│ ├── networkmonitor_arn.ts
│ ├── networkmonitor_ast.ts
│ ├── networkmonitor_bg.desktop.yaml
│ ├── networkmonitor_bg.ts
│ ├── networkmonitor_ca.desktop.yaml
│ ├── networkmonitor_ca.ts
│ ├── networkmonitor_cs.desktop.yaml
│ ├── networkmonitor_cs.ts
│ ├── networkmonitor_cy.ts
│ ├── networkmonitor_da.desktop.yaml
│ ├── networkmonitor_da.ts
│ ├── networkmonitor_de.desktop.yaml
│ ├── networkmonitor_de.ts
│ ├── networkmonitor_el.desktop.yaml
│ ├── networkmonitor_el.ts
│ ├── networkmonitor_en_GB.desktop.yaml
│ ├── networkmonitor_en_GB.ts
│ ├── networkmonitor_eo.desktop.yaml
│ ├── networkmonitor_eo.ts
│ ├── networkmonitor_es.desktop.yaml
│ ├── networkmonitor_es.ts
│ ├── networkmonitor_et.desktop.yaml
│ ├── networkmonitor_et.ts
│ ├── networkmonitor_eu.desktop.yaml
│ ├── networkmonitor_eu.ts
│ ├── networkmonitor_fi.desktop.yaml
│ ├── networkmonitor_fi.ts
│ ├── networkmonitor_fr.desktop.yaml
│ ├── networkmonitor_fr.ts
│ ├── networkmonitor_gl.ts
│ ├── networkmonitor_he.desktop.yaml
│ ├── networkmonitor_he.ts
│ ├── networkmonitor_hi.ts
│ ├── networkmonitor_hr.desktop.yaml
│ ├── networkmonitor_hr.ts
│ ├── networkmonitor_hu.desktop.yaml
│ ├── networkmonitor_hu.ts
│ ├── networkmonitor_id.ts
│ ├── networkmonitor_is.ts
│ ├── networkmonitor_it.desktop.yaml
│ ├── networkmonitor_it.ts
│ ├── networkmonitor_ja.desktop.yaml
│ ├── networkmonitor_ja.ts
│ ├── networkmonitor_ka.desktop.yaml
│ ├── networkmonitor_ka.ts
│ ├── networkmonitor_kab.desktop.yaml
│ ├── networkmonitor_kab.ts
│ ├── networkmonitor_kk.desktop.yaml
│ ├── networkmonitor_kk.ts
│ ├── networkmonitor_ko.desktop.yaml
│ ├── networkmonitor_ko.ts
│ ├── networkmonitor_lg.desktop.yaml
│ ├── networkmonitor_lg.ts
│ ├── networkmonitor_lt.desktop.yaml
│ ├── networkmonitor_lt.ts
│ ├── networkmonitor_lv.desktop.yaml
│ ├── networkmonitor_lv.ts
│ ├── networkmonitor_nb_NO.desktop.yaml
│ ├── networkmonitor_nb_NO.ts
│ ├── networkmonitor_nl.desktop.yaml
│ ├── networkmonitor_nl.ts
│ ├── networkmonitor_oc.desktop.yaml
│ ├── networkmonitor_oc.ts
│ ├── networkmonitor_pa.desktop.yaml
│ ├── networkmonitor_pa.ts
│ ├── networkmonitor_pl.desktop.yaml
│ ├── networkmonitor_pl.ts
│ ├── networkmonitor_pt.desktop.yaml
│ ├── networkmonitor_pt.ts
│ ├── networkmonitor_pt_BR.desktop.yaml
│ ├── networkmonitor_pt_BR.ts
│ ├── networkmonitor_ro_RO.desktop.yaml
│ ├── networkmonitor_ro_RO.ts
│ ├── networkmonitor_ru.desktop.yaml
│ ├── networkmonitor_ru.ts
│ ├── networkmonitor_si.desktop.yaml
│ ├── networkmonitor_si.ts
│ ├── networkmonitor_sk.desktop.yaml
│ ├── networkmonitor_sk_SK.ts
│ ├── networkmonitor_sr.desktop.yaml
│ ├── networkmonitor_sr.ts
│ ├── networkmonitor_sr@ijekavian.ts
│ ├── networkmonitor_sr@latin.desktop.yaml
│ ├── networkmonitor_sv.desktop.yaml
│ ├── networkmonitor_sv.ts
│ ├── networkmonitor_th.desktop.yaml
│ ├── networkmonitor_th_TH.ts
│ ├── networkmonitor_tr.desktop.yaml
│ ├── networkmonitor_tr.ts
│ ├── networkmonitor_uk.desktop.yaml
│ ├── networkmonitor_uk.ts
│ ├── networkmonitor_zh_CN.desktop.yaml
│ ├── networkmonitor_zh_CN.ts
│ ├── networkmonitor_zh_TW.desktop.yaml
│ └── networkmonitor_zh_TW.ts
├── plugin-qeyes/
│ ├── CMakeLists.txt
│ ├── qeyes.cpp
│ ├── qeyes.h
│ ├── qeyesconfigdialog.cpp
│ ├── qeyesconfigdialog.h
│ ├── qeyesimagewidget.cpp
│ ├── qeyesimagewidget.h
│ ├── qeyesplugin.desktop
│ ├── qeyesvectorwidget.cpp
│ ├── qeyesvectorwidget.h
│ ├── qeyeswidget.cpp
│ ├── qeyeswidget.h
│ ├── resources/
│ │ └── qeyes.desktop.in
│ ├── translations/
│ │ ├── qeyes.desktop.yaml
│ │ ├── qeyes.ts
│ │ ├── qeyes_ar.desktop.yaml
│ │ ├── qeyes_ar.ts
│ │ ├── qeyes_bg.desktop.yaml
│ │ ├── qeyes_bg.ts
│ │ ├── qeyes_ca.desktop.yaml
│ │ ├── qeyes_ca.ts
│ │ ├── qeyes_cs.desktop.yaml
│ │ ├── qeyes_cs.ts
│ │ ├── qeyes_da.desktop.yaml
│ │ ├── qeyes_da.ts
│ │ ├── qeyes_de.desktop.yaml
│ │ ├── qeyes_de.ts
│ │ ├── qeyes_el.desktop.yaml
│ │ ├── qeyes_el.ts
│ │ ├── qeyes_en_GB.desktop.yaml
│ │ ├── qeyes_en_GB.ts
│ │ ├── qeyes_et.desktop.yaml
│ │ ├── qeyes_et.ts
│ │ ├── qeyes_fi.desktop.yaml
│ │ ├── qeyes_fi.ts
│ │ ├── qeyes_fr.desktop.yaml
│ │ ├── qeyes_fr.ts
│ │ ├── qeyes_he.desktop.yaml
│ │ ├── qeyes_he.ts
│ │ ├── qeyes_hu.desktop.yaml
│ │ ├── qeyes_hu.ts
│ │ ├── qeyes_it.desktop.yaml
│ │ ├── qeyes_it.ts
│ │ ├── qeyes_ja.desktop.yaml
│ │ ├── qeyes_ka.desktop.yaml
│ │ ├── qeyes_ka.ts
│ │ ├── qeyes_kab.desktop.yaml
│ │ ├── qeyes_kab.ts
│ │ ├── qeyes_kk.desktop.yaml
│ │ ├── qeyes_kk.ts
│ │ ├── qeyes_ko.desktop.yaml
│ │ ├── qeyes_ko.ts
│ │ ├── qeyes_lg.desktop.yaml
│ │ ├── qeyes_lg.ts
│ │ ├── qeyes_lt.desktop.yaml
│ │ ├── qeyes_lt.ts
│ │ ├── qeyes_nl.desktop.yaml
│ │ ├── qeyes_nl.ts
│ │ ├── qeyes_oc.desktop.yaml
│ │ ├── qeyes_oc.ts
│ │ ├── qeyes_pa.ts
│ │ ├── qeyes_pl.desktop.yaml
│ │ ├── qeyes_pl.ts
│ │ ├── qeyes_pt.desktop.yaml
│ │ ├── qeyes_pt.ts
│ │ ├── qeyes_ru.desktop.yaml
│ │ ├── qeyes_ru.ts
│ │ ├── qeyes_sk.desktop.yaml
│ │ ├── qeyes_sk.ts
│ │ ├── qeyes_sr.desktop.yaml
│ │ ├── qeyes_sr.ts
│ │ ├── qeyes_sv.desktop.yaml
│ │ ├── qeyes_sv.ts
│ │ ├── qeyes_tr.desktop.yaml
│ │ ├── qeyes_tr.ts
│ │ ├── qeyes_zh_CN.desktop.yaml
│ │ ├── qeyes_zh_CN.ts
│ │ ├── qeyes_zh_TW.desktop.yaml
│ │ └── qeyes_zh_TW.ts
│ └── types/
│ ├── Bizarre/
│ │ └── config
│ ├── Bloodshot/
│ │ └── config
│ ├── Brown-EyedGirl/
│ │ └── config
│ ├── CMakeLists.txt
│ ├── Crystal/
│ │ └── config
│ ├── Default/
│ │ └── config
│ ├── Default-tiny/
│ │ └── config
│ ├── Digital/
│ │ └── config
│ ├── EyelashLarge/
│ │ └── config
│ ├── Green-EyedGirl/
│ │ └── config
│ ├── Horrid/
│ │ └── config
│ ├── Pink-EyedGirl/
│ │ └── config
│ ├── PumpkinMonster/
│ │ └── config
│ ├── README
│ └── Tango/
│ └── config
├── plugin-quicklaunch/
│ ├── CMakeLists.txt
│ ├── lxqtquicklaunch.cpp
│ ├── lxqtquicklaunch.h
│ ├── lxqtquicklaunchplugin.cpp
│ ├── lxqtquicklaunchplugin.h
│ ├── quicklaunchaction.cpp
│ ├── quicklaunchaction.h
│ ├── quicklaunchbutton.cpp
│ ├── quicklaunchbutton.h
│ ├── resources/
│ │ └── quicklaunch.desktop.in
│ └── translations/
│ ├── quicklaunch.desktop.yaml
│ ├── quicklaunch.ts
│ ├── quicklaunch_ar.desktop.yaml
│ ├── quicklaunch_ar.ts
│ ├── quicklaunch_arn.ts
│ ├── quicklaunch_ast.ts
│ ├── quicklaunch_bg.desktop.yaml
│ ├── quicklaunch_bg.ts
│ ├── quicklaunch_ca.desktop.yaml
│ ├── quicklaunch_ca.ts
│ ├── quicklaunch_cs.desktop.yaml
│ ├── quicklaunch_cs.ts
│ ├── quicklaunch_cy.ts
│ ├── quicklaunch_da.desktop.yaml
│ ├── quicklaunch_da.ts
│ ├── quicklaunch_de.desktop.yaml
│ ├── quicklaunch_de.ts
│ ├── quicklaunch_el.desktop.yaml
│ ├── quicklaunch_el.ts
│ ├── quicklaunch_en_GB.desktop.yaml
│ ├── quicklaunch_en_GB.ts
│ ├── quicklaunch_eo.desktop.yaml
│ ├── quicklaunch_eo.ts
│ ├── quicklaunch_es.desktop.yaml
│ ├── quicklaunch_es.ts
│ ├── quicklaunch_es_VE.desktop.yaml
│ ├── quicklaunch_es_VE.ts
│ ├── quicklaunch_et.desktop.yaml
│ ├── quicklaunch_et.ts
│ ├── quicklaunch_eu.desktop.yaml
│ ├── quicklaunch_eu.ts
│ ├── quicklaunch_fi.desktop.yaml
│ ├── quicklaunch_fi.ts
│ ├── quicklaunch_fr.desktop.yaml
│ ├── quicklaunch_fr.ts
│ ├── quicklaunch_gl.ts
│ ├── quicklaunch_he.desktop.yaml
│ ├── quicklaunch_he.ts
│ ├── quicklaunch_hr.desktop.yaml
│ ├── quicklaunch_hr.ts
│ ├── quicklaunch_hu.desktop.yaml
│ ├── quicklaunch_hu.ts
│ ├── quicklaunch_ia.ts
│ ├── quicklaunch_id.desktop.yaml
│ ├── quicklaunch_id.ts
│ ├── quicklaunch_it.desktop.yaml
│ ├── quicklaunch_it.ts
│ ├── quicklaunch_ja.desktop.yaml
│ ├── quicklaunch_ja.ts
│ ├── quicklaunch_ka.desktop.yaml
│ ├── quicklaunch_ka.ts
│ ├── quicklaunch_kab.ts
│ ├── quicklaunch_kk.ts
│ ├── quicklaunch_ko.desktop.yaml
│ ├── quicklaunch_ko.ts
│ ├── quicklaunch_lg.desktop.yaml
│ ├── quicklaunch_lg.ts
│ ├── quicklaunch_lt.desktop.yaml
│ ├── quicklaunch_lt.ts
│ ├── quicklaunch_lv.desktop.yaml
│ ├── quicklaunch_lv.ts
│ ├── quicklaunch_nb_NO.desktop.yaml
│ ├── quicklaunch_nb_NO.ts
│ ├── quicklaunch_nl.desktop.yaml
│ ├── quicklaunch_nl.ts
│ ├── quicklaunch_oc.ts
│ ├── quicklaunch_pa.ts
│ ├── quicklaunch_pl.desktop.yaml
│ ├── quicklaunch_pl.ts
│ ├── quicklaunch_pt.desktop.yaml
│ ├── quicklaunch_pt.ts
│ ├── quicklaunch_pt_BR.desktop.yaml
│ ├── quicklaunch_pt_BR.ts
│ ├── quicklaunch_ro.desktop.yaml
│ ├── quicklaunch_ro_RO.ts
│ ├── quicklaunch_ru.desktop.yaml
│ ├── quicklaunch_ru.ts
│ ├── quicklaunch_si.desktop.yaml
│ ├── quicklaunch_si.ts
│ ├── quicklaunch_sk.desktop.yaml
│ ├── quicklaunch_sk_SK.ts
│ ├── quicklaunch_sl.desktop.yaml
│ ├── quicklaunch_sl.ts
│ ├── quicklaunch_sr.desktop.yaml
│ ├── quicklaunch_sr@ijekavian.desktop.yaml
│ ├── quicklaunch_sr@ijekavianlatin.desktop.yaml
│ ├── quicklaunch_sr@latin.desktop.yaml
│ ├── quicklaunch_sr@latin.ts
│ ├── quicklaunch_sr_BA.ts
│ ├── quicklaunch_sr_RS.ts
│ ├── quicklaunch_sv.desktop.yaml
│ ├── quicklaunch_sv.ts
│ ├── quicklaunch_th.desktop.yaml
│ ├── quicklaunch_th_TH.ts
│ ├── quicklaunch_tr.desktop.yaml
│ ├── quicklaunch_tr.ts
│ ├── quicklaunch_uk.desktop.yaml
│ ├── quicklaunch_uk.ts
│ ├── quicklaunch_zh_CN.desktop.yaml
│ ├── quicklaunch_zh_CN.ts
│ ├── quicklaunch_zh_TW.desktop.yaml
│ └── quicklaunch_zh_TW.ts
├── plugin-sensors/
│ ├── CMakeLists.txt
│ ├── chip.cpp
│ ├── chip.h
│ ├── feature.cpp
│ ├── feature.h
│ ├── lxqtsensors.cpp
│ ├── lxqtsensors.h
│ ├── lxqtsensorsconfiguration.cpp
│ ├── lxqtsensorsconfiguration.h
│ ├── lxqtsensorsconfiguration.ui
│ ├── lxqtsensorsplugin.cpp
│ ├── lxqtsensorsplugin.h
│ ├── resources/
│ │ └── sensors.desktop.in
│ ├── sensors.cpp
│ ├── sensors.h
│ └── translations/
│ ├── sensors.desktop.yaml
│ ├── sensors.ts
│ ├── sensors_ar.desktop.yaml
│ ├── sensors_ar.ts
│ ├── sensors_arn.ts
│ ├── sensors_ast.ts
│ ├── sensors_bg.desktop.yaml
│ ├── sensors_bg.ts
│ ├── sensors_ca.desktop.yaml
│ ├── sensors_ca.ts
│ ├── sensors_cs.desktop.yaml
│ ├── sensors_cs.ts
│ ├── sensors_cy.ts
│ ├── sensors_da.desktop.yaml
│ ├── sensors_da.ts
│ ├── sensors_de.desktop.yaml
│ ├── sensors_de.ts
│ ├── sensors_el.desktop.yaml
│ ├── sensors_el.ts
│ ├── sensors_en_GB.desktop.yaml
│ ├── sensors_en_GB.ts
│ ├── sensors_eo.desktop.yaml
│ ├── sensors_es.desktop.yaml
│ ├── sensors_es.ts
│ ├── sensors_es_VE.desktop.yaml
│ ├── sensors_es_VE.ts
│ ├── sensors_et.desktop.yaml
│ ├── sensors_et.ts
│ ├── sensors_eu.desktop.yaml
│ ├── sensors_eu.ts
│ ├── sensors_fi.desktop.yaml
│ ├── sensors_fi.ts
│ ├── sensors_fr.desktop.yaml
│ ├── sensors_fr.ts
│ ├── sensors_gl.ts
│ ├── sensors_he.desktop.yaml
│ ├── sensors_he.ts
│ ├── sensors_hr.desktop.yaml
│ ├── sensors_hr.ts
│ ├── sensors_hu.desktop.yaml
│ ├── sensors_hu.ts
│ ├── sensors_id.ts
│ ├── sensors_is.ts
│ ├── sensors_it.desktop.yaml
│ ├── sensors_it.ts
│ ├── sensors_ja.desktop.yaml
│ ├── sensors_ja.ts
│ ├── sensors_ka.desktop.yaml
│ ├── sensors_ka.ts
│ ├── sensors_kab.ts
│ ├── sensors_kk.desktop.yaml
│ ├── sensors_kk.ts
│ ├── sensors_ko.desktop.yaml
│ ├── sensors_ko.ts
│ ├── sensors_lg.desktop.yaml
│ ├── sensors_lg.ts
│ ├── sensors_lt.desktop.yaml
│ ├── sensors_lt.ts
│ ├── sensors_lv.desktop.yaml
│ ├── sensors_lv.ts
│ ├── sensors_nb_NO.desktop.yaml
│ ├── sensors_nb_NO.ts
│ ├── sensors_nl.desktop.yaml
│ ├── sensors_nl.ts
│ ├── sensors_oc.ts
│ ├── sensors_pa.ts
│ ├── sensors_pl.desktop.yaml
│ ├── sensors_pl.ts
│ ├── sensors_pt.desktop.yaml
│ ├── sensors_pt.ts
│ ├── sensors_pt_BR.desktop.yaml
│ ├── sensors_pt_BR.ts
│ ├── sensors_ro.desktop.yaml
│ ├── sensors_ro_RO.ts
│ ├── sensors_ru.desktop.yaml
│ ├── sensors_ru.ts
│ ├── sensors_si.desktop.yaml
│ ├── sensors_si.ts
│ ├── sensors_sk.desktop.yaml
│ ├── sensors_sk_SK.ts
│ ├── sensors_sl.desktop.yaml
│ ├── sensors_sr.ts
│ ├── sensors_sv.desktop.yaml
│ ├── sensors_sv.ts
│ ├── sensors_th.desktop.yaml
│ ├── sensors_th_TH.ts
│ ├── sensors_tr.desktop.yaml
│ ├── sensors_tr.ts
│ ├── sensors_uk.desktop.yaml
│ ├── sensors_uk.ts
│ ├── sensors_zh_CN.desktop.yaml
│ ├── sensors_zh_CN.ts
│ ├── sensors_zh_TW.desktop.yaml
│ └── sensors_zh_TW.ts
├── plugin-showdesktop/
│ ├── CMakeLists.txt
│ ├── resources/
│ │ └── showdesktop.desktop.in
│ ├── showdesktop.cpp
│ ├── showdesktop.h
│ └── translations/
│ ├── showdesktop.desktop.yaml
│ ├── showdesktop.ts
│ ├── showdesktop_ar.desktop.yaml
│ ├── showdesktop_ar.ts
│ ├── showdesktop_arn.ts
│ ├── showdesktop_ast.ts
│ ├── showdesktop_bg.desktop.yaml
│ ├── showdesktop_bg.ts
│ ├── showdesktop_ca.desktop.yaml
│ ├── showdesktop_ca.ts
│ ├── showdesktop_cs.desktop.yaml
│ ├── showdesktop_cs.ts
│ ├── showdesktop_cy.ts
│ ├── showdesktop_da.desktop.yaml
│ ├── showdesktop_da.ts
│ ├── showdesktop_de.desktop.yaml
│ ├── showdesktop_de.ts
│ ├── showdesktop_el.desktop.yaml
│ ├── showdesktop_el.ts
│ ├── showdesktop_en_GB.desktop.yaml
│ ├── showdesktop_en_GB.ts
│ ├── showdesktop_eo.desktop.yaml
│ ├── showdesktop_eo.ts
│ ├── showdesktop_es.desktop.yaml
│ ├── showdesktop_es.ts
│ ├── showdesktop_es_VE.desktop.yaml
│ ├── showdesktop_es_VE.ts
│ ├── showdesktop_et.desktop.yaml
│ ├── showdesktop_et.ts
│ ├── showdesktop_eu.desktop.yaml
│ ├── showdesktop_eu.ts
│ ├── showdesktop_fi.desktop.yaml
│ ├── showdesktop_fi.ts
│ ├── showdesktop_fr.desktop.yaml
│ ├── showdesktop_fr.ts
│ ├── showdesktop_gl.ts
│ ├── showdesktop_he.desktop.yaml
│ ├── showdesktop_he.ts
│ ├── showdesktop_hr.desktop.yaml
│ ├── showdesktop_hr.ts
│ ├── showdesktop_hu.desktop.yaml
│ ├── showdesktop_hu.ts
│ ├── showdesktop_ia.ts
│ ├── showdesktop_id.ts
│ ├── showdesktop_id_ID.desktop.yaml
│ ├── showdesktop_is.ts
│ ├── showdesktop_it.desktop.yaml
│ ├── showdesktop_it.ts
│ ├── showdesktop_ja.desktop.yaml
│ ├── showdesktop_ja.ts
│ ├── showdesktop_ka.desktop.yaml
│ ├── showdesktop_ka.ts
│ ├── showdesktop_kab.ts
│ ├── showdesktop_kk.desktop.yaml
│ ├── showdesktop_kk.ts
│ ├── showdesktop_ko.desktop.yaml
│ ├── showdesktop_ko.ts
│ ├── showdesktop_lg.desktop.yaml
│ ├── showdesktop_lg.ts
│ ├── showdesktop_lt.desktop.yaml
│ ├── showdesktop_lt.ts
│ ├── showdesktop_lv.desktop.yaml
│ ├── showdesktop_lv.ts
│ ├── showdesktop_nb_NO.desktop.yaml
│ ├── showdesktop_nb_NO.ts
│ ├── showdesktop_nl.desktop.yaml
│ ├── showdesktop_nl.ts
│ ├── showdesktop_oc.desktop.yaml
│ ├── showdesktop_oc.ts
│ ├── showdesktop_pa.desktop.yaml
│ ├── showdesktop_pa.ts
│ ├── showdesktop_pl.desktop.yaml
│ ├── showdesktop_pl.ts
│ ├── showdesktop_pt.desktop.yaml
│ ├── showdesktop_pt.ts
│ ├── showdesktop_pt_BR.desktop.yaml
│ ├── showdesktop_pt_BR.ts
│ ├── showdesktop_ro_RO.desktop.yaml
│ ├── showdesktop_ro_RO.ts
│ ├── showdesktop_ru.desktop.yaml
│ ├── showdesktop_ru.ts
│ ├── showdesktop_si.desktop.yaml
│ ├── showdesktop_si.ts
│ ├── showdesktop_sk.desktop.yaml
│ ├── showdesktop_sk_SK.ts
│ ├── showdesktop_sl.desktop.yaml
│ ├── showdesktop_sl.ts
│ ├── showdesktop_sr.desktop.yaml
│ ├── showdesktop_sr@ijekavian.desktop.yaml
│ ├── showdesktop_sr@ijekavianlatin.desktop.yaml
│ ├── showdesktop_sr@latin.desktop.yaml
│ ├── showdesktop_sr@latin.ts
│ ├── showdesktop_sr_BA.ts
│ ├── showdesktop_sr_RS.ts
│ ├── showdesktop_sv.desktop.yaml
│ ├── showdesktop_sv.ts
│ ├── showdesktop_th.desktop.yaml
│ ├── showdesktop_th_TH.ts
│ ├── showdesktop_tr.desktop.yaml
│ ├── showdesktop_tr.ts
│ ├── showdesktop_uk.desktop.yaml
│ ├── showdesktop_uk.ts
│ ├── showdesktop_zh_CN.desktop.yaml
│ ├── showdesktop_zh_CN.ts
│ ├── showdesktop_zh_TW.desktop.yaml
│ └── showdesktop_zh_TW.ts
├── plugin-spacer/
│ ├── CMakeLists.txt
│ ├── resources/
│ │ └── spacer.desktop.in
│ ├── spacer.cpp
│ ├── spacer.h
│ ├── spacerconfiguration.cpp
│ ├── spacerconfiguration.h
│ ├── spacerconfiguration.ui
│ └── translations/
│ ├── spacer.desktop.yaml
│ ├── spacer.ts
│ ├── spacer_ar.desktop.yaml
│ ├── spacer_ar.ts
│ ├── spacer_arn.ts
│ ├── spacer_ast.ts
│ ├── spacer_bg.desktop.yaml
│ ├── spacer_bg.ts
│ ├── spacer_ca.desktop.yaml
│ ├── spacer_ca.ts
│ ├── spacer_cs.desktop.yaml
│ ├── spacer_cs.ts
│ ├── spacer_cy.ts
│ ├── spacer_da.desktop.yaml
│ ├── spacer_da.ts
│ ├── spacer_de.desktop.yaml
│ ├── spacer_de.ts
│ ├── spacer_el.desktop.yaml
│ ├── spacer_el.ts
│ ├── spacer_en_GB.desktop.yaml
│ ├── spacer_en_GB.ts
│ ├── spacer_es.desktop.yaml
│ ├── spacer_es.ts
│ ├── spacer_et.desktop.yaml
│ ├── spacer_et.ts
│ ├── spacer_fi.desktop.yaml
│ ├── spacer_fi.ts
│ ├── spacer_fr.desktop.yaml
│ ├── spacer_fr.ts
│ ├── spacer_gl.ts
│ ├── spacer_he.desktop.yaml
│ ├── spacer_he.ts
│ ├── spacer_hr.desktop.yaml
│ ├── spacer_hr.ts
│ ├── spacer_hu.desktop.yaml
│ ├── spacer_hu.ts
│ ├── spacer_id.ts
│ ├── spacer_it.desktop.yaml
│ ├── spacer_it.ts
│ ├── spacer_ja.desktop.yaml
│ ├── spacer_ja.ts
│ ├── spacer_ka.desktop.yaml
│ ├── spacer_ka.ts
│ ├── spacer_kab.ts
│ ├── spacer_kk.ts
│ ├── spacer_ko.desktop.yaml
│ ├── spacer_ko.ts
│ ├── spacer_lg.desktop.yaml
│ ├── spacer_lg.ts
│ ├── spacer_lt.desktop.yaml
│ ├── spacer_lt.ts
│ ├── spacer_lv.desktop.yaml
│ ├── spacer_lv.ts
│ ├── spacer_nb_NO.desktop.yaml
│ ├── spacer_nb_NO.ts
│ ├── spacer_nl.desktop.yaml
│ ├── spacer_nl.ts
│ ├── spacer_oc.ts
│ ├── spacer_pa.ts
│ ├── spacer_pl.desktop.yaml
│ ├── spacer_pl.ts
│ ├── spacer_pt.desktop.yaml
│ ├── spacer_pt.ts
│ ├── spacer_pt_BR.desktop.yaml
│ ├── spacer_pt_BR.ts
│ ├── spacer_ru.desktop.yaml
│ ├── spacer_ru.ts
│ ├── spacer_si.desktop.yaml
│ ├── spacer_si.ts
│ ├── spacer_sk.desktop.yaml
│ ├── spacer_sk.ts
│ ├── spacer_sr.ts
│ ├── spacer_sv.desktop.yaml
│ ├── spacer_sv.ts
│ ├── spacer_tr.desktop.yaml
│ ├── spacer_tr.ts
│ ├── spacer_uk.desktop.yaml
│ ├── spacer_uk.ts
│ ├── spacer_zh_CN.desktop.yaml
│ ├── spacer_zh_CN.ts
│ ├── spacer_zh_TW.desktop.yaml
│ └── spacer_zh_TW.ts
├── plugin-statusnotifier/
│ ├── CMakeLists.txt
│ ├── dbustypes.cpp
│ ├── dbustypes.h
│ ├── org.kde.StatusNotifierItem.xml
│ ├── resources/
│ │ └── statusnotifier.desktop.in
│ ├── sniasync.cpp
│ ├── sniasync.h
│ ├── statusnotifier.cpp
│ ├── statusnotifier.h
│ ├── statusnotifierbutton.cpp
│ ├── statusnotifierbutton.h
│ ├── statusnotifierconfiguration.cpp
│ ├── statusnotifierconfiguration.h
│ ├── statusnotifierconfiguration.ui
│ ├── statusnotifieriteminterface.cpp
│ ├── statusnotifieriteminterface.h
│ ├── statusnotifierproxy.cpp
│ ├── statusnotifierproxy.h
│ ├── statusnotifierwatcher.cpp
│ ├── statusnotifierwatcher.h
│ ├── statusnotifierwidget.cpp
│ ├── statusnotifierwidget.h
│ └── translations/
│ ├── statusnotifier.desktop.yaml
│ ├── statusnotifier.ts
│ ├── statusnotifier_ar.desktop.yaml
│ ├── statusnotifier_ar.ts
│ ├── statusnotifier_arn.ts
│ ├── statusnotifier_ast.ts
│ ├── statusnotifier_bg.desktop.yaml
│ ├── statusnotifier_bg.ts
│ ├── statusnotifier_ca.desktop.yaml
│ ├── statusnotifier_ca.ts
│ ├── statusnotifier_cs.desktop.yaml
│ ├── statusnotifier_cs.ts
│ ├── statusnotifier_cy.ts
│ ├── statusnotifier_da.desktop.yaml
│ ├── statusnotifier_da.ts
│ ├── statusnotifier_de.desktop.yaml
│ ├── statusnotifier_de.ts
│ ├── statusnotifier_el.desktop.yaml
│ ├── statusnotifier_el.ts
│ ├── statusnotifier_en_GB.desktop.yaml
│ ├── statusnotifier_en_GB.ts
│ ├── statusnotifier_es.desktop.yaml
│ ├── statusnotifier_et.desktop.yaml
│ ├── statusnotifier_et.ts
│ ├── statusnotifier_fi.desktop.yaml
│ ├── statusnotifier_fi.ts
│ ├── statusnotifier_fr.desktop.yaml
│ ├── statusnotifier_fr.ts
│ ├── statusnotifier_gl.ts
│ ├── statusnotifier_he.desktop.yaml
│ ├── statusnotifier_he.ts
│ ├── statusnotifier_hr.desktop.yaml
│ ├── statusnotifier_hr.ts
│ ├── statusnotifier_hu.desktop.yaml
│ ├── statusnotifier_hu.ts
│ ├── statusnotifier_it.desktop.yaml
│ ├── statusnotifier_it.ts
│ ├── statusnotifier_ja.desktop.yaml
│ ├── statusnotifier_ja.ts
│ ├── statusnotifier_ka.desktop.yaml
│ ├── statusnotifier_ka.ts
│ ├── statusnotifier_kk.desktop.yaml
│ ├── statusnotifier_kk.ts
│ ├── statusnotifier_ko.desktop.yaml
│ ├── statusnotifier_ko.ts
│ ├── statusnotifier_lg.desktop.yaml
│ ├── statusnotifier_lg.ts
│ ├── statusnotifier_lt.desktop.yaml
│ ├── statusnotifier_lt.ts
│ ├── statusnotifier_lv.desktop.yaml
│ ├── statusnotifier_lv.ts
│ ├── statusnotifier_nb_NO.desktop.yaml
│ ├── statusnotifier_nb_NO.ts
│ ├── statusnotifier_nl.desktop.yaml
│ ├── statusnotifier_nl.ts
│ ├── statusnotifier_oc.desktop.yaml
│ ├── statusnotifier_oc.ts
│ ├── statusnotifier_pa.desktop.yaml
│ ├── statusnotifier_pa.ts
│ ├── statusnotifier_pl.desktop.yaml
│ ├── statusnotifier_pl.ts
│ ├── statusnotifier_pt.desktop.yaml
│ ├── statusnotifier_pt.ts
│ ├── statusnotifier_pt_BR.desktop.yaml
│ ├── statusnotifier_pt_BR.ts
│ ├── statusnotifier_ru.desktop.yaml
│ ├── statusnotifier_ru.ts
│ ├── statusnotifier_si.desktop.yaml
│ ├── statusnotifier_si.ts
│ ├── statusnotifier_sk.desktop.yaml
│ ├── statusnotifier_sk_SK.ts
│ ├── statusnotifier_sv.desktop.yaml
│ ├── statusnotifier_sv.ts
│ ├── statusnotifier_tr.desktop.yaml
│ ├── statusnotifier_tr.ts
│ ├── statusnotifier_uk.desktop.yaml
│ ├── statusnotifier_uk.ts
│ ├── statusnotifier_zh_CN.desktop.yaml
│ ├── statusnotifier_zh_CN.ts
│ ├── statusnotifier_zh_TW.desktop.yaml
│ └── statusnotifier_zh_TW.ts
├── plugin-sysstat/
│ ├── CMakeLists.txt
│ ├── lxqtsysstat.cpp
│ ├── lxqtsysstat.h
│ ├── lxqtsysstatcolours.cpp
│ ├── lxqtsysstatcolours.h
│ ├── lxqtsysstatcolours.ui
│ ├── lxqtsysstatconfiguration.cpp
│ ├── lxqtsysstatconfiguration.h
│ ├── lxqtsysstatconfiguration.ui
│ ├── lxqtsysstatutils.cpp
│ ├── lxqtsysstatutils.h
│ ├── resources/
│ │ └── sysstat.desktop.in
│ └── translations/
│ ├── sysstat.desktop.yaml
│ ├── sysstat.ts
│ ├── sysstat_ar.desktop.yaml
│ ├── sysstat_ar.ts
│ ├── sysstat_arn.ts
│ ├── sysstat_ast.ts
│ ├── sysstat_bg.desktop.yaml
│ ├── sysstat_bg.ts
│ ├── sysstat_ca.desktop.yaml
│ ├── sysstat_ca.ts
│ ├── sysstat_cs.desktop.yaml
│ ├── sysstat_cs.ts
│ ├── sysstat_cy.ts
│ ├── sysstat_da.desktop.yaml
│ ├── sysstat_da.ts
│ ├── sysstat_de.desktop.yaml
│ ├── sysstat_de.ts
│ ├── sysstat_el.desktop.yaml
│ ├── sysstat_el.ts
│ ├── sysstat_en_GB.desktop.yaml
│ ├── sysstat_en_GB.ts
│ ├── sysstat_es.desktop.yaml
│ ├── sysstat_es.ts
│ ├── sysstat_et.desktop.yaml
│ ├── sysstat_et.ts
│ ├── sysstat_fi.desktop.yaml
│ ├── sysstat_fi.ts
│ ├── sysstat_fr.desktop.yaml
│ ├── sysstat_fr.ts
│ ├── sysstat_gl.ts
│ ├── sysstat_he.desktop.yaml
│ ├── sysstat_he.ts
│ ├── sysstat_hr.desktop.yaml
│ ├── sysstat_hr.ts
│ ├── sysstat_hu.desktop.yaml
│ ├── sysstat_hu.ts
│ ├── sysstat_id.ts
│ ├── sysstat_it.desktop.yaml
│ ├── sysstat_it.ts
│ ├── sysstat_ja.desktop.yaml
│ ├── sysstat_ja.ts
│ ├── sysstat_ka.desktop.yaml
│ ├── sysstat_ka.ts
│ ├── sysstat_kab.ts
│ ├── sysstat_kk.desktop.yaml
│ ├── sysstat_kk.ts
│ ├── sysstat_ko.desktop.yaml
│ ├── sysstat_ko.ts
│ ├── sysstat_lg.desktop.yaml
│ ├── sysstat_lg.ts
│ ├── sysstat_lt.desktop.yaml
│ ├── sysstat_lt.ts
│ ├── sysstat_lv.desktop.yaml
│ ├── sysstat_lv.ts
│ ├── sysstat_nb_NO.desktop.yaml
│ ├── sysstat_nb_NO.ts
│ ├── sysstat_nl.desktop.yaml
│ ├── sysstat_nl.ts
│ ├── sysstat_oc.ts
│ ├── sysstat_pa.ts
│ ├── sysstat_pl.desktop.yaml
│ ├── sysstat_pl.ts
│ ├── sysstat_pt.desktop.yaml
│ ├── sysstat_pt.ts
│ ├── sysstat_pt_BR.ts
│ ├── sysstat_ru.desktop.yaml
│ ├── sysstat_ru.ts
│ ├── sysstat_si.desktop.yaml
│ ├── sysstat_si.ts
│ ├── sysstat_sk.desktop.yaml
│ ├── sysstat_sk_SK.ts
│ ├── sysstat_sv.desktop.yaml
│ ├── sysstat_sv.ts
│ ├── sysstat_tr.desktop.yaml
│ ├── sysstat_tr.ts
│ ├── sysstat_uk.desktop.yaml
│ ├── sysstat_uk.ts
│ ├── sysstat_zh_CN.desktop.yaml
│ ├── sysstat_zh_CN.ts
│ ├── sysstat_zh_TW.desktop.yaml
│ └── sysstat_zh_TW.ts
├── plugin-taskbar/
│ ├── CMakeLists.txt
│ ├── lxqtgrouppopup.cpp
│ ├── lxqtgrouppopup.h
│ ├── lxqttaskbar.cpp
│ ├── lxqttaskbar.h
│ ├── lxqttaskbarconfiguration.cpp
│ ├── lxqttaskbarconfiguration.h
│ ├── lxqttaskbarconfiguration.ui
│ ├── lxqttaskbarplugin.cpp
│ ├── lxqttaskbarplugin.h
│ ├── lxqttaskbutton.cpp
│ ├── lxqttaskbutton.h
│ ├── lxqttaskgroup.cpp
│ ├── lxqttaskgroup.h
│ ├── resources/
│ │ └── taskbar.desktop.in
│ └── translations/
│ ├── taskbar.desktop.yaml
│ ├── taskbar.ts
│ ├── taskbar_ar.desktop.yaml
│ ├── taskbar_ar.ts
│ ├── taskbar_arn.ts
│ ├── taskbar_ast.ts
│ ├── taskbar_bg.desktop.yaml
│ ├── taskbar_bg.ts
│ ├── taskbar_ca.desktop.yaml
│ ├── taskbar_ca.ts
│ ├── taskbar_cs.desktop.yaml
│ ├── taskbar_cs.ts
│ ├── taskbar_cy.ts
│ ├── taskbar_da.desktop.yaml
│ ├── taskbar_da.ts
│ ├── taskbar_de.desktop.yaml
│ ├── taskbar_de.ts
│ ├── taskbar_el.desktop.yaml
│ ├── taskbar_el.ts
│ ├── taskbar_en_GB.desktop.yaml
│ ├── taskbar_en_GB.ts
│ ├── taskbar_eo.desktop.yaml
│ ├── taskbar_eo.ts
│ ├── taskbar_es.desktop.yaml
│ ├── taskbar_es.ts
│ ├── taskbar_es_VE.desktop.yaml
│ ├── taskbar_es_VE.ts
│ ├── taskbar_et.desktop.yaml
│ ├── taskbar_et.ts
│ ├── taskbar_eu.desktop.yaml
│ ├── taskbar_eu.ts
│ ├── taskbar_fi.desktop.yaml
│ ├── taskbar_fi.ts
│ ├── taskbar_fr.desktop.yaml
│ ├── taskbar_fr.ts
│ ├── taskbar_gl.ts
│ ├── taskbar_he.desktop.yaml
│ ├── taskbar_he.ts
│ ├── taskbar_hr.desktop.yaml
│ ├── taskbar_hr.ts
│ ├── taskbar_hu.desktop.yaml
│ ├── taskbar_hu.ts
│ ├── taskbar_ia.ts
│ ├── taskbar_id.ts
│ ├── taskbar_it.desktop.yaml
│ ├── taskbar_it.ts
│ ├── taskbar_ja.desktop.yaml
│ ├── taskbar_ja.ts
│ ├── taskbar_ka.desktop.yaml
│ ├── taskbar_ka.ts
│ ├── taskbar_kab.ts
│ ├── taskbar_kk.desktop.yaml
│ ├── taskbar_kk.ts
│ ├── taskbar_ko.desktop.yaml
│ ├── taskbar_ko.ts
│ ├── taskbar_lg.desktop.yaml
│ ├── taskbar_lg.ts
│ ├── taskbar_lt.desktop.yaml
│ ├── taskbar_lt.ts
│ ├── taskbar_lv.desktop.yaml
│ ├── taskbar_lv.ts
│ ├── taskbar_nb_NO.desktop.yaml
│ ├── taskbar_nb_NO.ts
│ ├── taskbar_nl.desktop.yaml
│ ├── taskbar_nl.ts
│ ├── taskbar_oc.desktop.yaml
│ ├── taskbar_oc.ts
│ ├── taskbar_pa.desktop.yaml
│ ├── taskbar_pa.ts
│ ├── taskbar_pl.desktop.yaml
│ ├── taskbar_pl.ts
│ ├── taskbar_pt.desktop.yaml
│ ├── taskbar_pt.ts
│ ├── taskbar_pt_BR.desktop.yaml
│ ├── taskbar_pt_BR.ts
│ ├── taskbar_ro.desktop.yaml
│ ├── taskbar_ro_RO.ts
│ ├── taskbar_ru.desktop.yaml
│ ├── taskbar_ru.ts
│ ├── taskbar_si.desktop.yaml
│ ├── taskbar_si.ts
│ ├── taskbar_sk.desktop.yaml
│ ├── taskbar_sk_SK.ts
│ ├── taskbar_sl.desktop.yaml
│ ├── taskbar_sl.ts
│ ├── taskbar_sr.desktop.yaml
│ ├── taskbar_sr@ijekavian.desktop.yaml
│ ├── taskbar_sr@ijekavianlatin.desktop.yaml
│ ├── taskbar_sr@latin.desktop.yaml
│ ├── taskbar_sr@latin.ts
│ ├── taskbar_sr_BA.ts
│ ├── taskbar_sr_RS.ts
│ ├── taskbar_sv.desktop.yaml
│ ├── taskbar_sv.ts
│ ├── taskbar_th.desktop.yaml
│ ├── taskbar_th_TH.ts
│ ├── taskbar_tr.desktop.yaml
│ ├── taskbar_tr.ts
│ ├── taskbar_uk.desktop.yaml
│ ├── taskbar_uk.ts
│ ├── taskbar_zh_CN.desktop.yaml
│ ├── taskbar_zh_CN.ts
│ ├── taskbar_zh_TW.desktop.yaml
│ └── taskbar_zh_TW.ts
├── plugin-tray/
│ ├── CMakeLists.txt
│ ├── fdoselectionmanager.cpp
│ ├── fdoselectionmanager.h
│ ├── lxqttrayplugin.cpp
│ ├── lxqttrayplugin.h
│ ├── org.kde.StatusNotifierItem.xml
│ ├── org.kde.StatusNotifierWatcher.xml
│ ├── resources/
│ │ └── tray.desktop.in
│ ├── snidbus.cpp
│ ├── snidbus.h
│ ├── sniproxy.cpp
│ ├── sniproxy.h
│ ├── translations/
│ │ ├── tray.desktop.yaml
│ │ ├── tray_ar.desktop.yaml
│ │ ├── tray_bg.desktop.yaml
│ │ ├── tray_ca.desktop.yaml
│ │ ├── tray_cs.desktop.yaml
│ │ ├── tray_da.desktop.yaml
│ │ ├── tray_de.desktop.yaml
│ │ ├── tray_el.desktop.yaml
│ │ ├── tray_en_GB.desktop.yaml
│ │ ├── tray_eo.desktop.yaml
│ │ ├── tray_es.desktop.yaml
│ │ ├── tray_es_VE.desktop.yaml
│ │ ├── tray_et.desktop.yaml
│ │ ├── tray_eu.desktop.yaml
│ │ ├── tray_fi.desktop.yaml
│ │ ├── tray_fr.desktop.yaml
│ │ ├── tray_he.desktop.yaml
│ │ ├── tray_hr.desktop.yaml
│ │ ├── tray_hu.desktop.yaml
│ │ ├── tray_is.desktop.yaml
│ │ ├── tray_it.desktop.yaml
│ │ ├── tray_ja.desktop.yaml
│ │ ├── tray_ka.desktop.yaml
│ │ ├── tray_kab.desktop.yaml
│ │ ├── tray_kk.desktop.yaml
│ │ ├── tray_ko.desktop.yaml
│ │ ├── tray_lg.desktop.yaml
│ │ ├── tray_lt.desktop.yaml
│ │ ├── tray_lv.desktop.yaml
│ │ ├── tray_nb_NO.desktop.yaml
│ │ ├── tray_nl.desktop.yaml
│ │ ├── tray_oc.desktop.yaml
│ │ ├── tray_pa.desktop.yaml
│ │ ├── tray_pl.desktop.yaml
│ │ ├── tray_pt.desktop.yaml
│ │ ├── tray_pt_BR.desktop.yaml
│ │ ├── tray_ro.desktop.yaml
│ │ ├── tray_ru.desktop.yaml
│ │ ├── tray_si.desktop.yaml
│ │ ├── tray_sk.desktop.yaml
│ │ ├── tray_sl.desktop.yaml
│ │ ├── tray_sr.desktop.yaml
│ │ ├── tray_sr@ijekavian.desktop.yaml
│ │ ├── tray_sr@ijekavianlatin.desktop.yaml
│ │ ├── tray_sr@latin.desktop.yaml
│ │ ├── tray_sv.desktop.yaml
│ │ ├── tray_th.desktop.yaml
│ │ ├── tray_tr.desktop.yaml
│ │ ├── tray_uk.desktop.yaml
│ │ ├── tray_zh_CN.desktop.yaml
│ │ └── tray_zh_TW.desktop.yaml
│ ├── xcbutils.h
│ ├── xtestsender.cpp
│ └── xtestsender.h
├── plugin-volume/
│ ├── CMakeLists.txt
│ ├── alsadevice.cpp
│ ├── alsadevice.h
│ ├── alsaengine.cpp
│ ├── alsaengine.h
│ ├── audiodevice.cpp
│ ├── audiodevice.h
│ ├── audioengine.cpp
│ ├── audioengine.h
│ ├── lxqtvolume.cpp
│ ├── lxqtvolume.h
│ ├── lxqtvolumeconfiguration.cpp
│ ├── lxqtvolumeconfiguration.h
│ ├── lxqtvolumeconfiguration.ui
│ ├── ossengine.cpp
│ ├── ossengine.h
│ ├── pulseaudioengine.cpp
│ ├── pulseaudioengine.h
│ ├── resources/
│ │ └── volume.desktop.in
│ ├── translations/
│ │ ├── volume.desktop.yaml
│ │ ├── volume.ts
│ │ ├── volume_ar.desktop.yaml
│ │ ├── volume_ar.ts
│ │ ├── volume_arn.ts
│ │ ├── volume_ast.ts
│ │ ├── volume_bg.desktop.yaml
│ │ ├── volume_bg.ts
│ │ ├── volume_ca.desktop.yaml
│ │ ├── volume_ca.ts
│ │ ├── volume_cs.desktop.yaml
│ │ ├── volume_cs.ts
│ │ ├── volume_cy.ts
│ │ ├── volume_da.desktop.yaml
│ │ ├── volume_da.ts
│ │ ├── volume_de.desktop.yaml
│ │ ├── volume_de.ts
│ │ ├── volume_el.desktop.yaml
│ │ ├── volume_el.ts
│ │ ├── volume_en_GB.desktop.yaml
│ │ ├── volume_en_GB.ts
│ │ ├── volume_eo.ts
│ │ ├── volume_es.desktop.yaml
│ │ ├── volume_es.ts
│ │ ├── volume_es_VE.desktop.yaml
│ │ ├── volume_es_VE.ts
│ │ ├── volume_et.desktop.yaml
│ │ ├── volume_et.ts
│ │ ├── volume_eu.desktop.yaml
│ │ ├── volume_eu.ts
│ │ ├── volume_fi.desktop.yaml
│ │ ├── volume_fi.ts
│ │ ├── volume_fr.desktop.yaml
│ │ ├── volume_fr.ts
│ │ ├── volume_gl.ts
│ │ ├── volume_he.desktop.yaml
│ │ ├── volume_he.ts
│ │ ├── volume_hr.desktop.yaml
│ │ ├── volume_hr.ts
│ │ ├── volume_hu.desktop.yaml
│ │ ├── volume_hu.ts
│ │ ├── volume_id.ts
│ │ ├── volume_it.desktop.yaml
│ │ ├── volume_it.ts
│ │ ├── volume_ja.desktop.yaml
│ │ ├── volume_ja.ts
│ │ ├── volume_ka.desktop.yaml
│ │ ├── volume_ka.ts
│ │ ├── volume_kab.ts
│ │ ├── volume_kk.desktop.yaml
│ │ ├── volume_kk.ts
│ │ ├── volume_ko.desktop.yaml
│ │ ├── volume_ko.ts
│ │ ├── volume_lg.desktop.yaml
│ │ ├── volume_lg.ts
│ │ ├── volume_lt.desktop.yaml
│ │ ├── volume_lt.ts
│ │ ├── volume_lv.desktop.yaml
│ │ ├── volume_lv.ts
│ │ ├── volume_nb_NO.desktop.yaml
│ │ ├── volume_nb_NO.ts
│ │ ├── volume_nl.desktop.yaml
│ │ ├── volume_nl.ts
│ │ ├── volume_oc.desktop.yaml
│ │ ├── volume_oc.ts
│ │ ├── volume_pa.desktop.yaml
│ │ ├── volume_pa.ts
│ │ ├── volume_pl.desktop.yaml
│ │ ├── volume_pl.ts
│ │ ├── volume_pt.desktop.yaml
│ │ ├── volume_pt.ts
│ │ ├── volume_pt_BR.desktop.yaml
│ │ ├── volume_pt_BR.ts
│ │ ├── volume_ro_RO.desktop.yaml
│ │ ├── volume_ro_RO.ts
│ │ ├── volume_ru.desktop.yaml
│ │ ├── volume_ru.ts
│ │ ├── volume_si.desktop.yaml
│ │ ├── volume_si.ts
│ │ ├── volume_sk.desktop.yaml
│ │ ├── volume_sk_SK.ts
│ │ ├── volume_sl.ts
│ │ ├── volume_sv.desktop.yaml
│ │ ├── volume_sv.ts
│ │ ├── volume_th.desktop.yaml
│ │ ├── volume_th_TH.ts
│ │ ├── volume_tr.desktop.yaml
│ │ ├── volume_tr.ts
│ │ ├── volume_uk.desktop.yaml
│ │ ├── volume_uk.ts
│ │ ├── volume_zh_CN.desktop.yaml
│ │ ├── volume_zh_CN.ts
│ │ ├── volume_zh_TW.desktop.yaml
│ │ └── volume_zh_TW.ts
│ ├── volumebutton.cpp
│ ├── volumebutton.h
│ ├── volumepopup.cpp
│ └── volumepopup.h
└── plugin-worldclock/
├── CMakeLists.txt
├── lxqtworldclock.cpp
├── lxqtworldclock.h
├── lxqtworldclockconfiguration.cpp
├── lxqtworldclockconfiguration.h
├── lxqtworldclockconfiguration.ui
├── lxqtworldclockconfigurationmanualformat.cpp
├── lxqtworldclockconfigurationmanualformat.h
├── lxqtworldclockconfigurationmanualformat.ui
├── lxqtworldclockconfigurationtimezones.cpp
├── lxqtworldclockconfigurationtimezones.h
├── lxqtworldclockconfigurationtimezones.ui
├── resources/
│ └── worldclock.desktop.in
└── translations/
├── worldclock.desktop.yaml
├── worldclock.ts
├── worldclock_ar.desktop.yaml
├── worldclock_ar.ts
├── worldclock_arn.ts
├── worldclock_ast.ts
├── worldclock_bg.desktop.yaml
├── worldclock_bg.ts
├── worldclock_ca.desktop.yaml
├── worldclock_ca.ts
├── worldclock_cs.desktop.yaml
├── worldclock_cs.ts
├── worldclock_cy.ts
├── worldclock_da.desktop.yaml
├── worldclock_da.ts
├── worldclock_de.desktop.yaml
├── worldclock_de.ts
├── worldclock_el.desktop.yaml
├── worldclock_el.ts
├── worldclock_en_GB.desktop.yaml
├── worldclock_en_GB.ts
├── worldclock_es.desktop.yaml
├── worldclock_es.ts
├── worldclock_et.desktop.yaml
├── worldclock_et.ts
├── worldclock_fi.desktop.yaml
├── worldclock_fi.ts
├── worldclock_fr.desktop.yaml
├── worldclock_fr.ts
├── worldclock_gl.ts
├── worldclock_he.desktop.yaml
├── worldclock_he.ts
├── worldclock_hi.desktop.yaml
├── worldclock_hr.desktop.yaml
├── worldclock_hr.ts
├── worldclock_hu.desktop.yaml
├── worldclock_hu.ts
├── worldclock_id.ts
├── worldclock_it.desktop.yaml
├── worldclock_it.ts
├── worldclock_ja.desktop.yaml
├── worldclock_ja.ts
├── worldclock_ka.desktop.yaml
├── worldclock_ka.ts
├── worldclock_kab.ts
├── worldclock_kk.desktop.yaml
├── worldclock_kk.ts
├── worldclock_ko.desktop.yaml
├── worldclock_ko.ts
├── worldclock_lg.desktop.yaml
├── worldclock_lg.ts
├── worldclock_lt.desktop.yaml
├── worldclock_lt.ts
├── worldclock_lv.desktop.yaml
├── worldclock_lv.ts
├── worldclock_nb_NO.desktop.yaml
├── worldclock_nb_NO.ts
├── worldclock_nl.desktop.yaml
├── worldclock_nl.ts
├── worldclock_oc.ts
├── worldclock_pa.desktop.yaml
├── worldclock_pa.ts
├── worldclock_pl.desktop.yaml
├── worldclock_pl.ts
├── worldclock_pt.desktop.yaml
├── worldclock_pt.ts
├── worldclock_pt_BR.desktop.yaml
├── worldclock_pt_BR.ts
├── worldclock_ru.desktop.yaml
├── worldclock_ru.ts
├── worldclock_si.desktop.yaml
├── worldclock_si.ts
├── worldclock_sk.desktop.yaml
├── worldclock_sk_SK.ts
├── worldclock_sr.desktop.yaml
├── worldclock_sr.ts
├── worldclock_sv.desktop.yaml
├── worldclock_sv.ts
├── worldclock_tr.desktop.yaml
├── worldclock_tr.ts
├── worldclock_uk.desktop.yaml
├── worldclock_uk.ts
├── worldclock_zh_CN.desktop.yaml
├── worldclock_zh_CN.ts
├── worldclock_zh_TW.desktop.yaml
└── worldclock_zh_TW.ts
================================================
FILE CONTENTS
================================================
================================================
FILE: .ci/build.sh
================================================
set -ex
source shared-ci/prepare-archlinux.sh
# See *depends in https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=lxqt-panel-git
pacman -S --noconfirm --needed git cmake qt6-base qt6-tools lxqt-build-tools-git alsa-lib libpulse lm_sensors libstatgrab libsysstat-git solid lxqt-menu-data-git libdbusmenu-lxqt-git lxqt-globalkeys-git libxtst
cmake -B build -S .
make -C build
================================================
FILE: .gitattributes
================================================
# remove files from deployment using `git archive`
# git files
.gitattributes export-ignore
.github export-ignore
.gitignore export-ignore
# several files and directories we never want to export
# a little bit belt and braces as the most of these files
# should never ever be in the repository
.*~ export-ignore
.kdev4 export-ignore
.translation_update export-ignore
/build export-ignore
/temp export-ignore
/tmp export-ignore
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help improve lxqt-panel
title: ''
labels: ''
assignees: ''
---
<!--- BEFORE FILLING OUT THIS REPORT FORM: --->
<!--- Dear users of stable and LTS (Long Term Service) distributions: --->
<!--- Please do NOT file bugs against outdated versions of lxqt-panel, --->
<!--- which such distributions likely use; instead, use your --->
<!--- distribution's bugtracker. --->
<!--- Provide a general summary of the issue in the title above. You --->
<!--- should not delete relevant sections and/or questions in your report --->
##### Expected Behavior
<!--- Tell us what should happen -->
##### Current Behavior
<!--- Tell us what happens instead of the expected behaviour. -->
##### Possible Solution
<!--- Not obligatory, but suggest a fix/reason for the bug. --->
##### Steps to Reproduce (for bugs)
<!--- Provide a link to a live example, or an unambiguous set of steps to --->
<!--- reproduce this bug. Include code to reproduce, if relevant --->
1.
2.
3.
4.
##### Context
<!--- How has this issue affected you? What are you trying to accomplish? --->
<!--- Providing context helps us come up with a solution that is most --->
<!--- useful in the real world --->
##### System Information
<!--- Include as many relevant details about the system you experienced --->
<!--- the bug in --->
* LXQt Version:
* Distribution & Version:
* Qt Version:
* liblxqt Version:
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
- name: LXQt Discussions
url: https://github.com/lxqt/lxqt/discussions/
about: For general questions, problems and else.
- name: Instant Messaging
url: https://lxqt-project.org/
about: For Matrix, Telegram and IRC see channel list on lxqt-project.org
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for lxqt-panel
title: "[Feature request]"
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. -->
<!-- Example: I'm always frustrated when [...] -->
**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen, tell us -->
<!-- how it should work, explain the difference from current behavior. -->
<!-- A screenshot might help. -->
**Describe eventual alternatives you've considered**
<!-- A clear and concise description of any alternative solutions or -->
<!-- features you've considered. -->
#### Context
<!-- How has this issue affected you? What are you trying to accomplish? -->
<!-- Providing context helps us come up with a solution that is most -->
<!-- useful in the real world -->
================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
<!--- Provide a general summary of the issue in the title above. You --->
<!--- should not delete relevant sections and/or questions in your report --->
<!--- BEFORE FILLING OUT THIS REPORT FORM: --->
<!--- Dear users of stable and LTS (long term service) distributions: --->
<!--- Please do NOT file bugs against old (dead) versions but use your --->
<!--- distribution bugtracker instead. This is esp. true for Ubuntu LTS. --->
##### Expected Behavior
<!--- If you're describing a bug, tell us what should happen -->
<!--- If you're suggesting a change/improvement, tell us how it should work -->
##### Current Behavior
<!--- If describing a bug, tell us what happens instead of the expected --->
<!--- behaviour. If suggesting a change/improvement, explain the difference -->
<!--- from current behavior (a screenshot might help) --->
##### Possible Solution
<!--- Not obligatory, but suggest a fix/reason for the bug, --->
<!--- or ideas how to implement the addition or change --->
##### Steps to Reproduce (for bugs)
<!--- Provide a link to a live example, or an unambiguous set of steps to --->
<!--- reproduce this bug. Include code to reproduce, if relevant --->
1.
2.
3.
4.
##### Context
<!--- How has this issue affected you? What are you trying to accomplish? --->
<!--- Providing context helps us come up with a solution that is most --->
<!--- useful in the real world --->
##### System Information
<!--- Include as many relevant details about the system you experienced --->
<!--- the bug in --->
* Distribution & Version:
* Kernel:
* Qt Version:
* liblxqt Version:
* lxqt-build-tools Version:
* Package version:
================================================
FILE: .github/workflows/test.yml
================================================
name: Testing
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-20.04
container: archlinux:base-devel
steps:
- name: Checkout the repo
uses: actions/checkout@v2
- name: Checkout shared CI repo
uses: actions/checkout@v2
with:
repository: lxqt/ci
path: shared-ci
- name: Build
run: bash ./.ci/build.sh
================================================
FILE: .gitignore
================================================
build
*.kdev4
CMakeLists.txt.user
================================================
FILE: .translation-update
================================================
translations='
./panel
./plugin-colorpicker
./plugin-cpuload
./plugin-desktopswitch
./plugin-directorymenu
./plugin-dom
./plugin-kbindicator
./plugin-mainmenu
./plugin-mount
./plugin-networkmonitor
./plugin-quicklaunch
./plugin-sensors
./plugin-showdesktop
./plugin-spacer
./plugin-statusnotifier
./plugin-sysstat
./plugin-taskbar
./plugin-tray
./plugin-volume
./plugin-worldclock
'
================================================
FILE: AUTHORS
================================================
Upstream Authors:
LXQt team: https://lxqt-project.org/
Razor team: http://razor-qt.org
Copyright:
Copyright (c) 2010-2012 Razor team
Copyright (c) 2012-2017 LXQt team
License: LGPL-2.1+
The full text of the licenses can be found in the 'COPYING' file.
================================================
FILE: CHANGELOG
================================================
lxqt-panel-2.4.0 / 2026-04-20
==============================
* Implemented multi sink volume plugin.
* Added some more padding in LXQtWorldClockPopup.
* Fixed weird behavior in panel length configuration when switching between px and %.
lxqt-panel-2.3.3 / 2026-04-02
==============================
* Fixed too strict parsing of icon themes with Qt6.11.
* Prioritize starting strings of titles with Fancy Menu's filtering.
* Disabled shortcutselector in panel menus on Wayland and show tooltip info.
* Version check for 6.10 for filterstring.
* Removed obsolete Qt5 version check.
* Fixed auto-hiding on dragging over Task Manager and Show Desktop.
* KeyboardInteractivityNone also for labwc (0.9.4).
* Added tooltip to opacity slider to communicate value.
* Cleaned up some ui files.
* Updated translations and code cleanup.
lxqt-panel-2.3.2 / 2025-12-21
==============================
* Used `QPointer` for handling wlroots desktops to prevent dangling pointers, especially with bad compositor codes (previously, Hyprland could make the panel crash).
lxqt-panel-2.3.1 / 2025-11-25
==============================
* Fixed build failure with Qt < 6.8.
lxqt-panel-2.3.0 / 2025-11-05
==============================
* Added Wayfire backend.
* Made Desktop Switcher work with Wayland compositors that support ext-workspaces-v1 protocol (like labwc, niri, …).
* Activate Show Desktop plugin on drag-and-drop.
* Made the initial config file available outside LXQt.
* Updated the button of Custom Command every time it receives output.
* Added support for structured output to Custom Command.
* Added a 50-ms delay before making desktop switcher urgent.
* Fixed building with Qt 6.10.
* Fixed building with C++20.
* Fix a discrepancy in the default action of mouse wheel in Task Manager plugin.
* Accept base-names of menu files in Fancy Menu and Main Menu plugins.
* Used `lxqt-panel-applications.menu` in Fancy Menu by default.
* Added category separators of menu files to Fancy Menu.
* Prevented changing backlight on showing the backlight slider.
* Adjust backlight with mouse wheel on the button of backlight plugin.
* Silenced some compilation warnings.
* Cleaned up some ui files.
* Removed unneeded QOverloads.
* Used locale-aware sorting in Fancy Menu and Main Menu.
* Follow better model/view architcture for PanelPluginsModel.
* Properly handle plugin move by configview.
* Workaround for a Qt regression that prevented plugin move indicators from being removed.
lxqt-panel-2.2.2 / 2025-06-22
==============================
* Made searching for backend in EVs case-insensitive.
* Added backend info to README.
* Added a missing removal signal to kwin_wayland backend.
* Disabled automatic showing of mount popup on Wayland.
* Support showing of current screen windows in the wlroots taskbar.
lxqt-panel-2.2.1 / 2025-05-17
==============================
* Made "Show Desktop" work under Wayland compositors compatible with wlroots.
* Workaround for kwin_wayland's problems with showing desktop.
* Minimize children of a window with it on kwin_wayland.
* No attention demand for active parent-child pairs on kwin_wayland.
* Prevented a rare DND crash in Task Manager under Wayland.
* Removed ancient QT_USE_XXXX variables and dropped QTX_LIBRARIES.
* Made timezone switching by mouse wheel optional in World Clock.
* Added an icon for plugin-sensors.
* Code cleanup.
lxqt-panel-2.2.0 / 2025-04-17
==============================
* Handle Wayland screens by using their names, not numbers.
* Added tooltip to plugin-dom.
* Prevent redundant writing to the config file on startup.
* Added an option for the text color of Custom Command.
* Corrected the order of focusing in config dialogs by reordering blocks in ui files.
* Updated manpage.
* Changed "desktop" to "screen" in Panel's config dialog.
* Tidy up some whitespaces in the code.
* Enabled PageDown/PageUp for Fancy Menu.
* Replaced qMin, qMax, qBound, qRound and qAbs with standard functions.
* Cleaned up the config ui files of Main Menu and Fancy Menu.
* Removed menu-cache support.
* Removed debug messages for "UnknownProperty" errors in Status Notifier.
lxqt-panel-2.1.4 / 2025-01-11
==============================
* Fixed Task Manager when a window is shown on all desktops.
* Fixed handling of windows that are on all desktops.
* Check visibility of task buttons only relative to task-bar (this fixes icon shift with auto-hiding on Wayland).
* Added exclusion list to Task Manager's config.
* Added X11-only info for kbindicator.
* Added configurable tooltip to Custom Command plugin.
* Fixed regression in showing only task buttons of the current screen.
lxqt-panel-2.1.3 / 2024-12-01
==============================
* Taken into account an empty shortcut in Fancy/Main Menu. This also fixes searching with non-Latin keyboard layouts under Wayland.
* Fixed bugs about multi-screen setups on Wayland.
lxqt-panel-2.1.2 / 2024-11-24
==============================
* Fixed changing of desktop names under X11.
lxqt-panel-2.1.1 / 2024-11-07
==============================
* Fixed destination dir of `lxqt-panel_wayland.desktop` to prevent packaging failure.
* Made auto-hiding on overlapping work under `kwin_wayland`. Also, made auto-hiding animation work on Wayland in general.
lxqt-panel-2.1.0 / 2024-11-05
==============================
* Refactored Window Manager interaction and added 2 Wayland back-ends for task-bar.
* Made horizontal wheel scrolling work with Custom Command.
* Fixed main popup positions under Wayland.
* Made Fancy Menu filtering work with exec name.
* Set size policy in `plugin-backlight` and `plugin-colorpicker`.
* Always consider minimized windows deactivated with wlroots.
* Improved `plugin-directorymenu` icons.
* Fixed issues in wlroots task buttons.
* Optionally disable move-to-layer and move-to-output.
* Fixed keep_below state in LXQtWMBackend_KWinWayland.
* Fixed issues in kwin_wayland task buttons.
* Split DesktopSwitch and MoveToDesktop.
* Fixed the urgent hint of desktop switcher.
* Fixed default terminal of directorymenu plugin.
* Added an option to reverse the order of tray items.
* Fixed closing of menu with "Meta" shortcut in mainmenu/fancymenu.
* Fixed a regression in reloading X11 taskbar.
* Fixed putting of same-class task buttons under Wayland.
* Handle errors and clean up the code of the volume plugin with Alsa.
* Capitalize plugin config titles.
* Don't use invalid value of `DesktopSwitchButton::LabelType` in `plugin-desktopswitch`.
* Don't use uninitialized variables/struct members in `plugin-fancymenu`, and initialize in the constructor.
* Initialize every member in the constructors of the panel, `plugin-sysstat` and `plugin-kbindicator`.
* Fixed a crash in worldclock popup on Wayland with Qt 6.8.0.
* Workaround for lack of context menu with Qt 6.8.0 in Fancy Menu.
* Prevent panel from accepting focus with some Wayland compositors.
* Workaround for translucency artifacts with Qt 6.8.0 on Wayland.
* Workaround for the lack of context menu with Qt 6.8.0 in Main Menu.
* Silenced compilation warning about `QCheckBox::stateChanged`.
lxqt-panel-2.0.1 / 2024-05-08
==============================
* Fixed a runtime failure in the plugin loader.
* Workaround for Removable Media plugin with a GLib-mounted encrypted volume.
lxqt-panel-2.0.0 / 2024-04-17
==============================
* Added Fancy Menu plugin.
* Removed spaces from saved settings of Custom Command plugin.
* Added the SVG format to the panel background picker dialog.
* Ported to Qt6.
* Added Wayland support for positioning the panel by using layer shell.
lxqt-panel-1.4.0 / 2023-11-05
==============================
* Use lxqt-menu-data instead of lxmenu-data.
* Consider the WM2Urgency hint in task bar.
* Fixed checking/clearing of urgency in task bar.
* Fixed window cycling with mouse wheel and focus stealing prevention in task bar.
* Removed unused non trivial variable from plugin-dom.
* Ported away from deprecated Qt::MidButton.
* Ported deprecated KWindowSystem methods to KX11Extras.
* Added a clear button to the search bar of Add Plugins dialog.
* Create dummy widget on unsupported platforms in desktop switch plugin (fixes crashing on Wayland).
* Added parameter parsing to launched command of volume plugin.
* Fixed the initial displayed volume with PulseAudio in volume plugin.
* Fixed the tooltips of volume control under Wayland.
* Added an option to show the output as an image in the custom command plugin.
lxqt-panel-1.3.0 / 2023-04-15
==============================
* Removed redundant classes from `VolumeButton` in volume plugin.
* Fixed typos.
* Added nullity check for quicklaunch placeholder.
* Fixed the seconds shown by the clock widget.
* Enable DOM plugin by default.
lxqt-panel-1.2.1 / 2023-01-02
==============================
* Fixed a regression in volume popup.
* Added Qeyes plugin.
* Avoid covering fullscreen windows.
lxqt-panel-1.2.0 / 2022-11-05
==============================
* Added context items to Quick Launch for reloading desktop entries.
* Set window flags of the volume popup explicitly (useful under Wayland).
* Fixed Quick Launch icons when there are multiple config files.
lxqt-panel-1.1.0 / 2022-04-15
==============================
* Updated `README.md`.
* Split panel config dialog into 3 sections.
* Modified default conf file.
* Prevented flickering of desktop switcher when only active button is shown.
* Close QProcess in the d-tor of CustomCommand.
* Show desktop names on taskbutton's context menu.
* Keep stat history on width change in sysstat (fixes the resetting of graph on auto-hiding panels).
* Close main menu on pressing its shortcut (the clash with the built-in shortcuts of the search entry is fixed).
* Made SNI proxy for xembed tray icons. Now the legacy tray icons are shown inside Status Notifier.
* Added lxqt-build-tools build dependency to README.
* Added options for button label and style of Directory Menu.
* Fixed Reset button in taskbar config dialog.
* Fixed Reset button in Status Notifier config dialog.
* Fix storing/restoring of settings in general.
lxqt-panel-1.0.0 / 2021-11-04
==============================
* Updated AUTHORS.
* Fixed the keypad navigation in main menu.
* Bumped minimum required Qt version to 5.15.
* Added Custom Command plugin.
* Added context menu and drag-and-drop support to search results of main menu.
* Consider icon names that end with a valid extension in Status Notifier.
* Don't check icon name with hasTheme() in Status Notifier.
* Prevent sliding of volume tooltip.
* Do not force Openbox configs under LXQt.
lxqt-panel-0.17.1 / 2021-04-16
==============================
* Fixed compilation against Qt < 5.15.
lxqt-panel-0.17.0 / 2021-04-15
==============================
* Fixed the popup of grouped task button in a special case.
* Code cleanup (using nullptr, removing deprecated headers/methods, using default member initializers, etc.).
* Fixed changing of world clock's time zone with mouse wheel.
* Optionally auto-hide panel only when it overlaps a window.
* Workaround for an issue with glibc 2.33 on old Docker engines.
* Completely move to Qt5 signal/slot syntax.
* Check pressed mouse buttons before closing grouped task popup.
lxqt-panel-0.16.1 / 2020-11-04
==============================
* Fixed compilation with Qt 5.12 and Qt 5.13.
lxqt-panel-0.16.0 / 2020-11-01
==============================
* Use a stylesheet for progress-bars of Sensors plugin.
* Implemented auto-hiding for Status Notifier.
* Added option to task button for moving the window to next monitor.
* Added option to place task buttons of new windows next to the existing ones of same class when task buttons are ungrouped.
* Removed incorrect and redundant explanation of milliseconds from World Clock.
* Don't call non-const member functions on temporaries.
* Prevent possible C++11 range loop container detachment.
* Fixed the sizes and alignments of some plugins at startup.
* Added right-click menu to main menu items.
* Address deprecation warnings/errors.
* Added XF86Eject button action.
lxqt-panel-0.15.1 / 2020-05-20
==============================
* Bumped version to 0.15.1.
* Fixed a problem in keyboard indicator flag, that might cause a huge amount of error messages.
* Let the panel be at virtual screen edges but not between screens.
lxqt-panel-0.15.0 / 2020-04-22
==============================
* Bumped version to 0.15.0.
* Fixed cut text in World Clock text.
* Silenced some compiler warnings.
* Show (the old) system tray icons in a predictable order and add a spacing between them.
* Made showing of the week number optional in World Clock.
* Fixed icons of applications like Skype, Doscord, etc. in Status Notifier.
* Fixed possible abort on assert in WindowNotifier.
* Don't include headers of plugins that aren't being built.
* Fetch window icons in an appropriate size to avoid scaling in task bar.
* Don't (possibly) block on initializing statusnotifier.
* Avoid char raw strings literals memory allocations.
* Don't use automatic string conversions.
* Override the menu icon size only if a custom font size is selected.
* Enhance service name registration in statusnotifier.
* Fixed a crash in LXQtTaskButton under kwin_wayland.
* Only show group popup on left clicking a grouping task button.
* Added the option "Show only active desktop" to Desktop Switcher.
* Better text eliding and painting of task buttons.
* Smoother menu search.
* Added an option to toggle volume notifications with keyboard.
* Made quicklaunch respect Panel's lock state.
* Added hints for Ctrl+DND to Quick Launch.
* Cleanup and fixes for the taksbar code.
* Release mouse after task button DND (to prevent them from remaining pressed after being dragged).
* Reset panel style sheet before updating it (to update plugin handles with Qt ≥ 5.13 when panel orientation changes).
* Removed press-and-hold popup menu from launchers in Quick Launch.
* Check if panel is under mouse on auto-hiding.
* Removed QDesktopWidget from panel.
* Put panel only at an edge of virtual screen (to prevent it from being positioned at the middle of virtual screen).
* Set the geometry of panel before showing it (because, otherwise. some WMs might not position the panel correctly).
* Removed deprecated QImage method `byteCount()` and used `sizeInBytes()` instead.
* Remove deprecated `trUtf8()` and used `tr()` instead.
* Fixd eventFilter() logic in kbindicator.
* Set alignment for layout button in kbindicator.
* Add basic support for country flags to Keyboard status indicator.
* Fixed high CPU usage of Desktop Switcher.
* Added an option to Task Manager for moving window with mouse wheel.
* Added a plugin to change display backlight.
lxqt-panel-0.14.1 / 2019-02-25
==============================
* Bumped version to 0.14.1
* Only translations was changed.
lxqt-panel-0.14.0 / 2019-01-25
==============================
* New implemented: plugin-spacer: Add auto-expansion feature
* Deprecated plugin-clock finally removed
* Implementation fixed:
- plugin-colorpicker: Removed content margins and reduce spacing
- plugin-mainmenu: Also include exec name in filtering without menu-cache
- plugin-mount: Store device names to show them upon remove
- plugin-panel: Optional overriding of icon theme for panels
- plugin-panel: Allow plugin's "static" configuration change
- plugin-spacer: Change type of mExpandable
- plugin-spacer: Use QStringLiteral whenever possible
- plugin-spacer: Add "override" to declarations
- plugin-volume: Do not auto-unmute on volume change
- plugin-worldclock: Don't use enum for bool parameter
- plugin-worldclock: Set manual format dialog title
* Improved cmake scripting
- plugin-tray: Use XCOMPOSITE_LDFLAGS instead of XCOMPOSITE_LIBRARIES
- Set cmake_minimum_required to 3.1.0
- Use lxqt-build-tools and -compilersettings
- Removed locale compile definitions
* Moved translations from lxqt-l10n back to lxqt-panel
- Removed obsolete translation fuctionality
- Removed now obsolete and harmful panel/translations/.gitignore
- Added translation promo in README.md
* Translation updates
lxqt-panel-0.13.0 / 2018-05-21
==============================
* Remove spurious newline
* Remove spurious newline
* Spanish translation update
* mainmenu: Use new signal/slot connection notation
* lxqtmainmenuconfiguration.cpp: include QAction explicitly
* CMake: Prevent in-source builds
* Fix task button removal on class change
* plugin-kbindicator: Go directly to the Keyboard Layout config page
* Update XdgAction icons appropriately
* Introduce option USE_MENU_CACHE, default OFF
* fixed razor-qt -> lxqt and http -> https
* Fixed mentions of LXDE
* mainmenu: Don't use "fallback" QIcon::fromTheme
* mainmenu: Use the QIcon::fromTheme()
* Set the initial task button text (and icon) correctly (#454)
* Update Simplified Chinese translations (#456)
* Fix worldclock in panel.conf
* Move and Resize items in task-button context menu
* Drop missed foreach
* Prevent possible container detachments
* Drop Qt foreach
* avoid infinite recursion when no icon available.
* pavucontrol should be pavucontrol-qt
* cpuload: Do proper cleanup
* cmake: Handle CMP0071
* taskbar: Avoid conditionals on uninitialized values
* mount: Fix leak
* mainmenu: Fix possible leaks in menu-cache usage
* move panel config to /usr/share/lxqt
* lxqtpanel: Fix wrongly positioned popups
* ixlqtpanel: Fix typo Gometry -> Geometry
* plugin-volume: Use a specific icon for the panel
* Use the new FindXKBCommon CMake module
* plugin-volume: Add % to value for notification
* worldclock: Fix widget size updating (#438)
* Fix stupid whitespace.
lxqt-panel-0.12.0 / 2017-10-21
==============================
* Release 0.12.0: Update changelog
* Set patch version
* quicklaunch: Show popup menu aligned to clicked button
* quicklaunch: Add "Desktop Action" support
* l10n: Update Polish translation
* Fix Danish spelling
* plugin-tray: Fix dupe icon display error
* Don't export github templates
* Use worldclock by default instead of clock.
* clock: Show deprecation message on startup/add
* Fix clock text update
* Avoid calling text() in MatchAction on a QAction == 0
* volume: Do check for OSS availability in run-time
* Update Polish .desktop entry
* Remove space from end of "Show popup on mouse hover " string
* Updated Lithuanian translation
* Add/update Lithuanian translation
* Update directorymenu_it.desktop
* mainmenu: Don't hold the references for menu-cache
* mainmenu: Fix menu-cache usage
* set Qt::AA_UseHighDpiPixmaps to true
* l10n: Updated Polish translation
* Improved lxqt-panel version display
* Added default CMAKE_BUILD_TYPE and LXQT_PANEL_PATCH_VERSION
* plugins: Make widgets/buttons use whole space
* LXQtPanelLayout: Honor item's expanding size policy
* mainmenu: Install eventFiler for all (sub)menus
* volume: Add all changes notifications (configurable)
* Fixes a FTBFS in superbuild mode
* Added merged autostart and menu to CMakeLists.txt
* Updated *_da.desktop files and removed *_da_DK.desktop files
* translation: Add Portuguese directories
* Update desktop entries and Replace fr_FR by fr
* Merge pull request #45 from lxde/menu-comment
* lxqt-applications.menu: remove accidentally added topics from "System Tools"
* Update Greek translation (el) Remove country variant from language code
* Rename LxQt to LXQt everywhere
* CMake: Adds Runtime and Devel install COMPONENTs
* Coding style changes
* Adds double quotes to everything that may break
* Use GNUINnstallDirs
* Updates the build system to use the Targets infrastructure
* Place LXQt About over Preferences in the main menu
* Added italian translation in menu
* Added german translation for the settings directory.
* Drops hardcoded /etc/xdg paths
* menu: hungarian translations added
* Add Russian translation
* Restore the old preferences menu layout of razor-qt.
* Updated german translation, replaced Qt4 by Qt in all xsession/translations
* add lxqt-leave directory files
* use LXQt-specific menu file
* Updates translations infrastructure
* Update the required minimum cmake version
* remove dead template lines switch OnlyShowIn from Razor -> LXQt stringchanges LxQt -> LXQt
* Support lxqt-session and add necessary xdg autostart desktop entry files.
* Fit the task group to its contents
* mainmenu: Add "true" translucency support
* Show "unknown" when an icon is missing
* volume: Force step for wheel over popup slider
* volume: Always show tooltip over button
* volume: Force configured step for wheel over button
* volume: Use "override" keyword
* Enable translucency for taskbar group popup
* tray: Move tray icon window into correct place
* taskbar: Elide texts of buttons when needed
* volume: Fix calculating of alsa volume
* volume: Remove duplicated code
* volume: Fix reporting of pulse volume
* sysstat: Fix saving of network maximum speed
* mainmenu: Redesign config dialog
* mainmenu: Clear search upon show (configurable)
* plugin-kbindicator: Undef the "explicit" workaround
* plugin-sysstat: Avoid "set but unused var" warning
* panel: Make space reserve on display configurable
* panel: Add wrong logic warning
* panel: Hide correctly upon the DragLeave
* plugin-mount: Fix firing the actions
* plugin-mount: Notify just on "real" add/remove
* plugin: Save settings before signal connect
* taskbar: Add Meta+1..9 shortcuts to raise windows
* Bump year
lxqt-panel-0.11.1 / 2017-01-01
==============================
* Release 0.11.1: Update changelog
* Show Auto-Hiding Panels with Delay (#387)
* Enabling testing on weston (#380)
* Update *da.desktop files
* plugin-showdesktop: Cleanup left behind XCB artifacts
* plugin-kbindicator: Use FindXCB CMake module
* plugin-tray: Use the FindXCB CMake module
* Use the new lxqt-build-tools CMake modules (FindMenuCache)
* plugin-desktopswitch: Add LABEL_TYPE_NONE
* Add/Update Portuguese translations
* taskbar: Add "cycle on wheel" configuration
* taskbar: Forward wheelEvent
* Add/Update french desktop entries
* taskbar: Set toolButtonStyle for popup correctly
* Fix faulty link in README.md
* Remove arbitrary limit of taskbar button width
* Remove cpack (#371)
lxqt-panel-0.11.0 / 2016-09-24
==============================
* Release 0.11.0: Add changelog
* Update README.md: Reflect changes introduced in 1c22479
* CMakeLists: Fail for unmet dependencies
* mainmenu: Remove setting base style in StyleChange
* mainmenu: Workaround transparent search
* mainmenu: Dispose old menu first when building new
* Add README.md
* sensors: Add default bar scale
* sensors: Check for existence of the max value
* sensors: Add minor code optimization
* mainmenu: Handle QAction disposal correctly
* panel: Don't use autoFillBackground
* Plugin: Fix FTBFS for older Qt versions
* mainmenu: Fix show/hide actions after menu rebuild
* Statusnotifier: Remove setParent on StatusNotifierMenu.
* Add XKB_COMMON_X11_INCLUDE_DIRS
* panel: Remove/deprecate plugin-screensaver (#363)
* Add and Update Arabic Translations for Desktop Files
* Fix updating panel geometry on screen size change
* panel: Fix screen number config change saving
* Separate a String for I18N Enhancement
* plugin: Force config dialog activation/raise
* plugin: Fix crossreferencing of config dialogs
* panel: Dispose unneeded menu
* panel: Destroy panel's config dialog
* showPopupMenu: Remove extraneous setParent() call (#359)
* statusnotifier: fix popup position on right click
* desktopswitch: Take layoutDirection into account
* taskbar: Remove orientation specific logic for DnD
* LXQtPanelLayout: Take layoutDirection into account
* taskbar: Remove forgotten debug
* taskbar: Consider layoutDirection for DnD
* panel: Optimize search a bit
* plugin-volume: Avoid an buffer overflow
* Respect the OnlyShowIn property for menu entries when using menu-cache (#351)
* kbindicator-plugin: fix linking with libxcb-1.12
* plugin-volume: Handle errors when trying to determine the next card
* Clean up CMakeLists.txt
* plugin/directorymenu: Removes no use code (#350)
* build: Forward translations parameters
* ts-files removal (#346)
* Fix memory leaks
* Use const references with the foreach iterator
* Small fix
* statusnotifier: Fix showing icons in menu
* kbindicator: (Re)Add .desktop translations
* Update desktopswitchconfiguration.ui
* panel: (Re)Add translations dir
* Revert unintended *.desktop files removal
* Remove translations (can be pulled in build time)
* Use external translations
* Update lxqt-panel_it.ts
* Add documentation/comments for PanelPluginsModel.
* Fix segfault on plugin initialization (#338)
* translations: updated german translation (#323)
* plugin-mainmenu: update mainmenu_it.ts (#337)
* Russian translation update
* mainmenu: Use style sheet to override icon
* plugins: Change "repolish" logic
* mainmenu: Reduce delay of popup when using shortcut
* volume: Remove debug
* plugins: Don't unload -> avoid dangling resources
* Added new translated strings.
* Added missing context for lupdate.
* Updated german translation.
* Ask for confirmation when removing a panel
* panel: Add "Lock Panel" functionality
* fix updating panel geometry on screen changes
* Try find a free position when adding a new panel
* LXQtPanelApplication: Use D-Pointers
* Animate auto-hiding panels.
* Add QT_USE_QSTRINGBUILDER to the compile definitions
* tray: Fix SEGFAULT on stop
* mainmenu: Fix visual search problems
* mainmenu: Remove duplicates from search
* mainmenu: Add new configuration options for search
* mainmenu: Workadound QLineEdit's wakups(QTBUG-52021)
* mainmenu: Add configurable way of search
* taskbar: separate adding from changing windows
* plugins: Make buttons flat for cleaner look
* mainmenu: Fix search interacion
* mainmenu: Add search/hide possibility
* taskbar: Add show icon by WindowClass to config
* taskbar: Use icon from theme (based on windowClass)
* panellayout: Do not allow oversized plugins
* panellayout: Avoid plugin margins
* PluginSettings: Make settings object/class public
* Bump year Fix licenses: lxqt-panel is pure LGPL
* worldclock: Fix possible SEGFAULT
* Add comments for ILXQtPanel and LXQtPanel.
* plugin-taskbar: fix German translation of configuration dialogue
* panel: Correct PanelPluginsModel logic
* volume: Avoid infinite cycle in config dialog
* plugins: Use "cleaner" style logic
* mainmenu: Remove unneeded includes
* mainmenu: Fix freeze for some widget styles (e.g. breeze)
* tray: Fix "BadDamage" warning message
* tray: Postpone tray icon initialization
* PluginSettings: Emit settingsChanged only for owned keys
* taskbar: Fix (auto)hide after window menu is shown
* mainmenu: Use directory of current icon for search
* mainmenu: Fix showing icon path in configuration
* plugin-taskbar: avoid icon-only style for groups
* statusnotifier: fix position of context menus
* plugin-quicklaunch: remove preset applications
* plugin-tray: Fix native window sizes for high DPI devices
* taskbar: Refactor/improove window handling logic
* taskbar: Fix multiple groups when WindowClass changes
* plugin settings: Publish PluginSettings symbols
* Add support for nested groups in PluginSettings
* Add PluginSettings::{read,set}Array for atomicity
* Add PluginSettings for shared settings for plugins
* plugins config: remove a lot of redundant code
* LXQtPanelPluginConfigDialog: add ctor overload
* Update lxqt-panel_fr_FR.ts
* Create HR translations for panel and plugins
* lxqt-panel: Update/format and install man page
* plugin-kbindicator: remove ru_RU translations
* plugin-kbindicator: add russian translations
* Update Russian translations for the panel and plugins
* Italian translation update
* Updated german translation.
* Adds comments for lxqtpanelapplication.h.
* Correct some minor spelling mistakes.
* panel-config: Fix background opacity slider
* taskbar: Avoid "noop" button if window ID changes
* mainmenu: Fix URL assembly for Drag&Drop
* panel: Fill background
* mainmenu: Use configurable icon
* worldclock: Fix update interval
* panel: Add periodic hide checking
* clock: Fix content update if transform/autorotate
* quicklaunch: Fix panel hiding upon showing menu
* worldclock: Decrease (unnecessary) wake-ups
* panel: Remove periodic checking for hide
* Prevent panel hiding in case any (standalone) window shown
* plugins: Unify window popup-ing
* directorymenu: Fix indentation (spaces)
* panel: Use override for overridden virt func
* hu translations fixed
* plugin-sysstat: translations fix
* desktop-switch: Highlight only windows in taskbar
* fix misspelled prefered
lxqt-panel-0.10.0 / 2015-10-31
==============================
* Fix license file
* panel: Fix reserved space on screen
* mainmenu: Fix close menu by "weird" shortcut
* volume: Handle add/removal of pulse sink correctly
* Workaround to the QStringLiteral static finalization bug
* plugin-mount: Fix SEGFAULT in finalization time
* mainmenu: Fix global shortcut configuration
* taskbar: Enhance show icon for moving
* taskbar: Fix incorrect move between multiple instances
* taskbar: Simplify drag originator logic
* Fix a couple of warnings
* Make panel's settings private for more reliability
* Fix warning about possibly uninitialized variable
* taskbar: Use the icon as the DnD pixmap
* taskbar: Add visual effect to button move
* worldclock: Fix popup showing after closed
* plugins: Unify popups behaviour
* taskbar: Fix showing group popup for DnD
* taskbar: Enhance moving buttons
* CPU count begins with 0 not with 1.
* Updated german translation.
* Added missing cpu10, updated translation template.
* Added some translateable strings, tooltips.
* plugin-statusnotifier: corrected CMakeLists.txt
* panel: referencing symbol in static plugins to not stip the loader object in linking time
* Use "automatic" plugin translations loader
* addplugindialog: show also the plugin ID (desktop file name)
* Optimization on plugin name generation, as suggested by palinek.
* Fix #839 - lxqt-panel plugins enumeration
* Revert "plugin-statusnotifier: fix FTBFS with dbusmenu-qt"
* panel: remember configured screen
* plugin-statusnotifier: fix FTBFS with dbusmenu-qt
* plugin-statusnotifier: better callable checking for static_assert
* plugin-statusnotifier: polish of SniAsync::propertyGetAsync usage
* Replace QPixmap::grabWindow with QScreen's version
* plugin-statusnotifier: add missing license headers
* plugin-statusnotifier: get all icons from DBus
* plugin-statusnotifier: async communication in DBus
* plugin-statusnotifier: postpone registration of new item to not block DBus response
* plugin-statusnotifier: correct memory release & existing menu check (avoid SEGFAULT)
* Transition LxQt --> LXQt: remnants in TS files
* Italian translation: remove country-specific translation "_IT", several updates
* Rename LxQt to LXQt everywhere
* Update Greek translation Remove country variant from language code
* license text don't match license declaration
* license headers for kbindicator plugin
* plugin-mainmenu: set icon size according to font size
* plugin-mainmenu: removed unused QProxyStyle object
* plugin-statusnotifier: fix popup position on
* Redesigned settings dialog, switching policy set as global by default
* Update Russian translation
* Removed unneeded entries from include_directories()
* Use CMAKE_AUTORCC. Drop qt5_add_resources().
* Use CMAKE_AUTOUIC. Drop qt5_wrap_ui().
* Prefer list(APPEND ...) over set(....)
* panel: QMenu positioning workaround for multihead/multipanel setup
* plugin-sysstat: fix for source strings translation
* plugin-sysstat: translatable type/source strings
* plugin-sysstat: enhanced tooltip texts
* plugin-sysstat: correct configuration displaying/changing
* plugin-spacer: configuration UI load fix
* Removes ancient QT_USE_XXXX variables
* Use find_package() to find libdbusmenu-qt5
* plugin-sysstat: added tooltip information
* minor fix in German translation of plugin-kbindicator
* Re-added german translation.
* Updated translation template for tooltips.
* Updated german translation.
* Add placeholders to fr translation
* Add french translation
* Remove faulty lithuanian translation
* Complete dutch translation
* Fix romanian translation
* Remove country specific Italian
* Complete italian translation
* Update hungarian translation
* Remove faulty lithaunian
* Update slovenian
* Delete incomplete arabian translations
* Update romanian translations for the desktopswitch plugin
* Update romanian translations for the cpuload plugin
* Update romanian desktop file for the cpuload plugin
* Update romanian translations for the clock plugin
* Update romanian translation for the clock desktop file
* Update romanian translations for the main panel ui
* Add missing romanian translation for the network monitor
* Update romanian translations for the network monitor desktop file
* panel: fix reserved space
* autohide: correctly reserve screen space, always.
* autohide: change only apparent height/width,
* panel-configplugins: Adds tooltips
* kbindicator: depend on xkbcommon & show lang flag
* application: use standard liblxqt unix signal handling to quit
* plugin-showdesktop: remove xcb dependency, use KF5
* Use KWindowSystem to set window type as Dock
* plugin-taskbar: Enhances Configuration Ui layout
* Updates the build system to use the Targets infrastructure
* plugin-clock: static width based on characters count
* Finish networkmonitor turkish translation
* addplugindialog: prevent segfault on dialog opening
* plugins: new flag to set the need for a flag
* plugin-mainmenu: applying custom font size on the fly
* Added missing german translation, updated template.
* fixes in French and German translation
* plugin-spacer: simplified configuration signal handling
* plugin-mount: avoid realign-resize recursion
* Remove trailing whitespaces
* Replace LXDE-Qt with LXQt in desktop file
* Fix naming and links
* Delete faulty indonesian translation
* Rename greek and french translation file to be country independent
* Delete duplicate russian translation
* Delete duplicate hungary translation
* Delete duplicate danks files
* Delete czech country specific files
* Add polish translation
* Moved croatian translations to the correct directories.
* Updated german translations for the taskbar plugin.
* Added german translation for the spacer plugin.
* Updated german translations for the showdesktop plugin.
* Updated german translations for the sensors plugin.
* Delete Venezuela specific translations
* Correct dutch translations for networkmonitor desktop file
* Improved network monitor Spanish translations
* Provide esperanto translation for networkmonitor
* Correct translation for esperanto desktop file
* Add turkish translation
* Fix lxde/lxqt#684: activate window on some options
* plugins: unified handling for single instance plugins across all panels
* plugins: flag to limit plugins to single instances
* plugin-volume: handle maximum volume proportionally
* plugin-clock: calculate min widget size
* panel: retest conditions for autohide regularly after Leave event
* Updated / unified german translation for taskbar plugin.
* Added german translation for sysstat plugin.
* Added german translation for statusnotifier.
* Updated template by removing old file and trigger an update.
* Updated german translation for the screensaver plugin.
* Updated german translation for the quicklaunch plugin.
* Updated german translation for the networkmonitor plugin.
* Updated german translation for mainmenu plugin.
* Updated template for mount plugin.
* Updated german translation for mount plugin.
* Added german translation for kbindicator plugin.
* Added german translation for DOM.
* Moved croatian translation to correct directory.
* Updated german translation for directorymenu.
* Updated german translation.
* Updated german translation for cpuload plugin.
* Updated german translation for colorpicker plugin.
* Cleaned german desktop file for tray plugin.
* Updated german translation for volume plugin.
* Added german translation for worldclock plugin.
* plugin-clock: adjust size only when needed
* plugin-taskbar: show only particular desktop windows
* panel: only for supported objects the iconSize qproperty styling is applied
* plugin-sensors: (re)added warning timer frequency initialization
* plugin-tray/statusnotifier: icon in .desktop file
* plugin-desktopswitch: Check if the button exists dereferencing it.
* plugin-volume: more obvious popup buttons
* plugin-spacer: slovak translation
* plugin-spacer: translatable type texts
* Updated german translation for clock plugin.
* Added new string to template and german translation.
* plugin-clock: use Qt::PreciseTimer for better accuracy
* panelconfig: default background opacity to 100 & compositing note
* plugin-clock: content down-scaling & proper size adjustments after config change
* Updated german translation, removed now obsolete _de_DE.ts.
* Updated template, sorted line numbers and contexts - like created from scratch by 'lupdate'.
* Better name for dialog window.
* pluginsmodel: fix crash in QAbstractItemModel::endMoveRows for noop move
* plugin-mainmenu: config: editable menu file & button icon
* panel: improve multi-monitor support
* Create networkmonitor_hr.ts
* Create mount_hr.ts
* Create mainmenu_hr.ts
* Create kbindicator_hr.ts
* Create directorymenu_hr.ts
* Create desktopswitch_hr.ts
* Create cpuload_hr.ts
* Hungarian translations added, modified
* plugin-mainmenu: fix crash on changing menu file
* Fixes lxde/lxqt#647, FTBFS
* Update networkmonitor_it.desktop
* Update networkmonitor_it_IT.desktop
* Update networkmonitor_it_IT.desktop
* Update networkmonitor_it.desktop
* Update networkmonitor_it_IT.desktop
* Update networkmonitor_it.desktop
* plugin-networkmonitor: fix faulty French translation
* Fix German translation of panel context menu (addendum).
* Fix German translation of panel context menu.
* panelconfig: improve title and labels
* Update lxqt-panel_es.ts
* panelconfig: fixed type in "cannot reset" note
* Make "spacer" a static plugin.
* panelconfig: no margin for plugins configuration widget
* plugin-mount: popup size handling upon show event
* plugin-mount: startup speedup (potential long time operation is done after object construction)
* plugin-mount: correct popup size handling
* plugin-taskbar: reverting commit b0a1f3d007c2369fdf624f406aa36b883c72fd5f
* panel: fix volume's type in the default config
* panel: save settings after plugin move from config dialog
* panel: plugins correct positioning
* panelconfig: corrected usage of Plugin in button states logic
* CMakeLists: re-enable default building state for plugins
* panel: PanelPluginsModel signals handled directly by layout
* Enable/disable buttons in Manage Plugins dialog
* panel: subclass QAbstractListModel to handle plugins
* panel: separate GUI of panel settings from plugin
* CMakeLists: fix translation loader include (usage of lxqt_app_translation_loader)
* plugin-taskbar: don't stretch along the panel in icon only
* plugin-taskbar: raise minimized windows on current desktop
* plugin-taskbar: show only minimized windows
* plugin-taskbar: fix for show/hide of moved window if "show only panel's screen windows" active
* plugin-taskbar: fix of crash after closing not showed window
* Update Russian translation
* Add QtCreator project file type to .gitignore
* plugin-mainmenu: fixed panel autohide after menu closed
* plugin-mount: remove of doubled signal connection
* plugin-mount: fix error message construction
* plugin-mount: add device actions back
* Fix FTBFS with Qt 5.3 and memory leak
* plugin-mount: typo for updating the status
* plugin-mount: large refactoring and simplification
* plugin-mount: improved state changes handling
* plugin-taskbar: integrated "current screen only" commit into current master - grouping
* Added show windows from current screen only
* panel: layout elements centering fix
* Refactoring of panel's main
* panel: fixed creation of translation files
* plugin-taskbar: left-aligned labels in case "Only Text"
* plugin-taskbar: initial popup button style fix
* plugin-taskbar: fix grouping popup follow icon/text style
* CMAKE_AUTOMOC=ON and cleanup of all CMakeLists.txt
* Improve panel's configuration dialog arrangement
* plugin-taskbar: configurable maximum button height
* panel: layout position optimization
* plugin-desktopswitch: urgency handling improvements
* plugin-desktopswitch: initial desktop renaming
* plugin-desktopswitch: set urgency for desktops
* plugin-taskbar: correct handling of SkipTaskbar state
* plugin-taskbar: moved handling of KWindowSystem::windowChanged into LxQtTaskBar
* plugin-taskbar: optimized window icon geometry handling
* plugin-taskbar: enhanced "is on current desktop" handling
* plugin-taskbar: fixed group vs. window class handling
* plugin-taskbar: "regroup" every time when visibility is refreshed
* plugin-statusnotifier: correctly place context menu
* plugin-statusnotifier: fix showing menu/icon showing
* plugin-taskbar: proprely handle window class name change
* Fix NetBSD build
* plugin-directorymenu: fixed directory choosing
* plugin-worldclock: use Qt::WindowModal dialogs to not "inactivate" panel
* panelconfig: correct dialog handling (avoid access to deleted object)
* plugins config: use Qt::WindowModal dialogs to not "inactivate" panel
* panelconfig: use Qt::WindowModal dialogs to not "inactivate" panel
* panel: make config dialog top-level window
* plugin-clock: removed unneeded adjusting size of widget to it's content
* plugin-worldclock: removed unneeded adjusting size of widget to it's content
* panel: show panel after launch if hidable
* plugin-taskbar: optimized calculation of popup position
* panel: widgets manageable from "add plugin dialog"
* Updates translations sources
* plugin-directorymenu: cleanup & icon
* new plugin - directorymenu
* Update mainmenu_it_IT.ts
* Updates translations sources
* panel: correct background of hidden panel
* lxqtpanellayout: respecting contentsMargins() value
* plugin-dom: enhanced properties output
* plugin-screensaver: proper shortcut regstration
* plugin-desktopswitch: proper shortcut regstration
* plugin-volume: proper shortcut regstration
* plugin-showdesktop: proper shortcut regstration
* plugin-desktopswitch: delayed registering shortcuts
* plugin-desktopswitch: refactoring & optimizations
* plugin-desktopswitch: Option to display names instead of numbers
* plugin-volume: avoid warning of hiding overloaded virtual function
* Create kbindicator_it.ts
* Update clock_it_IT.ts
* Update taskbar_it_IT.ts
* Update lxqt-panel_it_IT.ts
* Update lxqt-panel_it.ts
* Add required package xcb-util to plugin-tray
* plugin-spacer: reordered type - default now lined
* panel: auto-hide feature
* plugin-dom: non-stretchable heading
* plugins: static plugins initialization on one place
* plugins: const for ILxQtPanelPluginLibrary::instance
* plugin-mainmenu: if menu shown click on button closes menu
* plugin-clock: configurable first day of week
* panel: fix for multilplicating plugin counts when "Add Panel Widgets" shown and reactivated
* panel: conditional statically linked plugins
* plugin-volume: show perentage tooltip
* plugin-statusnotifier: standardize context menus
* plugin-taskbar: multiple fixes
* plugin-taskbar: large refactoring and cleanup
* plugin-taskbar: fixes for lxqttaskgroup and lxqtgrouppopup
* plugin-taskbar: refactor how we handle settings
* plugin-taskbar: removed eyecandy, re-sorted configuration item(s) and fixes
* plugin-taskbar: initial implementation of window grouping
* panel: added smart pointer guard to main (avoiding ad-hoc SEGFAULTs on application end)
* plugin-statusnotifier: workaround for invalid items
* plugin-statusnotifier: better icon handling
* Require C++11 support
* plugin-statusnotifier: added license to files headers
* plugin-statusnotifier: fix registration of StatusNotifierHost and protocol version
* plugin-statusnotifier: get some ideas from Plasma's
* panel: fix warning in findStaticPlugin
* plugin-statusnotifier: retrieve and cache the icons
* plugin-statusnotifier: handle Status and display correct icon
* plugin-statusnotifier: correctly handle mouse clicks
* plugin-dom: added all widget's properties view
* Added Status Notifier Plugin, from equim/lxqt-panel-plugin-snw
* plugin-dom: added all widget's properties view
* Adds a threshold which a user has to pass when scrolling on the desktopswitch plugin for the lxqt-panel. This makes scrolling less sensitive and more usable.
* Quit gracefully on Unix kill signals
* plugin-mount: Use drive-removable-media icon as fallback
* plugin-spacer: support for stylable spaces
* plugin-mount: Use only one icon instead a list of possible ones
* added support for setting desktoplayout
* plugin-desktopswitch: configurable number of rows
* plugin-networkmonitor: fixed Czech translation
* Fixes #473, mouse wheel on DesktopSwitch not functioning properly.
* plugin-mainmenu: fix for not showing menu for next added widget
* plugin-mainmenu: avoid menu loading if menu file not changed
* panel: connected cleanup to signal aboutToQuit
* Style/headers cleanups in Sensors plugin
* Updated polish translations
* Add support for "local" timezone. Fixes lxde/lxqt#519
* Simplify update timeout. Fixes lxde/lxqt#525
* plugin-mount: switch from liblxqt-mount to KF5Solid
* Style cleanups in ColorPicker, DOM, Mount and QuickLaunch plugins
* added separate list of configured plugins to not delete them from configuration in case plugin not found
* Fixing drag and drop of running programs' icons when panel is vertical
* plugin-spacer: suitable icon?!
* new spacer plugin/widget
* plugin-cpuload: configurable bar width
* plugin-cpuload: indentation corrected to follow required coding style
* Add some debug code to benchmark the loading time of each plugin during panel startup.
* Make some frequently used plugins "statically-linked" to speed up loading. * The static plugins are: clock, desktopswitch, mainmenu, quicklaunch, showdesktop, taskbar, tray, and worldclock.
* Add missing libxcb linkage to showdesktop and tray plugins since they still uses xcb.
* remove KF5/ prefix from includes as done in lxde/liblxqt/pull/36
lxqt-panel-0.9.0 / 2015-02-05
=============================
* Change the delay of main menu popup from 500 ms to 250 ms.
* Try to fix lxde/lxqt#459, lxde/lxqt##142, and lxde/lxqt#401 at the same time. * Delay showing the menu when it's activated by shortcut key to workaround keyboard focus related issues. * Code cleanup. Remove unnecessary keyboard event hacks.
* Revert "Fix mainmenu's focus"
* Add icons to the panel plugins
* Add missing action icons to the panel popup menu
* fix networkmonitor_de_DE.desktop for the time being
* Fix mainmenu's focus
* Update Russian translation
* remove specialized leave-menu handling
* Remove teatime plugin
* Portuguese update
* Update Japanese translation
* Add #TRANSLATIONS_DIR to colorpicker.desktop.
* Fix dom.desktop.in (LXDE-Qt to LXQt)
* Update all translations
* Make sure widgets in settings dialog have correct enabled state when settings are loaded
* Remove a translation message that gotten mixed accidentally
* Update spanish translation
* worldclock: Fix Ui date settings load inconsistency
* Removes ${PLUGIN_DIR} duplicate definition
* Include the BuildPlugin one time only
* Fixes CMake CMP0038 warnings
* Makes the Show Desktop shortcut work again
* Remove plugin settings from panel settings file when plugin is removed
* Portuguese language update
* Rename some text. See lxde/lxqt#416
* Cleanup of CMakes, using GNUInstallDirs now
* Updates translations sources
* Unify plugin files naming
* Support custom time zone names (as per request in https://github.com/lxde/lxqt/issues/312#issuecomment-68588776 )
* Rewrite worldclock's configuration
* - Reverse wrong placed translations.
* - Update brazilian portuguese desktop translation
* Toggle lock keys' state on click on keyboard indicator
* Use xcb on Show Desktop plugin. This is related to lxde/lxqt#338
* Add QX11Extras to cmake include dir
* - Unify naming for a unique lxqt. No more suffixes
* Network Monitor plugin: fix faulty German translation
* Use XdgDesktopFile::load()
* Revert "Commit from LXDE Pootle server by user LStranger.: 391 of 391 strings translated (0 need review)."
* Commit from LXDE Pootle server by user vgezer.: 320 of 320 strings translated (0 need review).
* Update Russian translation
* Commit from LXDE Pootle server by user LStranger.: 391 of 391 strings translated (0 need review).
* Add keyboard navigation to main menu
* Reorganization of mainmenu's configuration panel
* Fixes lxde/lxqt#318 configurable font size in mainmenu
* Commit from LXDE Pootle server by user flywheel.: 262 of 264 strings translated (2 need review).
* Update taskbar buttons' icons on event
* Add KDevelop project file type to .gitignore
* Commit from LXDE Pootle server by user DanWin.: 305 of 305 strings translated (0 need review).
* Commit from LXDE Pootle server by user DanWin.: 294 of 305 strings translated (0 need review).
* Plugin name fixed. Fixes #382
* Update Russian translation
* Sort plugins alphabetically, remove non-existing plugin-helloworld
* Add time-only formats, improve popup in plugin-worldclock
* Cancel widget move on panel with esc
* Get rid of Xlib on the keyboard indicator
* Fix draggind action from main menu
* Fixes translations generation
* Moves translations from the local to the translations dir
* Uses the new translations cmake modules
* Renames the translations source files
* Reorganize panel configuration dialog
* Make the lxqtmount-qt5 required only when building the mount plugin.
* Custom font color handling. Fixes #101.
* Panel background configuration
* Commit from LXDE Pootle server by user H.Humpel.: 124 of 305 strings translated (0 need review).
* Reset statistics widget only when size changes. Fixes lxde/lxde-qt#353
* Relax limits on size and update frequency
* Set the systray plugin free form liblxqt's XfitMan
* Fix segfault on i3 when changing workspaces. Fixes lxde/lxde-qt#240
* Commit from LXDE Pootle server by user rago1975.: 65 of 65 strings translated (0 need review).
* Fixes an FTBFS on openSuse
* Commit from LXDE Pootle server by user JSonic.: 391 of 391 strings translated (0 need review).
* Commit from LXDE Pootle server by user rago1975.: 10 of 10 strings translated (0 need review).
* Commit from LXDE Pootle server by user rago1975.: 24 of 24 strings translated (0 need review).
* Commit from LXDE Pootle server by user rago1975.: 21 of 25 strings translated (0 need review).
* Commit from LXDE Pootle server by user rago1975.: 57 of 57 strings translated (0 need review).
* Commit from LXDE Pootle server by user rago1975.: 39 of 39 strings translated (0 need review).
* Commit from LXDE Pootle server by user KlemenKosir.: 360 of 356 strings translated (0 need review).
* Fixes translations not being loaded.
* Fixes lxde/lxde-qt#325. Drop .desktop files on quicklaunch
* Update Russian translation
* Fix taskbar window filter
* Reset calendar's selected date when showing. Fixes lxde/lxde-qt#322
* worldclock: get rid of ICU
* CMakeLists.txt cleanup
* Commented line that was causing high CPU and memory usage
* Port to KWindowSystem. Purges Qt4.
* Commit from LXDE Pootle server by user H.Humpel.: 78 of 305 strings translated (0 need review).
* Popup the configuration dialog when the user adds a panel
* Commit from LXDE Pootle server by user Pjotr.: 356 of 356 strings translated (0 need review).
* Commit from LXDE Pootle server by user KlemenKosir.: 285 of 356 strings translated (0 need review).
lxqt-panel-0.8.0 / 2014-10-09
=============================
* Load the plugins translations
* Adapt to the translation infrastructure
* Fix plugin title in context menu
* Allow opening more than one plugin configuration panel. Fixes lxde/lxde-qt#60
* Make Removable Media's panel be closable with ESC. Fixes lxde/lxde-qt#126
* Needed for lxde/lxde-qt#140 and #54
* Make version detection work with Qt4
* Fixes bug that resets panel configuration on panel deletion
* Make calendar dialog hide when it loses focus
* Fix scroll order after drag and drop
* Use Qt5.2+ for WorldClock plugin instead of ICU4.2+ if possible
* Prevent infinite repainting
* Keep layout direction linked to rotation
* Update copyright info
* Fix lxde/lxde-qt#61
* Fix iterator type
* Fix lxde/lxde-qt#279
* Avoid using XdgDesktopFileCache which loads the whole cache just to get info for several files. This can speed up startup of lxqt-panel.
* Adapts to the new libqtxdg XdgMimeType class
* Removes "Set from theme" panel size button
* Commit from LXDE Pootle server by user dforsi.: 57 of 57 strings translated (0 need review).
* Commit from LXDE Pootle server by user psokol.: 16 of 32 strings translated (0 need review).
* Fix incorrect handling of work area and WM_STRUT which cause incorrect popup menu places.
* Workaround for Qt 5 bug #40681 by monitoring QScreen::destroyed() and re-create affected panels manually. * This closes lxde/lxde-qt bug #204, #205, and #206 at the same time. * Store the result of QX11Info::display() and avoid repeated calls to the methods. (When called during the primary screen being destroyed, QX11Info::display() crashes.)
* Force re-creation of the panel window when screen count is changed to workaround Qt bug 40681. * Fix lxde/lxde-qt bug #204, #205, and fix incorrect WM_STRUT & WM_STRUT_PARTIAL X window properties.
* Use the edge of the whole screen instead of that of individual monitors when setting strut as specified in the xdg EWMH spec.
* Fix incorrect _NET_WM_STRUT settings under multi-head environment.
* Do not activate the panel on mouse click. This closes lxde/lxde-qt bug # 161.
* Replace Qt5 only API QWidget::grab() with QWidget::render() when compiled with Qt4.
* Always use percentage (0-100) for the volume of audio devices.
* Delete invalid slot.
* Taskbar buttons manual ordering
* Refactor lxqt taskbar plugin and made using more than 1 taskbar possible.
* Set proper default value for sysstat plugin to turn on cpu monitoring by default.
* Fix the bug that 100% volume cannot be used. * Make AudioDevice::setVolume() accept real volume rather than percent and make all backends consistent. * Set the maximal volume of the alsa devices to 100.
* Fix dropping an action from menu
* Remove repeated find_package() from CMakeLists.txt
* Return 0 for QStyle::SH_MenuBar_AltKeyNavigation style hint of mainmenu. With this, the menu won't be closed when the user press Alt key.
* Avoid duplicated ElidedButtonStyle instances to save some resources. Update the ElidedButtonStyle proxy style when its base style is changed.
* Implements Urgency Hint handling
* Apply the new QStyles correctly to the main menu when the style is changed.
* Fix bug #14: ilxqtpanel.h misses its dependency on lxqtpanelglobals.h.
* Add missing xcb packages to CMakeLists.txt.
* Try to fix lxde-qt bug #208: Volume applet slider closes immediately after touching. * Do not hide the volume popup when realign(). * Activate the popup window, and hide the popup when it's deactivated. * Fix the timeout handling in VolumeButton.
* Update the sink list in the config dialog of volume control plugin when changing audio engine.
* Fix the incorrect default value of audio backend of volume control plugin.
* Properly include sysstat directories
* Use portable SysStat headers
* Use portable LXQt header in .ui files too
* Look for the Qt5 version of SysStat when appropriate
* Set _NET_WM_WINDOW_TYPE_DOCK to the panel to workaround a bug in Qt5.
* Fix incorrect handling of xcb event, fixing tray plugin.
* Fix building kbindicator plugin with Qt5 and XCB (not fully working).
* Try to fix tray plugin.
* Fix taskbar plugin for Qt5.
* Add missing plugin metadata to make them loadable in Qt5.
* Qt5 fixes
* Prepare for Qt5
* Prepare the CMakeLists.txt files for building with Qt5.
* Make the "Mixer" link in volume plugin be themeable
* emit realigned () is now called always AFTER LxQtPanel::realign()
* Update quicklaunchaction.cpp
* Use the libqtxdg portable headers
* Make it work for vertical panels too
* Panel height handling
* Adapt to the new liblxqtmount portable headers
* Adds the liblxqtmount include dirs to the build system.
* Call for realign() when position is changed and a name fix for positionChanged()
* Remove unused btnClicked slot
* Use new LXQt header files.
* Update clock_pl_PL.ts
* Update lxqt-panel_pl_PL.ts
* Apply again patch for special meaning of negative size for panel
* Improve OSS backend of volume plugin and fix its configuration dialog.
* Add initial OSS support for the volume plugin
* Use the new libqtxdg environment neutral API
* Fix instantiation order
* Plugin wording fixes
* fixed version output and make it less verbose
* cmake option to build without menu-cache even if it is installed
* RGBA support for panel
lxqt-panel-0.7.0 / 2014-04-30
=============================
* Avoid mnemonics in the main application menu caused by & symbol in the name of the desktop apps.
lxqt-panel-0.6.99 / 2014-04-29
==============================
* Update AUTHORS and COPYING
* Add CPack rules for creating tarball
* Support libstatgrab 0.90
* Trivial fix
* Fix zh_TW translation for networkmonitor.
* Little fix for the previous commit
* Delay loading of menu icons when they are about to be shown.
* Delay the initiation of mount manager to speed up the startup of the mount plugin
* Fix incorrect signal/slot connections.
* Add a dirty hack to workaround bug #23 - Status icon for GTK3 applications present but not visible.
* Improve handling of app menu tooltips.
* Removed CMAKE_SOURCE_DIR usage from CMakeLists.txt
* Fix bug #11 - moc generation error
* Add missing lib linking for plugins.
* Properly export symbols needed by plugins.
* Include libsysstat cmake package correctly.
* Use gcc visibility to reduce unnecessary symbol exports
* Set NETWM icon geometry for task buttons while the panel is being resized or moved.
* Removed unneeded variable in realign
* Update NETWM icon geometry for task buttons. * Fix incorrect signal connection of ConfigPanelDialog::accept().
* Fix renaming bugs, replacing lxqt-qt with lxde-qt
* Finish the crazy razor=>lxqt renaming tasks.
* Create default panel on startup if panel/panels list in the config is empty.
* Fix #5 Wrong panel size sometimes (happens randomly)
* Fixed #6. Panel size fluctuated due to change in task buttons.
* Fix drag and drop of application menu items.
* Build main menu with libmenu-cache optionally to speed up loading greatly.
* Replace razormount with lxqtmount and close bug #4.
* Fix issue #1 by replacing razor includes with lxqt ones and use proper namespace.
* Replace links to librazorqt with ${LXQT_LIBRARIES}.
* Explicit namespace added to RotatedWidget class name
* ICU can be found by cmake now
* Fix incorrect header inclusion for lxqt-globalkeys-ui.
* Rename razor-panel to lxqt-panel and fix broken build. * Use the latest liblxqt and liblxqt-globalkeys.
* Empty taskbar collapses to zero size again - fixed
* New resizing algorithm, now we set iconSize.
* Delay when saving settings decreased to 3 seconds.
* Add COPYING and AUTHORS
* Fix for Issue #571 [try plugin]
* Fixed issue #645 "Panel plugins settings cleanup"
* QuckLaunch plugin. Placeholder takes all the available space, regardless of the number of rows of columns.
* Fix for Issue #571 [quicklaunch plugin]
* Add options for the razor-panel. Missing file
* Add options for the razor-panel -h, --help Show help about options --version Show version information -c, --configfile=CONFIGFILE Use alternate configuration file
* razor-desktop and razor-panel: Adds missing tr() to setWindowTitle()
* razorqt-panel/panel: Replace "Delete Panel" by "Remove Panel"
* razorqt-panel/panel: Use capitals for in menus and window titles
* razorqt-panel/panel: Renames "Add plugins ..." to "Add Panel Widgets"
* Removes hardcoded "Add plugin" window title
* razorqt-panel/panel: Save settings right after the close button clicked
* All spinboxes for panel config have step of 1
* Taskbar does not collapse when empty
* Some plugin alignments fixed
* Include polished
* Panel plugin popups unified and are QDialog based now
* Object renamed for easier theming
* KBIndicator plugin initialization delayed
* Correct tab set as default
* Typo fixed
* More verbose constants
* C includes fixed
* X11 Bool declaration conflict fixed
* No dependencies on STL
* Fix for issue #618
* Fix for issue #413
* Fix for Issue #531 This work for me in the OpenBox and KWin
* fixed #455 Panel->automatic height setting (sensors layouting)
* panel: add/remove panel in context menu. And it works.
* Simplified global key shortcut action names since all panels share the same config file.
* panel: single file config is used
* Better text (issue #583)
* Some improvements and optimizations in worldclock plugin
* Main menu has "reset shortcut" feature
* Unique panel & plugin identification
* Global shortcuts client library added and all support for it refactored and fixed.
* Crash on plugin removal fixed
* Memory leak fixed
* World clock has auto-rotation
* Rotated widget requires content
* Standard clock can be autorotated
* A better name for config variable
* Theme change makes properties update (issue #553 fix)
* potential solution for #553 - Cpuload: adjust text color with theme
* hotfix for hardcoded path in init - it's work in progress...
* Add pcmanfm-qt to quicklaunch (when it's installed)
* fixed #578: Please clarify/fix license in razorqt-panel/plugin-mount/mountbutton.* and menudiskitem.*
* panel: more panels in one executable. It allows to start more panels in a time
* initial implementation for #473 Highlight installed plugins. Now it needs to be "designed"
* fixed #561: Feature: drag and drop of local file (URL) in panel taskbar
* fix "shorcut" typo
* panel: set panel position when screen resizes (used eg. in virtualization)
* Fix typos
* Fix Issue #564 for the mainmenu plugin #564 "new panel: cfg "Line size" can be set to 10px but the value is not accepted"
* Rename Maximum button width to Prefer button width in the taskbar
* Fix Issue #564 for the mainmenu plugin #564 "new panel: cfg "Line size" can be set to 10px but the value is not accepted"
* Fix Issue #564 for non separate plugins #564 "new panel: cfg "Line size" can be set to 10px but the value is not accepted"
* Fix Issue #564 for the colorpicker #564 "new panel: cfg "Line size" can be set to 10px but the value is not accepted"
* Fix Issue #564 for the quicklaunch, set correct size for the placeHolder message #564 "new panel: cfg "Line size" can be set to 10px but the value is not accepted"
* Fix Issue #564 for the quicklaunch #564 "new panel: cfg "Line size" can be set to 10px but the value is not accepted"
* Fix Issues for the tray #564 "new panel: cfg "Line size" can be set to 10px but the value is not accepted"
* Fix for Issues #564 "new panel: cfg "Line size" can be set to 10px but the value is not accepted" #563 "new panel: vertical mode makes panel too lerge (width)"
* optimized panel calculations for icons only mode
* fix for taskbar's icon only view - autoreduce size expanding
* Don't use separate Layout for Placeholder in the QuickLaunch.
* Use separate Layout for Placeholder in the QuickLaunch.
* Show placeholder if QuickLaunch is empty.
* The DesktopSwitch buttons is strachable.
* Use RazorGridLayout in the DesktopSwitch plugin.
* Incorrect height for plugins on vert panel.
* Disable TeaTime plugin
* Improving the appearance of the mount popup - 2.
* Improving the appearance of the mount popup.
* The WorldClock plugin is separated
* New plugin Dom tree, usable for theme writers.
* Fix for "Set correct event_mask in the RazorTaskButton" breaks the button titles. https://github.com/Razor-qt/razor-qt/commit/c955007b951c7f4e35206a2f6e9d1911649bae10#commitcomment-2774274
* Kb indicator plugin simplified
* Fix: If you add several plugins at once, RazorPanel::findNewPluginSettingsGroup allocated one name at all new plugins.
* Removed panel HelloWorld plugin, you can use TeaTime as example plugin. Removed from razorqt-panel/CMakeLists.txt
* Removed panel HelloWorld plugin, you can use TeaTime as example plugin.
* The WorldClock plugin was ported
* The KbIndicator plugin was ported
* The SysStat plugin was ported
* The Sensors plugin: settings().value to mPlugin->settings()->value
* The Sensors plugin was ported
* The NetworkMonitor plugin was ported
* The CpuLoad plugin was ported
* The ColorPicker plugin was ported
* Remove garbage include directivies
* The ShowDesktop plugin was ported
* The ScreenSaver plugin was ported
* Set correct event_mask in the RazorTaskButton
* Refactored rezor-mount plugin, added DeviceAction classes.
* The RazorPanel::calculatePopupWindowPos function handles the situation when the window is out of the screen.
* The Mount plugin was ported
* The QuckLaunch plugin was ported
* Fixed #538 razor-panel: Restore (a minimized window) is not working while using Fluxb
* Network Monitor plugin: provide interface list in configuration
* Removed debug item from plugin menu
* The DesktopSwitch plugin was ported
* Now panel does not take ownership of the config dialog.
* The Volume plugin was ported
* Typo fixed
* Mainmenu: Use xfitman to force focus when menu raised via shortcut
* The Tray plugin was ported
* Fix plugins list was saved incorrectly
* Trivial fix for "sysstat/cpustat.hpp not found"
* Style follows the Coding Standard
* Main menu focus fixed if activated by hotkey
* Sysstat panel plugin: collapse when vertical panel is autosizing prevented
* RazorSysStat: fix build on ARM
* Update layout when plugin shows.
* Improved razorpanellayout and new razorgridlayout.
* Fix for division by zero exception.
* Layout for TaskBar
* Create a rows on panel only if it's necessary (exists some plugin on this row).
* New panel layout and many changes
* Improve icons handling.
* Clock panel plugin: update time once a minute if no seconds displayed
* SysStat: license updated & unused files removed
* Add strings to translate in volume plugin
* Quicklaunch: Don't stack buttons on small panels
* Panel WorldClock plugin: restart timer only if update interval is long
* Panel WorldClock plugin: Smarter timer interval handling
* plugin-clock: Don't try to get the firstDayofWeek from saved settings
* fixed #484 Ugly mount plugin appearance without any mountpoints present
* Panel Worldclock plugin: proper version dependency (issue #500)
* Fix various build falures
* Debug included back
* Panel: Duplicated line removed
* Remove ifdef nesting
* Panel Clock plugin: epic failure fixed
* Panel Clock plugin: comment with explanation added
* Panel Clock plugin: C++-style casting used, multilevel if/else changed to switch/case, conversion formula simplified.
* Panel Clock plugin: variable declarations moved to their usage places.
* Panel Clock plugin: C locale initialised only once
* Panel Clock plugin: Implementations reordered
* plugin-mount: Don't add devices that are not usable
* plugin-clock: Get locale LC_TIME from the environment
* plugin-clock: Add missing word to a comment
* plugin-clock: Check if _NL_TIME_WEEK_1STDAY exists
* plugin-clock: Add documentation to firstDayOfWeek()
* plugin-clock: Initialize variable at declaration.
* plugin-clock: Declare one variable per line
* plugin-clock: Use camelCase style for variables
* Add myself to the authors list
* plugin-clock: Fix first day of week auto-detection. Closes #489.
* plugin-clock: Use nl_langinfo() only if available
* WorldClock plugin: all timezones shown on middle click, styles updated
* WorldClock plugin: local timezone used if no timezones selected
* WorldClock plugin: Good default custom format set, synchroTimer removed, main timer sped up, popup calendar added with current day in a region supported
* WorldClock plugin: mouse wheel supported
* WorldClock plugin: main functionality works
* Active timezone support improved
* Time zones can be added to the main list
* Time zone list built from ICU
* Settings loaded and saved
* Config added
* Initial WorldClock plugin skeleton
* SysStat plugin: Custom colours are in separate dialog
* SysStat plugin: Colours and font are read from theme
* potential solution for #484 - to display text placeholder when there is no item connected
* Icon in the TeaTime plugin.
* Plugin emit SettingsChanged only if really changes present
* Fix build on older Qt
* Trtanslations
* Graph uses all available space
* Class variables renamed
* History preserved when possible in Sysstat plugin
* Painting refactored in sysstat plugin
* forced y-position clamping
* Transparent background & theme-able container added
* sysstat: a better fix for older Qt
* panel systat plugin: a potential fix for older Qts
* Handle QSS position property
* panel-volume: add compile time switch for ALSA/Pulseaudio support
* ClockPlugin was ported
* Added IRazorPanelPlugin::calculatePopupWindowPos(), improvements.
* Re-enable kbindicator plugin
* More natural logarithmic scale
* Control over logarithmic scale added
* Dependency on internal library fixed
* SysStat library and plugin
* Separator between the screens in the select panel position combobox
* Razor-panel: New plugin API
* preliminary manpages primary for razorqt and usefully in venenux
* Simplify code in the PowerManager
* Do not display non-urgent notifications in fallback mode
* Issue #460 fixed
* Style polishing
* Removed unnecessary copied code
* unused member removed, code style is up to Coding Standards
* mainmenu: position menu based on actual width of panel
* Simpler configuration dialogue
* Issue #426 addressed
* Clock plugin simplified: no more custom fonts
* More clear code
* Translations updated
* Translations updated
* first part of fixes based on Coverity Scan (code static analysis)
* Fixes notification in volume
* Font set correctly on theme change
* Custom font for clock plugin applied correctly
* Typos found during translation
* Panel Keyboard indicator plugin - Done
* Panel Keyboard indicator plugin - skeleton
* Translations
* Delete bad en_GB translations
* Update translations
* Fix various typos
* Fix menu for plugins with an ampersand
* Translations updated
* Removed line num from TS files.
* panel-volume: remove unused translation file
* panel-volume: Fix compilation issue when one of the AudioEngines not found
* panel-volume: Fix runtime AudioEngine if multiple are available
* panel-volume: Add logistics to change AudioEngine on runtime
* Translations
* Deleted old translation methods.
* Translations for librazorqt
* panel volume: show some icon when there is no device
* panel-audio: do not crash audio plugin if there is no sound configured in the system
* Fix middle-click config
* convert annoying QMessageBox to RazorNotification
* Make close-on-middle-click optional
* Update panel plugin names and descriptions. Closes issue #361
* Lazy start and additional nullpoiter check in the razor-tray plugin.
* variable fix for cmake
* fixed #257 razor-panel segfaults - when there is no DBUS server running. The RzMountProvider's RazorMountDeviceList is not handled over pointer/casting anymore because QList is always implicitly shared.
* New translation infrastructure
* First day of week removed from UI
* The first day of week autodetection
* The first day of week autodetection
* Closed Issue #382
* Updated .ts.src files
* panel-volume: fix issue #362 about max volume - honor device max volume in pulseaudio as a default - add setting to ignore device max volume on pulseaudio
* panel-volume: fix usage of volume adjust step when using scrollwheel
* panel-volume: fix deadlock when sinkinfo retrieval failed
* panel-volume: Use same icon in panel as well as in popup for mute toggle
* Fix for Issue #290 Fails to build on BSD
* panel-volume: Change mixer QPushButton to a QLabel The label includes a link-style text instead of the flat pushbutton, which lacks some indication on some QStyles like Cleanlooks
* panel-volume: visual improvements - add mixer button with label instead of icon - add checkable pushbutton to mute on the popup
* razor-panel/plugin-volume: Use center alignment
* razor-panel: Sets the limits to the panel size (Ui)
* razor-panel: Add panel config size limits (Ui)
* razor-panel: Use PANEL_DEFAULT_SIZE instead of obscure 32s
* razor-panel: Remove minimum size definition from the config ui
* razor-panel: Refactor minimum panel size definition
* New translations for razor-panel plugins
* New translations for razor-panel
* detect soub backends by proper cmake modules because of cmake variable errors on some systems; allow to be built with no pulse (ifdefs)
* panel-volume: add settings defines - Use defines rather than strings for the setting names - Change settings default for mixer to 'qasmixer' for alsa - Change settings default for volume adjust step to 5
* panel-volume: Add volume adjust step - settings has now an item to adjust volume step - inc/dec volume on AudioDevice is remove as it depends on the settings step
* panel-volume: Finally make members in AudioDevice private
* panel-volume: - Receive updates on external volume changes for alsa - Fix alsa mute setter
* panel-volume: Add alsa event handling, no usage yet
* panel-volume: Try to get proper card name instead of card index
* panel-volume: - Fix mute handling - Add mute setting for alsa backend
* panel-volume: - Add initial alsa channel listing - Volume on selected alsa channel can now be set - No external volume changes are handled in alsa backend - No mute ability in alsa backend
* panel-volume: - fix logic around mute and setVolume - Unmute is volume is reset from eg. inc/dec volume
* panel-volume: add missing files
* panel-volume: Add initial Alsa support, only detects devices so far for a start
* panel-volume: qBound is much nicer, thanks for the hint from Alexander Sokolov
* panel-volume: set proper fallback icon for mixer launcher
* panel-volume: Fix global shortcuts.
* panel-volume: fix bug in setVolume on device, stupid me
* panel-volume: apply utf8 patch from Alexander Sokolov, thanks
* panel-volume: add global shortcuts, yet not configurable
* panel-volume: build fixes - add missing QMetaType include - add define for PA_VOLUME_UI_MAX, which is only defined since pulseaudio 0.9.23
* panel-volume: - make volumepopup member private - make volumeslider member private
* panel-volume: - Rename slots to proper names - Remove unused destructor
* panel-volume: Set slider value for initial volume value whenever the managed device changes
* panel-volume: Rework pulseaudio state tracking to recover pulseaudio daemon shutdowns and/or restarts.
* panel-volume: Expose ready state from pulseaudioengine
* panel-volume: Rename method to what it actually does
* panel-volume: Add guard when context is not ready
* panel-volume: Improve internal context state tracking
* panel-volume: Finally fix the default behavior to show popup
* panel-volume: Fix creating instances in a different thread
* panel-volume: No need to set the layout explicitly
* panel-volume: Fix margin on popup layout
* panel-volume: Click to show the volume popup is now the default
* panel-volume: Fix settings dialog title
* panel-volume: Make change wheel behavior on volume slider
* panel-volume: Rename to 'Volume Control'
* panel-volume: Fix configuration and add external mixer settings
* panel-volume: use full volume range, even over 100%
* panel-volume: Make device type private
* panel-volume: Add mute toggle on middleclick
* panel-volume: Launch pavucontrol as a default mixer
* panel-volume: Fix segfault
* panel-volume: Add middleclick option
* panel-volume: Change icon accordingly to volume
* panel-volume: Reflect external volume changes in slider
* panel-volume: Start volume plugin
* panel-volume: add settings defines - Use defines rather than strings for the setting names - Change settings default for mixer to 'qasmixer' for alsa - Change settings default for volume adjust step to 5
* razoor-panel: Adds Orientation property
* razor-panel: Refactors useTheme variables names
* razor-panel: Renames "Use theme size" to "Use automatic sizing"
* panel-volume: Add volume adjust step - settings has now an item to adjust volume step - inc/dec volume on AudioDevice is remove as it depends on the settings step
* panel-volume: Finally make members in AudioDevice private
* panel-volume: - Receive updates on external volume changes for alsa - Fix alsa mute setter
* panel-volume: Add alsa event handling, no usage yet
* panel-volume: Try to get proper card name instead of card index
* panel-volume: - Fix mute handling - Add mute setting for alsa backend
* panel-volume: - Add initial alsa channel listing - Volume on selected alsa channel can now be set - No external volume changes are handled in alsa backend - No mute ability in alsa backend
* panel-volume: - fix logic around mute and setVolume - Unmute is volume is reset from eg. inc/dec volume
* panel-volume: add missing files
* panel-volume: Add initial Alsa support, only detects devices so far for a start
* panel-volume: qBound is much nicer, thanks for the hint from Alexander Sokolov
* panel-volume: set proper fallback icon for mixer launcher
* panel-volume: Fix global shortcuts.
* panel-volume: fix bug in setVolume on device, stupid me
* panel-volume: apply utf8 patch from Alexander Sokolov, thanks
* panel-volume: add global shortcuts, yet not configurable
* panel-volume: build fixes - add missing QMetaType include - add define for PA_VOLUME_UI_MAX, which is only defined since pulseaudio 0.9.23
* panel-volume: - make volumepopup member private - make volumeslider member private
* panel-volume: - Rename slots to proper names - Remove unused destructor
* panel-volume: Set slider value for initial volume value whenever the managed device changes
* panel-volume: Rework pulseaudio state tracking to recover pulseaudio daemon shutdowns and/or restarts.
* panel-volume: Expose ready state from pulseaudioengine
* panel-volume: Rename method to what it actually does
* panel-volume: Add guard when context is not ready
* panel-volume: Improve internal context state tracking
* panel-volume: Finally fix the default behavior to show popup
* panel-volume: Fix creating instances in a different thread
* panel-volume: No need to set the layout explicitly
* panel-volume: Fix margin on popup layout
* panel-volume: Click to show the volume popup is now the default
* panel-volume: Fix settings dialog title
* panel-volume: Make change wheel behavior on volume slider
* panel-volume: Rename to 'Volume Control'
* panel-volume: Fix configuration and add external mixer settings
* panel-volume: use full volume range, even over 100%
* panel-volume: Make device type private
* panel-volume: Add mute toggle on middleclick
* panel-volume: Launch pavucontrol as a default mixer
* panel-volume: Fix segfault
* panel-volume: Add middleclick option
* panel-volume: Change icon accordingly to volume
* panel-volume: Reflect external volume changes in slider
* panel-volume: Start volume plugin
* razor-panel: Adjust panel size on plugin load/remove
* RazorCpuLoad bar has configurable orientation
* Updated ts.src files
* Panel clock plugin: first day of week is configurable in popup calendar
* Panel clock plugin: tooltip returned back
* networkmonitor: reformat (tabs to spaces)
* networkmonitor: Use appropriate units
* razor-panel: Replace 'Delete' by 'Remove'. Closes #339
* razor-panel: Read the panel size value when not using the theme size
* part of #329: on-click on notification launces default action or it tries to find appropariate window to raise; xfitman method renamed + one new
* colorpicker: get rid of all the hairy X11 code
* Fix indent
* Color picker as panel plugin, it doesn't change cursor icon yet.
* Syntax fixed
* Prevented potential index overflow problem
* Reordering with context menus fixed
* Showdesktop: display notification instead of a popup
* removed complaining invalid signal-slot connection
* Themes supported
* Second line visibility fixed
* Labels renamed
* Better layout
* configure clock font size (issue #213)
* Show calendar only on left-click
* [297] Sensors panel plugin - blink progress bar when the temperature is too high
* issue #276: annoying sub-menu removed
* razor-panel: Adds mount to the default plugin list
* Fix comma
* razor-panel: Setup Configure Panel>Panel size Ui properly
* Implement Actions and add some more functions
* Implement new RazorNotification class
* Ts.src files updated.
* Language name zh_CN.GB2312 braked cmake process.
* Translations updated
* [193] lm-sensors applet for panel [missing Qt parent assignment to the widgets]
* [193] lm-sensors applet for panel [sensors_cleanup fix]
* Fix a problem with colors
* Issue # 276 Panel context menus redesign
* [193] lm-sensors applet for panel [feature index out of bounds fixed]
* [193] lm-sensors applet for panel [more debug info added]
* [193] lm-sensors applet for panel [more debug info added]
* qt<4.7 compilation fix
* fix compilation for qt4.6.x
* [193] lm-sensors applet for panel
* quicklaunch: fixed layouting (matrix, horiz/vert. panel) broken by previous commit
* fixed #252 [quicklaunch] issue dragging from qtfm
* Move panel position into the configuration dialog
* Convert Panel config dialog to use RazorConfigDialog
* Environments should be "Razor", not "RAZOR" Thanks Alec Moskvin
* Fixed for Preloading menu
* panel cpu plugin: allow user to setup update interval (1sec is default now instead of 0.5). It can drastically reduce CPU load caused bu this plugin
* Move lock screen back in root menu, per amoskvin
* tooltip workaround uses notification system
* Move Lock Screen to the Leave submenu (#210)
* GUI for change razor theme.
* Close application by middle click.
* Set window titles for use with WM's like fvwm
* Typos in code. Thanks Aaron Lewis. * In razor-runner , providers item: title() was typed as tile() * For RazorSettings class , settingsChanged() was typed as settigsChanged()
* Network monitor: don't needlessly set the tooltip
* install fix for panel's network monitor
* Improve size of cpu monitor on change of panel orientation.
* Fixed error on network interface down.
* Nemo is renamed to NetworkMonitor
* Fixed init settings of panel-plugin network monitor.
* Added Netwok Monitor plugin for razor-panel.
* Added configuration.
* Fixed text cropping (when 100% cpu usage).
* fix default value for custom panel size
* /etc/xdg can vary on some system. Autodetected using qmake in cmake run.
* Properly show &'s in taskbar
* fix for cpuload plugin installation. cmake re-run needed.
* Preloading menu in the main menu plugin.
* Revert "Global shortcuts now based on PSI code."
* Revert "The panel did not receive the focus."
* The panel did not receive the focus.
* Global shortcuts now based on PSI code
* warning if there is no libstatgrab found
* Hide main menu when it's visible. Thanks Aaron Lewis.
* Closes #224: Application menu button don't show full text/icon when text is selected
* Config corresponds XDG directory specification
* Transifex desktop: sr_BA.ts should be a local
* Transifex desktop: local translations
* Transifex desktop: cmake files
* Transifex desktop: Translations pulled
* Transifex desktop: Reomove translations from desktop.in
* Transifex desktop: desktop->desktop.in
* Update Tradidtional Chinese Translations
* CpuLoad plugin required libstatgrab.
* Committer:stuarch modified: razorqt-desktop/config/razor-config-desktop.desktop modified: razorqt-desktop/desktop-razor/plugin-analogclock/resources/analogclock.desktop new file: razorqt-desktop/desktop-razor/plugin-analogclock/translations/analogclock_zh_TW.ts modified: razorqt-desktop/desktop-razor/plugin-helloworld/resources/helloworld.desktop modified: razorqt-desktop/desktop-razor/plugin-iconview/resources/iconview.desktop modified: razorqt-desktop/desktop-razor/plugin-notepad/resources/notepad.desktop new file: razorqt-panel/panel/translations/razor-panel_zh_TW.ts modified: razorqt-panel/plugin-clock/resources/clock.desktop new file: razorqt-panel/plugin-clock/translations/clock_zh_TW.ts modified: razorqt-panel/plugin-desktopswitch/resources/desktopswitch.desktop new file: razorqt-panel/plugin-desktopswitch/translations/desktopswitch_zh_TW.ts modified: razorqt-panel/plugin-helloworld/resources/panelhelloworld.desktop modified: razorqt-panel/plugin-mainmenu/resources/mainmenu.desktop new file: razorqt-panel/plugin-mainmenu/translations/mainmenu_zh_TW.ts modified: razorqt-panel/plugin-mount/resources/mount.desktop new file: razorqt-panel/plugin-mount/translations/mount_zh_TW.ts modified: razorqt-panel/plugin-quicklaunch/resources/quicklaunch.desktop new file: razorqt-panel/plugin-quicklaunch/translations/quicklaunch_zh_TW.ts new file: razorqt-panel/plugin-screensaver/translations/screensaver_zh_TW.ts
* Changing box layout to grid layout in quick launch plugin
* Translations update
* Added support for the online translation service. www.transifex.net
* RazorApplication class implemented; all modules ported to this class
* Update razorqt-panel/panel/translations/razor-panel_it_IT.ts
* A lot of renames.
* CpuLoad depends on Linux. It doesn't work on BSD (using /proc).
* CpuLoad-plugin height fixed on changing of panel position.
* Serbian translation files
* Serbian translations (2 variants)
* Removed dead slots declarations.
* Added simple cpu monitor.
* Greek translation by iosifidis
* Improved searching for devices in the mount plugin.
* Fix desktopswitch shrinking on panel resize
* Ensure Desktopswitch buttons are all the same size
* Plugins alignments depends on the panel positions.
* Added danish translations
* Russian translation
* Panel plugins not found .ts files
* Save quicklaunch button position after moving
* Grey out "All Desktops" when window is on all desktops
* Grey out "All Desktops" when window is on all desktops
* Change Height/Width to Size/Length in panel dialog
* The razormount library now based on the providers.
* Set a default panel height
* The razormount library now based on the providers.
* Make remaining plugins expand
* Fix - icons are clickable on all button area.
* Closes #131 Closes #181 Vertical panel fixed. All plugins should look good.
* Fix a typo
* edit my email address
* fix #169: italian translation
* Finish the code for clock's popup calendar
* Put Move and Delete into plugins' context menus
* Vertical panel. Improved layouting in plugins
* Env variables for plugins dirs RAZORQT_DESKTOP_PLUGINS_DIR & RAZORQT_DESKTOP_PLUGINS_SO_DIR RAZORQT_PANEL_PLUGINS_DIR & RAZORQT_PANEL_PLUGINS_SO_DIR
* Relicense panel & runner
* Relicense panel
* The panel is not correctly positioned in the dual-monitor configurations.
* cmake fix
* razormount rewritten (lgpl2+)
* Fix gmail.ru -> gmail.com
* Hello World plugin for panel
* original and our code compared - it seems 99% rewritem so it's relicensed to lgpl2+
* Clean up configure panel dialog
* close panel/desktop in the debug builds - for development
* Czech translations (cs_CZ) Desktop files
* SVK translation finalized
* Replaces return"" by return QString()
* Closes #128
* More translation to german
* more work done
* Initial german release, only a tiny part
* Add "Configure" to plugins' context menus
* Fix crash due to null pointer
* Fix issue #116
* License audit
* implemented #49: keyboard shortcut for main menu
* Add Chinese(simplified) translation files.
* Switch scroll direction for the pager
* Switch windows when scrolling over taskbar
* Hide moved window (properly this time)
* Apply previous typo fix to newly-added translations
* HU translation by Kristóf Kiszel
* Fix another typo
* Fix typo
* Fix Taskbar in "Show windows from current desktop" mode
* added ability to change panel height/width/alignment
* Initial spanish translation
* razorqt-panel: use MODULE type for plugin libraries
* Add Slovak (sk) translation
* Adds newline to the end of .desktop files
* initial. added ability to change panel height
* Set tooltip only when the tooltip is shown
* Czech translations (cs_CZ)
* Fix a few typos
* XdgDesktopFile is implicitly shared
* huge refactoring of the libraries build organization
* Initialize order fixed
* Init values in tray plugin
* Mem leak in mount plugin & lib
* showdesktop: a bettre fix
* fixed memleak for panel/showdesktop (X11 deallocation)
* handle actions and its parents correctly
* only for debug builds: enable "exit" action in the context menu (for valgrind checking)
* Fix russian translation
* Fix russian translation
* fixed crash in the quicklaunch on the new suse 12.1
* Fix: segfaults when panel orientation is changed
* Fix: In Fedora 16 tray icons are invisible.
* quicklaunch: do not change button order when you drag'n'drop different mimetype
* quicklaunch: "title" action in the context menu too
* QuickLauncher: Programs do not run, fixed.
* QuickLauncher: Added: * Removing the buttons by dragging. * The menu items "move left" and "move right".
* forgotten files. Sorry.
* quicklaunch: editable icons - delete and move (ctrl+drag)
* Mount: Mount/unmount hide popup dialog
* Panel screensaver: Fix in RU translation.
* refresh desktop switch names on change too
* XfitMan: fix for XfitMan::getDesktopNames()
* XfitMan: fix for XfitMan::getDesktopNames()
* potential fix for "one desktop in openbox" panel crash
* RazorPanel: New icon theme handler for razor-panel plugins.
* RazorPanel: IconThemeChanged handler for razor-panel.
* New icon theme handler.
* iconThemeChanged handler for plugin-showdesktop
* iconThemeChanged handler for plugin-mount
* iconThemeChanged handler for plugin-quicklaunch
* iconThemeChanged handler for taskbar
* iconThemeChanged handler for mainmenu
* Razor-panel: iconThemeChanged & razorThemeChanged functions for plugins.
* Fix for wrong translations of the panel plugins.
* GPL->LGPL where I'm the author
* GPL->LGPL where I'm the author
* Issue #50 razor-mount: Filemanager can open dirs with whitespace in mount points.
* Plugins translations
* Translation for session
* Polish translation part X
* Fix: Desktop Menu Specification category must be X-RAZOR.
* Russian translations
* Russian translations.
* Fixes in polish translation
* Polish translation. Closes #46
* Closes #43
* first part of fix for #48
* fix for "remove/add device" in virtualbox
* Mount plugin: Workaround about duplication of items.
* Mount plugin: Debug messages for "Except that newly inserted CD/DVD is shown twice in the menu widget (using virtualbox)"
* Mount plugin: If the dialog is visible, the button is depressed.
* Mount plugin: A popup window is hidden when the panel changes position.
* Mount plugin: Fix, on dual monitor configurations, popup window always showed on a first monitor.
* New popup window in mount plugin.
* potential fix (workaround) from #40: XdgMenu does not display environment related items
* udev configuration handling; minimal version requirements
* qt4.6 fix for application default icon name
* Translation for mount plugin
* Configure dialog for mount plugin
* In the menu use the ToolButton instead of diskIcon and diskLabel. This looks nicer.
* Fixed: Click on the mount button, doing nothing.
* Fixed: At first start the names already mounted devices are not visible.
* better icon for #39 The appearance of the mount plugin.; tooltip too
* fixed (workaround before real event notifications) #42 mount plugin: display notifications when connected
* Don't use bool typed member to check _NET_SHOWING_DESKTOP property, use Xlib API instead
* Add Ctrl+F(1|2|3|4...) to switch virtual desktops
* Shortcut for showing desktop, also restore windows on another hit
* issue #39 - fix the unmount icon/button drawing
* homepage updated + auto replacement script
* mounting: initial status (mounted/unmounted) when starting
* icons logic for removable media
* initial revision of "removable media" support. Still lots to do but it's functional
* Potential fix2 for issue #18: Panel clock plugin changes your size
* XDG-files are split into qtxdg library.
* new panel plugin: "show desktop"
* Polish translation
* Panel plugins can use translation now
* Panel plugins: clock, mainmenu and taskbar translate.h fix.
* fix for build (includes)
* Dialog name changed. Menu file path fix.
* MainMenu plugin configuration window. Closes #16
* potential fix for issue #18: Panel clock plugin changes your size
* fix for #4 BadWindow when a window is closed
* removed unneeded call
* directories dupport for quicklaunch
* support for regular files in the quicklaunch
* initial support for drop events in the quicklaunch panel plugin
* Closes #1
* RazorTaskButton: Don't accept the drag event
* Small RazorClockConfiguration fixes. RazorTaskbarConfiguration use RazorSettingsCache now.
* RazorClockConfiguration small fixes and improvements proposed by Alex. RazorClockConfiguration use RazorSettingsCache. Testing new HIG - Reset/Close. Signed-off-by: Maciej Płaza <plaza.maciej@gmail.com>
* Task manager configuration window. Task button with only Icon isn't so big now. User can decide about task button max width.
* Removed accepChanges() declaration
* Clock configuration
* global key shortcut is a new library for razor; plugins updated
* RazorTaskButton with D'n'D support
* Animates the mouse movement to the position of the panel plugin that will be moved
* final port to new settings class; desktopbackgrounddialog improved with initial loading values
* Add: MainMenu tracks changes in the installed programs.
* The project uses RazorTheme. All except the desktop, switched to RazorSettings.
* Remuved garbage from help.
* initial support for screensaver/screen locking
* Added RazorTheme class.
* Fixed multithreaded building. Thanks Gustavo.
* Plugin config dialogs infrastructure. Instead, RazorPanelPlugin::preferredAlignment() introduced RazorPanelPlugin::flags method.
* New RazorSettings class. Now ReadSettings is deprecated. Use RazorSettings instead.
* Separate dir for XdgMenu. Fixed includes.
* Feature 3316330: Tasks from one desktop. Task Manager should have option to show tasks only from one (active) desktop. Now it shows all tasks. Without config GUI.
* Feature 3316331: Task Manager - only icon/text. Task Manager should have ability to show only name or icon (or both) of task. Without config GUI.
* Bug 3314795: The panel is not in the bottom of screen.
* Tracker 3314481: Elided text in the taskbar buttons
* Segfault in MainMenu if xdg-menu file not found.
* Copyright
* Copyright
* Fixed segfault in tray plugin.
* set default razor icon for all apps
* The settings are saved immediately after the change.
* lib_suffix location improved
* Logout dialog in main menu.
* Removed "Exit" item on panel menu.
* Fix: Missing cmake checks 2.
* Fix: Missing cmake checks.
* Fix: Segmetation fault on desktopswitch.
* Fix: Removed saveSettings method from plugins.
* Plugin-clock: added tooltip.
* From XdgIcon deleted parameter "size".
* move addplugindialog into shared lib for panel and desktop
* New /usr/share & ~/razor directory structure.
* Added: Add plugin dialog.
* initial horizontal panels
* Translations.
* In the thene you can specify the tray icon size.
* RazorPanel2 now is main panel.
* Legacy panel
* Mainmrnu plugin added
* battery icon names fixed
* fixed build cmake warnings
* XfitMan.setStrut allowed to reserve a place only from bottom.
* better XDG handling
* initial support for desktop files in quicklaunch
* Changed config param style to "param_style". Added well known menu files.
* fixed crash when there is only one desktop available
* forgotten refactored getClientList
* clocks are placed without additional unrequired space again
* clocks are correct in vertical panels too
* make quicklaunch vertically friendly, part II (final hopefully)
* make quicklaunch vertically friendly
* MainMenu plugin: Added log out menu
* Added XdgDesktopFile::icon method
* New version of main menu plugin
* allow to specify quicklaunch button size (like on netbooks)
* removed unused files
* better fix for tasks layout
* include fix; kdm/gdm/*dm session file; fix for taskbar resizing
* panel alignment works now (top/left, center, bottom/right)
* typos fixed in battery plugin; icon auto-size
* You can enable and disable plugins using cmake options.
* The new realization of librasorqt * XdgEnv * XdgDesktopFile * XdgMenu
* experimental: battery plugin for laptops
* better sizing in systray
* forgotten paths
* vertical panels work basically
* configuration reworked (may require to drop ~/.razor); plugins code split; new plugin: spacer
* panel plugins are modularized now; simplified plugin loading
* minor layouting changes
* patch from alex to load relative qss url
* fixed clock behavior for sizing. Using sizeHint now.
* panel plugins share API layout; don't freeze trying to load non-existing theme; experimental value placeholders in QSS
* initial refactoring for common plugin handling. Work in progress. Done: * all plugins are using the same base class * all plugins can handle dynamic resizing (eg. systray can be smaller after embed app close, taskbar occupies all available space...) * all is fully scriptable with QSS - some layout glitches have to be fixed
* initial API for plugins. No other changes in functionality yet
* Made RazorHal mounting/unmounting work and added a new function to Xfitman for checking if a window wants attention _NET_WM_WINDOW_DEMANDS_ATTENTION - tried to get the buttons at the taskmanager to glow when this is true but it didnt work..
* do not set layout too many times
* avoid huge moving of widgets after 1st clocks update
* src formatted with astyle -A1
* settings refactored a bit: SHARE_DIR dependen on th CMAKE_INSTALL_PREFIX is defined for the compilation phase (it allows to have more razors installed eg. for development); SHARE_DIR is searched in the startup too; optimized cfg file access (1x vs. 4x as before for every file); redundant conversions merged into Razorsettings; usage of QSettings to read the settings (it does the error handling for us).
* implementation of the 'quicklaunch icons' (Razorspinbutton like widget); disabled some debug outputs; tooltips enabled for panel widgets
* fixed cmake stuff (debug,lib location,do not install .svn,make uninstall,etc.); fixes for qss skinning
================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.18.0 FATAL_ERROR)
# CMP0000: Call the cmake_minimum_required() command at the beginning of the top-level
# CMakeLists.txt file even before calling the project() command.
# The cmake_minimum_required(VERSION) command implicitly invokes the cmake_policy(VERSION)
# command to specify that the current project code is written for the given range of CMake
# versions.
project(lxqt-panel)
option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF)
option(WITH_SCREENSAVER_FALLBACK "Include support for converting the deprecated 'screensaver' plugin to 'quicklaunch'. This requires the lxqt-leave (lxqt-session) to be installed in runtime." ON)
# additional cmake files
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
macro(setByDefault VAR_NAME VAR_VALUE)
if(NOT DEFINED ${VAR_NAME})
set (${VAR_NAME} ${VAR_VALUE})
endif(NOT DEFINED ${VAR_NAME})
endmacro()
include(GNUInstallDirs)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(REQUIRED_QT_VERSION "6.6.0")
set(KF6_MINIMUM_VERSION "6.0.0")
set(LXQT_GLOBALKEYS_MINIMUM_VERSION "2.4.0")
set(LXQT_MINIMUM_VERSION "2.4.0")
find_package(Qt6DBus ${REQUIRED_QT_VERSION} REQUIRED)
find_package(Qt6LinguistTools ${REQUIRED_QT_VERSION} REQUIRED)
find_package(Qt6Widgets ${REQUIRED_QT_VERSION} REQUIRED)
find_package(Qt6Xml ${REQUIRED_QT_VERSION} REQUIRED)
find_package(KF6WindowSystem ${KF6_MINIMUM_VERSION} REQUIRED)
find_package(lxqt ${LXQT_MINIMUM_VERSION} REQUIRED)
find_package(lxqt-globalkeys-ui ${LXQT_GLOBALKEYS_MINIMUM_VERSION} REQUIRED)
find_package(lxqt-menu-data ${LXQT_MINIMUM_VERSION} REQUIRED)
find_package(LayerShellQt REQUIRED)
if (Qt6Gui_VERSION VERSION_GREATER_EQUAL "6.10.0")
find_package(Qt6GuiPrivate REQUIRED)
find_package(Qt6WaylandClientPrivate REQUIRED)
endif()
# Patch Version
set(LXQT_PANEL_PATCH_VERSION 0)
set(LXQT_PANEL_VERSION ${LXQT_MAJOR_VERSION}.${LXQT_MINOR_VERSION}.${LXQT_PANEL_PATCH_VERSION})
add_definitions("-DLXQT_PANEL_VERSION=\"${LXQT_PANEL_VERSION}\"")
include(LXQtPreventInSourceBuilds)
include(LXQtTranslate)
# All LXQtCompilerSettings except CMAKE_MODULE_LINKER_FLAGS work just fine
# So we reset only these Flags after loading LXQtCompilerSettings
# lxqt-build-tools:
# set(CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined ${SYMBOLIC_FLAGS} ${CMAKE_MODULE_LINKER_FLAGS}")
message(STATUS "==OLD== CMAKE_MODULE_LINKER_FLAGS: ${CMAKE_MODULE_LINKER_FLAGS}")
set( OLD_CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}")
include(LXQtCompilerSettings NO_POLICY_SCOPE)
set(CMAKE_MODULE_LINKER_FLAGS "${OLD_CMAKE_MODULE_LINKER_FLAGS} ${SYMBOLIC_FLAGS}")
# Warning: This must be before add_subdirectory(panel). Move with caution.
set(PLUGIN_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/lxqt-panel")
add_definitions(
-DPLUGIN_DIR=\"${PLUGIN_DIR}\"
)
message(STATUS "CMAKE Module linker flags: ${CMAKE_MODULE_LINKER_FLAGS}")
message(STATUS "Panel plugins location: ${PLUGIN_DIR}")
#########################################################################
# Plugin system
# You can enable/disable building of the plugin using cmake options.
# cmake -DWORLDCLOCK_PLUGIN=Yes .. # Enable worldclock plugin
# cmake -DWORLDCLOCK_PLUGIN=No .. # Disable worldclock plugin
include("cmake/BuildPlugin.cmake")
set(ENABLED_PLUGINS) # list of enabled plugins
set(STATIC_PLUGINS) # list of statically linked plugins
setByDefault(COLORPICKER_PLUGIN Yes)
if(COLORPICKER_PLUGIN)
list(APPEND ENABLED_PLUGINS "Color Picker")
add_subdirectory(plugin-colorpicker)
endif()
setByDefault(CPULOAD_PLUGIN Yes)
if(CPULOAD_PLUGIN)
find_library(STATGRAB_LIB statgrab)
if(NOT STATGRAB_LIB)
message(FATAL_ERROR "CPU Load plugin requires libstatgrab")
endif()
list(APPEND ENABLED_PLUGINS "Cpu Load")
add_subdirectory(plugin-cpuload)
endif()
setByDefault(CUSTOMCOMMAND_PLUGIN Yes)
if(CUSTOMCOMMAND_PLUGIN)
list(APPEND ENABLED_PLUGINS "Custom Command")
add_subdirectory(plugin-customcommand)
endif()
setByDefault(DIRECTORYMENU_PLUGIN Yes)
if(DIRECTORYMENU_PLUGIN)
list(APPEND ENABLED_PLUGINS "Directory menu")
add_subdirectory(plugin-directorymenu)
endif()
setByDefault(DOM_PLUGIN Yes)
if(DOM_PLUGIN)
list(APPEND ENABLED_PLUGINS "DOM")
add_subdirectory(plugin-dom)
endif(DOM_PLUGIN)
setByDefault(DESKTOPSWITCH_PLUGIN Yes)
if(DESKTOPSWITCH_PLUGIN)
list(APPEND STATIC_PLUGINS "desktopswitch")
add_definitions(-DWITH_DESKTOPSWITCH_PLUGIN)
list(APPEND ENABLED_PLUGINS "Desktop Switcher")
add_subdirectory(plugin-desktopswitch)
endif()
setByDefault(FANCYMENU_PLUGIN Yes)
if(FANCYMENU_PLUGIN)
list(APPEND STATIC_PLUGINS "fancymenu")
add_definitions(-DWITH_FANCYMENU_PLUGIN)
list(APPEND ENABLED_PLUGINS "Application fancy menu")
add_subdirectory(plugin-fancymenu)
endif()
setByDefault(KBINDICATOR_PLUGIN Yes)
if(KBINDICATOR_PLUGIN)
list(APPEND ENABLED_PLUGINS "Keyboard Indicator")
add_subdirectory(plugin-kbindicator)
endif(KBINDICATOR_PLUGIN)
setByDefault(MAINMENU_PLUGIN Yes)
if(MAINMENU_PLUGIN)
list(APPEND STATIC_PLUGINS "mainmenu")
add_definitions(-DWITH_MAINMENU_PLUGIN)
list(APPEND ENABLED_PLUGINS "Application menu")
add_subdirectory(plugin-mainmenu)
endif()
setByDefault(MOUNT_PLUGIN Yes)
if(MOUNT_PLUGIN)
list(APPEND ENABLED_PLUGINS "Mount")
add_subdirectory(plugin-mount)
endif(MOUNT_PLUGIN)
setByDefault(QUICKLAUNCH_PLUGIN Yes)
if(QUICKLAUNCH_PLUGIN)
list(APPEND STATIC_PLUGINS "quicklaunch")
add_definitions(-DWITH_QUICKLAUNCH_PLUGIN)
list(APPEND ENABLED_PLUGINS "Quicklaunch")
add_subdirectory(plugin-quicklaunch)
endif()
setByDefault(SENSORS_PLUGIN Yes)
if(SENSORS_PLUGIN)
find_library(SENSORS_LIB sensors)
if(NOT SENSORS_LIB)
message(FATAL_ERROR "Sensors plugin requires libsensors")
endif()
list(APPEND ENABLED_PLUGINS "Sensors")
add_subdirectory(plugin-sensors)
endif()
setByDefault(SHOWDESKTOP_PLUGIN Yes)
if(SHOWDESKTOP_PLUGIN)
list(APPEND STATIC_PLUGINS "showdesktop")
add_definitions(-DWITH_SHOWDESKTOP_PLUGIN)
list(APPEND ENABLED_PLUGINS "Show Desktop")
add_subdirectory(plugin-showdesktop)
endif()
setByDefault(QEYES_PLUGIN Yes)
if(QEYES_PLUGIN)
list(APPEND ENABLED_PLUGINS "QEyes")
add_subdirectory(plugin-qeyes)
endif()
setByDefault(NETWORKMONITOR_PLUGIN Yes)
if(NETWORKMONITOR_PLUGIN)
find_library(STATGRAB_LIB statgrab)
if(NOT STATGRAB_LIB)
message(FATAL_ERROR "Network Monitor plugin requires libstatgrab")
endif()
list(APPEND ENABLED_PLUGINS "Network Monitor")
add_subdirectory(plugin-networkmonitor)
endif()
setByDefault(SYSSTAT_PLUGIN Yes)
if(SYSSTAT_PLUGIN)
list(APPEND ENABLED_PLUGINS "System Stats")
add_subdirectory(plugin-sysstat)
endif(SYSSTAT_PLUGIN)
setByDefault(TASKBAR_PLUGIN Yes)
if(TASKBAR_PLUGIN)
list(APPEND STATIC_PLUGINS "taskbar")
add_definitions(-DWITH_TASKBAR_PLUGIN)
list(APPEND ENABLED_PLUGINS "Taskbar")
add_subdirectory(plugin-taskbar)
endif()
setByDefault(STATUSNOTIFIER_PLUGIN Yes)
if(STATUSNOTIFIER_PLUGIN)
list(APPEND STATIC_PLUGINS "statusnotifier")
add_definitions(-DWITH_STATUSNOTIFIER_PLUGIN)
list(APPEND ENABLED_PLUGINS "Status Notifier")
add_subdirectory(plugin-statusnotifier)
endif()
setByDefault(TRAY_PLUGIN Yes)
if(TRAY_PLUGIN)
list(APPEND STATIC_PLUGINS "tray")
add_definitions(-DWITH_TRAY_PLUGIN)
list(APPEND ENABLED_PLUGINS "System Tray")
add_subdirectory(plugin-tray)
endif()
setByDefault(VOLUME_PLUGIN Yes)
setByDefault(VOLUME_USE_PULSEAUDIO Yes)
setByDefault(VOLUME_USE_ALSA Yes)
if(VOLUME_PLUGIN)
if (VOLUME_USE_PULSEAUDIO)
find_package(PulseAudio)
if (NOT PULSEAUDIO_FOUND)
message(FATAL_ERROR "PulseAudio not found, but required (VOLUME_USE_PULSEAUDIO) for Volume plugin!")
endif ()
endif(VOLUME_USE_PULSEAUDIO)
if(VOLUME_USE_ALSA)
find_package(ALSA)
if (NOT ALSA_FOUND)
message(FATAL_ERROR "ALSA not found, but required (VOLUME_USE_ALSA) for Volume plugin!")
endif ()
endif()
list(APPEND ENABLED_PLUGINS "Volume")
message(STATUS "")
message(STATUS "Volume plugin will be built")
message(STATUS " ALSA: ${ALSA_FOUND}")
message(STATUS " PulseAudio: ${PULSEAUDIO_FOUND}")
message(STATUS "")
add_subdirectory(plugin-volume)
endif()
setByDefault(WORLDCLOCK_PLUGIN Yes)
if(WORLDCLOCK_PLUGIN)
list(APPEND STATIC_PLUGINS "worldclock")
add_definitions(-DWITH_WORLDCLOCK_PLUGIN)
list(APPEND ENABLED_PLUGINS "World Clock")
add_subdirectory(plugin-worldclock)
endif(WORLDCLOCK_PLUGIN)
setByDefault(SPACER_PLUGIN Yes)
if(SPACER_PLUGIN)
list(APPEND STATIC_PLUGINS "spacer")
add_definitions(-DWITH_SPACER_PLUGIN)
list(APPEND ENABLED_PLUGINS "Spacer")
add_subdirectory(plugin-spacer)
endif()
setByDefault(BACKLIGHT_PLUGIN Yes)
if(BACKLIGHT_PLUGIN)
list(APPEND ENABLED_PLUGINS "Backlight")
add_subdirectory(plugin-backlight)
endif()
#########################################################################
message(STATUS "**************** The following plugins will be built ****************")
foreach (PLUGIN_STR ${ENABLED_PLUGINS})
message(STATUS " ${PLUGIN_STR}")
endforeach()
message(STATUS "*********************************************************************")
add_subdirectory(panel)
# merged from lxqt-common
add_subdirectory(autostart)
================================================
FILE: LICENSE
================================================
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
<https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
================================================
FILE: README.md
================================================
# lxqt-panel
## Overview
`lxqt-panel` represents the taskbar of LXQt.
The elements available in lxqt-panel are called "plugin" technically. This applies e. g. to the source code where they reside in directories `./plugin-<plugin>` like `plugin-mainmenu`. In contrast to this they are called "widgets" by the configuration GUI so far. Also, a more descriptive term is used to refer to distinct plugins within the GUI. E. g. the aforementioned `plugin-mainmenu` is called "Application menu" that way.
Configuration dialogue "Add Plugins", see [below](https://github.com/lxqt/lxqt-panel#customizing), is listing all available plugins plus a short description and hence provides an overview of the available ones.
Notes on some of the plugins, sorted by terms used within the GUI in alphabetical order, technical term in parenthesis:
#### Custom Command (plugin-customcommand)
Allows showing the output of commands or scripts on the panel, as text or images, and executing commands on click and/or wheel up/down.

#### Date & time / World clock (plugin-worldclock)
Provides clock and calendar functionality and can display various time zones in addition.
#### Quick launch (plugin-quicklaunch)
A plugin to launch applications from the panel. By default it is empty and displays a message "Drop application icons here". Applications need to be available in fancy menu or main menu and can be included into plugin-quicklaunch by drag & drop.
#### Status Notifier Plugin (plugin-statusnotifier) / System Tray (plugin-tray)
Status notifier plugin provides a notification area within the panel, that is an area where arbitrary applications can place informational icons. This is frequently used e. g. by chat or mail clients to inform about incoming messages or tools configuring the network to inform about connections. (So it's some kind of counterpart to the desktop notifications displayed by [lxqt-notificationd](https://github.com/lxqt/lxqt-notificationd)).
The difference between the two plugins is a technical one:
* **plugin-tray** is implementing the so-called [System Tray Protocol](https://www.freedesktop.org/wiki/Specifications/systemtray-spec). It's a specification that has been around for years but has some serious technical limitations and in particular won't work under Wayland. This plugin only translates "System Tray Protocol" entities into SNI ones, so it does not provide any visible area in panel.
* **plugin-statusnotifier** is implementing the so-called [StatusNotifierItem (SNI)](https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem) specification which can be considered a successor of the System Tray Protocol.
Both plugins are maintained in parallel as not all relevant applications are compatible with SNI so far. In particular both Qt 4 and all GTK applications need some kind of wrapper to deal with it. Both plugins can be used in parallel without any issue, applications supporting both specifications will normally chose to display their icons in plugin-statusnotifier.
#### Volume control (plugin-volume)
As indicated by the name, a volume control. Technically Alsa, OSS and PulseAudio can be used as backend. The plugin itself is providing a control to adjust the main volume only but it allows for launching specific UIs of the backend in use like e. g. [pavucontrol-qt](https://github.com/lxqt/pavucontrol-qt) to adjust PulseAudio.
### Wayland Backends
Wayland backends enable some functionalities related to task-bar as well as desktop switching and showing desktop. Three Wayland backends are available: kwin_wayland, Wayfire and one for wlroots-compatible compositors. They are automatically detected for all seven compositors that are currently supported.
In addition, the backend to load can be forced manually for any desktop specified in XDG_CURRENT_DESKTOP by a comma-separated list in ~/.config/lxqt/panel.conf:
```
[General]
…
preferred_backend=labwc:wlroots, niri:wlroots, xyz:my_own_backend
…
```
## Installation
### Compiling source code
The runtime dependencies are libxtst, layershell-qt, KGuiAddons, KWindowSystem, Solid, [lxqt-menu-data](https://github.com/lxqt/lxqt-menu-data), [liblxqt](https://github.com/lxqt/liblxqt), [libdbusmenu-lxqt](https://github.com/lxqt/libdbusmenu-lxqt) and [lxqt-globalkeys](https://github.com/lxqt/lxqt-globalkeys).
Several plugins or features thereof are optional and need additional runtime dependencies. Namely these are (plugin / feature in parenthesis) Alsa library (Alsa support in plugin-volume), PulseAudio client library (PulseAudio support in plugin-volume), lm-sensors (plugin-sensors), libstatgrab (plugin-cpuload, plugin-networkmonitor), [libsysstat](https://github.com/lxqt/libsysstat) (plugin-sysstat). All of them are enabled by default and have to be disabled by CMake variables as required, see below.
In addition CMake and [lxqt-build-tools](https://github.com/lxqt/lxqt-build-tools) are mandatory build dependencies. Git is optionally needed to pull latest VCS checkouts.
Code configuration is handled by CMake. CMake variable `CMAKE_INSTALL_PREFIX` has to be set to `/usr` on most operating systems, depending on the way library paths are dealt with on 64bit systems variables like CMAKE_INSTALL_LIBDIR may have to be set as well.
By default all available plugins and features thereof are built and CMake fails when dependencies aren't met. Building particular plugins can be disabled by boolean CMake variables `<plugin>_PLUGIN` where the plugin is referred by its technical term like e. g. in `SYSSTAT_PLUGIN`. Alsa and PulseAudio support in plugin-volume can be disabled by boolean CMake variables `VOLUME_USE_ALSA` and `VOLUME_USE_PULSEAUDIO`.
To build run `make`, to install `make install` which accepts variable `DESTDIR` as usual.
### Binary packages
Official binary packages are provided by all major Linux and BSD distributions. Just use your package manager to search for string `lxqt-panel`.
## Configuration, Usage
### Launching
The panel is run as a daemon-like [LXQt Module](https://github.com/lxqt/lxqt-session#lxqt-modules) the launch of which can be adjusted in section "Basic Settings" of configuration dialogue [LXQt Session Settings](https://github.com/lx/lxqt-session#lxqt-session-settings) of [lxqt-session](https://github.com/lxqt/lxqt-session).
### Customizing
To customize the panel itself there's a context menu, that is a menu opened by right-clicking the pointer device. It is comprising sections "\<plugin\>" and "Panel" which allow for configuring the plugin the pointer is currently over and the panel as a whole respectively.
In section "Panel" topics "Configure Panel" and "Manage Widgets" open different panes of a dialogue "Configure Panel" which allow for configuring the panel as a whole and the various plugins respectively.
Pane "Widgets" allows for configuring and removing all plugins currently included in lxqt-panel. The plus sign opens another dialogue "Add plugins" which is used to add plugins. It comes with a list of all plugins plus some short descriptions and can hence serve as overview what plugins are available.
Sometimes right-clicking over particular plugins may bring up a context menu dealing with the respective plugin's functionality *only* which means the plugin in question cannot be configured the usual way. This affects e. g. plugin-quicklaunch as soon as items were added (the context menu is limited to topics dealing with the items included in plugin-quicklaunch).
Currently there are two ways to deal with this. Some themes like e. g. `Frost` come with handles at the plugins' left end providing the regular context menu. Also, it can be assumed at least one plugin is included in the panel that's always featuring the regular context menu like e. g. plugin-mainmenu. Either way pane "Widgets" of "Configure Panel" can be accessed and used to configure and move the particpaneular plugin by DND or using the arrows.
See also [LXQt Wiki: LXQt-Panel](https://lxqt-project.org/wiki/LXQt-Panel).
### Translation
Translations can be done in [LXQt-Weblate](https://translate.lxqt-project.org/projects/lxqt-panel/)
<a href="https://translate.lxqt-project.org/projects/lxqt-panel/">
<img src="https://translate.lxqt-project.org/widgets/lxqt-panel/-/panel/multi-auto.svg" alt="Translation status" />
</a>
================================================
FILE: autostart/CMakeLists.txt
================================================
set(AUTOSTART_DESKTOP_FILES_IN lxqt-panel.desktop.in)
# Translations **********************************
lxqt_translate_desktop(DESKTOP_FILES
SOURCES
${AUTOSTART_DESKTOP_FILES_IN}
USE_YAML
)
add_custom_target(lxqt_panel_autostart_desktop_files ALL DEPENDS ${DESKTOP_FILES})
#************************************************
install(FILES
${DESKTOP_FILES}
DESTINATION "${LXQT_ETC_XDG_DIR}/autostart"
COMPONENT Runtime
)
configure_file(lxqt-panel_wayland.desktop.in lxqt-panel_wayland.desktop @ONLY)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/lxqt-panel_wayland.desktop"
DESTINATION "${LXQT_DATA_DIR}/applications"
RENAME "lxqt-panel.desktop"
COMPONENT Runtime
)
================================================
FILE: autostart/lxqt-panel.desktop.in
================================================
[Desktop Entry]
Type=Application
TryExec=lxqt-panel
Exec=lxqt-panel
OnlyShowIn=LXQt;
X-LXQt-Module=true
#TRANSLATIONS_DIR=translations
================================================
FILE: autostart/lxqt-panel_wayland.desktop.in
================================================
[Desktop Entry]
Type=Application
TryExec=lxqt-panel
NoDisplay=true
# NOTE: KWin wants absolute path here, get it from CMake install path
Exec=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/lxqt-panel
# NOTE: adding KDE to make it work under Plasma Wayland session
OnlyShowIn=LXQt;KDE
X-LXQt-Module=true
# Make KWin recognize us as priviledged client
X-KDE-Wayland-Interfaces=org_kde_plasma_window_management
================================================
FILE: autostart/translations/lxqt-panel.desktop.yaml
================================================
Desktop Entry/Name: "Panel"
================================================
FILE: autostart/translations/lxqt-panel_ar.desktop.yaml
================================================
Desktop Entry/Name: "اللوحة"
================================================
FILE: autostart/translations/lxqt-panel_bg.desktop.yaml
================================================
Desktop Entry/Name: "Панел"
================================================
FILE: autostart/translations/lxqt-panel_ca.desktop.yaml
================================================
Desktop Entry/Name: "Tauler"
================================================
FILE: autostart/translations/lxqt-panel_cs.desktop.yaml
================================================
Desktop Entry/Name: "Panel"
================================================
FILE: autostart/translations/lxqt-panel_da.desktop.yaml
================================================
Desktop Entry/Name: "Panel"
================================================
FILE: autostart/translations/lxqt-panel_de.desktop.yaml
================================================
Desktop Entry/Name: "Bedienfeld"
================================================
FILE: autostart/translations/lxqt-panel_el.desktop.yaml
================================================
Desktop Entry/Name: "Πίνακας"
================================================
FILE: autostart/translations/lxqt-panel_en_GB.desktop.yaml
================================================
Desktop Entry/Name: "Panel"
================================================
FILE: autostart/translations/lxqt-panel_eo.desktop.yaml
================================================
Desktop Entry/Name: "Panelo"
================================================
FILE: autostart/translations/lxqt-panel_es.desktop.yaml
================================================
Desktop Entry/Name: "Panel"
================================================
FILE: autostart/translations/lxqt-panel_es_VE.desktop.yaml
================================================
Desktop Entry/Name: "Panel"
================================================
FILE: autostart/translations/lxqt-panel_et.desktop.yaml
================================================
Desktop Entry/Name: "Paneel"
================================================
FILE: autostart/translations/lxqt-panel_eu.desktop.yaml
================================================
Desktop Entry/Name: "Panela"
================================================
FILE: autostart/translations/lxqt-panel_fi.desktop.yaml
================================================
Desktop Entry/Name: "Paneeli"
================================================
FILE: autostart/translations/lxqt-panel_fr.desktop.yaml
================================================
Desktop Entry/Name: "Tableau de bord"
================================================
FILE: autostart/translations/lxqt-panel_gl.desktop.yaml
================================================
Desktop Entry/Name: "Panel"
================================================
FILE: autostart/translations/lxqt-panel_he.desktop.yaml
================================================
Desktop Entry/Name: "לוח"
================================================
FILE: autostart/translations/lxqt-panel_hr.desktop.yaml
================================================
Desktop Entry/Name: "Ploča"
================================================
FILE: autostart/translations/lxqt-panel_hu.desktop.yaml
================================================
Desktop Entry/Name: "Panel"
================================================
FILE: autostart/translations/lxqt-panel_ia.desktop.yaml
================================================
Desktop Entry/Name: "Panello"
================================================
FILE: autostart/translations/lxqt-panel_id.desktop.yaml
================================================
Desktop Entry/Name: "Panel"
================================================
FILE: autostart/translations/lxqt-panel_it.desktop.yaml
================================================
Desktop Entry/Name: "Pannello"
================================================
FILE: autostart/translations/lxqt-panel_ja.desktop.yaml
================================================
Desktop Entry/Name: "パネル"
================================================
FILE: autostart/translations/lxqt-panel_ka.desktop.yaml
================================================
Desktop Entry/Name: "პანელი"
================================================
FILE: autostart/translations/lxqt-panel_kab.desktop.yaml
================================================
Desktop Entry/Name: ""
================================================
FILE: autostart/translations/lxqt-panel_kk.desktop.yaml
================================================
Desktop Entry/Name: "Панель"
================================================
FILE: autostart/translations/lxqt-panel_ko.desktop.yaml
================================================
Desktop Entry/Name: "패널"
================================================
FILE: autostart/translations/lxqt-panel_lg.desktop.yaml
================================================
Desktop Entry/Name: "Lubaawo"
================================================
FILE: autostart/translations/lxqt-panel_lt.desktop.yaml
================================================
Desktop Entry/Name: "Skydelis"
================================================
FILE: autostart/translations/lxqt-panel_lv.desktop.yaml
================================================
Desktop Entry/Name: "Panelis"
================================================
FILE: autostart/translations/lxqt-panel_nb_NO.desktop.yaml
================================================
Desktop Entry/Name: "Panel"
================================================
FILE: autostart/translations/lxqt-panel_nl.desktop.yaml
================================================
Desktop Entry/Name: "Paneel"
================================================
FILE: autostart/translations/lxqt-panel_oc.desktop.yaml
================================================
Desktop Entry/Name: "Tablèu de bòrd"
================================================
FILE: autostart/translations/lxqt-panel_pa.desktop.yaml
================================================
Desktop Entry/Name: "ਪੈਨਲ"
================================================
FILE: autostart/translations/lxqt-panel_pl.desktop.yaml
================================================
Desktop Entry/Name: "Panel"
================================================
FILE: autostart/translations/lxqt-panel_pt.desktop.yaml
================================================
Desktop Entry/Name: "Painel"
================================================
FILE: autostart/translations/lxqt-panel_pt_BR.desktop.yaml
================================================
Desktop Entry/Name: "Painel"
================================================
FILE: autostart/translations/lxqt-panel_ro.desktop.yaml
================================================
Desktop Entry/Name: "Panou"
================================================
FILE: autostart/translations/lxqt-panel_ru.desktop.yaml
================================================
Desktop Entry/Name: "Панель"
================================================
FILE: autostart/translations/lxqt-panel_si.desktop.yaml
================================================
Desktop Entry/Name: "පාලන"
================================================
FILE: autostart/translations/lxqt-panel_sk.desktop.yaml
================================================
Desktop Entry/Name: "Panel"
================================================
FILE: autostart/translations/lxqt-panel_sl.desktop.yaml
================================================
Desktop Entry/Name: "Pult"
================================================
FILE: autostart/translations/lxqt-panel_sr.desktop.yaml
================================================
Desktop Entry/Name: "Панел"
================================================
FILE: autostart/translations/lxqt-panel_sv.desktop.yaml
================================================
Desktop Entry/Name: "Panel"
================================================
FILE: autostart/translations/lxqt-panel_th.desktop.yaml
================================================
Desktop Entry/Name: "พาเนล"
================================================
FILE: autostart/translations/lxqt-panel_tr.desktop.yaml
================================================
Desktop Entry/Name: "Panel"
================================================
FILE: autostart/translations/lxqt-panel_uk.desktop.yaml
================================================
Desktop Entry/Name: "Панель"
================================================
FILE: autostart/translations/lxqt-panel_zh_CN.desktop.yaml
================================================
Desktop Entry/Name: "面板"
================================================
FILE: autostart/translations/lxqt-panel_zh_TW.desktop.yaml
================================================
Desktop Entry/Name: "面板"
================================================
FILE: cmake/BuildPlugin.cmake
================================================
MACRO (BUILD_LXQT_PLUGIN NAME)
set(PROGRAM "lxqt-panel")
project(${PROGRAM}_${NAME})
set(PROG_SHARE_DIR ${CMAKE_INSTALL_FULL_DATAROOTDIR}/lxqt/${PROGRAM})
set(PLUGIN_SHARE_DIR ${PROG_SHARE_DIR}/${NAME})
# Translations **********************************
lxqt_translate_ts(${PROJECT_NAME}_QM_FILES
UPDATE_TRANSLATIONS ${UPDATE_TRANSLATIONS}
SOURCES
${HEADERS}
${SOURCES}
${MOCS}
${UIS}
TEMPLATE
${NAME}
INSTALL_DIR
${LXQT_TRANSLATIONS_DIR}/${PROGRAM}/${NAME}
)
#lxqt_translate_to(QM_FILES ${CMAKE_INSTALL_FULL_DATAROOTDIR}/lxqt/${PROGRAM}/${PROJECT_NAME})
file (GLOB ${PROJECT_NAME}_DESKTOP_FILES_IN resources/*.desktop.in)
lxqt_translate_desktop(DESKTOP_FILES
SOURCES
${${PROJECT_NAME}_DESKTOP_FILES_IN}
USE_YAML
)
lxqt_plugin_translation_loader(QM_LOADER ${NAME} "lxqt-panel")
#************************************************
file (GLOB CONFIG_FILES resources/*.conf)
if (NOT DEFINED PLUGIN_DIR)
set (PLUGIN_DIR ${CMAKE_INSTALL_FULL_LIBDIR}/${PROGRAM})
endif (NOT DEFINED PLUGIN_DIR)
list(FIND STATIC_PLUGINS ${NAME} IS_STATIC)
set(SRC
${HEADERS}
${SOURCES}
${QM_LOADER}
${MOC_SOURCES}
${${PROJECT_NAME}_QM_FILES}
${RESOURCES}
${UIS}
${DESKTOP_FILES}
)
if (${IS_STATIC} EQUAL -1) # not static
add_library(${NAME} MODULE ${SRC}) # build dynamically loadable modules
install(TARGETS ${NAME} DESTINATION ${PLUGIN_DIR}) # install the *.so file
else() # static
add_library(${NAME} STATIC ${SRC}) # build statically linked lib
endif()
target_link_libraries(${NAME}
Qt6::Widgets
lxqt
${LIBRARIES}
KF6::WindowSystem
)
install(FILES ${CONFIG_FILES} DESTINATION ${PLUGIN_SHARE_DIR})
install(FILES ${DESKTOP_FILES} DESTINATION ${PROG_SHARE_DIR})
ENDMACRO(BUILD_LXQT_PLUGIN)
================================================
FILE: panel/CMakeLists.txt
================================================
set(PROJECT lxqt-panel)
# Window Manager backends
add_subdirectory(backends)
set(PRIV_HEADERS
panelpluginsmodel.h
windownotifier.h
lxqtpanel.h
lxqtpanelapplication.h
lxqtpanelapplication_p.h
lxqtpanellayout.h
plugin.h
pluginsettings_p.h
lxqtpanellimits.h
popupmenu.h
pluginmoveprocessor.h
lxqtpanelpluginconfigdialog.h
config/configpaneldialog.h
config/configplacement.h
config/configstyling.h
config/configpluginswidget.h
config/addplugindialog.h
)
# using LXQt namespace in the public headers.
set(PUB_HEADERS
lxqtpanelglobals.h
pluginsettings.h
ilxqtpanelplugin.h
ilxqtpanel.h
)
set(SOURCES
main.cpp
panelpluginsmodel.cpp
windownotifier.cpp
lxqtpanel.cpp
lxqtpanelapplication.cpp
lxqtpanellayout.cpp
plugin.cpp
pluginsettings.cpp
popupmenu.cpp
pluginmoveprocessor.cpp
lxqtpanelpluginconfigdialog.cpp
config/configpaneldialog.cpp
config/configplacement.cpp
config/configstyling.cpp
config/configpluginswidget.cpp
config/addplugindialog.cpp
)
set(UI
config/configplacement.ui
config/configstyling.ui
config/configpluginswidget.ui
config/addplugindialog.ui
)
set(LIBRARIES
lxqt
)
file(GLOB CONFIG_FILES resources/*.conf)
############################################
add_definitions(-DCOMPILE_LXQT_PANEL)
set(PLUGIN_DESKTOPS_DIR "${CMAKE_INSTALL_FULL_DATAROOTDIR}/lxqt/${PROJECT}")
add_definitions(-DPLUGIN_DESKTOPS_DIR=\"${PLUGIN_DESKTOPS_DIR}\")
if (WITH_SCREENSAVER_FALLBACK)
message(STATUS "Building with conversion of deprecated 'screensaver' plugin")
add_definitions(-DWITH_SCREENSAVER_FALLBACK "-DLXQT_LOCK_DESKTOP=\"${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/lxqt-lockscreen.desktop\"")
endif ()
project(${PROJECT})
set(QTX_LIBRARIES Qt6::Widgets Qt6::Xml Qt6::DBus)
# Translations
lxqt_translate_ts(QM_FILES SOURCES
UPDATE_TRANSLATIONS
${UPDATE_TRANSLATIONS}
SOURCES
${PUB_HEADERS}
${PRIV_HEADERS}
${SOURCES}
${UI}
INSTALL_DIR
"${LXQT_TRANSLATIONS_DIR}/${PROJECT_NAME}"
)
lxqt_app_translation_loader(SOURCES ${PROJECT_NAME})
add_executable(${PROJECT}
${PUB_HEADERS}
${PRIV_HEADERS}
${QM_FILES}
${SOURCES}
${UI}
)
target_link_libraries(${PROJECT}
${LIBRARIES}
${QTX_LIBRARIES}
KF6::WindowSystem
LayerShellQt::Interface
${STATIC_PLUGINS}
lxqt-panel-backend-common
)
set_property(TARGET ${PROJECT} PROPERTY ENABLE_EXPORTS TRUE)
install(TARGETS ${PROJECT} RUNTIME DESTINATION bin)
install(FILES ${CONFIG_FILES} DESTINATION "${LXQT_ETC_XDG_DIR}/lxqt")
install(FILES ${PUB_HEADERS} DESTINATION include/lxqt)
install(FILES
man/lxqt-panel.1
DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
COMPONENT Runtime
)
================================================
FILE: panel/backends/CMakeLists.txt
================================================
# Common interface for Window Manager abstraction backend
# This also contains dummy backend
add_library(lxqt-panel-backend-common STATIC
lxqttaskbartypes.h
ilxqtabstractwmiface.h
ilxqtabstractwmiface.cpp
lxqtdummywmbackend.h
lxqtdummywmbackend.cpp
)
target_link_libraries(lxqt-panel-backend-common
Qt6::Gui
)
add_subdirectory(wayland)
add_subdirectory(xcb)
================================================
FILE: panel/backends/ilxqtabstractwmiface.cpp
================================================
/* BEGIN_COMMON_COPYRIGHT_HEADER
* (c)LGPL2+
*
* LXQt - a lightweight, Qt based, desktop toolset
* https://lxqt.org
*
* Copyright: 2023 LXQt team
* Authors:
* Filippo Gentile <filippogentile@disroot.org>
*
* This program or library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
* Public License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*
* END_COMMON_COPYRIGHT_HEADER */
#include "ilxqtabstractwmiface.h"
ILXQtAbstractWMInterface::ILXQtAbstractWMInterface(QObject *parent)
: QObject(parent)
{
}
void ILXQtAbstractWMInterface::moveApplicationToPrevNextDesktop(WId windowId, bool next)
{
int count = getWorkspacesCount();
if (count <= 1)
return;
int targetWorkspace = getWindowWorkspace(windowId) + (next ? 1 : -1);
// Wrap around
if (targetWorkspace > count)
targetWorkspace = 1; //Ids are 1-based
else if (targetWorkspace < 1)
targetWorkspace = count;
setWindowOnWorkspace(windowId, targetWorkspace);
}
int ILXQtAbstractWMInterface::onAllWorkspacesEnum() const
{
// Virtual destops have 1-based indexes.
// NOTE: The real value of this enum may be negative (as in X11).
return 0;
}
================================================
FILE: panel/backends/ilxqtabstractwmiface.h
================================================
/* BEGIN_COMMON_COPYRIGHT_HEADER
* (c)LGPL2+
*
* LXQt - a lightweight, Qt based, desktop toolset
* https://lxqt.org
*
* Copyright: 2023 LXQt team
* Authors:
* Filippo Gentile <filippogentile@disroot.org>
*
* This program or library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
* Public License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*
* END_COMMON_COPYRIGHT_HEADER */
#ifndef ILXQT_ABSTRACT_WM_INTERFACE_H
#define ILXQT_ABSTRACT_WM_INTERFACE_H
#include <QObject>
#include "../lxqtpanelglobals.h"
#include "lxqttaskbartypes.h"
class QIcon;
class QScreen;
class LXQT_PANEL_API ILXQtAbstractWMInterface : public QObject
{
Q_OBJECT
public:
explicit ILXQtAbstractWMInterface(QObject *parent = nullptr);
// Backend
virtual bool supportsAction(WId windowId, LXQtTaskBarBackendAction action) const = 0;
// Windows
virtual bool reloadWindows() = 0;
virtual QVector<WId> getCurrentWindows() const = 0;
virtual QString getWindowTitle(WId windowId) const = 0;
virtual bool applicationDemandsAttention(WId windowId) const = 0;
virtual QIcon getApplicationIcon(WId windowId, int fallbackDevicePixels) const = 0;
virtual QString getWindowClass(WId windowId) const = 0;
virtual LXQtTaskBarWindowLayer getWindowLayer(WId windowId) const = 0;
virtual bool setWindowLayer(WId windowId, LXQtTaskBarWindowLayer layer) = 0;
virtual LXQtTaskBarWindowState getWindowState(WId windowId) const = 0;
virtual bool setWindowState(WId windowId, LXQtTaskBarWindowState state, bool set = true) = 0;
virtual bool isWindowActive(WId windowId) const = 0;
virtual bool raiseWindow(WId windowId, bool onCurrentWorkSpace) = 0;
virtual bool closeWindow(WId windowId) = 0;
virtual WId getActiveWindow() const = 0;
// Workspaces
// NOTE: indexes are 1-based, 0 means "Show on All desktops"
virtual int getWorkspacesCount(QScreen *screen = nullptr) const = 0;
virtual QString getWorkspaceName(int idx, QString outputName = QString()) const = 0;
virtual int getCurrentWorkspace(QScreen *screen = nullptr) const = 0;
virtual bool setCurrentWorkspace(int idx, QScreen *screen = nullptr) = 0;
virtual int getWindowWorkspace(WId windowId) const = 0;
virtual bool setWindowOnWorkspace(WId windowId, int idx) = 0;
virtual void moveApplicationToPrevNextDesktop(WId windowId, bool next); // Default implementation
virtual void moveApplicationToPrevNextMonitor(WId windowId, bool next, bool raiseOnCurrentDesktop) = 0;
virtual int onAllWorkspacesEnum() const;
virtual bool isWindowOnScreen(QScreen *screen, WId windowId) const = 0;
virtual bool setDesktopLayout(Qt::Orientation orientation, int rows, int columns, bool rightToLeft) = 0;
// X11 Specific
virtual void moveApplication(WId windowId) = 0;
virtual void resizeApplication(WId windowId) = 0;
virtual void refreshIconGeometry(WId windowId, const QRect &geom) = 0;
// Panel internal
virtual bool isAreaOverlapped(const QRect& area) const = 0;
// Show Destop TODO: split in multiple interfeces, this is becoming big
// NOTE: KWindowSystem already has these functions
// However on Wayland they are only compatible with KWin
// because internally it uses org_kde_plasma_window_management protocol
// We make this virtual so it can be implemented also for other compositors
virtual bool isShowingDesktop() const = 0;
virtual bool showDesktop(bool value) = 0;
signals:
void reloaded();
// Windows
void windowAdded(WId windowId);
void windowRemoved(WId windowId);
void windowPropertyChanged(WId windowId, int prop);
// Workspaces
void workspacesCountChanged();
void workspaceNameChanged(int idx);
void currentWorkspaceChanged(int idx, QString outputName = QString());
// TODO: needed?
void activeWindowChanged(WId windowId);
};
class LXQT_PANEL_API ILXQtWMBackendLibrary
{
public:
/**
Destroys the ILXQtWMBackendLibrary object.
**/
virtual ~ILXQtWMBackendLibrary() {}
/**
Returns the score of this backend for current detected environment.
This is used to select correct backend at runtime
**/
virtual int getBackendScore(const QString& key) const = 0;
/**
Returns the root component object of the backend. When the library is finally unloaded, the root component will automatically be deleted.
**/
virtual ILXQtAbstractWMInterface* instance() const = 0;
};
Q_DECLARE_INTERFACE(ILXQtWMBackendLibrary,
"lxqt.org/Panel/WMInterface/1.0")
#endif // ILXQT_ABSTRACT_WM_INTERFACE_H
================================================
FILE: panel/backends/lxqtdummywmbackend.cpp
================================================
/* BEGIN_COMMON_COPYRIGHT_HEADER
* (c)LGPL2+
*
* LXQt - a lightweight, Qt based, desktop toolset
* https://lxqt.org
*
* Copyright: 2023 LXQt team
* Authors:
* Filippo Gentile <filippogentile@disroot.org>
*
* This program or library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
* Public License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*
* END_COMMON_COPYRIGHT_HEADER */
#include "lxqtdummywmbackend.h"
#include <QIcon>
LXQtDummyWMBackend::LXQtDummyWMBackend(QObject *parent)
: ILXQtAbstractWMInterface(parent)
{
}
/************************************************
* Windows function
************************************************/
bool LXQtDummyWMBackend::supportsAction(WId, LXQtTaskBarBackendAction) const
{
return false;
}
bool LXQtDummyWMBackend::reloadWindows()
{
return false;
}
QVector<WId> LXQtDummyWMBackend::getCurrentWindows() const
{
return {};
}
QString LXQtDummyWMBackend::getWindowTitle(WId) const
{
return QString();
}
bool LXQtDummyWMBackend::applicationDemandsAttention(WId) const
{
return false;
}
QIcon LXQtDummyWMBackend::getApplicationIcon(WId, int) const
{
return QIcon();
}
QString LXQtDummyWMBackend::getWindowClass(WId) const
{
return QString();
}
LXQtTaskBarWindowLayer LXQtDummyWMBackend::getWindowLayer(WId) const
{
return LXQtTaskBarWindowLayer::Normal;
}
bool LXQtDummyWMBackend::setWindowLayer(WId, LXQtTaskBarWindowLayer)
{
return false;
}
LXQtTaskBarWindowState LXQtDummyWMBackend::getWindowState(WId) const
{
return LXQtTaskBarWindowState::Normal;
}
bool LXQtDummyWMBackend::setWindowState(WId, LXQtTaskBarWindowState, bool)
{
return false;
}
bool LXQtDummyWMBackend::isWindowActive(WId) const
{
return false;
}
bool LXQtDummyWMBackend::raiseWindow(WId, bool)
{
return false;
}
bool LXQtDummyWMBackend::closeWindow(WId)
{
return false;
}
WId LXQtDummyWMBackend::getActiveWindow() const
{
return 0;
}
/************************************************
* Workspaces
************************************************/
int LXQtDummyWMBackend::getWorkspacesCount(QScreen*) const
{
return 1; // Fake 1 workspace
}
QString LXQtDummyWMBackend::getWorkspaceName(int, QString) const
{
return QString();
}
int LXQtDummyWMBackend::getCurrentWorkspace(QScreen*) const
{
return 0;
}
bool LXQtDummyWMBackend::setCurrentWorkspace(int, QScreen*)
{
return false;
}
int LXQtDummyWMBackend::getWindowWorkspace(WId) const
{
return 0;
}
bool LXQtDummyWMBackend::setWindowOnWorkspace(WId, int)
{
return false;
}
void LXQtDummyWMBackend::moveApplicationToPrevNextMonitor(WId, bool, bool)
{
//No-op
}
int LXQtDummyWMBackend::onAllWorkspacesEnum() const
{
return 0;
}
bool LXQtDummyWMBackend::isWindowOnScreen(QScreen *, WId) const
{
return false;
}
bool LXQtDummyWMBackend::setDesktopLayout(Qt::Orientation, int, int, bool)
{
return false;
}
/************************************************
* X11 Specific
************************************************/
void LXQtDummyWMBackend::moveApplication(WId)
{
//No-op
}
void LXQtDummyWMBackend::resizeApplication(WId)
{
//No-op
}
void LXQtDummyWMBackend::refreshIconGeometry(WId, QRect const &)
{
//No-op
}
bool LXQtDummyWMBackend::isAreaOverlapped(const QRect &) const
{
return false;
}
bool LXQtDummyWMBackend::isShowingDesktop() const
{
return false;
}
bool LXQtDummyWMBackend::showDesktop(bool)
{
return false;
}
================================================
FILE: panel/backends/lxqtdummywmbackend.h
================================================
/* BEGIN_COMMON_COPYRIGHT_HEADER
* (c)LGPL2+
*
* LXQt - a lightweight, Qt based, desktop toolset
* https://lxqt.org
*
* Copyright: 2023 LXQt team
* Authors:
* Filippo Gentile <filippogentile@disroot.org>
*
* This program or library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
* Public License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*
* END_COMMON_COPYRIGHT_HEADER */
#ifndef LXQT_DUMMY_WM_BACKEND_H
#define LXQT_DUMMY_WM_BACKEND_H
#include "ilxqtabstractwmiface.h"
class LXQtDummyWMBackend : public ILXQtAbstractWMInterface
{
Q_OBJECT
public:
explicit LXQtDummyWMBackend(QObject *parent = nullptr);
// Backend
bool supportsAction(WId windowId, LXQtTaskBarBackendAction action) const override;
// Windows
bool reloadWindows() override;
QVector<WId> getCurrentWindows() const override;
QString getWindowTitle(WId windowId) const override;
bool applicationDemandsAttention(WId windowId) const override;
QIcon getApplicationIcon(WId windowId, int fallbackDevicePixels) const override;
QString getWindowClass(WId windowId) const override;
LXQtTaskBarWindowLayer getWindowLayer(WId windowId) const override;
bool setWindowLayer(WId windowId, LXQtTaskBarWindowLayer layer) override;
LXQtTaskBarWindowState getWindowState(WId windowId) const override;
bool setWindowState(WId windowId, LXQtTaskBarWindowState state, bool set = true) override;
bool isWindowActive(WId windowId) const override;
bool raiseWindow(WId windowId, bool onCurrentWorkSpace) override;
bool closeWindow(WId windowId) override;
WId getActiveWindow() const override;
// Workspaces
int getWorkspacesCount(QScreen *screen = nullptr) const override;
QString getWorkspaceName(int idx, QString outputName = QString()) const override;
int getCurrentWorkspace(QScreen *screen = nullptr) const override;
bool setCurrentWorkspace(int idx, QScreen *screen = nullptr) override;
int getWindowWorkspace(WId windowId) const override;
bool setWindowOnWorkspace(WId windowId, int idx) override;
void moveApplicationToPrevNextMonitor(WId windowId, bool next, bool raiseOnCurrentDesktop) override;
int onAllWorkspacesEnum() const override;
bool isWindowOnScreen(QScreen *screen, WId windowId) const override;
virtual bool setDesktopLayout(Qt::Orientation orientation, int rows, int columns, bool rightToLeft) override;
// X11 Specific
void moveApplication(WId windowId) override;
void resizeApplication(WId windowId) override;
void refreshIconGeometry(WId windowId, const QRect &geom) override;
// Panel internal
bool isAreaOverlapped(const QRect& area) const override;
// Show Destop
bool isShowingDesktop() const override;
bool showDesktop(bool value) override;
signals:
void reloaded();
// Windows
void windowAdded(WId windowId);
void windowRemoved(WId windowId);
void windowPropertyChanged(WId windowId, int prop);
// Workspaces
void workspacesCountChanged();
void workspaceNameChanged(int idx);
void currentWorkspaceChanged(int idx);
// TODO: needed?
void activeWindowChanged(WId windowId);
};
#endif // LXQT_DUMMY_WM_BACKEND_H
================================================
FILE: panel/backends/lxqttaskbartypes.h
================================================
/* BEGIN_COMMON_COPYRIGHT_HEADER
* (c)LGPL2+
*
* LXQt - a lightweight, Qt based, desktop toolset
* https://lxqt.org
*
* Copyright: 2023 LXQt team
* Authors:
* Filippo Gentile <filippogentile@disroot.org>
*
* This program or library is free software; you can redistribute it
* and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
* Public License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*
* END_COMMON_COPYRIGHT_HEADER */
#ifndef LXQTTASKBARTYPES_H
#define LXQTTASKBARTYPES_H
#include <QtGlobal>
typedef quintptr WId;
enum class LXQtTaskBarBackendAction
{
Move = 0,
Resize,
Maximize,
MaximizeVertically,
MaximizeHorizontally,
Minimize,
RollUp,
FullScreen,
DesktopSwitch,
MoveToDesktop,
MoveToLayer,
MoveToOutput
};
enum class LXQtTaskBarWindowProperty
{
Title = 0,
Icon,
State,
Geometry,
Urgency,
WindowClass,
Workspace
};
enum class LXQtTaskBarWindowState
{
Hidden = 0,
FullScreen,
Minimized,
Maximized,
MaximizedVertically,
MaximizedHorizontally,
Normal,
RolledUp //Shaded
};
enum class LXQtTaskBarWindowLayer
{
KeepBelow = 0,
Normal,
KeepAbove
};
#endif // LXQTTASKBARTYPES_H
================================================
FILE: panel/backends/wayland/CMakeLists.txt
================================================
add_subdirectory(kwin_wayland)
add_subdirectory(wlroots)
add_subdirectory(wayfire)
================================================
FILE: panel/backends/wayland/kwin_wayland/CMakeLists.txt
================================================
set(PLATFORM_NAME kwin_wayland)
set(PREFIX_NAME wmbackend)
set(PROGRAM "lxqt-panel")
set(BACKEND "backend")
set(NAME ${PREFIX_NAME}_${PLATFORM_NAME})
project(${PROGRAM}_${BACKEND}_${NAME})
find_package(Qt6 ${REQUIRED_QT_VERSION} REQUIRED COMPONENTS WaylandClient Concurrent)
set(PROG_SHARE_DIR ${CMAKE_INSTALL_FULL_DATAROOTDIR}/lxqt/${PROGRAM}/${BACKEND})
set(PLUGIN_SHARE_DIR ${PROG_SHARE_DIR}/${BACKEND}/${NAME})
#************************************************
if (NOT DEFINED PLUGIN_DIR)
set (PLUGIN_DIR ${CMAKE_INSTALL_FULL_LIBDIR}/${PROGRAM})
endif (NOT DEFINED PLUGIN_DIR)
set(QTX_LIBRARIES Qt6::Gui)
set(SRC
lxqtwmbackend_kwinwayland.h
lxqtwmbackend_kwinwayland.cpp
lxqtplasmavirtualdesktop.h
lxqtplasmavirtualdesktop.cpp
lxqttaskbarplasmawindowmanagment.h
lxqttaskbarplasmawindowmanagment.cpp
)
add_library(${NAME} MODULE ${SRC}) # build dynamically loadable modules
install(TARGETS ${NAME} DESTINATION ${PLUGIN_DIR}/${BACKEND}) # install the *.so file
target_link_libraries(${NAME} ${QTX_LIBRARIES} Qt6::Concurrent Qt6::WaylandClient)
qt6_generate_wayland_protocol_client_sources(${NAME} FILES
${CMAKE_CURRENT_SOURCE_DIR}/protocols/plasma-window-management.xml
)
qt6_generate_wayland_protocol_client_sources(${NAME} FILES
${CMAKE_CURRENT_SOURCE_DIR}/protocols/org-kde-plasma-virtual-desktop.xml
)
================================================
FILE: panel/backends/wayland/kwin_wayland/lxqtplasmavirtualdesktop.cpp
================================================
/*
SPDX-FileCopyrightText: 2016 Eike Hein <hein@kde.org>
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
Adapted from KDE Plasma Workspace: plasma-workspace/libtaskmanager/waylandtasksmodel.cpp
*/
#include "lxqtplasmavirtualdesktop.h"
#include <algorithm>
LXQtPlasmaVirtualDesktop::LXQtPlasmaVirtualDesktop(::org_kde_plasma_virtual_desktop *object, const QString &id)
: org_kde_plasma_virtual_desktop(object)
, id(id)
{
}
LXQtPlasmaVirtualDesktop::~LXQtPlasmaVirtualDesktop()
{
wl_proxy_destroy(reinterpret_cast<wl_proxy *>(object()));
}
void LXQtPlasmaVirtualDesktop::org_kde_plasma_virtual_desktop_name(const QString &name)
{
this->name = name;
Q_EMIT nameChanged();
}
void LXQtPlasmaVirtualDesktop::org_kde_plasma_virtual_desktop_done()
{
Q_EMIT done();
}
void LXQtPlasmaVirtualDesktop::org_kde_plasma_virtual_desktop_activated()
{
Q_EMIT activated();
}
LXQtPlasmaVirtualDesktopManagment::LXQtPlasmaVirtualDesktopManagment()
: QWaylandClientExtensionTemplate(version)
{
connect(this, &QWaylandClientExtension::activeChanged, this, [this] {
if (!isActive()) {
org_kde_plasma_virtual_desktop_management_destroy(object());
}
});
}
LXQtPlasmaVirtualDesktopManagment::~LXQtPlasmaVirtualDesktopManagment()
{
if (isActive()) {
org_kde_plasma_virtual_desktop_management_destroy(object());
}
}
void LXQtPlasmaVirtualDesktopManagment::org_kde_plasma_virtual_desktop_management_desktop_created(const QString &desktop_id, uint32_t position)
{
emit desktopCreated(desktop_id, position);
}
void LXQtPlasmaVirtualDesktopManagment::org_kde_plasma_virtual_desktop_management_desktop_removed(const QString &desktop_id)
{
emit desktopRemoved(desktop_id);
}
void LXQtPlasmaVirtualDesktopManagment::org_kde_plasma_virtual_desktop_management_rows(uint32_t rows)
{
emit rowsChanged(rows);
}
LXQtPlasmaWaylandWorkspaceInfo::LXQtPlasmaWaylandWorkspaceInfo()
{
init();
}
LXQtPlasmaWaylandWorkspaceInfo::VirtualDesktopsIterator LXQtPlasmaWaylandWorkspaceInfo::findDesktop(const QString &id) const
{
return std::find_if(virtualDesktops.begin(), virtualDesktops.end(),
[&id](const std::unique_ptr<LXQtPlasmaVirtualDesktop> &desktop) {
return desktop->id == id;
});
}
QString LXQtPlasmaWaylandWorkspaceInfo::getDesktopName(int pos) const
{
if(pos < 0 || size_t(pos) >= virtualDesktops.size())
return QString();
return virtualDesktops[pos]->name;
}
QString LXQtPlasmaWaylandWorkspaceInfo::getDesktopId(int pos) const
{
if(pos < 0 || size_t(pos) >= virtualDesktops.size())
return QString();
return virtualDesktops[pos]->id;
}
void LXQtPlasmaWaylandWorkspaceInfo::init()
{
virtualDesktopManagement = std::make_unique<LXQtPlasmaVirtualDesktopManagment>();
connect(virtualDesktopManagement.get(), &LXQtPlasmaVirtualDesktopManagment::activeChanged, this, [this] {
if (!virtualDesktopManagement->isActive()) {
rows = 0;
virtualDesktops.clear();
currentVirtualDesktop.clear();
Q_EMIT currentDesktopChanged();
Q_EMIT numberOfDesktopsChanged();
Q_EMIT navigationWrappingAroundChanged();
Q_EMIT desktopIdsChanged();
Q_EMIT desktopLayoutRowsChanged();
}
});
connect(virtualDesktopManagement.get(), &LXQtPlasmaVirtualDesktopManagment::desktopCreated,
this, &LXQtPlasmaWaylandWorkspaceInfo::addDesktop);
connect(virtualDesktopManagement.get(), &LXQtPlasmaVirtualDesktopManagment::desktopRemoved, this, [this](const QString &id) {
virtualDesktops.erase(std::remove_if(virtualDesktops.begin(), virtualDesktops.end(),
[id](const std::unique_ptr<LXQtPlasmaVirtualDesktop> &desktop)
{
return desktop->id == id;
}),
virtualDesktops.end());
Q_EMIT numberOfDesktopsChanged();
Q_EMIT desktopIdsChanged();
if (currentVirtualDesktop == id) {
currentVirtualDesktop.clear();
Q_EMIT currentDesktopChanged();
}
});
connect(virtualDesktopManagement.get(), &LXQtPlasmaVirtualDesktopManagment::rowsChanged, this, [this](quint32 rows) {
this->rows = rows;
Q_EMIT desktopLayoutRowsChanged();
});
}
void LXQtPlasmaWaylandWorkspaceInfo::addDesktop(const QString &id, quint32 pos)
{
if (findDesktop(id) != virtualDesktops.end()) {
return;
}
auto desktop = std::make_unique<LXQtPlasmaVirtualDesktop>(virtualDesktopManagement->get_virtual_desktop(id), id);
connect(desktop.get(), &LXQtPlasmaVirtualDesktop::activated, this, [id, this]() {
currentVirtualDesktop = id;
Q_EMIT currentDesktopChanged();
});
connect(desktop.get(), &LXQtPlasmaVirtualDesktop::nameChanged, this, [id, this]() {
Q_EMIT desktopNameChanged(position(id));
});
connect(desktop.get(), &LXQtPlasmaVirtualDesktop::done, this, [id, this]() {
Q_EMIT desktopNameChanged(position(id));
});
virtualDesktops.insert(std::next(virtualDesktops.begin(), pos), std::move(desktop));
Q_EMIT numberOfDesktopsChanged();
Q_EMIT desktopIdsChanged();
Q_EMIT desktopNameChanged(position(id));
}
QVariant LXQtPlasmaWaylandWorkspaceInfo::currentDesktop() const
{
return currentVirtualDesktop;
}
int LXQtPlasmaWaylandWorkspaceInfo::numberOfDesktops() const
{
return virtualDesktops.size();
}
quint32 LXQtPlasmaWaylandWorkspaceInfo::position(const QVariant &desktop) const
{
return std::distance(virtualDesktops.begin(), findDesktop(desktop.toString()));
}
QVariantList LXQtPlasmaWaylandWorkspaceInfo::desktopIds() const
{
QVariantList ids;
ids.reserve(virtualDesktops.size());
std::transform(virtualDesktops.cbegin(), virtualDesktops.cend(), std::back_inserter(ids), [](const std::unique_ptr<LXQtPlasmaVirtualDesktop> &desktop) {
return desktop->id;
});
return ids;
}
QStringList LXQtPlasmaWaylandWorkspaceInfo::desktopNames() const
{
if (!virtualDesktopManagement->isActive()) {
return QStringList();
}
QStringList names;
names.reserve(virtualDesktops.size());
std::transform(virtualDesktops.cbegin(), virtualDesktops.cend(), std::back_inserter(names), [](const std::unique_ptr<LXQtPlasmaVirtualDesktop> &desktop) {
return desktop->name;
});
return names;
}
int LXQtPlasmaWaylandWorkspaceInfo::desktopLayoutRows() const
{
if (!virtualDesktopManagement->isActive()) {
return 0;
}
return rows;
}
void LXQtPlasmaWaylandWorkspaceInfo::requestActivate(const QVariant &desktop)
{
if (!virtualDesktopManagement->isActive()) {
return;
}
if (auto it = findDesktop(desktop.toString()); it != virtualDesktops.end()) {
(*it)->request_activate();
}
}
void LXQtPlasmaWaylandWorkspaceInfo::requestCreateDesktop(quint32 position)
{
if (!virtualDesktopManagement->isActive()) {
return;
}
//TODO: translatestd
virtualDesktopManagement->request_create_virtual_desktop(QLatin1String("New Desktop"), position);
}
void LXQtPlasmaWaylandWorkspaceInfo::requestRemoveDesktop(quint32 position)
{
if (!virtualDesktopManagement->isActive()) {
return;
}
if (virtualDesktops.size() == 1) {
return;
}
if (position > (virtualDesktops.size() - 1)) {
return;
}
virtualDesktopManagement->request_remove_virtual_desktop(virtualDesktops.at(position)->id);
}
================================================
FILE: panel/backends/wayland/kwin_wayland/lxqtplasmavirtualdesktop.h
================================================
/*
SPDX-FileCopyrightText: 2016 Eike Hein <hein@kde.org>
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
Adapted from KDE Plasma Workspace: plasma-workspace/libtaskmanager/waylandtasksmodel.cpp
*/
#ifndef LXQTPLASMAVIRTUALDESKTOP_H
#define LXQTPLASMAVIRTUALDESKTOP_H
#include <QVariant>
#include <QtWaylandClient/QWaylandClientExtensionTemplate>
#include <vector>
#include "qwayland-org-kde-plasma-virtual-desktop.h"
class LXQtPlasmaVirtualDesktop : public QObject, public QtWayland::org_kde_plasma_virtual_desktop
{
Q_OBJECT
public:
LXQtPlasmaVirtualDesktop(::org_kde_plasma_virtual_desktop *object, const QString &id);
~LXQtPlasmaVirtualDesktop();
const QString id;
QString name;
Q_SIGNALS:
void done();
void activated();
void nameChanged();
protected:
void org_kde_plasma_virtual_desktop_name(const QString &name) override;
void org_kde_plasma_virtual_desktop_done() override;
void org_kde_plasma_virtual_desktop_activated() override;
};
class LXQtPlasmaVirtualDesktopManagment : public QWaylandClientExtensionTemplate<LXQtPlasmaVirtualDesktopManagment>,
public QtWayland::org_kde_plasma_virtual_desktop_management
{
Q_OBJECT
public:
static constexpr int version = 2;
LXQtPlasmaVirtualDesktopManagment();
~LXQtPlasmaVirtualDesktopManagment();
signals:
void desktopCreated(const QString &id, quint32 position);
void desktopRemoved(const QString &id);
void rowsChanged(const quint32 rows);
protected:
virtual void org_kde_plasma_virtual_desktop_management_desktop_created(const QString &desktop_id, uint32_t position) override;
virtual void org_kde_plasma_virtual_desktop_management_desktop_removed(const QString &desktop_id) override;
virtual void org_kde_plasma_virtual_desktop_management_rows(uint32_t rows) override;
};
class Q_DECL_HIDDEN LXQtPlasmaWaylandWorkspaceInfo : public QObject
{
Q_OBJECT
public:
LXQtPlasmaWaylandWorkspaceInfo();
QVariant currentVirtualDesktop;
std::vector<std::unique_ptr<LXQtPlasmaVirtualDesktop>> virtualDesktops;
std::unique_ptr<LXQtPlasmaVirtualDesktopManagment> virtualDesktopManagement;
quint32 rows;
typedef std::vector<std::unique_ptr<LXQtPlasmaVirtualDesktop>>::const_iterator VirtualDesktopsIterator;
VirtualDesktopsIterator findDesktop(const QString &id) const;
QString getDesktopName(int pos) const;
QString getDesktopId(int pos) const;
void init();
void addDesktop(const QString &id, quint32 pos);
QVariant currentDesktop() const;
int numberOfDesktops() const;
QVariantList desktopIds() const;
QStringList desktopNames() const;
quint32 position(const QVariant &desktop) const;
int desktopLayoutRows() const;
void requestActivate(const QVariant &desktop);
void requestCreateDesktop(quint32 position);
void requestRemoveDesktop(quint32 position);
signals:
void currentDesktopChanged();
void numberOfDesktopsCha
gitextract_ry8cbf98/
├── .ci/
│ └── build.sh
├── .gitattributes
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ ├── config.yml
│ │ └── feature_request.md
│ ├── ISSUE_TEMPLATE.md
│ └── workflows/
│ └── test.yml
├── .gitignore
├── .translation-update
├── AUTHORS
├── CHANGELOG
├── CMakeLists.txt
├── LICENSE
├── README.md
├── autostart/
│ ├── CMakeLists.txt
│ ├── lxqt-panel.desktop.in
│ ├── lxqt-panel_wayland.desktop.in
│ └── translations/
│ ├── lxqt-panel.desktop.yaml
│ ├── lxqt-panel_ar.desktop.yaml
│ ├── lxqt-panel_bg.desktop.yaml
│ ├── lxqt-panel_ca.desktop.yaml
│ ├── lxqt-panel_cs.desktop.yaml
│ ├── lxqt-panel_da.desktop.yaml
│ ├── lxqt-panel_de.desktop.yaml
│ ├── lxqt-panel_el.desktop.yaml
│ ├── lxqt-panel_en_GB.desktop.yaml
│ ├── lxqt-panel_eo.desktop.yaml
│ ├── lxqt-panel_es.desktop.yaml
│ ├── lxqt-panel_es_VE.desktop.yaml
│ ├── lxqt-panel_et.desktop.yaml
│ ├── lxqt-panel_eu.desktop.yaml
│ ├── lxqt-panel_fi.desktop.yaml
│ ├── lxqt-panel_fr.desktop.yaml
│ ├── lxqt-panel_gl.desktop.yaml
│ ├── lxqt-panel_he.desktop.yaml
│ ├── lxqt-panel_hr.desktop.yaml
│ ├── lxqt-panel_hu.desktop.yaml
│ ├── lxqt-panel_ia.desktop.yaml
│ ├── lxqt-panel_id.desktop.yaml
│ ├── lxqt-panel_it.desktop.yaml
│ ├── lxqt-panel_ja.desktop.yaml
│ ├── lxqt-panel_ka.desktop.yaml
│ ├── lxqt-panel_kab.desktop.yaml
│ ├── lxqt-panel_kk.desktop.yaml
│ ├── lxqt-panel_ko.desktop.yaml
│ ├── lxqt-panel_lg.desktop.yaml
│ ├── lxqt-panel_lt.desktop.yaml
│ ├── lxqt-panel_lv.desktop.yaml
│ ├── lxqt-panel_nb_NO.desktop.yaml
│ ├── lxqt-panel_nl.desktop.yaml
│ ├── lxqt-panel_oc.desktop.yaml
│ ├── lxqt-panel_pa.desktop.yaml
│ ├── lxqt-panel_pl.desktop.yaml
│ ├── lxqt-panel_pt.desktop.yaml
│ ├── lxqt-panel_pt_BR.desktop.yaml
│ ├── lxqt-panel_ro.desktop.yaml
│ ├── lxqt-panel_ru.desktop.yaml
│ ├── lxqt-panel_si.desktop.yaml
│ ├── lxqt-panel_sk.desktop.yaml
│ ├── lxqt-panel_sl.desktop.yaml
│ ├── lxqt-panel_sr.desktop.yaml
│ ├── lxqt-panel_sv.desktop.yaml
│ ├── lxqt-panel_th.desktop.yaml
│ ├── lxqt-panel_tr.desktop.yaml
│ ├── lxqt-panel_uk.desktop.yaml
│ ├── lxqt-panel_zh_CN.desktop.yaml
│ └── lxqt-panel_zh_TW.desktop.yaml
├── cmake/
│ └── BuildPlugin.cmake
├── panel/
│ ├── CMakeLists.txt
│ ├── backends/
│ │ ├── CMakeLists.txt
│ │ ├── ilxqtabstractwmiface.cpp
│ │ ├── ilxqtabstractwmiface.h
│ │ ├── lxqtdummywmbackend.cpp
│ │ ├── lxqtdummywmbackend.h
│ │ ├── lxqttaskbartypes.h
│ │ ├── wayland/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── kwin_wayland/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── lxqtplasmavirtualdesktop.cpp
│ │ │ │ ├── lxqtplasmavirtualdesktop.h
│ │ │ │ ├── lxqttaskbarplasmawindowmanagment.cpp
│ │ │ │ ├── lxqttaskbarplasmawindowmanagment.h
│ │ │ │ ├── lxqtwmbackend_kwinwayland.cpp
│ │ │ │ ├── lxqtwmbackend_kwinwayland.h
│ │ │ │ └── protocols/
│ │ │ │ ├── org-kde-plasma-virtual-desktop.xml
│ │ │ │ └── plasma-window-management.xml
│ │ │ ├── protocols/
│ │ │ │ ├── org-kde-plasma-virtual-desktop.xml
│ │ │ │ └── plasma-window-management.xml
│ │ │ ├── wayfire/
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── lxqtwmbackend_wf.cpp
│ │ │ │ ├── lxqtwmbackend_wf.h
│ │ │ │ ├── wayfire-common.cpp
│ │ │ │ └── wayfire-common.h
│ │ │ └── wlroots/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── ext-workspace-v1.xml
│ │ │ ├── lxqttaskbarwlrwm.cpp
│ │ │ ├── lxqttaskbarwlrwm.h
│ │ │ ├── lxqtwmbackend_wlr.cpp
│ │ │ ├── lxqtwmbackend_wlr.h
│ │ │ ├── wlr-foreign-toplevel-management-unstable-v1.xml
│ │ │ ├── workspace.cpp
│ │ │ └── workspace.hpp
│ │ └── xcb/
│ │ ├── CMakeLists.txt
│ │ ├── lxqtwmbackend_x11.cpp
│ │ └── lxqtwmbackend_x11.h
│ ├── config/
│ │ ├── addplugindialog.cpp
│ │ ├── addplugindialog.h
│ │ ├── addplugindialog.ui
│ │ ├── configpaneldialog.cpp
│ │ ├── configpaneldialog.h
│ │ ├── configplacement.cpp
│ │ ├── configplacement.h
│ │ ├── configplacement.ui
│ │ ├── configpluginswidget.cpp
│ │ ├── configpluginswidget.h
│ │ ├── configpluginswidget.ui
│ │ ├── configstyling.cpp
│ │ ├── configstyling.h
│ │ └── configstyling.ui
│ ├── ilxqtpanel.h
│ ├── ilxqtpanelplugin.h
│ ├── lxqtpanel.cpp
│ ├── lxqtpanel.h
│ ├── lxqtpanelapplication.cpp
│ ├── lxqtpanelapplication.h
│ ├── lxqtpanelapplication_p.h
│ ├── lxqtpanelglobals.h
│ ├── lxqtpanellayout.cpp
│ ├── lxqtpanellayout.h
│ ├── lxqtpanellimits.h
│ ├── lxqtpanelpluginconfigdialog.cpp
│ ├── lxqtpanelpluginconfigdialog.h
│ ├── main.cpp
│ ├── man/
│ │ └── lxqt-panel.1
│ ├── panelpluginsmodel.cpp
│ ├── panelpluginsmodel.h
│ ├── plugin.cpp
│ ├── plugin.h
│ ├── pluginmoveprocessor.cpp
│ ├── pluginmoveprocessor.h
│ ├── pluginsettings.cpp
│ ├── pluginsettings.h
│ ├── pluginsettings_p.h
│ ├── popupmenu.cpp
│ ├── popupmenu.h
│ ├── resources/
│ │ └── panel.conf
│ ├── translations/
│ │ ├── lxqt-panel.ts
│ │ ├── lxqt-panel_ar.ts
│ │ ├── lxqt-panel_arn.ts
│ │ ├── lxqt-panel_ast.ts
│ │ ├── lxqt-panel_bg.ts
│ │ ├── lxqt-panel_ca.ts
│ │ ├── lxqt-panel_cs.ts
│ │ ├── lxqt-panel_cy.ts
│ │ ├── lxqt-panel_da.ts
│ │ ├── lxqt-panel_de.ts
│ │ ├── lxqt-panel_el.ts
│ │ ├── lxqt-panel_en_GB.ts
│ │ ├── lxqt-panel_eo.ts
│ │ ├── lxqt-panel_es.ts
│ │ ├── lxqt-panel_es_UY.ts
│ │ ├── lxqt-panel_es_VE.ts
│ │ ├── lxqt-panel_et.ts
│ │ ├── lxqt-panel_eu.ts
│ │ ├── lxqt-panel_fa.ts
│ │ ├── lxqt-panel_fi.ts
│ │ ├── lxqt-panel_fr.ts
│ │ ├── lxqt-panel_gl.ts
│ │ ├── lxqt-panel_he.ts
│ │ ├── lxqt-panel_hr.ts
│ │ ├── lxqt-panel_hu.ts
│ │ ├── lxqt-panel_ia.ts
│ │ ├── lxqt-panel_id.ts
│ │ ├── lxqt-panel_is.ts
│ │ ├── lxqt-panel_it.ts
│ │ ├── lxqt-panel_ja.ts
│ │ ├── lxqt-panel_ka.ts
│ │ ├── lxqt-panel_kab.ts
│ │ ├── lxqt-panel_kk.ts
│ │ ├── lxqt-panel_ko.ts
│ │ ├── lxqt-panel_lg.ts
│ │ ├── lxqt-panel_lt.ts
│ │ ├── lxqt-panel_lv.ts
│ │ ├── lxqt-panel_nb_NO.ts
│ │ ├── lxqt-panel_nl.ts
│ │ ├── lxqt-panel_oc.ts
│ │ ├── lxqt-panel_pa.ts
│ │ ├── lxqt-panel_pl.ts
│ │ ├── lxqt-panel_pt.ts
│ │ ├── lxqt-panel_pt_BR.ts
│ │ ├── lxqt-panel_ro_RO.ts
│ │ ├── lxqt-panel_ru.ts
│ │ ├── lxqt-panel_si.ts
│ │ ├── lxqt-panel_sk_SK.ts
│ │ ├── lxqt-panel_sl.ts
│ │ ├── lxqt-panel_sr@ijekavian.ts
│ │ ├── lxqt-panel_sr@latin.ts
│ │ ├── lxqt-panel_sr_BA.ts
│ │ ├── lxqt-panel_sr_RS.ts
│ │ ├── lxqt-panel_sv.ts
│ │ ├── lxqt-panel_th_TH.ts
│ │ ├── lxqt-panel_tr.ts
│ │ ├── lxqt-panel_uk.ts
│ │ ├── lxqt-panel_vi.ts
│ │ ├── lxqt-panel_zh_CN.ts
│ │ └── lxqt-panel_zh_TW.ts
│ ├── windownotifier.cpp
│ └── windownotifier.h
├── plugin-backlight/
│ ├── CMakeLists.txt
│ ├── backlight.cpp
│ ├── backlight.h
│ ├── resources/
│ │ └── backlight.desktop.in
│ ├── sliderdialog.cpp
│ ├── sliderdialog.h
│ └── translations/
│ ├── backlight.desktop.yaml
│ ├── backlight_ar.desktop.yaml
│ ├── backlight_bg.desktop.yaml
│ ├── backlight_ca.desktop.yaml
│ ├── backlight_cs.desktop.yaml
│ ├── backlight_da.desktop.yaml
│ ├── backlight_de.desktop.yaml
│ ├── backlight_el.desktop.yaml
│ ├── backlight_en_GB.desktop.yaml
│ ├── backlight_es.desktop.yaml
│ ├── backlight_et.desktop.yaml
│ ├── backlight_fi.desktop.yaml
│ ├── backlight_fr.desktop.yaml
│ ├── backlight_he.desktop.yaml
│ ├── backlight_hr.desktop.yaml
│ ├── backlight_hu.desktop.yaml
│ ├── backlight_it.desktop.yaml
│ ├── backlight_ja.desktop.yaml
│ ├── backlight_ka.desktop.yaml
│ ├── backlight_kk.desktop.yaml
│ ├── backlight_ko.desktop.yaml
│ ├── backlight_lg.desktop.yaml
│ ├── backlight_lt.desktop.yaml
│ ├── backlight_lv.desktop.yaml
│ ├── backlight_nb_NO.desktop.yaml
│ ├── backlight_nl.desktop.yaml
│ ├── backlight_oc.desktop.yaml
│ ├── backlight_pa.desktop.yaml
│ ├── backlight_pl.desktop.yaml
│ ├── backlight_pt.desktop.yaml
│ ├── backlight_ru.desktop.yaml
│ ├── backlight_si.desktop.yaml
│ ├── backlight_sk.desktop.yaml
│ ├── backlight_sr.desktop.yaml
│ ├── backlight_sv.desktop.yaml
│ ├── backlight_tr.desktop.yaml
│ ├── backlight_uk.desktop.yaml
│ ├── backlight_zh_CN.desktop.yaml
│ └── backlight_zh_TW.desktop.yaml
├── plugin-colorpicker/
│ ├── CMakeLists.txt
│ ├── colorbutton.cpp
│ ├── colorbutton.h
│ ├── colorpicker.cpp
│ ├── colorpicker.h
│ ├── resources/
│ │ └── colorpicker.desktop.in
│ └── translations/
│ ├── colorpicker.desktop.yaml
│ ├── colorpicker.ts
│ ├── colorpicker_ar.desktop.yaml
│ ├── colorpicker_ar.ts
│ ├── colorpicker_bg.desktop.yaml
│ ├── colorpicker_bg.ts
│ ├── colorpicker_ca.desktop.yaml
│ ├── colorpicker_ca.ts
│ ├── colorpicker_cs.desktop.yaml
│ ├── colorpicker_cs.ts
│ ├── colorpicker_da.desktop.yaml
│ ├── colorpicker_da.ts
│ ├── colorpicker_de.desktop.yaml
│ ├── colorpicker_de.ts
│ ├── colorpicker_el.desktop.yaml
│ ├── colorpicker_el.ts
│ ├── colorpicker_en_GB.desktop.yaml
│ ├── colorpicker_en_GB.ts
│ ├── colorpicker_es.desktop.yaml
│ ├── colorpicker_es_VE.desktop.yaml
│ ├── colorpicker_et.desktop.yaml
│ ├── colorpicker_et.ts
│ ├── colorpicker_eu.desktop.yaml
│ ├── colorpicker_fi.desktop.yaml
│ ├── colorpicker_fi.ts
│ ├── colorpicker_fr.desktop.yaml
│ ├── colorpicker_fr.ts
│ ├── colorpicker_he.desktop.yaml
│ ├── colorpicker_he.ts
│ ├── colorpicker_hr.desktop.yaml
│ ├── colorpicker_hr.ts
│ ├── colorpicker_hu.desktop.yaml
│ ├── colorpicker_hu.ts
│ ├── colorpicker_it.desktop.yaml
│ ├── colorpicker_it.ts
│ ├── colorpicker_ja.desktop.yaml
│ ├── colorpicker_ka.desktop.yaml
│ ├── colorpicker_ka.ts
│ ├── colorpicker_kab.desktop.yaml
│ ├── colorpicker_kab.ts
│ ├── colorpicker_kk.desktop.yaml
│ ├── colorpicker_kk.ts
│ ├── colorpicker_ko.desktop.yaml
│ ├── colorpicker_ko.ts
│ ├── colorpicker_lg.desktop.yaml
│ ├── colorpicker_lg.ts
│ ├── colorpicker_lt.desktop.yaml
│ ├── colorpicker_lt.ts
│ ├── colorpicker_lv.desktop.yaml
│ ├── colorpicker_nb_NO.desktop.yaml
│ ├── colorpicker_nl.desktop.yaml
│ ├── colorpicker_nl.ts
│ ├── colorpicker_oc.desktop.yaml
│ ├── colorpicker_oc.ts
│ ├── colorpicker_pa.desktop.yaml
│ ├── colorpicker_pl.desktop.yaml
│ ├── colorpicker_pl.ts
│ ├── colorpicker_pt.desktop.yaml
│ ├── colorpicker_pt.ts
│ ├── colorpicker_pt_BR.desktop.yaml
│ ├── colorpicker_pt_BR.ts
│ ├── colorpicker_ro.desktop.yaml
│ ├── colorpicker_ru.desktop.yaml
│ ├── colorpicker_ru.ts
│ ├── colorpicker_si.desktop.yaml
│ ├── colorpicker_sk.desktop.yaml
│ ├── colorpicker_sk.ts
│ ├── colorpicker_sr.desktop.yaml
│ ├── colorpicker_sr.ts
│ ├── colorpicker_sv.desktop.yaml
│ ├── colorpicker_sv.ts
│ ├── colorpicker_th.desktop.yaml
│ ├── colorpicker_tr.desktop.yaml
│ ├── colorpicker_tr.ts
│ ├── colorpicker_uk.desktop.yaml
│ ├── colorpicker_zh_CN.desktop.yaml
│ ├── colorpicker_zh_CN.ts
│ ├── colorpicker_zh_TW.desktop.yaml
│ └── colorpicker_zh_TW.ts
├── plugin-cpuload/
│ ├── CMakeLists.txt
│ ├── lxqtcpuload.cpp
│ ├── lxqtcpuload.h
│ ├── lxqtcpuloadconfiguration.cpp
│ ├── lxqtcpuloadconfiguration.h
│ ├── lxqtcpuloadconfiguration.ui
│ ├── lxqtcpuloadplugin.cpp
│ ├── lxqtcpuloadplugin.h
│ ├── resources/
│ │ └── cpuload.desktop.in
│ └── translations/
│ ├── cpuload.desktop.yaml
│ ├── cpuload.ts
│ ├── cpuload_ar.desktop.yaml
│ ├── cpuload_ar.ts
│ ├── cpuload_arn.ts
│ ├── cpuload_ast.ts
│ ├── cpuload_bg.desktop.yaml
│ ├── cpuload_bg.ts
│ ├── cpuload_ca.desktop.yaml
│ ├── cpuload_ca.ts
│ ├── cpuload_cs.desktop.yaml
│ ├── cpuload_cs.ts
│ ├── cpuload_cy.ts
│ ├── cpuload_da.desktop.yaml
│ ├── cpuload_da.ts
│ ├── cpuload_de.desktop.yaml
│ ├── cpuload_de.ts
│ ├── cpuload_el.desktop.yaml
│ ├── cpuload_el.ts
│ ├── cpuload_en_GB.desktop.yaml
│ ├── cpuload_en_GB.ts
│ ├── cpuload_eo.desktop.yaml
│ ├── cpuload_eo.ts
│ ├── cpuload_es.desktop.yaml
│ ├── cpuload_es.ts
│ ├── cpuload_es_VE.desktop.yaml
│ ├── cpuload_es_VE.ts
│ ├── cpuload_et.desktop.yaml
│ ├── cpuload_et.ts
│ ├── cpuload_eu.desktop.yaml
│ ├── cpuload_eu.ts
│ ├── cpuload_fi.desktop.yaml
│ ├── cpuload_fi.ts
│ ├── cpuload_fr.desktop.yaml
│ ├── cpuload_fr.ts
│ ├── cpuload_gl.ts
│ ├── cpuload_he.desktop.yaml
│ ├── cpuload_he.ts
│ ├── cpuload_hr.desktop.yaml
│ ├── cpuload_hr.ts
│ ├── cpuload_hu.desktop.yaml
│ ├── cpuload_hu.ts
│ ├── cpuload_id.ts
│ ├── cpuload_it.desktop.yaml
│ ├── cpuload_it.ts
│ ├── cpuload_ja.desktop.yaml
│ ├── cpuload_ja.ts
│ ├── cpuload_ka.desktop.yaml
│ ├── cpuload_ka.ts
│ ├── cpuload_kab.desktop.yaml
│ ├── cpuload_kk.desktop.yaml
│ ├── cpuload_kk.ts
│ ├── cpuload_ko.desktop.yaml
│ ├── cpuload_ko.ts
│ ├── cpuload_lg.desktop.yaml
│ ├── cpuload_lg.ts
│ ├── cpuload_lt.desktop.yaml
│ ├── cpuload_lt.ts
│ ├── cpuload_lv.desktop.yaml
│ ├── cpuload_lv.ts
│ ├── cpuload_nb_NO.desktop.yaml
│ ├── cpuload_nb_NO.ts
│ ├── cpuload_nl.desktop.yaml
│ ├── cpuload_nl.ts
│ ├── cpuload_oc.desktop.yaml
│ ├── cpuload_oc.ts
│ ├── cpuload_pa.desktop.yaml
│ ├── cpuload_pa.ts
│ ├── cpuload_pl.desktop.yaml
│ ├── cpuload_pl.ts
│ ├── cpuload_pt.desktop.yaml
│ ├── cpuload_pt.ts
│ ├── cpuload_pt_BR.desktop.yaml
│ ├── cpuload_pt_BR.ts
│ ├── cpuload_ro.desktop.yaml
│ ├── cpuload_ro_RO.ts
│ ├── cpuload_ru.desktop.yaml
│ ├── cpuload_ru.ts
│ ├── cpuload_si.desktop.yaml
│ ├── cpuload_si.ts
│ ├── cpuload_sk.desktop.yaml
│ ├── cpuload_sk_SK.ts
│ ├── cpuload_sl.desktop.yaml
│ ├── cpuload_sl.ts
│ ├── cpuload_sr.desktop.yaml
│ ├── cpuload_sr.ts
│ ├── cpuload_sv.desktop.yaml
│ ├── cpuload_sv.ts
│ ├── cpuload_th.desktop.yaml
│ ├── cpuload_th_TH.ts
│ ├── cpuload_tr.desktop.yaml
│ ├── cpuload_tr.ts
│ ├── cpuload_uk.desktop.yaml
│ ├── cpuload_uk.ts
│ ├── cpuload_zh_CN.desktop.yaml
│ ├── cpuload_zh_CN.ts
│ ├── cpuload_zh_TW.desktop.yaml
│ └── cpuload_zh_TW.ts
├── plugin-customcommand/
│ ├── CMakeLists.txt
│ ├── colorLabel.cpp
│ ├── colorLabel.h
│ ├── custombutton.cpp
│ ├── custombutton.h
│ ├── lxqtcustomcommand.cpp
│ ├── lxqtcustomcommand.h
│ ├── lxqtcustomcommandconfiguration.cpp
│ ├── lxqtcustomcommandconfiguration.h
│ ├── lxqtcustomcommandconfiguration.ui
│ ├── resources/
│ │ └── customcommand.desktop.in
│ └── translations/
│ ├── customcommand.desktop.yaml
│ ├── customcommand.ts
│ ├── customcommand_ar.desktop.yaml
│ ├── customcommand_ar.ts
│ ├── customcommand_bg.desktop.yaml
│ ├── customcommand_bg.ts
│ ├── customcommand_ca.desktop.yaml
│ ├── customcommand_ca.ts
│ ├── customcommand_cs.desktop.yaml
│ ├── customcommand_cs.ts
│ ├── customcommand_da.desktop.yaml
│ ├── customcommand_da.ts
│ ├── customcommand_de.desktop.yaml
│ ├── customcommand_de.ts
│ ├── customcommand_el.desktop.yaml
│ ├── customcommand_el.ts
│ ├── customcommand_en_GB.desktop.yaml
│ ├── customcommand_en_GB.ts
│ ├── customcommand_es.desktop.yaml
│ ├── customcommand_es.ts
│ ├── customcommand_et.desktop.yaml
│ ├── customcommand_et.ts
│ ├── customcommand_fi.desktop.yaml
│ ├── customcommand_fi.ts
│ ├── customcommand_fr.desktop.yaml
│ ├── customcommand_fr.ts
│ ├── customcommand_he.desktop.yaml
│ ├── customcommand_he.ts
│ ├── customcommand_hr.desktop.yaml
│ ├── customcommand_hr.ts
│ ├── customcommand_hu.desktop.yaml
│ ├── customcommand_hu.ts
│ ├── customcommand_it.desktop.yaml
│ ├── customcommand_it.ts
│ ├── customcommand_ja.desktop.yaml
│ ├── customcommand_ja.ts
│ ├── customcommand_ka.desktop.yaml
│ ├── customcommand_ka.ts
│ ├── customcommand_kk.ts
│ ├── customcommand_ko.desktop.yaml
│ ├── customcommand_ko.ts
│ ├── customcommand_lg.desktop.yaml
│ ├── customcommand_lg.ts
│ ├── customcommand_lt.desktop.yaml
│ ├── customcommand_lt.ts
│ ├── customcommand_lv.desktop.yaml
│ ├── customcommand_lv.ts
│ ├── customcommand_nb_NO.desktop.yaml
│ ├── customcommand_nb_NO.ts
│ ├── customcommand_nl.desktop.yaml
│ ├── customcommand_nl.ts
│ ├── customcommand_oc.ts
│ ├── customcommand_pa.ts
│ ├── customcommand_pl.desktop.yaml
│ ├── customcommand_pl.ts
│ ├── customcommand_pt.desktop.yaml
│ ├── customcommand_pt.ts
│ ├── customcommand_pt_BR.desktop.yaml
│ ├── customcommand_pt_BR.ts
│ ├── customcommand_ru.desktop.yaml
│ ├── customcommand_ru.ts
│ ├── customcommand_sk.desktop.yaml
│ ├── customcommand_sk.ts
│ ├── customcommand_sr.ts
│ ├── customcommand_sv.desktop.yaml
│ ├── customcommand_sv.ts
│ ├── customcommand_tr.desktop.yaml
│ ├── customcommand_tr.ts
│ ├── customcommand_uk.desktop.yaml
│ ├── customcommand_uk.ts
│ ├── customcommand_zh_CN.desktop.yaml
│ ├── customcommand_zh_CN.ts
│ ├── customcommand_zh_TW.desktop.yaml
│ └── customcommand_zh_TW.ts
├── plugin-desktopswitch/
│ ├── CMakeLists.txt
│ ├── desktopswitch.cpp
│ ├── desktopswitch.h
│ ├── desktopswitchbutton.cpp
│ ├── desktopswitchbutton.h
│ ├── desktopswitchconfiguration.cpp
│ ├── desktopswitchconfiguration.h
│ ├── desktopswitchconfiguration.ui
│ ├── resources/
│ │ └── desktopswitch.desktop.in
│ └── translations/
│ ├── desktopswitch.desktop.yaml
│ ├── desktopswitch.ts
│ ├── desktopswitch_ar.desktop.yaml
│ ├── desktopswitch_ar.ts
│ ├── desktopswitch_arn.ts
│ ├── desktopswitch_ast.ts
│ ├── desktopswitch_bg.desktop.yaml
│ ├── desktopswitch_bg.ts
│ ├── desktopswitch_ca.desktop.yaml
│ ├── desktopswitch_ca.ts
│ ├── desktopswitch_cs.desktop.yaml
│ ├── desktopswitch_cs.ts
│ ├── desktopswitch_cy.ts
│ ├── desktopswitch_da.desktop.yaml
│ ├── desktopswitch_da.ts
│ ├── desktopswitch_de.desktop.yaml
│ ├── desktopswitch_de.ts
│ ├── desktopswitch_el.desktop.yaml
│ ├── desktopswitch_el.ts
│ ├── desktopswitch_en_GB.desktop.yaml
│ ├── desktopswitch_en_GB.ts
│ ├── desktopswitch_eo.desktop.yaml
│ ├── desktopswitch_eo.ts
│ ├── desktopswitch_es.desktop.yaml
│ ├── desktopswitch_es.ts
│ ├── desktopswitch_es_UY.ts
│ ├── desktopswitch_es_VE.desktop.yaml
│ ├── desktopswitch_es_VE.ts
│ ├── desktopswitch_et.desktop.yaml
│ ├── desktopswitch_et.ts
│ ├── desktopswitch_eu.desktop.yaml
│ ├── desktopswitch_eu.ts
│ ├── desktopswitch_fi.desktop.yaml
│ ├── desktopswitch_fi.ts
│ ├── desktopswitch_fr.desktop.yaml
│ ├── desktopswitch_fr.ts
│ ├── desktopswitch_gl.ts
│ ├── desktopswitch_he.desktop.yaml
│ ├── desktopswitch_he.ts
│ ├── desktopswitch_hr.desktop.yaml
│ ├── desktopswitch_hr.ts
│ ├── desktopswitch_hu.desktop.yaml
│ ├── desktopswitch_hu.ts
│ ├── desktopswitch_ia.ts
│ ├── desktopswitch_id.ts
│ ├── desktopswitch_it.desktop.yaml
│ ├── desktopswitch_it.ts
│ ├── desktopswitch_ja.desktop.yaml
│ ├── desktopswitch_ja.ts
│ ├── desktopswitch_ka.desktop.yaml
│ ├── desktopswitch_ka.ts
│ ├── desktopswitch_kab.ts
│ ├── desktopswitch_kk.ts
│ ├── desktopswitch_ko.desktop.yaml
│ ├── desktopswitch_ko.ts
│ ├── desktopswitch_lg.desktop.yaml
│ ├── desktopswitch_lg.ts
│ ├── desktopswitch_lt.desktop.yaml
│ ├── desktopswitch_lt.ts
│ ├── desktopswitch_lv.desktop.yaml
│ ├── desktopswitch_lv.ts
│ ├── desktopswitch_nb_NO.desktop.yaml
│ ├── desktopswitch_nb_NO.ts
│ ├── desktopswitch_nl.desktop.yaml
│ ├── desktopswitch_nl.ts
│ ├── desktopswitch_oc.ts
│ ├── desktopswitch_pa.desktop.yaml
│ ├── desktopswitch_pa.ts
│ ├── desktopswitch_pl.desktop.yaml
│ ├── desktopswitch_pl.ts
│ ├── desktopswitch_pt.desktop.yaml
│ ├── desktopswitch_pt.ts
│ ├── desktopswitch_pt_BR.desktop.yaml
│ ├── desktopswitch_pt_BR.ts
│ ├── desktopswitch_ro.desktop.yaml
│ ├── desktopswitch_ro_RO.ts
│ ├── desktopswitch_ru.desktop.yaml
│ ├── desktopswitch_ru.ts
│ ├── desktopswitch_si.desktop.yaml
│ ├── desktopswitch_si.ts
│ ├── desktopswitch_sk.desktop.yaml
│ ├── desktopswitch_sk_SK.ts
│ ├── desktopswitch_sl.desktop.yaml
│ ├── desktopswitch_sl.ts
│ ├── desktopswitch_sr.desktop.yaml
│ ├── desktopswitch_sr@ijekavian.desktop.yaml
│ ├── desktopswitch_sr@ijekavian.ts
│ ├── desktopswitch_sr@ijekavianlatin.desktop.yaml
│ ├── desktopswitch_sr@latin.desktop.yaml
│ ├── desktopswitch_sr@latin.ts
│ ├── desktopswitch_sr_BA.ts
│ ├── desktopswitch_sr_RS.ts
│ ├── desktopswitch_sv.desktop.yaml
│ ├── desktopswitch_sv.ts
│ ├── desktopswitch_th.desktop.yaml
│ ├── desktopswitch_th_TH.ts
│ ├── desktopswitch_tr.desktop.yaml
│ ├── desktopswitch_tr.ts
│ ├── desktopswitch_uk.desktop.yaml
│ ├── desktopswitch_uk.ts
│ ├── desktopswitch_zh_CN.desktop.yaml
│ ├── desktopswitch_zh_CN.ts
│ ├── desktopswitch_zh_TW.desktop.yaml
│ └── desktopswitch_zh_TW.ts
├── plugin-directorymenu/
│ ├── CMakeLists.txt
│ ├── directorymenu.cpp
│ ├── directorymenu.h
│ ├── directorymenuconfiguration.cpp
│ ├── directorymenuconfiguration.h
│ ├── directorymenuconfiguration.ui
│ ├── resources/
│ │ └── directorymenu.desktop.in
│ └── translations/
│ ├── directorymenu.desktop.yaml
│ ├── directorymenu.ts
│ ├── directorymenu_ar.desktop.yaml
│ ├── directorymenu_ar.ts
│ ├── directorymenu_arn.ts
│ ├── directorymenu_ast.ts
│ ├── directorymenu_bg.desktop.yaml
│ ├── directorymenu_bg.ts
│ ├── directorymenu_ca.desktop.yaml
│ ├── directorymenu_ca.ts
│ ├── directorymenu_cs.desktop.yaml
│ ├── directorymenu_cs.ts
│ ├── directorymenu_cy.ts
│ ├── directorymenu_da.desktop.yaml
│ ├── directorymenu_da.ts
│ ├── directorymenu_de.desktop.yaml
│ ├── directorymenu_de.ts
│ ├── directorymenu_el.desktop.yaml
│ ├── directorymenu_el.ts
│ ├── directorymenu_en_GB.desktop.yaml
│ ├── directorymenu_en_GB.ts
│ ├── directorymenu_es.desktop.yaml
│ ├── directorymenu_es.ts
│ ├── directorymenu_et.desktop.yaml
│ ├── directorymenu_et.ts
│ ├── directorymenu_fi.desktop.yaml
│ ├── directorymenu_fi.ts
│ ├── directorymenu_fr.desktop.yaml
│ ├── directorymenu_fr.ts
│ ├── directorymenu_gl.ts
│ ├── directorymenu_he.desktop.yaml
│ ├── directorymenu_he.ts
│ ├── directorymenu_hr.desktop.yaml
│ ├── directorymenu_hr.ts
│ ├── directorymenu_hu.desktop.yaml
│ ├── directorymenu_hu.ts
│ ├── directorymenu_id.ts
│ ├── directorymenu_it.desktop.yaml
│ ├── directorymenu_it.ts
│ ├── directorymenu_ja.desktop.yaml
│ ├── directorymenu_ja.ts
│ ├── directorymenu_ka.desktop.yaml
│ ├── directorymenu_ka.ts
│ ├── directorymenu_kab.ts
│ ├── directorymenu_kk.desktop.yaml
│ ├── directorymenu_kk.ts
│ ├── directorymenu_ko.desktop.yaml
│ ├── directorymenu_ko.ts
│ ├── directorymenu_lg.desktop.yaml
│ ├── directorymenu_lg.ts
│ ├── directorymenu_lt.desktop.yaml
│ ├── directorymenu_lt.ts
│ ├── directorymenu_lv.desktop.yaml
│ ├── directorymenu_lv.ts
│ ├── directorymenu_nb_NO.desktop.yaml
│ ├── directorymenu_nb_NO.ts
│ ├── directorymenu_nl.desktop.yaml
│ ├── directorymenu_nl.ts
│ ├── directorymenu_oc.desktop.yaml
│ ├── directorymenu_oc.ts
│ ├── directorymenu_pa.desktop.yaml
│ ├── directorymenu_pa.ts
│ ├── directorymenu_pl.desktop.yaml
│ ├── directorymenu_pl.ts
│ ├── directorymenu_pt.desktop.yaml
│ ├── directorymenu_pt.ts
│ ├── directorymenu_pt_BR.desktop.yaml
│ ├── directorymenu_pt_BR.ts
│ ├── directorymenu_ru.desktop.yaml
│ ├── directorymenu_ru.ts
│ ├── directorymenu_si.desktop.yaml
│ ├── directorymenu_si.ts
│ ├── directorymenu_sk.desktop.yaml
│ ├── directorymenu_sk_SK.ts
│ ├── directorymenu_sr.desktop.yaml
│ ├── directorymenu_sv.desktop.yaml
│ ├── directorymenu_sv.ts
│ ├── directorymenu_tr.desktop.yaml
│ ├── directorymenu_tr.ts
│ ├── directorymenu_uk.desktop.yaml
│ ├── directorymenu_uk.ts
│ ├── directorymenu_zh_CN.desktop.yaml
│ ├── directorymenu_zh_CN.ts
│ ├── directorymenu_zh_TW.desktop.yaml
│ └── directorymenu_zh_TW.ts
├── plugin-dom/
│ ├── CMakeLists.txt
│ ├── domplugin.cpp
│ ├── domplugin.h
│ ├── domtreeitem.cpp
│ ├── domtreeitem.h
│ ├── resources/
│ │ └── dom.desktop.in
│ ├── resources.qrc
│ ├── translations/
│ │ ├── dom.desktop.yaml
│ │ ├── dom.ts
│ │ ├── dom_ar.desktop.yaml
│ │ ├── dom_ar.ts
│ │ ├── dom_arn.ts
│ │ ├── dom_ast.ts
│ │ ├── dom_bg.desktop.yaml
│ │ ├── dom_bg.ts
│ │ ├── dom_ca.desktop.yaml
│ │ ├── dom_ca.ts
│ │ ├── dom_cs.desktop.yaml
│ │ ├── dom_cs.ts
│ │ ├── dom_cy.ts
│ │ ├── dom_da.desktop.yaml
│ │ ├── dom_da.ts
│ │ ├── dom_de.desktop.yaml
│ │ ├── dom_de.ts
│ │ ├── dom_el.desktop.yaml
│ │ ├── dom_el.ts
│ │ ├── dom_en_GB.desktop.yaml
│ │ ├── dom_en_GB.ts
│ │ ├── dom_es.desktop.yaml
│ │ ├── dom_es.ts
│ │ ├── dom_et.desktop.yaml
│ │ ├── dom_et.ts
│ │ ├── dom_fi.desktop.yaml
│ │ ├── dom_fi.ts
│ │ ├── dom_fr.desktop.yaml
│ │ ├── dom_fr.ts
│ │ ├── dom_gl.ts
│ │ ├── dom_he.desktop.yaml
│ │ ├── dom_he.ts
│ │ ├── dom_hr.desktop.yaml
│ │ ├── dom_hr.ts
│ │ ├── dom_hu.desktop.yaml
│ │ ├── dom_hu.ts
│ │ ├── dom_id.ts
│ │ ├── dom_it.desktop.yaml
│ │ ├── dom_it.ts
│ │ ├── dom_ja.desktop.yaml
│ │ ├── dom_ja.ts
│ │ ├── dom_ka.desktop.yaml
│ │ ├── dom_ka.ts
│ │ ├── dom_kab.ts
│ │ ├── dom_kk.desktop.yaml
│ │ ├── dom_kk.ts
│ │ ├── dom_ko.desktop.yaml
│ │ ├── dom_ko.ts
│ │ ├── dom_lg.desktop.yaml
│ │ ├── dom_lg.ts
│ │ ├── dom_lt.desktop.yaml
│ │ ├── dom_lt.ts
│ │ ├── dom_lv.desktop.yaml
│ │ ├── dom_lv.ts
│ │ ├── dom_nb_NO.desktop.yaml
│ │ ├── dom_nb_NO.ts
│ │ ├── dom_nl.desktop.yaml
│ │ ├── dom_nl.ts
│ │ ├── dom_oc.ts
│ │ ├── dom_pa.ts
│ │ ├── dom_pl.desktop.yaml
│ │ ├── dom_pl.ts
│ │ ├── dom_pt.desktop.yaml
│ │ ├── dom_pt.ts
│ │ ├── dom_pt_BR.desktop.yaml
│ │ ├── dom_pt_BR.ts
│ │ ├── dom_ru.desktop.yaml
│ │ ├── dom_ru.ts
│ │ ├── dom_si.desktop.yaml
│ │ ├── dom_si.ts
│ │ ├── dom_sk.desktop.yaml
│ │ ├── dom_sk_SK.ts
│ │ ├── dom_sr.ts
│ │ ├── dom_sr@ijekavian.ts
│ │ ├── dom_sv.desktop.yaml
│ │ ├── dom_sv.ts
│ │ ├── dom_tr.desktop.yaml
│ │ ├── dom_tr.ts
│ │ ├── dom_uk.desktop.yaml
│ │ ├── dom_uk.ts
│ │ ├── dom_zh_CN.desktop.yaml
│ │ ├── dom_zh_CN.ts
│ │ ├── dom_zh_TW.desktop.yaml
│ │ └── dom_zh_TW.ts
│ ├── treewindow.cpp
│ ├── treewindow.h
│ └── treewindow.ui
├── plugin-fancymenu/
│ ├── CMakeLists.txt
│ ├── lxqtfancymenu.cpp
│ ├── lxqtfancymenu.h
│ ├── lxqtfancymenuappmap.cpp
│ ├── lxqtfancymenuappmap.h
│ ├── lxqtfancymenuappmodel.cpp
│ ├── lxqtfancymenuappmodel.h
│ ├── lxqtfancymenucategoriesmodel.cpp
│ ├── lxqtfancymenucategoriesmodel.h
│ ├── lxqtfancymenuconfiguration.cpp
│ ├── lxqtfancymenuconfiguration.h
│ ├── lxqtfancymenuconfiguration.ui
│ ├── lxqtfancymenutypes.h
│ ├── lxqtfancymenuwindow.cpp
│ ├── lxqtfancymenuwindow.h
│ ├── resources/
│ │ └── fancymenu.desktop.in
│ └── translations/
│ ├── fancymenu.desktop.yaml
│ ├── fancymenu.ts
│ ├── fancymenu_ar.desktop.yaml
│ ├── fancymenu_ar.ts
│ ├── fancymenu_ast.ts
│ ├── fancymenu_bg.desktop.yaml
│ ├── fancymenu_bg.ts
│ ├── fancymenu_ca.desktop.yaml
│ ├── fancymenu_ca.ts
│ ├── fancymenu_cs.desktop.yaml
│ ├── fancymenu_cs.ts
│ ├── fancymenu_cy.ts
│ ├── fancymenu_da.ts
│ ├── fancymenu_de.desktop.yaml
│ ├── fancymenu_de.ts
│ ├── fancymenu_el.desktop.yaml
│ ├── fancymenu_el.ts
│ ├── fancymenu_en_GB.desktop.yaml
│ ├── fancymenu_en_GB.ts
│ ├── fancymenu_eo.ts
│ ├── fancymenu_es.desktop.yaml
│ ├── fancymenu_es.ts
│ ├── fancymenu_es_UY.ts
│ ├── fancymenu_es_VE.ts
│ ├── fancymenu_et.desktop.yaml
│ ├── fancymenu_et.ts
│ ├── fancymenu_eu.desktop.yaml
│ ├── fancymenu_eu.ts
│ ├── fancymenu_fi.desktop.yaml
│ ├── fancymenu_fi.ts
│ ├── fancymenu_fr.desktop.yaml
│ ├── fancymenu_fr.ts
│ ├── fancymenu_gl.desktop.yaml
│ ├── fancymenu_gl.ts
│ ├── fancymenu_he.desktop.yaml
│ ├── fancymenu_he.ts
│ ├── fancymenu_hr.ts
│ ├── fancymenu_hu.desktop.yaml
│ ├── fancymenu_hu.ts
│ ├── fancymenu_ia.ts
│ ├── fancymenu_id.ts
│ ├── fancymenu_is.ts
│ ├── fancymenu_it.desktop.yaml
│ ├── fancymenu_it.ts
│ ├── fancymenu_ja.desktop.yaml
│ ├── fancymenu_ja.ts
│ ├── fancymenu_ka.desktop.yaml
│ ├── fancymenu_ka.ts
│ ├── fancymenu_kk.ts
│ ├── fancymenu_ko.desktop.yaml
│ ├── fancymenu_ko.ts
│ ├── fancymenu_lg.desktop.yaml
│ ├── fancymenu_lg.ts
│ ├── fancymenu_lt.desktop.yaml
│ ├── fancymenu_lt.ts
│ ├── fancymenu_lv.ts
│ ├── fancymenu_nb_NO.ts
│ ├── fancymenu_nl.desktop.yaml
│ ├── fancymenu_nl.ts
│ ├── fancymenu_oc.ts
│ ├── fancymenu_pa.desktop.yaml
│ ├── fancymenu_pa.ts
│ ├── fancymenu_pl.desktop.yaml
│ ├── fancymenu_pl.ts
│ ├── fancymenu_pt.desktop.yaml
│ ├── fancymenu_pt.ts
│ ├── fancymenu_pt_BR.desktop.yaml
│ ├── fancymenu_pt_BR.ts
│ ├── fancymenu_ro_RO.ts
│ ├── fancymenu_ru.desktop.yaml
│ ├── fancymenu_ru.ts
│ ├── fancymenu_si.ts
│ ├── fancymenu_sk.desktop.yaml
│ ├── fancymenu_sk_SK.ts
│ ├── fancymenu_sl.ts
│ ├── fancymenu_sr@latin.ts
│ ├── fancymenu_sr_BA.ts
│ ├── fancymenu_sr_RS.ts
│ ├── fancymenu_sv.desktop.yaml
│ ├── fancymenu_sv.ts
│ ├── fancymenu_th_TH.ts
│ ├── fancymenu_tr.desktop.yaml
│ ├── fancymenu_tr.ts
│ ├── fancymenu_uk.ts
│ ├── fancymenu_zh_CN.desktop.yaml
│ ├── fancymenu_zh_CN.ts
│ ├── fancymenu_zh_TW.desktop.yaml
│ └── fancymenu_zh_TW.ts
├── plugin-kbindicator/
│ ├── CMakeLists.txt
│ ├── kbindicator-plugin.cpp
│ ├── resources/
│ │ └── kbindicator.desktop.in
│ ├── src/
│ │ ├── content.cpp
│ │ ├── content.h
│ │ ├── controls.h
│ │ ├── kbdinfo.h
│ │ ├── kbdkeeper.cpp
│ │ ├── kbdkeeper.h
│ │ ├── kbdlayout.h
│ │ ├── kbdstate.cpp
│ │ ├── kbdstate.h
│ │ ├── kbdstateconfig.cpp
│ │ ├── kbdstateconfig.h
│ │ ├── kbdstateconfig.ui
│ │ ├── kbdwatcher.cpp
│ │ ├── kbdwatcher.h
│ │ ├── settings.cpp
│ │ ├── settings.h
│ │ └── x11/
│ │ ├── kbdlayout.cpp
│ │ └── kbdlayout.h
│ └── translations/
│ ├── kbindicator.desktop.yaml
│ ├── kbindicator.ts
│ ├── kbindicator_ar.desktop.yaml
│ ├── kbindicator_ar.ts
│ ├── kbindicator_arn.ts
│ ├── kbindicator_ast.ts
│ ├── kbindicator_bg.desktop.yaml
│ ├── kbindicator_bg.ts
│ ├── kbindicator_ca.desktop.yaml
│ ├── kbindicator_ca.ts
│ ├── kbindicator_cs.desktop.yaml
│ ├── kbindicator_cs.ts
│ ├── kbindicator_cy.ts
│ ├── kbindicator_da.desktop.yaml
│ ├── kbindicator_da.ts
│ ├── kbindicator_de.desktop.yaml
│ ├── kbindicator_de.ts
│ ├── kbindicator_el.desktop.yaml
│ ├── kbindicator_el.ts
│ ├── kbindicator_en_GB.desktop.yaml
│ ├── kbindicator_en_GB.ts
│ ├── kbindicator_es.desktop.yaml
│ ├── kbindicator_es.ts
│ ├── kbindicator_et.desktop.yaml
│ ├── kbindicator_et.ts
│ ├── kbindicator_fi.desktop.yaml
│ ├── kbindicator_fi.ts
│ ├── kbindicator_fr.desktop.yaml
│ ├── kbindicator_fr.ts
│ ├── kbindicator_gl.ts
│ ├── kbindicator_he.desktop.yaml
│ ├── kbindicator_he.ts
│ ├── kbindicator_hr.desktop.yaml
│ ├── kbindicator_hr.ts
│ ├── kbindicator_hu.desktop.yaml
│ ├── kbindicator_hu.ts
│ ├── kbindicator_id.ts
│ ├── kbindicator_it.desktop.yaml
│ ├── kbindicator_it.ts
│ ├── kbindicator_ja.desktop.yaml
│ ├── kbindicator_ja.ts
│ ├── kbindicator_ka.desktop.yaml
│ ├── kbindicator_ka.ts
│ ├── kbindicator_kab.ts
│ ├── kbindicator_kk.ts
│ ├── kbindicator_ko.desktop.yaml
│ ├── kbindicator_ko.ts
│ ├── kbindicator_lg.desktop.yaml
│ ├── kbindicator_lg.ts
│ ├── kbindicator_lt.desktop.yaml
│ ├── kbindicator_lt.ts
│ ├── kbindicator_lv.desktop.yaml
│ ├── kbindicator_lv.ts
│ ├── kbindicator_nb_NO.desktop.yaml
│ ├── kbindicator_nb_NO.ts
│ ├── kbindicator_nl.desktop.yaml
│ ├── kbindicator_nl.ts
│ ├── kbindicator_oc.ts
│ ├── kbindicator_pa.ts
│ ├── kbindicator_pl.desktop.yaml
│ ├── kbindicator_pl.ts
│ ├── kbindicator_pt.desktop.yaml
│ ├── kbindicator_pt.ts
│ ├── kbindicator_ru.desktop.yaml
│ ├── kbindicator_ru.ts
│ ├── kbindicator_si.desktop.yaml
│ ├── kbindicator_si.ts
│ ├── kbindicator_sk.desktop.yaml
│ ├── kbindicator_sk_SK.ts
│ ├── kbindicator_sr.ts
│ ├── kbindicator_sv.desktop.yaml
│ ├── kbindicator_sv.ts
│ ├── kbindicator_tr.desktop.yaml
│ ├── kbindicator_tr.ts
│ ├── kbindicator_uk.desktop.yaml
│ ├── kbindicator_uk.ts
│ ├── kbindicator_zh_CN.desktop.yaml
│ ├── kbindicator_zh_CN.ts
│ ├── kbindicator_zh_TW.desktop.yaml
│ └── kbindicator_zh_TW.ts
├── plugin-mainmenu/
│ ├── CMakeLists.txt
│ ├── actionview.cpp
│ ├── actionview.h
│ ├── lxqtmainmenu.cpp
│ ├── lxqtmainmenu.h
│ ├── lxqtmainmenuconfiguration.cpp
│ ├── lxqtmainmenuconfiguration.h
│ ├── lxqtmainmenuconfiguration.ui
│ ├── menustyle.cpp
│ ├── menustyle.h
│ ├── resources/
│ │ └── mainmenu.desktop.in
│ └── translations/
│ ├── mainmenu.desktop.yaml
│ ├── mainmenu.ts
│ ├── mainmenu_ar.desktop.yaml
│ ├── mainmenu_ar.ts
│ ├── mainmenu_arn.ts
│ ├── mainmenu_ast.ts
│ ├── mainmenu_bg.desktop.yaml
│ ├── mainmenu_bg.ts
│ ├── mainmenu_ca.desktop.yaml
│ ├── mainmenu_ca.ts
│ ├── mainmenu_cs.desktop.yaml
│ ├── mainmenu_cs.ts
│ ├── mainmenu_cy.ts
│ ├── mainmenu_da.desktop.yaml
│ ├── mainmenu_da.ts
│ ├── mainmenu_de.desktop.yaml
│ ├── mainmenu_de.ts
│ ├── mainmenu_el.desktop.yaml
│ ├── mainmenu_el.ts
│ ├── mainmenu_en_GB.desktop.yaml
│ ├── mainmenu_en_GB.ts
│ ├── mainmenu_eo.desktop.yaml
│ ├── mainmenu_eo.ts
│ ├── mainmenu_es.desktop.yaml
│ ├── mainmenu_es.ts
│ ├── mainmenu_es_UY.ts
│ ├── mainmenu_es_VE.desktop.yaml
│ ├── mainmenu_es_VE.ts
│ ├── mainmenu_et.desktop.yaml
│ ├── mainmenu_et.ts
│ ├── mainmenu_eu.desktop.yaml
│ ├── mainmenu_eu.ts
│ ├── mainmenu_fi.desktop.yaml
│ ├── mainmenu_fi.ts
│ ├── mainmenu_fr.desktop.yaml
│ ├── mainmenu_fr.ts
│ ├── mainmenu_gl.ts
│ ├── mainmenu_he.desktop.yaml
│ ├── mainmenu_he.ts
│ ├── mainmenu_hr.desktop.yaml
│ ├── mainmenu_hr.ts
│ ├── mainmenu_hu.desktop.yaml
│ ├── mainmenu_hu.ts
│ ├── mainmenu_ia.ts
│ ├── mainmenu_id.desktop.yaml
│ ├── mainmenu_id.ts
│ ├── mainmenu_is.ts
│ ├── mainmenu_it.desktop.yaml
│ ├── mainmenu_it.ts
│ ├── mainmenu_ja.desktop.yaml
│ ├── mainmenu_ja.ts
│ ├── mainmenu_ka.desktop.yaml
│ ├── mainmenu_ka.ts
│ ├── mainmenu_kab.ts
│ ├── mainmenu_kk.desktop.yaml
│ ├── mainmenu_kk.ts
│ ├── mainmenu_ko.desktop.yaml
│ ├── mainmenu_ko.ts
│ ├── mainmenu_lg.desktop.yaml
│ ├── mainmenu_lg.ts
│ ├── mainmenu_lt.desktop.yaml
│ ├── mainmenu_lt.ts
│ ├── mainmenu_lv.desktop.yaml
│ ├── mainmenu_lv.ts
│ ├── mainmenu_nb_NO.desktop.yaml
│ ├── mainmenu_nb_NO.ts
│ ├── mainmenu_nl.desktop.yaml
│ ├── mainmenu_nl.ts
│ ├── mainmenu_oc.desktop.yaml
│ ├── mainmenu_oc.ts
│ ├── mainmenu_pa.desktop.yaml
│ ├── mainmenu_pa.ts
│ ├── mainmenu_pl.desktop.yaml
│ ├── mainmenu_pl.ts
│ ├── mainmenu_pt.desktop.yaml
│ ├── mainmenu_pt.ts
│ ├── mainmenu_pt_BR.desktop.yaml
│ ├── mainmenu_pt_BR.ts
│ ├── mainmenu_ro_RO.desktop.yaml
│ ├── mainmenu_ro_RO.ts
│ ├── mainmenu_ru.desktop.yaml
│ ├── mainmenu_ru.ts
│ ├── mainmenu_si.desktop.yaml
│ ├── mainmenu_si.ts
│ ├── mainmenu_sk.desktop.yaml
│ ├── mainmenu_sk_SK.ts
│ ├── mainmenu_sl.desktop.yaml
│ ├── mainmenu_sl.ts
│ ├── mainmenu_sr.desktop.yaml
│ ├── mainmenu_sr@ijekavian.desktop.yaml
│ ├── mainmenu_sr@ijekavianlatin.desktop.yaml
│ ├── mainmenu_sr@latin.desktop.yaml
│ ├── mainmenu_sr@latin.ts
│ ├── mainmenu_sr_BA.ts
│ ├── mainmenu_sr_RS.ts
│ ├── mainmenu_sv.desktop.yaml
│ ├── mainmenu_sv.ts
│ ├── mainmenu_th.desktop.yaml
│ ├── mainmenu_th_TH.ts
│ ├── mainmenu_tr.desktop.yaml
│ ├── mainmenu_tr.ts
│ ├── mainmenu_uk.desktop.yaml
│ ├── mainmenu_uk.ts
│ ├── mainmenu_zh_CN.desktop.yaml
│ ├── mainmenu_zh_CN.ts
│ ├── mainmenu_zh_TW.desktop.yaml
│ └── mainmenu_zh_TW.ts
├── plugin-mount/
│ ├── CMakeLists.txt
│ ├── actions/
│ │ ├── deviceaction.cpp
│ │ ├── deviceaction.h
│ │ ├── deviceaction_info.cpp
│ │ ├── deviceaction_info.h
│ │ ├── deviceaction_menu.cpp
│ │ ├── deviceaction_menu.h
│ │ ├── deviceaction_nothing.cpp
│ │ ├── deviceaction_nothing.h
│ │ ├── ejectaction.cpp
│ │ ├── ejectaction.h
│ │ ├── ejectaction_nothing.cpp
│ │ ├── ejectaction_nothing.h
│ │ ├── ejectaction_optical.cpp
│ │ └── ejectaction_optical.h
│ ├── button.cpp
│ ├── button.h
│ ├── configuration.cpp
│ ├── configuration.h
│ ├── configuration.ui
│ ├── lxqtmountplugin.cpp
│ ├── lxqtmountplugin.h
│ ├── menudiskitem.cpp
│ ├── menudiskitem.h
│ ├── popup.cpp
│ ├── popup.h
│ ├── resources/
│ │ └── mount.desktop.in
│ └── translations/
│ ├── mount.desktop.yaml
│ ├── mount.ts
│ ├── mount_ar.desktop.yaml
│ ├── mount_ar.ts
│ ├── mount_arn.ts
│ ├── mount_ast.ts
│ ├── mount_bg.desktop.yaml
│ ├── mount_bg.ts
│ ├── mount_ca.desktop.yaml
│ ├── mount_ca.ts
│ ├── mount_cs.desktop.yaml
│ ├── mount_cs.ts
│ ├── mount_cy.ts
│ ├── mount_da.desktop.yaml
│ ├── mount_da.ts
│ ├── mount_de.desktop.yaml
│ ├── mount_de.ts
│ ├── mount_el.desktop.yaml
│ ├── mount_el.ts
│ ├── mount_en_GB.desktop.yaml
│ ├── mount_en_GB.ts
│ ├── mount_eo.desktop.yaml
│ ├── mount_eo.ts
│ ├── mount_es.desktop.yaml
│ ├── mount_es.ts
│ ├── mount_es_UY.ts
│ ├── mount_es_VE.desktop.yaml
│ ├── mount_es_VE.ts
│ ├── mount_et.desktop.yaml
│ ├── mount_et.ts
│ ├── mount_eu.desktop.yaml
│ ├── mount_eu.ts
│ ├── mount_fi.desktop.yaml
│ ├── mount_fi.ts
│ ├── mount_fr.desktop.yaml
│ ├── mount_fr.ts
│ ├── mount_gl.ts
│ ├── mount_he.desktop.yaml
│ ├── mount_he.ts
│ ├── mount_hr.desktop.yaml
│ ├── mount_hr.ts
│ ├── mount_hu.desktop.yaml
│ ├── mount_hu.ts
│ ├── mount_ia.ts
│ ├── mount_id.ts
│ ├── mount_it.desktop.yaml
│ ├── mount_it.ts
│ ├── mount_ja.desktop.yaml
│ ├── mount_ja.ts
│ ├── mount_ka.desktop.yaml
│ ├── mount_ka.ts
│ ├── mount_kab.desktop.yaml
│ ├── mount_kab.ts
│ ├── mount_kk.desktop.yaml
│ ├── mount_kk.ts
│ ├── mount_ko.desktop.yaml
│ ├── mount_ko.ts
│ ├── mount_lg.desktop.yaml
│ ├── mount_lg.ts
│ ├── mount_lt.desktop.yaml
│ ├── mount_lt.ts
│ ├── mount_lv.desktop.yaml
│ ├── mount_lv.ts
│ ├── mount_nb_NO.desktop.yaml
│ ├── mount_nb_NO.ts
│ ├── mount_nl.desktop.yaml
│ ├── mount_nl.ts
│ ├── mount_oc.desktop.yaml
│ ├── mount_oc.ts
│ ├── mount_pa.ts
│ ├── mount_pl.desktop.yaml
│ ├── mount_pl.ts
│ ├── mount_pt.desktop.yaml
│ ├── mount_pt.ts
│ ├── mount_pt_BR.desktop.yaml
│ ├── mount_pt_BR.ts
│ ├── mount_ro.desktop.yaml
│ ├── mount_ro_RO.ts
│ ├── mount_ru.desktop.yaml
│ ├── mount_ru.ts
│ ├── mount_si.desktop.yaml
│ ├── mount_si.ts
│ ├── mount_sk.desktop.yaml
│ ├── mount_sk_SK.ts
│ ├── mount_sl.desktop.yaml
│ ├── mount_sl.ts
│ ├── mount_sr.desktop.yaml
│ ├── mount_sr@ijekavian.desktop.yaml
│ ├── mount_sr@ijekavianlatin.desktop.yaml
│ ├── mount_sr@latin.desktop.yaml
│ ├── mount_sr@latin.ts
│ ├── mount_sr_BA.ts
│ ├── mount_sr_RS.ts
│ ├── mount_sv.desktop.yaml
│ ├── mount_sv.ts
│ ├── mount_th.desktop.yaml
│ ├── mount_th_TH.ts
│ ├── mount_tr.desktop.yaml
│ ├── mount_tr.ts
│ ├── mount_uk.desktop.yaml
│ ├── mount_uk.ts
│ ├── mount_zh_CN.desktop.yaml
│ ├── mount_zh_CN.ts
│ ├── mount_zh_TW.desktop.yaml
│ └── mount_zh_TW.ts
├── plugin-networkmonitor/
│ ├── CMakeLists.txt
│ ├── lxqtnetworkmonitor.cpp
│ ├── lxqtnetworkmonitor.h
│ ├── lxqtnetworkmonitorconfiguration.cpp
│ ├── lxqtnetworkmonitorconfiguration.h
│ ├── lxqtnetworkmonitorconfiguration.ui
│ ├── lxqtnetworkmonitorplugin.cpp
│ ├── lxqtnetworkmonitorplugin.h
│ ├── resources/
│ │ └── networkmonitor.desktop.in
│ ├── resources.qrc
│ └── translations/
│ ├── networkmonitor.desktop.yaml
│ ├── networkmonitor.ts
│ ├── networkmonitor_ar.desktop.yaml
│ ├── networkmonitor_ar.ts
│ ├── networkmonitor_arn.ts
│ ├── networkmonitor_ast.ts
│ ├── networkmonitor_bg.desktop.yaml
│ ├── networkmonitor_bg.ts
│ ├── networkmonitor_ca.desktop.yaml
│ ├── networkmonitor_ca.ts
│ ├── networkmonitor_cs.desktop.yaml
│ ├── networkmonitor_cs.ts
│ ├── networkmonitor_cy.ts
│ ├── networkmonitor_da.desktop.yaml
│ ├── networkmonitor_da.ts
│ ├── networkmonitor_de.desktop.yaml
│ ├── networkmonitor_de.ts
│ ├── networkmonitor_el.desktop.yaml
│ ├── networkmonitor_el.ts
│ ├── networkmonitor_en_GB.desktop.yaml
│ ├── networkmonitor_en_GB.ts
│ ├── networkmonitor_eo.desktop.yaml
│ ├── networkmonitor_eo.ts
│ ├── networkmonitor_es.desktop.yaml
│ ├── networkmonitor_es.ts
│ ├── networkmonitor_et.desktop.yaml
│ ├── networkmonitor_et.ts
│ ├── networkmonitor_eu.desktop.yaml
│ ├── networkmonitor_eu.ts
│ ├── networkmonitor_fi.desktop.yaml
│ ├── networkmonitor_fi.ts
│ ├── networkmonitor_fr.desktop.yaml
│ ├── networkmonitor_fr.ts
│ ├── networkmonitor_gl.ts
│ ├── networkmonitor_he.desktop.yaml
│ ├── networkmonitor_he.ts
│ ├── networkmonitor_hi.ts
│ ├── networkmonitor_hr.desktop.yaml
│ ├── networkmonitor_hr.ts
│ ├── networkmonitor_hu.desktop.yaml
│ ├── networkmonitor_hu.ts
│ ├── networkmonitor_id.ts
│ ├── networkmonitor_is.ts
│ ├── networkmonitor_it.desktop.yaml
│ ├── networkmonitor_it.ts
│ ├── networkmonitor_ja.desktop.yaml
│ ├── networkmonitor_ja.ts
│ ├── networkmonitor_ka.desktop.yaml
│ ├── networkmonitor_ka.ts
│ ├── networkmonitor_kab.desktop.yaml
│ ├── networkmonitor_kab.ts
│ ├── networkmonitor_kk.desktop.yaml
│ ├── networkmonitor_kk.ts
│ ├── networkmonitor_ko.desktop.yaml
│ ├── networkmonitor_ko.ts
│ ├── networkmonitor_lg.desktop.yaml
│ ├── networkmonitor_lg.ts
│ ├── networkmonitor_lt.desktop.yaml
│ ├── networkmonitor_lt.ts
│ ├── networkmonitor_lv.desktop.yaml
│ ├── networkmonitor_lv.ts
│ ├── networkmonitor_nb_NO.desktop.yaml
│ ├── networkmonitor_nb_NO.ts
│ ├── networkmonitor_nl.desktop.yaml
│ ├── networkmonitor_nl.ts
│ ├── networkmonitor_oc.desktop.yaml
│ ├── networkmonitor_oc.ts
│ ├── networkmonitor_pa.desktop.yaml
│ ├── networkmonitor_pa.ts
│ ├── networkmonitor_pl.desktop.yaml
│ ├── networkmonitor_pl.ts
│ ├── networkmonitor_pt.desktop.yaml
│ ├── networkmonitor_pt.ts
│ ├── networkmonitor_pt_BR.desktop.yaml
│ ├── networkmonitor_pt_BR.ts
│ ├── networkmonitor_ro_RO.desktop.yaml
│ ├── networkmonitor_ro_RO.ts
│ ├── networkmonitor_ru.desktop.yaml
│ ├── networkmonitor_ru.ts
│ ├── networkmonitor_si.desktop.yaml
│ ├── networkmonitor_si.ts
│ ├── networkmonitor_sk.desktop.yaml
│ ├── networkmonitor_sk_SK.ts
│ ├── networkmonitor_sr.desktop.yaml
│ ├── networkmonitor_sr.ts
│ ├── networkmonitor_sr@ijekavian.ts
│ ├── networkmonitor_sr@latin.desktop.yaml
│ ├── networkmonitor_sv.desktop.yaml
│ ├── networkmonitor_sv.ts
│ ├── networkmonitor_th.desktop.yaml
│ ├── networkmonitor_th_TH.ts
│ ├── networkmonitor_tr.desktop.yaml
│ ├── networkmonitor_tr.ts
│ ├── networkmonitor_uk.desktop.yaml
│ ├── networkmonitor_uk.ts
│ ├── networkmonitor_zh_CN.desktop.yaml
│ ├── networkmonitor_zh_CN.ts
│ ├── networkmonitor_zh_TW.desktop.yaml
│ └── networkmonitor_zh_TW.ts
├── plugin-qeyes/
│ ├── CMakeLists.txt
│ ├── qeyes.cpp
│ ├── qeyes.h
│ ├── qeyesconfigdialog.cpp
│ ├── qeyesconfigdialog.h
│ ├── qeyesimagewidget.cpp
│ ├── qeyesimagewidget.h
│ ├── qeyesplugin.desktop
│ ├── qeyesvectorwidget.cpp
│ ├── qeyesvectorwidget.h
│ ├── qeyeswidget.cpp
│ ├── qeyeswidget.h
│ ├── resources/
│ │ └── qeyes.desktop.in
│ ├── translations/
│ │ ├── qeyes.desktop.yaml
│ │ ├── qeyes.ts
│ │ ├── qeyes_ar.desktop.yaml
│ │ ├── qeyes_ar.ts
│ │ ├── qeyes_bg.desktop.yaml
│ │ ├── qeyes_bg.ts
│ │ ├── qeyes_ca.desktop.yaml
│ │ ├── qeyes_ca.ts
│ │ ├── qeyes_cs.desktop.yaml
│ │ ├── qeyes_cs.ts
│ │ ├── qeyes_da.desktop.yaml
│ │ ├── qeyes_da.ts
│ │ ├── qeyes_de.desktop.yaml
│ │ ├── qeyes_de.ts
│ │ ├── qeyes_el.desktop.yaml
│ │ ├── qeyes_el.ts
│ │ ├── qeyes_en_GB.desktop.yaml
│ │ ├── qeyes_en_GB.ts
│ │ ├── qeyes_et.desktop.yaml
│ │ ├── qeyes_et.ts
│ │ ├── qeyes_fi.desktop.yaml
│ │ ├── qeyes_fi.ts
│ │ ├── qeyes_fr.desktop.yaml
│ │ ├── qeyes_fr.ts
│ │ ├── qeyes_he.desktop.yaml
│ │ ├── qeyes_he.ts
│ │ ├── qeyes_hu.desktop.yaml
│ │ ├── qeyes_hu.ts
│ │ ├── qeyes_it.desktop.yaml
│ │ ├── qeyes_it.ts
│ │ ├── qeyes_ja.desktop.yaml
│ │ ├── qeyes_ka.desktop.yaml
│ │ ├── qeyes_ka.ts
│ │ ├── qeyes_kab.desktop.yaml
│ │ ├── qeyes_kab.ts
│ │ ├── qeyes_kk.desktop.yaml
│ │ ├── qeyes_kk.ts
│ │ ├── qeyes_ko.desktop.yaml
│ │ ├── qeyes_ko.ts
│ │ ├── qeyes_lg.desktop.yaml
│ │ ├── qeyes_lg.ts
│ │ ├── qeyes_lt.desktop.yaml
│ │ ├── qeyes_lt.ts
│ │ ├── qeyes_nl.desktop.yaml
│ │ ├── qeyes_nl.ts
│ │ ├── qeyes_oc.desktop.yaml
│ │ ├── qeyes_oc.ts
│ │ ├── qeyes_pa.ts
│ │ ├── qeyes_pl.desktop.yaml
│ │ ├── qeyes_pl.ts
│ │ ├── qeyes_pt.desktop.yaml
│ │ ├── qeyes_pt.ts
│ │ ├── qeyes_ru.desktop.yaml
│ │ ├── qeyes_ru.ts
│ │ ├── qeyes_sk.desktop.yaml
│ │ ├── qeyes_sk.ts
│ │ ├── qeyes_sr.desktop.yaml
│ │ ├── qeyes_sr.ts
│ │ ├── qeyes_sv.desktop.yaml
│ │ ├── qeyes_sv.ts
│ │ ├── qeyes_tr.desktop.yaml
│ │ ├── qeyes_tr.ts
│ │ ├── qeyes_zh_CN.desktop.yaml
│ │ ├── qeyes_zh_CN.ts
│ │ ├── qeyes_zh_TW.desktop.yaml
│ │ └── qeyes_zh_TW.ts
│ └── types/
│ ├── Bizarre/
│ │ └── config
│ ├── Bloodshot/
│ │ └── config
│ ├── Brown-EyedGirl/
│ │ └── config
│ ├── CMakeLists.txt
│ ├── Crystal/
│ │ └── config
│ ├── Default/
│ │ └── config
│ ├── Default-tiny/
│ │ └── config
│ ├── Digital/
│ │ └── config
│ ├── EyelashLarge/
│ │ └── config
│ ├── Green-EyedGirl/
│ │ └── config
│ ├── Horrid/
│ │ └── config
│ ├── Pink-EyedGirl/
│ │ └── config
│ ├── PumpkinMonster/
│ │ └── config
│ ├── README
│ └── Tango/
│ └── config
├── plugin-quicklaunch/
│ ├── CMakeLists.txt
│ ├── lxqtquicklaunch.cpp
│ ├── lxqtquicklaunch.h
│ ├── lxqtquicklaunchplugin.cpp
│ ├── lxqtquicklaunchplugin.h
│ ├── quicklaunchaction.cpp
│ ├── quicklaunchaction.h
│ ├── quicklaunchbutton.cpp
│ ├── quicklaunchbutton.h
│ ├── resources/
│ │ └── quicklaunch.desktop.in
│ └── translations/
│ ├── quicklaunch.desktop.yaml
│ ├── quicklaunch.ts
│ ├── quicklaunch_ar.desktop.yaml
│ ├── quicklaunch_ar.ts
│ ├── quicklaunch_arn.ts
│ ├── quicklaunch_ast.ts
│ ├── quicklaunch_bg.desktop.yaml
│ ├── quicklaunch_bg.ts
│ ├── quicklaunch_ca.desktop.yaml
│ ├── quicklaunch_ca.ts
│ ├── quicklaunch_cs.desktop.yaml
│ ├── quicklaunch_cs.ts
│ ├── quicklaunch_cy.ts
│ ├── quicklaunch_da.desktop.yaml
│ ├── quicklaunch_da.ts
│ ├── quicklaunch_de.desktop.yaml
│ ├── quicklaunch_de.ts
│ ├── quicklaunch_el.desktop.yaml
│ ├── quicklaunch_el.ts
│ ├── quicklaunch_en_GB.desktop.yaml
│ ├── quicklaunch_en_GB.ts
│ ├── quicklaunch_eo.desktop.yaml
│ ├── quicklaunch_eo.ts
│ ├── quicklaunch_es.desktop.yaml
│ ├── quicklaunch_es.ts
│ ├── quicklaunch_es_VE.desktop.yaml
│ ├── quicklaunch_es_VE.ts
│ ├── quicklaunch_et.desktop.yaml
│ ├── quicklaunch_et.ts
│ ├── quicklaunch_eu.desktop.yaml
│ ├── quicklaunch_eu.ts
│ ├── quicklaunch_fi.desktop.yaml
│ ├── quicklaunch_fi.ts
│ ├── quicklaunch_fr.desktop.yaml
│ ├── quicklaunch_fr.ts
│ ├── quicklaunch_gl.ts
│ ├── quicklaunch_he.desktop.yaml
│ ├── quicklaunch_he.ts
│ ├── quicklaunch_hr.desktop.yaml
│ ├── quicklaunch_hr.ts
│ ├── quicklaunch_hu.desktop.yaml
│ ├── quicklaunch_hu.ts
│ ├── quicklaunch_ia.ts
│ ├── quicklaunch_id.desktop.yaml
│ ├── quicklaunch_id.ts
│ ├── quicklaunch_it.desktop.yaml
│ ├── quicklaunch_it.ts
│ ├── quicklaunch_ja.desktop.yaml
│ ├── quicklaunch_ja.ts
│ ├── quicklaunch_ka.desktop.yaml
│ ├── quicklaunch_ka.ts
│ ├── quicklaunch_kab.ts
│ ├── quicklaunch_kk.ts
│ ├── quicklaunch_ko.desktop.yaml
│ ├── quicklaunch_ko.ts
│ ├── quicklaunch_lg.desktop.yaml
│ ├── quicklaunch_lg.ts
│ ├── quicklaunch_lt.desktop.yaml
│ ├── quicklaunch_lt.ts
│ ├── quicklaunch_lv.desktop.yaml
│ ├── quicklaunch_lv.ts
│ ├── quicklaunch_nb_NO.desktop.yaml
│ ├── quicklaunch_nb_NO.ts
│ ├── quicklaunch_nl.desktop.yaml
│ ├── quicklaunch_nl.ts
│ ├── quicklaunch_oc.ts
│ ├── quicklaunch_pa.ts
│ ├── quicklaunch_pl.desktop.yaml
│ ├── quicklaunch_pl.ts
│ ├── quicklaunch_pt.desktop.yaml
│ ├── quicklaunch_pt.ts
│ ├── quicklaunch_pt_BR.desktop.yaml
│ ├── quicklaunch_pt_BR.ts
│ ├── quicklaunch_ro.desktop.yaml
│ ├── quicklaunch_ro_RO.ts
│ ├── quicklaunch_ru.desktop.yaml
│ ├── quicklaunch_ru.ts
│ ├── quicklaunch_si.desktop.yaml
│ ├── quicklaunch_si.ts
│ ├── quicklaunch_sk.desktop.yaml
│ ├── quicklaunch_sk_SK.ts
│ ├── quicklaunch_sl.desktop.yaml
│ ├── quicklaunch_sl.ts
│ ├── quicklaunch_sr.desktop.yaml
│ ├── quicklaunch_sr@ijekavian.desktop.yaml
│ ├── quicklaunch_sr@ijekavianlatin.desktop.yaml
│ ├── quicklaunch_sr@latin.desktop.yaml
│ ├── quicklaunch_sr@latin.ts
│ ├── quicklaunch_sr_BA.ts
│ ├── quicklaunch_sr_RS.ts
│ ├── quicklaunch_sv.desktop.yaml
│ ├── quicklaunch_sv.ts
│ ├── quicklaunch_th.desktop.yaml
│ ├── quicklaunch_th_TH.ts
│ ├── quicklaunch_tr.desktop.yaml
│ ├── quicklaunch_tr.ts
│ ├── quicklaunch_uk.desktop.yaml
│ ├── quicklaunch_uk.ts
│ ├── quicklaunch_zh_CN.desktop.yaml
│ ├── quicklaunch_zh_CN.ts
│ ├── quicklaunch_zh_TW.desktop.yaml
│ └── quicklaunch_zh_TW.ts
├── plugin-sensors/
│ ├── CMakeLists.txt
│ ├── chip.cpp
│ ├── chip.h
│ ├── feature.cpp
│ ├── feature.h
│ ├── lxqtsensors.cpp
│ ├── lxqtsensors.h
│ ├── lxqtsensorsconfiguration.cpp
│ ├── lxqtsensorsconfiguration.h
│ ├── lxqtsensorsconfiguration.ui
│ ├── lxqtsensorsplugin.cpp
│ ├── lxqtsensorsplugin.h
│ ├── resources/
│ │ └── sensors.desktop.in
│ ├── sensors.cpp
│ ├── sensors.h
│ └── translations/
│ ├── sensors.desktop.yaml
│ ├── sensors.ts
│ ├── sensors_ar.desktop.yaml
│ ├── sensors_ar.ts
│ ├── sensors_arn.ts
│ ├── sensors_ast.ts
│ ├── sensors_bg.desktop.yaml
│ ├── sensors_bg.ts
│ ├── sensors_ca.desktop.yaml
│ ├── sensors_ca.ts
│ ├── sensors_cs.desktop.yaml
│ ├── sensors_cs.ts
│ ├── sensors_cy.ts
│ ├── sensors_da.desktop.yaml
│ ├── sensors_da.ts
│ ├── sensors_de.desktop.yaml
│ ├── sensors_de.ts
│ ├── sensors_el.desktop.yaml
│ ├── sensors_el.ts
│ ├── sensors_en_GB.desktop.yaml
│ ├── sensors_en_GB.ts
│ ├── sensors_eo.desktop.yaml
│ ├── sensors_es.desktop.yaml
│ ├── sensors_es.ts
│ ├── sensors_es_VE.desktop.yaml
│ ├── sensors_es_VE.ts
│ ├── sensors_et.desktop.yaml
│ ├── sensors_et.ts
│ ├── sensors_eu.desktop.yaml
│ ├── sensors_eu.ts
│ ├── sensors_fi.desktop.yaml
│ ├── sensors_fi.ts
│ ├── sensors_fr.desktop.yaml
│ ├── sensors_fr.ts
│ ├── sensors_gl.ts
│ ├── sensors_he.desktop.yaml
│ ├── sensors_he.ts
│ ├── sensors_hr.desktop.yaml
│ ├── sensors_hr.ts
│ ├── sensors_hu.desktop.yaml
│ ├── sensors_hu.ts
│ ├── sensors_id.ts
│ ├── sensors_is.ts
│ ├── sensors_it.desktop.yaml
│ ├── sensors_it.ts
│ ├── sensors_ja.desktop.yaml
│ ├── sensors_ja.ts
│ ├── sensors_ka.desktop.yaml
│ ├── sensors_ka.ts
│ ├── sensors_kab.ts
│ ├── sensors_kk.desktop.yaml
│ ├── sensors_kk.ts
│ ├── sensors_ko.desktop.yaml
│ ├── sensors_ko.ts
│ ├── sensors_lg.desktop.yaml
│ ├── sensors_lg.ts
│ ├── sensors_lt.desktop.yaml
│ ├── sensors_lt.ts
│ ├── sensors_lv.desktop.yaml
│ ├── sensors_lv.ts
│ ├── sensors_nb_NO.desktop.yaml
│ ├── sensors_nb_NO.ts
│ ├── sensors_nl.desktop.yaml
│ ├── sensors_nl.ts
│ ├── sensors_oc.ts
│ ├── sensors_pa.ts
│ ├── sensors_pl.desktop.yaml
│ ├── sensors_pl.ts
│ ├── sensors_pt.desktop.yaml
│ ├── sensors_pt.ts
│ ├── sensors_pt_BR.desktop.yaml
│ ├── sensors_pt_BR.ts
│ ├── sensors_ro.desktop.yaml
│ ├── sensors_ro_RO.ts
│ ├── sensors_ru.desktop.yaml
│ ├── sensors_ru.ts
│ ├── sensors_si.desktop.yaml
│ ├── sensors_si.ts
│ ├── sensors_sk.desktop.yaml
│ ├── sensors_sk_SK.ts
│ ├── sensors_sl.desktop.yaml
│ ├── sensors_sr.ts
│ ├── sensors_sv.desktop.yaml
│ ├── sensors_sv.ts
│ ├── sensors_th.desktop.yaml
│ ├── sensors_th_TH.ts
│ ├── sensors_tr.desktop.yaml
│ ├── sensors_tr.ts
│ ├── sensors_uk.desktop.yaml
│ ├── sensors_uk.ts
│ ├── sensors_zh_CN.desktop.yaml
│ ├── sensors_zh_CN.ts
│ ├── sensors_zh_TW.desktop.yaml
│ └── sensors_zh_TW.ts
├── plugin-showdesktop/
│ ├── CMakeLists.txt
│ ├── resources/
│ │ └── showdesktop.desktop.in
│ ├── showdesktop.cpp
│ ├── showdesktop.h
│ └── translations/
│ ├── showdesktop.desktop.yaml
│ ├── showdesktop.ts
│ ├── showdesktop_ar.desktop.yaml
│ ├── showdesktop_ar.ts
│ ├── showdesktop_arn.ts
│ ├── showdesktop_ast.ts
│ ├── showdesktop_bg.desktop.yaml
│ ├── showdesktop_bg.ts
│ ├── showdesktop_ca.desktop.yaml
│ ├── showdesktop_ca.ts
│ ├── showdesktop_cs.desktop.yaml
│ ├── showdesktop_cs.ts
│ ├── showdesktop_cy.ts
│ ├── showdesktop_da.desktop.yaml
│ ├── showdesktop_da.ts
│ ├── showdesktop_de.desktop.yaml
│ ├── showdesktop_de.ts
│ ├── showdesktop_el.desktop.yaml
│ ├── showdesktop_el.ts
│ ├── showdesktop_en_GB.desktop.yaml
│ ├── showdesktop_en_GB.ts
│ ├── showdesktop_eo.desktop.yaml
│ ├── showdesktop_eo.ts
│ ├── showdesktop_es.desktop.yaml
│ ├── showdesktop_es.ts
│ ├── showdesktop_es_VE.desktop.yaml
│ ├── showdesktop_es_VE.ts
│ ├── showdesktop_et.desktop.yaml
│ ├── showdesktop_et.ts
│ ├── showdesktop_eu.desktop.yaml
│ ├── showdesktop_eu.ts
│ ├── showdesktop_fi.desktop.yaml
│ ├── showdesktop_fi.ts
│ ├── showdesktop_fr.desktop.yaml
│ ├── showdesktop_fr.ts
│ ├── showdesktop_gl.ts
│ ├── showdesktop_he.desktop.yaml
│ ├── showdesktop_he.ts
│ ├── showdesktop_hr.desktop.yaml
│ ├── showdesktop_hr.ts
│ ├── showdesktop_hu.desktop.yaml
│ ├── showdesktop_hu.ts
│ ├── showdesktop_ia.ts
│ ├── showdesktop_id.ts
│ ├── showdesktop_id_ID.desktop.yaml
│ ├── showdesktop_is.ts
│ ├── showdesktop_it.desktop.yaml
│ ├── showdesktop_it.ts
│ ├── showdesktop_ja.desktop.yaml
│ ├── showdesktop_ja.ts
│ ├── showdesktop_ka.desktop.yaml
│ ├── showdesktop_ka.ts
│ ├── showdesktop_kab.ts
│ ├── showdesktop_kk.desktop.yaml
│ ├── showdesktop_kk.ts
│ ├── showdesktop_ko.desktop.yaml
│ ├── showdesktop_ko.ts
│ ├── showdesktop_lg.desktop.yaml
│ ├── showdesktop_lg.ts
│ ├── showdesktop_lt.desktop.yaml
│ ├── showdesktop_lt.ts
│ ├── showdesktop_lv.desktop.yaml
│ ├── showdesktop_lv.ts
│ ├── showdesktop_nb_NO.desktop.yaml
│ ├── showdesktop_nb_NO.ts
│ ├── showdesktop_nl.desktop.yaml
│ ├── showdesktop_nl.ts
│ ├── showdesktop_oc.desktop.yaml
│ ├── showdesktop_oc.ts
│ ├── showdesktop_pa.desktop.yaml
│ ├── showdesktop_pa.ts
│ ├── showdesktop_pl.desktop.yaml
│ ├── showdesktop_pl.ts
│ ├── showdesktop_pt.desktop.yaml
│ ├── showdesktop_pt.ts
│ ├── showdesktop_pt_BR.desktop.yaml
│ ├── showdesktop_pt_BR.ts
│ ├── showdesktop_ro_RO.desktop.yaml
│ ├── showdesktop_ro_RO.ts
│ ├── showdesktop_ru.desktop.yaml
│ ├── showdesktop_ru.ts
│ ├── showdesktop_si.desktop.yaml
│ ├── showdesktop_si.ts
│ ├── showdesktop_sk.desktop.yaml
│ ├── showdesktop_sk_SK.ts
│ ├── showdesktop_sl.desktop.yaml
│ ├── showdesktop_sl.ts
│ ├── showdesktop_sr.desktop.yaml
│ ├── showdesktop_sr@ijekavian.desktop.yaml
│ ├── showdesktop_sr@ijekavianlatin.desktop.yaml
│ ├── showdesktop_sr@latin.desktop.yaml
│ ├── showdesktop_sr@latin.ts
│ ├── showdesktop_sr_BA.ts
│ ├── showdesktop_sr_RS.ts
│ ├── showdesktop_sv.desktop.yaml
│ ├── showdesktop_sv.ts
│ ├── showdesktop_th.desktop.yaml
│ ├── showdesktop_th_TH.ts
│ ├── showdesktop_tr.desktop.yaml
│ ├── showdesktop_tr.ts
│ ├── showdesktop_uk.desktop.yaml
│ ├── showdesktop_uk.ts
│ ├── showdesktop_zh_CN.desktop.yaml
│ ├── showdesktop_zh_CN.ts
│ ├── showdesktop_zh_TW.desktop.yaml
│ └── showdesktop_zh_TW.ts
├── plugin-spacer/
│ ├── CMakeLists.txt
│ ├── resources/
│ │ └── spacer.desktop.in
│ ├── spacer.cpp
│ ├── spacer.h
│ ├── spacerconfiguration.cpp
│ ├── spacerconfiguration.h
│ ├── spacerconfiguration.ui
│ └── translations/
│ ├── spacer.desktop.yaml
│ ├── spacer.ts
│ ├── spacer_ar.desktop.yaml
│ ├── spacer_ar.ts
│ ├── spacer_arn.ts
│ ├── spacer_ast.ts
│ ├── spacer_bg.desktop.yaml
│ ├── spacer_bg.ts
│ ├── spacer_ca.desktop.yaml
│ ├── spacer_ca.ts
│ ├── spacer_cs.desktop.yaml
│ ├── spacer_cs.ts
│ ├── spacer_cy.ts
│ ├── spacer_da.desktop.yaml
│ ├── spacer_da.ts
│ ├── spacer_de.desktop.yaml
│ ├── spacer_de.ts
│ ├── spacer_el.desktop.yaml
│ ├── spacer_el.ts
│ ├── spacer_en_GB.desktop.yaml
│ ├── spacer_en_GB.ts
│ ├── spacer_es.desktop.yaml
│ ├── spacer_es.ts
│ ├── spacer_et.desktop.yaml
│ ├── spacer_et.ts
│ ├── spacer_fi.desktop.yaml
│ ├── spacer_fi.ts
│ ├── spacer_fr.desktop.yaml
│ ├── spacer_fr.ts
│ ├── spacer_gl.ts
│ ├── spacer_he.desktop.yaml
│ ├── spacer_he.ts
│ ├── spacer_hr.desktop.yaml
│ ├── spacer_hr.ts
│ ├── spacer_hu.desktop.yaml
│ ├── spacer_hu.ts
│ ├── spacer_id.ts
│ ├── spacer_it.desktop.yaml
│ ├── spacer_it.ts
│ ├── spacer_ja.desktop.yaml
│ ├── spacer_ja.ts
│ ├── spacer_ka.desktop.yaml
│ ├── spacer_ka.ts
│ ├── spacer_kab.ts
│ ├── spacer_kk.ts
│ ├── spacer_ko.desktop.yaml
│ ├── spacer_ko.ts
│ ├── spacer_lg.desktop.yaml
│ ├── spacer_lg.ts
│ ├── spacer_lt.desktop.yaml
│ ├── spacer_lt.ts
│ ├── spacer_lv.desktop.yaml
│ ├── spacer_lv.ts
│ ├── spacer_nb_NO.desktop.yaml
│ ├── spacer_nb_NO.ts
│ ├── spacer_nl.desktop.yaml
│ ├── spacer_nl.ts
│ ├── spacer_oc.ts
│ ├── spacer_pa.ts
│ ├── spacer_pl.desktop.yaml
│ ├── spacer_pl.ts
│ ├── spacer_pt.desktop.yaml
│ ├── spacer_pt.ts
│ ├── spacer_pt_BR.desktop.yaml
│ ├── spacer_pt_BR.ts
│ ├── spacer_ru.desktop.yaml
│ ├── spacer_ru.ts
│ ├── spacer_si.desktop.yaml
│ ├── spacer_si.ts
│ ├── spacer_sk.desktop.yaml
│ ├── spacer_sk.ts
│ ├── spacer_sr.ts
│ ├── spacer_sv.desktop.yaml
│ ├── spacer_sv.ts
│ ├── spacer_tr.desktop.yaml
│ ├── spacer_tr.ts
│ ├── spacer_uk.desktop.yaml
│ ├── spacer_uk.ts
│ ├── spacer_zh_CN.desktop.yaml
│ ├── spacer_zh_CN.ts
│ ├── spacer_zh_TW.desktop.yaml
│ └── spacer_zh_TW.ts
├── plugin-statusnotifier/
│ ├── CMakeLists.txt
│ ├── dbustypes.cpp
│ ├── dbustypes.h
│ ├── org.kde.StatusNotifierItem.xml
│ ├── resources/
│ │ └── statusnotifier.desktop.in
│ ├── sniasync.cpp
│ ├── sniasync.h
│ ├── statusnotifier.cpp
│ ├── statusnotifier.h
│ ├── statusnotifierbutton.cpp
│ ├── statusnotifierbutton.h
│ ├── statusnotifierconfiguration.cpp
│ ├── statusnotifierconfiguration.h
│ ├── statusnotifierconfiguration.ui
│ ├── statusnotifieriteminterface.cpp
│ ├── statusnotifieriteminterface.h
│ ├── statusnotifierproxy.cpp
│ ├── statusnotifierproxy.h
│ ├── statusnotifierwatcher.cpp
│ ├── statusnotifierwatcher.h
│ ├── statusnotifierwidget.cpp
│ ├── statusnotifierwidget.h
│ └── translations/
│ ├── statusnotifier.desktop.yaml
│ ├── statusnotifier.ts
│ ├── statusnotifier_ar.desktop.yaml
│ ├── statusnotifier_ar.ts
│ ├── statusnotifier_arn.ts
│ ├── statusnotifier_ast.ts
│ ├── statusnotifier_bg.desktop.yaml
│ ├── statusnotifier_bg.ts
│ ├── statusnotifier_ca.desktop.yaml
│ ├── statusnotifier_ca.ts
│ ├── statusnotifier_cs.desktop.yaml
│ ├── statusnotifier_cs.ts
│ ├── statusnotifier_cy.ts
│ ├── statusnotifier_da.desktop.yaml
│ ├── statusnotifier_da.ts
│ ├── statusnotifier_de.desktop.yaml
│ ├── statusnotifier_de.ts
│ ├── statusnotifier_el.desktop.yaml
│ ├── statusnotifier_el.ts
│ ├── statusnotifier_en_GB.desktop.yaml
│ ├── statusnotifier_en_GB.ts
│ ├── statusnotifier_es.desktop.yaml
│ ├── statusnotifier_et.desktop.yaml
│ ├── statusnotifier_et.ts
│ ├── statusnotifier_fi.desktop.yaml
│ ├── statusnotifier_fi.ts
│ ├── statusnotifier_fr.desktop.yaml
│ ├── statusnotifier_fr.ts
│ ├── statusnotifier_gl.ts
│ ├── statusnotifier_he.desktop.yaml
│ ├── statusnotifier_he.ts
│ ├── statusnotifier_hr.desktop.yaml
│ ├── statusnotifier_hr.ts
│ ├── statusnotifier_hu.desktop.yaml
│ ├── statusnotifier_hu.ts
│ ├── statusnotifier_it.desktop.yaml
│ ├── statusnotifier_it.ts
│ ├── statusnotifier_ja.desktop.yaml
│ ├── statusnotifier_ja.ts
│ ├── statusnotifier_ka.desktop.yaml
│ ├── statusnotifier_ka.ts
│ ├── statusnotifier_kk.desktop.yaml
│ ├── statusnotifier_kk.ts
│ ├── statusnotifier_ko.desktop.yaml
│ ├── statusnotifier_ko.ts
│ ├── statusnotifier_lg.desktop.yaml
│ ├── statusnotifier_lg.ts
│ ├── statusnotifier_lt.desktop.yaml
│ ├── statusnotifier_lt.ts
│ ├── statusnotifier_lv.desktop.yaml
│ ├── statusnotifier_lv.ts
│ ├── statusnotifier_nb_NO.desktop.yaml
│ ├── statusnotifier_nb_NO.ts
│ ├── statusnotifier_nl.desktop.yaml
│ ├── statusnotifier_nl.ts
│ ├── statusnotifier_oc.desktop.yaml
│ ├── statusnotifier_oc.ts
│ ├── statusnotifier_pa.desktop.yaml
│ ├── statusnotifier_pa.ts
│ ├── statusnotifier_pl.desktop.yaml
│ ├── statusnotifier_pl.ts
│ ├── statusnotifier_pt.desktop.yaml
│ ├── statusnotifier_pt.ts
│ ├── statusnotifier_pt_BR.desktop.yaml
│ ├── statusnotifier_pt_BR.ts
│ ├── statusnotifier_ru.desktop.yaml
│ ├── statusnotifier_ru.ts
│ ├── statusnotifier_si.desktop.yaml
│ ├── statusnotifier_si.ts
│ ├── statusnotifier_sk.desktop.yaml
│ ├── statusnotifier_sk_SK.ts
│ ├── statusnotifier_sv.desktop.yaml
│ ├── statusnotifier_sv.ts
│ ├── statusnotifier_tr.desktop.yaml
│ ├── statusnotifier_tr.ts
│ ├── statusnotifier_uk.desktop.yaml
│ ├── statusnotifier_uk.ts
│ ├── statusnotifier_zh_CN.desktop.yaml
│ ├── statusnotifier_zh_CN.ts
│ ├── statusnotifier_zh_TW.desktop.yaml
│ └── statusnotifier_zh_TW.ts
├── plugin-sysstat/
│ ├── CMakeLists.txt
│ ├── lxqtsysstat.cpp
│ ├── lxqtsysstat.h
│ ├── lxqtsysstatcolours.cpp
│ ├── lxqtsysstatcolours.h
│ ├── lxqtsysstatcolours.ui
│ ├── lxqtsysstatconfiguration.cpp
│ ├── lxqtsysstatconfiguration.h
│ ├── lxqtsysstatconfiguration.ui
│ ├── lxqtsysstatutils.cpp
│ ├── lxqtsysstatutils.h
│ ├── resources/
│ │ └── sysstat.desktop.in
│ └── translations/
│ ├── sysstat.desktop.yaml
│ ├── sysstat.ts
│ ├── sysstat_ar.desktop.yaml
│ ├── sysstat_ar.ts
│ ├── sysstat_arn.ts
│ ├── sysstat_ast.ts
│ ├── sysstat_bg.desktop.yaml
│ ├── sysstat_bg.ts
│ ├── sysstat_ca.desktop.yaml
│ ├── sysstat_ca.ts
│ ├── sysstat_cs.desktop.yaml
│ ├── sysstat_cs.ts
│ ├── sysstat_cy.ts
│ ├── sysstat_da.desktop.yaml
│ ├── sysstat_da.ts
│ ├── sysstat_de.desktop.yaml
│ ├── sysstat_de.ts
│ ├── sysstat_el.desktop.yaml
│ ├── sysstat_el.ts
│ ├── sysstat_en_GB.desktop.yaml
│ ├── sysstat_en_GB.ts
│ ├── sysstat_es.desktop.yaml
│ ├── sysstat_es.ts
│ ├── sysstat_et.desktop.yaml
│ ├── sysstat_et.ts
│ ├── sysstat_fi.desktop.yaml
│ ├── sysstat_fi.ts
│ ├── sysstat_fr.desktop.yaml
│ ├── sysstat_fr.ts
│ ├── sysstat_gl.ts
│ ├── sysstat_he.desktop.yaml
│ ├── sysstat_he.ts
│ ├── sysstat_hr.desktop.yaml
│ ├── sysstat_hr.ts
│ ├── sysstat_hu.desktop.yaml
│ ├── sysstat_hu.ts
│ ├── sysstat_id.ts
│ ├── sysstat_it.desktop.yaml
│ ├── sysstat_it.ts
│ ├── sysstat_ja.desktop.yaml
│ ├── sysstat_ja.ts
│ ├── sysstat_ka.desktop.yaml
│ ├── sysstat_ka.ts
│ ├── sysstat_kab.ts
│ ├── sysstat_kk.desktop.yaml
│ ├── sysstat_kk.ts
│ ├── sysstat_ko.desktop.yaml
│ ├── sysstat_ko.ts
│ ├── sysstat_lg.desktop.yaml
│ ├── sysstat_lg.ts
│ ├── sysstat_lt.desktop.yaml
│ ├── sysstat_lt.ts
│ ├── sysstat_lv.desktop.yaml
│ ├── sysstat_lv.ts
│ ├── sysstat_nb_NO.desktop.yaml
│ ├── sysstat_nb_NO.ts
│ ├── sysstat_nl.desktop.yaml
│ ├── sysstat_nl.ts
│ ├── sysstat_oc.ts
│ ├── sysstat_pa.ts
│ ├── sysstat_pl.desktop.yaml
│ ├── sysstat_pl.ts
│ ├── sysstat_pt.desktop.yaml
│ ├── sysstat_pt.ts
│ ├── sysstat_pt_BR.ts
│ ├── sysstat_ru.desktop.yaml
│ ├── sysstat_ru.ts
│ ├── sysstat_si.desktop.yaml
│ ├── sysstat_si.ts
│ ├── sysstat_sk.desktop.yaml
│ ├── sysstat_sk_SK.ts
│ ├── sysstat_sv.desktop.yaml
│ ├── sysstat_sv.ts
│ ├── sysstat_tr.desktop.yaml
│ ├── sysstat_tr.ts
│ ├── sysstat_uk.desktop.yaml
│ ├── sysstat_uk.ts
│ ├── sysstat_zh_CN.desktop.yaml
│ ├── sysstat_zh_CN.ts
│ ├── sysstat_zh_TW.desktop.yaml
│ └── sysstat_zh_TW.ts
├── plugin-taskbar/
│ ├── CMakeLists.txt
│ ├── lxqtgrouppopup.cpp
│ ├── lxqtgrouppopup.h
│ ├── lxqttaskbar.cpp
│ ├── lxqttaskbar.h
│ ├── lxqttaskbarconfiguration.cpp
│ ├── lxqttaskbarconfiguration.h
│ ├── lxqttaskbarconfiguration.ui
│ ├── lxqttaskbarplugin.cpp
│ ├── lxqttaskbarplugin.h
│ ├── lxqttaskbutton.cpp
│ ├── lxqttaskbutton.h
│ ├── lxqttaskgroup.cpp
│ ├── lxqttaskgroup.h
│ ├── resources/
│ │ └── taskbar.desktop.in
│ └── translations/
│ ├── taskbar.desktop.yaml
│ ├── taskbar.ts
│ ├── taskbar_ar.desktop.yaml
│ ├── taskbar_ar.ts
│ ├── taskbar_arn.ts
│ ├── taskbar_ast.ts
│ ├── taskbar_bg.desktop.yaml
│ ├── taskbar_bg.ts
│ ├── taskbar_ca.desktop.yaml
│ ├── taskbar_ca.ts
│ ├── taskbar_cs.desktop.yaml
│ ├── taskbar_cs.ts
│ ├── taskbar_cy.ts
│ ├── taskbar_da.desktop.yaml
│ ├── taskbar_da.ts
│ ├── taskbar_de.desktop.yaml
│ ├── taskbar_de.ts
│ ├── taskbar_el.desktop.yaml
│ ├── taskbar_el.ts
│ ├── taskbar_en_GB.desktop.yaml
│ ├── taskbar_en_GB.ts
│ ├── taskbar_eo.desktop.yaml
│ ├── taskbar_eo.ts
│ ├── taskbar_es.desktop.yaml
│ ├── taskbar_es.ts
│ ├── taskbar_es_VE.desktop.yaml
│ ├── taskbar_es_VE.ts
│ ├── taskbar_et.desktop.yaml
│ ├── taskbar_et.ts
│ ├── taskbar_eu.desktop.yaml
│ ├── taskbar_eu.ts
│ ├── taskbar_fi.desktop.yaml
│ ├── taskbar_fi.ts
│ ├── taskbar_fr.desktop.yaml
│ ├── taskbar_fr.ts
│ ├── taskbar_gl.ts
│ ├── taskbar_he.desktop.yaml
│ ├── taskbar_he.ts
│ ├── taskbar_hr.desktop.yaml
│ ├── taskbar_hr.ts
│ ├── taskbar_hu.desktop.yaml
│ ├── taskbar_hu.ts
│ ├── taskbar_ia.ts
│ ├── taskbar_id.ts
│ ├── taskbar_it.desktop.yaml
│ ├── taskbar_it.ts
│ ├── taskbar_ja.desktop.yaml
│ ├── taskbar_ja.ts
│ ├── taskbar_ka.desktop.yaml
│ ├── taskbar_ka.ts
│ ├── taskbar_kab.ts
│ ├── taskbar_kk.desktop.yaml
│ ├── taskbar_kk.ts
│ ├── taskbar_ko.desktop.yaml
│ ├── taskbar_ko.ts
│ ├── taskbar_lg.desktop.yaml
│ ├── taskbar_lg.ts
│ ├── taskbar_lt.desktop.yaml
│ ├── taskbar_lt.ts
│ ├── taskbar_lv.desktop.yaml
│ ├── taskbar_lv.ts
│ ├── taskbar_nb_NO.desktop.yaml
│ ├── taskbar_nb_NO.ts
│ ├── taskbar_nl.desktop.yaml
│ ├── taskbar_nl.ts
│ ├── taskbar_oc.desktop.yaml
│ ├── taskbar_oc.ts
│ ├── taskbar_pa.desktop.yaml
│ ├── taskbar_pa.ts
│ ├── taskbar_pl.desktop.yaml
│ ├── taskbar_pl.ts
│ ├── taskbar_pt.desktop.yaml
│ ├── taskbar_pt.ts
│ ├── taskbar_pt_BR.desktop.yaml
│ ├── taskbar_pt_BR.ts
│ ├── taskbar_ro.desktop.yaml
│ ├── taskbar_ro_RO.ts
│ ├── taskbar_ru.desktop.yaml
│ ├── taskbar_ru.ts
│ ├── taskbar_si.desktop.yaml
│ ├── taskbar_si.ts
│ ├── taskbar_sk.desktop.yaml
│ ├── taskbar_sk_SK.ts
│ ├── taskbar_sl.desktop.yaml
│ ├── taskbar_sl.ts
│ ├── taskbar_sr.desktop.yaml
│ ├── taskbar_sr@ijekavian.desktop.yaml
│ ├── taskbar_sr@ijekavianlatin.desktop.yaml
│ ├── taskbar_sr@latin.desktop.yaml
│ ├── taskbar_sr@latin.ts
│ ├── taskbar_sr_BA.ts
│ ├── taskbar_sr_RS.ts
│ ├── taskbar_sv.desktop.yaml
│ ├── taskbar_sv.ts
│ ├── taskbar_th.desktop.yaml
│ ├── taskbar_th_TH.ts
│ ├── taskbar_tr.desktop.yaml
│ ├── taskbar_tr.ts
│ ├── taskbar_uk.desktop.yaml
│ ├── taskbar_uk.ts
│ ├── taskbar_zh_CN.desktop.yaml
│ ├── taskbar_zh_CN.ts
│ ├── taskbar_zh_TW.desktop.yaml
│ └── taskbar_zh_TW.ts
├── plugin-tray/
│ ├── CMakeLists.txt
│ ├── fdoselectionmanager.cpp
│ ├── fdoselectionmanager.h
│ ├── lxqttrayplugin.cpp
│ ├── lxqttrayplugin.h
│ ├── org.kde.StatusNotifierItem.xml
│ ├── org.kde.StatusNotifierWatcher.xml
│ ├── resources/
│ │ └── tray.desktop.in
│ ├── snidbus.cpp
│ ├── snidbus.h
│ ├── sniproxy.cpp
│ ├── sniproxy.h
│ ├── translations/
│ │ ├── tray.desktop.yaml
│ │ ├── tray_ar.desktop.yaml
│ │ ├── tray_bg.desktop.yaml
│ │ ├── tray_ca.desktop.yaml
│ │ ├── tray_cs.desktop.yaml
│ │ ├── tray_da.desktop.yaml
│ │ ├── tray_de.desktop.yaml
│ │ ├── tray_el.desktop.yaml
│ │ ├── tray_en_GB.desktop.yaml
│ │ ├── tray_eo.desktop.yaml
│ │ ├── tray_es.desktop.yaml
│ │ ├── tray_es_VE.desktop.yaml
│ │ ├── tray_et.desktop.yaml
│ │ ├── tray_eu.desktop.yaml
│ │ ├── tray_fi.desktop.yaml
│ │ ├── tray_fr.desktop.yaml
│ │ ├── tray_he.desktop.yaml
│ │ ├── tray_hr.desktop.yaml
│ │ ├── tray_hu.desktop.yaml
│ │ ├── tray_is.desktop.yaml
│ │ ├── tray_it.desktop.yaml
│ │ ├── tray_ja.desktop.yaml
│ │ ├── tray_ka.desktop.yaml
│ │ ├── tray_kab.desktop.yaml
│ │ ├── tray_kk.desktop.yaml
│ │ ├── tray_ko.desktop.yaml
│ │ ├── tray_lg.desktop.yaml
│ │ ├── tray_lt.desktop.yaml
│ │ ├── tray_lv.desktop.yaml
│ │ ├── tray_nb_NO.desktop.yaml
│ │ ├── tray_nl.desktop.yaml
│ │ ├── tray_oc.desktop.yaml
│ │ ├── tray_pa.desktop.yaml
│ │ ├── tray_pl.desktop.yaml
│ │ ├── tray_pt.desktop.yaml
│ │ ├── tray_pt_BR.desktop.yaml
│ │ ├── tray_ro.desktop.yaml
│ │ ├── tray_ru.desktop.yaml
│ │ ├── tray_si.desktop.yaml
│ │ ├── tray_sk.desktop.yaml
│ │ ├── tray_sl.desktop.yaml
│ │ ├── tray_sr.desktop.yaml
│ │ ├── tray_sr@ijekavian.desktop.yaml
│ │ ├── tray_sr@ijekavianlatin.desktop.yaml
│ │ ├── tray_sr@latin.desktop.yaml
│ │ ├── tray_sv.desktop.yaml
│ │ ├── tray_th.desktop.yaml
│ │ ├── tray_tr.desktop.yaml
│ │ ├── tray_uk.desktop.yaml
│ │ ├── tray_zh_CN.desktop.yaml
│ │ └── tray_zh_TW.desktop.yaml
│ ├── xcbutils.h
│ ├── xtestsender.cpp
│ └── xtestsender.h
├── plugin-volume/
│ ├── CMakeLists.txt
│ ├── alsadevice.cpp
│ ├── alsadevice.h
│ ├── alsaengine.cpp
│ ├── alsaengine.h
│ ├── audiodevice.cpp
│ ├── audiodevice.h
│ ├── audioengine.cpp
│ ├── audioengine.h
│ ├── lxqtvolume.cpp
│ ├── lxqtvolume.h
│ ├── lxqtvolumeconfiguration.cpp
│ ├── lxqtvolumeconfiguration.h
│ ├── lxqtvolumeconfiguration.ui
│ ├── ossengine.cpp
│ ├── ossengine.h
│ ├── pulseaudioengine.cpp
│ ├── pulseaudioengine.h
│ ├── resources/
│ │ └── volume.desktop.in
│ ├── translations/
│ │ ├── volume.desktop.yaml
│ │ ├── volume.ts
│ │ ├── volume_ar.desktop.yaml
│ │ ├── volume_ar.ts
│ │ ├── volume_arn.ts
│ │ ├── volume_ast.ts
│ │ ├── volume_bg.desktop.yaml
│ │ ├── volume_bg.ts
│ │ ├── volume_ca.desktop.yaml
│ │ ├── volume_ca.ts
│ │ ├── volume_cs.desktop.yaml
│ │ ├── volume_cs.ts
│ │ ├── volume_cy.ts
│ │ ├── volume_da.desktop.yaml
│ │ ├── volume_da.ts
│ │ ├── volume_de.desktop.yaml
│ │ ├── volume_de.ts
│ │ ├── volume_el.desktop.yaml
│ │ ├── volume_el.ts
│ │ ├── volume_en_GB.desktop.yaml
│ │ ├── volume_en_GB.ts
│ │ ├── volume_eo.ts
│ │ ├── volume_es.desktop.yaml
│ │ ├── volume_es.ts
│ │ ├── volume_es_VE.desktop.yaml
│ │ ├── volume_es_VE.ts
│ │ ├── volume_et.desktop.yaml
│ │ ├── volume_et.ts
│ │ ├── volume_eu.desktop.yaml
│ │ ├── volume_eu.ts
│ │ ├── volume_fi.desktop.yaml
│ │ ├── volume_fi.ts
│ │ ├── volume_fr.desktop.yaml
│ │ ├── volume_fr.ts
│ │ ├── volume_gl.ts
│ │ ├── volume_he.desktop.yaml
│ │ ├── volume_he.ts
│ │ ├── volume_hr.desktop.yaml
│ │ ├── volume_hr.ts
│ │ ├── volume_hu.desktop.yaml
│ │ ├── volume_hu.ts
│ │ ├── volume_id.ts
│ │ ├── volume_it.desktop.yaml
│ │ ├── volume_it.ts
│ │ ├── volume_ja.desktop.yaml
│ │ ├── volume_ja.ts
│ │ ├── volume_ka.desktop.yaml
│ │ ├── volume_ka.ts
│ │ ├── volume_kab.ts
│ │ ├── volume_kk.desktop.yaml
│ │ ├── volume_kk.ts
│ │ ├── volume_ko.desktop.yaml
│ │ ├── volume_ko.ts
│ │ ├── volume_lg.desktop.yaml
│ │ ├── volume_lg.ts
│ │ ├── volume_lt.desktop.yaml
│ │ ├── volume_lt.ts
│ │ ├── volume_lv.desktop.yaml
│ │ ├── volume_lv.ts
│ │ ├── volume_nb_NO.desktop.yaml
│ │ ├── volume_nb_NO.ts
│ │ ├── volume_nl.desktop.yaml
│ │ ├── volume_nl.ts
│ │ ├── volume_oc.desktop.yaml
│ │ ├── volume_oc.ts
│ │ ├── volume_pa.desktop.yaml
│ │ ├── volume_pa.ts
│ │ ├── volume_pl.desktop.yaml
│ │ ├── volume_pl.ts
│ │ ├── volume_pt.desktop.yaml
│ │ ├── volume_pt.ts
│ │ ├── volume_pt_BR.desktop.yaml
│ │ ├── volume_pt_BR.ts
│ │ ├── volume_ro_RO.desktop.yaml
│ │ ├── volume_ro_RO.ts
│ │ ├── volume_ru.desktop.yaml
│ │ ├── volume_ru.ts
│ │ ├── volume_si.desktop.yaml
│ │ ├── volume_si.ts
│ │ ├── volume_sk.desktop.yaml
│ │ ├── volume_sk_SK.ts
│ │ ├── volume_sl.ts
│ │ ├── volume_sv.desktop.yaml
│ │ ├── volume_sv.ts
│ │ ├── volume_th.desktop.yaml
│ │ ├── volume_th_TH.ts
│ │ ├── volume_tr.desktop.yaml
│ │ ├── volume_tr.ts
│ │ ├── volume_uk.desktop.yaml
│ │ ├── volume_uk.ts
│ │ ├── volume_zh_CN.desktop.yaml
│ │ ├── volume_zh_CN.ts
│ │ ├── volume_zh_TW.desktop.yaml
│ │ └── volume_zh_TW.ts
│ ├── volumebutton.cpp
│ ├── volumebutton.h
│ ├── volumepopup.cpp
│ └── volumepopup.h
└── plugin-worldclock/
├── CMakeLists.txt
├── lxqtworldclock.cpp
├── lxqtworldclock.h
├── lxqtworldclockconfiguration.cpp
├── lxqtworldclockconfiguration.h
├── lxqtworldclockconfiguration.ui
├── lxqtworldclockconfigurationmanualformat.cpp
├── lxqtworldclockconfigurationmanualformat.h
├── lxqtworldclockconfigurationmanualformat.ui
├── lxqtworldclockconfigurationtimezones.cpp
├── lxqtworldclockconfigurationtimezones.h
├── lxqtworldclockconfigurationtimezones.ui
├── resources/
│ └── worldclock.desktop.in
└── translations/
├── worldclock.desktop.yaml
├── worldclock.ts
├── worldclock_ar.desktop.yaml
├── worldclock_ar.ts
├── worldclock_arn.ts
├── worldclock_ast.ts
├── worldclock_bg.desktop.yaml
├── worldclock_bg.ts
├── worldclock_ca.desktop.yaml
├── worldclock_ca.ts
├── worldclock_cs.desktop.yaml
├── worldclock_cs.ts
├── worldclock_cy.ts
├── worldclock_da.desktop.yaml
├── worldclock_da.ts
├── worldclock_de.desktop.yaml
├── worldclock_de.ts
├── worldclock_el.desktop.yaml
├── worldclock_el.ts
├── worldclock_en_GB.desktop.yaml
├── worldclock_en_GB.ts
├── worldclock_es.desktop.yaml
├── worldclock_es.ts
├── worldclock_et.desktop.yaml
├── worldclock_et.ts
├── worldclock_fi.desktop.yaml
├── worldclock_fi.ts
├── worldclock_fr.desktop.yaml
├── worldclock_fr.ts
├── worldclock_gl.ts
├── worldclock_he.desktop.yaml
├── worldclock_he.ts
├── worldclock_hi.desktop.yaml
├── worldclock_hr.desktop.yaml
├── worldclock_hr.ts
├── worldclock_hu.desktop.yaml
├── worldclock_hu.ts
├── worldclock_id.ts
├── worldclock_it.desktop.yaml
├── worldclock_it.ts
├── worldclock_ja.desktop.yaml
├── worldclock_ja.ts
├── worldclock_ka.desktop.yaml
├── worldclock_ka.ts
├── worldclock_kab.ts
├── worldclock_kk.desktop.yaml
├── worldclock_kk.ts
├── worldclock_ko.desktop.yaml
├── worldclock_ko.ts
├── worldclock_lg.desktop.yaml
├── worldclock_lg.ts
├── worldclock_lt.desktop.yaml
├── worldclock_lt.ts
├── worldclock_lv.desktop.yaml
├── worldclock_lv.ts
├── worldclock_nb_NO.desktop.yaml
├── worldclock_nb_NO.ts
├── worldclock_nl.desktop.yaml
├── worldclock_nl.ts
├── worldclock_oc.ts
├── worldclock_pa.desktop.yaml
├── worldclock_pa.ts
├── worldclock_pl.desktop.yaml
├── worldclock_pl.ts
├── worldclock_pt.desktop.yaml
├── worldclock_pt.ts
├── worldclock_pt_BR.desktop.yaml
├── worldclock_pt_BR.ts
├── worldclock_ru.desktop.yaml
├── worldclock_ru.ts
├── worldclock_si.desktop.yaml
├── worldclock_si.ts
├── worldclock_sk.desktop.yaml
├── worldclock_sk_SK.ts
├── worldclock_sr.desktop.yaml
├── worldclock_sr.ts
├── worldclock_sv.desktop.yaml
├── worldclock_sv.ts
├── worldclock_tr.desktop.yaml
├── worldclock_tr.ts
├── worldclock_uk.desktop.yaml
├── worldclock_uk.ts
├── worldclock_zh_CN.desktop.yaml
├── worldclock_zh_CN.ts
├── worldclock_zh_TW.desktop.yaml
└── worldclock_zh_TW.ts
SYMBOL INDEX (580 symbols across 207 files)
FILE: panel/backends/ilxqtabstractwmiface.h
function virtual (line 53) | virtual QVector<WId> getCurrentWindows() const = 0;
FILE: panel/backends/lxqtdummywmbackend.cpp
function QString (line 56) | QString LXQtDummyWMBackend::getWindowTitle(WId) const
function QIcon (line 66) | QIcon LXQtDummyWMBackend::getApplicationIcon(WId, int) const
function QString (line 71) | QString LXQtDummyWMBackend::getWindowClass(WId) const
function LXQtTaskBarWindowLayer (line 76) | LXQtTaskBarWindowLayer LXQtDummyWMBackend::getWindowLayer(WId) const
function LXQtTaskBarWindowState (line 86) | LXQtTaskBarWindowState LXQtDummyWMBackend::getWindowState(WId) const
function WId (line 111) | WId LXQtDummyWMBackend::getActiveWindow() const
function QString (line 125) | QString LXQtDummyWMBackend::getWorkspaceName(int, QString) const
FILE: panel/backends/lxqtdummywmbackend.h
function class (line 34) | class LXQtDummyWMBackend : public ILXQtAbstractWMInterface
FILE: panel/backends/lxqttaskbartypes.h
type quintptr (line 34) | typedef quintptr WId;
type class (line 36) | enum class
type class (line 52) | enum class
type class (line 63) | enum class
type class (line 75) | enum class
FILE: panel/backends/wayland/kwin_wayland/lxqtplasmavirtualdesktop.cpp
function QString (line 86) | QString LXQtPlasmaWaylandWorkspaceInfo::getDesktopName(int pos) const
function QString (line 93) | QString LXQtPlasmaWaylandWorkspaceInfo::getDesktopId(int pos) const
function QVariant (line 173) | QVariant LXQtPlasmaWaylandWorkspaceInfo::currentDesktop() const
function quint32 (line 183) | quint32 LXQtPlasmaWaylandWorkspaceInfo::position(const QVariant &desktop...
function QVariantList (line 188) | QVariantList LXQtPlasmaWaylandWorkspaceInfo::desktopIds() const
function QStringList (line 199) | QStringList LXQtPlasmaWaylandWorkspaceInfo::desktopNames() const
FILE: panel/backends/wayland/kwin_wayland/lxqttaskbarplasmawindowmanagment.h
type quintptr (line 18) | typedef quintptr WId;
function org_kde_plasma_window_icon_changed (line 86) | void org_kde_plasma_window_icon_changed() override;
FILE: panel/backends/wayland/kwin_wayland/lxqtwmbackend_kwinwayland.cpp
function findWindow (line 38) | auto findWindow(const std::vector<std::unique_ptr<LXQtTaskBarPlasmaWindo...
function QString (line 175) | QString LXQtWMBackend_KWinWayland::getWindowTitle(WId windowId) const
function QIcon (line 193) | QIcon LXQtWMBackend_KWinWayland::getApplicationIcon(WId windowId, int de...
function QString (line 204) | QString LXQtWMBackend_KWinWayland::getWindowClass(WId windowId) const
function LXQtTaskBarWindowLayer (line 212) | LXQtTaskBarWindowLayer LXQtWMBackend_KWinWayland::getWindowLayer(WId win...
function LXQtTaskBarWindowState (line 257) | LXQtTaskBarWindowState LXQtWMBackend_KWinWayland::getWindowState(WId win...
function WId (line 377) | WId LXQtWMBackend_KWinWayland::getActiveWindow() const
function QString (line 389) | QString LXQtWMBackend_KWinWayland::getWorkspaceName(int idx, QString) const
function LXQtTaskBarPlasmaWindow (line 861) | LXQtTaskBarPlasmaWindow *LXQtWMBackend_KWinWayland::getWindow(WId window...
function ILXQtAbstractWMInterface (line 898) | ILXQtAbstractWMInterface *LXQtWMBackendKWinWaylandLibrary::instance() const
FILE: panel/backends/wayland/kwin_wayland/lxqtwmbackend_kwinwayland.h
function reloadWindows (line 53) | bool reloadWindows() override;
FILE: panel/backends/wayland/wayfire/lxqtwmbackend_wf.cpp
function QJsonObject (line 14) | static inline QJsonObject updateJsonObject(QJsonObject source, QJsonObje...
function isValidToplevel (line 25) | static inline bool isValidToplevel(QJsonObject view)
function QString (line 53) | static inline QString getPixmapIcon(QString name)
function QIcon (line 78) | QIcon getIconForAppId(QString mAppId)
function QString (line 600) | QString LXQtTaskbarWayfireBackend::getWindowTitle(WId windowId) const
function QIcon (line 616) | QIcon LXQtTaskbarWayfireBackend::getApplicationIcon(WId windowId, int de...
function QString (line 629) | QString LXQtTaskbarWayfireBackend::getWindowClass(WId windowId) const
function LXQtTaskBarWindowLayer (line 640) | LXQtTaskBarWindowLayer LXQtTaskbarWayfireBackend::getWindowLayer(WId) const
function LXQtTaskBarWindowState (line 650) | LXQtTaskBarWindowState LXQtTaskbarWayfireBackend::getWindowState(WId win...
function WId (line 787) | WId LXQtTaskbarWayfireBackend::getActiveWindow() const
function QString (line 802) | QString LXQtTaskbarWayfireBackend::getWorkspaceName(int x, QString outpu...
function ILXQtAbstractWMInterface (line 1090) | ILXQtAbstractWMInterface *LXQtWMBackendWayfireLibrary::instance() const
FILE: panel/backends/wayland/wayfire/lxqtwmbackend_wf.h
function class (line 15) | class LXQtTaskbarWayfireBackend : public ILXQtAbstractWMInterface
FILE: panel/backends/wayland/wayfire/wayfire-common.cpp
function QJsonDocument (line 183) | QJsonDocument LXQt::Panel::WayfireImpl::readJson()
function QJsonDocument (line 221) | QJsonDocument createJsonObject(std::initializer_list<std::pair<QString, ...
type sockaddr_un (line 260) | struct sockaddr_un
type sockaddr (line 266) | struct sockaddr
function QJsonArray (line 289) | QJsonArray LXQt::Panel::Wayfire::listOutputs() const
function QJsonObject (line 305) | QJsonObject LXQt::Panel::Wayfire::getOutputInfo(WaylandId opId) const
function WaylandId (line 317) | WaylandId LXQt::Panel::Wayfire::getActiveOutput() const
function QJsonArray (line 368) | QJsonArray LXQt::Panel::Wayfire::getWorkspaceSetsInfo() const
function QString (line 376) | QString LXQt::Panel::Wayfire::getWorkspaceName(int x, const QString &out...
function QJsonArray (line 449) | QJsonArray LXQt::Panel::Wayfire::listViews() const
function WaylandId (line 479) | WaylandId LXQt::Panel::Wayfire::getActiveView() const
function QJsonObject (line 498) | QJsonObject LXQt::Panel::Wayfire::getViewInfo(WaylandId viewId) const
function QJsonDocument (line 688) | QJsonDocument LXQt::Panel::Wayfire::genericRequest(QJsonDocument request...
FILE: panel/backends/wayland/wayfire/wayfire-common.h
function namespace (line 31) | namespace LXQt
type WaylandId (line 41) | struct WaylandId
function class (line 53) | class LXQt::Panel::WayfireImpl : public QThread
function class (line 108) | class LXQt::Panel::Wayfire : public QObject
FILE: panel/backends/wayland/wlroots/lxqttaskbarwlrwm.cpp
function QString (line 24) | QString U8Str( const char *str ) {
function QString (line 28) | static inline QString getPixmapIcon(QString name)
function QIcon (line 54) | QIcon getIconForAppId(QString mAppId)
function wl_seat (line 202) | static inline wl_seat *get_seat()
type ::zwlr_foreign_toplevel_handle_v1 (line 243) | struct ::zwlr_foreign_toplevel_handle_v1
type ::wl_output (line 310) | struct ::wl_output
type ::wl_output (line 318) | struct ::wl_output
type ::zwlr_foreign_toplevel_handle_v1 (line 528) | struct ::zwlr_foreign_toplevel_handle_v1
FILE: panel/backends/wayland/wlroots/lxqttaskbarwlrwm.h
type quintptr (line 10) | typedef quintptr WId;
function setShowingDesktop (line 25) | inline void setShowingDesktop(bool show) { m_isShowingDesktop = show; }
type zwlr_foreign_toplevel_handle_v1 (line 28) | struct ::zwlr_foreign_toplevel_handle_v1
function zwlr_foreign_toplevel_manager_v1_finished (line 29) | void zwlr_foreign_toplevel_manager_v1_finished() {}
function class (line 40) | class WindowProperties {
type wl_output (line 123) | struct ::wl_output
type wl_output (line 124) | struct ::wl_output
type zwlr_foreign_toplevel_handle_v1 (line 128) | struct ::zwlr_foreign_toplevel_handle_v1
FILE: panel/backends/wayland/wlroots/lxqtwmbackend_wlr.cpp
function eraseWindow (line 13) | void eraseWindow(std::vector<WId>& windows, WId tgt) {
function QString (line 97) | QString LXQtTaskbarWlrootsBackend::getWindowTitle(WId windowId) const
function QIcon (line 111) | QIcon LXQtTaskbarWlrootsBackend::getApplicationIcon(WId windowId, int de...
function QString (line 122) | QString LXQtTaskbarWlrootsBackend::getWindowClass(WId windowId) const
function LXQtTaskBarWindowLayer (line 130) | LXQtTaskBarWindowLayer LXQtTaskbarWlrootsBackend::getWindowLayer(WId) const
function LXQtTaskBarWindowState (line 140) | LXQtTaskBarWindowState LXQtTaskbarWlrootsBackend::getWindowState(WId win...
function WId (line 254) | WId LXQtTaskbarWlrootsBackend::getActiveWindow() const
function QString (line 264) | QString LXQtTaskbarWlrootsBackend::getWorkspaceName(int idx, QString sce...
function WId (line 392) | WId LXQtTaskbarWlrootsBackend::findWindow(WId tgt) const
function WId (line 402) | WId LXQtTaskbarWlrootsBackend::findTopParent(WId winId) const
function LXQtTaskbarWlrootsWindow (line 669) | LXQtTaskbarWlrootsWindow *LXQtTaskbarWlrootsBackend::getWindow(WId windo...
function ILXQtAbstractWMInterface (line 730) | ILXQtAbstractWMInterface *LXQtWMBackendWlrootsLibrary::instance() const
FILE: panel/backends/wayland/wlroots/lxqtwmbackend_wlr.h
function namespace (line 13) | namespace LXQt
function class (line 23) | class LXQtTaskbarWlrootsBackend : public ILXQtAbstractWMInterface
FILE: panel/backends/wayland/wlroots/workspace.cpp
type ::ext_workspace_handle_v1 (line 9) | struct ::ext_workspace_handle_v1
function QString (line 95) | QString LXQt::Taskbar::WorkspaceManagerV1::workspaceName(int idx, const ...
type ::ext_workspace_group_handle_v1 (line 180) | struct ::ext_workspace_group_handle_v1
type ::ext_workspace_handle_v1 (line 232) | struct ::ext_workspace_handle_v1
type ::ext_workspace_group_handle_v1 (line 265) | struct ::ext_workspace_group_handle_v1
type ::wl_output (line 286) | struct ::wl_output
type ::wl_output (line 294) | struct ::wl_output
type ::ext_workspace_handle_v1 (line 301) | struct ::ext_workspace_handle_v1
type ::ext_workspace_handle_v1 (line 317) | struct ::ext_workspace_handle_v1
type ::ext_workspace_handle_v1 (line 338) | struct ::ext_workspace_handle_v1
function QString (line 350) | QString LXQt::Taskbar::WorkspaceHandleV1::id() const
function QString (line 355) | QString LXQt::Taskbar::WorkspaceHandleV1::name() const
FILE: panel/backends/wayland/wlroots/workspace.hpp
type wl_registry (line 15) | struct wl_registry
type LXQt (line 17) | namespace LXQt
type Taskbar (line 19) | namespace Taskbar
class WorkspaceManagerV1 (line 21) | class WorkspaceManagerV1
class WorkspaceGroupHandleV1 (line 22) | class WorkspaceGroupHandleV1
class WorkspaceHandleV1 (line 23) | class WorkspaceHandleV1
class LXQt::Taskbar::WorkspaceManagerV1 (line 27) | class LXQt::Taskbar::WorkspaceManagerV1 : public QWaylandClientExtension...
type ::ext_workspace_group_handle_v1 (line 57) | struct ::ext_workspace_group_handle_v1
type ::ext_workspace_handle_v1 (line 58) | struct ::ext_workspace_handle_v1
class LXQt::Taskbar::WorkspaceGroupHandleV1 (line 63) | class LXQt::Taskbar::WorkspaceGroupHandleV1 : public QObject, public QtW...
method outputs (line 73) | QList<struct ::wl_output*> outputs() const {
method workspaces (line 77) | QList<QPointer<WorkspaceHandleV1>> workspaces() const {
type ::wl_output (line 90) | struct ::wl_output
type ::wl_output (line 91) | struct ::wl_output
type ::wl_output (line 98) | struct ::wl_output
type ::wl_output (line 99) | struct ::wl_output
type ::ext_workspace_handle_v1 (line 100) | struct ::ext_workspace_handle_v1
type ::ext_workspace_handle_v1 (line 101) | struct ::ext_workspace_handle_v1
type ::wl_output (line 106) | struct ::wl_output
class LXQt::Taskbar::WorkspaceHandleV1 (line 115) | class LXQt::Taskbar::WorkspaceHandleV1 : public QObject, public QtWaylan...
FILE: panel/backends/xcb/lxqtwmbackend_x11.cpp
function QString (line 302) | QString LXQtWMBackendX11::getWindowTitle(WId windowId) const
function QIcon (line 316) | QIcon LXQtWMBackendX11::getApplicationIcon(WId windowId, int devicePixel...
function QString (line 321) | QString LXQtWMBackendX11::getWindowClass(WId windowId) const
function LXQtTaskBarWindowLayer (line 327) | LXQtTaskBarWindowLayer LXQtWMBackendX11::getWindowLayer(WId windowId) const
function LXQtTaskBarWindowState (line 360) | LXQtTaskBarWindowState LXQtWMBackendX11::getWindowState(WId windowId) const
function WId (line 468) | WId LXQtWMBackendX11::getActiveWindow() const
function QString (line 482) | QString LXQtWMBackendX11::getWorkspaceName(int idx, QString) const
function ILXQtAbstractWMInterface (line 719) | ILXQtAbstractWMInterface *LXQtWMBackendX11Library::instance() const
FILE: panel/backends/xcb/lxqtwmbackend_x11.h
type Display (line 36) | typedef struct _XDisplay Display;
type xcb_connection_t (line 37) | struct xcb_connection_t
function reloadWindows (line 50) | bool reloadWindows() override;
FILE: panel/config/addplugindialog.h
function namespace (line 38) | namespace Ui {
function class (line 42) | class AddPluginDialog : public QDialog
FILE: panel/config/configpaneldialog.h
function class (line 38) | class ConfigPanelDialog : public LXQt::ConfigDialog
FILE: panel/config/configplacement.cpp
type ScreenPosition (line 44) | struct ScreenPosition
FILE: panel/config/configplacement.h
function namespace (line 38) | namespace Ui {
function class (line 42) | class ConfigPlacement : public QWidget
FILE: panel/config/configpluginswidget.h
function namespace (line 35) | namespace Ui {
function class (line 40) | class ConfigPluginsWidget : public QWidget
FILE: panel/config/configstyling.h
function namespace (line 38) | namespace Ui {
function class (line 42) | class ConfigStyling : public QWidget
FILE: panel/ilxqtpanel.h
function class (line 38) | class LXQT_PANEL_API ILXQtPanel
FILE: panel/ilxqtpanelplugin.h
function namespace (line 50) | namespace LXQt
function ILXQtPanelPluginStartupInfo (line 55) | struct LXQT_PANEL_API ILXQtPanelPluginStartupInfo
function class (line 70) | class LXQT_PANEL_API ILXQtPanelPlugin
function virtual (line 143) | virtual QDialog *configureDialog() { return 0; }
function virtual (line 151) | virtual void settingsChanged() {}
function virtual (line 159) | virtual void activated(ActivationReason /*reason*/) {}
function virtual (line 167) | virtual void realign() {}
function ILXQtPanel (line 172) | ILXQtPanel *panel() const { return mPanel; }
function PluginSettings (line 175) | PluginSettings *settings() const { return mSettings; }
function LXQt (line 176) | const LXQt::PluginInfo *desktopFile() const { return mDesktopFile; }
function virtual (line 182) | virtual QRect calculatePopupWindowPos(const QSize &windowSize)
function willShowWindow (line 193) | inline void willShowWindow(QWidget * w)
function pluginFlagsChanged (line 204) | inline void pluginFlagsChanged()
function LXQT_PANEL_API (line 233) | LXQT_PANEL_API ILXQtPanelPluginLibrary
FILE: panel/lxqtpanel.cpp
function QString (line 109) | QString LXQtPanel::positionToStr(ILXQtPanel::Position position)
function QStringList (line 557) | QStringList pluginDesktopDirs()
function QMargins (line 602) | QMargins LXQtPanel::layerWindowMargins()
function QRect (line 1394) | QRect LXQtPanel::globalGeometry() const
function Plugin (line 1566) | Plugin* LXQtPanel::findPlugin(const ILXQtPanelPlugin* iPlugin) const
function QRect (line 1578) | QRect LXQtPanel::calculatePopupWindowPos(QPoint const & absolutePos, QSi...
function QRect (line 1636) | QRect LXQtPanel::calculatePopupWindowPos(const ILXQtPanelPlugin *plugin,...
function QString (line 1673) | QString LXQtPanel::qssPosition() const
function QString (line 1842) | QString LXQtPanel::iconTheme() const
FILE: panel/lxqtpanel.h
function namespace (line 47) | namespace LayerShellQt {
function namespace (line 51) | namespace LXQt {
type Alignment (line 101) | enum Alignment {
function QString (line 130) | QString name() { return mConfigGroup; }
function QRect (line 152) | QRect globalGeometry() const override;
FILE: panel/lxqtpanelapplication.cpp
function getBackendScoreMap (line 47) | static inline QMap<QString, int> getBackendScoreMap( QString compositor )
function QString (line 88) | static inline QString getBackendFilePath( QString name )
function testBackend (line 126) | static inline bool testBackend( QString backendName )
function LXQtPanel (line 451) | LXQtPanel* LXQtPanelApplication::addPanel(const QString& name)
function ILXQtAbstractWMInterface (line 604) | ILXQtAbstractWMInterface *LXQtPanelApplication::getWMBackend() const
FILE: panel/lxqtpanelapplication.h
function class (line 53) | class LXQtPanelApplication : public LXQt::Application
FILE: panel/lxqtpanelapplication_p.h
function namespace (line 26) | namespace LXQt {
function class (line 32) | class LXQtPanelApplicationPrivate {
FILE: panel/lxqtpanellayout.cpp
class ItemMoveAnimation (line 54) | class ItemMoveAnimation : public QVariantAnimation
method ItemMoveAnimation (line 57) | ItemMoveAnimation(QLayoutItem *item) :
method updateCurrentValue (line 64) | void updateCurrentValue(const QVariant ¤t) override
type LayoutItemInfo (line 75) | struct LayoutItemInfo
class LayoutItemGrid (line 117) | class LayoutItemGrid
method count (line 124) | int count() const { return mItems.count(); }
method QLayoutItem (line 125) | QLayoutItem *itemAt(int index) const { return mItems[index]; }
method lineSize (line 134) | int lineSize() const { return mLineSize; }
method colCount (line 137) | int colCount() const { return mColCount; }
method usedColCount (line 140) | int usedColCount() const { return mUsedColCount; }
method rowCount (line 142) | int rowCount() const { return mRowCount; }
method invalidate (line 144) | void invalidate() { mValid = false; }
method isValid (line 145) | bool isValid() const { return mValid; }
method QSize (line 147) | QSize sizeHint() const { return mSizeHint; }
method horiz (line 149) | bool horiz() const { return mHoriz; }
method isExpandable (line 155) | bool isExpandable() const { return mExpandable; }
method expandableSize (line 156) | int expandableSize() const { return mExpandableSize; }
function QLayoutItem (line 281) | QLayoutItem *LayoutItemGrid::takeAt(int index)
function LayoutItemInfo (line 302) | const LayoutItemInfo &LayoutItemGrid::itemInfo(int row, int col) const
function LayoutItemInfo (line 311) | LayoutItemInfo &LayoutItemGrid::itemInfo(int row, int col)
function QLayoutItem (line 491) | QLayoutItem *LXQtPanelLayout::itemAt(int index) const
function QLayoutItem (line 507) | QLayoutItem *LXQtPanelLayout::takeAt(int index)
function QSize (line 568) | QSize LXQtPanelLayout::sizeHint() const
FILE: panel/lxqtpanelpluginconfigdialog.cpp
function PluginSettings (line 55) | PluginSettings& LXQtPanelPluginConfigDialog::settings() const
FILE: panel/main.cpp
function main (line 37) | int main(int argc, char *argv[])
FILE: panel/panelpluginsmodel.cpp
function QVariant (line 59) | QVariant PanelPluginsModel::data(const QModelIndex & index, int role/* =...
function QStringList (line 96) | QStringList PanelPluginsModel::pluginNames() const
function Plugin (line 113) | Plugin* PanelPluginsModel::pluginByName(QString name) const
function Plugin (line 121) | Plugin const * PanelPluginsModel::pluginByID(QString id) const
function QString (line 339) | QString PanelPluginsModel::findNewPluginSettingsGroup(const QString &plu...
FILE: panel/panelpluginsmodel.h
function namespace (line 31) | namespace LXQt
function class (line 48) | class PanelPluginsModel : public QAbstractListModel
FILE: panel/plugin.cpp
type assert_helper (line 258) | struct assert_helper
method assert_helper (line 260) | assert_helper()
function ILXQtPanelPluginLibrary (line 269) | ILXQtPanelPluginLibrary const * Plugin::findStaticPlugin(const QString &...
function QMenu (line 448) | QMenu *Plugin::popupMenu() const
FILE: panel/plugin.h
type Alignment (line 55) | enum Alignment {
function ILXQtPanelPlugin (line 73) | const ILXQtPanelPlugin * iPlugin() const { return mPlugin; }
function isSeparate (line 77) | bool isSeparate() const;
function QColor (line 87) | static QColor moveMarkerColor() { return mMoveMarkerColor; }
function setMoveMarkerColor (line 88) | static void setMoveMarkerColor(QColor color) { mMoveMarkerColor = color; }
FILE: panel/pluginmoveprocessor.h
function Plugin (line 49) | Plugin *plugin() const { return mPlugin; }
type MarkType (line 68) | enum MarkType
type MousePosInfo (line 76) | struct MousePosInfo
function updateCurrentValue (line 96) | void updateCurrentValue(const QVariant &value) { QCursor::setPos(value.t...
FILE: panel/pluginsettings.cpp
class PluginSettingsPrivate (line 33) | class PluginSettingsPrivate
method PluginSettingsPrivate (line 36) | PluginSettingsPrivate(LXQt::Settings* settings, const QString &group)
method QString (line 46) | inline QString fullPrefix() const
function QString (line 57) | QString PluginSettingsPrivate::prefix() const
function QString (line 72) | QString PluginSettings::group() const
function QVariant (line 80) | QVariant PluginSettings::value(const QString &key, const QVariant &defau...
function QStringList (line 174) | QStringList PluginSettings::allKeys() const
function QStringList (line 183) | QStringList PluginSettings::childGroups() const
function PluginSettings (line 223) | PluginSettings* PluginSettingsFactory::create(LXQt::Settings *settings, ...
FILE: panel/pluginsettings.h
function namespace (line 35) | namespace LXQt
FILE: panel/pluginsettings_p.h
function class (line 33) | class PluginSettingsFactory
FILE: panel/popupmenu.cpp
function QAction (line 40) | QAction* PopupMenu::addTitle(const QIcon &icon, const QString &text)
function QAction (line 67) | QAction* PopupMenu::addTitle(const QString &text)
FILE: panel/windownotifier.h
function class (line 35) | class WindowNotifier : public QObject
FILE: plugin-backlight/backlight.cpp
function QWidget (line 83) | QWidget *LXQtBacklight::widget()
FILE: plugin-backlight/backlight.h
function namespace (line 37) | namespace LXQt {
function namespace (line 40) | namespace GlobalKeyShortcut
function class (line 45) | class BacklightButton : public QToolButton {
FILE: plugin-backlight/sliderdialog.h
function class (line 37) | class SliderDialog: public QDialog
FILE: plugin-colorpicker/colorbutton.h
function class (line 11) | class ColorButton : public QToolButton
FILE: plugin-colorpicker/colorpicker.cpp
function QIcon (line 201) | QIcon ColorPickerWidget::colorIcon(QColor color)
FILE: plugin-colorpicker/colorpicker.h
function QMenu (line 48) | QMenu* popupMenu() { return mColorsMenu; }
function QToolButton (line 49) | QToolButton* pickerButton() { return mPickerButton; }
function ColorButton (line 50) | ColorButton* colorButton() { return mColorButton; }
function mCapturing (line 71) | bool mCapturing { false };
function virtual (line 87) | virtual QWidget *widget() override { return &mWidget; }
FILE: plugin-cpuload/lxqtcpuload.h
function class (line 34) | class LXQtCpuLoad: public QFrame
FILE: plugin-cpuload/lxqtcpuloadconfiguration.h
function namespace (line 38) | namespace Ui {
function class (line 42) | class LXQtCpuLoadConfiguration : public LXQtPanelPluginConfigDialog
FILE: plugin-cpuload/lxqtcpuloadplugin.cpp
function QWidget (line 53) | QWidget *LXQtCpuLoadPlugin::widget()
function QDialog (line 58) | QDialog *LXQtCpuLoadPlugin::configureDialog()
FILE: plugin-customcommand/colorLabel.cpp
function QColor (line 52) | QColor ColorLabel::getColor() const
FILE: plugin-customcommand/colorLabel.h
function class (line 33) | class ColorLabel : public QLabel {
FILE: plugin-customcommand/custombutton.cpp
class LeftAlignedTextStyle (line 37) | class LeftAlignedTextStyle : public QProxyStyle
FILE: plugin-customcommand/custombutton.h
function class (line 34) | class CustomButton : public QToolButton
FILE: plugin-customcommand/lxqtcustomcommand.cpp
function QWidget (line 85) | QWidget *LXQtCustomCommand::widget()
function QDialog (line 95) | QDialog *LXQtCustomCommand::configureDialog()
FILE: plugin-customcommand/lxqtcustomcommandconfiguration.h
function namespace (line 32) | namespace Ui {
function class (line 36) | class LXQtCustomCommandConfiguration : public LXQtPanelPluginConfigDialog
FILE: plugin-desktopswitch/desktopswitch.cpp
function QScreen (line 87) | QScreen* DesktopSwitch::getScreen() const
function QDialog (line 305) | QDialog *DesktopSwitch::configureDialog()
function ILXQtPanelPlugin (line 346) | ILXQtPanelPlugin *DesktopSwitchPluginLibrary::instance(const ILXQtPanelP...
function QWidget (line 369) | QWidget *DesktopSwitchUnsupported::widget()
FILE: plugin-desktopswitch/desktopswitch.h
function namespace (line 41) | namespace LXQt {
function class (line 47) | class DesktopSwitchWidget: public QFrame
function QWidget (line 71) | QWidget *widget() { return &mWidget; }
FILE: plugin-desktopswitch/desktopswitchbutton.h
function namespace (line 35) | namespace GlobalKeyShortcut
function class (line 40) | class DesktopSwitchButton : public QToolButton
FILE: plugin-desktopswitch/desktopswitchconfiguration.h
function namespace (line 39) | namespace Ui {
function class (line 43) | class DesktopSwitchConfiguration : public LXQtPanelPluginConfigDialog
FILE: plugin-directorymenu/directorymenu.cpp
function QDialog (line 150) | QDialog* DirectoryMenu::configureDialog()
FILE: plugin-directorymenu/directorymenu.h
function virtual (line 52) | virtual QWidget *widget() { return &mButton; }
FILE: plugin-directorymenu/directorymenuconfiguration.h
function namespace (line 41) | namespace Ui {
function class (line 45) | class DirectoryMenuConfiguration : public LXQtPanelPluginConfigDialog
FILE: plugin-dom/domplugin.h
function virtual (line 42) | virtual QWidget *widget() { return &mButton; }
FILE: plugin-dom/domtreeitem.cpp
function QString (line 119) | QString DomTreeItem::widgetObjectName() const
function QString (line 125) | QString DomTreeItem::widgetText() const
function QString (line 135) | QString DomTreeItem::widgetClassName() const
function QStringList (line 141) | QStringList DomTreeItem::widgetClassHierarchy() const
FILE: plugin-dom/treewindow.h
function namespace (line 39) | namespace Ui {
function class (line 44) | class TreeWindow : public QMainWindow
FILE: plugin-fancymenu/lxqtfancymenu.cpp
function QDialog (line 331) | QDialog *LXQtFancyMenu::configureDialog()
FILE: plugin-fancymenu/lxqtfancymenu.h
function namespace (line 45) | namespace LXQt {
function namespace (line 50) | namespace GlobalKeyShortcut
function QWidget (line 65) | QWidget *widget() { return &mButton; }
FILE: plugin-fancymenu/lxqtfancymenuappmap.cpp
function QStringList (line 133) | QStringList LXQtFancyMenuAppMap::getFavorites() const
FILE: plugin-fancymenu/lxqtfancymenuappmap.h
type LXQtFancyMenuAppItem (line 44) | struct LXQtFancyMenuAppItem
function class (line 55) | class LXQtFancyMenuAppMap
FILE: plugin-fancymenu/lxqtfancymenuappmodel.cpp
function QVariant (line 59) | QVariant LXQtFancyMenuAppModel::data(const QModelIndex &idx, int role) c...
function QStringList (line 112) | QStringList LXQtFancyMenuAppModel::mimeTypes() const
function QMimeData (line 117) | QMimeData *LXQtFancyMenuAppModel::mimeData(const QModelIndexList &indexe...
function LXQtFancyMenuAppMap (line 229) | LXQtFancyMenuAppMap *LXQtFancyMenuAppModel::appMap() const
function LXQtFancyMenuAppItem (line 239) | const LXQtFancyMenuAppItem *LXQtFancyMenuAppModel::getAppAt(int idx) const
function LXQtFancyMenuItemType (line 258) | LXQtFancyMenuItemType LXQtFancyMenuAppModel::getItemTypeAt(int idx) const
FILE: plugin-fancymenu/lxqtfancymenuappmodel.h
type LXQtFancyMenuAppItem (line 37) | struct LXQtFancyMenuAppItem
function class (line 39) | class LXQtFancyMenuAppModel : public QAbstractListModel
FILE: plugin-fancymenu/lxqtfancymenucategoriesmodel.cpp
function QVariant (line 46) | QVariant LXQtFancyMenuCategoriesModel::data(const QModelIndex &idx, int ...
function LXQtFancyMenuAppMap (line 91) | LXQtFancyMenuAppMap *LXQtFancyMenuCategoriesModel::appMap() const
FILE: plugin-fancymenu/lxqtfancymenucategoriesmodel.h
function class (line 36) | class LXQtFancyMenuCategoriesModel : public QAbstractListModel
FILE: plugin-fancymenu/lxqtfancymenuconfiguration.h
function namespace (line 37) | namespace Ui {
function namespace (line 41) | namespace GlobalKeyShortcut {
function class (line 45) | class LXQtFancyMenuConfiguration : public LXQtPanelPluginConfigDialog
FILE: plugin-fancymenu/lxqtfancymenutypes.h
type LXQtFancyMenuButtonPosition (line 34) | enum LXQtFancyMenuButtonPosition : bool
type LXQtFancyMenuCategoryPosition (line 40) | enum LXQtFancyMenuCategoryPosition : bool
type class (line 46) | enum class
FILE: plugin-fancymenu/lxqtfancymenuwindow.cpp
class SingleActivateStyle (line 66) | class SingleActivateStyle : public QProxyStyle
method styleHint (line 70) | int styleHint(StyleHint hint, const QStyleOption * option = nullptr, c...
class SeparatorDelegate (line 79) | class SeparatorDelegate : public QStyledItemDelegate
method SeparatorDelegate (line 82) | SeparatorDelegate(QObject *parent) : QStyledItemDelegate(parent) {}
method isSeparator (line 84) | static bool isSeparator(const QModelIndex &index)
method paint (line 90) | void paint(QPainter *painter,
method QSize (line 120) | QSize sizeHint(const QStyleOptionViewItem &option,
function QSize (line 266) | QSize LXQtFancyMenuWindow::sizeHint() const
function QSize (line 271) | QSize LXQtFancyMenuWindow::minimumSizeHint() const
function QStringList (line 809) | QStringList LXQtFancyMenuWindow::favorites() const
FILE: plugin-fancymenu/lxqtfancymenuwindow.h
function class (line 52) | class LXQtFancyMenuWindow : public QWidget
FILE: plugin-kbindicator/kbindicator-plugin.cpp
function ILXQtPanelPlugin (line 44) | ILXQtPanelPlugin *instance(const ILXQtPanelPluginStartupInfo &startupInf...
FILE: plugin-kbindicator/src/content.cpp
function QWidget (line 119) | QWidget* Content::widget(Controls cnt) const
FILE: plugin-kbindicator/src/content.h
function class (line 36) | class Content : public QWidget
FILE: plugin-kbindicator/src/controls.h
type Controls (line 30) | enum Controls {
FILE: plugin-kbindicator/src/kbdinfo.h
function class (line 33) | class KbdInfo
function setCurrentGroup (line 59) | void setCurrentGroup(int group)
function clear (line 68) | void clear()
function append (line 71) | void append(const Info & info)
FILE: plugin-kbindicator/src/kbdkeeper.h
function class (line 38) | class KbdKeeper: public QObject
function class (line 74) | class WinKbdKeeper: public KbdKeeper
function class (line 91) | class AppKbdKeeper: public KbdKeeper
FILE: plugin-kbindicator/src/kbdlayout.h
type X11Kbd (line 32) | typedef X11Kbd KbdLayout;
FILE: plugin-kbindicator/src/kbdstate.cpp
function QDialog (line 57) | QDialog *KbdState::configureDialog()
FILE: plugin-kbindicator/src/kbdstate.h
function virtual (line 53) | virtual QWidget *widget()
FILE: plugin-kbindicator/src/kbdstateconfig.h
function namespace (line 32) | namespace Ui {
function class (line 36) | class KbdStateConfig : public QDialog
FILE: plugin-kbindicator/src/kbdwatcher.h
function class (line 36) | class KbdWatcher: public QObject
FILE: plugin-kbindicator/src/settings.cpp
function Settings (line 32) | Settings &Settings::instance()
function QString (line 55) | QString Settings::layoutFlagPattern() const
function KeeperType (line 73) | KeeperType Settings::keeperType() const
FILE: plugin-kbindicator/src/settings.h
function KeeperType (line 32) | enum class KeeperType
FILE: plugin-kbindicator/src/x11/kbdlayout.cpp
type pimpl (line 48) | namespace pimpl {
type LangInfo (line 50) | struct LangInfo
class X11Kbd (line 57) | class X11Kbd: public QAbstractNativeEventFilter
method X11Kbd (line 60) | X11Kbd(::X11Kbd *pub):
method init (line 64) | bool init()
method isEnabled (line 97) | bool isEnabled() const { return true; }
method nativeEventFilter (line 99) | bool nativeEventFilter(const QByteArray &eventType, void *message, q...
method readKbdInfo (line 146) | void readKbdInfo(KbdInfo & info) const
method lockGroup (line 159) | void lockGroup(uint group)
method lockModifier (line 168) | void lockModifier(Controls cnt, bool locked)
method isModifierLocked (line 179) | bool isModifierLocked(Controls cnt) const
method quint8 (line 183) | quint8 fetchMask(Controls cnt) const
method readState (line 226) | void readState()
method LangInfo (line 242) | const LangInfo & names(const QString & langName) const
type xkb_context (line 288) | struct xkb_context
FILE: plugin-kbindicator/src/x11/kbdlayout.h
function namespace (line 35) | namespace pimpl
function class (line 38) | class X11Kbd: public QObject
FILE: plugin-mainmenu/actionview.cpp
class SingleActivateStyle (line 80) | class SingleActivateStyle : public QProxyStyle
method styleHint (line 84) | int styleHint(StyleHint hint, const QStyleOption * option = nullptr, c...
class DelayedIconDelegate (line 93) | class DelayedIconDelegate : public QStyledItemDelegate
method DelayedIconDelegate (line 96) | DelayedIconDelegate(QObject * parent = nullptr)
method setMaxItemWidth (line 101) | void setMaxItemWidth(int max)
method QSize (line 106) | QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& ...
function QSize (line 245) | QSize ActionView::viewportSizeHint() const
function QSize (line 258) | QSize ActionView::minimumSizeHint() const
FILE: plugin-mainmenu/actionview.h
function class (line 38) | class FilterProxyModel : public QSortFilterProxyModel
function Q_OBJECT (line 68) | Q_OBJECT
FILE: plugin-mainmenu/lxqtmainmenu.cpp
function filterMenu (line 255) | static bool filterMenu(QMenu * menu, QString const & filter)
function showHideMenuEntries (line 280) | static void showHideMenuEntries(QMenu * menu, bool show)
function setTranslucentMenus (line 293) | static void setTranslucentMenus(QMenu * menu)
function menuInstallEventFilter (line 346) | static void menuInstallEventFilter(QMenu * menu, QObject * watcher)
function QDialog (line 563) | QDialog *LXQtMainMenu::configureDialog()
type MatchAction (line 572) | struct MatchAction
method MatchAction (line 574) | MatchAction(QString key):key_(key) {}
FILE: plugin-mainmenu/lxqtmainmenu.h
function namespace (line 51) | namespace LXQt {
function namespace (line 56) | namespace GlobalKeyShortcut
function QWidget (line 71) | QWidget *widget() { return &mButton; }
FILE: plugin-mainmenu/lxqtmainmenuconfiguration.h
function namespace (line 37) | namespace Ui {
function namespace (line 41) | namespace GlobalKeyShortcut {
function class (line 45) | class LXQtMainMenuConfiguration : public LXQtPanelPluginConfigDialog
FILE: plugin-mainmenu/menustyle.h
function class (line 34) | class MenuStyle : public QProxyStyle
FILE: plugin-mount/actions/deviceaction.cpp
function DeviceAction (line 53) | DeviceAction *DeviceAction::create(ActionId id, LXQtMountPlugin *plugin,...
function QString (line 70) | QString DeviceAction::actionIdToString(DeviceAction::ActionId id)
FILE: plugin-mount/actions/deviceaction.h
function class (line 37) | class DeviceAction: public QObject
FILE: plugin-mount/actions/deviceaction_info.h
function class (line 38) | class DeviceActionInfo : public DeviceAction
FILE: plugin-mount/actions/deviceaction_menu.h
function class (line 38) | class DeviceActionMenu : public DeviceAction
FILE: plugin-mount/actions/deviceaction_nothing.h
function class (line 35) | class DeviceActionNothing : public DeviceAction
FILE: plugin-mount/actions/ejectaction.cpp
function EjectAction (line 47) | EjectAction *EjectAction::create(ActionId id, LXQtMountPlugin *plugin, Q...
function QString (line 61) | QString EjectAction::actionIdToString(EjectAction::ActionId id)
FILE: plugin-mount/actions/ejectaction.h
function class (line 37) | class EjectAction: public QObject
FILE: plugin-mount/actions/ejectaction_nothing.h
function class (line 35) | class EjectActionNothing : public EjectAction
FILE: plugin-mount/actions/ejectaction_optical.h
function class (line 35) | class EjectActionOptical : public EjectAction
FILE: plugin-mount/button.h
function class (line 35) | class Button : public QToolButton
FILE: plugin-mount/configuration.h
function namespace (line 40) | namespace Ui {
function class (line 44) | class Configuration : public LXQtPanelPluginConfigDialog
FILE: plugin-mount/lxqtmountplugin.cpp
function QDialog (line 87) | QDialog *LXQtMountPlugin::configureDialog()
FILE: plugin-mount/lxqtmountplugin.h
function namespace (line 40) | namespace GlobalKeyShortcut
function virtual (line 57) | virtual QWidget *widget() { return mButton; }
function Popup (line 61) | Popup *popup() { return mPopup; }
function QIcon (line 62) | QIcon icon() { return mButton->icon(); }
FILE: plugin-mount/menudiskitem.h
function class (line 38) | class MenuDiskItem : public QFrame
FILE: plugin-mount/popup.cpp
function hasRemovableParent (line 39) | static bool hasRemovableParent(Solid::Device device)
FILE: plugin-mount/popup.h
function class (line 40) | class Popup: public QDialog
FILE: plugin-networkmonitor/lxqtnetworkmonitor.cpp
function QString (line 204) | QString LXQtNetworkMonitor::convertUnits(double num)
FILE: plugin-networkmonitor/lxqtnetworkmonitor.h
function class (line 37) | class LXQtNetworkMonitor: public QFrame
FILE: plugin-networkmonitor/lxqtnetworkmonitorconfiguration.h
function namespace (line 37) | namespace Ui
function class (line 42) | class LXQtNetworkMonitorConfiguration : public LXQtPanelPluginConfigDialog
FILE: plugin-networkmonitor/lxqtnetworkmonitorplugin.cpp
function QWidget (line 45) | QWidget *LXQtNetworkMonitorPlugin::widget()
function QDialog (line 50) | QDialog *LXQtNetworkMonitorPlugin::configureDialog()
FILE: plugin-qeyes/qeyes.cpp
function ILXQtPanelPlugin (line 34) | ILXQtPanelPlugin *QEyesPluginLibrary::instance(const ILXQtPanelPluginSta...
function loadImage (line 71) | static bool loadImage(QString path, QEyesImageWidget *w) {
function QDialog (line 141) | QDialog * QEyesPlugin::configureDialog() {
FILE: plugin-qeyes/qeyes.h
function virtual (line 40) | virtual QWidget *widget() override { return w0; }
function virtual (line 44) | virtual void realign() override;
FILE: plugin-qeyes/qeyesconfigdialog.h
function class (line 36) | class QEyesConfigDialog : public QDialog {
FILE: plugin-qeyes/qeyesimagewidget.cpp
function QPixmap (line 54) | QPixmap & ImageStretcher::ImageStretcher::getImage(int w, int h) {
FILE: plugin-qeyes/qeyesimagewidget.h
function class (line 28) | class ImageStretcher {
function class (line 41) | class QEyesImageWidget : public QAbstractEyesWidget {
FILE: plugin-qeyes/qeyesvectorwidget.h
function class (line 26) | class QEyesVectorWidget : public QAbstractEyesWidget
FILE: plugin-qeyes/qeyeswidget.h
function class (line 29) | class QAbstractEyesWidget : public QWidget
FILE: plugin-quicklaunch/lxqtquicklaunch.h
function namespace (line 45) | namespace LXQt {
function class (line 53) | class LXQtQuickLaunch : public QFrame
FILE: plugin-quicklaunch/lxqtquicklaunchplugin.cpp
function QWidget (line 44) | QWidget *LXQtQuickLaunchPlugin::widget()
FILE: plugin-quicklaunch/quicklaunchaction.h
function class (line 42) | class QuickLaunchAction : public QAction
FILE: plugin-quicklaunch/quicklaunchbutton.h
function class (line 39) | class QuickLaunchButton : public QToolButton
function class (line 77) | class ButtonMimeData: public QMimeData
FILE: plugin-sensors/chip.cpp
function QString (line 54) | const QString& Chip::getName() const
FILE: plugin-sensors/chip.h
function class (line 41) | class Chip
FILE: plugin-sensors/feature.cpp
function QString (line 49) | const QString& Feature::getLabel() const
function sensors_feature_type (line 73) | sensors_feature_type Feature::getType() const
FILE: plugin-sensors/feature.h
function class (line 40) | class Feature
FILE: plugin-sensors/lxqtsensors.cpp
function QSize (line 441) | QSize ProgressBar::sizeHint() const
FILE: plugin-sensors/lxqtsensors.h
function QSize (line 45) | QSize sizeHint() const;
FILE: plugin-sensors/lxqtsensorsconfiguration.h
function namespace (line 38) | namespace Ui {
function class (line 42) | class LXQtSensorsConfiguration : public LXQtPanelPluginConfigDialog
FILE: plugin-sensors/lxqtsensorsplugin.cpp
function QWidget (line 47) | QWidget *LXQtSensorsPlugin::widget()
function QDialog (line 53) | QDialog *LXQtSensorsPlugin::configureDialog()
FILE: plugin-sensors/sensors.h
function class (line 42) | class Sensors
FILE: plugin-showdesktop/showdesktop.h
function namespace (line 37) | namespace GlobalKeyShortcut
function virtual (line 49) | virtual QWidget *widget() override { return &mButton; }
FILE: plugin-spacer/spacer.cpp
function QDialog (line 80) | QDialog *Spacer::configureDialog()
FILE: plugin-spacer/spacer.h
function QString (line 45) | const QString& getOrientation() const throw () { return mOrientation; }
FILE: plugin-spacer/spacerconfiguration.h
function namespace (line 36) | namespace Ui {
function class (line 40) | class SpacerConfiguration : public LXQtPanelPluginConfigDialog
FILE: plugin-statusnotifier/dbustypes.cpp
function QDBusArgument (line 32) | QDBusArgument &operator<<(QDBusArgument &argument, const IconPixmap &icon)
function QDBusArgument (line 43) | const QDBusArgument &operator>>(const QDBusArgument &argument, IconPixma...
function QDBusArgument (line 54) | QDBusArgument &operator<<(QDBusArgument &argument, const ToolTip &toolTip)
function QDBusArgument (line 66) | const QDBusArgument &operator>>(const QDBusArgument &argument, ToolTip &...
FILE: plugin-statusnotifier/dbustypes.h
type IconPixmap (line 34) | struct IconPixmap {
type QList (line 40) | typedef QList<IconPixmap> IconPixmapList;
type ToolTip (line 42) | struct ToolTip {
FILE: plugin-statusnotifier/sniasync.h
function propertyGetAsync (line 72) | void propertyGetAsync(QString const &name, F finished)
FILE: plugin-statusnotifier/statusnotifier.cpp
function QDialog (line 38) | QDialog *StatusNotifier::configureDialog()
FILE: plugin-statusnotifier/statusnotifier.h
function realign (line 43) | void realign() override;
function QWidget (line 46) | QWidget *widget() override { return m_widget; }
function settingsChanged (line 50) | void settingsChanged() override { m_widget->settingsChanged(); }
FILE: plugin-statusnotifier/statusnotifierbutton.cpp
class MenuImporter (line 43) | class MenuImporter : public DBusMenuImporter
method QIcon (line 49) | QIcon iconForName(const QString & name) override
FILE: plugin-statusnotifier/statusnotifierbutton.h
function class (line 44) | class StatusNotifierButton : public QToolButton
FILE: plugin-statusnotifier/statusnotifierconfiguration.h
function namespace (line 32) | namespace Ui {
function class (line 36) | class StatusNotifierConfiguration : public LXQtPanelPluginConfigDialog
FILE: plugin-statusnotifier/statusnotifieriteminterface.h
function class (line 55) | class StatusNotifierItemInterface: public QDBusAbstractInterface
function namespace (line 169) | namespace org {
FILE: plugin-statusnotifier/statusnotifierproxy.cpp
function QStringList (line 75) | QStringList StatusNotifierProxy::RegisteredStatusNotifierItems() const
function StatusNotifierProxy (line 81) | StatusNotifierProxy & StatusNotifierProxy::registerLifetimeUsage(QObject...
FILE: plugin-statusnotifier/statusnotifierproxy.h
function class (line 35) | class StatusNotifierProxy : public QObject
FILE: plugin-statusnotifier/statusnotifierwatcher.h
function isStatusNotifierHostRegistered (line 52) | bool isStatusNotifierHostRegistered() { return mHosts.count() > 0; }
FILE: plugin-statusnotifier/statusnotifierwidget.cpp
function QStringList (line 270) | QStringList StatusNotifierWidget::itemTitles() const
FILE: plugin-statusnotifier/statusnotifierwidget.h
function class (line 39) | class StatusNotifierWidget : public QWidget
FILE: plugin-sysstat/lxqtsysstat.cpp
function QDialog (line 79) | QDialog *LXQtSysStat::configureDialog()
FILE: plugin-sysstat/lxqtsysstat.h
function namespace (line 41) | namespace SysStat {
function virtual (line 52) | virtual QWidget *widget() { return mWidget; }
function class (line 72) | class LXQtSysStatTitle : public QLabel
function class (line 86) | class LXQtSysStatContent : public QWidget
FILE: plugin-sysstat/lxqtsysstatcolours.h
function namespace (line 39) | namespace Ui {
function class (line 47) | class LXQtSysStatColours : public QDialog
FILE: plugin-sysstat/lxqtsysstatconfiguration.cpp
function localizationWorkaround (line 52) | void localizationWorkaround()
FILE: plugin-sysstat/lxqtsysstatconfiguration.h
function namespace (line 37) | namespace Ui {
function namespace (line 41) | namespace SysStat {
function class (line 47) | class LXQtSysStatConfiguration : public LXQtPanelPluginConfigDialog
FILE: plugin-sysstat/lxqtsysstatutils.cpp
type PluginSysStat (line 34) | namespace PluginSysStat
function QString (line 37) | QString netSpeedToString(int value)
function netSpeedFromString (line 47) | int netSpeedFromString(QStringView value)
FILE: plugin-sysstat/lxqtsysstatutils.h
function namespace (line 33) | namespace PluginSysStat
FILE: plugin-taskbar/lxqtgrouppopup.h
function class (line 43) | class LXQtGroupPopup: public QFrame
FILE: plugin-taskbar/lxqttaskbar.cpp
function ILXQtPanel (line 549) | ILXQtPanel *LXQtTaskBar::panel() const
FILE: plugin-taskbar/lxqttaskbar.h
function namespace (line 52) | namespace LXQt {
function namespace (line 56) | namespace GlobalKeyShortcut
function class (line 61) | class LXQtTaskBar : public QFrame
FILE: plugin-taskbar/lxqttaskbarconfiguration.h
function namespace (line 35) | namespace Ui {
function class (line 39) | class LXQtTaskbarConfiguration : public LXQtPanelPluginConfigDialog
FILE: plugin-taskbar/lxqttaskbarplugin.cpp
function QWidget (line 49) | QWidget *LXQtTaskBarPlugin::widget() { return mTaskBar; }
function QDialog (line 51) | QDialog *LXQtTaskBarPlugin::configureDialog()
FILE: plugin-taskbar/lxqttaskbutton.cpp
function QMimeData (line 307) | QMimeData * LXQtTaskButton::mimeData()
FILE: plugin-taskbar/lxqttaskbutton.h
function class (line 46) | class LeftAlignedTextStyle : public QProxyStyle
function class (line 57) | class LXQtTaskButton : public QToolButton
type QHash (line 157) | typedef QHash<WId, LXQtTaskButton*> LXQtTaskButtonHash;
FILE: plugin-taskbar/lxqttaskgroup.cpp
function LXQtTaskButton (line 111) | LXQtTaskButton * LXQtTaskGroup::addWindow(WId id)
function LXQtTaskButton (line 137) | LXQtTaskButton * LXQtTaskGroup::checkedButton() const
function LXQtTaskButton (line 149) | LXQtTaskButton * LXQtTaskGroup::getNextPrevChildButton(bool next, bool c...
function QMimeData (line 412) | QMimeData * LXQtTaskGroup::mimeData()
function QSize (line 468) | QSize LXQtTaskGroup::recalculateFrameSize()
function QPoint (line 510) | QPoint LXQtTaskGroup::recalculateFramePosition()
FILE: plugin-taskbar/lxqttaskgroup.h
function class (line 44) | class LXQtTaskGroup: public LXQtTaskButton
FILE: plugin-tray/fdoselectionmanager.h
function namespace (line 39) | namespace Xcb {
FILE: plugin-tray/lxqttrayplugin.cpp
function QWidget (line 45) | QWidget *LXQtTrayPlugin::widget()
function ILXQtPanelPlugin (line 50) | ILXQtPanelPlugin *LXQtTrayPluginLibrary::instance(const ILXQtPanelPlugin...
FILE: plugin-tray/snidbus.cpp
function QDBusArgument (line 61) | const QDBusArgument &operator<<(QDBusArgument &argument, const KDbusImag...
function QDBusArgument (line 72) | const QDBusArgument &operator>>(const QDBusArgument &argument, KDbusImag...
function QDBusArgument (line 92) | const QDBusArgument &operator<<(QDBusArgument &argument, const KDbusImag...
function QDBusArgument (line 103) | const QDBusArgument &operator>>(const QDBusArgument &argument, KDbusImag...
function QDBusArgument (line 120) | const QDBusArgument &operator<<(QDBusArgument &argument, const KDbusTool...
function QDBusArgument (line 132) | const QDBusArgument &operator>>(const QDBusArgument &argument, KDbusTool...
FILE: plugin-tray/snidbus.h
type KDbusImageStruct (line 36) | struct KDbusImageStruct {
type QList (line 44) | typedef QList<KDbusImageStruct> KDbusImageVector;
type KDbusToolTipStruct (line 46) | struct KDbusToolTipStruct {
FILE: plugin-tray/sniproxy.cpp
function xembed_message_send (line 71) | void xembed_message_send(xcb_connection_t *conn, Xcb::Atoms & atoms, xcb...
function QRect (line 87) | static QRect findOpaqueArea(const QImage & image, int margin = 0)
function QSize (line 278) | QSize SNIProxy::calculateClientWindowSize() const
function sni_cleanup_xcb_image (line 302) | void sni_cleanup_xcb_image(void *data)
function QImage (line 330) | QImage SNIProxy::getImageNonComposite() const
function QImage (line 363) | QImage SNIProxy::convertFromNative(xcb_image_t *xcbImage) const
function QPoint (line 425) | QPoint SNIProxy::calculateClickPoint() const
function QString (line 468) | QString SNIProxy::Category() const
function QString (line 473) | QString SNIProxy::Id() const
function KDbusImageVector (line 483) | KDbusImageVector SNIProxy::IconPixmap() const
function QString (line 502) | QString SNIProxy::Status() const
function QString (line 507) | QString SNIProxy::Title() const
FILE: plugin-tray/sniproxy.h
function namespace (line 42) | namespace Xcb {
function class (line 46) | class SNIProxy : public QObject
FILE: plugin-tray/xcbutils.h
function namespace (line 51) | namespace Xcb
function class (line 64) | class Atom
function class (line 125) | class Atoms
FILE: plugin-tray/xtestsender.cpp
function sendXTestPressed (line 30) | void sendXTestPressed(Display *display, int button)
function sendXTestReleased (line 35) | void sendXTestReleased(Display *display, int button)
FILE: plugin-tray/xtestsender.h
type Display (line 29) | typedef struct _XDisplay Display;
FILE: plugin-volume/alsadevice.h
function class (line 38) | class AlsaDevice : public AudioDevice
FILE: plugin-volume/alsaengine.cpp
type pollfd (line 46) | struct pollfd
function alsa_elem_event_callback (line 67) | static int alsa_elem_event_callback(snd_mixer_elem_t *elem, unsigned int...
function alsa_mixer_event_callback (line 76) | static int alsa_mixer_event_callback(snd_mixer_t * /*mixer*/, unsigned i...
function AlsaEngine (line 88) | AlsaEngine *AlsaEngine::instance()
function AlsaDevice (line 100) | AlsaDevice *AlsaEngine::getDeviceByAlsaElem(snd_mixer_elem_t *elem) const
FILE: plugin-volume/alsaengine.h
function class (line 39) | class MixerHandler : public QObject
function class (line 54) | class AlsaEngine : public AudioEngine
FILE: plugin-volume/audiodevice.h
type AudioDeviceType (line 35) | typedef enum AudioDeviceType {
function class (line 41) | class AudioDevice : public QObject
FILE: plugin-volume/audioengine.h
function class (line 37) | class AudioEngine : public QObject
FILE: plugin-volume/lxqtvolume.cpp
function QWidget (line 317) | QWidget *LXQtVolume::widget()
function QDialog (line 326) | QDialog *LXQtVolume::configureDialog()
FILE: plugin-volume/lxqtvolume.h
function namespace (line 39) | namespace LXQt {
function namespace (line 42) | namespace GlobalKeyShortcut
FILE: plugin-volume/lxqtvolumeconfiguration.h
function namespace (line 65) | namespace Ui {
function class (line 69) | class LXQtVolumeConfiguration : public LXQtPanelPluginConfigDialog
FILE: plugin-volume/ossengine.h
function class (line 39) | class OssEngine : public AudioEngine
FILE: plugin-volume/pulseaudioengine.h
function class (line 42) | class PulseAudioEngine : public AudioEngine
FILE: plugin-volume/volumebutton.h
function class (line 37) | class VolumeButton : public QToolButton
FILE: plugin-volume/volumepopup.cpp
function volumeScrollStep (line 52) | int volumeScrollStep(const QWheelEvent *event, int singleStep)
function SinkRow (line 444) | SinkRow VolumePopup::makeSinkRow(AudioDevice *device)
FILE: plugin-volume/volumepopup.h
type SinkRow (line 41) | struct SinkRow {
function class (line 49) | class VolumePopup : public QDialog
FILE: plugin-worldclock/lxqtworldclock.cpp
function QDialog (line 370) | QDialog *LXQtWorldClock::configureDialog()
function QString (line 445) | QString LXQtWorldClock::formatDateTime(const QDateTime &datetime, const ...
function QString (line 484) | QString LXQtWorldClock::preformat(const QString &format, const QTimeZone...
FILE: plugin-worldclock/lxqtworldclock.h
function virtual (line 56) | virtual QWidget *widget() { return mMainWidget; }
function class (line 105) | class ActiveLabel : public QLabel
function class (line 122) | class LXQtWorldClockPopup : public QDialog
FILE: plugin-worldclock/lxqtworldclockconfiguration.h
function namespace (line 38) | namespace Ui {
function class (line 46) | class LXQtWorldClockConfiguration : public LXQtPanelPluginConfigDialog
FILE: plugin-worldclock/lxqtworldclockconfigurationmanualformat.cpp
function QString (line 58) | QString LXQtWorldClockConfigurationManualFormat::manualFormat() const
FILE: plugin-worldclock/lxqtworldclockconfigurationmanualformat.h
function namespace (line 37) | namespace Ui {
function class (line 43) | class LXQtWorldClockConfigurationManualFormat : public QDialog
FILE: plugin-worldclock/lxqtworldclockconfigurationtimezones.cpp
function QString (line 54) | QString LXQtWorldClockConfigurationTimeZones::timeZone()
function QTreeWidgetItem (line 74) | QTreeWidgetItem* LXQtWorldClockConfigurationTimeZones::makeSureParentsEx...
FILE: plugin-worldclock/lxqtworldclockconfigurationtimezones.h
function namespace (line 37) | namespace Ui {
function class (line 43) | class LXQtWorldClockConfigurationTimeZones : public QDialog
Condensed preview — 2503 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (9,846K chars).
[
{
"path": ".ci/build.sh",
"chars": 382,
"preview": "set -ex\n\nsource shared-ci/prepare-archlinux.sh\n\n# See *depends in https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h"
},
{
"path": ".gitattributes",
"chars": 530,
"preview": "# remove files from deployment using `git archive`\n\n# git files\n.gitattributes export-ignore\n.github ex"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 1703,
"preview": "---\nname: Bug report\nabout: Create a report to help improve lxqt-panel\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n<!--- BE"
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 314,
"preview": "blank_issues_enabled: false\ncontact_links:\n - name: LXQt Discussions\n url: https://github.com/lxqt/lxqt/discussions/"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.md",
"chars": 1096,
"preview": "---\nname: Feature request\nabout: Suggest an idea for lxqt-panel\ntitle: \"[Feature request]\"\nlabels: ''\nassignees: ''\n\n---"
},
{
"path": ".github/ISSUE_TEMPLATE.md",
"chars": 1891,
"preview": "<!--- Provide a general summary of the issue in the title above. You --->\n<!--- should not delete relevant section"
},
{
"path": ".github/workflows/test.yml",
"chars": 372,
"preview": "name: Testing\n\non: [push, pull_request]\n\njobs:\n build:\n runs-on: ubuntu-20.04\n container: archlinux:base-devel\n "
},
{
"path": ".gitignore",
"chars": 34,
"preview": "build\n*.kdev4\nCMakeLists.txt.user\n"
},
{
"path": ".translation-update",
"chars": 663,
"preview": "translations='\n ./panel\n ./plugin-colorpicker\n ./plugin-cpuload\n ./p"
},
{
"path": "AUTHORS",
"chars": 270,
"preview": "Upstream Authors:\n LXQt team: https://lxqt-project.org/\n Razor team: http://razor-qt.org\n\nCopyright:\n Copyright"
},
{
"path": "CHANGELOG",
"chars": 101764,
"preview": "lxqt-panel-2.4.0 / 2026-04-20\n==============================\n * Implemented multi sink volume plugin.\n * Added some more"
},
{
"path": "CMakeLists.txt",
"chars": 9534,
"preview": "cmake_minimum_required(VERSION 3.18.0 FATAL_ERROR)\n# CMP0000: Call the cmake_minimum_required() command at the beginning"
},
{
"path": "LICENSE",
"chars": 24436,
"preview": " GNU LESSER GENERAL PUBLIC LICENSE\n Version 2.1, February 1999\n\n Copyright (C) 19"
},
{
"path": "README.md",
"chars": 8373,
"preview": "# lxqt-panel\n\n## Overview\n\n`lxqt-panel` represents the taskbar of LXQt.\n\nThe elements available in lxqt-panel are called"
},
{
"path": "autostart/CMakeLists.txt",
"chars": 708,
"preview": "set(AUTOSTART_DESKTOP_FILES_IN lxqt-panel.desktop.in)\n\n# Translations **********************************\nlxqt_translate_"
},
{
"path": "autostart/lxqt-panel.desktop.in",
"chars": 136,
"preview": "[Desktop Entry]\nType=Application\nTryExec=lxqt-panel\nExec=lxqt-panel\nOnlyShowIn=LXQt;\nX-LXQt-Module=true\n\n#TRANSLATIONS_D"
},
{
"path": "autostart/lxqt-panel_wayland.desktop.in",
"chars": 410,
"preview": "[Desktop Entry]\nType=Application\nTryExec=lxqt-panel\nNoDisplay=true\n\n# NOTE: KWin wants absolute path here, get it from C"
},
{
"path": "autostart/translations/lxqt-panel.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Panel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_ar.desktop.yaml",
"chars": 29,
"preview": "Desktop Entry/Name: \"اللوحة\"\n"
},
{
"path": "autostart/translations/lxqt-panel_bg.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Панел\"\n"
},
{
"path": "autostart/translations/lxqt-panel_ca.desktop.yaml",
"chars": 29,
"preview": "Desktop Entry/Name: \"Tauler\"\n"
},
{
"path": "autostart/translations/lxqt-panel_cs.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Panel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_da.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Panel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_de.desktop.yaml",
"chars": 33,
"preview": "Desktop Entry/Name: \"Bedienfeld\"\n"
},
{
"path": "autostart/translations/lxqt-panel_el.desktop.yaml",
"chars": 30,
"preview": "Desktop Entry/Name: \"Πίνακας\"\n"
},
{
"path": "autostart/translations/lxqt-panel_en_GB.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Panel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_eo.desktop.yaml",
"chars": 29,
"preview": "Desktop Entry/Name: \"Panelo\"\n"
},
{
"path": "autostart/translations/lxqt-panel_es.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Panel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_es_VE.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Panel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_et.desktop.yaml",
"chars": 29,
"preview": "Desktop Entry/Name: \"Paneel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_eu.desktop.yaml",
"chars": 29,
"preview": "Desktop Entry/Name: \"Panela\"\n"
},
{
"path": "autostart/translations/lxqt-panel_fi.desktop.yaml",
"chars": 30,
"preview": "Desktop Entry/Name: \"Paneeli\"\n"
},
{
"path": "autostart/translations/lxqt-panel_fr.desktop.yaml",
"chars": 38,
"preview": "Desktop Entry/Name: \"Tableau de bord\"\n"
},
{
"path": "autostart/translations/lxqt-panel_gl.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Panel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_he.desktop.yaml",
"chars": 26,
"preview": "Desktop Entry/Name: \"לוח\"\n"
},
{
"path": "autostart/translations/lxqt-panel_hr.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Ploča\"\n"
},
{
"path": "autostart/translations/lxqt-panel_hu.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Panel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_ia.desktop.yaml",
"chars": 30,
"preview": "Desktop Entry/Name: \"Panello\"\n"
},
{
"path": "autostart/translations/lxqt-panel_id.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Panel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_it.desktop.yaml",
"chars": 31,
"preview": "Desktop Entry/Name: \"Pannello\"\n"
},
{
"path": "autostart/translations/lxqt-panel_ja.desktop.yaml",
"chars": 26,
"preview": "Desktop Entry/Name: \"パネル\"\n"
},
{
"path": "autostart/translations/lxqt-panel_ka.desktop.yaml",
"chars": 29,
"preview": "Desktop Entry/Name: \"პანელი\"\n"
},
{
"path": "autostart/translations/lxqt-panel_kab.desktop.yaml",
"chars": 23,
"preview": "Desktop Entry/Name: \"\"\n"
},
{
"path": "autostart/translations/lxqt-panel_kk.desktop.yaml",
"chars": 29,
"preview": "Desktop Entry/Name: \"Панель\"\n"
},
{
"path": "autostart/translations/lxqt-panel_ko.desktop.yaml",
"chars": 25,
"preview": "Desktop Entry/Name: \"패널\"\n"
},
{
"path": "autostart/translations/lxqt-panel_lg.desktop.yaml",
"chars": 30,
"preview": "Desktop Entry/Name: \"Lubaawo\"\n"
},
{
"path": "autostart/translations/lxqt-panel_lt.desktop.yaml",
"chars": 31,
"preview": "Desktop Entry/Name: \"Skydelis\"\n"
},
{
"path": "autostart/translations/lxqt-panel_lv.desktop.yaml",
"chars": 30,
"preview": "Desktop Entry/Name: \"Panelis\"\n"
},
{
"path": "autostart/translations/lxqt-panel_nb_NO.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Panel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_nl.desktop.yaml",
"chars": 29,
"preview": "Desktop Entry/Name: \"Paneel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_oc.desktop.yaml",
"chars": 37,
"preview": "Desktop Entry/Name: \"Tablèu de bòrd\"\n"
},
{
"path": "autostart/translations/lxqt-panel_pa.desktop.yaml",
"chars": 27,
"preview": "Desktop Entry/Name: \"ਪੈਨਲ\"\n"
},
{
"path": "autostart/translations/lxqt-panel_pl.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Panel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_pt.desktop.yaml",
"chars": 29,
"preview": "Desktop Entry/Name: \"Painel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_pt_BR.desktop.yaml",
"chars": 29,
"preview": "Desktop Entry/Name: \"Painel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_ro.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Panou\"\n"
},
{
"path": "autostart/translations/lxqt-panel_ru.desktop.yaml",
"chars": 29,
"preview": "Desktop Entry/Name: \"Панель\"\n"
},
{
"path": "autostart/translations/lxqt-panel_si.desktop.yaml",
"chars": 27,
"preview": "Desktop Entry/Name: \"පාලන\"\n"
},
{
"path": "autostart/translations/lxqt-panel_sk.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Panel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_sl.desktop.yaml",
"chars": 27,
"preview": "Desktop Entry/Name: \"Pult\"\n"
},
{
"path": "autostart/translations/lxqt-panel_sr.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Панел\"\n"
},
{
"path": "autostart/translations/lxqt-panel_sv.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Panel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_th.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"พาเนล\"\n"
},
{
"path": "autostart/translations/lxqt-panel_tr.desktop.yaml",
"chars": 28,
"preview": "Desktop Entry/Name: \"Panel\"\n"
},
{
"path": "autostart/translations/lxqt-panel_uk.desktop.yaml",
"chars": 29,
"preview": "Desktop Entry/Name: \"Панель\"\n"
},
{
"path": "autostart/translations/lxqt-panel_zh_CN.desktop.yaml",
"chars": 25,
"preview": "Desktop Entry/Name: \"面板\"\n"
},
{
"path": "autostart/translations/lxqt-panel_zh_TW.desktop.yaml",
"chars": 25,
"preview": "Desktop Entry/Name: \"面板\"\n"
},
{
"path": "cmake/BuildPlugin.cmake",
"chars": 2038,
"preview": "MACRO (BUILD_LXQT_PLUGIN NAME)\n set(PROGRAM \"lxqt-panel\")\n project(${PROGRAM}_${NAME})\n\n set(PROG_SHARE_DIR ${C"
},
{
"path": "panel/CMakeLists.txt",
"chars": 2819,
"preview": "set(PROJECT lxqt-panel)\n\n# Window Manager backends\nadd_subdirectory(backends)\n\nset(PRIV_HEADERS\n panelpluginsmodel.h\n"
},
{
"path": "panel/backends/CMakeLists.txt",
"chars": 387,
"preview": "# Common interface for Window Manager abstraction backend\n# This also contains dummy backend\n\nadd_library(lxqt-panel-bac"
},
{
"path": "panel/backends/ilxqtabstractwmiface.cpp",
"chars": 1794,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/backends/ilxqtabstractwmiface.h",
"chars": 5253,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/backends/lxqtdummywmbackend.cpp",
"chars": 4085,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/backends/lxqtdummywmbackend.h",
"chars": 3850,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/backends/lxqttaskbartypes.h",
"chars": 1792,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/backends/wayland/CMakeLists.txt",
"chars": 83,
"preview": "add_subdirectory(kwin_wayland)\nadd_subdirectory(wlroots)\nadd_subdirectory(wayfire)\n"
},
{
"path": "panel/backends/wayland/kwin_wayland/CMakeLists.txt",
"chars": 1356,
"preview": "set(PLATFORM_NAME kwin_wayland)\n\nset(PREFIX_NAME wmbackend)\nset(PROGRAM \"lxqt-panel\")\nset(BACKEND \"backend\")\nset(NAME ${"
},
{
"path": "panel/backends/wayland/kwin_wayland/lxqtplasmavirtualdesktop.cpp",
"chars": 7712,
"preview": "/*\n SPDX-FileCopyrightText: 2016 Eike Hein <hein@kde.org>\n\n SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-onl"
},
{
"path": "panel/backends/wayland/kwin_wayland/lxqtplasmavirtualdesktop.h",
"chars": 3252,
"preview": "/*\n SPDX-FileCopyrightText: 2016 Eike Hein <hein@kde.org>\n\n SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-onl"
},
{
"path": "panel/backends/wayland/kwin_wayland/lxqttaskbarplasmawindowmanagment.cpp",
"chars": 10322,
"preview": "/*\n SPDX-FileCopyrightText: 2016 Eike Hein <hein@kde.org>\n\n SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-onl"
},
{
"path": "panel/backends/wayland/kwin_wayland/lxqttaskbarplasmawindowmanagment.h",
"chars": 6059,
"preview": "/*\n SPDX-FileCopyrightText: 2016 Eike Hein <hein@kde.org>\n\n SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-onl"
},
{
"path": "panel/backends/wayland/kwin_wayland/lxqtwmbackend_kwinwayland.cpp",
"chars": 29625,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/backends/wayland/kwin_wayland/lxqtwmbackend_kwinwayland.h",
"chars": 5088,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/backends/wayland/kwin_wayland/protocols/org-kde-plasma-virtual-desktop.xml",
"chars": 5475,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<protocol name=\"org_kde_plasma_virtual_desktop\">\n <copyright><![CDATA[\n SPDX-"
},
{
"path": "panel/backends/wayland/kwin_wayland/protocols/plasma-window-management.xml",
"chars": 18325,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<protocol name=\"plasma_window_management\">\n <copyright><![CDATA[\n SPDX-FileCo"
},
{
"path": "panel/backends/wayland/protocols/org-kde-plasma-virtual-desktop.xml",
"chars": 5475,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<protocol name=\"org_kde_plasma_virtual_desktop\">\n <copyright><![CDATA[\n SPDX-"
},
{
"path": "panel/backends/wayland/protocols/plasma-window-management.xml",
"chars": 18325,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<protocol name=\"plasma_window_management\">\n <copyright><![CDATA[\n SPDX-FileCo"
},
{
"path": "panel/backends/wayland/wayfire/CMakeLists.txt",
"chars": 1000,
"preview": "set(PLATFORM_NAME wayfire)\n\nset(PREFIX_NAME wmbackend)\nset(PROGRAM \"lxqt-panel\")\nset(BACKEND \"backend\")\nset(NAME ${PREFI"
},
{
"path": "panel/backends/wayland/wayfire/lxqtwmbackend_wf.cpp",
"chars": 30866,
"preview": "#include \"wayfire-common.h\"\n#include \"lxqtwmbackend_wf.h\"\n\n#include <QIcon>\n#include <QTime>\n#include <QScreen>\n#include"
},
{
"path": "panel/backends/wayland/wayfire/lxqtwmbackend_wf.h",
"chars": 4083,
"preview": "#pragma once\n\n#include \"../../ilxqtabstractwmiface.h\"\n#include \"wayfire-common.h\"\n\n#include <QTime>\n#include <QHash>\n#in"
},
{
"path": "panel/backends/wayland/wayfire/wayfire-common.cpp",
"chars": 21506,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset https://lxqt.org\n *\n * "
},
{
"path": "panel/backends/wayland/wayfire/wayfire-common.h",
"chars": 8344,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset https://lxqt.org\n *\n * "
},
{
"path": "panel/backends/wayland/wlroots/CMakeLists.txt",
"chars": 1259,
"preview": "set(PLATFORM_NAME wlroots)\n\nset(PREFIX_NAME wmbackend)\nset(PROGRAM \"lxqt-panel\")\nset(BACKEND \"backend\")\nset(NAME ${PREFI"
},
{
"path": "panel/backends/wayland/wlroots/ext-workspace-v1.xml",
"chars": 19571,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<protocol name=\"ext_workspace_v1\">\n <copyright>\n Copyright © 2019 Christopher"
},
{
"path": "panel/backends/wayland/wlroots/lxqttaskbarwlrwm.cpp",
"chars": 15267,
"preview": "#include \"lxqttaskbarwlrwm.h\"\n\n#include <QString>\n#include <QFuture>\n#include <QtConcurrent>\n#include <QGuiApplication>\n"
},
{
"path": "panel/backends/wayland/wlroots/lxqttaskbarwlrwm.h",
"chars": 4084,
"preview": "#pragma once\n\n#include <QIcon>\n#include <QPointer>\n#include <QtWaylandClient/QWaylandClientExtensionTemplate>\n\n#include "
},
{
"path": "panel/backends/wayland/wlroots/lxqtwmbackend_wlr.cpp",
"chars": 22944,
"preview": "#include \"lxqttaskbarwlrwm.h\"\n#include \"lxqtwmbackend_wlr.h\"\n#include \"workspace.hpp\"\n\n#include <QIcon>\n#include <QDateT"
},
{
"path": "panel/backends/wayland/wlroots/lxqtwmbackend_wlr.h",
"chars": 4190,
"preview": "#pragma once\n\n#include \"../../ilxqtabstractwmiface.h\"\n\n#include <QTime>\n#include <QHash>\n#include <vector>\n\nclass LXQtTa"
},
{
"path": "panel/backends/wayland/wlroots/wlr-foreign-toplevel-management-unstable-v1.xml",
"chars": 11537,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<protocol name=\"wlr_foreign_toplevel_management_unstable_v1\">\n <copyright>\n C"
},
{
"path": "panel/backends/wayland/wlroots/workspace.cpp",
"chars": 13007,
"preview": "#include \"workspace.hpp\"\n\n#include <QGuiApplication>\n#include <QMap>\n\n#include <private/qwaylandscreen_p.h>\n\n/** ext_wor"
},
{
"path": "panel/backends/wayland/wlroots/workspace.hpp",
"chars": 5531,
"preview": "#pragma once\n\n#include <QObject>\n#include <QString>\n#include <QList>\n#include <QScreen>\n#include <QPointer>\n\n#include <s"
},
{
"path": "panel/backends/xcb/CMakeLists.txt",
"chars": 800,
"preview": "set(PLATFORM_NAME xcb)\n\nset(PREFIX_NAME wmbackend)\nset(PROGRAM \"lxqt-panel\")\nset(BACKEND \"backend\")\nset(NAME ${PREFIX_NA"
},
{
"path": "panel/backends/xcb/lxqtwmbackend_x11.cpp",
"chars": 22287,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/backends/xcb/lxqtwmbackend_x11.h",
"chars": 4470,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/config/addplugindialog.cpp",
"chars": 5312,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/config/addplugindialog.h",
"chars": 1616,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * http://razor-qt.o"
},
{
"path": "panel/config/addplugindialog.ui",
"chars": 3608,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>AddPluginDialog</class>\n <widget class=\"QDialog\" name="
},
{
"path": "panel/config/configpaneldialog.cpp",
"chars": 2434,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/config/configpaneldialog.h",
"chars": 1655,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/config/configplacement.cpp",
"chars": 11339,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/config/configplacement.h",
"chars": 2441,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/config/configplacement.ui",
"chars": 11350,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>ConfigPlacement</class>\n <widget class=\"QWidget\" name="
},
{
"path": "panel/config/configpluginswidget.cpp",
"chars": 5102,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/config/configpluginswidget.h",
"chars": 1619,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/config/configpluginswidget.ui",
"chars": 6289,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>ConfigPluginsWidget</class>\n <widget class=\"QWidget\" n"
},
{
"path": "panel/config/configstyling.cpp",
"chars": 8693,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/config/configstyling.h",
"chars": 1921,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/config/configstyling.ui",
"chars": 10747,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>ConfigStyling</class>\n <widget class=\"QWidget\" name=\"C"
},
{
"path": "panel/ilxqtpanel.h",
"chars": 4775,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/ilxqtpanelplugin.h",
"chars": 8378,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/lxqtpanel.cpp",
"chars": 62922,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/lxqtpanel.h",
"chars": 29934,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/lxqtpanelapplication.cpp",
"chars": 21453,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/lxqtpanelapplication.h",
"chars": 7152,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/lxqtpanelapplication_p.h",
"chars": 1508,
"preview": "/*\n * LXQt - a lightweight, Qt based, desktop toolset\n * Copyright (C) 2016 Luís Pereira <luis.artur.pereira@gmail.com>"
},
{
"path": "panel/lxqtpanelglobals.h",
"chars": 1171,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org/"
},
{
"path": "panel/lxqtpanellayout.cpp",
"chars": 29261,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/lxqtpanellayout.h",
"chars": 2939,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/lxqtpanellimits.h",
"chars": 1473,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/lxqtpanelpluginconfigdialog.cpp",
"chars": 2807,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/lxqtpanelpluginconfigdialog.h",
"chars": 2078,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/main.cpp",
"chars": 1339,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/man/lxqt-panel.1",
"chars": 1602,
"preview": ".TH lxqt-panel \"1\" \"August 2025\" \"LXQt 2.3.0\" \"LXQt Panel Module\"\n.SH NAME\nlxqt-panel \\- Desktop panel for \\fBLXQt\\fR: T"
},
{
"path": "panel/panelpluginsmodel.cpp",
"chars": 15509,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/panelpluginsmodel.h",
"chars": 14240,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/plugin.cpp",
"chars": 17357,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/plugin.h",
"chars": 3788,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/pluginmoveprocessor.cpp",
"chars": 9146,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/pluginmoveprocessor.h",
"chars": 2407,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/pluginsettings.cpp",
"chars": 6191,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/pluginsettings.h",
"chars": 2619,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/pluginsettings_p.h",
"chars": 1274,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/popupmenu.cpp",
"chars": 3623,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/popupmenu.h",
"chars": 1566,
"preview": "/* BEGIN_COMMON_COPYRIGHT_HEADER\n * (c)LGPL2+\n *\n * LXQt - a lightweight, Qt based, desktop toolset\n * https://lxqt.org\n"
},
{
"path": "panel/resources/panel.conf",
"chars": 618,
"preview": "panels=panel1\n\n[panel1]\nplugins=fancymenu,desktopswitch,quicklaunch,taskbar,statusnotifier,tray,mount,volume,worldclock,"
},
{
"path": "panel/translations/lxqt-panel.ts",
"chars": 17393,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\">\n<context>\n <name>AddPluginDialog</name>\n <"
},
{
"path": "panel/translations/lxqt-panel_ar.ts",
"chars": 17452,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"ar\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_arn.ts",
"chars": 17408,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"arn\">\n<context>\n <name>AddPluginDial"
},
{
"path": "panel/translations/lxqt-panel_ast.ts",
"chars": 17653,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"ast\">\n<context>\n <name>AddPluginDial"
},
{
"path": "panel/translations/lxqt-panel_bg.ts",
"chars": 18031,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"bg\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_ca.ts",
"chars": 18252,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"ca\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_cs.ts",
"chars": 17973,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"cs\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_cy.ts",
"chars": 16903,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"cy\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_da.ts",
"chars": 17858,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"da\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_de.ts",
"chars": 18084,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"de\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_el.ts",
"chars": 18301,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"el\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_en_GB.ts",
"chars": 17721,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"en_GB\">\n<context>\n <name>AddPluginDi"
},
{
"path": "panel/translations/lxqt-panel_eo.ts",
"chars": 17280,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"eo\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_es.ts",
"chars": 18427,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"es\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_es_UY.ts",
"chars": 17405,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"es_UY\">\n<context>\n <name>AddPluginDi"
},
{
"path": "panel/translations/lxqt-panel_es_VE.ts",
"chars": 17234,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"es_VE\">\n<context>\n <name>AddPluginDi"
},
{
"path": "panel/translations/lxqt-panel_et.ts",
"chars": 17972,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"et\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_eu.ts",
"chars": 18058,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"eu\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_fa.ts",
"chars": 17623,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"fa\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_fi.ts",
"chars": 17941,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"fi\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_fr.ts",
"chars": 18362,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"fr\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_gl.ts",
"chars": 18056,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"gl\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_he.ts",
"chars": 17345,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"he\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_hr.ts",
"chars": 17943,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"hr\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_hu.ts",
"chars": 17688,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"hu\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_ia.ts",
"chars": 17398,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"ia\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_id.ts",
"chars": 17868,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"id\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_is.ts",
"chars": 17377,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"is\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_it.ts",
"chars": 17972,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"it\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_ja.ts",
"chars": 16931,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"ja\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_ka.ts",
"chars": 17998,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"ka\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_kab.ts",
"chars": 17175,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"kab\">\n<context>\n <name>AddPluginDial"
},
{
"path": "panel/translations/lxqt-panel_kk.ts",
"chars": 17925,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"kk\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_ko.ts",
"chars": 16951,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"ko\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_lg.ts",
"chars": 18597,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"lg\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_lt.ts",
"chars": 18000,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"lt\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_lv.ts",
"chars": 18007,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"lv\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_nb_NO.ts",
"chars": 17846,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"nb_NO\">\n<context>\n <name>AddPluginDi"
},
{
"path": "panel/translations/lxqt-panel_nl.ts",
"chars": 18027,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"nl\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_oc.ts",
"chars": 17289,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"oc\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_pa.ts",
"chars": 17127,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"pa\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_pl.ts",
"chars": 17753,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"pl\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_pt.ts",
"chars": 17965,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"pt\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_pt_BR.ts",
"chars": 18026,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"pt_BR\">\n<context>\n <name>AddPluginDi"
},
{
"path": "panel/translations/lxqt-panel_ro_RO.ts",
"chars": 18096,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"ro_RO\">\n<context>\n <name>AddPluginDi"
},
{
"path": "panel/translations/lxqt-panel_ru.ts",
"chars": 17969,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"ru\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_si.ts",
"chars": 17407,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"si\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_sk_SK.ts",
"chars": 17923,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"sk_SK\">\n<context>\n <name>AddPluginDi"
},
{
"path": "panel/translations/lxqt-panel_sl.ts",
"chars": 17744,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"sl\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_sr@ijekavian.ts",
"chars": 17835,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"sr@ijekavian\">\n<context>\n <name>AddP"
},
{
"path": "panel/translations/lxqt-panel_sr@latin.ts",
"chars": 17850,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"sr@latin\">\n<context>\n <name>AddPlugi"
},
{
"path": "panel/translations/lxqt-panel_sr_BA.ts",
"chars": 17287,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"sr_BA\">\n<context>\n <name>AddPluginDi"
},
{
"path": "panel/translations/lxqt-panel_sr_RS.ts",
"chars": 17845,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"sr_RS\">\n<context>\n <name>AddPluginDi"
},
{
"path": "panel/translations/lxqt-panel_sv.ts",
"chars": 17848,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"sv\">\n<context>\n <name>AddPluginDialo"
},
{
"path": "panel/translations/lxqt-panel_th_TH.ts",
"chars": 17267,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE TS>\n<TS version=\"2.1\" language=\"th_TH\">\n<context>\n <name>AddPluginDi"
}
]
// ... and 2303 more files (download for full content)
About this extraction
This page contains the full source code of the lxqt/lxqt-panel GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2503 files (8.6 MB), approximately 2.4M tokens, and a symbol index with 580 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.