pax_global_header 0000666 0000000 0000000 00000000064 13750214643 0014517 g ustar 00root root 0000000 0000000 52 comment=0836f5d1c3e18be0995320175b8bf21d28264a10
cairo-dock-3.4.1+git20201103.0836f5d1/ 0000775 0000000 0000000 00000000000 13750214643 0016206 5 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/.gitignore 0000775 0000000 0000000 00000001114 13750214643 0020176 0 ustar 00root root 0000000 0000000 Makefile
Makefile.in
POTFILES
*.gmo
*.la
*.lo
*.lo
*.la
POTFILES
stamp-it
aclocal.m4
autom4te.cache
config.guess
config.log
config.status
config.sub
configure
depcomp
install-sh
libtool
ltmain.sh
missing
.deps
.libs
stamp-h1
src/cairo-dock
data/themes.conf
data/cairo-dock.conf
data/main-dock.conf
data/cairo-dock-simple.conf
src/gldit/gldi.pc
src/config.h
src/gldit/gldi-config.h
src/gldit/gldi-module-config.h
config.h.in
compile*
*.cmake
CMakeFiles/
install_manifest.txt
CMakeCache.txt
cairo-dock-extract-message
_CPack_Packages/
data/messages
build/
doc/html/
doc/man/
doc/latex/
cairo-dock-3.4.1+git20201103.0836f5d1/CMakeLists.txt 0000664 0000000 0000000 00000025266 13750214643 0020761 0 ustar 00root root 0000000 0000000 ########### requirements ###############
cmake_minimum_required (VERSION 2.6)
find_package (PkgConfig)
include (CheckLibraryExists)
include (CheckIncludeFiles)
include (CheckFunctionExists)
include (CheckSymbolExists)
include ("${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/GNUInstallDirs.cmake")
########### project ###############
project ("cairo-dock")
set (VERSION "3.4.99.alpha1") # no dash, only numbers, dots and maybe alpha/beta/rc, e.g.: 3.3.1 or 3.3.99.alpha1
add_definitions (-std=c99 -Wall -Wextra -Werror-implicit-function-declaration) # -Wextra -Wwrite-strings -Wuninitialized -Werror-implicit-function-declaration -Wstrict-prototypes -Wreturn-type -Wparentheses -Warray-bounds)
if (NOT DEFINED CMAKE_BUILD_TYPE)
add_definitions (-O3)
endif()
add_definitions (-DGL_GLEXT_PROTOTYPES="1")
add_definitions (-DCAIRO_DOCK_DEFAULT_ICON_NAME="default-icon.svg")
add_definitions (-DCAIRO_DOCK_ICON="cairo-dock.svg")
add_definitions (-DCAIRO_DOCK_LOGO="cairo-dock-logo.png")
add_definitions (-DCAIRO_DOCK_DATA_DIR="cairo-dock")
add_custom_target (uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
########### Misc ###############
macro (enable_if_not_defined MODULE1)
if (NOT DEFINED ${MODULE1}) # true if not defined
set (${MODULE1} TRUE)
endif ()
endmacro (enable_if_not_defined)
########## Config ###############
enable_if_not_defined (force-icon-in-menus)
if (force-icon-in-menus) # we believe that not showing icons in the menus by default is a terrible idea; unfortunately, it's not easily undoable for an end-user; so until this is fixed by a big player (Gnome, Ubuntu or other), we'll force the display, unless "-Dforce-icon-in-menus=OFF" is provided in the cmake command.
add_definitions (-DCAIRO_DOCK_FORCE_ICON_IN_MENUS=1)
else()
add_definitions (-DCAIRO_DOCK_FORCE_ICON_IN_MENUS=0)
endif()
############ sources tarball ############
set (CPACK_SOURCE_GENERATOR "TGZ")
set (CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}")
set (CPACK_SOURCE_IGNORE_FILES
"/build/;/.bzr/;/.bzrignore$;/.git/;/.gitignore$;/config.h$;/gldi-module-config.h$;/gldi-config.h$;/doc/;/misc/;~$;/TODO$;.pyc$;${CPACK_SOURCE_IGNORE_FILES}")
include (CPack)
add_custom_target( dist
COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
add_custom_target(dist-bzr
COMMAND bzr export ${CMAKE_PROJECT_NAME}-${VERSION}.tar.gz
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
########### global variables ###############
if( WIN32 )
message(FATAL_ERROR "Cairo-Dock requires an air-conditioned room. Please close Windows!")
endif( WIN32 )
set (PACKAGE ${CMAKE_PROJECT_NAME})
set (GETTEXT_PACKAGE ${PACKAGE})
set (prefix ${CMAKE_INSTALL_PREFIX}) # /usr/local
set (exec_prefix ${prefix})
set (datadir "${prefix}/${CMAKE_INSTALL_DATAROOTDIR}") # (...)/share
set (pkgdatadir "${datadir}/${CMAKE_PROJECT_NAME}") # (...)/cairo-dock
set (mandir "${prefix}/${CMAKE_INSTALL_MANDIR}") # (...)/man
if( CMAKE_SIZEOF_VOID_P EQUAL 8 AND (force-lib64 OR "${FORCE_LIB64}" STREQUAL "yes")) # 64bits and force install in lib64
set (libdir "${prefix}/lib64")
elseif (NOT "${LIB_SUFFIX}" STREQUAL "")
set (libdir "${prefix}/lib${LIB_SUFFIX}") # (...)/libXX ## some distro use ${LIB_SUFFIX}
else()
set (libdir "${prefix}/${CMAKE_INSTALL_LIBDIR}") # (...)/lib or (...)/lib64 or custom ## GNU Install dir
endif()
set (includedir "${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") # (...)/include
set (bindir "${prefix}/${CMAKE_INSTALL_BINDIR}") # (...)/bin
set (pluginsdir "${libdir}/cairo-dock")
set (pluginsdatadir "${pkgdatadir}/plug-ins")
if (NOT DEFINED install-pc-path)
set (install-pc-path "${libdir}/pkgconfig") # it can be different (for example ${CMAKE_INSTALL_PREFIX}/libdata/pkgconfig on BSD)
endif ()
########### dependencies ###############
# check for mandatory dependencies
set (packages_required "glib-2.0 gthread-2.0 cairo librsvg-2.0 dbus-1 dbus-glib-1 libxml-2.0 gl glu libcurl") # for the .pc and to have details
STRING (REGEX REPLACE " " ";" packages_required_semicolon ${packages_required}) # replace blank space by semicolon => to have more details if a package is missing
pkg_check_modules ("PACKAGE" REQUIRED "${packages_required_semicolon}")
# check for EGL
set (with_egl no) # although EGL can be used with X (replacing GLX), it requires drivers that support DRI2, so most of the time GLX works better; so it's disabled by default for now; later, it will be required for Wayland, and we'll have to decide whether we compile with both, or whether we load one of them as a plug-in at run-time. It may depend on EGL having been built to support a given graphic target.
if (enable-egl-support)
pkg_check_modules ("EGL" "egl")
if (EGL_FOUND)
set (HAVE_EGL 1)
set (with_egl "yes (${EGL_VERSION})")
endif()
endif()
# check for X11
set (with_x11 no)
set (with_xentend no)
enable_if_not_defined (enable-x11-support) # enabled by default
if (enable-x11-support)
# check for X11
set (x11_required "x11") # for the .pc
pkg_check_modules ("X11" ${x11_required})
if (X11_FOUND)
set (HAVE_X11 1)
set (with_x11 yes)
else()
set (x11_required)
endif()
# check for GLX
if (NOT EGL_FOUND) # currently we only have an X backend so we use either GLX or EGL, not both at once.
check_library_exists (GL glXMakeCurrent "" HAVE_GLX) # HAVE_GLX remains undefined if not found, else it's "1"
endif()
# check for X extensions
set (xextend_required "xtst xcomposite xrandr xrender") # for the .pc
STRING (REGEX REPLACE " " ";" xextend_required_semicolon ${xextend_required})
pkg_check_modules ("XEXTEND" "${xextend_required_semicolon}")
if (XEXTEND_FOUND)
set (HAVE_XEXTEND 1)
set (with_xentend yes)
pkg_check_modules ("XINERAMA" "xinerama") # check for Xinerama separately, since it is now replaced by Xrandr >= 1.3
if (XINERAMA_FOUND)
set (HAVE_XINERAMA 1)
endif()
else()
set (xextend_required)
endif()
endif()
# check for Wayland
set (with_wayland no)
enable_if_not_defined (enable-wayland-support) # enabled by default
if (enable-wayland-support)
set (wayland_required "wayland-client") # for the .pc
pkg_check_modules ("WAYLAND" ${wayland_required}>=1.0.0)
if (WAYLAND_FOUND)
set (HAVE_WAYLAND 1)
set (with_wayland "yes (${WAYLAND_VERSION})")
else()
set (wayland_required)
endif()
endif()
# GTK 3
set (gtk_required "gtk+-3.0") # for the .pc
pkg_check_modules ("GTK" REQUIRED "${gtk_required}>=3.4.0")
STRING (REGEX REPLACE "\\..*" "" GTK_MAJOR "${GTK_VERSION}")
STRING (REGEX REPLACE "[0-9]*\\.([^ ]+)" "\\1" GTK_MINOR "${GTK_VERSION}") # 3.8.2 => 3.8
STRING (REGEX REPLACE "\\.[0-9]*" "" GTK_MINOR "${GTK_MINOR}") # 3.8 => 8
# add_definitions (-DGTK_DISABLE_DEPRECATED="1")
# add_definitions (-DG_DISABLE_DEPRECATED="1")
# We use crypt(3) which may be in libc, or in libcrypt (eg FreeBSD)
check_library_exists (crypt encrypt "" HAVE_LIBCRYPT)
if (HAVE_LIBCRYPT)
set (LIBCRYPT_LIBS "-lcrypt")
endif()
check_symbol_exists (LC_MESSAGES "locale.h" HAVE_LC_MESSAGES)
check_include_files ("math.h" HAVE_MATH_H)
check_library_exists (m sin "" HAVE_LIBM)
if (NOT HAVE_LIBM OR NOT HAVE_MATH_H)
message(FATAL_ERROR "Cairo-Dock requires math.h")
endif()
check_include_files ("dlfcn.h" HAVE_DLFCN_H)
check_library_exists (dl dlopen "" HAVE_LIBDL)
if (HAVE_LIBDL) # dlopen might be in libc directly as in FreeBSD
set (LIBDL_LIBRARIES "dl")
endif()
if (NOT HAVE_DLFCN_H)
message(FATAL_ERROR "Cairo-Dock requires dlfcn.h")
endif()
check_library_exists (intl libintl_gettext "" HAVE_LIBINTL)
if (HAVE_LIBINTL) # on BSD, we have to link to libintl to be able to use gettext.
set (LIBINTL_LIBRARIES "intl")
endif()
########### variables defined at compil time ###############
set (CAIRO_DOCK_SHARE_DATA_DIR ${pkgdatadir})
set (CAIRO_DOCK_SHARE_THEMES_DIR ${pkgdatadir}/themes)
#set (CAIRO_DOCK_MODULES_DIR ${libdir}/cairo-dock)
set (CAIRO_DOCK_LOCALE_DIR "${prefix}/${CMAKE_INSTALL_LOCALEDIR}")
set (CAIRO_DOCK_THEMES_DIR "themes") # folder name where themes are saved locally, relatively to the root folder of Cairo-Dock.
set (CAIRO_DOCK_DISTANT_THEMES_DIR "themes3.4") # folder name where themes are on the server, relatively to the root folder of the server files.
set (CAIRO_DOCK_GETTEXT_PACKAGE ${GETTEXT_PACKAGE})
set (GLDI_GETTEXT_PACKAGE ${GETTEXT_PACKAGE})
set (GLDI_SHARE_DATA_DIR ${pkgdatadir})
set (GLDI_MODULES_DIR ${pluginsdir})
set (GLDI_BIN_DIR ${bindir})
########### next steps ###############
add_subdirectory (src)
add_subdirectory (data)
add_subdirectory (po)
############# HELP #################
# this is actually a plug-in for cairo-dock, not for gldi
# it uses some functions of cairo-dock (they are binded dynamically), that's why it can't go with other plug-ins
set (GETTEXT_HELP ${GETTEXT_PACKAGE})
set (VERSION_HELP "0.9.994")
set (PACKAGE_HELP "cd-Help")
set (helpdatadir "${pluginsdatadir}/Help")
set (dock_version "${VERSION}")
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Help/data/Help.conf.in ${CMAKE_CURRENT_BINARY_DIR}/Help/data/Help.conf)
add_subdirectory (Help)
########### file generation ###############
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake.in ${CMAKE_CURRENT_SOURCE_DIR}/src/config.h)
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/src/gldit/gldi-config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/src/gldit/gldi-config.h)
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/src/gldit/gldi-module-config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/src/gldit/gldi-module-config.h) # separated from gldi-config.h because it's architecture-dependant (it contains $libdir), so it can't be installed in /usr/include without causing a conflict between 32 and 64 bits packages.
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake IMMEDIATE @ONLY)
################# Summary #################
MESSAGE (STATUS)
MESSAGE (STATUS "Cairo-Dock ${VERSION} will be compiled with the following options:")
MESSAGE (STATUS " * Installation in : ${prefix}")
MESSAGE (STATUS " * Lib directory : ${libdir}")
MESSAGE (STATUS " * GTK version : ${GTK_MAJOR} (${GTK_VERSION})")
MESSAGE (STATUS " * With X11 support : ${with_x11}")
MESSAGE (STATUS " * With X11 extensions : ${with_xentend} (${xextend_required})")
if (HAVE_GLX)
MESSAGE (STATUS " * With GLX support : yes")
else()
MESSAGE (STATUS " * With GLX support : no")
endif()
MESSAGE (STATUS " * With Wayland support: ${with_wayland}")
MESSAGE (STATUS " * With EGL support : ${with_egl}")
if (HAVE_LIBCRYPT)
MESSAGE (STATUS " * Crypt passwords : yes")
else()
MESSAGE (STATUS " * Crypt passwords : no")
endif()
if (enable-desktop-manager)
set (with_cd_session "yes")
else()
set (with_cd_session "no (use '-Denable-desktop-manager=ON' to enable it)")
endif()
MESSAGE (STATUS " * Cairo-dock session : ${with_cd_session}")
MESSAGE (STATUS " * Themes directory : ${CAIRO_DOCK_DISTANT_THEMES_DIR} (on the server)")
MESSAGE (STATUS)
cairo-dock-3.4.1+git20201103.0836f5d1/ChangeLog 0000664 0000000 0000000 00000015777 13750214643 0020001 0 ustar 00root root 0000000 0000000 Modifications made on the SVN and BZR: Rev 2.0.8.1 => 2.0.9
/* A bugs fixed version */
Fabounet :
* Miscellaneous :
* Added documentation in .h files
* Cleaning of Cairo-Dock API
* Fixed some of memory leaks
* Fixed a crash when a module stop
* set the Widget Layer rule automatically
* detection of composition
* metacity: automatically turn on composite
* proposed to see the help if it has never been done
* message when no plug-in
* removed some print messages
* Config pannel :
* changed the agencement of many options for a better ergonomy.
* enhancement of previews in config panels
* correction of the icon's order bug
* Using font selector to simplify the config panel
* small refresh of the config panel
* Improved the config panel for launchers
* Dock rendering :
* fixed extended panel mode
* Desklets :
* Fixed picking 3D bug.
* bug-fix on ratio
* desklets can't be hidden
* Dialogs :
* fixed to don't have twice the same dialog on notification
* dialogs can't be hidden
* the dock doesn't go under windows when a dialog exists
* Gauges :
* graph :
* fixed the scale of graph to fit the icon's width
* fixed graph with mixed values
* OpenGL :
* Added a workaround for ATI xorg drivers (with KMS on kernel boot)
* try to start the OpenGL backend without Stencil if failed
* Task bar :
* correction of some icons doesn't appear
* correction of the discontinuity in icon disappearance animation
* solved the jump of icons when closing
* fixed the bug with quick-hide
* fixed the drawing of indicator on appli's icon
* integration of the icon glide movement into the animation loop
* added some tooltips to the menu
* lock dock option works now for all icons
* Themes :
* added versionning for distant themes
* Default: correction in some conf files
* fixed 1 crash when reloading theme
* Improved the theme selector
* TM handles .tar.bz2 and .tgz
* Subdocks
* fixed block bugs
* correction of the sub-sub-docks bug
* Xinerama: available for all root docks to take into account different screen sizes
* XShape: correction 1 bug on fullscreen mode
Mav :
* Fix headers cairo-dock-dbus
* Updated LICENCE file.
* Updated default-theme.
Matttbe :
* Updated translations
* Added licences in each file
* fixed a little bug in tips of the cairo-dock menu
===========================
Modifications made on BZR : Rev 2.0.9.1 => 2.0.9.2
/* A bugs fixed version */
Fabounet :
* Miscellaneous
* animations and effects names are now translated
* fixed versionning for Dbus and Switcher
* Rendering :
* fixed a bug in rendering-caroussel
* fixed a bug on Slide view (wrong placement)
* correction on Slide view (some parameters didn't work)
* rewriting the equations on Slide's wave
* MusicPlayer :
* small bug-fix on MP if artist AND title is empty
* fixed a infinite loop when a player crash
* Fixed blank covers for Audacious
* modified the dowload of covers (Amazon has changed its API)
* prevent empty image from Amazon
* Switcher :
* fixed a bug with windows list with Metacity
* weather :
* fixed the name when no connection at start
* Dbus :
* small bug fixes (stop signal)
* test if distant applet is not already launched
* fixed the DBus applet launching
* Cairo-Penguin :
* correction of a refresh bug
* shortcuts :
* handle the case of unmounted volume
* fixed a crash when removing the last bookmark
* Stack :
* fixed stack sub-dock on clic
* Clipper :
* fixed a crash
Matttbe :
* Cairo-Penguin :
* Take the gtk icon as the others
* dnd2share :
* workaround for curl when a file contains a comma
* Update translations
* Rename en_GB => en
* Little improvement with the config panel for Note and Mail
Tofe :
* Mail :
* Fixed crash
===========================
Rev 2.1.3-6 => 2.1.3-10-lucid
/* A bugs fixed version */
Core:
* Fixed some bugs:
* Fixed a important crash when read several xml data
* LP: #521167 Cairo-dock crashes by theme changing
* Fixed a bug with desklets buttons
* Used icons of the system
* Fixed a bug when removing a container with OpenGL backend
* Fixed some typo on some define
* Fixed a little bug in the drag motion
* Reduced the disk access for SSD disk
* Used the official Ubuntu Lucid theme.
Plug-ins
* New upstream release
* Fixed some bugs:
* LP: #455261 (Cannot Modify / Add Custom Launchers)
* LP: #449422 (Cairo-Dock resize problem)
* LP: #489349 (showDesktop Applet only seems to work
every second time you click on it)
* LP: #526742 (The system monitor plugin and netspeed
plugin inverts upside-down continuously)
* Dbus: Used the right DBus API of Cairo-Dock (2.1.3 stable)
* Used icons of the system
* alsaMixer: fixed a crash when read several xml data
* musicPlayer:
* Removed some annoying warnings
* Banshee-plugin: fixed some bugs due to the new version (1.4.0)
===========================
Rev 2.1.3-10 => 2.2.0-0beta4
Core
* Migrated from Autotools to CMake
* Use libcurl for file downloads
* OpenGL backend: migrated from Pbuffer to FBO.
* Added 2 new visibility modes
* Added hiding animations
* Removed files management from the core
* VFS backend: new methods added
* OpenGL backend: added a cairo-like API for paths
* Applet API: unified methods to handle icons in sub-docks and desklets
* Added ability to have several docks with independant configurations
* Icons that demand attention are visible even when the dock is hidden
* Icons are now loaded progressively for a faster startup
* Desklets: added ability to click behind desklets
* Labels: homogeneous spacing and better rendering in OpenGL
* Better guessing of launcher's class
* Config panel :
* Improved the simple config panel, new categories of applets in the advanced panel
* Added buttons to enable some features of Gnome/Compiz/etc.
* Added internet connection options
* Added a config file for startup options
* Added man pages
* Removed unwanted verbosity
* Updated translations
Plug-ins
* Me-Menu: new applet that adds the Me-Menu inside the dock
* Messaging-Menu: new applet that adds the Messaging-Menu inside the dock
* Dock-rendering: added a new 'Panel' view
* DBus: added new methods to the API added management of third-party applets through a repository
* Clock: horizontal packaging of time date
* Switcher: horizontal packaging of desktops
* Dnd2Share: added tiny-url ability
* Logout: added the ability to lock the screen
* Dustbin: handle trashes in all the volumes
* Shortcuts: display a message when unmounting and connecting disks, and fixed icons reordering
* MusicPlayer: added support for Guayadeque
* Switcher: added Exposé in the list of actions for middle-click
* Dialog-rendering: improved the 'tooltip' view
* Improved the integration with KDEand use gio for XFCE 4.6
* Mail: bug-fix in messages count
* Folders: new applet that adds file-managing abilities to the dock.
* Updated translations
cairo-dock-3.4.1+git20201103.0836f5d1/Help/ 0000775 0000000 0000000 00000000000 13750214643 0017076 5 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/Help/CMakeLists.txt 0000664 0000000 0000000 00000000056 13750214643 0021637 0 ustar 00root root 0000000 0000000
add_subdirectory(src)
add_subdirectory(data)
cairo-dock-3.4.1+git20201103.0836f5d1/Help/data/ 0000775 0000000 0000000 00000000000 13750214643 0020007 5 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/Help/data/CMakeLists.txt 0000664 0000000 0000000 00000000211 13750214643 0022541 0 ustar 00root root 0000000 0000000
########### install files ###############
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/Help.conf
icon.svg
DESTINATION ${helpdatadir})
cairo-dock-3.4.1+git20201103.0836f5d1/Help/data/Help.conf.in 0000775 0000000 0000000 00000062017 13750214643 0022164 0 ustar 00root root 0000000 0000000 #@VERSION_HELP@
#[@helpdatadir@/icon.svg]
[General]
#X[Using the dock]
Using the dock =
#>Most icons in the dock have several actions: the primary action on left-click, a secondary action on middle-click, and additionnal actions on right-click (in the menu).
#Some applets let you bind a shortkey to an action, and decide which action sould be on middle-click.
_Using the dock =
#X[Adding features]
Adding features =
#>Cairo-Dock has a lot of applets. Applets are small applications that live inside the dock, for instance a clock or a log-out button.
#To enable new applets, open the settings (right-click -> Cairo-Dock -> configure), go to "Add-ons", and tick the applet you want.
#More applets can be installed easily: in the configuration window, click on the "More applets" button (which will lead you to our applets web page) and then just drag-and-drop the link of an applet into your dock.
_Adding features =
#[@pkgdatadir@/icons/icon-icons.svg]
[Icons]
#X[Adding a launcher]
Adding a launcher =
#>You can add a launcher by drag-and-dropping it from the Applications Menu into the dock. An animated arrow will appear when you can drop.
#Alternatively, if an application is already opened, you can right-click on its icon and select "make it a launcher".
_Adding a launcher =
#X[Removing a launcher]
Removing a launcher =
#>You can remove a launcher by drag-and-dropping it outside the dock. A "delete" emblem will appear on it when you can drop it.
_Removing a launcher =
#X[Grouping icons into a sub-dock]
Grouping icons into a sub-dock =
#>You can group icons into a "sub-dock".
#To add a sub-dock, right-click on the dock -> add -> a sub-dock.
#To move an icon into the sub-dock, right-click on an icon -> move to another dock -> select the sub-dock's name.
_Grouping icons into a sub-dock =
#X[Moving icons]
Moving icons =
#> You can drag any icon to a new location inside its dock.
#You can move an icon into another dock by right-clicking on it -> move to another dock -> select the dock you want.
#If you select "a new main dock", a main dock will be created with this icon inside.
_Moving icons =
#X[Changing an icon's image]
Changing an icon's image =
#>- For a launcher or an applet:
#Open the settings of the icon, and set a path to an image.
#- For an aplication icon:
#Right-click on the icon -> "Other actions" -> "set a custom icon", and choose an image. To remove the custom image, right-click on the icon -> "Other actions" -> "remove the custom icon".
#
#If you have installed some icons themes on your PC, you can also select one of them to be used instead of the default icon theme, in the global config window.
_Changing an icon's image =
#X[Resizing icons]
Resizing icons =
#>You can make the icons and the zoom effect smaller or bigger. Open the settings (right-click -> Cairo-Dock -> configure), and go to Appearance (or Icons in advanced mode).
#Note that if there are too many icons inside the dock, they will be zoomed out to fit in the screen.
#Also, you can define the size of each applet independently in their own settings.
_Resizing icons =
#X[Separating icons]
Separators =
#>You can add separators between icons by right-clicking on the dock -> add -> a separator.
#Also, if you enabled the option to separate icons of different types (launchers/applications/applets), a separator will be added automatically between each group.
#In the "panel" view, separators are represented as gap between icons.
_Separators =
#[@pkgdatadir@/icons/icon-taskbar.png]
[Taskbar]
#X[Using the dock as a taskbar]
Using the dock as a taskbar =
#>When an application is running, a corresponding icon will appear in the dock.
#If the application already has a launcher, the icon will not appear, instead its launcher will have a small indicator.
#Note that you can decide which applications should appear in the dock: only the windows of the current desktop, only the hidden windows, separated from the launcher, etc.
_Using the dock as a taskbar =
#X[Closing a window]
Closing a window =
#>You can close a window by middle-clicking on its icon (or from the menu).
_Closing a window =
#X[Minimizing / restauring a window]
Minimizing / restauring a window =
#>Clicking on its icon will bring the window on top.
#When the window has the focus, clicking on its icon will minimize the window.
_Minimizing / restauring a window =
#X[Launching an application several times]
Launching an application several times =
#>You can launch an application several times by SHIFT+clicking on its icon (or from the menu).
_Launching an application several times =
#X[Switching between the windows of a same application]
Switching between the windows of a same application =
#>With your mouse, scroll up/down on one of the icons of the application. Each time you scroll, the next/previous window will be presented to you.
_Switching between the windows of a same application =
#X[Grouping windows of a given application]
Grouping windows of a given application =
#>When an application has several windows, one icon for each window will appear in the dock; they will be grouped togather into a sub-dock.
#Clicking on the main icon will display all the windows of the application side-by-side (if your Window Manager is able to do that).
_Grouping windows of a given application =
#X[Setting a custom icon for an application]
Setting a custom icon for an application =
#>See "Changing an icon's image" in the "Icons" category.
_Setting a custom icon for an application =
#X[Showing windows preview over the icons]
Showing windows preview =
#>You need to run Compiz, and enable the "Window Preview" plug-in in Compiz. Install "ccsm" to be able to configure Compiz.
_Showing windows preview =
preview_compiz =
#G [bash '@pkgdatadir@/scripts/help_scripts.sh' compiz_plugin thumbnail && dbus-send --session --dest=org.freedesktop.compiz /org/freedesktop/compiz/thumbnail/screen0/current_viewport org.freedesktop.compiz.set boolean:false;sh -c "ps aux | grep -v grep | grep -c 'compiz'"]If you're using Compiz, you can click on this button:
#{Tip: If this line is grayed, it's because this tip is not for you.)
preview_compiz_button=
#[@pkgdatadir@/icons/icon-background.svg]
[Docks]
#X[Positionning the dock on the screen]
Positionning the dock on the screen =
#>The dock can be placed anywhere on the screen.
#In the case of the main dock, right-click -> Cairo-Dock -> configure, and then select the position you want.
#In the case of a 2nd or 3rd dock, right-click -> Cairo-Dock -> set up this dock, and then select the position you want.
_Positionning the dock on the screen=
#X[Hiding the dock to use all the screen]
Hiding the dock to use all the screen=
#>The dock can hide itself to let all the screen for applications. But it can also be always visible like a panel.
#To change that, right-click -> Cairo-Dock -> configure, and then select the visibility you want.
#In the case of a 2nd or 3rd dock, right-click -> Cairo-Dock -> set up this dock, and then select the visibility you want.
_Hiding the dock to use all the screen=
##~ #X[Having more than one dock]
##~ Having more than one dock=
##~ #>TODO
##~ _Having more than one dock=
##~
##~ #X[Deleting a dock]
##~ Deleting a dock=
##~ #>TODO
##~ _Deleting a dock=
##~
##~ #X[Changing the look of a dock]
##~ Changing the look of a dock=
##~ #>TODO
##~ _Changing the look of a dock=
#[@pkgdatadir@/icons/icon-desklets.png]
[Desklets]
#X[Placing applets on your desktop]
Placing applets on your desktop =
#>Applets can live inside desklets, which are small windows that can be placed wherever on your desktop.
#To detach an applet from the dock, simply drag and drop it outside the dock.
_Placing applets on your desktop =
#X[Moving desklets]
Moving desklets =
#>Desklets can be moved anywhere simply with the mouse.
#They can also be rotated by dragging the small arrows on the top and left sides.
#If you don't want to move it any more, you can lock its position by right-clicking on it -> "lock position". To unlock it, de-select this option.
_Moving desklets =
#X[Placing desklets]
Placing desklets =
#>From the menu (right-click -> visibility), you can also decide to keep it above other windows, or on the Widget Layer (if you use Compiz), or make a "desklet bar" by placing them on a side of the screen and selecting "reserve space".
#Desklets that don't need interaction (like the clock) can be set transparent to the mouse (means you can click on what is behind them), by clicking on the small bottom-right button.
_Placing desklets =
#X[Changing the desklets decorations]
Changing the desklets decorations =
#>Desklets can have decorations. To change that, open the settings of the applet, go to Desklet, and select the decoration you want (you can provide your own one).
_Changing the desklets decorations =
#[@pkgdatadir@/icons/icon-system.svg]
[Useful Features]
#X[Having a calendar with tasks]
Having a calendar with tasks =
#>Activate the Clock applet.
#Clicking on it will display a calendar.
#Double-clicking on a day will pop-up a task-editor. Here you can add/remove taks.
#When a task has been or is going to be scheduled, the applet will warn you (15mn before the event, and also 1 day before in the case of an anniversary).
_Having a calendar with tasks =
#X[Having a list of all windows]
Having a list of all windows =
#>Activate the Switcher applet.
#Right-clicking on it will give you access to a list containing all the windows, sorted by desktops.
#You can also display the windows side-by-side if your Window-Manager is able to do that.
#You can bind this action to the middle-click.
_Having a list of all windows =
#X[Showing all the desktops]
Showing all the desktops =
#>Activate either the Switcher applet or the Show-Desktop applet.
#Right-click on it -> "show all the desktop".
#You can bind this action to the middle-click.
_Showing all the desktops =
#X[Changing the screen resolution]
Changing the screen resolution =
#>Activate the Show-Desktop applet.
#Right-click on it -> "change resolution" -> select the one you want.
_Changing the screen resolution =
#X[Locking your session]
Locking your session =
#>Activate the Log-out applet.
#Right-click on it -> "lock screen".
#You can bind this action to the middle-click.
_Locking your session =
#X[Quick-launching a program from keyboard (replacing ALT+F2)]
Quick-launching a program from keyboard (replacing ALT+F2) =
#>Activate the Applications Menu applet.
#Middle-click on it, or right-click -> "quick-launch".
#You can bin a shortkey for this action.
#The text is automatically completed (for instance, typing "fir" will be completed into "firefox").
_Quick-launching a program from keyboard (replacing ALT+F2) =
#X[Turning Composite OFF during games]
Turning Composite OFF during games =
#>Activate the Composite Manager applet.
#Clicking on it will disable the Composite, which often makes games more smooth.
#Clicking again on it will enable the Composite.
_Turning Composite OFF during games =
#X[Seeing the hourly weather forecast]
Seeing the hourly weather forecast =
#>Activate the Weather applet.
#Open its settings, go to Configure, and type the name of your city. Press Enter, and select your city from the list that will appear.
#Then validate to close the settings window.
#Now, double-clicking on a day will lead you to the web page of the hourly forecast for this day.
_Seeing the hourly weather forecast =
#X[Adding a file or a web page into the dock]
Adding a file or a web page into the dock =
#>Simply drag a file or an html link and drop it onto the dock (an animated arrow should appear when you can drop).
#It will be added into the Stack. The Stack is a sub-dock that can contain any file or link you want to access quickly.
#You can have several Stacks, and you can drop files/links onto a Stack directly.
_Adding a file or a web page into the dock =
#X[Importing a folder into the dock]
Importing a folder into the dock =
#>Simply drag a folder and drop it onto the dock (an animated arrow should appear when you can drop).
#You can choose to import the folder's files or not.
_Importing a folder into the dock =
#X[Accessing the recent events]
Accessing the recent events =
#>Activate the Recent-Events applet.
#You need to have the Zeitgeist daemon to be running. Install it if it's not present.
#The applet can then display all the files, folders, web pages, songs, videos and documents you have accessed recently, so that you can access them quickly.
_Accessing the recent events =
#X[Quickly opening a recent file with a launcher]
Quickly opening a recent file with a launcher =
#>Activate the Recent-Events applet.
#You need to have the Zeitgeist daemon to be running. Install it if it's not present.
#Now when you right-click on a launcher, all the recent files that can be opened with this launcher will appear in its menu.
_Quickly opening a recent file with a launcher =
#X[Accessing disks]
Accessing disks =
#>Activate the Shortcuts applet.
#Then all the disks (including USB key or external hard drives) will be listed in a sub-dock.
#To unmount a disk before disconnecting it, middle-click on its icon.
_Accessing disks =
#X[Accessing folder bookmarks]
Accessing folder bookmarks =
#>Activate the Shortcuts applet.
#Then all the folders bookmarks (the ones that appear in Nautilus) will be listed in a sub-dock.
#To add a bookmark, simply drag-and-drop a folder onto the applet's icon.
#To remove a bookmark, right-click on its icon -> remove
_Accessing folder bookmarks =
#X[Having multiple instances of an applet]
Having multiple instances of an applet =
#>Some applets can have several instances running at the same time: Clock, Stack, Weather, ...
#Right click on the applet's icon -> "launch another instance".
#You can configure each instance independantely. This allows you, for example, to have the current time for different countries in your dock or the weather in different cities.
_Having multiple instances of an applet =
#X[Adding / removing a desktop]
Adding / removing a desktop =
#>Activate the Switcher applet.
#Right-click on it -> "add a desktop" or "remove this desktop".
#You can even name each of them.
_Adding / removing a desktop =
#X[Controling the sound volume]
Controling the sound volume =
#>Activate the Sound Volume applet.
#Then scroll up/down to increase/decrease the sound.
#Alternatively, you can click on the icon and move the scroll bar.
#Middle-click will mute/unmute.
_Controling the sound volume =
#X[Controling the screen brightness]
Controling the screen brightness =
#>Activate the Screen Luminosity applet.
#Then scroll up/down to increase/decrease the brightness.
#Alternatively, you can click on the icon and move the scroll bar.
_Controling the screen brightness =
#X [Removing completely the gnome-panel]
Xremove=
#> Open gconf-editor, edit the key /desktop/gnome/session/required_components/panel, and replace its content with "cairo-dock".
#Then restart your session : the gnome-panel has not been started, and the dock has been started (if not, you can add it to the startup programs).
remove=
#G [sh -c "gconftool-2 --type string --set /desktop/gnome/session/required_components/panel '(cairo-dock'";sh -c "ps aux | grep -v grep | grep -c 'gnome-settings-daemon'"]If you are on Gnome, you can click on this button in order to automatically modify this key:
#{Tip: If this line is grayed, it's because this tip is not for you.)
widget_compiz=
#[@pkgdatadir@/icons/icon-behavior.svg]
[Troubleshooting]
#W[Forum] If you have any question, don't hesitate to ask on our forum.
forum=http://forum.glx-dock.org
#W[Wiki] Our wiki can also help you, it is more complete on some points.
wiki=http://wiki.glx-dock.org
#X [I have a black background around my dock.]
Xblack=
#> You need to turn on compositing. For instance, you can run Compiz or xcompmgr.
#If you're using XFCE or KDE, you can just enable compositing in the window manager options.
#If you're using Gnome, you can enable it in Metacity in this way :
# Open gconf-editor, edit the key '/apps/metacity/general/compositing_manager' and set it to 'true'.
#{Hint : If you have an ATI or an Intel card, you should try without OpenGL first, because their drivers are not yet perfect.}
black=
#G [gconftool-2 --type bool --set /apps/metacity/general/compositing_manager true;sh -c "ps aux | grep -v grep | grep -c 'metacity'"]If you're on Gnome with Metacity (without Compiz), you can click on this button:
#{Tip: If this line is grayed, it's because this tip is not for you.)
blackMetacity=
#X [My machine is too old to run a composite manager.]
Xfake=
#> Don't panic, Cairo-Dock can emulate the transparency.
#To get rid of the black background, simply enable the corresponding option in the end of the «System» module
fake=
#X [The dock is horribly slow when I move the mouse into it.]
Xslow=
#> If you have an Nvidia GeForce8 graphics card, please install the latest drivers, as the first ones were really buggy.
#If the dock is running without OpenGL, try to reduce the number of icons in the main dock, or try to reduce its size.
#If the dock is running with OpenGL, try to disable it by launching the dock with «cairo-dock -c».
slow=
#X [I don't have these wonderful effects like fire, cube rotating, etc.]
Xeff=
#> You need a graphics card with drivers that support OpenGL2.0. Most Nvidia cards can do this, as can more and more Intel cards. Most ATI cards do not support OpenGL2.0.
#{Tip: You can force OpenGL by launching the dock with «cairo-dock -o».but you might get a lot of visual artifacts.}
eff=
#X [I don't have any themes in the Theme Manager, except the default one.]
Xconn=
#> Be sure that you are connected to the Net.
# If your connection is very slow, you can increase the connection timeout in the "System" module.
# If you're under a proxy, you'll have to configure "curl" to use it; search on the web how to do it (basically, you have to set up the "http_proxy" environment variable).
#{Hint : Up to version 2.1.1-2, wget was used.}
conn=
#v
sep_applet=
#X [The «netspeed» applet displays 0 even when I'm downloading something]
Xnetspeed=
#> You must tell the applet which interface you're using to connect to the Net (by default, this is «eth0»).
#Just edit its configuration, and enter the interface name. To find it, type «ifconfig» in a terminal, and ignore the «loop» interface. It's probably something like «eth1», «ath0», or «wifi0»..
#{Tip: you can run several instances of this applet if you wish to monitor several interfaces.}
netspeed=
#X [The dustbin remains empty even when I delete a file.]
Xdustbin=
#> if you're using KDE, you may have to specify the path to the trash folder.
#Just edit the applet's configuration, and fill in the Trash path; it is probably «~/.locale/share/Trash/files». Be very careful when typing a path here!!! (do not insert spaces or some invisible caracters).
dustbin=
#X [There is no icon in the Applications Menu even though I enable the option.]
XMenu=
#> In Gnome, there is an option that override the dock's one. To enable icons in menus, open 'gconf-editor', go to Desktop / Gnome / Interface and enable the "menus have icons" and the "buttons have icons" options.
Menu=
#G [sh -c "gconftool-2 --type bool --set /desktop/gnome/interface/menus_have_icons true && gconftool-2 --type bool --set /desktop/gnome/interface/buttons_have_icons true; gsettings set org.gnome.desktop.interface buttons-have-icons true && gsettings set org.gnome.desktop.interface menus-have-icons true";sh -c "ps aux | grep -v grep | grep -c 'gnome-settings-daemon'"]If you're on Gnome you can click on this button:
#{Tip: If this line is grayed, it's because this tip is not for you.)
MenuGnome=
#[@pkgdatadir@/cairo-dock.svg]
[The Project]
#F [Join the project!]
frame_project=
#> We value your help! If you see a bug, if you think something could be improved,
#or if you just made a dream about the dock, pay us a visit on glx-dock.org.
#English (and others!) speakers are welcome, so don’t be shy ! ;-)
#
#If you made a theme for the dock or one of the applet, and want to share it, we’ll be happy to integrate it on our server !
help=
#W[Documentation] If you wish to develop an applet, a complete documentation is available here.
doc=http://doc.glx-dock.org
#W[DBus API] If you wish to develop an applet in Python, Perl or any other language,
#or to interact with the dock in any kind of way, a full DBus API is described here.
dbus=http://dbus.glx-dock.org
#>
#
#The Cairo-Dock Team
team=
#F [Websites]
frame_website=
#W[Community site] Problems? Suggestions? Just want to talk to us? Come on over!
community_site=http://glx-dock.org
#W[Development site] Find the latest version of Cairo-Dock here !
dev_site=https://launchpad.net/cairo-dock
#W[Cairo-Dock-Plug-ins-Extras] More applets available online!
extras_site=http://extras.glx-dock.org
#F [Repositories]
frame_repositories=
#W[Debian/Ubuntu] We maintain two repositories for Debian, Ubuntu and other Debian-forked:
# One for stable releases and another which is updated weekly (unstable version)
reposit_wiki_site=http://www.glx-dock.org/ww_page.php?p=From the repository&lang=en
#X [Ubuntu]
#> If you on (x/k/l)Ubuntu, you can easily add our repositories with these buttons
# (if you're using a fork of Ubuntu like Linux Mint, please have a look at our wiki).
ubuntu=
#G [gksu "sh '@pkgdatadir@/scripts/help_scripts.sh' repository no";sh -c "lsb_release -i | grep -c Ubuntu"]If you're on Ubuntu, you can add our 'stable' repository by clicking on this button:
# After that, you can launch your update manager in order to install the latest stable version.
#{Tip: If this line is grayed, it's because this tip is not for you.)
addUbuntuRepo=
#G [gksu "sh '@pkgdatadir@/scripts/help_scripts.sh' weekly no";sh -c "lsb_release -i | grep -c Ubuntu"]If you're on Ubuntu, you can also add our 'weekly' ppa (can be unstable) by clicking on this button:
# After that, you can launch your update manager in order to install the latest weekly version.
#{Tip: If this line is grayed, it's because this tip is not for you.)
addWeeklyRepo=
#X [Debian]
#> If you on Debian, you can easily add our repositories with these buttons
# (Please check if you're using the Stable or the Unstable version of Debian).
debian=
#G [gksu "sh '@pkgdatadir@/scripts/help_scripts.sh' debian_stable no";sh -c "grep -c ^Debian /etc/issue"]If you're on Debian Stable, you can add our 'stable' repository by clicking on this button:
# After that, you can purge all 'cairo-dock*' packages, update the your system and reinstall 'cairo-dock' package.
#{Tip: If this line is grayed, it's because this tip is not for you.)
addDebianStableRepo=
#G [gksu "sh '@pkgdatadir@/scripts/help_scripts.sh' debian_unstable no";sh -c "grep -c ^Debian /etc/issue"]If you're on Debian Unstable, you can add our 'stable' repository by clicking on this button:
# After that, you can purge all 'cairo-dock*' packages, update the your system and reinstall 'cairo-dock' package.
#{Tip: If this line is grayed, it's because this tip is not for you.)
addDebianUnStableRepo=
#[gtk-about]
[Icon]
#F[Icon]
frame_maininfo=
#d Name of the dock it belongs to:
dock name =
#s Name of the icon as it will appear in its caption in the dock:
name =
#v
sep_display=
#S+ Image filename:
#{Leave empty to use the default one.}
icon=preferences-desktop-accessibility
#j[0;128] Desired icon size for this applet
#{Set to 0 to use the default applet size}
icon size = 0;0
order=
#A
handbook=Help
#[gtk-convert]
[Desklet]
#X[Position]
frame_pos =
#b Lock position?
#{If locked, the desklet cannot be moved by simply dragging it with the left mouse button. It can still be moved with ALT + left-click.}
locked = false
#j+[24;512] Desklet dimensions (width x height):
#{Depending on your WindowManager, you may be able to resize this with ALT + middle-click or ALT + left-click.}
size = 96;96
#i[-2048;2048] Desklet position (x, y):
#{Depending on your WindowManager, you may be able to move this with ALT + left-click.. Negative values are counted from the right/bottom of the screen}
x position=0
#i[-2048;2048] ...
y position=0
#I[-180;180] Rotation:
#{You can quickly rotate the desklet with the mouse, by dragging the little buttons on its left and top sides.}
rotation = 0
#X[Visibility]
frame_visi =
#b Is detached from the dock
initially detached=false
#l[Normal;Keep above;Keep below;Keep on widget layer;Reserve space] Visibility:
#{for CompizFusion's "widget layer", set behaviour in Compiz to: (class=Cairo-dock & type=Utility)}
accessibility=0
#b Should be visible on all desktops?
sticky=true
#F[Decorations;gtk-orientation-portrait]
frame_deco=
#o+ Choose a decoration theme for this desklet:
#{Choose 'Custom decorations' to define your own decorations below.}
decorations = default
#v
sep_deco =
#S+ Background image:
#{Image to be displayed below drawings, e.g. a frame. Leave empty for no image.}
bg desklet =
#e+[0;1] Background transparency:
bg alpha = 1
#i+[0;256] Left offset:
#{in pixels. Use this to adjust the left position of drawings.}
left offset = 0
#i+[0;256] Top offset:
#{in pixels. Use this to adjust the top position of drawings.}
top offset = 0
#i+[0;256] Right offset:
#{in pixels. Use this to adjust the right position of drawings.}
right offset = 0
#i+[0;256] Bottom offset:
#{in pixels. Use this to adjust the bottom position of drawings.}
bottom offset = 0
#S+ Foreground image:
#{Image to be displayed above the drawings, e.g. a reflection. Leave empty for no image.}
fg desklet =
#e+[0;1] Foreground tansparency:
fg alpha = 1
cairo-dock-3.4.1+git20201103.0836f5d1/Help/data/icon.svg 0000664 0000000 0000000 00000014774 13750214643 0021475 0 ustar 00root root 0000000 0000000
cairo-dock-3.4.1+git20201103.0836f5d1/Help/src/ 0000775 0000000 0000000 00000000000 13750214643 0017665 5 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/Help/src/CMakeLists.txt 0000664 0000000 0000000 00000002663 13750214643 0022434 0 ustar 00root root 0000000 0000000
########### sources ###############
SET(MODULE_SRCS
applet-struct.h
applet-init.c applet-init.h
applet-config.c applet-config.h
applet-notifications.c applet-notifications.h
applet-tips-dialog.c applet-tips-dialog.h
applet-composite.c applet-composite.h
)
add_library(${PACKAGE_HELP} SHARED ${MODULE_SRCS})
########### compil ###############
add_definitions (-DMY_APPLET_SHARE_DATA_DIR="${helpdatadir}")
add_definitions (-DMY_APPLET_PREVIEW_FILE="icon.svg")
add_definitions (-DMY_APPLET_CONF_FILE="Help.conf")
add_definitions (-DMY_APPLET_USER_DATA_DIR="Help")
add_definitions (-DMY_APPLET_VERSION="${VERSION_HELP}")
add_definitions (-DMY_APPLET_GETTEXT_DOMAIN="${GETTEXT_HELP}")
add_definitions (-DMY_APPLET_DOCK_VERSION="${dock_version}")
add_definitions (-DMY_APPLET_ICON_FILE="icon.svg")
### uncomment the following line to allow multi-instance applet.
#add_definitions (-DCD_APPLET_MULTI_INSTANCE="1")
### uncomment the following line to allow extended OpenGL drawing.
#add_definitions (-DGL_GLEXT_PROTOTYPES="1")
include_directories (
${PACKAGE_INCLUDE_DIRS}
${GTK_INCLUDE_DIRS}
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/src/gldit
${CMAKE_SOURCE_DIR}/src/implementations)
link_directories (
${PACKAGE_LIBRARY_DIRS}
${GTK_LIBRARY_DIRS})
target_link_libraries (${PACKAGE_HELP}
${PACKAGE_LIBRARIES}
${GTK_LIBRARIES})
########### install files ###############
install(TARGETS ${PACKAGE_HELP} DESTINATION ${pluginsdir})
cairo-dock-3.4.1+git20201103.0836f5d1/Help/src/applet-composite.c 0000664 0000000 0000000 00000023316 13750214643 0023323 0 ustar 00root root 0000000 0000000 /**
* This file is a part of the Cairo-Dock project
*
* Copyright : (C) see the 'copyright' file.
* E-mail : see the 'copyright' file.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#include
#include
#include "applet-struct.h"
#include "applet-composite.h"
static void (*s_activate_composite) (gboolean) = NULL;
/////////////////////
/// WM Composite ///
/////////////////////
static void _set_metacity_composite (gboolean bActive)
{
int r;
if (bActive)
r = system ("if test -n \"`dconf read /org/gnome/metacity/compositing-manager`\"; then dconf write /org/gnome/metacity/compositing-manager true; metacity --replace& else gconftool-2 -s '/apps/metacity/general/compositing_manager' --type bool true; fi"); // metacity's new feature : now uses Dconf and crashes after activating the composite
else
r = system ("if test -n \"`dconf read /org/gnome/metacity/compositing-manager`\"; then dconf write /org/gnome/metacity/compositing-manager false; metacity --replace& else gconftool-2 -s '/apps/metacity/general/compositing_manager' --type bool false; fi");
if (r < 0)
cd_warning ("Not able to launch this command: gconftool-2");
}
static void _set_xfwm_composite (gboolean bActive)
{
int r;
if (bActive)
r = system ("xfconf-query -c xfwm4 -p '/general/use_compositing' -t 'bool' -s 'true'");
else
r = system ("xfconf-query -c xfwm4 -p '/general/use_compositing' -t 'bool' -s 'false'");
if (r < 0)
cd_warning ("Not able to launch this command: gconftool-2");
}
static void _set_kwin_composite (gboolean bActive)
{
int r;
if (bActive)
r = system ("[ \"$(qdbus org.kde.kwin /KWin compositingActive)\" == \"false\" ] && qdbus org.kde.kwin /KWin toggleCompositing"); // not active, so activating
else
r = system ("[ \"$(qdbus org.kde.kwin /KWin compositingActive)\" == \"true\" ] && qdbus org.kde.kwin /KWin toggleCompositing"); // active, so deactivating
if (r < 0)
cd_warning ("Not able to launch this command: gconftool-2");
}
///////////////////////
/// Welcome message ///
///////////////////////
static void cd_help_show_welcome_message (void)
{
gldi_dialog_show (D_("Welcome in Cairo-Dock !\n"
"This applet is here to help you start using the dock; just click on it.\n"
"If you have any question/request/remark, please pay us a visit at http://glx-dock.org.\n"
"Hope you will enjoy this soft !\n"
" (you can now click on this dialog to close it)"),
myIcon, myContainer,
0,
"same icon",
NULL, NULL, NULL, NULL);
myData.bFirstLaunch = FALSE;
}
////////////////////////
/// Composite dialog ///
////////////////////////
static inline void _cancel_wm_composite (void)
{
s_activate_composite (FALSE);
}
static void _accept_wm_composite (int iClickedButton, G_GNUC_UNUSED GtkWidget *pInteractiveWidget, gpointer data, G_GNUC_UNUSED CairoDialog *pDialog)
{
cd_debug ("%s (%d)", __func__, iClickedButton);
if (iClickedButton == 1 || iClickedButton == -2) // clic explicite sur "cancel", ou Echap ou auto-delete.
{
_cancel_wm_composite ();
}
gboolean *bAccepted = data;
*bAccepted = TRUE; // l'utilisateur a valide son choix.
}
static void _on_free_wm_dialog (gpointer data)
{
gboolean *bAccepted = data;
cd_debug ("%s (%d)", __func__, *bAccepted);
if (! *bAccepted) // le dialogue s'est detruit sans que l'utilisateur n'ait valide la question => on annule tout.
{
_cancel_wm_composite ();
}
g_free (data);
if (myData.bFirstLaunch)
{
cd_help_show_welcome_message ();
}
}
static void _toggle_remember_choice (GtkCheckButton *pButton, GtkWidget *pDialog)
{
g_object_set_data (G_OBJECT (pDialog), "remember", GINT_TO_POINTER (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (pButton))));
}
static void _on_free_info_dialog (G_GNUC_UNUSED gpointer data)
{
if (myData.bFirstLaunch)
{
cd_help_show_welcome_message ();
}
}
///////////////////////
/// Check composite ///
///////////////////////
void cd_help_enable_composite (void)
{
// find the current WM.
s_activate_composite = NULL;
gchar *cPsef = cairo_dock_launch_command_sync ("pgrep metacity"); // 'ps | grep' ne marche pas, il faut le lancer dans un script :-/
cd_debug ("cPsef: '%s'", cPsef);
if (cPsef != NULL && *cPsef != '\0')
{
s_activate_composite = _set_metacity_composite;
}
else
{
cPsef = cairo_dock_launch_command_sync ("pgrep xfwm");
if (cPsef != NULL && *cPsef != '\0')
{
s_activate_composite = _set_xfwm_composite;
}
else
{
cPsef = cairo_dock_launch_command_sync ("pgrep kwin");
if (cPsef != NULL && *cPsef != '\0')
{
s_activate_composite = _set_kwin_composite;
}
}
}
// if the WM can handle the composite, ask the user if he wants to enable it.
if (s_activate_composite != NULL) // the WM can activate the composite.
{
GtkWidget *pAskBox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
GtkWidget *label = gtk_label_new (D_("Don't ask me any more"));
gldi_dialog_set_widget_text_color (label);
GtkWidget *pCheckBox = gtk_check_button_new ();
gtk_box_pack_end (GTK_BOX (pAskBox), pCheckBox, FALSE, FALSE, 0);
gtk_box_pack_end (GTK_BOX (pAskBox), label, FALSE, FALSE, 0);
g_signal_connect (G_OBJECT (pCheckBox), "toggled", G_CALLBACK(_toggle_remember_choice), pAskBox);
int iClickedButton = gldi_dialog_show_and_wait (D_("To remove the black rectangle around the dock, you need to activate a composite manager.\nDo you want to activate it now?"), myIcon, myContainer, NULL, pAskBox);
gboolean bRememberChoice = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (pCheckBox));
gtk_widget_destroy (pAskBox); // le widget survit a un dialogue bloquant.
if (bRememberChoice) // if not ticked, we'll check the composite on the next startup, and if it's ok, we'll not check it any more.
{
myData.bTestComposite = FALSE;
}
if (iClickedButton == 0 || iClickedButton == -1) // ok or Enter.
{
s_activate_composite (TRUE);
gldi_dialog_show (D_("Do you want to keep this setting?\nIn 15 seconds, the previous setting will be restored."),
myIcon, myContainer,
15e3,
"same icon",
NULL,
(CairoDockActionOnAnswerFunc) _accept_wm_composite,
g_new0 (gboolean, 1),
(GFreeFunc)_on_free_wm_dialog);
}
else if (myData.bFirstLaunch)
{
cd_help_show_welcome_message ();
}
}
else // just notify him about the problem and its solution.
{
gldi_dialog_show (D_("To remove the black rectangle around the dock, you will need to activate a composite manager.\nFor instance, this can be done by activating desktop effects, launching Compiz, or activating the composition in Metacity.\nIf your machine can't support composition, Cairo-Dock can emulate it. This option is in the 'System' module of the configuration, at the bottom of the page."),
myIcon, myContainer,
0,
"same icon",
NULL,
NULL,
NULL,
(GFreeFunc)_on_free_info_dialog);
}
g_free (cPsef);
}
static gboolean cd_help_check_composite (G_GNUC_UNUSED gpointer data)
{
GdkScreen *pScreen = gdk_screen_get_default ();
if (! gdk_screen_is_composited (pScreen)) // no composite yet.
{
cd_debug ("no composite (%d)", myData.iNbTestComposite);
myData.iNbTestComposite ++;
if (myData.iNbTestComposite < 4) // check during 4 seconds.
return TRUE;
cd_help_enable_composite ();
}
else // composite is active, but we don't remember this parameter, since it could change if another session is used one day.
{
if (myData.bFirstLaunch)
{
cd_help_show_welcome_message ();
}
}
// remember if we don't need to check the composite any more.
if (! myData.bTestComposite)
{
gchar *cConfFilePath = g_strdup_printf ("%s/.help", g_cCairoDockDataDir);
cairo_dock_update_conf_file (cConfFilePath,
G_TYPE_BOOLEAN, "Launch", "test composite", myData.bTestComposite,
G_TYPE_INVALID);
g_free (cConfFilePath);
}
myData.iSidTestComposite = 0;
return FALSE;
}
gboolean cd_help_get_params (G_GNUC_UNUSED gpointer data)
{
// read our file.
gchar *cConfFilePath = g_strdup_printf ("%s/.help", g_cCairoDockDataDir);
if (g_file_test (cConfFilePath, G_FILE_TEST_EXISTS)) // file already exists, get the latest state.
{
GKeyFile *pKeyFile = cairo_dock_open_key_file (cConfFilePath);
if (pKeyFile != NULL)
{
myData.iLastTipGroup = g_key_file_get_integer (pKeyFile, "Last Tip", "group", NULL);
myData.iLastTipKey = g_key_file_get_integer (pKeyFile, "Last Tip", "key", NULL);
myData.bTestComposite = g_key_file_get_boolean (pKeyFile, "Launch", "test composite", NULL);
g_key_file_free (pKeyFile);
}
}
else // no file, means it's the first time we are launched.
{
myData.bFirstLaunch = TRUE;
myData.bTestComposite = TRUE;
// create the file with all the entries
cairo_dock_update_conf_file (cConfFilePath,
G_TYPE_BOOLEAN, "Launch", "test composite", myData.bTestComposite,
G_TYPE_INT, "Last Tip", "group", myData.iLastTipGroup,
G_TYPE_INT, "Last Tip", "key", myData.iLastTipKey,
G_TYPE_INVALID);
}
// test the composite in a few seconds (the Composite Manager may not be active yet).
if (myData.bTestComposite/** && ! myContainersParam.bUseFakeTransparency*/)
{
myData.iSidTestComposite = g_timeout_add_seconds (2, cd_help_check_composite, NULL);
}
else if (myData.bFirstLaunch)
{
cd_help_show_welcome_message ();
}
g_free (cConfFilePath);
myData.iSidGetParams = 0;
return FALSE;
}
cairo-dock-3.4.1+git20201103.0836f5d1/Help/src/applet-composite.h 0000775 0000000 0000000 00000001676 13750214643 0023340 0 ustar 00root root 0000000 0000000 /**
* This file is a part of the Cairo-Dock project
*
* Copyright : (C) see the 'copyright' file.
* E-mail : see the 'copyright' file.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#ifndef __APPLET_COMPOSITE__
#define __APPLET_TIPS_DIALOG__
#include
void cd_help_enable_composite (void);
gboolean cd_help_get_params (gpointer data);
#endif
cairo-dock-3.4.1+git20201103.0836f5d1/Help/src/applet-config.c 0000664 0000000 0000000 00000003373 13750214643 0022567 0 ustar 00root root 0000000 0000000 /**
* This file is a part of the Cairo-Dock project
*
* Copyright : (C) see the 'copyright' file.
* E-mail : see the 'copyright' file.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#include
#include
#include "applet-struct.h"
#include "applet-config.h"
//\_________________ Here you have to get all your parameters from the conf file. Use the macros CD_CONFIG_GET_BOOLEAN, CD_CONFIG_GET_INTEGER, CD_CONFIG_GET_STRING, etc. myConfig has been reseted to 0 at this point. This function is called at the beginning of init and reload.
CD_APPLET_GET_CONFIG_BEGIN
CD_APPLET_GET_CONFIG_END
//\_________________ Here you have to free all ressources allocated for myConfig. This one will be reseted to 0 at the end of this function. This function is called right before you get the applet's config, and when your applet is stopped, in the end.
CD_APPLET_RESET_CONFIG_BEGIN
CD_APPLET_RESET_CONFIG_END
//\_________________ Here you have to free all ressources allocated for myData. This one will be reseted to 0 at the end of this function. This function is called when your applet is stopped, in the very end.
CD_APPLET_RESET_DATA_BEGIN
CD_APPLET_RESET_DATA_END
cairo-dock-3.4.1+git20201103.0836f5d1/Help/src/applet-config.h 0000775 0000000 0000000 00000001565 13750214643 0022600 0 ustar 00root root 0000000 0000000 /**
* This file is a part of the Cairo-Dock project
*
* Copyright : (C) see the 'copyright' file.
* E-mail : see the 'copyright' file.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#ifndef __APPLET_CONFIG__
#define __APPLET_CONFIG__
#include
CD_APPLET_CONFIG_H
#endif
cairo-dock-3.4.1+git20201103.0836f5d1/Help/src/applet-init.c 0000664 0000000 0000000 00000007172 13750214643 0022266 0 ustar 00root root 0000000 0000000 /**
* This file is a part of the Cairo-Dock project
*
* Copyright : (C) see the 'copyright' file.
* E-mail : see the 'copyright' file.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#include "stdlib.h"
#include "applet-config.h"
#include "applet-notifications.h"
#include "applet-struct.h"
#include "applet-composite.h"
#include "applet-init.h"
CD_APPLET_DEFINITION (N_("Help"),
2, 4, 0,
CAIRO_DOCK_CATEGORY_BEHAVIOR,
N_("This applet is made to help you.\nClick on its icon to pop up useful tips about the possibilities of Cairo-Dock.\nMiddle-click to open the configuration window.\nRight-click to access some troubleshooting actions."),
"Fabounet (Fabrice Rey)")
//\___________ Here is where you initiate your applet. myConfig is already set at this point, and also myIcon, myContainer, myDock, myDesklet (and myDrawContext if you're in dock mode). The macro CD_APPLET_MY_CONF_FILE and CD_APPLET_MY_KEY_FILE can give you access to the applet's conf-file and its corresponding key-file (also available during reload). If you're in desklet mode, myDrawContext is still NULL, and myIcon's buffers has not been filled, because you may not need them then (idem when reloading).
CD_APPLET_INIT_BEGIN
if (myDesklet)
{
CD_APPLET_SET_DESKLET_RENDERER ("Simple"); // set a desklet renderer.
}
CD_APPLET_SET_DEFAULT_IMAGE_ON_MY_ICON_IF_NONE; // set the default icon if none is specified in conf.
myData.iLastTipGroup = -1;
myData.iLastTipKey = -1;
// get our params, to know if it's the first launch and if we have to check for the composite.
myData.iSidGetParams = g_idle_add_full (G_PRIORITY_LOW,
(GSourceFunc) cd_help_get_params,
NULL,
NULL);
CD_APPLET_REGISTER_FOR_CLICK_EVENT;
CD_APPLET_REGISTER_FOR_MIDDLE_CLICK_EVENT;
CD_APPLET_REGISTER_FOR_BUILD_MENU_EVENT;
CD_APPLET_INIT_END
//\___________ Here is where you stop your applet. myConfig and myData are still valid, but will be reseted to 0 at the end of the function. In the end, your applet will go back to its original state, as if it had never been activated.
CD_APPLET_STOP_BEGIN
CD_APPLET_UNREGISTER_FOR_CLICK_EVENT;
CD_APPLET_UNREGISTER_FOR_MIDDLE_CLICK_EVENT;
CD_APPLET_UNREGISTER_FOR_BUILD_MENU_EVENT;
if (myData.iSidGetParams != 0)
{
g_source_remove (myData.iSidGetParams);
}
CD_APPLET_STOP_END
//\___________ The reload occurs in 2 occasions : when the user changes the applet's config, and when the user reload the cairo-dock's config or modify the desklet's size. The macro CD_APPLET_MY_CONFIG_CHANGED can tell you this. myConfig has already been reloaded at this point if you're in the first case, myData is untouched. You also have the macro CD_APPLET_MY_CONTAINER_TYPE_CHANGED that can tell you if you switched from dock/desklet to desklet/dock mode.
CD_APPLET_RELOAD_BEGIN
if (myDesklet && CD_APPLET_MY_CONTAINER_TYPE_CHANGED) // we are now in a desklet, set a renderer.
{
CD_APPLET_SET_DESKLET_RENDERER ("Simple");
}
if (CD_APPLET_MY_CONFIG_CHANGED)
{
CD_APPLET_SET_DEFAULT_IMAGE_ON_MY_ICON_IF_NONE; // set the default icon if none is specified in conf.
}
CD_APPLET_RELOAD_END
cairo-dock-3.4.1+git20201103.0836f5d1/Help/src/applet-init.h 0000775 0000000 0000000 00000001553 13750214643 0022273 0 ustar 00root root 0000000 0000000 /**
* This file is a part of the Cairo-Dock project
*
* Copyright : (C) see the 'copyright' file.
* E-mail : see the 'copyright' file.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#ifndef __APPLET_INIT__
#define __APPLET_INIT__
#include
CD_APPLET_H
#endif
cairo-dock-3.4.1+git20201103.0836f5d1/Help/src/applet-notifications.c 0000664 0000000 0000000 00000023060 13750214643 0024166 0 ustar 00root root 0000000 0000000 /**
* This file is a part of the Cairo-Dock project
*
* Copyright : (C) see the 'copyright' file.
* E-mail : see the 'copyright' file.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#include
#include
#include "cairo-dock-struct.h"
#include "cairo-dock-gui-backend.h"
#include "implementations/cairo-dock-compiz-integration.h"
#include "applet-struct.h"
#include "applet-tips-dialog.h"
#include "applet-composite.h"
#include "applet-notifications.h"
#define CAIRO_DOCK_WIKI_URL "http://wiki.glx-dock.org" // it's in French if the locale is FR with Firefox. If not, the user can choose its language.
#define CD_UNITY_COMPIZ_PLUGIN "unityshell"
//\___________ Define here the action to be taken when the user left-clicks on your icon or on its subdock or your desklet. The icon and the container that were clicked are available through the macros CD_APPLET_CLICKED_ICON and CD_APPLET_CLICKED_CONTAINER. CD_APPLET_CLICKED_ICON may be NULL if the user clicked in the container but out of icons.
CD_APPLET_ON_CLICK_BEGIN
if (myData.iSidGetParams == 0 && myData.iSidTestComposite == 0) // if we're testing the composite, don't pop up a dialog that could disturb the composite dialog.
cairo_dock_show_tips ();
CD_APPLET_ON_CLICK_END
//\___________ Same as ON_CLICK, but with middle-click.
CD_APPLET_ON_MIDDLE_CLICK_BEGIN
cairo_dock_show_main_gui ();
CD_APPLET_ON_MIDDLE_CLICK_END
//\___________ Define here the entries you want to add to the menu when the user right-clicks on your icon or on its subdock or your desklet. The icon and the container that were clicked are available through the macros CD_APPLET_CLICKED_ICON and CD_APPLET_CLICKED_CONTAINER. CD_APPLET_CLICKED_ICON may be NULL if the user clicked in the container but out of icons. The menu where you can add your entries is available throught the macro CD_APPLET_MY_MENU; you can add sub-menu to it if you want.
static void _cd_show_config (G_GNUC_UNUSED GtkMenuItem *menu_item, G_GNUC_UNUSED gpointer data)
{
cairo_dock_show_main_gui ();
}
static void _cd_show_help_gui (G_GNUC_UNUSED GtkMenuItem *menu_item, G_GNUC_UNUSED gpointer data)
{
cairo_dock_show_items_gui (myIcon, myContainer, myApplet, -1);
}
static void _launch_url (const gchar *cURL)
{
if (! cairo_dock_fm_launch_uri (cURL))
{
gchar *cCommand = g_strdup_printf ("\
which xdg-open > /dev/null && xdg-open \"%s\" & || \
which firefox > /dev/null && firefox \"%s\" & || \
which konqueror > /dev/null && konqueror \"%s\" & || \
which iceweasel > /dev/null && iceweasel \"%s\" & || \
which chromium-browser > /dev/null && chromium-browser \"%s\" & || \
which midori > /dev/null && midori \"%s\" & || \
which epiphany > /dev/null && epiphany \"%s\" & || \
which opera > /dev/null && opera \"%s\" &",
cURL,
cURL,
cURL,
cURL,
cURL,
cURL,
cURL,
cURL); // not very nice but it works ^_^
int r = system (cCommand);
if (r < 0)
cd_warning ("Not able to launch this command: %s", cCommand);
g_free (cCommand);
}
}
static void _cd_show_help_online (G_GNUC_UNUSED GtkMenuItem *menu_item, G_GNUC_UNUSED gpointer data)
{
_launch_url (CAIRO_DOCK_WIKI_URL);
}
static gboolean _is_gnome_panel_running (void) // only for Gnome2
{
gboolean bResult = FALSE;
gchar *cWhich = cairo_dock_launch_command_sync ("which gconftool-2");
if (cWhich != NULL && *cWhich == '/')
{
gchar *cPanel = cairo_dock_launch_command_sync ("gconftool-2 -g '/desktop/gnome/session/required_components/panel'");
if (cPanel && strcmp (cPanel, "gnome-panel") == 0)
bResult = TRUE;
g_free (cPanel);
}
g_free (cWhich);
return bResult;
}
static void _cd_remove_gnome_panel (G_GNUC_UNUSED GtkMenuItem *menu_item, G_GNUC_UNUSED gpointer data)
{
int r = system ("gconftool-2 -s '/desktop/gnome/session/required_components/panel' --type string \"\"");
if (r < 0)
cd_warning ("Not able to launch this command: gconftool-2");
}
static void _on_got_active_plugins (DBusGProxy *proxy, DBusGProxyCall *call_id, G_GNUC_UNUSED gpointer data)
{
cd_debug ("%s ()", __func__);
// get the active plug-ins.
GError *error = NULL;
gchar **plugins = NULL;
dbus_g_proxy_end_call (proxy,
call_id,
&error,
G_TYPE_STRV,
&plugins,
G_TYPE_INVALID);
if (error)
{
cd_warning ("compiz got active plug-ins error: %s", error->message);
g_error_free (error);
return;
}
g_return_if_fail (plugins != NULL);
// look for the 'Unity' plug-in.
gboolean bFound = FALSE;
int i;
for (i = 0; plugins[i] != NULL; i++)
{
cd_debug ("Compiz Plugin: %s", plugins[i]);
if (strcmp (plugins[i], CD_UNITY_COMPIZ_PLUGIN) == 0)
{
bFound = TRUE;
break;
}
}
// if present, remove it from the list and send it back to Compiz.
if (bFound)
{
g_free (plugins[i]); // remove this entry
plugins[i] = NULL;
i ++;
for (;plugins[i] != NULL; i++) // move all other entries after it to the left.
{
plugins[i-1] = plugins[i];
plugins[i] = NULL;
}
/** dbus_g_proxy_call (proxy,
"set",
&error,
G_TYPE_STRV,
plugins,
G_TYPE_INVALID,
G_TYPE_INVALID); // It seems it doesn't work with dbus_g_proxy_call_no_reply() and Compiz-0.9 (compiz (core) - Warn: Can't set Value with type 12 to option "active_plugins" with type 11 (with dbus-send too...) => it may be better with dbus_g_proxy_call(), at least maybe we can get a more comprehensive error message. if nothing works, we should report a bug to Compiz.
// it's a known bug in Compiz (https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/749084)
if (error)
{
cd_warning ("compiz activate plug-ins error: %s", error->message);
g_error_free (error);
return;
}*/
gchar *cPluginsList = g_strjoinv (",", plugins);
cd_debug ("Compiz Plugins List: %s", cPluginsList);
cairo_dock_launch_command_printf ("bash "MY_APPLET_SHARE_DATA_DIR"/scripts/help_scripts.sh \"compiz_new_replace_list_plugins\" \"%s\"",
NULL,
cPluginsList);
int r = system ("killall unity-panel-service"); // to have the main gtk menu back.
if (r < 0)
cd_warning ("Not able to launch this command: killall");
g_free (cPluginsList);
}
else // should not happen since we detect Unity before proposing this action.
{
cd_warning ("Unity is already disabled.");
}
g_strfreev (plugins);
}
static void _cd_remove_unity (G_GNUC_UNUSED GtkMenuItem *menu_item, G_GNUC_UNUSED gpointer data)
{
// first get the active plug-ins.
DBusGProxy *pActivePluginsProxy = cairo_dock_create_new_session_proxy (
CD_COMPIZ_BUS,
CD_COMPIZ_OBJECT"/core/screen0/active_plugins", // this code runs for Compiz > 0.9 only.
CD_COMPIZ_INTERFACE);
dbus_g_proxy_begin_call (pActivePluginsProxy,
"get",
(DBusGProxyCallNotify) _on_got_active_plugins,
NULL,
NULL,
G_TYPE_INVALID);
///g_object_unref (pActivePluginsProxy);
}
static gboolean _is_unity_running (void)
{
// Compiz < 0.9 can't have Unity.
if (! cd_is_the_new_compiz ())
return FALSE; // it's just to not have useless warning (but it will launch 'compiz --version' command)
// get the list of active plug-ins
// (we can't use dbus_g_proxy_begin_call(), because we need the answer now, to know if we'll add an entry in the menu or not. We could modify the menu afterwards, but that seems unnecessarily complicated.
gboolean bIsPresent = FALSE;
DBusGProxy *pActivePluginsProxy = cairo_dock_create_new_session_proxy (
CD_COMPIZ_BUS,
CD_COMPIZ_OBJECT"/core/screen0/active_plugins", // this code runs for Compiz > 0.9 only.
CD_COMPIZ_INTERFACE);
gchar **plugins = NULL;
GError *erreur=NULL;
dbus_g_proxy_call (pActivePluginsProxy, "get", &erreur,
G_TYPE_INVALID,
G_TYPE_STRV, &plugins,
G_TYPE_INVALID);
if (erreur != NULL)
{
cd_warning (erreur->message);
g_error_free (erreur);
g_object_unref (pActivePluginsProxy);
return FALSE;
}
g_return_val_if_fail (plugins != NULL, FALSE);
// look for the 'Unity' plug-in.
int i;
for (i = 0; plugins[i] != NULL; i++)
{
cd_debug ("Compiz Plugin: %s", plugins[i]);
if (strcmp (plugins[i], CD_UNITY_COMPIZ_PLUGIN) == 0)
{
bIsPresent = TRUE;
break;
}
}
g_strfreev (plugins);
g_object_unref (pActivePluginsProxy);
return bIsPresent;
}
CD_APPLET_ON_BUILD_MENU_BEGIN
gchar *cLabel = g_strdup_printf ("%s (%s)", D_("Open global settings"), D_("middle-click"));
CD_APPLET_ADD_IN_MENU_WITH_STOCK (cLabel, GLDI_ICON_NAME_PREFERENCES, _cd_show_config, CD_APPLET_MY_MENU);
g_free (cLabel);
GdkScreen *pScreen = gdk_screen_get_default ();
if (! gdk_screen_is_composited (pScreen))
CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Activate composite"), GLDI_ICON_NAME_EXECUTE, cd_help_enable_composite, CD_APPLET_MY_MENU);
if (_is_gnome_panel_running ())
CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Disable the gnome-panel"), GLDI_ICON_NAME_REMOVE, _cd_remove_gnome_panel, CD_APPLET_MY_MENU);
if (_is_unity_running ())
CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Disable Unity"), GLDI_ICON_NAME_REMOVE, _cd_remove_unity, CD_APPLET_MY_MENU);
CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Help"), GLDI_ICON_NAME_HELP, _cd_show_help_gui, CD_APPLET_MY_MENU);
CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Online help"), GLDI_ICON_NAME_HELP, _cd_show_help_online, CD_APPLET_MY_MENU);
CD_APPLET_ON_BUILD_MENU_END
cairo-dock-3.4.1+git20201103.0836f5d1/Help/src/applet-notifications.h 0000775 0000000 0000000 00000001700 13750214643 0024173 0 ustar 00root root 0000000 0000000 /**
* This file is a part of the Cairo-Dock project
*
* Copyright : (C) see the 'copyright' file.
* E-mail : see the 'copyright' file.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#ifndef __APPLET_NOTIFICATIONS__
#define __APPLET_NOTIFICATIONS__
#include
CD_APPLET_ON_CLICK_H
CD_APPLET_ON_MIDDLE_CLICK_H
CD_APPLET_ON_BUILD_MENU_H
#endif
cairo-dock-3.4.1+git20201103.0836f5d1/Help/src/applet-struct.h 0000775 0000000 0000000 00000002407 13750214643 0022653 0 ustar 00root root 0000000 0000000 /**
* This file is a part of the Cairo-Dock project
*
* Copyright : (C) see the 'copyright' file.
* E-mail : see the 'copyright' file.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#ifndef __CD_APPLET_STRUCT__
#define __CD_APPLET_STRUCT__
#include
//\___________ structure containing the applet's configuration parameters.
struct _AppletConfig {
int no_param_yet;
} ;
//\___________ structure containing the applet's data, like surfaces, dialogs, results of calculus, etc.
struct _AppletData {
guint iSidGetParams;
gboolean bFirstLaunch;
gint iLastTipGroup;
gint iLastTipKey;
gboolean bTestComposite;
guint iSidTestComposite;
gint iNbTestComposite;
} ;
#endif
cairo-dock-3.4.1+git20201103.0836f5d1/Help/src/applet-tips-dialog.c 0000664 0000000 0000000 00000026043 13750214643 0023535 0 ustar 00root root 0000000 0000000 /**
* This file is a part of the Cairo-Dock project
*
* Copyright : (C) see the 'copyright' file.
* E-mail : see the 'copyright' file.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#include
#include
#include "applet-struct.h"
#include "applet-tips-dialog.h"
static void _on_tips_category_changed (GtkComboBox *pWidget, gpointer *data);
typedef struct {
GKeyFile *pKeyFile;
gchar **pGroupList;
gint iNbGroups;
gchar **pKeyList; // keys of the current group
gsize iNbKeys;
gint iNumTipGroup; // current group being displayed.
gint iNumTipKey; // current key being displayed.
GtkWidget *pCategoryCombo;
} CDTipsData;
static void _cairo_dock_get_next_tip (CDTipsData *pTips)
{
pTips->iNumTipKey ++; // skip the current expander to go to the current label, which will be skipped in the first iteration.
const gchar *cGroupName = pTips->pGroupList[pTips->iNumTipGroup];
gboolean bOk;
do
{
pTips->iNumTipKey ++;
if (pTips->iNumTipKey >= (gint) pTips->iNbKeys) // no more key, go to next group.
{
pTips->iNumTipGroup ++;
if (pTips->iNumTipGroup >= pTips->iNbGroups) // no more group, restart from first group.
pTips->iNumTipGroup = 0;
pTips->iNumTipKey = 0;
// since the group has changed, get the keys again.
g_strfreev (pTips->pKeyList);
cGroupName = pTips->pGroupList[pTips->iNumTipGroup];
pTips->pKeyList = g_key_file_get_keys (pTips->pKeyFile, cGroupName, &pTips->iNbKeys, NULL);
// and update the category in the comb
g_signal_handlers_block_matched (pTips->pCategoryCombo,
G_SIGNAL_MATCH_FUNC,
0,
0,
0,
_on_tips_category_changed,
NULL);
gtk_combo_box_set_active (GTK_COMBO_BOX (pTips->pCategoryCombo), pTips->iNumTipGroup);
g_signal_handlers_unblock_matched (pTips->pCategoryCombo,
G_SIGNAL_MATCH_FUNC,
0,
0,
0,
_on_tips_category_changed,
NULL);
}
// check if the key is an expander widget.
const gchar *cKeyName = pTips->pKeyList[pTips->iNumTipKey];
gchar *cKeyComment = g_key_file_get_comment (pTips->pKeyFile, cGroupName, cKeyName, NULL);
bOk = (cKeyComment && *cKeyComment == CAIRO_DOCK_WIDGET_EXPANDER); // whether it's an expander.
g_free (cKeyComment);
} while (!bOk);
}
static void _cairo_dock_get_previous_tip (CDTipsData *pTips)
{
pTips->iNumTipKey --;
const gchar *cGroupName = pTips->pGroupList[pTips->iNumTipGroup];
gboolean bOk;
do
{
pTips->iNumTipKey --;
if (pTips->iNumTipKey < 0) // no more key, go to previous group.
{
pTips->iNumTipGroup --;
if (pTips->iNumTipGroup < 0) // no more group, restart from the last group.
pTips->iNumTipGroup = pTips->iNbGroups - 1;
// since the group has changed, get the keys again.
g_strfreev (pTips->pKeyList);
cGroupName = pTips->pGroupList[pTips->iNumTipGroup];
pTips->pKeyList = g_key_file_get_keys (pTips->pKeyFile, cGroupName, &pTips->iNbKeys, NULL);
pTips->iNumTipKey = pTips->iNbKeys - 2;
// and update the category in the comb
g_signal_handlers_block_matched (pTips->pCategoryCombo,
G_SIGNAL_MATCH_FUNC,
0,
0,
0,
_on_tips_category_changed,
NULL);
gtk_combo_box_set_active (GTK_COMBO_BOX (pTips->pCategoryCombo), pTips->iNumTipGroup);
g_signal_handlers_unblock_matched (pTips->pCategoryCombo,
G_SIGNAL_MATCH_FUNC,
0,
0,
0,
_on_tips_category_changed,
NULL);
}
// check if the key is an expander widget.
const gchar *cKeyName = pTips->pKeyList[pTips->iNumTipKey];
gchar *cKeyComment = g_key_file_get_comment (pTips->pKeyFile, cGroupName, cKeyName, NULL);
bOk = (cKeyComment && *cKeyComment == CAIRO_DOCK_WIDGET_EXPANDER); // whether it's an expander.
} while (!bOk);
}
static gchar *_build_tip_text (CDTipsData *pTips)
{
const gchar *cGroupName = pTips->pGroupList[pTips->iNumTipGroup];
const gchar *cKeyName1 = pTips->pKeyList[pTips->iNumTipKey];
const gchar *cKeyName2 = pTips->pKeyList[pTips->iNumTipKey+1];
char iElementType;
guint iNbElements = 0;
gboolean bAligned;
const gchar *cHint1 = NULL; // points on the comment.
gchar **pAuthorizedValuesList1 = NULL;
gchar *cKeyComment1 = g_key_file_get_comment (pTips->pKeyFile, cGroupName, cKeyName1, NULL);
cairo_dock_parse_key_comment (cKeyComment1, &iElementType, &iNbElements, &pAuthorizedValuesList1, &bAligned, &cHint1); // points on the comment.
const gchar *cHint2 = NULL;
gchar **pAuthorizedValuesList2 = NULL;
gchar *cKeyComment2 = g_key_file_get_comment (pTips->pKeyFile, cGroupName, cKeyName2, NULL);
const gchar *cText2 = cairo_dock_parse_key_comment (cKeyComment2, &iElementType, &iNbElements, &pAuthorizedValuesList2, &bAligned, &cHint2);
gchar *cText = g_strdup_printf ("%s\n\n%s\n\n%s",
_("Tips and Tricks"),
(pAuthorizedValuesList1 ? gettext (pAuthorizedValuesList1[0]) : ""),
gettext (cText2));
g_strfreev (pAuthorizedValuesList1);
g_strfreev (pAuthorizedValuesList2);
g_free (cKeyComment1);
g_free (cKeyComment2);
return cText;
}
static void _update_tip_text (CDTipsData *pTips, CairoDialog *pDialog)
{
gchar *cText = _build_tip_text (pTips);
gldi_dialog_set_message (pDialog, cText);
g_free (cText);
}
static void _tips_dialog_action (int iClickedButton, G_GNUC_UNUSED GtkWidget *pInteractiveWidget, CDTipsData *pTips, CairoDialog *pDialog)
{
cd_debug ("%s (%d)", __func__, iClickedButton);
if (iClickedButton == 2 || iClickedButton == -1) // click on "next", or Enter.
{
// show the next tip
_cairo_dock_get_next_tip (pTips);
_update_tip_text (pTips, pDialog);
gldi_object_ref (GLDI_OBJECT(pDialog)); // keep the dialog alive.
}
else if (iClickedButton == 1) // click on "previous"
{
// show the previous tip
_cairo_dock_get_previous_tip (pTips);
_update_tip_text (pTips, pDialog);
gldi_object_ref (GLDI_OBJECT(pDialog)); // keep the dialog alive.
}
else // click on "close" or Escape
{
myData.iLastTipGroup = pTips->iNumTipGroup;
myData.iLastTipKey = pTips->iNumTipKey;
gchar *cConfFilePath = g_strdup_printf ("%s/.help", g_cCairoDockDataDir);
cairo_dock_update_conf_file (cConfFilePath,
G_TYPE_INT, "Last Tip", "group", pTips->iNumTipGroup,
G_TYPE_INT, "Last Tip", "key", pTips->iNumTipKey,
G_TYPE_INVALID);
g_free (cConfFilePath);
}
cd_debug ("tips : %d/%d", pTips->iNumTipGroup, pTips->iNumTipKey);
}
static void _on_free_tips_dialog (CDTipsData *pTips)
{
g_key_file_free (pTips->pKeyFile);
g_strfreev (pTips->pGroupList);
g_strfreev (pTips->pKeyList);
g_free (pTips);
}
static void _on_tips_category_changed (GtkComboBox *pWidget, gpointer *data)
{
CDTipsData *pTips = data[0];
CairoDialog *pDialog = data[1];
int iNumItem = gtk_combo_box_get_active (pWidget);
g_return_if_fail (iNumItem < pTips->iNbGroups);
pTips->iNumTipGroup = iNumItem;
// since the group has changed, get the keys again.
g_strfreev (pTips->pKeyList);
const gchar *cGroupName = pTips->pGroupList[pTips->iNumTipGroup];
pTips->pKeyList = g_key_file_get_keys (pTips->pKeyFile, cGroupName, &pTips->iNbKeys, NULL);
pTips->iNumTipKey = 0;
_update_tip_text (pTips, pDialog);
}
void cairo_dock_show_tips (void)
{
if (myData.iSidGetParams != 0)
return;
// open the tips file
const gchar *cConfFilePath = CD_APPLET_MY_CONF_FILE;
GKeyFile *pKeyFile = cairo_dock_open_key_file (cConfFilePath);
g_return_if_fail (pKeyFile != NULL);
gsize iNbGroups = 0;
gchar **pGroupList = g_key_file_get_groups (pKeyFile, &iNbGroups);
iNbGroups -= 4; // skip the last 4 groups (Troubleshooting and Contribute + Icon and Desklet).
g_return_if_fail (pGroupList != NULL && iNbGroups > 0);
// get the last displayed tip.
guint iNumTipGroup, iNumTipKey;
if (myData.iLastTipGroup < 0 || myData.iLastTipKey < 0) // first time we display a tip.
{
iNumTipGroup = iNumTipKey = 0;
}
else
{
iNumTipGroup = myData.iLastTipGroup;
iNumTipKey = myData.iLastTipKey;
if (iNumTipGroup >= iNbGroups) // be sure to stay inside the limits.
{
iNumTipGroup = iNbGroups - 1;
iNumTipKey = 0;
}
}
const gchar *cGroupName = pGroupList[iNumTipGroup];
gsize iNbKeys = 0;
gchar **pKeyList = g_key_file_get_keys (pKeyFile, cGroupName, &iNbKeys, NULL);
g_return_if_fail (pKeyList != NULL && iNbKeys > 0);
if (iNumTipKey >= iNbKeys) // be sure to stay inside the limits.
iNumTipKey = 0;
CDTipsData *pTips = g_new0 (CDTipsData, 1);
pTips->pKeyFile = pKeyFile;
pTips->pGroupList = pGroupList;
pTips->iNbGroups = iNbGroups;
pTips->pKeyList = pKeyList;
pTips->iNbKeys = iNbKeys;
pTips->iNumTipGroup = iNumTipGroup;
pTips->iNumTipKey = iNumTipKey;
// update to the next tip.
if (myData.iLastTipGroup >= 0 && myData.iLastTipKey >= 0) // a previous tip exist => take the next one;
_cairo_dock_get_next_tip (pTips);
// build a list of the available groups.
GtkWidget *pInteractiveWidget = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
GtkWidget *pComboBox = gtk_combo_box_text_new ();
guint i;
for (i = 0; i < iNbGroups; i ++)
{
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (pComboBox), gettext (pGroupList[i]));
}
gtk_combo_box_set_active (GTK_COMBO_BOX (pComboBox), pTips->iNumTipGroup);
pTips->pCategoryCombo = pComboBox;
static gpointer data_combo[2];
data_combo[0] = pTips; // the 2nd data is the dialog, we'll set it after we make it.
g_signal_connect (G_OBJECT (pComboBox), "changed", G_CALLBACK(_on_tips_category_changed), data_combo);
GtkWidget *pJumpBox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
GtkWidget *label = gtk_label_new (_("Category"));
gldi_dialog_set_widget_text_color (label);
gtk_box_pack_end (GTK_BOX (pJumpBox), pComboBox, FALSE, FALSE, 0);
gtk_box_pack_end (GTK_BOX (pJumpBox), label, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (pInteractiveWidget), pJumpBox, FALSE, FALSE, 0);
// build the dialog.
gchar *cText = _build_tip_text (pTips);
CairoDialogAttr attr;
memset (&attr, 0, sizeof (CairoDialogAttr));
attr.cText = cText;
attr.cImageFilePath = NULL;
attr.pInteractiveWidget = pInteractiveWidget;
attr.pActionFunc = (CairoDockActionOnAnswerFunc)_tips_dialog_action;
attr.pUserData = pTips;
attr.pFreeDataFunc = (GFreeFunc)_on_free_tips_dialog;
/// GTK_STOCK is now deprecated, here is a temporary fix to avoid compilation errors
#if GTK_CHECK_VERSION(3, 9, 8)
const gchar *cButtons[] = {"cancel", "gtk-go-forward-rtl", "gtk-go-forward-ltr", NULL};
#else
const gchar *cButtons[] = {"cancel", GTK_STOCK_GO_FORWARD"-rtl", GTK_STOCK_GO_FORWARD"-ltr", NULL};
#endif
attr.cButtonsImage = cButtons;
attr.bUseMarkup = TRUE;
attr.pIcon = myIcon;
attr.pContainer = myContainer;
CairoDialog *pTipsDialog = gldi_dialog_new (&attr);
data_combo[1] = pTipsDialog;
g_free (cText);
}
cairo-dock-3.4.1+git20201103.0836f5d1/Help/src/applet-tips-dialog.h 0000775 0000000 0000000 00000001615 13750214643 0023543 0 ustar 00root root 0000000 0000000 /**
* This file is a part of the Cairo-Dock project
*
* Copyright : (C) see the 'copyright' file.
* E-mail : see the 'copyright' file.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#ifndef __APPLET_TIPS_DIALOG__
#define __APPLET_TIPS_DIALOG__
#include
void cairo_dock_show_tips (void);
#endif
cairo-dock-3.4.1+git20201103.0836f5d1/INSTALL 0000664 0000000 0000000 00000014561 13750214643 0017246 0 ustar 00root root 0000000 0000000 Basics:
-------
To compile the core or the plug-ins, just copy-paste these lines into a terminal (assuming you are in the main directory of the core/plug-ins):
-------------------------------------------------
cmake CMakeLists.txt -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install
-------------------------------------------------
Notes:
------
Install the dock first, and then compile the plug-ins. For more details, have a look at this webpage: http://www.glx-dock.org/ww_page.php?p=By%20compiling&lang=en
If you choose to install in another folder than /usr, you must specify the same prefix for both core and plug-ins (and specify this folder in LD_LIBRARY_PATH and PKG_CONFIG_PATH).
You can launch 'cmake' and 'make' commands from another directory, it's maybe cleaner:
-------------------------------------------------
mkdir build/
cd build/
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install
-------------------------------------------------
For 64bits (x86_64) architectures, the libraries are installed in a 'lib64' directory by default but it seems it can be a problem for some distributions (e.g.: ArchLinux). If you have a problem by launching Cairo-Dock, you can compile it (core and its plug-ins) with the flag "FORCE_NOT_LIB64":
$ cmake CMakeLists.txt -DCMAKE_INSTALL_PREFIX=/usr -DFORCE_NOT_LIB64=yes
You can also force another prefix for this librairy directory with "LIB_SUFFIX" flag, e.g. for 'lib32' directory:
$ cmake CMakeLists.txt -DCMAKE_INSTALL_PREFIX=/usr -DLIB_SUFFIX=32
Plug-ins are compiled all at once, but you can skip some of them. Unstable plug-ins are skipped by default, unless you add "-Denable-xxx=yes", where xxx is the name of the plug-in.
See the "Applets.stable" file in the "plug-ins" folder for an exhaustive list of stable applets (that are effectively integrated into the official package).
Some CMake flags:
* Core and plug-ins:
-Dforce-icon-in-menus=OFF to not force the display of icons in GtkMenus created by the dock
* Core:
-Denable-desktop-manager=ON to add 'Cairo-Dock Session' which will use 'gnome-session' to launch a session with GNOME, Compiz and Cairo-Dock
* Plug-ins:
All applets/plugins which need extras dependences can be disabled by using: -Denabled-xxx=OFF where 'xxx' is the name of the plug-in ; e.g. -Denable-gmenu=OFF
Notes: it's not a good idea to do that when creating packages for a distribution. You can find all these flags by launching this command:
$ grep enable_if_not_defined cairo-dock-plug-ins/CMakeLists.txt
Notes to packagers/maintainers:
-------------------------------
You can use these CMake flags to install some files in other directories:
CMAKE_INSTALL_BINDIR (default: 'bin')
CMAKE_INSTALL_LIBDIR (default: 'lib' or 'lib64' on Debian 64bit distributions or forks)
CMAKE_INSTALL_INCLUDEDIR (default: 'include')
CMAKE_INSTALL_DATAROOTDIR (default: 'share')
CMAKE_INSTALL_DATADIR (default: DATAROOTDIR)
CMAKE_INSTALL_LOCALEDIR (default: DATAROOTDIR'/locale')
CMAKE_INSTALL_MANDIR (default: DATAROOTDIR'/man')
Note that cairo-dock-plug-ins project needs the same version as the core.
We advice to create a few packages:
* cairo-dock: a meta-package to install cairo-dock-core, cairo-dock-plug-ins, cairo-dock-plug-ins-integration and cairo-dock-plug-ins-dbus-interface-python
* cairo-dock-core: with the binary (usr/bin)
* cairo-dock-data: with common files (usr/share)
* libgldiX: with the .so file (lib/libgldiX.so.*)
* libgldi-dev: files needed to compile the plug-ins (usr/include, usr/lib/pkgconfig, usr/lib/libgldiX.so)
* cairo-dock-plug-ins: with binaries files (usr/lib/cairo-dock/libcd-*.so)
* cairo-dock-plug-ins-data: with common files (usr/share/locale, usr/share/cairo-dock, usr/lib/cairo-dock/*(!.so))
* cairo-dock-plug-ins-integration: these files do NOT require any dependences, these plugins are automatically enabled if you're using gnome/kde/xfce. Note that it will try to use gvfs by default. (usr/lib/cairo-dock/libcd_*.so)
* cairo-dock-plug-ins-dbus-interface-mono: with files of the mono interface (needed to launch 'third-party' applets made in Mono) (usr/lib/cli/cairo-dock-plug-ins/CDApplet*.dll)
* cairo-dock-plug-ins-dbus-interface-python: with files of the Python interface (needed to launch 'third-party' applets made in Python) (usr/lib/python*/dist-packages/*.py)
* cairo-dock-plug-ins-dbus-interface-ruby: with files of the Ruby interface (needed to launch 'third-party' applets made in Ruby) (usr/lib/ruby*)
* cairo-dock-plug-ins-dbus-interface-vala: with files of the Vala interface (needed to launch 'third-party' applets made in Vala) (usr/lib/libCDApplet.so,usr/lib/pkgconfig/CDApplet.pc, usr/share/vala*)
About the Python interface, this CMake flag is needed to install files in another directory: -DROOT_PREFIX=/PATH/TO/YOUR/DIR
About the Cairo-Dock session, it uses gnome-session (>= 3.0) and this CMake flag is needed (for cairo-dock-core): -Denable-desktop-manager=yes
We are maintaining Ubuntu packages: https://launchpad.net/~cairo-dock-team/+archive/ppa/+packages
Feel free to have a look at the debian directory to have a few examples.
And don't hesitate to report any bugs and ideas and to propose patches ;)
If you like this project:
-------------------------
There are various ways to help us ;)
http://glx-dock.org/ww_page.php?p=How%20to%20help%20us&lang=en
Notes to developers:
--------------------
This project is mostly coded in C but applets can be coded in various languages (Python, Ruby, Vala, Mono, Bash, etc.)
Please have a look at this webpage for more details: http://glx-dock.org/ww_page.php?p=Documentation&lang=en
To build the Cairo-Dock documentation, use the generate-doc.sh script in the 'doc' directory of the core.
Thanks for using Cairo-Dock, hope you will enjoy it ! ^_^
Website: http://glx-dock.org/
Project: https://launchpad.net/cairo-dock
Wiki: http://wiki.glx-dock.org/
Forum: http://forum.glx-dock.org/
Screenshots: http://pics.glx-dock.org/
Documentation: http://doc.glx-dock.org/
API DBus: http://dbus.glx-dock.org/
Applets extras: http://extras.glx-dock.org/
Identi.ca: http://identi.ca/cairodock
Twitter: http://twitter.com/cairodock
Google +: https://plus.google.com/106693551620606700380/
Flattr: https://flattr.com/thing/370779/Support-Cairo-Dock-development
Paypal & How to help us: http://glx-dock.org/ww_page.php?p=How%20to%20help%20us&lang=en
cairo-dock-3.4.1+git20201103.0836f5d1/LGPL-2 0000664 0000000 0000000 00000061304 13750214643 0017032 0 ustar 00root root 0000000 0000000 GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the library GPL. It is
numbered 2 because it goes with version 2 of the ordinary GPL.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Library General Public License, applies to some
specially designated Free Software Foundation software, and to any
other libraries whose authors decide to use it. You can use it for
your libraries, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if
you distribute copies of the library, or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link a program with the library, you must provide
complete object files to the recipients so that they can relink them
with the library, after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
Our method of protecting your rights has two steps: (1) copyright
the library, and (2) offer you this license which gives you legal
permission to copy, distribute and/or modify the library.
Also, for each distributor's protection, we want to make certain
that everyone understands that there is no warranty for this free
library. If the library is modified by someone else and passed on, we
want its recipients to know that what they have is not the original
version, so that any problems introduced by others will not reflect on
the original authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that companies distributing free
software will individually obtain patent licenses, thus in effect
transforming the program into proprietary software. To prevent this,
we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
Most GNU software, including some libraries, is covered by the ordinary
GNU General Public License, which was designed for utility programs. This
license, the GNU Library General Public License, applies to certain
designated libraries. This license is quite different from the ordinary
one; be sure to read it in full, and don't assume that anything in it is
the same as in the ordinary license.
The reason we have a separate public license for some libraries is that
they blur the distinction we usually make between modifying or adding to a
program and simply using it. Linking a program with a library, without
changing the library, is in some sense simply using the library, and is
analogous to running a utility program or application program. However, in
a textual and legal sense, the linked executable is a combined work, a
derivative of the original library, and the ordinary General Public License
treats it as such.
Because of this blurred distinction, using the ordinary General
Public License for libraries did not effectively promote software
sharing, because most developers did not use the libraries. We
concluded that weaker conditions might promote sharing better.
However, unrestricted linking of non-free programs would deprive the
users of those programs of all benefit from the free status of the
libraries themselves. This Library General Public License is intended to
permit developers of non-free programs to use free libraries, while
preserving your freedom as a user of such programs to change the free
libraries that are incorporated in them. (We have not seen how to achieve
this as regards changes in header files, but we have achieved it as regards
changes in the actual functions of the Library.) The hope is that this
will lead to faster development of free libraries.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, while the latter only
works together with the library.
Note that it is possible for a library to be covered by the ordinary
General Public License rather than by this special one.
GNU LIBRARY GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library which
contains a notice placed by the copyright holder or other authorized
party saying it may be distributed under the terms of this Library
General Public License (also called "this License"). Each licensee is
addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also compile or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
c) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
d) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Library General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
Copyright (C)
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!
cairo-dock-3.4.1+git20201103.0836f5d1/LICENSE 0000664 0000000 0000000 00000104513 13750214643 0017217 0 ustar 00root root 0000000 0000000 GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Copyright (C)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
Copyright (C)
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
.
cairo-dock-3.4.1+git20201103.0836f5d1/README.md 0000664 0000000 0000000 00000007473 13750214643 0017500 0 ustar 00root root 0000000 0000000 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.
[](http://download.tuxfamily.org/glxdock/communication/images/3.3/cd-panel-mix.png)
Other screenshots are available at [Glx-Dock.org](http://www.glx-dock.org/mc_album.php?a=3).
This project is split in 3 parts:
- Cairo-Dock-Core (the minimal - https://github.com/Cairo-Dock/cairo-dock-core)
- Cairo-Dock-Plug-ins (a collection of views, applets, animations, effects, etc. - https://github.com/Cairo-Dock/cairo-dock-plug-ins)
- Cairo-Dock-Plug-ins-Extras (a collection of third-party applets written in any language - https://github.com/Cairo-Dock/cairo-dock-plug-ins-extras)
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](http://www.glx-dock.org/ww_page.php?p=By%20distributions&lang=en) 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
A stable **PPA** is available here : https://launchpad.net/~cairo-dock-team/+archive/ppa
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
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](https://bugs.launchpad.net/cairo-dock)' section. If possible:
* Read our wiki specially the '[Recurring Problems](http://www.glx-dock.org/ww_page.php?p=Recurrents%20problems&lang=en)' 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.), if you use Cairo-Dock with or without OpenGL, with which theme, etc.
* 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](http://wiki.glx-dock.org/?p=ddd).
Thank you for your help!
cairo-dock-3.4.1+git20201103.0836f5d1/TODO 0000664 0000000 0000000 00000010234 13750214643 0016676 0 ustar 00root root 0000000 0000000 ====================================================
NEW RELEASE
====================================================
For each new version:
* Bump dock's version (CMakeLists.txt - Core & Plug-ins)
* Check the link to third-party applets' website:
- src/cairo-dock-gui-commons.c:136:#define DISTANT_DIR "3.3.0"
- ../cairo-dock-plug-ins/Dbus/src/applet-dbus.c:55:#define DISTANT_DIR "3.3.0"
* Check the link to theme dir on the server:
- CMakeList.txt:134: set (CAIRO_DOCK_DISTANT_THEMES_DIR "themes3.1")
* Remove useless g_print
* Check the ChangeLog file
* Update doc on doc.glx-dock.org
* Update translations: cd po/misc && ./update-translations.sh -cpt
* Update desktop-files: cd po/misc && ./update-desktop-files.sh
* Update list.conf file from third-party dir.
====================================================
BEFORE THE RELEASE
====================================================
3.0:
** Must-Be-Done **
- crash: Unity-4 -> DustSand -> Clear -> Humanity -> Unity-4
- cairo-dock-gui-themes.c:111 -> cairo-dock-gui-manager.c:414
- cairo-dock-applications-manager.c:1663 -> cairo-dock-class-manager.c:66
- indicators on different icon sizes
- slide view view: separator & scrollbar in vertical mode, last line out of the dock in horizontal mode
- cairo_dock_get_pixbuf_from_pixmap: assertion `pIconPixbuf != NULL' failed
- drop/hover indicators on different icon sizes
- cairo_dock_get_max_scale & fMagnitudeMax must die
- check Notification Area, there might be a bug (bitecoin, litecoin, skype)
- make some tests with the Dbus API and sub-docks / tmp launcher
- PM: crash when no battery is plugged ?
** That-Would-Be-Nice **
- add a parameter for sub-dock icon size?
- redirection texture: make it per-container, or use the container gl buffer instead
- Slide view: allow to use the same borders as default (radius, color, width)
- Dialogs: allow to use the same borders as default (radius, color)
- let the view place the X thumbnail
- get rid of CAIRO_DOCK_IS_DOCK
- Icon bg: add ratio
- Default theme more consistent
- Recent Events: handle recent apps
- Firefox launcher: handle recent URLs
- check for config panel (g_object_unref assertion)
- review Help hints
- find Kwin/XFCE versions of gnome-control-center and KWin config tool for Composite-manager
- draw a preview of the dock in opengl
- display Help GUI in simple mode
- kde integration ++
- stack: enable iSubdockViewType
- link launchers with class+command
3.1:
- an appli icon loaded before being inserted in a dock !
- add "add an applet" in the menu
- Dbus: third-party applets: allow to load applets from a local archive (when dropped between 2 icons).
- when an icon in a sub-dock demands attention, also animate the icon in the main dock.
- search in Recent-Events' dialog (seems like libzeitgeist is buggy)
- taskbar: separator as an option -> test
- taskbar, minimized windows only: when restored, an appli icon gets the "?" for a second before disappearing
- Twitter: when a new entry apears in the timeline, have to click on the applet to stop the animation (doesn't stop from the menu).
- image buffer: draw the surface from the center, like the texture.
- Icons: use an image buffer + a request size.
- add a function cairo_dock_render_one_icon_in_desklet_opengl().
- gauge with images: improve transition
- GUI: current items: don't allow the "delete" menu on the main dock
- old systray seems broken once again :-/
all:
- Remove GCC warnings
- (try to only use temporally g_print functions ;) )
- Complete the ChangeLog file
static int r=0;
if (!r)
{
Screen *scr = XDefaultScreenOfDisplay (s_XDisplay);
Visual *visual = DefaultVisualOfScreen (scr);
cairo_surface_t * s = cairo_xlib_surface_create (s_XDisplay,
cairo_dock_get_root_id(),
visual,
g_desktopGeometry.iXScreenWidth[CAIRO_DOCK_HORIZONTAL], g_desktopGeometry.iXScreenHeight[CAIRO_DOCK_HORIZONTAL]);
if (s)
{
cairo_surface_write_to_png (s, "/tmp/screenshot.png");
cairo_surface_destroy (s);
}
r=1;
}
cairo-dock-3.4.1+git20201103.0836f5d1/cairo-dock.pc.in 0000664 0000000 0000000 00000000740 13750214643 0021153 0 ustar 00root root 0000000 0000000 prefix = @prefix@
exec_prefix = @exec_prefix@
libdir = @libdir@
includedir = @includedir@
pluginsdir=@libdir@/@PACKAGE@
pluginsdatadir=@datadir@/@PACKAGE@/plug-ins
Name: cairo-dock
Description: A pretty and convenient interface to your desktop: dock, panel, desklet.
Requires: @packages_required@ @xextend_required@ @gtk_required@
Libs: -L${libdir}
Cflags: -I${includedir}/cairo-dock -I${includedir}/cairo-dock/gldit -I${includedir}/cairo-dock/implementations
Version: @VERSION@
cairo-dock-3.4.1+git20201103.0836f5d1/cmake_modules/ 0000775 0000000 0000000 00000000000 13750214643 0021016 5 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/cmake_modules/GNUInstallDirs.cmake 0000664 0000000 0000000 00000015767 13750214643 0024642 0 ustar 00root root 0000000 0000000 # - Define GNU standard installation directories
# Provides install directory variables as defined for GNU software:
# http://www.gnu.org/prep/standards/html_node/Directory-Variables.html
# Inclusion of this module defines the following variables:
# CMAKE_INSTALL_ - destination for files of a given type
# CMAKE_INSTALL_FULL_ - corresponding absolute path
# where is one of:
# BINDIR - user executables (bin)
# SBINDIR - system admin executables (sbin)
# LIBEXECDIR - program executables (libexec)
# SYSCONFDIR - read-only single-machine data (etc)
# SHAREDSTATEDIR - modifiable architecture-independent data (com)
# LOCALSTATEDIR - modifiable single-machine data (var)
# LIBDIR - object code libraries (lib or lib64)
# INCLUDEDIR - C header files (include)
# OLDINCLUDEDIR - C header files for non-gcc (/usr/include)
# DATAROOTDIR - read-only architecture-independent data root (share)
# DATADIR - read-only architecture-independent data (DATAROOTDIR)
# INFODIR - info documentation (DATAROOTDIR/info)
# LOCALEDIR - locale-dependent data (DATAROOTDIR/locale)
# MANDIR - man documentation (DATAROOTDIR/man)
# DOCDIR - documentation root (DATAROOTDIR/doc/PROJECT_NAME)
# Each CMAKE_INSTALL_ value may be passed to the DESTINATION options of
# install() commands for the corresponding file type. If the includer does
# not define a value the above-shown default will be used and the value will
# appear in the cache for editing by the user.
# Each CMAKE_INSTALL_FULL_ value contains an absolute path constructed
# from the corresponding destination by prepending (if necessary) the value
# of CMAKE_INSTALL_PREFIX.
#=============================================================================
# Copyright 2011 Nikita Krupen'ko
# Copyright 2011 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
# Installation directories
if(NOT DEFINED CMAKE_INSTALL_BINDIR)
set(CMAKE_INSTALL_BINDIR "bin" CACHE PATH "user executables (bin)")
endif()
#~ if(NOT DEFINED CMAKE_INSTALL_SBINDIR)
#~ set(CMAKE_INSTALL_SBINDIR "sbin" CACHE PATH "system admin executables (sbin)")
#~ endif()
#~
#~ if(NOT DEFINED CMAKE_INSTALL_LIBEXECDIR)
#~ set(CMAKE_INSTALL_LIBEXECDIR "libexec" CACHE PATH "program executables (libexec)")
#~ endif()
#~
#~ if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR)
#~ set(CMAKE_INSTALL_SYSCONFDIR "etc" CACHE PATH "read-only single-machine data (etc)")
#~ endif()
#~
#~ if(NOT DEFINED CMAKE_INSTALL_SHAREDSTATEDIR)
#~ set(CMAKE_INSTALL_SHAREDSTATEDIR "com" CACHE PATH "modifiable architecture-independent data (com)")
#~ endif()
#~
#~ if(NOT DEFINED CMAKE_INSTALL_LOCALSTATEDIR)
#~ set(CMAKE_INSTALL_LOCALSTATEDIR "var" CACHE PATH "modifiable single-machine data (var)")
#~ endif()
if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
set(_LIBDIR_DEFAULT "lib")
# Override this default 'lib' with 'lib64' iff:
# - we are on Linux system but NOT cross-compiling
# - we are NOT on debian
# - we are on a 64 bits system
# reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf
# Note that the future of multi-arch handling may be even
# more complicated than that: http://wiki.debian.org/Multiarch
if(CMAKE_SYSTEM_NAME MATCHES "Linux"
AND NOT CMAKE_CROSSCOMPILING
AND NOT EXISTS "/etc/debian_version")
if(NOT DEFINED CMAKE_SIZEOF_VOID_P)
message(AUTHOR_WARNING
"Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. "
"Please enable at least one language before including GNUInstallDirs.")
else()
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
set(_LIBDIR_DEFAULT "lib64")
endif()
endif()
endif()
set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}" CACHE PATH "object code libraries (${_LIBDIR_DEFAULT})")
endif()
if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR)
set(CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C header files (include)")
endif()
#~ if(NOT DEFINED CMAKE_INSTALL_OLDINCLUDEDIR)
#~ set(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" CACHE PATH "C header files for non-gcc (/usr/include)")
#~ endif()
if(NOT DEFINED CMAKE_INSTALL_DATAROOTDIR)
set(CMAKE_INSTALL_DATAROOTDIR "share" CACHE PATH "read-only architecture-independent data root (share)")
endif()
#-----------------------------------------------------------------------------
# Values whose defaults are relative to DATAROOTDIR. Store empty values in
# the cache and store the defaults in local variables if the cache values are
# not set explicitly. This auto-updates the defaults as DATAROOTDIR changes.
if(NOT CMAKE_INSTALL_DATADIR)
set(CMAKE_INSTALL_DATADIR "" CACHE PATH "read-only architecture-independent data (DATAROOTDIR)")
set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}")
endif()
#~ if(NOT CMAKE_INSTALL_INFODIR)
#~ set(CMAKE_INSTALL_INFODIR "" CACHE PATH "info documentation (DATAROOTDIR/info)")
#~ set(CMAKE_INSTALL_INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info")
#~ endif()
if(NOT CMAKE_INSTALL_LOCALEDIR)
set(CMAKE_INSTALL_LOCALEDIR "" CACHE PATH "locale-dependent data (DATAROOTDIR/locale)")
set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale")
endif()
if(NOT CMAKE_INSTALL_MANDIR)
set(CMAKE_INSTALL_MANDIR "" CACHE PATH "man documentation (DATAROOTDIR/man)")
set(CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man")
endif()
#~ if(NOT CMAKE_INSTALL_DOCDIR)
#~ set(CMAKE_INSTALL_DOCDIR "" CACHE PATH "documentation root (DATAROOTDIR/doc/PROJECT_NAME)")
#~ set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}")
#~ endif()
#-----------------------------------------------------------------------------
mark_as_advanced(
CMAKE_INSTALL_BINDIR
#~ CMAKE_INSTALL_SBINDIR
#~ CMAKE_INSTALL_LIBEXECDIR
#~ CMAKE_INSTALL_SYSCONFDIR
#~ CMAKE_INSTALL_SHAREDSTATEDIR
#~ CMAKE_INSTALL_LOCALSTATEDIR
CMAKE_INSTALL_LIBDIR
CMAKE_INSTALL_INCLUDEDIR
#~ CMAKE_INSTALL_OLDINCLUDEDIR
CMAKE_INSTALL_DATAROOTDIR
CMAKE_INSTALL_DATADIR
#~ CMAKE_INSTALL_INFODIR
CMAKE_INSTALL_LOCALEDIR
CMAKE_INSTALL_MANDIR
#~ CMAKE_INSTALL_DOCDIR
)
# Result directories
foreach(dir
BINDIR
#~ SBINDIR
#~ LIBEXECDIR
#~ SYSCONFDIR
#~ SHAREDSTATEDIR
#~ LOCALSTATEDIR
LIBDIR
INCLUDEDIR
#~ OLDINCLUDEDIR
DATAROOTDIR
DATADIR
#~ INFODIR
LOCALEDIR
MANDIR
#~ DOCDIR
)
if(NOT IS_ABSOLUTE ${CMAKE_INSTALL_${dir}})
set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_${dir}}")
else()
set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_${dir}}")
endif()
endforeach()
cairo-dock-3.4.1+git20201103.0836f5d1/cmake_uninstall.cmake.in 0000664 0000000 0000000 00000001654 13750214643 0022774 0 ustar 00root root 0000000 0000000 IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
STRING(REGEX REPLACE "\n" ";" files "${files}")
FOREACH(file ${files})
MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
IF(EXISTS "$ENV{DESTDIR}${file}")
EXEC_PROGRAM(
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
OUTPUT_VARIABLE rm_out
RETURN_VALUE rm_retval
)
IF(NOT "${rm_retval}" STREQUAL 0)
MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
ENDIF(NOT "${rm_retval}" STREQUAL 0)
ELSE(EXISTS "$ENV{DESTDIR}${file}")
MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
ENDIF(EXISTS "$ENV{DESTDIR}${file}")
ENDFOREACH(file)
cairo-dock-3.4.1+git20201103.0836f5d1/config.h.cmake.in 0000664 0000000 0000000 00000002336 13750214643 0021314 0 ustar 00root root 0000000 0000000
#ifndef __CAIRO_DOCK_BUILD_CONFIG_H__
#define __CAIRO_DOCK_BUILD_CONFIG_H__
/* always defined to indicate that i18n is enabled */
#define ENABLE_NLS 1
/* Gettext package. */
#define GETTEXT_PACKAGE @GETTEXT_PACKAGE@
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
#define HAVE_BIND_TEXTDOMAIN_CODESET 1
/* Define to 1 if you have the `dcgettext' function. */
#define HAVE_DCGETTEXT 1
/* Define if the GNU gettext() function is already present or preinstalled. */
#define HAVE_GETTEXT 1
/* Define if your file defines LC_MESSAGES. */
#cmakedefine HAVE_LC_MESSAGES @HAVE_LC_MESSAGES@
/* Define to 1 if you have the `m' library (-lm). */
#cmakedefine HAVE_LIBM @HAVE_LIBM@
/* Define to 1 if you have the header file. */
#cmakedefine HAVE_MATH_H @HAVE_MATH_H@
// Appli
#define CAIRO_DOCK_GETTEXT_PACKAGE "@CAIRO_DOCK_GETTEXT_PACKAGE@"
#define CAIRO_DOCK_VERSION "@VERSION@"
#define CAIRO_DOCK_SHARE_DATA_DIR "@CAIRO_DOCK_SHARE_DATA_DIR@"
#define CAIRO_DOCK_SHARE_THEMES_DIR "@CAIRO_DOCK_SHARE_THEMES_DIR@"
#define CAIRO_DOCK_LOCALE_DIR "@CAIRO_DOCK_LOCALE_DIR@"
#define CAIRO_DOCK_THEMES_DIR "@CAIRO_DOCK_THEMES_DIR@"
#define CAIRO_DOCK_DISTANT_THEMES_DIR "@CAIRO_DOCK_DISTANT_THEMES_DIR@"
#endif
cairo-dock-3.4.1+git20201103.0836f5d1/copyright 0000664 0000000 0000000 00000005433 13750214643 0020146 0 ustar 00root root 0000000 0000000 X-Source-Downloaded-From: https://launchpad.net/cairo-dock
X-Upstream-Author: Fabrice Rey .
Files: */*
Copyright: 2007-2014 Fabrice Rey
License: GPL 3+ (See /usr/share/common-licenses/GPL-3 for complete license)
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Files: src/gldit/cairo-dock-dbus.*
Copyright: Adrien Pilleboue
License: GPL 3+ (See /usr/share/common-licenses/GPL-3 for complete license)
Files: src/gldit/cairo-dock-desklet.*,
src/gldit/cairo-dock-keybinder.*,
src/gldit/cairo-dock-log.*
Copyright: Copyright (C) 2008 Cedric GESTES
License: GPL 3+ (See /usr/share/common-licenses/GPL-3 for complete license)
Files: src/gldit/egg*
Copyright: Copyright (C) 2002 Red Hat, Inc.; Copyright 1998, 2001 Tim Janik
License: GPL 2+ (See /usr/share/common-licenses/GPL-2 for complete license)
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Files: src/gldit/texture-gradation.h
Copyright: Copyright (C) 2007 Gimp dev.
License: GPL 2+ (See /usr/share/common-licenses/GPL-2 for complete license)
Files: data/*.svg, data/*.png
Copyright: Humanity devs (some of them modified by Matthieu Baerts)
License: GPL 3+
Files: data/default-theme/ data/man/
Copyright: Matthieu Baerts (matttbe)
License: LGPL
Files: debian/*
Copyright: Copyright (C) Julien Lavergne
License: GPL 2+ (See /usr/share/common-licenses/GPL-2 for complete license)
Updated by Matthieu Baerts for new releases.
cairo-dock-3.4.1+git20201103.0836f5d1/data/ 0000775 0000000 0000000 00000000000 13750214643 0017117 5 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/CMakeLists.txt 0000664 0000000 0000000 00000003414 13750214643 0021661 0 ustar 00root root 0000000 0000000 add_subdirectory(themes)
add_subdirectory(gauges)
add_subdirectory(explosion)
add_subdirectory(man)
add_subdirectory(icons)
add_subdirectory(images)
add_subdirectory(scripts)
if (enable-desktop-manager)
add_subdirectory(desktop-manager)
endif()
########### file generation ###############
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/cairo-dock.conf.in ${CMAKE_CURRENT_BINARY_DIR}/cairo-dock.conf)
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/cairo-dock-simple.conf.in ${CMAKE_CURRENT_BINARY_DIR}/cairo-dock-simple.conf)
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/main-dock.conf.in ${CMAKE_CURRENT_BINARY_DIR}/main-dock.conf)
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/launcher.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/launcher.desktop)
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/container.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/container.desktop)
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/separator.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/separator.desktop)
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/themes.conf.in ${CMAKE_CURRENT_BINARY_DIR}/themes.conf)
########### install files ###############
# misc
install (FILES
cairo-dock.svg
readme-default-view
ChangeLog.txt
DESTINATION ${pkgdatadir})
# appli icon
install (FILES
cairo-dock.svg
DESTINATION ${datadir}/pixmaps)
# conf files
install (FILES
# lib
${CMAKE_CURRENT_BINARY_DIR}/main-dock.conf
${CMAKE_CURRENT_BINARY_DIR}/cairo-dock.conf
${CMAKE_CURRENT_BINARY_DIR}/launcher.desktop
${CMAKE_CURRENT_BINARY_DIR}/container.desktop
${CMAKE_CURRENT_BINARY_DIR}/separator.desktop
# appli
${CMAKE_CURRENT_BINARY_DIR}/cairo-dock-simple.conf
${CMAKE_CURRENT_BINARY_DIR}/themes.conf
DESTINATION ${pkgdatadir})
# appli desktop file
install (FILES
cairo-dock.desktop
cairo-dock-cairo.desktop
DESTINATION ${datadir}/applications)
cairo-dock-3.4.1+git20201103.0836f5d1/data/ChangeLog-history.txt 0000664 0000000 0000000 00000033505 13750214643 0023214 0 ustar 00root root 0000000 0000000 [ChangeLog]
1.4.5 = pouet
1.4.6 = Welcome to new 1.4.6 version !\n - New conf panel, clearly separating apparence and behavior.\n - complete internationnalisation (except plug-ins).\n - applis on current desktop only.\n - minimized applis only.\n - better accessibility of sub-docks and show on clic.\n - Themes and applets preview.\n - Distinction launcher/sub-dock in the menu.\n - And ... merry Xmas ! :-)
1.4.6 = It's Mr Jack who made the presents and he hid some bugs into them ^_^\nv1.4.6.1 :\n - Prevent Rhythmbox applet from interfering when we don't want.\n - Correct a bug that made dialogs freeze the dock.\n - Better version management for applet.
1.4.6 = v1.4.6.2 :\nThis time is the good one !\n - correct a bug that crashed the dock when adding files\n - make dustbin delete trash when we choose to\n - internationnalization of most applets
1.4.6 = v1.4.6.3 :\nJust to say :\n*** Happy new Year 2008 ! ***\n the Cairo-Dock's team.
1.5.0 = v1.5.0 : it's been 1 month since previous release, and we worked hardly to bring you :\n - A parabolic view : perfect for sub-docks with a dozen of icons.\n - A big pack of new applets :\n Cairo-Dock has now its own terminal.\n It can handle your systray instead of your panel,\n monitor your laptop's battery,\n and change your screen's luminosity through the dock\n The integration into the GNOME desktop is provided by the 'gnome-integration' plug-in.\n Wanted : a KDE user who could do the same for KDE !\n - Dustbin v2 can now handle drag'n'drops and display nice info.\n - Manual separators, better sub-dock accessibility, 64bits works smoothly, etc\n - And cherry on the cake, a new theme (I, Cairo) !\n Now, why not try to make an applet for Cairo-Dock ? ;-)
1.5.1 = v1.5.1 :\n - The 1.5 branch is still young, so this version brings a lot of bug fixes\n - Cairo-Dock is now translated in Japanese, thanks to Jiro Kawada for his work !\n - A new view has appeared : Rainbow\n - Cairo-Dock has become a desklet manager !\n most of applets can now detached themselves from the dock\n and behave as real desklets.
1.5.2 = v1.5.2.1 :\n - a lot of bug fixes, especially on desklets.\n - New applet : weather !\n - Cairo-Dock is now fully translated in Japanese, thanks to Jiro Kawada !
1.5.3 = v1.5.3.2 :\n - Themes have been deeply reviewed\n to switch from one to another completely.\n - New applet : alsaMixer !\n - Desklets improvment with the 'showDesklets' applet.\n - The 'Shortcuts' applet can now detached itself from the dock.\n - The dock can now behave like a menu 'on-the-mouse'\n - Updates in translations and the usual bug fixes. ^_^\n By the way, we are still searching someone\n who could help cairo-dock to be well-integrated into KDE ;-)
1.5.4 = v1.5.4.2 : a huge release !\n - add a cute pinguin in your dock with the new applet Cairo-Penguin\n - monitor your wifi connection with the Wifi applet\n - control xmms, audacious, banshee and exaile with the Xmms applet\n - Cairo-Dock is now fully integrated into XFCE environment !\n - better detection of battery in the Powermanager applet\n - lot of improvments in the Terminal applet.\n - the dock can auto-resize when it grows too large\n - refresh your dock with the new theme : Wood\n - 3 more themes in Weather
1.5.5 = v1.5.5.4 :\n - Huge enhancements in the TaskBar :\n launchers and applets can now behave as applications.\n windows can show up during drag and drop if mouse stay on them\n - hiqh quality launchers' icons can be used instead of X ones\n - Quickly manage Compiz with the 'Compiz-Icon' applet\n - Control Cairo-Dock from an external program thanks to the Dbus plug-in.\n - Added a 'ShowDesktop' applet for convenience.\n - Some fix in PowerManager (now ok !)\n - The ability to have many docks for a single instance of Cairo-Dock.\n - Cairo-Dock is not yet well integrated into Gnome 2.22, but it will come soon ;-)
1.5.6 = v1.5.6 :\n - Integration into the last Gnome 2.22 (Ubuntu8.04, Fedora9, ...) - still experimental\n - You can now have many docks in 1 instance of Cairo-Dock.\n Just place a launcher or an applet in a dock, giving this dock a name that doesn't exist yet\n a new one will be created.\n - SHIFT+mouse wheel on AlsaMixer, Xmms, Rhythmbox, etc.\n - Launchers can now launch keyboard shortcuts.\n - The dock can now auto-hide itself when a window is maximized.\n - Improvment in drag and drop with animated indicator.\n - Physical separator in 3D-plane view.\n - Bug fixes in XGamma/Weather.\n - Any help would be welcome to integrate the dock into KDE !
1.6.0 = v1.6.0 :\n - A new view has appeared : Diapositive !\n - A huge stock of new applets :\n cpusage\n ram-meter\n netspeed\n tomboy\n nVidia\n - 2 new themes : Neon & Clear\n - A new cute character for Cairo-Penguin : Wanda the Cairo-Fish ^_^\n - Cairo-Dock can now run without composite manager, with fake transparency.\n - The dock can now stay below windows and be popped up on demand.\n - Auto-reload on crash.\n - Real window thumbnail when minimized.
1.6.1 = v1.6.1 :\nCairo-Dock has one year ! To celebrate this event, we are happy to offer you :\n - Once again a new view : Curve !\n - A long time waited applet : the desktop Switcher.\n - A very complete theme : Brit\n - Translation in italian and chinese.\n - And we are still hoping someone would help us writing a kde-integration plug-in ^_^
1.6.2 = v1.6.2 : the first version integrated in the Ubuntu repositories !\n - 2 new applets have been released :\n Slider and Stack. Enjoy !\n - Applets can now be launched many times\n (Clock, Cairo-Penguin, Slider, Stack), each with a different config.\n - Cairo-Dock is now able to load themes on its own server,\n so feel free to send us all your themes, we can distribute them ! :-)\n - And we are still searching someone motivated to write a kde-integration plug-in ^_^
1.6.3 = v1.6.3 : \n - first the bad news :\n user datas have been moved into ~/.config to respect the FreeDesktop standards.\n and local icons are now in a dedicated 'icons' sub-folder.\n So in advance, sorry for the possible inconvenience ^_^\n - And now the very good news !\n - 2 new applets have just been born : Clipper and GMenu. \n - Lot of improvements for Desklets : decorations, rotation, dragging, etc\n - Cpusage and other applets can now display nice graphics.\n - You can now remove launchers by dragging them out of the dock\n and detach applet in the same way.\n - Smooth icons movement when dragging them inside the dock\n - The dock is now translated in Sweden and partially in Greek.
2.0.0 = Cairo-Dock II\n - Cairo-Dock is now a full OpenGL dock ! (the cairo backend is still available for old graphic cards or ATI)\n - New plug-ins provide many visual affects : Animated icons, icon effects, illusion, drop indicator, motion blur, dialog rendering\n - The config panel has been widely rewritten.\n - Desklets are now in 3D\n - New applets : mail, keyboard indicator, quick folder, Toons.\n - Lot of bug fixes and upgrades in all plug-ins.
2.0.5 = 2.0.5 :\n - This is mainly a bug-fix version\n - improvment in the RB applet\n - Added functionnalities on grouped applications icons.
2.1.0 = 2.1.0 : A really heavy version !\n - Control any music player with the MusicPlayer applet\n Share your files easily with the world thanks to the dnd2share applet,\n Monitor your system thanks to the System-Monitor applet\n Take notes quickly thanks to the Notes applet.\n - The dock has an "extended panel" mode and a new theme selector.\n - Lot of updates in the Keyboard-indicator and Shortcuts applets\n - New animation for the 'Slide' view\n - Bug fixes in the Taskbar, Clipper, Powermanager, Clock and Cairo-Penguin modules.\n - OpenGL mode works on ATI and Intel with the latest drivers !\n - Finally, Cairo-Dock has its own ppa on LaunchPad, and a complete documentation on http://doc.glx-dock.org.
2.1.1 = 2.1.1 : more stable and user-friendly !\n - This version corrects many bugs appeared with the v2.1.0 (sorry for that !)\n - There is no more visual artifact under Metacity,OpenBox,KDE,etc.\n - Applis can now be placed amongst launchers and applets.\n - A new and convenient config panel for launchers.\n - Switcher provides a list of all opened windows on middle-click,\n and allows you to name your desktops.\n - Logout can be programmed to shutdown at a given time.\n - The dock fades out smoothly when it hides below other windows.\n - Clipper has an option to copy all items at once.\n - The DBus plug-in provides a new and powerful API that lets you control your dock from an extern application.\n You can even write an applet in any language with it !
2.1.2 = 2.1.2 : \n - The config panel has been improved again (new icons, more clear, better option naming)\n - Desklets can be fixed on their current desktop, not only on the first one.\n - Launchers can also be assigned to a given desktop\n - Auto-hide has been rewritten\n - Welcome to the new "RSS-reader" applet !\n - Light up your dock with the new "firework" icon effects !\n - ShowDesktop can now show the desklets, the Widget Layer, and the Expose on middle-click.\n - The Mail applet can mark all messages as read.\n - A KDE-integration plug-in has been started, any help is greatly welcome to achieve it !
2.1.3 = GLX-Dock 2.1.3\n - A new and simplified configuration panel has been written\n - Thumbnails of windows inside the dock now have an emblem.\n - Icons pointing on sub-docks can display the sub-dock's content.\n - When an application demands your attention, only its icon will appear when the dock is hidden.\n - The DBus plug-in now allows to automatically load external applets, written in any language.\n - ShowDesktop can now quickly change the resolution of the screen.\n - Dnd2Share can now directly sends the clipboard's content.\n - This version also fixes a huge number of problems.
2.2.0 = GLX-Dock 2.2.0\n - The dock has gained 2 new visibility modes and several auto-hide animations.\n - Icons can be displayed even when the dock is hidden (Clock, System-Monitor, applications demanding your attention, etc)\n - Icons pointing on a sub-dock can be displayed inside a box with a nice opening animation.\n - A new view is available : panel\n - The Me-Menu and Messaging-Menu are now available inside the dock.\n - Clock applet has now a real calendar with tasks management (available with left-click).\n - You can now lock your screen with the Logout applet.\n - Desklets can now be transparent to mouse, that is to say you can click on what is behind the desklet.\n - Better support of old graphic cards thanks to FBOs.\n - The config panel icons have been refreshed, with a more Tango-friendly theme and better options layout.\n - A new default theme is also available; it should integrate itself better on any desktop.
2.3.0 = GLX-Dock 2.3.0\n - A lot of new applets are available in our new repository! (Transmission, Deluge, MintMenu, Translator, Quote of the day, etc)\n You can install them for free in a single click!\n - The new "Recent-Events" applet lets you browse your last activties (music, videos, documents, web pages, etc).\n - The System-Monitor applet can now monitor CPU temperature and fan speed.\n - The menus have a better layout.\n - The Logout applet now warns you when the computer needs to be restarted.\n - The Stack applet now displays the web page's favicon.\n - The Drop and Share applet now handles UbuntuOne.\n - Better integration with Compiz and Kwin.\n - Several bug-fixes and improvments.
2.4.0 = GLX-Dock 2.4.0\n - The Power-Manager applet has been rewritten to work on any plateform.\n - A new Help applet has been added to help our beloved users :-)\n - Integration in the XFCE desktop has been improved\n - Several new DBus methods lets you interact on the dock more easily.\n - The dock can now be used as a shell in a Compiz-standalone environment.
3.0.0 = New version: GLX-Dock 3.0!\n - The taskbar has been greatly enhanced.\n - The Log out applet has been rewritten, now allows to switch users.\n - The control of the dock from the keyboard is now very powerful:\n - many shortkeys have been added in different applets\n - you can activate a launcher by pressing a shortkey + its number\n - all shortkeys can now be managed in a single place in the configuration window.\n - The Sound Menu from Ubuntu has been integrated into the Sound-Control applet.\n - A new Twitter applet lets you tweet in one click.\n - A new applet to inhibit the screensaver in one click.\n - Separators are transparent to click in 'Panel' mode\n - Cairo-Dock now uses GTK3, for a better integration in a Gnome desktop\n - Few additions to the DBus API.\n - It's possible to donate to support the project!
3.1.0 = New version: GLX-Dock 3.1!\n - Better integration in of Unity: support of the Launcher API and better support of indicators\n - All configuration windows have been merged into a single one.\n - Added progress bars in several applets and in the Dbus API\n - The Music Player applet can control players in the systray.\n - Icons of the taskbar can be separated from launchers or not\n - And as always ... various bug fixes and improvements :-)
3.2.0 = New version: GLX-Dock 3.2!\n - Multi-screen support has been improved\n - New applet : Screenshot\n - New plug-in: Sound-Effects\n - Added Gnome-Shell support \n - Added GDM support for user switching\n - Added Systemd support for the session management (Fedora, Arch, ...)\n - Added support for all the Unity indicators\n - Countless bug-fixes and improvements\n - If you like the project, please donate :-)
cairo-dock-3.4.1+git20201103.0836f5d1/data/ChangeLog.txt 0000664 0000000 0000000 00000003334 13750214643 0021512 0 ustar 00root root 0000000 0000000 # Recent changelog (see ChangeLog-history.txt for the previous ones)
[ChangeLog]
3.3.1 = New version: GLX-Dock 3.3!
3.3.1.0 = - Added a search entry in the Applications Menu.\n It allows to rapidly look for programs from their name or their description
3.3.1.1 = - Added support of logind in the Logout applet
3.3.1.2 = - Better integration in the Cinnamon desktop
3.3.1.3 = - Added support of the StartupNotification protocol.\n It allows launchers to be animated until the application opens and avoids accidental double launches
3.3.1.4 = - Added an new third-party applet: Notification History to never miss a notification
3.3.1.5 = - Upgraded the Dbus API to be even more powerful
3.3.1.6 = - A huge rewrite of the core using Objects
3.3.1.7 = - If you like the project, please donate :-)
3.4.0 = New version: GLX-Dock 3.4!
3.4.0.0 = - Menus: added the possibility to customise them
3.4.0.1 = - Style: unified the style of all components of the dock
3.4.0.2 = - Better integration with Compiz (e.g. when using the Cairo-Dock session) and Cinnamon
3.4.0.3 = - Applications Menu and Logout applets will wait the end of an update before displaying notifications
3.4.0.4 = - Various improvements for Applications Menu, Shortcuts, Status-Notifier and Terminal applets
3.4.0.5 = - Start working on EGL and Wayland support
3.4.0.6 = - And as always ... various bug fixes and improvements!
3.4.0.7 = If you like the project, please donate and/or contribute :-)
3.4.0.8 = Note: We're switching from Bzr to Git on Github, feel free to fork! https://github.com/Cairo-Dock
cairo-dock-3.4.1+git20201103.0836f5d1/data/cairo-dock 0000664 0000000 0000000 00000000624 13750214643 0021057 0 ustar 00root root 0000000 0000000 ?package(cairo-dock):needs="X11" \
section="Applications/System" \
hints="dock" \
title="Cairo-Dock (no OpenGL)" \
icon="/usr/share/pixmaps/cairo-dock.svg" \
command="/usr/bin/cairo-dock -c"
?package(cairo-dock):needs="X11" \
section="Applications/System" \
hints="dock" \
title="GLX-Dock (Cairo-Dock with OpenGL)" \
icon="/usr/share/pixmaps/cairo-dock.svg" \
command="/usr/bin/cairo-dock -o"
cairo-dock-3.4.1+git20201103.0836f5d1/data/cairo-dock-cairo.desktop 0000775 0000000 0000000 00000004675 13750214643 0023637 0 ustar 00root root 0000000 0000000
[Desktop Entry]
Type=Application
Exec=cairo-dock -A
Icon=cairo-dock
Terminal=false
Name=Cairo-Dock (Fallback Mode)
Name[de]=Cairo-Dock (Fallback-Modus)
Name[fr]=Cairo-Dock (Mode Restreint)
Name[it]=Cairo-Dock (Modalità Fallback)
Name[nl]=Cairo-Dock (terugval-modus)
Name[pt]=Cairo-Dock (Modo de Fallback)
Name[pt_BR]=Cairo-Dock (Modo de Fallback)
Name[sr]=Каиро док (заменски начин рада)
Name[sr@latin]=Каиро док (заменски начин рада)
Name[uk]=Cairo-Dock (Режим Fallback)
Name[uz]=Cairo-Dock (Аппарат Тезланиши Режими)
Comment=A light and eye-candy dock and desklets for your desktop.
Comment[de]=Ein schlankes und hübsches Dock mit Desklets für Ihren Schreibtisch.
Comment[en]=Light and eye-candy filled dock and desklets for your desktop.
Comment[fr]=Un dock et des desklets légers et sexy pour votre bureau.
Comment[it]=Una dock e delle desklet leggere e gradevoli per il tuo desktop.
Comment[nl]=Licht en mooi uitziend dock en desklets voor uw bureaublad.
Comment[pl]=Lekki i przyjemny dla oka dok wraz z deskletami dla Twojego pulpitu
Comment[pt]=Uma doca bonita e leve e desklets para o seu ambiente de trabalho.
Comment[pt_BR]=Uma doca bonita e leve e desklets para o seu ambiente de trabalho.
Comment[sr]=Лагани док и справице радне површи дивног изгледа.
Comment[sr@latin]=Лагани док и справице радне површи дивног изгледа.
Comment[uk]=Легка і приємна панель та віджети для вашої стільниці.
Comment[uz]=Иш столингиз учун енгил ва кўзингиз қувнайдиган док ва десклетлар.
GenericName=Multi-purpose Dock and Desklets
GenericName[de]=Multifunktions-Dock und Desklets
GenericName[fr]=Dock et Desklets multi-usage
GenericName[it]=Dock multifunzionale e Desklet
GenericName[nl]=Dock en desklets bruikbaar voor meerdere doeleinden
GenericName[pt]=Doca e Desklets com multiplos propósitos
GenericName[pt_BR]=Doca e Desklets com multiplos propósitos
GenericName[sr]=Док и справице површи са разним могућностима
GenericName[sr@latin]=Док и справице површи са разним могућностима
GenericName[uk]=Багатоцільова панель та віжети.
GenericName[uz]=Кўп мақсадли Док ва Десклетлар
Categories=System;
cairo-dock-3.4.1+git20201103.0836f5d1/data/cairo-dock-simple.conf.in 0000664 0000000 0000000 00000006601 13750214643 0023700 0 ustar 00root root 0000000 0000000 #@VERSION@
#[@pkgdatadir@/icons/icon-behavior.svg]
[Behavior]
#F-[Position on the screen;@pkgdatadir@/icons/icon-position.svg]
frame_pos =
#l-[bottom;top;right;left] Choose which border of the screen the dock will be placed on:
screen border = 0
#F-[Visibility of the main dock;@pkgdatadir@/icons/icon-visibility.svg]
frame_visi =
#Y-[Always on top;0;0;Reserve space for the dock;0;0;Keep the dock below;0;0;Hide the dock when it overlaps the current window;1;1;Hide the dock whenever it overlaps any window;1;1;Keep the dock hidden;1;1;Pop-up on shortcut;2;1] Visibility:
#{Modes are sorted from the most intrusive to the less intrusive.
#When the dock is hidden or below a window, place the mouse on the screen's border to call it back.
#When the dock pops up on shortcut, it will appear at the position of your mouse. The rest of the time, it stays invisible, thus acting like a menu.}
visibility = 4
#L-[None;Move down;Fade out;Semi transparent;Zoom out;Folding] Effect used to hide the dock:
hide effect = Move down
#k- Keyboard shortcut to pop-up the dock:
#{When you press the shortcut, the dock will show itself at the potition of your mouse. The rest of the time, it stays invisible, thus acting like a menu.}
raise shortcut =
#F-[Visibility of sub-docks;@pkgdatadir@/icons/icon-subdock.png]
frame_sub =
#l-[Appear on mouse over;Appear on click] Visibility:
#{they will appear either when you click or when you linger over the icon pointing on it.}
show_on_click = 0
#F-[Taskbar;@pkgdatadir@/icons/icon-taskbar.png]
frame_task =
#Y-[None;0;0;Minimalistic;1;1;Integrated;1;1;Separated;1;1] Behaviour of the Taskbar:
#{None : Don't show opened windows in the dock.
#Minimalistic: Mix applications with its launcher, show other windows only if they are minimized (like in MacOSX).
#Integrated : Mix applications with its launcher, show all others windows and group windows togather in sub-dock (default).
#Separated : Separate the taskbar from the launchers and only show windows that are on the current desktop.}
taskbar = 2
#Y-[At the beginning of the dock;0;0;Before the launchers;0;0;After the launchers;0;0;At the end of the dock;0;0;After a given icon;1;1] Place new icons
place icons = 2
#N Place new icons after this one
relative icon =
#F[Icons' animations and effects;@pkgdatadir@/icons/icon-movment.png]
frame_anim=
#_& On mouse hover:
anim_hover=
#_ On click:
anim_click=
#l&[Evaporate;Fade out;Explode;Break;Black Hole;Random] On appearance/disappearance:
anim_disappear=
#[@pkgdatadir@/icons/icon-appearance.svg]
[Appearance]
#F[Style;@pkgdatadir@/icons/icon-style.svg]
frame_style=
#Y-[System;0;0;Custom;1;1] Style
style = 1
#C+ Colour
bg color = 1.0; 1.0; 1.0; 0.8
#F[Icons;@pkgdatadir@/icons/icon-icons.svg]
frame_icons=
#w Choose a theme of icons :
default icon directory =
#l[Very small;Small;Medium;Big;Very Big] Icons size:
icon size = 2
#F[Views;@pkgdatadir@/icons/icon-views.svg]
frame_view =
#n Choose the default view for main docks :/
main dock view = default
#v
sev_view=
#n Choose the default view for sub-docks :
#{You can overwrite this parameter for each sub-dock.}/
sub-dock view = default
#[@pkgdatadir@/icons/icon-shortkeys.svg]
[Shortkeys]
#<
#{Many applets provide shortkeys for their actions. As soon as an applet is enabled, its shortkeys become available.
#Double-click on a line, and press the shortkey you want to use for the corresponding action.}
shortkeys=
cairo-dock-3.4.1+git20201103.0836f5d1/data/cairo-dock.conf.in 0000664 0000000 0000000 00000046114 13750214643 0022414 0 ustar 00root root 0000000 0000000 #@VERSION@
######## This is the conf file of Cairo-Dock, released under the GPL.##########
######## It is parsed by cairo-dock to automatically generate an appropriate GUI,##########
######## so don't mess into it, except if you know what you're doing ! ;-)##########
[Position]
#F-[Position on the screen;view-fullscreen]
frame_pos =
#l-[bottom;top;right;left] Choose which border of the screen the dock will be placed on:
screen border = 0
#e-[0.;1.;left;right] Relative alignment:
#{When set to 0 the dock will position itself relative to the left corner if horizontal and the top corner if vertical. When set to 1 it will position itself relative to the right corner if horizontal and the bottom corner if vertical. When set to 0.5, it will position itself relative to the middle of the screen's edge.}
alignment = .5
#r- Multi-screens
num_screen = 0
#X-[Offset from the screen's edge;view-restore]
frame_scr =
#I-[-1000;1000] Lateral offset:
#{Gap from the absolute position on the screen's edge, in pixels. You can also move the dock by holding the ALT or CTRL key and the left mouse button.}
x gap = 0
#i-[-30;1000] Distance to the screen edge:
#{in pixels. You can also move the dock by holding the ALT or CTRL key and the left mouse button.}
y gap = 0
[Accessibility]
#F-[Visibility of the main dock;edit-find]
frame_visi =
#Y-[Always on top;0;0;Reserve space for the dock;0;0;Keep the dock below;2;2;Hide the dock when it overlaps the current window;1;3;Hide the dock whenever it overlaps any window;1;3;Keep the dock hidden;1;3;Pop-up on shortcut;4;1] Visibility:
#{Modes are sorted from the most intrusive to the less intrusive.
#When the dock is hidden or below a window, place the mouse on the screen's border to call it back.
#When the dock pops up on shortcut, it will appear at the position of your mouse. The rest of the time, it stays invisible, thus acting like a menu.}
visibility = 4
#v
sep_visi =
#L-[None;Move down;Fade out;Semi transparent;Zoom out;Folding] Effect used to hide the dock:
hide effect = Move down
#e-[0;1;high;low] Callback sensitivity:
#{The higher, the faster the dock will appear}
edge sensitivity = 0.15
#Y-[Hit the screen's border;0;0;Hit where the dock is;0;0;Hit the screen's corner;0;0;Hit a zone;1;2] How to call the dock back:
callback = 1
#j-[2;999] Size of the zone :
zone size = 80;10
#g- Image to display on the zone :
callback image =
#k- Keyboard shortcut to pop-up the dock:
#{When you press the shortcut, the dock will show itself at the potition of your mouse. The rest of the time, it stays invisible, thus acting like a menu.}
raise shortcut =
max_authorized_width = 0
#F-[Sub-docks' visibility;@pkgdatadir@/icons/icon-subdock.png]
frame_sub =
#Y-[Appear on mouse over;1;1;Appear on click;0;0] Visibility:
#{they will appear either when you click or when you linger over the icon pointing on it.}
show_on_click = 0
#i- Delay before displaying a sub-dock:
#{in ms.}
show delay = 300
#i- Delay before leaving a sub-dock takes effect:
#{in ms.}
leaving delay = 250
lock icons = false
lock all = false
[TaskBar]
#F-[Behaviour;document-properties]
frame1 =
#B-[8] Show currently opened applications in the dock?
#{Cairo-Dock will then act as your taskbar. It is recommended to remove any other taskbars.}
show applications = true
#B- Mix launchers and applications
#{Allows launchers to act as applications when their programs are running and displays a marker on icons to indicate this. You can launch other occurences of the program with SHIFT+click.}
mix launcher appli = true
#b- Only show applications on current desktop
current desktop only = false
#b- Only show icons whose windows are minimised
hide visible = false
#Y-[At the beginning of the dock;0;0;Before the launchers;0;0;After the launchers;0;0;At the end of the dock;0;0;After a given icon;1;1] Place new icons
place icons = 2
#N Place new icons after this one
relative icon =
#b Automatically add a separator
separate applis = true
#B- Group windows from the same application in a sub-dock ?
#{This allows you to group all the windows of a given application into a unique sub-dock, and to act on all of the windows at the same time.}
group by class = true
#s- Except the following classes:
#{Enter the class of the applications, separated by a semi-colon ';'}
group exception = pidgin;xchat;amsn
#F-[Representation;edit-find]
frame3 =
#B- Overwrite the X icon with the launchers' icon?
#{If not set, the icon provided by X for each application will be used. If set, the same icon as the corresponding launcher will be used for each application.}
overwrite xicon = true
#s- Except the following classes:
#{Enter the class of the applications, separated by a semi-colon ';'}
overwrite exception = pidgin;xchat;amsn;gimp
#Y-[Make the icon transparent;1;1;Show a window's thumbnail;0;0;Draw it bent backwards;0;0] How to draw minimised windows ?
#{A composite manager is required to display the thumbnail.
#OpenGL is required to draw the icon bent backwards.}
minimized = 0
#e-[0;.6;Opaque;Transparent] Transparency of icons whose window is minimised:
visibility alpha = 0.35
#a- Play a short animation of the icon when its window becomes active
animation on active window = wobbly
#i- Maximum number of caracters in application name:
#{"..." will be added at the end if the name is too long.}
max name length = 25
#F-[Interaction;view-refresh]
frame2 =
#l-[Nothing;Close;Minimize;Launch new;Lower] Action on middle-click on the related application
action on middle click = 1
#b- Minimise the window when its icon is clicked, if it was already the active window ?
#{This is the default behaviour of most taskbars.}
minimize on click = true
#b- Present windows preview on click when several windows are grouped togather
#{Only if your Window Manager supports it.}
present class on click = true
#v-
sep_att =
#B-[2] Highlight applications requiring your attention with a dialog bubble
demands attention with dialog = true
#i-[1;20] Duration of the dialog:
#{in seconds}
duration = 2
#s- Force the following applications to demand your attention
#{It will notify you even if, for instance, you are watching a movie in full screen or you are on another desktop.
#}
force demands attention =
#a- Highlight applications demanding your attention with an animation
animation on demands attention = rotate
[System]
#X-[Animations speed;@pkgdatadir@/icons/icon-movment.png]
frame_mov =
#B- Animate sub-docks when they appear
animate subdocks = true
#I-[100;600;fast;slow] Animation unfolding duration:
#{Icons will appear folded on themselves and will then unfold until they fill the whole dock. The smaller this value, the faster this will be.}
unfold duration = 300
#v
sep_unfold =
#I-[4;40;fast;slow] Number of steps in the zoom animation (grow/shrink):
#{The more there are, the slower it will be}
grow nb steps = 10
#I-[4;40;fast;slow] ...
shrink nb steps = 8
#v
sep_unhide =
#I-[4;40;fast;slow] Number of steps in the auto-hide animation (move up/move down):
#{The more there are, the slower it will be}
move up nb steps = 10
#I-[4;40;fast;slow] ...
move down nb steps = 16
#X-[Refresh rate;system-run]
frame_cpu =
#i-[5;40] Refresh rate when mouving cursor into the dock:
#{in Hz. This is to adjust behaviour relative to your CPU power.}
refresh frequency = 35
#i-&[15;60] Animation frequency for the OpenGL backend:
#{in Hz. This is to adjust behaviour relative to your CPU power.}
opengl anim freq = 33
#i-*[15;50] Animation frequency for the Cairo backend:
#{in Hz. This is to adjust behaviour relative to your CPU power.}
cairo anim freq = 25
#b-* Reflections should be calculated in real-time?
#{The transparency gradation pattern will then be re-calculated in real time. May need more CPU power.}
dynamic reflection = false
#X-[Connection to the Internet;network-wired]
frame_conn =
#i-[1;20] Connection timeout :
#{Maximum time in seconds that you allow the connection to the server to take. This only limits the connection phase, once the dock has connected this option is of no more use.}
conn timeout = 10
#i-[10;300] Maximum time to download a file:
#{Maximum time in seconds that you allow the whole operation to last. Some themes can be up to a few MB.}
conn max time = 120
#b- Force IPv4 ?
#{Use this option if you experience problems to connect.}
force ipv4 = true
#B-[4] Are you behind a proxy ?
#{Use this option if you connect to the Internet through a proxy.}
conn use proxy = false
#s- Proxy name :
conn proxy =
#i- Port :
conn port = 0
#s- User :
#{Let empty if you don't need to log-in to the proxy with a user/password.}
conn user =
#p- Password :
#{Let empty if you don't need to log-in to the proxy with a user/password.}
conn passwd =
modules=
[Background]
#Y+[Automatic;0;0;Image;1;4,2;Colour gradation;2;3] Style
style = 1
#F+[Image;image-x-generic]
#{Use a background image.}
frame2 =
#g+ Image file:
background image =
#e+[0;1;Transparent;Opaque] Image's transparency :
image alpha = 1
#b+ Repeat image as a pattern to fill background?
repeat image = true
#F+[Colour gradation;@pkgdatadir@/icons/icon-gradation.png]
#{Use a colour gradation.}
frame3 =
#C+ Bright colour:
stripes color bright = 0.933; 0.933; 0.925; 0.4
#C+ Dark colour:
stripes color dark = 0.827; 0.843; 0.811; 0.6
#f+[-90;90] Angle of the gradation :
#{In degrees, in relation to the vertical}
stripes angle = 90.
#i+ Repeat the gradation this number of times:
#{If not nul, it will form stripes.}
number of stripes = 0
#f+[0;1] Percentage of the bright colour:
stripes width = 0.5
#F+[Background when hidden;image-x-generic]
frame4 =
#C+ Default background color when the dock is hidden
#{Several applets can be visible even when the dock is hidden}
hidden bg color = .8;.8;.8;.5
#F+[External Frame;@pkgdatadir@/icons/icon-frame.png]
frame_frame =
#i+[0;30] Corner radius
#{in pixels.}
corner radius = 10
#i+[0;20] Outline width
#{in pixels.}
line width = 2
#C+ Outline colour
line color = 0.827; 0.843; 0.811; 1.0
#F
frame4_=
#i+[0;20] Margin between the frame and the icons or their reflects :
#{in pixels.}
frame margin = 2
#b+ Are the bottom left and right corners rounded?
rounded bottom corner = true
#b+ Stretch the dock to always fill the screen
extended = false
[Views]
#F+[Main Dock]
frame_main =
#n+ Choose the default view for main docks :/
main dock view = default
#F+[Sub-Docks]
frame_sub =
#n+ Choose the default view for sub-docks :
#{You can overwrite this parameter for each sub-dock.}/
sub-dock view = default
#e+[0.5;1.5;smaller;larger] Ratio for the size of the sub-docks' icons :
#{You can specify a ratio for the size of the sub-docks' icons, in relation to the main docks' icons size}
relative icon size = .8
[Dialogs]
#F+[Bubble;@pkgdatadir@/icons/icon-bubble.png]
frame_bubble =
#Y-[Automatic;0;0;Custom;1;5] Style
style = 1
#C+ Background colour
bg color = 1.0; 1.0; 1.0; 0.8
#C+ Outline colour
line color = 1.0; 1.0; 1.0; 1.0
#c+ Text colour
text color = 0.0; 0.0; 0.0
#i+[0;20] Corner radius
corner=8
#i+[1;10] Outline width
linewidth=1
#v
sep_bul=
#t+ Shape of the bubble:
decorator = comics
#F+[Font;preferences-desktop-font]
frame_text =
#B+ Use a custom font for the text?
#{Otherwise the default's system one will be used.}
custom = false
#P+ Text font:
message police =
#F+[Buttons;@pkgdatadir@/icons/icon-buttons.png]
frame_button =
#j+[10;64] Size of buttons in the info-bubbles (width x height) :
#{in pixels.}
button size = 28;28
#g+[Default] Name of an image to use for the yes/ok button :
button_ok image =
#g+[Default] Name of an image to use for the no/cancel button :
button_cancel image =
#F+
fin_button =
#i+[16;96] Size of the icon displayed next to the text :
icon size = 48
[Desklets]
#F+[Decorations;edit-paste]
frame_deco =
#O+ Choose a default decoration for all desklets :
#{This can be customized for each desklet separately.
#Choose 'Custom decoration' to define your own decorations below}
decorations = clear
#v
sep_deco =
#g+ Background image :
#{It's an image that will be displayed below the drawings, like a frame for example. Leave empty to not use any.}
bg desklet =
#e+[0;1;Transparent;Opaque] Background transparency :
bg alpha = 1
#i+[0;256] Left offset :
#{in pixels. Use this to adjust the left position of the drawings.}
left offset = 0
#i+[0;256] Top offset :
#{in pixels. Use this to adjust the top position of the drawings.}
top offset = 0
#i+[0;256] Right offset :
#{in pixels. Use this to adjust the right position of the drawings.}
right offset = 0
#i+[0;256] Bottom offset :
#{in pixels. Use this to adjust the bottom position of the drawings.}
bottom offset = 0
#g+ Foreground image :
#{It's an image that will be displayed above the drawings, like a reflection for example. Leave empty to not use any.}
fg desklet =
#e+[0;1;Transparent;Opaque] Foreground tansparency :
fg alpha = 1
#F+[Buttons;window-close]
frame_button =
#i+[4;28] Buttons size :
button size = 16
#g+[Default] Name of an image to use for the 'rotate' button :
rotate image =
#g+[Default] Name of an image to use for the 'reattach' button :
retach image =
#g+[Default] Name of an image to use for the 'depth rotate' button :
depth rotate image =
#g+[Default] Name of an image to use for the 'rotate' button :
no input image =
[Icons]
#F+[Icons' themes;preferences-desktop-theme]
frame_theme=
#w+ Choose an icon theme :
default icon directory =
#g+[No background] Image filename to use as a background for icons :
icons bg =
#F+[Icons size;zoom-fit-best]
frame_size =
#j+[10;128] Icons' size at rest (width x height) :
launcher size = 40;40
#i+[0;50] Space between icons :
#{in pixels.}
icon gap = 0
#F+[Zoom effect;@pkgdatadir@/icons/icon-wave.png]
frame_shape =
#f+[1;5] Maximum zoom of the icons :
#{set to 1 if you don't want the icons to zoom when you hover over them.}
zoom max = 1.75
#i+[1;999] Width of the space in which the zoom will be effective :
#{in pixels. Outside of this space (centered on the mouse), there is no zoom.}
sinusoid width = 150
#F+[Separators]
frame_sep =
#j+[4;128] Icons' size at rest (width x height) :
separator size = 8;40
#b+ Force separator's image size to stay constant?
force size = false
#Y+[Use an image.;1;2;Flat separator;3;1;Physical separator;0;0] How to draw the separators?
#{Only the default, 3D-plane and curve views support flat and physical separators. Flat separators are rendered differently according to the view.}
separator type = 0
#g+[Blank] Image file:
separator image = separateur.svg
#b+ Make the separator's image revolve when dock is on top/on the left/on the right?
revolve separator image = true
#Y-[Automatic;0;0;Custom;1;1] Style
separator_style = 0
#C+ Colour of flat separators :
separator color = 0.9;0.9;0.9;1.0
#X+[Reflections]
frame_refl =
#e+[0;1;light;strong] Reflection visibility
albedo = .45
#e+[0;1;small;tall] Height of the reflection:
#{In percent of the icon's size. This parameter influence the total height of the dock.}
field depth = 0.5
#e+[0;1;Transparent;Opaque] Icons' transparency at rest :
#{It is their transparency when the dock is at rest; they will "materialize" progressively as the dock grows up. The closer to 0, the more transparent they will be.}
alpha at rest = 1
#X+[Link the icons with a string]
frame_string =
#i+[0;20] Linewidth of the string, in pixels (0 to not use string) :
string width = 0
#C+ Colour of the string (red, blue, green, alpha) :
string color = 0.0; 0.0; 0.8; 0.4
[Indicators]
#X+[Indicator of the active window]
frame_window =
#Y+[Automatic;2;1;Image;1;1;Frame;2;4] Style
active style = 0
#g+ Image file:
active indicator =
#l+[Fill background;Frame] Frame
active frame = 1
#C+ Colour
active color = 0.; 0.4; 0.8; 0.5
#i+[1;20] Linewidth
active line width = 3
#i+[0;30] Corner radius
active corner radius = 6
#v
sep_active =
#b+ Draw indicator above the icon?
active frame position = false
#X+[Indicator of active launcher]
frame_launch =
#g+ Image file:
#{Indicators are drawn on launchers icons to show that they have already been launched. Leave blank to use the default one.}
indicator image =
#b- Display an indicator on application icons too ?
#{The indicator is drawn on active launchers, but you may want to display it on applications too.}
indic on appli = false
#v
sep_ind =
#e+[-0.4;1.2] Vertical offset :
#{Relatively to the icons' size. You can use this parameter to adjust the indicator's vertical position.
#If the indicator is linked to the icon, the offset will be upwards, otherwise downwards.}
indicator offset = -0.03
#b+ Link the indicator with its icon?
#{If the indicator is linked to the icon, it will then be zoomed like the icon and the offset will be upwards.
#Otherwise it will be drawn directly on the dock and the offset will be downwards.}
indicator on icon = true
#e+[0.1;1.5;smaller;bigger] Indicator size ratio :
#{You can choose to make the indicator smaller or bigger than the icons. The bigger the value is, the bigger the indicator is. 1 means the indicator will have the same size as the icons.}
indicator ratio = 1.
#b+ Rotate the indicator with dock?
#{Use it to make the indicator follow the orientation of the dock (top/bottom/right/left).}
rotate indicator = true
#b+ Draw indicator above the icon?
indicator above = true
#X+[Indicator of grouped windows]
frame_class =
#Y[Draw an emblem;1;2;Draw the sub-dock's icons as a stack;0;0] How to show that several icons are grouped :
use class indic = 0
#g+ Image file:
#{It only makes sense if you chose to group the applis of the same class together. Leave blank to use the default one.}
class indicator =
#b+ Zoom the indicator with its icon?
zoom class = false
#X+[Progress bars]
frame_bar =
#Y-[Automatic;0;0;Custom;1;3] Style
bar_colors = 1
#C+ Start color
bar_color_start = 0.53;0.53;0.53;.85
#C+ End color
bar_color_stop = 0.87;0.87;0.87;.85
#C+ Outline colour
bar_color_outline = 1.;1.;1.;.85
#i-[2;10] Bar thickness
bar_thickness = 4
[Labels]
#F-[Label visibility;format-text-underline]
frame_label =
#Y+[No;0;0;On pointed icon;0;0;On all icons;1;1] Show labels:
show_labels = 1
#e-[0;50;more visible;less visible] Neighbouring labels visibility:
alpha threshold = 20
#F+[Appearance;image-x-generic]
frame_bg =
#Y-[Automatic;0;0;Custom;1;4] Style
style = 1
#C+ Background colour
text bg color = 0;0;0;.85
#C+ Outline colour
text line color = 1.0; 1.0; 1.0; 1.0
#c+ Text colour
text color = 1;1;1
#b+ Draw the outline of the text?
text oulined = false
#i+[0;20] Margin around the text (in pixels) :
text margin = 3
#F+[Font;preferences-desktop-font]
frame_font =
#B+ Use a custom font for the text?
#{Otherwise the default's system one will be used.}
custom = false
#P+ Text font:
police = Sans 10
#F+[Quick-info;stock_dialog-info]
#{Quick-info are short information drawn on the icons.}
frame_qi =
#B[-2] Use the same look as the labels?
qi same = false
#c+ Text colour
qi text color = 1;1;1
#C+ Background colour
qi bg color = 0;0;0;0.667
[Style]
#F+[Appearance;image-x-generic]
frame_bg =
#Y-[System;0;0;Custom;1;3] Style
colors = 1
#C+ Background colour
bg color = 1.0; 1.0; 1.0; 0.8
#C+ Outline colour
line color = 1.0; 1.0; 1.0; 1.0
#c+ Text colour:
text color = 0.0; 0.0; 0.0
#v
sep_shape=
#i+[0;20] Corner radius
corner=8
#i+[1;10] Outline width
linewidth=1
#F+[Font;preferences-desktop-font]
frame_text =
#B+ Use a custom font for the text?
custom font = false
#P+ Text font:
font =
cairo-dock-3.4.1+git20201103.0836f5d1/data/cairo-dock.desktop 0000775 0000000 0000000 00000003710 13750214643 0022531 0 ustar 00root root 0000000 0000000
[Desktop Entry]
Type=Application
Exec=cairo-dock
Icon=cairo-dock
Terminal=false
Name=Cairo-Dock
Comment=A light and eye-candy dock and desklets for your desktop.
Comment[de]=Ein schlankes und hübsches Dock mit Desklets für Ihren Schreibtisch.
Comment[en]=Light and eye-candy filled dock and desklets for your desktop.
Comment[fr]=Un dock et des desklets légers et sexy pour votre bureau.
Comment[it]=Una dock e delle desklet leggere e gradevoli per il tuo desktop.
Comment[nl]=Licht en mooi uitziend dock en desklets voor uw bureaublad.
Comment[pl]=Lekki i przyjemny dla oka dok wraz z deskletami dla Twojego pulpitu
Comment[pt]=Uma doca bonita e leve e desklets para o seu ambiente de trabalho.
Comment[pt_BR]=Uma doca bonita e leve e desklets para o seu ambiente de trabalho.
Comment[sr]=Лагани док и справице радне површи дивног изгледа.
Comment[sr@latin]=Лагани док и справице радне површи дивног изгледа.
Comment[uk]=Легка і приємна панель та віджети для вашої стільниці.
Comment[uz]=Иш столингиз учун енгил ва кўзингиз қувнайдиган док ва десклетлар.
GenericName=Multi-purpose Dock and Desklets
GenericName[de]=Multifunktions-Dock und Desklets
GenericName[fr]=Dock et Desklets multi-usage
GenericName[it]=Dock multifunzionale e Desklet
GenericName[nl]=Dock en desklets bruikbaar voor meerdere doeleinden
GenericName[pt]=Doca e Desklets com multiplos propósitos
GenericName[pt_BR]=Doca e Desklets com multiplos propósitos
GenericName[sr]=Док и справице површи са разним могућностима
GenericName[sr@latin]=Док и справице површи са разним могућностима
GenericName[uk]=Багатоцільова панель та віжети.
GenericName[uz]=Кўп мақсадли Док ва Десклетлар
Categories=System;
cairo-dock-3.4.1+git20201103.0836f5d1/data/cairo-dock.svg 0000664 0000000 0000000 00000204120 13750214643 0021652 0 ustar 00root root 0000000 0000000
cairo-dock-3.4.1+git20201103.0836f5d1/data/container.desktop.in 0000775 0000000 0000000 00000001325 13750214643 0023105 0 ustar 00root root 0000000 0000000 #@VERSION@
#[gtk-about]
[Desktop Entry]
#F[Icon]
frame_maininfo=
#d+ Name of the container it belongs to:
Container =
#s[New sub-dock] Sub-dock's name:
Name = New sub-dock
#v
sep_display=
#Y+[Use an image;1;1;Draw sub-dock's content as emblems;0;0;Draw sub-dock's content as stack;0;0;Draw sub-dock's content inside a box;0;0] How to render the icon:
render = 3
#S+ Image's name or path:
Icon=
#X[Extra parameters]
frame_extra =
#n Name of the view used for the sub-dock:
Renderer =
#i-[0;16] Only show in this specific viewport:
#{If '0' the container will be displayed on every viewport.}
ShowOnViewport = 0
#f[0;100] Order you want for this launcher among the others:
Order=0
Icon Type = 1
Type = Container
cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/ 0000775 0000000 0000000 00000000000 13750214643 0022200 5 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/CMakeLists.txt 0000664 0000000 0000000 00000001364 13750214643 0024744 0 ustar 00root root 0000000 0000000 # Here we assume some link between GTK versions and gnome-session/gnome-flashback versions
if (${GTK_MAJOR} LESS 3 OR (${GTK_MAJOR} EQUAL 3 AND ${GTK_MINOR} LESS 8)) # GTK < 3.8
add_subdirectory(gnome-session-3.0)
elseif(${GTK_MAJOR} EQUAL 3 AND ${GTK_MINOR} EQUAL 8) # GTK-3.8
add_subdirectory(gnome-session-3.8)
elseif(${GTK_MAJOR} EQUAL 3 AND ${GTK_MINOR} LESS 22) # GTK < 3.22
add_subdirectory(gnome-session-3.10)
elseif(${GTK_MAJOR} EQUAL 3 AND ${GTK_MINOR} LESS 24) # GTK < 3.24
add_subdirectory(gnome-session-3.28)
else() # GTK >= 3.24
add_subdirectory(gnome-session-3.36)
endif()
install (FILES cairo-dock-session
DESTINATION ${bindir}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/cairo-dock-session 0000664 0000000 0000000 00000003714 13750214643 0025624 0 ustar 00root root 0000000 0000000 #!/bin/bash
# Script for the 'desktop-manager' subproject of Cairo-Dock
#
# Copyright : (C) see the 'copyright' file.
# E-mail : see the 'copyright' file.
#
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# http://www.gnu.org/licenses/licenses.html#GPL
# This script removes Unity Compiz plugin and launches Cairo-Dock with a short delay
if [ "$1" = "--replace" ]; then
UNITY_NAME="unityshell"
COMPIZ_FLAT_FILE="$HOME/.config/compiz-1/compizconfig/Default.ini"
COMPIZ_GCONF="/apps/compiz-1/general/screen0/options/active_plugins"
if test -d "$HOME/.config/compiz-1"; then # compiz >= 0.9
# plug-ins in double are NO LONGER filtered by Compiz in this version... (and if plugins are in double or wrong, compiz crashes :) )
# flat file
if test -f "$COMPIZ_FLAT_FILE"; then
pluginsFlat=`grep "s0_active_plugins" $COMPIZ_FLAT_FILE`
if test `echo $pluginsFlat | grep -c $UNITY_NAME` -gt 0; then
pluginsFlatWithoutUnity=`echo $pluginsFlat | sed -e "s/$UNITY_NAME;//g"`
sed -i "/s0_active_plugins/ s/$pluginsFlat/$pluginsFlatWithoutUnity/g" $COMPIZ_FLAT_FILE
killall unity-panel-service
fi
fi
# gconf
plugins=`gconftool-2 -g $COMPIZ_GCONF`
if test `echo $plugins | grep -c $UNITY_NAME` -gt 0; then
pluginsWithoutUnity=`echo $plugins | sed -e "s/$UNITY_NAME,//g"`
gconftool-2 -s $COMPIZ_GCONF --type=list --list-type=string "$pluginsWithoutUnity"
killall unity-panel-service
fi
fi
fi
if test `ps -U $USER -u $USER u | grep -c " [c]airo-dock"` -eq 0; then # cairo-dock not launched
cairo-dock -w 3
fi
cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.0/ 0000775 0000000 0000000 00000000000 13750214643 0025264 5 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.0/CMakeLists.txt 0000664 0000000 0000000 00000000453 13750214643 0030026 0 ustar 00root root 0000000 0000000 install (FILES
cairo-dock.desktop
cairo-dock-fallback.desktop
cairo-dock-unity.desktop
DESTINATION /usr/share/xsessions)
install (FILES
cairo-dock.session
cairo-dock-fallback.session
cairo-dock-unity.session
cairo-dock-unity-fallback.session
DESTINATION /usr/share/gnome-session/sessions)
cairo-dock-fallback.desktop 0000664 0000000 0000000 00000000361 13750214643 0032350 0 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.0 [Desktop Entry]
Name=Cairo-Dock (Gnome No effects)
Comment=This session logs you into GNOME with Cairo-Dock and without any graphical effect.
Exec=gnome-session --session=cairo-dock-fallback
TryExec=cairo-dock-session
Icon=
Type=Application
cairo-dock-fallback.session 0000664 0000000 0000000 00000000350 13750214643 0032360 0 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.0 [GNOME Session]
Name=Cairo-Dock Session fallback (Safe Mode)
RequiredComponents=gnome-settings-daemon;
RequiredProviders=windowmanager;panel;
DefaultProvider-windowmanager=metacity
DefaultProvider-panel=cairo-dock
DesktopName=GNOME
cairo-dock-unity-fallback.session 0000664 0000000 0000000 00000000446 13750214643 0033534 0 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.0 [GNOME Session]
Name=Cairo-Dock Session with Unity fallback (Safe Mode)
RequiredComponents=gnome-settings-daemon;
RequiredProviders=windowmanager;panel;panel_top;
DefaultProvider-windowmanager=metacity
DefaultProvider-panel=cairo-dock
DefaultProvider-panel_top=unity-2d-panel
DesktopName=GNOME
cairo-dock-unity.desktop 0000664 0000000 0000000 00000000337 13750214643 0031764 0 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.0 [Desktop Entry]
Name=Cairo-Dock (with Unity Panel)
Comment=This session logs you into GNOME with Cairo-Dock and Unity-2D panel
Exec=gnome-session --session=cairo-dock-unity
TryExec=cairo-dock-session
Icon=
Type=Application
cairo-dock-unity.session 0000664 0000000 0000000 00000000552 13750214643 0031775 0 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.0 [GNOME Session]
Name=Cairo-Dock Session with Unity
RequiredComponents=gnome-settings-daemon;
RequiredProviders=windowmanager;panel;panel_top;
DefaultProvider-windowmanager=compiz
DefaultProvider-panel=cairo-dock
DefaultProvider-panel_top=unity-2d-panel
IsRunnableHelper=/usr/lib/nux/unity_support_test
FallbackSession=cairo-dock-unity-fallback
DesktopName=GNOME
cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.0/cairo-dock.desktop 0000664 0000000 0000000 00000000334 13750214643 0030672 0 ustar 00root root 0000000 0000000 [Desktop Entry]
Name=Cairo-Dock (Gnome + Effects)
Comment=This session logs you into GNOME with Cairo-Dock and with graphical effects.
Exec=gnome-session --session=cairo-dock
TryExec=gnome-session
Icon=
Type=Application
cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.0/cairo-dock.session 0000664 0000000 0000000 00000000446 13750214643 0030710 0 ustar 00root root 0000000 0000000 [GNOME Session]
Name=Cairo-Dock Session
RequiredComponents=gnome-settings-daemon;
RequiredProviders=windowmanager;panel;
DefaultProvider-windowmanager=compiz
DefaultProvider-panel=cairo-dock
IsRunnableHelper=/usr/lib/nux/unity_support_test
FallbackSession=cairo-dock-fallback
DesktopName=GNOME
cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.10/ 0000775 0000000 0000000 00000000000 13750214643 0025345 5 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.10/CMakeLists.txt 0000664 0000000 0000000 00000002304 13750214643 0030104 0 ustar 00root root 0000000 0000000 # By default the session is GNOME except on Ubuntu: better to use Unity to not
# have specific features of some apps created for Gnome-Shell (e.g. the new
# Nautilus or GThumb interface which are not really compatible with Compiz)
set (DESKTOP_NAME "GNOME")
set (SETTINGS_DAEMON "gnome")
get_filename_component(ISSUE_NET "/etc/issue.net" ABSOLUTE)
if (EXISTS ${ISSUE_NET})
FILE(READ "${ISSUE_NET}" DISTRO_RELEASE)
if (NOT "${DISTRO_RELEASE}" STREQUAL "")
STRING (REGEX REPLACE " (.+)" "" DISTRO_ID ${DISTRO_RELEASE})
message(STATUS ${DISTRO_ID})
if ("${DISTRO_ID}" STREQUAL "Ubuntu")
set (DESKTOP_NAME "Unity")
if(${GTK_MAJOR} GREATER 3 OR (${GTK_MAJOR} EQUAL 3 AND ${GTK_MINOR} GREATER 12))
set (SETTINGS_DAEMON "unity")
endif()
endif()
endif()
endif()
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/cairo-dock.session.in ${CMAKE_CURRENT_BINARY_DIR}/cairo-dock.session)
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/cairo-dock.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/cairo-dock.desktop)
install (FILES
${CMAKE_CURRENT_BINARY_DIR}/cairo-dock.desktop
DESTINATION /usr/share/xsessions)
install (FILES
${CMAKE_CURRENT_BINARY_DIR}/cairo-dock.session
DESTINATION /usr/share/gnome-session/sessions)
cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.10/cairo-dock.desktop.in 0000664 0000000 0000000 00000000322 13750214643 0031355 0 ustar 00root root 0000000 0000000 [Desktop Entry]
Name=Cairo-Dock (GNOME)
Comment=This session logs you into GNOME with Cairo-Dock
Exec=gnome-session --session=cairo-dock
TryExec=gnome-session
Icon=
Type=Application
DesktopNames=@DESKTOP_NAME@
cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.10/cairo-dock.session.in 0000664 0000000 0000000 00000000203 13750214643 0031365 0 ustar 00root root 0000000 0000000 [GNOME Session]
Name=Cairo-Dock
RequiredComponents=@SETTINGS_DAEMON@-settings-daemon;compiz;cairo-dock;
DesktopName=@DESKTOP_NAME@
cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.28/ 0000775 0000000 0000000 00000000000 13750214643 0025356 5 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.28/CMakeLists.txt 0000664 0000000 0000000 00000000342 13750214643 0030115 0 ustar 00root root 0000000 0000000 install (FILES
cairo-dock-compiz.desktop
cairo-dock-metacity.desktop
DESTINATION /usr/share/xsessions)
install (FILES
cairo-dock-compiz.session
cairo-dock-metacity.session
DESTINATION /usr/share/gnome-session/sessions)
cairo-dock-compiz.desktop 0000664 0000000 0000000 00000000430 13750214643 0032201 0 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.28 [Desktop Entry]
Name=GNOME/Cairo-Dock (Compiz)
Comment=This session logs you into GNOME Flashback with Cairo-Dock and Compiz
Exec=gnome-session --session=cairo-dock-compiz
TryExec=compiz
Type=Application
DesktopNames=GNOME-Flashback;GNOME;
X-Ubuntu-Gettext-Domain=gnome-flashback
cairo-dock-compiz.session 0000664 0000000 0000000 00000001331 13750214643 0032214 0 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.28 [GNOME Session]
Name=GNOME/Cairo-Dock (Compiz)
RequiredComponents=compiz;gnome-flashback-init;gnome-flashback;cairo-dock;nautilus-classic;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Clipboard;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Mouse;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;
cairo-dock-metacity.desktop 0000664 0000000 0000000 00000000440 13750214643 0032520 0 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.28 [Desktop Entry]
Name=GNOME/Cairo-Dock (Metacity)
Comment=This session logs you into GNOME Flashback with Cairo-Dock and Metacity
Exec=gnome-session --session=cairo-dock-metacity
TryExec=metacity
Type=Application
DesktopNames=GNOME-Flashback;GNOME;
X-Ubuntu-Gettext-Domain=gnome-flashback
cairo-dock-metacity.session 0000664 0000000 0000000 00000001335 13750214643 0032536 0 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.28 [GNOME Session]
Name=GNOME/Cairo-Dock (Metacity)
RequiredComponents=metacity;gnome-flashback-init;gnome-flashback;cairo-dock;nautilus-classic;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Clipboard;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Mouse;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;
cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.36/ 0000775 0000000 0000000 00000000000 13750214643 0025355 5 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.36/CMakeLists.txt 0000664 0000000 0000000 00000000560 13750214643 0030116 0 ustar 00root root 0000000 0000000 install (FILES
cairo-dock-compiz.desktop
cairo-dock-metacity.desktop
DESTINATION /usr/share/xsessions)
install (FILES
cairo-dock-compiz.session
cairo-dock-metacity.session
DESTINATION /usr/share/gnome-session/sessions)
install (FILES
gnome-session-x11@cairo-dock-compiz.target
gnome-session-x11@cairo-dock-metacity.target
DESTINATION /usr/lib/systemd/user)
cairo-dock-compiz.desktop 0000664 0000000 0000000 00000000430 13750214643 0032200 0 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.36 [Desktop Entry]
Name=GNOME/Cairo-Dock (Compiz)
Comment=This session logs you into GNOME Flashback with Cairo-Dock and Compiz
Exec=gnome-session --session=cairo-dock-compiz
TryExec=compiz
Type=Application
DesktopNames=GNOME-Flashback;GNOME;
X-Ubuntu-Gettext-Domain=gnome-flashback
cairo-dock-compiz.session 0000664 0000000 0000000 00000001230 13750214643 0032211 0 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.36 [GNOME Session]
Name=GNOME/Cairo-Dock (Compiz)
RequiredComponents=compiz;gnome-flashback;cairo-dock;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.UsbProtection;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;
cairo-dock-metacity.desktop 0000664 0000000 0000000 00000000440 13750214643 0032517 0 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.36 [Desktop Entry]
Name=GNOME/Cairo-Dock (Metacity)
Comment=This session logs you into GNOME Flashback with Cairo-Dock and Metacity
Exec=gnome-session --session=cairo-dock-metacity
TryExec=metacity
Type=Application
DesktopNames=GNOME-Flashback;GNOME;
X-Ubuntu-Gettext-Domain=gnome-flashback
cairo-dock-metacity.session 0000664 0000000 0000000 00000001234 13750214643 0032533 0 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.36 [GNOME Session]
Name=GNOME/Cairo-Dock (Metacity)
RequiredComponents=metacity;gnome-flashback;cairo-dock;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.UsbProtection;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;
gnome-session-x11@cairo-dock-compiz.target 0000664 0000000 0000000 00000001607 13750214643 0035242 0 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.36 [Unit]
Description=GNOME/Cairo-Dock Session
OnFailure=gnome-session-failed.target
OnFailureJobMode=replace
DefaultDependencies=no
RefuseManualStart=no
Conflicts=shutdown.target gnome-session-shutdown.target
PartOf=graphical-session.target
# Pull in all X11-specific services the session might depend on
Requires=gnome-session-x11-services.target
BindsTo=gnome-session@.target
After=gnome-session@.target
BindsTo=gnome-flashback.target
After=gnome-flashback.target
BindsTo=gnome-session.target
After=gnome-session.target
Requires=indicators-pre.target
# here we list the indicators that we want to load
Wants=indicator-application.service
Wants=indicator-bluetooth.service
Wants=indicator-datetime.service
Wants=indicator-keyboard.service
Wants=indicator-messages.service
Wants=indicator-power.service
Wants=indicator-printers.service
Wants=indicator-session.service
Wants=indicator-sound.service
gnome-session-x11@cairo-dock-metacity.target 0000664 0000000 0000000 00000001607 13750214643 0035560 0 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.36 [Unit]
Description=GNOME/Cairo-Dock Session
OnFailure=gnome-session-failed.target
OnFailureJobMode=replace
DefaultDependencies=no
RefuseManualStart=no
Conflicts=shutdown.target gnome-session-shutdown.target
PartOf=graphical-session.target
# Pull in all X11-specific services the session might depend on
Requires=gnome-session-x11-services.target
BindsTo=gnome-session@.target
After=gnome-session@.target
BindsTo=gnome-flashback.target
After=gnome-flashback.target
BindsTo=gnome-session.target
After=gnome-session.target
Requires=indicators-pre.target
# here we list the indicators that we want to load
Wants=indicator-application.service
Wants=indicator-bluetooth.service
Wants=indicator-datetime.service
Wants=indicator-keyboard.service
Wants=indicator-messages.service
Wants=indicator-power.service
Wants=indicator-printers.service
Wants=indicator-session.service
Wants=indicator-sound.service
cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.8/ 0000775 0000000 0000000 00000000000 13750214643 0025274 5 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.8/CMakeLists.txt 0000664 0000000 0000000 00000000232 13750214643 0030031 0 ustar 00root root 0000000 0000000 install (FILES
cairo-dock.desktop
DESTINATION /usr/share/xsessions)
install (FILES
cairo-dock.session
DESTINATION /usr/share/gnome-session/sessions)
cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.8/cairo-dock.desktop 0000664 0000000 0000000 00000000266 13750214643 0030706 0 ustar 00root root 0000000 0000000 [Desktop Entry]
Name=Cairo-Dock (GNOME)
Comment=This session logs you into GNOME with Cairo-Dock
Exec=gnome-session --session=cairo-dock
TryExec=gnome-session
Icon=
Type=Application
cairo-dock-3.4.1+git20201103.0836f5d1/data/desktop-manager/gnome-session-3.8/cairo-dock.session 0000664 0000000 0000000 00000000156 13750214643 0030716 0 ustar 00root root 0000000 0000000 [GNOME Session]
Name=Cairo-Dock
RequiredComponents=gnome-settings-daemon;compiz;cairo-dock;
DesktopName=GNOME
cairo-dock-3.4.1+git20201103.0836f5d1/data/emblems/ 0000775 0000000 0000000 00000000000 13750214643 0020543 5 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/emblems/CMakeLists.txt 0000664 0000000 0000000 00000000714 13750214643 0023305 0 ustar 00root root 0000000 0000000
########### install files ###############
install(FILES charge.svg drop.svg play.svg pause.svg stop.svg broken.svg error.svg warning.svg locked.svg DESTINATION ${pkgdatadir}/emblems )
#original Makefile.am contents follow:
#SUBDIRS = .
#
#emblemsdir = ${pkgdatadir}/emblems
#
#emblems_DATA = \
# charge.svg\
# drop.svg\
# play.svg\
# pause.svg\
# stop.svg\
# broken.svg\
# error.svg\
# warning.svg\
# locked.svg
#
#EXTRA_DIST = $(emblems_DATA)
cairo-dock-3.4.1+git20201103.0836f5d1/data/emblems/broken.svg 0000664 0000000 0000000 00000012017 13750214643 0022545 0 ustar 00root root 0000000 0000000
cairo-dock-3.4.1+git20201103.0836f5d1/data/emblems/charge.svg 0000664 0000000 0000000 00000003743 13750214643 0022524 0 ustar 00root root 0000000 0000000
cairo-dock-3.4.1+git20201103.0836f5d1/data/emblems/drop.svg 0000664 0000000 0000000 00000015337 13750214643 0022241 0 ustar 00root root 0000000 0000000
cairo-dock-3.4.1+git20201103.0836f5d1/data/emblems/error.svg 0000664 0000000 0000000 00000014363 13750214643 0022424 0 ustar 00root root 0000000 0000000
cairo-dock-3.4.1+git20201103.0836f5d1/data/emblems/locked.svg 0000664 0000000 0000000 00000017754 13750214643 0022543 0 ustar 00root root 0000000 0000000
cairo-dock-3.4.1+git20201103.0836f5d1/data/emblems/pause.svg 0000664 0000000 0000000 00000012010 13750214643 0022373 0 ustar 00root root 0000000 0000000
cairo-dock-3.4.1+git20201103.0836f5d1/data/emblems/play.svg 0000664 0000000 0000000 00000015760 13750214643 0022242 0 ustar 00root root 0000000 0000000
cairo-dock-3.4.1+git20201103.0836f5d1/data/emblems/stop.svg 0000664 0000000 0000000 00000011333 13750214643 0022252 0 ustar 00root root 0000000 0000000
cairo-dock-3.4.1+git20201103.0836f5d1/data/emblems/warning.svg 0000664 0000000 0000000 00000022145 13750214643 0022735 0 ustar 00root root 0000000 0000000
cairo-dock-3.4.1+git20201103.0836f5d1/data/explosion/ 0000775 0000000 0000000 00000000000 13750214643 0021137 5 ustar 00root root 0000000 0000000 cairo-dock-3.4.1+git20201103.0836f5d1/data/explosion/CMakeLists.txt 0000664 0000000 0000000 00000000160 13750214643 0023674 0 ustar 00root root 0000000 0000000
########### install files ###############
install(FILES explosion.png DESTINATION ${pkgdatadir}/explosion )
cairo-dock-3.4.1+git20201103.0836f5d1/data/explosion/explosion.png 0000664 0000000 0000000 00000250071 13750214643 0023672 0 ustar 00root root 0000000 0000000 PNG
IHDR TlĈ sRGB pHYs tIME8:v tEXtComment Created with GIMPW bKGD OIDATx $Gu-5ܺun%ZB~b7x0k-yl?x{~`0}x26 d@ ȒHj
|kȌvĉȬ{N=Hq[gWVĮ}Ζb8uwHRRBIܚD
'
Z/sYz[IJ@7
פ;%ClD8E$FnqBKuzЮtk6wcq~oys'?;ʹ=ї=F(`@l"&c@\@N
>|Ç>|Ѫk0#0<2bȬ~L4$@қJٝHPY'}@p_{'U~J#,DKqwHx
qd'VzJ-qI])Qt1lʑT`RzIrZz( (~ 6WI>|Ç>|VYLȌ[i^coȄ4yMRMe2~a^L:ϯ,R=o|:OHj*4/},!lC&eRiJGvN˒=|NY2IXE͝CIiϤJm&a@<0 :dHf>|Ç>|$U @X2/)A&pHIddQV(A )`Y}v
*/,IV˩:pzcσ[&eRmY+H S.ZX'fKbIy<i\k m7SIb0 6 Iܪ%1>|Ç>|}( UcbG:X*@锛
6TŘ)x?2eTL\);ԁfrǚ+@jyK%L[ebE2+gQ~Pf'mHˌUgϩpuB?; o "eO0 \1Ç>|Ç>|P`@dtJ.SRWfe`|WKe-ΰ U刧^QɔJuk2}wWU\3&t!2J8i pɬZ@8Wڿ/2-̪kSXq
b@l2&b@$i DJn>|Ç>|>&:$oV00L6հ$δ؇-5ܸXJTo-9ʓG`EnR^L$$(G
r9] dَd*1T tin٧r= S9e㚑9%9Bk,k-6sn1 6I AN:o >|Ç>|#Pq;}sZMVՈU$IК-iJeAKK"Ї-hMΕpMcYu*C9ETZHy!
5aC8J66>Rz:%Q~9o?5o1RvpNRdGQ^|*5}0Tr*nyzzJ &`@g0PTĀ>|Ç>|p殘7q'wwḁJNzhӭ ry!å$I^+}lUDk~2PfXR%Q~}CЖ2J >j3J>&XXg8
L\jUdm>gCNK9=֊Nź5ÒsD._Ur=ʜpYٮU\Jօ
`@\ :1;ek@pÇ>|ÇpT*Qɓ'N&&&j 'DC4'+aG3(ݙR4Gۛ&k%hi({_:
Τ]L O
$b^%-;u)xXcFT,ݮKt|RdgÜ˖L: