Update to current state

This commit is contained in:
Alexander Bocken 2024-03-09 13:38:38 +01:00
parent dedfe7285e
commit b8b5a9f45e
Signed by: Alexander
GPG Key ID: 1D237BE83F9B05E8
26 changed files with 265 additions and 394 deletions

View File

@ -17,10 +17,10 @@ Hostname = cloud.bocken.org
# Path to the CalDAV calendar on the host specified above. This is the base
# path following your host name in the URL.
Path = /remote.php/dav/calendars/admin/personal/
Path = /remote.php/dav/calendars/alexander/personal/
# Type of authentication to use. Must be "basic" or "oauth2"
#AuthMethod = basic
AuthMethod = basic
# Enable this if you want to skip SSL certificate checks.
InsecureSSL = No
@ -53,8 +53,8 @@ Verbose = Yes
# Set `Password` to your password in plaintext (unsafe),
# or `PasswordCommand` to a shell command that retrieves it (recommended).
[Auth]
Username = alexander@bocken.org
# Password = DO NOT USE
Username = alexander
# Password = # SET VIA CALCURSE_CALDAV_PASSWORD environment variable
# PasswordCommand = #Does not work
# Optionally specify additional HTTP headers here.
@ -63,13 +63,15 @@ Username = alexander@bocken.org
# Use the following to synchronize with an OAuth2-based service
# such as Google Calendar.
#[OAuth2]
[OAuth2]
ClientID = calcurse
ClientSecret =
#ClientID = your_client_id
#ClientSecret = your_client_secret
# Scope of access for API calls. Synchronization requires read/write.
#Scope = https://example.com/resource/scope
Scope =
# Change the redirect URI if you receive errors, but ensure that it is identical
# to the redirect URI you specified in the API settings.
#RedirectURI = http://127.0.0.1
RedirectURI = http://127.0.0.1

View File

@ -31,7 +31,7 @@
<alias>
<family>monospace</family>
<prefer>
<family>Noto Sans Mono</family>
<family>Inconsolata</family>
<family>Libertinus Mono</family>
<family>FontAwesome</family>
<family>Braille</family>

View File

@ -18,3 +18,4 @@ video/x-matroska=video.desktop
video/mp4=video.desktop
x-scheme-handler/lbry=lbry.desktop
inode/directory=file.desktop
x-scheme-handler/msteams=teams.desktop

View File

@ -1,47 +0,0 @@
# vim: filetype=neomuttrc
# muttrc file for account abocken@ethz.ch
set realname = "Alexander Bocken"
set from = "abocken@ethz.ch"
set sendmail = "msmtp -a abocken@ethz.ch"
alias me Alexander Bocken <abocken@ethz.ch>
set folder = "/home/alex/.local/share/mail/abocken@ethz.ch"
set header_cache = /home/alex/.cache/mutt-wizard/abocken@ethz.ch/headers
set message_cachedir = /home/alex/.cache/mutt-wizard/abocken@ethz.ch/bodies
set mbox_type = Maildir
bind index,pager gg noop
bind index,pager g noop
bind index,pager M noop
bind index,pager C noop
bind index gg first-entry
unmailboxes *
unalternates *
unset signature
unmacro index o
macro index o "<shell-escape>mailsync abocken@ethz.ch<enter>" "run mbsync to sync abocken@ethz.ch"
mailboxes "=Calendar" "=Deleted Items" "=Drafts" "=INBOX" "=Journal" "=Junk E-Mail" "=Notes" "=Outbox" "=Sent" "=Sent Items" "=Tasks" "=Trash"
set postponed = "+Drafts"
macro index,pager gd "<change-folder>=Drafts<enter>" "go to drafts"
macro index,pager Md ";<save-message>=Drafts<enter>" "move mail to drafts"
macro index,pager Cd ";<copy-message>=Drafts<enter>" "copy mail to drafts"
macro index,pager gi "<change-folder>=INBOX<enter>" "go to inbox"
macro index,pager Mi ";<save-message>=INBOX<enter>" "move mail to inbox"
macro index,pager Ci ";<copy-message>=INBOX<enter>" "copy mail to inbox"
set spoolfile = "+INBOX"
macro index,pager gj "<change-folder>=Junk<enter>" "go to junk"
macro index,pager Mj ";<save-message>=Junk<enter>" "move mail to junk"
macro index,pager Cj ";<copy-message>=Junk<enter>" "copy mail to junk"
set record = "+Sent"
macro index,pager gs "<change-folder>=Sent<enter>" "go to sent"
macro index,pager Ms ";<save-message>=Sent<enter>" "move mail to sent"
macro index,pager Cs ";<copy-message>=Sent<enter>" "copy mail to sent"
set record = "+Sent"
macro index,pager gs "<change-folder>=Sent<enter>" "go to sent"
macro index,pager Ms ";<save-message>=Sent<enter>" "move mail to sent"
macro index,pager Cs ";<copy-message>=Sent<enter>" "copy mail to sent"
macro index,pager gt "<change-folder>=Trash<enter>" "go to trash"
macro index,pager Mt ";<save-message>=Trash<enter>" "move mail to trash"
macro index,pager Ct ";<copy-message>=Trash<enter>" "copy mail to trash"
set trash = "+Trash"

View File

