Skip to content

roles-ansible/ansible_role_i3wm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
    i3_wallpaper: true
    i3_no_screensaver: true
    i3_xautolock: true
    i3_screensaver_time: '90'
    i3_disable_beep: 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