Giter Club home page Giter Club logo

linux-themer's Introduction

linux-themer

A tool to customize the linux desktop environment

About

This is a lightweight wrapper of the gsettings utility to quickly tweak linux desktop environment theme settings (e.g., icon themes).

Why themer?

  • No need to memorize long path and key names
  • Quick access to common desktop environment settings
  • Auto-detection of running desktop environment

Motivation

Are you always changing your desktop's appearance based on your mood, experimenting with various designs, or a random need for something different? I created this tool to quickly change some of the more common desktop environment theme settings from the command line. For example, changing themes based on the time of day or quickly toggle between light and dark themes should be easy and intuitive. However, memorizing long gsettings schemas and keys is bothersome. So, themer was created to be a wrapper to easily tweak theme settings without the long path and key names.

A table of gsetting commands and their equivalent in themer are shown below.

Theme gsetting key schema gsetting key themer key
Icons desktop.interface icon-theme icons
Controls desktop.interface gtk-theme controls
Window Borders desktop.wm.preferences theme windows
Desktop theme name desktop
Mouse pointer desktop.interface cursor-theme cursor

See the Usage and Examples on how to use.

Getting started

Install

git clone https://github.com/trevor-moon/linux-themer.git
cd linux-themer
sudo make install

Uninstall

sudo make uninstall

Usage

Change desktop environment themes

Usage:
  themer.sh COMMAND

Commands:
  -h, --help          Show this information and exit
  -v, --version       Show version information and exit
  --get <theme>       Get the theme value
  --set <theme> <value> Set the theme value
  --reset <theme>     Reset the theme value
  --list-cursors      List installed cursors
  --list-icons        List installed icons
  --list-themes       List installed themes

Themes:
  icons               Icon theme
  controls            Control button theme
  windows             Window border theme
  desktop             Desktop theme
  cursor              Mouse pointer theme

Examples

Below are some examples, as well as the equivalent gsettings command.

  1. Change the icon theme

    # gsettings --set org.cinnamon.desktop.interface icon-theme "Mint-X"
    themer.sh --set icons "Mint-X"
  2. Change the window border theme

    # gsettings --set org.cinnamon.desktop.wm.preferences theme "Mint-Y-Dark"
    themer.sh --set windows "Mint-Y-Dark"
  3. Get the controls theme

    # gsettings --get org.cinnamon.desktop.interface gtk-theme
    themer.sh --get controls
  4. List available desktop themes

    themer.sh --list-themes

Contributing

For contributing to this project, see CONTRIBUTING.

License

See LICENSE for more information.

Contact

Trevor Moon - [email protected]

linux-themer's People

Contributors

trevor-moon avatar

Watchers

 avatar  avatar

linux-themer's Issues

compatibility with gsettings keys

With gsettings being the default utility, themer limits capabilities to keys that are defined explicitly in-code. I want to be able to still specify specific key-value pairs that I normally would use in gsettings.

For gsettings,

gsettings --set org.cinnamon.desktop.interface icon-theme "Mint-Y"

For themer, this could be a potential example - although it may conflict with the current implementation used for --set option.

themer.sh --set desktop.interface icon-theme "Mint-Y"

However, the current implementation for this specific key-value is

themer.sh --set icons "Mint-Y"

where icons defines desktop.interface and icon-theme items.

input argument validation

For example, Mint-Y-Red is a valid icons theme but is not a valid cursor theme. This will need to be done for each theme.

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.