From d215dfefc54eea2387303892e0e68da1ebdd6ea3 Mon Sep 17 00:00:00 2001 From: "thomas.kopp" Date: Fri, 7 Aug 2026 15:53:50 +0200 Subject: [PATCH] feat: rebuild master from the live desktop, and add the KDE configuration master still carried the 2021 tree. Task 6 does a checkout over $HOME, so nine of those files would have overwritten the current configuration rather than updated it - i3, sway, dunst, nvim, vim and tmux, all diverged by years. The plan had no step for this; the design warned about it and then nothing implemented the warning. The nine are now taken from the live machine verbatim, and the 31 files with no counterpart there are dropped. Everything remains on archive/2021-i3-sway. README.md and .scripts/install.sh are kept despite having no live counterpart: the first documents the repository and the second is what ls.shron.de/dotconf serves, so deleting it would break that link. Verified byte-identical to the live files afterwards, which is the point - a checkout on this machine must change nothing. KDE has been in daily use for a while with nothing backing it up. Eighteen rc files and the nine autostart entries are added: window rules and shortcuts, notification behaviour, the lock screen, and the panel layout in plasma-org.kde.plasma.desktop-appletsrc. That last one is rewritten by plasmashell whenever anything moves, so it will produce churn - kept anyway, since a lost panel layout is the most tedious thing here to rebuild by hand. .config/kdeconnect/ is excluded rather than added. It holds the device certificate and its private key, and is pairing state rather than configuration - the only place under .config that carries a secret. Co-Authored-By: Claude Opus 5 --- .config/autostart/Nextcloud.desktop | 11 + .config/autostart/Zoiper5.desktop | 8 + .config/autostart/discord.desktop | 9 + .config/autostart/kitty.desktop | 16 + .config/autostart/ntfy-kde.sh.desktop | 6 + .../autostart/org.keepassxc.KeePassXC.desktop | 17 + .../autostart/org.mozilla.Thunderbird.desktop | 168 ++++ .config/autostart/redshift-gtk.desktop | 87 ++ .config/autostart/signal-desktop.desktop | 13 + .config/breezerc | 3 + .config/compton.conf | 44 - .config/dolphinrc | 32 + .config/dunst/dunstrc | 321 ++------ .config/i3/config | 497 ++++-------- .config/i3/config.backup | Bin 9584 -> 0 bytes .config/i3/conky.conf | Bin 2396 -> 0 bytes .config/i3/conky.lua | Bin 724 -> 0 bytes .config/i3/conkyrc | Bin 2193 -> 0 bytes .config/i3/dunstrc | Bin 936 -> 0 bytes .config/i3/i3bar.bar-0.log | Bin 112 -> 0 bytes .config/i3/i3bar.bar-1.log | Bin 1864 -> 0 bytes .config/i3/i3exit | Bin 451 -> 0 bytes .config/i3/i3status.conf | Bin 1362 -> 0 bytes .config/i3/startup_conky | Bin 280 -> 0 bytes .config/i3/status.toml | Bin 600 -> 0 bytes .config/i3/weather.sh | Bin 1340 -> 0 bytes .config/i3/yagostatus.yml | Bin 1152 -> 0 bytes .config/i3status/config_bot.toml | 21 - .config/i3status/config_top.toml | 73 -- .config/katerc | 169 ++++ .config/kcminputrc | 13 + .config/kdeglobals | 148 ++++ .config/kglobalshortcutsrc | 470 +++++++++++ .config/klipperrc | 3 + .config/konsolerc | 14 + .config/krunnerrc | 2 + .config/kscreenlockerrc | 11 + .config/ksmserverrc | 5 + .config/kwinrc | 129 +++ .config/kwinrulesrc | 56 ++ .config/nvim/autoload/plug.vim | 616 ++++++++++---- .config/nvim/autoload/plug.vim.old | 249 ++++-- .config/nvim/init.vim | 36 +- .config/nvim/nvimrc | Bin 74 -> 0 bytes .config/nvim/spell/en.utf-8.add | Bin 7 -> 0 bytes .config/nvim/spell/en.utf-8.add.spl | Bin 37 -> 0 bytes .../plasma-org.kde.plasma.desktop-appletsrc | 753 +++++++++++++++++ .config/plasmanotifyrc | 44 + .config/plasmarc | 2 + .config/plasmashellrc | 34 + .config/powermanagementprofilesrc | 65 ++ .config/sway/config | 767 +++++++++--------- .config/swaynag/config | Bin 149 -> 0 bytes .config/waybar/config | 149 ---- .config/waybar/modules/mail.py | 42 - .config/waybar/modules/spotify.sh | 18 - .config/waybar/modules/storage.sh | 24 - .config/waybar/modules/weather.sh | 79 -- .config/waybar/style.css | 71 -- .config/waybar/waybar.sh | 10 - .config/wofi/config | 5 - .config/wofi/style.css | 45 - .gitignore | 5 + .scripts/volume.sh | 72 -- .vimrc | 12 +- .zsh-dircolors.config | 1 - tmux.conf | 12 +- tmux.sh | 6 +- 68 files changed, 3574 insertions(+), 1889 deletions(-) create mode 100644 .config/autostart/Nextcloud.desktop create mode 100644 .config/autostart/Zoiper5.desktop create mode 100644 .config/autostart/discord.desktop create mode 100644 .config/autostart/kitty.desktop create mode 100644 .config/autostart/ntfy-kde.sh.desktop create mode 100644 .config/autostart/org.keepassxc.KeePassXC.desktop create mode 100644 .config/autostart/org.mozilla.Thunderbird.desktop create mode 100644 .config/autostart/redshift-gtk.desktop create mode 100644 .config/autostart/signal-desktop.desktop create mode 100644 .config/breezerc delete mode 100644 .config/compton.conf create mode 100644 .config/dolphinrc delete mode 100644 .config/i3/config.backup delete mode 100644 .config/i3/conky.conf delete mode 100644 .config/i3/conky.lua delete mode 100644 .config/i3/conkyrc delete mode 100644 .config/i3/dunstrc delete mode 100644 .config/i3/i3bar.bar-0.log delete mode 100644 .config/i3/i3bar.bar-1.log delete mode 100755 .config/i3/i3exit delete mode 100644 .config/i3/i3status.conf delete mode 100755 .config/i3/startup_conky delete mode 100644 .config/i3/status.toml delete mode 100755 .config/i3/weather.sh delete mode 100644 .config/i3/yagostatus.yml delete mode 100644 .config/i3status/config_bot.toml delete mode 100644 .config/i3status/config_top.toml create mode 100644 .config/katerc create mode 100644 .config/kcminputrc create mode 100644 .config/kdeglobals create mode 100644 .config/kglobalshortcutsrc create mode 100644 .config/klipperrc create mode 100644 .config/konsolerc create mode 100644 .config/krunnerrc create mode 100644 .config/kscreenlockerrc create mode 100644 .config/ksmserverrc create mode 100644 .config/kwinrc create mode 100644 .config/kwinrulesrc delete mode 100644 .config/nvim/nvimrc delete mode 100644 .config/nvim/spell/en.utf-8.add delete mode 100644 .config/nvim/spell/en.utf-8.add.spl create mode 100644 .config/plasma-org.kde.plasma.desktop-appletsrc create mode 100644 .config/plasmanotifyrc create mode 100644 .config/plasmarc create mode 100644 .config/plasmashellrc create mode 100644 .config/powermanagementprofilesrc delete mode 100644 .config/swaynag/config delete mode 100644 .config/waybar/config delete mode 100755 .config/waybar/modules/mail.py delete mode 100755 .config/waybar/modules/spotify.sh delete mode 100755 .config/waybar/modules/storage.sh delete mode 100755 .config/waybar/modules/weather.sh delete mode 100644 .config/waybar/style.css delete mode 100755 .config/waybar/waybar.sh delete mode 100644 .config/wofi/config delete mode 100644 .config/wofi/style.css delete mode 100644 .scripts/volume.sh delete mode 100644 .zsh-dircolors.config diff --git a/.config/autostart/Nextcloud.desktop b/.config/autostart/Nextcloud.desktop new file mode 100644 index 0000000..219765f --- /dev/null +++ b/.config/autostart/Nextcloud.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=Nextcloud +GenericName=File Synchronizer +Exec="/usr/bin/nextcloud" --background +Terminal=false +Icon=Nextcloud +Categories=Network +Type=Application +StartupNotify=false +X-GNOME-Autostart-enabled=true +X-GNOME-Autostart-Delay=10 diff --git a/.config/autostart/Zoiper5.desktop b/.config/autostart/Zoiper5.desktop new file mode 100644 index 0000000..31924a7 --- /dev/null +++ b/.config/autostart/Zoiper5.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Zoiper5 +Comment=VoIP Softphone +Exec=/usr/lib/zoiper/zoiper +Terminal=false +Icon= +Type=Application diff --git a/.config/autostart/discord.desktop b/.config/autostart/discord.desktop new file mode 100644 index 0000000..5c62263 --- /dev/null +++ b/.config/autostart/discord.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Type=Application +Exec=/home/templis/.config/discord/app-1.0.151/Discord +Hidden=false +NoDisplay=false +Name=Discord +Icon=/home/templis/.config/discord/app-1.0.151/discord.png +Comment=Text and voice chat for gamers. +X-GNOME-Autostart-enabled=true diff --git a/.config/autostart/kitty.desktop b/.config/autostart/kitty.desktop new file mode 100644 index 0000000..4fce1c0 --- /dev/null +++ b/.config/autostart/kitty.desktop @@ -0,0 +1,16 @@ +[Desktop Entry] +Categories=System;TerminalEmulator; +Comment=Fast, feature-rich, GPU based terminal +Exec=kitty +GenericName=Terminal emulator +Icon=kitty +Name=kitty +StartupNotify=true +TryExec=kitty +Type=Application +Version=1.0 +X-TerminalArgAppId=--class +X-TerminalArgDir=--working-directory +X-TerminalArgExec=-- +X-TerminalArgHold=--hold +X-TerminalArgTitle=--title diff --git a/.config/autostart/ntfy-kde.sh.desktop b/.config/autostart/ntfy-kde.sh.desktop new file mode 100644 index 0000000..452c62b --- /dev/null +++ b/.config/autostart/ntfy-kde.sh.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Exec=/home/templis/.config/old-autostart-scripts/ntfy-kde.sh +Icon=application-x-executable-script +Name=ntfy-kde.sh +Type=Application +X-KDE-AutostartScript=true diff --git a/.config/autostart/org.keepassxc.KeePassXC.desktop b/.config/autostart/org.keepassxc.KeePassXC.desktop new file mode 100644 index 0000000..12566cd --- /dev/null +++ b/.config/autostart/org.keepassxc.KeePassXC.desktop @@ -0,0 +1,17 @@ +[Desktop Entry] +Name=KeePassXC +GenericName=Passwortmanager +Exec=keepassxc +TryExec=keepassxc +Icon=keepassxc +StartupWMClass=keepassxc +StartupNotify=false +Terminal=false +Type=Application +Version=1.0 +Categories=Utility;Security;Qt; +MimeType=application/x-keepass2; +X-GNOME-Autostart-enabled=true +X-GNOME-Autostart-Delay=2 +X-KDE-autostart-after=panel +X-LXQt-Need-Tray=true diff --git a/.config/autostart/org.mozilla.Thunderbird.desktop b/.config/autostart/org.mozilla.Thunderbird.desktop new file mode 100644 index 0000000..9398b09 --- /dev/null +++ b/.config/autostart/org.mozilla.Thunderbird.desktop @@ -0,0 +1,168 @@ +[Desktop Entry] +Name=Thunderbird +Comment=Send and receive mail with Thunderbird +Comment[ast]=Lleer y escribir corréu electrónicu +Comment[ca]=Llegiu i escriviu correu +Comment[cs]=Čtení a psaní pošty +Comment[da]=Skriv/læs e-post/nyhedsgruppe med Mozilla Thunderbird +Comment[de]=E-Mails und Nachrichten mit Thunderbird lesen und schreiben +Comment[el]=Διαβάστε και γράψτε γράμματα με το Mozilla Thunderbird +Comment[es]=Lea y escriba correos y noticias con Thunderbird +Comment[fi]=Lue ja kirjoita sähköposteja +Comment[fr]=Lire et écrire des courriels +Comment[gl]=Lea e escriba correo electrónico +Comment[he]=קריאה/כתיבה של דוא״ל/חדשות באמצעות Mozilla Thunderbird +Comment[hr]=Čitajte/šaljite e-poštu s Thunderbird +Comment[hu]=Levelek írása és olvasása a Thunderbirddel +Comment[it]=Per leggere e scrivere email +Comment[ja]=メールの読み書き +Comment[ko]=Mozilla Thunderbird 메일/뉴스 읽기 및 쓰기 클라이언트 +Comment[nl]=E-mail/nieuws lezen en schrijven met Mozilla Thunderbird +Comment[pl]=Czytanie i wysyłanie e-maili +Comment[pt_BR]=Leia e escreva suas mensagens +Comment[ru]=Читайте и пишите письма +Comment[sk]=Čítajte a píšte poštu pomocou programu Thunderbird +Comment[sv]=Läs och skriv e-post +Comment[uk]=Читання та написання листів +Comment[vi]=Đọc và soạn thư điện tử +Comment[zh_CN]=阅读邮件或新闻 +Comment[zh_TW]=以 Mozilla Thunderbird 讀寫郵件或新聞 +GenericName=Mail Client +GenericName[ast]=Client de correu +GenericName[ca]=Client de correu +GenericName[cs]=Poštovní klient +GenericName[da]=E-postklient +GenericName[de]=E-Mail-Anwendung +GenericName[el]=Λογισμικό αλληλογραφίας +GenericName[es]=Cliente de correo +GenericName[fi]=Sähköpostiohjelma +GenericName[fr]=Client de messagerie +GenericName[gl]=Cliente de correo electrónico +GenericName[he]=לקוח דוא״ל +GenericName[hr]=Klijent e-pošte +GenericName[hu]=Levelezőkliens +GenericName[it]=Client email +GenericName[ja]=電子メールクライアント +GenericName[ko]=메일 클라이언트 +GenericName[nl]=E-mailprogramma +GenericName[pl]=Klient poczty +GenericName[pt_BR]=Cliente de E-mail +GenericName[ru]=Почтовый клиент +GenericName[sk]=Poštový klient +GenericName[uk]=Поштова програма +GenericName[vi]=Phần mềm khách quản lý thư điện tử +GenericName[zh_CN]=邮件新闻客户端 +GenericName[zh_TW]=郵件用戶端 +Exec=thunderbird %u +Terminal=false +Type=Application +Icon=org.mozilla.Thunderbird +Categories=Network;Email; +MimeType=message/rfc822;x-scheme-handler/mailto;text/calendar;text/vcard;text/x-vcard;x-scheme-handler/webcal;x-scheme-handler/webcals;x-scheme-handler/mid; +StartupNotify=true +StartupWMClass=thunderbird +Actions=ComposeMessage;OpenAddressBook; + +[Desktop Action ComposeMessage] +Name=Write new message +Name[ar]=اكتب رسالة جديدة +Name[ast]=Redactar mensaxe nuevu +Name[be]=Напісаць новы ліст +Name[bg]=Съставяне на ново съобщение +Name[br]=Skrivañ ur gemennadenn nevez +Name[ca]=Escriu un missatge nou +Name[cs]=Napsat novou zprávu +Name[da]=Skriv en ny meddelelse +Name[de]=Neue Nachricht verfassen +Name[el]=Σύνταξη νέου μηνύματος +Name[es_AR]=Escribir un nuevo mensaje +Name[es_ES]=Redactar nuevo mensaje +Name[et]=Kirjuta uus kiri +Name[eu]=Idatzi mezu berria +Name[fi]=Kirjoita uusi viesti +Name[fr]=Rédiger un nouveau message +Name[fy_NL]=Skriuw in nij berjocht +Name[ga_IE]=Scríobh teachtaireacht nua +Name[gd]=Sgrìobh teachdaireachd ùr +Name[gl]=Escribir unha nova mensaxe +Name[he]=כתיבת הודעה חדשה +Name[hr]=Piši novu poruku +Name[hu]=Új üzenet írása +Name[hy_AM]=Գրել նոր նամակ +Name[is]=SKrifa nýjan póst +Name[it]=Scrivi nuovo messaggio +Name[ja]=新しいメッセージを作成する +Name[ko]=새 메시지 작성 +Name[lt]=Rašyti naują laišką +Name[nb_NO]=Skriv ny melding +Name[nl]=Nieuw bericht aanmaken +Name[nn_NO]=Skriv ny melding +Name[pl]=Nowa wiadomość +Name[pt_BR]=Nova mensagem +Name[pt_PT]=Escrever nova mensagem +Name[rm]=Scriver in nov messadi +Name[ro]=Scrie un mesaj nou +Name[ru]=Создать новое сообщение +Name[sk]=Nová e-mailová správa +Name[sl]=Sestavi novo sporočilo +Name[sq]=Shkruani mesazh të ri +Name[sr]=Писање нове поруке +Name[sv_SE]=Skriv ett nytt meddelande +Name[tr]=Yeni ileti yaz +Name[uk]=Написати нового листа +Name[vi]=Viết thư mới +Name[zh_CN]=编写新消息 +Name[zh_TW]=寫一封新訊息 +Exec=thunderbird -compose + +[Desktop Action OpenAddressBook] +Name=Open address book +Name[ar]=افتح دفتر العناوين +Name[ast]=Abrir llibreta de direiciones +Name[be]=Адкрыць адрасную кнігу +Name[bg]=Отваряне на адресник +Name[br]=Digeriñ ur c'harned chomlec'hioù +Name[ca]=Obre la llibreta d'adreces +Name[cs]=Otevřít Adresář +Name[da]=Åbn adressebog +Name[de]=Adressbuch öffnen +Name[el]=Άνοιγμα ευρετηρίου διευθύνσεων +Name[es_AR]=Abrir libreta de direcciones +Name[es_ES]=Abrir libreta de direcciones +Name[et]=Ava aadressiraamat +Name[eu]=Ireki helbide-liburua +Name[fi]=Avaa osoitekirja +Name[fr]=Ouvrir un carnet d'adresses +Name[fy_NL]=Iepenje adresboek +Name[ga_IE]=Oscail leabhar seoltaí +Name[gd]=Fosgail leabhar-sheòlaidhean +Name[gl]=Abrir a axenda de enderezos +Name[he]=פתיחת ספר כתובות +Name[hr]=Otvori adresar +Name[hu]=Címjegyzék megnyitása +Name[hy_AM]=Բացել Հասցեագիրքը +Name[is]=Opna nafnaskrá +Name[it]=Apri rubrica +Name[ja]=アドレス帳を開く +Name[ko]=주소록 열기 +Name[lt]=Atverti adresų knygą +Name[nb_NO]=Åpne adressebok +Name[nl]=Adresboek openen +Name[nn_NO]=Opne adressebok +Name[pl]=Książka adresowa +Name[pt_BR]=Catálogo de endereços +Name[pt_PT]=Abrir livro de endereços +Name[rm]=Avrir il cudeschet d'adressas +Name[ro]=Deschide agenda de contacte +Name[ru]=Открыть адресную книгу +Name[sk]=Otvoriť adresár +Name[sl]=Odpri adressar +Name[sq]=Hapni libër adresash +Name[sr]=Отвори адресар +Name[sv_SE]=Öppna adressboken +Name[tr]=Adres defterini aç +Name[uk]=Відкрити адресну книгу +Name[vi]=Mở sổ địa chỉ +Name[zh_CN]=打开通讯录 +Name[zh_TW]=開啟通訊錄 +Exec=thunderbird -addressbook diff --git a/.config/autostart/redshift-gtk.desktop b/.config/autostart/redshift-gtk.desktop new file mode 100644 index 0000000..be9f688 --- /dev/null +++ b/.config/autostart/redshift-gtk.desktop @@ -0,0 +1,87 @@ +[Desktop Entry] +Version=1.0 +Name=Redshift +Name[be]=Redshift +Name[ca]=Redshift +Name[cs]=Redshift +Name[da]=Redshift +Name[de]=Redshift +Name[en_GB]=Redshift +Name[es]=Redshift +Name[fr]=Redshift +Name[he]=Redshift +Name[hu]=Redshift +Name[it]=Redshift +Name[ja]=Redshift +Name[lt]=Redshift +Name[nb]=Rødskift +Name[pl]=Redshift +Name[pt]=Redshift +Name[pt_BR]=Redshift +Name[ro]=Redshift +Name[ru]=Redshift +Name[sr]=Редшифт +Name[sv]=Redshift +Name[tr]=Redshift +Name[uk]=Redshift +Name[zh_CN]=红移 +Name[zh_TW]=Redshift +GenericName=Color temperature adjustment +GenericName[be]=Рэгуляванне каляровай тэмпературы +GenericName[ca]=Ajust de la temperatura de color +GenericName[cs]=Nastavení teploty barev +GenericName[da]=Justering af farvetemperatur +GenericName[de]=Farbtemperaturanpassung +GenericName[en_GB]=Colour temperature adjustment +GenericName[es]=Ajuste de la temperatura de color +GenericName[fr]=Réglage de la température de couleur +GenericName[he]=התאמת טמפרטורת צבע +GenericName[hu]=Színhőmérséklet beállítása +GenericName[it]=Regolazione della temperatura del colore +GenericName[ja]=色温度の調整 +GenericName[lt]=Spalvos temperatūros reguliavimas +GenericName[nb]=Justering av fargetemperatur +GenericName[nl]=Bijstelling van kleurtemperatuur +GenericName[pl]=Dostosowanie temperatury barwowej +GenericName[pt_BR]=Ajuste de temperatura de cor +GenericName[ru]=Настройка цветовой температуры +GenericName[sr]=Прилагођавање температуре боје +GenericName[sv]=Färgtemperaturjustering +GenericName[tr]=Renk sıcaklığı ayarı +GenericName[uk]=Налаштування колірної температури +GenericName[zh_CN]=色温调节 +GenericName[zh_TW]=色溫調整 +Comment=Color temperature adjustment tool +Comment[be]=Інструмент рэгулявання каляровай тэмпературы +Comment[ca]=Eina per a l'ajust de la temperatura de color +Comment[cs]=Nástroj pro přizpůsobení barevné teploty +Comment[da]=Justeringsværktøj for farvetemperatur +Comment[de]=Farbtemperaturanpassungswerkzeug +Comment[en_GB]=Colour temperature adjustment tool +Comment[es]=Herramienta para el ajuste de la temperatura de color +Comment[fr]=Outil de réglage de la température de couleur +Comment[he]=כלי להתאמת טמפרטורת צבע +Comment[hu]=Színhőmérséklet beállító eszköz +Comment[it]=Strumento per la regolazione della temperatura del colore +Comment[ja]=色温度の調整ツール +Comment[lt]=Spalvos temperatūros reguliavimo įrankis +Comment[nb]=Justeringsverktøy for fargetemperatur +Comment[nl]=Hulpmiddel voor het bijstellen van de kleurtemperatuur +Comment[pl]=Narzędzie do dostosowywania temperatury barwowej +Comment[pt_BR]=Ferramenta de ajuste de temperatura de cor +Comment[ru]=Инструмент регулирования цветовой температуры +Comment[sr]=Алатка за прилагођавање температуре боје +Comment[sv]=Justeringsverktyg för färgtemperaturer +Comment[tr]=Renk sıcaklığı ayarlama aracı +Comment[uk]=Знаряддя налаштувань колірної температури +Comment[zh_CN]=色温调节工具 +Comment[zh_TW]=色溫調整工具 +Exec=redshift-gtk +Icon=redshift +Terminal=false +Type=Application +Categories=Utility; +StartupNotify=true +Hidden=true +X-GNOME-Autostart-enabled=false + diff --git a/.config/autostart/signal-desktop.desktop b/.config/autostart/signal-desktop.desktop new file mode 100644 index 0000000..3ef2f0c --- /dev/null +++ b/.config/autostart/signal-desktop.desktop @@ -0,0 +1,13 @@ +[Desktop Entry] +Type=Application +Name=Signal +Comment=Signal - Private Messenger +Comment[de]=Signal - Sicherer Messenger +Icon=signal-desktop +Exec=signal-desktop -- %u +Terminal=false +Categories=Network;InstantMessaging; +StartupWMClass=Signal +MimeType=x-scheme-handler/sgnl;x-scheme-handler/signalcaptcha; +Keywords=sgnl;chat;im;messaging;messenger;sms;security;privat; +X-GNOME-UsesNotifications=true diff --git a/.config/breezerc b/.config/breezerc new file mode 100644 index 0000000..e2db295 --- /dev/null +++ b/.config/breezerc @@ -0,0 +1,3 @@ +[Style] +MenuItemDrawStrongFocus=false +MnemonicsMode=MN_ALWAYS diff --git a/.config/compton.conf b/.config/compton.conf deleted file mode 100644 index 7f1efd6..0000000 --- a/.config/compton.conf +++ /dev/null @@ -1,44 +0,0 @@ -shadow = true; -no-dnd-shadow = true; -no-dock-shadow = true; -clear-shadow = true; -shadow-radius = 12; -shadow-offset-x = -12; -shadow-offset-y = -12; -shadow-opacity = 0.95; -shadow-red = 0.18; -shadow-green = 0.2; -shadow-blue = 0.25; -shadow-exclude = [ "class_g = 'Cairo-clock'", "class_g = 'CoverGloobus'", "class_g = 'Tilda'", "class_g = 'Conky'", "class_g ?= 'Notify-osd'", "class_g = 'Firefox'", "class_g = 'Firefox-esr'", "class_g = 'Dmenu'", "name = 'Notification'", "_GTK_FRAME_EXTENTS@:c" ]; -fading = true; -fade-delta = 0.25; -fade-in-step = 0.02; -fade-out-step = 0.02; -fade-exclude = [ ]; -backend = "glx"; -mark-wmwin-focused = true; -mark-ovredir-focused = true; -detect-rounded-corners = true; -detect-client-opacity = true; -refresh-rate = 0; -vsync = "none"; -dbe = false; -paint-on-overlay = true; -focus-exclude = [ "class_g = 'Cairo-clock'", "class_g = 'CoverGloobus'", "class_g = 'Tilda'", "class_g = 'Firefox'", "class_g = 'Firefox-esr'" ]; -detect-transient = true; -detect-client-leader = true; -invert-color-include = [ ]; -glx-copy-from-front = false; -glx-swap-method = "undefined"; -wintypes : -{ - tooltip : - { - fade = true; - shadow = true; - opacity = 0.75; - focus = true; - }; -}; -opacity-rule = [ "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" ]; -inactive-dim = 0.0; diff --git a/.config/dolphinrc b/.config/dolphinrc new file mode 100644 index 0000000..26cb353 --- /dev/null +++ b/.config/dolphinrc @@ -0,0 +1,32 @@ +MenuBar=Disabled + +[$Version] +update_info=dolphin_detailsmodesettings.upd:rename-leading-padding,dolphin_detailsmodesettings.upd:move-content-display + +[FileDialogSize] +4 screens: Height=584 +4 screens: Width=872 + +[General] +EditableUrl=true +LockPanels=false +ShowFullPath=true +Version=202 +ViewPropsTimestamp=2023,11,4,22,5,12.659 + +[KFileDialog Settings] +Places Icons Auto-resize=false +Places Icons Static Size=22 + +[MainWindow] +MenuBar=Disabled + +[PreviewSettings] +Plugins=appimagethumbnail,audiothumbnail,comicbookthumbnail,cursorthumbnail,directorythumbnail,djvuthumbnail,ebookthumbnail,exrthumbnail,imagethumbnail,jpegthumbnail,kraorathumbnail,opendocumentthumbnail,svgthumbnail,windowsexethumbnail,windowsimagethumbnail,fontthumbnail,FreeCAD,evince,ffmpegthumbnailer,gdk-pixbuf-thumbnailer,gnome-font-viewer,gsf-office,totem + +[VersionControl] +enabledPlugins=Git + +[ViewPropertiesDialog] +4 screens: Height=324 +4 screens: Width=490 diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc index 4798d4c..318c8b0 100644 --- a/.config/dunst/dunstrc +++ b/.config/dunst/dunstrc @@ -1,257 +1,100 @@ [global] -font = Iosevka Term 14 + ### Monitor ### + # HDMI-A-1 (TV) = Monitor 3 (via xrandr --listmonitors) + monitor = 3 + follow = none -# Allow a small subset of html markup: -# bold -# italic -# strikethrough -# underline -# -# For a complete reference see -# . -# If markup is not allowed, those tags will be stripped out of the -# message. -markup = yes -plain_text = no + ### Geometry ### + width = (0, 480) + height = (0, 300) + origin = top-right + offset = (10, 10) + scale = 0 + notification_limit = 0 -# The format of the message. Possible variables are: -# %a appname -# %s summary -# %b body -# %i iconname (including its path) -# %I iconname (without its path) -# %p progress value if set ([ 0%] to [100%]) or nothing -# Markup is allowed -format = "%s\n%b" + ### Borders & Spacing ### + padding = 14 + horizontal_padding = 18 + text_icon_padding = 12 + frame_width = 2 + frame_color = "#d79921" + gap_size = 8 + separator_height = 2 + separator_color = frame + corner_radius = 6 -# Sort messages by urgency. -sort = no + ### Progress Bar ### + progress_bar = true + progress_bar_height = 8 + progress_bar_frame_width = 1 + progress_bar_min_width = 150 + progress_bar_max_width = 400 + progress_bar_corner_radius = 4 -# Show how many messages are currently hidden (because of geometry). -indicate_hidden = yes + ### Text ### + font = monospace 13 + line_height = 3 + markup = full -# Alignment of message text. -# Possible values are "left", "center" and "right". -alignment = center + # Gruvbox: farbige Überschrift + gedimmter Body + format = %s\n%b -# The frequency with wich text that is longer than the notification -# window allows bounces back and forth. -# This option conflicts with "word_wrap". -# Set to 0 to disable. -bounce_freq = 0 + alignment = left + vertical_alignment = center + word_wrap = yes + ellipsize = middle + ignore_newline = no + show_age_threshold = 120 + relative_timestamps = true -# Show age of message if message is older than show_age_threshold -# seconds. -# Set to -1 to disable. -show_age_threshold = -1 + ### Icons ### + enable_recursive_icon_lookup = true + icon_theme = "Gruvbox, Adwaita, gnome" + icon_position = left + min_icon_size = 0 + max_icon_size = 48 + icon_corner_radius = 4 -# Split notifications into multiple lines if they don't fit into -# geometry. -word_wrap = yes + ### History ### + sticky_history = yes + history_length = 50 -# Ignore newlines '\n' in notifications. -ignore_newline = no + ### Misc ### + dmenu = /usr/bin/rofi -dmenu -p "Dunst" + browser = /usr/bin/firefox + always_run_script = true + title = Dunst + class = Dunst + force_xwayland = false + force_xinerama = false + layer = overlay -# Hide duplicate's count and stack them -stack_duplicates = yes -hide_duplicates_count = yes + ### Mouse ### + mouse_left_click = close_current + mouse_middle_click = do_action, close_current + mouse_right_click = close_all -# The geometry of the window: -# [{width}]x{height}[+/-{x}+/-{y}] -# The geometry of the message window. -# The height is measured in number of notifications everything else -# in pixels. If the width is omitted but the height is given -# ("-geometry x2"), the message window expands over the whole screen -# (dmenu-like). If width is 0, the window expands to the longest -# message displayed. A positive x is measured from the left, a -# negative from the right side of the screen. Y is measured from -# the top and down respectevly. -# The width can be negative. In this case the actual width is the -# screen width minus the width defined in within the geometry option. -#geometry = "250x50-40+40" -geometry = "300x50-15+49" - -# Shrink window if it's smaller than the width. Will be ignored if -# width is 0. -shrink = no - -# The transparency of the window. Range: [0; 100]. -# This option will only work if a compositing windowmanager is -# present (e.g. xcompmgr, compiz, etc.). -transparency = 0.5 - -# Don't remove messages, if the user is idle (no mouse or keyboard input) -# for longer than idle_threshold seconds. -# Set to 0 to disable. -idle_threshold = 0 - -# Which monitor should the notifications be displayed on. -monitor = 0 - -# Display notification on focused monitor. Possible modes are: -# mouse: follow mouse pointer -# keyboard: follow window with keyboard focus -# none: don't follow anything -# -# "keyboard" needs a windowmanager that exports the -# _NET_ACTIVE_WINDOW property. -# This should be the case for almost all modern windowmanagers. -# -# If this option is set to mouse or keyboard, the monitor option -# will be ignored. -follow = none - -# Should a notification popped up from history be sticky or timeout -# as if it would normally do. -sticky_history = yes - -# Maximum amount of notifications kept in history -history_length = 15 - -# Display indicators for URLs (U) and actions (A). -show_indicators = no - -# The height of a single line. If the height is smaller than the -# font height, it will get raised to the font height. -# This adds empty space above and under the text. -line_height = 3 - -# Draw a line of "separatpr_height" pixel height between two -# notifications. -# Set to 0 to disable. -separator_height = 2 - -# Padding between text and separator. -padding = 6 - -# Horizontal padding. -horizontal_padding = 6 - -# Define a color for the separator. -# possible values are: -# * auto: dunst tries to find a color fitting to the background; -# * foreground: use the same color as the foreground; -# * frame: use the same color as the frame; -# * anything else will be interpreted as a X color. -separator_color = frame - -# Print a notification on startup. -# This is mainly for error detection, since dbus (re-)starts dunst -# automatically after a crash. -startup_notification = false - -# dmenu path. -dmenu = /usr/bin/dmenu -p dunst: - -# Browser for opening urls in context menu. -browser = /usr/bin/firefox -new-tab - -# Align icons left/right/off -icon_position = off -max_icon_size = 80 - -# Paths to default icons. -icon_path = /usr/share/icons/Paper/16x16/mimetypes/:/usr/share/icons/Paper/48x48/status/:/usr/share/icons/Paper/16x16/devices/:/usr/share/icons/Paper/48x48/notifications/:/usr/share/icons/Paper/48x48/emblems/ - -frame_width = 3 -frame_color = "#EBDBB2" - -[shortcuts] - -# Shortcuts are specified as [modifier+][modifier+]...key -# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", -# "mod3" and "mod4" (windows-key). -# Xev might be helpful to find names for keys. - -# Close notification. -close = ctrl+space - -# Close all notifications. -close_all = ctrl+shift+space - -# Redisplay last message(s). -# On the US keyboard layout "grave" is normally above TAB and left -# of "1". -history = ctrl+grave - -# Context menu. -context = ctrl+shift+period - [urgency_low] -# IMPORTANT: colors have to be defined in quotation marks. -# Otherwise the "#" and following would be interpreted as a comment. -frame_color = "#458588" -foreground = "#83A598" -background = "#282828" -#background = "#2B313C" -timeout = 4 + background = "#282828" + foreground = "#a89984" + frame_color = "#504945" + format = %s\n%b + timeout = 15 + default_icon = dialog-information [urgency_normal] -frame_color = "#928374" -foreground = "#EBDBB2" -background = "#282828" -#background = "#2B313C" -timeout = 6 + background = "#282828" + foreground = "#ebdbb2" + frame_color = "#d79921" + format = %s\n%b + timeout = 0 + default_icon = dialog-information [urgency_critical] -frame_color = "#CC241D" -foreground = "#FB4934" -background = "#282828" -#background = "#2B313C" -timeout = 8 - - -# Every section that isn't one of the above is interpreted as a rules to -# override settings for certain messages. -# Messages can be matched by "appname", "summary", "body", "icon", "category", -# "msg_urgency" and you can override the "timeout", "urgency", "foreground", -# "background", "new_icon" and "format". -# Shell-like globbing will get expanded. -# -# SCRIPTING -# You can specify a script that gets run when the rule matches by -# setting the "script" option. -# The script will be called as follows: -# script appname summary body icon urgency -# where urgency can be "LOW", "NORMAL" or "CRITICAL". -# -# NOTE: if you don't want a notification to be displayed, set the format -# to "". -# NOTE: It might be helpful to run dunst -print in a terminal in order -# to find fitting options for rules. - -#[espeak] -# summary = "*" -# script = dunst_espeak.sh - -#[script-test] -# summary = "*script*" -# script = dunst_test.sh - -#[ignore] -# # This notification will not be displayed -# summary = "foobar" -# format = "" - -#[signed_on] -# appname = Pidgin -# summary = "*signed on*" -# urgency = low -# -#[signed_off] -# appname = Pidgin -# summary = *signed off* -# urgency = low -# -#[says] -# appname = Pidgin -# summary = *says* -# urgency = critical -# -#[twitter] -# appname = Pidgin -# summary = *twitter.com* -# urgency = normal -# -# vim: ft=cfg + background = "#1d2021" + foreground = "#ebdbb2" + frame_color = "#cc241d" + format = %s\n%b + timeout = 0 + default_icon = dialog-warning diff --git a/.config/i3/config b/.config/i3/config index b5b0325..78223a9 100644 --- a/.config/i3/config +++ b/.config/i3/config @@ -1,414 +1,205 @@ -# This file has been auto-generated by i3-config-wizard(1). -# It will not be overwritten, so edit it as you like. -# -# Should you change your keyboard layout somewhen, delete -# this file and re-run i3-config-wizard(1). -# +# i3 config — portiert von ~/.config/sway/config -# i3 config file (v4) -# -# Please see http://i3wm.org/docs/userguide.html for a complete reference! +# === Monitor-Layout via xrandr (X11) === +exec --no-startup-id xrandr \ + --output HDMI-A-1 --mode 1920x1080 --rate 50 --pos 0x1732 --rotate normal \ + --output DP-2 --mode 2560x1440 --rate 59.95 --pos 301x1080 --rotate right \ + --output DP-1 --mode 2560x1440 --rate 59.95 --pos 1741x1732 --rotate normal --primary \ + --output DP-3 --mode 2560x1440 --rate 59.95 --pos 4301x1732 --rotate normal -# colors +# === Tastatur (X11) === +exec_always --no-startup-id setxkbmap -layout "de,us" -option "caps:XF86Launch5" -# class border backgr. text -#client.focused #C9B5BD #C9B5BD #825969 -#client.focused_inactive #191919 #191919 #999999 -#client.unfocused #191919 #191919 #999999 -#client.urgent #cd989a #cd989a #2e3436 -#client.background #121212 -# class border bground text indicator child_border -client.focused #D5C4A1 #D5C4A1 #282828 #282828 #282828 -client.focused_inactive #7C6F64 #7C6F64 #EBDBB2 #5F676A #5F676A -client.unfocused #282828 #282828 #EBDBB2 #282828 #282828 -client.urgent #FB4934 #FB4934 #282828 #FB4934 #FB4934 -client.placeholder #D65D0E #D65D0E #282828 #282828 #282828 -client.background #282828 +# === Touchpad (X11) === +exec_always --no-startup-id xinput set-prop "SynPS/2 Synaptics TouchPad" "libinput Tapping Enabled" 1 2>/dev/null || true +exec_always --no-startup-id xinput set-prop "SynPS/2 Synaptics TouchPad" "libinput Scroll Method Enabled" 0 0 1 2>/dev/null || true -# set default font -#font -*-cure-medium-*-*-*-11-*-*-*-*-*-*-* -#font pango: Noto Sans 8 -#font pango: Inconsolata 11, FontAwesome 12, Font Awesome 5 Free 12, Font Awesome 5 Brands 12 -font pango: Noto Sans 8 - -# set modifier keys for more clarity and readability in config -# mod is on most keyboards the "windows" key +# === Modifier === set $mod Mod4 set $alt Mod1 -# Monitor settings -set $monL DP-0 -set $monR DP-2 -set $monP DP-4 - -# Font for window titles. Will also be used by the bar unless a different font -# is used in the bar {} block below. ISO 10646 = Unicode -#font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 -# The font above is very space-efficient, that is, it looks good, sharp and -# clear in small sizes. However, if you need a lot of unicode glyphs or -# right-to-left text rendering, you should instead use pango for rendering and -# chose a FreeType font, such as: -# font pango:DejaVu Sans Mono 10 - -# Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod -#set the border of your windows +# === Borders === bindsym $mod+t border normal bindsym $mod+y border 1pixel bindsym $mod+u border none -# start a terminal -# with some examples for other font or other terminal emulators -#bindsym $mod+Return exec urxvt -depth 32 -bg rgba:3f00/3f00/3f00/dddd -ip -fg white -sl 10000 +sb -fn "xft:inconsolata:size=9:antialias=true" -letsp -1 -sh 20 -#bindsym $mod+Return exec urxvt -depth 32 -bg rgba:3f00/3f00/3f00/dddd -ip -fg white -sl 10000 +sb -fn "xft:PragmataPro:size=8:antialias=true" -letsp -1 -sh 20 -#bindsym $mod+Return exec terminology -#bindsym $mod+Return exec tilda -bindsym $mod+Return exec termite +# === Terminal === +bindsym $mod+Return exec foot -# kill focused window +# === Fenster schließen === bindsym $mod+Shift+q kill bindsym $alt+F4 kill -# if this don't work, you can even start xkill bindsym $mod+Shift+k exec xkill -# enables a feature like on other windowmanagers or windows, -# to show running "processes" and switch between them +# === App-Switcher / Launcher === bindsym $alt+Tab exec rofi -show window +set $menu exec wofi --show drun +bindsym $mod+d exec $menu -# start dmenu (a program launcher) -#bindsym $mod+d exec dmenu_run -# instead -bindsym $mod+d exec j4-dmenu-desktop --dmenu="dmenu -i -nf '#EBDBB2' -nb '#665C54' -sb '#fe8019' -sf '#282828'" - -# There also is the (new) i3-dmenu-desktop which only displays applications -# shipping a .desktop file. It is a wrapper around dmenu, so you need that -# installed. -# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop - -# change focus - the vi way -# I don't use them, cause i need this keys for other purposes -# e.g. $mod+h for split horizontal -#bindsym $mod+h focus left -#bindsym $mod+j focus down -#bindsym $mod+k focus up -#bindsym $mod+l focus right - -# alternatively, you can use the cursor keys: -bindsym $mod+Left focus left -bindsym $mod+Down focus down -bindsym $mod+Up focus up +# === Fokus === +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up bindsym $mod+Right focus right -# move focused window - the vi way -# I don't use them, cause i need this keys for other purposes -# e.g. $mod+Shift+l for lock my Desktop -#bindsym $mod+Shift+h move left -#bindsym $mod+Shift+j move down -#bindsym $mod+Shift+k move up -#bindsym $mod+Shift+l move right - -# alternatively, you can use the cursor keys: -bindsym $mod+Shift+Left move left -bindsym $mod+Shift+Down move down -bindsym $mod+Shift+Up move up +# === Fenster verschieben === +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up bindsym $mod+Shift+Right move right -# split in horizontal orientation +# === Split === bindsym $mod+h split h - -# split in vertical orientation bindsym $mod+v split v -# enter fullscreen mode for the focused container -bindsym $mod+f fullscreen +# === Fullscreen === +bindsym $mod+z fullscreen -# change container layout (stacked, tabbed, toggle split) +# === Layout === bindsym $mod+s layout stacking bindsym $mod+w layout tabbed bindsym $mod+e layout toggle split -# toggle tiling / floating +# === Floating === bindsym $mod+Shift+space floating toggle - -# change focus between tiling / floating windows bindsym $mod+space focus mode_toggle - -# focus the parent container bindsym $mod+a focus parent -# focus the child container -#bindsym $mod+d focus child +# === Workspaces === +bindsym $mod+1 workspace 1: 1: Text +bindsym $mod+2 workspace 2: 2: Web +bindsym $mod+3 workspace 3: 3: Office +bindsym $mod+4 workspace 4: 4: KeePass +bindsym $mod+5 workspace 5: 5: Mail +bindsym $mod+6 workspace 6: 6: Chat +bindsym $mod+7 workspace 7 +bindsym $mod+8 workspace 8 +bindsym $mod+9 workspace 9 +bindsym $mod+0 workspace 10 -# variables for workpacenames; -set $ws1 1: Text -set $ws2 2: Web -set $ws3 3: Office -set $ws4 4: KeePass -set $ws5 5: Mail -set $ws6 6: Chat -set $ws7 7: Stuff -set $ws8 8 -set $ws9 9: WebWork -set $ws10 10 - -# Assign Workspaces to specific outputs -workspace "$ws1" output $monP -workspace "$ws2" output $monP -workspace "$ws3" output $monP -workspace "$ws4" output $monL -workspace "$ws5" output $monR -workspace "$ws6" output $monR -workspace "$ws7" output $monR -workspace "$ws8" output $monP -workspace "$ws9" output $monL -workspace "$ws10" output $monP - -# switch to workspace -bindsym $mod+1 workspace $ws1 -bindsym $mod+2 workspace $ws2 -bindsym $mod+3 workspace $ws3 -bindsym $mod+4 workspace $ws4 -bindsym $mod+5 workspace $ws5 -bindsym $mod+6 workspace $ws6 -bindsym $mod+7 workspace $ws7 -bindsym $mod+8 workspace $ws8 -bindsym $mod+9 workspace $ws9 -bindsym $mod+0 workspace $ws10 - -# move focused container to workspace -bindsym $mod+Shift+1 move container to workspace $ws1 -bindsym $mod+Shift+2 move container to workspace $ws2 -bindsym $mod+Shift+3 move container to workspace $ws3 -bindsym $mod+Shift+4 move container to workspace $ws4 -bindsym $mod+Shift+5 move container to workspace $ws5 -bindsym $mod+Shift+6 move container to workspace $ws6 -bindsym $mod+Shift+7 move container to workspace $ws7 -bindsym $mod+Shift+8 move container to workspace $ws8 -bindsym $mod+Shift+9 move container to workspace $ws9 -bindsym $mod+Shift+0 move container to workspace $ws10 - -# reload the configuration file -bindsym $mod+Shift+c reload -# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) -bindsym $mod+Shift+r restart - -# exit i3 (logs you out of your X session) -bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" - -# Lock the current session -bindsym $mod+Shift+l exec i3lock - - -# add the ability to reboot shutdown etc. -#......... -set $sysmenu "system: [r]estart [l]logout [p)oweroff re[b]oot" -bindsym $mod+Shift+Delete mode "$sysmenu" - -mode $sysmenu { - bindsym r restart - bindsym l exit - bindsym p exec sudo shutdown -P now - bindsym b exec sudo shutdown -r now - bindsym Return mode "default" - bindsym Escape mode "default" -} -#......... - -set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown -mode "$mode_system" { - bindsym l exec --no-startup-id ~/.i3/i3exit lock, mode "default" - bindsym e exec --no-startup-id ~/.i3/i3exit logout, mode "default" - bindsym s exec --no-startup-id ~/.i3/i3exit suspend, mode "default" - bindsym h exec --no-startup-id ~/.i3/i3exit hibernate, mode "default" - bindsym r exec --no-startup-id ~/.i3/i3exit reboot, mode "default" - bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default" - - # back to normal: Enter or Escape - bindsym Return mode "default" - bindsym Escape mode "default" -} -bindsym $mod+Pause mode "$mode_system" - - -# for gaming under wine - some Games are crashing, if there are more than one monitor -#......... -set $displaymenu [g]aming [w]ork -bindsym $mod+Shift+x mode "$displaymenu" - -mode "$displaymenu" { - bindsym g exec --no-startup-id xrandr --output DVI-D-0 --off --output HDMI-0 --off --output DP-5 --off --output DP-4 --primary --mode 2560x1440 --pos 1080x0 --rotate normal --output DP-3 --off --output DP-2 --off --output DP-1 --off --output DP-0 --off, mode "default" - bindsym w exec --no-startup-id xrandr --output DVI-D-0 --off --output HDMI-0 --off --output DP-5 --off --output DP-4 --primary --mode 2560x1440 --pos 1080x0 --rotate normal --output DP-3 --off --output DP-2 --mode 1920x1080 --pos 3640x0 --rotate normal --output DP-1 --off --output DP-0 --mode 1920x1080 --pos 0x0 --rotate right, mode "default" - bindsym Return mode "default" - bindsym Escaoe mode "default" -} -#......... +bindsym $mod+Shift+1 move container to workspace 1: 1: Text +bindsym $mod+Shift+2 move container to workspace 2: 2: Web +bindsym $mod+Shift+3 move container to workspace 3: 3: Office +bindsym $mod+Shift+4 move container to workspace 4: 4: KeePass +bindsym $mod+Shift+5 move container to workspace 5: 5: Mail +bindsym $mod+Shift+6 move container to workspace 6: 6: Chat +bindsym $mod+Shift+7 move container to workspace 7 +bindsym $mod+Shift+8 move container to workspace 8 +bindsym $mod+Shift+9 move container to workspace 9 +bindsym $mod+Shift+0 move container to workspace 10 +# Workspace zwischen Monitoren verschieben bindsym $mod+Prior move workspace to output left -bindsym $mod+Next move workspace to output right +bindsym $mod+Next move workspace to output right -# resize window (you can also use the mouse for that) -#......... +# === Scratchpad === +bindsym $mod+Shift+minus move scratchpad +bindsym $mod+minus scratchpad show + +# === Config neu laden / i3 neu starten === +bindsym $mod+Shift+r restart +bindsym $mod+Shift+c reload + +# === Session-Ende === +bindsym $mod+Shift+e exec i3-nagbar -t warning \ + -m "i3 beenden?" \ + -b "Ja, beenden" "i3-msg exit" \ + -b "Neu starten" "i3-msg restart" + +bindsym $mod+Shift+Delete exec i3-nagbar -t default \ + -m "Systemmenü" \ + -b "i3 beenden" "i3-msg exit" \ + -b "Neu laden" "i3-msg reload" \ + -b "Ausschalten" "exec sudo shutdown -P now" \ + -b "Neustart" "exec sudo shutdown -r now" + +# === Bildschirm sperren === +bindsym $mod+Shift+l exec i3lock -c 000000 + +# === Bildschirmsperre + Idle (X11) === +exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock -c 000000 & + +# === Screenshot === +bindsym --release Print exec maim -s ~/library/Bilder/Screenshots/screenshot_$(date +%s).png + +# === Lautstärke === +bindsym XF86AudioRaiseVolume exec pamixer -i 5 +bindsym XF86AudioLowerVolume exec pamixer -d 5 +bindsym XF86AudioMute exec pamixer -t + +# === Resize-Modus === bindsym $mod+r mode "resize" - mode "resize" { - # These bindings trigger as soon as you enter the resize mode + bindsym j resize shrink width 10 px or 10 ppt + bindsym k resize grow height 10 px or 10 ppt + bindsym l resize shrink height 10 px or 10 ppt + bindsym odiaeresis resize grow width 10 px or 10 ppt - # Pressing left will shrink the window’s width. - # Pressing right will grow the window’s width. - # Pressing up will shrink the window’s height. - # Pressing down will grow the window’s height. - bindsym j resize shrink width 10 px or 10 ppt - bindsym k resize grow height 10 px or 10 ppt - bindsym l resize shrink height 10 px or 10 ppt - bindsym odiaeresis resize grow width 10 px or 10 ppt + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt - # same bindings, but for the arrow keys - bindsym Left resize shrink width 10 px or 10 ppt - bindsym Down resize grow height 10 px or 10 ppt - bindsym Up resize shrink height 10 px or 10 ppt - bindsym Right resize grow width 10 px or 10 ppt - - # back to normal: Enter or Escape - bindsym Return mode "default" - bindsym Escape mode "default" + bindsym Return mode "default" + bindsym Escape mode "default" } -#........ -# Start i3bar to display a workspace bar (plus the system information i3status -# finds out, if available) - -# this is the bottom bar +# === Statusbar === bar { - status_command i3status-rs /home/templis/.config/i3status/config_bot.toml - font pango:FontAwesome 12 - colors { - background #282828 - statusline #EBDBB2 - separator #EBDBB2 - - focused_workspace #D5C4A1 #D5C4A1 #282828 - active_workspace #7C6F64 #7C6F64 #EBDBB2 - inactive_workspace #282828 #282828 #EBDBB2 - urgent_workspace #FB4934 #FB4934 #282828 - binding_mode #D65D0E #D65D0E #282828 - } - -} -bar { - position top - tray_output none - workspace_buttons no - status_command i3status-rs /home/templis/.config/i3status/config_top.toml - font pango:FontAwesome 12 - colors { - background #282828 - statusline #EBDBB2 - separator #EBDBB2 - - focused_workspace #D5C4A1 #D5C4A1 #282828 - active_workspace #7C6F64 #7C6F64 #EBDBB2 - inactive_workspace #282828 #282828 #EBDBB2 - urgent_workspace #FB4934 #FB4934 #282828 - binding_mode #D65D0E #D65D0E #282828 - } + status_command i3status } - -# snipping/screenshot Tool -#bindsym --release Print exec scrot -s -e 'mv $f ~/Bilder/Screenshots/screenshot_%Y-%m-%d_%H%M%S.png' -bindsym --release Print exec maim -s ~/Bilder/Screenshots/screenshot_$(date +%s).png - - -## Media keys -#bindsym XF86AudioRaiseVolume exec exec pamixer -i 5 -#bindsym XF86AudioLowerVolume exec exec pamixer -d 5 -#bindsym XF86AudioMute exec pamixer -t -bindsym XF86AudioRaiseVolume exec $HOME/.scripts/volume.sh up -bindsym XF86AudioLowerVolume exec $HOME/.scripts/volume.sh down -bindsym XF86AudioMute exec $HOME/.scripts/volume.sh mute - - -# Enable GLX Graphics -# used especially for Laptop and enable/disable discrete graphics -# bindsym $mod+g exec /home/templis/dri.sh - -# Set floating Windows for special applications +# === Standard-Layout === workspace_layout tabbed -for_window [window_role="pop-up"] floating enable,move absolute center -for_window [class="Pinentry"] floating enable -for_window [class="Eog"] floating enable -for_window [class="Geary"] floating enable -for_window [class="Gcr-prompter"] floating enable -for_window [class="Tipswindow.py"] floating enable -for_window [class="XVroot"] floating enable -for_window [class="XVcontrols"] floating enable -for_window [class="Vlc"] floating enable -for_window [class="Synergy"] floating enable + +# === Floating-Regeln === +for_window [window_role="pop-up"] floating enable, move absolute center +for_window [class="Pinentry"] floating enable +for_window [class="Eog"] floating enable +for_window [class="Geary"] floating enable +for_window [class="Gcr-prompter"] floating enable +for_window [class="Vlc"] floating enable +for_window [class="Synergy"] floating enable for_window [class="libreoffice-writer"] floating enable -for_window [class="Shotwell"] floating enable -for_window [class="UpLauncher"] floating enable -for_window [title="^Minecraft .*"] floating enable +for_window [class="Shotwell"] floating enable +for_window [class="anydesk"] floating enable +for_window [class="galculator"] floating enable +for_window [window_type="dialog"] floating enable +for_window [window_role="dialog"] floating enable +for_window [title="^Preferences$"] floating enable +for_window [title="^Minecraft .*"] floating enable for_window [title="Steam - Update News"] kill -for_window [title="Preferences$"] floating enable -for_window [class="^Pidgin$" window_role="^conversation$"] resize grow width 0 px or 30 ppt -# Assign special applications to defined workspaces -assign [class="Chromium"] 2: Web -assign [class="chrome"] 2: Web -assign [class="firefox"] 2: Web -assign [class="libreoffice"] 3: Office -assign [class="Gimp"] 3: Office -assign [class="^Minecraft Launcher .*"] 3: Office -assign [class="Linphone"] 3: Office -assign [class="KeePass2"] 4: KeePass -assign [class="keepassxc"] 4: KeePass -assign [class="KeePassXC"] 4: KeePass -assign [class="(?i)thunderbird"] 5: Mail -assign [class="Signal"] 6: Chat +# === Workspace-Zuweisungen === +assign [class="(?i)firefox"] 2: 2: Web +assign [class="(?i)chromium"] 2: 2: Web +assign [class="(?i)chrome"] 2: 2: Web +assign [class="libreoffice"] 3: 3: Office +assign [class="Gimp"] 3: 3: Office +assign [class="keepassxc"] 4: 4: KeePass +assign [class="KeePassXC"] 4: 4: KeePass +assign [class="(?i)thunderbird"] 5: 5: Mail +assign [class="Signal"] 6: 6: Chat -# Start some needet applications -# Please take care to install/configure it, if you intend to include it! +# === Autostart === +exec --no-startup-id xrdb -load ~/.Xresources +exec --no-startup-id xrdb -merge ~/.Xresources -# start Sound Daemon -exec pulseaudio --start -exec /usr/bin/pasystray - -# BROWSERS!!!11!elf! -exec MOZ_X11_EGL=1;firefox -#exec chromium -#exec google-chrome-stable - -# networkmanager gui -exec nm-applet - -# eye saver -#Redshift adjusts the color temperature of your screen according to your surroundings. This may help your eyes hurt less if you are working in front of the screen at night. +exec firefox +exec nm-applet --indicator exec redshift-gtk -l 48.52160730:9.05050278 - -# nextcloud exec nextcloud - -# start one terminal on workspace 1 for failure management etc. -exec --no-startup-id i3-msg 'workspace 1: Text; exec urxvt -depth 32 -bg rgba:3f00/3f00/3f00/dddd -ip -fg white -sl 10000 +sb -fn "xft:inconsolata:size=8" -letsp -1 -sh 20' - -# trayicon to listen to some radio stations exec radiotray-ng - -# start i3 with a random wallpaper -exec feh --randomize --bg-fill ~/Bilder/Wallpaper/* - -# autodetect and automount USB Sticks and external media -exec udisksvm >/dev/null & - -# Start Signal exec signal-desktop - -# Start keepassxc exec keepassxc +exec ~/.scripts/start_keyring.sh +exec dunst +# Notification-History Picker (Inhalt kopieren) +bindsym $mod+n exec ~/.config/dunst/notification-picker.sh +exec udisksvm >/dev/null & +exec systemctl --user start mako-mirror.service -# Start thunderbird -exec thunderbird - -#Start compton -exec --no-startup-id compton -b +# include modules +include ~/.config/i3/conf.d/* diff --git a/.config/i3/config.backup b/.config/i3/config.backup deleted file mode 100644 index 39b3d9bbec61c6dada6be32ae67d8ae9d259a24f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9584 zcmZP=1*0J_8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8Umvs yFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd70xg#Z90Z~y@S diff --git a/.config/i3/conky.conf b/.config/i3/conky.conf deleted file mode 100644 index c3d94dd7a002c5d203f589b96f4c99abd6296396..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2396 gcmZP=1*0J_8UmvsFd71*Aut*OqaiRF0#pkD00~?G0RR91 diff --git a/.config/i3/conky.lua b/.config/i3/conky.lua deleted file mode 100644 index c328cfb6e7696778ec87f383006e9b3ca2d1309e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724 PcmZP=1*0J_%t8PF0@MHj diff --git a/.config/i3/conkyrc b/.config/i3/conkyrc deleted file mode 100644 index 875b02812a3c3f91428124ea082ac228d4c50fd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2193 ecmZP=1*0J_8UmvsFd71*Aut*OqaiTRApigfkpKYz diff --git a/.config/i3/dunstrc b/.config/i3/dunstrc deleted file mode 100644 index b83acb5e6276b559a7da4956aeeedfc12e4f0f75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 936 RcmZP=1*0J_8Ulkp1ONl500961 diff --git a/.config/i3/i3bar.bar-0.log b/.config/i3/i3bar.bar-0.log deleted file mode 100644 index 6f705b5851d64dae2f093c2710fe24bc343f7533..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112 KcmZReGXMYpZ~y@S diff --git a/.config/i3/i3bar.bar-1.log b/.config/i3/i3bar.bar-1.log deleted file mode 100644 index 883b3adb5c10eb48593ff10369d00a9bc4c01370..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1864 bcmZP=1*0J_8UmvsFd71*Aut*OWQPC%2S@+` diff --git a/.config/i3/i3exit b/.config/i3/i3exit deleted file mode 100755 index 3e6d28604a3d1422075f0d6869a82af0da5cf0bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451 McmZP=1w%aq00F}Q0RR91 diff --git a/.config/i3/i3status.conf b/.config/i3/i3status.conf deleted file mode 100644 index 53b6a1822e817335916a4871988d38426681e478..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1362 WcmZP=1*0J_8UmvsFd70>3IPBGQUCz} diff --git a/.config/i3/startup_conky b/.config/i3/startup_conky deleted file mode 100755 index e080c37f413ad9674da2d2ef23d7560e2cd47e9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280 McmZP=1z1A>009^P0RR91 diff --git a/.config/i3/status.toml b/.config/i3/status.toml deleted file mode 100644 index 9242370ab5b60e44c5a0523176b1b9889f011a34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 600 PcmZP=1*0KAgAf1!0$2b6 diff --git a/.config/i3/weather.sh b/.config/i3/weather.sh deleted file mode 100755 index 5226ae9df5786ff4c897a1e2a8d50fa5be4597d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1340 WcmZP=1*0J_8UmvsFd70RhX4QtJOBXz diff --git a/.config/i3/yagostatus.yml b/.config/i3/yagostatus.yml deleted file mode 100644 index e99598e3a41a8decdeaf998d19e1b6f3e4b83155..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1152 UcmZP=1*0J_8UmvsFhC&y00e*l0RR91 diff --git a/.config/i3status/config_bot.toml b/.config/i3status/config_bot.toml deleted file mode 100644 index fc330f5..0000000 --- a/.config/i3status/config_bot.toml +++ /dev/null @@ -1,21 +0,0 @@ -icons = "awesome" - -[theme] -name = "gruvbox-dark" - -[theme.overrides] -info_bg = "#D5C4A1" -info_fg = "#282828" - -[[block]] -block = "music" -player = "spotify" -buttons = ["play", "next"] - -[[block]] -block = "pacman" -interval = 10 - -[[block]] -block = "sound" -step_width = 3 diff --git a/.config/i3status/config_top.toml b/.config/i3status/config_top.toml deleted file mode 100644 index 27e45dd..0000000 --- a/.config/i3status/config_top.toml +++ /dev/null @@ -1,73 +0,0 @@ -icons = "awesome" - -[theme] -name = "gruvbox-dark" - -[theme.overrides] -info_bg = "#D5C4A1" -info_fg = "#282828" - -[[block]] -block = "disk_space" -path = "/" -alias = "/" -info_type = "available" -unit = "GB" -interval = 20 -warning = 20.0 -alert = 10.0 - -[[block]] -block = "memory" -display_type = "memory" -format_mem = "{Mup}%" -format_swap = "{SUp}%" - -[[block]] -block = "cpu" -interval = 1 - -[[block]] -block = "net" -device = "wlan1" -ssid = true -signal_strength = true -ip = true -speed_up = false -graph_up = true -interval = 5 -hide_missing = true -hide_inactive = true - -[[block]] -block = "net" -device = "wlan0" -ssid = true -signal_strength = true -ip = true -speed_up = false -graph_up = true -interval = 5 -hide_missing = true -hide_inactive = true - -[[block]] -block = "net" -device = "eno0" -ip = true -speed_up = false -graph_up = true -interval = 5 -hide_missing = true -hide_inactive = true - -[[block]] -block = "load" -interval = 1 -format = "{1m}" - -[[block]] -block = "time" -interval = 60 -format = "%a %d.%m %R" - diff --git a/.config/katerc b/.config/katerc new file mode 100644 index 0000000..3f7ee4a --- /dev/null +++ b/.config/katerc @@ -0,0 +1,169 @@ +[General] +Days Meta Infos=30 +PinnedDocuments= +Quickopen Filter Mode=0 +Quickopen List Mode=true +Save Meta Infos=true +Show Full Path in Title=false +Show Menu Bar=true +Show Status Bar=true +Show Tab Bar=true +Show Url Nav Bar=true + +[KTextEditor Document] +Allow End of Line Detection=true +Auto Detect Indent=true +Auto Reload If State Is In Version Control=true +Auto Save=false +Auto Save Interval=0 +Auto Save On Focus Out=false +BOM=false +Backup Local=false +Backup Prefix= +Backup Remote=false +Backup Suffix=~ +Camel Cursor=true +Encoding=UTF-8 +End of Line=0 +Indent On Backspace=true +Indent On Tab=true +Indent On Text Paste=false +Indentation Mode=normal +Indentation Width=4 +Keep Extra Spaces=false +Line Length Limit=10000 +Newline at End of File=true +On-The-Fly Spellcheck=false +Overwrite Mode=false +PageUp/PageDown Moves Cursor=false +Remove Spaces=1 +ReplaceTabsDyn=true +Show Spaces=0 +Show Tabs=true +Smart Home=true +Swap Directory= +Swap File Mode=1 +Swap Sync Interval=15 +Tab Handling=2 +Tab Width=4 +Trailing Marker Size=1 +Word Wrap=false +Word Wrap Column=80 + +[KTextEditor Editor] +Encoding Prober Type=1 +Fallback Encoding=ISO 8859-15 + +[KTextEditor Renderer] +Animate Bracket Matching=false +Auto Color Theme Selection=true +Color Theme=gruvbox Dark +Font=Hack,10,-1,7,50,0,0,0,0,0 +Line Height Multiplier=1 +Show Indentation Lines=false +Show Whole Bracket Expression=false +Word Wrap Marker=false + +[KTextEditor View] +Allow Mark Menu=true +Auto Brackets=true +Auto Center Lines=0 +Auto Completion=true +Auto Completion Preselect First Entry=true +Backspace Remove Composed Characters=false +Bookmark Menu Sorting=0 +Bracket Match Preview=false +Chars To Enclose Selection=<>(){}[]'" +Default Mark Type=1 +Dynamic Word Wrap=true +Dynamic Word Wrap Align Indent=80 +Dynamic Word Wrap At Static Marker=false +Dynamic Word Wrap Indicators=1 +Dynamic Wrap not at word boundaries=false +Enable Tab completion=false +Fold First Line=false +Folding Bar=true +Folding Preview=true +Icon Bar=false +Input Mode=0 +Keyword Completion=true +Line Modification=true +Line Numbers=true +Max Clipboard History Entries=20 +Maximum Search History Size=100 +Mouse Paste At Cursor Position=false +Multiple Cursor Modifier=134217728 +Persistent Selection=false +Scroll Bar Marks=false +Scroll Bar Mini Map All=true +Scroll Bar Mini Map Width=60 +Scroll Bar MiniMap=true +Scroll Bar Preview=true +Scroll Past End=false +Search/Replace Flags=140 +Shoe Line Ending Type in Statusbar=false +Show Documentation With Completion=true +Show File Encoding=true +Show Focus Frame Around Editor=true +Show Folding Icons On Hover Only=true +Show Line Count=false +Show Scrollbars=0 +Show Statusbar Dictionary=true +Show Statusbar Highlighting Mode=true +Show Statusbar Input Mode=true +Show Statusbar Line Column=true +Show Statusbar Tab Settings=true +Show Word Count=false +Smart Copy Cut=true +Statusbar Line Column Compact Mode=true +Text Drag And Drop=true +User Sets Of Chars To Enclose Selection= +Vi Input Mode Steal Keys=false +Vi Relative Line Numbers=false +Word Completion=true +Word Completion Minimal Word Length=3 +Word Completion Remove Tail=true + +[KTextEditor::Search] +Search History=tutorial + +[MainWindow] +4 screens: Height=648 +4 screens: Width=1152 +4 screens: Window-Maximized=true + +[filetree] +editShade=87,88,24 +listMode=false +middleClickToClose=false +shadingEnabled=true +showCloseButton=false +showFullPathOnRoots=false +showToolbar=true +sortRole=0 +viewShade=68,74,75 + +[lspclient] +AllowedServerCommandLines=/usr/bin/marksman server +AutoHover=true +AutoImport=true +BlockedServerCommandLines= +CompletionDocumentation=true +CompletionParens=true +Diagnostics=true +FormatOnSave=false +HighlightGoto=true +HighlightSymbol=true +IncrementalSync=false +InlayHints=false +Messages=true +ReferencesDeclaration=true +SemanticHighlighting=true +ServerConfiguration= +ShowCompletions=true +SignatureHelp=true +SymbolDetails=false +SymbolExpand=true +SymbolSort=false +SymbolTree=true +TypeFormatting=false diff --git a/.config/kcminputrc b/.config/kcminputrc new file mode 100644 index 0000000..e6205fa --- /dev/null +++ b/.config/kcminputrc @@ -0,0 +1,13 @@ +[%24Version] +update_info=delete_cursor_old_default_size.upd:DeleteCursorOldDefaultSize, kcminputrc_fix_botched_5_21_0.upd:kcminputrc_fix_botched_5_21_0_pre, kcminputrc_fix_botched_5_21_0.upd:kcminputrc_fix_botched_5_21_0, kcminputrc_repeat.upd:kcminputrc_migrate_key_repeat + +[Mouse] +cursorSize=72 +cursorTheme=Bibata-Original-Amber + +[Tmp] +update_info=delete_cursor_old_default_size.upd:DeleteCursorOldDefaultSize + +[Libinput][9011][26214][ydotoold virtual device] +PointerAcceleration=0 +PointerAccelerationProfile=1 diff --git a/.config/kdeglobals b/.config/kdeglobals new file mode 100644 index 0000000..8cfa85f --- /dev/null +++ b/.config/kdeglobals @@ -0,0 +1,148 @@ +[$Version] +update_info=filepicker.upd:filepicker-remove-old-previews-entry,fonts_global.upd:Fonts_Global,fonts_global_toolbar.upd:Fonts_Global_Toolbar,icons_remove_effects.upd:IconsRemoveEffects,kwin.upd:animation-speed,style_widgetstyle_default_breeze.upd:StyleWidgetStyleDefaultBreeze,deepin-kwin.upd:animation-speed + +[ColorEffects:Disabled] +ChangeSelectionColor= +Color=56,56,56 +ColorAmount=0 +ColorEffect=0 +ContrastAmount=0.65000000000000002 +ContrastEffect=1 +Enable= +IntensityAmount=0.10000000000000001 +IntensityEffect=2 + +[ColorEffects:Inactive] +ChangeSelectionColor=true +Color=112,111,110 +ColorAmount=0.025000000000000001 +ColorEffect=2 +ContrastAmount=0.10000000000000001 +ContrastEffect=2 +Enable=true +IntensityAmount=0 +IntensityEffect=0 + +[Colors:Button] +BackgroundAlternate=60,56,54 +BackgroundNormal=40,40,40 +DecorationFocus=104,157,106 +DecorationHover=131,165,152 +ForegroundActive=142,192,124 +ForegroundInactive=55,115,117 +ForegroundLink=184,187,38 +ForegroundNegative=218,68,83 +ForegroundNeutral=246,116,0 +ForegroundNormal=235,219,178 +ForegroundPositive=39,174,96 +ForegroundVisited=127,140,141 + +[Colors:Selection] +BackgroundAlternate=142,192,124 +BackgroundNormal=104,157,106 +DecorationFocus=104,157,106 +DecorationHover=131,165,152 +ForegroundActive=252,252,252 +ForegroundInactive=235,219,178 +ForegroundLink=253,188,75 +ForegroundNegative=218,68,83 +ForegroundNeutral=246,116,0 +ForegroundNormal=235,219,178 +ForegroundPositive=39,174,96 +ForegroundVisited=189,195,199 + +[Colors:Tooltip] +BackgroundAlternate=60,56,54 +BackgroundNormal=40,40,40 +DecorationFocus=104,157,106 +DecorationHover=131,165,152 +ForegroundActive=184,187,38 +ForegroundInactive=55,115,117 +ForegroundLink=142,192,124 +ForegroundNegative=218,68,83 +ForegroundNeutral=246,116,0 +ForegroundNormal=235,219,178 +ForegroundPositive=39,174,96 +ForegroundVisited=127,140,141 + +[Colors:View] +BackgroundAlternate=60,56,54 +BackgroundNormal=40,40,40 +DecorationFocus=104,157,106 +DecorationHover=131,165,152 +ForegroundActive=184,187,38 +ForegroundInactive=55,115,117 +ForegroundLink=142,192,124 +ForegroundNegative=218,68,83 +ForegroundNeutral=246,116,0 +ForegroundNormal=235,219,178 +ForegroundPositive=39,174,96 +ForegroundVisited=127,140,141 + +[Colors:Window] +BackgroundAlternate=60,56,54 +BackgroundNormal=40,40,40 +DecorationFocus=104,157,106 +DecorationHover=131,165,152 +ForegroundActive=184,187,38 +ForegroundInactive=55,115,117 +ForegroundLink=142,192,124 +ForegroundNegative=218,68,83 +ForegroundNeutral=246,116,0 +ForegroundNormal=235,219,178 +ForegroundPositive=39,174,96 +ForegroundVisited=127,140,141 + +[General] +ColorSchemeHash=68f7da041112b660ac4e6911cf4bf8a7b361feda +LastUsedCustomAccentColor=101,55,207 + +[Icons] +Theme=Gruvbox + +[KDE] +LookAndFeelPackage=org.kde.breezedark.desktop +ShowDeleteCommand=false +widgetStyle=Breeze + +[KFileDialog Settings] +Allow Expansion=false +Automatically select filename extension=true +Breadcrumb Navigation=true +Decoration position=2 +LocationCombo Completionmode=5 +PathCombo Completionmode=5 +Show Bookmarks=false +Show Full Path=false +Show Inline Previews=true +Show Preview=false +Show Speedbar=true +Show hidden files=true +Sort by=Date +Sort directories first=true +Sort hidden files last=false +Sort reversed=true +Speedbar Width=188 +View Style=DetailTree + +[PreviewSettings] +EnableRemoteFolderThumbnail=false +MaximumRemoteSize=0 + +[Shortcuts] +GotoLine= + +[Sounds] +Theme=oxygen + +[Toolbar style] +ToolButtonStyle=TextUnderIcon +ToolButtonStyleOtherToolbars=TextUnderIcon + +[WM] +activeBackground=39,39,39 +activeBlend=235,219,178 +activeForeground=235,219,178 +inactiveBackground=40,40,40 +inactiveBlend=60,56,54 +inactiveForeground=204,190,155 diff --git a/.config/kglobalshortcutsrc b/.config/kglobalshortcutsrc new file mode 100644 index 0000000..7ccdbbb --- /dev/null +++ b/.config/kglobalshortcutsrc @@ -0,0 +1,470 @@ +[ActivityManager] +_k_friendly_name=Aktivitätenverwaltung +switch-to-activity-af3b6c4e-6eaf-4bea-857d-4860feb3cd94=none,none,Zu Aktivität „Standard“ wechseln + +[KDE Keyboard Layout Switcher] +Switch keyboard layout to Deutsch=none,none,Tastaturbelegung zu Deutsch umschalten +Switch to Last-Used Keyboard Layout=Meta+Alt+L,Meta+Alt+L,Auf zuletzt verwendete Tastaturbelegung umschalten +Switch to Next Keyboard Layout=Meta+Alt+K,Meta+Alt+K,Auf nächste Tastaturbelegung umschalten +_k_friendly_name=Umschaltung der Tastaturbelegung + +[claude] +6BDC7FE403BD0C01E80873CD7F418EEF-Ctrl+Alt+Space=none,Ctrl+Alt+Space,Claude shortcut: Ctrl+Alt+Space +_k_friendly_name=Claude + +[deepin-kwin] +Activate Window Demanding Attention=none,none,Fenster aktivieren\\, das Aufmerksamkeit erfordert +Decrease Opacity=none,none,Decrease Opacity of Active Window by 5 % +Expose=none,Ctrl+F9,Fenster der aktuellen Arbeitsfläche anzeigen +ExposeAll=none,Launch (C)\tCtrl+F10,Fenster aller Arbeitsflächen anzeigen +ExposeClass=none,Ctrl+F7,Fenster der Fensterklasse anzeigen +Increase Opacity=none,none,Increase Opacity of Active Window by 5 % +Invert Screen Colors=none,none,Invert Screen Colors +Kill Window=Ctrl+Alt+Esc,Ctrl+Alt+Esc,Fenster beseitigen +MinimizeAll=Meta+Shift+D,none,MinimizeAll +MoveMouseToCenter=none,Meta+F6,Mauszeiger zentrieren +MoveMouseToFocus=none,Meta+F5,Mauszeiger in den Fokus verschieben +MoveZoomDown=none,none,Vergrößerten Bereich nach unten verschieben +MoveZoomLeft=none,none,Vergrößerten Bereich nach links verschieben +MoveZoomRight=none,none,Vergrößerten Bereich nach rechts verschieben +MoveZoomUp=none,none,Vergrößerten Bereich nach oben verschieben +Setup Window Shortcut=none,none,Kurzbefehl für Fenster einrichten +Show Desktop=none,Meta+D,Show Desktop +ShowDesktopGrid=Ctrl+F8,Ctrl+F8,Arbeitsflächen-Raster anzeigen +ShowMultitasking=none,Meta+S,Show Multitasking View +Suspend Compositing=none,Alt+Shift+F12,Compositing aussetzen +Switch One Desktop Down=none,Meta+Ctrl+Down,Eine Arbeitsfläche nach unten +Switch One Desktop Up=none,Meta+Ctrl+Up,Eine Arbeitsfläche nach oben +Switch One Desktop to the Left=none,Meta+Ctrl+Left,Eine Arbeitsfläche nach links +Switch One Desktop to the Right=none,Meta+Ctrl+Right,Eine Arbeitsfläche nach rechts +Switch Window Down=none,Meta+Alt+Down,Zum Fenster darunter wechseln +Switch Window Left=none,Meta+Alt+Left,Zum Fenster links wechseln +Switch Window Right=none,Meta+Alt+Right,Zum Fenster rechts wechseln +Switch Window Up=none,Meta+Alt+Up,Zum Fenster darüber wechseln +Switch to Desktop 1=none,Ctrl+F1,Auf Arbeitsfläche 1 umschalten +Switch to Desktop 2=none,Ctrl+F2,Auf Arbeitsfläche 2 umschalten +Switch to Desktop 3=none,Ctrl+F3,Auf Arbeitsfläche 3 umschalten +Switch to Desktop 4=none,Ctrl+F4,Auf Arbeitsfläche 4 umschalten +Switch to Desktop 5=none,none,Auf Arbeitsfläche 5 umschalten +Switch to Desktop 6=none,none,Auf Arbeitsfläche 6 umschalten +Switch to Next Desktop=none,none,Zur nächsten Arbeitsfläche umschalten +Switch to Next Screen=none,none,Zum nächsten Bildschirm wechseln +Switch to Previous Desktop=none,none,Zur vorherigen Arbeitsfläche umschalten +Switch to Previous Screen=none,none,Zum vorherigen Bildschirm wechseln +Switch to Screen 0=none,none,Zum Bildschirm 0 wechseln +Switch to Screen 1=none,none,Zum Bildschirm 1 wechseln +Switch to Screen 2=none,none,Zum Bildschirm 2 wechseln +Switch to Screen 3=none,none,Zum Bildschirm 3 wechseln +Switch to Screen 4=none,none,Zum Bildschirm 4 wechseln +Switch to Screen 5=none,none,Zum Bildschirm 5 wechseln +Switch to Screen 6=none,none,Zum Bildschirm 6 wechseln +Switch to Screen 7=none,none,Zum Bildschirm 7 wechseln +Toggle Night Color=none,none,Nachtfarben umschalten +Toggle Window Raise/Lower=none,none,Fenster nach vorne/hinten +Walk Through Desktop List=none,none,Nächster Eintrag in Arbeitsflächenliste +Walk Through Desktop List (Reverse)=none,none,Nächster Eintrag in Arbeitsflächenliste (Gegenrichtung) +Walk Through Desktops=none,none,Zwischen Arbeitsflächen umschalten +Walk Through Desktops (Reverse)=none,none,Zwischen Arbeitsflächen umschalten (Gegenrichtung) +Walk Through Windows=none,Alt+Tab,Zwischen Fenstern wechseln +Walk Through Windows (Reverse)=none,Alt+Shift+Backtab,Zwischen Fenstern wechseln (Gegenrichtung) +Walk Through Windows Alternative=none,none,Alternatives Wechseln zwischen Fenstern +Walk Through Windows Alternative (Reverse)=none,none,Alternatives Wechseln zwischen Fenstern (Gegenrichtung) +Walk Through Windows of Current Application=none,Alt+`,Zwischen Fenstern der aktuellen Anwendung wechseln +Walk Through Windows of Current Application (Reverse)=none,Alt+~,Zwischen Fenstern der aktuellen Anwendung wechseln (Gegenrichtung) +Walk Through Windows of Current Application Alternative=none,none,Alternatives Wechseln zwischen Fenstern der aktuellen Anwendung +Walk Through Windows of Current Application Alternative (Reverse)=none,none,Alternatives Wechseln zwischen Fenstern der aktuellen Anwendung (Gegenrichtung) +Window Above Other Windows=none,none,Fenster im Vordergrund halten +Window Absolute Maximize=none,none,Window Absolute Maximize +Window Below Other Windows=none,none,Fenster im Hintergrund halten +Window Close=none,Alt+F4,Fenster schließen +Window Fullscreen=none,none,Fenster auf Vollbildgröße +Window Grow Horizontal=none,none,Fenster waagerecht maximieren +Window Grow Vertical=none,none,Fenster senkrecht maximieren +Window Lower=none,none,Fenster nach hinten +Window Maximize=none,Meta+PgUp,Fenster maximieren +Window Maximize Horizontal=none,none,Fenster waagerecht maximieren +Window Maximize Vertical=none,none,Fenster senkrecht maximieren +Window Minimize=none,Meta+PgDown,Fenster minimieren +Window Move=none,none,Fenster verschieben +Window Move Center=none,none,Fenster zentrieren +Window No Border=none,none,Hide Window Border +Window On All Desktops=none,none,Fenster auf allen Arbeitsflächen anzeigen +Window One Desktop Down=none,Meta+Ctrl+Shift+Down,Fenster eine Arbeitsfläche nach unten +Window One Desktop Up=none,Meta+Ctrl+Shift+Up,Fenster eine Arbeitsfläche nach oben +Window One Desktop to the Left=none,Meta+Ctrl+Shift+Left,Fenster eine Arbeitsfläche nach links +Window One Desktop to the Right=none,Meta+Ctrl+Shift+Right,Fenster eine Arbeitsfläche nach rechts +Window Operations Menu=none,Alt+F3,Fensteraktionen-Menü +Window Pack Down=none,none,Fenster nach unten verschieben +Window Pack Left=none,none,Fenster nach links verschieben +Window Pack Right=none,none,Fenster nach rechts verschieben +Window Pack Up=none,none,Fenster nach oben verschieben +Window Quick Tile Bottom=none,none,Fenster am unteren Bildschirmrand anordnen +Window Quick Tile Bottom Left=none,none,Fenster am linken unteren Bildschirmrand anordnen +Window Quick Tile Bottom Right=none,none,Fenster am rechten unteren Bildschirmrand anordnen +Window Quick Tile Left=none,Meta+Left,Fenster am linken Bildschirmrand anordnen +Window Quick Tile Right=none,Meta+Right,Fenster am rechten Bildschirmrand anordnen +Window Quick Tile Top=none,none,Fenster am oberen Bildschirmrand anordnen +Window Quick Tile Top Left=none,none,Fenster am linken oberen Bildschirmrand anordnen +Window Quick Tile Top Right=none,none,Fenster am rechten oberen Bildschirmrand anordnen +Window Raise=none,none,Fenster nach vorne +Window Resize=none,none,Fenstergröße ändern +Window Shade=none,none,Fensterheber betätigen +Window Shrink Horizontal=none,none,Fenster waagerecht verkleinern +Window Shrink Vertical=none,none,Fenster senkrecht verkleinern +Window Unmaximize=none,none,Window Unmaximize +Window to Desktop 1=none,none,Fenster auf Arbeitsfläche 1 +Window to Desktop 2=none,none,Fenster auf Arbeitsfläche 2 +Window to Desktop 3=none,none,Fenster auf Arbeitsfläche 3 +Window to Desktop 4=none,none,Fenster auf Arbeitsfläche 4 +Window to Desktop 5=none,none,Fenster auf Arbeitsfläche 5 +Window to Desktop 6=none,none,Fenster auf Arbeitsfläche 6 +Window to Next Desktop=none,none,Fenster auf nächste Arbeitsfläche verschieben +Window to Next Screen=none,Meta+Shift+Right,Fenster auf nächsten Bildschirm verschieben +Window to Previous Desktop=none,none,Fenster auf vorherige Arbeitsfläche verschieben +Window to Previous Screen=none,Meta+Shift+Left,Fenster auf vorherigen Bildschirm verschieben +Window to Screen 0=none,none,Fenster auf Bildschirm 0 +Window to Screen 1=none,none,Fenster auf Bildschirm 1 +Window to Screen 2=none,none,Fenster auf Bildschirm 2 +Window to Screen 3=none,none,Fenster auf Bildschirm 3 +Window to Screen 4=none,none,Fenster auf Bildschirm 4 +Window to Screen 5=none,none,Fenster auf Bildschirm 5 +Window to Screen 6=none,none,Fenster auf Bildschirm 6 +Window to Screen 7=none,none,Fenster auf Bildschirm 7 +_k_friendly_name=KWin +view_actual_size=none,Meta+0,Auf Originalgröße zoomen +view_zoom_in=none,Meta+=,Vergrößern +view_zoom_out=none,Meta+-,Verkleinern + +[kaccess] +Toggle Screen Reader On and Off=Meta+Alt+S,Meta+Alt+S,Screenreader ein-/ausschalten +_k_friendly_name=Zugangshilfen + +[khotkeys] +_k_friendly_name=Dienst für eigene Kurzbefehle +{d03619b6-9b3c-48cc-9d9c-a2aadb485550}=none,none,Suchen + +[klipper] +_k_friendly_name=Klipper +clear-history=none,none,Bisherigen Inhalt der Zwischenablage löschen +clipboard_action=none,Meta+Ctrl+X,Automatisches Aufklappmenü für Aktionen +cycleNextAction=none,none,Nächstes Element im Verlauf +cyclePrevAction=none,none,Vorheriges Element im Verlauf +edit_clipboard=none,none,Inhalt bearbeiten ... +repeat_action=none,Meta+Ctrl+R,Aktionen der aktuellen Zwischenablage manuell aufrufen +show-barcode=none,none,Strichcode anzeigen ... +show-on-mouse-pos=none,Meta+V,Elemente an Mausposition anzeigen + +[kmix] +_k_friendly_name=Lautstärke +decrease_microphone_volume=Microphone Volume Down,Microphone Volume Down,Mikrofonlautstärke verringern +decrease_volume=Volume Down,Volume Down,Lautstärke verringern +decrease_volume_small=Shift+Volume Down,Shift+Volume Down,Lautstärke um 1 % verringern +increase_microphone_volume=Microphone Volume Up,Microphone Volume Up,Mikrofonlautstärke erhöhen +increase_volume=Volume Up,Volume Up,Lautstärke erhöhen +increase_volume_small=Shift+Volume Up,Shift+Volume Up,Lautstärke um 1 % erhöhen +mic_mute=Microphone Mute\tMeta+Volume Mute,Microphone Mute\tMeta+Volume Mute,Mikrofon stummschalten +mute=Volume Mute,Volume Mute,Stummschalten +push_to_talk=none,none,Drücken zum Sprechen + +[ksmserver] +Halt Without Confirmation=none,none,Ohne Rückfrage herunterfahren +Lock Session=Screensaver\tMeta+L,Screensaver\tMeta+L,Sitzung sperren +Log Out=Ctrl+Alt+Del,Ctrl+Alt+Del,Abmeldedialog anzeigen +Log Out Without Confirmation=none,none,Ohne Rückfrage abmelden +LogOut=none,none,Abmelden +Reboot=none,none,Neu starten +Reboot Without Confirmation=none,none,Ohne Rückfrage neu starten +Shut Down=none,none,Herunterfahren +_k_friendly_name=Sitzungsverwaltung + +[kwin] +Activate Window Demanding Attention=Meta+Ctrl+A,Meta+Ctrl+A,Fenster aktivieren\\, das Aufmerksamkeit erfordert +Cycle Overview=none,none,Durch Überblick und Rasteransicht wechseln +Cycle Overview Opposite=none,none,Durch Rasteransicht und Überblick wechseln +Decrease Opacity=none,none,Die Deckkraft des aktiven Fensters um 5 % verringern +Edit Tiles=Meta+T,Meta+T,Tiling-Editor ein-/ausschalten +Expose=Ctrl+F9,Ctrl+F9\tMeta+F9,Fenster der aktuellen Arbeitsfläche anzeigen +ExposeAll=Launch (C)\tCtrl+F10,Launch (C)\tCtrl+F10\tMeta+F10,Fenster aller Arbeitsflächen anzeigen +ExposeClass=Ctrl+F7,Ctrl+F7\tMeta+F7,Fenster der Fensterklasse anzeigen +ExposeClassCurrentDesktop=none,none,Fenster der Fensterklasse auf der aktuellen Arbeitsfläche anzeigen +Grid View=Meta+G,Meta+G,Übersicht umschalten +Increase Opacity=none,none,Die Deckkraft des aktiven Fensters um 5 % erhöhen +Kill Window=Meta+Ctrl+Esc,Meta+Ctrl+Esc,Fenster beseitigen +Move Tablet to Next LogicalOutput=none,none,Tablet zur nächsten Ausgabe verschieben +Move Tablet to Next Output=none,none,Tablet zur nächsten Ausgabe verschieben +MoveMouseToCenter=Meta+F6,Meta+F6,Mauszeiger zentrieren +MoveMouseToFocus=Meta+F5,Meta+F5,Mauszeiger in den Fokus verschieben +MoveZoomDown=none,none,Vergrößerten Bereich nach unten verschieben +MoveZoomLeft=none,none,Vergrößerten Bereich nach links verschieben +MoveZoomRight=none,none,Vergrößerten Bereich nach rechts verschieben +MoveZoomUp=none,none,Vergrößerten Bereich nach oben verschieben +Overview=Meta+W,Meta+W,Übersicht umschalten +Setup Window Shortcut=none,none,Kurzbefehl für Fenster einrichten +Show Desktop=Meta+D,Meta+D,Blick auf die Arbeitsfläche +Suspend Compositing=Alt+Shift+F12,Alt+Shift+F12,Compositing aussetzen +Switch One Desktop Down=Meta+Ctrl+Down,Meta+Ctrl+Down,Eine Arbeitsfläche nach unten +Switch One Desktop Up=Meta+Ctrl+Up,Meta+Ctrl+Up,Eine Arbeitsfläche nach oben +Switch One Desktop to the Left=Meta+Ctrl+Left,Meta+Ctrl+Left,Eine Arbeitsfläche nach links +Switch One Desktop to the Right=Meta+Ctrl+Right,Meta+Ctrl+Right,Eine Arbeitsfläche nach rechts +Switch Window Down=Meta+Alt+Down,Meta+Alt+Down,Zum Fenster darunter wechseln +Switch Window Left=Meta+Alt+Left,Meta+Alt+Left,Zum Fenster links wechseln +Switch Window Right=Meta+Alt+Right,Meta+Alt+Right,Zum Fenster rechts wechseln +Switch Window Up=Meta+Alt+Up,Meta+Alt+Up,Zum Fenster darüber wechseln +Switch to Desktop 1=Ctrl+F1,Ctrl+F1\tMeta+F1,Auf Arbeitsfläche 1 umschalten +Switch to Desktop 10=none,none,Auf Arbeitsfläche 10 umschalten +Switch to Desktop 11=none,none,Auf Arbeitsfläche 11 umschalten +Switch to Desktop 12=none,none,Auf Arbeitsfläche 12 umschalten +Switch to Desktop 13=none,none,Auf Arbeitsfläche 13 umschalten +Switch to Desktop 14=none,none,Auf Arbeitsfläche 14 umschalten +Switch to Desktop 15=none,none,Auf Arbeitsfläche 15 umschalten +Switch to Desktop 16=none,none,Auf Arbeitsfläche 16 umschalten +Switch to Desktop 17=none,none,Auf Arbeitsfläche 17 umschalten +Switch to Desktop 18=none,none,Auf Arbeitsfläche 18 umschalten +Switch to Desktop 19=none,none,Auf Arbeitsfläche 19 umschalten +Switch to Desktop 2=Ctrl+F2,Ctrl+F2\tMeta+F2,Auf Arbeitsfläche 2 umschalten +Switch to Desktop 20=none,none,Auf Arbeitsfläche 20 umschalten +Switch to Desktop 21=none,none,Auf Arbeitsfläche 21 umschalten +Switch to Desktop 22=none,none,Auf Arbeitsfläche 22 umschalten +Switch to Desktop 23=none,none,Auf Arbeitsfläche 23 umschalten +Switch to Desktop 24=none,none,Auf Arbeitsfläche 24 umschalten +Switch to Desktop 25=none,none,Auf Arbeitsfläche 25 umschalten +Switch to Desktop 3=Ctrl+F3,Ctrl+F3\tMeta+F3,Auf Arbeitsfläche 3 umschalten +Switch to Desktop 4=Ctrl+F4,Ctrl+F4\tMeta+F4,Auf Arbeitsfläche 4 umschalten +Switch to Desktop 5=none,none,Auf Arbeitsfläche 5 umschalten +Switch to Desktop 6=none,none,Auf Arbeitsfläche 6 umschalten +Switch to Desktop 7=none,none,Auf Arbeitsfläche 7 umschalten +Switch to Desktop 8=none,none,Auf Arbeitsfläche 8 umschalten +Switch to Desktop 9=none,none,Auf Arbeitsfläche 9 umschalten +Switch to Next Desktop=none,none,Zur nächsten Arbeitsfläche umschalten +Switch to Next Screen=none,none,Zum nächsten Bildschirm wechseln +Switch to Previous Desktop=none,none,Zur vorherigen Arbeitsfläche umschalten +Switch to Previous Screen=none,none,Zum vorherigen Bildschirm wechseln +Switch to Screen 0=none,none,Zum Bildschirm 0 wechseln +Switch to Screen 1=none,none,Zum Bildschirm 1 wechseln +Switch to Screen 2=none,none,Zum Bildschirm 2 wechseln +Switch to Screen 3=none,none,Zum Bildschirm 3 wechseln +Switch to Screen 4=none,none,Zum Bildschirm 4 wechseln +Switch to Screen 5=none,none,Zum Bildschirm 5 wechseln +Switch to Screen 6=none,none,Zum Bildschirm 6 wechseln +Switch to Screen 7=none,none,Zum Bildschirm 7 wechseln +Switch to Screen Above=none,none,Zum Bildschirm oben wechseln +Switch to Screen Below=none,none,Zum Bildschirm unten wechseln +Switch to Screen to the Left=none,none,Zum Bildschirm links wechseln +Switch to Screen to the Right=none,none,Zum Bildschirm rechts wechseln +Toggle Night Color=none,none,Nachtlicht aussetzen/fortsetzen +Toggle Window Raise/Lower=none,none,Fenster nach vorne/hinten +Walk Through Windows=Alt+Tab,Alt+Tab\tMeta+Tab,Zwischen Fenstern wechseln +Walk Through Windows (Reverse)=Alt+Shift+Backtab,Alt+Shift+Tab\tMeta+Shift+Tab,Zwischen Fenstern wechseln (Gegenrichtung) +Walk Through Windows Alternative=none,none,Alternatives Wechseln zwischen Fenstern +Walk Through Windows Alternative (Reverse)=none,none,Alternatives Wechseln zwischen Fenstern (Gegenrichtung) +Walk Through Windows of Current Application=Alt+`,Alt+`\tMeta+`,Zwischen Fenstern der aktuellen Anwendung wechseln +Walk Through Windows of Current Application (Reverse)=Alt+~,Alt+~\tMeta+~,Zwischen Fenstern der aktuellen Anwendung wechseln (Gegenrichtung) +Walk Through Windows of Current Application Alternative=none,none,Alternatives Wechseln zwischen Fenstern der aktuellen Anwendung +Walk Through Windows of Current Application Alternative (Reverse)=none,none,Alternatives Wechseln zwischen Fenstern der aktuellen Anwendung (Gegenrichtung) +Window Above Other Windows=none,none,Fenster im Vordergrund halten +Window Below Other Windows=none,none,Fenster im Hintergrund halten +Window Close=Alt+F4,Alt+F4,Fenster schließen +Window Custom Quick Tile Bottom=none,none,Fenster im benutzerdefinierten Raster nach unten anordnen +Window Custom Quick Tile Left=none,none,Fenster im benutzerdefinierten Raster nach links anordnen +Window Custom Quick Tile Right=none,none,Fenster im benutzerdefinierten Raster nach rechts anordnen +Window Custom Quick Tile Top=none,none,Fenster im benutzerdefinierten Raster nach oben anordnen +Window Fullscreen=none,none,Fenster auf Vollbildgröße +Window Grow Horizontal=none,none,Fenster waagerecht maximieren +Window Grow Vertical=none,none,Fenster senkrecht maximieren +Window Lower=none,none,Fenster nach hinten +Window Maximize=Meta+PgUp,Meta+PgUp,Fenster maximieren +Window Maximize Horizontal=none,none,Fenster waagerecht maximieren +Window Maximize Vertical=none,none,Fenster senkrecht maximieren +Window Minimize=Meta+PgDown,Meta+PgDown,Fenster minimieren +Window Move=none,none,Fenster verschieben +Window Move Center=none,none,Fenster zentrieren +Window No Border=none,none,Titelleiste und Rahmen des Fensters ein-/ausschalten +Window On All Desktops=none,none,Fenster auf allen Arbeitsflächen anzeigen +Window One Desktop Down=Meta+Ctrl+Shift+Down,Meta+Ctrl+Shift+Down,Fenster eine Arbeitsfläche nach unten +Window One Desktop Up=Meta+Ctrl+Shift+Up,Meta+Ctrl+Shift+Up,Fenster eine Arbeitsfläche nach oben +Window One Desktop to the Left=none,Meta+Ctrl+Shift+Left,Fenster eine Arbeitsfläche nach links +Window One Desktop to the Right=none,Meta+Ctrl+Shift+Right,Fenster eine Arbeitsfläche nach rechts +Window One Screen Down=none,none,Fenster einen Bildschirm nach unten verschieben +Window One Screen Up=none,none,Fenster einen Bildschirm nach oben verschieben +Window One Screen to the Left=none,none,Fenster einen Bildschirm nach links verschieben +Window One Screen to the Right=none,none,Fenster einen Bildschirm nach rechts verschieben +Window Operations Menu=Alt+F3,Alt+F3,Fenstermenü +Window Pack Down=none,none,Fenster nach unten verschieben +Window Pack Left=none,none,Fenster nach links verschieben +Window Pack Right=none,none,Fenster nach rechts verschieben +Window Pack Up=none,none,Fenster nach oben verschieben +Window Quick Tile Bottom=Meta+Down,Meta+Down,Fenster am unteren Bildschirmrand anordnen +Window Quick Tile Bottom Left=none,none,Fenster am linken unteren Bildschirmrand anordnen +Window Quick Tile Bottom Right=none,none,Fenster am rechten unteren Bildschirmrand anordnen +Window Quick Tile Left=Meta+Left,Meta+Left,Fenster am linken Bildschirmrand anordnen +Window Quick Tile Right=Meta+Right,Meta+Right,Fenster am rechten Bildschirmrand anordnen +Window Quick Tile Top=Meta+Up,Meta+Up,Fenster am oberen Bildschirmrand anordnen +Window Quick Tile Top Left=none,none,Fenster am linken oberen Bildschirmrand anordnen +Window Quick Tile Top Right=none,none,Fenster am rechten oberen Bildschirmrand anordnen +Window Raise=none,none,Fenster nach vorne +Window Resize=none,none,Fenstergröße ändern +Window Restore=Meta+Backspace,Meta+Backspace,Fenster wiederherstellen +Window Shade=none,none,Fensterheber betätigen +Window Shrink Horizontal=none,none,Fenster waagerecht verkleinern +Window Shrink Vertical=none,none,Fenster senkrecht verkleinern +Window to Desktop 1=none,none,Fenster auf Arbeitsfläche 1 +Window to Desktop 10=none,none,Fenster auf Arbeitsfläche 10 +Window to Desktop 11=none,none,Fenster auf Arbeitsfläche 11 +Window to Desktop 12=none,none,Fenster auf Arbeitsfläche 12 +Window to Desktop 13=none,none,Fenster auf Arbeitsfläche 13 +Window to Desktop 14=none,none,Fenster auf Arbeitsfläche 14 +Window to Desktop 15=none,none,Fenster auf Arbeitsfläche 15 +Window to Desktop 16=none,none,Fenster auf Arbeitsfläche 16 +Window to Desktop 17=none,none,Fenster auf Arbeitsfläche 17 +Window to Desktop 18=none,none,Fenster auf Arbeitsfläche 18 +Window to Desktop 19=none,none,Fenster auf Arbeitsfläche 19 +Window to Desktop 2=none,none,Fenster auf Arbeitsfläche 2 +Window to Desktop 20=none,none,Fenster auf Arbeitsfläche 20 +Window to Desktop 21=none,none,Fenster auf Arbeitsfläche 21 +Window to Desktop 22=none,none,Fenster auf Arbeitsfläche 22 +Window to Desktop 23=none,none,Fenster auf Arbeitsfläche 23 +Window to Desktop 24=none,none,Fenster auf Arbeitsfläche 24 +Window to Desktop 25=none,none,Fenster auf Arbeitsfläche 25 +Window to Desktop 3=none,none,Fenster auf Arbeitsfläche 3 +Window to Desktop 4=none,none,Fenster auf Arbeitsfläche 4 +Window to Desktop 5=none,none,Fenster auf Arbeitsfläche 5 +Window to Desktop 6=none,none,Fenster auf Arbeitsfläche 6 +Window to Desktop 7=none,none,Fenster auf Arbeitsfläche 7 +Window to Desktop 8=none,none,Fenster auf Arbeitsfläche 8 +Window to Desktop 9=none,none,Fenster auf Arbeitsfläche 9 +Window to Next Desktop=none,none,Fenster auf nächste Arbeitsfläche verschieben +Window to Next Screen=Meta+Shift+Right,Meta+Shift+Right,Fenster auf nächsten Bildschirm verschieben +Window to Previous Desktop=none,none,Fenster auf vorherige Arbeitsfläche verschieben +Window to Previous Screen=Meta+Shift+Left,Meta+Shift+Left,Fenster auf vorherigen Bildschirm verschieben +Window to Screen 0=none,none,Fenster auf Bildschirm 0 verschieben +Window to Screen 1=none,none,Fenster auf Bildschirm 1 verschieben +Window to Screen 2=none,none,Fenster auf Bildschirm 2 verschieben +Window to Screen 3=none,none,Fenster auf Bildschirm 3 verschieben +Window to Screen 4=none,none,Fenster auf Bildschirm 4 verschieben +Window to Screen 5=none,none,Fenster auf Bildschirm 5 verschieben +Window to Screen 6=none,none,Fenster auf Bildschirm 6 verschieben +Window to Screen 7=none,none,Fenster auf Bildschirm 7 verschieben +_k_friendly_name=KWin +disableInputCapture=Meta+Shift+Esc,Meta+Shift+Esc,Aktive Eingabeerfassung deaktivieren +view_actual_size=Meta+0,Meta+0,Auf Originalgröße zoomen +view_zoom_in=Meta++\tMeta+=,Meta++\tMeta+=,Vergrößern +view_zoom_out=Meta+-,Meta+-,Verkleinern + +[mediacontrol] +_k_friendly_name=Mediensteuerung +mediavolumedown=none,none,Medienwiedergabe leiser +mediavolumeup=none,none,Medienwiedergabe lauter +nextmedia=Media Next,Media Next,Nächstes Medium wiedergeben +pausemedia=Media Pause,Media Pause,Medienwiedergabe pausieren +playmedia=none,none,Medienwiedergabe starten +playpausemedia=Media Play,Media Play,Medienwiedergabe starten/pausieren +previousmedia=Media Previous,Media Previous,Vorheriges Medium wiedergeben +seekbackwardmedia=Media Rewind,Media Rewind,Medienwiedergabe 5 s zurück +seekbackwardmedialong=none,none,Medienwiedergabe 30 s zurück +seekforwardmedia=Media Fast Forward,Media Fast Forward,Medienwiedergabe 5 s vor +seekforwardmedialong=none,none,Medienwiedergabe 30 s vor +stopmedia=Media Stop,Media Stop,Medienwiedergabe anhalten + +[org.chromium.Chromium] +40D9EF9A25A0702DE1462EAF3594C581-Ctrl+Alt+D=Ctrl+Alt+D,none,Electron shortcut Ctrl+Alt+D +6BDC7FE403BD0C01E80873CD7F418EEF-Ctrl+Alt+Space=none,none,Electron shortcut Ctrl+Alt+Space +C73DD1156089FD1431EF39259EA8DFFD-=none,none,Electron shortcut\s +CB41BA6854A0E6679763C7E2D3C55437-Ctrl+D=none,none,Electron shortcut Ctrl+D +D25A8E9372C603BCD2D59A27DEDCE3AF-Ctrl+Alt+S=Ctrl+Alt+S,none,Electron shortcut Ctrl+Alt+S +_k_friendly_name=org.chromium.Chromium + +[org_kde_powerdevil] +Decrease Keyboard Brightness=Keyboard Brightness Down,Keyboard Brightness Down,Helligkeit der Tastatur-Hintergrundbeleuchtung verringern +Decrease Screen Brightness=Monitor Brightness Down,Monitor Brightness Down,Bildschirmhelligkeit verringern +Decrease Screen Brightness Small=Shift+Monitor Brightness Down,Shift+Monitor Brightness Down,Bildschirmhelligkeit um 1 % verringern +Hibernate=Hibernate,Hibernate,Ruhezustand +Increase Keyboard Brightness=Keyboard Brightness Up,Keyboard Brightness Up,Helligkeit der Tastatur-Hintergrundbeleuchtung erhöhen +Increase Screen Brightness=Monitor Brightness Up,Monitor Brightness Up,Bildschirmhelligkeit erhöhen +Increase Screen Brightness Small=Shift+Monitor Brightness Up,Shift+Monitor Brightness Up,Bildschirmhelligkeit um 1 % erhöhen +PowerDown=Power Down,Power Down,Ausschalten +PowerOff=Power Off,Power Off,Ausschalten +Sleep=Sleep,Sleep,Standby-Modus +Toggle Keyboard Backlight=Keyboard Light On/Off,Keyboard Light On/Off,Hintergrundbeleuchtung der Tastatur umschalten +Turn Off Screen=none,none,Bildschirm ausschalten +_k_friendly_name=Energieverwaltung +powerProfile=Battery\tMeta+B,Battery\tMeta+B,Energieprofil wechseln + +[plasmashell] +Slideshow Wallpaper Next Image=none,none,Nächstes Hintergrundbild +_k_friendly_name=plasmashell +activate application launcher=Meta,Meta\tAlt+F1,Anwendungsstarter aktivieren +activate task manager entry 1=Meta+1,Meta+1,Fensterleisteneintrag 1 aktivieren +activate task manager entry 10=none,none,Fensterleisteneintrag 10 aktivieren +activate task manager entry 2=Meta+2,Meta+2,Fensterleisteneintrag 2 aktivieren +activate task manager entry 3=Meta+3,Meta+3,Fensterleisteneintrag 3 aktivieren +activate task manager entry 4=Meta+4,Meta+4,Fensterleisteneintrag 4 aktivieren +activate task manager entry 5=Meta+5,Meta+5,Fensterleisteneintrag 5 aktivieren +activate task manager entry 6=Meta+6,Meta+6,Fensterleisteneintrag 6 aktivieren +activate task manager entry 7=Meta+7,Meta+7,Fensterleisteneintrag 7 aktivieren +activate task manager entry 8=Meta+8,Meta+8,Fensterleisteneintrag 8 aktivieren +activate task manager entry 9=Meta+9,Meta+9,Fensterleisteneintrag 9 aktivieren +activate widget 114=none,none,Miniprogramm Anwendungsstarter aktivieren +activate widget 139=none,none,Miniprogramm Anwendungsstarter aktivieren +activate widget 164=none,none,Miniprogramm Anwendungsstarter aktivieren +activate widget 190=none,none,Miniprogramm Anwendungsstarter aktivieren +activate widget 216=none,none,Miniprogramm Anwendungsstarter aktivieren +activate widget 241=none,none,Miniprogramm Anwendungsstarter aktivieren +activate widget 266=none,none,Miniprogramm Anwendungsstarter aktivieren +activate widget 292=none,none,Miniprogramm Anwendungsstarter aktivieren +activate widget 376=none,none,Miniprogramm Anwendungsstarter aktivieren +activate widget 401=none,none,Miniprogramm Anwendungsstarter aktivieren +activate widget 403=none,none,Miniprogramm Fensterleiste nur mit Symbolen aktivieren +activate widget 426=none,none,Miniprogramm Anwendungsstarter aktivieren +activate widget 45=none,none,Miniprogramm Anwendungsstarter aktivieren +activate widget 458=none,none,Miniprogramm Fensterleiste nur mit Symbolen aktivieren +activate widget 6=Alt+F1,none,Miniprogramm Anwendungsstarter aktivieren +activate widget 69=none,none,Miniprogramm Anwendungsstarter aktivieren +clear history=none,none,Benachrichtigungsverlauf leeren +clear-history=none,none,Verlauf der Zwischenablage leeren +clipboard_action=Meta+Ctrl+X,Meta+Ctrl+X,Automatisches Aufklappmenü für Aktionen +cycle-panels=Meta+Alt+P,Meta+Alt+P,Tastaturfokus zwischen Kontrollleisten umschalten +cycleNextAction=none,none,Nächstes Element im Verlauf +cyclePrevAction=none,none,Vorheriges Element im Verlauf +edit_clipboard=none,none,Inhalt bearbeiten … +manage activities=Meta+Q,Meta+Q,Aktivitätenwechsler anzeigen +next activity=Meta+A,none,Zwischen Aktivitäten wechseln +previous activity=Meta+Shift+A,none,Zwischen Aktivitäten wechseln (Gegenrichtung) +repeat_action=Meta+Ctrl+R,none,Aktionen der aktuellen Zwischenablage manuell aufrufen +show dashboard=Ctrl+F12,Ctrl+F12,Arbeitsfläche anzeigen +show-barcode=none,none,Strichcode anzeigen … +show-on-mouse-pos=Meta+V,Meta+V,Elemente der Zwischenablage an Mausposition anzeigen +switch to next activity=none,none,Zur nächsten Aktivität wechseln +switch to previous activity=none,none,Zur vorherigen Aktivität wechseln +toggle do not disturb=none,none,Nicht stören umschalten + +[services][com.mitchellh.ghostty.desktop] +_launch=none + +[services][net.local.firefox.desktop] +_launch=Meta+Shift+G + +[services][org.kde.spectacle.desktop] +RecordWindow=none +RectangularRegionScreenShot=Print\tMeta+Shift+Print +_launch=none + +[services][org.kde.touchpadshortcuts.desktop] +ToggleTouchpad=Touchpad Toggle\tMeta+Ctrl+Zenkaku Hankaku + +[ukui-window-switch] +_k_friendly_name=ukui-window-switch +windows previous=none,Alt+Shift+Tab, +windows switch next=none,Alt+Tab, +workspace shortcut 1=Ctrl+Alt+W,Ctrl+Alt+W, +workspace shortcut 2=none,Meta+Tab, + +[wacomtablet] +Map to fullscreen=Meta+Ctrl+F,Meta+Ctrl+F,Bildschirmfüllend abbilden +Map to screen 1=Meta+Ctrl+1,Meta+Ctrl+1,Auf Bildschirm 1 abbilden +Map to screen 2=Meta+Ctrl+2,Meta+Ctrl+2,Auf Bildschirm 2 abbilden +Next Profile=Meta+Ctrl+N,Meta+Ctrl+N,Nächstes Profil +Previous Profile=Meta+Ctrl+P,Meta+Ctrl+P,Vorheriges Profil +Toggle screen map selection=Meta+Ctrl+M,Meta+Ctrl+M,Zwischen allen Bildschirmen umschalten +Toggle stylus mode=Meta+Ctrl+S,Meta+Ctrl+S,Funktionsweise des Stift-Werkzeugs zwischen relativ/absolut umschalten +Toggle touch tool=Meta+Ctrl+T,Meta+Ctrl+T,Touch-Werkzeug aktivieren/deaktivieren +_k_friendly_name=Wacom-Tablett diff --git a/.config/klipperrc b/.config/klipperrc new file mode 100644 index 0000000..be21f6a --- /dev/null +++ b/.config/klipperrc @@ -0,0 +1,3 @@ +[General] +Number of Actions=0 +Version=5.27.10 diff --git a/.config/konsolerc b/.config/konsolerc new file mode 100644 index 0000000..663f9ef --- /dev/null +++ b/.config/konsolerc @@ -0,0 +1,14 @@ +[General] +ConfigVersion=1 + +[MainWindow] +3 screens: Window-Maximized=true +4 screens: Height=524 +4 screens: Width=911 +4 screens: Window-Maximized=true +4 screens: XPosition=5130 +4 screens: YPosition=1754 +DP-1 DP-2 DP-3 HDMI-1=DP-3 + +[UiSettings] +ColorScheme= diff --git a/.config/krunnerrc b/.config/krunnerrc new file mode 100644 index 0000000..c36d549 --- /dev/null +++ b/.config/krunnerrc @@ -0,0 +1,2 @@ +[PlasmaRunnerManager] +migrated=true diff --git a/.config/kscreenlockerrc b/.config/kscreenlockerrc new file mode 100644 index 0000000..d625c36 --- /dev/null +++ b/.config/kscreenlockerrc @@ -0,0 +1,11 @@ +[$Version] +update_info=kscreenlocker.upd:0.1-autolock + +[Daemon] +LockGrace=30 +Timeout=30 + +[Greeter][Wallpaper][org.kde.image][General] +Blur=false +FillMode=2 +Image=/usr/share/wallpapers/tueit-lock.jpg diff --git a/.config/ksmserverrc b/.config/ksmserverrc new file mode 100644 index 0000000..2ed164a --- /dev/null +++ b/.config/ksmserverrc @@ -0,0 +1,5 @@ +[$Version] +update_info=ksmserver_update_loginMode_value.upd:ksmserver_update_loginMode_value_default_enum + +[General] +loginMode=emptySession diff --git a/.config/kwinrc b/.config/kwinrc new file mode 100644 index 0000000..23d89ed --- /dev/null +++ b/.config/kwinrc @@ -0,0 +1,129 @@ +[$Version] +update_info=deepin-kwin.upd:replace-scalein-with-scale,deepin-kwin.upd:port-minimizeanimation-effect-to-js,deepin-kwin.upd:port-scale-effect-to-js,deepin-kwin.upd:port-dimscreen-effect-to-js,deepin-kwin.upd:auto-bordersize,deepin-kwin.upd:animation-speed,deepin-kwin.upd:desktop-grid-click-behavior,deepin-kwin.upd:no-swap-encourage,deepin-kwin.upd:make-translucency-effect-disabled-by-default,deepin-kwin.upd:remove-flip-switch-effect,deepin-kwin.upd:remove-cover-switch-effect,deepin-kwin.upd:remove-cubeslide-effect,deepin-kwin.upd:remove-xrender-backend,deepin-kwin.upd:enable-scale-effect-by-default + +[%24Version] +update_info=kwin.upd:replace-scalein-with-scale, kwin.upd:port-minimizeanimation-effect-to-js, kwin.upd:port-scale-effect-to-js, kwin.upd:port-dimscreen-effect-to-js, kwin.upd:auto-bordersize, kwin.upd:animation-speed, kwin.upd:desktop-grid-click-behavior, kwin.upd:no-swap-encourage, kwin.upd:make-translucency-effect-disabled-by-default, kwin.upd:remove-flip-switch-effect, kwin.upd:remove-cover-switch-effect, kwin.upd:remove-cubeslide-effect, kwin.upd:remove-xrender-backend, kwin.upd:enable-scale-effect-by-default, kwin.upd:overview-group-plugin-id, kwin.upd:animation-speed-cleanup, kwin.upd:replace-cascaded-zerocornered + +[Desktops] +Id_1=aa936320-5382-4ef8-a72a-955ac8ba9852 +Number=1 +Rows=1 + +[Effect-Blur] +BlurStrength=10 +NoiseStrength=0 + +[Effect-diminactive] +DimFullScreen=false + +[NightColor] +Active=true +NightTemperature=3300 + +[Plugins] +diminactiveEnabled=true +firefox-debug-trackerEnabled=true +firefox-positioner-v2Enabled=true +magiclampEnabled=true +sheetEnabled=true +slidebackEnabled=true +squashEnabled=false +translucencyEnabled=true + +[TabBox] +ActivitiesMode=0 +DesktopMode=0 +HighlightWindows=false +LayoutName=thumbnail_grid +OrderMinimizedMode=1 +SwitchingMode=1 + +[Tiling] +tiles={layoutDirection:horizontal, tiles:[{width:0.25}, {width:0.5}, {width:0.25}]} + +[Tiling][19ce1a50-3006-52a1-84a0-fe6d91c5a3a2] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][19e8b959-5acd-5fe2-8d5e-b8e7214c9ddd] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][1a184837-61b8-5cfd-a9c2-05eb6ae2634e] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][25a689d3-f432-5e29-8990-a9b240750f21] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][2a1f23f7-790d-502e-94be-24661006ddcb] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][3b09003e-31fd-5563-a5d0-e1df30d8aa4c] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][3d17d22f-69cd-567c-929e-cde5c6265b44] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][4a080247-a3d0-56f9-ae02-67ffbd22116a] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][73e8e717-6daa-52ea-bf33-58780ec7b5f2] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][942d64fb-2d96-5ca2-bec4-71036c105d56] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][a17abf1c-055e-521a-a24a-02b173e1b770] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][aa936320-5382-4ef8-a72a-955ac8ba9852][592d0d31-ae44-4d03-9880-2174afd06e68] +padding=4 +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][aa936320-5382-4ef8-a72a-955ac8ba9852][629cbaff-2ffb-4aed-aec6-fe5e60da69e7] +padding=4 +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][aa936320-5382-4ef8-a72a-955ac8ba9852][7e6bd5bc-03e6-419c-b921-d7a203faf74e] +padding=4 +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][aa936320-5382-4ef8-a72a-955ac8ba9852][7fdaa52a-9b20-4d49-a15b-a729b00d91d1] +padding=4 +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][aa936320-5382-4ef8-a72a-955ac8ba9852][ca9d53fb-f189-46e3-b83b-437ecc6c7ec5] +padding=4 +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][c2e0b504-b4f8-5997-aae5-d7583376f0ba] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][c7be3cff-bf49-5593-8290-d669ec950203] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][da493791-2926-5b57-90da-adabcc25eb20] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][eaeb17d9-a578-52b8-a8e8-b2c01cd37ea7] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Tiling][f8cdf9db-2aad-5a4f-a51b-75962656515a] +tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} + +[Wayland] +InputMethod[$e]=/usr/share/applications/fcitx5-wayland-launcher.desktop + +[Windows] +BorderlessMaximizedWindows=false +FocusStealingPreventionLevel=1 +HideUtilityWindowsForInactive=false +HighlightWindowOnDemandAttention=true +ShadeHover=true + +[Xwayland] +Scale=1 +XwaylandEisNoPromptApps=xembedsniproxy + +[org.kde.kdecoration2] +ButtonsOnLeft=M +library=org.kde.kwin.aurorae.v2 +theme=__aurorae__svg__GruvboxAurorae diff --git a/.config/kwinrulesrc b/.config/kwinrulesrc new file mode 100644 index 0000000..264ac6f --- /dev/null +++ b/.config/kwinrulesrc @@ -0,0 +1,56 @@ +[$Version] +update_info=kwinrules.upd:replace-placement-string-to-enum,kwinrules.upd:use-virtual-desktop-ids,deepin-kwinrules.upd:replace-placement-string-to-enum,deepin-kwinrules.upd:use-virtual-desktop-ids + +[General] +count=7 +rules=MainBraveRule,secondBraveRule,ansibleBraveRule,TVBraveRule,ZoiperNoFocus,KittyFocusProtect,KeePassXCFocusProtect + +[KeePassXCFocusProtect] +Description=KeePassXC focus protection +fpplevel=4 +fpplevelrule=2 +wmclass=org.keepassxc.KeePassXC +wmclassmatch=1 + +[KittyFocusProtect] +Description=kitty focus protection +fpplevel=4 +fpplevelrule=2 +wmclass=kitty +wmclassmatch=1 + +[MainBraveRule] +Description=Brave Main +screen=0 +screenrule=2 +wmclass=brave-Main +wmclassmatch=1 + +[TVBraveRule] +Description=Brave TV +screen=3 +screenrule=2 +wmclass=brave-TV +wmclassmatch=1 + +[ZoiperNoFocus] +Description=Zoiper no focus steal +fsplevel=4 +fsplevelrule=2 +wmclass=Zoiper +wmclasscomplete=false +wmclassmatch=1 + +[ansibleBraveRule] +Description=Brave ansible +screen=1 +screenrule=2 +wmclass=brave-ansible +wmclassmatch=1 + +[secondBraveRule] +Description=Brave second +screen=2 +screenrule=2 +wmclass=brave-second +wmclassmatch=1 diff --git a/.config/nvim/autoload/plug.vim b/.config/nvim/autoload/plug.vim index ac14332..a225a6d 100644 --- a/.config/nvim/autoload/plug.vim +++ b/.config/nvim/autoload/plug.vim @@ -1,67 +1,36 @@ " vim-plug: Vim plugin manager " ============================ " -" Download plug.vim and put it in ~/.vim/autoload +" 1. Download plug.vim and put it in 'autoload' directory " +" # Vim " curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ " https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim " -" Edit your .vimrc +" # Neovim +" sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \ +" https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' " -" call plug#begin('~/.vim/plugged') +" 2. Add a vim-plug section to your ~/.vimrc (or ~/.config/nvim/init.vim for Neovim) " -" " Make sure you use single quotes +" call plug#begin() " -" " Shorthand notation; fetches https://github.com/junegunn/vim-easy-align -" Plug 'junegunn/vim-easy-align' +" " List your plugins here +" Plug 'tpope/vim-sensible' " -" " Any valid git URL is allowed -" Plug 'https://github.com/junegunn/vim-github-dashboard.git' -" -" " Multiple Plug commands can be written in a single line using | separators -" Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' -" -" " On-demand loading -" Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } -" Plug 'tpope/vim-fireplace', { 'for': 'clojure' } -" -" " Using a non-master branch -" Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' } -" -" " Using a tagged release; wildcard allowed (requires git 1.9.2 or above) -" Plug 'fatih/vim-go', { 'tag': '*' } -" -" " Plugin options -" Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' } -" -" " Plugin outside ~/.vim/plugged with post-update hook -" Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } -" -" " Unmanaged plugin (manually installed and updated) -" Plug '~/my-prototype-plugin' -" -" " Initialize plugin system " call plug#end() " -" Then reload .vimrc and :PlugInstall to install plugins. +" 3. Reload the file or restart Vim, then you can, " -" Plug options: +" :PlugInstall to install plugins +" :PlugUpdate to update plugins +" :PlugDiff to review the changes from the last update +" :PlugClean to remove plugins no longer in the list " -"| Option | Description | -"| ----------------------- | ------------------------------------------------ | -"| `branch`/`tag`/`commit` | Branch/tag/commit of the repository to use | -"| `rtp` | Subdirectory that contains Vim plugin | -"| `dir` | Custom directory for the plugin | -"| `as` | Use different name for the plugin | -"| `do` | Post-update hook (string or funcref) | -"| `on` | On-demand loading: Commands or ``-mappings | -"| `for` | On-demand loading: File types | -"| `frozen` | Do not update unless explicitly specified | -" -" More information: https://github.com/junegunn/vim-plug +" For more information, see https://github.com/junegunn/vim-plug " " -" Copyright (c) 2017 Junegunn Choi +" Copyright (c) 2024 Junegunn Choi " " MIT License " @@ -106,7 +75,7 @@ if s:is_win && &shellslash else let s:me = resolve(expand(':p')) endif -let s:base_spec = { 'branch': 'master', 'frozen': 0 } +let s:base_spec = { 'branch': '', 'frozen': 0 } let s:TYPE = { \ 'string': type(''), \ 'list': type([]), @@ -116,6 +85,94 @@ let s:TYPE = { let s:loaded = get(s:, 'loaded', {}) let s:triggers = get(s:, 'triggers', {}) +function! s:is_powershell(shell) + return a:shell =~# 'powershell\(\.exe\)\?$' || a:shell =~# 'pwsh\(\.exe\)\?$' +endfunction + +function! s:isabsolute(dir) abort + return a:dir =~# '^/' || (has('win32') && a:dir =~? '^\%(\\\|[A-Z]:\)') +endfunction + +function! s:git_dir(dir) abort + let gitdir = s:trim(a:dir) . '/.git' + if isdirectory(gitdir) + return gitdir + endif + if !filereadable(gitdir) + return '' + endif + let gitdir = matchstr(get(readfile(gitdir), 0, ''), '^gitdir: \zs.*') + if len(gitdir) && !s:isabsolute(gitdir) + let gitdir = a:dir . '/' . gitdir + endif + return isdirectory(gitdir) ? gitdir : '' +endfunction + +function! s:git_origin_url(dir) abort + let gitdir = s:git_dir(a:dir) + let config = gitdir . '/config' + if empty(gitdir) || !filereadable(config) + return '' + endif + return matchstr(join(readfile(config)), '\[remote "origin"\].\{-}url\s*=\s*\zs\S*\ze') +endfunction + +function! s:git_revision(dir) abort + let gitdir = s:git_dir(a:dir) + let head = gitdir . '/HEAD' + if empty(gitdir) || !filereadable(head) + return '' + endif + + let line = get(readfile(head), 0, '') + let ref = matchstr(line, '^ref: \zs.*') + if empty(ref) + return line + endif + + if filereadable(gitdir . '/' . ref) + return get(readfile(gitdir . '/' . ref), 0, '') + endif + + if filereadable(gitdir . '/packed-refs') + for line in readfile(gitdir . '/packed-refs') + if line =~# ' ' . ref + return matchstr(line, '^[0-9a-f]*') + endif + endfor + endif + + return '' +endfunction + +function! s:git_local_branch(dir) abort + let gitdir = s:git_dir(a:dir) + let head = gitdir . '/HEAD' + if empty(gitdir) || !filereadable(head) + return '' + endif + let branch = matchstr(get(readfile(head), 0, ''), '^ref: refs/heads/\zs.*') + return len(branch) ? branch : 'HEAD' +endfunction + +function! s:git_origin_branch(spec) + if len(a:spec.branch) + return a:spec.branch + endif + + " The file may not be present if this is a local repository + let gitdir = s:git_dir(a:spec.dir) + let origin_head = gitdir.'/refs/remotes/origin/HEAD' + if len(gitdir) && filereadable(origin_head) + return matchstr(get(readfile(origin_head), 0, ''), + \ '^ref: refs/remotes/origin/\zs.*') + endif + + " The command may not return the name of a branch in detached HEAD state + let result = s:lines(s:system('git symbolic-ref --short HEAD', a:spec.dir)) + return v:shell_error ? '' : result[-1] +endfunction + if s:is_win function! s:plug_call(fn, ...) let shellslash = &shellslash @@ -150,10 +207,11 @@ endfunction function! plug#begin(...) if a:0 > 0 - let s:plug_home_org = a:1 let home = s:path(s:plug_fnamemodify(s:plug_expand(a:1), ':p')) elseif exists('g:plug_home') let home = s:path(g:plug_home) + elseif has('nvim') + let home = stdpath('data') . '/plugged' elseif !empty(&rtp) let home = s:path(split(&rtp, ',')[0]) . '/plugged' else @@ -179,7 +237,7 @@ function! s:define_commands() endif if has('win32') \ && &shellslash - \ && (&shell =~# 'cmd\.exe' || &shell =~# 'powershell\.exe') + \ && (&shell =~# 'cmd\(\.exe\)\?$' || s:is_powershell(&shell)) return s:err('vim-plug does not support shell, ' . &shell . ', when shellslash is set.') endif if !has('nvim') @@ -262,7 +320,7 @@ function! plug#end() endif let lod = { 'ft': {}, 'map': {}, 'cmd': {} } - if exists('g:did_load_filetypes') + if get(g:, 'did_load_filetypes', 0) filetype off endif for name in g:plugs_order @@ -301,6 +359,9 @@ function! plug#end() if !empty(types) augroup filetypedetect call s:source(s:rtp(plug), 'ftdetect/**/*.vim', 'after/ftdetect/**/*.vim') + if has('nvim-0.5.0') + call s:source(s:rtp(plug), 'ftdetect/**/*.lua', 'after/ftdetect/**/*.lua') + endif augroup END endif for type in types @@ -311,13 +372,15 @@ function! plug#end() for [cmd, names] in items(lod.cmd) execute printf( - \ 'command! -nargs=* -range -bang -complete=file %s call s:lod_cmd(%s, "", , , , %s)', - \ cmd, string(cmd), string(names)) + \ has('patch-7.4.1898') + \ ? 'command! -nargs=* -range -bang -complete=file %s call s:lod_cmd(%s, "", , , , ,%s)' + \ : 'command! -nargs=* -range -bang -complete=file %s call s:lod_cmd(%s, "", , , , %s)' + \ , cmd, string(cmd), string(names)) endfor for [map, names] in items(lod.map) for [mode, map_prefix, key_prefix] in - \ [['i', '', ''], ['n', '', ''], ['v', '', 'gv'], ['o', '', '']] + \ [['i', '', ''], ['n', '', ''], ['v', '', 'gv'], ['o', '', '']] execute printf( \ '%snoremap %s %s:call lod_map(%s, %s, %s, "%s")', \ mode, map, map_prefix, string(map), string(names), mode != 'i', key_prefix) @@ -348,6 +411,9 @@ endfunction function! s:load_plugin(spec) call s:source(s:rtp(a:spec), 'plugin/**/*.vim', 'after/plugin/**/*.vim') + if has('nvim-0.5.0') + call s:source(s:rtp(a:spec), 'plugin/**/*.lua', 'after/plugin/**/*.lua') + endif endfunction function! s:reload_plugins() @@ -372,7 +438,7 @@ endfunction function! s:git_version_requirement(...) if !exists('s:git_version') - let s:git_version = map(split(split(s:system('git --version'))[2], '\.'), 'str2nr(v:val)') + let s:git_version = map(split(split(s:system(['git', '--version']))[2], '\.'), 'str2nr(v:val)') endif return s:version_requirement(s:git_version, a:000) endfunction @@ -419,7 +485,7 @@ if s:is_win let batchfile = s:plug_tempname().'.bat' call writefile(s:wrap_cmds(a:cmd), batchfile) let cmd = plug#shellescape(batchfile, {'shell': &shell, 'script': 0}) - if &shell =~# 'powershell\.exe' + if s:is_powershell(&shell) let cmd = '& ' . cmd endif return [batchfile, cmd] @@ -565,6 +631,9 @@ function! s:lod(names, types, ...) let rtp = s:rtp(g:plugs[name]) for dir in a:types call s:source(rtp, dir.'/**/*.vim') + if has('nvim-0.5.0') " see neovim#14686 + call s:source(rtp, dir.'/**/*.lua') + endif endfor if a:0 if !s:source(rtp, a:1) && !empty(s:glob(rtp, a:2)) @@ -584,11 +653,19 @@ function! s:lod_ft(pat, names) call s:doautocmd('filetypeindent', 'FileType') endfunction -function! s:lod_cmd(cmd, bang, l1, l2, args, names) - call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) - call s:dobufread(a:names) - execute printf('%s%s%s %s', (a:l1 == a:l2 ? '' : (a:l1.','.a:l2)), a:cmd, a:bang, a:args) -endfunction +if has('patch-7.4.1898') + function! s:lod_cmd(cmd, bang, l1, l2, args, mods, names) + call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) + call s:dobufread(a:names) + execute printf('%s %s%s%s %s', a:mods, (a:l1 == a:l2 ? '' : (a:l1.','.a:l2)), a:cmd, a:bang, a:args) + endfunction +else + function! s:lod_cmd(cmd, bang, l1, l2, args, names) + call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) + call s:dobufread(a:names) + execute printf('%s%s%s %s', (a:l1 == a:l2 ? '' : (a:l1.','.a:l2)), a:cmd, a:bang, a:args) + endfunction +endif function! s:lod_map(map, names, with_prefix, prefix) call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) @@ -632,16 +709,38 @@ function! plug#(repo, ...) let g:plugs[name] = spec let s:loaded[name] = get(s:loaded, name, 0) catch - return s:err(v:exception) + return s:err(repo . ' ' . v:exception) endtry endfunction function! s:parse_options(arg) let opts = copy(s:base_spec) let type = type(a:arg) + let opt_errfmt = 'Invalid argument for "%s" option of :Plug (expected: %s)' if type == s:TYPE.string + if empty(a:arg) + throw printf(opt_errfmt, 'tag', 'string') + endif let opts.tag = a:arg elseif type == s:TYPE.dict + for opt in ['branch', 'tag', 'commit', 'rtp', 'dir', 'as'] + if has_key(a:arg, opt) + \ && (type(a:arg[opt]) != s:TYPE.string || empty(a:arg[opt])) + throw printf(opt_errfmt, opt, 'string') + endif + endfor + for opt in ['on', 'for'] + if has_key(a:arg, opt) + \ && type(a:arg[opt]) != s:TYPE.list + \ && (type(a:arg[opt]) != s:TYPE.string || empty(a:arg[opt])) + throw printf(opt_errfmt, opt, 'string or list') + endif + endfor + if has_key(a:arg, 'do') + \ && type(a:arg.do) != s:TYPE.funcref + \ && (type(a:arg.do) != s:TYPE.string || empty(a:arg.do)) + throw printf(opt_errfmt, 'do', 'string or funcref') + endif call extend(opts, a:arg) if has_key(opts, 'dir') let opts.dir = s:dirpath(s:plug_expand(opts.dir)) @@ -694,11 +793,12 @@ endfunction function! s:syntax() syntax clear syntax region plug1 start=/\%1l/ end=/\%2l/ contains=plugNumber - syntax region plug2 start=/\%2l/ end=/\%3l/ contains=plugBracket,plugX + syntax region plug2 start=/\%2l/ end=/\%3l/ contains=plugBracket,plugX,plugAbort syn match plugNumber /[0-9]\+[0-9.]*/ contained syn match plugBracket /[[\]]/ contained syn match plugX /x/ contained - syn match plugDash /^-/ + syn match plugAbort /\~/ contained + syn match plugDash /^-\{1}\ / syn match plugPlus /^+/ syn match plugStar /^*/ syn match plugMessage /\(^- \)\@<=.*/ @@ -716,11 +816,13 @@ function! s:syntax() syn match plugError /^x.*/ syn region plugDeleted start=/^\~ .*/ end=/^\ze\S/ syn match plugH2 /^.*:\n-\+$/ + syn match plugH2 /^-\{2,}/ syn keyword Function PlugInstall PlugStatus PlugUpdate PlugClean hi def link plug1 Title hi def link plug2 Repeat hi def link plugH2 Type hi def link plugX Exception + hi def link plugAbort Ignore hi def link plugBracket Structure hi def link plugNumber Number @@ -756,7 +858,7 @@ function! s:lastline(msg) endfunction function! s:new_window() - execute get(g:, 'plug_window', 'vertical topleft new') + execute get(g:, 'plug_window', '-tabnew') endfunction function! s:plug_window_exists() @@ -818,7 +920,7 @@ function! s:prepare(...) endif endfor - call s:job_abort() + call s:job_abort(0) if s:switch_in() if b:plug_preview == 1 pc @@ -828,7 +930,7 @@ function! s:prepare(...) call s:new_window() endif - nnoremap q :if b:plug_preview==1pcendifbd + nnoremap q :call close_pane() if a:0 == 0 call s:finish_bindings() endif @@ -850,6 +952,17 @@ function! s:prepare(...) endif endfunction +function! s:close_pane() + if b:plug_preview == 1 + pc + let b:plug_preview = -1 + elseif exists('s:jobs') && !empty(s:jobs) + call s:job_abort(1) + else + bd + endif +endfunction + function! s:assign_name() " Assign buffer name let prefix = '[Plugins]' @@ -864,8 +977,15 @@ endfunction function! s:chsh(swap) let prev = [&shell, &shellcmdflag, &shellredir] - if !s:is_win && a:swap - set shell=sh shellredir=>%s\ 2>&1 + if !s:is_win + set shell=sh + endif + if a:swap + if s:is_powershell(&shell) + let &shellredir = '2>&1 | Out-File -Encoding UTF8 %s' + elseif &shell =~# 'sh' || &shell =~# 'cmd\(\.exe\)\?$' + set shellredir=>%s\ 2>&1 + endif endif return prev endfunction @@ -898,10 +1018,15 @@ function! s:regress_bar() endfunction function! s:is_updated(dir) - return !empty(s:system_chomp('git log --pretty=format:"%h" "HEAD...HEAD@{1}"', a:dir)) + return !empty(s:system_chomp(['git', 'log', '--pretty=format:%h', 'HEAD...HEAD@{1}'], a:dir)) endfunction function! s:do(pull, force, todo) + if has('nvim') + " Reset &rtp to invalidate Neovim cache of loaded Lua modules + " See https://github.com/junegunn/vim-plug/pull/1157#issuecomment-1809226110 + let &rtp = &rtp + endif for [name, spec] in items(a:todo) if !isdirectory(spec.dir) continue @@ -935,6 +1060,7 @@ function! s:do(pull, force, todo) endif elseif type == s:TYPE.funcref try + call s:load_plugin(spec) let status = installed ? 'installed' : (updated ? 'updated' : 'unchanged') call spec.do({ 'name': name, 'status': status, 'force': a:force }) catch @@ -959,14 +1085,21 @@ function! s:hash_match(a, b) return stridx(a:a, a:b) == 0 || stridx(a:b, a:a) == 0 endfunction +function! s:disable_credential_helper() + return s:git_version_requirement(2) && get(g:, 'plug_disable_credential_helper', 1) +endfunction + function! s:checkout(spec) let sha = a:spec.commit - let output = s:system('git rev-parse HEAD', a:spec.dir) - if !v:shell_error && !s:hash_match(sha, s:lines(output)[0]) + let output = s:git_revision(a:spec.dir) + let error = 0 + if !empty(output) && !s:hash_match(sha, s:lines(output)[0]) + let credential_helper = s:disable_credential_helper() ? '-c credential.helper= ' : '' let output = s:system( - \ 'git fetch --depth 999999 && git checkout '.plug#shellescape(sha).' --', a:spec.dir) + \ 'git '.credential_helper.'fetch --depth 999999 && git checkout '.plug#shellescape(sha).' --', a:spec.dir) + let error = v:shell_error endif - return output + return [output, error] endfunction function! s:finish(pull) @@ -1027,7 +1160,7 @@ function! s:update_impl(pull, force, args) abort let threads = (len(args) > 0 && args[-1] =~ '^[1-9][0-9]*$') ? \ remove(args, -1) : get(g:, 'plug_threads', 16) - let managed = filter(copy(g:plugs), 's:is_managed(v:key)') + let managed = filter(deepcopy(g:plugs), 's:is_managed(v:key)') let todo = empty(args) ? filter(managed, '!v:val.frozen || !isdirectory(v:val.dir)') : \ filter(managed, 'index(args, v:key) >= 0') @@ -1079,11 +1212,17 @@ function! s:update_impl(pull, force, args) abort normal! 2G silent! redraw - let s:clone_opt = get(g:, 'plug_shallow', 1) ? - \ '--depth 1' . (s:git_version_requirement(1, 7, 10) ? ' --no-single-branch' : '') : '' + " Set remote name, overriding a possible user git config's clone.defaultRemoteName + let s:clone_opt = ['--origin', 'origin'] + if get(g:, 'plug_shallow', 1) + call extend(s:clone_opt, ['--depth', '1']) + if s:git_version_requirement(1, 7, 10) + call add(s:clone_opt, '--no-single-branch') + endif + endif if has('win32unix') || has('wsl') - let s:clone_opt .= ' -c core.eol=lf -c core.autocrlf=input' + call extend(s:clone_opt, ['-c', 'core.eol=lf', '-c', 'core.autocrlf=input']) endif let s:submodule_opt = s:git_version_requirement(2, 8) ? ' --jobs='.threads : '' @@ -1155,9 +1294,11 @@ function! s:update_finish() if !pos continue endif + let out = '' + let error = 0 if has_key(spec, 'commit') call s:log4(name, 'Checking out '.spec.commit) - let out = s:checkout(spec) + let [out, error] = s:checkout(spec) elseif has_key(spec, 'tag') let tag = spec.tag if tag =~ '\*' @@ -1170,19 +1311,16 @@ function! s:update_finish() endif call s:log4(name, 'Checking out '.tag) let out = s:system('git checkout -q '.plug#shellescape(tag).' -- 2>&1', spec.dir) - else - let branch = get(spec, 'branch', 'master') - call s:log4(name, 'Merging origin/'.s:esc(branch)) - let out = s:system('git checkout -q '.plug#shellescape(branch).' -- 2>&1' - \. (has_key(s:update.new, name) ? '' : ('&& git merge --ff-only '.plug#shellescape('origin/'.branch).' 2>&1')), spec.dir) + let error = v:shell_error endif - if !v:shell_error && filereadable(spec.dir.'/.gitmodules') && + if !error && filereadable(spec.dir.'/.gitmodules') && \ (s:update.force || has_key(s:update.new, name) || s:is_updated(spec.dir)) call s:log4(name, 'Updating submodules. This may take a while.') let out .= s:bang('git submodule update --init --recursive'.s:submodule_opt.' 2>&1', spec.dir) + let error = v:shell_error endif let msg = s:format_message(v:shell_error ? 'x': '-', name, out) - if v:shell_error + if error call add(s:update.errors, name) call s:regress_bar() silent execute pos 'd _' @@ -1206,7 +1344,12 @@ function! s:update_finish() endif endfunction -function! s:job_abort() +function! s:mark_aborted(name, message) + let attrs = { 'running': 0, 'error': 1, 'abort': 1, 'lines': [a:message] } + let s:jobs[a:name] = extend(get(s:jobs, a:name, {}), attrs) +endfunction + +function! s:job_abort(cancel) if (!s:nvim && !s:vim8) || !exists('s:jobs') return endif @@ -1220,8 +1363,18 @@ function! s:job_abort() if j.new call s:rm_rf(g:plugs[name].dir) endif + if a:cancel + call s:mark_aborted(name, 'Aborted') + endif endfor - let s:jobs = {} + + if a:cancel + for todo in values(s:update.todo) + let todo.abort = 1 + endfor + else + let s:jobs = {} + endif endfunction function! s:last_non_empty_line(lines) @@ -1235,6 +1388,16 @@ function! s:last_non_empty_line(lines) return '' endfunction +function! s:bullet_for(job, ...) + if a:job.running + return a:job.new ? '+' : '*' + endif + if get(a:job, 'abort', 0) + return '~' + endif + return a:job.error ? 'x' : get(a:000, 0, '-') +endfunction + function! s:job_out_cb(self, data) abort let self = a:self let data = remove(self.lines, -1) . a:data @@ -1243,9 +1406,10 @@ function! s:job_out_cb(self, data) abort " To reduce the number of buffer updates let self.tick = get(self, 'tick', -1) + 1 if !self.running || self.tick % len(s:jobs) == 0 - let bullet = self.running ? (self.new ? '+' : '*') : (self.error ? 'x' : '-') let result = self.error ? join(self.lines, "\n") : s:last_non_empty_line(self.lines) - call s:log(bullet, self.name, result) + if len(result) + call s:log(s:bullet_for(self), self.name, result) + endif endif endfunction @@ -1258,27 +1422,31 @@ endfunction function! s:job_cb(fn, job, ch, data) if !s:plug_window_exists() " plug window closed - return s:job_abort() + return s:job_abort(0) endif call call(a:fn, [a:job, a:data]) endfunction function! s:nvim_cb(job_id, data, event) dict abort - return a:event == 'stdout' ? + return (a:event == 'stdout' || a:event == 'stderr') ? \ s:job_cb('s:job_out_cb', self, 0, join(a:data, "\n")) : \ s:job_cb('s:job_exit_cb', self, 0, a:data) endfunction -function! s:spawn(name, cmd, opts) - let job = { 'name': a:name, 'running': 1, 'error': 0, 'lines': [''], - \ 'new': get(a:opts, 'new', 0) } +function! s:spawn(name, spec, queue, opts) + let job = { 'name': a:name, 'spec': a:spec, 'running': 1, 'error': 0, 'lines': [''], + \ 'new': get(a:opts, 'new', 0), 'queue': copy(a:queue) } + let Item = remove(job.queue, 0) + let argv = type(Item) == s:TYPE.funcref ? call(Item, [a:spec]) : Item let s:jobs[a:name] = job - let cmd = has_key(a:opts, 'dir') ? s:with_cd(a:cmd, a:opts.dir, 0) : a:cmd - let argv = s:is_win ? ['cmd', '/s', '/c', '"'.cmd.'"'] : ['sh', '-c', cmd] if s:nvim + if has_key(a:opts, 'dir') + let job.cwd = a:opts.dir + endif call extend(job, { \ 'on_stdout': function('s:nvim_cb'), + \ 'on_stderr': function('s:nvim_cb'), \ 'on_exit': function('s:nvim_cb'), \ }) let jid = s:plug_call('jobstart', argv, job) @@ -1291,9 +1459,16 @@ function! s:spawn(name, cmd, opts) \ 'Invalid arguments (or job table is full)'] endif elseif s:vim8 + let cmd = join(map(copy(argv), 'plug#shellescape(v:val, {"script": 0})')) + if has_key(a:opts, 'dir') + let cmd = s:with_cd(cmd, a:opts.dir, 0) + endif + let argv = s:is_win ? ['cmd', '/s', '/c', '"'.cmd.'"'] : ['sh', '-c', cmd] let jid = job_start(s:is_win ? join(argv, ' ') : argv, { \ 'out_cb': function('s:job_cb', ['s:job_out_cb', job]), + \ 'err_cb': function('s:job_cb', ['s:job_out_cb', job]), \ 'exit_cb': function('s:job_cb', ['s:job_exit_cb', job]), + \ 'err_mode': 'raw', \ 'out_mode': 'raw' \}) if job_status(jid) == 'run' @@ -1304,27 +1479,33 @@ function! s:spawn(name, cmd, opts) let job.lines = ['Failed to start job'] endif else - let job.lines = s:lines(call('s:system', [cmd])) + let job.lines = s:lines(call('s:system', has_key(a:opts, 'dir') ? [argv, a:opts.dir] : [argv])) let job.error = v:shell_error != 0 let job.running = 0 endif endfunction function! s:reap(name) - let job = s:jobs[a:name] + let job = remove(s:jobs, a:name) if job.error call add(s:update.errors, a:name) elseif get(job, 'new', 0) let s:update.new[a:name] = 1 endif - let s:update.bar .= job.error ? 'x' : '=' - let bullet = job.error ? 'x' : '-' + let more = len(get(job, 'queue', [])) let result = job.error ? join(job.lines, "\n") : s:last_non_empty_line(job.lines) - call s:log(bullet, a:name, empty(result) ? 'OK' : result) - call s:bar() + if len(result) + call s:log(s:bullet_for(job), a:name, result) + endif - call remove(s:jobs, a:name) + if !job.error && more + let job.spec.queue = job.queue + let s:update.todo[a:name] = job.spec + else + let s:update.bar .= s:bullet_for(job, '=') + call s:bar() + endif endfunction function! s:bar() @@ -1377,6 +1558,16 @@ function! s:update_vim() call s:tick() endfunction +function! s:checkout_command(spec) + let a:spec.branch = s:git_origin_branch(a:spec) + return ['git', 'checkout', '-q', a:spec.branch, '--'] +endfunction + +function! s:merge_command(spec) + let a:spec.branch = s:git_origin_branch(a:spec) + return ['git', 'merge', '--ff-only', 'origin/'.a:spec.branch] +endfunction + function! s:tick() let pull = s:update.pull let prog = s:progress_opt(s:nvim || s:vim8) @@ -1391,18 +1582,39 @@ while 1 " Without TCO, Vim stack is bound to explode let name = keys(s:update.todo)[0] let spec = remove(s:update.todo, name) - let new = empty(globpath(spec.dir, '.git', 1)) + if get(spec, 'abort', 0) + call s:mark_aborted(name, 'Skipped') + call s:reap(name) + continue + endif - call s:log(new ? '+' : '*', name, pull ? 'Updating ...' : 'Installing ...') - redraw + let queue = get(spec, 'queue', []) + let new = empty(globpath(spec.dir, '.git', 1)) + + if empty(queue) + call s:log(new ? '+' : '*', name, pull ? 'Updating ...' : 'Installing ...') + redraw + endif let has_tag = has_key(spec, 'tag') - if !new + if len(queue) + call s:spawn(name, spec, queue, { 'dir': spec.dir }) + elseif !new let [error, _] = s:git_validate(spec, 0) if empty(error) if pull - let fetch_opt = (has_tag && !empty(globpath(spec.dir, '.git/shallow'))) ? '--depth 99999999' : '' - call s:spawn(name, printf('git fetch %s %s 2>&1', fetch_opt, prog), { 'dir': spec.dir }) + let cmd = s:disable_credential_helper() ? ['git', '-c', 'credential.helper=', 'fetch'] : ['git', 'fetch'] + if has_tag && !empty(globpath(spec.dir, '.git/shallow')) + call extend(cmd, ['--depth', '99999999']) + endif + if !empty(prog) + call add(cmd, prog) + endif + let queue = [cmd, split('git remote set-head origin -a')] + if !has_tag && !has_key(spec, 'commit') + call extend(queue, [function('s:checkout_command'), function('s:merge_command')]) + endif + call s:spawn(name, spec, queue, { 'dir': spec.dir }) else let s:jobs[name] = { 'running': 0, 'lines': ['Already installed'], 'error': 0 } endif @@ -1410,12 +1622,14 @@ while 1 " Without TCO, Vim stack is bound to explode let s:jobs[name] = { 'running': 0, 'lines': s:lines(error), 'error': 1 } endif else - call s:spawn(name, - \ printf('git clone %s %s %s %s 2>&1', - \ has_tag ? '' : s:clone_opt, - \ prog, - \ plug#shellescape(spec.uri, {'script': 0}), - \ plug#shellescape(s:trim(spec.dir), {'script': 0})), { 'new': 1 }) + let cmd = ['git', 'clone'] + if !has_tag + call extend(cmd, s:clone_opt) + endif + if !empty(prog) + call add(cmd, prog) + endif + call s:spawn(name, spec, [extend(cmd, [spec.uri, s:trim(spec.dir)]), function('s:checkout_command'), function('s:merge_command')], { 'new': 1 }) endif if !s:jobs[name].running @@ -1452,7 +1666,7 @@ G_NVIM = vim.eval("has('nvim')") == '1' G_PULL = vim.eval('s:update.pull') == '1' G_RETRIES = int(vim.eval('get(g:, "plug_retries", 2)')) + 1 G_TIMEOUT = int(vim.eval('get(g:, "plug_timeout", 60)')) -G_CLONE_OPT = vim.eval('s:clone_opt') +G_CLONE_OPT = ' '.join(vim.eval('s:clone_opt')) G_PROGRESS = vim.eval('s:progress_opt(1)') G_LOG_PROB = 1.0 / int(vim.eval('s:update.threads')) G_STOP = thr.Event() @@ -1989,7 +2203,7 @@ function! s:update_ruby() end } if VIM::evaluate('s:mac_gui') == 1 - clone_opt = VIM::evaluate('s:clone_opt') + clone_opt = VIM::evaluate('s:clone_opt').join(' ') progress = VIM::evaluate('s:progress_opt(1)') nthr.times do mtx.synchronize do @@ -2055,13 +2269,29 @@ function! s:shellesc_sh(arg) return "'".substitute(a:arg, "'", "'\\\\''", 'g')."'" endfunction +" Escape the shell argument based on the shell. +" Vim and Neovim's shellescape() are insufficient. +" 1. shellslash determines whether to use single/double quotes. +" Double-quote escaping is fragile for cmd.exe. +" 2. It does not work for powershell. +" 3. It does not work for *sh shells if the command is executed +" via cmd.exe (ie. cmd.exe /c sh -c command command_args) +" 4. It does not support batchfile syntax. +" +" Accepts an optional dictionary with the following keys: +" - shell: same as Vim/Neovim 'shell' option. +" If unset, fallback to 'cmd.exe' on Windows or 'sh'. +" - script: If truthy and shell is cmd.exe, escape for batchfile syntax. function! plug#shellescape(arg, ...) + if a:arg =~# '^[A-Za-z0-9_/:.-]\+$' + return a:arg + endif let opts = a:0 > 0 && type(a:1) == s:TYPE.dict ? a:1 : {} let shell = get(opts, 'shell', s:is_win ? 'cmd.exe' : 'sh') let script = get(opts, 'script', 1) - if shell =~# 'cmd\.exe' + if shell =~# 'cmd\(\.exe\)\?$' return s:shellesc_cmd(a:arg, script) - elseif shell =~# 'powershell\.exe' || shell =~# 'pwsh$' + elseif s:is_powershell(shell) return s:shellesc_ps1(a:arg) endif return s:shellesc_sh(a:arg) @@ -2098,15 +2328,34 @@ endfunction function! s:with_cd(cmd, dir, ...) let script = a:0 > 0 ? a:1 : 1 - return printf('cd%s %s && %s', s:is_win ? ' /d' : '', plug#shellescape(a:dir, {'script': script}), a:cmd) + let pwsh = s:is_powershell(&shell) + let cd = s:is_win && !pwsh ? 'cd /d' : 'cd' + let sep = pwsh ? ';' : '&&' + return printf('%s %s %s %s', cd, plug#shellescape(a:dir, {'script': script, 'shell': &shell}), sep, a:cmd) endfunction function! s:system(cmd, ...) let batchfile = '' try let [sh, shellcmdflag, shrd] = s:chsh(1) - let cmd = a:0 > 0 ? s:with_cd(a:cmd, a:1) : a:cmd - if s:is_win + if type(a:cmd) == s:TYPE.list + " Neovim's system() supports list argument to bypass the shell + " but it cannot set the working directory for the command. + " Assume that the command does not rely on the shell. + if has('nvim') && a:0 == 0 + return system(a:cmd) + endif + let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"shell": &shell, "script": 0})')) + if s:is_powershell(&shell) + let cmd = '& ' . cmd + endif + else + let cmd = a:cmd + endif + if a:0 > 0 + let cmd = s:with_cd(cmd, a:1, type(a:cmd) != s:TYPE.list) + endif + if s:is_win && type(a:cmd) != s:TYPE.list let [batchfile, cmd] = s:batchfile(cmd) endif return system(cmd) @@ -2126,18 +2375,17 @@ endfunction function! s:git_validate(spec, check_branch) let err = '' if isdirectory(a:spec.dir) - let result = s:lines(s:system('git rev-parse --abbrev-ref HEAD 2>&1 && git config -f .git/config remote.origin.url', a:spec.dir)) + let result = [s:git_local_branch(a:spec.dir), s:git_origin_url(a:spec.dir)] let remote = result[-1] - if v:shell_error + if empty(remote) let err = join([remote, 'PlugClean required.'], "\n") elseif !s:compare_git_uri(remote, a:spec.uri) let err = join(['Invalid URI: '.remote, \ 'Expected: '.a:spec.uri, \ 'PlugClean required.'], "\n") elseif a:check_branch && has_key(a:spec, 'commit') - let result = s:lines(s:system('git rev-parse HEAD 2>&1', a:spec.dir)) - let sha = result[-1] - if v:shell_error + let sha = s:git_revision(a:spec.dir) + if empty(sha) let err = join(add(result, 'PlugClean required.'), "\n") elseif !s:hash_match(sha, a:spec.commit) let err = join([printf('Invalid HEAD (expected: %s, actual: %s)', @@ -2145,8 +2393,9 @@ function! s:git_validate(spec, check_branch) \ 'PlugUpdate required.'], "\n") endif elseif a:check_branch - let branch = result[0] + let current_branch = result[0] " Check tag + let origin_branch = s:git_origin_branch(a:spec) if has_key(a:spec, 'tag') let tag = s:system_chomp('git describe --exact-match --tags HEAD 2>&1', a:spec.dir) if a:spec.tag !=# tag && a:spec.tag !~ '\*' @@ -2154,25 +2403,29 @@ function! s:git_validate(spec, check_branch) \ (empty(tag) ? 'N/A' : tag), a:spec.tag) endif " Check branch - elseif a:spec.branch !=# branch + elseif origin_branch !=# current_branch let err = printf('Invalid branch: %s (expected: %s). Try PlugUpdate.', - \ branch, a:spec.branch) + \ current_branch, origin_branch) endif if empty(err) - let [ahead, behind] = split(s:lastline(s:system(printf( - \ 'git rev-list --count --left-right HEAD...origin/%s', - \ a:spec.branch), a:spec.dir)), '\t') - if !v:shell_error && ahead - if behind + let ahead_behind = split(s:lastline(s:system([ + \ 'git', 'rev-list', '--count', '--left-right', + \ printf('HEAD...origin/%s', origin_branch) + \ ], a:spec.dir)), '\t') + if v:shell_error || len(ahead_behind) != 2 + let err = "Failed to compare with the origin. The default branch might have changed.\nPlugClean required." + else + let [ahead, behind] = ahead_behind + if ahead && behind " Only mention PlugClean if diverged, otherwise it's likely to be " pushable (and probably not that messed up). let err = printf( \ "Diverged from origin/%s (%d commit(s) ahead and %d commit(s) behind!\n" - \ .'Backup local changes and run PlugClean and PlugUpdate to reinstall it.', a:spec.branch, ahead, behind) - else + \ .'Backup local changes and run PlugClean and PlugUpdate to reinstall it.', origin_branch, ahead, behind) + elseif ahead let err = printf("Ahead of origin/%s by %d commit(s).\n" \ .'Cannot update until local changes are pushed.', - \ a:spec.branch, ahead) + \ origin_branch, ahead) endif endif endif @@ -2185,7 +2438,9 @@ endfunction function! s:rm_rf(dir) if isdirectory(a:dir) - call s:system((s:is_win ? 'rmdir /S /Q ' : 'rm -rf ') . plug#shellescape(a:dir)) + return s:system(s:is_win + \ ? 'rmdir /S /Q '.plug#shellescape(a:dir) + \ : ['rm', '-rf', a:dir]) endif endfunction @@ -2199,7 +2454,7 @@ function! s:clean(force) let errs = {} let [cnt, total] = [0, len(g:plugs)] for [name, spec] in items(g:plugs) - if !s:is_managed(name) + if !s:is_managed(name) || get(spec, 'frozen', 0) call add(dirs, spec.dir) else let [err, clean] = s:git_validate(spec, 1) @@ -2267,6 +2522,7 @@ endfunction function! s:delete(range, force) let [l1, l2] = a:range let force = a:force + let err_count = 0 while l1 <= l2 let line = getline(l1) if line =~ '^- ' && isdirectory(line[2:]) @@ -2275,11 +2531,22 @@ function! s:delete(range, force) let answer = force ? 1 : s:ask('Delete '.line[2:].'?', 1) let force = force || answer > 1 if answer - call s:rm_rf(line[2:]) + let err = s:rm_rf(line[2:]) setlocal modifiable - call setline(l1, '~'.line[1:]) - let s:clean_count += 1 - call setline(4, printf('Removed %d directories.', s:clean_count)) + if empty(err) + call setline(l1, '~'.line[1:]) + let s:clean_count += 1 + else + delete _ + call append(l1 - 1, s:format_message('x', line[1:], err)) + let l2 += len(s:lines(err)) + let err_count += 1 + endif + let msg = printf('Removed %d directories.', s:clean_count) + if err_count > 0 + let msg .= printf(' Failed to remove %d directories.', err_count) + endif + call setline(4, msg) setlocal nomodifiable endif endif @@ -2294,7 +2561,7 @@ function! s:upgrade() let new = tmp . '/plug.vim' try - let out = s:system(printf('git clone --depth 1 %s %s', plug#shellescape(s:plug_src), plug#shellescape(tmp))) + let out = s:system(['git', 'clone', '--depth', '1', s:plug_src, tmp]) if v:shell_error return s:err('Error upgrading vim-plug: '. out) endif @@ -2419,26 +2686,34 @@ function! s:preview_commit() let sha = matchstr(getline('.'), '^ \X*\zs[0-9a-f]\{7,9}') if empty(sha) - return + let name = matchstr(getline('.'), '^- \zs[^:]*\ze:$') + if empty(name) + return + endif + let title = 'HEAD@{1}..' + let command = 'git diff --no-color HEAD@{1}' + else + let title = sha + let command = 'git show --no-color --pretty=medium '.sha + let name = s:find_name(line('.')) endif - let name = s:find_name(line('.')) if empty(name) || !has_key(g:plugs, name) || !isdirectory(g:plugs[name].dir) return endif - if exists('g:plug_pwindow') && !s:is_preview_window_open() - execute g:plug_pwindow - execute 'e' sha + if !s:is_preview_window_open() + execute get(g:, 'plug_pwindow', 'vertical rightbelow new') + execute 'e' title else - execute 'pedit' sha + execute 'pedit' title wincmd P endif - setlocal previewwindow filetype=git buftype=nofile nobuflisted modifiable + setlocal previewwindow filetype=git buftype=nofile bufhidden=wipe nobuflisted modifiable let batchfile = '' try let [sh, shellcmdflag, shrd] = s:chsh(1) - let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && git show --no-color --pretty=medium '.sha + let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && '.command if s:is_win let [batchfile, cmd] = s:batchfile(cmd) endif @@ -2488,18 +2763,23 @@ function! s:diff() endif call s:append_ul(2, origin ? 'Pending updates:' : 'Last update:') for [k, v] in plugs - let range = origin ? '..origin/'.v.branch : 'HEAD@{1}..' - let cmd = 'git log --graph --color=never ' - \ . (s:git_version_requirement(2, 10, 0) ? '--no-show-signature ' : '') - \ . join(map(['--pretty=format:%x01%h%x01%d%x01%s%x01%cr', range], 'plug#shellescape(v:val)')) - if has_key(v, 'rtp') - let cmd .= ' -- '.plug#shellescape(v.rtp) - endif - let diff = s:system_chomp(cmd, v.dir) - if !empty(diff) - let ref = has_key(v, 'tag') ? (' (tag: '.v.tag.')') : has_key(v, 'commit') ? (' '.v.commit) : '' - call append(5, extend(['', '- '.k.':'.ref], map(s:lines(diff), 's:format_git_log(v:val)'))) - let cnts[origin] += 1 + let branch = s:git_origin_branch(v) + if len(branch) + let range = origin ? '..origin/'.branch : 'HEAD@{1}..' + let cmd = ['git', 'log', '--graph', '--color=never'] + if s:git_version_requirement(2, 10, 0) + call add(cmd, '--no-show-signature') + endif + call extend(cmd, ['--pretty=format:%x01%h%x01%d%x01%s%x01%cr', range]) + if has_key(v, 'rtp') + call extend(cmd, ['--', v.rtp]) + endif + let diff = s:system_chomp(cmd, v.dir) + if !empty(diff) + let ref = has_key(v, 'tag') ? (' (tag: '.v.tag.')') : has_key(v, 'commit') ? (' '.v.commit) : '' + call append(5, extend(['', '- '.k.':'.ref], map(s:lines(diff), 's:format_git_log(v:val)'))) + let cnts[origin] += 1 + endif endif let bar .= '=' call s:progress_bar(2, bar, len(total)) @@ -2559,9 +2839,9 @@ function! s:snapshot(force, ...) abort 1 let anchor = line('$') - 3 let names = sort(keys(filter(copy(g:plugs), - \'has_key(v:val, "uri") && !has_key(v:val, "commit") && isdirectory(v:val.dir)'))) + \'has_key(v:val, "uri") && isdirectory(v:val.dir)'))) for name in reverse(names) - let sha = s:system_chomp('git rev-parse --short HEAD', g:plugs[name].dir) + let sha = has_key(g:plugs[name], 'commit') ? g:plugs[name].commit : s:git_revision(g:plugs[name].dir) if !empty(sha) call append(anchor, printf("silent! let g:plugs['%s'].commit = '%s'", name, sha)) redraw diff --git a/.config/nvim/autoload/plug.vim.old b/.config/nvim/autoload/plug.vim.old index 52c6b2a..2c4111b 100644 --- a/.config/nvim/autoload/plug.vim.old +++ b/.config/nvim/autoload/plug.vim.old @@ -99,7 +99,13 @@ let s:mac_gui = has('gui_macvim') && has('gui_running') let s:is_win = has('win32') let s:nvim = has('nvim-0.2') || (has('nvim') && exists('*jobwait') && !s:is_win) let s:vim8 = has('patch-8.0.0039') && exists('*job_start') -let s:me = resolve(expand(':p')) +if s:is_win && &shellslash + set noshellslash + let s:me = resolve(expand(':p')) + set shellslash +else + let s:me = resolve(expand(':p')) +endif let s:base_spec = { 'branch': 'master', 'frozen': 0 } let s:TYPE = { \ 'string': type(''), @@ -110,10 +116,42 @@ let s:TYPE = { let s:loaded = get(s:, 'loaded', {}) let s:triggers = get(s:, 'triggers', {}) +if s:is_win + function! s:plug_call(fn, ...) + let shellslash = &shellslash + try + set noshellslash + return call(a:fn, a:000) + finally + let &shellslash = shellslash + endtry + endfunction +else + function! s:plug_call(fn, ...) + return call(a:fn, a:000) + endfunction +endif + +function! s:plug_getcwd() + return s:plug_call('getcwd') +endfunction + +function! s:plug_fnamemodify(fname, mods) + return s:plug_call('fnamemodify', a:fname, a:mods) +endfunction + +function! s:plug_expand(fmt) + return s:plug_call('expand', a:fmt, 1) +endfunction + +function! s:plug_tempname() + return s:plug_call('tempname') +endfunction + function! plug#begin(...) if a:0 > 0 let s:plug_home_org = a:1 - let home = s:path(fnamemodify(expand(a:1), ':p')) + let home = s:path(s:plug_fnamemodify(s:plug_expand(a:1), ':p')) elseif exists('g:plug_home') let home = s:path(g:plug_home) elseif !empty(&rtp) @@ -121,7 +159,7 @@ function! plug#begin(...) else return s:err('Unable to determine plug home. Try calling plug#begin() with a path argument.') endif - if fnamemodify(home, ':t') ==# 'plugin' && fnamemodify(home, ':h') ==# s:first_rtp + if s:plug_fnamemodify(home, ':t') ==# 'plugin' && s:plug_fnamemodify(home, ':h') ==# s:first_rtp return s:err('Invalid plug home. '.home.' is a standard Vim runtime path and is not allowed.') endif @@ -139,6 +177,16 @@ function! s:define_commands() if !executable('git') return s:err('`git` executable not found. Most commands will not be available. To suppress this message, prepend `silent!` to `call plug#begin(...)`.') endif + if has('win32') + \ && &shellslash + \ && (&shell =~# 'cmd\.exe' || &shell =~# 'powershell\.exe') + return s:err('vim-plug does not support shell, ' . &shell . ', when shellslash is set.') + endif + if !has('nvim') + \ && (has('win32') || has('win32unix')) + \ && !has('multi_byte') + return s:err('Vim needs +multi_byte feature on Windows to run shell commands. Enable +iconv for best results.') + endif command! -nargs=* -bar -bang -complete=customlist,s:names PlugInstall call s:install(0, []) command! -nargs=* -bar -bang -complete=customlist,s:names PlugUpdate call s:update(0, []) command! -nargs=0 -bar -bang PlugClean call s:clean(0) @@ -193,9 +241,17 @@ function! s:ask_no_interrupt(...) endtry endfunction +function! s:lazy(plug, opt) + return has_key(a:plug, a:opt) && + \ (empty(s:to_a(a:plug[a:opt])) || + \ !isdirectory(a:plug.dir) || + \ len(s:glob(s:rtp(a:plug), 'plugin')) || + \ len(s:glob(s:rtp(a:plug), 'after/plugin'))) +endfunction + function! plug#end() if !exists('g:plugs') - return s:err('Call plug#begin() first') + return s:err('plug#end() called without calling plug#begin() first') endif if exists('#PlugLOD') @@ -214,7 +270,7 @@ function! plug#end() continue endif let plug = g:plugs[name] - if get(s:loaded, name, 0) || !has_key(plug, 'on') && !has_key(plug, 'for') + if get(s:loaded, name, 0) || !s:lazy(plug, 'on') && !s:lazy(plug, 'for') let s:loaded[name] = 1 continue endif @@ -326,11 +382,11 @@ function! s:progress_opt(base) \ s:git_version_requirement(1, 7, 1) ? '--progress' : '' endfunction -if s:is_win - function! s:rtp(spec) - return s:path(a:spec.dir . get(a:spec, 'rtp', '')) - endfunction +function! s:rtp(spec) + return s:path(a:spec.dir . get(a:spec, 'rtp', '')) +endfunction +if s:is_win function! s:path(path) return s:trim(substitute(a:path, '/', '\', 'g')) endfunction @@ -342,11 +398,33 @@ if s:is_win function! s:is_local_plug(repo) return a:repo =~? '^[a-z]:\|^[%~]' endfunction -else - function! s:rtp(spec) - return s:dirpath(a:spec.dir . get(a:spec, 'rtp', '')) + + " Copied from fzf + function! s:wrap_cmds(cmds) + let cmds = [ + \ '@echo off', + \ 'setlocal enabledelayedexpansion'] + \ + (type(a:cmds) == type([]) ? a:cmds : [a:cmds]) + \ + ['endlocal'] + if has('iconv') + if !exists('s:codepage') + let s:codepage = libcallnr('kernel32.dll', 'GetACP', 0) + endif + return map(cmds, printf('iconv(v:val."\r", "%s", "cp%d")', &encoding, s:codepage)) + endif + return map(cmds, 'v:val."\r"') endfunction + function! s:batchfile(cmd) + let batchfile = s:plug_tempname().'.bat' + call writefile(s:wrap_cmds(a:cmd), batchfile) + let cmd = plug#shellescape(batchfile, {'shell': &shell, 'script': 0}) + if &shell =~# 'powershell\.exe' + let cmd = '& ' . cmd + endif + return [batchfile, cmd] + endfunction +else function! s:path(path) return s:trim(a:path) endfunction @@ -426,8 +504,8 @@ endfunction function! s:dobufread(names) for name in a:names - let path = s:rtp(g:plugs[name]).'/**' - for dir in ['ftdetect', 'ftplugin'] + let path = s:rtp(g:plugs[name]) + for dir in ['ftdetect', 'ftplugin', 'after/ftdetect', 'after/ftplugin'] if len(finddir(dir, path)) if exists('#BufRead') doautocmd BufRead @@ -546,7 +624,7 @@ function! plug#(repo, ...) try let repo = s:trim(a:repo) let opts = a:0 == 1 ? s:parse_options(a:1) : s:base_spec - let name = get(opts, 'as', fnamemodify(repo, ':t:s?\.git$??')) + let name = get(opts, 'as', s:plug_fnamemodify(repo, ':t:s?\.git$??')) let spec = extend(s:infer_properties(name, repo), opts) if !has_key(g:plugs, name) call add(g:plugs_order, name) @@ -566,7 +644,7 @@ function! s:parse_options(arg) elseif type == s:TYPE.dict call extend(opts, a:arg) if has_key(opts, 'dir') - let opts.dir = s:dirpath(expand(opts.dir)) + let opts.dir = s:dirpath(s:plug_expand(opts.dir)) endif else throw 'Invalid argument type (expected: string or dictionary)' @@ -577,7 +655,7 @@ endfunction function! s:infer_properties(name, repo) let repo = a:repo if s:is_local_plug(repo) - return { 'dir': s:dirpath(expand(repo)) } + return { 'dir': s:dirpath(s:plug_expand(repo)) } else if repo =~ ':' let uri = repo @@ -730,7 +808,7 @@ function! s:finish_bindings() endfunction function! s:prepare(...) - if empty(getcwd()) + if empty(s:plug_getcwd()) throw 'Invalid current working directory. Cannot proceed.' endif @@ -763,6 +841,9 @@ function! s:prepare(...) execute 'silent! unmap ' k endfor setlocal buftype=nofile bufhidden=wipe nobuflisted nolist noswapfile nowrap cursorline modifiable nospell + if exists('+colorcolumn') + setlocal colorcolumn= + endif setf vim-plug if exists('g:syntax_on') call s:syntax() @@ -783,31 +864,28 @@ endfunction function! s:chsh(swap) let prev = [&shell, &shellcmdflag, &shellredir] - if s:is_win - set shell=cmd.exe shellcmdflag=/c shellredir=>%s\ 2>&1 - elseif a:swap + if !s:is_win && a:swap set shell=sh shellredir=>%s\ 2>&1 endif return prev endfunction function! s:bang(cmd, ...) + let batchfile = '' try let [sh, shellcmdflag, shrd] = s:chsh(a:0) " FIXME: Escaping is incomplete. We could use shellescape with eval, " but it won't work on Windows. let cmd = a:0 ? s:with_cd(a:cmd, a:1) : a:cmd if s:is_win - let batchfile = tempname().'.bat' - call writefile(["@echo off\r", cmd . "\r"], batchfile) - let cmd = batchfile + let [batchfile, cmd] = s:batchfile(cmd) endif let g:_plug_bang = (s:is_win && has('gui_running') ? 'silent ' : '').'!'.escape(cmd, '#!%') execute "normal! :execute g:_plug_bang\\" finally unlet g:_plug_bang let [&shell, &shellcmdflag, &shellredir] = [sh, shellcmdflag, shrd] - if s:is_win + if s:is_win && filereadable(batchfile) call delete(batchfile) endif endtry @@ -886,7 +964,7 @@ function! s:checkout(spec) let output = s:system('git rev-parse HEAD', a:spec.dir) if !v:shell_error && !s:hash_match(sha, s:lines(output)[0]) let output = s:system( - \ 'git fetch --depth 999999 && git checkout '.s:esc(sha).' --', a:spec.dir) + \ 'git fetch --depth 999999 && git checkout '.plug#shellescape(sha).' --', a:spec.dir) endif return output endfunction @@ -1004,10 +1082,12 @@ function! s:update_impl(pull, force, args) abort let s:clone_opt = get(g:, 'plug_shallow', 1) ? \ '--depth 1' . (s:git_version_requirement(1, 7, 10) ? ' --no-single-branch' : '') : '' - if has('win32unix') + if has('win32unix') || has('wsl') let s:clone_opt .= ' -c core.eol=lf -c core.autocrlf=input' endif + let s:submodule_opt = s:git_version_requirement(2, 8) ? ' --jobs='.threads : '' + " Python version requirement (>= 2.7) if python && !has('python3') && !ruby && !use_job && s:update.threads > 1 redir => pyv @@ -1081,7 +1161,7 @@ function! s:update_finish() elseif has_key(spec, 'tag') let tag = spec.tag if tag =~ '\*' - let tags = s:lines(s:system('git tag --list '.s:shellesc(tag).' --sort -version:refname 2>&1', spec.dir)) + let tags = s:lines(s:system('git tag --list '.plug#shellescape(tag).' --sort -version:refname 2>&1', spec.dir)) if !v:shell_error && !empty(tags) let tag = tags[0] call s:log4(name, printf('Latest tag for %s -> %s', spec.tag, tag)) @@ -1089,17 +1169,17 @@ function! s:update_finish() endif endif call s:log4(name, 'Checking out '.tag) - let out = s:system('git checkout -q '.s:esc(tag).' -- 2>&1', spec.dir) + let out = s:system('git checkout -q '.plug#shellescape(tag).' -- 2>&1', spec.dir) else - let branch = s:esc(get(spec, 'branch', 'master')) - call s:log4(name, 'Merging origin/'.branch) - let out = s:system('git checkout -q '.branch.' -- 2>&1' - \. (has_key(s:update.new, name) ? '' : ('&& git merge --ff-only origin/'.branch.' 2>&1')), spec.dir) + let branch = get(spec, 'branch', 'master') + call s:log4(name, 'Merging origin/'.s:esc(branch)) + let out = s:system('git checkout -q '.plug#shellescape(branch).' -- 2>&1' + \. (has_key(s:update.new, name) ? '' : ('&& git merge --ff-only '.plug#shellescape('origin/'.branch).' 2>&1')), spec.dir) endif if !v:shell_error && filereadable(spec.dir.'/.gitmodules') && \ (s:update.force || has_key(s:update.new, name) || s:is_updated(spec.dir)) call s:log4(name, 'Updating submodules. This may take a while.') - let out .= s:bang('git submodule update --init --recursive 2>&1', spec.dir) + let out .= s:bang('git submodule update --init --recursive'.s:submodule_opt.' 2>&1', spec.dir) endif let msg = s:format_message(v:shell_error ? 'x': '-', name, out) if v:shell_error @@ -1138,7 +1218,7 @@ function! s:job_abort() silent! call job_stop(j.jobid) endif if j.new - call s:system('rm -rf ' . s:shellesc(g:plugs[name].dir)) + call s:rm_rf(g:plugs[name].dir) endif endfor let s:jobs = {} @@ -1191,22 +1271,17 @@ endfunction function! s:spawn(name, cmd, opts) let job = { 'name': a:name, 'running': 1, 'error': 0, 'lines': [''], - \ 'batchfile': (s:is_win && (s:nvim || s:vim8)) ? tempname().'.bat' : '', \ 'new': get(a:opts, 'new', 0) } let s:jobs[a:name] = job - let cmd = has_key(a:opts, 'dir') ? s:with_cd(a:cmd, a:opts.dir) : a:cmd - if !empty(job.batchfile) - call writefile(["@echo off\r", cmd . "\r"], job.batchfile) - let cmd = job.batchfile - endif - let argv = add(s:is_win ? ['cmd', '/c'] : ['sh', '-c'], cmd) + let cmd = has_key(a:opts, 'dir') ? s:with_cd(a:cmd, a:opts.dir, 0) : a:cmd + let argv = s:is_win ? ['cmd', '/s', '/c', '"'.cmd.'"'] : ['sh', '-c', cmd] if s:nvim call extend(job, { \ 'on_stdout': function('s:nvim_cb'), \ 'on_exit': function('s:nvim_cb'), \ }) - let jid = jobstart(argv, job) + let jid = s:plug_call('jobstart', argv, job) if jid > 0 let job.jobid = jid else @@ -1249,9 +1324,6 @@ function! s:reap(name) call s:log(bullet, a:name, empty(result) ? 'OK' : result) call s:bar() - if has_key(job, 'batchfile') && !empty(job.batchfile) - call delete(job.batchfile) - endif call remove(s:jobs, a:name) endfunction @@ -1266,9 +1338,10 @@ function! s:bar() endfunction function! s:logpos(name) - for i in range(4, line('$')) + let max = line('$') + for i in range(4, max > 4 ? max : 4) if getline(i) =~# '^[-+x*] '.a:name.':' - for j in range(i + 1, line('$')) + for j in range(i + 1, max > 5 ? max : 5) if getline(j) !~ '^ ' return [i, j - 1] endif @@ -1318,7 +1391,7 @@ while 1 " Without TCO, Vim stack is bound to explode let name = keys(s:update.todo)[0] let spec = remove(s:update.todo, name) - let new = !isdirectory(spec.dir) + let new = empty(globpath(spec.dir, '.git', 1)) call s:log(new ? '+' : '*', name, pull ? 'Updating ...' : 'Installing ...') redraw @@ -1341,8 +1414,8 @@ while 1 " Without TCO, Vim stack is bound to explode \ printf('git clone %s %s %s %s 2>&1', \ has_tag ? '' : s:clone_opt, \ prog, - \ s:shellesc(spec.uri), - \ s:shellesc(s:trim(spec.dir))), { 'new': 1 }) + \ plug#shellescape(spec.uri, {'script': 0}), + \ plug#shellescape(s:trim(spec.dir), {'script': 0})), { 'new': 1 }) endif if !s:jobs[name].running @@ -1969,19 +2042,29 @@ function! s:update_ruby() EOF endfunction -function! s:shellesc_cmd(arg) - let escaped = substitute(a:arg, '[&|<>()@^]', '^&', 'g') - let escaped = substitute(escaped, '%', '%%', 'g') - let escaped = substitute(escaped, '"', '\\^&', 'g') - let escaped = substitute(escaped, '\(\\\+\)\(\\^\)', '\1\1\2', 'g') - return '^"'.substitute(escaped, '\(\\\+\)$', '\1\1', '').'^"' +function! s:shellesc_cmd(arg, script) + let escaped = substitute('"'.a:arg.'"', '[&|<>()@^!"]', '^&', 'g') + return substitute(escaped, '%', (a:script ? '%' : '^') . '&', 'g') endfunction -function! s:shellesc(arg) - if &shell =~# 'cmd.exe$' - return s:shellesc_cmd(a:arg) +function! s:shellesc_ps1(arg) + return "'".substitute(escape(a:arg, '\"'), "'", "''", 'g')."'" +endfunction + +function! s:shellesc_sh(arg) + return "'".substitute(a:arg, "'", "'\\\\''", 'g')."'" +endfunction + +function! plug#shellescape(arg, ...) + let opts = a:0 > 0 && type(a:1) == s:TYPE.dict ? a:1 : {} + let shell = get(opts, 'shell', s:is_win ? 'cmd.exe' : 'sh') + let script = get(opts, 'script', 1) + if shell =~# 'cmd\.exe' + return s:shellesc_cmd(a:arg, script) + elseif shell =~# 'powershell\.exe' || shell =~# 'pwsh$' + return s:shellesc_ps1(a:arg) endif - return shellescape(a:arg) + return s:shellesc_sh(a:arg) endfunction function! s:glob_dir(path) @@ -2013,23 +2096,23 @@ function! s:format_message(bullet, name, message) endif endfunction -function! s:with_cd(cmd, dir) - return printf('cd%s %s && %s', s:is_win ? ' /d' : '', s:shellesc(a:dir), a:cmd) +function! s:with_cd(cmd, dir, ...) + let script = a:0 > 0 ? a:1 : 1 + return printf('cd%s %s && %s', s:is_win ? ' /d' : '', plug#shellescape(a:dir, {'script': script}), a:cmd) endfunction function! s:system(cmd, ...) + let batchfile = '' try let [sh, shellcmdflag, shrd] = s:chsh(1) let cmd = a:0 > 0 ? s:with_cd(a:cmd, a:1) : a:cmd if s:is_win - let batchfile = tempname().'.bat' - call writefile(["@echo off\r", cmd . "\r"], batchfile) - let cmd = batchfile + let [batchfile, cmd] = s:batchfile(cmd) endif - return system(s:is_win ? '('.cmd.')' : cmd) + return system(cmd) finally let [&shell, &shellcmdflag, &shellredir] = [sh, shellcmdflag, shrd] - if s:is_win + if s:is_win && filereadable(batchfile) call delete(batchfile) endif endtry @@ -2102,7 +2185,7 @@ endfunction function! s:rm_rf(dir) if isdirectory(a:dir) - call s:system((s:is_win ? 'rmdir /S /Q ' : 'rm -rf ') . s:shellesc(a:dir)) + call s:system((s:is_win ? 'rmdir /S /Q ' : 'rm -rf ') . plug#shellescape(a:dir)) endif endfunction @@ -2134,7 +2217,7 @@ function! s:clean(force) let allowed = {} for dir in dirs - let allowed[s:dirpath(fnamemodify(dir, ':h:h'))] = 1 + let allowed[s:dirpath(s:plug_fnamemodify(dir, ':h:h'))] = 1 let allowed[dir] = 1 for child in s:glob_dir(dir) let allowed[child] = 1 @@ -2207,11 +2290,11 @@ endfunction function! s:upgrade() echo 'Downloading the latest version of vim-plug' redraw - let tmp = tempname() + let tmp = s:plug_tempname() let new = tmp . '/plug.vim' try - let out = s:system(printf('git clone --depth 1 %s %s', s:plug_src, tmp)) + let out = s:system(printf('git clone --depth 1 %s %s', plug#shellescape(s:plug_src), plug#shellescape(tmp))) if v:shell_error return s:err('Error upgrading vim-plug: '. out) endif @@ -2352,18 +2435,17 @@ function! s:preview_commit() wincmd P endif setlocal previewwindow filetype=git buftype=nofile nobuflisted modifiable + let batchfile = '' try let [sh, shellcmdflag, shrd] = s:chsh(1) - let cmd = 'cd '.s:shellesc(g:plugs[name].dir).' && git show --no-color --pretty=medium '.sha + let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && git show --no-color --pretty=medium '.sha if s:is_win - let batchfile = tempname().'.bat' - call writefile(["@echo off\r", cmd . "\r"], batchfile) - let cmd = batchfile + let [batchfile, cmd] = s:batchfile(cmd) endif execute 'silent %!' cmd finally let [&shell, &shellcmdflag, &shellredir] = [sh, shellcmdflag, shrd] - if s:is_win + if s:is_win && filereadable(batchfile) call delete(batchfile) endif endtry @@ -2407,7 +2489,13 @@ function! s:diff() call s:append_ul(2, origin ? 'Pending updates:' : 'Last update:') for [k, v] in plugs let range = origin ? '..origin/'.v.branch : 'HEAD@{1}..' - let diff = s:system_chomp('git log --graph --color=never '.join(map(['--pretty=format:%x01%h%x01%d%x01%s%x01%cr', range], 's:shellesc(v:val)')), v.dir) + let cmd = 'git log --graph --color=never ' + \ . (s:git_version_requirement(2, 10, 0) ? '--no-show-signature ' : '') + \ . join(map(['--pretty=format:%x01%h%x01%d%x01%s%x01%cr', range], 'plug#shellescape(v:val)')) + if has_key(v, 'rtp') + let cmd .= ' -- '.plug#shellescape(v.rtp) + endif + let diff = s:system_chomp(cmd, v.dir) if !empty(diff) let ref = has_key(v, 'tag') ? (' (tag: '.v.tag.')') : has_key(v, 'commit') ? (' '.v.commit) : '' call append(5, extend(['', '- '.k.':'.ref], map(s:lines(diff), 's:format_git_log(v:val)'))) @@ -2453,7 +2541,7 @@ function! s:revert() return endif - call s:system('git reset --hard HEAD@{1} && git checkout '.s:esc(g:plugs[name].branch).' --', g:plugs[name].dir) + call s:system('git reset --hard HEAD@{1} && git checkout '.plug#shellescape(g:plugs[name].branch).' --', g:plugs[name].dir) setlocal modifiable normal! "_dap setlocal nomodifiable @@ -2481,7 +2569,7 @@ function! s:snapshot(force, ...) abort endfor if a:0 > 0 - let fn = expand(a:1) + let fn = s:plug_expand(a:1) if filereadable(fn) && !(a:force || s:ask(a:1.' already exists. Overwrite?')) return endif @@ -2507,3 +2595,4 @@ endif let &cpo = s:cpo_save unlet s:cpo_save + diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index c7c2d4f..cee4a3f 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -1,8 +1,13 @@ +set mouse= call plug#begin('~/.config/nvim/plugged') " Plugins { - " ctrl-p is a fuzzy file finder. - Plug 'kien/ctrlp.vim' + " neo-tree is a file finder. + "Plug 'nvim-neo-tree/neo-tree.nvim' + " Requirement for neo-tree + "Plug 'nvim-lua/plenary.nvim' + "Plug 'nvim-tree/nvim-web-devicons' + "Plug 'MunifTanjim/nui.nvim' " airline is a better status line and a tab-bar for nvim. Plug 'bling/vim-airline' " gruvbox colorscheme. Seems to work the best for me. @@ -12,7 +17,18 @@ call plug#begin('~/.config/nvim/plugged') "autocompletion Plugin for Code autocomplete Plug 'zchee/deoplete-jedi' " Left side File Tree - "Plug 'scrooloose/nerdtree' + Plug 'scrooloose/nerdtree' + " Adds filetype-specific icons to NERDTree files and folders, + Plug 'ryanoasis/vim-devicons' + " Adds syntax highlighting to NERDTree based on filetype. + Plug 'tiagofumo/vim-nerdtree-syntax-highlight' + " + " fzf fuzzy finder for the current directory + Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } + " whichkey shows with space which keys you can press + Plug 'folke/which-key.nvim' + " firenvim ist ein socket um den browser editor durch nvim zu ersetzen + Plug 'glacambre/firenvim', { 'do': { _ -> firenvim#install(0) } } " install with nvim +PlugInstall +qall " update with nvim +PlugUpgrade +PlugUpdate +PlugClean +qall " you can also update it in nvim with syntax autocompletion and stuff - simply @@ -210,6 +226,12 @@ let mapleader="\" " } " Plugin Settings { + " Plug { + autocmd VimEnter * + \ if len(filter(values(g:plugs), '!isdirectory(v:val.dir)')) + \| PlugInstall --sync | q + \| endif + " } " Airline { let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#buffer_idx_mode = 1 @@ -224,14 +246,6 @@ let mapleader="\" let g:airline_right_alt_sep = '' let g:airline_theme= 'gruvbox' " } - " CtrlP { - " Open file menu - nnoremap o :CtrlP - " Open buffer menu - nnoremap b :CtrlPBuffer - " Open most recently used files - nnoremap f :CtrlPMRUFiles - " } " neomake { autocmd! BufWritePost * Neomake nnoremap l :lopen diff --git a/.config/nvim/nvimrc b/.config/nvim/nvimrc deleted file mode 100644 index 78271f0e07e577489ee10ee08f4b4280dd634a34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74 KcmZRe8UO$QN&o=> diff --git a/.config/nvim/spell/en.utf-8.add b/.config/nvim/spell/en.utf-8.add deleted file mode 100644 index ae1b13fd18107622774c7b24a665ba0d1d1e0701..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7 JcmZR80000700961 diff --git a/.config/nvim/spell/en.utf-8.add.spl b/.config/nvim/spell/en.utf-8.add.spl deleted file mode 100644 index b3e2758b04c8d0482b3f77a7ae5005cc517319a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37 kcmWIZ^erw(&B-zP&%nUI$5_gk$C$&I%2>=;%*X%-0JQ-I?EnA( diff --git a/.config/plasma-org.kde.plasma.desktop-appletsrc b/.config/plasma-org.kde.plasma.desktop-appletsrc new file mode 100644 index 0000000..8b41c3e --- /dev/null +++ b/.config/plasma-org.kde.plasma.desktop-appletsrc @@ -0,0 +1,753 @@ +[ActionPlugins][0] +MiddleButton;NoModifier=org.kde.paste +RightButton;NoModifier=org.kde.contextmenu + +[ActionPlugins][1] +RightButton;NoModifier=org.kde.contextmenu + +[Containments][287] +ItemGeometries-1024x768= +ItemGeometries-2560x1440= +ItemGeometriesHorizontal= +activityId=af3b6c4e-6eaf-4bea-857d-4860feb3cd94 +formfactor=0 +immutability=1 +lastScreen=0 +location=0 +plugin=org.kde.plasma.folder +wallpaperplugin=org.kde.image + +[Containments][287][General] +positions={"1024x768":[],"2560x1440":[]} + +[Containments][287][Wallpaper][org.kde.image][General] +Image=/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/Free-HD-Gif-Wallpapers.gif +SlidePaths=/home/templis/.local/share/wallpapers/,/usr/share/wallpapers/ + +[Containments][288] +ItemGeometries-1440x2560= +ItemGeometries-2560x1440= +ItemGeometriesHorizontal= +ItemGeometriesVertical= +activityId=af3b6c4e-6eaf-4bea-857d-4860feb3cd94 +formfactor=0 +immutability=1 +lastScreen=1 +location=0 +plugin=org.kde.plasma.folder +wallpaperplugin=org.kde.image + +[Containments][288][General] +ToolBoxButtonState=topcenter +ToolBoxButtonX=324 +positions={"1440x2560":[]} + +[Containments][288][Wallpaper][org.kde.image][General] +Image=/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/Free-HD-Gif-Wallpapers.gif +SlidePaths=/home/templis/.local/share/wallpapers/,/usr/share/wallpapers/ + +[Containments][289] +ItemGeometries-1440x2560= +ItemGeometries-2560x1440= +ItemGeometriesHorizontal= +ItemGeometriesVertical= +activityId=af3b6c4e-6eaf-4bea-857d-4860feb3cd94 +formfactor=0 +immutability=1 +lastScreen=2 +location=0 +plugin=org.kde.plasma.folder +wallpaperplugin=org.kde.image + +[Containments][289][General] +ToolBoxButtonState=topcenter +ToolBoxButtonX=529 +positions={"2560x1440":[]} + +[Containments][289][Wallpaper][org.kde.image][General] +Image=/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/Free-HD-Gif-Wallpapers.gif +SlidePaths=/home/templis/.local/share/wallpapers/,/usr/share/wallpapers/ + +[Containments][290] +ItemGeometries-1920x1080= +ItemGeometriesHorizontal= +activityId=af3b6c4e-6eaf-4bea-857d-4860feb3cd94 +formfactor=0 +immutability=1 +lastScreen=3 +location=0 +plugin=org.kde.plasma.folder +wallpaperplugin=org.kde.image + +[Containments][290][General] +ToolBoxButtonState=topcenter +ToolBoxButtonX=209 +positions={"1920x1080":[]} + +[Containments][290][Wallpaper][org.kde.image][General] +Image=/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/Free-HD-Gif-Wallpapers.gif +SlidePaths=/home/templis/.local/share/wallpapers/,/usr/share/wallpapers/ + +[Containments][291] +activityId= +formfactor=2 +immutability=1 +lastScreen=0 +location=4 +plugin=org.kde.panel +wallpaperplugin=org.kde.image + +[Containments][291][Applets][292] +immutability=1 +plugin=org.kde.plasma.kickoff + +[Containments][291][Applets][292][Configuration] +popupHeight=516 +popupWidth=691 + +[Containments][291][Applets][292][Configuration][ConfigDialog] +DialogHeight=540 +DialogWidth=720 + +[Containments][291][Applets][292][Configuration][General] +favoritesPortedToKAstats=true +icon=distributor-logo-archlinux +systemFavorites=suspend\\,hibernate\\,reboot\\,shutdown + +[Containments][291][Applets][293] +immutability=1 +plugin=org.kde.plasma.pager + +[Containments][291][Applets][294] +immutability=1 +plugin=org.kde.plasma.icontasks + +[Containments][291][Applets][294][Configuration][ConfigDialog] +DialogHeight=540 +DialogWidth=720 + +[Containments][291][Applets][294][Configuration][General] +launchers=applications:systemsettings.desktop,preferred://filemanager +showOnlyCurrentActivity=false +showOnlyCurrentDesktop=false +showOnlyCurrentScreen=true +wheelSkipMinimized=false + +[Containments][291][Applets][296] +activityId= +formfactor=2 +immutability=1 +lastScreen=0 +location=4 +plugin=org.kde.plasma.systemtray +popupHeight=438 +popupWidth=438 +wallpaperplugin=org.kde.image + +[Containments][291][Applets][296][Applets][358] +immutability=1 +plugin=org.kde.plasma.clipboard + +[Containments][291][Applets][296][Applets][359] +immutability=1 +plugin=org.kde.plasma.devicenotifier + +[Containments][291][Applets][296][Applets][360] +immutability=1 +plugin=org.kde.plasma.manage-inputmethod + +[Containments][291][Applets][296][Applets][361] +immutability=1 +plugin=org.kde.plasma.notifications + +[Containments][291][Applets][296][Applets][362] +immutability=1 +plugin=org.kde.plasma.keyboardindicator + +[Containments][291][Applets][296][Applets][363] +immutability=1 +plugin=org.kde.plasma.weather + +[Containments][291][Applets][296][Applets][364] +immutability=1 +plugin=org.kde.plasma.keyboardlayout + +[Containments][291][Applets][296][Applets][365] +immutability=1 +plugin=org.kde.plasma.volume + +[Containments][291][Applets][296][Applets][365][Configuration][General] +migrated=true + +[Containments][291][Applets][296][Applets][366] +immutability=1 +plugin=org.kde.plasma.vault + +[Containments][291][Applets][296][Applets][367] +immutability=1 +plugin=org.kde.plasma.cameraindicator + +[Containments][291][Applets][296][Applets][368] +immutability=1 +plugin=org.kde.plasma.printmanager + +[Containments][291][Applets][296][Applets][369] +immutability=1 +plugin=org.kde.kdeconnect + +[Containments][291][Applets][296][Applets][370] +immutability=1 +plugin=org.kde.kscreen + +[Containments][291][Applets][296][Applets][371] +immutability=1 +plugin=org.kde.plasma.battery + +[Containments][291][Applets][296][Applets][372] +immutability=1 +plugin=org.kde.plasma.brightness + +[Containments][291][Applets][296][Applets][374] +immutability=1 +plugin=org.kde.plasma.mediacontroller + +[Containments][291][Applets][296][Applets][446] +immutability=1 +plugin=org.kde.plasma.bluetooth + +[Containments][291][Applets][296][Applets][447] +immutability=1 +plugin=org.kde.plasma.networkmanagement + +[Containments][291][Applets][296][Applets][447][Configuration][General] +currentDetailsTab=details + +[Containments][291][Applets][296][ConfigDialog] +DialogHeight=630 +DialogWidth=810 + +[Containments][291][Applets][296][General] +extraItems=org.kde.plasma.bluetooth,org.kde.plasma.battery,org.kde.plasma.clipboard,org.kde.plasma.devicenotifier,org.kde.plasma.manage-inputmethod,org.kde.plasma.mediacontroller,org.kde.plasma.notifications,org.kde.plasma.keyboardindicator,org.kde.kscreen,org.kde.plasma.keyboardlayout,org.kde.plasma.networkmanagement,org.kde.plasma.volume,org.kde.plasma.vault,org.kde.plasma.brightness,org.kde.plasma.cameraindicator,org.kde.plasma.printmanager,org.kde.kdeconnect,org.kde.plasma.weather +knownItems=org.kde.plasma.bluetooth,org.kde.plasma.battery,org.kde.plasma.clipboard,org.kde.plasma.devicenotifier,org.kde.plasma.manage-inputmethod,org.kde.plasma.mediacontroller,org.kde.plasma.notifications,org.kde.plasma.keyboardindicator,org.kde.kscreen,org.kde.plasma.keyboardlayout,org.kde.plasma.networkmanagement,org.kde.plasma.volume,org.kde.plasma.vault,org.kde.plasma.brightness,org.kde.plasma.cameraindicator,org.kde.plasma.printmanager,org.kde.kdeconnect,org.kde.plasma.weather + +[Containments][291][Applets][307] +immutability=1 +plugin=org.kde.plasma.digitalclock + +[Containments][291][Applets][307][Configuration] +popupHeight=456 +popupWidth=810 + +[Containments][291][Applets][307][Configuration][Appearance] +enabledCalendarPlugins=holidaysevents +firstDayOfWeek=1 +fontWeight=400 +showWeekNumbers=true + +[Containments][291][Applets][307][Configuration][ConfigDialog] +DialogHeight=540 +DialogWidth=720 + +[Containments][291][Applets][464] +immutability=1 +plugin=org.kde.plasma.windowlist + +[Containments][291][Applets][464][Configuration] +popupHeight=400 +popupWidth=560 + +[Containments][291][Applets][465] +immutability=1 +plugin=org.kde.plasma.windowlist + +[Containments][291][Applets][465][Configuration] +popupHeight=400 +popupWidth=560 + +[Containments][291][General] +AppletOrder=292;293;294;465;296;307;464 + +[Containments][375] +activityId= +formfactor=2 +immutability=1 +lastScreen=2 +location=4 +plugin=org.kde.panel +wallpaperplugin=org.kde.image + +[Containments][375][Applets][376] +immutability=1 +plugin=org.kde.plasma.kickoff + +[Containments][375][Applets][376][Configuration] +popupHeight=510 +popupWidth=677 + +[Containments][375][Applets][376][Configuration][ConfigDialog] +DialogHeight=540 +DialogWidth=720 + +[Containments][375][Applets][376][Configuration][General] +favoritesPortedToKAstats=true +icon=start-here-archlinux +systemFavorites=suspend\\,hibernate\\,reboot\\,shutdown + +[Containments][375][Applets][376][Configuration][Shortcuts] +global=Alt+F1 + +[Containments][375][Applets][377] +immutability=1 +plugin=org.kde.plasma.pager + +[Containments][375][Applets][379] +immutability=1 +plugin=org.kde.plasma.marginsseparator + +[Containments][375][Applets][379][Configuration][ConfigDialog] +DialogHeight=540 +DialogWidth=720 + +[Containments][375][Applets][380] +activityId= +formfactor=2 +immutability=1 +lastScreen=2 +location=4 +plugin=org.kde.plasma.systemtray +popupHeight=432 +popupWidth=432 +wallpaperplugin=org.kde.image + +[Containments][375][Applets][380][Applets][382] +immutability=1 +plugin=org.kde.plasma.clipboard + +[Containments][375][Applets][380][Applets][383] +immutability=1 +plugin=org.kde.plasma.devicenotifier + +[Containments][375][Applets][380][Applets][384] +immutability=1 +plugin=org.kde.plasma.manage-inputmethod + +[Containments][375][Applets][380][Applets][385] +immutability=1 +plugin=org.kde.plasma.notifications + +[Containments][375][Applets][380][Applets][386] +immutability=1 +plugin=org.kde.plasma.keyboardindicator + +[Containments][375][Applets][380][Applets][387] +immutability=1 +plugin=org.kde.plasma.weather + +[Containments][375][Applets][380][Applets][388] +immutability=1 +plugin=org.kde.plasma.keyboardlayout + +[Containments][375][Applets][380][Applets][389] +immutability=1 +plugin=org.kde.plasma.volume + +[Containments][375][Applets][380][Applets][389][Configuration][General] +migrated=true + +[Containments][375][Applets][380][Applets][390] +immutability=1 +plugin=org.kde.plasma.vault + +[Containments][375][Applets][380][Applets][391] +immutability=1 +plugin=org.kde.plasma.cameraindicator + +[Containments][375][Applets][380][Applets][392] +immutability=1 +plugin=org.kde.plasma.printmanager + +[Containments][375][Applets][380][Applets][395] +immutability=1 +plugin=org.kde.kdeconnect + +[Containments][375][Applets][380][Applets][396] +immutability=1 +plugin=org.kde.kscreen + +[Containments][375][Applets][380][Applets][397] +immutability=1 +plugin=org.kde.plasma.mediacontroller + +[Containments][375][Applets][380][Applets][398] +immutability=1 +plugin=org.kde.plasma.bluetooth + +[Containments][375][Applets][380][Applets][399] +immutability=1 +plugin=org.kde.plasma.networkmanagement + +[Containments][375][Applets][380][Applets][451] +immutability=1 +plugin=org.kde.plasma.battery + +[Containments][375][Applets][380][Applets][452] +immutability=1 +plugin=org.kde.plasma.brightness + +[Containments][375][Applets][380][General] +extraItems=org.kde.plasma.bluetooth,org.kde.plasma.battery,org.kde.plasma.clipboard,org.kde.plasma.devicenotifier,org.kde.plasma.manage-inputmethod,org.kde.plasma.mediacontroller,org.kde.plasma.notifications,org.kde.plasma.keyboardindicator,org.kde.kscreen,org.kde.plasma.keyboardlayout,org.kde.plasma.networkmanagement,org.kde.plasma.volume,org.kde.plasma.vault,org.kde.plasma.brightness,org.kde.plasma.cameraindicator,org.kde.plasma.printmanager,org.kde.kdeconnect,org.kde.plasma.weather +knownItems=org.kde.plasma.bluetooth,org.kde.plasma.battery,org.kde.plasma.clipboard,org.kde.plasma.devicenotifier,org.kde.plasma.manage-inputmethod,org.kde.plasma.mediacontroller,org.kde.plasma.notifications,org.kde.plasma.keyboardindicator,org.kde.kscreen,org.kde.plasma.keyboardlayout,org.kde.plasma.networkmanagement,org.kde.plasma.volume,org.kde.plasma.vault,org.kde.plasma.brightness,org.kde.plasma.cameraindicator,org.kde.plasma.printmanager,org.kde.kdeconnect,org.kde.plasma.weather + +[Containments][375][Applets][393] +immutability=1 +plugin=org.kde.plasma.digitalclock + +[Containments][375][Applets][393][Configuration] +popupHeight=451 +popupWidth=560 + +[Containments][375][Applets][394] +immutability=1 +plugin=org.kde.plasma.showdesktop + +[Containments][375][Applets][394][Configuration][ConfigDialog] +DialogHeight=540 +DialogWidth=720 + +[Containments][375][Applets][458] +immutability=1 +plugin=org.kde.plasma.icontasks + +[Containments][375][Applets][458][Configuration] +popupHeight=400 +popupWidth=560 + +[Containments][375][Applets][458][Configuration][ConfigDialog] +DialogHeight=540 +DialogWidth=720 + +[Containments][375][Applets][458][Configuration][General] +interactiveMute=false +launchers=preferred://filemanager,preferred://browser +showOnlyCurrentScreen=true +wheelEnabled=TaskOnly + +[Containments][375][General] +AppletOrder=376;458;377;379;380;393;394 + +[Containments][400] +activityId= +formfactor=2 +immutability=1 +lastScreen=1 +location=4 +plugin=org.kde.panel +wallpaperplugin=org.kde.image + +[Containments][400][Applets][401] +immutability=1 +plugin=org.kde.plasma.kickoff + +[Containments][400][Applets][401][Configuration] +popupHeight=510 +popupWidth=677 + +[Containments][400][Applets][401][Configuration][ConfigDialog] +DialogHeight=540 +DialogWidth=720 + +[Containments][400][Applets][401][Configuration][General] +favoritesPortedToKAstats=true +icon=distributor-logo-archlinux +systemFavorites=suspend\\,hibernate\\,reboot\\,shutdown + +[Containments][400][Applets][401][Configuration][Shortcuts] +global=Alt+F1 + +[Containments][400][Applets][402] +immutability=1 +plugin=org.kde.plasma.pager + +[Containments][400][Applets][403] +immutability=1 +plugin=org.kde.plasma.icontasks + +[Containments][400][Applets][403][Configuration][ConfigDialog] +DialogHeight=540 +DialogWidth=720 + +[Containments][400][Applets][403][Configuration][General] +interactiveMute=false +launchers=preferred://filemanager +showOnlyCurrentActivity=false +showOnlyCurrentDesktop=false +showOnlyCurrentScreen=true + +[Containments][400][Applets][404] +immutability=1 +plugin=org.kde.plasma.marginsseparator + +[Containments][400][Applets][405] +activityId= +formfactor=2 +immutability=1 +lastScreen=1 +location=4 +plugin=org.kde.plasma.systemtray +popupHeight=432 +popupWidth=432 +wallpaperplugin=org.kde.image + +[Containments][400][Applets][405][Applets][407] +immutability=1 +plugin=org.kde.plasma.clipboard + +[Containments][400][Applets][405][Applets][408] +immutability=1 +plugin=org.kde.plasma.devicenotifier + +[Containments][400][Applets][405][Applets][409] +immutability=1 +plugin=org.kde.plasma.manage-inputmethod + +[Containments][400][Applets][405][Applets][410] +immutability=1 +plugin=org.kde.plasma.notifications + +[Containments][400][Applets][405][Applets][411] +immutability=1 +plugin=org.kde.plasma.keyboardindicator + +[Containments][400][Applets][405][Applets][412] +immutability=1 +plugin=org.kde.plasma.weather + +[Containments][400][Applets][405][Applets][413] +immutability=1 +plugin=org.kde.plasma.keyboardlayout + +[Containments][400][Applets][405][Applets][414] +immutability=1 +plugin=org.kde.plasma.volume + +[Containments][400][Applets][405][Applets][414][Configuration][General] +migrated=true + +[Containments][400][Applets][405][Applets][415] +immutability=1 +plugin=org.kde.plasma.vault + +[Containments][400][Applets][405][Applets][416] +immutability=1 +plugin=org.kde.plasma.cameraindicator + +[Containments][400][Applets][405][Applets][417] +immutability=1 +plugin=org.kde.plasma.printmanager + +[Containments][400][Applets][405][Applets][420] +immutability=1 +plugin=org.kde.kdeconnect + +[Containments][400][Applets][405][Applets][421] +immutability=1 +plugin=org.kde.kscreen + +[Containments][400][Applets][405][Applets][422] +immutability=1 +plugin=org.kde.plasma.mediacontroller + +[Containments][400][Applets][405][Applets][423] +immutability=1 +plugin=org.kde.plasma.bluetooth + +[Containments][400][Applets][405][Applets][424] +immutability=1 +plugin=org.kde.plasma.networkmanagement + +[Containments][400][Applets][405][Applets][450] +immutability=1 +plugin=org.kde.plasma.battery + +[Containments][400][Applets][405][Applets][451] +immutability=1 +plugin=org.kde.plasma.brightness + +[Containments][400][Applets][405][General] +extraItems=org.kde.plasma.bluetooth,org.kde.plasma.battery,org.kde.plasma.clipboard,org.kde.plasma.devicenotifier,org.kde.plasma.manage-inputmethod,org.kde.plasma.mediacontroller,org.kde.plasma.notifications,org.kde.plasma.keyboardindicator,org.kde.kscreen,org.kde.plasma.keyboardlayout,org.kde.plasma.networkmanagement,org.kde.plasma.volume,org.kde.plasma.vault,org.kde.plasma.brightness,org.kde.plasma.cameraindicator,org.kde.plasma.printmanager,org.kde.kdeconnect,org.kde.plasma.weather +knownItems=org.kde.plasma.bluetooth,org.kde.plasma.battery,org.kde.plasma.clipboard,org.kde.plasma.devicenotifier,org.kde.plasma.manage-inputmethod,org.kde.plasma.mediacontroller,org.kde.plasma.notifications,org.kde.plasma.keyboardindicator,org.kde.kscreen,org.kde.plasma.keyboardlayout,org.kde.plasma.networkmanagement,org.kde.plasma.volume,org.kde.plasma.vault,org.kde.plasma.brightness,org.kde.plasma.cameraindicator,org.kde.plasma.printmanager,org.kde.kdeconnect,org.kde.plasma.weather + +[Containments][400][Applets][418] +immutability=1 +plugin=org.kde.plasma.digitalclock + +[Containments][400][Applets][418][Configuration] +popupHeight=451 +popupWidth=560 + +[Containments][400][Applets][419] +immutability=1 +plugin=org.kde.plasma.showdesktop + +[Containments][400][General] +AppletOrder=401;402;403;404;405;418;419 + +[Containments][425] +activityId= +formfactor=2 +immutability=1 +lastScreen=3 +location=4 +plugin=org.kde.panel +wallpaperplugin=org.kde.image + +[Containments][425][Applets][426] +immutability=1 +plugin=org.kde.plasma.kickoff + +[Containments][425][Applets][426][Configuration] +popupHeight=510 +popupWidth=677 + +[Containments][425][Applets][426][Configuration][ConfigDialog] +DialogHeight=540 +DialogWidth=720 + +[Containments][425][Applets][426][Configuration][General] +favoritesPortedToKAstats=true +icon=distributor-logo-archlinux +systemFavorites=suspend\\,hibernate\\,reboot\\,shutdown + +[Containments][425][Applets][426][Configuration][Shortcuts] +global=Alt+F1 + +[Containments][425][Applets][427] +immutability=1 +plugin=org.kde.plasma.pager + +[Containments][425][Applets][428] +immutability=1 +plugin=org.kde.plasma.icontasks + +[Containments][425][Applets][428][Configuration][ConfigDialog] +DialogHeight=540 +DialogWidth=720 + +[Containments][425][Applets][428][Configuration][General] +launchers= +showOnlyCurrentActivity=false +showOnlyCurrentDesktop=false +showOnlyCurrentScreen=true + +[Containments][425][Applets][429] +immutability=1 +plugin=org.kde.plasma.marginsseparator + +[Containments][425][Applets][430] +activityId= +formfactor=2 +immutability=1 +lastScreen=3 +location=4 +plugin=org.kde.plasma.systemtray +popupHeight=432 +popupWidth=432 +wallpaperplugin=org.kde.image + +[Containments][425][Applets][430][Applets][432] +immutability=1 +plugin=org.kde.plasma.clipboard + +[Containments][425][Applets][430][Applets][433] +immutability=1 +plugin=org.kde.plasma.devicenotifier + +[Containments][425][Applets][430][Applets][434] +immutability=1 +plugin=org.kde.plasma.manage-inputmethod + +[Containments][425][Applets][430][Applets][435] +immutability=1 +plugin=org.kde.plasma.notifications + +[Containments][425][Applets][430][Applets][436] +immutability=1 +plugin=org.kde.plasma.keyboardindicator + +[Containments][425][Applets][430][Applets][437] +immutability=1 +plugin=org.kde.plasma.weather + +[Containments][425][Applets][430][Applets][438] +immutability=1 +plugin=org.kde.plasma.keyboardlayout + +[Containments][425][Applets][430][Applets][439] +immutability=1 +plugin=org.kde.plasma.volume + +[Containments][425][Applets][430][Applets][439][Configuration][General] +migrated=true + +[Containments][425][Applets][430][Applets][440] +immutability=1 +plugin=org.kde.plasma.vault + +[Containments][425][Applets][430][Applets][441] +immutability=1 +plugin=org.kde.plasma.cameraindicator + +[Containments][425][Applets][430][Applets][442] +immutability=1 +plugin=org.kde.plasma.printmanager + +[Containments][425][Applets][430][Applets][443] +immutability=1 +plugin=org.kde.kdeconnect + +[Containments][425][Applets][430][Applets][444] +immutability=1 +plugin=org.kde.kscreen + +[Containments][425][Applets][430][Applets][445] +immutability=1 +plugin=org.kde.plasma.battery + +[Containments][425][Applets][430][Applets][446] +immutability=1 +plugin=org.kde.plasma.brightness + +[Containments][425][Applets][430][Applets][447] +immutability=1 +plugin=org.kde.plasma.mediacontroller + +[Containments][425][Applets][430][Applets][448] +immutability=1 +plugin=org.kde.plasma.bluetooth + +[Containments][425][Applets][430][Applets][449] +immutability=1 +plugin=org.kde.plasma.networkmanagement + +[Containments][425][Applets][430][General] +extraItems=org.kde.plasma.bluetooth,org.kde.plasma.battery,org.kde.plasma.clipboard,org.kde.plasma.devicenotifier,org.kde.plasma.manage-inputmethod,org.kde.plasma.mediacontroller,org.kde.plasma.notifications,org.kde.plasma.keyboardindicator,org.kde.kscreen,org.kde.plasma.keyboardlayout,org.kde.plasma.networkmanagement,org.kde.plasma.volume,org.kde.plasma.vault,org.kde.plasma.brightness,org.kde.plasma.cameraindicator,org.kde.plasma.printmanager,org.kde.kdeconnect,org.kde.plasma.weather +knownItems=org.kde.plasma.bluetooth,org.kde.plasma.battery,org.kde.plasma.clipboard,org.kde.plasma.devicenotifier,org.kde.plasma.manage-inputmethod,org.kde.plasma.mediacontroller,org.kde.plasma.notifications,org.kde.plasma.keyboardindicator,org.kde.kscreen,org.kde.plasma.keyboardlayout,org.kde.plasma.networkmanagement,org.kde.plasma.volume,org.kde.plasma.vault,org.kde.plasma.brightness,org.kde.plasma.cameraindicator,org.kde.plasma.printmanager,org.kde.kdeconnect,org.kde.plasma.weather + +[Containments][425][Applets][443] +immutability=1 +plugin=org.kde.plasma.digitalclock + +[Containments][425][Applets][443][Configuration] +popupHeight=451 +popupWidth=560 + +[Containments][425][Applets][444] +immutability=1 +plugin=org.kde.plasma.showdesktop + +[Containments][425][General] +AppletOrder=426;427;428;429;430;443;444 + +[ScreenMapping] +itemsOnDisabledScreens= +screenMapping=desktop:/The Beginner's Guide.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/Steam Linux Runtime 3.0 (sniper).desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/Torchlight Infinite.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/Vampire Survivors.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/Steam Linux Runtime 1.0 (scout).desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/steam.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/Proton Hotfix.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/Last Epoch.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/Dwarven Realms.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/Simon the Sorcerer Origins Demo.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/Terraria.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/Path of Exile.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/chrome-opaefnjafkemdihlmdiocmmmmdkhgjfg-Default.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/ARK Survival Evolved.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/Sid Meier's Civilization VI.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/Unnamed Space Idle.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/Path of Exile 2.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/Steam Linux Runtime 2.0 (soldier).desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/xtelsio CTI Client.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/Proton 8.0.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/K21_contentAD.gif,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/A Dance of Fire and Ice.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/Proton BattlEye Runtime.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94,desktop:/SteamVR.desktop,0,af3b6c4e-6eaf-4bea-857d-4860feb3cd94 diff --git a/.config/plasmanotifyrc b/.config/plasmanotifyrc new file mode 100644 index 0000000..196cc02 --- /dev/null +++ b/.config/plasmanotifyrc @@ -0,0 +1,44 @@ +[Applications][@other] +ShowInHistory=true +ShowPopupsInDndMode=true + +[Applications][com.nextcloud.desktopclient.nextcloud] +Seen=true + +[Applications][discord] +Seen=true + +[Applications][firefox] +Seen=true +ShowPopupsInDndMode=true + +[Applications][google-chrome] +Seen=true + +[Applications][io.github.seadve.Kooha] +Seen=true + +[Applications][org.mozilla.Thunderbird] +Seen=true + +[Applications][signal] +ShowPopupsInDndMode=true + +[Applications][signal-desktop] +ShowPopupsInDndMode=true + +[Applications][solaar] +Seen=true + +[Applications][teams] +Seen=true + +[DoNotDisturb] +WhenFullscreen=false +WhenScreenSharing=false +WhenScreensMirrored=false + +[Notifications] +LowPriorityHistory=true +PopupPosition=TopRight +PopupTimeout=30000 diff --git a/.config/plasmarc b/.config/plasmarc new file mode 100644 index 0000000..bb8f9b9 --- /dev/null +++ b/.config/plasmarc @@ -0,0 +1,2 @@ +[Wallpapers] +usersWallpapers=/home/templis/.local/share/wallpapers/Abstract 4K No Logo.png,/home/templis/.local/share/wallpapers/Space Plasma 2 4K.jpg,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/purplewin_tueit_ipad.jpg,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/konachancom94911tagme.jpg,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/exmachina.gif,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/soundwaves.gif,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/bluefluid.gif,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/purplefluid.gif,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/smokyneon.gif,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/network.gif,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/purplewin11.jpg,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/moon_and_sun.jpg,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/snog_full.jpg,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/cropped-tüit-Logo-tü-original-Farben-ohne-Rand.svg.png,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/Free-HD-Gif-Wallpapers.gif,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/TDF7f.gif,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/adb892e1036441459a1f8e0b8d165b8a.gif,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/rainpixelart.gif,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/lox.jpg,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/fluorescence6.jpg,/mnt/d/cloud.shron.de/Hetzner Storagebox/library/pics/backgrounds/album_pic.php.jpe diff --git a/.config/plasmashellrc b/.config/plasmashellrc new file mode 100644 index 0000000..f5dd382 --- /dev/null +++ b/.config/plasmashellrc @@ -0,0 +1,34 @@ +[KPropertiesDialog] +4 screens: Height=529 +4 screens: Width=465 + +[PlasmaViews][Panel 291] +floating=1 +shell=org.kde.plasma.desktop + +[PlasmaViews][Panel 291][Defaults] +thickness=44 + +[PlasmaViews][Panel 375] +floating=1 +shell=org.kde.plasma.desktop + +[PlasmaViews][Panel 375][Defaults] +thickness=44 + +[PlasmaViews][Panel 400] +floating=1 +shell=org.kde.plasma.desktop + +[PlasmaViews][Panel 400][Defaults] +thickness=44 + +[PlasmaViews][Panel 425] +floating=1 +shell=org.kde.plasma.desktop + +[PlasmaViews][Panel 425][Defaults] +thickness=44 + +[Updates] +performed=/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/containmentactions_middlebutton.js,/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/digitalclock_migrate_font_settings.js,/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/digitalclock_rename_timezonedisplay_key.js,/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/folderview_fix_recursive_screenmapping.js,/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/keyboardlayout_migrateiconsetting.js,/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/keyboardlayout_remove_shortcut.js,/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/klipper_clear_config.js,/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/maintain_existing_desktop_icon_sizes.js,/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/mediaframe_migrate_useBackground_setting.js,/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/move_desktop_layout_config.js,/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/no_middle_click_paste_on_panels.js,/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/systemloadviewer_systemmonitor.js,/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/unlock_widgets.js,/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/digitalclock_migrate_showseconds_setting.js,/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/migrate_font_weights.js,/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/taskmanager_configUpdate_wheelEnabled.js diff --git a/.config/powermanagementprofilesrc b/.config/powermanagementprofilesrc new file mode 100644 index 0000000..99346ab --- /dev/null +++ b/.config/powermanagementprofilesrc @@ -0,0 +1,65 @@ +[AC] +icon=battery-charging + +[AC][DPMSControl] +idleTime=1800 +lockBeforeTurnOff=0 + +[AC][DimDisplay] +idleTime=300000 + +[AC][HandleButtonEvents] +lidAction=1 +powerButtonAction=16 +powerDownAction=16 + +[AC][SuspendSession] +idleTime=3600000 +suspendThenHibernate=false +suspendType=1 + +[Battery] +icon=battery-060 + +[Battery][DPMSControl] +idleTime=300 +lockBeforeTurnOff=0 + +[Battery][DimDisplay] +idleTime=120000 + +[Battery][HandleButtonEvents] +lidAction=1 +powerButtonAction=16 +powerDownAction=16 + +[Battery][SuspendSession] +idleTime=600000 +suspendThenHibernate=false +suspendType=1 + +[LowBattery] +icon=battery-low + +[LowBattery][BrightnessControl] +value=30 + +[LowBattery][DPMSControl] +idleTime=120 +lockBeforeTurnOff=0 + +[LowBattery][DimDisplay] +idleTime=60000 + +[LowBattery][HandleButtonEvents] +lidAction=1 +powerButtonAction=16 +powerDownAction=16 + +[LowBattery][SuspendSession] +idleTime=300000 +suspendThenHibernate=false +suspendType=1 + +[Migration] +MigratedProfilesToPlasma6=powerdevilrc diff --git a/.config/sway/config b/.config/sway/config index 27f717d..2d9a61f 100644 --- a/.config/sway/config +++ b/.config/sway/config @@ -1,369 +1,398 @@ -# This file has been auto-generated by i3-config-wizard(1). -# It will not be overwritten, so edit it as you like. -# -# Should you change your keyboard layout somewhen, delete -# this file and re-run i3-config-wizard(1). -# - -# Keyboard configuration - input * xkb_layout "de,us" - -#enable tab-to-click - input "2:7:SynPS/2_Synaptics_TouchPad" { - tap enabled - scroll_method two_finger - } - -# set default font - font -*-cure-medium-*-*-*-11-*-*-*-*-*-*-* - -# set modifier keys for more clarity and readability in config -# mod is on most keyboards the "windows" key - set $mod Mod4 - set $alt Mod1 - -# Font for window titles. Will also be used by the bar unless a different font -# is used in the bar {} block below. ISO 10646 = Unicode - font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 -# The font above is very space-efficient, that is, it looks good, sharp and -# clear in small sizes. However, if you need a lot of unicode glyphs or -# right-to-left text rendering, you should instead use pango for rendering and -# chose a FreeType font, such as: -# font pango:DejaVu Sans Mono 10 - -# Use Mouse+$mod to drag floating windows to their wanted position - floating_modifier $mod - -#set the border of your windows - bindsym $mod+t border normal - bindsym $mod+y border 1pixel - bindsym $mod+u border none - -# start a terminal -# with some examples for other font or other terminal emulators -# bindsym $mod+Return exec urxvt -depth 32 -bg rgba:3f00/3f00/3f00/dddd -ip -fg white -sl 10000 +sb -fn "xft:inconsolata:size=8:antialias=true" -letsp -1 -sh 20 -# bindsym $mod+Return exec urxvt -depth 32 -bg rgba:3f00/3f00/3f00/dddd -ip -fg white -sl 10000 +sb -fn "xft:PragmataPro:size=8:antialias=true" -letsp -1 -sh 20 -# bindsym $mod+Return exec terminology -# bindsym $mod+Return exec tilda - bindsym $mod+Return exec termite - -# kill focused window - bindsym $mod+Shift+q kill - bindsym $alt+F4 kill -# if this don't work, you can even start xkill - bindsym $mod+Shift+k exec xkill - -# enables a feature like on other windowmanagers or windows, -# to show running "processes" and switch between them - bindsym $alt+Tab exec rofi -show window - -# start dmenu (a program launcher) -# bindsym $mod+d exec dmenu_run -# instead -# set $menu dmenu_path | dmenu | xargs swaymsg exec -- -# set $menu j4-dmenu-desktop --dmenu='bemenu -i --nb "#3f3f3f" --nf "#dcdccc" --fn "pango:DejaVu Sans Mono 12"' --term='termite' - set $menu exec wofi --show drun - bindsym $mod+d exec $menu -# There also is the (new) i3-dmenu-desktop which only displays applications -# shipping a .desktop file. It is a wrapper around dmenu, so you need that -# installed. -# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop - -# change focus - the vi way -# I don't use them, cause i need this keys for other purposes -# e.g. $mod+h for split horizontal -# bindsym $mod+h focus left -# bindsym $mod+j focus down -# bindsym $mod+k focus up -# bindsym $mod+l focus right - -# alternatively, you can use the cursor keys: - bindsym $mod+Left focus left - bindsym $mod+Down focus down - bindsym $mod+Up focus up - bindsym $mod+Right focus right - -# move focused window - the vi way -# I don't use them, cause i need this keys for other purposes -# e.g. $mod+Shift+l for lock my Desktop -# bindsym $mod+Shift+h move left -# bindsym $mod+Shift+j move down -# bindsym $mod+Shift+k move up -# bindsym $mod+Shift+l move right - -# alternatively, you can use the cursor keys: - bindsym $mod+Shift+Left move left - bindsym $mod+Shift+Down move down - bindsym $mod+Shift+Up move up - bindsym $mod+Shift+Right move right - -# split in horizontal orientation - bindsym $mod+h split h - -# split in vertical orientation - bindsym $mod+v split v - -# enter fullscreen mode for the focused container - bindsym $mod+z fullscreen - -# change container layout (stacked, tabbed, toggle split) - bindsym $mod+s layout stacking - bindsym $mod+w layout tabbed - bindsym $mod+e layout toggle split - -# toggle tiling / floating - bindsym $mod+Shift+space floating toggle - -# change focus between tiling / floating windows - bindsym $mod+space focus mode_toggle - -# focus the parent container - bindsym $mod+a focus parent - -# focus the child container -# bindsym $mod+d focus child - -# switch to workspace - bindsym $mod+1 workspace 1: 1: Text - bindsym $mod+2 workspace 2: 2: Web - bindsym $mod+3 workspace 3: 3: Office - bindsym $mod+4 workspace 4: 4: KeePass - bindsym $mod+5 workspace 5: 5: Mail - bindsym $mod+6 workspace 6: 6: Chat - bindsym $mod+7 workspace 7 - bindsym $mod+8 workspace 8 - bindsym $mod+9 workspace 9 - bindsym $mod+0 workspace 10 - -# move focused container to workspace - bindsym $mod+Shift+1 move container to workspace 1: 1: Text - bindsym $mod+Shift+2 move container to workspace 2: 2: Web - bindsym $mod+Shift+3 move container to workspace 3: 3: Office - bindsym $mod+Shift+4 move container to workspace 4: 4: KeePass - bindsym $mod+Shift+5 move container to workspace 5: 5: Mail - bindsym $mod+Shift+6 move container to workspace 6: 6: Chat - bindsym $mod+Shift+7 move container to workspace 7 - bindsym $mod+Shift+8 move container to workspace 8 - bindsym $mod+Shift+9 move container to workspace 9 - bindsym $mod+Shift+0 move container to workspace 10 - -# reload the configuration file - bindsym $mod+Shift+r reload -# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) -# bindsym $mod+Shift+r restart - -# exit i3 (logs you out of your X session) -# bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" - bindsym $mod+Shift+e exec swaynagmode -t warning -m "Exit sway? This will end your Wayland session." -b "Exit sway" "swaymsg exit" -b "Reload" "swaymsg reload" - -# put task in background - exec --no-startup-id swayidle -w \ - timeout 300 'light -G > /tmp/brightness && light -S 10' \ - resume 'light -S $(cat /tmp/brightness)' \ - timeout 600 'swaylock -f -c 000000' \ - resume 'light -S $(cat /tmp/brightness)' \ - timeout 900 'swaymsg "output * dpms off"' \ - resume 'swaymsg "output * dpms on" && light -S $(cat /tmp/brightness)' \ - before-sleep 'swaylock -f -c 000000' -#disable when firefox video is in fullscreen - for_window [class="firefox"] inhibit_idle fullscreen - for_window [app_id="firefox"] inhibit_idle fullscreen - - bindsym $mod+Shift+l exec swaylock -f -c 000000 - -# add the ability to reboot shutdown etc. -#......... - bindsym $mod+Shift+Delete exec swaynagmode -t default -m "Sysmenu" -b "Exit" "swaymsg exit" -b "Reload" "swaymsg reload" -b "Halt" "exec sudo shutdown -P now" -b "Reboot" "exec sudo shutdown -r now" -#......... - -# for Presentation and monitor output selection -#......... - bindsym $mod+Shift+x exec swaynagmode -t default -m "Displaymenu" -b "Laptop only" 'swaymsg "output"' -b "DP mirror" 'swaymsg "output"' -b "DP extend" 'swaymsg "output"' -b "VGA mirror" 'swaymsg "output"' -b "VGA extend" 'swaymsg "output"' -#......... - - bindsym $mod+Prior move workspace to output left - bindsym $mod+Next move workspace to output right - -# resize window (you can also use the mouse for that) -#......... - bindsym $mod+r mode "resize" - - mode "resize" { - # These bindings trigger as soon as you enter the resize mode - - # Pressing left will shrink the window’s width. - # Pressing right will grow the window’s width. - # Pressing up will shrink the window’s height. - # Pressing down will grow the window’s height. - bindsym j resize shrink width 10 px or 10 ppt - bindsym k resize grow height 10 px or 10 ppt - bindsym l resize shrink height 10 px or 10 ppt - bindsym odiaeresis resize grow width 10 px or 10 ppt - - # same bindings, but for the arrow keys - bindsym Left resize shrink width 10 px or 10 ppt - bindsym Down resize grow height 10 px or 10 ppt - bindsym Up resize shrink height 10 px or 10 ppt - bindsym Right resize grow width 10 px or 10 ppt - - # back to normal: Enter or Escape - bindsym Return mode "default" - bindsym Escape mode "default" - } -#........ - -# Start i3bar to display a workspace bar (plus the system information i3status -# finds out, if available) - bar { - swaybar_command waybar - } - -# -# Scratchpad: -# - # Sway has a "scratchpad", which is a bag of holding for windows. - # You can send windows there and get them back later. - - # Move the currently focused window to the scratchpad - bindsym $mod+Shift+minus move scratchpad - - # Show the next scratchpad window or hide the focused scratchpad window. - # If there are multiple scratchpad windows, this command cycles through them. - bindsym $mod+minus scratchpad show - - -# snipping/screenshot Tool - #bindsym --release Print exec scrot -s -e 'mv $f ~/Bilder/Screenshots/screenshot_%Y-%m-%d_%H%M%S.png' - #bindsym --release Print exec maim -s ~/Bilder/Screenshots/screenshot_$(date +%s).png - bindsym --release Print exec grim -g "$(slurp)" ~/library/Bilder/Screenshots/screenshot_$(date +%s).png - - -## Media keys - bindsym XF86AudioRaiseVolume exec pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo +5% - bindsym XF86AudioLowerVolume exec pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo -5% - bindsym XF86AudioMute exec pamixer -t - -## Adjust Brightness -# bindsym XF86MonBrightnessDown exec light -U 10 -# bindsym XF86MonBrightnessUp exec light -A 10 - -# Enable GLX Graphics -# used especially for Laptop and enable/disable discrete graphics -# bindsym $mod+g exec /home/templis/dri.sh - -# control swaynag with keyboard -# needs to be swaynadmode installed - swaynag_command swaynagmode - set $nag exec swaynagmode - mode "nag" { - bindsym { - Ctrl+d mode "default" - - Ctrl+c $nag --exit - q $nag --exit - Escape $nag --exit - - Return $nag --confirm - - Tab $nag --select prev - Shift+Tab $nag --select next - - Left $nag --select next - Right $nag --select prev - - Up $nag --select next - Down $nag --select prev - } -} - -# Set floating Windows for special applications - workspace_layout tabbed - for_window [window_role="pop-up"] floating enable,move absolute center - for_window [class="Pinentry"] floating enable - for_window [class="Eog"] floating enable - for_window [class="Geary"] floating enable - for_window [class="Gcr-prompter"] floating enable - for_window [class="Tipswindow.py"] floating enable - for_window [class="XVroot"] floating enable - for_window [class="XVcontrols"] floating enable - for_window [class="Vlc"] floating enable - for_window [class="Synergy"] floating enable - for_window [class="libreoffice-writer"] floating enable - for_window [class="Shotwell"] floating enable - for_window [class="UpLauncher"] floating enable - for_window [title="^Minecraft .*"] floating enable - for_window [title="Steam - Update News"] kill - for_window [title="Preferences$"] floating enable - for_window [class="^Pidgin$" window_role="^conversation$"] resize grow width 0 px or 30 ppt - -# Assign special applications to defined workspaces - assign [class="Chromium"] 2: 2: Web - assign [class="chrome"] 2: 2: Web - assign [class="Firefox"] 2: 2: Web - assign [class="firefox"] 2: 2: Web - assign [class="libreoffice"] 3: 3: Office - assign [class="Gimp"] 3: 3: Office - assign [class="^Minecraft Launcher .*"] 3: 3: Office - assign [class="Linphone"] 3: 3: Office - assign [class="keepassxc"] 4: 4: KeePass - assign [class="KeePassXC"] 4: 4: KeePass - assign [class="(?i)thunderbird"] 5: 5: Mail - assign [class="Signal"] 6: 6: Chat -# include modules etc. - include ~/.config/sway/conf.d/* - -# Start some needet applications -# Please take care to install/configure it, if you intend to include it! - -#fix graphical gltiches - exec xrdb -load ~/.Xresources - exec xrdb -merge ~/.Xresources - -# start Sound Daemon - exec pulseaudio --kill - exec sleep 3 pulseaudio --start - exec /usr/bin/pasystray - -# BROWSERS!!!11!elf! - exec firefox - #exec chromium - #exec google-chrome-stable - -# networkmanager gui - exec nm-applet --indicator - -# eye saver -# Redshift adjusts the color temperature of your screen according to your surroundings. This may help your eyes hurt less if you are working in front of the screen at night. - exec redshift-gtk -l 48.52160730:9.05050278 - -# nextcloud - exec nextcloud - -# start one terminal on workspace 1 for failure management etc. -# exec --no-startup-id i3-msg 'workspace 1: 1: Text; exec urxvt -depth 32 -bg rgba:3f00/3f00/3f00/dddd -ip -fg white -sl 10000 +sb -fn "xft:inconsolata:size=8" -letsp -1 -sh 20' - exec --no-startup-id i3-msg 'workspace 1: 1: Text; exec termite' - -# trayicon to listen to some radio stations - exec radiotray-ng - -# start i3 with a random wallpaper -# exec feh --randomize --bg-fill ~/Bilder/Wallpaper/* -# exec feh --randomize --bg-fill ~/library/Bilder/Wallpaper/* - output "*" bg ~/library/Bilder/Wallpaper/Desktopography_2016_Kevin_May_2560x1440px-1-32g2c1w5jiz6gj086a9tkw.jpg fill - -# autodetect and automount USB Sticks and external media - exec udisksvm >/dev/null & - -# needet for my Razer Chomatic Keyboard -# exec razercommander -q -# exec_always –no-startup-id flashfocus - -# Start Signal - exec signal-desktop-beta - -# Start keepassxc - exec keepassxc - exec ~/.scripts/start_keyring.sh - -#start polybar -# exec_always --no-startup-id ~/polybar.sh + # This file has been auto-generated by i3-config-wizard(1). + # It will not be overwritten, so edit it as you like. + # + # Should you change your keyboard layout somewhen, delete + # this file and re-run i3-config-wizard(1). + # + + #set my Monitor configuration + output HDMI-A-1 mode 1920x1080@50.000Hz position 0,0 + output DP-2 mode 2560x1440@59.951Hz position 301,1080 transform 90 + output DP-1 mode 2560x1440@59.951Hz position 1741,1732 + output DP-3 mode 2560x1440@59.951Hz position 4301,1732 + + # Keyboard configuration + #input * xkb_layout "de,us" + input * { + xkb_layout "de,us" + xkb_options "caps:XF86Launch5" + } + + #enable tab-to-click + input "2:7:SynPS/2_Synaptics_TouchPad" { + tap enabled + scroll_method two_finger + } + + # set default font + # font -*-cure-medium-*-*-*-11-*-*-*-*-*-*- + + # set modifier keys for more clarity and readability in config + # mod is on most keyboards the "windows" key + set $mod Mod4 + set $alt Mod1 + + # Font for window titles. Will also be used by the bar unless a different font + # is used in the bar {} block below. ISO 10646 = Unicode + + # clear in small sizes. However, if you need a lot of unicode glyphs or + # right-to-left text rendering, you should instead use pango for rendering and + # chose a FreeType font, such as: + # font pango:DejaVu Sans Mono 10 + + # Use Mouse+$mod to drag floating windows to their wanted position + floating_modifier $mod + + #set the border of your windows + bindsym $mod+t border normal + bindsym $mod+y border 1pixel + bindsym $mod+u border none + + # start a terminal + # with some examples for other font or other terminal emulators + # bindsym $mod+Return exec urxvt -depth 32 -bg rgba:3f00/3f00/3f00/dddd -ip -fg white -sl 10000 +sb -fn "xft:inconsolata:size=8:antialias=true" -letsp -1 -sh 20 + # bindsym $mod+Return exec urxvt -depth 32 -bg rgba:3f00/3f00/3f00/dddd -ip -fg white -sl 10000 +sb -fn "xft:PragmataPro:size=8:antialias=true" -letsp -1 -sh 20 + # bindsym $mod+Return exec terminology + # bindsym $mod+Return exec tilda + # bindsym $mod+Return exec termite + # bindsym $mod+Return exec alacritty + # bindsym $mod+Return exec kitty + bindsym $mod+Return exec foot + + + # kill focused window + bindsym $mod+Shift+q kill + bindsym $alt+F4 kill + # if this don't work, you can even start xkill + bindsym $mod+Shift+k exec xkill + + # enables a feature like on other windowmanagers or windows, + # to show running "processes" and switch between them + bindsym $alt+Tab exec rofi -show window + + # start dmenu (a program launcher) + # bindsym $mod+d exec dmenu_run + # instead + # set $menu dmenu_path | dmenu | xargs swaymsg exec -- + # set $menu j4-dmenu-desktop --dmenu='bemenu -i --nb "#3f3f3f" --nf "#dcdccc" --fn "pango:DejaVu Sans Mono 12"' --term='termite' + set $menu exec wofi --show drun + bindsym $mod+d exec $menu + # There also is the (new) i3-dmenu-desktop which only displays applications + # shipping a .desktop file. It is a wrapper around dmenu, so you need that + # installed. + # bindsym $mod+d exec --no-startup-id i3-dmenu-desktop + + # Get the focused AppID + bindsym $mod+Shift+a exec swaymsg -t get_tree | jq -r '..|try select(.focused == true)' + + # change focus - the vi way + # I don't use them, cause i need this keys for other purposes + # e.g. $mod+h for split horizontal + # bindsym $mod+h focus left + # bindsym $mod+j focus down + # bindsym $mod+k focus up + # bindsym $mod+l focus right + + # alternatively, you can use the cursor keys: + bindsym $mod+Left focus left + bindsym $mod+Down focus down + bindsym $mod+Up focus up + bindsym $mod+Right focus right + + # move focused window - the vi way + # I don't use them, cause i need this keys for other purposes + # e.g. $mod+Shift+l for lock my Desktop + # bindsym $mod+Shift+h move left + # bindsym $mod+Shift+j move down + # bindsym $mod+Shift+k move up + # bindsym $mod+Shift+l move right + + # alternatively, you can use the cursor keys: + bindsym $mod+Shift+Left move left + bindsym $mod+Shift+Down move down + bindsym $mod+Shift+Up move up + bindsym $mod+Shift+Right move right + + # split in horizontal orientation + bindsym $mod+h split h + + # split in vertical orientation + bindsym $mod+v split v + + # enter fullscreen mode for the focused container + bindsym $mod+z fullscreen + + # change container layout (stacked, tabbed, toggle split) + bindsym $mod+s layout stacking + bindsym $mod+w layout tabbed + bindsym $mod+e layout toggle split + + # toggle tiling / floating + bindsym $mod+Shift+space floating toggle + + # change focus between tiling / floating windows + bindsym $mod+space focus mode_toggle + + # focus the parent container + bindsym $mod+a focus parent + + # focus the child container + # bindsym $mod+d focus child + + # switch to workspace + bindsym $mod+1 workspace 1: 1: Text + bindsym $mod+2 workspace 2: 2: Web + bindsym $mod+3 workspace 3: 3: Office + bindsym $mod+4 workspace 4: 4: KeePass + bindsym $mod+5 workspace 5: 5: Mail + bindsym $mod+6 workspace 6: 6: Chat + bindsym $mod+7 workspace 7 + bindsym $mod+8 workspace 8 + bindsym $mod+9 workspace 9 + bindsym $mod+0 workspace 10 + + # move focused container to workspace + bindsym $mod+Shift+1 move container to workspace 1: 1: Text + bindsym $mod+Shift+2 move container to workspace 2: 2: Web + bindsym $mod+Shift+3 move container to workspace 3: 3: Office + bindsym $mod+Shift+4 move container to workspace 4: 4: KeePass + bindsym $mod+Shift+5 move container to workspace 5: 5: Mail + bindsym $mod+Shift+6 move container to workspace 6: 6: Chat + bindsym $mod+Shift+7 move container to workspace 7 + bindsym $mod+Shift+8 move container to workspace 8 + bindsym $mod+Shift+9 move container to workspace 9 + bindsym $mod+Shift+0 move container to workspace 10 + + # reload the configuration file + bindsym $mod+Shift+r reload + # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) + # bindsym $mod+Shift+r restart + + # exit i3 (logs you out of your X session) + # bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" + bindsym $mod+Shift+e exec swaynagmode -t warning -m "Exit sway? This will end your Wayland session." -b "Exit sway" "swaymsg exit" -b "Reload" "swaymsg reload" + + # put task in background + exec --no-startup-id swayidle -w \ + timeout 300 'light -G > /tmp/brightness && light -S 10' \ + resume 'light -S $(cat /tmp/brightness)' \ + timeout 600 'swaylock -f -c 000000' \ + resume 'light -S $(cat /tmp/brightness)' \ + timeout 900 'swaymsg "output * dpms off"' \ + resume 'swaymsg "output * dpms on" && light -S $(cat /tmp/brightness)' \ + before-sleep 'swaylock -f -c 000000' + #disable when firefox video is in fullscreen + for_window [class="firefox"] inhibit_idle fullscreen + for_window [app_id="firefox"] inhibit_idle fullscreen + + bindsym $mod+Shift+l exec swaylock -f -c 000000 + + # add the ability to reboot shutdown etc. + #......... + bindsym $mod+Shift+Delete exec swaynagmode -t default -m "Sysmenu" -b "Exit" "swaymsg exit" -b "Reload" "swaymsg reload" -b "Halt" "exec sudo shutdown -P now" -b "Reboot" "exec sudo shutdown -r now" + #......... + + # for Presentation and monitor output selection + #......... + bindsym $mod+Shift+x exec swaynagmode -t default -m "Displaymenu" -b "Laptop only" 'swaymsg "output"' -b "DP mirror" 'swaymsg "output"' -b "DP extend" 'swaymsg "output"' -b "VGA mirror" 'swaymsg "output"' -b "VGA extend" 'swaymsg "output"' + #......... + + bindsym $mod+Prior move workspace to output left + bindsym $mod+Next move workspace to output right + + # resize window (you can also use the mouse for that) + #......... + bindsym $mod+r mode "resize" + + mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym j resize shrink width 10 px or 10 ppt + bindsym k resize grow height 10 px or 10 ppt + bindsym l resize shrink height 10 px or 10 ppt + bindsym odiaeresis resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" + } + #........ + + # Start i3bar to display a workspace bar (plus the system information i3status + # finds out, if available) + bar { + swaybar_command waybar + } + + # + # Scratchpad: + # + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # Move the currently focused window to the scratchpad + bindsym $mod+Shift+minus move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + bindsym $mod+minus scratchpad show + + + # snipping/screenshot Tool + #bindsym --release Print exec scrot -s -e 'mv $f ~/Bilder/Screenshots/screenshot_%Y-%m-%d_%H%M%S.png' + #bindsym --release Print exec maim -s ~/Bilder/Screenshots/screenshot_$(date +%s).png + bindsym --release Print exec grim -g "$(slurp)" ~/library/Bilder/Screenshots/screenshot_$(date +%s).png + + + ## Media keys + #bindsym XF86AudioRaiseVolume exec pactl set-sink-volume alsa_output.usb-nubert_nubert_xCore_USB_Audio-00.analog-stereo +5% + #bindsym XF86AudioLowerVolume exec pactl set-sink-volume alsa_output.usb-nubert_nubert_xCore_USB_Audio-00.analog-stereo -5% + bindsym XF86AudioRaiseVolume exec pamixer -i 5 + bindsym XF86AudioLowerVolume exec pamixer -d 5 + bindsym XF86AudioMute exec pamixer -t + + ## Adjust Brightness + # bindsym XF86MonBrightnessDown exec light -U 10 + # bindsym XF86MonBrightnessUp exec light -A 10 + + # Enable GLX Graphics + # used especially for Laptop and enable/disable discrete graphics + # bindsym $mod+g exec /home/templis/dri.sh + + # control swaynag with keyboard + # needs to be swaynadmode installed + swaynag_command swaynagmode + set $nag exec swaynagmode + mode "nag" { + bindsym { + Ctrl+d mode "default" + + Ctrl+c $nag --exit + q $nag --exit + Escape $nag --exit + + Return $nag --confirm + + Tab $nag --select prev + Shift+Tab $nag --select next + + Left $nag --select next + Right $nag --select prev + + Up $nag --select next + Down $nag --select prev + } + } + + # Set floating Windows for special applications + workspace_layout tabbed + for_window [window_role="pop-up"] floating enable,move absolute center + for_window [class="Pinentry"] floating enable + for_window [class="Eog"] floating enable + for_window [class="Geary"] floating enable + for_window [class="Gcr-prompter"] floating enable + for_window [class="Tipswindow.py"] floating enable + for_window [class="XVroot"] floating enable + for_window [class="XVcontrols"] floating enable + for_window [class="Vlc"] floating enable + for_window [class="Synergy"] floating enable + for_window [class="libreoffice-writer"] floating enable + for_window [class="Shotwell"] floating enable + for_window [class="UpLauncher"] floating enable + for_window [title="^Minecraft .*"] floating enable + for_window [title="Steam - Update News"] kill + for_window [title="Preferences$"] floating enable + for_window [class="^Pidgin$" window_role="^conversation$"] resize grow width 0 px or 30 ppt + #for_window [title="^AnyDesk.*"] floating enable + for_window [class="anydesk"] floating enable + for_window [app_id="galculator"] floating enable + for_window [window_type="dialog"] floating enable + for_window [window_role="dialog"] floating enable + + + # Assign special applications to defined workspaces + assign [class="Chromium"] 2: 2: Web + assign [class="chrome"] 2: 2: Web + assign [class="Firefox"] 2: 2: Web + assign [class="firefox"] 2: 2: Web + assign [class="libreoffice"] 3: 3: Office + assign [class="Gimp"] 3: 3: Office + assign [class="^Minecraft Launcher .*"] 3: 3: Office + assign [class="Linphone"] 3: 3: Office + assign [class="keepassxc"] 4: 4: KeePass + assign [class="KeePassXC"] 4: 4: KeePass + assign [class="(?i)thunderbird"] 5: 5: Mail + assign [class="Signal"] 6: 6: Chat + # include modules etc. + include ~/.config/sway/conf.d/* + + # Start some needet applications + # Please take care to install/configure it, if you intend to include it! + + #fix graphical gltiches + exec xrdb -load ~/.Xresources + exec xrdb -merge ~/.Xresources + + # start Sound Daemon + # exec pulseaudio --kill + # exec sleep 3 pulseaudio --start + # exec /usr/bin/pasystray + + # BROWSERS!!!11!elf! + exec firefox + #exec chromium + #exec google-chrome-stable + + # networkmanager gui + exec nm-applet --indicator + + # eye saver + # Redshift adjusts the color temperature of your screen according to your surroundings. This may help your eyes hurt less if you are working in front of the screen at night. + exec redshift-gtk -l 48.52160730:9.05050278 + + # nextcloud + exec nextcloud + + # start one terminal on workspace 1 for failure management etc. + # exec --no-startup-id i3-msg 'workspace 1: 1: Text; exec urxvt -depth 32 -bg rgba:3f00/3f00/3f00/dddd -ip -fg white -sl 10000 +sb -fn "xft:inconsolata:size=8" -letsp -1 -sh 20' + # exec --no-startup-id i3-msg 'workspace 1: 1: Text; exec termite' + + # trayicon to listen to some radio stations + exec radiotray-ng + + # start i3 with a random wallpaper + # exec feh --randomize --bg-fill ~/Bilder/Wallpaper/* + # exec feh --randomize --bg-fill ~/library/Bilder/Wallpaper/* + # output "*" bg ~/library/Bilder/Wallpaper/Desktopography_2016_Kevin_May_2560x1440px-1-32g2c1w5jiz6gj086a9tkw.jpg fill + + # autodetect and automount USB Sticks and external media + exec udisksvm >/dev/null & + + # needet for my Razer Chomatic Keyboard + # exec razercommander -q + # exec_always –no-startup-id flashfocus + + # Start Signal + exec signal-desktop + + # Start keepassxc + exec keepassxc + exec ~/.scripts/start_keyring.sh + + # Notification Daemon + exec dunst + # Notification-History Picker (Inhalt kopieren) + bindsym $mod+n exec ~/.config/dunst/notification-picker.sh + + #start polybar + # exec_always --no-startup-id ~/polybar.sh diff --git a/.config/swaynag/config b/.config/swaynag/config deleted file mode 100644 index c71c6d13f1acd95e76def2fd686c158205b67dbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149 KcmZP=i~s-tl>h+% diff --git a/.config/waybar/config b/.config/waybar/config deleted file mode 100644 index 599f350..0000000 --- a/.config/waybar/config +++ /dev/null @@ -1,149 +0,0 @@ -[{ - "layer": "top", - "position": "top", - "height": 30, - - "modules-left": ["sway/mode", "temperature"], - "modules-center": ["clock", "custom/weather"], - "modules-right": ["network", "cpu"], - - "clock": { - "format": "{:%a %d %b %H:%M}", - "tooltip": false - }, - "sway/mode": { - "format": " {}" - }, - "network": { - "format": "{icon}", - "format-alt": "{ipaddr}/{cidr} {icon}", - "format-alt-click": "click-right", - "format-icons": { - "wifi": ["", "" ,""], - "ethernet": [""], - "disconnected": [""] - }, - "on-click": "termite -e nmtui", - "tooltip": false - }, - "temperature": { - "thermal-zone": 2, - "hwmon-path": "/sys/class/hwmon/hwmon0/temp1_input", - "critical-threshold": 80, - "format-critical": "{temperatureC}°C ", - "format": "{temperatureC}°C " - }, - "cpu": { - "interval": 10, - "format": "{}% ", - "max-length": 10, - "states": { - "warning": 70, - "critical": 80 - } - }, - "custom/weather": { - "format": "{}", - "format-alt": "{alt}: {}", - "format-alt-click": "click-right", - "interval": 1800, - "return-type": "json", - "exec": "~/.config/waybar/modules/weather.sh", - "exec-if": "ping wttr.in -c1" - } -}, - -{ - "layer": "bottom", - "position": "bottom", - "height": 30, - - "modules-left": ["sway/workspaces", "sway/mode"], - "modules-center": ["sway/window"], - "modules-right": ["custom/spotify", "custom/storage", "backlight", "pulseaudio", "idle_inhibitor", "battery", "tray"], - "sway/mode": { - "format": " {}" - }, - "sway/workspaces": { - "format": "{name}", - "disable-scroll": true - }, - "sway/window": { - "max-length": 80, - "tooltip": false - }, - "battery": { - "format": "{capacity}% {icon}", - "format-alt": "{time} {icon}", - "format-icons": ["", "", "", "", ""], - "format-charging": "{capacity}% ", - "interval": 30, - "states": { - "warning": 25, - "critical": 10 - }, - "tooltip": false - }, - "pulseaudio": { - "format": "{icon}", - "format-alt": "{volume} {icon}", - "format-alt-click": "click-right", - "format-muted": "", - "format-icons": { - "phone": [" ", " ", " ", " "], - "default": ["", "", "", ""] - }, - "scroll-step": 10, - "on-click": "pavucontrol", - "tooltip": false - }, - "custom/spotify": { - "interval": 1, - "return-type": "json", - "exec": "~/.config/waybar/modules/spotify.sh", - "exec-if": "pgrep spotify", - "escape": true - }, - "custom/storage": { - "format": "{} ", - "format-alt": "{percentage}% ", - "format-alt-click": "click-right", - "return-type": "json", - "interval": 60, - "exec": "~/.config/waybar/modules/storage.sh" - }, - "backlight": { - "format": "{icon}", - "format-alt": "{percent}% {icon}", - "format-alt-click": "click-right", - "format-icons": ["", ""], - "on-scroll-down": "light -A 1", - "on-scroll-up": "light -U 1" - }, - "custom/weather": { - "format": "{}", - "format-alt": "{alt}: {}", - "format-alt-click": "click-right", - "interval": 1800, - "return-type": "json", - "exec": "~/.config/waybar/modules/weather.sh", - "exec-if": "ping wttr.in -c1" - }, - "idle_inhibitor": { - "format": "{icon}", - "format-icons": { - "activated": "", - "deactivated": "" - }, - "tooltip": false - }, - "custom/test": { - "format": "{}", - "exec": "/tmp/test blub", - "param": "blah", - "interval": 5 - }, - "tray": { - "icon-size": 18 - } -}] diff --git a/.config/waybar/modules/mail.py b/.config/waybar/modules/mail.py deleted file mode 100755 index abc36ec..0000000 --- a/.config/waybar/modules/mail.py +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/python - -import os -import imaplib - -import mailsecrets - -def getmails(username, password, server): - imap = imaplib.IMAP4_SSL(server, 993) - imap.login(username, password) - imap.select('INBOX') - ustatus, uresponse = imap.uid('search', None, 'UNSEEN') - if ustatus == 'OK': - unread_msg_nums = uresponse[0].split() - else: - unread_msg_nums = [] - - fstatus, fresponse = imap.uid('search', None, 'FLAGGED') - if fstatus == 'OK': - flagged_msg_nums = fresponse[0].split() - else: - flagged_msg_nums = [] - - return [len(unread_msg_nums), len(flagged_msg_nums)] - -ping = os.system("ping " + mailsecrets.server + " -c1 > /dev/null 2>&1") -if ping == 0: - mails = getmails(mailsecrets.username, mailsecrets.password, mailsecrets.server) - text = '' - alt = '' - - if mails[0] > 0: - text = alt = str(mails[0]) - if mails[1] > 0: - alt = str(mails[1]) + "  " + alt - else: - exit(1) - - print('{"text":"' + text + '", "alt": "' + alt + '"}') - -else: - exit(1) diff --git a/.config/waybar/modules/spotify.sh b/.config/waybar/modules/spotify.sh deleted file mode 100755 index c00622b..0000000 --- a/.config/waybar/modules/spotify.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -class=$(playerctl metadata --player=spotify --format '{{lc(status)}}') -icon="" - -if [[ $class == "playing" ]]; then - info=$(playerctl metadata --player=spotify --format '{{artist}} - {{title}}') - if [[ ${#info} > 40 ]]; then - info=$(echo $info | cut -c1-40)"..." - fi - text=$info" "$icon -elif [[ $class == "paused" ]]; then - text=$icon -elif [[ $class == "stopped" ]]; then - text="" -fi - -echo -e "{\"text\":\""$text"\", \"class\":\""$class"\"}" diff --git a/.config/waybar/modules/storage.sh b/.config/waybar/modules/storage.sh deleted file mode 100755 index ae2a5ce..0000000 --- a/.config/waybar/modules/storage.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -mount="/" -warning=20 -critical=10 - -df -h -P -l "$mount" | awk -v warning=$warning -v critical=$critical ' -/\/.*/ { - text=$4 - tooltip="Filesystem: "$1"\rSize: "$2"\rUsed: "$3"\rAvail: "$4"\rUse%: "$5"\rMounted on: "$6 - use=$5 - exit 0 -} -END { - class="" - gsub(/%$/,"",use) - if ((100 - use) < critical) { - class="critical" - } else if ((100 - use) < warning) { - class="warning" - } - print "{\"text\":\""text"\", \"percentage\":"use",\"tooltip\":\""tooltip"\", \"class\":\""class"\"}" -} -' diff --git a/.config/waybar/modules/weather.sh b/.config/waybar/modules/weather.sh deleted file mode 100755 index 9c9bd1c..0000000 --- a/.config/waybar/modules/weather.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/bash - -cachedir=~/.cache/rbn -cachefile=${0##*/}-$1 - -if [ ! -d $cachedir ]; then - mkdir -p $cachedir -fi - -if [ ! -f $cachedir/$cachefile ]; then - touch $cachedir/$cachefile -fi - -# Save current IFS -SAVEIFS=$IFS -# Change IFS to new line. -IFS=$'\n' - -cacheage=$(($(date +%s) - $(stat -c '%Y' "$cachedir/$cachefile"))) -if [ $cacheage -gt 1740 ] || [ ! -s $cachedir/$cachefile ]; then - data=($(curl -s https://de.wttr.in/tuebingen\?0qnT 2>&1)) - echo ${data[0]} | cut -f1 -d, > $cachedir/$cachefile - echo ${data[1]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile - echo ${data[2]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile -fi - -weather=($(cat $cachedir/$cachefile)) - -# Restore IFSClear -IFS=$SAVEIFS - -temperature=$(echo ${weather[2]} | sed -E 's/([[:digit:]])+\.\./\1 bis /g') - -#echo ${weather[1]##*,} - -# https://fontawesome.com/icons?s=solid&c=weather -case $(echo ${weather[1]##*,} | tr '[:upper:]' '[:lower:]') in -"clear" | "sunny" | "sonnig" | "wolkenlos" | "klar") - condition="" - ;; -"partly cloudy" | "leicht bewölkt") - condition="" - ;; -"cloudy" | "bewölkt") - condition="" - ;; -"overcast" | "bedeckt") - condition="" - ;; -"mist" | "fog" | "freezing fog" | "nebel" | "gefrierender nebel") - condition="" - ;; -"patchy rain possible" | "patchy light drizzle" | "light drizzle" | "patchy light rain" | "light rain" | "light rain shower" | "rain" | "stellenweise regen möglich" | "stellenweise nieselregen" | "leichter nieselregen" | "stellenweise leichter regen" | "leichter regenfall" | "leichter regen" | "regen") - condition="" - ;; -"moderate rain at times" | "moderate rain" | "heavy rain at times" | "heavy rain" | "moderate or heavy rain shower" | "torrential rain shower" | "rain shower" | "stellenweise gemäßigter regen" | "gemäßigter regen" | "stellenweise starker regen" | "starker regen" | "gemäßigter oder starker regen" | "wolkenbruch") - condition="" - ;; -"patchy snow possible" | "patchy sleet possible" | "patchy freezing drizzle possible" | "freezing drizzle" | "heavy freezing drizzle" | "light freezing rain" | "moderate or heavy freezing rain" | "light sleet" | "ice pellets" | "light sleet showers" | "moderate or heavy sleet showers" | "stellenweise schnee möglich" | "stellenweise schneeregen möglich" | "stellenweise gefrierende nässe möglich" | "gefrierender nieselregen" | "starker gefrierender nieselregen" | "leichter gefrierender regen" | "gemäßigter oder starker gefrierender regen" | "leichter schneeregen" | "eiskörner" | "leichter schneeregen" | "gemäßigter oder starker schneeregen") - condition="" - ;; -"blowing snow" | "moderate or heavy sleet" | "patchy light snow" | "light snow" | "light snow showers" | "schneesturm" | "gemäßigter oder starker schneeregen" | "stellenweise leichter schneefall" | "leichter schneefall") - condition="" - ;; -"blizzard" | "patchy moderate snow" | "moderate snow" | "patchy heavy snow" | "heavy snow" | "moderate or heavy snow with thunder" | "moderate or heavy snow showers" | "stellenweise gemäßigter schneefall" | "gemäßigter schneefall" | "stellenweise starker schneefall" | "starker schneefall" | "gemäßigter oder starker schnefall mit gewitter" | "gemäßigter oder starker schneefall") - condition="" - ;; -"thundery outbreaks possible" | "patchy light rain with thunder" | "moderate or heavy rain with thunder" | "patchy light snow with thunder" | "gewitter möglich" | "stellenweise leichter regen mit gewitter" | "gemäßigter oder starker regen mit gewitter" | "stellenweise leichter schnefall mit gewitter") - condition="" - ;; -*) - condition="" - echo -e "{\"text\":\""$condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}" - ;; -esac - -#echo $temp $condition - -echo -e "{\"text\":\""$temperature $condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}" diff --git a/.config/waybar/style.css b/.config/waybar/style.css deleted file mode 100644 index 6256134..0000000 --- a/.config/waybar/style.css +++ /dev/null @@ -1,71 +0,0 @@ -* { - border: none; - border-radius: 0; - font-family: Sans; - font-size: 15px; - box-shadow: none; - text-shadow: none; - transition-duration: 0s; -} - -window { - color: rgba(217, 216, 216, 1); - background: rgba(35, 31, 32, 0.80); -} - -window#waybar.solo { - color: rgba(217, 216, 216, 1); - background: rgba(35, 31, 32, 0.80); -} - -#workspaces { - margin: 0 5px; -} - -#workspaces button { - padding: 0 5px; - color: rgba(217, 216, 216, 0.4); -} - -#workspaces button.visible { - color: rgba(217, 216, 216, 1); -} - -#workspaces button.focused { - border-top: 3px solid rgba(217, 216, 216, 1); - border-bottom: 3px solid rgba(217, 216, 216, 0); -} - -#workspaces button.urgent { - color: rgba(238, 46, 36, 1); -} - -#mode, #battery, #cpu, #memory, #network, #pulseaudio, #idle_inhibitor, #backlight, #custom-storage, #custom-spotify, #custom-weather, #custom-mail { - margin: 0px 6px 0px 10px; - min-width: 25px; -} - -#clock { - margin: 0px 16px 0px 10px; - min-width: 140px; -} - -#battery.warning { - color: rgba(255, 210, 4, 1); -} - -#battery.critical { - color: rgba(238, 46, 36, 1); -} - -#battery.charging { - color: rgba(217, 216, 216, 1); -} - -#custom-storage.warning { - color: rgba(255, 210, 4, 1); -} - -#custom-storage.critical { - color: rgba(238, 46, 36, 1); -} diff --git a/.config/waybar/waybar.sh b/.config/waybar/waybar.sh deleted file mode 100755 index 720620c..0000000 --- a/.config/waybar/waybar.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env sh - -# Terminate already running bar instances -killall -q waybar - -# Wait until the processes have been shut down -while pgrep -x waybar >/dev/null; do sleep 1; done - -# Launch main -waybar diff --git a/.config/wofi/config b/.config/wofi/config deleted file mode 100644 index b9b24f1..0000000 --- a/.config/wofi/config +++ /dev/null @@ -1,5 +0,0 @@ -width=600 -height=400 -mode=drun -colors=colors -filter_rate=100 diff --git a/.config/wofi/style.css b/.config/wofi/style.css deleted file mode 100644 index 456954d..0000000 --- a/.config/wofi/style.css +++ /dev/null @@ -1,45 +0,0 @@ -* { - border: none; - border-radius: 0; - font-family: Sans; - font-size: 15px; - box-shadow: none; - text-shadow: none; - transition-duration: 0s; -} - -window { - margin: 5px; - border: none; - color: rgba(217, 216, 216, 1); - background: rgba(35, 31, 32, 0.80); -} - -#input { - margin: 5px; - border: none; - background-color: #DBC7E4; -} - -#inner-box { - margin: 5px; - border: none; - background-color: rgba(35, 31, 32, 0.80); -} - -#outer-box { - margin: 5px; - border: none; - background-color: #1E122; - display: none; -} - -#scroll { - margin: 5px; - background-color: black; -} - -#text { - margin: 5px; - border: 0px solid black; -} diff --git a/.gitignore b/.gitignore index 8d1f485..9cc25fa 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,11 @@ id_* .zshrc.pre-dotconfs .config-backup/ +# KDE Connect keeps the device certificate and its private key here. Pairing +# state, not configuration - and the one place under .config that actually +# holds a secret. +.config/kdeconnect/ + # Runtime state and caches. .zsh_history .zcompdump* diff --git a/.scripts/volume.sh b/.scripts/volume.sh deleted file mode 100644 index 80c0827..0000000 --- a/.scripts/volume.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/bash -# You can call this script like this: -# $./volume.sh up -# $./volume.sh down -# $./volume.sh mute - -# Original from: https://gist.github.com/sebastiencs/5d7227f388d93374cebdf72e783fbd6a - -function get_volume { - pamixer --get-volume -} - -function is_mute { - pamixer --get-volume-human | grep muted > /dev/null -} - -function send_notification { - volume=`get_volume` - icon_quiet="/usr/share/icons/Adwaita/48x48/status/audio-volume-low-symbolic.symbolic.png" - icon_loud="/usr/share/icons/Adwaita/48x48/status/audio-volume-high-symbolic.symbolic.png" - icon_medium="/usr/share/icons/Adwaita/48x48/status/audio-volume-medium-symbolic.symbolic.png" - icon_muted="/usr/share/icons/Adwaita/48x48/status/audio-volume-muted-symbolic.symbolic.png" - # Make the bar with the special character ─ (it's not dash -) - # https://en.wikipedia.org/wiki/Box-drawing_character - bar=$(seq -s "─" $(($volume / 5)) | sed 's/[0-9]//g') - # Send the notification -# if [ "$volume" == "muted" ]; then - icon="/usr/share/icons/Adwaita/48x48/status/audio-volume-muted-symbolic.symbolic.png" - #dunstify -i "$icon" -t 2000 --replace 2593 -u normal " $bar" - dunstify "$volume"" ""$bar" -i "/usr/share/icons/Adwaita/48x48/status/audio-volume-muted-symbolic.symbolic.png" -t 2000 -h int:value:"$volume" -h string:synchronous:"$bar" --replace=555 - #else - # if [ "$volume" -lt "10" ]; then - # icon="/usr/share/icons/Adwaita/48x48/status/audio-volume-low-symbolic.symbolic.png" - # else - # if [ "$volume" -lt "30" ]; then - # icon="/usr/share/icons/Adwaita/48x48/status/audio-volume-medium-symbolic.symbolic.png" - # else - # if [ "$volume" -lt "70" ]; then - # icon="/usr/share/icons/Adwaita/48x48/status/audio-volume-high-symbolic.symbolic.png" - # fi - # fi - # fi - #fi - -} - -case $1 in - up) - # Set the volume on (if it was muted) - #amixer -D pulse set Master on > /dev/null - # Up the volume (+ 5%) - pamixer -i 5 - canberra-gtk-play -i audio-volume-change -d "changeVolume" - send_notification - ;; - down) - #amixer -D pulse set Master on > /dev/null - pamixer -d 5 - canberra-gtk-play -i audio-volume-change -d "changeVolume" - send_notification - ;; - mute) - # Toggle mute - pamixer -t - if is_mute ; then - dunstify -i audio-volume-muted -t 2000 -r 2593 -u normal "Mute" - else - canberra-gtk-play -i audio-volume-change -d "changeVolume" - send_notification - fi - ;; -esac diff --git a/.vimrc b/.vimrc index 7b16604..3883be4 100644 --- a/.vimrc +++ b/.vimrc @@ -1,11 +1 @@ -set runtimepath+=~/.vim_runtime - -source ~/.vim_runtime/vimrcs/basic.vim -source ~/.vim_runtime/vimrcs/filetypes.vim -source ~/.vim_runtime/vimrcs/plugins_config.vim -source ~/.vim_runtime/vimrcs/extended.vim - -try -source ~/.vim_runtime/my_configs.vim -catch -endtry +set mouse=v diff --git a/.zsh-dircolors.config b/.zsh-dircolors.config deleted file mode 100644 index 1e40ce7..0000000 --- a/.zsh-dircolors.config +++ /dev/null @@ -1 +0,0 @@ -dircolors.ansi-universal diff --git a/tmux.conf b/tmux.conf index c1a8fbe..701c08c 100644 --- a/tmux.conf +++ b/tmux.conf @@ -1,3 +1,4 @@ + # ################# # screen-like setup # ################# @@ -143,7 +144,7 @@ bind S split-window -v #set -g status-interval 2 #set -g status-right "#(tmux-mem-cpu-load 2) #H" run-shell "powerline-daemon -q" -source '/usr/lib/python3.9/site-packages/powerline/bindings/tmux/powerline.conf' +source '/usr/lib/python3.11/site-packages/powerline/bindings/tmux/powerline.conf' # disable mouse control by default - change 'off' to 'on' to enable by default. setw -g mouse off @@ -169,3 +170,12 @@ bind - \ # make tmux display things in 256 colors set -g default-terminal "screen-256color" + +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-sensible' + +set -g @plugin 'egel/tmux-gruvbox' +set -g @tmux-gruvbox 'dark' # or 'light' + +run '~/.tmux/plugins/tpm/tpm' + diff --git a/tmux.sh b/tmux.sh index b905a13..c35c4e7 100755 --- a/tmux.sh +++ b/tmux.sh @@ -13,10 +13,10 @@ fi # create a new session, named $SESSION, and detach from it $tmux new-session -d -s $SESSION -$tmux new-window -t $SESSION:1 -$tmux split-window -h -t $SESSION:1 'sudo bpytop' +$tmux new-window -t $SESSION:1 'sudo lazydocker' +$tmux split-window -h -t $SESSION:1 'sudo htop' $tmux split-window -v -t $SESSION:1 'sudo journalctl -f' -$tmux new-window -t $SESSION:2 +$tmux new-window -t $SESSION:2 'sudo bpytop' $tmux new-window -t $SESSION:3 $tmux select-window -t $SESSION:1 $tmux attach -t $SESSION