diff options
| author | Robert Günzler <r@gnzler.io> | 2026-04-08 13:18:14 +0900 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2026-04-08 13:18:14 +0900 |
| commit | b61b58ce2c1371d6f904f108fa7feed3abfbe5c7 (patch) | |
| tree | 008a5cf54ecbfffb97ddac30e44c8ab224395ab0 /.config | |
| parent | d4620f3ac119263fee90bd819eadaf84fc8d50b7 (diff) | |
*
Automated-commit-by: dots Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to '.config')
57 files changed, 961 insertions, 0 deletions
diff --git a/.config/foot/colors.ini b/.config/foot/colors.ini new file mode 100644 index 0000000..cfa0f38 --- /dev/null +++ b/.config/foot/colors.ini @@ -0,0 +1 @@ +initial-color-theme=2 diff --git a/.config/foot/foot.ini b/.config/foot/foot.ini new file mode 100644 index 0000000..1265616 --- /dev/null +++ b/.config/foot/foot.ini @@ -0,0 +1,50 @@ +# vim: commentstring=#\ %s +include=~/.config/foot/colors.ini +include=~/.config/foot/themes/koda + +# ::start style +font=DejaVu Sans Mono, Symbols Nerd Font Mono, Noto Color Emoji +# ::end style + +term=foot-direct +bold-text-in-bright=no +box-drawings-uses-font-glyphs=no +resize-delay-ms=0 +initial-window-size-pixels=2560x1440 +dpi-aware=no +pad=2x2 + +[tweak] +grapheme-shaping=yes +overflowing-glyphs=yes +font-monospace-warn=no +max-shm-pool-size-mb=1024 + +[colors] +# color overwrites +alpha=0.99 + +[bell] +urgent=yes +notify=no + +[scrollback] +lines=1000 + +[mouse] +hide-when-typing=no +alternate-scroll-mode=no + +[url] +osc8-underline=always + +[url-bindings] +cancel=Escape + +[regex:paths] +regex=^((\/|\~\/)([a-zA-Z0-9_\-\.]*\/?)+) +launch=urlopen '${match}' + +[key-bindings] +regex-launch=[paths] Control+Shift+p +pipe-scrollback=[sh -c "f=$(mktemp) && cat - > $f && foot $EDITOR -t $f; rm $f"] Control+Shift+e diff --git a/.config/foot/themes/koda b/.config/foot/themes/koda new file mode 100644 index 0000000..d7a7591 --- /dev/null +++ b/.config/foot/themes/koda @@ -0,0 +1,55 @@ +# -*- conf -*- +# Koda theme +# See: https://github.com/oskarnurm/koda.nvim + +[colors] +cursor=101010 b0b0b0 +foreground=ffffff +background=101010 + +selection-foreground=b0b0b0 +selection-background=272727 + +regular0=101010 +regular1=ff7676 +regular2=a3d6a3 +regular3=ffffff +regular4=b3b3b3 +regular5=f4b8e4 +regular6=fafafa +regular7=a5adce + +bright0=666666 +bright1=ff5733 +bright2=86cd82 +bright3=d9ba73 +bright4=ffffff +bright5=f2a4db +bright6=5abfb5 +bright7=b5bfe2 + +[colors2] +cursor=ebebeb 6a6a6a +foreground=101010 +background=faf9f5 + +selection-foreground=101010 +selection-background=ebebeb + +regular0=e2e2e2 +regular1=ca0043 +regular2=407f00 +regular3=926200 +regular4=3d3d3d +regular5=a200d1 +regular6=007d7d +regular7=6a6a6a + +bright0=ababab +bright1=f30052 +bright2=4f9a00 +bright3=b07700 +bright4=000000 +bright5=c301fb +bright6=009797 +bright7=101010 diff --git a/.config/foot/themes/nvim b/.config/foot/themes/nvim new file mode 100644 index 0000000..bf629c0 --- /dev/null +++ b/.config/foot/themes/nvim @@ -0,0 +1,56 @@ +# -*- conf -*- +# Neovim Dark theme +# Uses the dark color palette from the default Neovim color scheme +# See: https://github.com/neovim/neovim/blob/fb6c059dc55c8d594102937be4dd70f5ff51614a/src/nvim/highlight_group.c#L419 + +[colors] +cursor=14161b e0e2ea # NvimDarkGrey2 NvimLightGrey2 +foreground=e0e2ea # NvimLightGrey2 +background=14161b # NvimDarkGrey2 + +selection-foreground=e0e2ea # NvimLightGrey2 +selection-background=4f5258 # NvimDarkGrey4 + +regular0=07080d # NvimDarkGrey1 +regular1=ffc0b9 # NvimLightRed +regular2=b3f6c0 # NvimLightGreen +regular3=fce094 # NvimLightYellow +regular4=a6dbff # NvimLightBlue +regular5=ffcaff # NvimLightMagenta +regular6=8cf8f7 # NvimLightCyan +regular7=c4c6cd # NvimLightGrey3 + +bright0=2c2e33 # NvimDarkGrey3 +bright1=ffc0b9 # NvimLightRed +bright2=b3f6c0 # NvimLightGreen +bright3=fce094 # NvimLightYellow +bright4=a6dbff # NvimLightBlue +bright5=ffcaff # NvimLightMagenta +bright6=8cf8f7 # NvimLightCyan +bright7=eef1f8 # NvimLightGrey1 + +[colors2] +cursor=e0e2ea 14161b # NvimLightGrey2 NvimDarkGrey2 +foreground=14161b # NvimDarkGrey2 +background=e0e2ea # NvimLightGrey2 + +selection-foreground=14161b # NvimDarkGrey2 +selection-background=9b9ea4 # NvimLightGrey4 + +regular0=eef1f8 # NvimLightGrey1 +regular1=590008 # NvimDarkRed +regular2=005523 # NvimDarkGreen +regular3=6b5300 # NvimDarkYellow +regular4=004c73 # NvimDarkBlue +regular5=470045 # NvimDarkMagenta +regular6=007373 # NvimDarkCyan +regular7=2c2e33 # NvimDarkGrey3 + +bright0=c4c6cd # NvimLightGrey3 +bright1=590008 # NvimDarkRed +bright2=005523 # NvimDarkGreen +bright3=6b5300 # NvimDarkYellow +bright4=004c73 # NvimDarkBlue +bright5=470045 # NvimDarkMagenta +bright6=007373 # NvimDarkCyan +bright7=07080d # NvimDarkGrey1 diff --git a/.config/kanshi/config b/.config/kanshi/config new file mode 100644 index 0000000..9fac1c6 --- /dev/null +++ b/.config/kanshi/config @@ -0,0 +1,8 @@ +profile laptop { + output eDP-1 scale 2.0 enable +} + +profile single { + output "Dell Inc. DELL U2518D 3C4YP87AAK3L" mode 2560x1440 position 0,0 transform normal scale 1 enable + output eDP-1 position 2560,0 scale 2.0 enable +} diff --git a/.config/mako/colors b/.config/mako/colors new file mode 100644 index 0000000..8d074ce --- /dev/null +++ b/.config/mako/colors @@ -0,0 +1 @@ +include=~/.config/mako/colors-light diff --git a/.config/mako/colors-dark b/.config/mako/colors-dark new file mode 100644 index 0000000..cca216d --- /dev/null +++ b/.config/mako/colors-dark @@ -0,0 +1,25 @@ +font=DejaVu Sans Mono 8 +background-color=#080808 +text-color=#e0e2ea +border-color=#70649a +progress-color=source #70649a + +[urgency=high] +border-size=2 +border-color=#ffc0b9 + +[category=error] +border-size=2 +border-color=#ffc0b9 + +[category=warning] +border-size=2 +border-color=#fce094 + +[category=success] +border-size=2 +border-color=#b3f6c0 + +[category=alert] +border-size=0 +background-color=#590008 diff --git a/.config/mako/colors-light b/.config/mako/colors-light new file mode 100644 index 0000000..a07a751 --- /dev/null +++ b/.config/mako/colors-light @@ -0,0 +1,25 @@ +font=DejaVu Sans Mono 8 +background-color=#fffffb +text-color=#080808 +border-color=#70649a +progress-color=source #70649a + +[urgency=high] +border-size=2 +border-color=#ffc0b9 + +[category=error] +border-size=2 +border-color=#ffc0b9 + +[category=warning] +border-size=2 +border-color=#fce094 + +[category=success] +border-size=2 +border-color=#b3f6c0 + +[category=alert] +border-size=0 +background-color=#ffc0b9 diff --git a/.config/mako/config b/.config/mako/config new file mode 100644 index 0000000..0329579 --- /dev/null +++ b/.config/mako/config @@ -0,0 +1,35 @@ +include=~/.config/mako/colors + +group-by=app-name,summary +default-timeout=2000 +max-history=20 +max-icon-size=32 +max-visible=6 + +border-size=1 +padding=6 + +# on-button-right=exec makoctl menu -- fuzzel -d -p ' select action ' + +# [urgency=high] +# # on-notify=exec pw-play --media-role=event --volume=0.5 $HOME/music/bell.wav +# +# [category=error] +# # on-notify=exec pw-play --media-role=event --volume=0.5 $HOME/music/bell.wav +# +# [category=warning] +# # on-notify=exec pw-play --media-role=event --volume=0.5 $HOME/music/bell.wav +# +# [category=success] +# # on-notify=exec pw-play --media-role=event --volume=0.5 $HOME/music/bell.wav +# +# [category=alert] +# anchor=top-center +# # on-notify=exec pw-play --media-role=event --volume=0.5 $HOME/music/bell.wav +# +# [summary=reminder] +# # on-notify=exec pw-play --media-role=event --volume=0.5 $HOME/music/bell.wav +# +# +# [mode=dnd] +# invisible=1 diff --git a/.config/mbsyncrc b/.config/mbsyncrc new file mode 100644 index 0000000..7ace06a --- /dev/null +++ b/.config/mbsyncrc @@ -0,0 +1,66 @@ +## remote + +IMAPStore gnzler +Host imap.mailfence.com +User robert@gnzler.de +PassCmd "rbw get 68b0ea26-733a-43cd-b8f8-e8ecc98de072" +TLSType IMAPS + +IMAPStore gandi +Host mail.gandi.net +User robert@gnzler.io +PassCmd "rbw get 67436053-fde1-43c3-9544-6a5289f08c76" +TLSType IMAPS + +# IMAPStore selfhosted +# Host localhost:1430 +# User postmaster@gnzler.de +# PassCmd "secretmenu -P postmaster@gnzler.io | head -n1" +# TLSType None + +## on-disk + +MaildirStore local +Path ~/mail/gnzler/ +INBOX ~/mail/gnzler/INBOX +SubFolders Verbatim + +MaildirStore local.bak +Path ~/mail/gnzler.bak/ +INBOX ~/mail/gnzler.bak/INBOX +SubFolders Verbatim + +## channel + +Channel gnzler +Far :gnzler: +Near :local: +Patterns * +# Sync Pull New +SyncState * +# WATCH OUT WHAT YOU'RE DOING +Create Both +Remove Both +Expunge Both + +## backup/restore + +Channel pull +Far :gandi: +Near :local.bak: +Patterns * +SyncState * +Sync Pull +Create Near +Remove Near +Expunge Near + +Channel restore +Far :gnzler: +Near :local: +Patterns lists lists/* +SyncState * +Sync Push +Create Far +Remove Far +Expunge Far diff --git a/.config/mimeapps.list b/.config/mimeapps.list new file mode 100644 index 0000000..013ffc9 --- /dev/null +++ b/.config/mimeapps.list @@ -0,0 +1,7 @@ +[Default Applications] +x-scheme-handler/https=urlopen.desktop +x-scheme-handler/http=urlopen.desktop +application/pdf=org.gnome.Papers.desktop; + +[Added Associations] +application/rss+xml=nvim.desktop; diff --git a/.config/pimsync/pimsync.conf b/.config/pimsync/pimsync.conf new file mode 100644 index 0000000..8fed018 --- /dev/null +++ b/.config/pimsync/pimsync.conf @@ -0,0 +1,63 @@ +# A folder where vdirsyncer can store some metadata about each pair. +status_path "~/.local/state/pimsync/status/" + +# PAIRS + +pair calendars_robert { + storage_a calendars_robert_local + storage_b gzr_robert_calendar_remote + collections all +} + +pair contacts_robert { + storage_a contacts_local + storage_b gzr_robert_contacts_remote + collections all +} + +pair calendars_goro { + storage_a calendars_goro_local + storage_b gzr_goro_calendar_remote + # NOTE: only sync events + collection events +} + +# STORAGE LOCAL + +storage calendars_robert_local { + type vdir/icalendar + path ~/calendars/robert/ + fileext ics +} + +storage calendars_goro_local { + type vdir/icalendar + path ~/calendars/goro/ + fileext ics +} + +storage contacts_local { + type vdir/vcard + path ~/contacts/ + fileext vcf +} + +# STORAGE GZR + +storage gzr_robert_calendar_remote { + type caldav + url https://cal.gzr.im/dav/ + username robert +} + +storage gzr_robert_contacts_remote { + type carddav + url https://cal.gzr.im/dav/ + username robert +} + +storage gzr_goro_calendar_remote { + type caldav + url https://cal.gzr.im/dav/ + username goro +} diff --git a/.config/rbw/config.json b/.config/rbw/config.json new file mode 100644 index 0000000..e85dafe --- /dev/null +++ b/.config/rbw/config.json @@ -0,0 +1 @@ +{"email":"robert@gnzler.io","base_url":"https://vault.gzr.im","identity_url":null,"lock_timeout":3600} diff --git a/.config/rc/conf.d/swaybg b/.config/rc/conf.d/swaybg new file mode 100644 index 0000000..7a1d4db --- /dev/null +++ b/.config/rc/conf.d/swaybg @@ -0,0 +1 @@ +command_args="--output=* --color=#70649a --image='${XDG_PICTURES_DIR}/bg.jpg' --mode=fill" diff --git a/.config/rc/init.d/fcitx5 b/.config/rc/init.d/fcitx5 new file mode 100755 index 0000000..c28da7d --- /dev/null +++ b/.config/rc/init.d/fcitx5 @@ -0,0 +1,7 @@ +#!/sbin/openrc-run +DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" + +command="/usr/bin/fcitx5" +command_args="--replace" +supervisor=supervise-daemon +error_logger="logger -t '${RC_SVCNAME}' -p daemon.error" diff --git a/.config/rc/init.d/kanshi b/.config/rc/init.d/kanshi new file mode 100755 index 0000000..dae7403 --- /dev/null +++ b/.config/rc/init.d/kanshi @@ -0,0 +1,4 @@ +#!/sbin/openrc-run +command="/usr/bin/kanshi" +supervisor=supervise-daemon +error_logger="logger -t '${RC_SVCNAME}' -p daemon.error" diff --git a/.config/rc/init.d/mako b/.config/rc/init.d/mako new file mode 100755 index 0000000..40e8ec3 --- /dev/null +++ b/.config/rc/init.d/mako @@ -0,0 +1,27 @@ +#!/sbin/openrc-run +DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" + +description="Lightweight Wayland notification daemon" + +command="/usr/bin/mako" +supervisor=supervise-daemon +error_logger="logger -t '${RC_SVCNAME}' -p daemon.error" + +depend() { + need dbus + provide notification-daemon +} + +start_pre() { + if [ -z "$WAYLAND_DISPLAY" ]; then + eerror "\$WAYLAND_DISPLAY unset, can't proceed." + return 1 + fi +} + +extra_started_commands="reload" +description_reload="Reload mako configuration using makoctl" +reload() { + makoctl reload + eend $? "Reloaded mako configuration" +} diff --git a/.config/rc/init.d/pimsync b/.config/rc/init.d/pimsync new file mode 100755 index 0000000..3ff1112 --- /dev/null +++ b/.config/rc/init.d/pimsync @@ -0,0 +1,10 @@ +#!/sbin/openrc-run + +description="Synchronise calendars and contacts" + +command="/bin/pimsync" +command_args="daemon -r 3" +notify=fd:3 + +supervisor=supervise-daemon +error_logger="logger -t '${RC_SVCNAME}' -p daemon.error" diff --git a/.config/rc/init.d/swaybg b/.config/rc/init.d/swaybg new file mode 100755 index 0000000..02f85e8 --- /dev/null +++ b/.config/rc/init.d/swaybg @@ -0,0 +1,4 @@ +#!/sbin/openrc-run +command="/usr/bin/swaybg" +supervisor=supervise-daemon +error_logger="logger -t '${RC_SVCNAME}' -p daemon.error" diff --git a/.config/rc/init.d/syncthing b/.config/rc/init.d/syncthing new file mode 100755 index 0000000..083b092 --- /dev/null +++ b/.config/rc/init.d/syncthing @@ -0,0 +1,14 @@ +#!/sbin/openrc-run +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License, v2 or later + +supervisor=supervise-daemon +command="/usr/bin/syncthing" +command_args="serve --no-browser --no-restart --logflags=0" +error_logger="logger -t '${RC_SVCNAME}' -p daemon.error" + +extra_started_commands="browser" +browser() { + syncthing browser + eend $? "Opened syncthing gui in the browser" +} diff --git a/.config/rc/init.d/udiskie b/.config/rc/init.d/udiskie new file mode 100755 index 0000000..55a521b --- /dev/null +++ b/.config/rc/init.d/udiskie @@ -0,0 +1,5 @@ +#!/sbin/openrc-run +command="/usr/bin/udiskie" +command_args="--config=$XDG_CONFIG_HOME/udiskie/config.yml --smart-tray" +supervisor=supervise-daemon +error_logger="logger -t '${RC_SVCNAME}' -p daemon.error" diff --git a/.config/rc/init.d/waybar b/.config/rc/init.d/waybar new file mode 100755 index 0000000..7eba0da --- /dev/null +++ b/.config/rc/init.d/waybar @@ -0,0 +1,8 @@ +#!/sbin/openrc-run +command="/usr/bin/waybar" +supervisor=supervise-daemon +error_logger="logger -t '${RC_SVCNAME}' -p daemon.error" + +depend() { + need pipewire-pulse wireplumber +} diff --git a/.config/rc/init.d/xdg-desktop-portal b/.config/rc/init.d/xdg-desktop-portal new file mode 100755 index 0000000..aeacb00 --- /dev/null +++ b/.config/rc/init.d/xdg-desktop-portal @@ -0,0 +1,14 @@ +#!/sbin/openrc-run +DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" + +supervisor=supervise-daemon +command="/usr/libexec/xdg-desktop-portal" +command_args="--replace $command_args" +error_logger="logger -t '${RC_SVCNAME}' -p daemon.error" + +depend() { + need dbus \ + xdg-desktop-portal-gtk \ + xdg-desktop-portal-wlr \ + xdg-desktop-portal-darkman +} diff --git a/.config/rc/init.d/xdg-desktop-portal-darkman b/.config/rc/init.d/xdg-desktop-portal-darkman new file mode 100755 index 0000000..8067c95 --- /dev/null +++ b/.config/rc/init.d/xdg-desktop-portal-darkman @@ -0,0 +1,13 @@ +#!/sbin/openrc-run + +name="darkman" +description="Control dark mode and light mode transitions" + +supervisor=supervise-daemon +command="/usr/bin/darkman" +command_args="run" +error_logger="logger -t '${RC_SVCNAME}' -p daemon.error" + +depend() { + need dbus +} diff --git a/.config/rc/init.d/xdg-desktop-portal-gtk b/.config/rc/init.d/xdg-desktop-portal-gtk new file mode 100755 index 0000000..91bcae1 --- /dev/null +++ b/.config/rc/init.d/xdg-desktop-portal-gtk @@ -0,0 +1,11 @@ +#!/sbin/openrc-run +DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" + +supervisor=supervise-daemon +command="/usr/libexec/xdg-desktop-portal-gtk" +command_args="--replace" +error_logger="logger -t '${RC_SVCNAME}' -p daemon.error" + +depend() { + need dbus +} diff --git a/.config/rc/init.d/xdg-desktop-portal-wlr b/.config/rc/init.d/xdg-desktop-portal-wlr new file mode 100755 index 0000000..c041a05 --- /dev/null +++ b/.config/rc/init.d/xdg-desktop-portal-wlr @@ -0,0 +1,11 @@ +#!/sbin/openrc-run +DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" + +supervisor=supervise-daemon +command="/usr/libexec/xdg-desktop-portal-wlr" +command_args="--replace" +error_logger="logger -t '${RC_SVCNAME}' -p daemon.error" + +depend() { + need dbus +} diff --git a/.config/rc/rc.conf b/.config/rc/rc.conf new file mode 100644 index 0000000..8e5e305 --- /dev/null +++ b/.config/rc/rc.conf @@ -0,0 +1,2 @@ +rc_default_runlevel="default" +rc_env_allow="*" diff --git a/.config/rc/runlevels/default/dbus b/.config/rc/runlevels/default/dbus new file mode 120000 index 0000000..779b9fb --- /dev/null +++ b/.config/rc/runlevels/default/dbus @@ -0,0 +1 @@ +/etc/user/init.d/dbus \ No newline at end of file diff --git a/.config/rc/runlevels/desktop/default b/.config/rc/runlevels/desktop/default new file mode 120000 index 0000000..446d58f --- /dev/null +++ b/.config/rc/runlevels/desktop/default @@ -0,0 +1 @@ +../default \ No newline at end of file diff --git a/.config/rc/runlevels/desktop/fcitx5 b/.config/rc/runlevels/desktop/fcitx5 new file mode 120000 index 0000000..a7b382d --- /dev/null +++ b/.config/rc/runlevels/desktop/fcitx5 @@ -0,0 +1 @@ +/home/robert/.config/rc/init.d/fcitx5 \ No newline at end of file diff --git a/.config/rc/runlevels/desktop/foot b/.config/rc/runlevels/desktop/foot new file mode 120000 index 0000000..81b4c9f --- /dev/null +++ b/.config/rc/runlevels/desktop/foot @@ -0,0 +1 @@ +/etc/user/init.d/foot \ No newline at end of file diff --git a/.config/rc/runlevels/desktop/kanshi b/.config/rc/runlevels/desktop/kanshi new file mode 120000 index 0000000..2cb87ce --- /dev/null +++ b/.config/rc/runlevels/desktop/kanshi @@ -0,0 +1 @@ +/home/robert/.config/rc/init.d/kanshi \ No newline at end of file diff --git a/.config/rc/runlevels/desktop/mako b/.config/rc/runlevels/desktop/mako new file mode 120000 index 0000000..5b74415 --- /dev/null +++ b/.config/rc/runlevels/desktop/mako @@ -0,0 +1 @@ +/home/robert/.config/rc/init.d/mako \ No newline at end of file diff --git a/.config/rc/runlevels/desktop/pipewire b/.config/rc/runlevels/desktop/pipewire new file mode 120000 index 0000000..1eeaabd --- /dev/null +++ b/.config/rc/runlevels/desktop/pipewire @@ -0,0 +1 @@ +/etc/user/init.d/pipewire \ No newline at end of file diff --git a/.config/rc/runlevels/desktop/pipewire-pulse b/.config/rc/runlevels/desktop/pipewire-pulse new file mode 120000 index 0000000..516d346 --- /dev/null +++ b/.config/rc/runlevels/desktop/pipewire-pulse @@ -0,0 +1 @@ +/etc/user/init.d/pipewire-pulse \ No newline at end of file diff --git a/.config/rc/runlevels/desktop/swaybg b/.config/rc/runlevels/desktop/swaybg new file mode 120000 index 0000000..0718212 --- /dev/null +++ b/.config/rc/runlevels/desktop/swaybg @@ -0,0 +1 @@ +/home/robert/.config/rc/init.d/swaybg \ No newline at end of file diff --git a/.config/rc/runlevels/desktop/udiskie b/.config/rc/runlevels/desktop/udiskie new file mode 120000 index 0000000..079b70f --- /dev/null +++ b/.config/rc/runlevels/desktop/udiskie @@ -0,0 +1 @@ +/home/robert/.config/rc/init.d/udiskie \ No newline at end of file diff --git a/.config/rc/runlevels/desktop/waybar b/.config/rc/runlevels/desktop/waybar new file mode 120000 index 0000000..8a3aa9e --- /dev/null +++ b/.config/rc/runlevels/desktop/waybar @@ -0,0 +1 @@ +/home/robert/.config/rc/init.d/waybar \ No newline at end of file diff --git a/.config/rc/runlevels/desktop/wireplumber b/.config/rc/runlevels/desktop/wireplumber new file mode 120000 index 0000000..a90f273 --- /dev/null +++ b/.config/rc/runlevels/desktop/wireplumber @@ -0,0 +1 @@ +/etc/user/init.d/wireplumber \ No newline at end of file diff --git a/.config/rc/runlevels/desktop/xdg-desktop-portal b/.config/rc/runlevels/desktop/xdg-desktop-portal new file mode 120000 index 0000000..23c0d95 --- /dev/null +++ b/.config/rc/runlevels/desktop/xdg-desktop-portal @@ -0,0 +1 @@ +/home/robert/.config/rc/init.d/xdg-desktop-portal \ No newline at end of file diff --git a/.config/rc/runlevels/desktop/xdg-desktop-portal-darkman b/.config/rc/runlevels/desktop/xdg-desktop-portal-darkman new file mode 120000 index 0000000..c08fa19 --- /dev/null +++ b/.config/rc/runlevels/desktop/xdg-desktop-portal-darkman @@ -0,0 +1 @@ +/home/robert/.config/rc/init.d/xdg-desktop-portal-darkman \ No newline at end of file diff --git a/.config/rc/runlevels/desktop/xdg-desktop-portal-gtk b/.config/rc/runlevels/desktop/xdg-desktop-portal-gtk new file mode 120000 index 0000000..1712823 --- /dev/null +++ b/.config/rc/runlevels/desktop/xdg-desktop-portal-gtk @@ -0,0 +1 @@ +/home/robert/.config/rc/init.d/xdg-desktop-portal-gtk \ No newline at end of file diff --git a/.config/rc/runlevels/desktop/xdg-desktop-portal-wlr b/.config/rc/runlevels/desktop/xdg-desktop-portal-wlr new file mode 120000 index 0000000..683895c --- /dev/null +++ b/.config/rc/runlevels/desktop/xdg-desktop-portal-wlr @@ -0,0 +1 @@ +/home/robert/.config/rc/init.d/xdg-desktop-portal-wlr \ No newline at end of file diff --git a/.config/rc/runlevels/extras/desktop b/.config/rc/runlevels/extras/desktop new file mode 120000 index 0000000..2c7c348 --- /dev/null +++ b/.config/rc/runlevels/extras/desktop @@ -0,0 +1 @@ +../desktop \ No newline at end of file diff --git a/.config/rc/runlevels/extras/pimsync b/.config/rc/runlevels/extras/pimsync new file mode 120000 index 0000000..daafb20 --- /dev/null +++ b/.config/rc/runlevels/extras/pimsync @@ -0,0 +1 @@ +/home/robert/.config/rc/init.d/pimsync \ No newline at end of file diff --git a/.config/rc/runlevels/extras/syncthing b/.config/rc/runlevels/extras/syncthing new file mode 120000 index 0000000..d63c652 --- /dev/null +++ b/.config/rc/runlevels/extras/syncthing @@ -0,0 +1 @@ +/home/robert/.config/rc/init.d/syncthing \ No newline at end of file diff --git a/.config/senpai/highlight b/.config/senpai/highlight new file mode 100755 index 0000000..3f2f3e9 --- /dev/null +++ b/.config/senpai/highlight @@ -0,0 +1,9 @@ +#!/bin/sh +set -ex +escape() { + printf "%s" "$1" | sed 's#\\#\\\\#g' +} + +fyi -a senpai -i senpai -c reminder \ + "[$BUFFER] $SENDER" \ + "$(escape "$MESSAGE")" diff --git a/.config/senpai/senpai.scfg b/.config/senpai/senpai.scfg new file mode 100644 index 0000000..6d5044f --- /dev/null +++ b/.config/senpai/senpai.scfg @@ -0,0 +1,15 @@ +address chat.sr.ht +username robertgzr@hibiki +nickname robertgzr +password-cmd rbw get f283788a-7798-4fa8-82c5-1a3e7f560fbf + +pane-widths { + nicknames 12 +} + +colors { + nicks base + nicks fixed { + self cyan + } +} diff --git a/.config/starship.toml b/.config/starship.toml new file mode 100644 index 0000000..724526a --- /dev/null +++ b/.config/starship.toml @@ -0,0 +1,118 @@ +"$schema" = 'https://starship.rs/config-schema.json' + +format = """ +⋮ \ +$container\ +$username\ +$hostname\ +$directory\ +\ +$git_branch\ +$git_commit\ +$git_state\ +\ +$golang\ +$nodejs\ +$python\ +$rust\ +$zig\ +\ +$jobs\ +$status\ +$cmd_duration\ +\ +$character\ +""" + +add_newline = false +command_timeout = 100 + +[container] +symbol = ' ' +format = '[$symbol\[$name\]]($style) ' +disabled = false + +[username] +format = '[$user@]($style)' +style_user = 'dimmed' +disabled = false + +[hostname] +format = '[$hostname]($style) ' +style = 'dimmed' +disabled = false + +[directory] +truncation_length = 0 +truncate_to_repo = false +style = "yellow" +read_only = '' +disabled = false + +[git_branch] +format = '[$symbol$branch]($style) ' +disabled = false + +[git_commit] +disabled = true + +[git_state] +disabled = false + +[python] +detect_extensions = [] +symbol = ' ' +format = '[${symbol}${pyenv_prefix}(${version})(\($virtualenv\))]($style) ' +disabled = true + +[nodejs] +detect_extensions = [] +symbol = ' ' +format = '[$symbol($version)]($style) ' +disabled = true + +[golang] +detect_extensions = [] +symbol = ' ' +format = '[$symbol($version)]($style) ' +disabled = true + +[rust] +detect_extensions = [] +symbol = ' ' +format = '[$symbol($version)]($style) ' +disabled = true + +[zig] +detect_extensions = [] +detect_files = ['build.zig.zon'] +symbol = ' ' +format = '[$symbol($version)]($style) ' +disabled = true + +[jobs] +symbol = '∆' +disabled = false + +[shlvl] +symbol = '☰' +disabled = false + +[status] +symbol = ' $status' +not_executable_symbol = ' ' +not_found_symbol = ' ' +sigint_symbol = '^C' +signal_symbol = ' $status' +format = '[$symbol]($style) ' +map_symbol = true +disabled = false + +[cmd_duration] +min_time = 1_200_000 # 100 * 60 * 20 +disabled = false + +[character] +format = '$symbol ' +success_symbol = '[❯](bold)' +error_symbol = '[❯](bold red)' diff --git a/.config/tridactyl/themes/r.css b/.config/tridactyl/themes/r.css new file mode 100644 index 0000000..05b47a6 --- /dev/null +++ b/.config/tridactyl/themes/r.css @@ -0,0 +1,84 @@ +/* vim: fdm=marker + * */ +:root.TridactylThemeR { + --tridactyl-fg: #f9f9fa; + --tridactyl-bg: #2a2a2e; + + --tridactyl-scrollbar-color: var(--tridactyl-fg); + + --tridactyl-cmdl-fg: #d7d7db; + --tridactyl-cmdl-bg: var(--tridactyl-bg); + + --tridactyl-header-first-bg: #38383d; + --tridactyl-header-second-bg: #2a2a2e; + --tridactyl-header-third-bg: #0c0c0d; + + --tridactyl-cmplt-border-top: 1px solid #2a2a2e; + + --tridactyl-url-fg: #86de74; + --tridactyl-url-bg: var(--tridactyl-bg); + + --tridactyl-of-fg: #fce19f; + --tridactyl-of-bg: var(--tridactyl-bg); + + --tridactyl-hintspan-fg: #f9f9fa; + --tridactyl-hintspan-bg: rgb(185, 142, 255); + + --tridactyl-hint-fg: var(--tridactyl-hintspan-fg); + --tridactyl-hint-bg: rgba(185, 142, 255, 0.15); + --tridactyl-hint-outline: 1px solid var(--tridactyl-hintspan-bg); + + --tridactyl-hint-active-fg: var(--tridactyl-hint-fg); + --tridactyl-hint-active-bg: #fff89e; + --tridactyl-hint-active-outline: 2px solid #fff89e; + + + --tridactyl-highlight-box-fg: var(--tridactyl-bg); + --tridactyl-highlight-box-bg: var(--tridactyl-fg); +} + +:root.TridactylThemeR.TridactylOwnNamespace input[id^="spoiler"] ~ .spoiler { + border-color: var(--tridactyl-bg); +} + +:root.TridactylThemeR.TridactylOwnNamespace a { + color: var(--tridactyl-hintspan-bg); +} + +:root.TridactylThemeR #command-line-holder { + order: 1; +} + +:root.TridactylThemeR #completions { + order: 2; + border-top: 1px solid var(--tridactyl-complt-bg); +} + +:root.TridactylThemeR #completions .sectionHeader { + display: none; +} + +:root.TridactylThemeR #tridactyl-colon::before { + margin-left: 2px; + content: " > "; +} + +:root.TridactylThemeR #completions .focused, +:root.TridactylThemeR #completions .focused .url { + color: var(--tridactyl-hintspan-bg); + background: var(--tridactyl-hint-bg); + text-decoration: italic; +} + +:root.TridactylThemeR #cmdline_iframe { + position: fixed !important; + bottom: unset; + top: -1px !important; + left: 0% !important; + box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 15px !important; + /* opacity: 0.9; */ +} + +:root.TridactylThemeR.TridactylOwnNamespace input[id^="spoiler"] ~ .spoiler { + border-color: var(--tridactyl-hintspan-bg); +} diff --git a/.config/tridactyl/tridactylrc b/.config/tridactyl/tridactylrc new file mode 100644 index 0000000..526b7eb --- /dev/null +++ b/.config/tridactyl/tridactylrc @@ -0,0 +1,141 @@ +" vim: ft=vim +sanitise tridactyllocal tridactylsync +colors r + +set browser librewolf +set allowautofocus false +set searchengine duckduckgonoai +set editorcmd foot -a foot-float -T tridactyl-editor -- nvim +set historyresults 50 +" set newtab https://html.duckduckgo.com +set allowautofocus true +set newtabfocus page +set leavegithubalone true +" set blacklistkeys ["/","<Space>",";"] + +set modeindicator true +set modeindicatorshowkeys true + +" remove annoying binds +unbind <C-f> +unbind <C-a> +unbind --mode=ex <C-a> " select all in cmdline +unbind --mode=browser <C-,> + +bind n findnext 1 +bind N findnext -1 + +" hint: mpv/video +set exaliases.mpvsafe js -p tri.excmds.shellescape(JS_ARG).then(u => tri.excmds.exclaim_quiet(`play-mpv ${u}`)) +bind gv composite get_current_url | mpvsafe +bind yv composite getclip | mpvsafe +bind ;v hint -W mpvsafe + +"bind ;e hint -hW js -p tri.excmds.exclaim_quiet(`${tri.config.get('editorcmd')} /tmp/tridactl.${document.location.hostname}.txt '+normal!i${JS_ARG}'`) + +set exaliases.imgsafe js -p tri.excmds.shellescape(JS_ARG).then(u => tri.excmds.exclaim_quiet(`fyi 'tridactyl::mvi' ${u} && mvi ${u}`)) +bind ;i composite hint -Jpipe img | js -p JS_ARG.src | imgsafe + +bind gp composite get_current_url | winopen -popup +bind g1 tab 2 +bind g2 tab 3 +bind g3 tab 4 +bind g4 tab 5 +bind gb tab # + +# mapswap +command mapswap js tri.excmds.tabopen("https://mapswap.trailsta.sh/swap/#type="+(()=>{let q=x=>document.querySelector(x);return q('.leaflet-container')?'l':q('.maplibregl-map')||q('.mapboxgl-map')?'m':q('.ol-viewport')?'ol':''})()+"&url="+encodeURIComponent(window.location)) +bind gms mapswap + +" hackernews hinting +bindurl news.ycombinator.com ;c hint -fr \d+\scomments +bindurl news.ycombinator.com gr hint -c [class*="storylink"] + +" ddg result hinting +bindurl duckduckgo.com gr hint -c article > div > h2 + +" fix github +unbindurl github.com / + +" fix gitlab +unbindurl gitlab.freedesktop.org / + +" fix youtube +seturl youtube.com noiframe true +unbindurl youtube.com f +unbindurl youtube.com 1 +unbindurl youtube.com 2 +unbindurl youtube.com 3 +unbindurl youtube.com 4 +unbindurl youtube.com 5 +unbindurl youtube.com 6 +unbindurl youtube.com 7 +unbindurl youtube.com 8 +unbindurl youtube.com 9 +unbindurl youtube.com <Space> +bindurl youtube.com h hint +bindurl youtube.com T tabopen ddg.gg +bindurl youtube.com C recontain personal + +" fix twitch +unbindurl twitch.tv <Space> + +" fix reddit +seturl reddit.com allowautofocus true +unbindurl reddit.com <Escape> +unbindurl reddit.com j +unbindurl reddit.com k +unbindurl reddit.com N +unbindurl reddit.com P +unbindurl reddit.com n +unbindurl reddit.com p +unbindurl reddit.com a +unbindurl reddit.com z +unbindurl reddit.com c +" unbindurl reddit.com r +unbindurl reddit.com s +unbindurl reddit.com h +unbindurl reddit.com x +unbindurl reddit.com l + +" fix 4chan +unbindurl boards.4chan.*.org x +unbindurl boards.4chan.*.org T +unbindurl boards.4chan.*.org B +unbindurl boards.4chan.*.org n +unbindurl boards.4chan.*.org p +unbindurl boards.4chan.*.org F +unbindurl boards.4chan.*.org W +unbindurl boards.4chan.*.org <C-j> +unbindurl boards.4chan.*.org <C-k> + +" fix nebula +unbindurl nebula.tv f +unbindurl nebula.tv k +unbindurl nebula.tv m +unbindurl nebula.tv c +unbindurl nebula.tv s + +" fix zigdocs +unbindurl ziglang.org s + +bindurl wiki.openstreetmap.org --mode=normal E editor +bindurl wiki.openstreetmap.org --mode=input E editor +bindurl wikipedia.org --mode=normal E editor +bindurl wikipedia.org --mode=input E editor + +" start in ignore mode +blacklistadd console.hetzner.cloud/console +blacklistadd docs.google.com +blacklistadd gather.town +blacklistadd monkeytype.com +blacklistadd typeform.com +blacklistadd typingclub.com +blacklistadd maplibre.org +blacklistadd excalidraw.com + +" almost fully disable tridactyl +seturl localhost* superignore true + +" put autocontains into the per-profile config +js tri.native.getProfile().then(p => tri.excmds.source_quiet(`~/.config/tridactyl/tridactylrc.${last(p.Path.split('.'))}`)) diff --git a/.config/tridactyl/tridactylrc.default b/.config/tridactyl/tridactylrc.default new file mode 100644 index 0000000..e505eec --- /dev/null +++ b/.config/tridactyl/tridactylrc.default @@ -0,0 +1,38 @@ +autocontain -u ^https?://www\.google\.com/(maps|mail) google +autocontain -s lh3\.google\.com google +autocontain -s accounts\.google\.com google +autocontain -s myaccount\.google\.com google +autocontain -s myadcenter\.google\.com google +autocontain -s myactivity\.google\.com google +autocontain -s calendar\.google\.com google +autocontain -s maps\.google\.com google +autocontain -s gmail\.com google +autocontain -s mail\.google\.com google +autocontain -s photos\.google\.com google +autocontain -s photos\.fife\.usercontent\.google\.com google +autocontain -s takeout\.google\.com google +autocontain -s timeline\.google\.com google +autocontain -s youtube\.com google +autocontain -s youtu\.be google +autocontain -s docs\.google\.com google +autocontain -s takeout\.google\.com google +autocontain -s cloud\.google\.com google +autocontain -s lens\.google\.com google +autocontain -s lens\.google\.com google +autocontain -s chat\.google\.com google +autocontain -s docs\.google\.com google +autocontain -s takeout-.*\.google\.com google +autocontain -s drive\.google\.com google + +autocontain -s banking\.dkb\.de banking +autocontain -s app\.n26\.com banking + +autocontain -s amazon\.(com|de|co\.jp) amazon + +autocontain -s bakabt\.me weeb +autocontain -s nyaa\.si weeb +autocontain -s feralhosting\.com weeb +autocontain -s reddit\.com weeb +autocontain -s kitsu\.app weeb +autocontain -s trakt\.tv weeb +autocontain -s anilist\.co weeb diff --git a/.config/tridactyl/tridactylrc.work b/.config/tridactyl/tridactylrc.work new file mode 100644 index 0000000..93b6f33 --- /dev/null +++ b/.config/tridactyl/tridactylrc.work @@ -0,0 +1,4 @@ +blacklistadd linear.app +bind gm tab meet.google.com +unbindurl meet\.google\.com --mode=normal <C-d> +" blacklistadd meet.google.com diff --git a/.config/xdg-desktop-portal-wlr/config b/.config/xdg-desktop-portal-wlr/config new file mode 100644 index 0000000..2a9cbb3 --- /dev/null +++ b/.config/xdg-desktop-portal-wlr/config @@ -0,0 +1,5 @@ +[screencast] +#chooser_type=simple +#chooser_cmd=slurp -b '#000000aa' -c '#4E437188' -w 50 -f '%o' -or +exec_before=makoctl mode -a off +exec_after=makoctl mode -r off diff --git a/.config/xdg-desktop-portal/portals.conf b/.config/xdg-desktop-portal/portals.conf new file mode 120000 index 0000000..c0cf083 --- /dev/null +++ b/.config/xdg-desktop-portal/portals.conf @@ -0,0 +1 @@ +river-portals.conf \ No newline at end of file diff --git a/.config/xdg-desktop-portal/river-portals.conf b/.config/xdg-desktop-portal/river-portals.conf new file mode 100644 index 0000000..29949c0 --- /dev/null +++ b/.config/xdg-desktop-portal/river-portals.conf @@ -0,0 +1,2 @@ +[preferred] +default=darkman;wlr;gtk; diff --git a/.config/yt-dlp.conf b/.config/yt-dlp.conf new file mode 100644 index 0000000..457cd5e --- /dev/null +++ b/.config/yt-dlp.conf @@ -0,0 +1 @@ +--embed-metadata |