1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 | # Bitard's i3 config.
#########
# font
#########
font pango:Arial 11px
##########
# windows
##########
##########
# borders
##########
new_window pixel 2
new_float pixel 2
hide_edge_borders vertical
bindsym $mod+b border 2pixel
#Autostart section
# Start terminal with some software..:
exec --no-startup-id urxvt
exec --no-startup-id urxvt -geometry 60x10 -e ncmpcpp
##########
# Other programs
exec chromium
##########
##########
# Colors
##########
# Some color variables (may be useful to define colors)
set $black #000000
set $white #FFFFFF
set $green #33FF33
set $lightblue #6666FF
set $blue #3333FF
set $red #FF0000
set $pink #FF99CC
set $grey #A0A0A0
set $yellow #FFFF33
# class border backgr. text
## BLUE ACTIVE BORDER
client.focused #3333FF #3333FF #111111
client.unfocused #444444 #444444 #315858
client.focused_inactive #444444 #444444 #2c2c2f
client.urgent #383a3b #383a3b #ee0000
# Define modkey. It also can be Mod1, which is Alt button,
# but it can cause conflicts.
set $mod Mod4
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
##########
# Keybinds
##########
# start a terminal
bindsym $mod+Return exec urxvtc || lxterminal || xterm || terminator
# kill focused window
bindsym $mod+Shift+c kill
# Start htop (tool for watching system info)
bindsym $mod+t exec urxvt -geometry 80x30 -e htop
# start a program launcher:
bindsym $mod+w exec --no-startup-id dmenu_run -b -fn 'pango:Arial 11px' -nb '#111111' -nf '#555555' -sb '#111111' -sf '#aadb0f'
# Update system
bindsym XF86Reload exec update && i3-nagbar -m 'update successful'
# change window 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
# move focused window
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+i 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+h split h
# Take a Screenshot using scrot.
bindsym Print exec "scrot '%Y-%m-%d_$wx$h.png' -e 'mv $f ~/shots/'"
# split in vertical orientation
bindsym $mod+v split v
# Exec updates script that exec notify-send:
bindsym $mod+u exec updates
# enter fullscreen mode for the focused window.
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
# multimedia keys
bindsym XF86AudioNext exec mpc next
bindsym XF86AudioPrev exec mpc prev
bindsym XF86AudioRaiseVolume exec amixer -c 0 set PCM 2+
bindsym XF86AudioLowerVolume exec amixer -c 0 set PCM 2-
bindsym XF86AudioMute exec amixer sset PCM toggle
bindsym XF86Tools exec mpc 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 workspaces
bindsym $mod+1 workspace 1: terms
bindsym $mod+2 workspace 2: web
bindsym $mod+3 workspace 3: misc
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace 1: terms
bindsym $mod+Shift+2 move container to workspace 2: web
bindsym $mod+Shift+3 move container to workspace 3: misc
# reload the configuration file
bindsym $mod+Shift+z 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+q 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' 'i3-msg exit'"
# shutdown action
bindsym $mod+Shift+S exec "i3-nagbar -t warning -m 'You pressed the shutdown shortcut. Do you really want to poweroff your PC?' -b 'Yes' 'i3-msg' 'systemctl poweroff'"
# 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 j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym i 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"
############
# Status bars
############
# Top bar:
bar {
mode dock
position top
workspace_buttons yes
status_command ~/.i3/conky
tray_output none
colors {
statusline #DEDEDE
background #2D2D2D
# class border backgrd text
focused_workspace #292929 #9400D3 #DEDEDE
active_workspace #2D2D2D #252525 #DEDEDE
inactive_workspace #2D2D2D #2D2D2D #6b6b6b
urgent_workspace #252525 #252525 #FF00FF
}
}
# Bottom bar:
bar {
mode dock
position bottom
workspace_buttons no
status_command ~/.i3/conky-down
tray_output none
colors {
statusline #DEDEDE
background #2D2D2D
}
}
#### RULES FOR SPECIFIC APPLICATIONS ####
# Assign applications to workspaces
assign [class="Chromium"] → 2: web
assign [class="Opera"] → 2: web
assign [class="^URxvt$" instance="^ncmpcpp$"] → 1: terms
assign [class="URxvt"] → 1: terms
assign [class="Gimp"] → 3: misc
assign [class="Virtualbox"] → 3: misc
assign [class="Libreoffice"] → 3: misc
assign [class="Uzbl-tabbed"] → 2: web
# Tip: To find out app class, might be run:
# xprop | grep -i 'class'
for_window [class="URxvt"] floating disable, border 2pixel
for_window [class="Speedcrunch"] floating enable, border 2pixel
for_window [class="Lxappearance"] floating enable, border 2pixel
for_window [class="URxvt" instance="ncmpcpp"] floating enable, border 2pixel
|
x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | out_to_x no
own_window no
out_to_console yes
background no
max_text_width 0
# Update interval in seconds
update_interval 1.0
total_run_times 0
override_utf8_locale no
TEXT
[{ "full_text" : "Music:" , "color" : "\#9400D3" } ,
{ "full_text" : "${if_mpd_playing}${mpd_smart 50} ${mpd_elapsed}/${mpd_length}${else}${mpd_status}${endif}" , "color" : "\#C7$
{ "full_text" : "FS:" , "color" : "\#1E90FF" } ,
{ "full_text" : " / : ${fs_used /}/${fs_size /}" , "color" : "\#1E90FF" } ,
{ "full_text" : "CPU:" , "color" : "\#FF1493" } ,
{ "full_text" : "${cpu cpu0}%" , "color" : "\#FF1493" } ,
{ "full_text" : "RAM:" , "color" : "\#9fbc00" } ,
{ "full_text" : "${mem}" , "color" : "\#9fbc00"},
|
x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | out_to_x no
own_window no
out_to_console yes
background no
max_text_width 0
# Update interval in seconds
update_interval 1.0
total_run_times 0
override_utf8_locale no
TEXT
[
{ "full_text" : "VOLUME:" , "color" : "\#9fbc00" } ,
{ "full_text" : "${execi 1 amixer sget PCM,0 | egrep -o '([0-9]+%|\[(on|off)\])' | sed ':a;N;$!ba;s/\n/ /g' | awk '{print $1}'}" } ,
{ "full_text" : "UPDATES AVAILABLE:" , "color" : "\#EE82EE" } ,
{ "full_text" : "${execpi 3600 checkupdates | wc -l}" } ,
{ "full_text" : "KERNEL:" , "color" : "\#9fbc00" } ,
{ "full_text" : "${kernel}" } ,
{ "full_text" : "UPTIME:" , "color" : "\#48D1CC" } ,
{ "full_text" : "${uptime_short}" },
{ "full_text" : "NET:" , "color" : "\#F4A460" } ,
{ "full_text" : "DOWN:${downspeed enp0s4}" , "color" : "\#FF1493" } ,
{ "full_text" : "UP:${upspeed enp0s4}" , "color" : "\#9fbc00" } ,
{ "full_text" : "DATE:" , "color" : "\#DEB887" } ,
{ "full_text" : "${time %d/%m/%Y}" } ,
{ "full_text" : "TIME:" , "color" : "\#90EE90" } ,
{ "full_text" : "${time %H:%M:%S}" }] ,
|
x
Notes
ncmpcpp config http://dotshare.it/dots/857/
colors: http://dotshare.it/dots/858/
.Xresources you can find on my repo on GitHub. github.com/bitard/dotfiles
Inspired by the abi3s config.