godock: github.com/sqp/godock Index | Files | Directories

package godock

import "github.com/sqp/godock"

Package godock is a library to build Cairo-Dock applets with the DBus connector.

External applets are small programs spawned by the dock to manage dedicated icons. Once started, the program can use his icon to display informations and receive user interactions like mouse events and keyboard shortcuts.

The project is now also able to build a reworked version of cairo-dock. It's a binding for the C gldi library, the heart of the dock, and a rewrite in go of all the dock code that wasn't in that library (loader, events, menu, the big GUI...). Besides a few missing options, it should be usable by advanced users, as it has been the only dock/panel used by its dev for months.

The goals of the project is to remain as much compatible with the original dock as possible, at least on the global behavior and for configuration files. But it will try to improve the user experience with a new GUI more focused on current needs.

Install packages

Pre-build packages for Debian, Ubuntu and Archlinux are available.


Install from source

Documentation for install, build and package creation is on the dist page, with pre build packages repositories (Debian, Ubuntu, Archlinux).



Once installed (more than an applet), you can run the cdc command to start a dock (if enabled), or interact with the dock and its new applets.


Applet creation and documentation

If you want to create a new applet or learn more about them, most of their work is defined in the cdtype package, with their common types, actions, events...


Current golang thread on cairo-dock forum: http://glx-dock.org/bg_topic.php?t=7638

Cairo-Dock : http://glx-dock.org/

Copyright (C) 2012-2016 SQP <sqp@glx-dock.org>

License: Released under GPLv3


Package Files



