Skip to content

Instantly share code, notes, and snippets.

@Himan10
Created June 6, 2020 05:29
Show Gist options
  • Select an option

  • Save Himan10/f2761769557326ee609f25c9a7fdc25e to your computer and use it in GitHub Desktop.

Select an option

Save Himan10/f2761769557326ee609f25c9a7fdc25e to your computer and use it in GitHub Desktop.
configuration file of i3
# set modifier
set $super Mod4
set $alt Mod1
# set font
font pango: Cantarell Bold 11
# Use Mouse+$super to drag floating windows to their wanted position
floating_modifier Ctrl
# floating window size
floating_minimum_size 25 x 50
floating_maximum_size -1 x -1
#autostart
exec --no-startup-id hsetroot -fill ~/Downloads/prism.jpg
exec --no-startup-id xsettingsd &
exec --no-startup-id dunst -config ~/.config/dunst/dunstrc &
exec --no-startup-id picom --config ~/.config/compton.conf -b
exec --no-startup-id conky --config ~/.conkyrc -d -b -p 3
exec --no-startup-id conky --config ~/.conkyrc2 -d -b -p 3
#exec --no-startup-id compton -b
#exec --no-startup-id urxvt
# start a terminal
#bindsym Ctrl+Mod1+t exec urxvt -fg white
#bindsym $super+Return exec urxvt -fg white
bindsym $super+Return exec urxvt -tr -tint red -sh 30
# start dmenu (a program launcher)
bindsym $super+Shift+d exec i3-dmenu-desktop --dmenu="dmenu -i -fn 'Noto Sans:size=9'"
bindsym $super+d exec rofi -lines 12 -padding 18 -width 60 -location 0 -show drun -sidebar-mode -columns 3 -font 'Noto Sans 10'
# Take a screenshot (Print screen key)
#bindsym --release Print exec --no-startup-id scrot "%Y-%m-%d_$(whoami).png' -t 10% -e' -. $f"
# common apps keybinds
#bindsym Print exec scrot 'Cheese_%a-%d%b%y_%H.%M.png' -e 'mv $f ~/Pictures/Scrot/'
bindsym Print exec spectacle
bindsym Ctrl+Mod1+l exec i3lock-fancy
bindsym Ctrl+Mod1+s exec systemctl suspend
bindsym $super+Shift+f exec firefox
bindsym $super+p exec pamac-manager
bindsym $super+b exec urxvt -e bmenu
bindsym $super+l exec urxvt -geometry 30x10 -e mpv ~/Music/LinkinPark/ --no-video
bindsym $super+g exec urxvt -e python -i ~/python/pyproject/black_jack/orignal.py
# bindsym for dunst script - dtest
bindsym $super+u exec bash dtest
# binding symbol for brightness
bindsym F12 exec xbacklight +1
bindsym F11 exec xbacklight -1
# using default orientation
default_orientation vertical
#change volume
bindsym F3 exec amixer -q set Master 5%+
bindsym F2 exec amixer -q set Master 5%-
bindsym F1 exec amixer set Master toggle
# music control
bindsym F6 exec mpv next
bindsym F4 exec mpv prev
bindsym XF86AudioPlay exec mpv toggle
bindsym F5 exec mpv stop
# kill focused window
bindsym $super+c kill
bindsym Mod1+F4 kill
# change focus
bindsym $super+Left focus left
bindsym $super+Down focus down
bindsym $super+Up focus up
bindsym $super+Right focus right
# move focused window
# Add $super+ before shift (for oldest view)
bindsym $super+Shift+Left move left
bindsym $super+Shift+Down move down
bindsym $super+Shift+Up move up
bindsym $super+Shift+Right move right
# split in horizontal orientation
bindsym $super+h split h
# split in vertical orientation
bindsym $super+v split v
# enter fullscreen mode for the focused container
bindsym $super+f fullscreen toggle
# change container layout split
bindsym $super+s layout toggle split #vertical
bindsym $super+w layout tabbed
bindsym $super+e layout toggle split #horizontal
# toggle tiling / floating
bindsym $super+space floating toggle
# change focus between tiling / floating windows
bindsym $super+Shift+space focus mode_toggle
# Make your window sticky
bindsym $super+y sticky toggle
# Make the currently focused window a scratchpad
bindsym $super+minus move scratchpad
# Show the first scratchpad window
bindsym $super+plus scratchpad show
# Show the sup-mail scratchpad window, if any.
#bindsym $super+m [title="^Sup ::"] scratchpad show
# Get me to the next open VIM instance
# bindsym $super+a [class="urxvt" title="VIM"] focus
# Enable/disable logging
bindsym $super+x debuglog toggle
# switch to workspace
bindsym Control+Right workspace next
bindsym Control+Left workspace prev
bindsym $super+1 workspace 1
bindsym $super+2 workspace 2
bindsym $super+3 workspace 3
bindsym $super+4 workspace 4
bindsym $super+5 workspace 5
bindsym $super+6 workspace 6
bindsym $super+7 workspace 7
# move focused container to workspace
# Add $super+ before shift (for oldest change)
bindsym Mod4+Shift+1 move container to workspace 1
bindsym Mod4+Shift+2 move container to workspace 2
bindsym Mod4+Shift+3 move container to workspace 3
bindsym Mod4+Shift+4 move container to workspace 4
bindsym Mod4+Shift+5 move container to workspace 5
bindsym Mod4+Shift+6 move container to workspace 6
# reload i3 inplace (preserves your layout/session, can be used to upgrade i2)
bindsym $super+Control+r reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $super+Shift+r restart
# exit i3
bindsym $super+q exec "i3-nagbar -t warning -m 'LIft me UP, LEt me Go' -b 'Yes' 'i3-msg exit'"
# Workspace back and forth
workspace_auto_back_and_forth yes
# title for all windows
for_window [class=".*"] title_format "<b>%title</b>"
#for_window [class="urxvt"] floating enable; resize shrink width 100px; resize grow width 400px; resize shrink height 100px; resize grow height 800px;
# print window titles of firefox windows red
for_window [class="(?i)firefox"] title_format "<span foreground='red'>%title</span>"
# resize window (you can also use the mouse for that)
mode "resize" {
bindsym Left resize shrink width 5 px or 5 ppt
bindsym Down resize grow height 5 px or 5 ppt
bindsym Up resize shrink height 5 px or 5 ppt
bindsym Right resize grow width 5 px or 5 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $super+r mode "resize"
# panel
bar {
#position top
colors {
background #000000
statusline #2f343f
separator #4b5262
# colour of border, background, and text
focused_workspace #2f343f #bf616a #d8dee8
active_workspace #2f343f #2f343f #d8dee8
inactive_workspace #2f343f #2f343f #d8dee8
urgent_workspacei #2f343f #ebcb8b #2f343f
}
tray_output primary
status_command i3status --config ~/.config/i3status/config
#status_command py3status --config ~/.i3status.conf
}
# window rules, you can find the window class using xprop
for_window [class=".*"] border pixel 2
gaps inner 5
gaps outer 5
#smart_gaps on
#smart_borders on
#assign [class=URxvt] 1
assign [class=Firefox|Transmission-gtk] 2
assign [class=anaconda-navigator] floating enable
assign [class=Thunar|File-roller] 3
assign [class=Geany|Evince|Gucharmap|Soffice|libreoffice*] 4
assign [class=okular|mpv] 7
assign [class=Audacity|Vlc|Ghb|Xfburn|Gimp*|Inkscape] floating enable
assign [class=Lxappearance|System-config-printer.py|Lxtask|GParted|Pavucontrol|Exo-helper*|Lxrandr|Arandr] 6
for_window [class=Viewnior|feh|Audacious|File-roller|Lxappearance|Lxtask|Pavucontrol] floating enable
for_window [class=URxvt|Firefox|Geany|Evince|Soffice|libreoffice*|Ghb|Xfburn|Gimp*|Inkscape|Vlc|Lxappearance|Audacity] focus
for_window [class=Xfburn|GParted|System-config-printer.py|Lxtask|Pavucontrol|Exo-helper*|Lxrandr|Arandr] focus
# colour of border, background, text, indicator, and child_border
client.focused #bf616a #2f343f #d8dee8 #bf616a #d8dee8
client.focused_inactive #2f343f #2f343f #d8dee8 #2f343f #2f343f
client.unfocused #2f343f #2f343f #d8dee8 #2f343f #2f343f
client.urgent #2f343f #2f343f #d8dee8 #2f343f #2f343f
client.placeholder #2f343f #2f343f #d8dee8 #2f343f #2f343f
client.background #2f343f #000000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment