399 lines
15 KiB
Django/Jinja
399 lines
15 KiB
Django/Jinja
# This file has been auto-generated by i3-config-wizard(1).
|
|
# It will not be overwritten, so edit it as you like.
|
|
#
|
|
# Should you change your keyboard layout somewhen, delete
|
|
# this file and re-run i3-config-wizard(1).
|
|
#
|
|
|
|
# i3 config file (v4)
|
|
#
|
|
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
|
|
|
|
################################################################################
|
|
### VARIABLES ##################################################################
|
|
################################################################################
|
|
|
|
# Use the win-key as modifier
|
|
set $mod Mod4
|
|
|
|
# The default terminal
|
|
set $terminal "alacritty --config-file ~/.config/alacritty.yml"
|
|
set $calc "alacritty --config-file ~/.config/alacritty.yml -e $SHELL -i -c calc"
|
|
|
|
set $scriptdir ~/.i3/scripts
|
|
|
|
# Keys for the exit mode
|
|
set $key_lock l
|
|
set $key_logout e
|
|
set $key_suspend s
|
|
set $key_hibernate h
|
|
set $key_reboot r
|
|
set $key_shutdown Shift+S
|
|
|
|
set $signal_lock lock
|
|
set $signal_logout logout
|
|
set $signal_suspend suspend
|
|
set $signal_hibernate hibernate
|
|
set $signal_reboot reboot
|
|
set $signal_shutdown shutdown
|
|
|
|
set $workspace1 "1{{ "" if machine.workspace.1 is not defined else ': ' ~ machine.workspace.1 }}"
|
|
set $workspace2 "2{{ "" if machine.workspace.2 is not defined else ': ' ~ machine.workspace.2 }}"
|
|
set $workspace3 "3{{ "" if machine.workspace.3 is not defined else ': ' ~ machine.workspace.3 }}"
|
|
set $workspace4 "4{{ "" if machine.workspace.4 is not defined else ': ' ~ machine.workspace.4 }}"
|
|
set $workspace5 "5{{ "" if machine.workspace.5 is not defined else ': ' ~ machine.workspace.5 }}"
|
|
set $workspace6 "6{{ "" if machine.workspace.6 is not defined else ': ' ~ machine.workspace.6 }}"
|
|
set $workspace7 "7{{ "" if machine.workspace.7 is not defined else ': ' ~ machine.workspace.7 }}"
|
|
set $workspace8 "8{{ "" if machine.workspace.8 is not defined else ': ' ~ machine.workspace.8 }}"
|
|
set $workspace9 "9{{ "" if machine.workspace.9 is not defined else ': ' ~ machine.workspace.9 }}"
|
|
set $workspace10 "10{{ "" if machine.workspace.10 is not defined else ': ' ~ machine.workspace.10 }}"
|
|
|
|
set $key_workspace1 1
|
|
set $key_workspace2 2
|
|
set $key_workspace3 3
|
|
set $key_workspace4 4
|
|
set $key_workspace5 5
|
|
set $key_workspace6 6
|
|
set $key_workspace7 7
|
|
set $key_workspace8 8
|
|
set $key_workspace9 9
|
|
set $key_workspace10 0
|
|
|
|
set $left h
|
|
set $down j
|
|
set $up k
|
|
set $right l
|
|
|
|
set $splith v
|
|
set $splitv c
|
|
set $split_toggle x
|
|
|
|
set $fullscreen f
|
|
|
|
set $layout_stacking s
|
|
set $layout_tabbed w
|
|
set $layout_default e
|
|
|
|
set $focus_parent q
|
|
set $focus_child a
|
|
|
|
set $floating_toggle Shift+p
|
|
set $focus_mode_toggle p
|
|
|
|
set $prev_on_output u
|
|
set $next_on_output i
|
|
|
|
set $workspace_back_and_forth asciicircum
|
|
|
|
set $pim_toggle Tab
|
|
|
|
set $reload Shift+C
|
|
set $restart Shift+R
|
|
set $exit Shift+E
|
|
|
|
set $kill Shift+Q
|
|
|
|
set $screenshot o
|
|
|
|
|
|
################################################################################
|
|
### WORKSPACE ASSIGNMENTS ######################################################
|
|
################################################################################
|
|
|
|
workspace $workspace1 output {{ machine.screen.1 }}
|
|
workspace $workspace2 output {{ machine.screen.2 }}
|
|
workspace $workspace3 output {{ machine.screen.3 }}
|
|
workspace $workspace4 output {{ machine.screen.4 }}
|
|
workspace $workspace5 output {{ machine.screen.5 }}
|
|
workspace $workspace6 output {{ machine.screen.6 }}
|
|
workspace $workspace7 output {{ machine.screen.7 }}
|
|
workspace $workspace8 output {{ machine.screen.8 }}
|
|
workspace $workspace9 output {{ machine.screen.9 }}
|
|
workspace $workspace10 output {{ machine.screen.0 }}
|
|
|
|
|
|
assign [class="^Keepassx$"] $workspace8
|
|
|
|
# See https://github.com/i3/i3/issues/2060
|
|
for_window [class="^Spotify$"] move to workspace $workspace9
|
|
assign [class="^Spotify$"] $workspace9
|
|
|
|
assign [class="^Google-chrome$"] $workspace7
|
|
assign [class="^Chromium$"] $workspace7
|
|
assign [class="^Steam"] $workspace5
|
|
for_window [class="^Steam$"] move to workspace $workspace5
|
|
|
|
assign [class="^dota2$"] $workspace10
|
|
assign [class="^Wine$"] $workspace10
|
|
|
|
################################################################################
|
|
### KEYBINDINGS ################################################################
|
|
##################9#############################################################
|
|
|
|
### MOVING AND WINDOW BEHAVIOUR ############################################
|
|
bindsym $mod+$kill kill
|
|
|
|
bindsym $mod+$left focus left
|
|
bindsym $mod+$down focus down
|
|
bindsym $mod+$up focus up
|
|
bindsym $mod+$right focus right
|
|
|
|
bindsym $mod+Left focus left
|
|
bindsym $mod+Down focus down
|
|
bindsym $mod+Up focus up
|
|
bindsym $mod+Right focus right
|
|
|
|
bindsym $mod+Shift+$left move left
|
|
bindsym $mod+Shift+$down move down
|
|
bindsym $mod+Shift+$up move up
|
|
bindsym $mod+Shift+$right move right
|
|
|
|
bindsym $mod+Shift+Left move left
|
|
bindsym $mod+Shift+Down move down
|
|
bindsym $mod+Shift+Up move up
|
|
bindsym $mod+Shift+Right move right
|
|
|
|
bindsym $mod+$splith split h
|
|
bindsym $mod+$splitv split v
|
|
|
|
bindsym $mod+$fullscreen fullscreen
|
|
|
|
bindsym $mod+$layout_stacking layout stacking
|
|
bindsym $mod+$layout_tabbed layout tabbed
|
|
bindsym $mod+$layout_default layout default
|
|
|
|
bindsym $mod+$split_toggle layout toggle split
|
|
|
|
bindsym $mod+$floating_toggle floating toggle
|
|
bindsym $mod+$focus_mode_toggle focus mode_toggle
|
|
|
|
bindsym $mod+$focus_parent focus parent
|
|
bindsym $mod+$focus_child focus child
|
|
|
|
bindsym $mod+$key_workspace1 workspace $workspace1
|
|
bindsym $mod+$key_workspace2 workspace $workspace2
|
|
bindsym $mod+$key_workspace3 workspace $workspace3
|
|
bindsym $mod+$key_workspace4 workspace $workspace4
|
|
bindsym $mod+$key_workspace5 workspace $workspace5
|
|
bindsym $mod+$key_workspace6 workspace $workspace6
|
|
bindsym $mod+$key_workspace7 workspace $workspace7
|
|
bindsym $mod+$key_workspace8 workspace $workspace8
|
|
bindsym $mod+$key_workspace9 workspace $workspace9
|
|
bindsym $mod+$key_workspace10 workspace $workspace10
|
|
|
|
bindsym $mod+Shift+$key_workspace1 move container to workspace $workspace1
|
|
bindsym $mod+Shift+$key_workspace2 move container to workspace $workspace2
|
|
bindsym $mod+Shift+$key_workspace3 move container to workspace $workspace3
|
|
bindsym $mod+Shift+$key_workspace4 move container to workspace $workspace4
|
|
bindsym $mod+Shift+$key_workspace5 move container to workspace $workspace5
|
|
bindsym $mod+Shift+$key_workspace6 move container to workspace $workspace6
|
|
bindsym $mod+Shift+$key_workspace7 move container to workspace $workspace7
|
|
bindsym $mod+Shift+$key_workspace8 move container to workspace $workspace8
|
|
bindsym $mod+Shift+$key_workspace9 move container to workspace $workspace9
|
|
bindsym $mod+Shift+$key_workspace10 move container to workspace $workspace10
|
|
|
|
bindsym $mod+$prev_on_output workspace prev_on_output
|
|
bindsym $mod+$next_on_output workspace next_on_output
|
|
|
|
bindsym $mod+$workspace_back_and_forth workspace back_and_forth
|
|
|
|
bindsym $mod+Shift+$prev_on_output move container to workspace prev_on_output
|
|
bindsym $mod+Shift+$next_on_output move container to workspace next_on_output
|
|
|
|
bindsym $mod+$reload reload
|
|
bindsym $mod+$restart restart
|
|
bindsym $mod+$exit exit
|
|
|
|
### START APPLICATIONS #####################################################
|
|
|
|
bindsym $mod+d exec --no-startup-id ~/.i3/scripts/appmenu
|
|
bindsym $mod+Return exec $terminal
|
|
bindsym $mod+Shift+Return exec $calc
|
|
|
|
bindsym F1 exec --no-startup-id ~/.i3/scripts/shutdown-menu
|
|
bindsym F2 exec --no-startup-id ~/.i3/scripts/screenmenu
|
|
|
|
bindsym $mod+F1 exec --no-startup-id ~/.i3/scripts/i3exit lock
|
|
bindsym $mod+F2 exec --no-startup-id screencfg ~/.screencfg/{{ ansible_hostname }}/default.yml ; exec systemctl --user restart keyboard.service
|
|
{% for screencfg in machine.screencfgs -%}
|
|
bindsym $mod+{{ screencfg.key }} exec --no-startup-id screencfg ~/.screencfg/{{ ansible_hostname }}/{{ screencfg.name }}.yml ; exec systemctl --user restart keyboard.service
|
|
{% endfor -%}
|
|
bindsym $mod+F4 exec --no-startup-id ~/.i3/scripts/i3exit suspend
|
|
bindsym $mod+Home exec --no-startup-id ~/.i3/scripts/shutdown-menu
|
|
|
|
bindsym $mod+$screenshot exec --no-startup-id sh -c 'maim | xclip -selection clipboard -t image/png'
|
|
bindsym $mod+Shift+$screenshot exec --no-startup-id sh -c 'maim --select | xclip -selection clipboard -t image/png'
|
|
|
|
bindsym $mod+Shift+v exec --no-startup-id redshift-toggle
|
|
|
|
# bindsym $mod+$pim_toggle \
|
|
# mark --add _source; \
|
|
# focus output eDP-1; \
|
|
# mark --add _origin; \
|
|
# workspace $workspace10; \
|
|
# mark --add _destination; \
|
|
# [con_mark="^_destination$"] swap container with mark "_source"; \
|
|
# [con_mark="^_source$"] focus; unmark _source; \
|
|
# [con_mark="^_origin$"] focus; unmark _origin; \
|
|
# [con_mark="^_destination$"] focus; unmark _destination; \
|
|
|
|
bindsym $mod+$pim_toggle \
|
|
unmark _destination; \
|
|
mark _source; \
|
|
workspace $workspace10; \
|
|
mark --add _destination; \
|
|
[con_mark="^_destination$"] swap container with mark "_source"; \
|
|
[con_mark="^_source$"] focus; \
|
|
unmark _source; \
|
|
[con_mark="^_destination$"] focus; \
|
|
unmark _destination;
|
|
|
|
################################################################################
|
|
### MODES ######################################################################
|
|
################################################################################
|
|
|
|
# resize window (you can also use the mouse for that)
|
|
mode "resize" {
|
|
bindsym $left resize shrink width 5 px or 5 ppt
|
|
bindsym $down resize grow height 5 px or 5 ppt
|
|
bindsym $up resize shrink height 5 px or 5 ppt
|
|
bindsym $right resize grow width 5 px or 5 ppt
|
|
|
|
bindsym 113 resize shrink width 5 px or 5 ppt
|
|
bindsym 116 resize grow height 5 px or 5 ppt
|
|
bindsym 111 resize shrink height 5 px or 5 ppt
|
|
bindsym 114 resize grow width 5 px or 5 ppt
|
|
|
|
bindsym Return mode "default"
|
|
bindsym Escape mode "default"
|
|
}
|
|
bindsym $mod+r mode "resize"
|
|
|
|
################################################################################
|
|
### GENERAL SETUP ##############################################################
|
|
################################################################################
|
|
|
|
# Default orientation for new workspaces will be derived from aspect ratio
|
|
default_orientation auto
|
|
|
|
# New containers will start in tiling mode
|
|
workspace_layout default
|
|
|
|
new_window 1pixel
|
|
new_float normal 1
|
|
# default_border pixel 1
|
|
# default_floating_border normal
|
|
hide_edge_borders smart
|
|
|
|
focus_follows_mouse yes
|
|
mouse_warping output
|
|
|
|
# Only map a popup in fullscreen mode if it belongs to the fullscreen window
|
|
# <smart|ignore|leave_fullscreen>
|
|
popup_during_fullscreen leave_fullscreen
|
|
|
|
# Do not always wrap but change to a container on the same level instead
|
|
force_focus_wrapping yes
|
|
|
|
force_xinerama no
|
|
|
|
# Hit the current workspace button again to return to the previous workspace
|
|
workspace_auto_back_and_forth yes
|
|
|
|
# Draw a window as urgent when switching to its workspace, even if focused, for
|
|
# 500 ms
|
|
force_display_urgency_hint 500 ms
|
|
|
|
show_marks yes
|
|
|
|
# Use Mouse+$mod to drag floating windows to their wanted position
|
|
floating_modifier $mod
|
|
|
|
floating_minimum_size 0 x 0
|
|
floating_maximum_size 0 x 0
|
|
|
|
font pango:Inconsolata {{ machine.font_size }}
|
|
|
|
################################################################################
|
|
### COLOR SETTINGS #############################################################
|
|
################################################################################
|
|
|
|
# class border backgr. text indicator
|
|
client.focused #2e2e2e #e5b567 #000000 #FF0000
|
|
client.focused_inactive #2e2e2e #5f676a #ffffff #484e50
|
|
client.unfocused #2e2e2e #2e2e2e #cccccc #292d2e
|
|
client.urgent #2e2e2e #900000 #ffffff #900000
|
|
|
|
################################################################################
|
|
### APPLICATION SPECIFIC SETTINGS ##############################################
|
|
################################################################################
|
|
|
|
|
|
bindsym $mod+F6 exec --no-startup-id mumble
|
|
bindsym $mod+F7 exec --no-startup-id clementine
|
|
bindsym $mod+F8 exec --no-startup-id quasselclient
|
|
bindsym $mod+F9 exec --no-startup-id evolution
|
|
|
|
################################################################################
|
|
### SPECIAL KEYBINDS ###########################################################
|
|
################################################################################
|
|
|
|
bindsym XF86Sleep exec --no-startup-id $scriptdir/i3exit suspend
|
|
bindsym XF86AudioMute exec --no-startup-id $scriptdir/pa-volume mute-toggle
|
|
bindsym XF86AudioRaiseVolume exec --no-startup-id $scriptdir/pa-volume set-vol +3
|
|
bindsym XF86AudioLowerVolume exec --no-startup-id $scriptdir/pa-volume set-vol -3
|
|
|
|
bindsym XF86AudioPlay exec $scriptdir/spotify-control toggle
|
|
bindsym XF86AudioNext exec $scriptdir/spotify-control next
|
|
bindsym XF86AudioPrev exec $scriptdir/spotify-control previous
|
|
|
|
# keys seemingly switched
|
|
bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 8 ; exec --no-startup-id $scriptdir/update-status
|
|
bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 8 ; exec --no-startup-id $scriptdir/update-status
|
|
|
|
bindsym $mod+m exec --no-startup-id $scriptdir/pa-volume mute-toggle-mic
|
|
bindsym $mod+space exec --no-startup-id $scriptdir/pa-volume mute-toggle-mic
|
|
|
|
##############################################################################
|
|
### BARS #######################################################################
|
|
################################################################################
|
|
#
|
|
bar {
|
|
mode dock
|
|
position bottom
|
|
|
|
|
|
#tray_output HDMI3
|
|
tray_output primary
|
|
tray_padding 2
|
|
|
|
strip_workspace_numbers no
|
|
|
|
binding_mode_indicator yes
|
|
|
|
workspace_buttons yes
|
|
|
|
id bar-0
|
|
|
|
font pango:Inconsolata, FontAwesome {{ machine.font_size }}
|
|
|
|
colors {
|
|
background #2e2e2e
|
|
statusline #ffffff
|
|
separator #555555
|
|
# separator #e5b567
|
|
|
|
# focused_background #303030
|
|
# focused_separator #272822
|
|
|
|
focused_workspace #e5b567 #2e2e2e #ffffff
|
|
active_workspace #2e2e2e #5f676a #ffffff
|
|
inactive_workspace #2e2e2e #2e2e2e #dddddd
|
|
urgent_workspace #D00000 #D00000 #2e2e2e
|
|
binding_mode #2e2e2e #e5b567 #2e2e2e
|
|
}
|
|
|
|
i3bar_command i3bar
|
|
status_command py3status --standalone --dbus-notify -c ~/.i3/i3status.conf
|
|
}
|