Updated
This commit is contained in:
0
artix/herbstluftwm/autostart
Executable file → Normal file
0
artix/herbstluftwm/autostart
Executable file → Normal file
0
artix/polybar/launch.sh
Executable file → Normal file
0
artix/polybar/launch.sh
Executable file → Normal file
0
artix/polybar/scripts/bat_toggle.sh
Executable file → Normal file
0
artix/polybar/scripts/bat_toggle.sh
Executable file → Normal file
0
artix/polybar/scripts/brightnessctl.sh
Executable file → Normal file
0
artix/polybar/scripts/brightnessctl.sh
Executable file → Normal file
@ -1,47 +0,0 @@
|
||||
#!/bin/sh
|
||||
# ________
|
||||
# | _____ \
|
||||
# | | _/ / Pim Nelissen
|
||||
# | | /__/ https://pim.wtf/
|
||||
# | |
|
||||
# \_|
|
||||
|
||||
# Alacritty config.
|
||||
# Comments and examples have been removed for the sake of brevity. Please consult the alacritty GitHub for detailed example config.
|
||||
|
||||
env:
|
||||
TERM: xterm-256color
|
||||
|
||||
window:
|
||||
padding:
|
||||
x: 4
|
||||
y: 4
|
||||
|
||||
# Font configuration
|
||||
font:
|
||||
normal:
|
||||
family: RobotoMono
|
||||
|
||||
# Bold font face
|
||||
bold:
|
||||
family: RobotoMono
|
||||
style: Bold
|
||||
|
||||
# Italic font face
|
||||
italic:
|
||||
family: RobotoMono
|
||||
style: Italic
|
||||
|
||||
# Point size
|
||||
size: 12.0
|
||||
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: '#191919'
|
||||
# foreground: '#c5c8c6'
|
||||
|
||||
# Vi mode cursor colors
|
||||
vi_mode_cursor:
|
||||
text: CellBackground
|
||||
cursor: CellForeground
|
@ -1,44 +0,0 @@
|
||||
#
|
||||
# ________
|
||||
# | _____ \
|
||||
# | | _/ / Pim Nelissen
|
||||
# | | /__/ https://pim.wtf/
|
||||
# | |
|
||||
# \_|
|
||||
#
|
||||
# betterlockscreen configuration file.
|
||||
|
||||
# Options
|
||||
display_on=0
|
||||
span_image=false
|
||||
lock_timeout=300
|
||||
fx_list=(dim blur dimblur pixel dimpixel color)
|
||||
dim_level=40
|
||||
blur_level=1
|
||||
pixel_scale=10,1000
|
||||
solid_color=333333
|
||||
wallpaper_cmd="nitrogen --set-zoom-fill ~/.wallpapers/sf.jpg"
|
||||
quiet=false
|
||||
|
||||
# Theme
|
||||
loginbox=00000066
|
||||
loginshadow=00000000
|
||||
locktext="Type password to unlock..."
|
||||
font="roboto-mono"
|
||||
ringcolor=ffffffff
|
||||
insidecolor=00000000
|
||||
separatorcolor=00000000
|
||||
ringvercolor=ffffffff
|
||||
insidevercolor=00000000
|
||||
ringwrongcolor=ffffffff
|
||||
insidewrongcolor=d23c3dff
|
||||
timecolor=ffffffff
|
||||
time_format="%H:%M:%S"
|
||||
greetercolor=ffffffff
|
||||
layoutcolor=ffffffff
|
||||
keyhlcolor=d23c3dff
|
||||
bshlcolor=d23c3dff
|
||||
verifcolor=ffffffff
|
||||
wrongcolor=d23c3dff
|
||||
modifcolor=d23c3dff
|
||||
bgcolor=000000ff
|
@ -15,7 +15,8 @@ pgrep -x sxhkd > /dev/null || sxhkd &
|
||||
$HOME/.config/polybar/launch.sh
|
||||
|
||||
# Set wallpaper.
|
||||
feh --bg-fill $HOME/.wallpapers/mountains.jpeg
|
||||
feh --bg-fill $HOME/Pictures/Wallpapers/Forest.png
|
||||
picom -b &
|
||||
|
||||
# Load BT & Network tray applets.
|
||||
blueman-manager &
|
||||
@ -52,3 +53,6 @@ bspc rule -a Nextcloud state=floating
|
||||
bspc rule -a Galculator state=floating
|
||||
bspc rule -a Zathura state=tiled
|
||||
bspc rule -a Emacs state=tiled
|
||||
|
||||
bspc config normal_border_color "#34494c"
|
||||
bspc config focused_border_color "#8aa9a1"
|
||||
|
33
void/kitty/kitty.conf
Normal file
33
void/kitty/kitty.conf
Normal file
@ -0,0 +1,33 @@
|
||||
font_family RobotoMono
|
||||
bold_font auto
|
||||
italic_font auto
|
||||
bold_italic_font auto
|
||||
|
||||
font_size 14.0
|
||||
|
||||
|
||||
background #101e1f
|
||||
foreground #aacac1
|
||||
cursor #cccccc
|
||||
selection_background #e96153
|
||||
selection_foreground #101e1f
|
||||
|
||||
color0 #242426
|
||||
color8 #34494c
|
||||
color1 #f8501a
|
||||
color9 #f64319
|
||||
color2 #3d7155
|
||||
color10 #74eb4c
|
||||
color3 #f9761d
|
||||
color11 #fcc224
|
||||
color4 #2c70b7
|
||||
color12 #3393c9
|
||||
color5 #f02d4e
|
||||
color13 #e75e4e
|
||||
color6 #3ba0a5
|
||||
color14 #4ebce5
|
||||
color7 #8aa9a1
|
||||
color15 #8b735a
|
||||
|
||||
# vim:fileencoding=utf-8:ft=conf
|
||||
|
@ -10,12 +10,11 @@
|
||||
# Main settings.
|
||||
backend = "glx";
|
||||
experimental-backends = true;
|
||||
vsync = "true";
|
||||
refresh-rate = 60;
|
||||
vsync = true;
|
||||
|
||||
# Opacity and dimming.
|
||||
active-opacity = 0.92;
|
||||
inactive-opacity = 0.92;
|
||||
active-opacity = 1.0;
|
||||
inactive-opacity = 1.0;
|
||||
frame-opacity = 1.0;
|
||||
opacity = 1.0
|
||||
inactive-opacity-override = false
|
||||
@ -23,47 +22,17 @@ inactive-dim = 0.0
|
||||
inactive-dim-fixed = 1.0
|
||||
focus-exclude = []
|
||||
|
||||
# Opacity exceptions.
|
||||
opacity-rule = [
|
||||
"100:name *= 'Netflix'",
|
||||
"100:name *= 'RawTherapee'",
|
||||
"100:name *= 'YouTube'",
|
||||
"100:name *= 'Invidious'",
|
||||
"100:name *= 'mpv'",
|
||||
"100:name *= 'GIMP'",
|
||||
"100:name *= 'Minecraft'",
|
||||
"100:name *= 'Piped'",
|
||||
"100:name *= 'QEMU'"
|
||||
];
|
||||
|
||||
# Blur
|
||||
blur:
|
||||
{
|
||||
method = "dual_kawase";
|
||||
strength = 3;
|
||||
deviation = 1.0;
|
||||
background = false;
|
||||
background-frame = false;
|
||||
background-fixed = false;
|
||||
kern = "3x3box"
|
||||
}
|
||||
|
||||
# Shadows
|
||||
shadow = true;
|
||||
shadow-opacity = 0.5;
|
||||
shadow-radius = 15;
|
||||
shadow-offset-x = -15;
|
||||
shadow-offset-y = -15;
|
||||
|
||||
# Corners
|
||||
corner-radius = 12;
|
||||
round-borders = 1;
|
||||
shadow-opacity = 0.8;
|
||||
shadow-radius = 20;
|
||||
shadow-offset-x = -20;
|
||||
shadow-offset-y = -20;
|
||||
|
||||
wintypes:
|
||||
{
|
||||
normal = { fade = false; shadow = true; }
|
||||
tooltip = { fade = true; shadow = true; opacity = 0.9; focus = true; full-shadow = false; };
|
||||
dock = { shadow = false; }
|
||||
dnd = { shadow = false; }
|
||||
popup_menu = { opacity = 0.9; }
|
||||
dropdown_menu = { opacity = 1.0; }
|
||||
|
@ -1,233 +0,0 @@
|
||||
;==========================================================
|
||||
;
|
||||
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
|
||||
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
|
||||
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
|
||||
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
|
||||
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
|
||||
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
|
||||
;
|
||||
;==========================================================
|
||||
|
||||
[colors]
|
||||
;background = ${xrdb:color0:#222}
|
||||
background = #222
|
||||
background-alt = #444
|
||||
;foreground = ${xrdb:color7:#222}
|
||||
foreground = #dfdfdf
|
||||
foreground-alt = #555
|
||||
primary = #ffb52a
|
||||
secondary = #e60053
|
||||
alert = #bd2c40
|
||||
|
||||
[bar/example]
|
||||
;monitor = ${env:MONITOR:HDMI-1}
|
||||
width = 100%
|
||||
height = 32
|
||||
;offset-x = 1%
|
||||
;offset-y = 1%
|
||||
radius = 1.0
|
||||
fixed-center = true
|
||||
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
line-size = 3
|
||||
line-color = #f00
|
||||
|
||||
border-size = 4
|
||||
border-color = #00000000
|
||||
|
||||
padding-left = 0
|
||||
padding-right = 1
|
||||
|
||||
module-margin-left = 1
|
||||
module-margin-right = 1
|
||||
|
||||
font-0 = RobotoMono:pixelsize=10;1
|
||||
font-1 = noto-fonts-emoji:pixelsize=10;1
|
||||
|
||||
modules-left = bspwm
|
||||
modules-center = mpd
|
||||
modules-right = backlight-acpi battery wlan date powermenu
|
||||
|
||||
tray-position = right
|
||||
tray-padding = 1
|
||||
;tray-background = #0063ff
|
||||
|
||||
wm-restack = bspwm
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
|
||||
[module/bspwm]
|
||||
type = internal/bspwm
|
||||
|
||||
label-focused = %index%
|
||||
label-focused-background = ${colors.background-alt}
|
||||
label-focused-underline= ${colors.primary}
|
||||
label-focused-padding = 2
|
||||
|
||||
label-occupied = %index%
|
||||
label-occupied-padding = 2
|
||||
|
||||
label-urgent = %index%!
|
||||
label-urgent-background = ${colors.alert}
|
||||
label-urgent-padding = 2
|
||||
|
||||
label-empty = %index%
|
||||
label-empty-foreground = ${colors.foreground-alt}
|
||||
label-empty-padding = 2
|
||||
|
||||
; Separator in between workspaces
|
||||
; label-separator = |
|
||||
|
||||
[module/xbacklight]
|
||||
type = internal/xbacklight
|
||||
|
||||
format = <label> <bar>
|
||||
label = BL
|
||||
|
||||
bar-width = 10
|
||||
bar-indicator = |
|
||||
bar-indicator-foreground = #fff
|
||||
bar-indicator-font = 2
|
||||
bar-fill = ─
|
||||
bar-fill-font = 2
|
||||
bar-fill-foreground = #9f78e1
|
||||
bar-empty = ─
|
||||
bar-empty-font = 2
|
||||
bar-empty-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/backlight-acpi]
|
||||
inherit = module/xbacklight
|
||||
type = internal/backlight
|
||||
card = intel_backlight
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 2
|
||||
format-prefix = " "
|
||||
format-prefix-foreground = ${colors.foreground-alt}
|
||||
format-underline = #f90000
|
||||
label = %percentage:2%%
|
||||
|
||||
[module/wlan]
|
||||
type = internal/network
|
||||
interface = wlp8s0
|
||||
interval = 3.0
|
||||
|
||||
format-connected = <ramp-signal> <label-connected>
|
||||
format-connected-underline = #9f78e1
|
||||
label-connected = %essid%
|
||||
|
||||
format-disconnected =
|
||||
;format-disconnected = <label-disconnected>
|
||||
;format-disconnected-underline = ${self.format-connected-underline}
|
||||
;label-disconnected = %ifname% disconnected
|
||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
||||
|
||||
ramp-signal-0 =
|
||||
ramp-signal-1 =
|
||||
ramp-signal-2 =
|
||||
ramp-signal-3 =
|
||||
ramp-signal-4 =
|
||||
ramp-signal-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/eth]
|
||||
type = internal/network
|
||||
interface = void0
|
||||
interval = 3.0
|
||||
|
||||
format-connected-underline = #55aa55
|
||||
format-connected-prefix = " "
|
||||
format-connected-prefix-foreground = ${colors.foreground-alt}
|
||||
label-connected = %local_ip%
|
||||
|
||||
format-disconnected =
|
||||
;format-disconnected = <label-disconnected>
|
||||
;format-disconnected-underline = ${self.format-connected-underline}
|
||||
;label-disconnected = %ifname% disconnected
|
||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
|
||||
date = %Y-%m-%d
|
||||
date-alt = %Y-%m-%d
|
||||
|
||||
time = %H:%M:%S
|
||||
time-alt = %H:%M:%S
|
||||
|
||||
format-prefix =
|
||||
format-prefix-foreground = ${colors.foreground-alt}
|
||||
format-underline = #0a6cf5
|
||||
|
||||
label = %date% %time%
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
battery = BAT1
|
||||
adapter = ACAD
|
||||
full-at = 98
|
||||
|
||||
format-charging = <animation-charging> <label-charging>
|
||||
format-charging-underline = #ffb52a
|
||||
|
||||
format-discharging = <animation-discharging> <label-discharging>
|
||||
format-discharging-underline = ${self.format-charging-underline}
|
||||
|
||||
format-full-prefix = " "
|
||||
format-full-prefix-foreground = ${colors.foreground-alt}
|
||||
format-full-underline = ${self.format-charging-underline}
|
||||
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-foreground = ${colors.foreground-alt}
|
||||
|
||||
animation-charging-0 =
|
||||
animation-charging-1 =
|
||||
animation-charging-2 =
|
||||
animation-charging-foreground = ${colors.foreground-alt}
|
||||
animation-charging-framerate = 750
|
||||
|
||||
animation-discharging-0 =
|
||||
animation-discharging-1 =
|
||||
animation-discharging-2 =
|
||||
animation-discharging-foreground = ${colors.foreground-alt}
|
||||
animation-discharging-framerate = 750
|
||||
|
||||
[module/temperature]
|
||||
type = internal/temperature
|
||||
thermal-zone = 0
|
||||
warn-temperature = 60
|
||||
|
||||
format = <ramp> <label>
|
||||
format-underline = #f50a4d
|
||||
format-warn = <ramp> <label-warn>
|
||||
format-warn-underline = ${self.format-underline}
|
||||
|
||||
label = %temperature-c%
|
||||
label-warn = %temperature-c%
|
||||
label-warn-foreground = ${colors.secondary}
|
||||
|
||||
ramp-0 =
|
||||
ramp-1 =
|
||||
ramp-2 =
|
||||
ramp-foreground = ${colors.foreground-alt}
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
;compositing-background = xor
|
||||
;compositing-background = screen
|
||||
;compositing-foreground = source
|
||||
;compositing-border = over
|
||||
;pseudo-transparency = false
|
||||
|
||||
[global/wm]
|
||||
margin-top = 5
|
||||
margin-bottom = 5
|
||||
|
||||
; vim:ft=dosini
|
@ -1,2 +0,0 @@
|
||||
# Visit https://developers.coinranking.com/create-account to make an account and generate a free API key.
|
||||
# ADD YOUR API KEY ON A NEW LINE BELOW HERE.
|
@ -1,198 +0,0 @@
|
||||
# ________
|
||||
# | _____ \
|
||||
# | | _/ / Pim Nelissen
|
||||
# | | /__/ https://pim.wtf/
|
||||
# | |
|
||||
# \_|
|
||||
|
||||
# Polybar configuation file.
|
||||
|
||||
[colors]
|
||||
background = #dd191919
|
||||
foreground = #ddffffff
|
||||
|
||||
background-alt = #444
|
||||
foreground-alt = #555
|
||||
|
||||
primary = #ffb52a
|
||||
alert = #bd2c40
|
||||
|
||||
[bar/top]
|
||||
width = 1890
|
||||
height = 35
|
||||
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
border-color = #00000000
|
||||
|
||||
offset-y = 15
|
||||
offset-x = 15
|
||||
|
||||
padding-left = 0
|
||||
padding-right = 10
|
||||
|
||||
spacing = 1
|
||||
module-margin-left = 1
|
||||
|
||||
font-0 = RobotoMono:size=11;2
|
||||
font-1 = MaterialIcons;3
|
||||
|
||||
modules-left = bspwm
|
||||
modules-right = xbps-updates pulseaudio-control battery
|
||||
modules-center = date
|
||||
fixed-center = true
|
||||
|
||||
tray-position = right
|
||||
tray-detached = true
|
||||
tray-padding = 1
|
||||
|
||||
[module/xbps-updates]
|
||||
type = custom/script
|
||||
exec = ~/.config/polybar/scripts/xbps-updates.sh
|
||||
click-left = alacritty -e sudo xbps-install -Su
|
||||
interval = 60
|
||||
label-foreground = ${colors.foreground}
|
||||
|
||||
[module/pulseaudio-control]
|
||||
type = custom/script
|
||||
tail = true
|
||||
label-foreground = ${colors.foreground}
|
||||
|
||||
exec = ~/.config/polybar/scripts/pulseaudio-control.bash --icons-volume ", , " --icon-muted "" --sink-nicknames-from "alsa.card_name" --sink-nickname "usb-Topping_D30-00.analog-stereo: D30" --sink-nickname "alsa_output.pci-0000_00_1f.3.analog-stereo.monitor: Speakers" listen
|
||||
click-right = exec pavucontrol &
|
||||
click-left = ~/.config/polybar/scripts/pulseaudio-control.bash togmute
|
||||
click-middle = ~/.config/polybar/scripts/pulseaudio-control.bash --sink-blacklist "alsa_output.pci-0000_00_1f.3.analog-stereo.monitor" next-sink
|
||||
scroll-up = ~/.config/polybar/scripts/pulseaudio-control.bash --volume-max 130 up
|
||||
scroll-down = ~/.config/polybar/scripts/pulseaudio-control.bash --volume-max 130 down
|
||||
|
||||
[module/brightnessctl]
|
||||
type = custom/script
|
||||
exec = ~/.config/polybar/scripts/brightnessctl.sh
|
||||
|
||||
scroll-up = exec brightnessctl set +5%
|
||||
scroll-down = exec brightnessctl set 5%-
|
||||
interval = 0.5
|
||||
|
||||
label = %output%
|
||||
label-foreground = ${colors.foreground}
|
||||
|
||||
[module/xwindow]
|
||||
type = internal/xwindow
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
battery = BAT1
|
||||
adapter = ACAD
|
||||
full-at = 98
|
||||
|
||||
click-left = ~/.config/polybar/scripts/bat_toggle.sh
|
||||
format-charging = <label-charging>
|
||||
format-discharging = <ramp-capacity><label-discharging>
|
||||
format-full = ""
|
||||
|
||||
format-charging-foreground = #90C2E7
|
||||
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-0-foreground = #DB5461
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-1-foreground = #E9C46A
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-2-foreground = #E9C46A
|
||||
ramp-capacity-3 =
|
||||
ramp-capacity-3-foreground = #169873
|
||||
ramp-capacity-4 =
|
||||
ramp-capacity-4-foreground = #169873
|
||||
|
||||
bar-capacity-width = 10
|
||||
bar-capacity-format = %{+u}%{+o}%fill%%empty%%{-u}%{-o}
|
||||
bar-capacity-fill = █
|
||||
bar-capacity-fill-foreground = #ddffffff
|
||||
bar-capacity-fill-font = 3
|
||||
bar-capacity-empty = █
|
||||
bar-capacity-empty-font = 3
|
||||
bar-capacity-empty-foreground = #44ffffff
|
||||
|
||||
[module/bspwm]
|
||||
type = internal/bspwm
|
||||
|
||||
pin-workspaces = true
|
||||
fuzzy-match = true
|
||||
|
||||
ws-icon-0 = I;
|
||||
ws-icon-1 = II;
|
||||
ws-icon-2 = III;
|
||||
ws-icon-3 = IV;
|
||||
ws-icon-4 = V;
|
||||
ws-icon-5 = VI;
|
||||
ws-icon-6 = VII;
|
||||
ws-icon-7 = VIII;
|
||||
format = <label-state>
|
||||
|
||||
label-monitor = %icon%
|
||||
|
||||
label-focused = %icon%
|
||||
label-focused-background= ${colors.background-alt}
|
||||
label-focused-padding = 1
|
||||
|
||||
label-occupied = %icon%
|
||||
label-occupied-padding = 1
|
||||
|
||||
label-urgent = %icon%
|
||||
label-urgent-background = ${colors.alert}
|
||||
label-urgent-padding = 1
|
||||
|
||||
label-empty = %icon%
|
||||
label-empty-foreground = ${colors.foreground-alt}
|
||||
label-empty-padding = 1
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
date = %H:%M
|
||||
format = <label>
|
||||
; full date: %Y-%m-%d %H:%M:%S
|
||||
|
||||
[module/wlan]
|
||||
type = internal/network
|
||||
interface = enp7s0
|
||||
interval = 5.0
|
||||
|
||||
format-connected = eth
|
||||
|
||||
[module/wireless-network]
|
||||
type = internal/network
|
||||
interface = wlp8s0
|
||||
interval = 5.0
|
||||
ping-interval = 10
|
||||
|
||||
label-connected = %essid%
|
||||
format-connected = <ramp-signal><label-connected>
|
||||
label-disconnected-foreground = ${colors.foreground-alt}
|
||||
|
||||
ramp-signal-0 =
|
||||
ramp-signal-1 =
|
||||
ramp-signal-2 =
|
||||
ramp-signal-3 =
|
||||
ramp-signal-4 =
|
||||
|
||||
animation-packetloss-0 =
|
||||
animation-packetloss-0-foreground = #ffa64c
|
||||
animation-packetloss-1 =
|
||||
animation-packetloss-1-foreground = ${bar/top.foreground}
|
||||
animation-packetloss-framerate = 500
|
||||
|
||||
[module/volume]
|
||||
type = internal/volume
|
||||
speaker-mixer = Speaker
|
||||
headphone-mixer = Headphone
|
||||
headphone-id = 9
|
||||
|
||||
format-volume = <ramp-volume> <label-volume>
|
||||
label-muted = muted
|
||||
label-muted-foreground = #66
|
||||
|
||||
ramp-volume-0 =
|
||||
ramp-volume-1 =
|
||||
ramp-volume-2 =
|
||||
ramp-volume-3 =
|
||||
|
||||
; vim:ft=dosini
|
@ -1,11 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Terminate already running bar instances
|
||||
pkill polybar
|
||||
# If all your bars have ipc enabled, you can also use
|
||||
# polybar-msg cmd quit
|
||||
|
||||
# Launch Polybar, using default config location ~/.config/polybar/config
|
||||
polybar top | tee -a /tmp/polybar.log & disown
|
||||
|
||||
echo "Polybar launched..."
|
@ -1,3 +0,0 @@
|
||||
# Visit https://developers.coinranking.com/create-account to make an account and generate a free API key.
|
||||
# ADD YOUR API KEY ON A NEW LINE BELOW HERE.
|
||||
coinranking667e22ef80713a74e538696d841e19ade62f38679290e928
|
@ -1,9 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
updates=$(xbps-install -Mun 2> /dev/null | wc -l)
|
||||
|
||||
if [ -n "$updates" ] && [ "$updates" -gt 0 ]; then
|
||||
echo " $updates"
|
||||
else
|
||||
echo ""
|
||||
fi
|
@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
BRIGHTNESS_VALUE=`brightnessctl | grep -o "(.*" | tr -d "()"`
|
||||
BRIGHTNESS_NR=${BRIGHTNESS_VALUE//%}
|
||||
|
||||
if [ $BRIGHTNESS_NR -lt 20 ]; then
|
||||
BRIGHTNESS_ICON=''
|
||||
elif [ $BRIGHTNESS_NR -lt 50 ]; then
|
||||
BRIGHTNESS_ICON=''
|
||||
elif [ $BRIGHTNESS_NR -lt 80 ]; then
|
||||
BRIGHTNESS_ICON=''
|
||||
else
|
||||
BRIGHTNESS_ICON=''
|
||||
fi
|
||||
|
||||
echo "$BRIGHTNESS_ICON $BRIGHTNESS_VALUE"
|
||||
|
@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
echo bluetoothctl paired-devices | wc -l
|
@ -1,304 +0,0 @@
|
||||
e900:1st
|
||||
e901:ada
|
||||
e902:adc
|
||||
e903:adx
|
||||
e904:aeon
|
||||
e905:amp
|
||||
e906:anc
|
||||
e907:ant
|
||||
e908:arch
|
||||
e909:ardr
|
||||
e90a:aur
|
||||
e90b:banx
|
||||
e90c:bat
|
||||
e90d:bay
|
||||
e90e:bc
|
||||
e90f:bch
|
||||
e910:bcn
|
||||
e911:bft
|
||||
e912:bnb
|
||||
e913:bnt
|
||||
e914:brk
|
||||
e915:brx
|
||||
e916:bsd
|
||||
e917:bta
|
||||
e918:btc
|
||||
e919:btcd
|
||||
e91a:btg
|
||||
e91b:btm
|
||||
e91c:bts
|
||||
e91d:clam
|
||||
e91e:clo
|
||||
e91f:cloak
|
||||
e920:cvc
|
||||
e921:dao
|
||||
e922:dash
|
||||
e923:dcr
|
||||
e924:dct
|
||||
e925:dent
|
||||
e926:dgb
|
||||
e927:dgd
|
||||
e928:dgx
|
||||
e929:dmd
|
||||
e92a:dnt
|
||||
e92b:doge
|
||||
e92c:edg
|
||||
e92d:emc
|
||||
e92e:eos
|
||||
e92f:erc
|
||||
e930:etc
|
||||
e931:eth
|
||||
e932:exp
|
||||
e933:fc2
|
||||
e934:fcn
|
||||
e935:fct
|
||||
e936:flo
|
||||
e937:frk
|
||||
e938:ftc
|
||||
e939:fun
|
||||
e93a:game
|
||||
e93b:gbg
|
||||
e93c:gbyte
|
||||
e93d:gdc
|
||||
e93e:gemz
|
||||
e93f:gld
|
||||
e940:gno
|
||||
e941:gnt
|
||||
e942:golos
|
||||
e943:grc
|
||||
e944:grs
|
||||
e945:gup
|
||||
e946:awc
|
||||
e947:hmq
|
||||
e948:icn
|
||||
e949:ifc
|
||||
e94a:incnt
|
||||
e94b:ioc
|
||||
e94c:cnd
|
||||
e94d:ixt
|
||||
e94e:jbs
|
||||
e94f:kmd
|
||||
e950:kore
|
||||
e951:lbc
|
||||
e952:ldoge
|
||||
e953:lsk
|
||||
e954:ltc
|
||||
e955:lun
|
||||
e956:maid
|
||||
e957:mco
|
||||
e958:mint
|
||||
e959:mln
|
||||
e95a:mona
|
||||
e95b:mrc
|
||||
e95c:msc
|
||||
e95d:msp
|
||||
e95e:mtl
|
||||
e95f:mtr
|
||||
e960:mue
|
||||
e961:nano
|
||||
e962:nav
|
||||
e963:nbt
|
||||
e964:neo
|
||||
e965:neos
|
||||
e966:neu
|
||||
e967:nlg
|
||||
e968:nmc
|
||||
e969:note
|
||||
e96a:nvc
|
||||
e96b:nxt
|
||||
e96c:oax
|
||||
e96d:ok
|
||||
e96e:omg
|
||||
e96f:omni
|
||||
e970:opal
|
||||
e971:part
|
||||
e972:pay
|
||||
e973:piggy
|
||||
e974:pink
|
||||
e975:pivx
|
||||
e976:plbt
|
||||
e977:plr
|
||||
e978:plu
|
||||
e979:pot
|
||||
e97a:ppc
|
||||
e97b:ptoy
|
||||
e97c:qcn
|
||||
e97d:qrk
|
||||
e97e:qtum
|
||||
e97f:rads
|
||||
e980:rbies
|
||||
e981:rbt
|
||||
e982:rby
|
||||
e983:rdd
|
||||
e984:rep
|
||||
e985:rise
|
||||
e986:rlc
|
||||
e987:salt
|
||||
e988:sar
|
||||
e989:scot
|
||||
e98a:sdc
|
||||
e98b:sia
|
||||
e98c:sjcx
|
||||
e98d:slg
|
||||
e98e:sls
|
||||
e98f:sngls
|
||||
e990:snrg
|
||||
e991:snt
|
||||
e992:start
|
||||
e993:steem
|
||||
e994:storj
|
||||
e995:str
|
||||
e996:strat
|
||||
e997:swift
|
||||
e998:swt
|
||||
e999:sync
|
||||
e99a:sys
|
||||
e99b:time
|
||||
e99c:tkn
|
||||
e99d:trig
|
||||
e99e:trst
|
||||
e99f:trx
|
||||
e9a0:tx
|
||||
e9a1:ubq
|
||||
e9a2:unity
|
||||
e9a3:usdt
|
||||
e9a4:ven
|
||||
e9a5:vior
|
||||
e9a6:vnl
|
||||
e9a7:vpn
|
||||
e9a8:vrc
|
||||
e9a9:vtc
|
||||
e9aa:waves
|
||||
e9ab:wings
|
||||
e9ac:xai
|
||||
e9ad:xaur
|
||||
e9ae:xbs
|
||||
e9af:xcp
|
||||
e9b0:xdn
|
||||
e9b1:xem
|
||||
e9b2:xmr
|
||||
e9b3:xpm
|
||||
e9b4:xrp
|
||||
e9b5:xtz
|
||||
e9b7:xzc
|
||||
e9b8:ybc
|
||||
e9b9:zec
|
||||
e9ba:zeit
|
||||
e9bb:zrx
|
||||
e9bc:stx
|
||||
e9bd:sbtc
|
||||
e9be:rcn
|
||||
e9bf:nmr
|
||||
e9c0:zil
|
||||
e9c1:vib
|
||||
e9c2:xnn
|
||||
e9c3:viu
|
||||
e9c4:veri
|
||||
e9c5:sc
|
||||
e9c6:rhoc
|
||||
e9c7:kcs
|
||||
e9c8:icx
|
||||
e9c9:ark
|
||||
e9ca:ae
|
||||
e9cb:tip
|
||||
e9cc:crpt
|
||||
e9cd:via
|
||||
e9ce:myst
|
||||
e9cf:miota
|
||||
e9d0:adt
|
||||
e9d1:eng
|
||||
e9d2:cfi
|
||||
e9d3:dsh
|
||||
e9d4:xlm
|
||||
e9d5:fsbt
|
||||
e9d6:atl
|
||||
e9d7:ath
|
||||
e9d8:arn
|
||||
e9d9:arc
|
||||
e9da:apt
|
||||
e9db:aidoc
|
||||
e9dc:amis
|
||||
e9dd:adst
|
||||
e9de:300
|
||||
e9df:ngc
|
||||
e9e0:srn
|
||||
e9e1:wax
|
||||
e9e2:dcn
|
||||
e9e3:powr
|
||||
e9e4:dkk
|
||||
e9e5:gbp
|
||||
e9e6:eur
|
||||
e9e7:usd
|
||||
e9e8:ukg
|
||||
e9e9:lrc
|
||||
e9ea:brd
|
||||
e9eb:mana
|
||||
e9ec:mer
|
||||
e9ed:tix
|
||||
e9ee:xel
|
||||
e9ef:zen
|
||||
e9f0:btcp
|
||||
e9f1:ebst
|
||||
e9f2:elf
|
||||
e9f3:hsr
|
||||
e9f4:iost
|
||||
e9f5:loom
|
||||
e9f6:mkr
|
||||
e9f7:nas
|
||||
e9f8:now
|
||||
e9f9:snm
|
||||
e9fa:synx
|
||||
e9fb:wan
|
||||
e9fd:ely
|
||||
e9fe:ela
|
||||
e9ff:smart
|
||||
ea00:aion
|
||||
ea01:tusd
|
||||
ea02:usdc
|
||||
ea03:vet
|
||||
ea04:pax
|
||||
ea05:joys
|
||||
ea06:bchsv
|
||||
ea07:bsv
|
||||
ea08:bth
|
||||
ea09:trezor
|
||||
ea0a:ledger
|
||||
ea0b:r
|
||||
ea0c:npxs
|
||||
ea0d:dai
|
||||
ea0e:link
|
||||
ea0f:hot
|
||||
ea10:gusd
|
||||
ea11:eurs
|
||||
ea12:vtho
|
||||
ea13:kin
|
||||
ea14:ont
|
||||
ea15:atom
|
||||
ea16:ankr
|
||||
ea17:erd
|
||||
ea18:ftm
|
||||
ea19:lto
|
||||
ea1a:und
|
||||
ea1b:vera
|
||||
ea1c:yec
|
||||
ea1d:aya
|
||||
ea1e:ethplo
|
||||
ea1f:iotx
|
||||
ea20:enj
|
||||
ea21:rvn
|
||||
ea22:xns
|
||||
ea23:pyn
|
||||
ea24:ncash
|
||||
ea25:loki
|
||||
ea26:knc
|
||||
ea27:job
|
||||
ea28:chz
|
||||
ea29:btu
|
||||
ea2a:apis
|
||||
ea2b:gas
|
||||
ea2c:busd
|
||||
ea2d:iq
|
||||
ea2e:lst
|
||||
ea2f:ong
|
||||
ea30:nut
|
||||
ea31:eosdt
|
@ -1,61 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import requests
|
||||
import argparse
|
||||
import sys
|
||||
import os
|
||||
|
||||
parser = argparse.ArgumentParser(description="Display currencies on polybar")
|
||||
parser.add_argument("--coins", type=str,
|
||||
nargs="+", help="Select coins to display")
|
||||
parser.add_argument("--base", type=str,
|
||||
nargs="?", default="USD", help="Currency base to convert against")
|
||||
parser.add_argument("--decimals", type=int,
|
||||
nargs="?", default=2, help="How many decimals to show")
|
||||
parser.add_argument("--display", type=str,
|
||||
nargs="?", default="price", choices=["price", "percentage", "both"], help="Display mode")
|
||||
|
||||
args = parser.parse_args()
|
||||
path = os.getcwd()
|
||||
|
||||
if not os.path.exists(f"{path}/scripts/apikey.txt"):
|
||||
sys.stdout.write("API Key not found. Please add to apikey.txt")
|
||||
with open('apikey.txt', 'w') as fp:
|
||||
fp.write("# Visit https://developers.coinranking.com/create-account to make an account and generate a free API key.\n# ADD YOUR API KEY ON A NEW LINE BELOW HERE.")
|
||||
|
||||
else:
|
||||
|
||||
with open(f'{path}/scripts/apikey.txt', 'r') as fp:
|
||||
apikey = [line for line in fp.readlines() if not line.startswith("#")][0]
|
||||
apikey = str(apikey).replace("\n", "")
|
||||
|
||||
if not (args.coins and args.base):
|
||||
parser.print_help()
|
||||
parser.exit()
|
||||
|
||||
coin_args_list = map(lambda x: f'symbols[]={x}', args.coins)
|
||||
coin_args_str = "&".join(coin_args_list)
|
||||
|
||||
get_base = requests.get(
|
||||
f"https://api.coinranking.com/v2/reference-currencies?search={args.base}",
|
||||
headers={'x-access-token': apikey}).json()["data"]
|
||||
|
||||
get_base = get_base['currencies'][0]
|
||||
|
||||
get_coin = requests.get(
|
||||
f"https://api.coinranking.com/v2/coins?{coin_args_str}&referenceCurrencyUuid={get_base['uuid']}",
|
||||
headers={'x-access-token': apikey}).json()['data']
|
||||
|
||||
for n in range(len(args.coins)):
|
||||
coin = get_coin['coins'][n]
|
||||
price_float = round(float(coin['price']), args.decimals)
|
||||
delta = coin['change']
|
||||
|
||||
current_price = get_base['sign'] + str(price_float)
|
||||
|
||||
if args.display == "price":
|
||||
sys.stdout.write(f" {coin['symbol']} {current_price} ")
|
||||
elif args.display == "percentage":
|
||||
sys.stdout.write(f" {coin['symbol']} {delta:+}% ")
|
||||
elif args.display == "both":
|
||||
sys.stdout.write(f" {coin['symbol']} {current_price} | {delta:+}% ")
|
@ -1,515 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
##################################################################
|
||||
# Polybar Pulseaudio Control #
|
||||
# https://github.com/marioortizmanero/polybar-pulseaudio-control #
|
||||
##################################################################
|
||||
|
||||
# Defaults for configurable values, expected to be set by command-line arguments
|
||||
AUTOSYNC="no"
|
||||
COLOR_MUTED="%{F#6b6b6b}"
|
||||
ICON_MUTED=
|
||||
ICON_SINK=
|
||||
NOTIFICATIONS="no"
|
||||
OSD="no"
|
||||
SINK_NICKNAMES_PROP=
|
||||
VOLUME_STEP=2
|
||||
VOLUME_MAX=130
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='$VOL_ICON ${VOL_LEVEL}% $ICON_SINK $SINK_NICKNAME'
|
||||
declare -A SINK_NICKNAMES
|
||||
declare -a ICONS_VOLUME
|
||||
declare -a SINK_BLACKLIST
|
||||
|
||||
# Environment & global constants for the script
|
||||
export LANG=en_US # Some calls depend on English outputs of pactl
|
||||
END_COLOR="%{F-}" # For Polybar colors
|
||||
|
||||
|
||||
# Saves the currently default sink into a variable named `curSink`. It will
|
||||
# return an error code when pulseaudio isn't running.
|
||||
function getCurSink() {
|
||||
if ! pactl info &>/dev/null; then return 1; fi
|
||||
local curSinkName
|
||||
|
||||
curSinkName=$(pactl info | awk '/Default Sink: / {print $3}')
|
||||
curSink=$(pactl list sinks | grep -B 4 -E "Name: $curSinkName\$" | sed -nE 's/^Sink #([0-9]+)$/\1/p')
|
||||
}
|
||||
|
||||
|
||||
# Saves the sink passed by parameter's volume into a variable named `VOL_LEVEL`.
|
||||
function getCurVol() {
|
||||
VOL_LEVEL=$(pactl list sinks | grep -A 15 -E "^Sink #$1\$" | grep 'Volume:' | grep -E -v 'Base Volume:' | awk -F : '{print $3; exit}' | grep -o -P '.{0,3}%' | sed 's/.$//' | tr -d ' ')
|
||||
}
|
||||
|
||||
|
||||
# Saves the name of the sink passed by parameter into a variable named
|
||||
# `sinkName`.
|
||||
function getSinkName() {
|
||||
sinkName=$(pactl list sinks short | awk -v sink="$1" '{ if ($1 == sink) {print $2} }')
|
||||
portName=$(pactl list sinks | grep -e 'Sink #' -e 'Active Port: ' | sed -n "/^Sink #$1\$/,+1p" | awk '/Active Port: / {print $3}')
|
||||
}
|
||||
|
||||
|
||||
# Saves the name to be displayed for the sink passed by parameter into a
|
||||
# variable called `SINK_NICKNAME`.
|
||||
# If a mapping for the sink name exists, that is used. Otherwise, the string
|
||||
# "Sink #<index>" is used.
|
||||
function getNickname() {
|
||||
getSinkName "$1"
|
||||
unset SINK_NICKNAME
|
||||
|
||||
if [ -n "$sinkName" ] && [ -n "$portName" ] && [ -n "${SINK_NICKNAMES[$sinkName/$portName]}" ]; then
|
||||
SINK_NICKNAME="${SINK_NICKNAMES[$sinkName/$portName]}"
|
||||
elif [ -n "$sinkName" ] && [ -n "${SINK_NICKNAMES[$sinkName]}" ]; then
|
||||
SINK_NICKNAME="${SINK_NICKNAMES[$sinkName]}"
|
||||
elif [ -n "$sinkName" ] && [ -n "$SINK_NICKNAMES_PROP" ]; then
|
||||
getNicknameFromProp "$SINK_NICKNAMES_PROP" "$sinkName"
|
||||
# Cache that result for next time
|
||||
SINK_NICKNAMES["$sinkName"]="$SINK_NICKNAME"
|
||||
fi
|
||||
|
||||
if [ -z "$SINK_NICKNAME" ]; then
|
||||
SINK_NICKNAME="Sink #$1"
|
||||
fi
|
||||
}
|
||||
|
||||
# Gets sink nickname based on a given property.
|
||||
function getNicknameFromProp() {
|
||||
local nickname_prop="$1"
|
||||
local for_name="$2"
|
||||
|
||||
SINK_NICKNAME=
|
||||
while read -r property value; do
|
||||
case "$property" in
|
||||
Name:)
|
||||
sink_name="$value"
|
||||
unset sink_desc
|
||||
;;
|
||||
"$nickname_prop")
|
||||
if [ "$sink_name" != "$for_name" ]; then
|
||||
continue
|
||||
fi
|
||||
SINK_NICKNAME="${value:3:-1}"
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done < <(pactl list sinks)
|
||||
}
|
||||
|
||||
# Saves the status of the sink passed by parameter into a variable named
|
||||
# `isMuted`.
|
||||
function getIsMuted() {
|
||||
isMuted=$(pactl list sinks | grep -E "^Sink #$1\$" -A 15 | awk '/Mute: / {print $2}')
|
||||
}
|
||||
|
||||
|
||||
# Saves all the sink inputs of the sink passed by parameter into a string
|
||||
# named `sinkInputs`.
|
||||
function getSinkInputs() {
|
||||
sinkInputs=$(pactl list sink-inputs | grep -B 4 "Sink: $1" | sed -nE 's/^Sink Input #([0-9]+)$/\1/p')
|
||||
}
|
||||
|
||||
|
||||
function volUp() {
|
||||
# Obtaining the current volume from pulseaudio into $VOL_LEVEL.
|
||||
if ! getCurSink; then
|
||||
echo "PulseAudio not running"
|
||||
return 1
|
||||
fi
|
||||
getCurVol "$curSink"
|
||||
local maxLimit=$((VOLUME_MAX - VOLUME_STEP))
|
||||
|
||||
# Checking the volume upper bounds sothat if VOLUME_MAX was 100% and the
|
||||
# increase percentage was 3%, a 99% volume would top at 100% instead
|
||||
# of 102%. If the volume is above the maximum limit, nothing is done.
|
||||
if [ "$VOL_LEVEL" -le "$VOLUME_MAX" ] && [ "$VOL_LEVEL" -ge "$maxLimit" ]; then
|
||||
pactl set-sink-volume "$curSink" "$VOLUME_MAX%"
|
||||
elif [ "$VOL_LEVEL" -lt "$maxLimit" ]; then
|
||||
pactl set-sink-volume "$curSink" "+$VOLUME_STEP%"
|
||||
fi
|
||||
|
||||
if [ $OSD = "yes" ]; then showOSD "$curSink"; fi
|
||||
if [ $AUTOSYNC = "yes" ]; then volSync; fi
|
||||
}
|
||||
|
||||
|
||||
function volDown() {
|
||||
# Pactl already handles the volume lower bounds so that negative values
|
||||
# are ignored.
|
||||
if ! getCurSink; then
|
||||
echo "PulseAudio not running"
|
||||
return 1
|
||||
fi
|
||||
pactl set-sink-volume "$curSink" "-$VOLUME_STEP%"
|
||||
|
||||
if [ $OSD = "yes" ]; then showOSD "$curSink"; fi
|
||||
if [ $AUTOSYNC = "yes" ]; then volSync; fi
|
||||
}
|
||||
|
||||
|
||||
function volSync() {
|
||||
if ! getCurSink; then
|
||||
echo "PulseAudio not running"
|
||||
return 1
|
||||
fi
|
||||
getSinkInputs "$curSink"
|
||||
getCurVol "$curSink"
|
||||
|
||||
# Every output found in the active sink has their volume set to the
|
||||
# current one. This will only be called if $AUTOSYNC is `yes`.
|
||||
for each in $sinkInputs; do
|
||||
pactl set-sink-input-volume "$each" "$VOL_LEVEL%"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
function volMute() {
|
||||
# Switch to mute/unmute the volume with pactl.
|
||||
if ! getCurSink; then
|
||||
echo "PulseAudio not running"
|
||||
return 1
|
||||
fi
|
||||
if [ "$1" = "toggle" ]; then
|
||||
getIsMuted "$curSink"
|
||||
if [ "$isMuted" = "yes" ]; then
|
||||
pactl set-sink-mute "$curSink" "no"
|
||||
else
|
||||
pactl set-sink-mute "$curSink" "yes"
|
||||
fi
|
||||
elif [ "$1" = "mute" ]; then
|
||||
pactl set-sink-mute "$curSink" "yes"
|
||||
elif [ "$1" = "unmute" ]; then
|
||||
pactl set-sink-mute "$curSink" "no"
|
||||
fi
|
||||
|
||||
if [ $OSD = "yes" ]; then showOSD "$curSink"; fi
|
||||
}
|
||||
|
||||
|
||||
function nextSink() {
|
||||
# The final sinks list, removing the blacklisted ones from the list of
|
||||
# currently available sinks.
|
||||
if ! getCurSink; then
|
||||
echo "PulseAudio not running"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Obtaining a tuple of sink indexes after removing the blacklisted devices
|
||||
# with their name.
|
||||
sinks=()
|
||||
local i=0
|
||||
while read -r line; do
|
||||
index=$(echo "$line" | cut -f1)
|
||||
name=$(echo "$line" | cut -f2)
|
||||
|
||||
# If it's in the blacklist, continue the main loop. Otherwise, add
|
||||
# it to the list.
|
||||
for sink in "${SINK_BLACKLIST[@]}"; do
|
||||
if [ "$sink" = "$name" ]; then
|
||||
continue 2
|
||||
fi
|
||||
done
|
||||
|
||||
sinks[$i]="$index"
|
||||
i=$((i + 1))
|
||||
done < <(pactl list short sinks | sort -n)
|
||||
|
||||
# If the resulting list is empty, nothing is done
|
||||
if [ ${#sinks[@]} -eq 0 ]; then return; fi
|
||||
|
||||
# If the current sink is greater or equal than last one, pick the first
|
||||
# sink in the list. Otherwise just pick the next sink avaliable.
|
||||
local newSink
|
||||
if [ "$curSink" -ge "${sinks[-1]}" ]; then
|
||||
newSink=${sinks[0]}
|
||||
else
|
||||
for sink in "${sinks[@]}"; do
|
||||
if [ "$curSink" -lt "$sink" ]; then
|
||||
newSink=$sink
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# The new sink is set
|
||||
pactl set-default-sink "$newSink"
|
||||
|
||||
# Move all audio threads to new sink
|
||||
local inputs
|
||||
inputs="$(pactl list short sink-inputs | cut -f 1)"
|
||||
for i in $inputs; do
|
||||
pactl move-sink-input "$i" "$newSink"
|
||||
done
|
||||
|
||||
if [ $NOTIFICATIONS = "yes" ]; then
|
||||
getNickname "$newSink"
|
||||
|
||||
if command -v dunstify &>/dev/null; then
|
||||
notify="dunstify --replace 201839192"
|
||||
else
|
||||
notify="notify-send"
|
||||
fi
|
||||
$notify "PulseAudio" "Changed output to $SINK_NICKNAME" --icon=audio-headphones-symbolic &
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# This function assumes that PulseAudio is already running. It only supports
|
||||
# KDE OSDs for now. It will show a system message with the status of the
|
||||
# sink passed by parameter, or the currently active one by default.
|
||||
function showOSD() {
|
||||
if [ -z "$1" ]; then
|
||||
curSink="$1"
|
||||
else
|
||||
getCurSink
|
||||
fi
|
||||
getCurVol "$curSink"
|
||||
getIsMuted "$curSink"
|
||||
qdbus org.kde.kded /modules/kosd showVolume "$VOL_LEVEL" "$isMuted"
|
||||
}
|
||||
|
||||
|
||||
function listen() {
|
||||
local firstRun=0
|
||||
|
||||
# Listen for changes and immediately create new output for the bar.
|
||||
# This is faster than having the script on an interval.
|
||||
pactl subscribe 2>/dev/null | {
|
||||
while true; do
|
||||
{
|
||||
# If this is the first time just continue and print the current
|
||||
# state. Otherwise wait for events. This is to prevent the
|
||||
# module being empty until an event occurs.
|
||||
if [ $firstRun -eq 0 ]; then
|
||||
firstRun=1
|
||||
else
|
||||
read -r event || break
|
||||
# Avoid double events
|
||||
if ! echo "$event" | grep -e "on card" -e "on sink" -e "on server"; then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
} &>/dev/null
|
||||
output
|
||||
done
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function output() {
|
||||
if ! getCurSink; then
|
||||
echo "PulseAudio not running"
|
||||
return 1
|
||||
fi
|
||||
getCurVol "$curSink"
|
||||
getIsMuted "$curSink"
|
||||
|
||||
# Fixed volume icons over max volume
|
||||
local iconsLen=${#ICONS_VOLUME[@]}
|
||||
if [ "$iconsLen" -ne 0 ]; then
|
||||
local volSplit=$((VOLUME_MAX / iconsLen))
|
||||
for i in $(seq 1 "$iconsLen"); do
|
||||
if [ $((i * volSplit)) -ge "$VOL_LEVEL" ]; then
|
||||
VOL_ICON="${ICONS_VOLUME[$((i-1))]}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
else
|
||||
VOL_ICON=""
|
||||
fi
|
||||
|
||||
getNickname "$curSink"
|
||||
|
||||
# Showing the formatted message
|
||||
if [ "$isMuted" = "yes" ]; then
|
||||
# shellcheck disable=SC2034
|
||||
VOL_ICON=$ICON_MUTED
|
||||
echo "${COLOR_MUTED}$(eval echo "$FORMAT")${END_COLOR}"
|
||||
else
|
||||
eval echo "$FORMAT"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function usage() {
|
||||
echo "\
|
||||
Usage: $0 [OPTION...] ACTION
|
||||
Options:
|
||||
--autosync | --no-autosync
|
||||
Whether to maintain same volume for all programs.
|
||||
Default: $AUTOSYNC
|
||||
--color-muted <rrggbb>
|
||||
Color in which to format when muted.
|
||||
Default: ${COLOR_MUTED:4:-1}
|
||||
--notifications | --no-notifications
|
||||
Whether to show notifications when changing sinks.
|
||||
Default: $NOTIFICATIONS
|
||||
--osd | --no-osd
|
||||
Whether to display KDE's OSD message.
|
||||
Default: $OSD
|
||||
--icon-muted <icon>
|
||||
Icon to use when muted.
|
||||
Default: none
|
||||
--icon-sink <icon>
|
||||
Icon to use for sink.
|
||||
Default: none
|
||||
--format <string>
|
||||
Use a format string to control the output.
|
||||
Available variables:
|
||||
* \$VOL_ICON
|
||||
* \$VOL_LEVEL
|
||||
* \$ICON_SINK
|
||||
* \$SINK_NICKNAME
|
||||
Default: $FORMAT
|
||||
--icons-volume <icon>[,<icon>...]
|
||||
Icons for volume, from lower to higher.
|
||||
Default: none
|
||||
--volume-max <int>
|
||||
Maximum volume to which to allow increasing.
|
||||
Default: $VOLUME_MAX
|
||||
--volume-step <int>
|
||||
Step size when inc/decrementing volume.
|
||||
Default: $VOLUME_STEP
|
||||
--sink-blacklist <name>[,<name>...]
|
||||
Sinks to ignore when switching.
|
||||
Default: none
|
||||
--sink-nicknames-from <prop>
|
||||
pactl property to use for sink names, unless overriden by
|
||||
--sink-nickname. Its possible values are listed under the 'Properties'
|
||||
key in the output of \`pactl list sinks\`
|
||||
Default: none
|
||||
--sink-nickname <name>:<nick>
|
||||
Nickname to assign to given sink name, taking priority over
|
||||
--sink-nicknames-from. May be given multiple times, and 'name' is
|
||||
exactly as listed in the output of \`pactl list sinks short | cut -f2\`.
|
||||
Note that you can also specify a port name for the sink with
|
||||
\`<name>/<port>\`.
|
||||
Default: none
|
||||
Actions:
|
||||
help display this message and exit
|
||||
output print the PulseAudio status once
|
||||
listen listen for changes in PulseAudio to automatically update
|
||||
this script's output
|
||||
up, down increase or decrease the default sink's volume
|
||||
mute, unmute mute or unmute the default sink's audio
|
||||
togmute switch between muted and unmuted
|
||||
next-sink switch to the next available sink
|
||||
sync synchronize all the output streams volume to be the same as
|
||||
the current sink's volume
|
||||
Author:
|
||||
Mario Ortiz Manero
|
||||
More info on GitHub:
|
||||
https://github.com/marioortizmanero/polybar-pulseaudio-control"
|
||||
}
|
||||
|
||||
while [[ "$1" = --* ]]; do
|
||||
unset arg
|
||||
unset val
|
||||
if [[ "$1" = *=* ]]; then
|
||||
arg="${1//=*/}"
|
||||
val="${1//*=/}"
|
||||
shift
|
||||
else
|
||||
arg="$1"
|
||||
# Support space-separated values, but also value-less flags
|
||||
if [[ "$2" != --* ]]; then
|
||||
val="$2"
|
||||
shift
|
||||
fi
|
||||
shift
|
||||
fi
|
||||
|
||||
case "$arg" in
|
||||
--autosync)
|
||||
AUTOSYNC=yes
|
||||
;;
|
||||
--no-autosync)
|
||||
AUTOSYNC=no
|
||||
;;
|
||||
--color-muted|--colour-muted)
|
||||
COLOR_MUTED="%{F#$val}"
|
||||
;;
|
||||
--notifications)
|
||||
NOTIFICATIONS=yes
|
||||
;;
|
||||
--no-notifications)
|
||||
NOTIFICATIONS=no
|
||||
;;
|
||||
--osd)
|
||||
OSD=yes
|
||||
;;
|
||||
--no-osd)
|
||||
OSD=no
|
||||
;;
|
||||
--icon-muted)
|
||||
ICON_MUTED="$val"
|
||||
;;
|
||||
--icon-sink)
|
||||
# shellcheck disable=SC2034
|
||||
ICON_SINK="$val"
|
||||
;;
|
||||
--icons-volume)
|
||||
IFS=, read -r -a ICONS_VOLUME <<< "${val//[[:space:]]/}"
|
||||
;;
|
||||
--volume-max)
|
||||
VOLUME_MAX="$val"
|
||||
;;
|
||||
--volume-step)
|
||||
VOLUME_STEP="$val"
|
||||
;;
|
||||
--sink-blacklist)
|
||||
IFS=, read -r -a SINK_BLACKLIST <<< "${val//[[:space:]]/}"
|
||||
;;
|
||||
--sink-nicknames-from)
|
||||
SINK_NICKNAMES_PROP="$val"
|
||||
;;
|
||||
--sink-nickname)
|
||||
SINK_NICKNAMES["${val//:*/}"]="${val//*:}"
|
||||
;;
|
||||
--format)
|
||||
FORMAT="$val"
|
||||
;;
|
||||
*)
|
||||
echo "Unrecognised option: $arg" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
case "$1" in
|
||||
up)
|
||||
volUp
|
||||
;;
|
||||
down)
|
||||
volDown
|
||||
;;
|
||||
togmute)
|
||||
volMute toggle
|
||||
;;
|
||||
mute)
|
||||
volMute mute
|
||||
;;
|
||||
unmute)
|
||||
volMute unmute
|
||||
;;
|
||||
sync)
|
||||
volSync
|
||||
;;
|
||||
listen)
|
||||
listen
|
||||
;;
|
||||
next-sink)
|
||||
nextSink
|
||||
;;
|
||||
output)
|
||||
output
|
||||
;;
|
||||
help)
|
||||
usage
|
||||
;;
|
||||
*)
|
||||
echo "Unrecognised action: $1" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
@ -1,9 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
updates=$(xbps-install -Mun 2> /dev/null | wc -l)
|
||||
|
||||
if [ -n "$updates" ] && [ "$updates" -gt 0 ]; then
|
||||
echo " $updates"
|
||||
else
|
||||
echo ""
|
||||
fi
|
1
void/rofi/config.rasi
Normal file
1
void/rofi/config.rasi
Normal file
@ -0,0 +1 @@
|
||||
@theme "~/.config/rofi/themes/mytheme.rasi"
|
77
void/rofi/themes/mytheme.rasi
Normal file
77
void/rofi/themes/mytheme.rasi
Normal file
@ -0,0 +1,77 @@
|
||||
* {
|
||||
font: "RobotoMono 12";
|
||||
|
||||
col0: #101e1f;
|
||||
col1: #8aa9a1;
|
||||
|
||||
background-color: @col0;
|
||||
text-color: @col1;
|
||||
accent-color: @col1;
|
||||
|
||||
margin: 4px 0px;
|
||||
padding: 0px;
|
||||
spacing: 0px;
|
||||
}
|
||||
|
||||
window {
|
||||
background-color: @col0;
|
||||
border-color: @accent-color;
|
||||
|
||||
location: center;
|
||||
width: 440px;
|
||||
y-offset: -220px;
|
||||
border: 2px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
padding: 8px 8px;
|
||||
spacing: 8px;
|
||||
children: [ prompt, entry ];
|
||||
}
|
||||
|
||||
prompt, entry, element-text, element-icon {
|
||||
vertical-align: 0.5;
|
||||
}
|
||||
|
||||
prompt {
|
||||
text-color: @accent-color;
|
||||
}
|
||||
|
||||
listview {
|
||||
lines: 8;
|
||||
columns: 1;
|
||||
|
||||
fixed-height: false;
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 8px;
|
||||
spacing: 8px;
|
||||
}
|
||||
|
||||
element normal active {
|
||||
text-color: @accent-color;
|
||||
}
|
||||
|
||||
element selected {
|
||||
text-color: @col0;
|
||||
background-color: @col1;
|
||||
}
|
||||
|
||||
element selected normal {
|
||||
background-color: @accent-color;
|
||||
}
|
||||
|
||||
element selected active {
|
||||
background-color: @col1;
|
||||
}
|
||||
|
||||
element-icon {
|
||||
size: 0.75em;
|
||||
}
|
||||
|
||||
element-text {
|
||||
text-color: inherit;
|
||||
background-color: inherit;
|
||||
}
|
@ -13,7 +13,7 @@ super + grave
|
||||
|
||||
# full screen printscreen
|
||||
Print
|
||||
flameshot full -c
|
||||
flameshot full
|
||||
|
||||
# selector printscreen
|
||||
super + Print
|
||||
@ -21,7 +21,7 @@ super + Print
|
||||
|
||||
# terminal emulator
|
||||
super + Return
|
||||
alacritty
|
||||
kitty
|
||||
|
||||
# program launcher
|
||||
super + @space
|
||||
@ -48,14 +48,16 @@ XF86AudioLowerVolume
|
||||
XF86AudioRaiseVolume
|
||||
pactl set-sink-volume @DEFAULT_SINK@ +1%
|
||||
|
||||
XF86MonBrightnessUp
|
||||
brightnessctl set +5%
|
||||
|
||||
XF86MonBrightnessDown
|
||||
brightnessctl set 5%-
|
||||
|
||||
# Open pcmanfm
|
||||
super + r
|
||||
pcmanfm
|
||||
|
||||
# Open Emacs
|
||||
super + e
|
||||
emacsclient -c -a 'emacs'
|
||||
|
||||
super + p
|
||||
/opt/Pomatez/pomatez %U
|
||||
#
|
||||
|
Reference in New Issue
Block a user