GithubHelp home page GithubHelp logo

dkondor / cairo-dock-core Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cairo-dock/cairo-dock-core

8.0 5.0 3.0 167.88 MB

License: GNU General Public License v3.0

C 94.33% Shell 2.77% Python 0.87% CMake 1.62% Roff 0.17% Vala 0.04% C++ 0.20%

cairo-dock-core's Introduction

Cairo-Dock

Cairo-Dock is a pretty, light and convenient interface to your desktop, able to replace advantageously your system panel! It features multi-docks, taskbar, launchers and a lot of useful applets. Applets can be detached from the dock to act as desktop widgets. Numerous ready-to-use themes are available in 1 click, and can be easily customized at your convenience. It can use hardware acceleration to be very fast and low on CPU.

Preview Other screenshots are available at Glx-Dock.org.

This project is split in 3 parts:

The Cairo-Dock-Session project aims to provide an easy way to install a session that is desktop agnostic and uses Cairo-Dock as a Shell (the main interface).

Installation

Please see our Wiki at Glx-Dock.org for an excellent installation guide.

Tarballs of the sources are available at: https://launchpad.net/cairo-dock-core and https://launchpad.net/cairo-dock-plug-ins

Binary packages of the development version for Ubuntu 22.04 and 24.04 are available here : https://launchpad.net/~cairo-dock-team/+archive/ubuntu/weekly

Additional information specific to compiling Cairo-Dock to run under Wayland is available here.

Need some help?

See our wiki! http://www.glx-dock.org/ww_page.php

You can find: how to launch the dock at startup, how to customise it, how to resolve some recurrent problems (black background, messages at startup, etc.), how to help us, who we are, etc. A useful tutorial is also available to help you customize your dock: http://www.glx-dock.org/ww_page.php?p=Tutorial-Customisation&lang=en

If you have other questions not solved on our wiki you can post them on our forum (in English or French): http://www.glx-dock.org/bg_forumlist.php

Additional information specific to running Cairo-Dock under Wayland is available here.

Join the project

  • Want to HACK into the dock or write an APPLET? see the complete C API here: http://doc.glx-dock.org
  • You don't like C and still want to write an APPLET for the dock or CONTROL it from a script or the terminal? see its powerful DBus API here: http://www.glx-dock.org/ww_page.php?p=Control_your_dock_with_DBus&lang=en
  • You have some IDEAS / PROPOSITIONS? You need some help to develop an applet? Feel free post a topic on our forum! We'll be happy to answer you!
  • You want to TRANSLATE Cairo-Dock in your language? Use the 'Translations' tab in Launchpad, it's very simple to use it and helpful for us!

Bug reports

You can report bugs in Launchpad under the 'Bugs' section. If possible:

  • Read our wiki specially the 'Recurring Problems' section which can help you to resolve some bugs like a black background, messages at startup, etc.
  • Please include also some information like your distribution, your achitecture (32/64bits), your Desktop Manager (Gnome, KDE, XFCE,...) your Window Manager (Compiz, Metacity, Kwin, etc.) or Wayland compositor (Wayfire, Kwin, Labwc, etc.), if you use Cairo-Dock with or without OpenGL, with which theme, etc. You can copy the "Technical info" page from the About dialog (right click on the dock -> Cairo-Dock -> About) which covers the most important details.
  • Include the method to reproduce the bug (which actions, which options activated)
  • Run the dock with the command cairo-dock -l debug > debug.txt reproduce the bug and join the content of debug.txt.
  • If it's a crash, please give us a backtrace of it with GDB. It's easy thanks to this wiki page.

Thank you for your help!

cairo-dock-core's People

Contributors

363734 avatar alucryd avatar dkondor avatar fabounet03 avatar jasonmit avatar matttbe avatar mtasaka avatar nickabal avatar schmidek avatar sqp avatar tofee avatar uwabami avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

cairo-dock-core's Issues

Multi instances of one application cause cairo-dock to be hanging

Steps to reproduce

  1. Run cairo-dock in opengl mode, cairo-dock -L -o
  2. Run any application with three instances, and you can see them in a group of the dock.
  3. Click the sub dock, switch window between them "rapidly"(it is a little hard to reproduce.), finally the dock hangs.

Digs

Problem file

src/implementations/cairo-dock-egl.c

static void _container_end_draw (GldiContainer *pContainer)
{
	EGLSurface surface = pContainer->eglSurface;
	EGLDisplay *dpy = s_eglDisplay;
	eglSwapBuffers (dpy, surface);
}

Issues may relate to the problem

Backtrace