applets/AudioPulseaudio management applet for the Cairo-Dock project.
applets/CloudsWeather monitoring applet for the Cairo-Dock project.
applets/CpuCPU activity monitoring applet for the Cairo-Dock project.
applets/DiskActivityDisk activity monitoring applet for the Cairo-Dock project.
applets/DiskFreeDisk usage monitoring applet for the Cairo-Dock project.
applets/GoGmailGmail simple checker applet for the Cairo-Dock project.
applets/MemSystem memory monitoring applet for the Cairo-Dock project.
applets/NetActivityNetwork activity monitoring applet for the Cairo-Dock project.
applets/NotificationsNotifications is a desktop notifications history applet for the Cairo-Dock project.
applets/TVPlayTVPlay is an applet for Cairo-Dock to control DLNA/UPnP devices like network TV and radio.
applets/UpdateUpdate and build your dock from sources with this applet for Cairo-Dock.
cmd/cdccdc starts a custom version of cairo-dock with a new config GUI.
distPackage dist contains documentation and files to build distro packages.
libs/appdbusPackage appdbus is the godock cairo-dock connector using DBus.
libs/cdappletPackage cdapplet is the Cairo-Dock applet base object, using DBus or Gldi backend.
libs/cdapplet/actionPackage action provides actions management for applets.
libs/cdglobalPackage cdglobal defines application and backend global consts and data.
libs/cdtypePackage cdtype defines main types and constants for Cairo-Dock applets.
libs/cdtype/AppTmpl/srcPackage AppTmpl is a new template applet for Cairo-Dock.
libs/clipboardPackage clipboard provides interaction with the desktop clipboard.
libs/configPackage config is an automatic configuration loader for cairo-dock.
libs/dockPackage dock wraps all backends and clients to start a dock.
libs/dock/confownPackage confown manages the own config of the dock and its GUI
libs/dock/eventmousePackage eventmouse registers and handles icon click events.
libs/dock/guibridgePackage guibridge provides a bridge between the dock and its config window.
libs/dock/maindockPackage maindock is a wrapper to build a dock interface.
libs/dock/mainmenuPackage mainmenu fills the main menu for cairo-dock.
libs/filesPackage files provides files operations helpers.
libs/files/fileaccessPackage fileaccess serialize files access.
libs/files/historyPackage history provides the core part for services history data management.
libs/get/weatherPackage weather provides a data source for weather informations.
libs/gldiPackage gldi provides Go bindings for gldi (cairo-dock).
libs/gldi/appgldiPackage appgldi implements the dock applet API for go internal applets.
libs/gldi/backendguiPackage backendgui provides a GUI interface to interact with the dock GUI.
libs/gldi/backendmenuPackage backendmenu provides menu events and widgets to build the menu.
libs/gldi/confdataPackage confdata provides a data source for the config, based on the gldi backend.
libs/gldi/currentPackage current provides access to the dock current theme variables.
libs/gldi/desktopclassPackage desktopclass defines a desktop class informations source.
libs/gldi/desktopsPackage desktops manages and get desktop and screens info.
libs/gldi/dialogPackage dialog provides access to gldi dialogs.
libs/gldi/globalsPackage globals provides access to the dock global variables.
libs/gldi/mgrgldiPackage mgrgldi manages go applets as internal applets.
libs/gldi/notifPackage notif registers dock notifications.
libs/gldi/shortkeysPackage shortkeys manages keyboard shortkeys.
libs/gldi/windowPackage window manages desktop windows.
libs/helper/castPackage cast provides recasts for lists of ints and floats.
libs/logPackage log is a simple colored info and errors logger.
libs/net/downloadPackage download gets content from internet.
libs/net/iplocationPackage iplocation detects your location based on your IP.
libs/net/uptosharePackage uptoshare uploads files to one-click hosting sites.
libs/net/videodlPackage videodl provides a video file downloader around the youtube-dl command (only for now).
libs/net/websrvPackage websrv manages the default optional web service for the program with variable subservices.
libs/packagesPackage packages lists and acts on cairo-dock packages.
libs/packages/buildPackage build builds cairo-dock or applets from sources.
libs/packages/editpackPackage editpack builds a console interface to edit applets definition info.
libs/packages/versionsPackage versions checks and updates vcs packages.
libs/pollerPackage poller is a dedicated task that handles regular polling actions.
libs/srvdbusPackage srvdbus provides a Dbus service (and client) with dock applets management.
libs/srvdbus/dbuscommonPackage dbuscommon provides a common dbus server and client base to extend.
libs/srvdbus/dlogbusPackage dlogbus provides a Dbus service (and client) for a dock external launcher.
libs/srvdbus/dockbusPackage dockbus provides a Dbus client for the main dock Dbus service.
libs/srvdbus/dockpathPackage dockpath defines paths used by the main dock dbus service.
libs/srvdbus/mgrdbusPackage mgrdbus provides a Dbus service (and client) for external applets management.
libs/sysinfoPackage sysinfo is a library that get some linux system information.
libs/ternaryPackage ternary operators!
libs/text/bytesizePackage bytesize formats a size with units.
libs/text/colorPackage color formats colored terminal output.
libs/text/gtktextPackage gtktext provides helpers to work with strings.
libs/text/linesplitPackage linesplit provides a Writer with a callback on every line.
libs/text/strhelpPackage strhelp provides helpers to work with strings.
libs/text/tablistPackage tablist is a simple table formatter with colors for console.
libs/text/tranPackage tran translates user displayed text.
libs/text/versionsPackage versions prints API and dependencies versions.
services/allappsPackage allapps declares applets available for the applet loader service.
services/AudioPackage Audio is a pulseaudio controler applet for Cairo-Dock.
services/CloudsPackage Clouds is a weather monitoring applet for Cairo-Dock.
services/CpuPackage Cpu is a CPU monitoring applet for Cairo-Dock.
services/DiskActivityPackage DiskActivity is a monitoring applet for Cairo-Dock.
services/DiskFreePackage DiskFree is a monitoring applet for Cairo-Dock.
services/GoGmailPackage GoGmail is a mail checker applet for Cairo-Dock.
services/MemPackage Mem is a memory monitoring applet for Cairo-Dock.
services/NetActivityPackage NetActivity is a monitoring, upload and download applet for Cairo-Dock.
services/NotificationsPackage Notifications is a desktop notifications history applet for Cairo-Dock.
services/TVPlayPackage TVPlay is a UPnP control point for Cairo-Dock.
services/UpdatePackage Update is an applet for Cairo-Dock to build and update the dock and applets.
widgets/aboutPackage about creates the program about dialog.
widgets/appinfoPackage appinfo provides an applets list with edit applet info widget.
widgets/appletlistPackage appletlist provides an applets list treeview widget.
widgets/appletpreviewPackage appletpreview provides an applet preview widget.
widgets/cfbuildPackage cfbuild builds a cairo-dock configuration widget from its config file.
widgets/cfbuild/cfprintPackage cfprint prints config data to the console in a table.
widgets/cfbuild/cfwidgetPackage cfwidget implements key widgets for the config file builder.
widgets/cfbuild/cfwinPackage cfwin creates a dedicated config builder window.
widgets/cfbuild/datatypePackage datatype defines the data source format for the config.
widgets/cfbuild/newkeyPackage newkey creates keys for the config file builder.
widgets/cfbuild/valuerPackage valuer stores and converts a pointer to interface{}.
widgets/cfbuild/vdataPackage vdata provides a virtual data source for the config file builder.
widgets/cfbuild/vstoragePackage vstorage provides a virtual config storage for the config file builder.
widgets/commonPackage common provides simple gtk helpers.
widgets/confappletsPackage confapplets provides an applets list selection widget with preview.
widgets/confcorePackage confcore provides a cairo-dock core configuration widget.
widgets/confguiPackage confgui is a configuration window for Cairo-Dock.
widgets/confgui/btnactionPackage btnaction provides a button with different actions texts.
widgets/conficonsPackage conficons provides an icons list and configuration widget.
widgets/conficons/desktopclassPackage desktopclass extends the launcher builder with desktop class informations.
widgets/confmenuPackage confmenu provides a menu widget for the GUI.
widgets/confshortkeysPackage confshortkeys provides a dock shortkey configuration widget.
widgets/devpagePackage devpage provides a dock developer tools widget.
widgets/dockthemePackage docktheme provides a cairo-dock main theme load/save widget.
widgets/gtk/buildhelpPackage buildhelp is a small wrapper around gtk.Builder to load interfaces easily.
widgets/gtk/gunvaluePackage gunvalue provides some help to work with glib.Value.
widgets/gtk/keyfilePackage keyfile provides Go bindings for GLib's GKeyFile.
widgets/gtk/menusPackage menus builds gtk menus.
widgets/gtk/newgtkPackage newgtk creates gtk objects.
widgets/gtk/togtkPackage togtk provides gtk recast wrapers.
widgets/handbookPackage handbook provides an applet or theme description widget.
widgets/helpfilePackage helpfile provides a cairo-dock help widget.
widgets/pageswitchPackage pageswitch is a custom page switcher with a buttons box.
widgets/reportPackage report creates a widget with program and system informations for user reports.
widgets/welcomePackage welcome provides a cairo-dock welcome widget.

Updated 2019-09-29. Refresh now. Tools for package owners.