I'm a big fan of using configuration management and deployment tools like Ansible. Not only do they allow to keep things consistent across systems, they also speed up otherwise dreadful manual tasks by automating them.

Now what I want to achieve seems simple enough, but I haven't found a way to automate these tasks using a shell script or similar (basically anything that would work from within Ansible). Apparently there is a cinnamon-settings-daemon (short csd) which - going by its name - would seem to govern Cinnamon settings. But how do I talk to it?

I want to:

  • disable the screen saver
    For this item I can imagine that I can somehow disable csd-screensaver-proxy and cinnamon-screensaver, processes I can see running.
  • disable power management for the screen (this is for a VM!)
  • set a solid black desktop background
    Can be done manually in Backgrounds ( Picture Aspect = No picture & Background gradient = None & Gradient start color = None ).
  • disable certain keyboard shortcuts of the default terminal application
    Can be done manually from within the application in its Preferences dialog.
  • set the color scheme of the default terminal application
    Can be done manually from within the application in its Preferences dialog.
  • disable certain system-wide keyboard shortcuts and add others
    Can be done manually in Keyboard -> Shortcuts.
  • disable the Linux Mint Welcome screen
    Can be done manually from Startup Applications.
  • set the time and date format used by Cinnamon
  • have a user log on automatically

How can I achieve that ?

I did some research of my own and the program gsettings looks a bit like it could be what I am after (and so does dconf), but how do I know which setting corresponds to which key and what values are allowed for the key in question? Also, I read that dconf-editor (provided by the package of the same name) shows settings that aren't visible to gsettings.

One approach that might work for me is the ability to configure the desktop once in a manual fashion and then use gsettings and/or dconf to list all settings that aren't at their defaults and then use that pre-recorded list to apply these settings to a system managed with Ansible (something along the lines of dconf dump ... but limited to non-default values). The knowledge what the defaults are must be stored somewhere given gsettings reset ... exists.

Bonus points for hints that allow these changes to take effect without logout (assuming that's necessary).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.