Port over more of my basic bitch gruvbox desktop
This commit is contained in:
parent
5ebcae085b
commit
d71e6c720b
115
desktop-gruvbox/.config/bspwm/bspwmrc
Executable file
115
desktop-gruvbox/.config/bspwm/bspwmrc
Executable file
@ -0,0 +1,115 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# bspwmrc
|
||||||
|
# bspwm configuration file
|
||||||
|
#
|
||||||
|
|
||||||
|
## Start a hotkey daemon
|
||||||
|
pgrep sxhkd -u "$UID" || sxhkd &
|
||||||
|
|
||||||
|
## Monitor allocation
|
||||||
|
# Honestly pretty complex
|
||||||
|
setmon() {
|
||||||
|
desktops_total=10
|
||||||
|
desktops_primary=8
|
||||||
|
desktops_secondary=$(( desktops_total - desktops_primary ))
|
||||||
|
|
||||||
|
monitor_primary="$(xrandr -q | awk '/primary/{print $1}')"
|
||||||
|
monitors_secondary=($(xrandr -q | grep ' connected' | grep -v 'primary' | awk '{print $1}'))
|
||||||
|
# Ensure we have enough for every monitor
|
||||||
|
if (( desktops_secondary < ${#monitors_secondary[@]} )); then
|
||||||
|
echo "Adding more desktops to match connected monitors"
|
||||||
|
desktops_secondary=${#monitors_secondary[@]}
|
||||||
|
desktops_total=$(( desktops_secondary + desktops_primary ))
|
||||||
|
fi
|
||||||
|
if (( ${#monitors_secondary[@]} == 0 )); then
|
||||||
|
echo "Only one monitor allocated"
|
||||||
|
layout=$(seq --separator=" " 1 $desktops_total)
|
||||||
|
echo "Setting layout $layout"
|
||||||
|
bspc monitor $monitor_primary -d $layout
|
||||||
|
else
|
||||||
|
echo "${#monitors_secondary[@]} monitors connected"
|
||||||
|
deskpermon=$(( desktops_secondary / ${#monitors_secondary[@]} ))
|
||||||
|
layout=$(seq --separator=" " 1 $desktops_primary)
|
||||||
|
echo "Setting primary layout $layout"
|
||||||
|
bspc monitor $monitor_primary -d $layout
|
||||||
|
|
||||||
|
for m in $(seq 0 $(( ${#monitors_secondary[@]} - 1 ))); do
|
||||||
|
layout=$(seq --separator=" " \
|
||||||
|
$(( 1 + m + desktops_primary )) \
|
||||||
|
${#monitors_secondary[@]} \
|
||||||
|
"$desktops_total" \
|
||||||
|
)
|
||||||
|
echo "Setting layout for ${monitors_secondary[$m]} to $layout"
|
||||||
|
bspc monitor ${monitors_secondary[$m]} -d $layout
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
setmon
|
||||||
|
|
||||||
|
## Behavior
|
||||||
|
# Tiling behavior
|
||||||
|
bspc config split_ratio 0.50
|
||||||
|
bspc config remove_disabled_monitors false
|
||||||
|
bspc config remove_unplugged_monitors true
|
||||||
|
|
||||||
|
# Pointer behavior
|
||||||
|
bspc config click_to_focus any
|
||||||
|
bspc config focus_follows_pointer true
|
||||||
|
bspc config pointer_follows_monitor true
|
||||||
|
bspc config pointer_modifier mod1
|
||||||
|
bspc config pointer_action1 move #LMB
|
||||||
|
bspc config pointer_action2 resize_corner #RMB
|
||||||
|
|
||||||
|
# ewmh behavior
|
||||||
|
bspc config ignore_ewmh_focus true # Fuck you, Discord
|
||||||
|
|
||||||
|
## Looks
|
||||||
|
# Padding
|
||||||
|
bspc config border_width 4
|
||||||
|
bspc config window_gap 6
|
||||||
|
bspc config single_monocle false
|
||||||
|
bspc config borderless_monocle false
|
||||||
|
bspc config gapless_monocle false
|
||||||
|
# Colors
|
||||||
|
case $THEME in
|
||||||
|
light)
|
||||||
|
bspc config normal_border_color "#f2e5bc" #Unfocused
|
||||||
|
bspc config active_border_color "#8ec07c" #Focused, but current monitor isn't
|
||||||
|
bspc config focused_border_color "#83a598" #Focused completely
|
||||||
|
bspc config presel_feedback_color "#ebdbb2" #???
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
bspc config normal_border_color "#32302f" #Unfocused
|
||||||
|
bspc config active_border_color "#8ec07c" #Focused, but current monitor isn't
|
||||||
|
bspc config focused_border_color "#83a598" #Focused completely
|
||||||
|
bspc config presel_feedback_color "#ebdbb2" #???
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
## Rules
|
||||||
|
bspc rule -r '*'
|
||||||
|
case $HOSTNAME in
|
||||||
|
dsk-cstm-0*)
|
||||||
|
# Big boy gets pseudotiled Firefox
|
||||||
|
bspc rule -a Firefox state=pseudo_tiled rectangle=1920x1080+0+0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
bspc rule -a Steam desktop=7
|
||||||
|
bspc rule -a KeePassXC desktop=8
|
||||||
|
bspc rule -a slack desktop=9
|
||||||
|
bspc rule -a Riot desktop=9
|
||||||
|
bspc rule -a Element desktop=9
|
||||||
|
bspc rule -a discord desktop=9
|
||||||
|
bspc rule -a spotify desktop=10
|
||||||
|
bspc rule -a cantata desktop=10
|
||||||
|
bspc rule -a 'Minecraft 1.7.10' state=fullscreen
|
||||||
|
bspc rule -a 'NieR:Automata' state=fullscreen
|
||||||
|
# Plasma rules
|
||||||
|
bspc rule -a plasmashell state=floating sticky=on border=off
|
||||||
|
bspc rule -a krunner state=floating layer=above sticky=on border=off
|
||||||
|
# Widgets
|
||||||
|
bspc rule -a Conky state=floating layer=below sticky=on
|
||||||
|
bspc rule -a pavucontrol-qt state=floating layer=above sticky=on
|
90
desktop-gruvbox/.config/compton.conf
Normal file
90
desktop-gruvbox/.config/compton.conf
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
## BACKEND
|
||||||
|
|
||||||
|
backend = "glx";
|
||||||
|
glx-no-stencil = true;
|
||||||
|
glx-copy-from-front = false;
|
||||||
|
|
||||||
|
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||||
|
# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe).
|
||||||
|
# Recommended if it works.
|
||||||
|
glx-no-rebind-pixmap = true;
|
||||||
|
|
||||||
|
## SHADOWS
|
||||||
|
|
||||||
|
shadow = true;
|
||||||
|
shadow-radius = 30;
|
||||||
|
shadow-offset-x = -25;
|
||||||
|
shadow-offset-y = -25;
|
||||||
|
shadow-opacity = 0.45;
|
||||||
|
# shadow-red = 0.0;
|
||||||
|
# shadow-green = 0.0;
|
||||||
|
# shadow-blue = 0.0;
|
||||||
|
shadow-ignore-shaped = false;
|
||||||
|
|
||||||
|
shadow-exclude = [
|
||||||
|
"name = 'oneko'",
|
||||||
|
"name = 'Notification'",
|
||||||
|
"name = 'xfce4-notifyd'",
|
||||||
|
"name *= 'VLC'",
|
||||||
|
"name *= 'compton'",
|
||||||
|
"name *= 'cpt_frame_window'",
|
||||||
|
"name *= 'Chromium'",
|
||||||
|
"name *= 'Chrome'",
|
||||||
|
"name *= 'Conky'",
|
||||||
|
"name *= 'Polybar tray window'",
|
||||||
|
"class_g = 'Conky'",
|
||||||
|
"class_g ?= 'Notify-osd'",
|
||||||
|
"class_g ?= 'Xfce4-notifyd'",
|
||||||
|
"class_g ?= 'Xfce4-power-manager'",
|
||||||
|
"class_g ?= 'Wine'",
|
||||||
|
"_GTK_FRAME_EXTENTS@:c"
|
||||||
|
];
|
||||||
|
|
||||||
|
## FADING
|
||||||
|
|
||||||
|
fading = true;
|
||||||
|
# The time between steps in a fade in milliseconds. (default 10).
|
||||||
|
fade-delta = 5;
|
||||||
|
# Opacity change between steps while fading in. (default 0.028).
|
||||||
|
fade-in-step = 0.08;
|
||||||
|
# Opacity change between steps while fading out. (default 0.03).
|
||||||
|
fade-out-step = 0.08;
|
||||||
|
# Fade windows in/out when opening/closing
|
||||||
|
# no-fading-openclose = true;
|
||||||
|
|
||||||
|
fade-exclude = [ ];
|
||||||
|
|
||||||
|
## OTHER
|
||||||
|
|
||||||
|
# Try to detect WM windows and mark them as active.
|
||||||
|
mark-wmwin-focused = true;
|
||||||
|
# Mark all non-WM but override-redirect windows active (e.g. menus).
|
||||||
|
mark-ovredir-focused = true;
|
||||||
|
use-ewmh-active-win = true;
|
||||||
|
detect-rounded-corners = true;
|
||||||
|
detect-client-opacity = true;
|
||||||
|
refresh-rate = 143.86;
|
||||||
|
vsync = true;
|
||||||
|
# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing.
|
||||||
|
# Reported to have no effect, though.
|
||||||
|
dbe = false;
|
||||||
|
# Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games.
|
||||||
|
# Known to cause flickering when redirecting/unredirecting windows.
|
||||||
|
# paint-on-overlay may make the flickering less obvious.
|
||||||
|
unredir-if-possible = false;
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should always be considered focused.
|
||||||
|
focus-exclude = [ ];
|
||||||
|
|
||||||
|
detect-transient = true;
|
||||||
|
detect-client-leader = true;
|
||||||
|
|
||||||
|
## WINDOW TYPE SETTINGS
|
||||||
|
|
||||||
|
wintypes:
|
||||||
|
{
|
||||||
|
tooltip =
|
||||||
|
{
|
||||||
|
focus = true;
|
||||||
|
};
|
||||||
|
};
|
49
desktop-gruvbox/.config/conky/conky-clock.conf
Normal file
49
desktop-gruvbox/.config/conky/conky-clock.conf
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
-- vim: ts=4 sw=4 noet ai cindent syntax=lua
|
||||||
|
conky.config = {
|
||||||
|
own_window = true,
|
||||||
|
own_window_title = 'Conky',
|
||||||
|
own_window_class = 'Conky',
|
||||||
|
own_window_type = 'desktop',
|
||||||
|
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
|
||||||
|
own_window_colour = '232629',
|
||||||
|
|
||||||
|
double_buffer = true,
|
||||||
|
cpu_avg_samples = 2,
|
||||||
|
net_avg_samples = 2,
|
||||||
|
no_buffers = true,
|
||||||
|
update_interval = 1,
|
||||||
|
|
||||||
|
use_xft = true,
|
||||||
|
font = 'IBM Plex Sans:style=Light:size=9',
|
||||||
|
default_color = '#fffcf6',
|
||||||
|
color1 = '232629', -- Background
|
||||||
|
color2 = 'fffcf6', -- Foreground
|
||||||
|
color3 = '4b5162', -- Background-alt
|
||||||
|
|
||||||
|
alignment = 'bottom_right',
|
||||||
|
xinerama_head = 0,
|
||||||
|
minimum_height = 0,
|
||||||
|
minimum_width = 304,
|
||||||
|
border_width = 0,
|
||||||
|
border_outer_margin = 0,
|
||||||
|
border_inner_margin = 16,
|
||||||
|
gap_x = 27,
|
||||||
|
gap_y = 72,
|
||||||
|
|
||||||
|
format_human_readable = true,
|
||||||
|
temperature_unit = "celsius",
|
||||||
|
if_up_strictness = "link",
|
||||||
|
|
||||||
|
default_bar_height = 11,
|
||||||
|
default_bar_width = 130,
|
||||||
|
default_graph_height = 36,
|
||||||
|
draw_borders = true,
|
||||||
|
draw_outline = false,
|
||||||
|
draw_graph_borders = true,
|
||||||
|
draw_shades = false
|
||||||
|
}
|
||||||
|
conky.text = [[
|
||||||
|
${font IBM Plex Sans:style=Light:size=96}$alignr${time %l:%M %p}$font
|
||||||
|
|
||||||
|
${font IBM Plex Sans:style=Light:size=32}$alignr${time %A, %B %d, %Y}$font
|
||||||
|
]]
|
334
desktop-gruvbox/.config/conky/gen.sh
Executable file
334
desktop-gruvbox/.config/conky/gen.sh
Executable file
@ -0,0 +1,334 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
# _
|
||||||
|
# ___ ___ _ __ | | ___ _ __ _ ___ _ __
|
||||||
|
# / __/ _ \| '_ \| |/ / | | |/ _` |/ _ \ '_ \
|
||||||
|
# | (_| (_) | | | | <| |_| | (_| | __/ | | |
|
||||||
|
# \___\___/|_| |_|_|\_\\__, |\__, |\___|_| |_|
|
||||||
|
# |___/ |___/
|
||||||
|
#
|
||||||
|
# conkygen.sh
|
||||||
|
# Create a Conky configuration file dynamically
|
||||||
|
#
|
||||||
|
# Copyright (c) 2020 Vintage Salt <rehashedsalt@cock.li>
|
||||||
|
# Distributed under the terms of the MIT License
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Read-only set-once variables
|
||||||
|
declare -r _name="$(basename -- "$0")"
|
||||||
|
# Options
|
||||||
|
declare _optout="${XDG_CONFIG_HOME:-$HOME/.config}/conky/conky.conf"
|
||||||
|
declare -i _optbar=1
|
||||||
|
declare -i _optgraph=1
|
||||||
|
declare -i _opthelp
|
||||||
|
declare -i _optverbose
|
||||||
|
declare -i _opttopitems=4
|
||||||
|
# Working variables
|
||||||
|
declare -a _args
|
||||||
|
declare _return
|
||||||
|
|
||||||
|
# Helper functions
|
||||||
|
log() {
|
||||||
|
# Print a line to the terminal if _optverbose is greater than $2
|
||||||
|
# $2 defaults to 0
|
||||||
|
# loglevel 0: Daily-use messages
|
||||||
|
# loglevel 1: Detailed but not quite debugging
|
||||||
|
# loglevel 2: Definitely debugging
|
||||||
|
[ -z "$1" ] && return 1
|
||||||
|
if (( _optverbose >= ${2:-0} )); then
|
||||||
|
printf "%s\\n" "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
warn() {
|
||||||
|
# Print a yellow line to the terminal, respecting _optverbose
|
||||||
|
[ -z "$1" ] && return 1
|
||||||
|
if (( _optverbose >= ${2:-0} )); then
|
||||||
|
if [ -t 1 ]; then
|
||||||
|
printf "\\e[33m%s\\e[0m\\n" "$1"
|
||||||
|
else
|
||||||
|
printf "WARN: %s\\n" "$1"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
error() {
|
||||||
|
# Print a red line to the terminal, exit if $2 is specified
|
||||||
|
[ -z "$1" ] && return 1
|
||||||
|
if [ -t 2 ]; then
|
||||||
|
printf "\\e[31m%s\\e[0m\\n" "$1" 1>&2
|
||||||
|
else
|
||||||
|
printf "ERROR: %s\\n" "$1" 1>&2
|
||||||
|
fi
|
||||||
|
[ -z "$2" ] && return
|
||||||
|
exit "${2:-1}"
|
||||||
|
}
|
||||||
|
has() {
|
||||||
|
# Parse out all arguments and try to find them in path
|
||||||
|
# If an argument cannot be found, set _return and fail
|
||||||
|
for prog in "$@"; do
|
||||||
|
if ! command -v "$prog" > /dev/null 2>&1; then
|
||||||
|
_return="$prog"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Core program functions
|
||||||
|
printhelp() {
|
||||||
|
cat << EOF
|
||||||
|
Usage: $_name [OPTION]...
|
||||||
|
Generate a conky.conf configuration file in the current directory
|
||||||
|
|
||||||
|
-o Specify output file. Defaults to
|
||||||
|
~/.config/conky/conky.conf
|
||||||
|
-b Hide bars
|
||||||
|
-g Hide graphs
|
||||||
|
-h Print this help text
|
||||||
|
-t Number of items to print in top lists. Defaults to 4
|
||||||
|
-v Print more status messages. Stacks
|
||||||
|
|
||||||
|
Copyright (c) 2020 rehashedsalt@cock.li
|
||||||
|
Licensed under the MIT license
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
step_header() {
|
||||||
|
# Clobber output file with header
|
||||||
|
cat << EOF > "$_optout"
|
||||||
|
-- vim: ts=4 sw=4 noet ai cindent syntax=lua
|
||||||
|
-- WARNING:
|
||||||
|
-- This file was generated with conkygen. See gen.sh if you need to edit this!
|
||||||
|
-- Any changes you make here can and probably will be clobbered!
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
step_config() {
|
||||||
|
# Append config to the output file
|
||||||
|
cat << EOF >> "$_optout"
|
||||||
|
conky.config = {
|
||||||
|
own_window = true,
|
||||||
|
own_window_title = 'Conky',
|
||||||
|
own_window_class = 'Conky',
|
||||||
|
own_window_type = 'desktop',
|
||||||
|
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
|
||||||
|
own_window_argb_visual = true,
|
||||||
|
own_window_transparent = true,
|
||||||
|
own_window_colour = '000000',
|
||||||
|
|
||||||
|
double_buffer = true,
|
||||||
|
cpu_avg_samples = 2,
|
||||||
|
net_avg_samples = 2,
|
||||||
|
no_buffers = true,
|
||||||
|
update_interval = 1,
|
||||||
|
|
||||||
|
use_xft = true,
|
||||||
|
font = 'IBM Plex Sans:style=Light:size=9',
|
||||||
|
default_color = '#ebdbb2',
|
||||||
|
color1 = '282828', -- Background
|
||||||
|
color2 = 'ebdbb2', -- Foreground
|
||||||
|
color3 = '32302f', -- Background-alt
|
||||||
|
color4 = 'b8bb26', -- Green (Battery)
|
||||||
|
color6 = '8ec07c', -- Cyan (Network)
|
||||||
|
color7 = 'fabd2f', -- Yellow (Disk)
|
||||||
|
color8 = '83a598', -- Blue (CPU)
|
||||||
|
color9 = 'de869b', -- Magenta (Memory)
|
||||||
|
|
||||||
|
alignment = 'top_left',
|
||||||
|
xinerama_head = 0,
|
||||||
|
minimum_height = 0,
|
||||||
|
minimum_width = 304,
|
||||||
|
border_width = 0,
|
||||||
|
border_outer_margin = 0,
|
||||||
|
border_inner_margin = 16,
|
||||||
|
gap_x = 22,
|
||||||
|
gap_y = 66,
|
||||||
|
|
||||||
|
format_human_readable = true,
|
||||||
|
temperature_unit = "celsius",
|
||||||
|
if_up_strictness = "link",
|
||||||
|
|
||||||
|
default_bar_height = 11,
|
||||||
|
default_bar_width = 130,
|
||||||
|
default_graph_height = 36,
|
||||||
|
draw_borders = true,
|
||||||
|
draw_outline = false,
|
||||||
|
draw_graph_borders = true,
|
||||||
|
draw_shades = false
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
step_text() {
|
||||||
|
local -r nproc="$(nproc)"
|
||||||
|
# Generate our actual functional Conky stuff
|
||||||
|
# Header
|
||||||
|
cat <<- 'EOF' >> "$_optout"
|
||||||
|
conky.text = [[
|
||||||
|
${font IBM Plex Sans:style=Light:size=64}$alignr${time %l:%M %p}$font
|
||||||
|
${font IBM Plex Sans:style=Light:size=18}$alignr${time %A, %B %d, %Y}$font
|
||||||
|
${font IBM Plex Sans:style=Light:size=12}${acpitemp}°C$alignr${no_update $nodename_short}$font
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# CPU info
|
||||||
|
cat <<- 'EOF' >> "$_optout"
|
||||||
|
${color3}$hr$color
|
||||||
|
${font IBM Plex Sans:style=Medium:size=9}CPU$font: $freq_g GHz$alignr$cpu%
|
||||||
|
EOF
|
||||||
|
if (( _optgraph > 0 )); then
|
||||||
|
local gpl=1
|
||||||
|
if (( nproc <= 2 )); then
|
||||||
|
gpl=1
|
||||||
|
elif (( nproc <= 4 )); then
|
||||||
|
gpl=2
|
||||||
|
elif (( nproc <= 8 )); then
|
||||||
|
gpl=4
|
||||||
|
else
|
||||||
|
gpl=8
|
||||||
|
fi
|
||||||
|
local width=$(( ( 400 - ( gpl - 1 ) * 3 ) / gpl ))
|
||||||
|
log "Generating $gpl graphs per row of CPU core stats" 1
|
||||||
|
log "Graphs will be $width wide" 2
|
||||||
|
local cpuinfo
|
||||||
|
for i in $(seq 1 "$gpl" "$nproc"); do
|
||||||
|
# Generate lines
|
||||||
|
local line
|
||||||
|
for j in $(seq 0 $(( gpl - 1 ))); do
|
||||||
|
# Generate graphs
|
||||||
|
local cpu=$(( i + j ))
|
||||||
|
log "Generating graph for CPU $cpu" 2
|
||||||
|
if [ -z "$line" ]; then
|
||||||
|
line="\${cpugraph cpu$cpu 36,$width}"
|
||||||
|
else
|
||||||
|
line="$line \${cpugraph cpu$cpu 36,$width}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# Trim whitespace
|
||||||
|
line="\${color8}${line%" "}\$color"
|
||||||
|
log "Appending line: $line" 2
|
||||||
|
cpuinfo="$cpuinfo$line\n"
|
||||||
|
unset line
|
||||||
|
done
|
||||||
|
while [ "$cpuinfo" != "${cpuinfo%\\n}" ]; do
|
||||||
|
cpuinfo="${cpuinfo%\\n}"
|
||||||
|
done
|
||||||
|
echo -e "$cpuinfo" >> "$_optout"
|
||||||
|
fi
|
||||||
|
for i in $(seq $_opttopitems); do
|
||||||
|
echo "\${color8}\${top name $i}\$color\$alignr\${top cpu $i}%" >> "$_optout"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Memory info
|
||||||
|
cat <<- 'EOF' >> "$_optout"
|
||||||
|
${color3}$hr$color
|
||||||
|
${font IBM Plex Sans:style=Medium:size=9}Memory$font: $mem / $memmax used$alignr$memperc%
|
||||||
|
EOF
|
||||||
|
if (( _optgraph > 0 )); then
|
||||||
|
echo -e '${color9}${memgraph}$color' >> "$_optout"
|
||||||
|
fi
|
||||||
|
if (( _optbar > 0 )); then
|
||||||
|
echo -e 'Memory$alignr$memeasyfree ${color9}${membar}$color' >> "$_optout"
|
||||||
|
if [ -n "$(swapon)" ]; then
|
||||||
|
echo "Swap\$alignr\$swapfree \${color9}\${swapbar}\$color" >> "$_optout"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
for i in $(seq $_opttopitems); do
|
||||||
|
echo "\${color9}\${top_mem name $i}\$color\$alignr\${top_mem mem $i}%" >> "$_optout"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Disk info
|
||||||
|
cat <<- 'EOF' >> "$_optout"
|
||||||
|
${color3}$hr$color
|
||||||
|
${font IBM Plex Sans:style=Medium:size=9}Disk$font (R/W):$alignr${diskio /dev/sda}
|
||||||
|
EOF
|
||||||
|
if (( _optgraph > 0 )); then
|
||||||
|
echo '${color7}${diskiograph_read /dev/sda 36,200} ${diskiograph_write /dev/sda 36,200}$color' >> "$_optout"
|
||||||
|
fi
|
||||||
|
# Mountpoint detection
|
||||||
|
if (( _optbar > 0 )); then
|
||||||
|
for mountpoint in / /home /var /usr /opt /boot /boot/efi; do
|
||||||
|
if mountpoint $mountpoint > /dev/null 2>&1; then
|
||||||
|
echo "$mountpoint\$alignr\${fs_free $mountpoint} \${color7}\${fs_bar $mountpoint}\$color" >> "$_optout"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
for i in $(seq $_opttopitems); do
|
||||||
|
echo "\${color7}\${top_io name $i}\$color\$alignr\${top_io io_perc $i}%" >> "$_optout"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Networking
|
||||||
|
cat <<-'EOF' >>"$_optout"
|
||||||
|
${color3}$hr$color
|
||||||
|
${font IBM Plex Sans:style=Medium:size=9}Network$font:${alignr}Default $gw_iface${if_up wlp1s0}
|
||||||
|
EOF
|
||||||
|
for interface in $(iw dev | awk '$1=="Interface"{print $2}'); do
|
||||||
|
echo "$interface (U/D): \$alignr\${addr $interface} / \${wireless_essid $interface}" >> "$_optout"
|
||||||
|
if (( _optgraph > 0 )); then
|
||||||
|
echo "\${color6}\${upspeedgraph $interface 36,200} \${downspeedgraph $interface 36,200}\$color" >> "$_optout"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "]]" >> "$_optout"
|
||||||
|
}
|
||||||
|
genconfig() {
|
||||||
|
log "Generating config: $_optout"
|
||||||
|
step_header
|
||||||
|
step_config
|
||||||
|
step_text
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main
|
||||||
|
main() {
|
||||||
|
# Parse out arguments
|
||||||
|
while [ -n "$1" ]; do
|
||||||
|
# Parse out flags
|
||||||
|
while getopts ":bgho:t:v" opt; do
|
||||||
|
case $opt in
|
||||||
|
b)
|
||||||
|
_optbar=0
|
||||||
|
;;
|
||||||
|
g)
|
||||||
|
_optgraph=0
|
||||||
|
;;
|
||||||
|
o)
|
||||||
|
_optout="$OPTARG"
|
||||||
|
;;
|
||||||
|
h)
|
||||||
|
_opthelp=1
|
||||||
|
;;
|
||||||
|
t)
|
||||||
|
_opttopitems="$OPTARG"
|
||||||
|
;;
|
||||||
|
v)
|
||||||
|
_optverbose+=1
|
||||||
|
;;
|
||||||
|
:)
|
||||||
|
error "Option requires argument: -$OPTARG" 2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
error "Invalid option: -$OPTARG" 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
# Store arguments
|
||||||
|
shift $((OPTIND - 1))
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
_args+=("$1")
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
unset OPTIND
|
||||||
|
done
|
||||||
|
# Early hook for help
|
||||||
|
[ -n "$_opthelp" ] && printhelp && exit 0
|
||||||
|
# Validate critical options
|
||||||
|
if ! (( _opttopitems >= 0 )); then
|
||||||
|
error "Option -t requires non-negative integer as argument" 2
|
||||||
|
fi
|
||||||
|
# Validate core program dependencies
|
||||||
|
log "Validating dependencies" 2
|
||||||
|
if ! has awk basename iw seq; then
|
||||||
|
error "Failed to find program: $_return" 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Do the do
|
||||||
|
genconfig
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
|
|
321
desktop-gruvbox/.config/dunst/dunstrc
Normal file
321
desktop-gruvbox/.config/dunst/dunstrc
Normal file
@ -0,0 +1,321 @@
|
|||||||
|
[global]
|
||||||
|
### Display ###
|
||||||
|
|
||||||
|
# Which monitor should the notifications be displayed on.
|
||||||
|
monitor = 0
|
||||||
|
|
||||||
|
# Display notification on focused monitor. Possible modes are:
|
||||||
|
# mouse: follow mouse pointer
|
||||||
|
# keyboard: follow window with keyboard focus
|
||||||
|
# none: don't follow anything
|
||||||
|
#
|
||||||
|
# "keyboard" needs a window manager that exports the
|
||||||
|
# _NET_ACTIVE_WINDOW property.
|
||||||
|
# This should be the case for almost all modern window managers.
|
||||||
|
#
|
||||||
|
# If this option is set to mouse or keyboard, the monitor option
|
||||||
|
# will be ignored.
|
||||||
|
follow = mouse
|
||||||
|
|
||||||
|
# The geometry of the window:
|
||||||
|
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||||
|
# The geometry of the message window.
|
||||||
|
# The height is measured in number of notifications everything else
|
||||||
|
# in pixels. If the width is omitted but the height is given
|
||||||
|
# ("-geometry x2"), the message window expands over the whole screen
|
||||||
|
# (dmenu-like). If width is 0, the window expands to the longest
|
||||||
|
# message displayed. A positive x is measured from the left, a
|
||||||
|
# negative from the right side of the screen. Y is measured from
|
||||||
|
# the top and down respectively.
|
||||||
|
# The width can be negative. In this case the actual width is the
|
||||||
|
# screen width minus the width defined in within the geometry option.
|
||||||
|
geometry = "500x8-6+50"
|
||||||
|
corner_radius = 0
|
||||||
|
|
||||||
|
# Show how many messages are currently hidden (because of geometry).
|
||||||
|
indicate_hidden = yes
|
||||||
|
|
||||||
|
# Shrink window if it's smaller than the width. Will be ignored if
|
||||||
|
# width is 0.
|
||||||
|
shrink = no
|
||||||
|
|
||||||
|
# The transparency of the window. Range: [0; 100].
|
||||||
|
# This option will only work if a compositing window manager is
|
||||||
|
# present (e.g. xcompmgr, compiz, etc.).
|
||||||
|
transparency = 0
|
||||||
|
|
||||||
|
# The height of the entire notification. If the height is smaller
|
||||||
|
# than the font height and padding combined, it will be raised
|
||||||
|
# to the font height and padding.
|
||||||
|
notification_height = 0
|
||||||
|
|
||||||
|
# Draw a line of "separator_height" pixel height between two
|
||||||
|
# notifications.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
separator_height = 4
|
||||||
|
|
||||||
|
# Padding between text and separator.
|
||||||
|
padding = 12
|
||||||
|
|
||||||
|
# Horizontal padding.
|
||||||
|
horizontal_padding = 12
|
||||||
|
|
||||||
|
# Defines width in pixels of frame around the notification window.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
frame_width = 4
|
||||||
|
|
||||||
|
# Defines color of the frame around the notification window.
|
||||||
|
frame_color = "#f2e5bc"
|
||||||
|
|
||||||
|
# Define a color for the separator.
|
||||||
|
# possible values are:
|
||||||
|
# * auto: dunst tries to find a color fitting to the background;
|
||||||
|
# * foreground: use the same color as the foreground;
|
||||||
|
# * frame: use the same color as the frame;
|
||||||
|
# * anything else will be interpreted as a X color.
|
||||||
|
separator_color = frame
|
||||||
|
|
||||||
|
# Sort messages by urgency.
|
||||||
|
sort = yes
|
||||||
|
|
||||||
|
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||||
|
# for longer than idle_threshold seconds.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
idle_threshold = 120
|
||||||
|
|
||||||
|
### Text ###
|
||||||
|
|
||||||
|
#font = Monospace 8
|
||||||
|
font = Roboto 10
|
||||||
|
|
||||||
|
# The spacing between lines. If the height is smaller than the
|
||||||
|
# font height, it will get raised to the font height.
|
||||||
|
line_height = 0
|
||||||
|
|
||||||
|
# Possible values are:
|
||||||
|
# full: Allow a small subset of html markup in notifications:
|
||||||
|
# <b>bold</b>
|
||||||
|
# <i>italic</i>
|
||||||
|
# <s>strikethrough</s>
|
||||||
|
# <u>underline</u>
|
||||||
|
#
|
||||||
|
# For a complete reference see
|
||||||
|
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
|
||||||
|
#
|
||||||
|
# strip: This setting is provided for compatibility with some broken
|
||||||
|
# clients that send markup even though it's not enabled on the
|
||||||
|
# server. Dunst will try to strip the markup but the parsing is
|
||||||
|
# simplistic so using this option outside of matching rules for
|
||||||
|
# specific applications *IS GREATLY DISCOURAGED*.
|
||||||
|
#
|
||||||
|
# no: Disable markup parsing, incoming notifications will be treated as
|
||||||
|
# plain text. Dunst will not advertise that it has the body-markup
|
||||||
|
# capability if this is set as a global setting.
|
||||||
|
#
|
||||||
|
# It's important to note that markup inside the format option will be parsed
|
||||||
|
# regardless of what this is set to.
|
||||||
|
markup = full
|
||||||
|
|
||||||
|
# The format of the message. Possible variables are:
|
||||||
|
# %a appname
|
||||||
|
# %s summary
|
||||||
|
# %b body
|
||||||
|
# %i iconname (including its path)
|
||||||
|
# %I iconname (without its path)
|
||||||
|
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||||
|
# %n progress value if set without any extra characters
|
||||||
|
# Markup is allowed
|
||||||
|
format = "<span font='Bold'>%s</span> <span font='Light'>(%a)</span>\n%b"
|
||||||
|
|
||||||
|
# Alignment of message text.
|
||||||
|
# Possible values are "left", "center" and "right".
|
||||||
|
alignment = left
|
||||||
|
|
||||||
|
# Show age of message if message is older than show_age_threshold
|
||||||
|
# seconds.
|
||||||
|
# Set to -1 to disable.
|
||||||
|
show_age_threshold = 60
|
||||||
|
|
||||||
|
# Split notifications into multiple lines if they don't fit into
|
||||||
|
# geometry.
|
||||||
|
word_wrap = yes
|
||||||
|
|
||||||
|
# Ignore newlines '\n' in notifications.
|
||||||
|
ignore_newline = no
|
||||||
|
|
||||||
|
# Merge multiple notifications with the same content
|
||||||
|
stack_duplicates = true
|
||||||
|
|
||||||
|
# Hide the count of merged notifications with the same content
|
||||||
|
hide_duplicate_count = false
|
||||||
|
|
||||||
|
# Display indicators for URLs (U) and actions (A).
|
||||||
|
show_indicators = yes
|
||||||
|
|
||||||
|
### Icons ###
|
||||||
|
|
||||||
|
# Align icons left/right/off
|
||||||
|
icon_position = right
|
||||||
|
|
||||||
|
# Scale larger icons down to this size, set to 0 to disable
|
||||||
|
max_icon_size = 48
|
||||||
|
|
||||||
|
# Paths to default icons.
|
||||||
|
icon_path = /usr/share/icons/Papirus-Light/48x48/status/:/usr/share/icons/Papirus-Light/48x48/devices/:/usr/share/icons/Papirus-Light/48x48/apps
|
||||||
|
|
||||||
|
### History ###
|
||||||
|
|
||||||
|
# Should a notification popped up from history be sticky or timeout
|
||||||
|
# as if it would normally do.
|
||||||
|
sticky_history = yes
|
||||||
|
|
||||||
|
# Maximum amount of notifications kept in history
|
||||||
|
history_length = 20
|
||||||
|
|
||||||
|
### Misc/Advanced ###
|
||||||
|
|
||||||
|
# dmenu path.
|
||||||
|
dmenu = /usr/bin/rofi -dmenu -p dunst:
|
||||||
|
|
||||||
|
# Browser for opening urls in context menu.
|
||||||
|
browser = xdg-open
|
||||||
|
|
||||||
|
# Always run rule-defined scripts, even if the notification is suppressed
|
||||||
|
always_run_script = true
|
||||||
|
|
||||||
|
# Define the title of the windows spawned by dunst
|
||||||
|
title = Dunst
|
||||||
|
|
||||||
|
# Define the class of the windows spawned by dunst
|
||||||
|
class = Dunst
|
||||||
|
|
||||||
|
# Print a notification on startup.
|
||||||
|
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||||
|
# automatically after a crash.
|
||||||
|
startup_notification = false
|
||||||
|
|
||||||
|
### Legacy
|
||||||
|
|
||||||
|
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||||
|
# This setting is provided for compatibility with older nVidia drivers that
|
||||||
|
# do not support RandR and using it on systems that support RandR is highly
|
||||||
|
# discouraged.
|
||||||
|
#
|
||||||
|
# By enabling this setting dunst will not be able to detect when a monitor
|
||||||
|
# is connected or disconnected which might break follow mode if the screen
|
||||||
|
# layout changes.
|
||||||
|
force_xinerama = false
|
||||||
|
|
||||||
|
# Experimental features that may or may not work correctly. Do not expect them
|
||||||
|
# to have a consistent behaviour across releases.
|
||||||
|
[experimental]
|
||||||
|
# Calculate the dpi to use on a per-monitor basis.
|
||||||
|
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||||
|
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||||
|
# using the resolution and physical size. This might be useful in setups
|
||||||
|
# where there are multiple screens with very different dpi values.
|
||||||
|
per_monitor_dpi = false
|
||||||
|
|
||||||
|
[shortcuts]
|
||||||
|
|
||||||
|
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||||
|
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||||
|
# "mod3" and "mod4" (windows-key).
|
||||||
|
# Xev might be helpful to find names for keys.
|
||||||
|
|
||||||
|
# Close notification.
|
||||||
|
close = mod1+shift+space
|
||||||
|
|
||||||
|
# Close all notifications.
|
||||||
|
close_all = mod1+shift+enter
|
||||||
|
|
||||||
|
# Redisplay last message(s).
|
||||||
|
# On the US keyboard layout "grave" is normally above TAB and left
|
||||||
|
# of "1". Make sure this key actually exists on your keyboard layout,
|
||||||
|
# e.g. check output of 'xmodmap -pke'
|
||||||
|
history = mod1+shift+d
|
||||||
|
|
||||||
|
# Context menu.
|
||||||
|
context = mod1+shift+o
|
||||||
|
|
||||||
|
[urgency_low]
|
||||||
|
# IMPORTANT: colors have to be defined in quotation marks.
|
||||||
|
# Otherwise the "#" and following would be interpreted as a comment.
|
||||||
|
background = "#fbf1c7"
|
||||||
|
foreground = "#3c3836"
|
||||||
|
timeout = 10
|
||||||
|
# Icon for notifications with low urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_normal]
|
||||||
|
background = "#fbf1c7"
|
||||||
|
foreground = "#3c3836"
|
||||||
|
timeout = 10
|
||||||
|
# Icon for notifications with normal urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_critical]
|
||||||
|
background = "#fbf1c7"
|
||||||
|
foreground = "#fb4934"
|
||||||
|
timeout = 0
|
||||||
|
# Icon for notifications with critical urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
||||||
|
# Every section that isn't one of the above is interpreted as a rules to
|
||||||
|
# override settings for certain messages.
|
||||||
|
# Messages can be matched by "appname", "summary", "body", "icon", "category",
|
||||||
|
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
|
||||||
|
# "background", "new_icon" and "format".
|
||||||
|
# Shell-like globbing will get expanded.
|
||||||
|
#
|
||||||
|
# SCRIPTING
|
||||||
|
# You can specify a script that gets run when the rule matches by
|
||||||
|
# setting the "script" option.
|
||||||
|
# The script will be called as follows:
|
||||||
|
# script appname summary body icon urgency
|
||||||
|
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||||
|
#
|
||||||
|
# NOTE: if you don't want a notification to be displayed, set the format
|
||||||
|
# to "".
|
||||||
|
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||||
|
# to find fitting options for rules.
|
||||||
|
|
||||||
|
#[espeak]
|
||||||
|
# summary = "*"
|
||||||
|
# script = dunst_espeak.sh
|
||||||
|
|
||||||
|
#[script-test]
|
||||||
|
# summary = "*script*"
|
||||||
|
# script = dunst_test.sh
|
||||||
|
|
||||||
|
#[ignore]
|
||||||
|
# # This notification will not be displayed
|
||||||
|
# summary = "foobar"
|
||||||
|
# format = ""
|
||||||
|
|
||||||
|
#[history-ignore]
|
||||||
|
# # This notification will not be saved in history
|
||||||
|
# summary = "foobar"
|
||||||
|
# history_ignore = yes
|
||||||
|
|
||||||
|
#[signed_on]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = "*signed on*"
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[signed_off]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *signed off*
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[says]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *says*
|
||||||
|
# urgency = critical
|
||||||
|
#
|
||||||
|
#[twitter]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *twitter.com*
|
||||||
|
# urgency = normal
|
||||||
|
#
|
||||||
|
# vim: ft=cfg
|
321
desktop-gruvbox/.config/dunst/dunstrc-light
Normal file
321
desktop-gruvbox/.config/dunst/dunstrc-light
Normal file
@ -0,0 +1,321 @@
|
|||||||
|
[global]
|
||||||
|
### Display ###
|
||||||
|
|
||||||
|
# Which monitor should the notifications be displayed on.
|
||||||
|
monitor = 0
|
||||||
|
|
||||||
|
# Display notification on focused monitor. Possible modes are:
|
||||||
|
# mouse: follow mouse pointer
|
||||||
|
# keyboard: follow window with keyboard focus
|
||||||
|
# none: don't follow anything
|
||||||
|
#
|
||||||
|
# "keyboard" needs a window manager that exports the
|
||||||
|
# _NET_ACTIVE_WINDOW property.
|
||||||
|
# This should be the case for almost all modern window managers.
|
||||||
|
#
|
||||||
|
# If this option is set to mouse or keyboard, the monitor option
|
||||||
|
# will be ignored.
|
||||||
|
follow = mouse
|
||||||
|
|
||||||
|
# The geometry of the window:
|
||||||
|
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||||
|
# The geometry of the message window.
|
||||||
|
# The height is measured in number of notifications everything else
|
||||||
|
# in pixels. If the width is omitted but the height is given
|
||||||
|
# ("-geometry x2"), the message window expands over the whole screen
|
||||||
|
# (dmenu-like). If width is 0, the window expands to the longest
|
||||||
|
# message displayed. A positive x is measured from the left, a
|
||||||
|
# negative from the right side of the screen. Y is measured from
|
||||||
|
# the top and down respectively.
|
||||||
|
# The width can be negative. In this case the actual width is the
|
||||||
|
# screen width minus the width defined in within the geometry option.
|
||||||
|
geometry = "500x8-6+50"
|
||||||
|
corner_radius = 0
|
||||||
|
|
||||||
|
# Show how many messages are currently hidden (because of geometry).
|
||||||
|
indicate_hidden = yes
|
||||||
|
|
||||||
|
# Shrink window if it's smaller than the width. Will be ignored if
|
||||||
|
# width is 0.
|
||||||
|
shrink = no
|
||||||
|
|
||||||
|
# The transparency of the window. Range: [0; 100].
|
||||||
|
# This option will only work if a compositing window manager is
|
||||||
|
# present (e.g. xcompmgr, compiz, etc.).
|
||||||
|
transparency = 0
|
||||||
|
|
||||||
|
# The height of the entire notification. If the height is smaller
|
||||||
|
# than the font height and padding combined, it will be raised
|
||||||
|
# to the font height and padding.
|
||||||
|
notification_height = 0
|
||||||
|
|
||||||
|
# Draw a line of "separator_height" pixel height between two
|
||||||
|
# notifications.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
separator_height = 4
|
||||||
|
|
||||||
|
# Padding between text and separator.
|
||||||
|
padding = 12
|
||||||
|
|
||||||
|
# Horizontal padding.
|
||||||
|
horizontal_padding = 12
|
||||||
|
|
||||||
|
# Defines width in pixels of frame around the notification window.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
frame_width = 4
|
||||||
|
|
||||||
|
# Defines color of the frame around the notification window.
|
||||||
|
frame_color = "#32302f"
|
||||||
|
|
||||||
|
# Define a color for the separator.
|
||||||
|
# possible values are:
|
||||||
|
# * auto: dunst tries to find a color fitting to the background;
|
||||||
|
# * foreground: use the same color as the foreground;
|
||||||
|
# * frame: use the same color as the frame;
|
||||||
|
# * anything else will be interpreted as a X color.
|
||||||
|
separator_color = frame
|
||||||
|
|
||||||
|
# Sort messages by urgency.
|
||||||
|
sort = yes
|
||||||
|
|
||||||
|
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||||
|
# for longer than idle_threshold seconds.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
idle_threshold = 120
|
||||||
|
|
||||||
|
### Text ###
|
||||||
|
|
||||||
|
#font = Monospace 8
|
||||||
|
font = Roboto 10
|
||||||
|
|
||||||
|
# The spacing between lines. If the height is smaller than the
|
||||||
|
# font height, it will get raised to the font height.
|
||||||
|
line_height = 0
|
||||||
|
|
||||||
|
# Possible values are:
|
||||||
|
# full: Allow a small subset of html markup in notifications:
|
||||||
|
# <b>bold</b>
|
||||||
|
# <i>italic</i>
|
||||||
|
# <s>strikethrough</s>
|
||||||
|
# <u>underline</u>
|
||||||
|
#
|
||||||
|
# For a complete reference see
|
||||||
|
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
|
||||||
|
#
|
||||||
|
# strip: This setting is provided for compatibility with some broken
|
||||||
|
# clients that send markup even though it's not enabled on the
|
||||||
|
# server. Dunst will try to strip the markup but the parsing is
|
||||||
|
# simplistic so using this option outside of matching rules for
|
||||||
|
# specific applications *IS GREATLY DISCOURAGED*.
|
||||||
|
#
|
||||||
|
# no: Disable markup parsing, incoming notifications will be treated as
|
||||||
|
# plain text. Dunst will not advertise that it has the body-markup
|
||||||
|
# capability if this is set as a global setting.
|
||||||
|
#
|
||||||
|
# It's important to note that markup inside the format option will be parsed
|
||||||
|
# regardless of what this is set to.
|
||||||
|
markup = full
|
||||||
|
|
||||||
|
# The format of the message. Possible variables are:
|
||||||
|
# %a appname
|
||||||
|
# %s summary
|
||||||
|
# %b body
|
||||||
|
# %i iconname (including its path)
|
||||||
|
# %I iconname (without its path)
|
||||||
|
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||||
|
# %n progress value if set without any extra characters
|
||||||
|
# Markup is allowed
|
||||||
|
format = "<span font='Bold'>%s</span> <span font='Light'>(%a)</span>\n%b"
|
||||||
|
|
||||||
|
# Alignment of message text.
|
||||||
|
# Possible values are "left", "center" and "right".
|
||||||
|
alignment = left
|
||||||
|
|
||||||
|
# Show age of message if message is older than show_age_threshold
|
||||||
|
# seconds.
|
||||||
|
# Set to -1 to disable.
|
||||||
|
show_age_threshold = 60
|
||||||
|
|
||||||
|
# Split notifications into multiple lines if they don't fit into
|
||||||
|
# geometry.
|
||||||
|
word_wrap = yes
|
||||||
|
|
||||||
|
# Ignore newlines '\n' in notifications.
|
||||||
|
ignore_newline = no
|
||||||
|
|
||||||
|
# Merge multiple notifications with the same content
|
||||||
|
stack_duplicates = true
|
||||||
|
|
||||||
|
# Hide the count of merged notifications with the same content
|
||||||
|
hide_duplicate_count = false
|
||||||
|
|
||||||
|
# Display indicators for URLs (U) and actions (A).
|
||||||
|
show_indicators = yes
|
||||||
|
|
||||||
|
### Icons ###
|
||||||
|
|
||||||
|
# Align icons left/right/off
|
||||||
|
icon_position = right
|
||||||
|
|
||||||
|
# Scale larger icons down to this size, set to 0 to disable
|
||||||
|
max_icon_size = 48
|
||||||
|
|
||||||
|
# Paths to default icons.
|
||||||
|
icon_path = /usr/share/icons/Papirus-Dark/48x48/status/:/usr/share/icons/Papirus-Dark/48x48/devices/:/usr/share/icons/Papirus-Dark/48x48/apps
|
||||||
|
|
||||||
|
### History ###
|
||||||
|
|
||||||
|
# Should a notification popped up from history be sticky or timeout
|
||||||
|
# as if it would normally do.
|
||||||
|
sticky_history = yes
|
||||||
|
|
||||||
|
# Maximum amount of notifications kept in history
|
||||||
|
history_length = 20
|
||||||
|
|
||||||
|
### Misc/Advanced ###
|
||||||
|
|
||||||
|
# dmenu path.
|
||||||
|
dmenu = /usr/bin/rofi -dmenu -p dunst:
|
||||||
|
|
||||||
|
# Browser for opening urls in context menu.
|
||||||
|
browser = xdg-open
|
||||||
|
|
||||||
|
# Always run rule-defined scripts, even if the notification is suppressed
|
||||||
|
always_run_script = true
|
||||||
|
|
||||||
|
# Define the title of the windows spawned by dunst
|
||||||
|
title = Dunst
|
||||||
|
|
||||||
|
# Define the class of the windows spawned by dunst
|
||||||
|
class = Dunst
|
||||||
|
|
||||||
|
# Print a notification on startup.
|
||||||
|
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||||
|
# automatically after a crash.
|
||||||
|
startup_notification = false
|
||||||
|
|
||||||
|
### Legacy
|
||||||
|
|
||||||
|
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||||
|
# This setting is provided for compatibility with older nVidia drivers that
|
||||||
|
# do not support RandR and using it on systems that support RandR is highly
|
||||||
|
# discouraged.
|
||||||
|
#
|
||||||
|
# By enabling this setting dunst will not be able to detect when a monitor
|
||||||
|
# is connected or disconnected which might break follow mode if the screen
|
||||||
|
# layout changes.
|
||||||
|
force_xinerama = false
|
||||||
|
|
||||||
|
# Experimental features that may or may not work correctly. Do not expect them
|
||||||
|
# to have a consistent behaviour across releases.
|
||||||
|
[experimental]
|
||||||
|
# Calculate the dpi to use on a per-monitor basis.
|
||||||
|
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||||
|
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||||
|
# using the resolution and physical size. This might be useful in setups
|
||||||
|
# where there are multiple screens with very different dpi values.
|
||||||
|
per_monitor_dpi = false
|
||||||
|
|
||||||
|
[shortcuts]
|
||||||
|
|
||||||
|
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||||
|
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||||
|
# "mod3" and "mod4" (windows-key).
|
||||||
|
# Xev might be helpful to find names for keys.
|
||||||
|
|
||||||
|
# Close notification.
|
||||||
|
close = mod1+shift+space
|
||||||
|
|
||||||
|
# Close all notifications.
|
||||||
|
close_all = mod1+shift+enter
|
||||||
|
|
||||||
|
# Redisplay last message(s).
|
||||||
|
# On the US keyboard layout "grave" is normally above TAB and left
|
||||||
|
# of "1". Make sure this key actually exists on your keyboard layout,
|
||||||
|
# e.g. check output of 'xmodmap -pke'
|
||||||
|
history = mod1+shift+d
|
||||||
|
|
||||||
|
# Context menu.
|
||||||
|
context = mod1+shift+o
|
||||||
|
|
||||||
|
[urgency_low]
|
||||||
|
# IMPORTANT: colors have to be defined in quotation marks.
|
||||||
|
# Otherwise the "#" and following would be interpreted as a comment.
|
||||||
|
background = "#282828"
|
||||||
|
foreground = "#ebdbb2"
|
||||||
|
timeout = 10
|
||||||
|
# Icon for notifications with low urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_normal]
|
||||||
|
background = "#282828"
|
||||||
|
foreground = "#ebdbb2"
|
||||||
|
timeout = 10
|
||||||
|
# Icon for notifications with normal urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_critical]
|
||||||
|
background = "#282828"
|
||||||
|
foreground = "#fabd2f"
|
||||||
|
timeout = 0
|
||||||
|
# Icon for notifications with critical urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
||||||
|
# Every section that isn't one of the above is interpreted as a rules to
|
||||||
|
# override settings for certain messages.
|
||||||
|
# Messages can be matched by "appname", "summary", "body", "icon", "category",
|
||||||
|
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
|
||||||
|
# "background", "new_icon" and "format".
|
||||||
|
# Shell-like globbing will get expanded.
|
||||||
|
#
|
||||||
|
# SCRIPTING
|
||||||
|
# You can specify a script that gets run when the rule matches by
|
||||||
|
# setting the "script" option.
|
||||||
|
# The script will be called as follows:
|
||||||
|
# script appname summary body icon urgency
|
||||||
|
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||||
|
#
|
||||||
|
# NOTE: if you don't want a notification to be displayed, set the format
|
||||||
|
# to "".
|
||||||
|
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||||
|
# to find fitting options for rules.
|
||||||
|
|
||||||
|
#[espeak]
|
||||||
|
# summary = "*"
|
||||||
|
# script = dunst_espeak.sh
|
||||||
|
|
||||||
|
#[script-test]
|
||||||
|
# summary = "*script*"
|
||||||
|
# script = dunst_test.sh
|
||||||
|
|
||||||
|
#[ignore]
|
||||||
|
# # This notification will not be displayed
|
||||||
|
# summary = "foobar"
|
||||||
|
# format = ""
|
||||||
|
|
||||||
|
#[history-ignore]
|
||||||
|
# # This notification will not be saved in history
|
||||||
|
# summary = "foobar"
|
||||||
|
# history_ignore = yes
|
||||||
|
|
||||||
|
#[signed_on]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = "*signed on*"
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[signed_off]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *signed off*
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[says]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *says*
|
||||||
|
# urgency = critical
|
||||||
|
#
|
||||||
|
#[twitter]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *twitter.com*
|
||||||
|
# urgency = normal
|
||||||
|
#
|
||||||
|
# vim: ft=cfg
|
16
desktop-gruvbox/.config/gtk-3.0/settings.ini
Normal file
16
desktop-gruvbox/.config/gtk-3.0/settings.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
[Settings]
|
||||||
|
gtk-theme-name=Materia-Gruvbox
|
||||||
|
gtk-icon-theme-name=Papirus-Dark-Gruvbox
|
||||||
|
gtk-font-name=IBM Plex Sans Medium 10
|
||||||
|
gtk-cursor-theme-name=Breeze_Snow
|
||||||
|
gtk-cursor-theme-size=0
|
||||||
|
gtk-toolbar-style=GTK_TOOLBAR_BOTH
|
||||||
|
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||||
|
gtk-button-images=1
|
||||||
|
gtk-menu-images=1
|
||||||
|
gtk-enable-event-sounds=1
|
||||||
|
gtk-enable-input-feedback-sounds=1
|
||||||
|
gtk-xft-antialias=1
|
||||||
|
gtk-xft-hinting=1
|
||||||
|
gtk-xft-hintstyle=hintslight
|
||||||
|
gtk-xft-rgba=rgb
|
78
desktop-gruvbox/.config/oomox/colors/Gruvbox/Dark
Normal file
78
desktop-gruvbox/.config/oomox/colors/Gruvbox/Dark
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
ACCENT_BG=83a598
|
||||||
|
ARC_TRANSPARENCY=True
|
||||||
|
ARC_WIDGET_BORDER_COLOR=59554a
|
||||||
|
BASE16_GENERATE_DARK=False
|
||||||
|
BASE16_INVERT_TERMINAL=False
|
||||||
|
BASE16_MILD_TERMINAL=False
|
||||||
|
BG=282828
|
||||||
|
BTN_BG=282828
|
||||||
|
BTN_FG=610a7a
|
||||||
|
BTN_OUTLINE_OFFSET=-3
|
||||||
|
BTN_OUTLINE_WIDTH=1
|
||||||
|
CARET1_FG=cac10f
|
||||||
|
CARET2_FG=cac10f
|
||||||
|
CARET_SIZE=0.04
|
||||||
|
CINNAMON_OPACITY=1.0
|
||||||
|
FG=ebdbb2
|
||||||
|
GRADIENT=0.01
|
||||||
|
GTK3_GENERATE_DARK=True
|
||||||
|
HDR_BG=32302f
|
||||||
|
HDR_BTN_BG=282828
|
||||||
|
HDR_BTN_FG=01bf9b
|
||||||
|
HDR_FG=ebdbb2
|
||||||
|
ICONS_ARCHDROID=d2f000
|
||||||
|
ICONS_DARK=282828
|
||||||
|
ICONS_LIGHT=bc8ef4
|
||||||
|
ICONS_LIGHT_FOLDER=83a598
|
||||||
|
ICONS_MEDIUM=458588
|
||||||
|
ICONS_NUMIX_STYLE=0
|
||||||
|
ICONS_STYLE=papirus_icons
|
||||||
|
ICONS_SYMBOLIC_ACTION=ebdbb2
|
||||||
|
ICONS_SYMBOLIC_PANEL=ebdbb2
|
||||||
|
MATERIA_PANEL_OPACITY=0.6
|
||||||
|
MATERIA_SELECTION_OPACITY=0.32
|
||||||
|
MATERIA_STYLE_COMPACT=True
|
||||||
|
MENU_BG=12afaf
|
||||||
|
MENU_FG=01bf9b
|
||||||
|
NAME="Gruvbox/Dark"
|
||||||
|
OUTLINE_WIDTH=1
|
||||||
|
ROUNDNESS=6
|
||||||
|
SEL_BG=83a598
|
||||||
|
SEL_FG=282828
|
||||||
|
SPACING=3
|
||||||
|
SPOTIFY_PROTO_BG=282828
|
||||||
|
SPOTIFY_PROTO_FG=ebdbb2
|
||||||
|
SPOTIFY_PROTO_SEL=b8bb26
|
||||||
|
SURUPLUS_GRADIENT1=21826e
|
||||||
|
SURUPLUS_GRADIENT2=f728dd
|
||||||
|
SURUPLUS_GRADIENT_ENABLED=False
|
||||||
|
TERMINAL_ACCENT_COLOR=f728dd
|
||||||
|
TERMINAL_BACKGROUND=237095
|
||||||
|
TERMINAL_BASE_TEMPLATE=material
|
||||||
|
TERMINAL_COLOR0=36868b
|
||||||
|
TERMINAL_COLOR1=ffec53
|
||||||
|
TERMINAL_COLOR10=acffb8
|
||||||
|
TERMINAL_COLOR11=fff453
|
||||||
|
TERMINAL_COLOR12=91ffff
|
||||||
|
TERMINAL_COLOR13=bd68aa
|
||||||
|
TERMINAL_COLOR14=36faed
|
||||||
|
TERMINAL_COLOR15=fcffff
|
||||||
|
TERMINAL_COLOR2=9bff9d
|
||||||
|
TERMINAL_COLOR3=ffff5a
|
||||||
|
TERMINAL_COLOR4=13fdff
|
||||||
|
TERMINAL_COLOR5=f972b6
|
||||||
|
TERMINAL_COLOR6=10eadb
|
||||||
|
TERMINAL_COLOR7=dfffff
|
||||||
|
TERMINAL_COLOR8=479ba2
|
||||||
|
TERMINAL_COLOR9=fffba0
|
||||||
|
TERMINAL_FOREGROUND=d2f000
|
||||||
|
TERMINAL_THEME_ACCURACY=128
|
||||||
|
TERMINAL_THEME_AUTO_BGFG=True
|
||||||
|
TERMINAL_THEME_EXTEND_PALETTE=False
|
||||||
|
TERMINAL_THEME_MODE=smarty
|
||||||
|
THEME_STYLE=materia
|
||||||
|
TXT_BG=282828
|
||||||
|
TXT_FG=d2f000
|
||||||
|
UNITY_DEFAULT_LAUNCHER_STYLE=False
|
||||||
|
WM_BORDER_FOCUS=f728dd
|
||||||
|
WM_BORDER_UNFOCUS=c158ce
|
288
desktop-gruvbox/.config/polybar/config
Normal file
288
desktop-gruvbox/.config/polybar/config
Normal file
@ -0,0 +1,288 @@
|
|||||||
|
# vim:ft=dosini
|
||||||
|
# _ _
|
||||||
|
# _ __ ___ | |_ _| |__ __ _ _ __
|
||||||
|
# | '_ \ / _ \| | | | | '_ \ / _` | '__|
|
||||||
|
# | |_) | (_) | | |_| | |_) | (_| | |
|
||||||
|
# | .__/ \___/|_|\__, |_.__/ \__,_|_|
|
||||||
|
# |_| |___/
|
||||||
|
#
|
||||||
|
# Copyright (c) 2020 Vintage Salt <rehashedsalt@cock.li>
|
||||||
|
# Distributed under the terms of the MIT License
|
||||||
|
#
|
||||||
|
|
||||||
|
## VARIABLES
|
||||||
|
[res/colors]
|
||||||
|
red = #fb4934
|
||||||
|
green = #b8bb26
|
||||||
|
yellow = #fabd2f
|
||||||
|
blue = #83a598
|
||||||
|
magenta = #de869b
|
||||||
|
cyan = #8ec07c
|
||||||
|
white = #ebdbb2
|
||||||
|
black = #282828
|
||||||
|
gray = #32302f
|
||||||
|
|
||||||
|
bg = ${env:PB_COLOR_BG:#282828}
|
||||||
|
fg = ${env:PB_COLOR_FG:#ebdbb2}
|
||||||
|
border = ${env:PB_COLOR_BORDER:#32302f}
|
||||||
|
selection = #83a598
|
||||||
|
|
||||||
|
[res/config]
|
||||||
|
bar-width = 50
|
||||||
|
bar-fill = |
|
||||||
|
bar-empty = |
|
||||||
|
bar-indicator =
|
||||||
|
border-size = 4
|
||||||
|
padding = 2
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
screenchange-reload = true
|
||||||
|
format-padding = ${res/config.padding}
|
||||||
|
format-background = ${res/colors.bg}
|
||||||
|
|
||||||
|
## BARS
|
||||||
|
[template/bar]
|
||||||
|
bottom = false
|
||||||
|
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 = 40
|
||||||
|
width = 100%
|
||||||
|
padding = 2
|
||||||
|
border-bottom-size = ${res/config.border-size}
|
||||||
|
font-0 = "IBM Plex Sans:style=Medium:size=10;2"
|
||||||
|
font-1 = "Deja Vu Sans Mono:style=Regular:size=10;2"
|
||||||
|
font-2 = "IBM Plex Sans:style=Bold:size=10;2"
|
||||||
|
font-3 = "Fork Awesome:style=Regular:size=12;2"
|
||||||
|
font-4 = "Font Awesome 5 Free:style=Regular:size=12;2"
|
||||||
|
font-5 = "Font Awesome 5 Brands:style=Regular:size=12;2"
|
||||||
|
|
||||||
|
[bar/primary]
|
||||||
|
monitor = ${env:PB_MONITOR:eDP-1}
|
||||||
|
inherit = template/bar
|
||||||
|
tray-position = center
|
||||||
|
modules-left = i3 bspwm service-ansible service-backup reboot-required
|
||||||
|
modules-right = backlight pulse battery | date
|
||||||
|
|
||||||
|
[bar/secondary]
|
||||||
|
monitor= ${env:PB_MONITOR:HDMI-A-0}
|
||||||
|
inherit = template/bar
|
||||||
|
modules-left = i3 bspwm
|
||||||
|
modules-right = wlan-desktop-stats mpd | date
|
||||||
|
|
||||||
|
## MODULES
|
||||||
|
[module/|]
|
||||||
|
type = custom/text
|
||||||
|
content = |
|
||||||
|
content-foreground = ${res/colors.border}
|
||||||
|
|
||||||
|
[module/backlight]
|
||||||
|
type = internal/xbacklight
|
||||||
|
format = <bar>
|
||||||
|
format-prefix = "BRI: "
|
||||||
|
format-prefix-foreground = ${res/colors.blue}
|
||||||
|
bar-width = ${res/config.bar-width}
|
||||||
|
bar-fill = ${res/config.bar-fill}
|
||||||
|
bar-fill-foreground = ${res/colors.blue}
|
||||||
|
bar-empty = ${res/config.bar-empty}
|
||||||
|
bar-empty-foreground = ${res/colors.border}
|
||||||
|
bar-indicator = ${res/config.bar-indicator}
|
||||||
|
|
||||||
|
[module/battery]
|
||||||
|
type = internal/battery
|
||||||
|
full-at = 100
|
||||||
|
time-format = %H:%M
|
||||||
|
interval = 15
|
||||||
|
|
||||||
|
format-charging = <ramp-capacity>
|
||||||
|
format-charging-foreground = ${res/colors.green}
|
||||||
|
format-discharging = <ramp-capacity>
|
||||||
|
format-full = <ramp-capacity>
|
||||||
|
format-full-foreground = ${res/colors.green}
|
||||||
|
ramp-capacity-0 =
|
||||||
|
ramp-capacity-0-foreground = ${res/colors.yellow}
|
||||||
|
ramp-capacity-1 =
|
||||||
|
ramp-capacity-2 =
|
||||||
|
ramp-capacity-3 =
|
||||||
|
ramp-capacity-4 =
|
||||||
|
|
||||||
|
[module/bspwm]
|
||||||
|
type = internal/bspwm
|
||||||
|
format = <label-state> <label-mode>
|
||||||
|
format-padding = 0
|
||||||
|
enable-scroll = false
|
||||||
|
pin-workspaces = true
|
||||||
|
|
||||||
|
label-mode-padding = 4
|
||||||
|
label-mode-background = ${res/colors.red}
|
||||||
|
label-focused = %name%
|
||||||
|
label-focused-padding = 4
|
||||||
|
label-focused-font = 3
|
||||||
|
label-focused-foreground = ${res/colors.bg}
|
||||||
|
label-focused-background = ${res/colors.selection}
|
||||||
|
label-occupied = %name%
|
||||||
|
label-occupied-padding = 4
|
||||||
|
label-occupied-font = 3
|
||||||
|
label-urgent = %name%
|
||||||
|
label-urgent-padding = 4
|
||||||
|
label-urgent-font = 3
|
||||||
|
label-urgent-foreground = ${res/colors.bg}
|
||||||
|
label-urgent-background = ${res/colors.yellow}
|
||||||
|
label-empty = %name%
|
||||||
|
label-empty-foreground = ${res/colors.border}
|
||||||
|
label-empty-padding = 4
|
||||||
|
|
||||||
|
[module/cpu]
|
||||||
|
type = internal/cpu
|
||||||
|
interval = 1
|
||||||
|
format = <bar-load>
|
||||||
|
format-prefix = "CPU: "
|
||||||
|
format-prefix-foreground = ${res/colors.blue}
|
||||||
|
bar-load-width = ${res/config.bar-width}
|
||||||
|
bar-load-fill = ${res/config.bar-fill}
|
||||||
|
bar-load-fill-foreground = ${res/colors.blue}
|
||||||
|
bar-load-empty = ${res/config.bar-empty}
|
||||||
|
bar-load-empty-foreground = ${res/colors.border}
|
||||||
|
bar-load-indicator = ${res/config.bar-indicator}
|
||||||
|
|
||||||
|
[module/date]
|
||||||
|
type = internal/date
|
||||||
|
date = %a %b %d
|
||||||
|
time = %I:%M %p
|
||||||
|
interval = 5
|
||||||
|
format = <label>
|
||||||
|
label = %date% %time%
|
||||||
|
|
||||||
|
[module/fshome]
|
||||||
|
type = internal/fs
|
||||||
|
mount-0 = /home
|
||||||
|
format-mounted = <bar-used> <label-mounted>
|
||||||
|
format-mounted-prefix = "Home: "
|
||||||
|
format-mounted-prefix-foreground = ${res/colors.yellow}
|
||||||
|
format-unmounted =
|
||||||
|
label-mounted = %free% free
|
||||||
|
bar-used-width = ${res/config.bar-width}
|
||||||
|
bar-used-fill = ${res/config.bar-fill}
|
||||||
|
bar-used-fill-foreground = ${res/colors.yellow}
|
||||||
|
bar-used-empty = ${res/config.bar-empty}
|
||||||
|
bar-used-empty-foreground = ${res/colors.border}
|
||||||
|
bar-used-indicator = ${res/config.bar-indicator}
|
||||||
|
|
||||||
|
[module/fsroot]
|
||||||
|
type = internal/fs
|
||||||
|
mount-0 = /
|
||||||
|
format-mounted = <bar-used> <label-mounted>
|
||||||
|
format-mounted-prefix = "Root: "
|
||||||
|
format-mounted-prefix-foreground = ${res/colors.yellow}
|
||||||
|
label-mounted = %free% free
|
||||||
|
bar-used-width = ${res/config.bar-width}
|
||||||
|
bar-used-fill = ${res/config.bar-fill}
|
||||||
|
bar-used-fill-foreground = ${res/colors.yellow}
|
||||||
|
bar-used-empty = ${res/config.bar-empty}
|
||||||
|
bar-used-empty-foreground = ${res/colors.border}
|
||||||
|
bar-used-indicator = ${res/config.bar-indicator}
|
||||||
|
|
||||||
|
[module/i3]
|
||||||
|
type = internal/i3
|
||||||
|
format = <label-state> <label-mode>
|
||||||
|
format-padding = 0
|
||||||
|
enable-scroll = false
|
||||||
|
pin-workspaces = true
|
||||||
|
|
||||||
|
label-mode-padding = 4
|
||||||
|
label-mode-background = ${res/colors.red}
|
||||||
|
label-focused = %name%
|
||||||
|
label-focused-padding = 4
|
||||||
|
label-focused-foreground = ${res/colors.bg}
|
||||||
|
label-focused-background = ${res/colors.selection}
|
||||||
|
label-unfocused = %name%
|
||||||
|
label-unfocused-background = ${res/colors.bg}
|
||||||
|
label-unfocused-padding = 4
|
||||||
|
label-visible = %name%
|
||||||
|
label-visible-background = ${res/colors.border}
|
||||||
|
label-visible-padding = 4
|
||||||
|
|
||||||
|
[module/memory]
|
||||||
|
type = internal/memory
|
||||||
|
format = <bar-used> <label>
|
||||||
|
format-prefix = "Memory: "
|
||||||
|
format-prefix-foreground = ${res/colors.magenta}
|
||||||
|
label = %gb_free:8%
|
||||||
|
bar-used-width = ${res/config.bar-width}
|
||||||
|
bar-used-fill = ${res/config.bar-fill}
|
||||||
|
bar-used-fill-foreground = ${res/colors.magenta}
|
||||||
|
bar-used-empty = ${res/config.bar-empty}
|
||||||
|
bar-used-empty-foreground = ${res/colors.border}
|
||||||
|
bar-used-indicator = ${res/config.bar-indicator}
|
||||||
|
|
||||||
|
[module/mpd]
|
||||||
|
type=internal/mpd
|
||||||
|
format-online=<label-song> <label-time>
|
||||||
|
label-song=%artist% - %title%
|
||||||
|
label-time=%elapsed% / %total%
|
||||||
|
|
||||||
|
[module/pulse]
|
||||||
|
type = internal/pulseaudio
|
||||||
|
format-volume = <label-volume>
|
||||||
|
format-volume-prefix = " "
|
||||||
|
format-muted = <label-muted>
|
||||||
|
format-muted-prefix = " "
|
||||||
|
format-muted-foreground = ${res/colors.border}
|
||||||
|
|
||||||
|
[module/reboot-required]
|
||||||
|
type = custom/script
|
||||||
|
exec = "echo Reboot required"
|
||||||
|
exec-if = "[ -f /var/run/reboot-required ]"
|
||||||
|
format-foreground = ${res/colors.yellow}
|
||||||
|
|
||||||
|
[module/service-ansible]
|
||||||
|
type = custom/script
|
||||||
|
interval = 5
|
||||||
|
exec = "echo "
|
||||||
|
exec-if = "systemctl is-failed --quiet ansible-pull.service"
|
||||||
|
format-foreground = ${res/colors.red}
|
||||||
|
|
||||||
|
[module/service-backup]
|
||||||
|
type = custom/script
|
||||||
|
interval = 5
|
||||||
|
exec = "echo "
|
||||||
|
exec-if = "systemctl is-failed --quiet backup.service"
|
||||||
|
format-foreground = ${res/colors.red}
|
||||||
|
|
||||||
|
[module/wlan-laptop]
|
||||||
|
type = internal/network
|
||||||
|
interface = wlp0s20f3
|
||||||
|
format-connected-prefix = "WLAN: "
|
||||||
|
format-connected-prefix-foreground = ${res/colors.green}
|
||||||
|
format-disconnected-prefix = "WLAN: "
|
||||||
|
format-disconnected-prefix-foreground = ${res/colors.green}
|
||||||
|
label-connected = %essid%
|
||||||
|
label-disconnected = Disconnected
|
||||||
|
|
||||||
|
[module/wlan-desktop]
|
||||||
|
type = internal/network
|
||||||
|
interface = wlp5s0
|
||||||
|
format-connected-prefix = "WLAN: "
|
||||||
|
format-connected-prefix-foreground = ${res/colors.green}
|
||||||
|
format-disconnected-prefix = "WLAN: "
|
||||||
|
format-disconnected-prefix-foreground = ${res/colors.green}
|
||||||
|
label-connected = %essid%
|
||||||
|
label-disconnected = Disconnected
|
||||||
|
|
||||||
|
[module/wlan-desktop-stats]
|
||||||
|
type = internal/network
|
||||||
|
interface = wlp5s0
|
||||||
|
label-connected = U %upspeed% D %downspeed%
|
||||||
|
|
||||||
|
[module/xkeyboard]
|
||||||
|
type = internal/xkeyboard
|
||||||
|
format = <label-layout>
|
||||||
|
label-layout = %name%
|
||||||
|
|
||||||
|
[module/xwindow]
|
||||||
|
type = internal/xwindow
|
||||||
|
label = %title%
|
||||||
|
label-maxlen = 100
|
82
desktop-gruvbox/.config/polybar/launch.sh
Executable file
82
desktop-gruvbox/.config/polybar/launch.sh
Executable file
@ -0,0 +1,82 @@
|
|||||||
|
#! /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 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
|
||||||
|
# Light theme
|
||||||
|
if [ "$THEME" == "light" ]; then
|
||||||
|
export PB_COLOR_BG="#fbf1c7"
|
||||||
|
export PB_COLOR_FG="#3c3836"
|
||||||
|
export PB_COLOR_BORDER="#f2e5bc"
|
||||||
|
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
|
||||||
|
step_spawn_primary
|
||||||
|
step_spawn_secondary
|
||||||
|
step_wait
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
|
|
28
desktop-gruvbox/.config/qt5ct/qt5ct.conf
Normal file
28
desktop-gruvbox/.config/qt5ct/qt5ct.conf
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
[Appearance]
|
||||||
|
color_scheme_path=/usr/share/qt5ct/colors/airy.conf
|
||||||
|
custom_palette=false
|
||||||
|
icon_theme=Papirus-Dark-Gruvbox
|
||||||
|
standard_dialogs=kde
|
||||||
|
style=Breeze
|
||||||
|
|
||||||
|
[Fonts]
|
||||||
|
fixed=@Variant(\0\0\0@\0\0\0\x16\0I\0n\0\x63\0o\0n\0s\0o\0l\0\x61\0t\0\x61@$\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x39\x10)
|
||||||
|
general=@Variant(\0\0\0@\0\0\0\x1a\0I\0\x42\0M\0 \0P\0l\0\x65\0x\0 \0S\0\x61\0n\0s@$\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x39\x10)
|
||||||
|
|
||||||
|
[Interface]
|
||||||
|
activate_item_on_single_click=2
|
||||||
|
buttonbox_layout=2
|
||||||
|
cursor_flash_time=1000
|
||||||
|
dialog_buttons_have_icons=2
|
||||||
|
double_click_interval=400
|
||||||
|
gui_effects=@Invalid()
|
||||||
|
keyboard_scheme=2
|
||||||
|
menus_have_icons=true
|
||||||
|
show_shortcuts_in_context_menus=true
|
||||||
|
stylesheets=@Invalid()
|
||||||
|
toolbutton_style=4
|
||||||
|
underline_shortcut=1
|
||||||
|
wheel_scroll_lines=3
|
||||||
|
|
||||||
|
[SettingsWindow]
|
||||||
|
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x3\xc3\0\0\0\x6\0\0\ay\0\0\x4\x5\0\0\x3\xc7\0\0\0\n\0\0\au\0\0\x4\x1\0\0\0\0\0\0\0\0\a\x80\0\0\x3\xc7\0\0\0\n\0\0\au\0\0\x4\x1)
|
108
desktop-gruvbox/.config/rofi/config.rasi
Normal file
108
desktop-gruvbox/.config/rofi/config.rasi
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
/*
|
||||||
|
* config.rasi
|
||||||
|
* Copyright (C) 2020 Vintage Salt <rehashedsalt@cock.li>
|
||||||
|
*
|
||||||
|
* Distributed under terms of the MIT License
|
||||||
|
*
|
||||||
|
* See rofi-theme(5) for documentation
|
||||||
|
*/
|
||||||
|
|
||||||
|
configuration {
|
||||||
|
matching: "normal";
|
||||||
|
show-icons: true;
|
||||||
|
icon-theme: "Papirus-Gruvbox-Dark";
|
||||||
|
modi: "drun,ssh,window";
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
background: #282828;
|
||||||
|
background-alt: #32302f;
|
||||||
|
foreground: #ebdbb2;
|
||||||
|
foreground-alt: #fb4934;
|
||||||
|
yellow: #fabd2f;
|
||||||
|
blue: #83a598;
|
||||||
|
cyan: #8ec07c;
|
||||||
|
|
||||||
|
text-color: @foreground;
|
||||||
|
background-color: @background;
|
||||||
|
font: "IBM Plex Sans 10";
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
location: southwest;
|
||||||
|
anchor: southwest;
|
||||||
|
|
||||||
|
border-color: @background-alt;
|
||||||
|
background-color: @background;
|
||||||
|
|
||||||
|
border: 4px 4px 0 0;
|
||||||
|
height: 60%;
|
||||||
|
width: 30%;
|
||||||
|
}
|
||||||
|
#inputbar {
|
||||||
|
background-color: @background-alt;
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
#case-indicator {
|
||||||
|
enabled: false;
|
||||||
|
background-color: @background-alt;
|
||||||
|
text-color: @foreground-alt;
|
||||||
|
}
|
||||||
|
#prompt {
|
||||||
|
enabled: false;
|
||||||
|
background-color: @background-alt;
|
||||||
|
font: "IBM Plex Sans Medium 12";
|
||||||
|
padding: 0.5em;
|
||||||
|
}
|
||||||
|
#entry {
|
||||||
|
background-color: @background-alt;
|
||||||
|
font: "IBM Plex Sans 12";
|
||||||
|
padding: 0.5em;
|
||||||
|
}
|
||||||
|
#message {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
#textbox {
|
||||||
|
padding: 4px 12px 4px 12px;
|
||||||
|
font-color: @foreground-alt;
|
||||||
|
}
|
||||||
|
|
||||||
|
#listview {
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
#element {
|
||||||
|
orientation: vertical;
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
#element normal active {
|
||||||
|
text-color: @cyan;
|
||||||
|
}
|
||||||
|
#element normal urgent {
|
||||||
|
text-color: @yellow;
|
||||||
|
}
|
||||||
|
#element selected normal {
|
||||||
|
background-color: @blue;
|
||||||
|
text-color: @background;
|
||||||
|
}
|
||||||
|
#element selected active {
|
||||||
|
background-color: @cyan;
|
||||||
|
text-color: @background;
|
||||||
|
}
|
||||||
|
#element selected urgent {
|
||||||
|
background-color: @yellow;
|
||||||
|
text-color: @background;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar {
|
||||||
|
}
|
||||||
|
|
||||||
|
#button {
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#button selected {
|
||||||
|
background-color: @background-alt;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* vim:ft=css
|
||||||
|
*/
|
74
desktop-gruvbox/.config/sxhkd/sxhkdrc
Normal file
74
desktop-gruvbox/.config/sxhkd/sxhkdrc
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
# vim:ft=bash
|
||||||
|
|
||||||
|
## GENERAL HOTKEYS
|
||||||
|
alt + Return
|
||||||
|
$TERMINAL
|
||||||
|
alt + space
|
||||||
|
rofi -show drun
|
||||||
|
alt + backslash
|
||||||
|
rofi -show ssh
|
||||||
|
alt + Tab
|
||||||
|
rofi -show window
|
||||||
|
alt + Escape
|
||||||
|
pkill -USR1 -x sxhkd
|
||||||
|
ctrl + alt + l
|
||||||
|
loginctl lock-session
|
||||||
|
|
||||||
|
## APPLICATION TOGGLES
|
||||||
|
alt + p
|
||||||
|
killall pavucontrol-qt || pavucontrol-qt
|
||||||
|
alt + shift + m
|
||||||
|
killall picom || ~/.firestarter/firestarter start compositor
|
||||||
|
|
||||||
|
## HARDWARE CONTROLS
|
||||||
|
XF86Audio{Raise,Lower}Volume
|
||||||
|
pactl set-sink-volume 0 {+,-}5%
|
||||||
|
XF86AudioMute
|
||||||
|
pactl set-sink-mute 0 toggle
|
||||||
|
XF86MonBrightness{Up,Down}
|
||||||
|
xbacklight {-inc,-dec} 5
|
||||||
|
|
||||||
|
## BSPWM
|
||||||
|
# Reload configs
|
||||||
|
alt + shift + r
|
||||||
|
~/.config/bspwm/bspwmrc
|
||||||
|
# Close or kill node
|
||||||
|
alt + {_,shift + }q
|
||||||
|
bspc node -{c,k}
|
||||||
|
# Focus or move the node in the given direction
|
||||||
|
alt + {_,shift + }{h,j,k,l}
|
||||||
|
bspc node -{f,s} {west,south,north,east}
|
||||||
|
# Focus or send to the given desktop
|
||||||
|
alt + {_,shift + }{1-9,0}
|
||||||
|
bspc {desktop -f,node -d} '{1-9,10}'
|
||||||
|
# Toggle monocle mode
|
||||||
|
alt + m
|
||||||
|
bspc desktop -l next
|
||||||
|
# Switch current node with biggest on current desktop
|
||||||
|
alt + g
|
||||||
|
bspc node -s biggest.local --follow
|
||||||
|
# Focus the node for the given path jump
|
||||||
|
alt + {a,c}
|
||||||
|
bspc node -f {@parent,biggest.descendant_of}
|
||||||
|
# Rotate, equalize, or balance selection
|
||||||
|
alt + {r,e,u}
|
||||||
|
bspc node -{R 90,E,B @/}
|
||||||
|
# Set window states
|
||||||
|
alt + {t,shift + t,f,shift + f}
|
||||||
|
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
|
||||||
|
# Set node flags
|
||||||
|
alt + ctrl + {x,y,z}
|
||||||
|
bspc node -g {locked,sticky,private}
|
||||||
|
# Focus the next/previous node in the current desktop
|
||||||
|
alt + {_,shift + }c
|
||||||
|
bspc node -f {next,prev}.local
|
||||||
|
# Focus the next/previous desktop in the current monitor
|
||||||
|
alt + {comma,period}
|
||||||
|
bspc desktop -f {prev,next}.local
|
||||||
|
# Expand a window by moving one of its side outward
|
||||||
|
super + alt + {h,j,k,l}
|
||||||
|
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
|
||||||
|
# Contract a window by moving one of its side inward
|
||||||
|
super + alt + shift + {h,j,k,l}
|
||||||
|
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user