Skip to main content

i3 config generation tool

Project description

Project Status: Active – The project has reached a stable, usable state and is being actively developed. Build Status PyPI version

i3configger

Disclaimer: this is a tool aimed at users who already know how the configuration of i3 works (as described in the excellent docs). i3configger is an independent add-on, not directly affiliated with the project and in no way necessary to use i3 productively. It is strictly command line oriented and file based using a very slight enhancement of the existing i3 configuration format with some json sprinkled on top. If you are looking for a graphical tool to help you create a configuration, check out the resources in the docs.

WARNING using i3configger will overwrite your existing config file, so make sure your config is under source control and/or you have a backup before you try this. i3configger will create a backup of your old config but only one, so running i3configger twice will leave no trace of your original configuration file.

Why?

I3 already has a very nice and simple configuration system. i3configger makes it a bit more malleable by making it possible to send “messages” to your configuration.

How?

You can change any variable you have defined in the configuration by invoking i3configger set <variable name> <new value>.

You can switch between alternative sub configurations (e.g. different color schemes) that conform with a simple naming convention (config.d/<key>.<value1>.conf, config.d/<key>.<value2>.conf, etc.) by invoking e.g. i3configger select-next <key> or i3configger select <value2>.

This is realized by adding a build step that can be triggered by calling i3configger directly or by running it as a watcher process that automatically rebuilds and reloads when source files change or messages are sent.

To get an idea how this works, have a look at the examples and read the docs.

Installation

$ pip install i3configger

See docs For more details and different ways of installation.

Documentation

Read it here: http://oliver.bestwalter.de/i3configger

Release announcements and discussion.

CHANGELOG

Unreleased

  • nothing yet

0.5.0 (Half way there) - 2017-06-08

Added

Removed

  • end of line comments are not supported anymore (too much bug potential - would need some form of parsing already to make it work -> not worth the fuzz)

Changed

  • comments are not stripped from the build anymore

  • notification is off by default: cli arg changed from --no-notify- to --notify

Fixed

  • checking the config with i3 -C did not work because -c (small c) was not passed and the passed path to the new config was silently ignored and the active config was checked instead

0.4.4 (I am not alone) - 2017-06-05

Fixed

-[#2](https://github.com/obestwalter/i3configger/issues/2) <https://github.com/obestwalter/i3configger/issues/2>`__ - fails if not using i3status. Fixed by making the refresh call ignore any errors - not nice, just a quick fix.

0.4.3 - (The Curious Incident of the Dog in the Night-Time) - 2017-06-04

Added

  • examples that are used as test cases

Fixed

  • some small fixes regarding selection

0.4.2 (The answer) - 2017-06-03

Basic implementation

  • build main config and one or several i3status configs from the same sources

  • variables are handled slightly more intelligently than i3 does it (variables assigned to other variables are resolved)

  • end of line comments are possible (removed at build time)

  • variables in i3status configs are also resolved (set anywhere in the sources)

  • reload or restart i3 when a change has been done (using i3-msg)

  • notify when new config has been created and activated (using notify-send)

  • simple way to render partials based on key value pairs in file name

  • simple way to change the configuration by sending messages

  • build config as one shot script or watch for changes

  • send messages to watching i3configger process

  • if i3 -C fails with the newly rendered config, the old config will be kept, no harm done


Note: The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

i3configger-0.5.1.tar.gz (54.5 kB view details)

Uploaded Source

File details

Details for the file i3configger-0.5.1.tar.gz.

File metadata

  • Download URL: i3configger-0.5.1.tar.gz
  • Upload date:
  • Size: 54.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for i3configger-0.5.1.tar.gz
Algorithm Hash digest
SHA256 08ca933481fc06c8771b65e911223f3ac4f8eea863aae1e1560aec6a0c92ac95
MD5 80a0ec7deee694ca6c0d5a578fcff9a1
BLAKE2b-256 a1945a62828ae76338d38f94447f36f22603b59e222c08c42d6b41dd40bf683f

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page