From bc594440e874d4811ea582d8d31ffb4373d48e3c Mon Sep 17 00:00:00 2001 From: q3aql Date: Mon, 6 Dec 2021 17:37:34 +0100 Subject: [PATCH] Dotfiles config update (2021-12-06) --- .config/i3/config | 1 + .config/i3/config.i3blocks | 1 + .config/i3/config.i3status | 1 + .config/i3/config.polybar | 303 ++++++++++++++++++++++++++++++ .config/polybar/config | 285 ++++++++++++++++++++++++++++ .config/polybar/cpu_info.sh | 5 + .config/polybar/disk_info.sh | 3 + .config/polybar/kernel_version.sh | 34 ++++ .config/polybar/launch.sh | 20 ++ .config/polybar/mem_info.sh | 3 + README-i3-i3blocks.md | 7 +- README-i3-polybar.md | 146 ++++++++++++++ README-i3.md | 5 +- README.md | 3 +- examples/i3wm-polybar.png | Bin 0 -> 960956 bytes 15 files changed, 811 insertions(+), 6 deletions(-) create mode 100644 .config/i3/config.polybar create mode 100644 .config/polybar/config create mode 100755 .config/polybar/cpu_info.sh create mode 100755 .config/polybar/disk_info.sh create mode 100755 .config/polybar/kernel_version.sh create mode 100755 .config/polybar/launch.sh create mode 100755 .config/polybar/mem_info.sh create mode 100644 README-i3-polybar.md create mode 100644 examples/i3wm-polybar.png diff --git a/.config/i3/config b/.config/i3/config index cbe953f..c95c212 100644 --- a/.config/i3/config +++ b/.config/i3/config @@ -283,6 +283,7 @@ bindsym $mod+r mode "resize" # finds out, if available) bar { position top + #i3bar_command $HOME/.config/polybar/launch.sh status_command i3status #status_command i3blocks #tray_output DisplayPort-0 diff --git a/.config/i3/config.i3blocks b/.config/i3/config.i3blocks index f5f5f08..5db185c 100644 --- a/.config/i3/config.i3blocks +++ b/.config/i3/config.i3blocks @@ -283,6 +283,7 @@ bindsym $mod+r mode "resize" # finds out, if available) bar { position top + #i3bar_command $HOME/.config/polybar/launch.sh #status_command i3status status_command i3blocks #tray_output DisplayPort-0 diff --git a/.config/i3/config.i3status b/.config/i3/config.i3status index cbe953f..c95c212 100644 --- a/.config/i3/config.i3status +++ b/.config/i3/config.i3status @@ -283,6 +283,7 @@ bindsym $mod+r mode "resize" # finds out, if available) bar { position top + #i3bar_command $HOME/.config/polybar/launch.sh status_command i3status #status_command i3blocks #tray_output DisplayPort-0 diff --git a/.config/i3/config.polybar b/.config/i3/config.polybar new file mode 100644 index 0000000..6d3f55b --- /dev/null +++ b/.config/i3/config.polybar @@ -0,0 +1,303 @@ +# 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 some time, delete +# this file and re-run i3-config-wizard(1). +# + +# i3 config file (v4) +# +# Please see https://i3wm.org/docs/userguide.html for a complete reference! + +set $mod Mod4 + +# 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 10 +font pango:Noto Sans 10 +#font pango:Ubuntu 10.5 + +# 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 9 + +# 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 connman-gtk --tray & +exec --no-startup-id nm-applet & + +# Applet for Audio +exec --no-startup-id pnmixer -t & + +# Configure screens and resolution +exec --no-startup-id ~/.config/i3/startxrandr.sh & + +# Load compton or picom (Compositor) +#exec --no-startup-id "sleep 15 && compton &" +exec --no-startup-id "sleep 15 && picom &" + +# Configure wallpaper +exec --no-startup-id "sleep 3 && nitrogen --set-scaled ~/wallpapers/dark-city.jpg" + +# Configure xscreensaver +exec --no-startup-id "sleep 5 && xscreensaver &" + +# Use pactl to adjust volume in PulseAudio. +set $refresh_i3status killall -SIGUSR1 i3status +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% && $refresh_i3status +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% && $refresh_i3status +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status +bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# New windows without borders +#new_window 1pixel +new_window pixel 3 + +# start a terminal +#bindsym $mod+Return exec i3-sensible-terminal +#bindsym $mod+Return exec xterm +bindsym $mod+Return exec alacritty + +# kill focused window +bindsym $mod+Shift+q kill + +# start dmenu (a program launcher) +bindsym $mod+d exec --no-startup-id dmenu_run +# A more modern dmenu replacement is rofi: +# bindcode $mod+40 exec "rofi -modi drun,run -show drun" +# There also is i3-dmenu-desktop which only displays applications shipping a +# .desktop file. It is a wrapper around dmenu, so you need that installed. +# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop + +# NetworkManager +#bindsym $mod+c exec --no-startup-id connman-gtk --no-icon +bindsym $mod+c exec --no-startup-id nm-connection-editor + +# Run applications +bindsym $mod+o exec --no-startup-id "rofi -modi drun,run -show drun" +bindsym $mod+q exec --no-startup-id rofi -show window +bindsym $mod+x exec --no-startup-id lxrandr +bindsym $mod+b exec --no-startup-id firefox +bindsym $mod+n exec --no-startup-id pcmanfm +bindsym $mod+p exec --no-startup-id rofi -show run +bindsym $mod+g exec --no-startup-id geany +bindsym $mod+m exec --no-startup-id telegram +bindsym $mod+z exec --no-startup-id nitrogen +bindsym $mod+u exec --no-startup-id xterm +bindsym $mod+t exec --no-startup-id rofi-theme-selector +bindsym $mod+i exec --no-startup-id lxappearance + +# change focus +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+l focus up +bindsym $mod+ntilde 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+ntilde move right + +# lock screen +set $i3lockwall ~/.config/i3/down-screen.sh +bindsym $mod+Ctrl+Shift+l exec --no-startup-id $i3lockwall + +# close session +bindsym Mod1+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'" + +# shutdown / restart / suspend... +set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (CTRL+s) shutdown + +mode "$mode_system" { + bindsym l exec --no-startup-id $i3lockwall, mode "default" + bindsym e exec --no-startup-id i3-msg exit, mode "default" + bindsym s exec --no-startup-id $i3lockwall && systemctl suspend, mode "default" + bindsym h exec --no-startup-id $i3lockwall && systemctl hibernate, mode "default" + bindsym r exec --no-startup-id systemctl reboot, mode "default" + bindsym Ctrl+s exec --no-startup-id systemctl poweroff -i, mode "default" + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +bindsym $mod+BackSpace mode "$mode_system" + +# 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 + +# 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 + +# i3-gaps config +#gaps inner 6 +#gaps outer 2 + +# 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 number 1:term +bindsym $mod+2 workspace number 2:www +bindsym $mod+3 workspace number 3:chat +bindsym $mod+4 workspace number 4:files +bindsym $mod+5 workspace number 5:media +bindsym $mod+6 workspace number 6:game +bindsym $mod+7 workspace number 7:mail +bindsym $mod+8 workspace number 8:dev +bindsym $mod+9 workspace number 9:vm +bindsym $mod+0 workspace number 10:all + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace number 1:term +bindsym $mod+Shift+2 move container to workspace number 2:www +bindsym $mod+Shift+3 move container to workspace number 3:chat +bindsym $mod+Shift+4 move container to workspace number 4:files +bindsym $mod+Shift+5 move container to workspace number 5:media +bindsym $mod+Shift+6 move container to workspace number 6:game +bindsym $mod+Shift+7 move container to workspace number 7:mail +bindsym $mod+Shift+8 move container to workspace number 8:dev +bindsym $mod+Shift+9 move container to workspace number 9:vm +bindsym $mod+Shift+0 move container to workspace number 10:all + +# force a window on a named workspace +assign [class="Firefox"] 2:www +assign [class="mpv"] 5:media +assign [class="vlc"] 5:media +assign [class="Ristretto"] 5:media +assign [class="Gimp"] 5:media +assign [class="Gimp-2.10"] 5:media +assign [class="Mozilla VPN"] 2:www +assign [class="XTerm"] 1:term +assign [class="VirtualBoxVM"] 9:vm +assign [class="VirtualBox Machine"] 9:vm +assign [class="Steam"] 6:game +assign [class="Telegram"] 3:chat +assign [class="Signal"] 3:chat +assign [class="Pcmanfm"] 4:files +assign [class="Mousepad"] 8:dev +assign [class="Geany"] 8:dev + +# force floatin windows +for_window [class="Pavucontrol" instance="pavucontrol"] floating enable +for_window [class="Nitrogen" instance="nitrogen"] floating enable +for_window [class="Lxrandr" instance="lxrandr"] floating enable +for_window [class="Connman-gtk" instance="connman-gtk"] floating enable +for_window [class="Nm-connection-editor" instance="nm-connection-editor"] floating enable +for_window [class="vlc" instance="vlc"] floating enable +for_window [class="mpv" instance="gl"] floating enable +for_window [class="Engrampa" instance="engrampa"] floating enable +for_window [class="Xarchiver" instance="xarchiver"] floating enable +for_window [class="Ristretto" instance="ristretto"] floating enable +for_window [class="Mozilla VPN" instance="mozillavpn"] floating enable +for_window [class="Lxappearance" instance="lxappearance"] floating enable + +# 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 j resize shrink width 10 px or 10 ppt + bindsym k resize grow height 10 px or 10 ppt + bindsym l resize shrink height 10 px or 10 ppt + bindsym ntilde 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 or $mod+r + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym $mod+r mode "default" +} + +bindsym $mod+r mode "resize" + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +bar { + position top + i3bar_command $HOME/.config/polybar/launch.sh + #status_command i3status + #status_command i3blocks + #tray_output DisplayPort-0 + colors { + separator #AAAAAA + background #222133 + statusline #FFFFFF + focused_workspace #664477 #664477 #cccccc #282828 + active_workspace #DCCD69 #DCCD69 #181715 #928374 + inactive_workspace #222133 #222133 #AAAAAA #928374 + urgent_workspace #CE4045 #CE4045 #FFFFFF #ebdbb2 + } +} +client.focused #664477 #664477 #cccccc #e7d8b1 +client.focused_inactive #e7d8b1 #e7d8b1 #181715 #A074C4 +client.unfocused #222133 #222133 #AAAAAA #A074C4 +client.urgent #CE4045 #CE4045 #e7d8b1 #DCCD69 diff --git a/.config/polybar/config b/.config/polybar/config new file mode 100644 index 0000000..046169b --- /dev/null +++ b/.config/polybar/config @@ -0,0 +1,285 @@ +;========================================================== +; +; +; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗ +; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗ +; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝ +; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗ +; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║ +; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ +; +; +; To learn more about how to configure Polybar +; go to https://github.com/polybar/polybar +; +; The README contains a lot of information +; +;========================================================== + +[glob] +background = ${xrdb: color0} +foreground = ${xrdb: color7} +alert = ${xrdb: color9} +underline = ${xrdb: color2} +primary = ${xrdb: color7} + +red = ${xrdb: color9} +green = ${xrdb: color2} +yellow = ${xrdb: color3} +light-blue = ${xrdb: color4} +light-pink = ${xrdb: color5} +light-green = ${xrdb: color6} + +padding = 2 + +[bar/example] +monitor = ${env:MONITOR:} +;monitor = ${env:MONITOR:HDMI-1} +;monitor = ${env:MONITOR:DisplayPort-0} +;monitor = ${env:MONITOR:DisplayPort-1} +width = 100% +height = 25 +;override-redirect = true +;offset-x = 25% +;offset-y = 0% +radius = 0.0 +fixed-center = true + +;background = ${glob.background} +background = #222133 +foreground = #ADBAC7 +underline = #664477 + +line-size = 3 +line-color = #f004477 + +border-size = 1 +;border-color = #664477 +;border-color = #00000000 +;border-color = ${glob.background} + +padding-left = 0 +padding-right = 0 + +module-margin-left = 0 +module-margin-right = 0 + +font-0 = fixed:pixelsize=9:weight=bold:antialias=true +font-1 = unifont:fontformat=truetype:size=8:antialias=false +font-2 = Noto Sans Font:pixelsize=10 + +modules-left = i3 +; modules-center = calendar date +modules-right = kernel cpu meminfo diskinfo pulseaudio wlan eth0 date +tray-position = right +;tray-margin = 0 +tray-background = #222133 + +;wm-restack = bspwm +;wm-restack = i3 + +;override-redirect = true + +;scroll-up = bspwm-desknext +;scroll-down = bspwm-deskprev + +scroll-up = i3wm-wsnext +scroll-down = i3wm-wsprev + +cursor-click = pointer +cursor-scroll = ns-resize + +[module/kernel] +format-foreground = #51A6E3 +type = custom/script +exec = ~/.config/polybar/kernel_version.sh +interval = 10 + +[module/cpu] +;type = internal/cpu +format-foreground = #B63CEC +;format =