Files
linux-configs/i3/config
Pavel Kachalouski 259ef2642e New configs
2019-06-16 19:07:40 +02:00

242 lines
7.8 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:DejaVu Sans Mono 10
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
# Before i3 v4.8, we used to recommend this one as the default:
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, its unicode glyph coverage is limited, the old
# X core fonts rendering does not support right-to-left and this being a bitmap
# font, it doesnt scale on retina/hidpi displays.
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec kitty
# kill focused window
bindsym $mod+Shift+q kill
# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
# change focus
#bindsym $mod+j focus left
#bindsym $mod+k focus down
#bindsym $mod+l focus up
#bindsym $mod+semicolon focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# set workspace names
set $wspace1 1:browser
set $wspace2 2:dev
set $wspace3 3:console
set $wspace4 4:file
set $wspace5 5:edit
set $wspace6 6:misc
set $wspace7 7:video
set $wspace8 8:mail
set $wspace9 9:chat
set $wspace10 10
# rename workspaces
#rename workspace number 1 to $wspace1
#rename workspace number 2 to $wspace2
#rename workspace number 3 to $wspace3
#rename workspace number 4 to $wspace4
#rename workspace number 5 to $wspace5
#rename workspace number 6 to $wspace6
#rename workspace number 7 to $wspace7
#rename workspace number 8 to $wspace8
#rename workspace number 9 to $wspace9
#rename workspace number 10 to $wspace10
# switch to workspace
bindsym $mod+1 workspace $wspace1
bindsym $mod+2 workspace $wspace2
bindsym $mod+3 workspace $wspace3
bindsym $mod+4 workspace $wspace4
bindsym $mod+5 workspace $wspace5
bindsym $mod+6 workspace $wspace6
bindsym $mod+7 workspace $wspace7
bindsym $mod+8 workspace $wspace8
bindsym $mod+9 workspace $wspace9
bindsym $mod+0 workspace $wspace10
# bind workspaces to monitors
workspace $wspace1 output HDMI2
workspace $wspace2 output HDMI2
workspace $wspace3 output HDMI2
workspace $wspace4 output HDMI2
workspace $wspace5 output HDMI2
workspace $wspace6 output HDMI2
workspace $wspace7 output HDMI2
workspace $wspace8 output HDMI2
workspace $wspace9 output HDMI2
workspace $wspace10 output eDP1
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $wspace1
bindsym $mod+Shift+2 move container to workspace $wspace2
bindsym $mod+Shift+3 move container to workspace $wspace3
bindsym $mod+Shift+4 move container to workspace $wspace4
bindsym $mod+Shift+5 move container to workspace $wspace5
bindsym $mod+Shift+6 move container to workspace $wspace6
bindsym $mod+Shift+7 move container to workspace $wspace7
bindsym $mod+Shift+8 move container to workspace $wspace8
bindsym $mod+Shift+9 move container to workspace $wspace9
bindsym $mod+Shift+0 move container to workspace $wspace10
# assign specific window to workspace
assign [class="(?i)^Firefox$"] → $wspace1
assign [class="(?i)^jetbrains-idea-.*$"] → $wspace2
assign [class="(?i)^kitty$"] → $wspace3
assign [class="(?i)^Nautilus$"] → $wspace4
assign [class="(?i)^dolphin$"] → $wspace4
assign [class="(?i)^Gedit$"] → $wspace5
assign [class="(?i)^kate$"] → $wspace5
assign [class="(?i)^Evince$"] → $wspace6
assign [class="(?i)^okular$"] → $wspace6
assign [class="(?i)^XpdfReader$"] → $wspace6
assign [class="(?i)^KeePass2$"] → $wspace6
assign [class="(?i)^vlc$"] → $wspace7
assign [class="(?i)^mpv$"] → $wspace7
assign [class="(?i)^Transmission-gtk$"] → $wspace8
assign [class="(?i)^kmail2$"] → $wspace8
assign [class="(?i)^TelegramDesktop$"] → $wspace9
assign [class="(?i)^Mattermost"] → $wspace9
for_window [class="Yad"] floating enable
workspace_auto_back_and_forth yes
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
# application shortcuts
bindsym $mod+i exec idea-community
bindsym $mod+o exec firefox
bindsym $mod+g exec kate
bindsym $mod+n exec dolphin
bindsym $mod+l exec "$HOME/scripts/lock.sh"
# audio
bindsym XF86AudioRaiseVolume exec "pactl set-sink-mute 0 false ; pactl set-sink-volume 0 +5%"
bindsym XF86AudioLowerVolume exec "pactl set-sink-mute 0 false ; pactl set-sink-volume 0 -5%"
bindsym XF86AudioMute exec pactl set-sink-mute 0 toggle
# backlight
bindsym XF86MonBrightnessUp exec "xbacklight -inc 5"
bindsym XF86MonBrightnessDown exec "xbacklight -dec 5"
bindsym Print exec "spectacle"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym semicolon resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command i3blocks
}
# autostart
exec --no-startup-id cvlc --play-and-exit "$HOME/.config/i3/windows.wav"
exec --no-startup-id volumeicon
exec --no-startup-id firefox
exec --no-startup-id kitty
exec --no-startup-id telegram-desktop
exec --no-startup-id mattermost-desktop
exec --no-startup-id xautolock -time 10 -locker "$HOME/scripts/lock.sh"