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.
$ ansible-galaxy install roles-ansible.i3wm
For a good overview about possible variables, please have a look into defaults/main.yml
.
- 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'
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