hellosystem / menu Goto Github PK
View Code? Open in Web Editor NEWThis project forked from felixonmars/panda-topbar
Global menu bar written in Qt
This project forked from felixonmars/panda-topbar
Global menu bar written in Qt
Maybe we can find some existing library that can do it?
After updating Qt 5.14.2 to 5.15.0 menus do not work properly any more: It is no longer possible to click on a menu, hold the mouse pressed down while selecting a menu entry, and then select the menu entry by releasing the mouse over the chosen menu entry. Instead you now have to click on the chosen menu entry for the action to be executed.
Is this a known issue with Qt on FreeBSD @adriaandegroot?
Prevent menu from being displayed as ">>" if the font does not fit vertically:
This is happening e.g., if the font is too large (for example, because the proper UI font is not installed on the system). Instead, we want the text to still be centered in the menu bar (and cut off if needed).
This is how it should look:
From the foot of today's helloSystem/ISO#68 (comment):
… I'll take a look at this later. …
– and more generally, from the outset I was astonished to find the runner (currently DSBExec) not running when expected. There was brief discussion of this a few days ago … I can no longer find it (maybe it was in IRC?) but I assumed a general keyboard layout/map issue.
Since working around the main mapping issue, I see that an additional, more specific workaround is necessary:
https://nomadbsd.org/handbook/handbook.html#globalkeybindings and other precedents
helloSystem/ISO@76fa52d#diff-54b785d2d83f98fdc801bf23a2074a42ded323011d55b204073fc7905bae1ad1R320
https://github.com/helloSystem/docs/blob/main/user/components/preferences/keyboard.md
Is there an existing tray application (ideally written in PyQt5) similar to https://anaynayak.github.io/buildnotify/ but for managing wireless networks?
Unlike in other Qt applications that use QMenuBar (including the Falkon browser), the global menu is not working in Dooble. Is Dooble doing something actively to prevent the global menu from working?
Any ideas how to work around this?
https://blog.broulik.de/2016/10/global-menus-returning/
KDE introduces _KDE_NET_WM_APPMENU_OBJECT_PATH
and _KDE_NET_WM_APPMENU_SERVICE_NAME
with the result that with platform themes (including the default Qt one) which do not have those global menus don't work anymore.
Those of you familar with Wayland might notice that it uses global window IDs, which don’t exist in a Wayland world.
Is there a way to do without this? I would be fine with a solution that leaves Wayland broken, if we can get global menus to work with the default Qt Unix platform theme again.
E.g., when the user clicks on "Applications", the /Applications directory should be opened in the File Manager.
Lines 72 to 73 in cea9731
Classic Mac systems had Dock-like features built right into the global menu. This may be especially useful for people who would like to operate everything through Action Search, and on small displays where a Dock is not wanted.
Similar to multiXFinder:
I think we could bring over existing application/window management code from https://github.com/pandaos/panda-dock.
I would like to be able to close all windows using ⌘+W if ⌘+W is not already used by the application for another purpose (such as closing tabs, as e.g., Falkon does).
Hence, we need to first check the menu of the running application whether it is using ⌘+W, and only assign this shortcut to our "Close" menu entry if it does not.
https://askubuntu.com/a/1288592/25036 ▶ [HowTo] Enabling KDE global menu support in Mozilla Firefox and Thunderbird - Contributions / Tutorials - Manjaro Linux Forum (2020-10-01) essentially:
Re: https://askubuntu.com/questions/1288516/how-to-use-kde-global-menu-with-firefox#comment2187794_1288516 ("… good idea to keep the question open …") consider voting up https://askubuntu.com/a/1288825/25036 without expecting it to become an accepted answer. Via this answer:
– vote appropriately; maybe something there is (or will become) not specific to Plasma on Linux.
I'm trying to build Menu on my main production machine (Bedrock Linux) and here is what happens :
On an Oracle Linux stratum, which is my main one, the cmake works, but when I make it fails :
$ ~/src/Menu/build> LANG=C cmake ..
-- Configuring done
-- Generating done
-- Build files have been written to: /home/byjumperx4/src/Menu/build
$ ~/src/Menu/build> LANG=C make
[ 4%] Automatic MOC for target volume
[ 4%] Automatic MOC for target menubar
[ 6%] Automatic MOC for target statusnotifier
[ 9%] Automatic MOC for target datetime
[ 9%] Built target statusnotifier_autogen
[ 9%] Built target datetime_autogen
[ 9%] Built target menubar_autogen
[ 9%] Built target volume_autogen
[ 27%] Built target datetime
[ 27%] Built target volume
[ 47%] Built target statusnotifier
[ 52%] Building CXX object src/CMakeFiles/menubar.dir/appmenuwidget.cpp.o
[ 52%] Building CXX object src/CMakeFiles/menubar.dir/main.cpp.o
/home/byjumperx4/src/Menu/src/main.cpp: In member function 'virtual bool Application::notify(QObject*, QEvent*)':
/home/byjumperx4/src/Menu/src/main.cpp:36:16: error: invalid use of incomplete type 'class QDebug'
qDebug() << "probono: e.type():" << e->type();
^
In file included from /usr/include/qt5/QtCore/qglobal.h:1206,
from /usr/include/qt5/QtGui/qtguiglobal.h:43,
from /usr/include/qt5/QtWidgets/qtwidgetsglobal.h:43,
from /usr/include/qt5/QtWidgets/qframe.h:43,
from /usr/include/qt5/QtWidgets/QFrame:1,
from /home/byjumperx4/src/Menu/src/mainwindow.h:23,
from /home/byjumperx4/src/Menu/src/main.cpp:20:
/usr/include/qt5/QtCore/qlogging.h:57:7: note: forward declaration of 'class QDebug'
class QDebug;
^~~~~~
/home/byjumperx4/src/Menu/src/main.cpp:39:20: error: invalid use of incomplete type 'class QDebug'
qDebug() << "probono: QApplication::focusWidget()->objectName():" << QApplication::focusWidget()->objectName();
^
In file included from /usr/include/qt5/QtCore/qglobal.h:1206,
from /usr/include/qt5/QtGui/qtguiglobal.h:43,
from /usr/include/qt5/QtWidgets/qtwidgetsglobal.h:43,
from /usr/include/qt5/QtWidgets/qframe.h:43,
from /usr/include/qt5/QtWidgets/QFrame:1,
from /home/byjumperx4/src/Menu/src/mainwindow.h:23,
from /home/byjumperx4/src/Menu/src/main.cpp:20:
/usr/include/qt5/QtCore/qlogging.h:57:7: note: forward declaration of 'class QDebug'
class QDebug;
^~~~~~
/home/byjumperx4/src/Menu/src/main.cpp:40:20: error: invalid use of incomplete type 'class QDebug'
qDebug() << "probono: QApplication::focusWidget()->metaObject()->className():" << QApplication::focusWidget()->metaObject()->className();
^
In file included from /usr/include/qt5/QtCore/qglobal.h:1206,
from /usr/include/qt5/QtGui/qtguiglobal.h:43,
from /usr/include/qt5/QtWidgets/qtwidgetsglobal.h:43,
from /usr/include/qt5/QtWidgets/qframe.h:43,
from /usr/include/qt5/QtWidgets/QFrame:1,
from /home/byjumperx4/src/Menu/src/mainwindow.h:23,
from /home/byjumperx4/src/Menu/src/main.cpp:20:
/usr/include/qt5/QtCore/qlogging.h:57:7: note: forward declaration of 'class QDebug'
class QDebug;
^~~~~~
make[2]: *** [src/CMakeFiles/menubar.dir/build.make:72: src/CMakeFiles/menubar.dir/main.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/home/byjumperx4/src/Menu/src/appmenuwidget.cpp: In member function 'void AppMenuWidget::actionAbout()':
/home/byjumperx4/src/Menu/src/appmenuwidget.cpp:737:12: error: 'sha' was not declared in this scope
if(sha != "" && url != "" && build != "") {
^~~
/home/byjumperx4/src/Menu/src/appmenuwidget.cpp:737:12: note: suggested alternative: 'show'
if(sha != "" && url != "" && build != "") {
^~~
show
/home/byjumperx4/src/Menu/src/appmenuwidget.cpp:737:25: error: 'url' was not declared in this scope
if(sha != "" && url != "" && build != "") {
^~~
/home/byjumperx4/src/Menu/src/appmenuwidget.cpp:737:25: note: suggested alternative: 'QUrl'
if(sha != "" && url != "" && build != "") {
^~~
QUrl
/home/byjumperx4/src/Menu/src/appmenuwidget.cpp:737:38: error: 'build' was not declared in this scope
if(sha != "" && url != "" && build != "") {
^~~~~
make[2]: *** [src/CMakeFiles/menubar.dir/build.make:163: src/CMakeFiles/menubar.dir/appmenuwidget.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:87: src/CMakeFiles/menubar.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
[ble: exit 2]
$ ~/src/Menu/build>
When I try to build from an Arch Linux strata with the dependencies that are on the README it won't event cmake:
$ ~/src/Menu/build> LANG=C strat arch cmake ..
-- The C compiler identification is GNU 10.2.0
-- The CXX compiler identification is GNU 10.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working C compiler: /usr/sbin/cc
-- Check for working C compiler: /usr/sbin/cc - broken
CMake Error at /usr/share/cmake-3.19/Modules/CMakeTestCCompiler.cmake:66 (message):
The C compiler
"/usr/sbin/cc"
is not able to compile a simple test program.
It fails with the following output:
Change Dir: /home/byjumperx4/src/Menu/build/CMakeFiles/CMakeTmp
Run Build Command(s):/bedrock/cross/bin/gmake cmTC_46521/fast && /bedrock/cross/bin/gmake -f CMakeFiles/cmTC_46521.dir/build.make CMakeFiles/cmTC_46521.dir/build
gmake[1]: Entering directory '/home/byjumperx4/src/Menu/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_46521.dir/testCCompiler.c.o
/usr/sbin/cc -o CMakeFiles/cmTC_46521.dir/testCCompiler.c.o -c /home/byjumperx4/src/Menu/build/CMakeFiles/CMakeTmp/testCCompiler.c
gmake[1]: /usr/sbin/cc: Command not found
gmake[1]: *** [CMakeFiles/cmTC_46521.dir/build.make:85: CMakeFiles/cmTC_46521.dir/testCCompiler.c.o] Error 127
gmake[1]: Leaving directory '/home/byjumperx4/src/Menu/build/CMakeFiles/CMakeTmp'
gmake: *** [Makefile:140: cmTC_46521/fast] Error 2
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:3 (project)
-- Configuring incomplete, errors occurred!
See also "/home/byjumperx4/src/Menu/build/CMakeFiles/CMakeOutput.log".
See also "/home/byjumperx4/src/Menu/build/CMakeFiles/CMakeError.log".
[ble: exit 1]
$ ~/src/Menu/build>
For Gtk applications, Action Search does not contain actions from submenus (e.g., in GIMP the filters are missing)
For Qt applications, Action Search does contain actions from submenus but not the full path is written.
Compare our Action Search (in the global menu) to the Action Search in Scribus (below):
Executing the menu a second time when an instance is already running should always set the Search text field active.
It does not do this. Sometimes one needs to execute it multiple times until the already-running menubar sets the Search text field active.
This seemingly does not do its job:
Lines 65 to 70 in b461aed
Why?
Make the menu and its plug-ins translatable via Weblate on https://hosted.weblate.org/projects/hellosystem/menu/.
I have started working toward this end roughly along https://doc.qt.io/qt-5/qtlinguist-hellotr-example.html but it seems not to be working correctly yet. (Unfortunately the example does not describe CMakeLists.txt
.)
Most likely I made some mistakes in 04c4b44?
Any help appreciated.
At some point, we may have e.g., a SQLite database that contains all applications known to the system, their versions, which MIME types they can handle, etc.
It will not be based on the XDG standards, since that isn't really optimized for application bundles such as .AppDir
, .app
, .AppImage
, etc.
Once we have that database, we can make it searchable from the existing search field too, so that it can also act as an application launcher.
It seems to do "something" regarding the global menu but then it does not really work, and I don't know why yet:
loading "/usr/local/lib/gtk-3.0/modules/libappmenu-gtk-module.so"
/usr/local/lib/gtk-3.0/modules/libappmenu-gtk-module.so valid_hash_sysv 1 valid_hash_gnu 1 dynsymcount 122
0x8107b0000 .. 0x8107bafff: /usr/local/lib/gtk-3.0/modules/libappmenu-gtk-module.so
Searching for "libappmenu-gtk3-parser.so.0"
lm_find("/usr/local/lib/gtk-3.0/modules/libappmenu-gtk-module.so", "/usr/local/lib")
lmp_find("/usr/local/lib/gtk-3.0/modules/libappmenu-gtk-module.so")
Trying "/usr/local/lib/libappmenu-gtk3-parser.so.0"
Opened "/usr/local/lib/libappmenu-gtk3-parser.so.0", fd 33
loading "/usr/local/lib/libappmenu-gtk3-parser.so.0"
/usr/local/lib/libappmenu-gtk3-parser.so.0 valid_hash_sysv 1 valid_hash_gnu 1 dynsymcount 170
0x8107bb000 .. 0x8107cefff: /usr/local/lib/libappmenu-gtk3-parser.so.0
relocating "/usr/local/lib/gtk-3.0/modules/libappmenu-gtk-module.so"
relocating "/usr/local/lib/libappmenu-gtk3-parser.so.0"
calling init function for /usr/local/lib/libappmenu-gtk3-parser.so.0 at 0x8107cb4e8
calling init function for /usr/local/lib/gtk-3.0/modules/libappmenu-gtk-module.so at 0x8107b6b38
"g_getenv" in "libappmenu-gtk-module.so" ==> 0x807c2ff30 in "libglib-2.0.so.0"
"gdk_display_get_default" in "libappmenu-gtk-module.so" ==> 0x80894c5c0 in "libgdk-3.so.0"
"gdk_x11_display_get_type" in "libappmenu-gtk-module.so" ==> 0x80897a4b0 in "libgdk-3.so.0"
"g_ascii_strcasecmp" in "libappmenu-gtk-module.so" ==> 0x807c69090 in "libglib-2.0.so.0"
"g_get_prgname" in "libappmenu-gtk-module.so" ==> 0x807c82b30 in "libglib-2.0.so.0"
"g_strcmp0" in "libappmenu-gtk-module.so" ==> 0x807c6da40 in "libglib-2.0.so.0"
"g_settings_new" in "libappmenu-gtk-module.so" ==> 0x807e77640 in "libgio-2.0.so.0"
"g_settings_get_value" in "libappmenu-gtk-module.so" ==> 0x807e77ae0 in "libgio-2.0.so.0"
"g_variant_type_checked_" in "libappmenu-gtk-module.so" ==> 0x807c95a00 in "libglib-2.0.so.0"
"g_variant_is_of_type" in "libappmenu-gtk-module.so" ==> 0x807c84730 in "libglib-2.0.so.0"
"g_main_context_push_thread_default" in "libdconfsettings.so" ==> 0x807c43dd0 in "libglib-2.0.so.0""g_variant_iter_init" in "libappmenu-gtk-module.so" ==> 0x807c85eb0 in "libglib-2.0.so.0"
reloc_jmpslot: *0x8111cd3f8 = 0x807c43dd0"g_variant_iter_loop" in "libappmenu-gtk-module.so" ==> 0x807c8bfe0 in "libglib-2.0.so.0"
"g_object_unref" in "libappmenu-gtk-module.so" ==> 0x807cd0e60 in "libgobject-2.0.so.0"
"g_variant_unref" in "libappmenu-gtk-module.so" ==> 0x807c8d270 in "libglib-2.0.so.0"
"g_bus_get_sync" in "libappmenu-gtk-module.so" ==> 0x807e8b690 in "libgio-2.0.so.0"
"g_dbus_connection_call_sync" in "libappmenu-gtk-module.so" ==> 0x807e8abd0 in "libgio-2.0.so.0"
"g_variant_get_child_value" in "libappmenu-gtk-module.so" ==> 0x807c8d900 in "libglib-2.0.so.0"
"g_variant_get" in "libappmenu-gtk-module.so" ==> 0x807c8b430 in "libglib-2.0.so.0"
"g_str_equal" in "libappmenu-gtk-module.so" ==> 0x807c35d80 in "libglib-2.0.so.0"
"g_variant_iter_free" in "libappmenu-gtk-module.so" ==> 0x807c88940 in "libglib-2.0.so.0"
"gtk_settings_get_default" in "libappmenu-gtk-module.so" ==> 0x80906a690 in "libgtk-3.so.0"
"gtk_settings_get_type" in "libappmenu-gtk-module.so" ==> 0x809069ec0 in "libgtk-3.so.0"
"g_object_class_find_property" in "libappmenu-gtk-module.so" ==> 0x807cd08b0 in "libgobject-2.0.so.0"
"g_type_check_instance_is_fundamentally_a" in "libappmenu-gtk-module.so" ==> 0x807ce9300 in "libgobject-2.0.so.0"
"g_settings_get_boolean" in "libappmenu-gtk-module.so" ==> 0x807e78f40 in "libgio-2.0.so.0"
"g_object_set" in "libappmenu-gtk-module.so" ==> 0x807cd33e0 in "libgobject-2.0.so.0"
"g_bus_watch_name" in "libappmenu-gtk-module.so" ==> 0x807e99180 in "libgio-2.0.so.0"
"unity_gtk_menu_shell_set_debug" in "libappmenu-gtk-module.so" ==> 0x8107c7100 in "libappmenu-gtk3-parser.so.0"
"unity_gtk_action_group_set_debug" in "libappmenu-gtk-module.so" ==> 0x8107c35f0 in "libappmenu-gtk3-parser.so.0""g_private_set" in "libgio-2.0.so.0" ==> 0x807c9be30 in "libglib-2.0.so.0"
"gtk_widget_get_type" in "libappmenu-gtk-module.so" ==> 0x80912f1b0 in "libgtk-3.so.0"
"g_type_class_ref" in "libappmenu-gtk-module.so" ==> 0x807ce4a30 in "libgobject-2.0.so.0"
"gtk_application_window_get_type" in "libappmenu-gtk-module.so" ==> 0x808e8e130 in "libgtk-3.so.0"
"gtk_window_get_type" in "libappmenu-gtk-module.so" ==> 0x809148c20 in "libgtk-3.so.0"
"g_type_children" in "libappmenu-gtk-module.so" ==> 0x807ce8990 in "libgobject-2.0.so.0"
"g_free" in "libappmenu-gtk-module.so" ==> 0x807c4ec20 in "libglib-2.0.so.0"
"gtk_menu_bar_get_type" in "libappmenu-gtk-module.so" ==> 0x808fdf830 in "libgtk-3.so.0"
"gtk_widget_get_screen" in "libappmenu-gtk-module.so" ==> 0x8091373e0 in "libgtk-3.so.0"
"gdk_screen_get_rgba_visual" in "libappmenu-gtk-module.so" ==> 0x80895bbd0 in "libgdk-3.so.0"
"g_type_check_instance_cast" in "libappmenu-gtk-module.so" ==> 0x807ce9410 in "libgobject-2.0.so.0"
"gtk_window_get_type_hint" in "libappmenu-gtk-module.so" ==> 0x80914b7c0 in "libgtk-3.so.0"
"gdk_wayland_display_get_type" in "libappmenu-gtk-module.so" ==> 0x8089adc10 in "libgdk-3.so.0"
"g_type_check_instance_is_a" in "libappmenu-gtk-module.so" ==> 0x807ce9180 in "libgobject-2.0.so.0"
"g_quark_from_static_string" in "libappmenu-gtk-module.so" ==> 0x807c58100 in "libglib-2.0.so.0"
"g_object_get_qdata" in "libappmenu-gtk-module.so" ==> 0x807cd4940 in "libgobject-2.0.so.0"
"g_strdup_printf" in "libappmenu-gtk-module.so" ==> 0x807c68360 in "libglib-2.0.so.0"
"gtk_widget_get_window" in "libappmenu-gtk-module.so" ==> 0x809141090 in "libgtk-3.so.0"
"gdk_window_get_display" in "libappmenu-gtk-module.so" ==> 0x80895f630 in "libgdk-3.so.0"
"gdk_x11_display_get_xdisplay" in "libappmenu-gtk-module.so" ==> 0x80897bb50 in "libgdk-3.so.0"
"gdk_x11_window_get_xid" in "libappmenu-gtk-module.so" ==> 0x808993450 in "libgdk-3.so.0"
"gdk_x11_get_xatom_by_name_for_display" in "libappmenu-gtk-module.so" ==> 0x80898a890 in "libgdk-3.so.0"
"XGetWindowProperty" in "libappmenu-gtk-module.so" ==> 0x807f8d340 in "libX11.so.6"
"g_slice_alloc" in "libappmenu-gtk-module.so" ==> 0x807c65930 in "libglib-2.0.so.0"
"g_menu_new" in "libappmenu-gtk-module.so" ==> 0x807e69af0 in "libgio-2.0.so.0"
"g_action_group_get_type" in "libappmenu-gtk-module.so" ==> 0x807e61d10 in "libgio-2.0.so.0"
"unity_gtk_action_group_new" in "libappmenu-gtk-module.so" ==> 0x8107c2170 in "libappmenu-gtk3-parser.so.0"
"g_once_init_enter" in "libappmenu-gtk3-parser.so.0" ==> 0x807c72070 in "libglib-2.0.so.0"
"g_intern_static_string" in "libappmenu-gtk3-parser.so.0" ==> 0x807c58270 in "libglib-2.0.so.0"
"g_type_register_static_simple" in "libappmenu-gtk3-parser.so.0" ==> 0x807ce6660 in "libgobject-2.0.so.0"
"g_action_group_get_type" in "libappmenu-gtk3-parser.so.0" ==> 0x807e61d10 in "libgio-2.0.so.0"
"g_type_add_interface_static" in "libappmenu-gtk3-parser.so.0" ==> 0x807ce7000 in "libgobject-2.0.so.0"
"g_once_init_leave" in "libappmenu-gtk3-parser.so.0" ==> 0x807c72120 in "libglib-2.0.so.0"
"g_object_new" in "libappmenu-gtk3-parser.so.0" ==> 0x807cd17a0 in "libgobject-2.0.so.0"
"g_type_class_peek_parent" in "libappmenu-gtk3-parser.so.0" ==> 0x807ce7f60 in "libgobject-2.0.so.0"
"g_type_check_class_cast" in "libappmenu-gtk3-parser.so.0" ==> 0x807ce9710 in "libgobject-2.0.so.0"
"g_hash_table_new_full" in "libappmenu-gtk3-parser.so.0" ==> 0x807c33580 in "libglib-2.0.so.0"
"g_menu_model_get_type" in "libappmenu-gtk-module.so" ==> 0x807e68740 in "libgio-2.0.so.0"
"g_dbus_connection_export_menu_model" in "libappmenu-gtk-module.so" ==> 0x807e6b350 in "libgio-2.0.so.0"
"g_dbus_connection_export_action_group" in "libappmenu-gtk-module.so" ==> 0x807e642f0 in "libgio-2.0.so.0"
"g_dbus_connection_get_unique_name" in "libappmenu-gtk-module.so" ==> 0x807e884d0 in "libgio-2.0.so.0"
"g_utf8_strlen" in "libappmenu-gtk-module.so" ==> 0x807c7ad50 in "libglib-2.0.so.0"
"XChangeProperty" in "libappmenu-gtk-module.so" ==> 0x807f83530 in "libX11.so.6"
"g_object_set_qdata_full" in "libappmenu-gtk-module.so" ==> 0x807cd4b50 in "libgobject-2.0.so.0"
"g_log" in "libappmenu-gtk-module.so" ==> 0x807c4f520 in "libglib-2.0.so.0"
Searching for "libdbusmenu-glib.so"
relocating "/usr/local/lib/libXau.so.6" Trying "/usr/local/share/code-oss/libdbusmenu-glib.so"
relocating "/usr/local/lib/libXdmcp.so.6" Failed to open "/usr/local/share/code-oss/libdbusmenu-glib.so": No such file or directory
search_library_pathfds('libdbusmenu-glib.so', '(null)', fdp)
Trying "/lib/libdbusmenu-glib.so"
Failed to open "/lib/libdbusmenu-glib.so": No such file or directory
Trying "/usr/lib/libdbusmenu-glib.so"
Failed to open "/usr/lib/libdbusmenu-glib.so": No such file or directory
Trying "/usr/lib/compat/libdbusmenu-glib.so"
Failed to open "/usr/lib/compat/libdbusmenu-glib.so": No such file or directory
Trying "/usr/local/lib/libdbusmenu-glib.so"
Opened "/usr/local/lib/libdbusmenu-glib.so", fd 58
loading "/usr/local/lib/libdbusmenu-glib.so"
/usr/local/lib/libdbusmenu-glib.so valid_hash_sysv 1 valid_hash_gnu 1 dynsymcount 278relocating "/usr/local/lib/libwayland-client.so.0"
0x818169000 .. 0x818189fff: /usr/local/lib/libdbusmenu-glib.so
relocating "/usr/local/lib/libdbusmenu-glib.so"
calling init function for /usr/local/lib/libdbusmenu-glib.so at 0x818185458
"g_once_init_enter" in "libdbusmenu-glib.so" ==> 0x807c72070 in "libglib-2.0.so.0"
"g_intern_static_string" in "libdbusmenu-glib.so" ==> 0x807c58270 in "libglib-2.0.so.0"
"g_type_register_static_simple" in "libdbusmenu-glib.so" ==> 0x807ce6660 in "libgobject-2.0.so.0"
"g_once_init_leave" in "libdbusmenu-glib.so" ==> 0x807c72120 in "libglib-2.0.so.0"
"g_object_new" in "libdbusmenu-glib.so" ==> 0x807cd17a0 in "libgobject-2.0.so.0"
"g_type_class_peek_parent" in "libdbusmenu-glib.so" ==> 0x807ce7f60 in "libgobject-2.0.so.0"
"g_type_check_class_cast" in "libdbusmenu-glib.so" ==> 0x807ce9710 in "libgobject-2.0.so.0"
"g_type_class_add_private" in "libdbusmenu-glib.so" ==> 0x807cea4b0 in "libgobject-2.0.so.0"
"g_signal_new" in "libdbusmenu-glib.so" ==> 0x807cdc090 in "libgobject-2.0.so.0"
"g_param_spec_string" in "libdbusmenu-glib.so" ==> 0x807cda850 in "libgobject-2.0.so.0"
"g_object_class_install_property" in "libdbusmenu-glib.so" ==> 0x807cd0370 in "libgobject-2.0.so.0"
"dbusmenu_menuitem_get_type" in "libdbusmenu-glib.so" ==> 0x818175c90 in "libdbusmenu-glib.so"
"g_param_spec_object" in "libdbusmenu-glib.so" ==> 0x807cdaaf0 in "libgobject-2.0.so.0"
"g_param_spec_uint" in "libdbusmenu-glib.so" ==> 0x807cda2c0 in "libgobject-2.0.so.0"
"dbusmenu_text_direction_get_type" in "libdbusmenu-glib.so" ==> 0x818175990 in "libdbusmenu-glib.so"
"g_enum_register_static" in "libdbusmenu-glib.so" ==> 0x807ccd600 in "libgobject-2.0.so.0"
"g_param_spec_enum" in "libdbusmenu-glib.so" ==> 0x807cda580 in "libgobject-2.0.so.0"
"dbusmenu_status_get_type" in "libdbusmenu-glib.so" ==> 0x818175b10 in "libdbusmenu-glib.so"
"g_dbus_node_info_new_for_xml" in "libdbusmenu-glib.so" ==> 0x807ea22b0 in "libgio-2.0.so.0"
"g_dbus_node_info_lookup_interface" in "libdbusmenu-glib.so" ==> 0x807ea3ca0 in "libgio-2.0.so.0"
"g_type_instance_get_private" in "libdbusmenu-glib.so" ==> 0x807ceaa40 in "libgobject-2.0.so.0"
"g_type_check_instance_cast" in "libdbusmenu-glib.so" ==> 0x807ce9410 in "libgobject-2.0.so.0"
"g_hash_table_new_full" in "libdbusmenu-glib.so" ==> 0x807c33580 in "libglib-2.0.so.0"
"g_getenv" in "libdbusmenu-glib.so" ==> 0x807c2ff30 in "libglib-2.0.so.0"
"g_dpgettext" in "libdbusmenu-glib.so" ==> 0x807c331c0 in "libglib-2.0.so.0"
"g_strcmp0" in "libdbusmenu-glib.so" ==> 0x807c6da40 in "libglib-2.0.so.0"
"g_value_dup_string" in "libdbusmenu-glib.so" ==> 0x807cf1c80 in "libgobject-2.0.so.0"
"g_cancellable_new" in "libdbusmenu-glib.so" ==> 0x807dceb60 in "libgio-2.0.so.0"
"g_object_ref" in "libdbusmenu-glib.so" ==> 0x807cd0d60 in "libgobject-2.0.so.0"
"g_bus_get" in "libdbusmenu-glib.so" ==> 0x807e8b840 in "libgio-2.0.so.0"
"g_param_spec_int" in "libdbusmenu-glib.so" ==> 0x807cda240 in "libgobject-2.0.so.0"
"g_value_type_transformable" in "libdbusmenu-glib.so" ==> 0x807cee410 in "libgobject-2.0.so.0"
"g_value_register_transform_func" in "libdbusmenu-glib.so" ==> 0x807cee160 in "libgobject-2.0.so.0"
"dbusmenu_defaults_ref_default" in "libdbusmenu-glib.so" ==> 0x818175120 in "libdbusmenu-glib.so"
"g_variant_new_boolean" in "libdbusmenu-glib.so" ==> 0x807c84630 in "libglib-2.0.so.0"
"dbusmenu_defaults_default_set" in "libdbusmenu-glib.so" ==> 0x818175200 in "libdbusmenu-glib.so"
"g_hash_table_lookup" in "libdbusmenu-glib.so" ==> 0x807c34280 in "libglib-2.0.so.0"
"g_strdup" in "libdbusmenu-glib.so" ==> 0x807c68190 in "libglib-2.0.so.0"
"g_malloc0" in "libdbusmenu-glib.so" ==> 0x807c4eb60 in "libglib-2.0.so.0"
"g_variant_type_copy" in "libdbusmenu-glib.so" ==> 0x807c957a0 in "libglib-2.0.so.0"
"g_variant_ref_sink" in "libdbusmenu-glib.so" ==> 0x807c8d410 in "libglib-2.0.so.0"
"g_hash_table_insert" in "libdbusmenu-glib.so" ==> 0x807c345d0 in "libglib-2.0.so.0"
"g_hash_table_replace" in "libdbusmenu-glib.so" ==> 0x807c34750 in "libglib-2.0.so.0"
"g_dgettext" in "libdbusmenu-glib.so" ==> 0x807c33100 in "libglib-2.0.so.0"
"g_variant_new_string" in "libdbusmenu-glib.so" ==> 0x807c864d0 in "libglib-2.0.so.0"
"g_variant_type_checked_" in "libdbusmenu-glib.so" ==> 0x807c95a00 in "libglib-2.0.so.0"
"g_object_add_weak_pointer" in "libdbusmenu-glib.so" ==> 0x807cd4450 in "libgobject-2.0.so.0"
"g_value_get_int" in "libdbusmenu-glib.so" ==> 0x807cf14f0 in "libgobject-2.0.so.0"
"dbusmenu_menuitem_property_set_variant" in "libdbusmenu-glib.so" ==> 0x8181778e0 in "libdbusmenu-glib.so"
"g_utf8_validate" in "libdbusmenu-glib.so" ==> 0x807c7d0b0 in "libglib-2.0.so.0"
"dbusmenu_defaults_default_get_type" in "libdbusmenu-glib.so" ==> 0x818175540 in "libdbusmenu-glib.so"
"g_variant_is_of_type" in "libdbusmenu-glib.so" ==> 0x807c84730 in "libglib-2.0.so.0"
"dbusmenu_defaults_default_get" in "libdbusmenu-glib.so" ==> 0x818175460 in "libdbusmenu-glib.so"
"g_variant_equal" in "libdbusmenu-glib.so" ==> 0x807c88420 in "libglib-2.0.so.0"
"g_hash_table_lookup_extended" in "libdbusmenu-glib.so" ==> 0x807c343f0 in "libglib-2.0.so.0"
"g_signal_emit" in "libdbusmenu-glib.so" ==> 0x807ce2a90 in "libgobject-2.0.so.0"
"g_variant_new" in "libdbusmenu-glib.so" ==> 0x807c8a9d0 in "libglib-2.0.so.0"
"g_variant_unref" in "libdbusmenu-glib.so" ==> 0x807c8d270 in "libglib-2.0.so.0"
"g_list_find" in "libdbusmenu-glib.so" ==> 0x807c42c80 in "libglib-2.0.so.0"
"dbusmenu_menuitem_set_parent" in "libdbusmenu-glib.so" ==> 0x818176930 in "libdbusmenu-glib.so"
"dbusmenu_menuitem_property_exist" in "libdbusmenu-glib.so" ==> 0x818176aa0 in "libdbusmenu-glib.so"
"g_list_append" in "libdbusmenu-glib.so" ==> 0x807c42330 in "libglib-2.0.so.0"
"g_list_length" in "libdbusmenu-glib.so" ==> 0x807c42db0 in "libglib-2.0.so.0"
"g_value_init" in "libdbusmenu-glib.so" ==> 0x807ced8a0 in "libgobject-2.0.so.0"
"g_value_set_object" in "libdbusmenu-glib.so" ==> 0x807cd4fa0 in "libgobject-2.0.so.0"
"g_object_set_property" in "libdbusmenu-glib.so" ==> 0x807cd35c0 in "libgobject-2.0.so.0"
"g_value_get_object" in "libdbusmenu-glib.so" ==> 0x807cd5160 in "libgobject-2.0.so.0"
"dbusmenu_menuitem_get_id" in "libdbusmenu-glib.so" ==> 0x818175dd0 in "libdbusmenu-glib.so"
"g_object_get_property" in "libdbusmenu-glib.so" ==> 0x807cd3610 in "libgobject-2.0.so.0"
"dbusmenu_menuitem_get_root" in "libdbusmenu-glib.so" ==> 0x8181777b0 in "libdbusmenu-glib.so"
"g_value_set_int" in "libdbusmenu-glib.so" ==> 0x807cf14a0 in "libgobject-2.0.so.0"
"dbusmenu_menuitem_get_children" in "libdbusmenu-glib.so" ==> 0x8181760d0 in "libdbusmenu-glib.so"
"dbusmenu_menuitem_set_root" in "libdbusmenu-glib.so" ==> 0x818178600 in "libdbusmenu-glib.so"
"dbusmenu_menuitem_foreach" in "libdbusmenu-glib.so" ==> 0x818178970 in "libdbusmenu-glib.so"
"g_signal_connect_data" in "libdbusmenu-glib.so" ==> 0x807cdf190 in "libgobject-2.0.so.0"
"g_list_foreach" in "libdbusmenu-glib.so" ==> 0x807c422f0 in "libglib-2.0.so.0"
"dbusmenu_menuitem_properties_list" in "libdbusmenu-glib.so" ==> 0x818178150 in "libdbusmenu-glib.so"
"g_hash_table_get_keys" in "libdbusmenu-glib.so" ==> 0x807c35b90 in "libglib-2.0.so.0"
"dbusmenu_menuitem_property_get_variant" in "libdbusmenu-glib.so" ==> 0x818177dd0 in "libdbusmenu-glib.so"
"g_array_new" in "libdbusmenu-glib.so" ==> 0x807c0fce0 in "libglib-2.0.so.0"
"g_array_append_vals" in "libdbusmenu-glib.so" ==> 0x807c10100 in "libglib-2.0.so.0"
"dbusmenu_menuitem_property_is_default" in "libdbusmenu-glib.so" ==> 0x818178df0 in "libdbusmenu-glib.so"
"g_idle_add" in "libdbusmenu-glib.so" ==> 0x807c492d0 in "libglib-2.0.so.0"
"g_list_free" in "libdbusmenu-glib.so" ==> 0x807c42260 in "libglib-2.0.so.0"
"g_object_unref" in "libdbusmenu-glib.so" ==> 0x807cd0e60 in "libgobject-2.0.so.0"
"g_signal_handlers_disconnect_matched" in "libdbusmenu-glib.so" ==> 0x807ce0790 in "libgobject-2.0.so.0" Failed to open "/usr/local/share/code-oss/libcxxrt.so.1": No such file or directory
/lib/libcxxrt.so.1 valid_hash_sysv 1 valid_hash_gnu 1 dynsymcount 374"g_hash_table_remove" in "libdbusmenu-glib.so" ==> 0x807c34ba0 in "libglib-2.0.so.0"
"g_bus_get_finish" in "libdbusmenu-glib.so" ==> 0x807e8ba00 in "libgio-2.0.so.0"
"g_dbus_connection_signal_subscribe" in "libdbusmenu-glib.so" ==> 0x807e889b0 in "libgio-2.0.so.0"
lm_find("/usr/local/lib/libGL.so.1", "/usr/local/lib")"g_dbus_connection_register_object" in "libdbusmenu-glib.so" ==> 0x807e89510 in "libgio-2.0.so.0"
"g_dbus_connection_emit_signal" in "libdbusmenu-glib.so" ==> 0x807e8a360 in "libgio-2.0.so.0"
"dbusmenu_menuitem_exposed" in "libdbusmenu-glib.so" ==> 0x818178ed0 in "libdbusmenu-glib.so"lmp_find("$DEFAULT$")
"g_variant_parse" in "libdbusmenu-glib.so" ==> 0x807c8def0 in "libglib-2.0.so.0"
Failed to open "/lib/libxcb-dri3.so.0": No such file or directory"g_free" in "libdbusmenu-glib.so" ==> 0x807c4ec20 in "libglib-2.0.so.0"
lmp_find("/usr/local/lib/libGL.so.1")"g_object_remove_weak_pointer" in "libdbusmenu-glib.so" ==> 0x807cd44c0 in "libgobject-2.0.so.0"
"g_hash_table_destroy" in "libdbusmenu-glib.so" ==> 0x807c341d0 in "libglib-2.0.so.0"
"g_array_free" in "libdbusmenu-glib.so" ==> 0x807c10020 in "libglib-2.0.so.0"lmp_find("$DEFAULT$")
"g_dbus_connection_unregister_object" in "libdbusmenu-glib.so" ==> 0x807e89890 in "libgio-2.0.so.0"
"g_dbus_connection_signal_unsubscribe" in "libdbusmenu-glib.so" ==> 0x807e89050 in "libgio-2.0.so.0"
"g_cancellable_is_cancelled" in "libdbusmenu-glib.so" ==> 0x807dcedb0 in "libgio-2.0.so.0"
"g_cancellable_cancel" in "libdbusmenu-glib.so" ==> 0x807dcf0c0 in "libgio-2.0.so.0"
"g_variant_type_free" in "libdbusmenu-glib.so" ==> 0x807c95790 in "libglib-2.0.so.0"
calling fini function for /usr/local/lib/libdbusmenu-glib.so at 0x81818546c
"__cxa_finalize" in "libdbusmenu-glib.so" ==> 0x80bea3040 in "libc.so.7"
calling fini function for /usr/local/lib/gtk-3.0/modules/libappmenu-gtk-module.so at 0x8107b6b4c
"__cxa_finalize" in "libappmenu-gtk-module.so" ==> 0x80bea3040 in "libc.so.7"
calling fini function for /usr/local/lib/libappmenu-gtk3-parser.so.0 at 0x8107cb4fc
"__cxa_finalize" in "libappmenu-gtk3-parser.so.0" ==> 0x80bea3040 in "libc.so.7"
Related to #29?
Reference: helloSystem/hello#116
RIght now we display various applications in the menu. Wouldn't it be nice if we could also show for each application's menu entry a submenu with services announced on the network that can be used with this application? E.g., the Printer application would show all printers in a submenu, the Terminal application would show all servers reachable on the LAN via SSH in a submenu, the Browser appliaction would show all websites on the LAN in a submenu, and so on.
This should also automatically make the network services available from Action Search...
and remove the need for a separate Zeroconf chooser utility like the one we currently have:
Instead, the "Chromium" menu entry would get submenus for http://Asterisk.local.:8088
etc.
We could then also type aster...
into the Action Search box and would get a result that would open http://Asterisk.local.:8088
with Chrome (and each other browser installed):
For this to work, each application would have to specify which Zeroconf services it can handle and for how to invoke the application using the arguments provided by Zeroconf.
In the old system 7 the running programs were listed in a menu item at the far right which when clicked displayed a list of all running programs.
The dock takes too much space and the titles of the running programs are hidden unless the user hovers the cursor over the item.
Like the picture in System 7.0 section here: https://guidebookgallery.org/screenshots/running
I propose to improve this design by having an option to always display this menu item opened as a column at the right most of the screen (to use the right scree border limit).
And when set to always be on screen it would become like BeOs here: https://guidebookgallery.org/screenshots/running
From the existing search field, also hook into search results of locally indexed files.
Blocked by:
helloSystem/hello#33
In, for example, the Shut Down dialogue:
It does not, because the first Shift-Tab reaches the Shut Down button.
For predictability and consistency, it should be possible to begin navigating away from a default button with a single keystroke.
Compare with, for example, behaviours after keyboard-initiated presentation of a leaving dialogue with x11/sddm:
Style Action Search completer popup QListView more like QMenu.
Especially
Unfortunately I could not find any way to fix this.
The System menu now gets populated based on the filesystem structure on disk.
E.g., you put an app into /Applications
and it will show up in the menu.
Currently one has to restart the menu for changes to take effect.
Hence we should find a way to automatically update the System menu using QFileSystemWatcher whenever something changes in the directories that are put in the System menu:
Plasma 5.19.4 has introduced a bug in the Plasma global menu widget itself, which will not show the global menu for GTK applications unless you switch to a KDE/Qt application first and then back to the GTK application.
The bug has been reported to the KDE developers upstream, so they know about it.
Test case: Inkscape.
Are we suffering from the same bug?
Has it since been resolved in KDE Plasma?
Put "~/Documents" into a menu with submenus, thus making it search-accessible.
hello-0.3.0_0C160-FreeBSD-12.1-amd64.iso
Expected:
Actual result:
Workaround:
– key Left should move the vertical line one step to the left, to between the characters s and t
Make it translatable like https://github.com/helloSystem/Filer/tree/master/filer/translations (any volunterrs?)
Then set up Weblate like https://hosted.weblate.org/projects/hellosystem/filer/ (me)
Add Action Search from https://github.com/aoloe/scribus-plugin-actionSearch to make the global menu searchable for all applications that can work with the global menu.
Similar to this:
And this:
E.g., combine it with something like DSBExec (the thing that coms up when you press Alt-F2) for application launcher functionality:
This way, the same search box that we are currently using for the Action Search ("Search in Menu") could also be used as an application launcher.
Is this possible in principle? Wdyt @antony-jr?
Automatically select the first search result once there is only one result left, so that one can just press Enter.
How it is right now:
How it should be:
https://stackoverflow.com/q/17782277 did not work for me so far:
Lines 177 to 180 in aaf8427
Cosmetic bug.
In this screenshot, the menu was too narrow for the display to the left:
https://bsd-hardware.info/?probe=60d9540d35#Logs
Philips 27P12 at one of two DisplayPort ports:
When using a secondary display in portrait the menu doesn't fit.
But if I disable the primary display to use only one display in portrait and restart the menu it fills the screen's top correctly.
Expected result on the portrait display when using 2 displays:
Actual result:
Steps to reproduce:
From KDE Plasma Desktop + Vertical Panel + Global Menu (2019-03-29):
(GIMP AppImage version for GNU/Linux)
(Inkscape AppImage version for GNU/Linux)
For this keyword: helloSystem/Filer#16
Traditionally, the Mac has shown he menu bar only on the main display.
Recent versions seem to show the same menu bar on all desktops.
Please, can we have an option for the menu to be hidden?
To appear on demand when the user points at the top of the screen.
Thanks
I used the Search menu countless times, and looked for a cursor, but did not see it.
I do have a cursor here and it even blinks...
Here, on at least one real computer: no cursor.
On computers where the cursor is visible: it's barely visible (if I hadn't been told of its existence, I would not have seen it). YMMV, if you're younger with better eyesight and so on.
White text input on a vivid blue background is not great. I reckon, if this can be fixed – to have black text on a white (or off-white) background – then a cursor, when it is visible, will be more clearly visible.
user@FreeBSD$ mixer -s pcm 100
Setting the mixer pcm from 100:100 to 100:100.
user@FreeBSD$ mixer pcm 100
Setting the mixer pcm from 100:100 to 100:100.
GUI: DSBMixer
Chrome does not show its menus in the global menu bar. Why?
In Chrome 12 https://www.omgubuntu.co.uk/2011/06/chrome-12-brings-unity-global-menu-support-and-heres-how-to-enable-it they added:
"Experimental GNOME menu bar support."
We need to figure out what happened to it and how to make it work.
Make it possbile to invoke Action Search by a command.
E.g., Ctrl-Shift-/
https://dglava.github.io/en/orcsome.html
That should be doable with Menu natively, shouldn't it?
But we should keep the distinction between a window that is in fullscreen vs. a window that is merely maximized.
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.