@ -5,18 +5,15 @@ set from = "alexander@bocken.org"
set sendmail = "msmtp -a alexander@bocken.org"
alias me Alexander Bocken <alexander@bocken.org>
set folder = "/home/alex/.local/share/mail/alexander@bocken.org"
set header_cache = /home/alex/.cache/mutt-wizard/alexander@bocken.org/headers
set message_cachedir = /home/alex/.cache/mutt-wizard/alexander@bocken.org/bodies
set header_cache = "/home/alex/.cache/mutt-wizard/alexander_bocken.org/headers"
set message_cachedir = "/home/alex/.cache/mutt-wizard/alexander_bocken.org/bodies"
set mbox_type = Maildir
set hostname = "bocken.org"
#source /usr/share/mutt-wizard/switch.muttrc
set spoolfile = +INBOX
set postponed = +Drafts
set trash = +Trash
set record = +Sent
source /usr/share/mutt-wizard/switch.muttrc
set spoolfile = "+INBOX"
set postponed = "+Drafts"
set trash = "+Trash"
set record = "+Sent"
macro index o "<shell-escape>mailsync alexander@bocken.org<enter>" "run mbsync to sync alexander@bocken.org"
macro index \eg "<enter-command>unset wait_key<enter><shell-escape>gpg --list-secret-keys; printf 'Enter email ID of user to publish: '; read eID; printf 'Enter fingerprint of GPG key to publish: '; read eFGPT; /usr/lib/gnupg/gpg-wks-client --create \$eFGPT \$eID | msmtp --read-envelope-from --read-recipients -a alexander@bocken.org<enter>" "publish GPG key to WKS provider"
macro index \eh "<pipe-message>/usr/lib/gnupg/gpg-wks-client --receive | msmtp --read-envelope-from --read-recipients -a alexander@bocken.org<enter>" "confirm GPG publication"
mailboxes "=Archive/Archive" "=Trash/Trash" "=Sent" "=Junk" "=Drafts" "=INBOX"
macro index o "<shell-escape>mailsync alexander@bocken.org<enter>" "sync alexander@bocken.org"
mailboxes "=Sent" "=Junk" "=Drafts" "=INBOX"

View File

@ -1,8 +1,7 @@
# vim: filetype=neomuttrc
source /usr/share/mutt-wizard/mutt-wizard.muttrc
source /home/alex/.config/mutt/accounts/alexander@bocken.org.muttrc
macro index,pager i1 '<sync-mailbox><enter-command>source /home/alex/.config/mutt/accounts/alexander@bocken.org.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to alexander@bocken.org"
macro index,pager i2 '<sync-mailbox><enter-command>source /home/alex/.config/mutt/accounts/1-abocken@ethz.ch.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to abocken@ethz.ch"
macro index,pager i2 '<sync-mailbox><enter-command>source /home/alex/.config/mutt/accounts/abocken@ethz.ch.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to abocken@ethz.ch"
set forward_attachments = ask-yes
macro compose m \
"<enter-command>set pipe_decode<enter>\
@ -14,6 +13,17 @@ macro compose m \
<tag-entry><previous-entry><tag-entry><group-alternatives>" \
"Convert markdown to HTML5 and plaintext alternative content types"
set query_command = "abook --config $XDG_CONFIG_HOME/abook/abookrc --datafile $XDG_DATA_HOME/abook/addressbook --mutt-query '%s'"
macro index,pager a "<enter-command>set my_pipe_decode=\$pipe_decode pipe_decode<return><pipe-message>abook --config $XDG_CONFIG_HOME/abook/abookrc --datafile $XDG_DATA_HOME/abook/addressbook --add-email<return><enter-command>set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<return>" "add the sender address to abook"
#set query_command = "abook --config $XDG_CONFIG_HOME/abook/abookrc --datafile $XDG_DATA_HOME/abook/addressbook --mutt-query '%s'"
#macro index,pager a "<enter-command>set my_pipe_decode=\$pipe_decode pipe_decode<return><pipe-message>abook --config $XDG_CONFIG_HOME/abook/abookrc --datafile $XDG_DATA_HOME/abook/addressbook --add-email<return><enter-command>set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<return>" "add the sender address to abook"
macro index,pager i3 '<sync-mailbox><enter-command>source /home/alex/.config/mutt/accounts/alexander@aaathats3as.com.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to alexander@aaathats3as.com"
macro index,pager i1 '<sync-mailbox><enter-command>source /home/alex/.config/mutt/accounts/alexander@bocken.org.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to alexander@bocken.org"
set query_command= "mates mutt-query '%s'"
set query_command = "echo %s | xargs khard email --parsable --"
bind editor <Tab> complete-query
bind editor ^T complete
macro index,pager a \
"<pipe-message>khard add-email<return>" \
"add the sender email address to khard"

View File

@ -16,6 +16,8 @@ exec 2>/dev/null
filename=$(basename -- "$1")
filesize=$(du -Hh -- "$1" | cut -f 1)
geometry="${2}x${3}"
#TODO: imrpove for multiple date formats
#currently just picks the first date that is not a profile or file date using exiftool (no one coherent standard for date in exif metadata is used)
date_shot="$(exiftool -- "$1" | grep 'Date' | grep -vE '(Profile|File)' | head -n1 | cut -d: -f1 --complement)"
echo "${filesize}${s}${geometry}${s}${filename}"
echo "${filesize}${s}${geometry}${s}${filename}${s}${date_shot}"

View File

@ -26,7 +26,7 @@ do
readlink -f "$file" | tr -d '\n' | xclip -selection clipboard &&
notify-send "$(readlink -f "$file") copied to clipboard" & ;;
"d")
[ "$(printf "No\\nYes" | dmenu -i -p "Really delete $file?")" = "Yes" ] && rm "$file" && notify-send "$file deleted." ;;
[ "$(printf "No\\nYes" | dmenu -n -i -p "Really delete $file?")" = "Yes" ] && rm "$file" && notify-send "$file deleted." ;;
"g") ifinstalled gimp && setsid -f gimp "$file" ;;
"i") notify-send "File information" "$(mediainfo "$file")" ;;
esac

View File

@ -3,9 +3,7 @@ username_extractor=regex_search
regex_username=^user: (.*)$
[github.com]
username=AlexBocken
target=dev/Github_Token
[bocken.org]
username=Alexander
target=dev/personal_gitea
[git.bocken.org]
target=dev/Gitea_Token

View File