#0  0x00007ffff7178f6f in __GI___poll (fds=fds@entry=0x7fffffffa6c0, nfds=nfds@entry=0x1, timeout=timeout@entry=0xffffffff) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff614cb5e in poll (__timeout=0xffffffff, __nfds=0x1, __fds=0x7fffffffa6c0) at /usr/include/bits/poll2.h:39
#2  wl_display_poll (display=0x5555555b1ad0, events=0x1) at ../wayland-1.22.0/src/wayland-client.c:1914
#3  wl_display_dispatch_queue (queue=<optimized out>, display=<optimized out>) at ../wayland-1.22.0/src/wayland-client.c:1987
#4  wl_display_dispatch_queue (display=0x5555555b1ad0, queue=0x555555adbe80) at ../wayland-1.22.0/src/wayland-client.c:1960
#5  0x00007ffff071fe65 in dri2_wl_swap_buffers_with_damage () at ../mesa-23.3.3/src/egl/drivers/dri2/platform_wayland.c:1576
#6  0x00007ffff0710938 in dri2_swap_buffers () at ../mesa-23.3.3/src/egl/drivers/dri2/egl_dri2.c:1958
#7  0x00007ffff070800d in eglSwapBuffers () at ../mesa-23.3.3/src/egl/main/eglapi.c:1443
#8  0x00007ffff72a7aac in _on_expose (pWidget=pWidget@entry=0x555555b31aa0 [GtkWindow], pCairoContext=<optimized out>, pDock=0x555555bcf490)
    at /usr/src/debug/cairo-dock-core-wayland-git/cairo-dock-core-wayland-git/src/gldit/cairo-dock-dock-factory.c:114
#9  0x00007ffff74c56cd in _gtk_marshal_BOOLEAN__BOXED
    (closure=0x5555559965d0, return_value=0x7fffffffaa20, param_values=0x7fffffffaab0, marshal_data=<optimized out>, invocation_hint=<optimized out>, n_param_values=<optimized out>)
    at gtk/gtkmarshalers.c:84
#10 0x00007ffff776f3c3 in _gtk_marshal_BOOLEAN__BOXED
    (marshal_data=0x0, invocation_hint=<optimized out>, param_values=0x7fffffffaab0, n_param_values=0x2, return_value=0x7fffffffaa20, closure=0x5555559965d0) at gtk/gtkmarshalers.c:70
#11 gtk_widget_draw_marshaller (closure=0x5555559965d0, return_value=0x7fffffffaa20, n_param_values=0x2, param_values=0x7fffffffaab0, invocation_hint=<optimized out>, marshal_data=0x0)
    at ../gtk/gtk/gtkwidget.c:951
#12 0x00007ffff7eda6c0 in g_closure_invoke (closure=0x5555559965d0, return_value=0x7fffffffaa20, n_param_values=0x2, param_values=0x7fffffffaab0, invocation_hint=0x7fffffffaa00)
    at ../glib/gobject/gclosure.c:832
#13 0x00007ffff7f08a36 in signal_emit_unlocked_R.isra.0
    (node=node@entry=0x7fffffffaba0, detail=detail@entry=0x0, instance=instance@entry=0x555555b31aa0, emission_return=emission_return@entry=0x7fffffffac20, instance_and_params=instance_and_pa
rams@entry=0x7fffffffaab0) at ../glib/gobject/gsignal.c:3980
#14 0x00007ffff7ef9335 in signal_emit_valist_unlocked
    (instance=instance@entry=0x555555b31aa0, signal_id=signal_id@entry=0x46, detail=detail@entry=0x0, var_args=var_args@entry=0x7fffffffad00) at ../glib/gobject/gsignal.c:3625
#15 0x00007ffff7ef9c77 in g_signal_emit_valist (instance=0x555555b31aa0, signal_id=0x46, detail=0x0, var_args=var_args@entry=0x7fffffffad00) at ../glib/gobject/gsignal.c:3355
#16 0x00007ffff7ef9d34 in g_signal_emit (instance=instance@entry=0x555555b31aa0, signal_id=<optimized out>, detail=detail@entry=0x0) at ../glib/gobject/gsignal.c:3675
#17 0x00007ffff7781ae3 in gtk_widget_draw_internal (widget=0x555555b31aa0 [GtkWindow], cr=0x555555b18d00, clip_to_size=<optimized out>) at ../gtk/gtk/gtkwidget.c:7077
#18 0x00007ffff778c862 in gtk_widget_render (widget=0x555555b31aa0 [GtkWindow], window=<optimized out>, region=<optimized out>) at ../gtk/gtk/gtkwidget.c:17610
#19 0x00007ffff7628c8b in gtk_main_do_event (event=0x7fffffffaf60) at ../gtk/gtk/gtkmain.c:1844
#20 gtk_main_do_event (event=<optimized out>) at ../gtk/gtk/gtkmain.c:1691
#21 0x00007ffff7370b77 in _gdk_event_emit (event=0x7fffffffaf60) at ../gtk/gdk/gdkevents.c:73
#22 _gdk_event_emit (event=0x7fffffffaf60) at ../gtk/gdk/gdkevents.c:67
#23 0x00007ffff7382b02 in _gdk_window_process_updates_recurse_helper (window=0x555555b18b60 [GdkWaylandWindow], expose_region=<optimized out>) at ../gtk/gdk/gdkwindow.c:3874
#24 0x00007ffff7387158 in gdk_window_process_updates_internal (window=0x555555b18b60 [GdkWaylandWindow]) at ../gtk/gdk/gdkwindow.c:4020
#25 0x00007ffff7387375 in gdk_window_process_updates_with_mode (recurse_mode=<optimized out>, window=<optimized out>) at ../gtk/gdk/gdkwindow.c:4215

