1
0
Fork 0
mirror of https://github.com/roles-ansible/ansible_role_i3wm.git synced 2024-08-16 10:09:53 +02:00
Find a file
2024-07-27 16:55:59 +02:00
.github Merge pull request #25 from roles-ansible/dependabot/github_actions/ansible-actions/ansible-lint-action-1.0.3 2024-03-22 14:50:06 +01:00
defaults pulsemixer and fork-awsome are required 2023-08-01 22:40:12 +02:00
files Update wlan script 2023-08-22 14:56:40 +02:00
meta Update ansible lint 2023-05-19 17:07:00 +02:00
tasks Update role name 2024-07-27 16:50:45 +02:00
templates Expand sleep 2024-05-24 11:18:03 +02:00
vars increase version 2023-10-28 16:32:20 +02:00
.gitignore initial commit 2017-12-31 00:56:01 +01:00
.yamllint fix yaml linting 2021-02-26 17:31:17 +01:00
LICENSE Update LICENCE: MIT 2019-05-29 10:52:06 +02:00
README.md Update role name 2024-07-27 16:50:45 +02:00
requirements.yml improve linting and adding requirements 2023-10-28 16:25:06 +02:00

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