Giovanni's Diary > Subjects > Programming > Gists >
Config / i3config
My configuration file for i3. Should be called "config"
# i3 config file # Author: Giovanni Santini # GitHub: @San7o # Please see https://i3wm.org/docs/userguide.html for a complete reference! set $mod Mod4 # Remove the title bar #default_border pixel 0 #default_floating_border pixel 0 default_border none # Berders #default_border pixel 3 #default_floating_border pixel 3 # Colors #client.focused #fcba03 #fcba03 #fcba03 #fcba03 #fcba03 #client.focused #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF client.focused #000000 #000000 #000000 #000000 #000000 # Gaps! gaps inner 0 # Smart gaps (gaps used if only more than one container on the workspace) smart_gaps on # Font for window titles. Will also be used by the bar unless a different font # is used in the bar {} block below. font pango:monospace 8 # This font is widely installed, provides lots of unicode glyphs, right-to-left # text rendering and scalability on retina/hidpi displays (thanks to pango). #font pango:DejaVu Sans Mono 8 # Focus bindsym $mod+h focus left bindsym $mod+j focus down bindsym $mod+k focus up bindsym $mod+l focus right bindsym $mod+Left focus left bindsym $mod+Down focus down bindsym $mod+Up focus up bindsym $mod+Right focus right # Movement bindsym $mod+Ctrl+h move left bindsym $mod+Ctrl+j move down bindsym $mod+Ctrl+k move up bindsym $mod+Ctrl+l move right bindsym $mod+Ctrl+Left move left bindsym $mod+Ctrl+Down move down bindsym $mod+Ctrl+Up move up bindsym $mod+Ctrl+Right move right # Resize bindsym $mod+Shift+j resize shrink height 10 px or 10 ppt bindsym $mod+Shift+k resize grow height 10 px or 10 ppt bindsym $mod+Shift+l resize shrink width 10 px or 10 ppt bindsym $mod+Shift+h resize grow width 10 px or 10 ppt bindsym $mod+Shift+Down resize shrink height 10 px or 10 ppt bindsym $mod+Shift+Up resize grow height 10 px or 10 ppt bindsym $mod+Shift+Right resize shrink width 10 px or 10 ppt bindsym $mod+Shift+Left resize grow width 10 px or 10 ppt # switch to workspace bindsym $mod+1 workspace number $ws1 bindsym $mod+2 workspace number $ws2 bindsym $mod+3 workspace number $ws3 bindsym $mod+4 workspace number $ws4 bindsym $mod+5 workspace number $ws5 bindsym $mod+6 workspace number $ws6 bindsym $mod+7 workspace number $ws7 bindsym $mod+8 workspace number $ws8 bindsym $mod+9 workspace number $ws9 bindsym $mod+0 workspace number $ws10 # move focused container to workspace bindsym $mod+Shift+1 move container to workspace number $ws1 bindsym $mod+Shift+2 move container to workspace number $ws2 bindsym $mod+Shift+3 move container to workspace number $ws3 bindsym $mod+Shift+4 move container to workspace number $ws4 bindsym $mod+Shift+5 move container to workspace number $ws5 bindsym $mod+Shift+6 move container to workspace number $ws6 bindsym $mod+Shift+7 move container to workspace number $ws7 bindsym $mod+Shift+8 move container to workspace number $ws8 bindsym $mod+Shift+9 move container to workspace number $ws9 bindsym $mod+Shift+0 move container to workspace number $ws10 # Adjust audio set $refresh_i3status killall -SIGUSR1 i3status bindsym XF86AudioRaiseVolume exec --no-startup-id amixer set Master 10%+ && $refresh_i3status bindsym XF86AudioLowerVolume exec --no-startup-id amixer set Master 10%- && $refresh_i3status bindsym XF86AudioMute exec --no-startup-id amixer set Master toggle && $refresh_i3status bindsym XF86AudioMicMute exec --no-startup-id amixer set Master toggle && $refresh_i3status # Brightness controls bindsym XF86MonBrightnessUp exec echo $(( $(cat /sys/class/backlight/intel_backlight/brightness) +10000)) > /sys/class/backlight/intel_backlight/brightness bindsym XF86MonBrightnessDown exec echo $(( $(cat /sys/class/backlight/intel_backlight/brightness) -10000)) > /sys/class/backlight/intel_backlight/brightness # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod # move tiling windows via drag & drop by left-clicking into the title bar, # or left-clicking anywhere into the window while holding the floating modifier. tiling_drag modifier titlebar # start a terminal bindsym $mod+Return exec xterm # kill focused window bindsym $mod+q kill # start dmenu (a program launcher) bindsym $mod+d exec "dmenu_run" # 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" 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" bindsym $mod+Shift+q exec --no-startup-id pkill i3bar bindsym $mod+Shift+w exec --no-startup-id i3bar # 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'" # Start i3bar to display a workspace bar (plus the system information i3status # finds out, if available) bar { position top status_command i3status colors { background #282c34 statusline #ffffff focused_workspace #282c34 #ffffff active_workspace #282c34 #ffffff inactive_workspace #ffffff #282c34 urgent_workspace #282c34 #ffffff } } # Start XDG autostart .desktop files using dex. See also # https://wiki.archlinux.org/index.php/XDG_Autostart exec --no-startup-id dex --autostart --environment i3 # The combination of xss-lock, nm-applet and pactl is a popular choice, so # they are included here as an example. Modify as you see fit. # xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the # screen before suspend. Use loginctl lock-session to lock your screen. exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork # NetworkManager is the most popular way to manage wireless networks on Linux, # and nm-applet is a desktop environment-independent system tray GUI for it. exec --no-startup-id nm-applet # Set wallpaper background exec_always --no-startup-id /usr/bin/feh --bg-scale /home/santo/.config/i3/flower.png
i3status config:
general { #output_format = "dzen2" colors = true interval = 5 } #order += "ipv6" order += "disk /" #order += "run_watch DHCP" #order += "run_watch VPNC" #order += "path_exists VPN" #order += "wireless wlan0" #order += "ethernet eth0" order += "battery 0" #order += "cpu_temperature 0" order += "memory" order += "load" order += "uptime" #order += "tztime local" order += "tztime rome" # wireless wlan0 { # format_up = "W: (%quality at %essid, %bitrate) %ip" # format_down = "W: down" # } # ethernet eth0 { # format_up = "E: %ip (%speed)" # format_down = "E: down" # } battery 0 { format = "%status %percentage %remaining %emptytime" format_down = "No battery" status_chr = "charging: " status_bat = "battery:" status_unk = "unknown battery" status_full = "battery full" status_idle = "battery idle" path = "/sys/class/power_supply/BAT1/uevent" low_threshold = 10 } tztime local { format = "%Y-%m-%d %H:%M:%S" hide_if_equals_localtime = true } tztime rome { format = "time: %Y-%m-%d %H:%M:%S %Z" timezone = "Europe/Rome" } load { format = "load: %5min" } # cpu_temperature 0 { # format = "T: %degrees °C" # path = "/sys/devices/platform/coretemp.0/temp1_input" # } memory { format = "used mem: %used" threshold_degraded = "10%" format_degraded = "MEMORY: %free" } disk "/" { format = "free disk: %free" } read_file uptime { format = "uptime %content" path = "/proc/uptime" }