All Projects → pitkley → i3nator

pitkley / i3nator

Licence: Apache-2.0, MIT licenses found Licenses found Apache-2.0 LICENSE-APACHE MIT LICENSE-MIT
i3nator is Tmuxinator for the i3 window manager

Programming Languages

rust
11053 projects
shell
77523 projects
python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to i3nator

dotfiles
A total nord dotfiles used by me. Forever work in progress.
Stars: ✭ 35 (-38.6%)
Mutual labels:  i3, i3wm
i3status
Simple status bar for i3 / i3-gaps / sway written in bash and python
Stars: ✭ 69 (+21.05%)
Mutual labels:  i3, i3wm
negi3wm
Brings a lot of unique UX features inspired by ion3/notion wm. Probably the most sophisticated example of i3ipc usage ever created
Stars: ✭ 27 (-52.63%)
Mutual labels:  i3, i3wm
i3-workspace-switcher
MRU (Most recently used) workspace switcher for i3 window manager
Stars: ✭ 20 (-64.91%)
Mutual labels:  i3, i3wm
i3-wm-gruvbox-theme
An i3-wm gruvbox theme implementation
Stars: ✭ 229 (+301.75%)
Mutual labels:  i3, i3wm
no-mans-sky-rice-i3wm
i3WM rice themed using No Man's Sky's colors
Stars: ✭ 34 (-40.35%)
Mutual labels:  i3, i3wm
kitti3
Kitty drop-down service for sway & i3wm
Stars: ✭ 73 (+28.07%)
Mutual labels:  i3, i3wm
i3blocks-airpods
i3blocks script for managing airpods and airpods pro.
Stars: ✭ 61 (+7.02%)
Mutual labels:  i3, i3wm
i3
Archivos de configuraciones de i3
Stars: ✭ 32 (-43.86%)
Mutual labels:  i3, i3wm
i3wm-config
i3wm config files. Updated config files are in the repository below.
Stars: ✭ 13 (-77.19%)
Mutual labels:  i3, i3wm
hax
Zero-config Hacky Hackpecker setup
Stars: ✭ 16 (-71.93%)
Mutual labels:  i3, i3wm
swayinfo
Some goodies for use in Sway and i3 wm
Stars: ✭ 30 (-47.37%)
Mutual labels:  i3, i3wm
dotfiles
My main working machine setup. Here be cyber dragons, and optional bugs.
Stars: ✭ 35 (-38.6%)
Mutual labels:  i3, i3wm
raiseorlaunch
A run-or-raise-application-launcher for i3 window manager.
Stars: ✭ 35 (-38.6%)
Mutual labels:  i3, i3wm
i3-timer
⏰ A simple timer for the i3 window manager
Stars: ✭ 34 (-40.35%)
Mutual labels:  i3, i3wm
dotfiles
My dotfiles, with an out-of-date install-script. Arch, Tiling WM (i3, sway), ZSH, Neovim
Stars: ✭ 20 (-64.91%)
Mutual labels:  i3, i3wm
i3altlayout
i3wm efficient screen real estate
Stars: ✭ 40 (-29.82%)
Mutual labels:  i3, i3wm
i3blocks-gate
Extra i3blocks Scripts For arch Ubuntu very simple and very useful -
Stars: ✭ 42 (-26.32%)
Mutual labels:  i3, i3wm
i3-dstatus
Another great statusline generator for i3wm
Stars: ✭ 35 (-38.6%)
Mutual labels:  i3, i3wm
i3blocks-crypto
💵 View your favorite coins' ticker prices with i3blocks.
Stars: ✭ 30 (-47.37%)
Mutual labels:  i3, i3wm

i3nator

i3nator is Tmuxinator for the i3 window manager.

It allows you to manage what are called "projects", which are used to easily restore saved i3 layouts (see Layout saving in i3) and extending i3's base functionality by allowing you to automatically start applications too.

Installation

You have multiple options to install i3nator:

  1. If you have a recent Rust with Cargo installed, you can install i3nator directly from crates.io:

    $ cargo install i3nator
  2. Alternatively, you can download the supplied static binary from the release page, this should work without any additional dependencies.

  3. Another option is to install from directly from source (this again requires a recent Rust installation):

    $ git clone https://github.com/pitkley/i3nator.git
    $ cd i3nator
    $ cargo install

Note: If you want to be able to use the automatic command execution feature, you will need to install xdotool.

Usage

i3nator 1.2.0
Pit Kleyersburg <[email protected]>
i3nator is Tmuxinator for the i3 window manager

USAGE:
    i3nator <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    copy      Copy an existing project to a new project
    delete    Delete existing projects
    edit      Open an existing project in your editor
    help      Prints this message or the help of the given subcommand(s)
    info      Show information for the specified project
    layout    Manage layouts which can used in projects
    list      List all projects
    local     Run a project from a local TOML-file
    new       Create a new project and open it in your editor
    rename    Rename a project
    start     Start a project according to it's configuration
    verify    Verify the configuration of the existing projects

Every command -- except layout -- is for managing your projects, i.e. creating, editing, starting and potentially deleting them.

layout is a bit special, because it is most of the commands used for projects, except for i3 layouts:

i3nator-layout 1.2.0
Manage layouts which can used in projects

USAGE:
    i3nator layout <SUBCOMMAND>

FLAGS:
    -h, --help    Prints help information

SUBCOMMANDS:
    copy      Copy an existing layout to a new layout
    delete    Delete existing layouts
    edit      Open an existing layout in your editor
    help      Prints this message or the help of the given subcommand(s)
    info      Show information for the specified layout
    list      List all layouts
    new       Create a new layout and open it in your editor
    rename    Rename a layout

These commands allow you to manage i3 layouts in addition to the actual projects which will be able to use and reuse them.

Examples

(See here for additional examples. See also the types::Config API documentation for detailed documentation on the configuration parameters.)

Full workflow

  1. Open all applications you want and lay them out on a workspace as desired.

  2. Save the workspace's layout using i3-save-tree, feeding the layout directly into i3nator's layout management:

    $ i3-save-tree --workspace 1 | i3nator layout new -t - mylayout

    If you don't want the layout managed by i3nator, you can alternatively:

    • copy the layout to your clipboard, and insert it directly in your project configuration later or
    • save it to a file on your disk, and reference this file-path in your configuration later.

    If you are using i3nator's layout management, the above command should drop you into an editor, ready for step 3.

  3. Modify the saved layout to accurately match created applications. See Editing layout files on how to do this.

    If you copied the layout to your clipboard, you will be able to do this in step 5.

  4. Create a new project:

    $ i3nator new myproject
    Created project 'myproject'
    Opening your editor to edit 'myproject'

    This will open your default editor with a configuration template. If it doesn't, you have to specify either the $VISUAL or the $EDITOR environment variable.

    You can also simply edit the configuration file directly. Use i3nator info <PROJECT> to retreive its path.

  5. Modify the template to fit your needs. This includes:

    1. Setting the main working directory.

    2. Setting the destination workspace (this is optional, if not specified, the active one will be used).

    3. Specifying which layout to use. If you have passed the layout to i3nator in step 2, you can simply enter its name here, which in case two was mylayout.

      Alternatively you can either supply a path to the file containing the layout, or you can paste the layout from step 2 directly into your project file as a multi-line string. At this point you will also be able to modify the layout to match applications correctly.

    4. Configuring which applications to start and how to start them. This is done by setting the command to the full command to be used to start the application and optionally configuring a different working directory if desired.

      If you want to execute additional commands or keypresses in the started applications, you can also define exec.

    The resulting configuration could look something like this:

    [general]
    working_directory = "/path/to/my/working/directory"
    workspace = "1"
    layout = "mylayout"
    
    [[applications]]
    command = "mycommand --with 'multiple args'"
    exec = ["command one", "command two"]
  6. Save and close your editor. This will automatically verify the created configuration. If there is an issue it will tell you what failed and allow you to reedit the file directly or ignore the error and exit.

With these prerequisites fulfilled, you are now able to start a configuration which appends your layout to a specified workspace and starts the configured applications:

$ i3nator start myproject

Version bump policy

In general, the versioning scheme follows the semantic versioning guidelines:

  • The patch version is bumped when backwards compatible fixes are made (this includes updates to dependencies).
  • The minor version is bumped when new features are introduced, but backwards compatibility is retained.
  • The major version is bumped when a backwards incompatible change was made.

Special case:

  • A bump in the minimum supported Rust version (MSRV), which is currently 1.54.0, will be done in patch version updates (i.e. they do not require a major or minor version bump).

License

i3nator is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in i3nator by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

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].