Mix Launchers and applications not working for Qt Apps under Wayland (Plasma 6)

It seems that for Qt Applications "Mix Applications with Launchers" not working under Wayland (at least in Plasma 6), instead they appear independently at the end of the dock (or as defined in the "Place new icons" option).

I tried the following applications (may apply to others):

  • Dolphin
  • Kate
  • QGIS
  • QtCreator

And performed the following experiments:

  • Wayland + cairo-dock -L -o --> issue
  • Wayland + cairo-dock -c --> issue
  • X11 + cairo-dock -c -->no issue

I remember that you cannot test on Plasma 6, so feel free to tell me if I can assist you in any way :-)

p.s. Cairo-Dock works fine on my laptop with hybrid graphics, still haven't tried the latest version on my Desktop to check the other reported issue

Corrupted launchers

Hi,

Great work with Wayland support but since commit 1a685ac launchers get corrupted in folder ~/.config/cairo-dock/current_theme/launchers/ with this commit I'm getting a folder inside with some icons. With the newest commit my launcher files get corrupted instead of file names I have glyphs in names. Dock is not editable, you can remove activators but on next start they will appear back.

Environment: Plasma 6 on Wayland

Finding plugins installed in a different directory

Hello daniel,
I spent some time trying to package your cairo-dock and the main plugins package with the gnu guix package manager. The problem there is that guix puts every package in a single directory under /gnu/store so cairo-dock doesn't find it's plugins. If you still aim to do something about the dock, tackling that would make dealing with it much easier imo. A standard way to deal with this seems to have an environmental variable (like wayfire has WAYFIRE_PLUGINS_PATH). I'm writing this here since I don't really expect the main repository to do much anymore.

Cairo Dock crashes when running under plasma 6 + wayland

I am trying to run cairo-dock under plasma 6 on ArchLinux (from extra-testing) and I get the following error. I suspect that it has to do with gtk-layer-shell because when I compiled it without it, cairo-dock managed to launch, although it was just an empty window.

dbus-glib: 0.112
glu: 9.0.3
gtk3: 1:3.24.41
librsvg: 2:2.57.1
wayland: 1.22
gtk-layer-shell: 0.8.2

`argyros@argyros ~/builds/cairo-dock-wayland-git $ cairo-dock
EGL version: 1;5

============================================================================
Cairo-Dock version: 3.5.99.alpha1
compiled date: Feb 29 2024 11:59:12

Cairo-Dock was built with support for:

  • GTK version: 3.24
  • X11: yes
  • Wayland: yes
  • GLX: no
  • EGL: yes
  • gtk-layer-shell: yes
  • additional Wayland protocols: yes

Cairo-Dock is currently running with:

  • display backend: Wayland
  • layer-shell: yes
  • OpenGL: yes
  • taskbar backend: plasma
  • desktop manager backend(s): plasma-window-management; plasma-virtual-desktop
  • detected desktop environment: KDE
    ============================================================================

warning : (/home/argyros/.cache/yay/cairo-dock-wayland-git/src/cairo-dock/src/gldit/cairo-dock-module-manager.c:gldi_module_new_from_so_file:160)
while opening module '/usr/lib/cairo-dock/libcd-Help.so' : (/usr/lib/cairo-dock/libcd-Help.so: undefined symbol: cairo_dock_show_items_gui)
warning : (/home/argyros/.cache/yay/cairo-dock-wayland-git/src/cairo-dock/src/gldit/cairo-dock-config.c:cairo_dock_get_boolean_key_value:70)
Key file does not have key “X11_new_rendering_code” in group “System”
warning : (/home/argyros/.cache/yay/cairo-dock-wayland-git/src/cairo-dock/src/cairo-dock.c:_cairo_dock_intercept_signal:187)
Cairo-Dock has crashed (sig 11).
It will be restarted now.
Feel free to report this bug on glx-dock.org to help improving the dock!
info on the system :
Linux argyros 6.6.18-1-lts #1 SMP PREEMPT_DYNAMIC Fri, 23 Feb 2024 14:58:40 +0000 x86_64 GNU/Linux
Couldn't guess if it was an applet's fault or not. It may have crashed inside the core or inside a thread
`

Crash with HiDPI scale

with any scale factor over 1, the cairo-dock will crash with the following messages:

EGL version: 1;5
                                                                                                                                                            
 ============================================================================
        Cairo-Dock version : 3.4.99.alpha1
        Compiled date      : Nov  6 2023 09:02:32
        Built with GTK     : 3.24
        Running with OpenGL: 1
 ============================================================================
                                                                                                                                                            
g_file_test: assertion 'filename != NULL' failed
g_file_test: assertion 'filename != NULL' failed
Gdk-Message: 18:15:59.680: Error 71 (Protocol error) dispatching to Wayland display.

the example of ~/.config/kanshi/config

profile {
    output HDMI-A-1 mode 1920x1080 scale 1.1
}

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.