i3: modernize the config file

This commit is contained in:
2021-10-08 01:35:44 +02:00
parent c265206cc2
commit 420e316720

View File

@@ -9,104 +9,147 @@
# layout, use the i3-config-wizard
#
set $mod Mod4
set_from_resource $main_color i3wm.color1 #fdff00
set_from_resource $secondary_color i3wm.color0 #98d1ce
set_from_resource $bg_color i3wm.color4 #0c1014
set $output_main DP-0
set $output_secondary DVI-D-0
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
#font -misc-fixed-medium-r-normal--12-120-75-75-C-70-iso10646-1
font pango:Mensch 9
# 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 doesn't scale on retina/hidpi displays.
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# 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
# Start XDG autostart .desktop files using dex. See also
# https://wiki.archlinux.org/index.php/XDG_Autostart
exec --no-startup-id dex --autostart --environment i3
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit.
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
exec --no-startup-id nm-applet
exec setxkbmap pl
exec --no-startup-id dunst -config ~/.config/i3/dunst_config
exec --no-startup-id pasystray -m 100
exec --no-startup-id blueman-applet
exec --no-startup-id xset b off
exec --no-startup-id flameshot
exec --no-startup-id wal -n -i ~/.config/i3/wallpaper.jpg
exec --no-startup-id feh --no-xinerama --bg-scale ~/.config/i3/wallpaper.jpg
exec --no-startup-id xdotool key --clearmodifiers Num_Lock
exec --no-startup-id unclutter
exec --no-startup-id barriers -c ~/.config/barrier.conf --screen-change-script ~/.local/bin/switch_pc.sh
# Use pulseaudio-ctl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status-rs
bindsym XF86AudioRaiseVolume exec pulseaudio-ctl up && $refresh_i3status
bindsym XF86AudioLowerVolume exec pulseaudio-ctl down && $refresh_i3status
bindsym XF86AudioMute exec pulseaudio-ctl mute && $refresh_i3status
bindsym XF86AudioMicMute exec pulseaudio-ctl mute-input
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioPause exec playerctl play-pause
bindsym XF86AudioStop exec playerctl stop
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
bindsym XF86Calculator exec --no-startup-id gnome-calculator
# System state management
bindsym Pause exec systemctl suspend
bindsym Mod4+z exec i3lock -c 151515 -e -f
# Screen brightness controls
bindsym Mod1+Up exec brightnessctl s 5\%+
bindsym Mod1+Down exec brightnessctl s 5\%-
# use these keys for focus, movement, and resize directions when reaching for
# the arrows is not convenient
set $left h
set $down j
set $up k
set $right l
# use Mouse+Mod4 to drag floating windows to their wanted position
floating_modifier Mod4
# start a terminal
#bindsym $mod+Return exec roxterm
#bindsym $mod+Return exec lilyterm
#bindsym $mod+Return exec terminology
#bindsym $mod+Return exec pantheon-terminal
#bindsym $mod+Return exec sakura
#bindsym $mod+Return exec st
#bindsym $mod+Return exec urxvt
#bindsym $mod+Return exec gnome-terminal
bindsym $mod+Return exec ~/.cargo/bin/alacritty
#bindsym $mod+Return exec termite
bindsym Mod4+Return exec ~/.cargo/bin/alacritty
# kill focused window
bindsym $mod+Shift+q kill
bindsym Mod4+Shift+q kill
# start rofi (a program launcher)
bindsym $mod+d exec --no-startup-id "rofi -show run"
bindsym $mod+Shift+d exec --no-startup-id "rofi -show window"
bindsym Mod4+d exec --no-startup-id "rofi -show run"
bindsym Mod4+Shift+d exec --no-startup-id "rofi -show window"
bindsym Mod1+Tab exec --no-startup-id "rofi -show window"
bindsym $mod+ctrl+d exec rofi-pass
bindsym Mod4+ctrl+d exec rofi-pass
# change focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
bindsym Mod4+$left focus left
bindsym Mod4+$down focus down
bindsym Mod4+$up focus up
bindsym Mod4+$right 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
bindsym Mod4+Left focus left
bindsym Mod4+Down focus down
bindsym Mod4+Up focus up
bindsym Mod4+Right focus right
# move focused window
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
bindsym Mod4+Shift+$left move left
bindsym Mod4+Shift+$down move down
bindsym Mod4+Shift+$up move up
bindsym Mod4+Shift+$right 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
bindsym Mod4+Shift+Left move left
bindsym Mod4+Shift+Down move down
bindsym Mod4+Shift+Up move up
bindsym Mod4+Shift+Right move right
# split in horizontal orientation
bindsym $mod+b split h
bindsym Mod4+b split h
# split in vertical orientation
bindsym $mod+v split v
bindsym Mod4+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
bindsym Mod4+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+q layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
bindsym Mod4+q layout stacking
bindsym Mod4+w layout tabbed
bindsym Mod4+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
bindsym Mod4+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
bindsym Mod4+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# change border type
#bindsym $mod+u border toggle
bindsym Mod4+a focus parent
# focus the child container
#bindsym $mod+d focus child
#bindsym Mod4+d focus child
# move the currently focused window to the scratchpad
bindsym $mod+m move scratchpad
bindsym Mod4+m move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+s scratchpad show
bindsym Mod4+s scratchpad show
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
@@ -120,7 +163,6 @@ set $ws7 " 7 "
set $ws8 " 8 "
set $ws9 " 9 "
set $ws10 " 10 "
set $ws11 " 11 "
set $ws12 " 12 "
set $ws13 " 13 "
@@ -131,38 +173,39 @@ set $ws17 " 17 "
set $ws18 " 18 "
set $ws19 " 19 "
set $ws20 " 20 "
workspace $ws1 output DP-0
workspace $ws2 output DP-0
workspace $ws3 output DP-0
workspace $ws4 output DP-0
workspace $ws5 output DP-0
workspace $ws6 output DP-0
workspace $ws7 output DP-0
workspace $ws8 output DP-0
workspace $ws9 output DP-0
workspace $ws10 output DP-0
workspace $ws11 output DVI-D-0
workspace $ws12 output DVI-D-0
workspace $ws13 output DVI-D-0
workspace $ws14 output DVI-D-0
workspace $ws15 output DVI-D-0
workspace $ws16 output DVI-D-0
workspace $ws17 output DVI-D-0
workspace $ws18 output DVI-D-0
workspace $ws19 output DVI-D-0
workspace $ws20 output DVI-D-0
workspace $ws1 output $output_main
workspace $ws2 output $output_main
workspace $ws3 output $output_main
workspace $ws4 output $output_main
workspace $ws5 output $output_main
workspace $ws6 output $output_main
workspace $ws7 output $output_main
workspace $ws8 output $output_main
workspace $ws9 output $output_main
workspace $ws10 output $output_main
workspace $ws11 output $output_secondary
workspace $ws12 output $output_secondary
workspace $ws13 output $output_secondary
workspace $ws14 output $output_secondary
workspace $ws15 output $output_secondary
workspace $ws16 output $output_secondary
workspace $ws17 output $output_secondary
workspace $ws18 output $output_secondary
workspace $ws19 output $output_secondary
workspace $ws20 output $output_secondary
# switch to workspace
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
bindsym Mod4+1 workspace number $ws1
bindsym Mod4+2 workspace number $ws2
bindsym Mod4+3 workspace number $ws3
bindsym Mod4+4 workspace number $ws4
bindsym Mod4+5 workspace number $ws5
bindsym Mod4+6 workspace number $ws6
bindsym Mod4+7 workspace number $ws7
bindsym Mod4+8 workspace number $ws8
bindsym Mod4+9 workspace number $ws9
bindsym Mod4+0 workspace number $ws10
bindsym Mod1+1 workspace number $ws11
bindsym Mod1+2 workspace number $ws12
bindsym Mod1+3 workspace number $ws13
@@ -175,16 +218,16 @@ bindsym Mod1+9 workspace number $ws19
bindsym Mod1+0 workspace number $ws20
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10
bindsym Mod4+Shift+1 move container to workspace number $ws1
bindsym Mod4+Shift+2 move container to workspace number $ws2
bindsym Mod4+Shift+3 move container to workspace number $ws3
bindsym Mod4+Shift+4 move container to workspace number $ws4
bindsym Mod4+Shift+5 move container to workspace number $ws5
bindsym Mod4+Shift+6 move container to workspace number $ws6
bindsym Mod4+Shift+7 move container to workspace number $ws7
bindsym Mod4+Shift+8 move container to workspace number $ws8
bindsym Mod4+Shift+9 move container to workspace number $ws9
bindsym Mod4+Shift+0 move container to workspace number $ws10
bindsym Mod1+Shift+1 move container to workspace number $ws11
bindsym Mod1+Shift+2 move container to workspace number $ws12
bindsym Mod1+Shift+3 move container to workspace number $ws13
@@ -197,11 +240,11 @@ bindsym Mod1+Shift+9 move container to workspace number $ws19
bindsym Mod1+Shift+0 move container to workspace number $ws20
# reload the configuration file
bindsym $mod+Shift+c reload
bindsym Mod4+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
bindsym Mod4+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'"
bindsym Mod4+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'"
# resize window (you can also use the mouse for that)
mode "resize" {
@@ -211,51 +254,24 @@ mode "resize" {
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym l resize shrink width 10 px or 10 ppt
bindsym j resize grow height 10 px or 10 ppt
bindsym k resize shrink height 10 px or 10 ppt
bindsym h resize grow width 10 px or 10 ppt
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
# 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
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 or $mod+r
# back to normal: Enter or Escape or Mod4+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
bindsym Mod4+r mode "default"
}
bindsym $mod+r mode "resize"
#without borders
new_window pixel 1
new_float pixel 3
#new_window normal 1
#new_float normal 1
hide_edge_borders smart
focus_on_window_activation urgent
workspace_auto_back_and_forth yes
popup_during_fullscreen smart
exec --no-startup-id hsetroot -solid '$bg_color'
exec setxkbmap pl
#bindsym Print exec import -window root ${HOME}/screen-`date +%Y%m%d%H%M%S`.png
exec --no-startup-id dunst -config ~/.config/i3/dunst_config
exec --no-startup-id pasystray -m 100
exec --no-startup-id blueman-applet
exec --no-startup-id xset b off
exec --no-startup-id nm-applet
exec --no-startup-id flameshot
exec --no-startup-id wal -n -i ~/.config/i3/wallpaper.jpg
exec --no-startup-id feh --no-xinerama --bg-scale ~/.config/i3/wallpaper.jpg
exec --no-startup-id xdotool key --clearmodifiers Num_Lock
exec --no-startup-id unclutter
exec --no-startup-id barriers -c ~/.config/barrier.conf --screen-change-script ~/.local/bin/switch_pc.sh
bindsym Mod4+r mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
@@ -263,7 +279,7 @@ bar {
font pango:DejaVu Sans Mono, FontAwesome 12
status_command ~/.cargo/bin/i3status-rs ~/.config/i3/i3status-rs.toml
mode dock
modifier $mod
modifier Mod4
tray_padding 0
tray_output primary
font pango:Mensch 10
@@ -284,29 +300,6 @@ client.focused $main_color $main_color $bg_color #2e9ef4
client.focused_inactive $main_color $bg_color $main_color #2e9ef4
client.unfocused $bg_color $bg_color $main_color #2e9ef4
bindsym $mod+z exec i3lock -c 151515 -e -f
bindsym XF86Calculator exec --no-startup-id gnome-calculator
# Screen brightness controls
bindsym Mod1+Up exec brightnessctl s 5\%+
bindsym Mod1+Down exec brightnessctl s 5\%-
# Media player controls
set $refresh_i3status killall -SIGUSR1 i3status-rs
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioPause exec playerctl play-pause
bindsym XF86AudioStop exec playerctl stop
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
bindsym XF86AudioMicMute exec pulseaudio-ctl mute-input
bindsym XF86AudioRaiseVolume exec pulseaudio-ctl up && $refresh_i3status
bindsym XF86AudioLowerVolume exec pulseaudio-ctl down && $refresh_i3status
bindsym XF86AudioMute exec pulseaudio-ctl mute && $refresh_i3status
# System state management
bindsym Pause exec systemctl suspend
focus_on_window_activation focus
for_window [instance="fontpreview"] floating enable
@@ -314,3 +307,12 @@ for_window [class="^Chrome$" title=" - Chromium$"] border none
for_window [class="firefox"] border none
for_window [class="Gnome-calculator"] floating enabled
#without borders
new_window pixel 1
new_float pixel 3
hide_edge_borders smart
focus_on_window_activation urgent
workspace_auto_back_and_forth yes
popup_during_fullscreen smart