Files
dotfiles/i3/config
2025-03-17 21:28:22 +01:00

216 lines
7.1 KiB
Plaintext
Executable File
Raw 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 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!
set $mod Mod4
default_border pixel 0
gaps inner 6
#hide_edge_borders both
focus_follows_mouse yes
workspace_auto_back_and_forth yes
force_display_urgency_hint 500 ms
# color
client.focused #4c94af #4c94af #191919 #4c94af
client.focused_inactive #333333 #5f676a #ffffff #484e50
client.unfocused #333333 #222222 #888888 #292d2e
client.urgent #DD1111 #DD1111 #191919 #DD1111
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below. ISO 10646 = Unicode
#font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
font pango:Iosevka Term Regular 10
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, if you need a lot of unicode glyphs or
# right-to-left text rendering, you should instead use pango for rendering and
# chose a FreeType font, such as:
# font pango:DejaVu Sans Mono 10
# windows rules
for_window [class="org.remmina.Remmina"] floating enable
for_window [class="feh"] floating enable
for_window [class="Pavucontrol"] floating enable
for_window [class="Slack"] floating enable
for_window [class="discord"] floating enable
for_window [all] border pixel 0
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec ghostty
# kill focused window
bindsym $mod+Shift+q kill
# Make the currently focused window a scratchpad
bindsym $mod+Shift+minus move scratchpad
# Show the first scratchpad window
bindsym $mod+minus scratchpad show
# start dmenu (a program launcher)
bindsym $mod+r exec "bemenu-run -b --nb '#191919' --sb '#191919' --nf '#4c94af' --sf '#4E9A06' --fn 'Iosevka Term 11'"
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+i focus up
bindsym $mod+l 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 Mod1+Tab focus right
bindsym Mod1+Shift+Tab focus left
# move focused window
#bindsym $mod+Shift+j move left
#bindsym $mod+Shift+k move down
#bindsym $mod+Shift+i move up
#bindsym $mod+Shift+l 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 $mod+Tab move scratchpad
#bindsym $mod+Shift+Tab scratchpad show
# 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
# 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+Tab focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# switch to workspace
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+u workspace prev_on_output
bindsym $mod+o workspace next_on_output
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace 1
bindsym $mod+Shift+2 move container to workspace 2
bindsym $mod+Shift+3 move container to workspace 3
bindsym $mod+Shift+4 move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
# move focused workspace to screen
bindsym $mod+Shift+i move workspace to output down
bindsym $mod+Shift+k move workspace to output up
bindsym $mod+Shift+u move workspace to output left
bindsym $mod+Shift+o move workspace to output right
# 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+x 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'"
# 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 $mod+Ctrl+j resize shrink width 10 px or 10 ppt
bindsym $mod+Ctrl+i resize grow height 10 px or 10 ppt
bindsym $mod+Ctrl+k resize shrink height 10 px or 10 ppt
bindsym $mod+Ctrl+l resize grow width 10 px or 10 ppt
# Keybindings for Background
#bindsym $mod+Shift+n exec "~/.config/feh/random"
bindsym $mod+Shift+n exec "~/.config/feh/$(hostname)-random"
# Lockscreen
bindsym $mod+Shift+l exec "~/.config/displays/lock"
bindsym $mod+Shift+s exec "systemctl suspend; ~/.config/displays/lock"
# Pass Passmenu
bindsym $mod+p exec "~/.local/bin/passmenu-user -b"
bindsym $mod+Shift+p exec "~/.local/bin/passmenu -b"
# Screenshot
bindsym $mod+XF86WakeUp exec "scrot '%Y-%m-%d_%T.png' -e 'mv $f ~/pictures/screenshots'"
# Screens
bindsym XF86Display exec "~/.config/displays/$(hostname)-setup single"
bindsym Mod1+$mod+1 exec "~/.config/displays/$(hostname)-setup single"
bindsym Mod1+$mod+2 exec "~/.config/displays/$(hostname)-setup home"
bindsym Mod1+$mod+3 exec "~/.config/displays/$(hostname)-setup home-single"
bindsym Control+Mod1+End exec "ddcutil --display 2 setvcp 0x60 0x0f"
bindsym Control+Mod1+Home exec "ddcutil --display 1 setvcp 0x60 0x0f"
# Brightness
bindsym XF86MonBrightnessDown exec "light -U 10"
bindsym XF86MonBrightnessUp exec "light -A 10"
# Sound
bindsym XF86AudioRaiseVolume exec "$HOME/.local/bin/pulseaudio increase"
bindsym XF86AudioLowerVolume exec "$HOME/.local/bin/pulseaudio decrease"
bindsym XF86AudioMute exec "$HOME/.local/bin/pulseaudio mute"
exec_always --no-startup-id "systemctl --user start polybar@main"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
#bar {
# status_command ~/.i3/conky.sh
# position top
# tray_output primary
# mode dock
# font pango:Andale Mono 8
# colors {
# background #191919
# statusline #D4D4D4
# separator #191919
# focused_workspace #4c94af #191919 #4c94af
# active_workspace #222222 #191919 #4c94af
# inactive_workspace #222222 #191919 #4c94af
# urgent_workspace #DD1111 #191919 #4c94af
# }
#}