Skip to content

Instantly share code, notes, and snippets.

@starkers
Created July 12, 2017 19:51
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 starkers/800be1d2cb54a255026cb9d154ac5da9 to your computer and use it in GitHub Desktop.
Save starkers/800be1d2cb54a255026cb9d154ac5da9 to your computer and use it in GitHub Desktop.
# i3 config
#AKA Super/Windows/Apple
set $mod Mod4
set $terminal terminator
#How to alise colors EG:
# set_from_resource $darkred color1 #000000
# set_from_resource $red color9 #000000
# set_from_resource $darkgreen color2 #000000
# set_from_resource $green color10 #000000
# set_from_resource $darkyellow color3 #000000
# set_from_resource $yellow color11 #000000
# set_from_resource $darkblue color4 #000000
# set_from_resource $blue color12 #000000
# set_from_resource $darkmagenta color5 #000000
# set_from_resource $magenta color13 #000000
# set_from_resource $darkcyan color6 #000000
# set_from_resource $cyan color14 #000000
# set_from_resource $darkwhite color7 #000000
# set_from_resource $white color15 #000000
# # Use custom colors for black
# set $black #282828
# set $darkblack #1d2021
# set $transparent #00000000
# set $color #1793D1
####################### BORDER BACKGROUND TEXT INDICATOR CHILD_BORDER
client.focused #1990B7 #1990B7 #111111 #1990B7
client.focused_inactive #1c1c1c #1c1c1c #5f676a
client.urgent #2f343a #009000 #ffffff #009000
client.unfocused #1c1c1c #1c1c1c #888888 #222222
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:  "
# 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: "
# others:
# ♬ |  |  | 
set $default_gaps_inner 30
set $default_gaps_outer 0
gaps inner $default_gaps_inner
gaps outer $default_gaps_outer
workspace_auto_back_and_forth yes
force_display_urgency_hint 0 ms
focus_on_window_activation urgent
floating_minimum_size -1 x -1
floating_maximum_size -1 x -1
# font pango:Knack Nerd Font 13
# font pango:Terminus 13
font pango:Hack 12
# font pango:Terminus 10, FontAwesome 10
# font: pango:Hack, FontAwesome 13
# others:
# FreeMono | Hack | Terminus
# floating_modifier $mod
bindsym $mod+Return exec --no-startup-id terminator
bindsym $mod+q kill
bindsym $mod+d exec --no-startup-id $HOME/.config/i3/rof
# bindsym $mod+d exec --no-startup-id rofi -show run */
bindsym $mod+Left focus left
bindsym $mod+Right focus right
bindsym $mod+Up focus up
bindsym $mod+Down focus down
bindsym $mod+Shift+Left move left 25px
bindsym $mod+Shift+Down move down 25px
bindsym $mod+Shift+Up move up 25px
bindsym $mod+Shift+Right move right 25px
bindsym $mod+h split h
bindsym $mod+v split v
# Until I figure out a better way to use this key
bindsym Hyper_L fullscreen
bindsym $mod+f fullscreen
# bindsym $mod+g fullscreen global
#Password generator script
bindsym $mod+g exec --no-startup-id $HOME/.bin/passwd_gen_2_clipboard #actualy just runs: /usr/bin/pwgen 32 1 | /usr/bin/xclip -selection clipboard
bindsym $mod+Shift+c reload
bindsym $mod+Shift+r restart
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
bindsym $mod+Shift+space floating toggle
# bindsym $mod+space focus mode_toggle
bindsym $mod+a focus parent
bindsym $mod+Shift+a focus child
bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10
bindsym $mod+Tab workspace back_and_forth
# bindsym $mod+Shift+minus move scratchpad
# bindsym $mod+Shift+plus scratchpad show
bindsym $mod+Shift+s sticky toggle
# put YouTube into fullscreen and execute this for media mode
# bindsym $mod+y fullscreen disable; floating enable; resize set 600 400; sticky enable; move window to position 1940 54
bindsym $mod+Shift+exclam move container to workspace number $ws1
bindsym $mod+Shift+quotedbl move container to workspace number $ws2
bindsym $mod+Shift+sterling move container to workspace number $ws3
bindsym $mod+Shift+dollar move container to workspace number $ws4
bindsym $mod+Shift+percent move container to workspace number $ws5
bindsym $mod+Shift+asciicircum move container to workspace number $ws6
bindsym $mod+Shift+ampersand move container to workspace number $ws7
bindsym $mod+Shift+asterisk move container to workspace number $ws8
bindsym $mod+Shift+parenleft move container to workspace number $ws9
bindsym $mod+Shift+parenright move container to workspace number $ws10
# bindsym XF86AudioLowerVolume exec --no-startup-id ${HOME}/.config/i3/scripts/audio_volume.sh dec
# bindsym XF86AudioRaiseVolume exec --no-startup-id ${HOME}/.config/i3/scripts/audio_volume.sh inc
# bindsym XF86AudioMute exec --no-startup-id ${HOME}/.config/i3/scripts/audio_volume.sh toggle
set $output_sink "$(pactl list short sinks | grep output | head -n1 | cut -f2)"
set $input_source "$(pactl list short sources | grep input | head -n1 | cut -f2)"
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume $output_sink +2%
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume $output_sink -2%
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-volume $output_sink 0%
bindsym XF86MonBrightnessDown exec --no-startup-id ${HOME}/.config/i3/scripts/backlight.sh -dec 5
bindsym XF86MonBrightnessUp exec --no-startup-id ${HOME}/.config/i3/scripts/backlight.sh -inc 5
bindsym --release Print exec --no-startup-id shutter --min_at_startup --select --delay=1
# bindsym --release Shift+Print exec --no-startup-id "maim -s -p 0 -c 0.96,0.5,0.09 $HOME/Pictures/screenshot-$(date +%Y-%m-%d_%H-%M-%S).png"
#TODO implement maybe
# bindsym $mod+Shift+v exec --no-startup-id "killall pavucontrol; $HOME/.config/i3/scripts/fullscreen_wrap.sh pavucontrol -t 3"
# bindsym $mod+Shift+w exec --no-startup-id $terminal --name "__nmtui" -e "nmtui-connect"
# bindsym --release Print exec --no-startup-id "maim -p 0 -c 0.96,0.5,0.09 $HOME/Pictures/screenshot-$(date +%Y-%m-%d_%H-%M-%S).png"
bindsym $mod+n exec --no-startup-id nautilus --no-desktop "${HOME}/"
set $mode_resize resize
bindsym $mod+r mode "$mode_resize"
mode "$mode_resize" {
bindsym Left resize shrink width 5 px or 1 ppt
bindsym Down resize grow height 5 px or 1 ppt
bindsym Up resize shrink height 5 px or 1 ppt
bindsym Right resize grow width 5 px or 1 ppt
bindsym Shift+Left resize shrink width 10 px or 5 ppt
bindsym Shift+Down resize grow height 10 px or 5 ppt
bindsym Shift+Up resize shrink height 10 px or 5 ppt
bindsym Shift+Right resize grow width 10 px or 5 ppt
bindsym s mode "default", exec --no-startup-id $HOME/.config/i3/scripts/slopsize.sh
bindsym 1 mode "default", resize set 1000 600
bindsym 2 mode "default", resize set 1500 600
bindsym 3 mode "default", resize set 1200 1000
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+l exec --no-startup-id $HOME/.config/i3/scripts/i3exit lock
bindsym $mod+p exec --no-startup-id $HOME/.config/i3/scripts/i3exit suspend
bindsym $mod+period gaps inner current plus 1
bindsym $mod+comma gaps inner current minus 1
# Gives active window a little border, otherwise set this to: none
new_window pixel
# give terminator a bigger border
# for_window [class=(?i)terminator] border pixel 3
for_window [window_role="pop-up"] floating enable
for_window [window_role="bubble"] floating enable
for_window [window_role="task_dialog"] floating enable
for_window [window_role="Preferences"] floating enable
for_window [window_type="dialog"] floating enable
for_window [window_type="menu"] floating enable
for_window [class="(?i)gsimplecal"] floating enable, move position mouse
for_window [class="(?i)qemu-system"] floating enable
# for_window [class="(?i)VirtualBox" title="(?i)Manager"] floating enable
for_window [class="(?i)blueman"] floating enable
for_window [instance="__scratchpad"] floating enable
for_window [instance="__nmtui"] floating enable
for_window [class="(?i)recordmydesktop"] floating enable
for_window [instance="arandr"] floating enable
for_window [class="(?i)pavucontrol"] floating enable, move position mouse
for_window [class="(?i)pavucontrol" instance="pavucontrol-bar"] move down 34px
#always open in X ws for example
# assign [class="(?i)gitkraken"] $ws5
bar {
font pango: Inconsolata 12
status_command i3blocks
height 30
colors {
background #1b1b1b
separator #ffffff
statusline #999999
active_workspace #000000 #333333 #999999
focused_workspace #000000 #1990B7 #1c1c1c
inactive_workspace #000000 #333333 #999999
urgent_workspace #000000 #ff5151 #1c1c1c
}
# colors {
# background #002029
# active_workspace $ws $ws #f7f7ef
# focused_workspace $ws $ws #f7f7ef
# inactive_workspace $ws $ws #767674
# urgent_workspace $ws $ws #e75959
# }
workspace_buttons yes
}
smart_gaps on
for_window [class="^.*"] border pixel 2
hide_edge_borders both
# bar {
# # verbose yes
# status_command i3blocks
# i3bar_command i3bar -t
# position bottom
# # position top
# # font pango:Hack 11
# # font pango:Droid Sans 26
# font pango:Hack 22
# # font pango:Terminus 10
# # font pango:Inconsolata 15
# strip_workspace_numbers no
# # separator_symbol "■"
# separator_symbol " "
# bindsym button4 nop
# bindsym button5 nop
# tray_output eDP1-1
# # tray_output LVDS-0
# tray_padding 2
# height 72
# colors {
# background #1b1b1b
# separator #ffffff
# statusline #999999
# active_workspace #000000 #333333 #999999
# focused_workspace #000000 #1990B7 #1c1c1c
# inactive_workspace #000000 #333333 #999999
# urgent_workspace #000000 #ff5151 #1c1c1c
# }
# }
# AUTOSTART
exec --no-startup-id compton -b
exec_always --no-startup-id feh --bg-fill $HOME/.config/i3/wallpapers/default &
#clipboard watcher
## before starting the daemon remove the pid file if exists
exec --no-startup-id /bin/rm $HOME/.local/share/clipster/clipster.pid
exec --no-startup-id $HOME/.bin/clipster -d &
#now Super+spacebar to get data from clipboard
bindsym $mod+space exec --no-startup-id $HOME/.bin/clipster -cs
# #seafile for sync, this will start the daemon
# exec --no-startup-id /usr/bin/seaf-cli start
# exec --no-startup-id compton --config ~/.config/compton.conf -b
exec --no-startup-id /usr/bin/setxkbmap gb &
exec --no-startup-id /usr/bin/setxkbmap -option "terminate:ctrl_alt_bksp"
# Think pad Carbon X1 (gen3).. enable tapping of touchpad (on thinkpad Carbon X1.3)
exec --no-startup-id /usr/bin/xinput set-prop "SynPS/2 Synaptics TouchPad" "libinput Tapping Enabled" 1
# Allow killing X with Ctrl+Alt+Backspac
#doesn't show for some reason, maybe try another dock
exec --no-startup-id nm-applet &
exec --no-startup-id blueman-applet &
exec --no-startup-id redshift-gtk &
exec --no-startup-id volumeicon &
# exec --no-startup-id dunst &
# exec --no-startup-id xedgewarp -b
# TODO: install this maybe: https://github.com/Airblader/xedgewarp
#exec_always --no-startup-id "pgrep --exact xev || xev -root -event randr | grep --line-buffered ScreenChangeNotify | while read change; do pkill -RTMIN+4 i3blocks; done"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment