i3wm

Ansible Galaxy MIT License Maintainance

I3 Window Manager - ansible role

Install and deploy a basic configuration of I3 Window Manager via ansible.
Optionally configure your resolution, which applications will be bound to which screen and what will be included in the autostart.
If you want to use wayland instead of xorg, think about using sway as window manager. The corresponding ansible is located on github.com/roles-ansible/role-sway.

Get it directly from Ansible Galaxy

$ ansible-galaxy install roles-ansible.i3wm

Role Variables

For a good overview about possible variables, please have a look into defaults/main.yml.

Example Usage

 - name: install i3wm on localhost
   hosts: localhost
   vars_files:
     - vars/main.yml
   roles:
     - {role: roles-ansible.i3wm, tags[i3, i3wm]}

vars/main.yml

    # User List for i3wm config
    i3wm_user_list:
      - user: "alice"
        home: "/home/alice"
      - user: "bob"
        home: "/home/bob"

    # background image
    i3_desktop_background: "~/Bilder/wallpaper.jpg"

    # you want additional keybindings?
    i3_keybindings_extra:
      - keybinding:
        name: Volume (mute/unmute)
        key: $mod+F12
        exec: --no-startup-id amixer sset Master toggle
      - keybinding:
        name: Volue (default)
        key: $mod+Shift+F12
        exec: --no-startup-id amixer sset Master 40%

    # how your monitors are configured
    i3_monitors:
      - monitor:
        id: 1
        output: "HDMI-A-0"
        mode: "1920x1080"
        pos: "0x0"
        rotate: "normal"
        workspaces: [0,1,2,3,4,5,6]
      - monitor:
        id: 2
        output: "DisplayPort-0"
        mode: "1920x1080"
        pos: "1920x0"
        rotate: "normal"
        workspaces: [7,8,9]

    # startup applications
    i3_applications:
      - application:
        class: "Firefox"
        name: "firefox"
        workspace: 1
        on_startup: false
      - application:
        class: "Code"
        name: "code"
        workspace: 7
        on_startup: true

    # lock your screen after 90 min
    enable_lock_after_time: true

    files/rofi/dracula_dark.rasi

    # enable multiple i3blocks options
    i3_i3blocks_options:
      weather: true
      audio_volume: true
      wifisignal: true
      ipaddress: true
      clock: true
      battery: true
      ddate: true

    # choose rofi theme
    i3_rofi_config_file: 'files/rofi/dracula_dark.rasi'

Requirements

The community.general collection is required for some parts of this ansible role. You can install it with this command:

ansible-galaxy collection install -r requirements.yml --upgrade
About

Install and configure i3wm on common linux distibutions (https://i3wm.org/)

Install
ansible-galaxy install roles-ansible/ansible_role_i3wm
GitHub repository
License
mit
Downloads
528
Owner
Ansible roles provide a framework for fully independent, or interdependent collections of variables,tasks,files,templates &modules. Here we maintain some. enjoy