Git Product home page Git Product logo

i3-manager's Introduction

i3-manager

i3-manager enables you to manage multiple i3 configurations that share common configuration code and generate related the XSession files for use by session managers.

Background

i3 is a great and minimal tiling window manager with a fairly straightforward configuration scheme. However I don't always want to use the same configuration every time and i3's support of this is quite low. Often times I'd find that my different configurations would share most of their code and only differ in a few ways. In order to make that work I would have to manually copy and paste all the shared code every time I made an update to it. Which is what motivated me to create i3-manager. i3-manager will take parts of configuration files and combine them into multiple i3 configurations for you, in addition to this, it will also generate the correct XSession files used by many login/session managers to launch desktop environments.

Installation

  • Clone this repository and place the folder in a suitable location, I recommend ~/.config
  • By default the script looks for parts and configs within the same folder as the script, however this can be configured in config.ini
  • Similarly i3 files are by default output to ~/.config/i3/configs and xsession files to /usr/share/xsessions
    • you will need to run the script with elevated permissions or change write access to /usr/share/xsessions
  • I recommend making i3-manager (included bash file) executable anywhere so symlinking it may not be a bad idea

Usage

Part files:

  • Part files are parts of i3 config and are combined by i3 manager to create i3 configurations

Conf files:

  • Describes to i3-manager how to combine parts files into i3 configurations

    Structure: - name - This is the name used within the .desktop file - filename - Not necessary but allows you to have file names (e.g. the .desktop and i3 conf) that differ from the name variable - Comment - This comment gets put into the .desktop file - Parts - The most important section - Declares an array of part file names - These part files are combined linearly to produce the i3 configuration

Once you have parts and confs you can run i3-manager generate to generate the config files.

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.