diff --git a/.config/i3/config b/.config/i3/config index 580ba43..3a3ef92 100644 --- a/.config/i3/config +++ b/.config/i3/config @@ -1,16 +1,18 @@ # This file has been auto-generated by i3-config-wizard(1). # It will not be overwritten, so edit it as you like. # -# Should you change your keyboard layout somewhen, delete +# Should you change your keyboard layout some time, delete # this file and re-run i3-config-wizard(1). # -# + # i3 config file (v4) # -# Please see http://i3wm.org/docs/userguide.html for a complete reference! +# Please see https://i3wm.org/docs/userguide.html for a complete reference! set $mod Mod4 +# font pango:monospace 8 + # poweroff stuff set $mode_system System: (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown mode "$mode_system" { @@ -36,7 +38,7 @@ bindsym $mod+Return exec i3-sensible-terminal bindsym $mod+Shift+Return exec em # kill focused window -bindsym $mod+Shift+Q kill +bindsym $mod+Shift+q kill # lock screen bindsym $mod+l exec fuzzy-i3lock @@ -48,12 +50,22 @@ bindsym $mod+d exec dmenu_run bindsym $mod+m bar hidden_state toggle # change focus +bindsym $mod+b focus left +bindsym $mod+n focus down +bindsym $mod+p focus up +bindsym $mod+f focus right + 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+b move left 25 px +bindsym $mod+Shift+n move down 25 px +bindsym $mod+Shift+p move up 25 px +bindsym $mod+Shift+f move right 25 px + bindsym $mod+Shift+Left move left 25 px bindsym $mod+Shift+Down move down 25 px bindsym $mod+Shift+Up move up 25 px @@ -66,12 +78,12 @@ bindsym $mod+h split h bindsym $mod+v split v # enter fullscreen mode for the focused container -bindsym $mod+f fullscreen +bindsym $mod+c fullscreen toggle -# change container layout (stacked, tabbed, default) +# change container layout (stacked, tabbed, toggle split) bindsym $mod+s layout stacking bindsym $mod+w layout tabbed -bindsym $mod+e layout default +bindsym $mod+e layout toggle split # toggle tiling / floating bindsym $mod+Shift+space floating toggle @@ -85,29 +97,42 @@ bindsym $mod+a focus parent # focus the child container bindsym $mod+q 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" + # switch to workspace -bindsym $mod+1 workspace 1 -bindsym $mod+2 workspace 2 -bindsym $mod+3 workspace 3 -bindsym $mod+4 workspace 4 -bindsym $mod+5 workspace 5 -bindsym $mod+6 workspace 6 -bindsym $mod+7 workspace 7 -bindsym $mod+8 workspace 8 -bindsym $mod+9 workspace 9 -bindsym $mod+0 workspace 10 +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 # move focused container to workspace -bindsym $mod+Shift+1 move container to workspace 1 -bindsym $mod+Shift+2 move container to workspace 2 -bindsym $mod+Shift+3 move container to workspace 3 -bindsym $mod+Shift+4 move container to workspace 4 -bindsym $mod+Shift+5 move container to workspace 5 -bindsym $mod+Shift+6 move container to workspace 6 -bindsym $mod+Shift+7 move container to workspace 7 -bindsym $mod+Shift+8 move container to workspace 8 -bindsym $mod+Shift+9 move container to workspace 9 -bindsym $mod+Shift+0 move container to workspace 10 +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 +bindsym $mod+Shift+6 move container to workspace $ws6 +bindsym $mod+Shift+7 move container to workspace $ws7 +bindsym $mod+Shift+8 move container to workspace $ws8 +bindsym $mod+Shift+9 move container to workspace $ws9 +bindsym $mod+Shift+0 move container to workspace $ws10 # reload the configuration file bindsym $mod+Shift+c reload @@ -116,21 +141,27 @@ bindsym $mod+Shift+c reload bindsym $mod+Shift+r restart # exit i3 (logs you out of your X session) -bindsym $mod+Shift+e exit +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 - bindsym Right 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 Up resize grow height 10 px or 10 ppt + bindsym Down resize shrink height 10 px or 10 ppt bindsym Left resize grow width 10 px or 10 ppt + bindsym $mod+f resize grow width 10 px or 10 ppt + bindsym $mod+p resize shrink height 10 px or 10 ppt + bindsym $mod+n resize grow height 10 px or 10 ppt + bindsym $mod+b resize shrink width 10 px or 10 ppt + # back to normal: Enter or Escape bindsym Return mode "default" bindsym Escape mode "default" + bindsym $mod+r mode "default" } + bindsym $mod+r mode "resize" # constraining floating window size @@ -146,12 +177,13 @@ client.unfocused #000000 #005500 #000000 #ff0000 # Start i3bar to display a workspace bar (plus the system information i3status # finds out, if available) bar { - status_command i3status --config ~/.config/i3status/config - position top - tray_output primary - workspace_buttons yes - mode hide - modifier $mod + status_command i3status-rs ~/.config/i3/status-rs.toml + font pango:DejaVu Sans Mono, forkawesome 8 + position top + tray_output primary + workspace_buttons yes + mode hide + modifier $mod colors { statusline #00ff00 @@ -160,9 +192,3 @@ bar { #client.orientation #ff0000 } } - -# exec ssh-agent -# exec gpg-agent -# exec xset -b -# exec xrandr --output VGA-2 --auto --right-of VGA-1 -# exec feh --bg-scale ~/bg.jpg diff --git a/.config/i3/status-rs.toml b/.config/i3/status-rs.toml new file mode 100644 index 0000000..44a538b --- /dev/null +++ b/.config/i3/status-rs.toml @@ -0,0 +1,59 @@ +icons = "awesome" + +[theme] +name = "solarized-dark" + +[theme.overrides] +idle_fg = "#00cc00" +idle_bg = "#222222" +separator = "|" +separator_fg = "#00cc00" +separator_bg = "#222222" + +[[block]] +block = "sound" + +[[block]] +block = "net" +device = "enp0s25" +format = "{ip} {speed_down} {speed_up}" + +[[block]] +block = "memory" +display_type = "memory" +format_mem = "{Mup}%" +clickable = false + +[[block]] +block = "memory" +display_type = "swap" +format_swap = "{SUp}%" +clickable = false + +[[block]] +block = "cpu" +interval = 1 +format = "{barchart} {utilization}% {frequency}GHz" + +[[block]] +block = "temperature" +collapsed = false +format = "{min}° - {max}°: {average}°" +chip = "*-isa-*" + +[[block]] +block = "load" +interval = 1 +format = "{1m} {5m} {15m}" + +[[block]] +block = "time" +interval = 1 +format = "%F (%Z) %T" +timezone = "Europe/Vienna" + +[[block]] +block = "time" +interval = 1 +format = "(%Z) %T" +timezone = "Etc/UTC" diff --git a/.config/i3status/config b/.config/i3status/config deleted file mode 100644 index b909c11..0000000 --- a/.config/i3status/config +++ /dev/null @@ -1,56 +0,0 @@ -general { - colors = true - interval = 1 -} - -# order += "ipv6" -order += "ethernet enp0s25" -order += "wireless wlp2s0" -order += "battery 0" -order += "cpu_usage" -order += "load" -order += "volume master" -order += "tztime home" -order += "tztime utc" - -ethernet enp0s25 { - format_up = "E: %ip (%speed)" - format_down = "E: down" -} - -wireless wlp2s0 { - format_up = "W: %quality@%ip" - format_down = "W: down" -} - -battery 0 { - last_full_capacity = true - format = "%status %percentage %remaining %consumption" ## %emptytime" - path = "/sys/class/power_supply/BAT%d/uevent" - low_threshold = 20 -} - -cpu_usage { - format = "C: %usage" -} - -load { - format = "%1min %5min %15min" -} - -volume master { - format = "♪: %volume" - device = "default" - mixer = "Master" - mixer_idx = 0 -} - -tztime home { - format = "%Y-%m-%d (%Z) %H:%M:%S" - timezone = "Europe/Vienna" -} - -tztime utc { - format = "(%Z) %H:%M:%S" - timezone = "Etc/UTC" -} diff --git a/.gitignore.d/i3 b/.gitignore.d/i3 index 8f02c8d..2b80612 100644 --- a/.gitignore.d/i3 +++ b/.gitignore.d/i3 @@ -2,7 +2,10 @@ !/.config !/.config/i3 !/.config/i3/config -!/.config/i3status -!/.config/i3status/config +!/.config/i3/status-rs.toml !/.gitignore.d !/.gitignore.d/i3 +!/.local +!/.local/bin +!/.local/bin/fuzzy-i3lock +!/.local/bin/i3-run diff --git a/.local/bin/fuzzy-i3lock b/.local/bin/fuzzy-i3lock new file mode 100755 index 0000000..ae4b552 --- /dev/null +++ b/.local/bin/fuzzy-i3lock @@ -0,0 +1,13 @@ +#!/bin/sh -e +# +# Show a pixelated screenshot as background image of i3lock +# +# See +# Copied from +# + +screenshot="${TMPDIR:-/tmp}/fuzzy-i3lock.png" + +scrot "$screenshot" +mogrify -scale 10% -scale 1000% "$screenshot" +exec i3lock -i "$screenshot" diff --git a/.local/bin/i3-run b/.local/bin/i3-run new file mode 100755 index 0000000..1baee9a --- /dev/null +++ b/.local/bin/i3-run @@ -0,0 +1,9 @@ +#!/bin/sh + +# stolen from https://r0tty.org/git/dotfiles/i3 + +# Make i3 spawn a program, in the current working directory. This is +# useful for running GUI apps from a terminal without cluttering the +# terminal with their output. + +exec i3-msg -t command exec "cd '$(pwd)' && $@"