All Projects → obestwalter → i3configger

obestwalter / i3configger

Licence: MIT license
i3 config manipulation tool

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to i3configger

holo
Minimalistic configuration management
Stars: ✭ 88 (+282.61%)
Mutual labels:  configuration-management
trimmer
An editor, build and player configuration framework for the Unity game engine.
Stars: ✭ 56 (+143.48%)
Mutual labels:  configuration-management
sway-alttab
Simple Alt-Tab daemon for SwayWM/i3. Switches back to previous focused window on Alt-Tab or SIGUSR1
Stars: ✭ 36 (+56.52%)
Mutual labels:  i3wm
agollo
🚀Go client for ctrip/apollo (https://github.com/apolloconfig/apollo)
Stars: ✭ 563 (+2347.83%)
Mutual labels:  configuration-management
i3blocks-crypto
💵 View your favorite coins' ticker prices with i3blocks.
Stars: ✭ 30 (+30.43%)
Mutual labels:  i3wm
dynamic-config
A dynamic config library for Node.js implemented in TypeScript
Stars: ✭ 29 (+26.09%)
Mutual labels:  configuration-management
apollo.net
Apollo配置中心.Net客户端
Stars: ✭ 449 (+1852.17%)
Mutual labels:  configuration-management
nextshot
A simple tool for taking screenshots on Linux and sharing via Nextcloud
Stars: ✭ 37 (+60.87%)
Mutual labels:  i3wm
hier config
Hierarchical Configuration
Stars: ✭ 86 (+273.91%)
Mutual labels:  configuration-management
rofi-tmux
✔️ rft (rofi-tmux). Quickly switches tmux sessions, windows and tmuxinator projects
Stars: ✭ 22 (-4.35%)
Mutual labels:  i3wm
configi.old
Bloat-free configuration management
Stars: ✭ 35 (+52.17%)
Mutual labels:  configuration-management
pidswallow
A swallower script using process hierarchy.
Stars: ✭ 40 (+73.91%)
Mutual labels:  i3wm
climatecontrol
Python library for loading settings and config data from files and environment variables
Stars: ✭ 20 (-13.04%)
Mutual labels:  configuration-management
i3-wm-gruvbox-theme
An i3-wm gruvbox theme implementation
Stars: ✭ 229 (+895.65%)
Mutual labels:  i3wm
envkey-python
EnvKey's python library. Protect API keys and credentials. Keep configuration in sync.
Stars: ✭ 24 (+4.35%)
Mutual labels:  configuration-management
opensvc
The OpenSVC node agent
Stars: ✭ 27 (+17.39%)
Mutual labels:  configuration-management
kitti3
Kitty drop-down service for sway & i3wm
Stars: ✭ 73 (+217.39%)
Mutual labels:  i3wm
dotfiles
My dotfiles
Stars: ✭ 23 (+0%)
Mutual labels:  i3wm
Pokedex
Pokedex is a robust Discord bot that mimics the iconic Pokedex from the Pokemon games and show. It's loaded with features to help players of all skill levels to learn and better enjoy Pokemon! The goal of Pokedex is to provide users with as much data about the Pokemon games as they desire conveniently and with minimal effort.
Stars: ✭ 18 (-21.74%)
Mutual labels:  configuration-management
dotfiles
🔧 .files - different setups separated in branches
Stars: ✭ 168 (+630.43%)
Mutual labels:  i3wm

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

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.

NOTE using i3configger will replace your existing config files (config and optional status bar configs), but it will move them to <original-name>.bak if no backup exists yet, so that you can easily revert the damage if you want to go back to your old files.

Why?

I wanted to be able to switch between different color themes and do things like hide the i3bar with a keyboard shortcut. i3configger makes this and other dynamic changes possible without changing i3wm itself.

Main characteristics

  • same config language as i3 with these enhancements:
    • possibility to spread config over several files
    • possibility to assign variables to variables
    • variables in i3status configs are also resolved (set them anywhere in the sources)
  • additional configuration of i3configger itself and persistence of changes to the i3 configuration is achieved by sprinkling a bit of json on top of the config files.
  • command line driven - activities can be bound to keyboard shortcuts directly or as part of a binding mode

How?

In the end i3wm needs a config file it can cope with and it needs to reload or restart, when something changes.

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

What can I do with it?

Switch between arbitrary "schemes"

You can switch 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 <key> <value2>.

To get an idea what can be done, have a look at the examples and read the docs.

Override any variable

You can change any variable you have defined in the configuration by invoking i3configger set <variable name> <new value>. These changes are persisted not in the config itself but in an additional file.

See i3configger docs for a detailed explanation of the concept and other possible commands.

Usage example

Here is a snippet from an i3 config that uses a mode to alter itself by sending messages to i3configger:

set $i3cBin ~/.virtualenvs/i3/bin/i3configger

bindsym $win+w mode "i3configger"
mode "i3configger" {
    bindsym Right exec "$i3cBin select-next colors --i3-refresh-msg restart"
    bindsym Left exec "$i3cBin select-previous colors --i3-refresh-msg restart"
    bindsym Up exec "$i3cBin shadow bars:targets:laptop:mode dock"
    bindsym Down exec "$i3cBin shadow bars:targets:laptop:mode hide"
    bindsym Return mode "default"
    bindsym Escape mode "default"
}

Explanation of the messages used:

  • select[...] integrates different config partials and can therefore make broad changes. In this case for example there are different colors.<value>.conf partials that activate different color schemes
  • shadow adds an overlay that in this case changes the mode of the laptop bar between hide and dock

Installation

$ pip install i3configger

See docs For more details and different ways of installation.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].