Skip to content

Instantly share code, notes, and snippets.

@elhenro
Last active December 31, 2022 04:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save elhenro/e5692322991df302d83872001892c95a to your computer and use it in GitHub Desktop.
Save elhenro/e5692322991df302d83872001892c95a to your computer and use it in GitHub Desktop.
~/.config/i3/config file
set $mod Mod1
set $mod2 control
new_window pixel 0
new_float normal
hide_edge_borders none
#bindsym $mod+u border none
#bindsym $mod+y border pixel 5
#corners rounded 20
bindsym $mod+shift+y border pixel 0
bindsym $mod+shift+n border normal
bindsym $mod+shift+t exec thunar
bindsym $mod+t exec urxvt -e /usr/bin/zsh -c lf
font pango:monospace 11
floating_modifier $mod
#bindsym $mod+Return exec urxvt -e /usr/bin/zsh
bindsym $mod+Return exec termite
bindsym $mod+q kill
#bindsym $mod+d exec dmenu_run
bindsym $mod+d exec rofi -show run
bindsym $mod+shift+s exec rofi -show ssh
bindsym $mod+shift+a exec rofi -show window
bindsym $mod+shift+f exec rofimoji
bindsym $mod+h exec "i3-msg focus left && sh ~/tools/focusWindow.sh"
bindsym $mod+j exec "i3-msg focus down && sh ~/tools/focusWindow.sh"
bindsym $mod+k exec "i3-msg focus up && sh ~/tools/focusWindow.sh"
bindsym $mod+l exec "i3-msg focus right && sh ~/tools/focusWindow.sh"
#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+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k 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
# split in horizontal orientation
bindsym $mod+g 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
# 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+0 workspace 10
# 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
bindsym $mod+Shift+0 move container to workspace 10
# 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'"
# 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 window’s width.
# Pressing right will grow the window’s width.
# Pressing up will shrink the window’s height.
# Pressing down will grow the window’s 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
# 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 {
colors {
background #00000000
# statusline #FFFFFF00
}
status_command i3status
#output eDP1
#tray_output primary
position top
separator_symbol " "
i3bar_command i3bar -t
workspace_buttons no
}
#############################
### settings for i3-gaps: ###
#############################
# Set inner/outer gaps
gaps inner 0
gaps outer 0
# Additionally, you can issue commands with the following syntax. This is useful to bind keys to changing the gap size.
# gaps inner|outer current|all set|plus|minus <px>
# gaps inner all set 10
# gaps outer all plus 5
# Smart gaps (gaps used if only more than one container on the workspace)
smart_gaps on
# Smart borders (draw borders around container only if it is not the only container on this workspace)
# on|no_gaps (on=always activate and no_gaps=only activate if the gap size to the edge of the screen is 0)
smart_borders on
# Press $mod+Shift+g to enter the gap mode. Choose o or i for modifying outer/inner gaps. Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace). If you also press Shift with these keys, the change will be global for all workspaces.
set $mode_gaps Gaps: (o) outer, (i) inner
set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
bindsym $mod+Shift+g mode "$mode_gaps"
mode "$mode_gaps" {
bindsym o mode "$mode_gaps_outer"
bindsym i mode "$mode_gaps_inner"
bindsym Return mode "default"
bindsym Escape mode "default"
}
mode "$mode_gaps_inner" {
bindsym plus gaps inner current plus 5
bindsym minus gaps inner current minus 5
bindsym 0 gaps inner current set 0
bindsym Shift+plus gaps inner all plus 5
bindsym Shift+minus gaps inner all minus 5
bindsym Shift+0 gaps inner all set 0
bindsym Return mode "default"
bindsym Escape mode "default"
}
mode "$mode_gaps_outer" {
bindsym plus gaps outer current plus 5
bindsym minus gaps outer current minus 5
bindsym 0 gaps outer current set 0
bindsym Shift+plus gaps outer all plus 5
bindsym Shift+minus gaps outer all minus 5
bindsym Shift+0 gaps outer all set 0
bindsym Return mode "default"
bindsym Escape mode "default"
}
# theme
title_align center
set $background #10101000
set $foreground #ffffff
set $gray #d0d0d0
#set $primary #db8ca5
set $primary #3b3e42
#set $secondary #7a4b5a
set $secondary #535e6d
#set $tertiary #7AABD4
set $tertiary #2b2d30
#set $additional #26CE8D
#set $warning #E7176A
# colors BORDER BACKGROUND TEXT INDICATOR
client.focused $primary $primary $foreground $primary
client.focused_inactive $secondary $secondary $foreground $secondary
client.unfocused $tertiary $tertiary $background $tertiary
client.urgent $gray $gray $foreground $gray
# custom
bindsym $mod+Shift+w exec google-chrome-stable
bindsym $mod+Shift+b exec google-chrome --app="https://zentrale.henry.pink"
bindsym $mod+Shift+v exec google-chrome --app="https://0boy.tk"
bindsym $mod+Shift+m exec google-chrome --app="https://todo.henry.pink"
bindsym $mod+m bar mode toggle
#autostart
#exec dropbox start
exec redshift
#exec xfce4-power-manager
#exec volumeicon
exec pasystray
#exec nm-applet
#exec --no-startup-id nm-applet
#exec blueman-applet
exec setxkbmap -option compose:rctrl
# wallpaper
#exec /bin/bash ./wal -i ~/Dropbox/lnx/wp/cool-magazine.jpg
#exec syngery
# brightness
#bindsym F6 exec xbacklight -dec 10
#bindsym F7 exec xbacklight -inc 10
#bindsym F8 exec /bin/bash ~/.do/toggle_mute.sh
# volume sound headphone
#bindsym F9 exec amixer -D pulse sset Master 3%-
#bindsym F10 exec amixer -D pulse sset Master 3%+
# lockscreen
#bindsym $mod+0 exec lock
bindsym $mod+0 exec /home/hnr/tools/glitchlock/glitchlock
exec xautolock -time 5 -locker '/home/hnr/tools/glitchlock/glitchlock' &
#bindsym $mod+n exec i3-sensible-terminal -e sh /home/chrx/.do/openhn.sh
# inverted screen
# toggle...
#bindsym $mod+grave exec sh ~/.do/invertScreenToggle.sh
#
bindsym ctrl+shift+4 exec deepin-screenshot
# pulseaudio controls
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound
# overwrite
hide_edge_borders none
## wp set via nitrogen
exec --no-startup-id nitrogen --restore
exec --no-startup-id compton --config ~/compton2.conf
# disable pc internal "beep" speaker
exec rmmod pcspkr
# set correct screen layout
exec sh ~/.screenlayout/default.sh
# mouse mode
mode "mouse" {
# set your three speeds here
set $slow 2
set $quick 20
set $fast 80
# Mouse movement (slow/fine-tuned) -- vim keybindings
bindsym h exec xdotool mousemove_relative -- -$slow 0
bindsym j exec xdotool mousemove_relative 0 $slow
bindsym k exec xdotool mousemove_relative -- 0 -$slow
bindsym l exec xdotool mousemove_relative $slow 0
# Mouse movement (slow/fine-tuned) -- arrow keys
bindsym Left exec xdotool mousemove_relative -- -$slow 0
bindsym Down exec xdotool mousemove_relative 0 $slow
bindsym Up exec xdotool mousemove_relative -- 0 -$slow
bindsym Right exec xdotool mousemove_relative $slow 0
# Mouse movement (quicker) -- vim keybindings
bindsym Shift+h exec xdotool mousemove_relative -- -$quick 0
bindsym Shift+j exec xdotool mousemove_relative 0 $quick
bindsym Shift+k exec xdotool mousemove_relative -- 0 -$quick
bindsym Shift+l exec xdotool mousemove_relative $quick 0
# Mouse movement (quicker) -- arrow keys
bindsym Shift+Left exec xdotool mousemove_relative -- -$quick 0
bindsym Shift+Down exec xdotool mousemove_relative 0 $quick
bindsym Shift+Up exec xdotool mousemove_relative -- 0 -$quick
bindsym Shift+Right exec xdotool mousemove_relative $quick 0
# Mouse movement (fast) -- vim keybindings
bindsym Shift+$mod2+h exec xdotool mousemove_relative -- -$fast 0
bindsym Shift+$mod2+j exec xdotool mousemove_relative 0 $fast
bindsym Shift+$mod2+k exec xdotool mousemove_relative -- 0 -$fast
bindsym Shift+$mod2+l exec xdotool mousemove_relative $fast 0
# Mouse movement (fast) -- arrow keys
bindsym Shift+$mod2+Left exec xdotool mousemove_relative -- -$fast 0
bindsym Shift+$mod2+Down exec xdotool mousemove_relative 0 $fast
bindsym Shift+$mod2+Up exec xdotool mousemove_relative -- 0 -$fast
bindsym Shift+$mod2+Right exec xdotool mousemove_relative $fast 0
# Left Click
bindsym f exec xdotool click 1
# Middle Click
bindsym d exec xdotool click 2
# Right Click
bindsym s exec xdotool click 3
# Left Click-and-drag
bindsym Shift+f exec xdotool mousedown 1
# Middle Click-and-drag
bindsym Shift+d exec xdotool mousedown 2
# Right Click-and-drag
bindsym Shift+s exec xdotool mousedown 3
# Left Drag release
bindsym $mod2+f exec xdotool mouseup 1
# Middle Drag release
bindsym $mod2+d exec xdotool mouseup 2
# Right Drag release
bindsym $mod2+s exec xdotool mouseup 3
# return to normal keybindings -- IMPORTANT!!
bindsym Escape mode "default"
}
bindsym $mod+$mod2+Shift+m mode "mouse"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment