Code Monkey home page Code Monkey logo

lxqt-panel's Introduction

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, 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:

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 panel's 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). The difference between the two plugins is a technical one:

  • plugin-tray is implementing the so-called System Tray Protocol. 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) 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 to adjust PulseAudio.

Installation

Compiling source code

The runtime dependencies are libxcomposite, layershell-qt, KGuiAddons, KWindowSystem, Solid, menu-cache, lxqt-menu-data, liblxqt, libdbusmenu-lxqt and 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 (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 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 the launch of which can be adjusted in section "Basic Settings" of configuration dialogue LXQt Session Settings of 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 the particular plugin.

Translation

Translations can be done in LXQt-Weblate

Translation status

lxqt-panel's People

Contributors

agaida avatar amoskvin avatar atalanttore avatar ayhanyalcinsoy avatar dglent avatar helixbot avatar ito32bit avatar kuzmas avatar luis-pereira avatar lxqtbot avatar mbouzada avatar micrococo avatar nebulade avatar p-bo avatar palinek avatar paulolieuthier avatar pcman avatar pjotr123 avatar pvanek avatar rbuj avatar roxfr avatar safaalfulaij avatar scootergrisen avatar smarquespt avatar sokoloffa avatar stefonarch avatar thomasvie avatar tsujan avatar welaq avatar zoli111 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lxqt-panel's Issues

plugin-taskbar/lxqttaskbar.cpp:194:19: error: ‘const class LxQt::XfitMan’ has no member named ‘setIconGeometry’

I get a build failure in the taskbar plugin:

Scanning dependencies of target taskbar
make[2]: Leaving directory /var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999_build' make -f plugin-taskbar/CMakeFiles/taskbar.dir/build.make plugin-taskbar/CMakeFiles/taskbar.dir/build make[2]: Entering directory/var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999_build'
/usr/bin/cmake -E cmake_progress_report /var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999_build/CMakeFiles
[ 64%] Building CXX object plugin-taskbar/CMakeFiles/taskbar.dir/lxqttaskbar.cpp.o
cd /var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999_build/plugin-taskbar && /usr/bin/x86_64-pc-linux-gnu-g++ -DLXQT_ETC_XDG_DIR="/etc/qt4" -DLXQT_SHARE_DIR="/usr/share/lxqt" -DLXQT_VERSION="0.5.0" -DPLUGIN_DIR="/usr/lib64/lxqt-panel/" -DQT_CORE_LIB -DQT_GUI_LIB -DRAZOR_ETC_XDG_DIR="/etc/qt4" -DRAZOR_SHARE_DIR="/usr/share/lxqt" -DRAZOR_VERSION="0.5.0" -Dtaskbar_EXPORTS -DNDEBUG -O2 -march=native -pipe -fPIC -isystem /usr/include/qt4 -isystem /usr/include/qt4/QtGui -isystem /usr/include/qt4/QtCore -I/usr/include/lxqt -I/usr/include/qtxdg -I/var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999 -I/var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999_build -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtDBus -I/var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999/src -I/var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999/plugin-taskbar/panel -I/var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999_build/plugin-taskbar -Wall -o CMakeFiles/taskbar.dir/lxqttaskbar.cpp.o -c /var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999/plugin-taskbar/lxqttaskbar.cpp
/var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999/plugin-taskbar/lxqttaskbar.cpp: In member function ‘void LxQtTaskBar::refreshIconGeometry()’:
/var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999/plugin-taskbar/lxqttaskbar.cpp:194:19: error: ‘const class LxQt::XfitMan’ has no member named ‘setIconGeometry’
make[2]: *** [plugin-taskbar/CMakeFiles/taskbar.dir/lxqttaskbar.cpp.o] Error 1
make[2]: Leaving directory /var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999_build' make[1]: *** [plugin-taskbar/CMakeFiles/taskbar.dir/all] Error 2 make[1]: Leaving directory/var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999_build'
make: *** [all] Error 2

Panel covers windows in multihead

In multihead, the panel covers windows instead of reserving the space.

Eg if the panel is on the bottom, it covers the bottom of a fullscreen window.

Please make the LXQt panel work like the Microsoft Windows 7 Taskbar (or DockbarX / DockX etc.) and please improve vertical panel mode

Hello,

please make the LXQt panel work like the Microsoft Windows 7 Taskbar:

http://windows.microsoft.com/en-us/windows7/help/better-stronger-faster-the-windows-7-taskbar
http://msdn.microsoft.com/en-us/library/windows/desktop/aa511446.aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/dd378460%28v=vs.85%29.aspx

or DockbarX / DockX:

http://www.webupd8.org/2012/10/dockbarx-sees-new-release-now-available.html
http://www.youtube.com/watch?v=GPslUYIwgag

or the Cinnamon Window List with App Grouping panel applet:

http://cinnamon-spices.linuxmint.com/applets/view/16

for example.

Or, with other words:

Please make the task buttons so that they function as application launchers and please add application grouping, window lists, window previews, jump lists, overlay icons, thumbnail toolbars and so on.

And please improve the vertical mode of the LXQt panel.

Currently the vertical panel is much too wide and so on.

The vertical panel mode is extremely important IMHO, because, IMHO, on widescreen displays, it makes much more sense to use a vertical panel instead of a horizontal panel.

It would be much appreciated.

Regards

Build error

Recently lxqt-panel doesn't compile on my system anymore, due to the following errors.

/tmp/yaourt-tmp-arthur/aur-lxqt-panel-git/src/lxqt-panel/plugin-quicklaunch/lxqtquicklaunch.cpp:82:23: error: ‘class XdgDesktopFile’ has no member named ‘isSuitable’
             if (!xdg->isSuitable())

/tmp/yaourt-tmp-arthur/aur-lxqt-panel-git/src/lxqt-panel/plugin-quicklaunch/lxqtquicklaunch.cpp: In member function ‘virtual void LxQtQuickLaunch::dropEvent(QDropEvent*)’:
/tmp/yaourt-tmp-arthur/aur-lxqt-panel-git/src/lxqt-panel/plugin-quicklaunch/lxqtquicklaunch.cpp:208:22: error: ‘class XdgDesktopFile’ has no member named ‘isSuitable’
             if (xdg->isSuitable())

Any clue what can be causing this?

AlsaEngine::setMute() does not work properly

AlsaEngine::setMute() only work partially.
It can mute the sound card, but it cannot unmuted it again.
This happens when the ALSA sound card is emulated with PulseAudio and the alsa backend of the plugin is used.
Alsamixer works fine and can mute/unmute correctly.
So it's definitely a bug, not the problem of alsa or the hardware.

I already did some test on it. snd_mixer_selem_set_playback_switch_all() returned 0 means that the operation succeeded, but my sound card is not unmuted. So weird.
I have been working with alsa in the past and I guess this might be related to event polling stuff.
When you use your own poilling mechanism instead of the ALSA one, weird things can happen. I'm not sure if this is relevant, though.

ilxqtpanel.h misses its dependency on lxqtpanelglobals.h

i tried to build qCheckGMail against the latest git version it failed to build because "lxqtpanelglobals.h" header file currently not installed by the panel build process.

Hope the following output will add some sense to what i have just said

Scanning dependencies of target qCheckGMail
[ 68%] Building CXX object CMakeFiles/qCheckGMail.dir/src/qcheckgmail.cpp.o
[ 70%] Building CXX object CMakeFiles/qCheckGMail.dir/src/accounts.cpp.o                                                                                  
[ 72%] Building CXX object CMakeFiles/qCheckGMail.dir/src/statusicon.cpp.o                                                                                
[ 74%] Building CXX object CMakeFiles/qCheckGMail.dir/src/qcheckgmailplugin.cpp.o                                                                         
In file included from /home/ink/projects/qCheckGMail/src/qcheckgmailplugin.h:23:0,
                 from /home/ink/projects/qCheckGMail/src/qcheckgmailplugin.cpp:20:
/usr/local/include/lxqt/ilxqtpanel.h:32:30: fatal error: lxqtpanelglobals.h: No such file or directory
compilation terminated.
make[2]: *** [CMakeFiles/qCheckGMail.dir/src/qcheckgmailplugin.cpp.o] Error 1
make[1]: *** [CMakeFiles/qCheckGMail.dir/all] Error 2
make: *** [all] Error 2

Add Panel Widgets Dialog has several rendering issues

lxqt-panel-add-plugins_0
There is a small "_" below the icon on selected delegates.

lxqt-panel-add-plugins_1
For some delegates the text is clipped on the bottom of a delegate

lxqt-panel-add-plugins_2
Probably related to the second issue, the bounding rect for delegates seems wrong. I was looking into the code briefly and maybe the size hint calculation is different from the actual rendering?

Autostart options in /etc/xdg/autostart not working anymore

Due to the recent change in libqtxdg where the XDG_CURRENT_DESKTOP variable is actually interpreted correctly, all the autostart desktop items in /etc/xdg/autostart don't start automatically anymore.

To solve this issue on my system I had to manually change each item in /etc/xdg/autostart (ie. lxqt-panel.desktop) from

OnlyShowIn=Razor;

to

OnlyShowIn=LXQt;

I guess this needs to be changed in all the *.desktop files, right?

Panel size fluctuated due to change in task buttons

I noted some UI glitches about panel sizing.
Currently the height of the panel seems to be determined by its content.
When I open a new window, a new task button is created in the panel.
Then, the icon and text of the task button may have more height than the panel itself, this causes automatic resize of the panel and the height of the panel grows.
When I close the window, the task button is removed from the panel.
The max height of the remaing plugins is smaller. So the panel is again resized with its height shrinked, causing fluctuation of panel height and visual disturbance.

How to reproduce:

  1. close all windows, add mainmenu, desktopswitch, pulseaudio, and calendar to the panel.
  2. Use fusion-qt4 style.
  3. open a new window, the height of panel may grow sometimes
  4. close the window again, then the height of the panel shrinks.

Maybe we should set the height of the panel manually?

GTK3 tray icon is not drawn correctly

To workaround a previous issue with the GTK tray icon (issue #23) this change has been committed: e8c32dc

More recently I have noticed that the tray icon of a GTK3 application (Audacious) on my system is not drawn correctly, see below. The tray icon my GTK2 application (xpad) was drawn correctly, until I ported it from GTK2 to GTK3. The status icon became corrupted too.

Do you know how to resolve this issue?

2014-06-01-233635_3520x1200_scrot

Volume Plugin - Mixer link cant be themed

Im writing a theme for LXQT and found that the link in the VolumePopup doesnt accept CSS styles, so it will always be blue and underlined. This is a bug with QLabel and richtext.

From the aestetic point of view this is ugly.

Maybe it must be a button?

lxqt-globalkeys not found issue

When I try to add widgets like menu or volume, nothing happens.
The message
"Cannot load library /usr/lib/lxqt-panel/libmainmenu.so: (liblxqt-globalkeys.so.0: cannot open shared object file: No such file or directory)"
appears.
There is no liblxqt-globalkeys.so.0 on my computer, but liblxqt-globalkeys-qt5.so.0
A symbolic link to this (and liblxqt-globalkeys-ui-qt5.so.0) makes the panel crash with segfault.
I cannot find a package lxqt-globalkeys containing the missing files in the repository.

Widget configuration reset when another panel is removed.

Reproduce:

  1. Have a panel with a task manager widget.
  2. Change the configuration of task manager to only show icons.
  3. Add a second panel.
  4. Remove the second panel.

Now the task manager has it's default configuration again (showing icons and text). The same observation can be made with the Date-and-Time widget, so it looks like the configuration of the widgets is reset when another panel is removed.

CmakeLists.txt redundant require

Hey folks, great project!
Within the block "if USE_QT5"
the "find_package(Qt5LinguistTools REQUIRED QUIET)" statement is contained twice.

Best wishes from Linz, Austria.

build fails

The error is as follows:

/var/tmp/spm/lxqt-panel-git/source/lxqt-panel.git/plugin-mount/razormountplugin.cpp:31:35: fatal error: razormount/razormount.h: No such file or directory compilation terminated. make[2]: *** [plugin-mount/CMakeFiles/mount.dir/razormountplugin.cpp.o] Error 1 make[1]: *** [plugin-mount/CMakeFiles/mount.dir/all] Error 2

Should you need more information I will provided it but I guess it's something to do with the split-up you made and you can fix it real quick.

Cheers!

moc generation error

/builddir/build/BUILD/lxqt-panel-796.0a01d3a/plugin-mainmenu/lxqtmainmenu.cpp:178:42: error: variable or field 'menuCacheReloadNotify' declared void
/builddir/build/BUILD/lxqt-panel-796.0a01d3a/plugin-mainmenu/lxqtmainmenu.cpp:178:42: error: 'MenuCache' was not declared in this scope
/builddir/build/BUILD/lxqt-panel-796.0a01d3a/plugin-mainmenu/lxqtmainmenu.cpp:178:53: error: 'cache' was not declared in this scope
/builddir/build/BUILD/lxqt-panel-796.0a01d3a/plugin-mainmenu/lxqtmainmenu.cpp:178:60: error: 'gpointer' was not declared in this scope

xxkb indicator is blank

xxkb keyboard indicator is showing blank in tray (but it uses space).

~/.xxkbrc

!XXkb.xpm.path: /usr/share/xxkb
!XXkb.image.path: /usr/share/xxkb
XXkb.mainwindow.enable: yes
XXkb.mainwindow.label.enable: no
XXkb.mainwindow.in_tray: yes
XXkb.mainwindow.type: tray
XXkb.mainwindow.appicon: no
XXkb.mainwindow.geometry: 22x22+0+0
XXkb.mainwindow.label.background: #CCCCCC
XXkb.mainwindow.label.foreground: #000000
XXkb.mainwindow.label.font: -misc-*-*-r-*-*-6-*
XXkb.mainwindow.label.text.1: En
XXkb.mainwindow.label.text.2: Ru

!XXkb.mainwindow.image.1: en15.xpm
!XXkb.mainwindow.image.2: ru15.xpm
XXkb.controls.add_when_start: yes
XXkb.controls.two_state: yes
XXkb.button.enable: no

I tried using both labels and images and all results in transparent image in tray. xxkb works fine in gnome tray.

lxqt version: 0.7.0
xxkb version: 1.11-2.1ubuntu1
lubuntu: 14.04

Regression with Qt 5: ‘WMUrgencyHint’ was not declared in this scope

Build without problems with Qt4, CMakeLists.txt seems to be ok for me. No clue :(

[ 48%] Building CXX object plugin-taskbar/CMakeFiles/taskbar.dir/lxqttaskbutton.cpp.o
/home/agaida/work/siduction/code/extra/lxde/215-lxqt-panel/qt5/plugin-taskbar/lxqttaskbutton.cpp: In member function ‘void LxQtTaskButton::handlePropertyNotify(xcb_generic_event_t*)’:
/home/agaida/work/siduction/code/extra/lxde/215-lxqt-panel/qt5/plugin-taskbar/lxqttaskbutton.cpp:582:9: error: ‘WMHintsFlags’ was not declared in this scope
         WMHintsFlags flags = XfitMan().getWMHintsFlags(prop_event->window);
         ^
/home/agaida/work/siduction/code/extra/lxde/215-lxqt-panel/qt5/plugin-taskbar/lxqttaskbutton.cpp:583:13: error: ‘flags’ was not declared in this scope
         if (flags & WMUrgencyHint)
             ^
/home/agaida/work/siduction/code/extra/lxde/215-lxqt-panel/qt5/plugin-taskbar/lxqttaskbutton.cpp:583:21: error: ‘WMUrgencyHint’ was not declared in this scope
         if (flags & WMUrgencyHint)
                     ^
plugin-taskbar/CMakeFiles/taskbar.dir/build.make:298: recipe for target 'plugin-taskbar/CMakeFiles/taskbar.dir/lxqttaskbutton.cpp.o' failed

Please provide an option to enable Urgency Hint so task-bar buttons blink when a window needs attention

I use Linux as my daily OS, and want to use LXQt for my DE, but I cannot because the panel's task-bar does not support the ICCCM UrgencyHint (see link below):

http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.2.4

This is important to users like me, because I must respond in a timely manner to customers who are instant messaging me, or when an e-mail arrives.

"The UrgencyHint flag, if set in the flags field, indicates that the client deems the window contents to be urgent, requiring the timely response of the user. The window manager must make some effort to draw the user's attention to this window while this flag is set. The window manager must also monitor the state of this flag for the entire time the window is in the Normal or Iconic state and must take appropriate action when the state of the flag changes. The flag is otherwise independent of the window's state; in particular, the window manager is not required to deiconify the window if the client sets the flag on an Iconic window. Clients must provide some means by which the user can cause the UrgencyHint flag to be set to zero or the window to be withdrawn. The user's action can either mitigate the actual condition that made the window urgent, or it can merely shut off the alarm."

Once this option is offered in the lxqt-panel, I will be able to use LXQt as my DE full-time.

Thanks!

KDE / Qt Tray icons are corrupt.

All kde/qt application tray icons are corrupt.

lxqt-panel

From left to right : knotes, kmix, skype, ksystraycmd, removable media.

┌─ oneofone@Oa [~]                                                                                                               
└──➜ pacman -Ss lxqt-panel; kmix --version
lxqt-git/lxqt-panel-git 0.7.0.12.g253dd5b-1 [installed]
    The LXQt desktop panel
Qt: 4.8.6
KDE Development Platform: 4.13.1
KMix: 4.5

Scrolling in task manager panel doesn't respect order of windows

In the "task manager" panel, one can scroll through the applications using the mouse wheel. However it uses the order in which applications were launched and not the order they are shown in the panel (the user can reorder them), this is confusing. Using the PPA on Ubuntu 14.04.

Regression bug: The RGBA support breaks panel theme in FreeBSD

The commit 7054ed1 for RGBA has no effect in my ArchLinux system. However, it breaks our FreeBSD support. What does this commit does? I did not notice any effect in my arch.
In FreeBSD, the panel became black. The regression bug is introduced after this commit. (See the attached screenshot)
Please fix it. Thanks!
freebsd

Failure to build on git snapshot 9f27751

On openSUSE Factory, I get the following build failure:

 [   19s] /home/abuild/rpmbuild/BUILD/lxqt-panel-0.8.0.git9f27751/plugin-mount/lxqtmountplugin.cpp:31:27: fatal error: LXQtMount/Mount: No such file or directory
[   19s]  #include <LXQtMount/Mount>
[   19s]                            ^
[   19s] compilation terminated.
[   19s] plugin-mount/CMakeFiles/mount.dir/build.make:308: recipe for target 'plugin-mount/CMakeFiles/mount.dir/lxqtmountplugin.cpp.o' failed
[   19s] make[2]: *** [plugin-mount/CMakeFiles/mount.dir/lxqtmountplugin.cpp.o] Error 1
[   19s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/lxqt-panel-0.8.0.git9f27751/build'
[   19s] CMakeFiles/Makefile2:681: recipe for target 'plugin-mount/CMakeFiles/mount.dir/all' failed
[   19s] make[1]: *** [plugin-mount/CMakeFiles/mount.dir/all] Error 2

I have patched it to build, although it is somewhat messy, and happens on every file that looks to include LXQtMount/Mount.

Please see attached Patch:

diff -rupN lxqt-panel-0.8.0.git9f27751.old/plugin-mount/actions/deviceaction.h lxqt-panel-0.8.0.git9f27751/plugin-mount/actions/deviceaction.h
--- lxqt-panel-0.8.0.git9f27751.old/plugin-mount/actions/deviceaction.h 2014-08-19 12:59:32.192343730 -0700
+++ lxqt-panel-0.8.0.git9f27751/plugin-mount/actions/deviceaction.h 2014-08-19 13:50:08.978761035 -0700
@@ -31,7 +31,7 @@

 #include <QObject>
 #include <QSettings>
-#include <LXQtMount/Mount>
+#include <lxqtmount-qt5/LXQtMount/Mount>

 namespace {
 class MountDevice;
diff -rupN lxqt-panel-0.8.0.git9f27751.old/plugin-mount/lxqtmountplugin.cpp lxqt-panel-0.8.0.git9f27751/plugin-mount/lxqtmountplugin.cpp
--- lxqt-panel-0.8.0.git9f27751.old/plugin-mount/lxqtmountplugin.cpp    2014-08-19 12:59:32.193343748 -0700
+++ lxqt-panel-0.8.0.git9f27751/plugin-mount/lxqtmountplugin.cpp    2014-08-19 13:47:26.336938097 -0700
@@ -28,7 +28,7 @@

 #include "lxqtmountplugin.h"
 #include "lxqtmountconfiguration.h"
-#include <LXQtMount/Mount>
+#include <lxqtmount-qt5/LXQtMount/Mount>
 #include "actions/deviceaction.h"
 #include "popup.h"
 #include "mountbutton.h"
diff -rupN lxqt-panel-0.8.0.git9f27751.old/plugin-mount/menudiskitem.cpp lxqt-panel-0.8.0.git9f27751/plugin-mount/menudiskitem.cpp
--- lxqt-panel-0.8.0.git9f27751.old/plugin-mount/menudiskitem.cpp   2014-08-19 12:59:32.193343748 -0700
+++ lxqt-panel-0.8.0.git9f27751/plugin-mount/menudiskitem.cpp   2014-08-19 13:54:02.997825478 -0700
@@ -27,7 +27,7 @@

 #include <QDesktopServices>
 #include "menudiskitem.h"
-#include <LXQtMount/Mount>
+#include <lxqtmount-qt5/LXQtMount/Mount>
 #include <XdgIcon>
 #include <QDebug>
 #include <QUrl>
diff -rupN lxqt-panel-0.8.0.git9f27751.old/plugin-mount/popup.cpp lxqt-panel-0.8.0.git9f27751/plugin-mount/popup.cpp
--- lxqt-panel-0.8.0.git9f27751.old/plugin-mount/popup.cpp  2014-08-19 12:59:32.193343748 -0700
+++ lxqt-panel-0.8.0.git9f27751/plugin-mount/popup.cpp  2014-08-19 13:56:22.289246053 -0700
@@ -29,7 +29,7 @@
 #include <QGridLayout>
 #include <QLabel>
 #include <QDesktopWidget>
-#include <LXQtMount/Mount>
+#include <lxqtmount-qt5/LXQtMount/Mount>
 #include "menudiskitem.h"
 #include "popup.h"

plugin-showdesktop/showdesktop.cpp:77:15: error: ‘const class LxQt::XfitMan’ has no member named ‘setShowingDesktop’

And a similar build failure in the showdesktop plugin:

make -f plugin-showdesktop/CMakeFiles/showdesktop.dir/build.make plugin-showdesktop/CMakeFiles/showdesktop.dir/build
make[2]: Entering directory /var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999_build' /usr/bin/cmake -E cmake_progress_report /var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999_build/CMakeFiles [ 72%] Building CXX object plugin-showdesktop/CMakeFiles/showdesktop.dir/showdesktop.cpp.o cd /var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999_build/plugin-showdesktop && /usr/bin/x86_64-pc-linux-gnu-g++ -DLXQT_ETC_XDG_DIR=\"/etc/qt4\" -DLXQT_SHARE_DIR=\"/usr/share/lxqt\" -DLXQT_VERSION=\"0.5.0\" -DPLUGIN_DIR=\"/usr/lib64/lxqt-panel/\" -DQT_CORE_LIB -DQT_GUI_LIB -DRAZOR_ETC_XDG_DIR=\"/etc/qt4\" -DRAZOR_SHARE_DIR=\"/usr/share/lxqt\" -DRAZOR_VERSION=\"0.5.0\" -Dshowdesktop_EXPORTS -DNDEBUG -O2 -march=native -pipe -fPIC -isystem /usr/include/qt4 -isystem /usr/include/qt4/QtGui -isystem /usr/include/qt4/QtCore -I/usr/include/lxqt -I/usr/include/qtxdg -I/var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999 -I/var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999_build -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtDBus -I/var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999/src -I/var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999/plugin-showdesktop/panel -I/var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999_build/plugin-showdesktop -Wall -o CMakeFiles/showdesktop.dir/showdesktop.cpp.o -c /var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999/plugin-showdesktop/showdesktop.cpp /var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999/plugin-showdesktop/showdesktop.cpp: In member function ‘void ShowDesktop::showDesktop()’: /var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999/plugin-showdesktop/showdesktop.cpp:76:36: error: ‘const class LxQt::XfitMan’ has no member named ‘getShowingDesktop’ /var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999/plugin-showdesktop/showdesktop.cpp:77:15: error: ‘const class LxQt::XfitMan’ has no member named ‘setShowingDesktop’ make[2]: *** [plugin-showdesktop/CMakeFiles/showdesktop.dir/showdesktop.cpp.o] Error 1 make[2]: Leaving directory/var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999_build'
make[1]: *** [plugin-showdesktop/CMakeFiles/showdesktop.dir/all] Error 2
make[1]: Leaving directory `/var/tmp/portage/lxde-base/lxqt-panel-9999/work/lxqt-panel-9999_build'
make: *** [all] Error 2

Wrong panel size sometimes (happens randomly)

wrong_panel_size

This is a cleanly built lxpanel from the latest git HEAD (qt 4.8.5 is in use).
I tested it on a newly installed archlinux system.
The panel size is not correct no matter how I adjust the iconSize.

Tracing the code revealed that in RazorPanel::realign(), sizeHint() returns wrong height which is much bigger than the really needed height.

I've no idea what causes the problem.
The bug is not 100% reproducible everytime.
Just kill lxqt-panel, and restart it again. Repeating this kill/restart operation for many times, and then this will happen randomly.

Crashes i3-wm when start button is clicked

Hello, I am having this weird issue with lxqt-panel in i3 window manager. They work great together otherwise, but as soon as the 'start' button is clicked, i3 crashes. If I tell i3 to restart right away, it's fine, and the start menu even remains open and functions as expected. If I ignore it for a few seconds though, X just locks up and I have to kill it. I've verified this on multiple distros (Debian & Arch)

I have a big weird debug log from i3 that I can attach if needed (it's quite big though and not sure if you need it) In all the time I've used i3, I've never seen anything crash it except for this panel (started having other crashing issue with razor-panel a few months back)

Any idea whats going on? I suspect it's having something to do with a window hint of the start menu that i3 doesn't like.. I do have xfce4-panel working just fine with it's start menu (although if I try to align the xfce panel vertically to the left or right of the screen, the panel crashes.. i3 doesn't like vertical docks and officially says they are not yet supported)

If this is what is going on with the start menu on lxqt-panel, can someone point me in the right direction for where to change the window type of the start menu to attempt to make these things work?

Maybe I'm way off though, are there any i3 users in here? =)

Error compiling

lxqtquicklaunch.cpp:82:23: error: ‘class XdgDesktopFile’ no tiene un miembro llamado ‘isSuitable’
if (!xdg->isSuitable())

Status icon for GTK3 applications present but not visible.

Hi,

Recently I have noticed that two GTK3 applications (Audacious and Xpad) who both use a GtkStatusIcon have the status icon working in the systray (all functionality works), but the icon itself is transparent / invisible.

Before I thought that GTK3, the applications, theme, or Arch environment might be to blame, but maybe it is an lxqt-panel issue.

Please read the bugreport which I started at Audacious for details and a screenshot.
http://redmine.audacious-media-player.org/issues/422

Do you have any idea what could be causing this issue?

Volume Control

Volume control plugin doesn't work properly.
Besides,default pulse audio device selection could be added to right click menu.
Thank you.

Inconsistent realign() and emit realigned() behavior?

While trying to implement NETWM icon geometry for the task bar buttons, I noted that there is a problem.
In LxQtPanel, there are a lot of places emit realigned() is called, and in some places only realign() is called and the signal is not emitted. This caused some inconsistency.
When you setPosition() or setLength(), only "emit realigned()" is called, but the panel is not yet resized, so in Plugin::realign() the panel is still in its old geometry. However, in showEvent(), realigned() is trigerred after calling realign(), so when Plugin::realign() is called, the panel is already in its new geometry and that causes inconsistency.
What's the state of the panel when Plugin::realign() is called? prepared to resized and repositioned and have the old state, or it's already realigned?

What if I want to do something AFTER the panel is already realigned and its geometry is already changed? How can I ensure that?
I tried to install a timer in Plugin::realign() but that's not reliable since I'm not sure when will the panel really get its new state after realign() is called.

Allow taskbar to only show windows on the same monitor as the task bar

lxqt-panel is already able to create multiple panels on multihead systems without requiring a top edge to be aligned, something tint2 and lxpanel cannot do.

With multiple displays and many windows open, having task bars that show every window on all displays may be redundant and too busy.

An option to allow for task bars to only show windows on the same monitor as the task bar (like in lxpanel) resolves this.

This would allow lxqt-panel to arguably be the best multihead panel available.

Date & Time widget does not centre text correctly on initial load

If my panel is restarted, or has just started up normally, then the date and time widget doesn't display the time centred in the panel, but offset to the left so that the left most digit is not fully visible.

screen

Once I change the settings, it doesn't matter which settings, and I can even change them back immediately, then it is placed correctly.

screen01

panel does not appear at all

lxqt-panel starts but doesn't appear. Log:

lxqt-panel -c /etc/settings/lxqt/panel.conf
(process:2078): GLib-GObject-CRITICAL *: gtype.c:2720: You forgot to call g_type_init()
(process:2078): GLib-CRITICAL *
: g_once_init_leave: assertion result != 0' failed (process:2078): GLib-GObject-CRITICAL **: g_object_new: assertionG_TYPE_IS_OBJECT (object_type)' failed
(process:2078): GLib-GObject-CRITICAL *: gtype.c:2720: You forgot to call g_type_init()
(process:2078): GLib-GObject-CRITICAL *
: g_type_interface_add_prerequisite: assertion G_TYPE_IS_INTERFACE (interface_type)' failed (process:2078): GLib-CRITICAL **: g_once_init_leave: assertionresult != 0' failed
(process:2078): GLib-GObject-CRITICAL *: gtype.c:2720: You forgot to call g_type_init()
(process:2078): GLib-CRITICAL *
: g_once_init_leave: assertion result != 0' failed (process:2078): GLib-GObject-CRITICAL **: gtype.c:2720: You forgot to call g_type_init() (process:2078): GLib-CRITICAL **: g_once_init_leave: assertionresult != 0' failed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.