initial commit
This commit is contained in:
commit
2564138cff
22 changed files with 2642 additions and 0 deletions
32
linux/.Xresources
Normal file
32
linux/.Xresources
Normal file
|
@ -0,0 +1,32 @@
|
|||
! special
|
||||
*.foreground: #dedbeb
|
||||
*.background: #2a2331
|
||||
*.cursorColor: #dedbeb
|
||||
*.cursorColor2: #634e75
|
||||
|
||||
! colors
|
||||
*.color0: #231d29
|
||||
*.color1: #e83f80
|
||||
*.color2: #a2baa8
|
||||
*.color3: #eacac0
|
||||
*.color4: #9985d1
|
||||
*.color5: #e68ac1
|
||||
*.color6: #aabae7
|
||||
*.color7: #dedbeb
|
||||
|
||||
*.color8: #302838
|
||||
*.color9: #f55d8f
|
||||
*.color10: #bfd1c3
|
||||
*.color11: #f0ddd8
|
||||
*.color12: #b4a4de
|
||||
*.color13: #edabd2
|
||||
*.color14: #c4d1f5
|
||||
*.color15: #edebf7
|
||||
|
||||
! urxvt
|
||||
URxvt.font: xft:Terminus:size=9
|
||||
|
||||
URxvt.perl-ext-common: clipboard
|
||||
URxvt.clipboard.autocopy: false
|
||||
URxvt.keysym.C-S-c: perl:clipboard:copy
|
||||
URxvt.keysym.C-S-v: perl:clipboard:paste
|
23
linux/.config/bspwm/bspwmrc
Normal file
23
linux/.config/bspwm/bspwmrc
Normal file
|
@ -0,0 +1,23 @@
|
|||
#! /bin/sh
|
||||
|
||||
picom &
|
||||
vmware-user-suid-wrapper &
|
||||
pgrep -f xmousepasteblock > /dev/null || xmousepasteblock &
|
||||
~/.fehbg &
|
||||
~/.local/bin/polybar.sh &
|
||||
|
||||
pgrep -x sxhkd > /dev/null || sxhkd &
|
||||
|
||||
bspc monitor -d I II III IV V VI VII VIII
|
||||
|
||||
bspc config border_width 2
|
||||
bspc config window_gap 8
|
||||
bspc config top_padding 16
|
||||
|
||||
bspc config normal_border_color $(xrdb -query | awk '/*.background:/ { print substr($2,1) }')
|
||||
bspc config focused_border_color $(xrdb -query | awk '/*.color5:/ { print substr($2,1) }')
|
||||
bspc config presel_feedback_color $(xrdb -query | awk '/*.color1:/ { print substr($2,1) }')
|
||||
|
||||
bspc config split_ratio 0.52
|
||||
bspc config borderless_monocle true
|
||||
bspc config gapless_monocle true
|
160
linux/.config/polybar/config
Normal file
160
linux/.config/polybar/config
Normal file
|
@ -0,0 +1,160 @@
|
|||
[colors]
|
||||
bg = ${xrdb:background:#2a2331}
|
||||
fg = ${xrdb:foreground:#dedbeb}
|
||||
hi = ${xrdb:cursorColor2:#634e75}
|
||||
tr = #00000000
|
||||
|
||||
0 = ${xrdb:color0:#231d29}
|
||||
1 = ${xrdb:color1:#e83f80}
|
||||
2 = ${xrdb:color2:#a2baa8}
|
||||
3 = ${xrdb:color3:#eacac0}
|
||||
4 = ${xrdb:color4:#9985d1}
|
||||
5 = ${xrdb:color5:#e68ac1}
|
||||
6 = ${xrdb:color6:#aabae7}
|
||||
7 = ${xrdb:color7:#dedbeb}
|
||||
|
||||
8 = ${xrdb:color8:#302838}
|
||||
9 = ${xrdb:color9:#f55d8f}
|
||||
10 = ${xrdb:color10:#bfd1c3}
|
||||
11 = ${xrdb:color11:#f0ddd8}
|
||||
12 = ${xrdb:color12:#b4a4de}
|
||||
13 = ${xrdb:color13:#edabd2}
|
||||
14 = ${xrdb:color14:#c4d1f5}
|
||||
15 = ${xrdb:color15:#edebf7}
|
||||
|
||||
[bar/bar]
|
||||
width = 100%
|
||||
height = 16
|
||||
bottom = false
|
||||
|
||||
background = ${colors.bg}
|
||||
foreground = ${colors.fg}
|
||||
|
||||
line-size = 0
|
||||
|
||||
border-size = 0
|
||||
border-color = ${colors.tr}
|
||||
|
||||
font-0 = terminus:pixelsize=8;1
|
||||
font-1 = siji:pixelsize=8;1
|
||||
font-2 = unifont:size=8;1
|
||||
|
||||
modules-left = workspace
|
||||
modules-center = polywins
|
||||
modules-right = music cpu ram volume bclock
|
||||
|
||||
tray-position = right
|
||||
tray-padding = 1
|
||||
tray-background = ${colors.bg}
|
||||
|
||||
override-redirect = true
|
||||
|
||||
[global/wm]
|
||||
margin-top = 16
|
||||
|
||||
[settings]
|
||||
format-background = ${colors.bg}
|
||||
format-foreground = ${colors.fg}
|
||||
format-padding = 1
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
|
||||
interval = 1.0
|
||||
|
||||
time = %H:%M:%S
|
||||
time-alt = %a, %m/%d/%Y
|
||||
|
||||
label = %time%
|
||||
label-foreground = ${colors.6}
|
||||
|
||||
[module/bclock]
|
||||
type = custom/script
|
||||
|
||||
exec = ~/.config/polybar/scripts/binaryclock-polybar.sh
|
||||
tail = true
|
||||
click-left = "kill -USR1 $(pgrep --oldest --parent %pid%)"
|
||||
|
||||
label-foreground = ${colors.6}
|
||||
|
||||
[module/volume]
|
||||
type = internal/alsa
|
||||
|
||||
format-volume = <ramp-volume> <label-volume>
|
||||
label-volume = %percentage%%
|
||||
format-volume-foreground = ${colors.4}
|
||||
label-muted = 0%
|
||||
label-muted-foreground = ${colors.1}
|
||||
|
||||
ramp-volume-0 =
|
||||
ramp-volume-1 =
|
||||
ramp-volume-2 =
|
||||
|
||||
[module/ram]
|
||||
type = internal/memory
|
||||
|
||||
format = <label>
|
||||
label = %mb_used% %mb_swap_used%
|
||||
label-foreground = ${colors.2}
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
|
||||
interval = 0.5
|
||||
|
||||
format = <label>
|
||||
label = %percentage-cores%
|
||||
label-foreground = ${colors.3}
|
||||
|
||||
[module/music]
|
||||
type = custom/script
|
||||
|
||||
exec = ~/.config/polybar/scripts/cmus-polybar.sh
|
||||
exec-if = pgrep -x cmus
|
||||
|
||||
tail = true
|
||||
|
||||
interval = 0.5
|
||||
|
||||
label-foreground = ${colors.5}
|
||||
|
||||
[module/window]
|
||||
type = internal/xwindow
|
||||
|
||||
label = %title%
|
||||
label-empty =
|
||||
|
||||
[module/workspace]
|
||||
type = internal/bspwm
|
||||
|
||||
enable-click = true
|
||||
enable-scroll = true
|
||||
reverse-scroll = false
|
||||
|
||||
format = <label-state>
|
||||
format-padding = 0
|
||||
|
||||
label-focused = %name%
|
||||
label-focused-foreground = ${colors.5}
|
||||
label-focused-padding = 1
|
||||
|
||||
label-occupied = %name%
|
||||
label-occupied-foreground = ${colors.hi}
|
||||
label-occupied-padding = 1
|
||||
|
||||
label-urgent = %name%
|
||||
label-urgent-foreground = ${colors.1}
|
||||
label-urgent-padding = 1
|
||||
|
||||
label-empty = %name%
|
||||
label-empty-foreground = ${colors.fg}
|
||||
label-empty-padding = 1
|
||||
|
||||
[module/polywins]
|
||||
type = custom/script
|
||||
exec = ~/.config/polybar/scripts/polywins.sh 2>/dev/null
|
||||
format = <label>
|
||||
label = %output%
|
||||
tail = true
|
||||
|
||||
; vim: ft=dosini
|
46
linux/.config/polybar/scripts/binaryclock-polybar.sh
Normal file
46
linux/.config/polybar/scripts/binaryclock-polybar.sh
Normal file
|
@ -0,0 +1,46 @@
|
|||
#!/bin/bash
|
||||
|
||||
state=0
|
||||
sleep_pid=0
|
||||
|
||||
function toggle() {
|
||||
state=$(((state+1)%3))
|
||||
|
||||
if [ "$sleep_pid" -ne 0 ]; then
|
||||
kill $sleep_pid >/dev/null 2>&1
|
||||
fi
|
||||
}
|
||||
|
||||
trap "toggle" USR1
|
||||
|
||||
function bclock() {
|
||||
local row0=("⠀" "⠈" "⠐" "⠘" "⠠" "⠨" "⠰" "⠸" "⢀" "⢈")
|
||||
local row1=("⠁" "⠉" "⠑" "⠙" "⠡" "⠩" "⠱" "⠹" "⢁" "⢉")
|
||||
local row2=("⠂" "⠊" "⠒" "⠚" "⠢" "⠪" "⠲" "⠺" "⢂" "⢊")
|
||||
local row3=("⠃" "⠋" "⠓" "⠛" "⠣" "⠫" "⠳" "⠻" "⢃" "⢋")
|
||||
local row4=("⠄" "⠌" "⠔" "⠜" "⠤" "⠬" "⠴" "⠼" "⢄" "⢌")
|
||||
local row5=("⠅" "⠍" "⠕" "⠝" "⠥" "⠭" "⠵" "⠽" "⢅" "⢍")
|
||||
local chars=("${row0[@]}" "${row1[@]}" "${row2[@]}" "${row3[@]}" "${row4[@]}" "${row5[@]}")
|
||||
|
||||
local hour=$(date +"%H")
|
||||
local minute=$(date +"%M")
|
||||
local second=$(date +"%S")
|
||||
[[ $hour = 0* ]] && hour=${hour:1:1}
|
||||
[[ $minute = 0* ]] && minute=${minute:1:1}
|
||||
[[ $second = 0* ]] && second=${second:1:1}
|
||||
|
||||
echo " ${chars[$hour]} ${chars[$minute]} ${chars[$second]}"
|
||||
}
|
||||
|
||||
while true; do
|
||||
if [ $state -eq 0 ]; then
|
||||
bclock
|
||||
elif [ $state -eq 1 ]; then
|
||||
echo " $(date +'%H:%M:%S')"
|
||||
else
|
||||
echo " $(date +'%a, %m/%d/%Y')"
|
||||
fi
|
||||
sleep 1 &
|
||||
sleep_pid=$!
|
||||
wait
|
||||
done
|
47
linux/.config/polybar/scripts/cmus-polybar.sh
Normal file
47
linux/.config/polybar/scripts/cmus-polybar.sh
Normal file
|
@ -0,0 +1,47 @@
|
|||
#!/bin/bash
|
||||
status=$(cmus-remote -Q | awk '/status / {print $2}')
|
||||
albumartist=$(cmus-remote -Q | awk '/tag albumartist / {$1="";$2="";print substr($0,3)}')
|
||||
artist=$(cmus-remote -Q | awk '/tag artist / {$1="";$2="";print substr($0,3)}')
|
||||
title=$(cmus-remote -Q | awk '/tag title / {$1="";$2="";print substr($0,3)}')
|
||||
duration=$(cmus-remote -Q | awk '/duration/ {print $2}')
|
||||
position=$(cmus-remote -Q | awk '/position/ {print $2}')
|
||||
|
||||
nowplaying=""
|
||||
if [ "$status" == "paused" ]; then
|
||||
nowplaying+="$(printf '\ue09b')"
|
||||
elif [ "$status" == "stopped" ]; then
|
||||
nowplaying+="$(printf '\ue099')"
|
||||
else
|
||||
nowplaying+="$(printf '\ue0fe')"
|
||||
fi
|
||||
nowplaying+=" "
|
||||
|
||||
if [ "$albumartist" != "" ]; then
|
||||
nowplaying+="$albumartist"
|
||||
else
|
||||
nowplaying+="$artist"
|
||||
fi
|
||||
nowplaying+=" - $title"
|
||||
|
||||
if [ "$albumartist" != "" && "$albumartist" != "$artist" ]; then
|
||||
nowplaying+=" // $artist"
|
||||
fi
|
||||
|
||||
position_formatted=""
|
||||
duration_formatted=""
|
||||
|
||||
if [ $position -ge 3600 ]; then
|
||||
position_formatted+=$(printf '%02d:' $(($position/3600)))
|
||||
fi
|
||||
|
||||
position_formatted+=$(printf '%02d:%02d' $(($position%3600/60)) $(($position%60)))
|
||||
|
||||
if [ $duration -ge 3600 ]; then
|
||||
duration_formatted+=$(printf '%02d:' $(($duration/3600)))
|
||||
fi
|
||||
|
||||
duration_formatted+=$(printf '%02d:%02d' $(($duration%3600/60)) $(($duration%60)))
|
||||
|
||||
nowplaying+=" [$position_formatted/$duration_formatted]"
|
||||
|
||||
echo $nowplaying
|
242
linux/.config/polybar/scripts/polywins.sh
Normal file
242
linux/.config/polybar/scripts/polywins.sh
Normal file
|
@ -0,0 +1,242 @@
|
|||
#!/bin/sh
|
||||
# POLYWINS
|
||||
|
||||
# SETTINGS {{{ ---
|
||||
|
||||
active_text_color="$(xrdb -query | awk '/*.color7:/ { print substr($2,1) }')"
|
||||
active_bg=
|
||||
active_underline=
|
||||
|
||||
inactive_text_color="$(xrdb -query | awk '/*.cursorColor2:/ { print substr($2,1) }')"
|
||||
inactive_bg=
|
||||
inactive_underline=
|
||||
|
||||
separator=""
|
||||
show="window_title" # options: window_title, window_class, window_classname
|
||||
forbidden_classes="Polybar Conky Gmrun"
|
||||
empty_desktop_message=""
|
||||
|
||||
char_limit=10
|
||||
max_windows=15
|
||||
char_case="normal" # normal, upper, lower
|
||||
add_spaces="true"
|
||||
resize_increment=16
|
||||
wm_border_width=1 # setting this might be required for accurate resize position
|
||||
|
||||
# --- }}}
|
||||
|
||||
|
||||
main() {
|
||||
# If no argument passed...
|
||||
if [ -z "$2" ]; then
|
||||
# ...print new window list every time
|
||||
# the active window changes or
|
||||
# a window is opened or closed
|
||||
xprop -root -spy _NET_CLIENT_LIST _NET_ACTIVE_WINDOW |
|
||||
while IFS= read -r _; do
|
||||
generate_window_list
|
||||
done
|
||||
|
||||
# If arguments are passed, run requested on-click function
|
||||
else
|
||||
"$@"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
# ON-CLICK FUNCTIONS {{{ ---
|
||||
|
||||
raise_or_minimize() {
|
||||
if [ "$(get_active_wid)" = "$1" ]; then
|
||||
wmctrl -ir "$1" -b toggle,hidden
|
||||
else
|
||||
wmctrl -ir "$1" -b remove,hidden; wmctrl -ia "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
close() {
|
||||
wmctrl -ic "$1"
|
||||
}
|
||||
|
||||
slop_resize() {
|
||||
wmctrl -ia "$1"
|
||||
wmctrl -ir "$1" -e "$(slop -f 0,%x,%y,%w,%h)"
|
||||
}
|
||||
|
||||
increment_size() {
|
||||
while IFS="[ .]" read -r wid ws wx wy ww wh _; do
|
||||
test "$wid" != "$1" && continue
|
||||
x=$(( wx - wm_border_width * 2 - resize_increment / 2 ))
|
||||
y=$(( wy - wm_border_width * 2 - resize_increment / 2 ))
|
||||
w=$(( ww + resize_increment ))
|
||||
h=$(( wh + resize_increment ))
|
||||
done <<-EOF
|
||||
$(wmctrl -lG)
|
||||
EOF
|
||||
|
||||
wmctrl -ir "$1" -e "0,$x,$y,$w,$h"
|
||||
}
|
||||
|
||||
decrement_size() {
|
||||
while IFS="[ .]" read -r wid ws wx wy ww wh _; do
|
||||
test "$wid" != "$1" && continue
|
||||
x=$(( wx - wm_border_width * 2 + resize_increment / 2 ))
|
||||
y=$(( wy - wm_border_width * 2 + resize_increment / 2 ))
|
||||
w=$(( ww - resize_increment ))
|
||||
h=$(( wh - resize_increment ))
|
||||
done <<-EOF
|
||||
$(wmctrl -lG)
|
||||
EOF
|
||||
|
||||
wmctrl -ir "$1" -e "0,$x,$y,$w,$h"
|
||||
}
|
||||
|
||||
# --- }}}
|
||||
|
||||
|
||||
|
||||
# WINDOW LIST SETUP {{{ ---
|
||||
|
||||
active_left="%{F$active_text_color}"
|
||||
active_right="%{F-}"
|
||||
inactive_left="%{F$inactive_text_color}"
|
||||
inactive_right="%{F-}"
|
||||
separator="%{F$inactive_text_color}$separator%{F-}"
|
||||
|
||||
if [ -n "$active_underline" ]; then
|
||||
active_left="${active_left}%{+u}%{u$active_underline}"
|
||||
active_right="%{-u}${active_right}"
|
||||
fi
|
||||
|
||||
if [ -n "$active_bg" ]; then
|
||||
active_left="${active_left}%{B$active_bg}"
|
||||
active_right="%{B-}${active_right}"
|
||||
fi
|
||||
|
||||
if [ -n "$inactive_underline" ]; then
|
||||
inactive_left="${inactive_left}%{+u}%{u$inactive_underline}"
|
||||
inactive_right="%{-u}${inactive_right}"
|
||||
fi
|
||||
|
||||
if [ -n "$inactive_bg" ]; then
|
||||
inactive_left="${inactive_left}%{B$inactive_bg}"
|
||||
inactive_right="%{B-}${inactive_right}"
|
||||
fi
|
||||
|
||||
get_active_wid() {
|
||||
active_wid=$(xprop -root _NET_ACTIVE_WINDOW)
|
||||
active_wid="${active_wid#*\# }"
|
||||
active_wid="${active_wid%,*}" # Necessary for XFCE
|
||||
while [ ${#active_wid} -lt 10 ]; do
|
||||
active_wid="0x0${active_wid#*x}"
|
||||
done
|
||||
echo "$active_wid"
|
||||
}
|
||||
|
||||
get_active_workspace() {
|
||||
wmctrl -d |
|
||||
while IFS="[ .]" read -r number active_status _; do
|
||||
test "$active_status" = "*" && echo "$number" && break
|
||||
done
|
||||
}
|
||||
|
||||
generate_window_list() {
|
||||
active_workspace=$(get_active_workspace)
|
||||
active_wid=$(get_active_wid)
|
||||
window_count=0
|
||||
on_click="$0"
|
||||
|
||||
# Format each window name one by one
|
||||
# Space and . are both used as IFS,
|
||||
# because classname and class are separated by '.'
|
||||
while IFS="[ .\.]" read -r wid ws cname cls host title; do
|
||||
# Don't show the window if on another workspace (-1 = sticky)
|
||||
if [ "$ws" != "$active_workspace" ] && [ "$ws" != "-1" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Don't show the window if its class is forbidden
|
||||
case "$forbidden_classes" in
|
||||
*$cls*) continue ;;
|
||||
esac
|
||||
|
||||
# If max number of windows reached, just increment
|
||||
# the windows counter
|
||||
if [ "$window_count" -ge "$max_windows" ]; then
|
||||
window_count=$(( window_count + 1 ))
|
||||
continue
|
||||
fi
|
||||
|
||||
# Show the user-selected window property
|
||||
case "$show" in
|
||||
"window_class") w_name="$cls" ;;
|
||||
"window_classname") w_name="$cname" ;;
|
||||
"window_title") w_name="$title" ;;
|
||||
esac
|
||||
|
||||
# Use user-selected character case
|
||||
case "$char_case" in
|
||||
"lower") w_name=$(
|
||||
echo "$w_name" | tr '[:upper:]' '[:lower:]'
|
||||
) ;;
|
||||
"upper") w_name=$(
|
||||
echo "$w_name" | tr '[:lower:]' '[:upper:]'
|
||||
) ;;
|
||||
esac
|
||||
|
||||
# Truncate displayed name to user-selected limit
|
||||
if [ "${#w_name}" -gt "$char_limit" ]; then
|
||||
w_name="$(echo "$w_name" | cut -c1-$((char_limit-1)))…"
|
||||
fi
|
||||
|
||||
# Apply add-spaces setting
|
||||
if [ "$add_spaces" = "true" ]; then
|
||||
w_name=" $w_name "
|
||||
fi
|
||||
|
||||
# Add left and right formatting to displayed name
|
||||
if [ "$wid" = "$active_wid" ]; then
|
||||
w_name="${active_left}${w_name}${active_right}"
|
||||
else
|
||||
w_name="${inactive_left}${w_name}${inactive_right}"
|
||||
fi
|
||||
|
||||
# Add separator unless the window is first in list
|
||||
if [ "$window_count" != 0 ]; then
|
||||
printf "%s" "$separator"
|
||||
fi
|
||||
|
||||
# Add on-click action Polybar formatting
|
||||
printf "%s" "%{A1:$on_click raise_or_minimize $wid:}"
|
||||
printf "%s" "%{A2:$on_click close $wid:}"
|
||||
printf "%s" "%{A3:$on_click slop_resize $wid:}"
|
||||
printf "%s" "%{A4:$on_click increment_size $wid:}"
|
||||
printf "%s" "%{A5:$on_click decrement_size $wid:}"
|
||||
# Print the final window name
|
||||
printf "%s" "$w_name"
|
||||
printf "%s" "%{A}%{A}%{A}%{A}%{A}"
|
||||
|
||||
window_count=$(( window_count + 1 ))
|
||||
done <<-EOF
|
||||
$(wmctrl -lx)
|
||||
EOF
|
||||
|
||||
# After printing all the windows,
|
||||
# print number of hidden windows
|
||||
if [ "$window_count" -gt "$max_windows" ]; then
|
||||
printf "%s" "+$(( window_count - max_windows ))"
|
||||
fi
|
||||
|
||||
# Print empty desktop message if no windows are open
|
||||
if [ "$window_count" = 0 ]; then
|
||||
printf "%s" "$empty_desktop_message"
|
||||
fi
|
||||
|
||||
# Print newline
|
||||
echo ""
|
||||
}
|
||||
|
||||
# --- }}}
|
||||
|
||||
main "$@"
|
66
linux/.config/rofi/amora.rasi
Normal file
66
linux/.config/rofi/amora.rasi
Normal file
|
@ -0,0 +1,66 @@
|
|||
/* ==========================================================================
|
||||
Rofi color theme
|
||||
|
||||
Based on the Gruvbox color scheme for Vim by morhetz
|
||||
https://github.com/morhetz/gruvbox
|
||||
|
||||
File: gruvbox-dark.rasi
|
||||
Desc: Gruvbox dark color theme for Rofi
|
||||
Author: bardisty <b@bah.im>
|
||||
Source: https://github.com/bardisty/gruvbox-rofi
|
||||
Modified: Mon Feb 12 2018 04:08:43 PST -0800
|
||||
========================================================================== */
|
||||
|
||||
* {
|
||||
/* Theme settings */
|
||||
highlight: bold italic;
|
||||
scrollbar: true;
|
||||
|
||||
/* Gruvbox dark colors */
|
||||
gruvbox-dark-bg0: #2a2331;
|
||||
gruvbox-dark-bg0-soft: #2a2331;
|
||||
gruvbox-dark-bg3: #e83f80;
|
||||
gruvbox-dark-fg0: #dedbeb;
|
||||
gruvbox-dark-fg1: #dedbeb;
|
||||
gruvbox-dark-red-dark: #cc241d;
|
||||
gruvbox-dark-red-light: #fb4934;
|
||||
gruvbox-dark-yellow-dark: #d79921;
|
||||
gruvbox-dark-yellow-light: #fabd2f;
|
||||
gruvbox-dark-gray: #634e75;
|
||||
|
||||
/* Theme colors */
|
||||
background: @gruvbox-dark-bg0;
|
||||
background-color: @background;
|
||||
foreground: @gruvbox-dark-fg1;
|
||||
border-color: @gruvbox-dark-gray;
|
||||
separatorcolor: @border-color;
|
||||
scrollbar-handle: @border-color;
|
||||
|
||||
normal-background: @background;
|
||||
normal-foreground: @foreground;
|
||||
alternate-normal-background: @gruvbox-dark-bg0-soft;
|
||||
alternate-normal-foreground: @foreground;
|
||||
selected-normal-background: @gruvbox-dark-bg3;
|
||||
selected-normal-foreground: @gruvbox-dark-fg0;
|
||||
|
||||
active-background: @gruvbox-dark-yellow-dark;
|
||||
active-foreground: @background;
|
||||
alternate-active-background: @active-background;
|
||||
alternate-active-foreground: @active-foreground;
|
||||
selected-active-background: @gruvbox-dark-yellow-light;
|
||||
selected-active-foreground: @active-foreground;
|
||||
|
||||
urgent-background: @gruvbox-dark-red-dark;
|
||||
urgent-foreground: @background;
|
||||
alternate-urgent-background: @urgent-background;
|
||||
alternate-urgent-foreground: @urgent-foreground;
|
||||
selected-urgent-background: @gruvbox-dark-red-light;
|
||||
selected-urgent-foreground: @urgent-foreground;
|
||||
}
|
||||
|
||||
@import "gruvbox-common.rasi"
|
||||
|
||||
window {
|
||||
width: 512px;
|
||||
height: 384px;
|
||||
}
|
148
linux/.config/rofi/config.rasi
Normal file
148
linux/.config/rofi/config.rasi
Normal file
|
@ -0,0 +1,148 @@
|
|||
configuration {
|
||||
modi: "drun,run,combi";
|
||||
font: "Terminus 9";
|
||||
/* location: 0;*/
|
||||
/* yoffset: 0;*/
|
||||
/* xoffset: 0;*/
|
||||
/* fixed-num-lines: true;*/
|
||||
show-icons: true;
|
||||
/* terminal: "rofi-sensible-terminal";*/
|
||||
/* ssh-client: "ssh";*/
|
||||
/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
|
||||
/* run-command: "{cmd}";*/
|
||||
/* run-list-command: "";*/
|
||||
/* run-shell-command: "{terminal} -e {cmd}";*/
|
||||
/* window-command: "wmctrl -i -R {window}";*/
|
||||
/* window-match-fields: "all";*/
|
||||
icon-theme: "Chicago95-tux";
|
||||
/* drun-match-fields: "name,generic,exec,categories,keywords";*/
|
||||
/* drun-categories: ;*/
|
||||
/* drun-show-actions: false;*/
|
||||
/* drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/
|
||||
/* drun-url-launcher: "xdg-open";*/
|
||||
/* disable-history: false;*/
|
||||
/* ignored-prefixes: "";*/
|
||||
/* sort: false;*/
|
||||
/* sorting-method: "normal";*/
|
||||
/* case-sensitive: false;*/
|
||||
/* cycle: true;*/
|
||||
/* sidebar-mode: false;*/
|
||||
/* hover-select: false;*/
|
||||
/* eh: 1;*/
|
||||
/* auto-select: false;*/
|
||||
/* parse-hosts: false;*/
|
||||
/* parse-known-hosts: true;*/
|
||||
combi-modi: "drun,run";
|
||||
/* matching: "normal";*/
|
||||
/* tokenize: true;*/
|
||||
/* m: "-5";*/
|
||||
/* filter: ;*/
|
||||
/* dpi: -1;*/
|
||||
/* threads: 0;*/
|
||||
/* scroll-method: 0;*/
|
||||
/* window-format: "{w} {c} {t}";*/
|
||||
/* click-to-exit: true;*/
|
||||
/* theme: "amora";*/
|
||||
/* max-history-size: 25;*/
|
||||
/* combi-hide-mode-prefix: false;*/
|
||||
/* matching-negate-char: '-' /* unsupported */;*/
|
||||
/* cache-dir: ;*/
|
||||
/* window-thumbnail: false;*/
|
||||
/* drun-use-desktop-cache: false;*/
|
||||
/* drun-reload-desktop-cache: false;*/
|
||||
/* normalize-match: false;*/
|
||||
/* steal-focus: false;*/
|
||||
application-fallback-icon: "application-default-icon";
|
||||
/* pid: "/run/user/1000/rofi.pid";*/
|
||||
/* display-window: ;*/
|
||||
/* display-windowcd: ;*/
|
||||
/* display-run: ;*/
|
||||
/* display-ssh: ;*/
|
||||
/* display-drun: ;*/
|
||||
/* display-combi: ;*/
|
||||
/* display-keys: ;*/
|
||||
/* display-filebrowser: ;*/
|
||||
/* kb-primary-paste: "Control+V,Shift+Insert";*/
|
||||
/* kb-secondary-paste: "Control+v,Insert";*/
|
||||
/* kb-clear-line: "Control+w";*/
|
||||
/* kb-move-front: "Control+a";*/
|
||||
/* kb-move-end: "Control+e";*/
|
||||
/* kb-move-word-back: "Alt+b,Control+Left";*/
|
||||
/* kb-move-word-forward: "Alt+f,Control+Right";*/
|
||||
/* kb-move-char-back: "Left,Control+b";*/
|
||||
/* kb-move-char-forward: "Right,Control+f";*/
|
||||
/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
|
||||
/* kb-remove-word-forward: "Control+Alt+d";*/
|
||||
/* kb-remove-char-forward: "Delete,Control+d";*/
|
||||
/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
|
||||
/* kb-remove-to-eol: "Control+k";*/
|
||||
/* kb-remove-to-sol: "Control+u";*/
|
||||
/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
|
||||
/* kb-accept-custom: "Control+Return";*/
|
||||
/* kb-accept-custom-alt: "Control+Shift+Return";*/
|
||||
/* kb-accept-alt: "Shift+Return";*/
|
||||
/* kb-delete-entry: "Shift+Delete";*/
|
||||
/* kb-mode-next: "Shift+Right,Control+Tab";*/
|
||||
/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
|
||||
/* kb-mode-complete: "Control+l";*/
|
||||
/* kb-row-left: "Control+Page_Up";*/
|
||||
/* kb-row-right: "Control+Page_Down";*/
|
||||
/* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/
|
||||
/* kb-row-down: "Down,Control+n";*/
|
||||
/* kb-row-tab: "Tab";*/
|
||||
/* kb-page-prev: "Page_Up";*/
|
||||
/* kb-page-next: "Page_Down";*/
|
||||
/* kb-row-first: "Home,KP_Home";*/
|
||||
/* kb-row-last: "End,KP_End";*/
|
||||
/* kb-row-select: "Control+space";*/
|
||||
/* kb-screenshot: "Alt+S";*/
|
||||
/* kb-ellipsize: "Alt+period";*/
|
||||
/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
|
||||
/* kb-toggle-sort: "Alt+grave";*/
|
||||
/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
|
||||
/* kb-custom-1: "Alt+1";*/
|
||||
/* kb-custom-2: "Alt+2";*/
|
||||
/* kb-custom-3: "Alt+3";*/
|
||||
/* kb-custom-4: "Alt+4";*/
|
||||
/* kb-custom-5: "Alt+5";*/
|
||||
/* kb-custom-6: "Alt+6";*/
|
||||
/* kb-custom-7: "Alt+7";*/
|
||||
/* kb-custom-8: "Alt+8";*/
|
||||
/* kb-custom-9: "Alt+9";*/
|
||||
/* kb-custom-10: "Alt+0";*/
|
||||
/* kb-custom-11: "Alt+exclam";*/
|
||||
/* kb-custom-12: "Alt+at";*/
|
||||
/* kb-custom-13: "Alt+numbersign";*/
|
||||
/* kb-custom-14: "Alt+dollar";*/
|
||||
/* kb-custom-15: "Alt+percent";*/
|
||||
/* kb-custom-16: "Alt+dead_circumflex";*/
|
||||
/* kb-custom-17: "Alt+ampersand";*/
|
||||
/* kb-custom-18: "Alt+asterisk";*/
|
||||
/* kb-custom-19: "Alt+parenleft";*/
|
||||
/* kb-select-1: "Super+1";*/
|
||||
/* kb-select-2: "Super+2";*/
|
||||
/* kb-select-3: "Super+3";*/
|
||||
/* kb-select-4: "Super+4";*/
|
||||
/* kb-select-5: "Super+5";*/
|
||||
/* kb-select-6: "Super+6";*/
|
||||
/* kb-select-7: "Super+7";*/
|
||||
/* kb-select-8: "Super+8";*/
|
||||
/* kb-select-9: "Super+9";*/
|
||||
/* kb-select-10: "Super+0";*/
|
||||
/* ml-row-left: "ScrollLeft";*/
|
||||
/* ml-row-right: "ScrollRight";*/
|
||||
/* ml-row-up: "ScrollUp";*/
|
||||
/* ml-row-down: "ScrollDown";*/
|
||||
/* me-select-entry: "MousePrimary";*/
|
||||
/* me-accept-entry: "MouseDPrimary";*/
|
||||
/* me-accept-custom: "Control+MouseDPrimary";*/
|
||||
timeout {
|
||||
action: "kb-cancel";
|
||||
delay: 0;
|
||||
}
|
||||
filebrowser {
|
||||
directories-first: true;
|
||||
sorting-method: "name";
|
||||
}
|
||||
}
|
||||
@theme "amora"
|
108
linux/.config/sxhkd/sxhkdrc
Normal file
108
linux/.config/sxhkd/sxhkdrc
Normal file
|
@ -0,0 +1,108 @@
|
|||
#
|
||||
# wm independent hotkeys
|
||||
#
|
||||
|
||||
# terminal emulator
|
||||
super + Return
|
||||
alacritty
|
||||
|
||||
# program launcher
|
||||
super + @space
|
||||
rofi -show combi
|
||||
|
||||
# make sxhkd reload its configuration files:
|
||||
super + Escape
|
||||
pkill -USR1 -x sxhkd
|
||||
|
||||
#
|
||||
# bspwm hotkeys
|
||||
#
|
||||
|
||||
# quit/restart bspwm
|
||||
super + alt + {q,r}
|
||||
bspc {quit,wm -r}
|
||||
|
||||
# close and kill
|
||||
super + {_,shift + }q
|
||||
bspc node -{c,k}
|
||||
|
||||
# alternate between the tiled and monocle layout
|
||||
super + m
|
||||
bspc desktop -l next
|
||||
|
||||
# send the newest marked node to the newest preselected node
|
||||
super + y
|
||||
bspc node newest.marked.local -n newest.!automatic.local
|
||||
|
||||
# swap the current node and the biggest window
|
||||
super + g
|
||||
bspc node -s biggest.window
|
||||
|
||||
#
|
||||
# state/flags
|
||||
#
|
||||
|
||||
# set the window state
|
||||
super + {t,shift + t,f,shift + f}
|
||||
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
|
||||
|
||||
# set the node flags
|
||||
super + ctrl + {m,x,y,z}
|
||||
bspc node -g {marked,locked,sticky,private}
|
||||
|
||||
#
|
||||
# focus/swap
|
||||
#
|
||||
|
||||
# focus the node in the given direction
|
||||
super + {_,shift + }{a,s,w,d}
|
||||
bspc node -{f,s} {west,south,north,east}
|
||||
|
||||
# focus the node for the given path jump
|
||||
super + {p,b,comma,period}
|
||||
bspc node -f @{parent,brother,first,second}
|
||||
|
||||
# focus the next/previous window in the current desktop
|
||||
super + {_,shift + }c
|
||||
bspc node -f {next,prev}.local.!hidden.window
|
||||
|
||||
# focus the next/previous desktop in the current monitor
|
||||
super + bracket{left,right}
|
||||
bspc desktop -f {prev,next}.local
|
||||
|
||||
# focus the last node/desktop
|
||||
super + {grave,Tab}
|
||||
bspc {node,desktop} -f last
|
||||
|
||||
# focus the older or newer node in the focus history
|
||||
super + {o,i}
|
||||
bspc wm -h off; \
|
||||
bspc node {older,newer} -f; \
|
||||
bspc wm -h on
|
||||
|
||||
# focus or send to the given desktop
|
||||
super + {_,shift + }{1-9,0}
|
||||
bspc {desktop -f,node -d} '^{1-9,10}'
|
||||
|
||||
#
|
||||
# move desktops
|
||||
#
|
||||
|
||||
super + ctrl + {a,s,w,d}
|
||||
bspc {desktop -f prev,node -d prev,node -d next,desktop -f next}
|
||||
|
||||
#
|
||||
# move/resize
|
||||
#
|
||||
|
||||
# expand a window by moving one of its side outward
|
||||
super + alt + {a,s,w,d}
|
||||
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 + {a,s,w,d}
|
||||
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
|
||||
|
||||
# move a floating window
|
||||
#super + {Left,Down,Up,Right}
|
||||
# bspc node -v {-20 0,0 20,0 -20,20 0}
|
18
linux/.local/bin/binaryclock.sh
Normal file
18
linux/.local/bin/binaryclock.sh
Normal file
|
@ -0,0 +1,18 @@
|
|||
#!/bin/bash
|
||||
|
||||
row0=("⠀" "⠈" "⠐" "⠘" "⠠" "⠨" "⠰" "⠸" "⢀" "⢈")
|
||||
row1=("⠁" "⠉" "⠑" "⠙" "⠡" "⠩" "⠱" "⠹" "⢁" "⢉")
|
||||
row2=("⠂" "⠊" "⠒" "⠚" "⠢" "⠪" "⠲" "⠺" "⢂" "⢊")
|
||||
row3=("⠃" "⠋" "⠓" "⠛" "⠣" "⠫" "⠳" "⠻" "⢃" "⢋")
|
||||
row4=("⠄" "⠌" "⠔" "⠜" "⠤" "⠬" "⠴" "⠼" "⢄" "⢌")
|
||||
row5=("⠅" "⠍" "⠕" "⠝" "⠥" "⠭" "⠵" "⠽" "⢅" "⢍")
|
||||
chars=("${row0[@]}" "${row1[@]}" "${row2[@]}" "${row3[@]}" "${row4[@]}" "${row5[@]}")
|
||||
|
||||
hour=$(date +"%H")
|
||||
minute=$(date +"%M")
|
||||
second=$(date +"%S")
|
||||
[[ $hour = 0* ]] && hour=${hour:1:1}
|
||||
[[ $minute = 0* ]] && minute=${minute:1:1}
|
||||
[[ $second = 0* ]] && second=${second:1:1}
|
||||
|
||||
echo "${chars[$hour]} ${chars[$minute]} ${chars[$second]}"
|
7
linux/.local/bin/polybar.sh
Normal file
7
linux/.local/bin/polybar.sh
Normal file
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
pkill polybar
|
||||
|
||||
while pgrep -x polybar > /dev/null; do sleep 1; done
|
||||
|
||||
polybar bar >> /dev/null 2>&1 &
|
Loading…
Add table
Add a link
Reference in a new issue