3.2 KiB
Sway Ansible role
Role to configure Sway window manager
Variables
This role have multiples variables for managing all configurations
output
Manage displays and options
sway_outputs:
- id: 'all'
name: '*'
options:
- option: 'bg'
value: '/usr/share/backgrounds/sway/sway_wallpaper_blue_1920x1080.png fill'
This example reproduce default beaviour:
id
: display id, useful for (future) kanshi configuration rolename
: name of display, this can be found withswaymsg -t get_outputs
options
: list of options
Input
Manage input configuration
sway_inputs:
- name: '*'
options:
- option: 'xkb_layout'
value: 'us'
- option: 'xkb_variant'
value: 'altgr-intl'
name
: name of input, can be found withswaymsg -t get_inputs
options
: list of options
Keybinding
Manage keybinding
sway_keybindings:
- mode: 'normal'
bindings:
- bindsym: '$mod+Return'
action: 'exec $term'
- bindsym: '$mod+Shift+q'
action: 'kill'
# ...
- mode: 'resize'
bindings:
- bindsym: '$left'
action: 'resize shrink width 10 px or 10 ppt'
- bindsym: '$down'
action: 'resize grow height 10 px or 10 ppt'
# ...
You can define different modes, normal
mode is mandatory, others are
optionnals. This example reflect the default configuration with normal
and
resize
modes. bindings
contains a list of keyboard shortcuts and actions
theme configuration
This part is divided in two parts, one for theme options, one for colors
sway_theme_parameters:
default_orientation: 'auto'
workspace_layout: 'default'
# ...
sway_theme_colors:
focused:
border: '#4c7899'
backgound: '#385579'
text: '#ffffff'
indicator: '#2efef4'
child_border: '#285577'
focused_inactive:
# ...
theme_parameters
contains a list of key:value, each key
represent a
configuration parameter, value
represent ... his value.
theme_colors
represent a list of client classes, each classe contains list of
colors. Check sway manual with man 5 sway
.
Workspaces
Like theming, there is two list for two puposes:
- The first to manage workspaces name
- The second to manage assign and rules:
sway_workspaces:
1: '1'
2: '2'
3: '3'
# ...
sway_rules:
- verb: 'assign'
query: '[app_id="^firefox$"]'
action: 3
- verb: 'assign'
query: '[app_id="KeePassXC$"]'
action: 3
# ...
- verb: 'for_window'
query: '[app_id="org.pwmt.zathura"]'
action: 'floating enable'
- verb: 'for_window'
query: '[app_id="^launcher$"]'
action: 'floating enable, resize set 800px 400px'
# ...
sway_workspace
represent a list of workspaces defined by a key that represent the
keyboard key to press with $mod
to access this workspace and a value that
represent the workspace name.
sway_rules
reprensents the list of rules for managing windows :
verb
: type of rule -assign
to assign a program to a specific workspace andfor_windows
for managing windows rules (float, size etc.)query
: witch windows to targetaction
: what you want to do with window
Sway manual can be useful : man 5 sway