@ -1,247 +0,0 @@
# Daemon config file for PipeWire version "0.3.40" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
context.properties = {
## Configure properties in the system.
#library.name.system = support/libspa-support
#context.data-loop.library.name.system = support/libspa-support
#support.dbus = true
#link.max-buffers = 64
link.max-buffers = 16 # version < 3 clients can't handle more
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
#clock.power-of-two-quantum = true
#log.level = 2
#cpu.zero.denormals = true
core.daemon = true # listening for socket connections
core.name = pipewire-0 # core name and socket name
## Properties for the DSP configuration.
#default.clock.rate = 48000
#default.clock.allowed-rates = [ 48000 ]
#default.clock.quantum = 1024
#default.clock.min-quantum = 32
#default.clock.max-quantum = 8192
#default.video.width = 640
#default.video.height = 480
#default.video.rate.num = 25
#default.video.rate.denom = 1
#
# These overrides are only applied when running in a vm.
vm.overrides = {
default.clock.min-quantum = 1024
}
}
context.spa-libs = {
#<factory-name regex> = <library-name>
#
# Used to find spa factory names. It maps an spa factory name
# regular expression to a library name that should contain
# that factory.
#
audio.convert.* = audioconvert/libspa-audioconvert
api.alsa.* = alsa/libspa-alsa
api.v4l2.* = v4l2/libspa-v4l2
api.libcamera.* = libcamera/libspa-libcamera
api.bluez5.* = bluez5/libspa-bluez5
api.vulkan.* = vulkan/libspa-vulkan
api.jack.* = jack/libspa-jack
support.* = support/libspa-support
#videotestsrc = videotestsrc/libspa-videotestsrc
#audiotestsrc = audiotestsrc/libspa-audiotestsrc
}
context.modules = [
#{ name = <module-name>
# [ args = { <key> = <value> ... } ]
# [ flags = [ [ ifexists ] [ nofail ] ]
#}
#
# Loads a module with the given parameters.
# If ifexists is given, the module is ignored when it is not found.
# If nofail is given, module initialization failures are ignored.
#
# Uses RTKit to boost the data thread priority.
{ name = libpipewire-module-rtkit
args = {
#nice.level = -11
#rt.prio = 88
#rt.time.soft = 2000000
#rt.time.hard = 2000000
}
flags = [ ifexists nofail ]
}
# Set thread priorities without using RTKit.
#{ name = libpipewire-module-rt
# args = {
# nice.level = -11
# rt.prio = 88
# rt.time.soft = 2000000
# rt.time.hard = 2000000
# }
# flags = [ ifexists nofail ]
#}
# The native communication protocol.
{ name = libpipewire-module-protocol-native }
# The profile module. Allows application to access profiler
# and performance data. It provides an interface that is used
# by pw-top and pw-profiler.
{ name = libpipewire-module-profiler }
# Allows applications to create metadata objects. It creates
# a factory for Metadata objects.
{ name = libpipewire-module-metadata }
# Creates a factory for making devices that run in the
# context of the PipeWire server.
{ name = libpipewire-module-spa-device-factory }
# Creates a factory for making nodes that run in the
# context of the PipeWire server.
{ name = libpipewire-module-spa-node-factory }
# Allows creating nodes that run in the context of the
# client. Is used by all clients that want to provide
# data to PipeWire.
{ name = libpipewire-module-client-node }
# Allows creating devices that run in the context of the
# client. Is used by the session manager.
{ name = libpipewire-module-client-device }
# The portal module monitors the PID of the portal process
# and tags connections with the same PID as portal
# connections.
{ name = libpipewire-module-portal
flags = [ ifexists nofail ]
}
# The access module can perform access checks and block
# new clients.
{ name = libpipewire-module-access
args = {
# access.allowed to list an array of paths of allowed
# apps.
#access.allowed = [
# /usr/bin/pipewire-media-session
#]
# An array of rejected paths.
#access.rejected = [ ]
# An array of paths with restricted access.
#access.restricted = [ ]
# Anything not in the above lists gets assigned the
# access.force permission.
#access.force = flatpak
}
}
# Makes a factory for wrapping nodes in an adapter with a
# converter and resampler.
{ name = libpipewire-module-adapter }
# Makes a factory for creating links between ports.
{ name = libpipewire-module-link-factory }
# Provides factories to make session manager objects.
{ name = libpipewire-module-session-manager }
]
context.objects = [
#{ factory = <factory-name>
# [ args = { <key> = <value> ... } ]
# [ flags = [ [ nofail ] ]
#}
#
# Creates an object from a PipeWire factory with the given parameters.
# If nofail is given, errors are ignored (and no object is created).
#
#{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc Spa:Pod:Object:Param:Props:patternType = 1 } }
#{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] }
#{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } }
#{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } }
#{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test } }
#{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } }
# A default dummy driver. This handles nodes marked with the "node.always-driver"
# property when no other driver is currently active. JACK clients need this.
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = Dummy-Driver
node.group = pipewire.dummy
priority.driver = 20000
}
}
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = Freewheel-Driver
priority.driver = 19000
node.group = pipewire.freewheel
node.freewheel = true
}
}
# This creates a new Source node. It will have input ports
# that you can link, to provide audio for this source.
#{ factory = adapter
# args = {
# factory.name = support.null-audio-sink
# node.name = "my-mic"
# node.description = "Microphone"
# media.class = "Audio/Source/Virtual"
# audio.position = "FL,FR"
# }
#}
# This creates a single PCM source device for the given
# alsa device path hw:0. You can change source to sink
# to make a sink in the same way.
#{ factory = adapter
# args = {
# factory.name = api.alsa.pcm.source
# node.name = "alsa-source"
# node.description = "PCM Source"
# media.class = "Audio/Source"
# api.alsa.path = "hw:0"
# api.alsa.period-size = 1024
# api.alsa.headroom = 0
# api.alsa.disable-mmap = false
# api.alsa.disable-batch = false
# audio.format = "S16LE"
# audio.rate = 48000
# audio.channels = 2
# audio.position = "FL,FR"
# }
#}
]
context.exec = [
#{ path = <program-name> [ args = "<arguments>" ] }
#
# Execute the given program with arguments.
#
# You can optionally start the session manager here,
# but it is better to start it as a systemd service.
# Run the session manager with -h for options.
#
{ path = "/usr/bin/wireplumber" args = "" }
#
# You can optionally start the pulseaudio-server here as well
# but it is better to start it as a systemd service.
# It can be interesting to start another daemon here that listens
# on another address with the -a option (eg. -a tcp:4713).
#
{ path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" }
]

View File

@ -6,5 +6,88 @@
config_version: 2
settings:
bindings.commands:
global:
normal:
',C': spawn -d st castyt {url}
',S': spawn -d mpvallvids {url}
',V': spawn -d startmpv {url}
',X': spawn -d dmenuhandler {url}
',c': hint links spawn -d st castyt {hint-url}
',s': hint links spawn -d mpvallvids {hint-url}
',v': hint links spawn -d startmpv {hint-url}
',x': hint links spawn -d dmenuhandler {hint-url}
aO: download-open;; download-remove;; close
ao: download-open;; download-remove
ar: download-remove
gP: open -p {url}
u: undo --window
colors.webpage.darkmode.algorithm:
global: lightness-cielab
colors.webpage.darkmode.contrast:
global: 0.5
colors.webpage.darkmode.enabled:
global: false
colors.webpage.darkmode.threshold.background:
global: 100
colors.webpage.preferred_color_scheme:
global: light
content.cookies.accept:
global: no-3rdparty
content.desktop_capture:
https://meet.bocken.org: true
content.headers.user_agent:
global: Mozilla/5.0 ({os_info}) AppleWebKit/{webkit_version} (KHTML, like Gecko)
{qt_key}/{qt_version} {upstream_browser_key}/{upstream_browser_version} Safari/{webkit_version}
content.javascript.clipboard:
global: access-paste
content.javascript.enabled:
global: true
content.media.audio_capture:
https://meet.bocken.org: true
https://meet.piribauer.de: true
https://teams.microsoft.com: true
content.media.audio_video_capture:
https://meet.bocken.org: true
https://meet.piribauer.de: true
https://teams.microsoft.com: true
content.media.video_capture:
https://meet.bocken.org: true
https://meet.piribauer.de: true
https://teams.microsoft.com: true
content.notifications.enabled:
https://cloud.bocken.org: true
https://stream.bocken.org: true
https://teams.microsoft.com: true
content.pdfjs:
global: false
downloads.location.directory:
global: /tmp
downloads.location.prompt:
global: false
editor.command:
global:
- st
- nvim
- -f
- '{file}'
- -c
- normal
- '{line}G{column}l'
prompt.filebrowser:
global: true
url.searchengines:
global:
DEFAULT: https://bocken.org/searx/?q={}
brave: https://search.brave.com/search?q={}&source=web
cactus: https://latin.cactus2000.de/index.php?q={}
ddg: https://duckduckgo.com/?q={}
dw: https://www.dwds.de/wb/{}
gg: https://linggle.com/?q={}
jisho: jisho.org/search/{}
ling: https://www.linguee.com/english-german/search?source=auto&query={}
nyaa: nyaa.si/?q={}
oz: http://www.ozdic.com/collocation-dictionary/{}
re: https://bocken.org/rezepte?q={}
sx: https://bocken.org/searx/?q={}
yt: https://www.youtube.com/results?search_query={}

View File

@ -89,6 +89,7 @@
ext sc, has sc-im, X, flag t = sc-im -- "$@"
mime text/calendar, has calcurse, flag f = calendaradd "$@"
name ^.*\.bands\.agr$, has xmgrace, X, flag f = xmgrace -- "$@"
ext svelte, label editor = ${VISUAL:-$EDITOR} -- "$@"
# Define the "editor" for text files as first action

View File

@ -36,6 +36,7 @@ export XDG_VIDEOS_DIR="$HOME/vids"
#Various stuff
export BIB="$XDG_DOCUMENTS_DIR/bib.bib"
export MATES_DIR="${XDG_DATA_HOME:-$HOME/.local/share/}/vdirsyncer/contacts/"
#export XDG_RUNTIME_DIR="$HOME/.cache/xdg_run" # Messes up Audio for some reason, might be useful to figure out in the future how to fix
#export XAUTHORITY="$HOME/.cache/xdg_run/Xauthority" # This line will break some DMs.
export CHROOT="${HOME}/.local/src/chroot"

View File

@ -10,14 +10,14 @@ setbg & # set the background with the `setbg` script
xrdb ${XDG_CONFIG_HOME:-$HOME/.config}/x11/xresources & xrdbpid=$! # Uncomment to use Xresources colors/settings on startup
autostart="picom mpd dunst unclutter dwmblocks update_musicbar pipewire remapd pipewire"
autostart="picom mpd dunst unclutter dwmblocks update_musicbar pipewire remapd pipewire jellyfin-mpv-shim"
for program in $autostart; do
pidof -s "$program" || setsid -f "$program"
done >/dev/null 2>&1
xrandr --auto
xrandr --dpi 180 # Set DPI. User may want to use a larger number for larger screens.
xrandr --listactivemonitors | grep -qE '1920.*x1080.*HDMI-1-3$' && ( xrandr --output HDMI-1-3 --scale 1.666666666666 && setbg ) # set scale for 2nd monitor if connected
xrandr --dpi 140 # Set DPI. User may want to use a larger number for larger screens.
sb-bright 40 # set brighntess by default to 40% instead of ~38%
xrandr --listactivemonitors | grep -qE '1920.*x1080.*DP-7$' && ( xrandr --output DP-7 --scale 1.666666666666 && setbg ) # set scale for 2nd monitor if connected
echo "$DBUS_SESSION_BUS_ADDRESS" > /tmp/dbus_session_bus_address
# Ensure that xrdb has finished running before moving on to start the WM/DE.

View File

@ -1,4 +1,4 @@
#files: 827 version: 5.9
#files: 858 version: 5.9
_comps=(
'-' '_precommand'
@ -50,6 +50,10 @@ _comps=(
'appletviewer' '_java'
'apropos' '_man'
'apvlv' '_pdf'
'archbuild' '_devtools'
'arch-chroot' '_archinstallscripts'
'arch-nspawn' '_devtools'
'archrelease' '_devtools'
'arduino-ctags' '_ctags'
'arecord' '_alsa-utils'
'arena' '_webbrowser'
@ -60,6 +64,7 @@ _comps=(
'asciidoctor' '_asciidoctor'
'asciinema' '_asciinema'
'ash' '_sh'
'asp' '_asp'
'-assign-parameter-' '_assign'
'at' '_at'
'atq' '_at'
@ -88,12 +93,16 @@ _comps=(
'bibtex' '_bibtex'
'bindkey' '_bindkey'
'bison' '_bison'
'black' '_black'
'blackd' '_blackd'
'bluetoothctl' '_bluetoothctl'
'bmake' '_make'
'bogofilter' '_bogofilter'
'bogotune' '_bogofilter'
'bogoutil' '_bogofilter'
'bootctl' '_bootctl'
'borg' '_borg'
'borgfs' '_borg'
'bpython' '_bpython'
'bpython2' '_bpython'
'bpython2-gtk' '_bpython'
@ -124,6 +133,7 @@ _comps=(
'bunzip2' '_bzip2'
'burst' '_mh'
'busctl' '_busctl'
'bwrap' '_bwrap'
'bzcat' '_bzip2'
'bzegrep' '_grep'
'bzfgrep' '_grep'
@ -149,12 +159,15 @@ _comps=(
'ceilometer' '_openstack'
'certtool' '_gnutls'
'cftp' '_twisted'
'chafa' '_chafa'
'chage' '_users'
'chattr' '_chattr'
'chcon' '_chcon'
'chdir' '_cd'
'checkpkg' '_devtools'
'checkupdates' '_checkupdates'
'chfn' '_users'
'chg' '_hg'
'chgrp' '_chown'
'chimera' '_webbrowser'
'chkconfig' '_chkconfig'
@ -188,6 +201,10 @@ _comps=(
'-command-' '_autocd'
'command' '_command'
'-command-line-' '_normal'
'commitpkg' '_devtools'
'communitypkg' '_devtools'
'community-stagingpkg' '_devtools'
'community-testingpkg' '_devtools'
'comp' '_mh'
'compadd' '_compadd'
'compdef' '_compdef'
@ -201,6 +218,7 @@ _comps=(
'configure' '_configure'
'convert' '_imagemagick'
'coredumpctl' '_coredumpctl'
'corepkg' '_devtools'
'cowsay' '_cowsay'
'cowthink' '_cowsay'
'cp' '_cp'
@ -247,6 +265,7 @@ _comps=(
'dict' '_dict'
'diff' '_diff'
'diff3' '_diff3'
'diffpkg' '_devtools'
'diffstat' '_diffstat'
'dig' '_dig'
'dillo' '_webbrowser'
@ -263,8 +282,10 @@ _comps=(
'dmesg' '_dmesg'
'dmidecode' '_dmidecode'
'doas' '_doas'
'docker' '_docker'
'domainname' '_yp'
'dos2unix' '_dos2unix'
'downgrade' '_downgrade'
'drill' '_drill'
'dropbox' '_dropbox'
'dropdb' '_postgresql'
@ -319,6 +340,8 @@ _comps=(
'express' '_webbrowser'
'extcheck' '_java'
'extractres' '_psutils'
'extrapkg' '_devtools'
'extra-x86_64-build' '_devtools'
'fakeroot' '_fakeroot'
'false' '_nothing'
'fc' '_fc'
@ -333,6 +356,7 @@ _comps=(
'filterdiff' '_patchutils'
'find' '_find'
'findaffix' '_ispell'
'finddeps' '_devtools'
'findmnt' '_findmnt'
'finger' '_finger'
'firefox' '_mozilla'
@ -402,6 +426,7 @@ _comps=(
'geany' '_geany'
'gegrep' '_grep'
'gem' '_gem'
'genfstab' '_archinstallscripts'
'genisoimage' '_genisoimage'
'genv' '_env'
'get' '_sccs'
@ -453,6 +478,7 @@ _comps=(
'gnl' '_nl'
'gnocchi' '_openstack'
'gnome-gv' '_gnome-gv'
'gnome-unstable-x86_64-build' '_devtools'
'gnumfmt' '_numfmt'
'gnupod_addsong' '_gnupod'
'gnupod_addsong.pl' '_gnupod'
@ -573,6 +599,7 @@ _comps=(
'heat' '_openstack'
'help' '_sccs'
'hexdump' '_hexdump'
'hg' '_hg'
'hilite' '_precommand'
'histed' '_zed'
'history' '_fc'
@ -638,19 +665,27 @@ _comps=(
'journalctl' '_journalctl'
'jq' '_jq'
'jupyter' '_jupyter'
'kcmshell5' '_systemsettings'
'kcmshell6' '_systemsettings'
'kdeconnect-cli' '_kdeconnect'
'kde-inhibit' '_kde-inhibit'
'kde-unstable-x86_64-build' '_devtools'
'kernel-install' '_kernel-install'
'keystone' '_openstack'
'keytool' '_java'
'kfmclient' '_kfmclient'
'khard' '_khard'
'kill' '_kill'
'killall' '_killall'
'killall5' '_killall'
'kinfocenter' '_systemsettings'
'kioclient' '_kfmclient'
'knock' '_knock'
'konqueror' '_webbrowser'
'kpartx' '_kpartx'
'kpdf' '_pdf'
'krunner' '_krunner'
'kscreen-doctor' '_kscreen-doctor'
'ksh' '_sh'
'ksh88' '_sh'
'ksh93' '_sh'
@ -724,8 +759,10 @@ _comps=(
'Mail' '_mail'
'mailx' '_mail'
'make' '_make'
'makechrootpkg' '_devtools'
'makeinfo' '_texinfo'
'makepkg' '_pacman'
'makerepropkg' '_devtools'
'man' '_man'
'manage.py' '_django'
'manila' '_openstack'
@ -749,6 +786,7 @@ _comps=(
'mencal' '_mencal'
'mere' '_mere'
'merge' '_rcs'
'meson' '_meson'
'metaflac' '_flac'
'mformat' '_mtools'
'mgv' '_pspdf'
@ -762,6 +800,7 @@ _comps=(
'mhstore' '_mh'
'mii-tool' '_mii-tool'
'mistral' '_openstack'
'mkarchroot' '_devtools'
'mkdir' '_mkdir'
'mkfifo' '_mkfifo'
'mkinitcpio' '_mkinitcpio'
@ -805,6 +844,11 @@ _comps=(
'mtoolstest' '_mtools'
'mtr' '_mtr'
'mtype' '_mtools'
'multilib-build' '_devtools'
'multilibpkg' '_devtools'
'multilib-staging-build' '_devtools'
'multilib-testing-build' '_devtools'
'multilib-testingpkg' '_devtools'
'munchlist' '_ispell'
'mupdf' '_mupdf'
'murano' '_openstack'
@ -863,6 +907,7 @@ _comps=(
'nvim' '_vim'
'objdump' '_objdump'
'od' '_od'
'offload-build' '_devtools'
'ogg123' '_vorbis'
'oggdec' '_vorbis'
'oggenc' '_vorbis'
@ -882,6 +927,7 @@ _comps=(
'pacat' '_pulseaudio'
'paccache' '_paccache'
'pacdiff' '_pacdiff'
'pacignore' '_pacignore'
'pack' '_pack'
'packf' '_mh'
'paclist' '_paclist'
@ -894,11 +940,14 @@ _comps=(
'pacscripts' '_pacscripts'
'pacsearch' '_pacsearch'
'pacsort' '_pacsort'
'pacstrap' '_archinstallscripts'
'pactl' '_pulseaudio'
'pactree' '_pactree'
'padsp' '_pulseaudio'
'pandoc' '_pandoc'
'papis' '_papis'
'paplay' '_pulseaudio'
'parallel' '_parallel'
'-parameter-' '_parameter'
'parec' '_pulseaudio'
'parecord' '_pulseaudio'
@ -908,6 +957,7 @@ _comps=(
'paste' '_paste'
'pasuspender' '_pulseaudio'
'patch' '_patch'
'patchelf' '_patchelf'
'pax' '_pax'
'pcat' '_pack'
'pcp-htop' '_htop'
@ -915,6 +965,7 @@ _comps=(
'pdf2dsc' '_pdf'
'pdf2ps' '_pdf'
'pdffonts' '_pdf'
'pdfgrep' '_pdfgrep'
'pdfimages' '_pdf'
'pdfinfo' '_pdf'
'pdfjadetex' '_tex'
@ -953,9 +1004,11 @@ _comps=(
'ping6' '_ping'
'pkgadd' '_pkgadd'
'pkg-config' '_pkg-config'
'pkgctl' '_devtools'
'pkginfo' '_pkginfo'
'pkgrm' '_pkgrm'
'pkill' '_pgrep'
'plasmashell' '_plasmashell'
'pldd' '_pids'
'pmake' '_make'
'pman' '_perl_modules'
@ -972,6 +1025,7 @@ _comps=(
'podgrep' '_perl_modules'
'podpath' '_perl_modules'
'podtoc' '_perl_modules'
'poetry' '_poetry'
'poff' '_pon'
'policytool' '_java'
'pon' '_pon'
@ -1026,7 +1080,7 @@ _comps=(
'pyhtmlizer' '_twisted'
'qdbus' '_qdbus'
'qiv' '_qiv'
'_qrcp' '_qrcp'
'qpdf' '_qpdf'
'qrcp' '_qrcp'
'quilt' '_quilt'
'r' '_fc'
@ -1147,6 +1201,7 @@ _comps=(
'showchar' '_psutils'
'showmount' '_showmount'
'shred' '_shred'
'shtab' '_shtab'
'shuf' '_shuf'
'shutdown' '_shutdown'
'sisu' '_sisu'
@ -1165,6 +1220,7 @@ _comps=(
'smbstatus' '_samba'
'soa' '_hosts'
'socket' '_socket'
'sogrep' '_devtools'
'sort' '_sort'
'sortm' '_mh'
'source' '_source'
@ -1184,6 +1240,8 @@ _comps=(
'sshfs' '_sshfs'
'ssh-keygen' '_ssh'
'ssh-keyscan' '_ssh'
'stagingpkg' '_devtools'
'staging-x86_64-build' '_devtools'
'star' '_tar'
'start' '_initctl'
'stat' '_stat'
@ -1235,6 +1293,7 @@ _comps=(
'systemd-run' '_systemd-run'
'systemd-tmpfiles' '_systemd-tmpfiles'
'systemd-tty-ask-password-agent' '_systemd'
'systemsettings' '_systemsettings'
'tac' '_tac'
'tacker' '_openstack'
'tail' '_tail'
@ -1251,6 +1310,8 @@ _comps=(
'tdr' '_devtodo'
'tee' '_tee'
'telnet' '_telnet'
'testingpkg' '_devtools'
'testing-x86_64-build' '_devtools'
'tex' '_tex'
'texi2any' '_texinfo'
'texi2dvi' '_texinfo'
@ -1268,6 +1329,7 @@ _comps=(
'tkconch' '_twisted'
'tkinfo' '_texinfo'
'tla' '_tla'
'tldr' '_tldr'
'tload' '_tload'
'tmux' '_tmux'
'todo' '_devtodo'
@ -1285,7 +1347,6 @@ _comps=(
'transmission-remote' '_transmission'
'trap' '_trap'
'tree' '_tree'
'tremc' '_tremc'
'trial' '_twisted'
'trove' '_openstack'
'true' '_nothing'
@ -1305,6 +1366,7 @@ _comps=(
'type' '_which'
'typeset' '_typeset'
'udevadm' '_udevadm'
'udisksctl' '_udisks2'
'ulimit' '_ulimit'
'uml_mconsole' '_uml'
'uml_moo' '_uml'
@ -1443,6 +1505,7 @@ _comps=(
'wipefs' '_wipefs'
'wodim' '_cdrecord'
'wpa_cli' '_wpa_cli'
'wpctl' '_wpctl'
'write' '_users_on'
'www' '_webbrowser'
'xargs' '_xargs'
@ -1565,8 +1628,15 @@ _comps=(
_services=(
'bzcat' 'bunzip2'
'communitypkg' 'commitpkg'
'community-stagingpkg' 'commitpkg'
'community-testingpkg' 'commitpkg'
'corepkg' 'commitpkg'
'extrapkg' 'commitpkg'
'extra-x86_64-build' 'archbuild'
'gchgrp' 'chgrp'
'gchown' 'chown'
'gnome-unstable-x86_64-build' 'archbuild'
'gnupod_addsong.pl' 'gnupod_addsong'
'gnupod_check.pl' 'gnupod_check'
'gnupod_INIT.pl' 'gnupod_INIT'
@ -1574,11 +1644,17 @@ _services=(
'gpg2' 'gpg'
'gzcat' 'gunzip'
'iceweasel' 'firefox'
'kde-unstable-x86_64-build' 'archbuild'
'lzcat' 'unxz'
'lzma' 'xz'
'Mail' 'mail'
'mailx' 'mail'
'mktunes.pl' 'mktunes'
'multilib-build' 'archbuild'
'multilibpkg' 'commitpkg'
'multilib-staging-build' 'archbuild'
'multilib-testing-build' 'archbuild'
'multilib-testingpkg' 'commitpkg'
'nail' 'mail'
'ncl' 'nc'
'nedit-nc' 'nc'
@ -1598,9 +1674,13 @@ _services=(
'-redirect-,>,xz' 'unxz'
'remsh' 'rsh'
'slogin' 'ssh'
'stagingpkg' 'commitpkg'
'staging-x86_64-build' 'archbuild'
'svnadmin-static' 'svnadmin'
'svnlite' 'svn'
'svnliteadmin' 'svnadmin'
'testingpkg' 'commitpkg'
'testing-x86_64-build' 'archbuild'
'tunes2pod.pl' 'tunes2pod'
'unlzma' 'unxz'
'xelatex' 'latex'
@ -1632,6 +1712,7 @@ _postpatcomps=(
'shasum(|5).*' '_shasum'
'(texi(2*|ndex))' '_texi'
'(tiff*|*2tiff|pal2rgb)' '_tiff'
'-value-,BORG_*,-default-' '_borg'
'-value-,(ftp|http(|s))_proxy,-default-' '_urls'
'-value-,LC_*,-default-' '_locales'
'-value-,*path,-default-' '_directories'
@ -1677,18 +1758,24 @@ bindkey '^[,' _history-complete-newer
bindkey '^[/' _history-complete-older
bindkey '^[~' _bash_complete-word
autoload -Uz _bat _bluetoothctl _bootctl _bun _busctl \
_cargo _checkupdates _coredumpctl _curl _email-notmuch \
_hostnamectl _img2sixel _journalctl _jupyter _kernel-install \
_libinput _localectl _loginctl _machinectl _mkinitcpio \
_mpv _mutt-wizard.zsh _networkctl _ninja _notmuch \
_oomctl _paccache _pacdiff _paclist _paclog-pkglist \
_pacman _pacscripts _pacsearch _pacsort _pactree \
_paru _pass _pulseaudio _qrcp _rankmirrors \
_rclone _resolvectl _sd_hosts_or_user_at_host _sd_machines _sd_outputmodes \
_sd_unit_files _systemctl _systemd _systemd-analyze _systemd-delta \
_systemd-inhibit _systemd-nspawn _systemd-path _systemd-run _systemd-tmpfiles \
_timedatectl _tremc _udevadm _updpkgsums _xwallpaper \
autoload -Uz _archinstallscripts _asp _bat _black _blackd \
_bluetoothctl _bootctl _borg _bun _busctl \
_bwrap _cargo _chafa _checkupdates _coredumpctl \
_curl _devtools _docker _downgrade _email-khard \
_email-notmuch _hg _hostnamectl _img2sixel _journalctl \
_jupyter _kde-inhibit _kernel-install _khard _krunner \
_kscreen-doctor _libinput _localectl _loginctl _machinectl \
_meson _mkinitcpio _mpv _mutt-wizard.zsh _networkctl \
_ninja _notmuch _oomctl _paccache _pacdiff \
_pacignore _paclist _paclog-pkglist _pacman _pacscripts \
_pacsearch _pacsort _pactree _papis _parallel \
_paru _pass _patchelf _pdfgrep _pip \
_plasmashell _poetry _pulseaudio _qpdf _qrcp \
_rankmirrors _rclone _resolvectl _sd_hosts_or_user_at_host _sd_machines \
_sd_outputmodes _sd_unit_files _shtab _systemctl _systemd \
_systemd-analyze _systemd-delta _systemd-inhibit _systemd-nspawn _systemd-path \
_systemd-run _systemd-tmpfiles _systemsettings _timedatectl _tldr \
_udevadm _udisks2 _updpkgsums _wpctl _xwallpaper \
_yay _yt-dlp _zathura _cdr _all_labels \
_all_matches _alternative _approximate _arg_compile _arguments \
_bash_completions _cache_invalid _call_function _combination _complete \

View File

@ -6,10 +6,7 @@
#automatically scale HD screens to better work with hidpi
scale_factor_HD=${1:-1.6666}
scale_outputs="HDMI-3
DP-2
HDMI-1-3
DP1-2"
scale_outputs="HDMI-1 DP-7"
#fixes issue that script gets called twice for some reason
@ -45,7 +42,7 @@ twoscreen() { # If multi-monitor is selected and there are two screens.
primary=$(echo "$screens" | dmenu -i -p "Select primary display:")
secondary=$(echo "$screens" | grep -v "$primary")
direction=$(printf "left\\nright" | dmenu -i -p "What side of $primary should $secondary be on?")
if $(echo "$scale_outputs" | grep -q "$primary"); then
if echo "$scale_outputs" | grep -q "$primary"; then
xrandr --output "$primary" --auto --scale $scale_factor_HD --output "$secondary" --"$direction"-of "$primary" --auto --scale 1.0x1.0
elif $(echo "$scale_outputs" | grep -q "$seconday"); then
xrandr --output "$primary" --auto --scale 1.0x1.0 --output "$secondary" --"$direction"-of "$primary" --auto --scale $scale_factor_HD

View File

@ -1,7 +1,6 @@
#!/bin/sh
DBUS_SESSION_BUS_ADDRESS=$(cat /tmp/dbus_session_bus_address)
export DBUS_SESSION_BUS_ADDRESS
export DISPLAY=:0.0
export DBUS_SESSION_BUS_ADDRESS=$(cat /tmp/dbus_session_bus_address)
#export DISPLAY=:0.0
newsboat -x reload & pid=$!
sleep 120
kill -15 $pid

View File

@ -5,8 +5,8 @@
VIRTUAL_PRINTER_DIR="/var/spool/cups-pdf/$USER"
# Printer to print magazine layout on
PRINTER="Canon-MF220"
PRINTER=Virtual_PDF_Printer
file="$@"
#PRINTER=Virtual_PDF_Printer
file="$1"
lpr -P Virtual_PDF_Printer -o number-up=2 -o orientation-requested=4 -o fit-to-page -o media=a4 "$file"
str="."
until lpc status | grep -A 4 'Virtual_PDF_Printer:' | tail -n1 | grep 'no entries'; do

View File

@ -23,9 +23,10 @@ do
echo "Error. Capacity:$capacity" > /dev/stderr &&
continue
# do not display full batteries (nice to unclutter status bars for laptops mostly used stationiary)
[ "$capacity" -eq 100 ] &&
printf '\n' &&
if [ "$capacity" -eq 100 ] || grep -q "Full" "$battery"/status; then
printf '\n'
continue
fi
unset status
status=$(sed "s/Not charging/🛑/" "$battery"/status)

View File

@ -8,21 +8,21 @@ echo "syncclouds.sh: moodle-dl"
# remove lock file if moodle-dl is not running
pgrep -x moodle-dl || [ -f ~/eth/.moodle/running.lock ] && rm ~/eth/.moodle/running.lock
cd ~/eth/.moodle && moodle-dl
} > /dev/null 2>&1 &
}
moodle_pid=$!
# sync nextcloud drive
echo "syncclouds.sh: nextcloudcmd"
{
nextcloudcmd -u "alexander" --password "$(pass show Misc/nextcloud_token | head -n1)" ~/dox/nextcloud https://cloud.bocken.org
} > /dev/null 2>&1 &
}
nextcloud_pid=$!
# sync contacts to nextcloud
echo "syncclouds.sh: vdirsyncer"
{
vdirsyncer sync
} > /dev/null 2>&1 &
}
vdirsyncer_pid=$!
# sync calendar to nextcloud
@ -31,7 +31,7 @@ echo "syncclouds.sh: calcurse-caldav"
# remove lock file if calcurse-caldav is not running
pgrep -x calcurse-caldav || [ -f ~/.local/share/calcurse/caldav/lock ] && rm ~/.local/share/calcurse/caldav/lock
CALCURSE_CALDAV_PASSWORD=$(pass Misc/calcurse_token) calcurse-caldav
} > /dev/null 2>&1 &
}
calcurse_pid=$!
# Wait for all processes to complete and print a message for each one

View File

@ -11,7 +11,7 @@ makepathabsolute(){
echo "$dl_location"
}
choices="$(printf 'mpv\ncopy url\nqueue download\nrifle file\nqueue youtube-dl\nbrowser\nrip media\ncast')"
choices="$(printf 'mpv\ncopy url\nqueue download\nrifle file\nqueue youtube-dl\nbrowser\nrip media\ncast\nadd torrent\n')"
if echo "$1" | grep -q "4chan"; then
choices="$(printf '%s\nwatch thread' "$choices")"
fi
@ -41,4 +41,10 @@ case "$choice" in
"rip media") dest="$(dmenuinput 'name of folder:')"
lynx --dump --nonumbers --listonly "$1" | grep -E "\.(webm|mp4|gif|jpg|jpeg|png|pdf|epub|mobi|djvu)" | sort -u | xargs wget -P "$(makepathabsolute "$dest")"
notify-send "dmenuhandler" "all media ripped into $dest";;
"add torrent") echo "$1" | grep -q '^magnet:' && transadd "$1"
if echo "$1" | grep -q "\.torrent$"; then
curl -L "$1" -o "/tmp/torrentfile"
transadd "/tmp/torrentfile"
rm "/tmp/torrentfile"
fi
esac

View File

@ -4,7 +4,7 @@
#pgrep -x transmission-da || (transmission-daemon && notify-send "Starting transmission daemon..." && sleep 3 && pkill -RTMIN+12 dwmblocks)
host=https://bocken.org/transmission
host=https://bocken.org/transmission/rpc
user=alex
password=$(pass show server/seenas/transmission)
transmission-remote $host -n $user:$password -a "$@" && notify-send "🔽 Torrent added."

View File

@ -1,5 +1,5 @@
#!/bin/sh
while true; do
mpc idle player > /dev/null
pkill -RTMIN+11 dwmblocks
pkill -RTMIN+8 dwmblocks
done

View File

@ -1,26 +1,6 @@
[MIME Cache]
application/pdf=chromium.desktop;wine-extension-pdf.desktop;
application/rdf+xml=chromium.desktop;
application/rss+xml=chromium.desktop;
application/rtf=wine-extension-rtf.desktop;
application/vnd.ms-htmlhelp=wine-extension-chm.desktop;
application/winhlp=wine-extension-hlp.desktop;
application/x-mswinurl=wine-extension-url.desktop;
application/x-mswrite=wine-extension-wri.desktop;
application/x-wine-extension-ini=wine-extension-ini.desktop;
application/x-wine-extension-msp=wine-extension-msp.desktop;
application/xhtml+xml=chromium.desktop;
application/xhtml_xml=chromium.desktop;
application/xml=chromium.desktop;wine-extension-xml.desktop;
image/gif=chromium.desktop;wine-extension-gif.desktop;
image/jpeg=chromium.desktop;wine-extension-jfif.desktop;wine-extension-jpe.desktop;
image/png=chromium.desktop;wine-extension-png.desktop;
image/webp=chromium.desktop;
text/html=browser.desktop;chromium.desktop;wine-extension-htm.desktop;
text/plain=wine-extension-txt.desktop;
text/vbscript=wine-extension-vbs.desktop;
text/xml=chromium.desktop;
text/html=browser.desktop;
x-scheme-handler/about=browser.desktop;
x-scheme-handler/http=browser.desktop;chromium.desktop;
x-scheme-handler/https=browser.desktop;chromium.desktop;
x-scheme-handler/http=browser.desktop;
x-scheme-handler/https=browser.desktop;
x-scheme-handler/unknown=browser.desktop;

View File

@ -7,12 +7,12 @@
// @exclude *://*.youtube.com/subscribe_embed?*
// ==/UserScript==
setInterval(() => {
const btn = document.querySelector('.videoAdUiSkipButton,.ytp-ad-skip-button')
if (btn) {
btn.click()
}
document.querySelector('.videoAdUiSkipButton,.ytp-ad-skip-button')?.click()
const ad = [...document.querySelectorAll('.ad-showing')][0];
if (ad) {
document.querySelector('video').playbackRate = 10;
}
setTimeout( () => {
document.querySelector('.videoAdUiSkipButton,.ytp-ad-skip-button')?.click()
}, 5000)
}, 50)