diff --git a/.config/i3/config b/.config/i3/config new file mode 100644 index 00000000..5c733764 --- /dev/null +++ b/.config/i3/config @@ -0,0 +1,169 @@ +# +# Salt's i3 configuration file +# Licensed under the terms of the MIT License +# + +## STARTUP TASKS +# High-priority +exec --no-startup-id pulseaudio +exec --no-startup-id ~/.config/compton/launch.sh +exec --no-startup-id nitrogen --restore +exec --no-startup-id ~/.config/polybar/launch.sh +exec --no-startup-id redshift +# Low-priority +exec --no-startup-id dunst +exec --no-startup-id "sleep 15 && mpd" +exec --no-startup-id "g910-lights" +# XDG +exec --no-startup-id "dex -a" + +## WORKSPACES +set $w1 1 +set $w2 2 +set $w3 3 +set $w4 4 +set $w5 5 +set $w6 6 +set $w7 7 +set $w8 8 +# Workspace setup for my desktop +# Defaults to whatever on my laptop and on other machines +set $monprim DisplayPort-0 +set $monsec HDMI-A-0 +workspace $w1 output $monprim +workspace $w2 output $monprim +workspace $w3 output $monprim +workspace $w4 output $monprim +workspace $w5 output $monprim +# Putting 8 here first so it's the default for my secondary +workspace $w8 output $monsec +workspace $w6 output $monsec +workspace $w7 output $monsec + +## COSMETICS +font pango:Roboto 10 +new_window pixel 4 +focus_on_window_activation none +gaps inner 8 + +## KEYBINDINGS +# Set modifiers +set $mod Mod1 +set $sup Mod4 +set $ctl Ctrl +set $shift Shift + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# Program opening and closing +bindsym $mod+Return exec "konsole" +bindsym $mod+q kill +bindsym $mod+space exec "rofi -show drun" +bindsym $mod+backslash exec "rofi -show ssh" +bindsym $mod+Tab exec "rofi -show window" + +# Pulse controls +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound + +# Brightness controls +bindsym XF86MonBrightnessUp exec xbacklight -inc 5 # increase screen brightness +bindsym XF86MonBrightnessDown exec xbacklight -dec 5 # decrease screen brightness + +# pavucontrol-qt controls +bindsym $mod+p exec --no-startup-id "pgrep pavucontrol-qt || pavucontrol-qt" +bindsym $mod+$shift+p exec --no-startup-id "pkill pavucontrol-qt" + +# i3-settree +bindsym $mod+o exec --no-startup-id "~/.bin/i3-settree" + +# Miscellaneous non-movement hotkeys +bindsym $ctl+$mod+l exec --no-startup-id "~/.bin/i3lock-custom" +bindsym $mod+$shift+c reload +bindsym $mod+$shift+r restart + +# change focus +bindsym $mod+h focus left +bindsym $mod+j focus down +bindsym $mod+k focus up +bindsym $mod+l focus right + +# move focused window +bindsym $mod+$shift+h move left +bindsym $mod+$shift+j move down +bindsym $mod+$shift+k move up +bindsym $mod+$shift+l move right + +# move focused workspace between monitors +bindsym $sup+h move workspace to output left +bindsym $sup+j move workspace to output down +bindsym $sup+k move workspace to output up +bindsym $sup+l move workspace to output right + +# split in horizontal orientation +bindsym $mod+semicolon split h + +# split in vertical orientation +bindsym $mod+v split v + +# toggle tiling / floating +bindsym $mod+f floating toggle + +# enter fullscreen mode for the focused container +bindsym $mod+$shift+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 + +# focus the parent container +bindsym $mod+a focus parent + +# focus the child container +bindsym $mod+d focus child + +# switch to workspace +bindsym $mod+1 workspace $w1 +bindsym $mod+2 workspace $w2 +bindsym $mod+3 workspace $w3 +bindsym $mod+4 workspace $w4 +bindsym $mod+5 workspace $w5 +bindsym $mod+6 workspace $w6 +bindsym $mod+7 workspace $w7 +bindsym $mod+8 workspace $w8 + +# switch to next and previous workspaces +bindsym $mod+period workspace next +bindsym $mod+comma workspace prev + +# move focused container to workspace +bindsym $mod+$shift+1 move container to workspace $w1 +bindsym $mod+$shift+2 move container to workspace $w2 +bindsym $mod+$shift+3 move container to workspace $w3 +bindsym $mod+$shift+4 move container to workspace $w4 +bindsym $mod+$shift+5 move container to workspace $w5 +bindsym $mod+$shift+6 move container to workspace $w6 +bindsym $mod+$shift+7 move container to workspace $w7 +bindsym $mod+$shift+8 move container to workspace $w8 + +## MODES +# Resize +bindsym $mod+r mode "resize" +mode "resize" { + bindsym h resize shrink width 10 px or 10 ppt + bindsym j resize grow height 10 px or 10 ppt + bindsym k resize shrink height 10 px or 10 ppt + bindsym l resize grow width 10 px or 10 ppt + + 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 + + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym $mod+r mode "default" +} diff --git a/.config/polybar/config b/.config/polybar/config new file mode 100644 index 00000000..43090197 --- /dev/null +++ b/.config/polybar/config @@ -0,0 +1,209 @@ +# vim:ft=dosini +# _ _ +# _ __ ___ | |_ _| |__ __ _ _ __ +# | '_ \ / _ \| | | | | '_ \ / _` | '__| +# | |_) | (_) | | |_| | |_) | (_| | | +# | .__/ \___/|_|\__, |_.__/ \__,_|_| +# |_| |___/ +# +# Copyright (c) 2020 Vintage Salt <rehashedsalt@cock.li> +# Distributed under the terms of the MIT License +# + +## VARIABLES +[res/colors] +red = #BF616A +green = #A3BE8C +yellow = #EBCB8B +blue = #81A1C1 +magenta = #B48EAD +cyan = #88C0D0 +white = #D8DEE9 +black = #2E3440 +gray = #3B4252 + +bg = #2E3440 +fg = #D8DEE9 +border = #3B4252 +selection = #88C0D0 + +[res/config] +padding = 2 + +[settings] +screenchange-reload = true +format-padding = ${res/config.padding} +format-background = ${res/colors.bg} + +## BARS +[template/bar] +bottom = true +wm-restack = ${env:PB_WM_RESTACK:i3} +tray-maxsize = 16 +background = ${res/colors.bg} +foreground = ${res/colors.fg} +border-color = ${res/colors.border} +tray-background = ${res/colors.bg} +height = 48 +font-0 = "Inconsolata:style=Medium:size=11;2" +font-1 = "Deja Vu Sans Mono:style=Regular:size=11;2" + +[bar/primary] +monitor = ${env:PB_MONITOR:eDP-1} +inherit = template/bar +border-top-size = 4 +modules-left = i3 cpu memory battery temp +modules-right = backlight pulse date + +## MODULES +[module/backlight] +type = internal/xbacklight +format = <ramp> <label> +label = %percentage:3%% +ramp-foreground = ${res/colors.yellow} +ramp-0 = ▁ +ramp-1 = ▂ +ramp-2 = ▃ +ramp-3 = ▄ +ramp-4 = ▅ +ramp-5 = ▆ +ramp-6 = ▇ +ramp-7 = █ + +[module/battery] +type = internal/battery +full-at = 100 +time-format = %H:%M +interval = 15 + +format-charging = <ramp-capacity> <label-charging> +format-discharging = <ramp-capacity> <label-discharging> +format-full = <ramp-capacity> <label-full> +label-charging = %percentage:3%% +label-discharging = %percentage:3%% +ramp-capacity-foreground = ${res/colors.green} +ramp-capacity-0 = ▁ +ramp-capacity-0-foreground = ${res/colors.red} +ramp-capacity-1 = ▂ +ramp-capacity-1-foreground = ${res/colors.red} +ramp-capacity-2 = ▃ +ramp-capacity-3 = ▄ +ramp-capacity-4 = ▅ +ramp-capacity-5 = ▆ +ramp-capacity-6 = ▇ +ramp-capacity-7 = █ + +[module/cpu] +type = internal/cpu +interval = 1 + +format = <ramp-coreload> <label> +label = %percentage:3%% +ramp-coreload-foreground = ${res/colors.blue} +ramp-coreload-spacing = 1 +ramp-coreload-0 = ▁ +ramp-coreload-1 = ▂ +ramp-coreload-2 = ▃ +ramp-coreload-3 = ▄ +ramp-coreload-4 = ▅ +ramp-coreload-5 = ▆ +ramp-coreload-5-foreground = ${res/colors.yellow} +ramp-coreload-6 = ▇ +ramp-coreload-6-foreground = ${res/colors.yellow} +ramp-coreload-7 = █ +ramp-coreload-7-foreground = ${res/colors.red} + +[module/date] +type = internal/date +date = %a +time = %I:%M %p +interval = 30 +format = <label> +label = %date% %time% + +[module/i3] +type = internal/i3 +format = <label-state> <label-mode> +format-padding = 0 +enable-scroll = false +pin-workspaces = true + +label-mode-padding = ${res/config.padding} +label-mode-background = ${res/colors.red} +label-focused = %name% +label-focused-padding = ${res/config.padding} +label-focused-foreground = ${res/colors.bg} +label-focused-background = ${res/colors.selection} +label-unfocused = %name% +label-unfocused-background = ${res/colors.bg} +label-unfocused-padding = ${res/config.padding} +label-visible = %name% +label-visible-background = ${res/colors.gray} +label-visible-padding = ${res/config.padding} + +[module/memory] +type = internal/memory + +format = <ramp-used> <ramp-swap-used> <label> +label = %gb_free:8% +ramp-used-foreground = ${res/colors.magenta} +ramp-used-0 = ▁ +ramp-used-1 = ▂ +ramp-used-2 = ▃ +ramp-used-3 = ▄ +ramp-used-4 = ▅ +ramp-used-5 = ▆ +ramp-used-5-foreground = ${res/colors.yellow} +ramp-used-6 = ▇ +ramp-used-6-foreground = ${res/colors.yellow} +ramp-used-7 = █ +ramp-used-7-foreground = ${res/colors.red} +ramp-swap-used-foreground = ${res/colors.magenta} +ramp-swap-used-0 = ▁ +ramp-swap-used-1 = ▂ +ramp-swap-used-2 = ▃ +ramp-swap-used-3 = ▄ +ramp-swap-used-4 = ▅ +ramp-swap-used-5 = ▆ +ramp-swap-used-5-foreground = ${res/colors.yellow} +ramp-swap-used-6 = ▇ +ramp-swap-used-6-foreground = ${res/colors.yellow} +ramp-swap-used-7 = █ +ramp-swap-used-7-foreground = ${res/colors.red} + +[module/pulse] +type = internal/pulseaudio +format-volume = <ramp-volume> <label-volume> +format-muted = <ramp-volume> <label-muted> +format-muted-foreground = ${res/colors.red} +label-muted = %percentage%% +label-muted-foreground = ${res/colors.red} +ramp-volume-foreground = ${res/colors.cyan} +ramp-volume-0 = ▁ +ramp-volume-1 = ▂ +ramp-volume-2 = ▃ +ramp-volume-3 = ▄ +ramp-volume-4 = ▅ +ramp-volume-5 = ▆ +ramp-volume-6 = ▇ +ramp-volume-7 = █ + +[module/temp] +type = internal/temperature +units = true +warn-temperature = 80 +format = <ramp> <label> +format-warn = <ramp> <label-warn> +label = %temperature-c:6% +label-warn = %temperature-c:6% +label-warn-foreground = ${res/colors.red} +ramp-foreground = ${res/colors.yellow} +ramp-0 = ▁ +ramp-1 = ▂ +ramp-2 = ▃ +ramp-3 = ▄ +ramp-4 = ▅ +ramp-5 = ▆ +ramp-6 = ▇ +ramp-7 = █ +ramp-7-foreground = ${res/colors.red} diff --git a/.config/polybar/launch.sh b/.config/polybar/launch.sh new file mode 100755 index 00000000..387322de --- /dev/null +++ b/.config/polybar/launch.sh @@ -0,0 +1,76 @@ +#! /bin/bash +# +# launch.sh +# A Polybar launch script with a heck of a lot of compat +# Copyright (C) 2019 Vintage Salt <rehashedsalt@cock.li> +# +# Distributed under terms of the MIT license. +# + +log() { + [ -z "$1" ] && return 1 + printf "$1\\n" +} + +# Trap our exit +die() { + kill $(jobs -p) +} +trap die EXIT + +# Steps +step_fallback() { + if ! command -v polybar > /dev/null 2>&1; then + if command -v tint2 > /dev/null 2>&1; then + log "Executing fallback" + exec tint2 + fi + log "No valid bars found" + exit 51 + fi +} +step_configure_restack() { + # Restack compatibility + if pgrep -U "$UID" bspwm > /dev/null 2>&1; then + export PB_WM_RESTACK="bspwm" + elif pgrep -U "$UID" i3 > /dev/null 2>&1; then + export PB_WM_RESTACK="i3" + fi +} +step_spawn_primary() { + # Spawn bars on the primary monitor + log "Spawning primary bars" + export PB_MONITOR=$(xrandr -q | awk '/primary/{print $1}') + polybar -r primary & + polybar -r primary-2 & +} +step_spawn_secondary() { + # Spawn more for each secondary + log "Spawning secondary bars" + export secondary_monitors=$(xrandr -q | grep ' connected' | grep -v 'primary' | awk '{print $1}') + if [ "$secondary_monitors" == "" ]; then + return 0 + fi + for monitor in $secondary_monitors; do + PB_MONITOR=$monitor + polybar -r secondary & + polybar -r secondary-2 & + done +} +step_wait() { + # And wait + log "Waiting" + wait +} + +# Main +main() { + step_fallback + step_configure_restack + step_spawn_primary + step_spawn_secondary + step_wait +} + +main "$@" + diff --git a/.local/share/konsole/Main.profile b/.local/share/konsole/Main.profile index 51985752..a0e8abde 100644 --- a/.local/share/konsole/Main.profile +++ b/.local/share/konsole/Main.profile @@ -1,5 +1,6 @@ [Appearance] ColorScheme=Nordic +Font=Inconsolata,11,-1,5,57,0,0,0,0,0,Medium [General] Name=Main diff --git a/.vim/bundle/vim-closetag b/.vim/bundle/vim-closetag index 9f130117..90cf416c 160000 --- a/.vim/bundle/vim-closetag +++ b/.vim/bundle/vim-closetag @@ -1 +1 @@ -Subproject commit 9f13011738e11d6f926a641d774635fa415f1b6e +Subproject commit 90cf416c03ed841ad7f3d44f4d6f3192f216176a diff --git a/.vim/bundle/vim-javascript b/.vim/bundle/vim-javascript index db595656..c3966153 160000 --- a/.vim/bundle/vim-javascript +++ b/.vim/bundle/vim-javascript @@ -1 +1 @@ -Subproject commit db595656304959dcc3805cf63ea9a430e3f01e8f +Subproject commit c3966153e81bc3766b1627e6ab0cd53333b61c1e