lxde / lxpanel Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
LXPanel is a lightweight X11 desktop panel. To build this program you need some development packages: libtool 2.2 or newer, intltool, libgtk 2.18 or newer, libfm-gtk 1.2 or newer, libwnck, libkeybinder. Optional development packages may be required to build some modules: libmenu-cache, libalsasound ('volumealsa' plugin isn't built if missing), libindicator 0.3.0 ('indicator' plugin isn't built if missing), wireless-tools (required to build 'netstat' plugin), libxml-2.0 (required to build 'weather' plugin). To install this program, three other packages are needed: menu-cache, libfm-gtk, lxmenu-data. Please install them before installing lxpanel. There are 2 programs contained in the package. 1. lxpanel: the panel 2. lxpanelctl: the controller of lxpanel, can be used to control lxpanel in other programs. The best place to use lxpanelctl is by far the numerous key bindings provided by window managers. When the key combination is pressed, call lxpanelctl to popup system menu, or to open run dialog in lxpanel. Run lxpanelctl without any argument to see what command it currently recognizes. About Netstat and Netstatus plugins: 1. netstatus was ported from netstatus panel applet of GNOME Project. This plugin has good support on Linux/BSD/other UNIX, and it is released under GNU GPL. (the same as LxDE) 2. netstat is a new plugin written by LxDE developers as the lightweight replacement of netstatus plugin. It aims to be more usable and resource efficient. At the current stage, netstat runs only on Linux. About theming & lxpanel: 1. LXPanel tries to use as much themed icons as possible. Fallback icons may be also provided if they are placed into $(datadir)/lxpanel/images directory. Few plugins already provide their fallback icons. 2. Current icon names that can be themed specifically for lxpanel include: *"lxpanel-background" *"clock" *"capslock-on" *"capslock-off" *"numlock-on" *"numlock-off" *"scrllock-on" *"scrllock-off" *"window-manager" *"ns-lock" *"cpufreq-icon" *possibly more, as yet unfound. There are also a substantial amount of others, but they use the icon naming specification. 3. You can also set theme for any plugin specifically using it's widget name which is equal to plugin type. 4. There is a specific RC file which can be loaded by LXPanel, it can be placed as ~/.config/lxpanel/$PROFILE/gtkrc, where $PROFILE is the profile used on the LXPanel start. About keyboard options translations in xkb plugin: The 'xkb' plugin can use translations from language packs that are present in many distributions. To use it you should have language pack which includes "xkeyboard-config" translations.
Searching my city name "Shahrud" (or shahrood, or شاهرود) returns no result.
"Shahrud" on openweathermap: https://openweathermap.org/city/135423
It may be a good idea to let users set lat/long beside being able to search locations.
Also yahoo query api has been shutdown, so it would be a good idea to replace or remove it.
I'm eager to help in the debug/development. Please instruct me how to .
I am using the most recent (to date) LXPanel version 0.10.1 with Gentoo GNU/Linux on a Lenovo laptop with a battery, model 45N1011, manufactured by LGC.
Defect (bug): the Battery Monitor panel applet continuously sends false "Battery Low" alarm notifications and the applet's bar graph is shown in yellow, in some common situations, where the following conditions apply:
Expected behavior:
The applet's bar graph shall be green and "Battery Low" alarms shall not appear, since there is AC power and the battery is nearly full.
Additional information:
The battery monitor mistakenly displays a "low battery" warning whenever the AC state changes (connected / disconnected).
This is not a huge issue in and of itself, but some modern laptops have a battery protection feature that will periodically disable the AC connection when fully charged in order to protect the battery.
This leads to a spam of "low battery" warnings when having a laptop connected to a docking station for an extended amount of time.
I've tried to look at the implementation for a bit, but couldn't make much sense of it.
I'm using a Lenovo ThinkPad T14s and running LXDE under archlinux.
Hi, idk if you support lxpanel-gtk3. id so.
I'm using the binary compiled here
https://launchpad.net/~mati75/+archive/ubuntu/lubuntu-testing/
And I have this strange offset in the taskbar plugin
It appends independently of the theme used.
That sound like a padding-left problem of the box. I thought that I could fix it inside a gtkrc file. But with gtk3, lxpanel seems to ignore the file I put in ~/.config/lxpanel/$PROFILE/gtkrc.
What would be the correct way to do this with gtk3 ?
I have experienced issue raspberrypi-ui/rc_gui#39 on a Pi 4 with a fresh Raspbian Buster installation with LXPanel 0.10.0.
After editing the Keyboard Layout Handler settings, the new settings are not written to ~/.config/lxpanel/LXDE-pi/panels/panel after clicking the Close button on the dialog. It looks like the close button does nothing.
I have found a workaround:
my pstree output
sulin@DonkeyHUB:sulin :) > pstree
init─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager───2*[{NetworkManager}]
├─accounts-daemon───2*[{accounts-daemon}]
├─agent───2*[{agent}]
├─at-spi-bus-laun─┬─dbus-daemon
│ └─3*[{at-spi-bus-laun}]
├─at-spi2-registr───2*[{at-spi2-registr}]
├─14*[busybox]
├─console-kit-dae───64*[{console-kit-dae}]
├─2*[dbus-daemon]
├─2*[dbus-launch]
├─dconf-service───2*[{dconf-service}]
├─elogind-daemon
├─gnome-terminal-─┬─bash───pstree
│ └─3*[{gnome-terminal-}]
├─gvfs-udisks2-vo───3*[{gvfs-udisks2-vo}]
├─gvfsd─┬─gvfsd-network───2*[{gvfsd-network}]
│ ├─gvfsd-trash───2*[{gvfsd-trash}]
│ └─2*[{gvfsd}]
├─gvfsd-metadata───2*[{gvfsd-metadata}]
├─light-locker───3*[{light-locker}]
├─lightdm─┬─Xorg───4*[{Xorg}]
│ ├─lightdm─┬─lxsession─┬─lxclipboard
│ │ │ ├─lxpanel─┬─Telegram───17*[{Telegram}]
│ │ │ │ ├─firefox-bin─┬─Privileged Cont───24*[{Privileged Cont}]
│ │ │ │ │ ├─Web Content───28*[{Web Content}]
│ │ │ │ │ ├─Web Content───16*[{Web Content}]
│ │ │ │ │ ├─WebExtensions───22*[{WebExtensions}]
│ │ │ │ │ └─57*[{firefox-bin}]
│ │ │ │ ├─gedit───4*[{gedit}]
│ │ │ │ ├─gnome-screensho───3*[{gnome-screensho}]
│ │ │ │ └─3*[{lxpanel}]
│ │ │ ├─lxpolkit───2*[{lxpolkit}]
│ │ │ ├─openbox
│ │ │ ├─pcmanfm───2*[{pcmanfm}]
│ │ │ ├─xscreensaver
│ │ │ └─2*[{lxsession}]
│ │ └─2*[{lightdm}]
│ └─2*[{lightdm}]
├─login───bash
├─menu-cached───2*[{menu-cached}]
├─nm-applet───3*[{nm-applet}]
├─polkitd───7*[{polkitd}]
├─ssh-agent
├─supervise-daemo───dbus-daemon
├─2*[udevd]
├─udisksd───4*[{udisksd}]
├─wpa_supplicant
├─xfce4-notifyd───2*[{xfce4-notifyd}]
└─xfconfd───2*[{xfconfd}]
[106823:106823:0419/064914.560416:ERROR:gbm_wrapper.cc(255)] Failed to export buffer to dma_buf: No such file or directory (2)
[106823:106823:0419/064914.560480:ERROR:gbm_wrapper.cc(255)] Failed to export buffer to dma_buf: No such file or directory (2)
[106785:106785:0419/064917.635482:ERROR:CONSOLE(1)] "Error in migrateSettingsPromise: Unexpected end of JSON input", source: chrome-extension://mpognobbkildjkofajifpdfhcoklimli/background-common-bundle.js (1)
[106823:106823:0419/071530.793712:ERROR:shared_image_manager.cc(197)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox.
[106823:106823:0419/071530.825763:ERROR:shared_image_manager.cc(197)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox.
[106823:106823:0419/071530.826251:ERROR:shared_image_manager.cc(197)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox.
[106823:106823:0419/075625.134946:ERROR:shared_image_manager.cc(197)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox.
[106823:106823:0419/075625.135631:ERROR:shared_image_manager.cc(197)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox.
[106785:106785:0419/091824.860145:ERROR:CONSOLE(0)] "Unchecked runtime.lastError: No window with id: 300847120.", source: chrome-extension://mpognobbkildjkofajifpdfhcoklimli/browser.html (0)
[106785:106785:0419/095105.476936:ERROR:CONSOLE(1)] "Uncaught (in promise) Error: No tab with id: 300847164.", source: chrome-extension://mpognobbkildjkofajifpdfhcoklimli/bundle.js (1)
[111516:1:0419/101422.971869:ERROR:vivaldi_snapshot_page.cc(77)] empty visible content rect
[106785:111545:0419/101422.972289:ERROR:capture_page.cc(61)] no data from the renderer process
[106785:106785:0419/101423.007219:ERROR:thumbnails_api.cc(290)] Failed to capture https://www.youtube.com/feed/subscriptions
[1] 97796 segmentation fault (core dumped) lxpanel
lxpanel 1111.16s user 235.36s system 1% cpu 27:31:16.19 total
I dont actaully want my web broswer icon to show up as youtube, or whatever its trying to do
This is a Feature Request and not an issue.
The lxpanel is great, but it is missing a "NetSpeed" plugin that is available in gnome-panel as shell extension, mate-panel as an applet and xfce4-panel as "xfce4-netload-plugin".
I'd like to ask any programmer, who is interested to create new or modify/reprogram an existing applet/plugin. Here are some existing projects for xfce4, mate and gnome panels:
https://github.com/search?q=xfce4-netload-plugin
https://github.com/search?q=mate-netspeed
https://github.com/search?q=gnome-netspeed
Thank you very much.
LXpanel has the option to show only icons (without title) on the taskbar, but it does not allow the opposite. I agree that having icons is a beautiful feature, but it is somehow distracting.
Maybe allowing the user to remove icons and leave only the title of the window on the taskbar could be an interesting feature. This looks pretty neat in tint2 and awesomewm's taskbar.
Nothing more to ask. Have a nice day guys!
lxpanelctl has "refresh" command, which is available.
In following use case it does not help:
These actions helps solve this problem:
a) making command and request to "lxpanelctl restart". It looks too resource consuming, not good.
b) doing some changes in Panel Settings. It takes extra task to do, waste of resources, no good.
c) restarting the Computer. It's not dynamic. Apps for real-time events can't be done.
This directory "/usr/share/lxpanel/images/" is no good, because of it's privileges and permissions.
Any ideas to solve simple "refresh" are appreciated.
I have placed the "system tray" applet on the right side of my lxpanel, between the "windows list" and the "keyboard layout".
When a new application opens with an icon in the system tray, it appears on the right, near the "keyboard layout", and all previous icons move to the left.
This greatly spoils the view - it is impossible to get used to where the icons are, because they are constantly moving.
On Windows, new icons appear on the left, and it doesn't look so broken.
Example on LXDE:
Open Discord.
Looking broken.
Network-manager applet and "volume icon" moved to live in another country.
System icon, system icon, DISCORD, system icon...
At this moment, the "system tray" applet cannot be configured.
I suggest adding the ability to customize which side the icons will appear - on the left or on the right.
Thus, LXDE will become much more convenient and beautiful thanks to such a small detail.
I don't think this is a difficult task, and that it will greatly increase the overall weight of the LXDE.
But it will make it very pleasant for everyone who likes to set up their own system.
If you want to add the ability to move icons in the system tray, then you should also be able to change the direction of new icons.
I would like to take this opportunity to say thank you for LXDE! This is the best minimalistic DE!
Systems used:
Raspberry Pi Zero W (512 MB) running current version of Raspbian Buster (headless via VNC cloud).
That error showed up on many of my systems and is at least after some time reproducible.
After a couple of weeks running, the system becomes unreactive to any launch command from the panel. That includes Terminal and Shutdown/Reboot.
On any attempt to launch a new window I get
"Error Message Failed to fork (Cannot allocate memory) "
Since the system is not physically accessible, no way to reboot.
No way to SSL either since the system is behind a NAT with no open SSL ports.
Finally I found some interesting information and a way to unlock the situation:
VNC can send the keyb. combination ALT-SHIFT-DEL, which on Raspbian starts the Task Manager.
That worked.
With it I found that LXpanel did eat 210MB of memory!
Far much than any other process! The cache was full filled up...
It really looks like LXpanel has got a memory leakage.
It would have been a bad idea to kill that process: I would not have been able to launch anything, and could not reboot either.
Serendipitously, I found a workaround: I changed a LXpanel setting from "left" to "top" and...
bingo!
LXpanel shrinked to 20MB and became responsive again.
So I have a got workaround and my problem is solved for the time being, but you might want to address the very cause.
Maybe my observations could bring you to find the memory leakage?
If you need additional information I could built another system at home, from which I could give you a SSL access to investigate?
Regards
Tooltips are mostly placed at the top of the screen instead of aside the panel. This is only present on the GTK3 build of lxpanel.
Also posted to the LXDE Forum....
I have 2 panels - the top one just has an "Application Launch Bar" with 12 apps in it.....
Most times the panel starts up with some apps/icons missing - seemingly randomly but the bigger apps (e.g. Chromium & Thunderbird) are the most likely to be missing.
I have to do repeated calls to:
lxpanelctl restart
and eventually all apps/icons appear.
Questions:
Many thanks
I have error at open folder.
No file manager is configured.
It is correctly configured from Panel Preferences
, but it still does not work.
When opening too many programs, the width of LXPanel starts to grow above the screen size.
The given behavior is observed on a two monitor configuration. The panel is attached only on the one of the monitors. Not sure whether this shows up on single monitor computers.
Also, it is not sure what is the immediate reason -- LXPanel expands itself in attempt to accommodate the wider task bar, or the task bar grows by itself and LXPanel width is simply the sum of the elements on it.
I am expecting, when the count of the open task grows, the task buttons to shrink in order to stay on the screen. In this relation it seems strange that there is an option "Maximum width of task button" while on my opinion, there should be an option "Minimum width of task button". Anyway, the task buttons never shrink and this IMHO is a misbehavior.
Also, I can try to fix this problem, but will need some directions on the source. Where to look and what is the general idea/algorithms of the panel/task bar size management.
I want to use lxde under xvfb
Here is my bash code:
DISPLAY=:99 startlxde &
sleep ?
import -window root screenshot.png
lxde need some time to start but I do not know how long I should wait. I want to ask how to know lxde is ready so I can take screenshot?
If the time is not enough, I will get 'no session for pid'
gtk4 doesnt allow you to theme
my clearlooks theme looks gorgeous
https://wireless.wiki.kernel.org/en/developers/documentation/wireless-extensions
libnl3 is the supported version libiw-dev
related bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1058734
Hi, I would like to see a graph for my ping to www.google.com. If possible make it a generic graph where the user inputs a script to be run each X seconds.
Thanks.
When I set grp:alts_toggle
(switching layouts by pressing both alt keys), instead of flags, the kbd plugin shows the text "GROUP" for one layout and the text "GROUP(ALTS" for the other. Hovering over the text shows the correct names in the tooltip. Adding another grp:
option to my setting (such as grp:ctrl_shift_toggle
) fixes this behaviour.
I had a look at the code, and I think the problem is caused in initialize_keyboard_description()
. There two arrays get populated: group_names
and symbol_names
. I understand the group_names
is the names of the 4 xkb groups (what could also be called layouts), but I'm not sure what symbol_names
is for. I noticed that symbol_names
is 4 elements long, but the string that is parsed to find those 4 elements has more thatn that on my machine, which uses only 2 of the 4 layouts:
$ setxkbmap -print | grep xkb_symbols
xkb_symbols { include "pc+eu+ru(phonetic_YAZHERTY):2+inet(evdev)+group(alts_toggle):1+group(alts_toggle):2" };
The elements are separated using '+' signs, so the count comes to 6.
With this setup, the `symbol_names' array gets filled correctly:
(gdb) p xkb->group_names
$5 = {"EurKEY (US based layout with European letters)", "Russian (phonetic, YAZHERTY)", "Unknown", "Unknown"}
But symbol_names
has garbage:
(gdb) p xkb->symbol_names
$4 = {"GROUP", "GROUP(ALTS", "INET(EVDEV)", "None"}
Doing the thing, where I add another grp:
option, gives the following xkb_symbols
string:
pc+eu+ru(phonetic_YAZHERTY):2+inet(evdev)+group(ctrl_shift_toggle)+group(alts_toggle):1+group(alts_toggle):2
But for some reason, it gets truncated when it is read XGetAtomName()
(xkb.c:179). I assume this is because the X Atom has a set length of 100 characters:
(gdb) p symbol_string
$5 = "pc+eu+ru(phonetic_YAZHERTY):2+inet(evdev)+group(ctrl_shift_toggle)+group(alts_toggle):1+group(alts_"
When that truncated string gets parsed the results are as follows:
(gdb) p xkb->group_names
$6 = {"EurKEY (US based layout with European letters)", "Russian (phonetic, YAZHERTY)", "Unknown", "Unknown"}
(gdb) p xkb->symbol_names
$7 = {"EU", "RU", "INET(EVDEV)", "GROUP(CTRL"}
group_names
still has the correct contents and symbol_names
, while having garbage in the last two fields, happens to have the correct contents in the first two.
Aside from trying to fit a 6-or-more-element array into a 4-element one, another problem I noticed was one added in 7dbea37. Before that commit, "group(alts_toggle)"
would be turned into "group\0alts\0toggle\0" = "group"
which would be recognized by the logic in xkb.c:192, that filters "pc", "inet", and "group" from the symbols string. Now however, it gets turned into "group(alts\0toggle)" = "group(alts"
which is no longer caught by the code, and is probably where the garbage in symbol_names
came from.
I think, that parsing xkb_symbols
at all is a bad idea. A better solution for getting the short names of the layouts (EU, RU, US, etc.) is to do what setxkbmap does and use XkbRF_GetNamesProp()
from X11/extensions/XKBrules.h
. That function returns a struct which contains, among other things, both the layout and the variant.
A short example program:
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/XKBlib.h>
#include <X11/extensions/XKBrules.h>
int
main(void)
{
Display *dpy;
dpy = XOpenDisplay(NULL);
XkbRF_VarDefsRec vd;
XkbRF_GetNamesProp(dpy, NULL, &vd);
puts(vd.layout);
puts(vd.variant);
}
$ gcc -lX11 -lxkbfile test.c
$ ./a.out
eu,ru
,phonetic_YAZHERTY
Using this would be far easier and much less error prone than whatever lxpanel is currently doing.
I have lxpanel hidden by default. I mostly use a keyboard driven work flow. Currently to see the panel (to view the time, network load etc), I have to use the mouse.
I wish there is a key or at least a command to show the bar, for example:
lxpanelctl show
Hi. lxpanel has "Span monitors" feature, but it only resizes it. Can you please add this feature?
lxpanel version 0.10.1-2
Can you add an option that when you right click on a empty space on the panel shows the WM menu?
Hello, everyone...
I use Debian sid with LXDE on board. After the last update I watch the broken system tray in LXDE panel. Look at this couple of screen shots.
If the screen resolution on my monitor is 1366X765 and the flag installed, there is no tray at all in the panel.
There is the next strings in run.log file:
** (lxpanel:1025): WARNING **: 08:10:08.357: task button : X error
** (lxpanel:1025): WARNING **: 08:10:59.260: lxpanel : X error: BadWindow (invalid Window parameter)
** (lxpanel:1025): WARNING **: 08:10:59.260: lxpanel : X error: BadWindow (invalid Window parameter)
** (lxpanel:1025): WARNING **: 08:10:59.260: lxpanel : X error: BadWindow (invalid Window parameter)
(lxpanel:1025): GLib-GIO-CRITICAL **: 08:11:07.860: GFileInfo created without standard::edit-name
(lxpanel:1025): GLib-GIO-CRITICAL **: 08:11:07.860: file ../../../gio/gfileinfo.c: line 1743 (g_file_info_get_edit_name): should not be reached
(lxpanel:1025): GLib-GIO-CRITICAL **: 08:11:07.860: GFileInfo created without standard::size
(lxpanel:1025): GLib-GIO-CRITICAL **: 08:11:07.860: file ../../../gio/gfileinfo.c: line 1846 (g_file_info_get_size): should not be reached
(lxpanel:1025): GLib-GIO-CRITICAL **: 08:11:07.860: GFileInfo created without standard::is-symlink
(lxpanel:1025): GLib-GIO-CRITICAL **: 08:11:07.860: file ../../../gio/gfileinfo.c: line 1677 (g_file_info_get_is_symlink): should not be reached
(lxpanel:1025): GLib-GIO-CRITICAL **: 08:11:07.861: GFileInfo created without standard::is-backup
(lxpanel:1025): GLib-GIO-CRITICAL **: 08:11:07.861: file ../../../gio/gfileinfo.c: line 1655 (g_file_info_get_is_backup): should not be reached
Before the last update everything worked fine. Any help would be wonderful!
Hi,
When lxpanel is built with gtk+3, the volumealsa plugin has two issues:
gtk_widget_add_events(p, GDK_SCROLL_MASK)
.GDK_SCROLL_SMOOTH
is not taken into account.Best regards,
lxpanel version 0.10.1-2
Can you make lxpanelctl menu
toggle the menu?
So you can bind a key that pressed again hide it.
Issue reported to debian bug tracker here.
The netstatus plugin still uses the old gnome-netstatus-*
icon names. These icon names have been depricated for a very long time, and the names from the [FreeDesktop.org Icon Naming Specification] (https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html) would be better to use. Most icon themes will have the FD.o names and not the gnome-
prefixed names.
FD.o names include:
network-wired
network-wireless
network-error
network-idle
network-offline
network-receive
network-transmit
network-transmit-receive
Not part of FD.o but widely used (are in KDE's Breeze and Gnome's Adwaita icon themes):
network-wireless-signal-none
network-wireless-signal-weak
network-wireless-signal-ok
network-wireless-signal-good
network-wireless-signal-excellent
A quick grep shows where the names are used. It may be as simple as switching the icon names.
$ grep -r --exclude=\*.{po, Po, plo, Plo, gmo, svg, pot, intltool-merge-cache} gnome-netstatus-
data/Makefile.am: images/gnome-netstatus-0-24.png \
data/Makefile.am: images/gnome-netstatus-25-49.png \
data/Makefile.am: images/gnome-netstatus-50-74.png \
data/Makefile.am: images/gnome-netstatus-75-100.png \
data/Makefile.am: images/gnome-netstatus-disconn.png \
data/Makefile.am: images/gnome-netstatus-error.png \
data/Makefile.am: images/gnome-netstatus-idle.png \
data/Makefile.am: images/gnome-netstatus-rx.png \
data/Makefile.am: images/gnome-netstatus-txrx.png \
data/Makefile.am: images/gnome-netstatus-tx.png \
plugins/netstatus/netstatus-dialog.c: // gnome_help_display_on_screen ("gnome-netstatus", "gnome-netstatus-props", screen, &error);
plugins/netstatus/netstatus-dialog.c: if ((icon_info = gtk_icon_theme_lookup_icon (icon_theme, "gnome-netstatus-tx", 48, 0)))
plugins/netstatus/netstatus-icon.c: "gnome-netstatus-disconn");
plugins/netstatus/netstatus-icon.c: "gnome-netstatus-idle");
plugins/netstatus/netstatus-icon.c: "gnome-netstatus-tx");
plugins/netstatus/netstatus-icon.c: "gnome-netstatus-rx");
plugins/netstatus/netstatus-icon.c: "gnome-netstatus-txrx");
plugins/netstatus/netstatus-icon.c: "gnome-netstatus-error");
plugins/netstatus/netstatus-icon.c: "gnome-netstatus-0-24");
plugins/netstatus/netstatus-icon.c: "gnome-netstatus-25-49");
plugins/netstatus/netstatus-icon.c: "gnome-netstatus-50-74");
plugins/netstatus/netstatus-icon.c: "gnome-netstatus-75-100");
Hi,
As it is visible in the screenshot, taken from Mageia linux development version, when lxpanel is set to the bottom of the screen, the tooltips appear at the place they should if lxpanel was set to the top of the screen. That issue appears only with lxpanel when it is built with Gtk+3, not with Gtk+2.
Best regards,
You should consider using STLWRT instead of GTK.
EDIT: interesting read: https://ubuntu-mate.community/t/horrible-gtk3-gnome-ui-design-is-leaking-into-ubuntu-mate-applications-in-20-04/22028/57
On my Laptop I use a port replicator for external monitors and sound.
When I want to switch the Audio Card in settings of the volume plugin, lxpanels quits with segfault. Lxpanel restarts automatically and in the volume plugin is still the old Audio Card selected.
I used a fresh build of lxpanel with debug flags for backtrace
lxpanel -v
lxpanel 0.10.0
uname -srvmo
Linux 5.10.9-arch1-1 #1 SMP PREEMPT Tue, 19 Jan 2021 22:06:06 +0000 x86_64 GNU/Linux
Terminal output is
(lxpanel:20463): Gtk-CRITICAL **: 10:31:42.271: IA__gtk_tree_model_iter_nth_child: assertion 'n >= 0' failed
(lxpanel:20463): Gtk-CRITICAL **: 10:31:42.271: gtk_list_store_get_value: assertion 'VALID_ITER (iter, list_store)' failed
(lxpanel:20463): GLib-GObject-WARNING **: 10:31:42.271: ../glib/gobject/gtype.c:4268: type id '0' is invalid
(lxpanel:20463): GLib-GObject-WARNING **: 10:31:42.271: can't peek value table for type '<invalid>' which is not currently referenced
Backtrace
#0 0x00007ffff7c115e3 in gtk_tree_model_get_valist () at /usr/lib/libgtk-x11-2.0.so.0
#1 0x00007ffff7c11910 in gtk_tree_model_get () at /usr/lib/libgtk-x11-2.0.so.0
#2 0x00007ffff5421889 in channel_selector_changed (channel_selector=0x7fffffffcaf8, vol=0x5555556fbe90) at volumealsa/volumealsa.c:1106
#3 0x00007ffff75f6052 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#4 0x00007ffff761e9c5 in () at /usr/lib/libgobject-2.0.so.0
#5 0x00007ffff761259d in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#6 0x00007ffff7612b00 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#7 0x00007ffff7a9d732 in () at /usr/lib/libgtk-x11-2.0.so.0
#8 0x00007ffff7aa2f90 in gtk_combo_box_set_active () at /usr/lib/libgtk-x11-2.0.so.0
#9 0x00007ffff5421a69 in card_selector_changed (card_selector=0x7fffffffcfe0, vol=0x5555556fbe90) at volumealsa/volumealsa.c:1089
#10 0x00007ffff75f6052 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#11 0x00007ffff761e9c5 in () at /usr/lib/libgobject-2.0.so.0
#12 0x00007ffff761259d in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#13 0x00007ffff7612b00 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#14 0x00007ffff7a9d732 in () at /usr/lib/libgtk-x11-2.0.so.0
#15 0x00007ffff7aa372b in gtk_combo_box_set_active_iter () at /usr/lib/libgtk-x11-2.0.so.0
#16 0x00007ffff7aa3918 in () at /usr/lib/libgtk-x11-2.0.so.0
#17 0x00007ffff75f6052 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#18 0x00007ffff761e9c5 in () at /usr/lib/libgobject-2.0.so.0
#19 0x00007ffff761259d in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#20 0x00007ffff7612b00 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#21 0x00007ffff7c4ffa5 in gtk_widget_activate () at /usr/lib/libgtk-x11-2.0.so.0
#22 0x00007ffff7b3ede1 in gtk_menu_shell_activate_item () at /usr/lib/libgtk-x11-2.0.so.0
#23 0x00007ffff7b3f0ff in () at /usr/lib/libgtk-x11-2.0.so.0
#24 0x00007ffff7b2c01c in () at /usr/lib/libgtk-x11-2.0.so.0
#25 0x00007ffff75f6052 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#26 0x00007ffff761e3f0 in () at /usr/lib/libgobject-2.0.so.0
#27 0x00007ffff7611bcb in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#28 0x00007ffff7612b00 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#29 0x00007ffff7c51265 in () at /usr/lib/libgtk-x11-2.0.so.0
#30 0x00007ffff7b2a636 in gtk_propagate_event () at /usr/lib/libgtk-x11-2.0.so.0
#31 0x00007ffff7b2aaab in gtk_main_do_event () at /usr/lib/libgtk-x11-2.0.so.0
#32 0x00007ffff799932e in () at /usr/lib/libgdk-x11-2.0.so.0
#33 0x00007ffff74ffa84 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#34 0x00007ffff75539b1 in () at /usr/lib/libglib-2.0.so.0
#35 0x00007ffff74fefd3 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#36 0x00007ffff7b2995e in gtk_main () at /usr/lib/libgtk-x11-2.0.so.0
#37 0x0000555555561484 in main (argc=<optimized out>, argv=<optimized out>, env=0x7fffffffe268) at main.c:572
Hi, i would l to notice a possible bug when using lxde de with multi monitor (in my case i use 2 o 3 monitor) and configuring with arandr fine.
If i switch from 3 (or 2 ) monitor to only laptop and i have settings as screenshot below, status bar is missing, for have in normal settings i have to set monitor to 1 and later detach the additional monitor.
If i don't made this operation status bar is missing.
See screeshot below.
Maybe there is additional configuration to do ?
Thank you
lxpanel version 0.10.1-2
Can you add a swap usage?
I experience unexpected behaviour in the volume plugin wrt mouse scrolling (lxpanel-0.10.1). No matter which direction I scroll, it decreases the volume.
I have localised the issue to lines 797--800 in plugins/volumealsa/volumealsa.c
, and it stems from the incorrect assumption that a GdkEventScroll
that is neither GDK_SCROLL_UP
nor GDK_SCROLL_LEFT
must be either GDK_SCROLL_DOWN
or GDK_SCROLL_RIGHT
. However, my scroll wheel generates GDK_SCROLL_SMOOTH
, and in order to determine the direction one needs to consider delta_y
(see https://developer.gnome.org/gdk3/stable/gdk3-Events.html#gdk-event-get-scroll-deltas). I attach a crude approximation of a patch for the issue, that at least solves the problem for me.
Demonstration of the problem on Raspberry Pi
I'm using a Lenovo T14s, running archlinux with LXDE.
lxpanel does an awesome job, thank you very much for this excellent piece of software!
My only complaint right now is that the battery monitor behaves weirdly, namely:
Whenever the power is plugged or unplugged, I get a "Battery low" warning for a few moments, regardless of how full the battery is currently. This is a bit annoying, especially when you're on an irregular power supply (like, e.g., power outlets in public transport), because you'll get warnings every few seconds. This is dangerous because you'll start ignoring these warnings and miss them when they're actually important - this has happened to me before.
Looking through the code, I was trying to figure out whether there's a way to avoid this happening. I don't really know how this works exactly, but as far as I can see, the battery monitor just reads out whatever is in the ACPI provided files, which is fair.
I suppose the real issue is with acpi and/or the hardware not providing correct numbers in the moment of plugging in or out, and I'm not sure how much can be done about that.
One "workaround" however would be to reduce the frequency at which the battery monitor checks the input, so that short fluctuations are not picked up - and let's be real: we don't need battery updates more than every minute or so.
So please take this as a feature request to add an option to manually set / override the frequency at which the monitor updates itself - or, alternatively, to add a "grace period" to the battery notification such that the warning is only displayed if the battery is below threshold for a certain number of time (5 seconds or so), to suppress "fake" notifications due to momentary fluctuations.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.