From b8b5a9f45e45b1d1099e6ac634476a24bf3d0e6b Mon Sep 17 00:00:00 2001 From: Alexander Bocken Date: Sat, 9 Mar 2024 13:38:38 +0100 Subject: [PATCH] Update to current state --- .config/calcurse/caldav/config | 16 +- .config/fontconfig/fonts.conf | 2 +- .config/jellyfin-mpv-shim/conf.json | 2 +- .config/mimeapps.list | 1 + .../mutt/accounts/1-abocken@ethz.ch.muttrc | 47 ---- .../mutt/accounts/alexander@bocken.org.muttrc | 21 +- .config/mutt/muttrc | 18 +- .config/nsxiv/exec/image-info | 6 +- .config/nsxiv/exec/key-handler | 2 +- .config/pass-git-helper/git-pass-mapping.ini | 6 +- .config/pipewire/pipewire.conf | 247 ------------------ .config/qutebrowser/autoconfig.yml | 83 ++++++ .config/ranger/rifle.conf | 1 + .config/shell/profile | 1 + .config/x11/xprofile | 8 +- .config/zsh/.zcompdump | 117 +++++++-- .local/bin/displayselect | 7 +- .local/bin/newsboatupdate | 5 +- .local/bin/print_slides | 4 +- .local/bin/statusbar/sb-battery | 5 +- .local/bin/syncclouds.sh | 8 +- .local/bin/tools/dmenuhandler | 14 +- .local/bin/tools/transadd | 2 +- .local/bin/update_musicbar | 2 +- .local/share/applications/mimeinfo.cache | 26 +- .../qutebrowser/greasemonkey/block_yt_ads.js | 8 +- 26 files changed, 265 insertions(+), 394 deletions(-) delete mode 100644 .config/mutt/accounts/1-abocken@ethz.ch.muttrc delete mode 100644 .config/pipewire/pipewire.conf diff --git a/.config/calcurse/caldav/config b/.config/calcurse/caldav/config index 5020d96..5fafd62 100644 --- a/.config/calcurse/caldav/config +++ b/.config/calcurse/caldav/config @@ -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 diff --git a/.config/fontconfig/fonts.conf b/.config/fontconfig/fonts.conf index 761ae00..1b5b07a 100755 --- a/.config/fontconfig/fonts.conf +++ b/.config/fontconfig/fonts.conf @@ -31,7 +31,7 @@ monospace - Noto Sans Mono + Inconsolata Libertinus Mono FontAwesome Braille diff --git a/.config/jellyfin-mpv-shim/conf.json b/.config/jellyfin-mpv-shim/conf.json index 388b580..4d99da0 100644 --- a/.config/jellyfin-mpv-shim/conf.json +++ b/.config/jellyfin-mpv-shim/conf.json @@ -104,4 +104,4 @@ "transcode_warning": true, "use_web_seek": false, "write_logs": false -} +} \ No newline at end of file diff --git a/.config/mimeapps.list b/.config/mimeapps.list index 9124fce..55d8286 100644 --- a/.config/mimeapps.list +++ b/.config/mimeapps.list @@ -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 diff --git a/.config/mutt/accounts/1-abocken@ethz.ch.muttrc b/.config/mutt/accounts/1-abocken@ethz.ch.muttrc deleted file mode 100644 index 3c92608..0000000 --- a/.config/mutt/accounts/1-abocken@ethz.ch.muttrc +++ /dev/null @@ -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 -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 "mailsync abocken@ethz.ch" "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 "=Drafts" "go to drafts" -macro index,pager Md ";=Drafts" "move mail to drafts" -macro index,pager Cd ";=Drafts" "copy mail to drafts" -macro index,pager gi "=INBOX" "go to inbox" -macro index,pager Mi ";=INBOX" "move mail to inbox" -macro index,pager Ci ";=INBOX" "copy mail to inbox" -set spoolfile = "+INBOX" -macro index,pager gj "=Junk" "go to junk" -macro index,pager Mj ";=Junk" "move mail to junk" -macro index,pager Cj ";=Junk" "copy mail to junk" -set record = "+Sent" -macro index,pager gs "=Sent" "go to sent" -macro index,pager Ms ";=Sent" "move mail to sent" -macro index,pager Cs ";=Sent" "copy mail to sent" -set record = "+Sent" -macro index,pager gs "=Sent" "go to sent" -macro index,pager Ms ";=Sent" "move mail to sent" -macro index,pager Cs ";=Sent" "copy mail to sent" -macro index,pager gt "=Trash" "go to trash" -macro index,pager Mt ";=Trash" "move mail to trash" -macro index,pager Ct ";=Trash" "copy mail to trash" -set trash = "+Trash" diff --git a/.config/mutt/accounts/alexander@bocken.org.muttrc b/.config/mutt/accounts/alexander@bocken.org.muttrc index aa047db..0de3613 100644 --- a/.config/mutt/accounts/alexander@bocken.org.muttrc +++ b/.config/mutt/accounts/alexander@bocken.org.muttrc @@ -5,18 +5,15 @@ set from = "alexander@bocken.org" set sendmail = "msmtp -a alexander@bocken.org" alias me Alexander Bocken 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 "mailsync alexander@bocken.org" "run mbsync to sync alexander@bocken.org" -macro index \eg "unset wait_keygpg --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" "publish GPG key to WKS provider" -macro index \eh "/usr/lib/gnupg/gpg-wks-client --receive | msmtp --read-envelope-from --read-recipients -a alexander@bocken.org" "confirm GPG publication" - -mailboxes "=Archive/Archive" "=Trash/Trash" "=Sent" "=Junk" "=Drafts" "=INBOX" +macro index o "mailsync alexander@bocken.org" "sync alexander@bocken.org" +mailboxes "=Sent" "=Junk" "=Drafts" "=INBOX" diff --git a/.config/mutt/muttrc b/.config/mutt/muttrc index 1f04bc6..0a1dc68 100644 --- a/.config/mutt/muttrc +++ b/.config/mutt/muttrc @@ -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 'source /home/alex/.config/mutt/accounts/alexander@bocken.org.muttrc!;' "switch to alexander@bocken.org" -macro index,pager i2 'source /home/alex/.config/mutt/accounts/1-abocken@ethz.ch.muttrc!;' "switch to abocken@ethz.ch" +macro index,pager i2 'source /home/alex/.config/mutt/accounts/abocken@ethz.ch.muttrc!;' "switch to abocken@ethz.ch" set forward_attachments = ask-yes macro compose m \ "set pipe_decode\ @@ -14,6 +13,17 @@ macro compose m \ " \ "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 "set my_pipe_decode=\$pipe_decode pipe_decodeabook --config $XDG_CONFIG_HOME/abook/abookrc --datafile $XDG_DATA_HOME/abook/addressbook --add-emailset pipe_decode=\$my_pipe_decode; unset my_pipe_decode" "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 "set my_pipe_decode=\$pipe_decode pipe_decodeabook --config $XDG_CONFIG_HOME/abook/abookrc --datafile $XDG_DATA_HOME/abook/addressbook --add-emailset pipe_decode=\$my_pipe_decode; unset my_pipe_decode" "add the sender address to abook" macro index,pager i3 'source /home/alex/.config/mutt/accounts/alexander@aaathats3as.com.muttrc!;' "switch to alexander@aaathats3as.com" +macro index,pager i1 'source /home/alex/.config/mutt/accounts/alexander@bocken.org.muttrc!;' "switch to alexander@bocken.org" + + +set query_command= "mates mutt-query '%s'" + +set query_command = "echo %s | xargs khard email --parsable --" +bind editor complete-query +bind editor ^T complete +macro index,pager a \ + "khard add-email" \ + "add the sender email address to khard" diff --git a/.config/nsxiv/exec/image-info b/.config/nsxiv/exec/image-info index 5f06123..45187dc 100755 --- a/.config/nsxiv/exec/image-info +++ b/.config/nsxiv/exec/image-info @@ -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}" diff --git a/.config/nsxiv/exec/key-handler b/.config/nsxiv/exec/key-handler index f3dd7dc..2a51254 100755 --- a/.config/nsxiv/exec/key-handler +++ b/.config/nsxiv/exec/key-handler @@ -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 diff --git a/.config/pass-git-helper/git-pass-mapping.ini b/.config/pass-git-helper/git-pass-mapping.ini index 89b03de..0122761 100644 --- a/.config/pass-git-helper/git-pass-mapping.ini +++ b/.config/pass-git-helper/git-pass-mapping.ini @@ -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 diff --git a/.config/pipewire/pipewire.conf b/.config/pipewire/pipewire.conf deleted file mode 100644 index b8a3672..0000000 --- a/.config/pipewire/pipewire.conf +++ /dev/null @@ -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 = { - # = - # - # 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 = - # [ args = { = ... } ] - # [ 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 = - # [ args = { = ... } ] - # [ 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 = [ args = "" ] } - # - # 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" } -] diff --git a/.config/qutebrowser/autoconfig.yml b/.config/qutebrowser/autoconfig.yml index c66a0d4..691d5eb 100644 --- a/.config/qutebrowser/autoconfig.yml +++ b/.config/qutebrowser/autoconfig.yml @@ -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={} diff --git a/.config/ranger/rifle.conf b/.config/ranger/rifle.conf index 7375f67..dddb8fd 100644 --- a/.config/ranger/rifle.conf +++ b/.config/ranger/rifle.conf @@ -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 diff --git a/.config/shell/profile b/.config/shell/profile index 3cd17e2..5afb813 100644 --- a/.config/shell/profile +++ b/.config/shell/profile @@ -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" diff --git a/.config/x11/xprofile b/.config/x11/xprofile index 827eba5..a316e6f 100755 --- a/.config/x11/xprofile +++ b/.config/x11/xprofile @@ -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. diff --git a/.config/zsh/.zcompdump b/.config/zsh/.zcompdump index c676519..88fc4ec 100644 --- a/.config/zsh/.zcompdump +++ b/.config/zsh/.zcompdump @@ -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 \ diff --git a/.local/bin/displayselect b/.local/bin/displayselect index 3ca344e..1b82754 100755 --- a/.local/bin/displayselect +++ b/.local/bin/displayselect @@ -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 diff --git a/.local/bin/newsboatupdate b/.local/bin/newsboatupdate index ae0fa51..b940d57 100755 --- a/.local/bin/newsboatupdate +++ b/.local/bin/newsboatupdate @@ -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 diff --git a/.local/bin/print_slides b/.local/bin/print_slides index 2c0f37d..f0939da 100755 --- a/.local/bin/print_slides +++ b/.local/bin/print_slides @@ -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 diff --git a/.local/bin/statusbar/sb-battery b/.local/bin/statusbar/sb-battery index 3069c08..cbdce7c 100755 --- a/.local/bin/statusbar/sb-battery +++ b/.local/bin/statusbar/sb-battery @@ -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) diff --git a/.local/bin/syncclouds.sh b/.local/bin/syncclouds.sh index ca5a6f2..5c0ef29 100755 --- a/.local/bin/syncclouds.sh +++ b/.local/bin/syncclouds.sh @@ -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 diff --git a/.local/bin/tools/dmenuhandler b/.local/bin/tools/dmenuhandler index c3393ae..0b8b6fc 100755 --- a/.local/bin/tools/dmenuhandler +++ b/.local/bin/tools/dmenuhandler @@ -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 @@ -38,7 +38,13 @@ case "$choice" in mkdir -p "$(makepathabsolute "$dest")" threadwatcher add "$1" "$dest" & notify-send "dmenuhandler" "Thread watcher started. Download initialized.";; - "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";; + "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 diff --git a/.local/bin/tools/transadd b/.local/bin/tools/transadd index 7743e18..8bbfaf8 100755 --- a/.local/bin/tools/transadd +++ b/.local/bin/tools/transadd @@ -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." diff --git a/.local/bin/update_musicbar b/.local/bin/update_musicbar index 6cc0719..82de12e 100755 --- a/.local/bin/update_musicbar +++ b/.local/bin/update_musicbar @@ -1,5 +1,5 @@ #!/bin/sh while true; do mpc idle player > /dev/null - pkill -RTMIN+11 dwmblocks + pkill -RTMIN+8 dwmblocks done diff --git a/.local/share/applications/mimeinfo.cache b/.local/share/applications/mimeinfo.cache index 6b2e69e..1235333 100644 --- a/.local/share/applications/mimeinfo.cache +++ b/.local/share/applications/mimeinfo.cache @@ -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; diff --git a/.local/share/qutebrowser/greasemonkey/block_yt_ads.js b/.local/share/qutebrowser/greasemonkey/block_yt_ads.js index eb1fd2d..934db67 100644 --- a/.local/share/qutebrowser/greasemonkey/block_yt_ads.js +++ b/.local/share/qutebrowser/greasemonkey/block_yt_ads.js @@ -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)