Git Product home page Git Product logo

cinnamon-settings-daemon's Introduction

cinnamon-settings-daemon is a collection of plugins.

These plugins are started by cinnamon-session when you log in.

The plugins run in the background, each with their own process.

Plugins:

Here's a description of each plugin.

a11y-keyboard

a11y-settings

automount

background

clipboard

Xorg features two ways of copying and pasting content. The first one is X-clipboard, which is commonly used in edit menus and using Ctrl+C and Ctrl+V. The second one is X-selection which is used by selecting content with the mouse and pasting it with a middle-click.

When you copy content from a window, that content is available either in X-clipboard or X-selection until the application which owns that window is terminated.

This plugin keeps the content of X-clipboard in memory, so that even if the owner application exits the content continues to be available.

color

common

cursor

datetime

dummy

This is a dummy plugin. It doesn't do anything.

housekeeping

thumbnail cache

The thumbnail cache is cleaned up according to the settings stored in org.cinnamon.desktop.thumbnail-cache.

This is done 2 minutes after login and then once a day.

low disk space

Every minute, the plugin checks the mounted volume to see if they have low disk space, according to the settings stored in org.cinnamon.settings-daemon.plugins.housekeeping.

The plugin shows a notification when a volume is full.

keyboard

This plugin handles the keyboard.

keyboard settings

It reads and listens to the org.cinnamon.settings-daemon.peripherals.keyboard settings and applies the configuration.

numlock state

It also listens to the state of the numlock key and saves it in the settings to ensure the state is remembered and preserved for the next session.

keyboard layout

The layout selection is done in cinnamon-control-center's region plugin (which is presented to the user in cinnamon-settings' keyboard module). That configuration is set directly via gkbd (libgnomekbd) and xkl (libxklavier). This plugin reads and listens to that configuration and assigns to the keyboard.

hotplug command

Although it isn't configured by default or used by cinnamon-settings, when a keyboard is plugged in, or removed, the plugin executes the command specified in org.cinnamon.settings-daemon.peripherals.input-devices hotplug-command with a series of argument to specify the event type, the device etc..

An example script which can be used for such a command is available in plugins/common/input-device-example.sh.

media-keys

mouse

This plugin handles mice and touchpads.

It reads and listens to the org.cinnamon.settings-daemon.peripherals.mouse and org.cinnamon.settings-daemon.peripherals.touchpad settings and applies the configuration in X11.

This plugin supports synaptics and libinput devices.

orientation

power

print-notifications

This plugin shows printer notifications.

On DBUS, it listens to events on org.cups.cupsd.Notifier.

Libnotify is used to show the notifications.

screensaver-proxy

smartcard

sound

This plugin is use to play sound files or theme sounds via PulseAudio.

It's available via dbus at org.cinnamon.SettingsDaemon.Sound.

Its configuration is org.cinnamon.desktop.sound.

wacom

This plugin handles wacom tablets.

It reads and listens to the org.cinnamon.settings-daemon.peripherals.wacom and applies the configuration in X11.

xrandr

xsettings

This plugin sets the settings for GTK and Xft.

TESTING

To test a plugin:

  1. Kill the running CSD plugin
  2. Build the project
  3. Run the built plugin in verbose mode

For instance:

  • killall csd-sound (you might have to kill it twice, if CSM tries to restart it)
  • dpkg-buildpackage
  • plugins/sound/csd-sound --verbose

TODO:

  • Remove custom keybinding code (we handle that in Cinnamon now) - do we want to handle media keys in cinnamon also? Would get around the 'no meda keys while a menu is open' issue.
  • Switch to Gnome's keyboard layout (gsettings) handler - basically reverting Ubuntu's patch for this. This will allow us to implement ibus popups directly in Cinnamon
  • Look into backgrounds - we should be able to eliminate the background manager in the cinnamon gnome 3.8 compat rollup, and continue to handle backgrounds as we currently do
  • Investigate: How to keep gnome-settings-daemon from autostarting. It checks for environment=GNOME... which means Cinnamon also - is it time to have our own freedesktop.org name?

-- Update on this: Setting session name to Cinnamon works - then add to main.c in cinnamon, to set XDG_CURRENT_DESKTOP=GNOME makes sure apps keep showing up

  • Multiple backgrounds on multiple monitors
  • /etc/acpi/powerbtn.sh - add cinnamon-settings-daemon to script - how? postinst?

cinnamon-settings-daemon's People

Contributors

ac000 avatar av2k avatar bomdia avatar brownsr avatar city-busz avatar clefebvre avatar collinss avatar corbin-auriti avatar dalcde avatar eli-schwartz avatar fantu avatar filakhtov avatar gerow avatar josephmcc avatar leigh123linux avatar marmistrz avatar maxyz avatar miniskipper avatar monsta avatar montagdude avatar mtwebster avatar nalim avatar phatina avatar pixunil avatar schachmat avatar superheron avatar whot avatar wpyoga avatar wrouesnel avatar xhaakon avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.