dotfiles/i3/config

192 lines
5.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Set the mod key to be the meta key.
set $mod Mod4
# Set the font used by i3.
font pango:DejaVu Sans Mono 8
# Launch picom on startup
exec --no-startup-id picom --experimental-backends -bc
# Set a random desktop background
exec --no-startup-id feh --bg-scale --random ~/Pictures/Wallpapers/
# Launch polybar
exec --no-startup-id polybar primary
# Launch dunst
exec --no-startup-id dunst
# Launch MPD
exec --no-startup-id mpd
# Launch flameshot
exec --no-startup-id flameshot
# Launch green with envy
exec --no-startup-id com.leinardi.gwe --hide-window
# Launch a polkit daemon
exec --no-startup-id /usr/lib/polkit-kde-authentication-agent-1
# Launch KDE Connect on startup
exec --no-startup-id /usr/lib/kdeconnectd
#exec --no-startup-id kdeconnect-indicator
# Apply my wacom tablet config
exec --no-startup-id ~/bin/scripts/wacom-config
# Set menu key as my compose key
exec --no-startup-id setxkbmap -option compose:menu
# Disable screen off
exec --no-startup-id xset s off
exec --no-startup-id xset -dpms
exec --no-startup-id xset s noblank
# Use pactl to adjust volume in PulseAudio.
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
# Media player controls
bindsym XF86AudioPlay exec mpc toggle
bindsym XF86AudioNext exec mpc next
bindsym XF86AudioPrev exec mpc previous
# Flameshot binds
bindsym Print exec --no-startup-id flameshot screen
bindsym ctrl+Print exec --no-startup-id flameshot gui
# Emoji menu
bindsym $mod+e exec --no-startup-id rofi -show emoji -modi emoji -theme appsmenu
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# Start kitty
bindsym $mod+Return exec --no-startup-id kitty
# Kill focused window
bindsym $mod+Shift+q kill
# Window options menu
bindsym $mod+Shift+w exec --no-startup-id ~/bin/scripts/window-menu
# Utility menu
bindsym $mod+u exec --no-startup-id ~/bin/scripts/utility-menu
# Start dmenu
bindsym $mod+d exec --no-startup-id dmenu
#bindsym $mod+d exec --no-startup-id rofi -theme appsmenu -show drun
# Change focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l 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
# Enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# Toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# Gaps
gaps inner 10
gaps outer 0
# Disable borders
for_window [class="^.*"] border pixel 1
# Make my custom timer floating by default
for_window [class="timer"] floating enable
# Make my custom timer "sticky". Meaning it will also be on the active workspace.
for_window [class="timer"] sticky enable
# Disable border for my custom timer.
for_window [class="timer"] border pixel 0
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# 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
# 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
assign [class="Kodi"] $ws4
# 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'"
# Colors border bground text indicator child_border
client.focused #3366CC #2356BC #FFFFFF #3366CC #3366CC
client.focused_inactive #000000 #000000 #FFFFFF #000000 #000000
client.unfocused #000000 #000000 #FFFFFF #000000 #000000
client.urgent #900000 #900000 #FFFFFF #900000 #900000
client.placeholder #000000 #000000 #FFFFFF #000000 #000000
client.background #FFFFFF
# TODO: Change these.
# 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 h 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 l resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"