Getting started¶
Having that out of the way: simply running i3configger once you have it installed should get you set up nicely.
$ i3configger -vv
yields something like:
2017-06-08 19:25:49,131 i3configger.main:main:28 INFO: set i3 refresh method to <bound method I3.reload_i3 of <class 'i3configger.ipc.I3'>>
2017-06-08 19:25:49,131 i3configger.base:set_notify_command:54 DEBUG: do not send notifications
2017-06-08 19:25:49,131 i3configger.config:fetch:159 INFO: read config from /home/oliver/.i3/config.d/i3configger.json
2017-06-08 19:25:49,132 i3configger.config:fetch:161 DEBUG: use:
{'bars': {'defaults': {'key': 'i3bar',
'target': '..',
'template': 'tpl',
'value': 'default'},
'targets': {}},
'main': {'target': '../config'}}
2017-06-08 19:25:49,132 i3configger.config:fetch:159 INFO: read config from /home/oliver/.i3/config.d/.messages.json
2017-06-08 19:25:49,132 i3configger.config:fetch:161 DEBUG: use:
{'select': {}, 'set': {}}
2017-06-08 19:25:49,133 i3configger.config:__init__:43 DEBUG: initialized config I3configgerConfig:
{'barTargets': {},
'configPath': PosixPath('/home/oliver/.i3/config.d/i3configger.json'),
'mainTargetPath': PosixPath('/home/oliver/.i3/config'),
'message': None,
'partialsPath': PosixPath('/home/oliver/.i3/config.d'),
'payload': {'bars': {'defaults': {'key': 'i3bar',
'target': '..',
'template': 'tpl',
'value': 'default'},
'targets': {}},
'main': {'target': '../config'}},
'state': {'select': {}, 'set': {}},
'statePath': PosixPath('/home/oliver/.i3/config.d/.messages.json')}
2017-06-08 19:25:49,134 i3configger.partials:select:92 DEBUG: selected:
[Partial(config.conf)]
What happened?¶
- a structure like this has been created in your
i3
folder:
<your i3 folder>
├── config
├── config.bak
└── config.d
├── .messages.json
├── config.conf
└── i3configger.json
-
your config has been copied verbatim to
config.d/config.conf
so that you can now turn it into a malleable, chunky i3configger config as you see fit. -
a new config file has been generated instead of your old config (which should still be basically the same as your old one).
-
a backup of the last config was created with
.bak
-
i3configger.json
can be used to do configuration of the status bars. .messages.json
remembers all the messages you have already sent to the configuration
What now?¶
Have a look at the examples to get an idea about how you can move towards a more dynamic configuration.
For a real world example look at my own i3 config. Here are the config partials and settings: .i3/config.d, from which config and all i3bar.*conf
files are built.
Dev mode - watch config folder¶
If you are experimenting with the config and want it automatically updated on change:
run it in the foreground:
$ i3configger --watch
run it as a daemon:
$ i3configger --daemon
stop the daemon:
$ i3configger --kill