Skip to content

Instantly share code, notes, and snippets.

@damienomurchu
Last active November 24, 2019 15:38
Show Gist options
  • Save damienomurchu/ce6f8c0dd44f4b82143a25fa5430dec6 to your computer and use it in GitHub Desktop.
Save damienomurchu/ce6f8c0dd44f4b82143a25fa5430dec6 to your computer and use it in GitHub Desktop.
# set screen resolution
#xrandr --output eDP-1 --mode 1440x810
#xrandr --output eDP-1 --mode 1920x1080
exec xrandr --output eDP-1 --mode 1600x900
# set Win key as mod
set $mod Mod4
set $wallpaper "~/Pictures/travel/2005-11 Vienna/051118_2669.JPG"
# no window title
bindsym $mod+y border pixel 2
bindsym $mod+u border normal 2
# title alignment
title_align center
# font for window titles
#font pango:monospace 8
font pango:Noto Sans 11
# manage volume with amixer
bindsym $mod+comma exec amixer -D pulse sset Master 5%-
bindsym $mod+period exec amixer -D pulse sset Master 5%+
bindsym $mod+m exec amixer sset Master toggle
# lock screen
bindsym Control+mod1+l exec i3lock -i $wallpaper
# suspend system
bindsym Control+mod1+s exec "systemctl suspend"
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec terminator
# kill focused window
bindsym $mod+Shift+q kill
# color vars
set $bg-color #2f343f
set $inactive-bg-color #2f343f
set $text-color #f3f4f5
set $inactive-text-color #676E7D
set $urgent-bg-color #E53935
# window colors
# border background text indicator
client.focused $bg-color $bg-color $text-color #00ff00
client.unfocused $inactive-bg-color $inactive-bg-color $inactive-text-color #00ff00
client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color #00ff00
client.urgent $urgent-bg-color $urgent-bg-color $text-color #00ff00
# start dmenu lancher
bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
#bindsym $mod+d exec rofi -show run -lines 3 -eh 2 -width 100 -padding 800 -opacity "85" -bw 0 -bc "$bg-color" -bg "$bg-color" -fg "$text-color" -hlbg "$bg-color" -hlfg "#9575cd"
exec --no-startup-id compton -f
# change focus
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+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
# 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
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1:Email"
set $ws2 "2:Chat"
set $ws3 "3:Web"
set $ws4 "4:Code"
set $ws5 "5:Docs"
# switch to workspace
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
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5
# auto-assign apps to workspaces
assign [class="Evolution"] $ws1
assign [class="Brave-browser"] $ws3
assign [class="Code"] $ws4
# terminal that pops up on demand
#exec --no-startup-id terminal -c scratchpad-terminal
#for_window [instance="scratchpad-terminal"] move scratchpad
#bindsym $mod+p [instance="scratch-term"] scratchpad show
set $term terminator
exec --no-startup-id $term --title scratchterm
for_window [title="scratchterm"] move scratchpad
bindsym $mod+t [title="scratchterm"] scratchpad show, resize set 940 600, move position center
#exec --no-startup-id terminator -c "scratchpad-terminal"
#for_window [instance="scratchpad-terminal"] floating enable;
#for_window [instance="scratchpad-terminal"] move scratchpad; [instance="scratchpad-terminal"] scratchpad show; move position 80px 50px; move scratchpad
#bindsym $mod+p [instance="scratchpad-terminal"] scratchpad show, resize set 1200 650
# exit mode to manage logout
mode "exit: [l]ogout, [r]eboot, [s]hutdown" {
bindsym l exec i3-msg exit
bindsym r exec systemctl reboot
bindsym s exec systemctl shutdown
bindsym Escape mode "default"
bindsym Return mode "default"
}
bindsym $mod+x mode "exit: [l]ogout, [r]eboot, [s]hutdown"
# 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 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 or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
# i3bar and status
bar {
i3bar_command i3bar
mode hide
status_command i3status --config ~/.config/i3/i3status/config
position bottom
#font pango:SauceCodePro Nerd Font
strip_workspace_numbers yes
workspace_buttons yes
binding_mode_indicator yes
bindsym button4 nop
bindsym button5 nop
tray_output primary
tray_padding 0
colors {
background $bg-color
separator #757575
# border background text
focused_workspace $bg-color $bg-color $text-color
inactive_workspace $inactive-bg-color $inactive-bg-color $inactive-text-color
urgent_workspace $urgent-bg-color $urgent-bg-color $text-color
}
}
general {
colors = true
interval = 1
output_format = i3bar
color_good = "#2267a5"
color_degraded = "#8c7f22"
color_bad = "#be2422"
}
order += "disk /"
order += "memory"
order += "cpu_usage"
order += "load"
order += "cpu_temperature 0"
order += "cpu_temperature 1"
order += "ethernet _first_"
order += "wireless _first_"
order += "volume master"
order += "battery 0"
order += "tztime local"
wireless _first_ {
#format_up = "WiFi: %ip %quality %essid %bitrate"
format_up = "WiFi: %essid %bitrate (%quality)"
format_down = "WiFi: (/)"
}
ethernet _first_ {
format_up = "LAN: %ip %speed"
format_down = "LAN: (/)"
}
battery 0 {
format = "🔋 %percentage"
path ="/sys/class/power_supply/BAT0/uevent"
low_threshold = 20
}
tztime local {
format = "Date: %d/%m/%y Time: %H:%M"
}
memory {
format = "RAM: %used (%available)"
memory_used_method = "memavailable"
}
cpu_usage {
format = "CPU: %usage"
}
load {
format = "(%1min %5min %15min)"
}
cpu_temperature 0 {
format = "%degrees °C"
}
cpu_temperature 1 {
format = "%degrees °C"
}
disk "/" {
format = "Disk: %free"
}
volume master {
format = "♪ %volume"
format_muted = "♪ (%volume)"
device = "default"
mixer = "Master"
mixer_idx = 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment