32 Commits
Author SHA1 Message Date
harish2704 d9c69f9402 Update 2026-08-04 14:41:48 +05:30
harish2704 17180fd76a Update lunarvim 2026-08-04 11:54:14 +05:30
harish2704 f039924a13 Update comment uncommet 2026-06-25 12:06:46 +05:30
harish2704 d5ac4f54a1 Updates 2026-06-25 11:27:29 +05:30
harish2704 a82f0372be Create Lazyvim configs from Lunarvim configs 2026-06-20 16:21:55 +05:30
harish2704 fab64cc52e Merge branch 'master' of github.com:harish2704/dotFiles 2026-06-15 20:49:51 +05:30
harish2704 c784a78f19 Bun lock 2026-06-15 20:49:27 +05:30
harish2704 c23fcf3dda Fixes 2026-06-15 20:49:06 +05:30
harish2704 c4e2a6d8ff Updates 2026-05-21 20:55:11 +05:30
harish2704 4f21a56a1f Disable nvm
mycp cmd
2026-02-05 09:51:22 +05:30
harish2704 30868d74f9 Update local npm pkgs 2026-02-05 09:49:47 +05:30
harish2704 0c85b15303 More daily utility functions 2026-02-05 09:49:25 +05:30
harish2704 236e611f02 Gemini cli 2026-01-25 09:36:37 +05:30
harish2704 23d982d2ff Cleanup 2026-01-25 09:36:19 +05:30
harish2704 060912b1e5 Update 2026-01-25 09:35:22 +05:30
harish2704 00bc959a9b Update 2026-01-16 16:42:34 +05:30
harish2704 42fa5a0426 Update 2026-01-16 16:40:40 +05:30
harish2704 3fae61dfb7 Update utils 2026-01-16 16:27:01 +05:30
harish2704 2a0690319a Added claude 2025-11-15 12:12:04 +05:30
harish2704 491d6a090e Updates 2025-11-15 12:11:32 +05:30
harish2704 56598f5170 Fix 2025-10-30 10:40:44 +05:30
harish2704 bb193b5d92 Additional packages 2025-10-30 10:34:41 +05:30
harish2704 d393de9c85 Yarn set node_modules as default linker 2025-10-30 10:33:59 +05:30
harish2704 62eb9ce9e9 Git permission reset 2025-10-30 10:33:35 +05:30
harish2704 e7c43758ce Allow opening filename:linenumber format argument 2025-10-30 10:33:27 +05:30
harish2704 7d30e2268b Updates 2025-06-23 13:26:33 +05:30
harish2704 a86b7a52b3 Rm widgets 2025-06-23 13:25:49 +05:30
harish2704 51e8684012 Update 2025-06-23 13:25:19 +05:30
harish2704 ca39e5bc8e Added ipx image optimizer 2025-06-23 13:22:11 +05:30
harish2704 ad40802680 Added lazyvim 2025-06-23 13:21:24 +05:30
harish2704 b1bd687f83 Added more desktops 2025-04-03 15:27:58 +05:30
harish2704 433cbb7c57 * Fix Ibus switching in Chromium. Use my own cli tool for switching ibus layout
* Fix Lvim launcher in spacefm
* Remove old ibus related services from Plasma configs
2025-03-23 12:30:24 +05:30
76 changed files with 29143 additions and 9782 deletions
+1
View File
@@ -1,4 +1,5 @@
home/.local/Apps/neovim-distros/lunarvim/cache home/.local/Apps/neovim-distros/lunarvim/cache
home/.local/Apps/neovim-distros/lunarvim/share home/.local/Apps/neovim-distros/lunarvim/share
home/.local/Apps/neovim-distros/lunarvim/LunarVim home/.local/Apps/neovim-distros/lunarvim/LunarVim
home/.local/Apps/neovim-distros/LazyVim
node_modules node_modules
+3
View File
@@ -0,0 +1,3 @@
[submodule "home/.local/Apps/neovim-distros/lunarvim/LunarVim"]
path = home/.local/Apps/neovim-distros/lunarvim/LunarVim
url = https://github.com/jukrb0x/LunarVim
+17 -6
View File
@@ -26,7 +26,7 @@ C_YELLOW1="\[\e[38;5;226m\]"
C_AQUAMARINE1="\[\e[38;5;86m\]" C_AQUAMARINE1="\[\e[38;5;86m\]"
PS1="${F_BOLD}${C_AQUAMARINE1}\u@\h${C_YELLOW1} \w \\\$${NO_FORMAT} " PS1="${F_BOLD}${C_AQUAMARINE1}\u@\h${C_YELLOW1} \w \\\$${NO_FORMAT} "
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion # [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
export DOCKER_HOST=unix:///run/user/$UID/podman/podman.sock export DOCKER_HOST=unix:///run/user/$UID/podman/podman.sock
@@ -37,13 +37,13 @@ export HISTFILESIZE=11000
alias ip='ip --color=auto' alias ip='ip --color=auto'
export NVM_DIR="$HOME/.nvm" # export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm # [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
export PYENV_ROOT="$HOME/.pyenv" #export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH" #[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)" #eval "$(pyenv init -)"
# bun # bun
@@ -52,3 +52,14 @@ export PATH="$BUN_INSTALL/bin:$PATH"
. "$HOME/.deno/env" . "$HOME/.deno/env"
source $HOME/.local/share/bash-completion/completions/deno.bash source $HOME/.local/share/bash-completion/completions/deno.bash
eval "$(~/.local/bin/mise activate bash)" eval "$(~/.local/bin/mise activate bash)"
# PATH="$HOME/perl5/bin${PATH:+:${PATH}}"; export PATH;
# PERL5LIB="$HOME/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
# PERL_LOCAL_LIB_ROOT="$HOME/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
# PERL_MB_OPT="--install_base \"$HOME/perl5\""; export PERL_MB_OPT;
# PERL_MM_OPT="INSTALL_BASE=$HOME/perl5"; export PERL_MM_OPT;
mycp(){
mkdir -p "$(dirname "$2" )";
cp "$1" "$2";
}
-15
View File
@@ -1,15 +0,0 @@
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Gwibber
X-GNOME-FullName=Gwibber Social Networking
GenericName=Social Networking
Comment=Update your microblog and view others' statuses
Icon=gwibber
Exec=gwibber-service
OnlyShowIn=GNOME;Unity;
AutostartCondition=GSettings org.gwibber.preferences autostart
X-GNOME-Autostart-Delay=30
NoDisplay=false
X-GNOME-Autostart-enabled=false
Hidden=true
-63
View File
@@ -1,63 +0,0 @@
[Desktop Entry]
Name[pt]=Kupfer
Name[sl]=Kupfer
Name[cs]=Kupfer
GenericName[cs]=Spouštěč aplikací
Name[zh_CN]=Kupfer
Name[es]=Kupfer
GenericName[nb]=Programstarter
GenericName[ko]=응용 프로그램 실행 아이콘
GenericName[it]=Lanciatore di applicazioni
Name[eu]=Kupfer
Comment[nl]=Handige opdracht- en toegangshulp voor programma's en documenten
Comment[da]=Nemt kommando- og adgangsværktøj til programmer og dokumenter
Comment[pt]=Ferramenta conveniente para acesso e gestão de aplicações e documentos
GenericName[fr]=Lanceur d'applications
Comment[de]=Praktisches Befehls- und Zugriffswerkzeug für Anwendungen und Dokumente
Type=Application
X-GNOME-Autostart-enabled=true
Name=Kupfer
GenericName[da]=Programopstarter
Name[nb]=Kupfer
Exec=kupfer --no-splash
GenericName[sl]=Zaganjalnik programov
Name[ko]=쿠퍼
Comment[es]=Herramienta para acceso y manejo de aplicaciones y documentos
GenericName[de]=Anwendungsstarter
GenericName[pl]=Aktywator programów
Name[gl]=Kupfer
Comment[sv]=Praktiskt kommandoprogram för åtkomst av program och dokument
Comment[nb]=Praktiskt kommandoverktøy for programmer og dokumenter
Comment[eu]=Komando eta atzipen tresna egokia aplikazio eta dokumentuentzat
Icon=kupfer
Name[sv]=Kupfer
Comment[it]=Comodo comando e strumento di accesso per applicazioni e documenti
GenericName[eu]=Aplikazioen abiarazlea
GenericName[zh_CN]=程序启动器
GenericName[es]=Lanzador de aplicaciones
Name[tr]=Kupfer
GenericName[tr]=Uygulama Çalıştırıcı
GenericName=Application Launcher
Comment[cs]=Nástroj pro pohodlné provádění příkazů a přístup k aplikacím a dokumentům
Name[nl]=Kupfer
Name[it]=Kupfer
X-UserData=$CONFIG/kupfer;$DATA/kupfer;$CACHE/kupfer
Comment[gl]=Ferramenta cómoda para controlar e acceder a aplicativos e documentos
Name[pl]=Kupfer
GenericName[sv]=Programstartare
GenericName[gl]=Iniciador de aplicativos
StartupNotify=true
Comment=Convenient command and access tool for applications and documents
Comment[pl]=Wygodne narzędzie do uruchamiania aplikacji i otwierania dokumentów
Comment[sl]=Prikladno orodje za izvajanje ukazov in dostopa do programov in dokumentov
Comment[zh_CN]=方便的命令和操作程序或文档的工具
GenericName[nl]=Programmastarter
Comment[ko]=편리하게 응용프로그램이나 문서에 접근하고 명령을 내릴 수 있는 도구
Version=1.0
Comment[fr]=Outil pratique de lancement et de contrôle d'applications et de documents
Categories=Utility;
Name[de]=Kupfer
GenericName[pt]=Lançador de Aplicações
Name[da]=Kupfer
Name[fr]=Kupfer
@@ -1,11 +0,0 @@
[Desktop Entry]
Name=Ubuntu One
Exec=/bin/sh -c '[ -d "$HOME/Ubuntu One" ] && ubuntuone-launch'
Type=Application
X-GNOME-Autostart-Delay=30
Icon=ubuntuone
Comment= 
NoDisplay=false
X-Ubuntu-Gettext-Domain=ubuntuone-client
X-GNOME-Autostart-enabled=false
Hidden=true
@@ -1,165 +0,0 @@
[Desktop Entry]
Encoding=UTF-8
Name=Update Notifier
Name[af]=Opdateringskennisgewing
Name[am]=የማሻሻያ አሳሳቢ
Name[an]=Notificador d'esvielles
Name[ar]=مشعر التحديثات
Name[ast]=Notificador d'anovamientos
Name[be]=Паведамляльнік абнаўленьняў
Name[bg]=Известяване за обновления
Name[bn]=হালনাগাদ পর্যবেক্ষক
Name[br]=Meziant da gemenn an hizivadurioù
Name[bs]=Ukazivanje na nova unaprjeđenja
Name[ca]=Gestor d'actualitzacions
Name[ca@valencia]=Gestor d'actualitzacions
Name[cs]=Oznamování aktualizací
Name[csb]=Wiédzba ò aktualizacëjach
Name[da]=Opdateringspåmindelse
Name[de]=Aktualisierungsbenachrichtigung
Name[el]=Ειδοποίηση ενημερώσεων
Name[en_AU]=Update Notifier
Name[en_CA]=Update Notifier
Name[en_GB]=Update Notifier
Name[eo]=Atentigilo pri ĝisdatigoj
Name[es]=Notificador de actualizaciones
Name[et]=Uuendustest teataja
Name[eu]=Eguneratze berriemailea
Name[fi]=Päivitysilmoitin
Name[fo]=Frásøguforrit til dagføringar
Name[fr]=Notificateur de mises à jour
Name[fy]=Bywurkingmelder
Name[gd]=Cuir fios air ùrachadh
Name[gl]=Notificador de actualizacións
Name[he]=מתריע העדכונים
Name[hi]=अद्यतन अधिसूचक
Name[hr]=Update Notifier
Name[hu]=Frissítésfigyelő
Name[id]=Pemberitahu Update
Name[is]=Tilkynningar um uppfærslur
Name[it]=Notifica aggiornamenti
Name[ja]=アップデート通知
Name[ka]=განახლებების მაცნე
Name[kk]=Жаңартулар мәлімдемелері
Name[km]=កម្មវិធី​ជូន​ដំណឹង​បច្ចុប្បន្នភាព
Name[ko]=업데이트 알리미
Name[ku]=Hişyarkera Rojanekirinê
Name[lt]=Atnaujinimų pranešiklis
Name[lv]=Atjaunināšanu atgādinātājs
Name[mn]=Шинэчлэл мэдээлэгч
Name[mr]=नुतनीकरण दर्शक.
Name[ms]=Pemaklum Kemaskini
Name[my]=Update Notifier
Name[nb]=Oppdateringsvarsler
Name[nds]=Opfrischenhenwies
Name[nl]=Updatemelder
Name[nn]=Oppdateringsvarslar
Name[oc]=Notificador de mesas a jorn
Name[pa]=ਅੱਪਡੇਟ ਸੂਚਨਾ
Name[pl]=Powiadamianie o aktualizacjach
Name[pt]=Notificador de Actualizações
Name[pt_BR]=Notificador de atualizações
Name[ro]=Notificare actualizări
Name[ru]=Оповещение об обновлениях
Name[si]=යාවත්කාලින නිවේදකය
Name[sk]=Upozornenie na aktualizácie
Name[sl]=Obvestilnik o posodobitvah
Name[sq]=Njoftuesi i Rifreskimeve
Name[sr]=Обавештавач освежења
Name[sv]=Uppdateringsnotifierare
Name[ta]=புதுப்பிப்பு அறிவிப்பாளர்
Name[te]=నవీకరణ-సూచిక
Name[th]=โปรแกรมแจ้งเตือนการปรับปรุง
Name[tr]=Güncelleştirme Bildiricisi
Name[ug]=يېڭىلاش خەۋەرچىسى
Name[uk]=Сповіщення про оновлення
Name[vi]=Trình Nhắc nhở cập nhật
Name[zh_CN]=更新提示
Name[zh_HK]=更新通知程式
Name[zh_TW]=更新通告
Comment=Check for available updates automatically
Comment[af]=Kontroleer automaties vir nuwe opdaterings
Comment[an]=Comprebar automaticament os esvielles disponibles
Comment[ar]=التمس التحديثات تلقائيا
Comment[ast]=Comprobar automáticamente los anovamientos disponibles
Comment[be]=Правяраць на даступнасьць абнаўленьняў аўтаматычна
Comment[bg]=Автоматична проверка за налични актуализации
Comment[bn]=স্বয়ংক্রিয়ভাবে নতুন হালনাগাদের জন্য খোঁজ করা হবে
Comment[br]=Gwiriañ hizivadurioù hegerz emgefre
Comment[bs]=Automatski provjeriti da li ima dostupnih unaprjeđenja
Comment[ca]=Comprova si hi ha actualizacions disponibles automàticament.
Comment[ca@valencia]=Comprova si hi ha actualizacions disponibles automàticament.
Comment[cs]=Automaticky kontrolovat dostupné aktualizace
Comment[csb]=Aùtomatné sprôwdzanié przëstãpnotë aktualizacëjów
Comment[da]=Kontrollér automatisk for tilgængelige opdateringer
Comment[de]=Automatisch nach verfügbaren Aktualisierungen suchen
Comment[el]=Αυτόματος έλεγχος για ενημερώσεις
Comment[en_AU]=Check for available updates automatically
Comment[en_CA]=Check for available updates automatically
Comment[en_GB]=Check for available updates automatically
Comment[eo]=Aŭtomate kontroli pri disponeblaj ĝisdatigoj
Comment[es]=Comprobar automáticamente las actualizaciones disponibles
Comment[et]=Olemasolevate uuenduste automaatne kontroll
Comment[eu]=Automatikoki bilatu eguneraketa berriak
Comment[fi]=Tarkista saatavilla olevat päivitykset automaattisesti
Comment[fo]=Kanna sjálvvirkandi eftir tøkum dagførslum
Comment[fr]=Vérifier automatiquement la disponibilité de mises à jour
Comment[gd]=Sgrùd son ùrachadh fèin-obrachail ri làimh
Comment[gl]=Comprobar automaticamente as actualizacións dispoñíbeis
Comment[he]=בדיקה אוטומטית אחר עדכונים
Comment[hi]=स्वतः अद्यतन उपलब्धता हेतु जाँच
Comment[hr]=Automatski provjeri za dostupne nadogradnje
Comment[hu]=Frissítések keresése automatikusan
Comment[id]=Periksa keberadaan pembaruan secara otomatis
Comment[is]=Leita að uppfærslum sjálfkrafa
Comment[it]=Controlla automaticamente la disponibilità di aggiornamenti
Comment[ja]=利用可能なアップデートを自動的にチェックする
Comment[ka]=განახლებებზე ავტომატური შემოწმება
Comment[kk]=Жаңартулардың жетімдігін автоматты түрде тексеру
Comment[km]=ពិនិត្យ​មើល​បច្ចុប្បន្នភាព​ដែល​មាន​ដោយ​ស្វ័យ​ប្រវត្តិ
Comment[ko]=자동으로 사용할 수 있는 업데이트 확인
Comment[ku]=Bixweber li rojanekirinên amade bigere
Comment[lt]=Ieškoti prieinamų atnaujinimų automatiškai
Comment[lv]=Automātiski pārbaudīt pieejamos jauninājumus
Comment[mn]=Идэвхитэй шинэчлэлийг автоматаар шалгах
Comment[mr]=उपलब्ध अपडेट्स आपोआप शोधा.
Comment[ms]=Periksa kemaskini yang sedia ada secara automatik.
Comment[my]=ရရှိနိုင်သော Updates များကိုအလိုအလျောက်စစ်ဆေးမည်။
Comment[nb]=Se etter tilgjengelige oppdateringer automatisk
Comment[nds]=Nah verfögbaren Opfrischen vun alleen söken
Comment[nl]=Automatisch op updates controleren
Comment[nn]=Sjå etter tilgjengelege oppdateringar automatisk
Comment[oc]=Verificar automaticament la disponibilitat de mesas a jorn
Comment[pa]=ਉਪਲੱਬਧ ਅੱਪਡੇਟ ਲਈ ਆਟੋਮੈਟਿਕ ਹੀ ਚੈੱਕ ਕਰੋ
Comment[pl]=Automatyczne sprawdzanie dostępności aktualizacji
Comment[pt]=Verificar actualizações disponíveis automaticamente
Comment[pt_BR]=Verificar automaticamente se há atualizações disponíveis
Comment[ro]=Verifică automat actualizările disponibile
Comment[ru]=Автоматически проверять наличие обновлений
Comment[sd]=دستياب تازگيون پاڻمرادو چڪاسجن
Comment[si]=ලබා ගත හැකි යාවත්කාලින සඳහා ස්වයංක්‍රීයව පරික්ෂා කරන්න
Comment[sk]=Automaticky kontrolovať dostupné aktualizácie
Comment[sl]=Samodejno preveri za posodobitve
Comment[sq]=Kontrollo automatikisht për përditësimet e disponueshme
Comment[sr]=Аутоматски провери да ли има доступних освежења
Comment[sv]=Leta automatiskt efter tillgängliga uppdateringar
Comment[te]=అందుబాటులోనున్న నవీకరణలను స్వయంచాలకంగా ప్రయత్నించు
Comment[th]=ตรวจสอบการปรับปรุงที่ได้รับการอนุญาตโดยอัตโนมัติ
Comment[tr]=Güncelleştirmeleri otomatik olarak denetle
Comment[ug]=يېڭىلانمىلارنىڭ بار يوقلۇقىنى ئاپتوماتىك تەكشۈرسۇن
Comment[uk]=Автоматично перевіряти наявність оновлень
Comment[vi]=Tự động kiểm tra về các bản cập nhật đang có
Comment[zh_CN]=自动检测可用的更新
Comment[zh_HK]=自動檢查可用的更新
Comment[zh_TW]=自動檢查更新
Icon=update-notifier
Exec=update-notifier
Terminal=false
Type=Application
Categories=
NotShowIn=KDE;
NoDisplay=false
X-GNOME-Autostart-Delay=60
X-Ubuntu-Gettext-Domain=update-notifier
X-GNOME-Autostart-enabled=false
Hidden=true
@@ -1,15 +0,0 @@
[Desktop Entry]
Name=Desktop Sharing
Comment=GNOME Desktop Sharing Server
Exec=/usr/lib/vino/vino-server --sm-disable
Icon=preferences-desktop-remote-desktop
OnlyShowIn=GNOME;Unity;
Terminal=false
Type=Application
AutostartCondition=GSettings org.gnome.Vino enabled
X-GNOME-Autostart-Phase=Applications
X-GNOME-AutoRestart=true
NoDisplay=false
X-Ubuntu-Gettext-Domain=vino
X-GNOME-Autostart-enabled=false
Hidden=true
+6
View File
@@ -1,2 +1,8 @@
[containers] [containers]
label=false label=false
[network]
# default_rootless_network_cmd = "pasta"
# pasta_options = ["-t", "4080-4080:80-80"]
# pasta_options = ["-a", "10.0.2.0", "-n", "24", "-g", "10.0.2.2", "--dns-forward", "10.0.2.3"]
# pasta_options = [ "-I", "tap0", "--ipv4-only", "-a", "10.0.2.0", "-n", "24", "-g", "10.0.2.2", "--dns-forward", "10.0.2.3", "--no-ndp", "--no-dhcpv6", "--no-dhcp" ]
+12 -6
View File
@@ -1,5 +1,6 @@
[ActivityManager] [ActivityManager]
_k_friendly_name=Activity Manager _k_friendly_name=Activity Manager
switch-to-activity-5631f9b9-eda6-43ff-826c-7cb51e8f26f5=none,none,Switch to activity "Default"
switch-to-activity-acb90208-98fb-44c9-a0d0-ed2e3c67520c=none,none,Switch to activity "Default" switch-to-activity-acb90208-98fb-44c9-a0d0-ed2e3c67520c=none,none,Switch to activity "Default"
[KDE Keyboard Layout Switcher] [KDE Keyboard Layout Switcher]
@@ -20,7 +21,6 @@ _k_friendly_name=Touchpad
[khotkeys] [khotkeys]
_k_friendly_name=Custom Shortcuts Service _k_friendly_name=Custom Shortcuts Service
{2b2f3d81-c5fb-49ee-832d-75aab6b21a1d}=Ctrl+Space,none,Ibus next eng
{3c04e4ea-1f6e-430e-82bb-0e4adb79a6a3}=none,none,Scan {3c04e4ea-1f6e-430e-82bb-0e4adb79a6a3}=none,none,Scan
{5d4c37a6-d8b3-40b0-aa6a-92f325302538}=none,none,Save Profile 1 {5d4c37a6-d8b3-40b0-aa6a-92f325302538}=none,none,Save Profile 1
{81787487-f07d-4111-b1cf-9da1406075ca}=none,none,Load Profile 1 {81787487-f07d-4111-b1cf-9da1406075ca}=none,none,Load Profile 1
@@ -43,7 +43,7 @@ mute=Volume Mute,Volume Mute,Mute
[ksmserver] [ksmserver]
Halt Without Confirmation=none,,Shut Down Without Confirmation Halt Without Confirmation=none,,Shut Down Without Confirmation
Lock Session=Meta+L\tCtrl+Alt+L\tScreensaver,Meta+L\tScreensaver,Lock Session Lock Session=Meta+L\tCtrl+Alt+L\tScreensaver,Meta+L\tScreensaver,Lock Session
Log Out=Ctrl+Alt+Del,Ctrl+Alt+Del,Show Logout Prompt Log Out=Ctrl+Alt+Del,Ctrl+Alt+Del,Show Logout Screen
Log Out Without Confirmation=none,,Log Out Without Confirmation Log Out Without Confirmation=none,,Log Out Without Confirmation
LogOut=none,,Log Out LogOut=none,,Log Out
Reboot=none,,Reboot Reboot=none,,Reboot
@@ -135,6 +135,10 @@ Walk Through Windows of Current Application Alternative (Reverse)=none,,Walk Thr
Window Above Other Windows=none,,Keep Window Above Others Window Above Other Windows=none,,Keep Window Above Others
Window Below Other Windows=none,,Keep Window Below Others Window Below Other Windows=none,,Keep Window Below Others
Window Close=Alt+F4,Alt+F4,Close Window Window Close=Alt+F4,Alt+F4,Close Window
Window Custom Quick Tile Bottom=none,,Custom Quick Tile Window to the Bottom
Window Custom Quick Tile Left=none,,Custom Quick Tile Window to the Left
Window Custom Quick Tile Right=none,,Custom Quick Tile Window to the Right
Window Custom Quick Tile Top=none,,Custom Quick Tile Window to the Top
Window Fullscreen=Ctrl+F11,,Make Window Fullscreen Window Fullscreen=Ctrl+F11,,Make Window Fullscreen
Window Grow Horizontal=none,,Expand Window Horizontally Window Grow Horizontal=none,,Expand Window Horizontally
Window Grow Vertical=none,,Expand Window Vertically Window Grow Vertical=none,,Expand Window Vertically
@@ -206,6 +210,7 @@ Window to Screen 5=none,,Move Window to Screen 5
Window to Screen 6=none,,Move Window to Screen 6 Window to Screen 6=none,,Move Window to Screen 6
Window to Screen 7=none,,Move Window to Screen 7 Window to Screen 7=none,,Move Window to Screen 7
_k_friendly_name=KWin _k_friendly_name=KWin
disableInputCapture=Meta+Shift+Esc,Meta+Shift+Esc,Disable Active Input Capture
view_actual_size=Meta+0,Meta+0,Zoom to Actual Size view_actual_size=Meta+0,Meta+0,Zoom to Actual Size
view_zoom_in=Meta+=,Meta++\tMeta+=,Zoom In view_zoom_in=Meta+=,Meta++\tMeta+=,Zoom In
view_zoom_out=Meta+-,Meta+-,Zoom Out view_zoom_out=Meta+-,Meta+-,Zoom Out
@@ -234,14 +239,14 @@ PowerOff=Power Off,Power Off,Power Off
Sleep=Sleep,Sleep,Suspend Sleep=Sleep,Sleep,Suspend
Toggle Keyboard Backlight=Keyboard Light On/Off,Keyboard Light On/Off,Toggle Keyboard Backlight Toggle Keyboard Backlight=Keyboard Light On/Off,Keyboard Light On/Off,Toggle Keyboard Backlight
Turn Off Screen=none,none,Turn Off Screen Turn Off Screen=none,none,Turn Off Screen
_k_friendly_name=KDE Power Management System _k_friendly_name=Power Management
powerProfile=Battery\tMeta+B,Battery\tMeta+B,Switch Power Profile powerProfile=Battery\tMeta+B,Battery\tMeta+B,Switch Power Profile
[plasmashell] [plasmashell]
_k_friendly_name=plasmashell _k_friendly_name=plasmashell
activate application launcher=Meta,Meta\tAlt+F1,Activate Application Launcher activate application launcher=Meta,Meta\tAlt+F1,Activate Application Launcher
activate task manager entry 1=Meta+1,Meta+1,Activate Task Manager Entry 1 activate task manager entry 1=Meta+1,Meta+1,Activate Task Manager Entry 1
activate task manager entry 10=none,Meta+0,Activate Task Manager Entry 10 activate task manager entry 10=none,,Activate Task Manager Entry 10
activate task manager entry 2=Meta+2,Meta+2,Activate Task Manager Entry 2 activate task manager entry 2=Meta+2,Meta+2,Activate Task Manager Entry 2
activate task manager entry 3=Meta+3,Meta+3,Activate Task Manager Entry 3 activate task manager entry 3=Meta+3,Meta+3,Activate Task Manager Entry 3
activate task manager entry 4=Meta+4,Meta+4,Activate Task Manager Entry 4 activate task manager entry 4=Meta+4,Meta+4,Activate Task Manager Entry 4
@@ -251,6 +256,7 @@ activate task manager entry 7=Meta+7,Meta+7,Activate Task Manager Entry 7
activate task manager entry 8=Meta+8,Meta+8,Activate Task Manager Entry 8 activate task manager entry 8=Meta+8,Meta+8,Activate Task Manager Entry 8
activate task manager entry 9=Meta+9,Meta+9,Activate Task Manager Entry 9 activate task manager entry 9=Meta+9,Meta+9,Activate Task Manager Entry 9
activate widget 27=none,none,Activate Task Manager Widget activate widget 27=none,none,Activate Task Manager Widget
activate widget 3=Meta+F12,none,Activate Panel Widget
activate widget 4=Alt+F1,none,Activate Application Launcher Widget activate widget 4=Alt+F1,none,Activate Application Launcher Widget
activate widget 69=none,none,Activate Digital Clock Widget activate widget 69=none,none,Activate Digital Clock Widget
clear-history=none,none,Clear Clipboard History clear-history=none,none,Clear Clipboard History
@@ -271,8 +277,8 @@ switch to next activity=none,,Switch to Next Activity
switch to previous activity=none,,Switch to Previous Activity switch to previous activity=none,,Switch to Previous Activity
toggle do not disturb=none,,Toggle do not disturb toggle do not disturb=none,,Toggle do not disturb
[services][ibus-next-engine.py.desktop] [services][net.local.ibus-next-engine.py.desktop]
_launch=Ctrl+Shift+Space _launch=Ctrl+Space
[services][org.flameshot.Flameshot.desktop] [services][org.flameshot.Flameshot.desktop]
Capture=Ctrl+Shift+Print Capture=Ctrl+Shift+Print
-38
View File
@@ -993,44 +993,6 @@ TriggersCount=1
GesturePointData=0,0.0625,-0.5,0.5,1,0.0625,0.0625,-0.5,0.5,0.875,0.125,0.0625,-0.5,0.5,0.75,0.1875,0.0625,-0.5,0.5,0.625,0.25,0.0625,-0.5,0.5,0.5,0.3125,0.0625,-0.5,0.5,0.375,0.375,0.0625,-0.5,0.5,0.25,0.4375,0.0625,-0.5,0.5,0.125,0.5,0.0625,0.5,0.5,0,0.5625,0.0625,0.5,0.5,0.125,0.625,0.0625,0.5,0.5,0.25,0.6875,0.0625,0.5,0.5,0.375,0.75,0.0625,0.5,0.5,0.5,0.8125,0.0625,0.5,0.5,0.625,0.875,0.0625,0.5,0.5,0.75,0.9375,0.0625,0.5,0.5,0.875,1,0,0,0.5,1 GesturePointData=0,0.0625,-0.5,0.5,1,0.0625,0.0625,-0.5,0.5,0.875,0.125,0.0625,-0.5,0.5,0.75,0.1875,0.0625,-0.5,0.5,0.625,0.25,0.0625,-0.5,0.5,0.5,0.3125,0.0625,-0.5,0.5,0.375,0.375,0.0625,-0.5,0.5,0.25,0.4375,0.0625,-0.5,0.5,0.125,0.5,0.0625,0.5,0.5,0,0.5625,0.0625,0.5,0.5,0.125,0.625,0.0625,0.5,0.5,0.25,0.6875,0.0625,0.5,0.5,0.375,0.75,0.0625,0.5,0.5,0.5,0.8125,0.0625,0.5,0.5,0.625,0.875,0.0625,0.5,0.5,0.75,0.9375,0.0625,0.5,0.5,0.875,1,0,0,0.5,1
Type=GESTURE Type=GESTURE
[Data_4]
Comment=Comment
DataCount=1
Enabled=true
Name=Hari-custom
SystemGroup=0
Type=ACTION_DATA_GROUP
[Data_4Conditions]
Comment=
ConditionsCount=0
[Data_4_1]
Comment=Ibus next engine
Enabled=true
Name=Ibus next eng
Type=SIMPLE_ACTION_DATA
[Data_4_1Actions]
ActionsCount=1
[Data_4_1Actions0]
CommandURL=/home/harish/.local/Apps/daily-utils/bin/ibus-next-engine.py
Type=COMMAND_URL
[Data_4_1Conditions]
Comment=
ConditionsCount=0
[Data_4_1Triggers]
Comment=Simple_action
TriggersCount=1
[Data_4_1Triggers0]
Key=Ctrl+Space
Type=SHORTCUT
Uuid={2b2f3d81-c5fb-49ee-832d-75aab6b21a1d}
[Data_5] [Data_5]
Comment=Shortcuts for Skanlite Comment=Shortcuts for Skanlite
DataCount=7 DataCount=7
+31 -15
View File
@@ -1,6 +1,9 @@
[$Version] [$Version]
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 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
[Activities][LastVirtualDesktop]
5631f9b9-eda6-43ff-826c-7cb51e8f26f5=84ef5d92-b39b-4f01-b593-76799daa2ce0
[Compositing] [Compositing]
GLTextureFilter=1 GLTextureFilter=1
LatencyPolicy=Medium LatencyPolicy=Medium
@@ -11,6 +14,9 @@ Id_1=530b2e8c-a321-41ca-ba52-2fba5b5e2f52
Id_10=af9aa3e6-6382-4ccb-a92d-800b0b1f74a7 Id_10=af9aa3e6-6382-4ccb-a92d-800b0b1f74a7
Id_11=7aaace88-9ee2-43c0-844c-19c5514523d3 Id_11=7aaace88-9ee2-43c0-844c-19c5514523d3
Id_12=63c876d8-76e7-4a8b-9903-7b30d31363e2 Id_12=63c876d8-76e7-4a8b-9903-7b30d31363e2
Id_13=092794f6-c66a-4fc1-a45f-3d785a9ef4e8
Id_14=1165984d-098d-4983-8f5d-dcb4c82981c4
Id_15=21eb75c5-52fe-4e36-9ab1-f1371025d8f4
Id_2=76ffaa94-4f73-4520-a3e0-480eb3fa4d87 Id_2=76ffaa94-4f73-4520-a3e0-480eb3fa4d87
Id_3=84ef5d92-b39b-4f01-b593-76799daa2ce0 Id_3=84ef5d92-b39b-4f01-b593-76799daa2ce0
Id_4=5fe31393-808e-4747-8bfe-9a4df1075a59 Id_4=5fe31393-808e-4747-8bfe-9a4df1075a59
@@ -19,18 +25,22 @@ Id_6=0259dad0-c996-46c7-b8a1-364756a779ed
Id_7=fc82803a-f727-408a-aa1f-84e76c11c1cf Id_7=fc82803a-f727-408a-aa1f-84e76c11c1cf
Id_8=a52131ec-edac-4001-965f-ce878e73377e Id_8=a52131ec-edac-4001-965f-ce878e73377e
Id_9=2feaf12f-0461-4372-8878-fdf5f282aec0 Id_9=2feaf12f-0461-4372-8878-fdf5f282aec0
Name_10=Desktop 2 Name_1=D1
Name_11=Desktop 3 Name_10=D10
Name_12=Desktop 4 Name_11=D11
Name_2=New Desktop Name_12=D12
Name_3=New Desktop Name_13=D13
Name_4=New Desktop Name_14=D14
Name_5=New Desktop Name_15=D15
Name_6=New Desktop Name_2=D2
Name_7=New Desktop Name_3=D3
Name_8=New Desktop Name_4=D4
Name_9=New Desktop Name_5=D5
Number=12 Name_6=D6
Name_7=D7
Name_8=D8
Name_9=D9
Number=15
Rows=3 Rows=3
[NightColor] [NightColor]
@@ -38,7 +48,7 @@ Active=true
LatitudeAuto=9.9185 LatitudeAuto=9.9185
LongitudeAuto=76.2558 LongitudeAuto=76.2558
Mode=Constant Mode=Constant
NightTemperature=4200 NightTemperature=4800
[Plugins] [Plugins]
desktopchangeosdEnabled=true desktopchangeosdEnabled=true
@@ -67,6 +77,9 @@ tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"wi
[Tiling][4f220735-699f-553f-a72e-7a926d3f0774] [Tiling][4f220735-699f-553f-a72e-7a926d3f0774]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
[Tiling][5ff9608b-9606-5820-afce-f307ffff35eb]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
[Tiling][620b6d4f-c2c0-5dcb-abfb-a14e98a46430] [Tiling][620b6d4f-c2c0-5dcb-abfb-a14e98a46430]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
@@ -91,6 +104,9 @@ tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"wi
[Tiling][ccd244ca-5575-569f-a8c9-ce17c79b0288] [Tiling][ccd244ca-5575-569f-a8c9-ce17c79b0288]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
[Tiling][d02c035d-eef0-5c68-aa2f-2e83d0ba08b1]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
[Tiling][e0ede2ad-3993-5f06-892f-6edfc85dc7f2] [Tiling][e0ede2ad-3993-5f06-892f-6edfc85dc7f2]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]} tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
@@ -108,5 +124,5 @@ RollOverDesktops=false
Scale=1 Scale=1
[org.kde.kdecoration2] [org.kde.kdecoration2]
library=org.kde.kwin.aurorae library=org.kde.breeze
theme=__aurorae__svg__Breezemite theme=Breeze
+39
View File
@@ -224,3 +224,42 @@ vmap <C-h> "fy:%s#<C-r>f#
" Copy current word to 'f' register, search for that word " Copy current word to 'f' register, search for that word
vmap <C-f> "fy/<C-r>f vmap <C-f> "fy/<C-r>f
colorscheme elflord colorscheme elflord
" Automatically open file:line: arguments
augroup OpenFileWithLineNumber
autocmd!
" Trigger when a buffer is added or created
autocmd BufAdd,BufNewFile * call s:ParseFileAndLine(bufname('%'))
augroup END
function! s:ParseFileAndLine(bufferName)
" Use regex to match the 'filename:linenumber:' format
" \v = very magic regex
" ^(.+): = Capture group 1: (anything) followed by :
" (\d+):$ = Capture group 2: (digits) followed by : at the end
let s:matches = matchlist(a:bufferName, '\v^(.+):(\d+):?$')
" If the pattern didn't match, do nothing
if empty(s:matches)
return
endif
" Extract the real file name and line number
let s:real_file = s:matches[1]
let s:line_num = s:matches[2]
" --- This is the important part ---
" 1. Mark the current dummy buffer (e.g., 'default.conf:38:')
" to be deleted as soon as it's hidden.
setlocal bufhidden=delete
" 2. Open the *real* file, jumping to the correct line.
" This 'edit' command replaces the dummy buffer in the
" current window. Because the dummy buffer is now hidden
" and marked 'bufhidden=delete', it gets removed.
execute 'edit! +' . s:line_num . ' ' . fnameescape(s:real_file)
doautocmd filetypedetect BufRead
endfunction
@@ -24,15 +24,15 @@ plugin=org.kde.plasma.digitalclock
[Containments][3][Applets][21][Configuration] [Containments][3][Applets][21][Configuration]
PreloadWeight=100 PreloadWeight=100
popupHeight=450 popupHeight=450
popupWidth=396 popupWidth=810
[Containments][3][Applets][21][Configuration][Appearance] [Containments][3][Applets][21][Configuration][Appearance]
selectedTimeZones=America/New_York,Europe/Zagreb,Local selectedTimeZones=America/New_York,Europe/Zagreb,Local
showSeconds=true showSeconds=Always
[Containments][3][Applets][21][Configuration][ConfigDialog] [Containments][3][Applets][21][Configuration][ConfigDialog]
DialogHeight=660 DialogHeight=540
DialogWidth=880 DialogWidth=720
[Containments][3][Applets][22] [Containments][3][Applets][22]
immutability=1 immutability=1
@@ -49,7 +49,7 @@ plugin=org.kde.plasma.taskmanager
PreloadWeight=26 PreloadWeight=26
[Containments][3][Applets][27][Configuration][General] [Containments][3][Applets][27][Configuration][General]
launchers=preferred://filemanager,preferred://browser launchers=
[Containments][3][Applets][28] [Containments][3][Applets][28]
immutability=1 immutability=1
@@ -57,7 +57,7 @@ plugin=org.kde.plasma.icon
[Containments][3][Applets][28][Configuration] [Containments][3][Applets][28][Configuration]
PreloadWeight=26 PreloadWeight=26
localPath=/home/harish/.local/share/plasma_icons/org.kde.kwrite.desktop localPath=$HOME/.local/share/plasma_icons/org.kde.kwrite.desktop
url=file:///usr/share/applications/org.kde.kwrite.desktop url=file:///usr/share/applications/org.kde.kwrite.desktop
[Containments][3][Applets][31] [Containments][3][Applets][31]
@@ -65,7 +65,7 @@ immutability=1
plugin=org.kde.plasma.icon plugin=org.kde.plasma.icon
[Containments][3][Applets][31][Configuration] [Containments][3][Applets][31][Configuration]
localPath=/home/harish/.local/share/plasma_icons/systemsettings.desktop localPath=$HOME/.local/share/plasma_icons/systemsettings.desktop
url=file:///usr/share/applications/systemsettings.desktop url=file:///usr/share/applications/systemsettings.desktop
[Containments][3][Applets][38] [Containments][3][Applets][38]
@@ -73,7 +73,7 @@ immutability=1
plugin=org.kde.plasma.icon plugin=org.kde.plasma.icon
[Containments][3][Applets][38][Configuration] [Containments][3][Applets][38][Configuration]
localPath=/home/harish/.local/share/plasma_icons/org.kde.kcalc.desktop localPath=$HOME/.local/share/plasma_icons/org.kde.kcalc.desktop
url=file:///usr/share/applications/org.kde.kcalc.desktop url=file:///usr/share/applications/org.kde.kcalc.desktop
[Containments][3][Applets][4] [Containments][3][Applets][4]
@@ -106,18 +106,74 @@ plugin=org.kde.plasma.pager
[Containments][3][Applets][5][Configuration] [Containments][3][Applets][5][Configuration]
PreloadWeight=26 PreloadWeight=26
[Containments][3][Applets][52] [Containments][3][Applets][56]
immutability=1 immutability=1
plugin=org.kde.resourcesMonitor-fork plugin=org.kde.plasma.brightness
[Containments][3][Applets][52][Configuration][Appearance] [Containments][3][Applets][56][Configuration]
fontScale=32 PreloadWeight=100
graphHeight=1 popupHeight=180
graphWidth=1 popupWidth=360
[Containments][3][Applets][52][Configuration][ConfigDialog] [Containments][3][Applets][57]
DialogHeight=660 immutability=1
DialogWidth=880 plugin=org.kde.plasma.systemmonitor
[Containments][3][Applets][57][Configuration]
CurrentPreset=org.kde.plasma.systemmonitor
PreloadWeight=75
popupHeight=360
popupWidth=308
[Containments][3][Applets][57][Configuration][Appearance]
chartFace=org.kde.ksysguard.facegrid
[Containments][3][Applets][57][Configuration][ConfigDialog]
DialogHeight=540
DialogWidth=720
[Containments][3][Applets][57][Configuration][FaceGrid][Appearance]
chartFace=org.kde.ksysguard.linechart
showTitle=false
[Containments][3][Applets][57][Configuration][FaceGrid][SensorColors]
cpu/all/system=170,0,0
cpu/all/usage=0,12,233
cpu/all/user=0,255,0
memory/physical/usedPercent=255,0,127
memory/swap/usedPercent=134,233,61
[Containments][3][Applets][57][Configuration][FaceGrid][Sensors]
highPrioritySensorIds=["memory/swap/usedPercent"]
[Containments][3][Applets][57][Configuration][SensorColors]
cpu/all/system=170,0,0
cpu/all/usage=0,12,233
cpu/all/user=0,255,0
memory/physical/usedPercent=255,0,127
memory/swap/usedPercent=134,233,61
[Containments][3][Applets][57][Configuration][Sensors]
highPrioritySensorIds=["cpu/all/system","cpu/all/usage","cpu/all/user","memory/physical/usedPercent","memory/swap/usedPercent"]
[Containments][3][Applets][57][Configuration][org.kde.ksysguard.facegrid][General]
columnCount=2
[Containments][3][Applets][59]
immutability=1
plugin=org.kde.plasma.icon
[Containments][3][Applets][59][Configuration]
localPath=$HOME/.local/share/plasma_icons/chromium-browser.desktop
url=file:///usr/share/applications/chromium-browser.desktop
[Containments][3][Applets][60]
immutability=1
plugin=org.kde.plasma.icon
[Containments][3][Applets][60][Configuration]
localPath=$HOME/.local/share/plasma_icons/org.kde.dolphin.desktop
url=file:///usr/share/applications/org.kde.dolphin.desktop
[Containments][3][Applets][8] [Containments][3][Applets][8]
immutability=1 immutability=1
@@ -135,13 +191,16 @@ DialogWidth=1920
PreloadWeight=18 PreloadWeight=18
[Containments][3][General] [Containments][3][General]
AppletOrder=4;28;38;27;52;5;22;8;21;31 AppletOrder=4;28;59;60;38;27;57;5;22;8;21;31;56
[Containments][50] [Containments][3][Shortcuts]
ItemGeometries-1536x864= global=Meta+F12
[Containments][54]
ItemGeometries-1024x768=
ItemGeometries-1920x1080= ItemGeometries-1920x1080=
ItemGeometriesHorizontal= ItemGeometriesHorizontal=
activityId=2b22975f-ece8-4bc8-a72a-f88fc0add08b activityId=5631f9b9-eda6-43ff-826c-7cb51e8f26f5
formfactor=0 formfactor=0
immutability=1 immutability=1
lastScreen=0 lastScreen=0
@@ -149,13 +208,11 @@ location=0
plugin=org.kde.plasma.folder plugin=org.kde.plasma.folder
wallpaperplugin=org.kde.image wallpaperplugin=org.kde.image
[Containments][50][General] [Containments][54][General]
ToolBoxButtonState=topcenter positions={"1024x768":[],"1920x1080":[]}
ToolBoxButtonX=377
ToolBoxButtonY=34
[Containments][51] [Containments][58]
activityId=2b22975f-ece8-4bc8-a72a-f88fc0add08b activityId=5631f9b9-eda6-43ff-826c-7cb51e8f26f5
formfactor=0 formfactor=0
immutability=1 immutability=1
lastScreen=1 lastScreen=1
@@ -163,6 +220,30 @@ location=0
plugin=org.kde.plasma.folder plugin=org.kde.plasma.folder
wallpaperplugin=org.kde.image wallpaperplugin=org.kde.image
[Containments][58][ConfigDialog]
DialogHeight=540
DialogWidth=720
[Containments][58][General]
positions={"1920x1080":[]}
[Containments][58][Wallpaper][org.kde.image][General]
Image=/usr/share/wallpapers/EveningGlow/
PreviewImage=/usr/share/wallpapers/EveningGlow/
SlidePaths=/usr/share/wallpapers/
[Containments][61]
activityId=5631f9b9-eda6-43ff-826c-7cb51e8f26f5
formfactor=0
immutability=1
lastScreen=2
location=0
plugin=org.kde.plasma.folder
wallpaperplugin=org.kde.image
[Containments][61][General]
positions={"1920x1080":[]}
[Containments][9] [Containments][9]
activityId= activityId=
formfactor=2 formfactor=2
@@ -214,7 +295,7 @@ immutability=1
plugin=org.kde.plasma.manage-inputmethod plugin=org.kde.plasma.manage-inputmethod
[Containments][9][Applets][15][Configuration] [Containments][9][Applets][15][Configuration]
PreloadWeight=26 PreloadWeight=36
[Containments][9][Applets][16] [Containments][9][Applets][16]
immutability=1 immutability=1
@@ -264,7 +345,7 @@ immutability=1
plugin=org.kde.plasma.battery plugin=org.kde.plasma.battery
[Containments][9][Applets][23][Configuration] [Containments][9][Applets][23][Configuration]
PreloadWeight=26 PreloadWeight=0
[Containments][9][Applets][24] [Containments][9][Applets][24]
immutability=1 immutability=1
@@ -280,6 +361,9 @@ plugin=org.kde.plasma.networkmanagement
[Containments][9][Applets][25][Configuration] [Containments][9][Applets][25][Configuration]
PreloadWeight=100 PreloadWeight=100
[Containments][9][Applets][25][Configuration][General]
currentDetailsTab=details
[Containments][9][Applets][26] [Containments][9][Applets][26]
immutability=1 immutability=1
plugin=org.kde.plasma.mediacontroller plugin=org.kde.plasma.mediacontroller
@@ -294,6 +378,20 @@ plugin=org.kde.kscreen
[Containments][9][Applets][42][Configuration] [Containments][9][Applets][42][Configuration]
PreloadWeight=65 PreloadWeight=65
[Containments][9][Applets][53]
immutability=1
plugin=org.kde.plasma.cameraindicator
[Containments][9][Applets][55]
immutability=1
plugin=org.kde.plasma.brightness
[Containments][9][Applets][55][Configuration]
PreloadWeight=0
[Containments][9][Applets][56][Configuration]
PreloadWeight=42
[Containments][9][ConfigDialog] [Containments][9][ConfigDialog]
DialogHeight=660 DialogHeight=660
DialogWidth=880 DialogWidth=880
@@ -302,9 +400,9 @@ DialogWidth=880
PreloadWeight=26 PreloadWeight=26
[Containments][9][General] [Containments][9][General]
extraItems=org.kde.kdeconnect,org.kde.plasma.battery,org.kde.plasma.bluetooth,org.kde.plasma.devicenotifier,org.kde.plasma.keyboardindicator,org.kde.plasma.keyboardlayout,org.kde.plasma.manage-inputmethod,org.kde.plasma.mediacontroller,org.kde.plasma.networkmanagement,org.kde.plasma.nightcolorcontrol,org.kde.plasma.notifications,org.kde.plasma.printmanager,org.kde.plasma.vault,org.kde.plasma.volume,org.kde.kscreen extraItems=org.kde.kdeconnect,org.kde.plasma.battery,org.kde.plasma.bluetooth,org.kde.plasma.devicenotifier,org.kde.plasma.keyboardindicator,org.kde.plasma.keyboardlayout,org.kde.plasma.manage-inputmethod,org.kde.plasma.mediacontroller,org.kde.plasma.networkmanagement,org.kde.plasma.notifications,org.kde.plasma.printmanager,org.kde.plasma.vault,org.kde.plasma.volume,org.kde.kscreen,org.kde.plasma.brightness,org.kde.plasma.cameraindicator
knownItems=org.kde.kdeconnect,org.kde.plasma.battery,org.kde.plasma.bluetooth,org.kde.plasma.clipboard,org.kde.plasma.devicenotifier,org.kde.plasma.keyboardindicator,org.kde.plasma.keyboardlayout,org.kde.plasma.manage-inputmethod,org.kde.plasma.mediacontroller,org.kde.plasma.networkmanagement,org.kde.plasma.nightcolorcontrol,org.kde.plasma.notifications,org.kde.plasma.printmanager,org.kde.plasma.vault,org.kde.plasma.volume,org.kde.kscreen knownItems=org.kde.kdeconnect,org.kde.plasma.battery,org.kde.plasma.bluetooth,org.kde.plasma.clipboard,org.kde.plasma.devicenotifier,org.kde.plasma.keyboardindicator,org.kde.plasma.keyboardlayout,org.kde.plasma.manage-inputmethod,org.kde.plasma.mediacontroller,org.kde.plasma.networkmanagement,org.kde.plasma.notifications,org.kde.plasma.printmanager,org.kde.plasma.vault,org.kde.plasma.volume,org.kde.kscreen,org.kde.plasma.brightness,org.kde.plasma.cameraindicator
[ScreenMapping] [ScreenMapping]
itemsOnDisabledScreens=0,acb90208-98fb-44c9-a0d0-ed2e3c67520c,4,desktop:/chromium-browser-gtk4.desktop,desktop:/chrome-efjpoieainaodhnlgcofglmehiojbpeb-Profile_2.desktop,desktop:/chrome-majibeacmijgldglfjdinbpoekheiobd-Default.desktop,desktop:/chrome-efjpoieainaodhnlgcofglmehiojbpeb-Profile_9.desktop itemsOnDisabledScreens=0,acb90208-98fb-44c9-a0d0-ed2e3c67520c,4,desktop:/chrome-efjpoieainaodhnlgcofglmehiojbpeb-Profile_9.desktop,desktop:/chromium-browser-gtk4.desktop,desktop:/chrome-majibeacmijgldglfjdinbpoekheiobd-Default.desktop,desktop:/chrome-efjpoieainaodhnlgcofglmehiojbpeb-Profile_2.desktop
screenMapping=desktop:/chrome-efjpoieainaodhnlgcofglmehiojbpeb-Profile_2.desktop,0,acb90208-98fb-44c9-a0d0-ed2e3c67520c,desktop:/chrome-efjpoieainaodhnlgcofglmehiojbpeb-Profile_9.desktop,0,acb90208-98fb-44c9-a0d0-ed2e3c67520c,desktop:/chrome-majibeacmijgldglfjdinbpoekheiobd-Default.desktop,0,acb90208-98fb-44c9-a0d0-ed2e3c67520c,desktop:/chromium-browser-gtk4.desktop,0,acb90208-98fb-44c9-a0d0-ed2e3c67520c screenMapping=desktop:/chrome-kajebgjangihfbkjfejcanhanjmmbcfd-Profile_4.desktop,0,5631f9b9-eda6-43ff-826c-7cb51e8f26f5,desktop:/chrome-majibeacmijgldglfjdinbpoekheiobd-Default.desktop,0,acb90208-98fb-44c9-a0d0-ed2e3c67520c,desktop:/chrome-ahiigpfcghkbjfcibpojancebdfjmoop-Profile_2.desktop,0,5631f9b9-eda6-43ff-826c-7cb51e8f26f5,desktop:/chrome-efjpoieainaodhnlgcofglmehiojbpeb-Profile_2.desktop,0,acb90208-98fb-44c9-a0d0-ed2e3c67520c,desktop:/chrome-efjpoieainaodhnlgcofglmehiojbpeb-Profile_9.desktop,0,acb90208-98fb-44c9-a0d0-ed2e3c67520c,desktop:/chromium-browser-gtk4.desktop,0,acb90208-98fb-44c9-a0d0-ed2e3c67520c
+61 -43
View File
@@ -8,13 +8,15 @@
show_thumbnail=1 show_thumbnail=1
[Window] [Window]
width=1280 width=959
height=659 height=1014
maximized=1 maximized=1
[Desktop] [Desktop]
show_wallpaper=1
wallpaper=$HOME/Pictures/wallpapers/1920x1080/pexels-og-mpango-3041110-0.jpg
bg1=4656,4125,12014 bg1=4656,4125,12014
bg2=0,0,3200 bg2=26528,4179,32767
text=65535,65535,65535 text=65535,65535,65535
shadow=0,0,0 shadow=0,0,0
@@ -47,6 +49,7 @@ dev_icon_optical_nomedia-icn=gtk-cdrom
dev_icon_remove_mounted-icn=gtk-harddisk dev_icon_remove_mounted-icn=gtk-harddisk
dev_icon_remove_unmounted-icn=gtk-harddisk dev_icon_remove_unmounted-icn=gtk-harddisk
dev_icon_internal_mounted-icn=gtk-harddisk dev_icon_internal_mounted-icn=gtk-harddisk
dev_icon_network-icn=gtk-network
dev_icon_file-lbl=Mounted File dev_icon_file-lbl=Mounted File
book_icon-lbl=_Icon book_icon-lbl=_Icon
book_show-b=1 book_show-b=1
@@ -80,26 +83,26 @@ main_terminal-b=2
main_save_tabs-b=1 main_save_tabs-b=1
main_exit-key=113 main_exit-key=113
main_exit-keymod=4 main_exit-keymod=4
panel1_show-s=//// panel1_show-s=///$HOME/Downloads///$HOME/Projects/sevab/newdsbk///$HOME/Projects/sevab/newdsbk/html/includes/vendor/atk4/ui/js///$HOME/Projects/630/capista-backend
panel1_show-x=7 panel1_show-x=3
panel1_show-key=49 panel1_show-key=49
panel1_show-keymod=4 panel1_show-keymod=4
panel1_show-b=1 panel1_show-b=2
panel2_show-s=//// panel2_show-s=///$HOME/Downloads///$HOME/Projects/esphome///$HOME/Documents/krishi/2024-25-docs/all/pdfs///$HOME/Documents/krishi/2024-25-docs
panel2_show-x=5 panel2_show-x=1
panel2_show-key=50 panel2_show-key=50
panel2_show-keymod=4 panel2_show-keymod=4
panel2_show-b=2 panel2_show-b=2
panel3_show-s=//// panel3_show-s=///$HOME/Downloads///$HOME/Projects/sevab/cms-test/damp-v3/damp-v3///$HOME/Projects/sevab/cms-test/experiments/dam-frontend///$HOME/Projects/sevab/cms-test/db///$HOME/Projects/sevab/cms-test/damp-project/damp-backend-strapi
panel3_show-x=1 panel3_show-x=4
panel3_show-key=51 panel3_show-key=51
panel3_show-keymod=4 panel3_show-keymod=4
panel3_show-b=2 panel3_show-b=2
panel4_show-s=//// panel4_show-s=///$HOME/Downloads///$HOME/Projects/TP/acezboard/aced-board///$HOME/Projects/TP/acezboard/aced-board/api///$HOME/Projects/TP/acezboard/aced-board/client///$HOME/Projects/TP/acezboard/Table-component///$HOME/.local/Apps/glance///$HOME/Projects/Github/dotFiles/home
panel4_show-x=2 panel4_show-x=6
panel4_show-key=52 panel4_show-key=52
panel4_show-keymod=4 panel4_show-keymod=4
panel4_show-b=2 panel4_show-b=1
main_pbar-b=1 main_pbar-b=1
main_focus_panel-lbl=_Go main_focus_panel-lbl=_Go
main_auto-lbl=_Events main_auto-lbl=_Events
@@ -124,13 +127,13 @@ task_col_status-y=130
task_col_status-b=1 task_col_status-b=1
task_col_count-x=1 task_col_count-x=1
task_col_path-x=2 task_col_path-x=2
task_col_path-y=54 task_col_path-y=675
task_col_path-b=1 task_col_path-b=1
task_col_file-x=3 task_col_file-x=3
task_col_file-y=738 task_col_file-y=228
task_col_file-b=1 task_col_file-b=1
task_col_to-x=4 task_col_to-x=4
task_col_to-y=29 task_col_to-y=365
task_col_to-b=1 task_col_to-b=1
task_col_progress-x=5 task_col_progress-x=5
task_col_progress-y=100 task_col_progress-y=100
@@ -154,7 +157,7 @@ task_col_avgspeed-b=1
task_col_avgest-x=12 task_col_avgest-x=12
task_col_avgest-y=459 task_col_avgest-y=459
task_col_avgest-b=1 task_col_avgest-b=1
task_show_manager-x=257 task_show_manager-x=250
task_show_manager-b=2 task_show_manager-b=2
task_hide_manager-b=1 task_hide_manager-b=1
task_popups-s=600 task_popups-s=600
@@ -206,8 +209,8 @@ new_folder-keymod=4
new_archive-key=65 new_archive-key=65
new_archive-keymod=1 new_archive-keymod=1
arc_dlg-s=hand_arc_+zip arc_dlg-s=hand_arc_+zip
arc_dlg-x=840 arc_dlg-x=1364
arc_dlg-y=630 arc_dlg-y=908
arc_dlg-z=0 arc_dlg-z=0
arc_dlg-b=1 arc_dlg-b=1
tab_new-key=-1 tab_new-key=-1
@@ -300,7 +303,7 @@ prop_perm-keymod=4
panel1_show_toolbox-b=1 panel1_show_toolbox-b=1
panel1_show_devmon-b=1 panel1_show_devmon-b=1
panel1_show_dirtree-b=1 panel1_show_dirtree-b=1
panel1_show_book-b=1 panel1_show_book-b=2
panel1_show_sidebar-b=2 panel1_show_sidebar-b=2
panel1_list_detailed-x=2 panel1_list_detailed-x=2
panel1_list_detailed-y=1 panel1_list_detailed-y=1
@@ -314,7 +317,7 @@ panel1_list_compact-b=2
panel1_list_large-b=1 panel1_list_large-b=1
panel1_show_hidden-key=104 panel1_show_hidden-key=104
panel1_show_hidden-keymod=4 panel1_show_hidden-keymod=4
panel1_show_hidden-b=1 panel1_show_hidden-b=2
panel1_detcol_name-x=0 panel1_detcol_name-x=0
panel1_detcol_name-b=1 panel1_detcol_name-b=1
panel1_detcol_size-x=1 panel1_detcol_size-x=1
@@ -451,7 +454,7 @@ panel1_slider_positions-y=198
panel_sliders-s=405 panel_sliders-s=405
panel_sliders-x=848 panel_sliders-x=848
panel_sliders-y=579 panel_sliders-y=579
panel_sliders-z=748 panel_sliders-z=764
cstm_7551f58c-x=0 cstm_7551f58c-x=0
cstm_7551f58c-key=103 cstm_7551f58c-key=103
cstm_7551f58c-keymod=4 cstm_7551f58c-keymod=4
@@ -465,13 +468,13 @@ cstm_7551f58c-keep=1
file_dlg-x=840 file_dlg-x=840
file_dlg-y=630 file_dlg-y=630
panel1_show_pathbar-b=1 panel1_show_pathbar-b=1
text_dlg-s=600 text_dlg-s=690
text_dlg-x=500 text_dlg-x=500
text_dlg-y=562 text_dlg-y=310
text_dlg-z=400 text_dlg-z=643
cstm_779468ff-y= cstm_779468ff-y=
cstm_779468ff-key=118 cstm_779468ff-key=86
cstm_779468ff-keymod=67108864 cstm_779468ff-keymod=67108865
cstm_779468ff-label=GVim cstm_779468ff-label=GVim
cstm_779468ff-next=cstm_44b46be8 cstm_779468ff-next=cstm_44b46be8
cstm_779468ff-prev=cstm_46ad647a cstm_779468ff-prev=cstm_46ad647a
@@ -482,7 +485,7 @@ cstm_779468ff-keep=1
app_dlg-s=500 app_dlg-s=500
app_dlg-x=1920 app_dlg-x=1920
app_dlg-y=1005 app_dlg-y=1005
app_dlg-z=484 app_dlg-z=452
arc_tar_bz2-s= arc_tar_bz2-s=
cstm_46ad647a-y= cstm_46ad647a-y=
cstm_46ad647a-key=88 cstm_46ad647a-key=88
@@ -682,7 +685,7 @@ cstm_7a0c9cbe-tool=4
cstm_7a0c9cbe-prev=cstm_051d0ab7 cstm_7a0c9cbe-prev=cstm_051d0ab7
panel1_show_toolbox0-b=1 panel1_show_toolbox0-b=1
panel1_show_devmon0-b=1 panel1_show_devmon0-b=1
panel1_show_book0-b=1 panel1_show_book0-b=2
panel1_show_sidebar0-b=2 panel1_show_sidebar0-b=2
panel1_detcol_name0-b=1 panel1_detcol_name0-b=1
panel1_detcol_size0-b=1 panel1_detcol_size0-b=1
@@ -691,8 +694,8 @@ panel1_detcol_perm0-b=1
panel1_detcol_owner0-b=1 panel1_detcol_owner0-b=1
panel1_detcol_date0-b=1 panel1_detcol_date0-b=1
panel1_slider_positions0-s=292 panel1_slider_positions0-s=292
panel1_slider_positions0-x=351 panel1_slider_positions0-x=416
panel1_slider_positions0-y=233 panel1_slider_positions0-y=236
panel1_show_toolbox1-b=1 panel1_show_toolbox1-b=1
panel1_show_devmon1-b=1 panel1_show_devmon1-b=1
panel1_show_book1-b=1 panel1_show_book1-b=1
@@ -737,7 +740,7 @@ panel1_detcol_owner2-b=1
panel1_detcol_date2-b=1 panel1_detcol_date2-b=1
panel1_slider_positions2-s=292 panel1_slider_positions2-s=292
panel1_slider_positions2-x=160 panel1_slider_positions2-x=160
panel1_slider_positions2-y=72 panel1_slider_positions2-y=236
panel3_show_toolbox2-b=1 panel3_show_toolbox2-b=1
panel3_show_devmon2-b=2 panel3_show_devmon2-b=2
panel3_show_book2-b=2 panel3_show_book2-b=2
@@ -804,7 +807,7 @@ panel2_detcol_date0-y=100
panel2_detcol_date0-b=1 panel2_detcol_date0-b=1
panel2_slider_positions0-s=0 panel2_slider_positions0-s=0
panel2_slider_positions0-x=339 panel2_slider_positions0-x=339
panel2_slider_positions0-y=233 panel2_slider_positions0-y=373
panel2_show_toolbox2-b=1 panel2_show_toolbox2-b=1
panel2_show_devmon2-b=1 panel2_show_devmon2-b=1
panel2_show_book2-b=1 panel2_show_book2-b=1
@@ -870,7 +873,7 @@ panel3_detcol_owner0-b=1
panel3_detcol_date0-y=1046 panel3_detcol_date0-y=1046
panel3_detcol_date0-b=1 panel3_detcol_date0-b=1
panel3_slider_positions0-s=0 panel3_slider_positions0-s=0
panel3_slider_positions0-x=293 panel3_slider_positions0-x=242
panel3_slider_positions0-y=233 panel3_slider_positions0-y=233
cstm_0c2251bc-y= cstm_0c2251bc-y=
cstm_0c2251bc-key=103 cstm_0c2251bc-key=103
@@ -938,8 +941,8 @@ panel4_detcol_owner0-b=1
panel4_detcol_date0-y=100 panel4_detcol_date0-y=100
panel4_detcol_date0-b=1 panel4_detcol_date0-b=1
panel4_slider_positions0-s=0 panel4_slider_positions0-s=0
panel4_slider_positions0-x=203 panel4_slider_positions0-x=253
panel4_slider_positions0-y=233 panel4_slider_positions0-y=595
panel3_show_toolbox3-b=1 panel3_show_toolbox3-b=1
panel3_show_devmon3-b=1 panel3_show_devmon3-b=1
panel3_show_book3-b=2 panel3_show_book3-b=2
@@ -1016,28 +1019,28 @@ cstm_570b5ce2-line=bash-session -n
cstm_570b5ce2-task_err=1 cstm_570b5ce2-task_err=1
cstm_570b5ce2-task_out=1 cstm_570b5ce2-task_out=1
cstm_3164fd7c-x=3 cstm_3164fd7c-x=3
cstm_3164fd7c-z=/home/harish cstm_3164fd7c-z=$HOME
cstm_3164fd7c-label=Home cstm_3164fd7c-label=Home
cstm_3164fd7c-next=cstm_5e51738c cstm_3164fd7c-next=cstm_5e51738c
cstm_3164fd7c-parent=main_book cstm_3164fd7c-parent=main_book
cstm_5e51738c-x=3 cstm_5e51738c-x=3
cstm_5e51738c-z=/home/harish/Downloads cstm_5e51738c-z=$HOME/Downloads
cstm_5e51738c-label=Downloads cstm_5e51738c-label=Downloads
cstm_5e51738c-next=cstm_7610ef7d cstm_5e51738c-next=cstm_7610ef7d
cstm_5e51738c-prev=cstm_3164fd7c cstm_5e51738c-prev=cstm_3164fd7c
cstm_7610ef7d-x=3 cstm_7610ef7d-x=3
cstm_7610ef7d-z=/home/harish/Projects cstm_7610ef7d-z=$HOME/Projects
cstm_7610ef7d-label=Projects cstm_7610ef7d-label=Projects
cstm_7610ef7d-next=cstm_460a2fe0 cstm_7610ef7d-next=cstm_460a2fe0
cstm_7610ef7d-prev=cstm_5e51738c cstm_7610ef7d-prev=cstm_5e51738c
cstm_44b46be8-y= cstm_44b46be8-y=
cstm_44b46be8-key=118 cstm_44b46be8-key=118
cstm_44b46be8-keymod=67108872 cstm_44b46be8-keymod=67108864
cstm_44b46be8-label=Lvim cstm_44b46be8-label=Lvim
cstm_44b46be8-icon=nvim cstm_44b46be8-icon=nvim
cstm_44b46be8-next=cstm_2852ad6c cstm_44b46be8-next=cstm_2852ad6c
cstm_44b46be8-prev=cstm_779468ff cstm_44b46be8-prev=cstm_779468ff
cstm_44b46be8-line=env HISTSIZE=10000 HISTFILE="%d/.bash_history" lvim -p %F cstm_44b46be8-line=env HISTSIZE=10000 HISTFILE="%d/.bash_history" lvim %F
cstm_44b46be8-task_err=1 cstm_44b46be8-task_err=1
cstm_44b46be8-task_out=1 cstm_44b46be8-task_out=1
cstm_44b46be8-keep=1 cstm_44b46be8-keep=1
@@ -1051,12 +1054,27 @@ cstm_78d6ed67-task_err=1
cstm_78d6ed67-task_out=1 cstm_78d6ed67-task_out=1
cstm_78d6ed67-keep=1 cstm_78d6ed67-keep=1
cstm_460a2fe0-x=3 cstm_460a2fe0-x=3
cstm_460a2fe0-z=/home/harish/Documents cstm_460a2fe0-z=$HOME/Documents
cstm_460a2fe0-label=Documents cstm_460a2fe0-label=Documents
cstm_460a2fe0-next=cstm_579daf70 cstm_460a2fe0-next=cstm_579daf70
cstm_460a2fe0-prev=cstm_7610ef7d cstm_460a2fe0-prev=cstm_7610ef7d
cstm_579daf70-x=3 cstm_579daf70-x=3
cstm_579daf70-z=/home/harish/.file-headers cstm_579daf70-z=$HOME/.file-headers
cstm_579daf70-label=.file-headers cstm_579daf70-label=.file-headers
cstm_579daf70-next=cstm_1b769d37
cstm_579daf70-prev=cstm_460a2fe0 cstm_579daf70-prev=cstm_460a2fe0
cstm_1b769d37-x=3
cstm_1b769d37-z=$HOME/Projects/Github/dotFiles/home/.node_modules_mine
cstm_1b769d37-label=.node_modules_mine
cstm_1b769d37-next=cstm_52783cd4
cstm_1b769d37-prev=cstm_579daf70
cstm_52783cd4-x=3
cstm_52783cd4-z=$HOME/.cache/spacefm/sftp-fedora-dell.home
cstm_52783cd4-label=sftp-fedora-dell.home
cstm_52783cd4-next=cstm_79084222
cstm_52783cd4-prev=cstm_1b769d37
cstm_79084222-x=3
cstm_79084222-z=$HOME/Projects/sevab/newdsbk
cstm_79084222-label=newdsbk
cstm_79084222-prev=cstm_52783cd4
+1
View File
@@ -8,6 +8,7 @@
defaultBranch = main defaultBranch = main
[alias] [alias]
change-commits = "!f() { VAR=$1; OLD=$2; NEW=$3; shift 3; git filter-branch --env-filter \"if [[ \\\"$`echo $VAR`\\\" = '$OLD' ]]; then export $VAR='$NEW'; fi\" $@; }; f" change-commits = "!f() { VAR=$1; OLD=$2; NEW=$3; shift 3; git filter-branch --env-filter \"if [[ \\\"$`echo $VAR`\\\" = '$OLD' ]]; then export $VAR='$NEW'; fi\" $@; }; f"
permission-reset = !git diff -p -R --no-ext-diff --no-color --diff-filter=M | grep -E \"^(diff|(old|new) mode)\" --color=never | git apply
[filter "lfs"] [filter "lfs"]
process = git-lfs filter-process process = git-lfs filter-process
required = true required = true
+2 -1
View File
@@ -1,5 +1,6 @@
gtk-sound-theme-name="ocean"
gtk-enable-animations=1 gtk-enable-animations=1
gtk-primary-button-warps-slider=0 gtk-primary-button-warps-slider=1
gtk-toolbar-style=3 gtk-toolbar-style=3
gtk-menu-images=1 gtk-menu-images=1
gtk-button-images=1 gtk-button-images=1
+99 -3
View File
@@ -83,13 +83,13 @@ devSetup(){
lvim & lvim &
bash-session -n & bash-session -n &
sleep 1.5 sleep 1.5
qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Window Maximize" # qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Window Maximize"
qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Walk Through Windows" qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Walk Through Windows"
qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Window Maximize" qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Window Maximize"
qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Switch One Desktop Down" qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Switch One Desktop Down"
git gui & git gui &
sleep 1.5 sleep 1.5
qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Window Maximize" # qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Window Maximize"
qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Switch One Desktop Up" qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Switch One Desktop Up"
} }
@@ -337,7 +337,7 @@ subtitleBurn(){
# Gen random password # Gen random password
genPassword(){ genPassword(){
cd ~/.node_modules_mine; cd ~/.node_modules_mine;
node -p "require('base-x')('!#$%&()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_abcdefghijklmnopqrstuvwxyz{|}~' ).encode( crypto.randomBytes(${1:-15}) )" node -p "require('base-x').default('!#$%&()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_abcdefghijklmnopqrstuvwxyz{|}~' ).encode( crypto.randomBytes(${1:-15}) )"
} }
# Convert json to csv with column headers # Convert json to csv with column headers
@@ -429,6 +429,11 @@ fontCacheRefresh(){
fc-cache -f -v fc-cache -f -v
} }
# tell yarn to use node_modules directory
yarnUseNodemodules(){
yarn config set nodeLinker node-modules
}
# usbreset # usbreset
usbreset(){ usbreset(){
set -x set -x
@@ -440,7 +445,98 @@ usbreset(){
done done
} }
# Make sample pdf file
# mk-sample-pdf [count=10] [prefix=sample-]
mk-sample-pdf(){
count=${1:-10}
prefix=${2:-sample}
for i in `seq 1 $count`; do printf "Sample PDF #%02d\nThis is test PDF number %02d\n" "$i" "$i" | enscript -B -o - | ps2pdf - "${prefix}_$i.pdf"; done
}
# Mysql dump all database
# mysqldump [ mysql connection args... ]
mysqldump(){
set -x
mysql $@ -e "SHOW DATABASES;" \
| grep -Ev "(Database|information_schema|performance_schema|sys|mysql)" \
| xargs -I % sh -c "mysqldump $( echo $@ ) --insert-ignore --triggers --events --complete-insert --single-transaction --extended-insert --quick % | gzip > %_$(date +%Y%m%d_%H%M%S).sql.gz"
}
# Make ssh tunnel
sshMkTunne(){
cat<<EOF
cat<<EEE >> ~/.ssh/config
Host *
ServerAliveInterval 40
EEE
while :; do ssh -NT -R 4025:127.0.0.1:22 myguest@${1:-myserver}; sleep 10; done;
EOF
}
# Usage: mysqlCreateDbUser <username> [password] [database]
mysqlCreateDbUser() {
if [ $# -lt 1 ]; then
echo "Usage: ${FUNCNAME[0]} <username> [password] [database]" >&2
return 1
fi
local randPass=$(openssl rand -base64 18)
local username="$1"
local defDbName="${username}_db"
local user_password="${2:-$randPass}"
local db_name="${3:-$defDbName}"
# Validate username
if [[ -z "$username" || "$username" =~ [^a-zA-Z0-9_-] ]]; then
echo "Error: Invalid username. Only alphanumeric, hyphen, and underscore allowed." >&2
return 1
fi
echo -e "-- Using password '$user_password' for user '$username' and creating database '$db_name' \n"
# Execute MySQL commands
cat<<EOF
CREATE DATABASE IF NOT EXISTS \`$db_name\`;
CREATE USER '$username'@'%' IDENTIFIED BY '$user_password';
GRANT ALL PRIVILEGES ON \`$db_name\`.* TO '$username'@'%';
FLUSH PRIVILEGES;
EOF
}
# Create duckdb from csv. Usage csv2duckdb <csv-file>
csv2duckdb(){
csv=$1;
dirName="$(dirname $csv)"
tbl="$(basename $csv)"
tbl=${tbl%.*};
tbl="$(echo $tbl | sed 's/[^[:alnum:]]/_/g' )";
echo "CREATE TABLE $tbl AS SELECT * FROM '$csv';" | duckdb "$dirName/$tbl.duckdb" ;
}
# Create sqlite3 db from csv. Usage csv2sqlite <csv-file>
csv2sqlite(){
csv=$1;
dirName="$(dirname $csv)"
tbl="$(basename $csv)"
tbl=${tbl%.*};
tbl="$(echo $tbl | sed 's/[^[:alnum:]]/_/g' )";
echo "ATTACH '$dirName/$tbl.db' AS sqdb (TYPE sqlite); CREATE TABLE sqdb.$tbl AS SELECT * FROM '$csv';" | duckdb ;
}
# Expose port of container using pasta. pastaExpose <container> <portmapping>
pastaExpose(){
cont=$1;
portMapping=$2;
contPid=$(podman inspect -f '{{.State.Pid}}' $cont);
# pasta -f --config-net -t $portMapping -u none -T none -U none --no-map-gw $contPid;
pasta -f --config-net -t $portMapping --dns-forward 169.254.1.1 -u none -T none -U none --no-map-gw --map-guest-addr 169.254.1.2 $contPid;
}
#### END OF USER FUNCTIONS ####
# Setup autocomplete. run eval "$(THIS_FILE setup-autocomplete)" # Setup autocomplete. run eval "$(THIS_FILE setup-autocomplete)"
setup-autocomplete(){ setup-autocomplete(){
cat<<EOF cat<<EOF
+112
View File
@@ -0,0 +1,112 @@
#!/usr/bin/env python3
import subprocess
import datetime
import os
import gzip
import shutil
import argparse
import sys
import fnmatch
import logging
def get_args():
parser = argparse.ArgumentParser(description="High-performance MySQL multi-database backup tool.")
parser.add_argument("-H", "--host", default="localhost", help="MySQL Host")
parser.add_argument("-P", "--port", default="3306", help="MySQL Port")
parser.add_argument("-u", "--user", required=True, help="MySQL Username")
parser.add_argument("-p", "--password", required=True, help="MySQL Password")
parser.add_argument("-o", "--output", default="backups", help="Output directory")
parser.add_argument("-x", "--exclude", action="append", default=[],
help="Pattern to exclude (e.g., 'test_*'). Can be used multiple times.")
# Added verbose flag
parser.add_argument("-v", "--verbose", action="store_true", help="Print executed commands and detailed logs")
return parser.parse_args()
def should_exclude(db_name, patterns):
system_dbs = ('information_schema', 'performance_schema', 'sys', 'mysql', 'Database')
if db_name in system_dbs:
return True
for pattern in patterns:
if fnmatch.fnmatch(db_name, pattern):
return True
return False
def run_backup():
args = get_args()
# Configure logging based on verbose flag
log_level = logging.DEBUG if args.verbose else logging.INFO
logging.basicConfig(format='%(levelname)s: %(message)s', level=log_level)
if not os.path.exists(args.output):
logging.debug(f"Creating output directory: {args.output}")
os.makedirs(args.output)
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
# Hide password in logs for security, even in verbose mode
safe_conn_flags = ['-h', args.host, '-P', args.port, '-u', args.user, '-p****']
real_conn_flags = ['-h', args.host, '-P', args.port, '-u', args.user, f'-p{args.password}']
try:
# 1. Fetch Database List
fetch_cmd = ['mysql'] + real_conn_flags + ['-e', 'SHOW DATABASES;', '-N', '-s']
logging.debug(f"Executing: {' '.join(['mysql'] + safe_conn_flags + fetch_cmd[-3:])}")
proc = subprocess.run(fetch_cmd, capture_output=True, text=True, check=True)
raw_databases = proc.stdout.split()
databases = [db for db in raw_databases if not should_exclude(db, args.exclude)]
if not databases:
logging.info("No databases found matching the criteria.")
return
logging.info(f"Starting backup for {len(databases)} databases...")
for db in databases:
filename = f"{db}_{timestamp}.sql.gz"
filepath = os.path.join(args.output, filename)
dump_cmd = [
'mysqldump'
] + real_conn_flags + [
'--single-transaction',
'--extended-insert',
'--quick',
'--disable-keys',
'--no-autocommit',
db
]
# Detailed log of the dump command
safe_dump_cmd = ['mysqldump'] + safe_conn_flags + dump_cmd[7:]
logging.debug(f"Executing: {' '.join(safe_dump_cmd)} | gzip > {filepath}")
logging.info(f" -> Backing up: {db}")
with subprocess.Popen(dump_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) as dump_proc:
with gzip.open(filepath, 'wb', compresslevel=6) as f_out:
shutil.copyfileobj(dump_proc.stdout, f_out)
dump_proc.wait()
if dump_proc.returncode != 0:
error_msg = dump_proc.stderr.read().decode()
logging.error(f"Failed to backup {db}: {error_msg}")
else:
logging.debug(f"Successfully completed {db}")
logging.info("All tasks completed.")
except subprocess.CalledProcessError as e:
# Even errors should hide the password
logging.error("Connection failed. Check your credentials and host settings.")
sys.exit(1)
except Exception as e:
logging.error(f"Unexpected error: {e}")
sys.exit(1)
if __name__ == "__main__":
run_backup()
@@ -4,3 +4,4 @@
./bin/ibus-next-engine.py ./bin/ibus-next-engine.py
./bin/csv-split-by-col.py ./bin/csv-split-by-col.py
./bin/sway-wp-switch ./bin/sway-wp-switch
./bin/mysql-backup.py
@@ -0,0 +1,40 @@
--[[
LazyVim configuration migrated from LunarVim
]]
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.uv.fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
-- Core LazyVim distribution (must be first)
{ "LazyVim/LazyVim", import = "lazyvim.plugins", version = "*" },
-- Extras (use :LazyExtras to browse all available extras)
{ import = "lazyvim.plugins.extras.dap.core" },
-- Import user plugins from lua/plugins/*.lua
{ import = "plugins" },
}, {
defaults = { lazy = true, version = "*" },
install = { colorscheme = { "habamax" } },
checker = { enabled = true },
performance = {
rtp = {
disabled_plugins = {
"gzip",
"matchit",
"matchparen",
"netrwPlugin",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
},
},
},
})
@@ -0,0 +1,57 @@
{
"LazyVim": { "branch": "main", "commit": "c10948c50b18fae7f256433afdef09e432410480" },
"LuaSnip": { "branch": "master", "commit": "642b0c595e11608b4c18219e93b88d7637af27bc" },
"NrrwRgn": { "branch": "master", "commit": "e027db9d94f94947153cd7b5ac9abd04371ab2b0" },
"SchemaStore.nvim": { "branch": "main", "commit": "322751401046ae2dbbe32eeb31992a5d4fcc8d92" },
"auto-session": { "branch": "main", "commit": "79ef41274354a486cf4f100a7adf4a7575802ccf" },
"blink-copilot": { "branch": "main", "commit": "41e91a659bd9b8cba9ba2ea68a69b52ba5a9ebd8" },
"blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
"bracey.vim": { "branch": "master", "commit": "4e1a22acc01787814819df1057d039d4ecf357eb" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"catppuccin": { "branch": "main", "commit": "605b4603797de970e9f3a4238c199c850da03186" },
"conform.nvim": { "branch": "master", "commit": "3543d000dafbc41cc7761d860cfdb24e82154f75" },
"copilot.lua": { "branch": "master", "commit": "dada2f90220861d6e9d30eca6a3997cf5d0c9936" },
"editorconfig.nvim": { "branch": "master", "commit": "2af880947129f1ab776b732a4eecb92528472ef5" },
"emmet-vim": { "branch": "master", "commit": "92ef2f74f4093edc99db5e9e4cf7e40116a85bd6" },
"flash.nvim": { "branch": "main", "commit": "ec0bf2842189f65f60fd40bf3557cac1029cc932" },
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
"gitsigns.nvim": { "branch": "main", "commit": "a462f416e2ce4744531c6256252dee99a7d34a83" },
"grug-far.nvim": { "branch": "main", "commit": "c69859c1d5427ab5fc7ed12380ab521b4e336691" },
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"lazydev.nvim": { "branch": "main", "commit": "01bc2aacd51cf9021eb19d048e70ce3dd09f7f93" },
"live-server.nvim": { "branch": "main", "commit": "85915d0e7dd926a54b0082aaeafc10a82bfe8288" },
"lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" },
"markdown-preview.nvim": { "branch": "main", "commit": "5fec271fb91c7be7eca11d5b1c8da16add12e205" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "a5671269a1ddfa7790cdf97c14e600e269da550f" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "e51f9b259f066c4347f9a79ffde54c29a0619384" },
"mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" },
"mini.ai": { "branch": "main", "commit": "d73c36349aa7b0bab5f77ad71701a1d42211a1df" },
"mini.icons": { "branch": "main", "commit": "e56797f90192d81f1fda02e662fc3e8e3d775027" },
"mini.pairs": { "branch": "main", "commit": "4a014143fcb4e9df26198ccb3ecff3b9e77a048c" },
"mini.surround": { "branch": "main", "commit": "580e4cb98c5900d9fe743865fb5a5b2178b4ab18" },
"noice.nvim": { "branch": "main", "commit": "cf758e9df66451889aab56613a21b8673f045ec2" },
"nui.nvim": { "branch": "main", "commit": "f535005e6ad1016383f24e39559833759453564e" },
"nvim-dap": { "branch": "master", "commit": "6a5bba0ddea5d419a783e170c20988046376090d" },
"nvim-dap-ui": { "branch": "master", "commit": "f7d75cca202b52a60c520ec7b1ec3414d6e77b0f" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
"nvim-lint": { "branch": "master", "commit": "01c9842c089069ab497430159312b2c8868a4590" },
"nvim-lspconfig": { "branch": "master", "commit": "229b79051b380377664edc4cbd534930154921a1" },
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
"nvim-surround": { "branch": "main", "commit": "2e93e154de9ff326def6480a4358bfc149d5da2c" },
"nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
"nvim-treesitter-textobjects": { "branch": "main", "commit": "851e865342e5a4cb1ae23d31caf6e991e1c99f1e" },
"nvim-ts-autotag": { "branch": "main", "commit": "88c1453db4ba7dd24131086fe51fdf74e587d275" },
"persistence.nvim": { "branch": "main", "commit": "c45ff862b53ce07a853a753fb0b33e148dbb99d2" },
"plenary.nvim": { "branch": "master", "commit": "50012918b2fc8357b87cff2a7f7f0446e47da174" },
"snacks.nvim": { "branch": "main", "commit": "e6fd58c82f2f3fcddd3fe81703d47d6d48fc7b9f" },
"tabular": { "branch": "master", "commit": "7bd1d0de5d390834220b7d0a791bb9734fafa0cc" },
"telescope.nvim": { "branch": "master", "commit": "5255aa27c422de944791318024167ad5d40aad20" },
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
"tokyonight.nvim": { "branch": "main", "commit": "545d72cde6400835d895160ecb5853874fd5156d" },
"trouble.nvim": { "branch": "main", "commit": "748ca2789044607f19786b1d837044544c55e80a" },
"ts-comments.nvim": { "branch": "main", "commit": "79e4337e4231ff8ca33dab85162b5ee8e78f22ce" },
"vim-fugitive": { "branch": "master", "commit": "96c1009fcf8ce60161cc938d149dd5a66d570756" },
"vim-gnupg": { "branch": "main", "commit": "6d106fa49df3d8c1e63fac8eb64b4a0174f7e83f" },
"vim-snippets": { "branch": "master", "commit": "4ed409154bcaa32fba6fd153cc0c915e44982872" },
"which-key.nvim": { "branch": "main", "commit": "fcbf4eea17cb299c02557d576f0d568878e354a4" }
}
@@ -0,0 +1,14 @@
{
"extras": [
"lazyvim.plugins.extras.ai.copilot",
"lazyvim.plugins.extras.formatting.prettier",
"lazyvim.plugins.extras.lang.docker",
"lazyvim.plugins.extras.lang.json",
"lazyvim.plugins.extras.lang.typescript"
],
"install_version": 8,
"news": {
"NEWS.md": "11866"
},
"version": 8
}
@@ -0,0 +1,95 @@
-- @section commands
-- Custom user commands migrated from LunarVim's config.lua vim.cmd block
--- @section commands-grep
-- Gr: Search with grep and show results in quickfix list
vim.api.nvim_create_user_command("Gr", function(input)
vim.cmd("silent execute 'grep! " .. input.args .. " | copen'")
end, { nargs = "+", desc = "Grep and open quickfix list" })
-- Grc: Raw grep command (no quickfix auto-open)
vim.api.nvim_create_user_command("Grc", function(input)
vim.cmd("grep " .. input.args)
end, { nargs = "*", desc = "Run grep without quickfix" })
--- @section commands-file
-- Header: Add file header via external script
vim.api.nvim_create_user_command("Header", function()
vim.cmd("0r!file-header '%'")
end, { desc = "Add file header from external file-header script" })
-- Termw: Open konsole terminal emulator
vim.api.nvim_create_user_command("Termw", function()
vim.cmd("!konsole -e bash-session &")
end, { desc = "Open konsole terminal" })
-- Term: Open embedded terminal in a horizontal split
vim.api.nvim_create_user_command("Term", function()
vim.cmd("sp | term")
end, { desc = "Open terminal in split window" })
-- EditSnippet: Open LuaSnip snippet files for editing
vim.api.nvim_create_user_command("EditSnippet", function()
require("luasnip.loaders").edit_snippet_files()
end, { desc = "Edit LuaSnip snippet files" })
-- Cwd: Change working directory to current file's directory
vim.api.nvim_create_user_command("Cwd", function()
vim.cmd("cd %:p:h")
end, { desc = "Change directory to current file" })
-- Tcd: Change tab-local working directory to current file's directory
vim.api.nvim_create_user_command("Tcd", function()
vim.cmd(":tcd %:p:h")
end, { desc = "Change tab directory to current file" })
-- Reload: Reload all buffers from disk
vim.api.nvim_create_user_command("Reload", function()
vim.cmd("bufdo execute 'checktime . bufnr('%')'")
end, { desc = "Reload all buffers" })
-- Rm: Delete current file from disk and close buffer
vim.api.nvim_create_user_command("Rm", function()
vim.cmd("!rm % | bd")
end, { desc = "Delete file and close buffer" })
-- CopyFilename: Copy current file path to system clipboard
vim.api.nvim_create_user_command("CopyFilename", function()
vim.fn.setreg("+", vim.fn.expand("%"))
end, { desc = "Copy file path to clipboard" })
-- Code: Open current file in VS Code at current line
vim.api.nvim_create_user_command("Code", function()
vim.cmd("!code ./ -g %:" .. (vim.fn.line(".") + 1))
end, { desc = "Open in VS Code at current line" })
-- <C-G>: Live grep word under cursor via Snacks picker
vim.keymap.set("n", "<C-G>", function()
LazyVim.pick("live_grep", { default_text = vim.fn.expand("<cword>") })()
end, { desc = "Snacks grep word under cursor" })
-- @section autocmds-filetype
-- Caddyfile: Set filetype for Caddyfile (any path, any name containing "Caddyfile")
vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
pattern = "*Caddyfile",
callback = function()
vim.bo.filetype = "caddy"
end,
desc = "Detect Caddyfile filetype",
})
-- @section autocmds-emmet
-- Emmet: Enable Emmet for web development filetypes (migrated from LunarVim)
-- Disabled by default for all filetypes; enabled only for these specific filetypes.
-- vim.api.nvim_create_autocmd("FileType", {
-- pattern = { "html", "css", "vue", "jsx", "php", "javascriptreact" },
-- callback = function()
-- vim.cmd("EmmetInstall")
-- end,
-- desc = "Enable Emmet for web filetypes",
-- })
-- @section config-grepprg
-- Set grep program to `ag` (preserved from LunarVim)
-- LazyVim defaults to `rg --vimgrep`. This overrides it.
vim.opt.grepprg = "ag --vimgrep"
@@ -0,0 +1,103 @@
-- @section keymaps
-- Custom keymaps migrated from LunarVim config.
-- LazyVim already defines many keymaps (e.g. <C-s> for save, <S-h/l> for buffer prev/next,
-- <leader>bd for delete buffer). Only keymaps that add to or differ from LazyVim defaults
-- are listed here. Grouped by function with @section markers.
local map = vim.keymap.set
--- @section keymaps-buffers
-- Meta+number: Jump to specific buffer (via BufferLine)
-- LazyVim provides <leader>bj for BufferLinePick (interactive pick).
-- These direct-access keys are preserved from your LunarVim config.
for i = 1, 9 do
map("n", "<M-" .. i .. ">", function()
vim.cmd("BufferLineGoToBuffer " .. i)
end, { desc = "Go to buffer " .. i })
end
--- @section keymaps-picker
-- <C-p>: Quick file find (Snacks picker replaces your Telescope "fd" picker)
map("n", "<C-p>", function()
LazyVim.pick("files")()
end, { desc = "Find Files" })
--- @section keymaps-external
-- Launch external tools from Neovim
map("n", "<Leader><Leader>t", ":!konsole&<CR>", { desc = "Open Konsole terminal" })
map("n", "<Leader><Leader>g", ":!git gui &<CR>", { desc = "Open Git GUI" })
--- @section keymaps-file
-- File-level operations
map("n", "<M-r>", ":e!<CR>", { desc = "Reload current file (discard changes)" })
map("n", "<M-q>", function()
Snacks.bufdelete()
end, { desc = "Delete current buffer (preserves window layout)" })
map("n", "<M-Q>", ":bd!<CR>", { desc = "Force delete buffer and close window" })
--- @section keymaps-comment
-- Toggle comment with Space+/ (normal and visual)
map("n", "c<Space>", "gcc", { desc = "Toggle comment", remap = true })
map("n", "<Space>/", "gcc", { desc = "Toggle comment", remap = true })
-- map("v", "<Space>/", "gc", { desc = "Toggle comment" })
--- @section keymaps-visual
-- Visual mode operations
map("v", "<C-h>", '"fy:%s#<C-r>f#', { desc = "Replace all occurrences of selected text" })
map("v", "<C-f>", '"fy/<C-r>f', { desc = "Search for selected word" })
--- @section keymaps-insert
-- Insert mode helpers
map("i", "<C-CR>", "<ESC>A;", { desc = "Append semicolon at end of line" })
map("i", "<C-E>", "<plug>(emmet-expand-abbr)", { desc = "Expand Emmet abbreviation" })
--- @section keymaps-window
-- Window navigation with Alt+arrows (preserved from LunarVim)
-- LazyVim defaults have <C-h/j/k/l> for window nav.
-- These Alt+arrow mappings give you an alternative.
map("n", "<M-Up>", "<C-W>k", { desc = "Move to window above" })
map("n", "<M-Down>", "<C-W>j", { desc = "Move to window below" })
map("n", "<M-Right>", "<C-W>l", { desc = "Move to window right" })
map("n", "<M-Left>", "<C-W>h", { desc = "Move to window left" })
--- @section keymaps-terminal
-- Terminal mode keymaps for window navigation and tab switching
map("t", "<C-PageUp>", "<C-\\><C-N><C-PageUp>", { desc = "Terminal: Previous tab" })
map("t", "<C-PageDown>", "<C-\\><C-N><C-PageDown>", { desc = "Terminal: Next tab" })
map("t", "<M-Up>", "<C-\\><C-N><C-W>k", { desc = "Terminal: Window up" })
map("t", "<M-Down>", "<C-\\><C-N><C-W>j", { desc = "Terminal: Window down" })
map("t", "<M-Right>", "<C-\\><C-N><C-W>l", { desc = "Terminal: Window right" })
map("t", "<M-Left>", "<C-\\><C-N><C-W>h", { desc = "Terminal: Window left" })
--- @section keymaps-buffer-switch
-- Buffer switching keys preserved from LunarVim.
-- NOTE: <C-j> and <C-k> conflict with LazyVim's default window navigation
-- (<C-j>=window down, <C-k>=window up). Since you use <M-Arrows> for windows,
-- these override <C-j/k> to buffer navigation instead.
map("n", "<C-PageUp>", ":BufferLineCyclePrev<CR>", { desc = "Previous buffer" })
map("n", "<C-PageDown>", ":BufferLineCycleNext<CR>", { desc = "Next buffer" })
map("n", "<C-S-PageUp>", ":BufferLineMovePrev<CR>", { desc = "Move buffer left" })
map("n", "<C-S-PageDown>", ":BufferLineMoveNext<CR>", { desc = "Move buffer right" })
map("n", "<C-j>", ":BufferLineCyclePrev<CR>", { desc = "Previous buffer" })
map("n", "<C-k>", ":BufferLineCycleNext<CR>", { desc = "Next buffer" })
map("n", "<C-S-j>", ":BufferLineMovePrev<CR>", { desc = "Move buffer left" })
map("n", "<C-S-k>", ":BufferLineMoveNext<CR>", { desc = "Move buffer right" })
--- @section keymaps-tab
map("n", "<C-S-T>", ":tabedit<CR>", { desc = "Open new tab" })
--- @section keymaps-dap
-- Quick DAP access keys (dap.core extra provides <leader>d prefix mappings)
-- These F-keys provide direct access to the most common debugging actions.
map("n", "<F5>", function()
require("dap").continue()
end, { desc = "DAP: Continue / Start debugging" })
map("n", "<F10>", function()
require("dap").step_over()
end, { desc = "DAP: Step over" })
map("n", "<F11>", function()
require("dap").step_into()
end, { desc = "DAP: Step into" })
map("n", "<F12>", function()
require("dap").step_out()
end, { desc = "DAP: Step out" })
@@ -0,0 +1,36 @@
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.uv.fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
-- Core LazyVim distribution (must be first)
{ "LazyVim/LazyVim", import = "lazyvim.plugins", version = "*" },
-- Extras (use :LazyExtras to browse all available extras)
{ import = "lazyvim.plugins.extras.dap.core" },
-- Import user plugins from lua/plugins/*.lua
{ import = "plugins" },
}, {
defaults = { lazy = true, version = "*" },
install = { colorscheme = { "habamax" } },
checker = { enabled = true },
performance = {
rtp = {
disabled_plugins = {
"gzip",
"matchit",
"matchparen",
"netrwPlugin",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
},
},
},
})
@@ -0,0 +1,12 @@
-- @section vim-options
-- Override LazyVim default vim options to match your previous LunarVim config.
-- LazyVim defaults already include: shiftwidth=2, tabstop=2, number=true, list=true,
-- relativenumber=true.
-- Relativenumber: Your LunarVim config explicitly disabled it.
-- LazyVim defaults to true; this overrides it back to false.
vim.opt.relativenumber = false
-- Grepprg: Your LunarVim config used `ag --vimgrep`.
-- LazyVim defaults to `rg --vimgrep`. Uncomment below to switch to `ag`:
-- vim.opt.grepprg = "ag --vimgrep"
@@ -0,0 +1,28 @@
-- @section snacks-picker
-- Snacks picker configuration preserved from LunarVim's Telescope settings.
-- LazyVim defaults to Snacks picker (no extra import needed since the
-- defaults system auto-enables it when Telescope/Fzf extras aren't imported).
-- Telescope's `file_ignore_patterns` handled differently in Snacks:
-- Snacks picker uses `fd`/`rg` which respect .gitignore by default.
-- Hidden files are shown, and VCS-ignored files are excluded.
-- Your original ignore patterns are listed below for reference; you can
-- adjust the find command or add global gitignore entries as needed.
return {
{
"folke/snacks.nvim",
opts = function(_, opts)
return vim.tbl_deep_extend("force", opts or {}, {
picker = {
sources = {
files = {
-- Show hidden files by default (dotfiles)
hidden = true,
},
},
},
})
end,
},
}
@@ -0,0 +1,58 @@
-- @section dap
-- DAP (Debug Adapter Protocol) configuration.
-- Core DAP support comes from the `lazyvim.plugins.extras.dap.core` extra
-- (imported in init.lua), which provides nvim-dap, nvim-dap-ui, and
-- <leader>d keybindings.
--
-- This file adds:
-- 1. F-key shortcuts for common debug actions
-- 2. PHP debug adapter configuration (migrated from LunarVim)
return {
{
"mfussenegger/nvim-dap",
-- @section dap-keymaps
-- F-key mappings for quick DAP access.
-- The dap.core extra already provides <leader>d{letter} bindings;
-- these F-keys are additional shortcuts preserved from your LunarVim config.
keys = {
{ "<F5>", function()
require("dap").continue()
end, desc = "DAP: Continue / Start" },
{ "<F10>", function()
require("dap").step_over()
end, desc = "DAP: Step Over" },
{ "<F11>", function()
require("dap").step_into()
end, desc = "DAP: Step Into" },
{ "<F12>", function()
require("dap").step_out()
end, desc = "DAP: Step Out" },
},
-- @section dap-php
-- PHP debug adapter setup (migrated from LunarVim)
-- Uses php-debug-adapter installed via Mason.
-- The adapter listens on port 9003 (Xdebug default).
init = function()
LazyVim.on_load("nvim-dap", function()
local dap = require("dap")
dap.adapters.php = {
type = "executable",
command = "node",
args = {
vim.fn.stdpath("data")
.. "/mason/packages/php-debug-adapter/extension/out/phpDebug.js",
},
}
dap.configurations.php = {
{
type = "php",
request = "launch",
name = "Listen for Xdebug",
port = 9003,
},
}
end)
end,
},
}
@@ -0,0 +1,18 @@
-- @section lualine
-- Lualine statusline customization (migrated from LunarVim).
-- Your LunarVim config set lualine_b to show both branch name and current file.
-- This extends the default LazyVim lualine_b (which shows just "branch") to
-- also show the full file path (%f).
return {
{
"nvim-lualine/lualine.nvim",
opts = function(_, opts)
-- Extend the default lualine_b section to show branch + file path
-- (preserved from LunarVim: lvim.builtin.lualine.sections.lualine_b = { 'branch', '%f' })
opts.sections = opts.sections or {}
opts.sections.lualine_b = { "branch", "%f" }
return opts
end,
},
}
@@ -0,0 +1,153 @@
-- @section plugins
-- Extra plugins migrated from LunarVim's `lvim.plugins` list.
-- Each plugin is defined as a lazy.nvim spec.
return {
--- @section plugins-editorconfig
{
"gpanders/editorconfig.nvim",
desc = "EditorConfig support (respects .editorconfig files)",
},
--- @section plugins-emmet
{
"mattn/emmet-vim",
desc = "Emmet: HTML/CSS Zen coding expansion",
},
--- @section plugins-fugitive
{
"tpope/vim-fugitive",
cmd = {
"G", "Git", "Gdiffsplit", "Gread", "Gwrite",
"Ggrep", "GMove", "GDelete", "GBrowse",
"GRemove", "GRename", "Glgrep", "Gedit",
},
ft = { "fugitive" },
desc = "Git integration (tpope)",
},
{
"selimacerbas/live-server.nvim",
dependencies = {
"folke/which-key.nvim",
"nvim-telescope/telescope.nvim", -- recommended for path picker
},
init = function()
-- which-key group label only (best practice)
local ok, wk = pcall(require, "which-key")
if ok then wk.add({ { "<leader>l", group = "LiveServer" } }) end
end,
opts = {
default_port = 8000,
live_reload = { enabled = true, inject_script = true, debounce = 120, css_inject = true },
directory_listing = { enabled = true, show_hidden = false },
},
-- map to user commands (robust lazy-loading)
keys = {
{ "<leader>ls", "<cmd>LiveServerStart<cr>", desc = "Start (pick path & port)" },
{ "<leader>lo", "<cmd>LiveServerOpen<cr>", desc = "Open existing port in browser" },
{ "<leader>lr", "<cmd>LiveServerReload<cr>", desc = "Force reload (pick port)" },
{ "<leader>lt", "<cmd>LiveServerToggleLive<cr>", desc = "Toggle live-reload (pick port)" },
{ "<leader>li", "<cmd>LiveServerStatus<cr>", desc = "Show server status" },
{ "<leader>lS", "<cmd>LiveServerStop<cr>", desc = "Stop one (pick port)" },
{ "<leader>lA", "<cmd>LiveServerStopAll<cr>", desc = "Stop all" },
},
config = function(_, opts)
require("live_server").setup(opts)
end,
},
--- @section plugins-markdown-preview
{
"harish2704/markdown-preview.nvim",
dependencies = { "selimacerbas/live-server.nvim" },
ft = 'markdown',
config = function()
require("markdown_preview").setup({
-- all optional; sane defaults shown
instance_mode = "takeover", -- "takeover" (one tab) or "multi" (tab per instance)
port = 0, -- 0 = auto (8421 for takeover, OS-assigned for multi)
open_browser = true,
default_theme = "light", -- "dark" or "light"; initial preview theme
debounce_ms = 300,
mermaid_elk = true,
})
end,
},
-- {
-- {
-- "iamcco/markdown-preview.nvim",
-- ft = 'markdown',
-- build = function()
-- require("lazy").load({ plugins = { "markdown-preview.nvim" } })
-- vim.fn["mkdp#util#install"]()
-- local app_dir = vim.fn.stdpath("data") .. "/lazy/markdown-preview.nvim/app"
-- vim.fn.system(
-- "cd "
-- .. app_dir
-- .. " && bun install mermaid@latest && cp node_modules/mermaid/dist/mermaid.min.js _static/mermaid.min.js"
-- )
-- end,
-- },
-- },
-- --- @section plugins-bracey
{
"turbio/bracey.vim",
cmd = { "Bracey", "BracyStop", "BraceyReload", "BraceyEval" },
build = "npm install --prefix server",
desc = "Live HTML/CSS/JS editor preview",
},
--- @section plugins-gnupg
{
"jamessan/vim-gnupg",
desc = "Transparent editing of GnuPG encrypted files",
},
--- @section plugins-vim-snippets
{
"honza/vim-snippets",
event = "InsertEnter",
config = function()
require("luasnip.loaders.from_snipmate").lazy_load()
end,
desc = "SnipMate snippet collection (honza)",
},
--- @section plugins-tabular
{
"godlygeek/tabular",
desc = "Text alignment and formatting",
},
--- @section plugins-nrrwrgn
{ "chrisbra/NrrwRgn", desc = "Narrow region: edit a selection in a separate buffer" },
--- @section plugins-nvim-surround
{
"kylechui/nvim-surround",
keys = {
{ "S", mode = "v", desc = "Surround selection" },
},
config = function()
require("nvim-surround").setup({
keymaps = { visual = "S" },
})
end,
desc = "Surround text objects (parentheses, quotes, tags, etc.)",
},
--- @section plugins-auto-session
{
"rmagatti/auto-session",
config = function()
require("auto-session").setup({
log_level = "error",
-- Only restore/save sessions manually, not automatically
auto_session_create_enabled = false,
})
end,
desc = "Session management (manual mode)",
},
}
@@ -0,0 +1,23 @@
-- @section luasnip-dart
-- LuaSnip: Extend dart filetype with flutter snippets (migrated from LunarVim)
-- When editing .dart files, this adds flutter snippet sources so that
-- Flutter-specific completions (like `stless`, `stful`) are available.
return {
{
"L3MON4D3/LuaSnip",
init = function()
vim.api.nvim_create_autocmd("User", {
pattern = "VeryLazy",
once = true,
callback = function()
local ok, luasnip = pcall(require, "luasnip")
if ok then
luasnip.filetype_extend("dart", { "flutter" })
end
end,
})
end,
desc = "Add Flutter snippets to Dart buffers",
},
}
@@ -1,2 +1,3 @@
./lvim ./lvim
./nvim-distro.sh ./nvim-distro.sh
./lzvim.sh
@@ -7,6 +7,7 @@ vim.opt.shiftwidth = 2
vim.opt.tabstop = 2 vim.opt.tabstop = 2
vim.opt.relativenumber = true vim.opt.relativenumber = true
vim.opt.list = true vim.opt.list = true
vim.opt.relativenumber = false
-- general -- general
lvim.log.level = "info" lvim.log.level = "info"
@@ -38,6 +39,8 @@ end
lvim.builtin.project.active = false lvim.builtin.project.active = false
lvim.builtin.project.manual_mode = true lvim.builtin.project.manual_mode = true
lvim.builtin.project.silent_chdir = false lvim.builtin.project.silent_chdir = false
lvim.builtin.nvimtree.setup.update_cwd = false
lvim.builtin.nvimtree.setup.update_focused_file.update_cwd = false
-- -- Change theme settings -- -- Change theme settings
-- lvim.colorscheme = "lunar" -- lvim.colorscheme = "lunar"
@@ -219,6 +222,7 @@ lvim.builtin.telescope.defaults.file_ignore_patterns = {
vim.cmd([[ vim.cmd([[
au BufRead,BufNewFile *Caddyfile set filetype=caddy
command! -nargs=+ Gr :silent execute 'grep! "<args>" | copen' command! -nargs=+ Gr :silent execute 'grep! "<args>" | copen'
" Raw version of Gr command. " Raw version of Gr command.
command! -nargs=* Grc grep <args> command! -nargs=* Grc grep <args>
@@ -345,6 +349,18 @@ dap.configurations.php = {
} }
} }
local lspconfig = require('lspconfig')
local configs = require('lspconfig.configs')
if not configs.oxlint then
configs.oxlint = {
default_config = {
cmd = { 'oxlint', '--lsp' },
filetypes = { 'javascript', 'javascriptreact', 'typescript', 'typescriptreact' },
root_dir = lspconfig.util.root_pattern('.oxlintrc.json', 'package.json', '.git'),
},
}
end
lvim.plugins = { lvim.plugins = {
{ {
"gpanders/editorconfig.nvim", "gpanders/editorconfig.nvim",
@@ -1,54 +1,55 @@
{ {
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" }, "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"LuaSnip": { "branch": "master", "commit": "1def35377854535bb3b0f4cc7a33c083cdb12571" }, "LuaSnip": { "branch": "master", "commit": "0abc8f390b278c3b4aabc4c004ac8a088b65cf24" },
"NrrwRgn": { "branch": "master", "commit": "e027db9d94f94947153cd7b5ac9abd04371ab2b0" }, "NrrwRgn": { "branch": "master", "commit": "e6f29bd507903b587229c544d3e1eba3cc0f0a13" },
"alpha-nvim": { "branch": "main", "commit": "29074eeb869a6cbac9ce1fbbd04f5f5940311b32" }, "alpha-nvim": { "branch": "main", "commit": "6c6a89d5b068b5251c8bdf0dd57bb921bcfeeb09" },
"auto-session": { "branch": "main", "commit": "aa01054d478c6d3efc0188cb2ed4850e9f475664" }, "auto-session": { "branch": "main", "commit": "6cde3874a9283c2db55627acca5f28e4fa402320" },
"bigfile.nvim": { "branch": "main", "commit": "33eb067e3d7029ac77e081cfe7c45361887a311a" }, "bigfile.nvim": { "branch": "main", "commit": "33eb067e3d7029ac77e081cfe7c45361887a311a" },
"bracey.vim": { "branch": "master", "commit": "4e1a22acc01787814819df1057d039d4ecf357eb" }, "bracey.vim": { "branch": "master", "commit": "4e1a22acc01787814819df1057d039d4ecf357eb" },
"bufferline.nvim": { "branch": "main", "commit": "73edc1f2732678e7a681e3d3be49782610914f6b" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, "cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"editorconfig.nvim": { "branch": "master", "commit": "5b9e303e1d6f7abfe616ce4cc8d3fffc554790bf" }, "editorconfig.nvim": { "branch": "master", "commit": "67758c3e8a2f79019322a60013e4ce0aad09dafa" },
"emmet-vim": { "branch": "master", "commit": "6c511a8d7d2863066f32e25543e2bb99d505172c" }, "emmet-vim": { "branch": "master", "commit": "92ef2f74f4093edc99db5e9e4cf7e40116a85bd6" },
"friendly-snippets": { "branch": "main", "commit": "dd2fd1281d4b22e7b4a5bfafa3e142d958e251f2" }, "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
"gitsigns.nvim": { "branch": "main", "commit": "805610a9393fa231f2c2b49cb521bfa413fadb3d" }, "gitsigns.nvim": { "branch": "main", "commit": "dd3f588bacbeb041be6facf1742e42097f62165d" },
"indent-blankline.nvim": { "branch": "master", "commit": "9637670896b68805430e2f72cf5d16be5b97a22a" }, "indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" },
"lazy.nvim": { "branch": "main", "commit": "8f19915175395680808de529e4220da8dafc0759" }, "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"lir.nvim": { "branch": "master", "commit": "7a9d45de08fecd23a04aca1f96688d744830029e" }, "lir.nvim": { "branch": "master", "commit": "f1291b88d3649743165cfb5d0d44a7722d4021ea" },
"lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, "lualine.nvim": { "branch": "master", "commit": "131a558e13f9f28b15cd235557150ccb23f89286" },
"lunar.nvim": { "branch": "master", "commit": "08bbc93b96ad698d22fc2aa01805786bcedc34b9" }, "lunar.nvim": { "branch": "master", "commit": "08bbc93b96ad698d22fc2aa01805786bcedc34b9" },
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "a4caa0d083aab56f6cd5acf2d42331b74614a585" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "7b01e2974a47d489bb92f47a41e4c0088ea8f86e" },
"mason.nvim": { "branch": "main", "commit": "49ff59aded1047a773670651cfa40e76e63c6377" }, "mason.nvim": { "branch": "main", "commit": "cbf8d285e1462dd24acf3507817be2bbcb035919" },
"neodev.nvim": { "branch": "main", "commit": "ce9a2e8eaba5649b553529c5498acb43a6c317cd" }, "mini.icons": { "branch": "main", "commit": "520995f1d75da0e4cc901ee95080b1ff2bc46b94" },
"nlsp-settings.nvim": { "branch": "main", "commit": "d92035e6c05cded5f1a7458b57506adbf29a5c9c" }, "neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
"none-ls.nvim": { "branch": "main", "commit": "3a4826687da4310af379515086d71faca4d21288" }, "nlsp-settings.nvim": { "branch": "main", "commit": "1ae83a5be572fd5e8c1547b5c4c582ce1a14c017" },
"nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" }, "none-ls.nvim": { "branch": "main", "commit": "f9d557ac7cd28a3a993b5ea49716498bd540b01f" },
"nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" }, "nvim-autopairs": { "branch": "master", "commit": "7b9923abad60b903ece7c52940e1321d39eccc79" },
"nvim-dap": { "branch": "master", "commit": "5a2f7121869394502521c52b2bc581ab22c69447" }, "nvim-cmp": { "branch": "main", "commit": "a1d504892f2bc56c2e79b65c6faded2fd21f3eca" },
"nvim-dap-ui": { "branch": "master", "commit": "34160a7ce6072ef332f350ae1d4a6a501daf0159" }, "nvim-dap": { "branch": "master", "commit": "531771530d4f82ad2d21e436e3cc052d68d7aebb" },
"nvim-lspconfig": { "branch": "master", "commit": "eadcee1573ca9d0e0cd36a49f620186a8dfdc607" }, "nvim-dap-ui": { "branch": "master", "commit": "1a66cabaa4a4da0be107d5eda6d57242f0fe7e49" },
"nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" }, "nvim-lspconfig": { "branch": "master", "commit": "deb0df61b2d6691e745b16a42755e10ad38218e9" },
"nvim-surround": { "branch": "main", "commit": "ec2dc7671067e0086cdf29c2f5df2dd909d5f71f" }, "nvim-navic": { "branch": "master", "commit": "f5eba192f39b453675d115351808bd51276d9de5" },
"nvim-tree.lua": { "branch": "master", "commit": "2bc725a3ebc23f0172fb0ab4d1134b81bcc13812" }, "nvim-surround": { "branch": "main", "commit": "8b47db616ef658b8fc27e61db2896aa2f40134de" },
"nvim-treesitter": { "branch": "master", "commit": "30de5e7e9486fb1b1b8c2a1e71052b13f94f1cb0" }, "nvim-tree.lua": { "branch": "master", "commit": "07f541fcaa4a5ae019598240362449ab7e9812b3" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "cb064386e667def1d241317deed9fd1b38f0dc2e" }, "nvim-treesitter": { "branch": "master", "commit": "cf12346a3414fa1b06af75c79faebe7f76df080a" },
"nvim-web-devicons": { "branch": "master", "commit": "e37bb1feee9e7320c76050a55443fa843b4b6f83" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "6141a40173c6efa98242dc951ed4b6f892c97027" },
"nvim-web-devicons": { "branch": "master", "commit": "7d8dad2c837fcdf2e65997e68657c1a21c568074" },
"onedarker.nvim": { "branch": "freeze", "commit": "b00dd2189f264c5aeb4cf04c59439655ecd573ec" }, "onedarker.nvim": { "branch": "freeze", "commit": "b00dd2189f264c5aeb4cf04c59439655ecd573ec" },
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, "plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
"schemastore.nvim": { "branch": "main", "commit": "9a5992a881583d886bfbb46631a09f736f0fae50" }, "schemastore.nvim": { "branch": "main", "commit": "59b4296a733a5b93ce2aee23ee406b6d279183cc" },
"structlog.nvim": { "branch": "main", "commit": "45b26a2b1036bb93c0e83f4225e85ab3cee8f476" }, "structlog.nvim": { "branch": "main", "commit": "45b26a2b1036bb93c0e83f4225e85ab3cee8f476" },
"tabular": { "branch": "master", "commit": "12437cd1b53488e24936ec4b091c9324cafee311" }, "tabular": { "branch": "master", "commit": "12437cd1b53488e24936ec4b091c9324cafee311" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "b25b749b9db64d375d782094e2b9dce53ad53a40" },
"telescope.nvim": { "branch": "0.1.x", "commit": "d829aa64059001ee7b2c8c8aa9c4e6df0b17d893" }, "telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"toggleterm.nvim": { "branch": "main", "commit": "fee58a0473fd92b28c34f8f724e4918b15ba30a3" }, "toggleterm.nvim": { "branch": "main", "commit": "9a88eae817ef395952e08650b3283726786fb5fb" },
"tokyonight.nvim": { "branch": "main", "commit": "b9b494fa7f7bbf2fe0747b47fa290fb7a4eddcc7" }, "tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" },
"vim-fugitive": { "branch": "master", "commit": "d4877e54cef67f5af4f950935b1ade19ed6b7370" }, "vim-fugitive": { "branch": "master", "commit": "3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0" },
"vim-gnupg": { "branch": "main", "commit": "f9b608f29003dfde6450931dc0f495a912973a88" }, "vim-gnupg": { "branch": "main", "commit": "f9b608f29003dfde6450931dc0f495a912973a88" },
"vim-illuminate": { "branch": "master", "commit": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa" }, "vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" },
"vim-snippets": { "branch": "master", "commit": "f0a3184d9f90b96b044d5914625a25c554d7f301" }, "vim-snippets": { "branch": "master", "commit": "ededcf7581962ee616cadab360d5966f3307f11a" },
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" } "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
} }
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env bash
THIS_DIR=$(dirname $(readlink -f $0))
PKG=LazyVim
nvconf="$THIS_DIR/$PKG"
if [[ -d $nvconf ]]; then
mkdir -p $nvconf/cache
if [[ -n "$NO_GUI" ]]; then
env XDG_CACHE_DIR=$nvconf/cache XDG_CACHE_HOME=$nvconf/cache XDG_DATA_HOME=$nvconf/share XDG_CONFIG_HOME=$nvconf nvim $@
else
exec -a "Lazyvim" alacritty -e env XDG_CACHE_DIR=$nvconf/cache XDG_CACHE_HOME=$nvconf/cache XDG_DATA_HOME=$nvconf/share XDG_CONFIG_HOME=$nvconf nvim $@ &
fi
else
echo "invalid \$PKG. Available values:"
ls `dirname $nvconf`
fi
+11 -4
View File
@@ -3,10 +3,17 @@ THIS_DIR=$(dirname $(readlink -f $0))
nvconf="$THIS_DIR/$PKG" nvconf="$THIS_DIR/$PKG"
if [[ -d $nvconf ]]; then if [[ ! -d $nvconf ]]; then
mkdir -p $nvconf/cache
env XDG_CACHE_DIR=$nvconf/cache XDG_CACHE_HOME=$nvconf/cache XDG_DATA_HOME=$nvconf/share XDG_CONFIG_HOME=$nvconf nvim $@
else
echo "invalid \$PKG. Available values:" echo "invalid \$PKG. Available values:"
ls `dirname $nvconf` ls `dirname $nvconf`
exit
fi
mkdir -p $nvconf/cache
if [ -z "$GUITERM" ]; then
env XDG_CACHE_DIR=$nvconf/cache XDG_CACHE_HOME=$nvconf/cache XDG_DATA_HOME=$nvconf/share XDG_CONFIG_HOME=$nvconf nvim $@
else
$GUITERM -e env XDG_CACHE_DIR=$nvconf/cache XDG_CACHE_HOME=$nvconf/cache XDG_DATA_HOME=$nvconf/share XDG_CONFIG_HOME=$nvconf nvim $@
fi fi
@@ -0,0 +1,7 @@
[Desktop Entry]
Exec=ibus-next-engine.py
Name=Hari IBus Next eng
NoDisplay=true
StartupNotify=false
Type=Application
X-KDE-GlobalAccel-CommandShortcut=true
@@ -1,20 +0,0 @@
import QtQuick 2.2
import org.kde.plasma.configuration 2.0
ConfigModel {
ConfigCategory {
name: i18nc("Config header", "General")
icon: 'preferences-desktop-plasma'
source: 'config/ConfigGeneral.qml'
}
ConfigCategory {
name: i18nc("Config header", "Data")
icon: 'preferences-desktop'
source: 'config/ConfigData.qml'
}
ConfigCategory {
name: i18nc("Config header", "Appearance")
icon: 'preferences-desktop-color'
source: 'config/ConfigAppearance.qml'
}
}
@@ -1,220 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0 http://www.kde.org/standards/kcfg/1.0/kcfg.xsd">
<kcfgfile name="" />
<group name="General">
<entry name="updateInterval" type="Double">
<default>1.0</default>
</entry>
<entry name="actionService" type="String">
<default>org.kde.plasma-systemmonitor</default>
</entry>
<entry name="showCpuMonitor" type="Bool">
<default>true</default>
</entry>
<entry name="cpuUnit" type="String">
<default>usage</default>
</entry>
<entry name="showClock" type="Bool">
<default>true</default>
</entry>
<entry name="clockAgregator" type="String">
<default>average</default>
</entry>
<entry name="showCpuTemperature" type="Bool">
<default>false</default>
</entry>
<entry name="showRamMonitor" type="Bool">
<default>true</default>
</entry>
<entry name="memoryUnit" type="String">
<default>physical</default>
</entry>
<entry name="memorySwapGraph" type="Bool">
<default>true</default>
</entry>
<entry name="showNetMonitor" type="Bool">
<default>false</default>
</entry>
<entry name="networkUnit" type="String">
<default>kibibyte</default>
</entry>
<entry name="showGpuMonitor" type="Bool">
<default>false</default>
</entry>
<entry name="gpuMemoryInPercent" type="Bool">
<default>false</default>
</entry>
<entry name="gpuMemoryGraph" type="Bool">
<default>true</default>
</entry>
<entry name="showGpuTemperature" type="Bool">
<default>false</default>
</entry>
<entry name="showDiskMonitor" type="Bool">
<default>false</default>
</entry>
</group>
<group name="Data">
<entry name="ignoredNetworkInterfaces" type="StringList">
</entry>
<entry name="networkReceivingTotal" type="Double">
<default>100000.0</default>
</entry>
<entry name="networkSendingTotal" type="Double">
<default>100000.0</default>
</entry>
<entry name="diskReadTotal" type="Double">
<default>200000.0</default>
</entry>
<entry name="diskWriteTotal" type="Double">
<default>200000.0</default>
</entry>
<entry name="gpuIndex" type="String">
<default>gpu0</default>
</entry>
<entry name="thresholdWarningCpuTemp" type="Double">
<default>85.0</default>
</entry>
<entry name="thresholdCriticalCpuTemp" type="Double">
<default>105.0</default>
</entry>
<entry name="thresholdWarningMemory" type="Int">
<default>70</default>
</entry>
<entry name="thresholdCriticalMemory" type="Int">
<default>90</default>
</entry>
<entry name="thresholdWarningGpuTemp" type="Int">
<default>75</default>
</entry>
<entry name="thresholdCriticalGpuTemp" type="Int">
<default>85</default>
</entry>
</group>
<group name="Appearance">
<entry name="verticalLayout" type="Bool">
<default>false</default>
</entry>
<entry name="historyAmount" type="Int">
<default>10</default>
</entry>
<entry name="enableShadows" type="Bool">
<default>true</default>
</entry>
<entry name="fontScale" type="Int">
<default>26</default>
</entry>
<entry name="customGraphWidth" type="Bool">
<default>false</default>
</entry>
<entry name="graphWidth" type="Int">
</entry>
<entry name="customGraphHeight" type="Bool">
<default>false</default>
</entry>
<entry name="graphHeight" type="Int">
</entry>
<entry name="graphMargin" type="Int">
<default>10</default>
</entry>
<entry name="graphFillOpacity" type="Int">
<default>25</default>
</entry>
<entry name="displayment" type="String">
<default>hover-hints</default>
</entry>
<entry name="placement" type="String">
<default>top-right</default>
</entry>
<entry name="graphOrders" type="StringList">
<default>cpu,memory,gpu,disks,network</default>
</entry>
<entry name="customCpuColor" type="Bool">
<default>false</default>
</entry>
<entry name="cpuColor" type="Color">
</entry>
<entry name="customCpuTemperatureColor" type="Bool">
<default>false</default>
</entry>
<entry name="cpuTemperatureColor" type="Color">
</entry>
<entry name="customRamColor" type="Bool">
<default>false</default>
</entry>
<entry name="ramColor" type="Color">
</entry>
<entry name="customSwapColor" type="Bool">
<default>false</default>
</entry>
<entry name="swapColor" type="Color">
</entry>
<entry name="customNetDownColor" type="Bool">
<default>false</default>
</entry>
<entry name="netDownColor" type="Color">
</entry>
<entry name="customNetUpColor" type="Bool">
<default>false</default>
</entry>
<entry name="netUpColor" type="Color">
</entry>
<entry name="customGpuColor" type="Bool">
<default>false</default>
</entry>
<entry name="gpuColor" type="Color">
</entry>
<entry name="customGpuMemoryColor" type="Bool">
<default>false</default>
</entry>
<entry name="gpuMemoryColor" type="Color">
</entry>
<entry name="customGpuTemperatureColor" type="Bool">
<default>false</default>
</entry>
<entry name="gpuTemperatureColor" type="Color">
</entry>
<entry name="customDiskReadColor" type="Bool">
<default>false</default>
</entry>
<entry name="diskReadColor" type="Color">
</entry>
<entry name="customDiskWriteColor" type="Bool">
<default>false</default>
</entry>
<entry name="diskWriteColor" type="Color">
</entry>
<entry name="customWarningColor" type="Bool">
<default>false</default>
</entry>
<entry name="warningColor" type="Color">
</entry>
<entry name="customCriticalColor" type="Bool">
<default>false</default>
</entry>
<entry name="criticalColor" type="Color">
</entry>
</group>
</kcfg>
@@ -1,38 +0,0 @@
import QtQuick 2.0
import QtQuick.Controls 2.12 as QtControls
import QtQuick.Layouts 1.1 as QtLayouts
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.kirigami 2.6 as Kirigami
MouseArea {
id: root
height: childrenRect.height
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
property string serviceName: ""
property string name: ""
property string comment: ""
property string iconName: ""
property bool selected: false
QtLayouts.RowLayout {
spacing: Kirigami.Units.smallSpacing
QtControls.ToolTip.text: (comment !== "" ? comment + "\n\n" : "") + "ID: " + serviceName + ".desktop"
QtControls.ToolTip.visible: root.containsMouse
PlasmaCore.IconItem {
id: icon
source: iconName
implicitHeight: 16
implicitWidth: 16
}
PlasmaComponents.Label {
text: selected ? "<strong>" + name + "</strong>" : name
}
}
}
@@ -1,31 +0,0 @@
import QtQuick 2.0
import org.kde.plasma.core 2.1 as PlasmaCore
PlasmaCore.SortFilterModel {
id: appsDetector
sourceModel: PlasmaCore.DataModel {
dataSource: source
}
filterRole: "name"
sortColumn: 0
sortRole: "name"
sortOrder: Qt.AscendingOrder
property var _dataSource: PlasmaCore.DataSource {
id: source
engine: "apps"
connectedSources: {
// Explude folder
var result = [];
for (var i = 0; i < sources.length; i++) {
if (sources[i].indexOf(".desktop") !== -1) {
result.push(sources[i]);
}
}
return result;
}
interval: 0
}
}
@@ -1,73 +0,0 @@
import QtQuick 2.0
import org.kde.kitemmodels 1.0 as KItemModels
import org.kde.ksysguard.sensors 1.0 as Sensors
KItemModels.KSortFilterProxyModel {
id: detector
property var model: []
property var _privateModel: ListModel {
}
signal ready
// Find all gpus
sourceModel: KItemModels.KDescendantsProxyModel {
model: Sensors.SensorTreeModel {
}
}
property var _regex: /gpu\/(gpu\d)\/name/
property var _tmpSensors: []
filterRowCallback: function (row, parent) {
const sensorId = sourceModel.data(sourceModel.index(row, 0), Sensors.SensorTreeModel.SensorId);
const found = sensorId.match(_regex);
if (found && _tmpSensors.findIndex(item => item === sensorId) === -1) {
_tmpSensors.push(sensorId);
_privateModel.append({
"index": found[1],
"name": ""
});
}
}
// Find name of GPU
property var _nameRegex: /.*\[(.*)\]/
property var _sensors: Sensors.SensorDataModel {
updateRateLimit: -1
property var retrievedData: 0
onDataChanged: {
let name = data(topLeft, Sensors.SensorDataModel.Value);
// Special case for non NVIDIA graphic card (eg. in AMD the name look like "Navi 21 [Radeon RX 6950 XT]")
const found = name.match(_nameRegex);
if (found) {
if (found[1].startsWith("Radeon")) {
name = "AMD ";
} else {
name = "Intel ";
}
name += found[1];
}
_privateModel.setProperty(topLeft.column, "name", name);
// Stop sensors and update model
if (++retrievedData === sensors.length) {
enabled = false;
detector.model = _privateModel;
detector.ready();
}
}
}
property var _timer: Timer {
running: true
triggeredOnStart: true
onTriggered: {
running = false;
_sensors.sensors = _tmpSensors;
}
}
}
@@ -1,35 +0,0 @@
import QtQuick 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
QtObject {
id: detector
property var model: []
property var _dataSource: PlasmaCore.DataSource {
id: dataSource
engine: "executable"
connectedSources: []
property var excludedInterface: /^(?!lo|bridge|usbus|bond)(.*)$/
onNewData: {
var interfaces = data["stdout"].trim().split('\n');
for (var i = 0; i < interfaces.length; i++) {
if (excludedInterface.test(interfaces[i])) {
_privateModel.append({
"name": interfaces[i]
});
}
}
detector.model = _privateModel;
disconnectSource(sourceName); // cmd finished
}
Component.onCompleted: {
connectSource("ip -o link show | awk -F': ' '{print $2}'");
}
}
property var _privateModel: ListModel {}
}
@@ -1,78 +0,0 @@
/**
* @typedef {object} BinaryUnit
* @property {string} name The name
* @property {string} suffix The suffix
* @property {string} kiloChar The char for "kilo"
* @property {number} KiBDiff The difference with `kibibyte`
* @property {number} multiplier The multiplier amount (`1000` for metric and `1024` for binary)
*/
/**
* Get the binary unit from they name
* @param {string} dialect The binary unit name
* @returns {BinaryUnit} The binary unit
*/
function getNetworkDialectInfo(dialect) {
switch (dialect) {
case "kilobyte":
return {
name: "kilobyte",
suffix: i18nc("kilobyte suffix", "Bps"),
kiloChar: "k",
KiBDiff: 1.024,
multiplier: 1024,
};
case "kilobit":
return {
name: "kilobit",
suffix: i18nc("kilobit suffix", "bps"),
kiloChar: "k",
KiBDiff: 8,
multiplier: 1024,
};
default:
return {
name: "kibibyte",
suffix: i18nc("kibibyte suffix", "iB/s"),
kiloChar: "K",
KiBDiff: 1,
multiplier: 1024,
};
}
}
/**
* Convert value from bytes to the appropriate string representation using the binary unit dialect.
*
* @param {number} value The value in byte/bit
* @param {BinaryUnit} dialect The binary unit standard to use
* @param {number} [precision=1] Number of places after the decimal point to use.
* @returns Converted value as a translated string including the units.
*/
function formatByteValue(value, dialect, precision = 1) {
if (value === 0 || isNaN(parseInt(value))) {
return "0 " + dialect.suffix.replace("i", "");
} else if (dialect.name === "kibibyte" && value <= dialect.multiplier) {
return "0 " + dialect.suffix.replace("i", "");
}
var sizes = ["", dialect.kiloChar, "M", "G", "T", "P", "Z", "Y"];
// Search unit conversion
var unit = Math.floor(Math.log(value) / Math.log(dialect.multiplier));
// Bytes/Bits, no rounding
precision = precision < 0 ? 0 : precision;
if (unit === 0) {
precision = 0;
}
return (
parseFloat(
(value / Math.pow(dialect.multiplier, unit)).toFixed(precision)
) +
" " +
sizes[unit] +
dialect.suffix
);
}
@@ -1,70 +0,0 @@
import QtQuick 2.9
import org.kde.plasma.plasmoid 2.0
import "./base" as RMBaseGraph
import "../sensors" as RMSensors
RMBaseGraph.SensorGraph {
id: root
objectName: "CpuGraph"
Connections {
target: plasmoid.configuration
function onCpuUnitChanged() {
_updateSensors();
}
function onClockAgregatorChanged() {
if (!manualFrequency.needManual) {
_updateSensors();
}
}
}
// Config options
property color temperatureColor: plasmoid.configuration.customCpuTemperatureColor ? plasmoid.configuration.cpuTemperatureColor : theme.textColor
// Graph options
// NOTE: "sensorsModel.sensors" is set by "_updateSensors"
chartColor: plasmoid.configuration.customCpuColor ? plasmoid.configuration.cpuColor : theme.highlightColor
chart.yRange {
from: 0
to: 100
}
// Labels options
thresholds: [undefined, undefined, [plasmoid.configuration.thresholdWarningCpuTemp, plasmoid.configuration.thresholdCriticalCpuTemp]]
textContainer {
labelColors: [root.chartColor, undefined, temperatureColor]
valueColors: [undefined, undefined, temperatureColor]
labels: ["CPU", (plasmoid.configuration.showClock ? i18nc("Graph label", "Clock") : ""), (plasmoid.configuration.showCpuTemperature ? i18nc("Graph label", "Temp.") : "")]
}
function _updateSensors() {
// Manual cpu frequency handle
// TODO (3.0): remove this
let frequencySensorId = "cpu/all/" + plasmoid.configuration.clockAgregator + "Frequency";
if (manualFrequency.needManual) {
frequencySensorId = "cpu/cpu0/frequency";
}
// END Manual cpu frequency handle
sensorsModel.sensors = ["cpu/all/" + plasmoid.configuration.cpuUnit, frequencySensorId, "cpu/cpu0/temperature"];
}
// Manual cpu frequency handle
// TODO (3.0): remove this
_formatValue: (index, data) => {
if (index === 1 && manualFrequency.needManual) {
return manualFrequency.getFormattedValue();
}
return _defaultFormatValue(index, data);
}
RMSensors.CpuFrequency {
id: manualFrequency
agregator: plasmoid.configuration.clockAgregator
onReady: _updateSensors()
}
}
@@ -1,38 +0,0 @@
import QtQuick 2.9
import org.kde.plasma.plasmoid 2.0
import "./base" as RMBaseGraph
import "../functions.js" as Functions
RMBaseGraph.TwoSensorsGraph {
id: root
objectName: "DisksGraph"
readonly property var diskIoDialect: Functions.getNetworkDialectInfo("kibibyte")
Connections {
target: plasmoid.configuration
function onDiskReadTotalChanged() {
_updateUplimits();
}
function onDiskWriteTotalChanged() {
_updateUplimits();
}
}
Component.onCompleted: {
_updateUplimits();
}
// Labels
textContainer {
labelColors: root.colors
labels: [i18nc("Graph label", "Read"), i18nc("Graph label", "Write"), ""]
}
// Graph options
sensorsModel.sensors: ["disk/all/read", "disk/all/write"]
colors: [(plasmoid.configuration.customDiskReadColor ? plasmoid.configuration.diskReadColor : theme.highlightColor), (plasmoid.configuration.customDiskWriteColor ? plasmoid.configuration.diskWriteColor : theme.positiveTextColor)]
function _updateUplimits() {
uplimits = [plasmoid.configuration.diskReadTotal * diskIoDialect.multiplier, plasmoid.configuration.diskWriteTotal * diskIoDialect.multiplier];
}
}
@@ -1,85 +0,0 @@
import QtQuick 2.9
import org.kde.plasma.plasmoid 2.0
import org.kde.ksysguard.sensors 1.0 as Sensors
import "./base" as RMBaseGraph
RMBaseGraph.TwoSensorsGraph {
id: root
objectName: "GpuGraph"
// Config options
property color temperatureColor: plasmoid.configuration.customGpuTemperatureColor ? plasmoid.configuration.gpuTemperatureColor : theme.textColor
// Bind config changes
Connections {
target: plasmoid.configuration
function onGpuMemoryInPercentChanged() {
uplimits = [100, plasmoid.configuration.gpuMemoryInPercent ? 100 : maxQueryModel.maxMemory];
_clear();
}
function onGpuIndexChanged() {
maxQueryModel.enabled = true
}
}
// Labels
thresholds: [undefined, undefined, [plasmoid.configuration.thresholdWarningGpuTemp, plasmoid.configuration.thresholdCriticalGpuTemp]]
textContainer {
labelColors: [root.colors[0], root.colors[1], temperatureColor]
valueColors: [undefined, undefined, temperatureColor]
labels: ["GPU", (plasmoid.configuration.gpuMemoryGraph ? "VRAM" : ""), (plasmoid.configuration.showGpuTemperature ? i18nc("Graph label", "Temp.") : "")]
}
// Graph options
// NOTE: "sensorsModel.sensors" set from "maxQueryModel"
colors: [(plasmoid.configuration.customGpuColor ? plasmoid.configuration.gpuColor : theme.highlightColor), (plasmoid.configuration.customGpuMemoryColor ? plasmoid.configuration.gpuMemoryColor : theme.positiveTextColor)]
// Override methods, for handle memeory in percent
_update: () => {
for (let i = 0; i < sensorsModel.sensors.length; i++) {
let value = sensorsModel.getInfo(i);
if (i === 1 && plasmoid.configuration.gpuMemoryInPercent) {
value = (value / maxQueryModel.maxMemory) * 100;
}
root._insertChartData(i, value);
// Update label
if (textContainer.valueVisible) {
_updateData(i);
}
}
}
_formatValue: (index, data) => {
if (index === 1 && plasmoid.configuration.gpuMemoryInPercent) {
return i18nc("Percent unit", "%1%", Math.round((data.value / maxQueryModel.maxMemory) * 1000) / 10); // This is for round to 1 decimal
}
return _defaultFormatValue(index, data);
}
// Initialize limits and threshold
Sensors.SensorDataModel {
id: maxQueryModel
sensors: ["gpu/" + plasmoid.configuration.gpuIndex + "/totalVram"]
enabled: true
property int maxMemory: -1
onDataChanged: {
// Update values
const valueVar = parseInt(data(topLeft, Sensors.SensorDataModel.Value));
if (isNaN(valueVar) || valueVar <= 0) {
return;
}
enabled = false;
maxMemory = valueVar;
// Update graph Y range
root.uplimits = [100, plasmoid.configuration.gpuMemoryInPercent ? 100 : maxMemory];
// Update sensors
const gpu = plasmoid.configuration.gpuIndex
root.sensorsModel.sensors = ["gpu/" + gpu + "/usage", "gpu/" + gpu + "/usedVram", "gpu/" + gpu + "/temperature"];
}
}
}
@@ -1,101 +0,0 @@
import QtQuick 2.9
import org.kde.plasma.plasmoid 2.0
import org.kde.ksysguard.sensors 1.0 as Sensors
import "./base" as RMBaseGraph
RMBaseGraph.TwoSensorsGraph {
id: root
objectName: "MemoryGraph"
Connections {
target: plasmoid.configuration
function onMemoryUnitChanged() { // Values: usage, system, user
const oldLimit1 = uplimits[0];
if (plasmoid.configuration.memoryUnit.endsWith("-percent")) {
uplimits = [100, 100];
} else {
uplimits = maxQueryModel.maxMemory;
}
_updateThresholds();
_updateSensors();
if (oldLimit1 != uplimits[0]) {
_clear();
}
}
function onMemorySwapGraphChanged() {
_updateSensors();
}
function onThresholdWarningMemoryChanged() {
_updateThresholds();
}
function onThresholdCriticalMemoryChanged() {
_updateThresholds();
}
}
Component.onCompleted: {
_updateThresholds();
_updateSensors();
}
// Labels
textContainer {
labelColors: root.colors
valueColors: [undefined, root.colors[1]]
labelsVisibleWhenZero: [true, false, true]
labels: ["RAM", (plasmoid.configuration.memorySwapGraph ? "Swap" : ""), ""]
}
// Graph options
// NOTE: "sensorsModel.sensors" is set by "_updateSensors"
colors: [(plasmoid.configuration.customRamColor ? plasmoid.configuration.ramColor : theme.highlightColor), (plasmoid.configuration.customSwapColor ? plasmoid.configuration.swapColor : theme.negativeTextColor)]
// Initialize limits and threshold
Sensors.SensorDataModel {
id: maxQueryModel
sensors: ["memory/physical/total", "memory/swap/total"]
enabled: true
property var maxMemory: [-1, -1]
onDataChanged: {
// Update values
const value = parseInt(data(topLeft, Sensors.SensorDataModel.Value));
if (isNaN(value) || (topLeft.column === 0 && value <= 0)) {
return;
}
maxMemory[topLeft.column] = value;
// Update graph Y range and sensors
if (maxMemory[0] > 0 && maxMemory[1] >= 0) {
enabled = false;
if (!plasmoid.configuration.memoryUnit.endsWith("-percent")) {
root.uplimits = maxMemory;
}
root._updateThresholds();
root._updateSensors();
}
}
}
function _updateThresholds() {
const thresholdWarningMemory = plasmoid.configuration.thresholdWarningMemory;
const thresholdCriticalMemory = plasmoid.configuration.thresholdCriticalMemory;
if (!plasmoid.configuration.memoryUnit.endsWith("-percent")) {
thresholds[0] = [maxQueryModel.maxMemory[0] * (thresholdWarningMemory / 100.0), maxQueryModel.maxMemory[0] * (thresholdCriticalMemory / 100.0)];
} else {
thresholds[0] = [thresholdWarningMemory, thresholdCriticalMemory];
}
}
function _updateSensors() {
const info = plasmoid.configuration.memoryUnit.split("-");
const suffix = info[1] === "percent" ? "Percent" : "";
const memSensor = "memory/physical/" + (info[0] === "physical" ? "used" : "application") + suffix;
if (plasmoid.configuration.memorySwapGraph) {
sensorsModel.sensors = [memSensor, "memory/swap/used" + suffix];
} else {
sensorsModel.sensors = [memSensor];
}
}
}
@@ -1,113 +0,0 @@
import QtQuick 2.9
import org.kde.plasma.plasmoid 2.0
import "./base" as RMBaseGraph
import "../" as RMComponents
import "../functions.js" as Functions
RMBaseGraph.TwoSensorsGraph {
id: root
objectName: "NetworkGraph"
property var dialect: Functions.getNetworkDialectInfo(plasmoid.configuration.networkUnit)
Connections {
target: plasmoid.configuration
function onIgnoredNetworkInterfacesChanged() {
_updateSensors();
}
function onNetworkReceivingTotalChanged() {
_updateUplimits();
}
function onNetworkSendingTotalChanged() {
_updateUplimits();
}
}
Component.onCompleted: _updateUplimits()
// Labels
textContainer {
labelColors: root.colors
labels: [i18nc("Graph label", "Receiving"), i18nc("Graph label", "Sending"), ""]
}
// Graph options
colors: [(plasmoid.configuration.customNetDownColor ? plasmoid.configuration.netDownColor : theme.highlightColor), (plasmoid.configuration.customNetUpColor ? plasmoid.configuration.netUpColor : theme.positiveTextColor)]
// Initialized sensors
RMComponents.NetworkInterfaceDetector {
id: networkInterfaces
onModelChanged: _updateSensors()
}
// Override methods, for commulate sensors and support custom dialect
property var _downloadValue
property var _uploadValue
_update: () => {
// Cummulate sensors by group
let data;
let downloadValue = 0, uploadValue = 0;
for (let i = 0; i < sensorsModel.sensors.length; i++) {
data = sensorsModel.getData(i);
if (typeof data === "undefined") {
continue;
} else if (data.sensorId.indexOf('/download') !== -1) {
downloadValue += data.value;
} else {
uploadValue += data.value;
}
}
// Fix dialect AND store it for update label
_downloadValue = downloadValue *= dialect.KiBDiff;
_uploadValue = uploadValue *= dialect.KiBDiff;
// Insert datas
root._insertChartData(0, downloadValue);
root._insertChartData(1, uploadValue);
// Update label
if (textContainer.valueVisible) {
_updateData(0);
_updateData(1);
}
}
function _updateData(index) {
// Cancel update if first data is not here
if (!sensorsModel.hasIndex(0, 0)) {
return;
}
// Retrieve label need to update
const label = _getLabel(index);
if (typeof label === "undefined" || !label.enabled) {
return;
}
const value = index === 0 ? _downloadValue : _uploadValue;
// Show value on label
label.text = Functions.formatByteValue(value, dialect);
label.visible = true;
}
function _updateSensors() {
if (typeof networkInterfaces.model.count === "undefined") {
return;
}
const sensors = [];
for (let i = 0; i < networkInterfaces.model.count; i++) {
const name = networkInterfaces.model.get(i).name;
if (plasmoid.configuration.ignoredNetworkInterfaces.indexOf(name) === -1) {
sensors.push("network/" + name + "/download", "network/" + name + "/upload");
}
}
sensorsModel.sensors = sensors;
_clear();
}
function _updateUplimits() {
uplimits = [plasmoid.configuration.networkReceivingTotal * dialect.multiplier, plasmoid.configuration.networkSendingTotal * dialect.multiplier];
}
}
@@ -1,39 +0,0 @@
import QtQuick 2.9
import org.kde.quickcharts 1.0 as Charts
Charts.ArraySource {
property int maximumHistory: -1
onMaximumHistoryChanged: {
if (maximumHistory != -1) {
if (array.length === 0) {
array = Array(maximumHistory).fill(0);
}
_update(false);
}
}
function clear() {
array = maximumHistory === -1 ? [] : Array(maximumHistory).fill(0);
// Emit update
dataChanged();
}
function insertValue(value) {
array = [value, ...array];
_update();
}
function _update() {
// Reorder array
while (array.length > 0 && array.length > maximumHistory) {
array = array.slice(0, -1);
}
// Emit update
dataChanged();
}
Component.onCompleted: {
array = maximumHistory === -1 ? [] : Array(maximumHistory).fill(0);
}
}
@@ -1,164 +0,0 @@
import QtQuick 2.9
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.ksysguard.sensors 1.0 as Sensors
import org.kde.ksysguard.formatter 1.0 as Formatter
import "./" as RMBaseGraph
Item {
id: root
signal chartDataChanged(int index)
signal showValueInLabel
signal labelChanged(PlasmaComponents.Label label, var value)
// Aliases
readonly property alias textContainer: textContainer
readonly property alias sensorsModel: sensorsModel
// Thresholds properties
property var thresholds: [undefined, undefined, undefined]
property color thresholdWarningColor: plasmoid.configuration.customWarningColor ? plasmoid.configuration.warningColor : theme.neutralTextColor
property color thresholdCriticalColor: plasmoid.configuration.customCriticalColor ? plasmoid.configuration.criticalColor : theme.negativeTextColor
// Labels
RMBaseGraph.GraphText {
id: textContainer
anchors.fill: parent
z: 1
onShowValueInLabel: {
// Update labels
for (let i = 0; i < sensorsModel.sensors.length; i++) {
_updateData(i);
}
// Emit signal
root.showValueInLabel();
}
}
// Retrieve data from sensors, and update labels
Sensors.SensorDataModel {
id: sensorsModel
updateRateLimit: -1
enabled: root.visible
/**
* Get the data from sensor
* @param {number} column The sensors index
* @returns The data value, formatted value and sensor id
*/
function getData(column) {
if (!hasIndex(0, column)) {
return undefined;
}
const indexVar = index(0, column);
const value = data(indexVar, Sensors.SensorDataModel.Value);
const res = {
"sensorId": data(indexVar, Sensors.SensorDataModel.SensorId),
"value": value
};
return res;
}
/**
* Get info from sensor
* @param {number} column The sensor index
* @param {number} role The role id
* @returns The sensor info
*/
function getInfo(column, role = Sensors.SensorDataModel.Value) {
if (!hasIndex(0, column)) {
return 0;
}
return data(index(0, column), role);
}
}
Connections {
target: root
/**
* Re assign sensorsModel.sensors when enable visibility for right initialize it.
* This is due to an issue when set sensors and model is disabled, the sensors is never initialized
* Bug reported at : https://bugs.kde.org/show_bug.cgi?id=469234
*/
function onVisibleChanged() {
if (!root.visible) {
return;
}
const sensors = sensorsModel.sensors;
sensorsModel.sensors = [];
sensorsModel.sensors = sensors;
}
}
// Process functions
property var _insertChartData: (column, value) => {} // NOTE: this is implemented by children
property var _clear: () => {
for (let i = 0; i < sensorsModel.sensors.length; i++) {
_updateData(i);
}
}
property var _update: () => {
for (let i = 0; i < sensorsModel.sensors.length; i++) {
root._insertChartData(i, sensorsModel.getInfo(i));
// Update label
if (textContainer.valueVisible) {
_updateData(i);
}
}
}
function _getLabel(index) {
if (index === 0) {
return textContainer.firstLineLabel;
} else if (index === 1) {
return textContainer.secondLineLabel;
} else if (index === 2) {
return textContainer.thirdLineLabel;
}
return undefined;
}
function _updateData(index) {
// Retrieve label need to update
const label = _getLabel(index);
if (typeof label === "undefined" || !label.enabled) {
return;
}
const data = sensorsModel.getData(index);
if (typeof data === 'undefined') {
return;
}
// Hide can't be zero label
if (!textContainer.labelsVisibleWhenZero[index] && data.value === 0) {
label.text = '';
label.visible = false;
} else {
// Handle threshold value
if (typeof thresholds[index] !== 'undefined') {
if (data.value >= thresholds[index][1]) {
label.color = thresholdCriticalColor;
} else if (data.value >= thresholds[index][0]) {
label.color = thresholdWarningColor;
} else {
label.color = textContainer.getTextColor(index);
}
}
// Show value on label
label.text = _formatValue(index, data);
label.visible = label.enabled;
}
labelChanged(label, data);
}
property var _formatValue: _defaultFormatValue
function _defaultFormatValue(index, data) {
return Formatter.Formatter.formatValueShowNull(data.value, sensorsModel.getInfo(index, Sensors.SensorDataModel.Unit));
}
}
@@ -1,257 +0,0 @@
import QtQuick 2.9
import QtGraphicalEffects 1.0
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.components 2.0 as PlasmaComponents
Item {
id: graphText
signal showValueInLabel
property bool valueVisible: false
// Aliases
readonly property alias firstLineLabel: firstLineLabel
readonly property alias secondLineLabel: secondLineLabel
readonly property alias thirdLineLabel: thirdLineLabel
// Text properties
property var labels: ["", "", ""]
property var valueColors: [theme.textColor, theme.textColor, theme.textColor]
property var labelColors: [theme.highlightColor, theme.textColor, theme.textColor]
property var labelsVisibleWhenZero: [true, true, true]
// Config aliases
property string displayment: plasmoid.configuration.displayment // Values: always, hover, hover-hints
// Bind config changes
onDisplaymentChanged: {
if (displayment === 'hover') {
valueVisible = mouseArea.containsMouse;
_setLabelsState(valueVisible);
if (mouseArea.containsMouse) {
showValueInLabel();
}
} else {
_setLabelsState(true);
showValueInLabel();
valueVisible = true;
}
}
// Bind properties changes
onLabelsChanged: {
firstLineLabel.enabled = firstLineLabel.visible = labels[0] != "";
secondLineLabel.enabled = secondLineLabel.visible = labels[1] != "";
thirdLineLabel.enabled = thirdLineLabel.visible = labels[2] != "";
}
// Labels
Flow {
id: textContainer
width: parent.width
state: plasmoid.configuration.placement // Values: top-right, top-left, bottom-right, bottom-left
spacing: -2
flow: Flow.TopToBottom
// First line
PlasmaComponents.Label {
id: firstLineLabel
width: parent.width
height: contentHeight
readonly property int index: 0
text: "..."
color: getTextColor(index)
font.pointSize: -1
}
PlasmaComponents.Label {
id: secondLineLabel
width: parent.width
height: contentHeight
readonly property int index: 1
text: "..."
color: getTextColor(index)
font.pointSize: -1
}
PlasmaComponents.Label {
id: thirdLineLabel
width: parent.width
height: contentHeight
readonly property int index: 2
text: "..."
color: getTextColor(index)
font.pointSize: -1
}
// States
states: [
State {
name: 'top-left'
AnchorChanges {
target: textContainer
anchors.top: parent.top
}
PropertyChanges {
target: firstLineLabel
horizontalAlignment: Text.AlignLeft
}
PropertyChanges {
target: secondLineLabel
horizontalAlignment: Text.AlignLeft
}
PropertyChanges {
target: thirdLineLabel
horizontalAlignment: Text.AlignLeft
}
},
State {
name: 'top-right'
AnchorChanges {
target: textContainer
anchors.top: parent.top
}
PropertyChanges {
target: firstLineLabel
horizontalAlignment: Text.AlignRight
}
PropertyChanges {
target: secondLineLabel
horizontalAlignment: Text.AlignRight
}
PropertyChanges {
target: thirdLineLabel
horizontalAlignment: Text.AlignRight
}
},
State {
name: 'bottom-left'
AnchorChanges {
target: textContainer
anchors.bottom: parent.bottom
}
PropertyChanges {
target: firstLineLabel
horizontalAlignment: Text.AlignLeft
}
PropertyChanges {
target: secondLineLabel
horizontalAlignment: Text.AlignLeft
}
PropertyChanges {
target: thirdLineLabel
horizontalAlignment: Text.AlignLeft
}
},
State {
name: 'bottom-right'
AnchorChanges {
target: textContainer
anchors.bottom: parent.bottom
}
PropertyChanges {
target: firstLineLabel
horizontalAlignment: Text.AlignRight
}
PropertyChanges {
target: secondLineLabel
horizontalAlignment: Text.AlignRight
}
PropertyChanges {
target: thirdLineLabel
horizontalAlignment: Text.AlignRight
}
}
]
}
DropShadow {
visible: plasmoid.configuration.enableShadows
anchors.fill: textContainer
radius: 1
spread: 1
fast: true
color: theme.backgroundColor
source: textContainer
}
// Action
MouseArea {
id: mouseArea
anchors.fill: parent
acceptedButtons: Qt.NoButton
hoverEnabled: displayment !== 'always'
property bool _firstHover: true
property var _oldLabelsState: []
function _saveOldLabelsState() {
_oldLabelsState = [[firstLineLabel.text + "", !!firstLineLabel.visible], [secondLineLabel.text + "", !!secondLineLabel.visible], [thirdLineLabel.text + "", !!thirdLineLabel.visible]];
}
onEntered: {
if (displayment === 'hover-hints') {
valueVisible = false;
_saveOldLabelsState();
_setLabelsState(true);
// Show label hints
_setTextAndColor(firstLineLabel, labels[firstLineLabel.index], true);
_setTextAndColor(secondLineLabel, labels[secondLineLabel.index], true);
_setTextAndColor(thirdLineLabel, labels[thirdLineLabel.index], true);
} else if (displayment === 'hover') {
_setLabelsState(true);
showValueInLabel();
valueVisible = true;
}
}
onExited: {
if (displayment === 'hover-hints') {
// Recover old state
_setTextAndColor(firstLineLabel, _oldLabelsState[firstLineLabel.index][0]);
firstLineLabel.visible = _oldLabelsState[firstLineLabel.index][1];
_setTextAndColor(secondLineLabel, _oldLabelsState[secondLineLabel.index][0]);
secondLineLabel.visible = _oldLabelsState[secondLineLabel.index][1];
_setTextAndColor(thirdLineLabel, _oldLabelsState[thirdLineLabel.index][0]);
thirdLineLabel.visible = _oldLabelsState[thirdLineLabel.index][1];
// Update value
showValueInLabel();
valueVisible = true;
} else if (displayment === 'hover') {
valueVisible = false;
_setLabelsState(false);
}
}
}
function getTextColor(index, isLabel = false) {
if (isLabel) {
return labelColors[index] || theme.textColor;
}
return valueColors[index] || theme.textColor;
}
function _setLabelsState(state) {
if (state) {
firstLineLabel.visible = firstLineLabel.enabled;
secondLineLabel.visible = secondLineLabel.enabled;
thirdLineLabel.visible = thirdLineLabel.enabled;
} else {
firstLineLabel.visible = secondLineLabel.visible = thirdLineLabel.visible = false;
}
}
function _setTextAndColor(label, value, isLabel = false) {
if (!label.enabled) {
return;
}
label.text = value;
label.color = getTextColor(label.index, isLabel);
}
}
@@ -1,47 +0,0 @@
import org.kde.plasma.plasmoid 2.0
import org.kde.quickcharts 1.0 as Charts
import "./" as RMBaseGraph
RMBaseGraph.BaseSensorGraph {
id: root
// Aliases
property alias chart: chart
// Graph properties
property color chartColor: theme.highlightColor
// Graph
Charts.LineChart {
id: chart
anchors.fill: parent
direction: Charts.XYChart.ZeroAtEnd
fillOpacity: plasmoid.configuration.graphFillOpacity / 100
smooth: true
yRange.automatic: false
colorSource: Charts.SingleValueSource {
value: chartColor
}
valueSources: [
RMBaseGraph.ArrayDataSource {
id: chartData
maximumHistory: plasmoid.configuration.historyAmount
}
]
}
_clear: () => {
chartData.clear();
for (let i = 0; i < sensorsModel.sensors.length; i++) {
_updateData(i);
}
}
_insertChartData: (column, value) => {
if (column == 0) {
chartData.insertValue(value);
root.chartDataChanged(0);
}
}
}
@@ -1,75 +0,0 @@
import org.kde.plasma.plasmoid 2.0
import org.kde.quickcharts 1.0 as Charts
import "./" as RMBaseGraph
RMBaseGraph.BaseSensorGraph {
id: root
property var uplimits: [100, 100]
// Graph properties
property var colors: [theme.highlightColor, theme.textColor]
// Bind properties changes
onUplimitsChanged: {
firstChart.yRange.to = uplimits[0];
secondChart.yRange.to = uplimits[1];
}
// Graphs
Charts.LineChart {
id: secondChart
anchors.fill: parent
direction: Charts.XYChart.ZeroAtEnd
fillOpacity: plasmoid.configuration.graphFillOpacity / 100
smooth: true
yRange.automatic: false
colorSource: Charts.SingleValueSource {
value: colors[1]
}
valueSources: [
RMBaseGraph.ArrayDataSource {
id: secondChartData
maximumHistory: plasmoid.configuration.historyAmount
}
]
}
Charts.LineChart {
id: firstChart
anchors.fill: parent
direction: Charts.XYChart.ZeroAtEnd
fillOpacity: plasmoid.configuration.graphFillOpacity / 100
smooth: true
yRange.automatic: false
colorSource: Charts.SingleValueSource {
value: colors[0]
}
valueSources: [
RMBaseGraph.ArrayDataSource {
id: firstChartData
maximumHistory: plasmoid.configuration.historyAmount
}
]
}
_clear: () => {
firstChartData.clear()
secondChartData.clear()
for (let i = 0; i < sensorsModel.sensors.length; i++) {
_updateData(i);
}
}
_insertChartData: (column, value) => {
if (column == 0) {
firstChartData.insertValue(value);
root.chartDataChanged(0);
} else if (column == 1) {
secondChartData.insertValue(value);
root.chartDataChanged(1);
}
}
}
@@ -1,72 +0,0 @@
import QtQuick 2.0
import org.kde.ksysguard.sensors 1.0 as Sensors
import org.kde.ksysguard.formatter 1.0 as Formatter
// TODO (3.0): remove this
Sensors.SensorDataModel {
id: root
property int _coreCount
property string agregator: "average" // Possible value: average, minimum, maximum
property bool needManual
signal ready
function getFormattedValue() {
return Formatter.Formatter.formatValueShowNull(getValue(), 302 /* Formatter.Unit.UnitMegaHertz */);
}
function getValue() {
let values = [];
for (let i = 0; i < _coreCount; i++) {
values[i] = data(index(0, i), Sensors.SensorDataModel.Value);
}
// Agregate values
if (agregator === "average") {
return values.reduce((a, b) => a + b, 0) / _coreCount;
} else if (agregator === "minimum") {
return Math.min(...values);
} else if (agregator === "maximum") {
return Math.max(...values);
} else {
return undefined;
}
}
updateRateLimit: -1
Component.onCompleted: {
sensors = ["cpu/all/coreCount", "cpu/all/" + agregator + "Frequency"];
}
property bool _initialized
property Timer _timer: Timer {
running: enabled
interval: 100 // Wait to be sure all sensors metadata has retrieved
onTriggered: {
/// Prevent running multiple times
if (_initialized) {
return;
}
_initialized = true;
// Do nothing if all frequency is already exist
if (hasIndex(0, 1)) {
root.enabled = false;
root.ready();
return;
}
// Fill sensors with all cores
_coreCount = data(index(0, 0));
const sensors = [];
for (let i = 0; i < _coreCount; i++) {
sensors[i] = "cpu/cpu" + i + "/frequency";
}
root.sensors = sensors;
root.needManual = true;
root.ready();
}
}
}
@@ -1,510 +0,0 @@
import QtQuick 2.2
import QtQuick.Controls 2.12 as QtControls
import QtQuick.Layouts 1.15 as QtLayouts
import org.kde.kirigami 2.6 as Kirigami
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 3.0 as PlasmaComponents
import org.kde.plasma.extras 2.0 as PlasmaExtras
import "../controls" as RMControls
import "../components" as RMComponents
PlasmaExtras.Representation {
id: page
anchors.fill: parent
// Chart
property alias cfg_verticalLayout: verticalLayout.checked
property alias cfg_historyAmount: historyAmount.value
property alias cfg_customGraphWidth: graphWidth.customized
property alias cfg_graphWidth: graphWidth.value
property alias cfg_customGraphHeight: graphHeight.customized
property alias cfg_graphHeight: graphHeight.value
property alias cfg_graphMargin: graphMargin.value
property alias cfg_graphFillOpacity: graphFillOpacity.value
property var cfg_graphOrders
// Text
property alias cfg_enableShadows: enableShadows.checked
property alias cfg_fontScale: fontScale.value
property string cfg_placement
property string cfg_displayment
// Colors
// > CPU
property alias cfg_customCpuColor: cpuColor.customized
property alias cfg_cpuColor: cpuColor.value
property alias cfg_customCpuTemperatureColor: cpuTemperatureColor.customized
property alias cfg_cpuTemperatureColor: cpuTemperatureColor.value
// > Memory
property alias cfg_customRamColor: ramColor.customized
property alias cfg_ramColor: ramColor.value
property alias cfg_customSwapColor: swapColor.customized
property alias cfg_swapColor: swapColor.value
// > Network
property alias cfg_customNetDownColor: netDownColor.customized
property alias cfg_netDownColor: netDownColor.value
property alias cfg_customNetUpColor: netUpColor.customized
property alias cfg_netUpColor: netUpColor.value
// > GPU
property alias cfg_customGpuColor: gpuColor.customized
property alias cfg_gpuColor: gpuColor.value
property alias cfg_customGpuMemoryColor: gpuMemoryColor.customized
property alias cfg_gpuMemoryColor: gpuMemoryColor.value
property alias cfg_customGpuTemperatureColor: gpuTemperatureColor.customized
property alias cfg_gpuTemperatureColor: gpuTemperatureColor.value
// > Disk
property alias cfg_customDiskReadColor: diskReadColor.customized
property alias cfg_diskReadColor: diskReadColor.value
property alias cfg_customDiskWriteColor: diskWriteColor.customized
property alias cfg_diskWriteColor: diskWriteColor.value
// > Threshold
property alias cfg_customWarningColor: warningColor.customized
property alias cfg_warningColor: warningColor.value
property alias cfg_customCriticalColor: criticalColor.customized
property alias cfg_criticalColor: criticalColor.value
property color textColor: theme.textColor
property color primaryColor: theme.highlightColor
property color positiveColor: theme.positiveTextColor
property color neutralColor: theme.neutralTextColor
property color negativeColor: theme.negativeTextColor
property var monitors: {
"cpu": {
"id": "cpu",
"name": i18nc("Chart name", "CPU"),
"icon": "cpu-symbolic"
},
"memory": {
"id": "memory",
"name": i18nc("Chart name", "Memory"),
"icon": "memory-symbolic"
},
"gpu": {
"id": "gpu",
"name": i18nc("Chart name", "GPU"),
"icon": "freon-gpu-temperature-symbolic"
},
"disks": {
"id": "disks",
"name": i18nc("Chart name", "Disks I/O"),
"icon": "drive-harddisk-symbolic"
},
"network": {
"id": "network",
"name": i18nc("Chart name", "Network"),
"icon": "network-wired-symbolic"
}
}
// Tab bar
header: PlasmaExtras.PlasmoidHeading {
location: PlasmaExtras.PlasmoidHeading.Location.Header
PlasmaComponents.TabBar {
id: bar
position: PlasmaComponents.TabBar.Header
anchors.fill: parent
implicitHeight: contentHeight
PlasmaComponents.TabButton {
icon.name: "office-chart-line-stacked"
icon.height: PlasmaCore.Units.iconSizes.smallMedium
text: i18nc("Config header", "Charts")
}
PlasmaComponents.TabButton {
icon.name: "dialog-text-and-font"
icon.height: PlasmaCore.Units.iconSizes.smallMedium
text: i18nc("Config header", "Text")
}
PlasmaComponents.TabButton {
icon.name: "color-select"
icon.height: PlasmaCore.Units.iconSizes.smallMedium
text: i18nc("Config header", "Colors")
}
}
}
QtLayouts.StackLayout {
id: pageContent
anchors.fill: parent
currentIndex: bar.currentIndex
// Charts
Kirigami.ScrollablePage {
Kirigami.FormLayout {
id: graphPage
wideMode: true
QtControls.CheckBox {
id: verticalLayout
text: i18n("Vertical layout")
}
RMControls.SpinBox {
id: historyAmount
Kirigami.FormData.label: i18n("History amount:")
QtLayouts.Layout.fillWidth: true
from: 2
}
RMControls.CustomizableSize {
id: graphWidth
Kirigami.FormData.label: i18n("Width:")
QtLayouts.Layout.fillWidth: true
from: 1
to: 1000
}
RMControls.CustomizableSize {
id: graphHeight
Kirigami.FormData.label: i18n("Height:")
QtLayouts.Layout.fillWidth: true
from: 1
to: 1000
}
RMControls.SpinBox {
id: graphMargin
Kirigami.FormData.label: i18n("Margin:")
QtLayouts.Layout.fillWidth: true
from: 1
to: 1000
textFromValue: function (value, locale) {
return valueToText(value, locale) + " px";
}
}
RMControls.SpinBox {
id: graphFillOpacity
Kirigami.FormData.label: i18n("Fill opacity:")
QtLayouts.Layout.fillWidth: true
from: 1
to: 100
textFromValue: function (value, locale) {
return valueToText(value, locale) + "%";
}
}
// order
Item {
Kirigami.FormData.label: i18n("Charts order")
Kirigami.FormData.isSection: true
}
ListView {
id: graphsList
anchors.left: parent.left
anchors.right: parent.right
clip: true
interactive: false
property int listViewHeight: 0
implicitHeight: listViewHeight
model: ListModel {
Component.onCompleted: cfg_graphOrders.map(id => monitors[id]).forEach(item => append(item))
function toJS() {
const result = [];
for (let i = 0; i < count; i++) {
result.push(get(i));
}
return result;
}
}
delegate: Kirigami.DelegateRecycler {
width: graphsList.width
sourceComponent: delegateComponent
Component.onCompleted: {
graphsList.listViewHeight += height + 1;
}
}
moveDisplaced: Transition {
YAnimator {
duration: Kirigami.Units.longDuration
easing.type: Easing.InOutQuad
}
}
Component {
id: delegateComponent
Kirigami.AbstractListItem {
id: listItem
backgroundColor: theme.headerBackgroundColor
separatorVisible: true
contentItem: QtLayouts.RowLayout {
spacing: Kirigami.Units.largeSpacing
Kirigami.ListItemDragHandle {
listView: graphsList
listItem: listItem
onMoveRequested: graphsList.model.move(oldIndex, newIndex, 1)
onDropped: {
cfg_graphOrders = graphsList.model.toJS().map(item => item.id);
}
}
PlasmaCore.IconItem {
source: model.icon
width: PlasmaCore.Units.iconSizes.smallMedium
height: width
}
PlasmaComponents.Label {
text: model.name
QtLayouts.Layout.fillWidth: true
}
}
}
}
}
}
}
// Text
Kirigami.ScrollablePage {
Kirigami.FormLayout {
id: textPage
wideMode: true
QtControls.CheckBox {
id: enableShadows
text: i18n("Drop shadows")
}
RMControls.SpinBox {
id: fontScale
Kirigami.FormData.label: i18n("Font scale:")
QtLayouts.Layout.fillWidth: true
from: 1
to: 100
textFromValue: function (value, locale) {
return valueToText(value, locale) + "%";
}
}
QtControls.ComboBox {
id: displayment
Kirigami.FormData.label: i18n("Text displayment:")
currentIndex: -1
textRole: "label"
valueRole: "name"
model: [{
"label": i18nc("Text displayment", "Always"),
"name": "always"
}, {
"label": i18nc("Text displayment", "On hover"),
"name": "hover"
}, {
"label": i18nc("Text displayment", "Hints when hover"),
"name": "hover-hints"
}]
onActivated: cfg_displayment = currentValue
Component.onCompleted: currentIndex = indexOfValue(cfg_displayment)
}
QtControls.ComboBox {
id: placement
Kirigami.FormData.label: i18n("Placement:")
currentIndex: -1
textRole: "label"
valueRole: "name"
model: [{
"label": i18nc("Text placement", "Top left"),
"name": "top-left"
}, {
"label": i18nc("Text placement", "Top right"),
"name": "top-right"
}, {
"label": i18nc("Text placement", "Bottom left"),
"name": "bottom-left"
}, {
"label": i18nc("Text placement", "Bottom right"),
"name": "bottom-right"
}]
onActivated: cfg_placement = currentValue
Component.onCompleted: currentIndex = indexOfValue(cfg_placement)
}
}
}
// Colors
Kirigami.ScrollablePage {
Kirigami.FormLayout {
id: colorsPage
// Charts
Kirigami.Separator {
Kirigami.FormData.label: i18n("Charts colors")
Kirigami.FormData.isSection: true
}
// > CPU
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "CPU")
Kirigami.FormData.isSection: true
}
RMControls.ColorSelector {
id: cpuColor
Kirigami.FormData.label: i18nc("Chart config", "Usage:")
dialogTitle: i18nc("Chart color", "Choose series color")
defaultColor: primaryColor
}
RMControls.ColorSelector {
id: cpuTemperatureColor
Kirigami.FormData.label: i18nc("Chart config", "Temperature:")
dialogTitle: i18nc("Chart color", "Choose text color")
defaultColor: textColor
}
// > Memory
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "Memory")
Kirigami.FormData.isSection: true
}
RMControls.ColorSelector {
id: ramColor
Kirigami.FormData.label: i18nc("Chart config", "Physical:")
dialogTitle: i18nc("Chart color", "Choose series color")
defaultColor: primaryColor
}
RMControls.ColorSelector {
id: swapColor
Kirigami.FormData.label: i18nc("Chart config", "Swap:")
dialogTitle: i18nc("Chart color", "Choose color of series and text")
defaultColor: negativeColor
}
// > Network
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "Network")
Kirigami.FormData.isSection: true
}
RMControls.ColorSelector {
id: netDownColor
Kirigami.FormData.label: i18nc("Chart config", "Receiving:")
dialogTitle: i18nc("Chart color", "Choose series color")
defaultColor: primaryColor
}
RMControls.ColorSelector {
id: netUpColor
Kirigami.FormData.label: i18nc("Chart config", "Sending:")
dialogTitle: i18nc("Chart color", "Choose series color")
defaultColor: positiveColor
}
// > GPU
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "GPU")
Kirigami.FormData.isSection: true
}
RMControls.ColorSelector {
id: gpuColor
Kirigami.FormData.label: i18nc("Chart config", "Usage:")
dialogTitle: i18nc("Chart color", "Choose series color")
defaultColor: primaryColor
}
RMControls.ColorSelector {
id: gpuMemoryColor
Kirigami.FormData.label: i18nc("Chart config", "Memory:")
dialogTitle: i18nc("Chart color", "Choose series color")
defaultColor: positiveColor
}
RMControls.ColorSelector {
id: gpuTemperatureColor
Kirigami.FormData.label: i18nc("Chart config", "Temperature:")
dialogTitle: i18nc("Chart color", "Choose text color")
defaultColor: textColor
}
// > Disk I/O
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "Disks I/O")
Kirigami.FormData.isSection: true
}
RMControls.ColorSelector {
id: diskReadColor
Kirigami.FormData.label: i18nc("Chart config", "Read:")
dialogTitle: i18nc("Chart color", "Choose series color")
defaultColor: primaryColor
}
RMControls.ColorSelector {
id: diskWriteColor
Kirigami.FormData.label: i18nc("Chart config", "Write:")
dialogTitle: i18nc("Chart color", "Choose series color")
defaultColor: positiveColor
}
// Thresholds
Kirigami.Separator {
Kirigami.FormData.label: i18n("Threshold text colors")
Kirigami.FormData.isSection: true
}
RMControls.ColorSelector {
id: warningColor
Kirigami.FormData.label: i18n("Warning status:")
dialogTitle: i18n("Choose text color when the value is in warning status")
defaultColor: neutralColor
}
RMControls.ColorSelector {
id: criticalColor
Kirigami.FormData.label: i18n("Critical status:")
dialogTitle: i18n("Choose text color when the value is in critical status")
defaultColor: negativeColor
}
}
}
}
}
@@ -1,451 +0,0 @@
import QtQuick 2.2
import QtQuick.Controls 2.12 as QtControls
import QtQuick.Layouts 1.15 as QtLayouts
import org.kde.kirigami 2.6 as Kirigami
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 3.0 as PlasmaComponents
import org.kde.plasma.extras 2.0 as PlasmaExtras
import "../components" as RMComponents
import "../controls" as RMControls
import "../components/functions.js" as Functions
PlasmaExtras.Representation {
id: dataPage
anchors.fill: parent
// Network
readonly property var networkDialect: Functions.getNetworkDialectInfo(plasmoid.configuration.networkUnit)
property var cfg_ignoredNetworkInterfaces
property alias cfg_networkReceivingTotal: networkReceiving.realValue
property alias cfg_networkSendingTotal: networkSending.realValue
// Disks I/O
property alias cfg_diskReadTotal: diskRead.realValue
property alias cfg_diskWriteTotal: diskWrite.realValue
// GPU
property string cfg_gpuIndex
// Thresholds
property alias cfg_thresholdWarningCpuTemp: thresholdWarningCpuTemp.realValue
property alias cfg_thresholdCriticalCpuTemp: thresholdCriticalCpuTemp.realValue
property alias cfg_thresholdWarningMemory: thresholdWarningMemory.value
property alias cfg_thresholdCriticalMemory: thresholdCriticalMemory.value
property alias cfg_thresholdWarningGpuTemp: thresholdWarningGpuTemp.realValue
property alias cfg_thresholdCriticalGpuTemp: thresholdCriticalGpuTemp.realValue
readonly property var networkSpeedOptions: [{
"label": i18n("Custom"),
"value": -1
}, {
"label": "100 " + networkDialect.kiloChar + networkDialect.suffix,
"value": 100.0
}, {
"label": "1 M" + networkDialect.suffix,
"value": 1000.0
}, {
"label": "10 M" + networkDialect.suffix,
"value": 10000.0
}, {
"label": "100 M" + networkDialect.suffix,
"value": 100000.0
}, {
"label": "1 G" + networkDialect.suffix,
"value": 1000000.0
}, {
"label": "2.5 G" + networkDialect.suffix,
"value": 2500000.0
}, {
"label": "5 G" + networkDialect.suffix,
"value": 5000000.0
}, {
"label": "10 G" + networkDialect.suffix,
"value": 10000000.0
}]
readonly property var diskSpeedOptions: [{
"label": i18n("Custom"),
"value": -1
}, {
"label": "10 MiB/s",
"value": 10000.0
}, {
"label": "100 MiB/s",
"value": 100000.0
}, {
"label": "200 MiB/s",
"value": 200000.0
}, {
"label": "500 MiB/s",
"value": 500000.0
}, {
"label": "1 GiB/s",
"value": 1000000.0
}, {
"label": "2 GiB/s",
"value": 2000000.0
}, {
"label": "5 GiB/s",
"value": 5000000.0
}, {
"label": "10 GiB/s",
"value": 10000000.0
}]
// Detect network interfaces
RMComponents.NetworkInterfaceDetector {
id: networkInterfaces
}
// Detect GPU cards
RMComponents.GpuDetector {
id: gpuCards
onReady: gpuCardSelector.select()
}
// Tab bar
header: PlasmaExtras.PlasmoidHeading {
location: PlasmaExtras.PlasmoidHeading.Location.Header
PlasmaComponents.TabBar {
id: bar
position: PlasmaComponents.TabBar.Header
anchors.fill: parent
implicitHeight: contentHeight
PlasmaComponents.TabButton {
icon.name: "settings"
icon.height: PlasmaCore.Units.iconSizes.smallMedium
text: i18nc("Config header", "General")
}
PlasmaComponents.TabButton {
icon.name: "dialog-warning"
icon.height: PlasmaCore.Units.iconSizes.smallMedium
text: i18nc("Config header", "Thresholds")
}
}
}
QtLayouts.StackLayout {
id: pageContent
anchors.fill: parent
currentIndex: bar.currentIndex
// General
Kirigami.ScrollablePage {
Kirigami.FormLayout {
wideMode: true
// Network
Kirigami.Separator {
Kirigami.FormData.label: i18nc("Chart name", "Network")
Kirigami.FormData.isSection: true
}
// Interfaces
QtLayouts.GridLayout {
Kirigami.FormData.label: i18n("Network interfaces:")
QtLayouts.Layout.fillWidth: true
columns: 2
rowSpacing: Kirigami.Units.smallSpacing
columnSpacing: Kirigami.Units.largeSpacing
Repeater {
model: networkInterfaces.model
QtControls.CheckBox {
readonly property string interfaceName: modelData
readonly property bool ignoredByDefault: {
return /^(docker|tun|tap)(\d+)/.test(interfaceName); // Ignore docker and tun/tap networks
}
text: interfaceName
checked: cfg_ignoredNetworkInterfaces.indexOf(interfaceName) == -1 && !ignoredByDefault
enabled: !ignoredByDefault
onClicked: {
var ignoredNetworkInterfaces = cfg_ignoredNetworkInterfaces.slice(0); // copy()
if (checked) {
// Checking, and thus removing from the ignoredNetworkInterfaces
var i = ignoredNetworkInterfaces.indexOf(interfaceName);
ignoredNetworkInterfaces.splice(i, 1);
} else {
// Unchecking, and thus adding to the ignoredNetworkInterfaces
ignoredNetworkInterfaces.push(interfaceName);
}
cfg_ignoredNetworkInterfaces = ignoredNetworkInterfaces;
}
}
}
}
// Transfer speed
Item {
Kirigami.FormData.label: i18n("Maximum transfer speed")
Kirigami.FormData.isSection: true
}
RMControls.PredefinedSpinBox {
id: networkReceiving
Kirigami.FormData.label: i18nc("Chart config", "Receiving:")
QtLayouts.Layout.fillWidth: true
QtLayouts.Layout.minimumWidth: predefinedChoices.currentIndex == 0 ? 300 : 0
factor: 1000
predefinedChoices {
textRole: "label"
valueRole: "value"
model: networkSpeedOptions
}
spinBox {
decimals: 3
stepSize: 1
minimumValue: 0.001
textFromValue: function (value, locale) {
return spinBox.valueToText(value, locale) + " M" + networkDialect.suffix;
}
}
}
RMControls.PredefinedSpinBox {
id: networkSending
Kirigami.FormData.label: i18nc("Chart config", "Sending:")
QtLayouts.Layout.fillWidth: true
QtLayouts.Layout.minimumWidth: predefinedChoices.currentIndex == 0 ? 300 : 0
factor: 1000
predefinedChoices {
textRole: "label"
valueRole: "value"
model: networkSpeedOptions
}
spinBox {
decimals: 3
stepSize: 1
minimumValue: 0.001
textFromValue: function (value, locale) {
return spinBox.valueToText(value, locale) + " M" + networkDialect.suffix;
}
}
}
// Disk I/O
Kirigami.Separator {
Kirigami.FormData.label: i18nc("Chart name", "Disks I/O")
Kirigami.FormData.isSection: true
}
Item {
Kirigami.FormData.label: i18n("Maximum transfer speed")
Kirigami.FormData.isSection: true
}
RMControls.PredefinedSpinBox {
id: diskRead
Kirigami.FormData.label: i18nc("Chart config", "Read:")
QtLayouts.Layout.fillWidth: true
QtLayouts.Layout.minimumWidth: predefinedChoices.currentIndex == 0 ? 300 : 0
factor: 1000
predefinedChoices {
textRole: "label"
valueRole: "value"
model: diskSpeedOptions
}
spinBox {
decimals: 3
stepSize: 1
minimumValue: 0.001
textFromValue: function (value, locale) {
return spinBox.valueToText(value, locale) + " M" + networkDialect.suffix;
}
}
}
RMControls.PredefinedSpinBox {
id: diskWrite
Kirigami.FormData.label: i18nc("Chart config", "Write:")
QtLayouts.Layout.fillWidth: true
QtLayouts.Layout.minimumWidth: predefinedChoices.currentIndex == 0 ? 300 : 0
factor: 1000
predefinedChoices {
textRole: "label"
valueRole: "value"
model: diskSpeedOptions
}
spinBox {
decimals: 3
stepSize: 1
minimumValue: 0.001
textFromValue: function (value, locale) {
return spinBox.valueToText(value, locale) + " M" + networkDialect.suffix;
}
}
}
// GPU
Kirigami.Separator {
Kirigami.FormData.label: i18nc("Config header", "Graphic card")
Kirigami.FormData.isSection: true
}
QtControls.ComboBox {
id: gpuCardSelector
QtLayouts.Layout.fillWidth: true
Kirigami.FormData.label: i18n("Graphic card:")
currentIndex: -1
textRole: "name"
valueRole: "index"
model: gpuCards.model
onActivated: cfg_gpuIndex = currentValue
function select() {
currentIndex = indexOfValue(cfg_gpuIndex);
}
}
}
}
// Thresholds
Kirigami.ScrollablePage {
Kirigami.FormLayout {
id: thresholdsPage
wideMode: true
property double kirigamiWidth: preferredWidth * 2 + Kirigami.Units.largeSpacing
property double preferredWidth: {
const minimumWidth = Math.max(80, warningHeader.contentWidth, criticalHeader.contentWidth);
return Math.max(minimumWidth,
// CPU
thresholdWarningCpuTemp.implicitWidth, thresholdCriticalCpuTemp.implicitWidth,
// Memory
thresholdWarningMemory.implicitWidth, thresholdCriticalMemory.implicitWidth,
// Memory
thresholdWarningMemory.implicitWidth, thresholdCriticalMemory.implicitWidth,
// GPU
thresholdWarningGpuTemp.implicitWidth, thresholdCriticalGpuTemp.implicitWidth);
}
// Header
QtLayouts.RowLayout {
QtLayouts.Layout.fillWidth: true
spacing: Kirigami.Units.largeSpacing
PlasmaComponents.Label {
id: warningHeader
text: i18n("Warning")
font.pointSize: PlasmaCore.Theme.defaultFont.pointSize * 1.2
QtLayouts.Layout.preferredWidth: thresholdsPage.preferredWidth
}
PlasmaComponents.Label {
id: criticalHeader
text: i18n("Critical")
font.pointSize: PlasmaCore.Theme.defaultFont.pointSize * 1.2
}
}
// CPU Temperature
QtLayouts.RowLayout {
Kirigami.FormData.label: i18n("CPU Temperature:")
QtLayouts.Layout.preferredWidth: thresholdsPage.kirigamiWidth
spacing: Kirigami.Units.largeSpacing
RMControls.SpinBox {
id: thresholdWarningCpuTemp
QtLayouts.Layout.preferredWidth: thresholdsPage.preferredWidth
decimals: 1
stepSize: 1
minimumValue: 0.1
maximumValue: 120
textFromValue: function (value, locale) {
return valueToText(value, locale) + " °C";
}
}
RMControls.SpinBox {
id: thresholdCriticalCpuTemp
QtLayouts.Layout.preferredWidth: thresholdsPage.preferredWidth
decimals: 1
stepSize: 1
minimumValue: 0.1
maximumValue: 120
textFromValue: function (value, locale) {
return valueToText(value, locale) + " °C";
}
}
}
// Memory usage
QtLayouts.RowLayout {
Kirigami.FormData.label: i18n("Physical Memory Usage:")
QtLayouts.Layout.preferredWidth: thresholdsPage.kirigamiWidth
spacing: Kirigami.Units.largeSpacing
RMControls.SpinBox {
id: thresholdWarningMemory
QtLayouts.Layout.preferredWidth: thresholdsPage.preferredWidth
textFromValue: function (value, locale) {
return value + " %";
}
}
RMControls.SpinBox {
id: thresholdCriticalMemory
QtLayouts.Layout.preferredWidth: thresholdsPage.preferredWidth
textFromValue: function (value, locale) {
return value + " %";
}
}
}
// GPU Temperature
QtLayouts.RowLayout {
Kirigami.FormData.label: i18n("GPU Temperature:")
QtLayouts.Layout.preferredWidth: thresholdsPage.kirigamiWidth
spacing: Kirigami.Units.largeSpacing
RMControls.SpinBox {
id: thresholdWarningGpuTemp
QtLayouts.Layout.preferredWidth: thresholdsPage.preferredWidth
decimals: 1
stepSize: 1
minimumValue: 0.1
maximumValue: 120
textFromValue: function (value, locale) {
return valueToText(value, locale) + " °C";
}
}
RMControls.SpinBox {
id: thresholdCriticalGpuTemp
QtLayouts.Layout.preferredWidth: thresholdsPage.preferredWidth
decimals: 1
stepSize: 1
minimumValue: 0.1
maximumValue: 120
textFromValue: function (value, locale) {
return valueToText(value, locale) + " °C";
}
}
}
}
}
}
}
@@ -1,453 +0,0 @@
import QtQuick 2.2
import QtQuick.Controls 2.12 as QtControls
import QtQuick.Layouts 1.15 as QtLayouts
import org.kde.kirigami 2.6 as Kirigami
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.components 2.0 as PC2
import org.kde.plasma.components 3.0 as PlasmaComponents
import org.kde.plasma.extras 2.0 as PlasmaExtras
import "../components" as RMComponents
import "../controls" as RMControls
PlasmaExtras.Representation {
id: page
anchors.fill: parent
// Charts
property alias cfg_updateInterval: updateInterval.realValue
// > CPU
property bool cfg_showCpuMonitor
property string cfg_cpuUnit
property bool cfg_showClock
property string cfg_clockAgregator
property alias cfg_showCpuTemperature: showCpuTemperature.checked
// > Memory
property bool cfg_showRamMonitor
property string cfg_memoryUnit
property alias cfg_memorySwapGraph: memorySwapGraph.checked
// > Network
property bool cfg_showNetMonitor
property string cfg_networkUnit
// > GPU
property alias cfg_showGpuMonitor: showGpuMonitor.checked
property alias cfg_gpuMemoryInPercent: gpuMemoryInPercent.checked
property alias cfg_gpuMemoryGraph: gpuMemoryGraph.checked
property alias cfg_showGpuTemperature: showGpuTemperature.checked
// > Disks I/O
property alias cfg_showDiskMonitor: showDiskMonitor.checked
// Click action
property string cfg_actionService
// Apps model
RMComponents.AppsDetector {
id: appsModel
filterString: appsFilter.text
filterCallback: function (index, value) {
var search = filterString.toLowerCase();
if (search.length === 0) {
return true;
}
if (value.toLowerCase().indexOf(search) !== -1) {
return true;
}
if (sourceModel.get(index).menuId.replace(".desktop", "").toLowerCase().indexOf(search) !== -1) {
return true;
}
return false;
}
onFilterStringChanged: appsList.updateCurrentIndex()
}
// Tab bar
header: PlasmaExtras.PlasmoidHeading {
location: PlasmaExtras.PlasmoidHeading.Location.Header
PlasmaComponents.TabBar {
id: bar
position: PlasmaComponents.TabBar.Header
anchors.fill: parent
implicitHeight: contentHeight
PlasmaComponents.TabButton {
icon.name: "settings"
icon.height: PlasmaCore.Units.iconSizes.smallMedium
text: i18nc("Config header", "General")
}
PlasmaComponents.TabButton {
icon.name: "input-mouse-symbolic"
icon.height: PlasmaCore.Units.iconSizes.smallMedium
text: i18nc("Config header", "Click action")
}
}
}
QtLayouts.StackLayout {
id: pageContent
anchors.fill: parent
currentIndex: bar.currentIndex
// General
Kirigami.ScrollablePage {
Kirigami.FormLayout {
wideMode: true
RMControls.SpinBox {
id: updateInterval
Kirigami.FormData.label: i18n("Update interval:")
QtLayouts.Layout.fillWidth: true
decimals: 1
minimumValue: 0.1
maximumValue: 3600.0
stepSize: Math.round(0.1 * factor)
textFromValue: function (value, locale) {
return i18n("%1 seconds", valueToText(value, locale));
}
}
// Charts
Kirigami.Separator {
Kirigami.FormData.label: i18nc("Config header", "Charts")
Kirigami.FormData.isSection: true
}
// CPU
Item {
Kirigami.FormData.label: i18nc("Chart name", "CPU")
Kirigami.FormData.isSection: true
}
QtControls.ComboBox {
QtLayouts.Layout.fillWidth: true
Kirigami.FormData.label: i18n("Visibility:")
currentIndex: -1
textRole: "label"
valueRole: "value"
model: [{
"label": i18n("Disabled"),
"value": "none"
}, {
"label": i18n("Total usage"),
"value": "usage"
}, {
"label": i18n("System usage"),
"value": "system"
}, {
"label": i18n("User usage"),
"value": "user"
}]
onActivated: {
if (currentValue === "none") {
cfg_showCpuMonitor = false;
} else {
cfg_showCpuMonitor = true;
cfg_cpuUnit = currentValue;
}
}
Component.onCompleted: {
// TODO (3.0): Merge "cfg_showCpuMonitor" and "cfg_cpuUnit"
currentIndex = cfg_showCpuMonitor ? indexOfValue(cfg_cpuUnit) : 0;
}
}
QtControls.ComboBox {
QtLayouts.Layout.fillWidth: true
Kirigami.FormData.label: i18n("Clock visibility:")
enabled: cfg_showCpuMonitor
currentIndex: -1
textRole: "label"
valueRole: "value"
model: [{
"label": i18n("Disabled"),
"value": "none"
}, {
"label": i18nc("Agregator", "Average"),
"value": "average"
}, {
"label": i18nc("Agregator", "Minimum"),
"value": "minimum"
}, {
"label": i18nc("Agregator", "Maximum"),
"value": "maximum"
}]
onActivated: {
if (currentValue === "none") {
cfg_showClock = false;
} else {
cfg_showClock = true;
cfg_clockAgregator = currentValue;
}
}
Component.onCompleted: {
// TODO (3.0): Merge "cfg_showClock" and "cfg_clockAgregator"
currentIndex = cfg_showClock ? indexOfValue(cfg_clockAgregator) : 0;
}
}
QtControls.CheckBox {
id: showCpuTemperature
text: i18n("Show temperature")
enabled: cfg_showCpuMonitor
}
// Memory
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "Memory")
Kirigami.FormData.isSection: true
}
QtControls.ComboBox {
QtLayouts.Layout.fillWidth: true
Kirigami.FormData.label: i18n("Visibility:")
currentIndex: -1
textRole: "label"
valueRole: "value"
model: [{
"label": i18n("Disabled"),
"value": "none"
}, {
"label": i18n("Physical memory (in KiB)"),
"value": "physical"
}, {
"label": i18n("Physical memory (in %)"),
"value": "physical-percent"
}, {
"label": i18n("Application memory (in KiB)"),
"value": "application"
}, {
"label": i18n("Application memory (in %)"),
"value": "application-percent"
}]
onActivated: {
if (currentValue === "none") {
cfg_showRamMonitor = false;
} else {
cfg_showRamMonitor = true;
cfg_memoryUnit = currentValue;
}
}
Component.onCompleted: {
// TODO (3.0): Merge "cfg_showRamMonitor" and "cfg_memoryUnit"
currentIndex = cfg_showRamMonitor ? indexOfValue(cfg_memoryUnit) : 0;
}
}
QtLayouts.GridLayout {
QtLayouts.Layout.fillWidth: true
columns: 2
rowSpacing: Kirigami.Units.smallSpacing
columnSpacing: Kirigami.Units.largeSpacing
QtControls.CheckBox {
id: memorySwapGraph
text: i18n("Show swap")
enabled: cfg_showRamMonitor
}
}
// Network
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "Network")
Kirigami.FormData.isSection: true
}
QtControls.ComboBox {
QtLayouts.Layout.fillWidth: true
Kirigami.FormData.label: i18n("Visibility:")
currentIndex: -1
textRole: "label"
valueRole: "value"
model: [{
"label": i18n("Disabled"),
"value": "none"
}, {
"label": i18n("In kibibyte (KiB/s)"),
"value": "kibibyte"
}, {
"label": i18n("In kilobit (Kbps)"),
"value": "kilobit"
}, {
"label": i18n("In kilobyte (KBps)"),
"value": "kilobyte"
}]
onActivated: {
if (currentValue === "none") {
cfg_showNetMonitor = false;
} else {
cfg_showNetMonitor = true;
cfg_networkUnit = currentValue;
}
}
Component.onCompleted: {
// TODO (3.0): Merge "cfg_showNetMonitor" and "cfg_networkUnit"
currentIndex = cfg_showNetMonitor ? indexOfValue(cfg_networkUnit) : 0;
}
}
// GPU
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "GPU")
Kirigami.FormData.isSection: true
}
QtLayouts.GridLayout {
QtLayouts.Layout.fillWidth: true
columns: 2
rowSpacing: Kirigami.Units.smallSpacing
columnSpacing: Kirigami.Units.largeSpacing
QtControls.CheckBox {
id: showGpuMonitor
text: i18n("Enabled?")
}
QtControls.CheckBox {
id: gpuMemoryGraph
text: i18n("Show memory")
enabled: showGpuMonitor.checked
}
QtControls.CheckBox {
id: gpuMemoryInPercent
text: i18n("Memory in percent")
enabled: showGpuMonitor.checked
}
QtControls.CheckBox {
id: showGpuTemperature
text: i18n("Show temperature")
enabled: showGpuMonitor.checked
}
}
// Disk I/O
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "Disks I/O")
Kirigami.FormData.isSection: true
}
QtLayouts.GridLayout {
QtLayouts.Layout.fillWidth: true
columns: 2
rowSpacing: Kirigami.Units.smallSpacing
columnSpacing: Kirigami.Units.largeSpacing
QtControls.CheckBox {
id: showDiskMonitor
text: i18n("Enabled?")
}
}
}
}
// Click action
QtLayouts.ColumnLayout {
id: clickPage
spacing: Kirigami.Units.largeSpacing
Kirigami.FormLayout {
wideMode: true
QtControls.TextField {
id: appsFilter
Kirigami.FormData.label: i18n("Search an application:")
QtLayouts.Layout.fillWidth: true
placeholderText: i18n("Application name")
inputMethodHints: Qt.ImhNoPredictiveText
}
}
// Apps list
PlasmaComponents.Label {
text: i18n("Applications")
font.pointSize: PlasmaCore.Theme.defaultFont.pointSize * 1.2
}
Item {
QtLayouts.Layout.fillWidth: true
QtLayouts.Layout.fillHeight: true
Rectangle {
anchors.fill: parent
color: theme.headerBackgroundColor
border.color: theme.complementaryBackgroundColor
border.width: 1
radius: 4
}
PlasmaComponents.ScrollView {
anchors.fill: parent
anchors.margins: 10
anchors.rightMargin: 5
ListView {
id: appsList
model: appsModel
clip: true
interactive: true
highlight: PC2.Highlight {
}
highlightMoveDuration: 0
highlightMoveVelocity: -1
delegate: RMComponents.ApplicationDelegateItem {
width: root.width
serviceName: model.menuId.replace(".desktop", "")
name: model.name
comment: model.comment
iconName: model.iconName
selected: ListView.isCurrentItem
onClicked: {
appsList.currentIndex = index;
cfg_actionService = serviceName;
}
}
Component.onCompleted: updateCurrentIndex()
function updateCurrentIndex() {
for (var i = 0; i < model.count; i++) {
if (model.get(i).menuId === cfg_actionService + ".desktop") {
currentIndex = i;
return;
}
}
currentIndex = -1;
}
}
}
}
}
}
}
@@ -1,49 +0,0 @@
import QtQuick 2.2
import QtQuick.Dialogs 1.0 as QtDialog
import org.kde.plasma.components 3.0 as PlasmaComponents
import org.kde.kirigami 2.6 as Kirigami
PlasmaComponents.Button {
id: colorSelector
// Aliases
property alias value: colorPicker.currentColor
// Properties
property string label
property string dialogTitle
property color defaultColor
property bool customized
// Customized checkbox
enabled: Kirigami.FormData.checked
Kirigami.FormData.checkable: true
Kirigami.FormData.checked: customized
onEnabledChanged: customized = enabled
onClicked: colorPicker.open()
// Size
topPadding: 12
bottomPadding: topPadding
leftPadding: topPadding * 2
rightPadding: leftPadding
// Components
QtDialog.ColorDialog {
id: colorPicker
title: dialogTitle
}
MouseArea {
id: mouseArea
anchors.fill: parent
onPressed: mouse.accepted = false
cursorShape: enabled ? Qt.PointingHandCursor : Qt.ArrowCursor
}
background: Rectangle {
color: customized ? colorPicker.currentColor : defaultColor
opacity: colorPicker.enabled ? 1 : 0.75
radius: 2
}
}
@@ -1,20 +0,0 @@
import QtQuick 2.2
import org.kde.kirigami 2.6 as Kirigami
import "./" as RMControls
RMControls.SpinBox {
id: customizableSize
property bool customized
// Customized checkbox
enabled: Kirigami.FormData.checked
Kirigami.FormData.checkable: true
Kirigami.FormData.checked: customized
onEnabledChanged: customized = enabled
// Component
textFromValue: function (value, locale) {
return valueToText(value, locale) + " px";
}
}
@@ -1,57 +0,0 @@
import QtQuick 2.0
import QtQuick.Layouts 1.15 as QtLayouts
import QtQuick.Controls 2.0 as QQC2
import org.kde.kirigami 2.6 as Kirigami
import "./" as RMControls
QtLayouts.RowLayout {
spacing: Kirigami.Units.largeSpacing
property alias predefinedChoices: predefinedChoices
property alias spinBox: spinBox
property int customValueIndex: 0
property real factor: 1 // This is for auto convert from Kilo, Mega, etc
property real value: Math.round(realValue / factor)
property real realValue
Component.onCompleted: {
// Initialize spin real value
spinBox.realValue = value;
// Bind "realValue" to "spinBox.realValue" and "factor"
realValue = Qt.binding(() => spinBox.realValue * factor);
}
QQC2.ComboBox {
id: predefinedChoices
QtLayouts.Layout.fillWidth: true
currentIndex: -1
onActivated: {
// Skip update spin box if user select custom option
if (currentIndex === customValueIndex) {
return;
}
// Set value from choice in spin box (for have only one place to manage value)
if (currentValue !== -1) {
spinBox.realValue = valueFromPredefinedChoice(currentValue, currentIndex);
}
}
// Auto select predefined choice
Component.onCompleted: {
const index = indexOfValue(realValue);
currentIndex = index !== -1 ? index : customValueIndex;
}
}
RMControls.SpinBox {
id: spinBox
QtLayouts.Layout.fillWidth: true
visible: predefinedChoices.currentIndex === customValueIndex
}
property var valueFromPredefinedChoice: (value, index) => value / factor
}
@@ -1,125 +0,0 @@
/**
* Example:
import "./components/controls" as RMControls
// Integer
RMControls.SpinBox {
from: 0
to: 1000
stepSize: 5
textFromValue: function(value, locale) {
return valueToText(value, locale) + " px"
}
}
// Double
RMControls.SpinBox {
decimals: 3
minimumValue: 0.0
maximumValue: 1000.0
stepSize: Math.round(0.5 * factor)
textFromValue: function(value, locale) {
return valueToText(value, locale) + " m"
}
}
*/
import QtQuick 2.0
import QtQuick.Controls 2.0 as QQC2
import org.kde.plasma.core 2.0 as PlasmaCore
QQC2.SpinBox {
id: control
editable: true
readonly property real factor: Math.pow(10, decimals)
readonly property int spinBox_MININT: Math.ceil(-2147483648 / factor)
readonly property int spinBox_MAXINT: Math.floor(2147483647 / factor)
value: Math.round(realValue * factor)
from: Math.round(minimumValue * factor)
to: Math.round(maximumValue * factor)
// Copry from https://doc.qt.io/qt-5/qml-qtquick-controls2-spinbox.html#custom-values
property int decimals: 0
property real realValue
property real minimumValue: 0
property real maximumValue: spinBox_MAXINT
// Bind "realValue" to "value" and "factor"
Component.onCompleted: {
realValue = Qt.binding(() => value / factor);
}
validator: DoubleValidator {
locale: control.locale.name
bottom: Math.min(control.from, control.to)
top: Math.max(control.from, control.to)
}
textFromValue: valueToText
valueFromText: (text, locale) => {
text = text.replace(/[^\-\.\d]/g, ""); // Remove non digit characters
if (text === ".") {
text = "0";
}
return Number.fromLocaleString(locale, text) * factor;
}
property var valueToText: (value, locale) => {
// "toLocaleString" has no concept of "the minimum amount of
// digits to represent this number", so we need to calculate this
// manually. This ensures that things like "0" and "10" will be
// displayed without any decimals, while things like "2.2" and
// "3.87" will be displayed with the right number of decimals.
const realValue = Number(value / factor);
return realValue.toLocaleString(locale, 'f', countDecimals(realValue));
}
contentItem: TextInput {
opacity: enabled ? 1 : 0.5
text: control.displayText
font: control.font
color: PlasmaCore.Theme.viewTextColor
selectionColor: PlasmaCore.Theme.highlightColor
selectedTextColor: PlasmaCore.Theme.highlightedTextColor
verticalAlignment: Qt.AlignVCenter
readOnly: !control.editable
validator: control.validator
inputMethodHints: control.inputMethodHints
selectByMouse: true
// Accept return/enter key
Keys.onReturnPressed: returnPressed = true
Keys.onEnterPressed: returnPressed = true
// Reselect field when validate value with "return"
property bool returnPressed
onTextChanged: {
if (returnPressed) {
returnPressed = false;
selectAll();
}
}
}
// Allow cancel editing
Keys.onEscapePressed: {
contentItem.text = textFromValue(value, locale.name);
focus = false;
}
// Select value on foucs
onActiveFocusChanged: {
if (activeFocus) {
contentItem.selectAll();
}
}
function countDecimals(value) {
if (Math.floor(value) === value) {
return 0;
}
return value.toString().split(".")[1].length || 0;
}
}
@@ -1,123 +0,0 @@
/*
* Copyright 2015 Martin Kotelnik <clearmartin@seznam.cz>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http: //www.gnu.org/licenses/>.
*/
import QtQuick 2.9
import QtQuick.Layouts 1.1
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.kio 1.0 as Kio
import "./components/graph" as RMGraph
MouseArea {
id: root
readonly property bool vertical: plasmoid.formFactor === PlasmaCore.Types.Vertical
// Settings properties
property bool verticalLayout: plasmoid.configuration.verticalLayout
property double fontScale: (plasmoid.configuration.fontScale / 100)
// Component properties
property int itemMargin: plasmoid.configuration.graphMargin
property double parentWidth: parent === null ? 0 : parent.width
property double parentHeight: parent === null ? 0 : parent.height
property double initWidth: vertical ? (verticalLayout ? parentWidth : (parentWidth - itemMargin) / 2) : (verticalLayout ? (parentHeight - itemMargin) / 2 : parentHeight)
property double itemWidth: plasmoid.configuration.customGraphWidth ? plasmoid.configuration.graphWidth : Math.round(initWidth * (verticalLayout ? 1 : 1.5))
property double itemHeight: plasmoid.configuration.customGraphHeight ? plasmoid.configuration.graphHeight : Math.round(initWidth)
property double fontPixelSize: Math.round(verticalLayout ? (itemHeight / 1.4 * fontScale) : (itemHeight * fontScale))
Layout.preferredWidth: !verticalLayout ? (itemWidth * graphView.model.length + itemMargin * (graphView.model.length + 1)) : itemWidth
Layout.preferredHeight: verticalLayout ? (itemHeight * graphView.model.length + itemMargin * (graphView.model.length + 1)) : itemHeight
LayoutMirroring.enabled: !vertical && Qt.application.layoutDirection === Qt.RightToLeft
LayoutMirroring.childrenInherit: true
Plasmoid.preferredRepresentation: Plasmoid.fullRepresentation
// Click action
Kio.KRun {
id: kRun
}
onClicked: {
kRun.openService(plasmoid.configuration.actionService);
}
// Global update timer
Timer {
id: updateTask
interval: plasmoid.configuration.updateInterval * 1000
running: true
triggeredOnStart: true
repeat: true
onTriggered: {
for (const i in graphView.model) {
const graph = graphView.getGraph(i);
if (graph !== null) {
graph._update();
}
}
}
}
// Main Layout
ListView {
id: graphView
anchors.fill: parent
spacing: itemMargin
orientation: verticalLayout ? ListView.Vertical : ListView.Horizontal
interactive: false
model: plasmoid.configuration.graphOrders.filter(item => {
if (item === "cpu") {
return plasmoid.configuration.showCpuMonitor;
} else if (item === "disks") {
return plasmoid.configuration.showDiskMonitor;
} else if (item === "gpu") {
return plasmoid.configuration.showGpuMonitor;
} else if (item === "memory") {
return plasmoid.configuration.showRamMonitor;
} else if (item === "network") {
return plasmoid.configuration.showNetMonitor;
}
return false;
})
delegate: Loader {
source: _graphIdToFilename(modelData)
width: itemWidth
height: itemHeight
onLoaded: {
item.textContainer.firstLineLabel.font.pixelSize = Qt.binding(() => root.fontPixelSize);
item.textContainer.secondLineLabel.font.pixelSize = Qt.binding(() => root.fontPixelSize);
item.textContainer.thirdLineLabel.font.pixelSize = Qt.binding(() => root.fontPixelSize);
}
}
function getGraph(index) {
const loaderItem = graphView.itemAtIndex(index);
return loaderItem !== null ? loaderItem.item : null;
}
}
function _graphIdToFilename(graphId) {
const filename = (graphId.charAt(0).toUpperCase() + graphId.slice(1)) + "Graph";
return "./components/graph/" + filename + ".qml";
}
}
@@ -1,31 +0,0 @@
{
"KPlugin": {
"Authors": [
{
"Name": "Kotelnik"
},
{
"Name": "orblazer"
},
{
"Name": "Starrah"
}
],
"Category": "System Information",
"Description": "Plasmoid for monitoring CPU, memory, network traffic GPU and disk IO. This is an fork from \"Resources Monitor\" by Kotelnik",
"Description[fr]": "Plasmoid pour surveiller l'utilisation du CPU, de la mémoire, du traffic réseau, de la carte graphique et des disque dur. Ceci est un fork de \"Resources Monitor\" de Kotelnik",
"Description[nl]": "Een Plasmoid voor het monitoren van CPU, geheugen, netwerkverkeer GPU en disk IO. Dit is een vork uit \"Resources Monitor\" van Kotelnik.",
"Icon": "utilities-system-monitor",
"Id": "org.kde.resourcesMonitor-fork",
"License": "GPL-3.0-only",
"Name": "Resources Monitor (fork)",
"Name[fr]": "Moniteur des ressources (fork)",
"Name[nl]": "Systeembronmonitor (afsplitsing)",
"Version": "2.10.2",
"Website": "https://github.com/orblazer/plasma-applet-resources-monitor",
"BugReportUrl": "https://github.com/orblazer/plasma-applet-resources-monitor/issues"
},
"X-Plasma-API": "declarativeappletscript",
"X-Plasma-MainScript": "ui/main.qml",
"KPackageStructure": "Plasma/Applet"
}
@@ -1,29 +0,0 @@
# Translations
You can found found the list of locale code here : [List of country locale code](https://saimana.com/list-of-country-locale-code/)
## New Translations
1. Fill out [`template.pot`](template.pot) with your translations then open a [new issue](https://github.com/orblazer/plasma-applet-resources-monitor/issues/new), name the file `spanish.txt`, attach the txt file to the issue (drag and drop).
Or if you know how to make a pull request
1. Copy the `template.pot` file and name it your locale's code (Eg: `en`/`de`/`fr`) with the extension `.po`. Then fill out all the `msgstr ""`.
2. Add `Name` and `Description` translation to `../metadata.json`
3. Build the translation with `npm run i18n:build`
4. Test the translation with `LANGUAGE="country_CODE:locale" LANG="country_CODE.UTF-8" npm run dev`
**Note** : You need install language pack first.
## Scripts
- `npm run i18:merge` will parse the `i18n()` calls in the `*.qml` files and write it to the `template.pot` file. Then it will merge any changes into the `*.po` language files.
- `npm run i18n:build` will convert the `*.po` files to it's binary `*.mo` version and move it to `contents/locale/...` which will bundle the translations in the `*.plasmoid` without needing the user to manually install them.
## Status
| Locale | Lines | % Done|
|----------|---------|-------|
| Template | 95 | |
| fr | 95/95 | 100% |
| nl | 95/95 | 100% |
@@ -1,453 +0,0 @@
# Translation of resourcesMonitor-fork in french
# Copyright (C) 2021
# This file is distributed under the same license as the resourcesMonitor-fork package.
# orblazer, 2021.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: resourcesMonitor-fork\n"
"Report-Msgid-Bugs-To: https://github.com/orblazer/plasma-applet-resources-monitor\n"
"POT-Creation-Date: 2023-05-31 18:43+0200\n"
"PO-Revision-Date: 2023-05-31 18:43+0200\n"
"Last-Translator: orblazer\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../contents/config/config.qml:6 ../contents/ui/config/ConfigData.qml:120 ../contents/ui/config/ConfigGeneral.qml:79
msgctxt "Config header"
msgid "General"
msgstr "Général"
#: ../contents/config/config.qml:11
msgctxt "Config header"
msgid "Data"
msgstr "Données"
#: ../contents/config/config.qml:16
msgctxt "Config header"
msgid "Appearance"
msgstr "Apparence"
#: ../contents/ui/components/functions.js:20
msgctxt "kilobyte suffix"
msgid "Bps"
msgstr "ops"
#: ../contents/ui/components/functions.js:28
msgctxt "kilobit suffix"
msgid "bps"
msgstr "bps"
#: ../contents/ui/components/functions.js:36
msgctxt "kibibyte suffix"
msgid "iB/s"
msgstr "io/s"
#: ../contents/ui/components/graph/CpuGraph.qml:41
msgctxt "Graph label"
msgid "Clock"
msgstr "Horloge"
#: ../contents/ui/components/graph/CpuGraph.qml:41 ../contents/ui/components/graph/GpuGraph.qml:32
msgctxt "Graph label"
msgid "Temp."
msgstr "Temp."
#: ../contents/ui/components/graph/DisksGraph.qml:28
msgctxt "Graph label"
msgid "Read"
msgstr "Lecture"
#: ../contents/ui/components/graph/DisksGraph.qml:28
msgctxt "Graph label"
msgid "Write"
msgstr "Écriture"
#: ../contents/ui/components/graph/GpuGraph.qml:56
msgctxt "Percent unit"
msgid "%1%"
msgstr "%1%"
#: ../contents/ui/components/graph/NetworkGraph.qml:31
msgctxt "Graph label"
msgid "Receiving"
msgstr "Réception"
#: ../contents/ui/components/graph/NetworkGraph.qml:31
msgctxt "Graph label"
msgid "Sending"
msgstr "Envoi"
#: ../contents/ui/config/ConfigAppearance.qml:76 ../contents/ui/config/ConfigAppearance.qml:361
#: ../contents/ui/config/ConfigGeneral.qml:122
msgctxt "Chart name"
msgid "CPU"
msgstr "CPU"
#: ../contents/ui/config/ConfigAppearance.qml:81 ../contents/ui/config/ConfigAppearance.qml:386
#: ../contents/ui/config/ConfigGeneral.qml:209
msgctxt "Chart name"
msgid "Memory"
msgstr "Mémoire"
#: ../contents/ui/config/ConfigAppearance.qml:86 ../contents/ui/config/ConfigAppearance.qml:436
#: ../contents/ui/config/ConfigGeneral.qml:315
msgctxt "Chart name"
msgid "GPU"
msgstr "GPU"
#: ../contents/ui/config/ConfigAppearance.qml:91 ../contents/ui/config/ConfigAppearance.qml:468
#: ../contents/ui/config/ConfigData.qml:239 ../contents/ui/config/ConfigGeneral.qml:352
msgctxt "Chart name"
msgid "Disks I/O"
msgstr "Disques E/S"
#: ../contents/ui/config/ConfigAppearance.qml:96 ../contents/ui/config/ConfigAppearance.qml:411
#: ../contents/ui/config/ConfigData.qml:142 ../contents/ui/config/ConfigGeneral.qml:270
msgctxt "Chart name"
msgid "Network"
msgstr "Réseau"
#: ../contents/ui/config/ConfigAppearance.qml:115 ../contents/ui/config/ConfigGeneral.qml:116
msgctxt "Config header"
msgid "Charts"
msgstr "Graphiques"
#: ../contents/ui/config/ConfigAppearance.qml:120
msgctxt "Config header"
msgid "Text"
msgstr "Texte"
#: ../contents/ui/config/ConfigAppearance.qml:125
msgctxt "Config header"
msgid "Colors"
msgstr "Couleurs"
#: ../contents/ui/config/ConfigAppearance.qml:143
msgid "Vertical layout"
msgstr "Disposition verticale"
#: ../contents/ui/config/ConfigAppearance.qml:148
msgid "History amount:"
msgstr "Quantité d'histoire :"
#: ../contents/ui/config/ConfigAppearance.qml:155
msgid "Width:"
msgstr "Largeur :"
#: ../contents/ui/config/ConfigAppearance.qml:162
msgid "Height:"
msgstr "Hauteur :"
#: ../contents/ui/config/ConfigAppearance.qml:169
msgid "Margin:"
msgstr "Marge :"
#: ../contents/ui/config/ConfigAppearance.qml:180
msgid "Fill opacity:"
msgstr "Opacité du remplissage :"
#: ../contents/ui/config/ConfigAppearance.qml:192
msgid "Charts order"
msgstr "Ordre des graphiques"
#: ../contents/ui/config/ConfigAppearance.qml:280
msgid "Drop shadows"
msgstr "Ombres portées"
#: ../contents/ui/config/ConfigAppearance.qml:285
msgid "Font scale:"
msgstr "Taille de la police :"
#: ../contents/ui/config/ConfigAppearance.qml:297
msgid "Text displayment:"
msgstr "Affichage du texte :"
#: ../contents/ui/config/ConfigAppearance.qml:303
msgctxt "Text displayment"
msgid "Always"
msgstr "Toujours"
#: ../contents/ui/config/ConfigAppearance.qml:306
msgctxt "Text displayment"
msgid "On hover"
msgstr "Au survol"
#: ../contents/ui/config/ConfigAppearance.qml:309
msgctxt "Text displayment"
msgid "Hints when hover"
msgstr "Indices au survol"
#: ../contents/ui/config/ConfigAppearance.qml:319
msgid "Placement:"
msgstr "Placement :"
#: ../contents/ui/config/ConfigAppearance.qml:325
msgctxt "Text placement"
msgid "Top left"
msgstr "En haut à gauche"
#: ../contents/ui/config/ConfigAppearance.qml:328
msgctxt "Text placement"
msgid "Top right"
msgstr "En haut à droite"
#: ../contents/ui/config/ConfigAppearance.qml:331
msgctxt "Text placement"
msgid "Bottom left"
msgstr "En bas à gauche"
#: ../contents/ui/config/ConfigAppearance.qml:334
msgctxt "Text placement"
msgid "Bottom right"
msgstr "En bas à droite"
#: ../contents/ui/config/ConfigAppearance.qml:351
msgid "Charts colors"
msgstr "Couleurs des graphiques"
#: ../contents/ui/config/ConfigAppearance.qml:367 ../contents/ui/config/ConfigAppearance.qml:442
msgctxt "Chart config"
msgid "Usage:"
msgstr "Utilisation :"
#: ../contents/ui/config/ConfigAppearance.qml:369 ../contents/ui/config/ConfigAppearance.qml:394
#: ../contents/ui/config/ConfigAppearance.qml:419 ../contents/ui/config/ConfigAppearance.qml:426
#: ../contents/ui/config/ConfigAppearance.qml:444 ../contents/ui/config/ConfigAppearance.qml:451
#: ../contents/ui/config/ConfigAppearance.qml:476 ../contents/ui/config/ConfigAppearance.qml:483
msgctxt "Chart color"
msgid "Choose series color"
msgstr "Choisir la couleur de la série"
#: ../contents/ui/config/ConfigAppearance.qml:374 ../contents/ui/config/ConfigAppearance.qml:456
msgctxt "Chart config"
msgid "Temperature:"
msgstr "Température :"
#: ../contents/ui/config/ConfigAppearance.qml:376 ../contents/ui/config/ConfigAppearance.qml:458
msgctxt "Chart color"
msgid "Choose text color"
msgstr "Choisir la couleur du texte"
#: ../contents/ui/config/ConfigAppearance.qml:392
msgctxt "Chart config"
msgid "Physical:"
msgstr "Physique :"
#: ../contents/ui/config/ConfigAppearance.qml:399
msgctxt "Chart config"
msgid "Swap:"
msgstr "Swap :"
#: ../contents/ui/config/ConfigAppearance.qml:401
msgctxt "Chart color"
msgid "Choose color of series and text"
msgstr "Choisir la couleur de la série et du texte"
#: ../contents/ui/config/ConfigAppearance.qml:417 ../contents/ui/config/ConfigData.qml:191
msgctxt "Chart config"
msgid "Receiving:"
msgstr "Réception :"
#: ../contents/ui/config/ConfigAppearance.qml:424 ../contents/ui/config/ConfigData.qml:215
msgctxt "Chart config"
msgid "Sending:"
msgstr "Envoi :"
#: ../contents/ui/config/ConfigAppearance.qml:449
msgctxt "Chart config"
msgid "Memory:"
msgstr "Mémoire :"
#: ../contents/ui/config/ConfigAppearance.qml:474 ../contents/ui/config/ConfigData.qml:250
msgctxt "Chart config"
msgid "Read:"
msgstr "Lecture :"
#: ../contents/ui/config/ConfigAppearance.qml:481 ../contents/ui/config/ConfigData.qml:274
msgctxt "Chart config"
msgid "Write:"
msgstr "Écriture :"
#: ../contents/ui/config/ConfigAppearance.qml:489
msgid "Threshold text colors"
msgstr "Couleurs des seuils d'alerte"
#: ../contents/ui/config/ConfigAppearance.qml:495
msgid "Warning status:"
msgstr "État davertissement"
#: ../contents/ui/config/ConfigAppearance.qml:497
msgid "Choose text color when the value is in warning status"
msgstr "Choisissez la couleur du texte quand le seuil d'avertissement est passé"
#: ../contents/ui/config/ConfigAppearance.qml:502
msgid "Critical status:"
msgstr "État critique"
#: ../contents/ui/config/ConfigAppearance.qml:504
msgid "Choose text color when the value is in critical status"
msgstr "Choisissez la couleur du texte quand le seul critique est passé"
#: ../contents/ui/config/ConfigData.qml:39 ../contents/ui/config/ConfigData.qml:67
msgid "Custom"
msgstr "Personnalisée"
#: ../contents/ui/config/ConfigData.qml:125
msgctxt "Config header"
msgid "Thresholds"
msgstr "Seuils d'alerte"
#: ../contents/ui/config/ConfigData.qml:148
msgid "Network interfaces:"
msgstr "Interfaces réseau :"
#: ../contents/ui/config/ConfigData.qml:185 ../contents/ui/config/ConfigData.qml:244
msgid "Maximum transfer speed"
msgstr "Vitesse de transfert maximale"
#: ../contents/ui/config/ConfigData.qml:298
msgctxt "Config header"
msgid "Graphic card"
msgstr "Carte graphique"
#: ../contents/ui/config/ConfigData.qml:305
msgid "Graphic card:"
msgstr "Carte graphique :"
#: ../contents/ui/config/ConfigData.qml:347
msgid "Warning"
msgstr "Avertissement"
#: ../contents/ui/config/ConfigData.qml:354
msgid "Critical"
msgstr "Critique"
#: ../contents/ui/config/ConfigData.qml:361
msgid "CPU Temperature:"
msgstr "Température du CPU"
#: ../contents/ui/config/ConfigData.qml:393
msgid "Physical Memory Usage:"
msgstr "Utilisation de la mémoire"
#: ../contents/ui/config/ConfigData.qml:417
msgid "GPU Temperature:"
msgstr "Température du GPU"
#: ../contents/ui/config/ConfigGeneral.qml:84
msgctxt "Config header"
msgid "Click action"
msgstr "Action du clique"
#: ../contents/ui/config/ConfigGeneral.qml:101
msgid "Update interval:"
msgstr "Intervalle d'actualisation :"
#: ../contents/ui/config/ConfigGeneral.qml:110
msgid "%1 seconds"
msgstr "%1 secondes"
#: ../contents/ui/config/ConfigGeneral.qml:128 ../contents/ui/config/ConfigGeneral.qml:215
#: ../contents/ui/config/ConfigGeneral.qml:276
msgid "Visibility:"
msgstr "Visibilité"
#: ../contents/ui/config/ConfigGeneral.qml:134 ../contents/ui/config/ConfigGeneral.qml:170
#: ../contents/ui/config/ConfigGeneral.qml:221 ../contents/ui/config/ConfigGeneral.qml:282
msgid "Disabled"
msgstr "Désactivé"
#: ../contents/ui/config/ConfigGeneral.qml:137
msgid "Total usage"
msgstr "Utilisation total"
#: ../contents/ui/config/ConfigGeneral.qml:140
msgid "System usage"
msgstr "Utilisation du système"
#: ../contents/ui/config/ConfigGeneral.qml:143
msgid "User usage"
msgstr "Utilisation de l'Utilisateur"
#: ../contents/ui/config/ConfigGeneral.qml:163
msgid "Clock visibility:"
msgstr "Visibilité de l'horloge :"
#: ../contents/ui/config/ConfigGeneral.qml:173
msgctxt "Agregator"
msgid "Average"
msgstr "Moyenne"
#: ../contents/ui/config/ConfigGeneral.qml:176
msgctxt "Agregator"
msgid "Minimum"
msgstr "Minimum"
#: ../contents/ui/config/ConfigGeneral.qml:179
msgctxt "Agregator"
msgid "Maximum"
msgstr "Maximum"
#: ../contents/ui/config/ConfigGeneral.qml:199 ../contents/ui/config/ConfigGeneral.qml:341
msgid "Show temperature"
msgstr "Afficher la température"
#: ../contents/ui/config/ConfigGeneral.qml:224
msgid "Physical memory (in KiB)"
msgstr "Mémoire Physique (en Kio)"
#: ../contents/ui/config/ConfigGeneral.qml:227
msgid "Physical memory (in %)"
msgstr "Mémoire Physique (en %)"
#: ../contents/ui/config/ConfigGeneral.qml:230
msgid "Application memory (in KiB)"
msgstr "Mémoire Applicative (en Kio)"
#: ../contents/ui/config/ConfigGeneral.qml:233
msgid "Application memory (in %)"
msgstr "Mémoire Applicative (en %)"
#: ../contents/ui/config/ConfigGeneral.qml:259
msgid "Show swap"
msgstr "Afficher le swap"
#: ../contents/ui/config/ConfigGeneral.qml:285
msgid "In kibibyte (KiB/s)"
msgstr "En kibioctet (Kio/s)"
#: ../contents/ui/config/ConfigGeneral.qml:288
msgid "In kilobit (Kbps)"
msgstr "En kilobit (Kbps)"
#: ../contents/ui/config/ConfigGeneral.qml:291
msgid "In kilobyte (KBps)"
msgstr "En kilooctet (Kops)"
#: ../contents/ui/config/ConfigGeneral.qml:327 ../contents/ui/config/ConfigGeneral.qml:364
msgid "Enabled?"
msgstr "Activé ?"
#: ../contents/ui/config/ConfigGeneral.qml:331
msgid "Show memory"
msgstr "Afficher la mémoire"
#: ../contents/ui/config/ConfigGeneral.qml:336
msgid "Memory in percent"
msgstr "Mémoire en pourcent"
#: ../contents/ui/config/ConfigGeneral.qml:380
msgid "Search an application:"
msgstr "Chercher une application :"
#: ../contents/ui/config/ConfigGeneral.qml:382
msgid "Application name"
msgstr "Nom de l'application"
#: ../contents/ui/config/ConfigGeneral.qml:389
msgid "Applications"
msgstr "Applications"
@@ -1,454 +0,0 @@
# Translation of resourcesMonitor-fork in nl
# Copyright (C) 2021
# This file is distributed under the same license as the resourcesMonitor-fork package.
# Heimen Stoffels <vistausss@fastmail.com>, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: resourcesMonitor-fork\n"
"Report-Msgid-Bugs-To: https://github.com/orblazer/plasma-applet-resources-monitor\n"
"POT-Creation-Date: 2023-05-31 18:43+0200\n"
"PO-Revision-Date: 2023-05-31 18:44+0200\n"
"Last-Translator: orblazer\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0\n"
#: ../contents/config/config.qml:6 ../contents/ui/config/ConfigData.qml:120 ../contents/ui/config/ConfigGeneral.qml:79
msgctxt "Config header"
msgid "General"
msgstr "Algemeen"
#: ../contents/config/config.qml:11
msgctxt "Config header"
msgid "Data"
msgstr "Gegevens"
#: ../contents/config/config.qml:16
msgctxt "Config header"
msgid "Appearance"
msgstr "Uiterlijk"
#: ../contents/ui/components/functions.js:20
msgctxt "kilobyte suffix"
msgid "Bps"
msgstr "Bps"
#: ../contents/ui/components/functions.js:28
msgctxt "kilobit suffix"
msgid "bps"
msgstr "bps"
#: ../contents/ui/components/functions.js:36
msgctxt "kibibyte suffix"
msgid "iB/s"
msgstr "iB/s"
#: ../contents/ui/components/graph/CpuGraph.qml:41
msgctxt "Graph label"
msgid "Clock"
msgstr "Klok"
#: ../contents/ui/components/graph/CpuGraph.qml:41 ../contents/ui/components/graph/GpuGraph.qml:32
msgctxt "Graph label"
msgid "Temp."
msgstr "Temp."
#: ../contents/ui/components/graph/DisksGraph.qml:28
msgctxt "Graph label"
msgid "Read"
msgstr "Lees"
#: ../contents/ui/components/graph/DisksGraph.qml:28
msgctxt "Graph label"
msgid "Write"
msgstr "Schrijf"
#: ../contents/ui/components/graph/GpuGraph.qml:56
msgctxt "Percent unit"
msgid "%1%"
msgstr "%1%"
#: ../contents/ui/components/graph/NetworkGraph.qml:31
msgctxt "Graph label"
msgid "Receiving"
msgstr "Ontvangst"
#: ../contents/ui/components/graph/NetworkGraph.qml:31
msgctxt "Graph label"
msgid "Sending"
msgstr "Verzend."
#: ../contents/ui/config/ConfigAppearance.qml:76 ../contents/ui/config/ConfigAppearance.qml:361
#: ../contents/ui/config/ConfigGeneral.qml:122
msgctxt "Chart name"
msgid "CPU"
msgstr "CPU"
#: ../contents/ui/config/ConfigAppearance.qml:81 ../contents/ui/config/ConfigAppearance.qml:386
#: ../contents/ui/config/ConfigGeneral.qml:209
msgctxt "Chart name"
msgid "Memory"
msgstr "Geheugen"
#: ../contents/ui/config/ConfigAppearance.qml:86 ../contents/ui/config/ConfigAppearance.qml:436
#: ../contents/ui/config/ConfigGeneral.qml:315
msgctxt "Chart name"
msgid "GPU"
msgstr "GPU"
#: ../contents/ui/config/ConfigAppearance.qml:91 ../contents/ui/config/ConfigAppearance.qml:468
#: ../contents/ui/config/ConfigData.qml:239 ../contents/ui/config/ConfigGeneral.qml:352
msgctxt "Chart name"
msgid "Disks I/O"
msgstr "Schijven I/O"
#: ../contents/ui/config/ConfigAppearance.qml:96 ../contents/ui/config/ConfigAppearance.qml:411
#: ../contents/ui/config/ConfigData.qml:142 ../contents/ui/config/ConfigGeneral.qml:270
msgctxt "Chart name"
msgid "Network"
msgstr "Netwerk"
#: ../contents/ui/config/ConfigAppearance.qml:115 ../contents/ui/config/ConfigGeneral.qml:116
msgctxt "Config header"
msgid "Charts"
msgstr "Grafieken"
#: ../contents/ui/config/ConfigAppearance.qml:120
msgctxt "Config header"
msgid "Text"
msgstr "Tekst"
#: ../contents/ui/config/ConfigAppearance.qml:125
msgctxt "Config header"
msgid "Colors"
msgstr "Kleuren"
#: ../contents/ui/config/ConfigAppearance.qml:143
msgid "Vertical layout"
msgstr "Verticale indeling"
#: ../contents/ui/config/ConfigAppearance.qml:148
msgid "History amount:"
msgstr "Historie bedrag:"
#: ../contents/ui/config/ConfigAppearance.qml:155
msgid "Width:"
msgstr "Breedte:"
#: ../contents/ui/config/ConfigAppearance.qml:162
msgid "Height:"
msgstr "Hoogte:"
#: ../contents/ui/config/ConfigAppearance.qml:169
msgid "Margin:"
msgstr "Marge:"
#: ../contents/ui/config/ConfigAppearance.qml:180
msgid "Fill opacity:"
msgstr "Ondoorzichtigheid vullen:"
#: ../contents/ui/config/ConfigAppearance.qml:192
msgid "Charts order"
msgstr "Volgorde grafieken"
#: ../contents/ui/config/ConfigAppearance.qml:280
msgid "Drop shadows"
msgstr "Vallende schaduwen"
#: ../contents/ui/config/ConfigAppearance.qml:285
msgid "Font scale:"
msgstr "Tekstgrootte:"
#: ../contents/ui/config/ConfigAppearance.qml:297
msgid "Text displayment:"
msgstr "Tekst tonen:"
#: ../contents/ui/config/ConfigAppearance.qml:303
msgctxt "Text displayment"
msgid "Always"
msgstr "Altijd"
#: ../contents/ui/config/ConfigAppearance.qml:306
msgctxt "Text displayment"
msgid "On hover"
msgstr "Na aanwijzen"
#: ../contents/ui/config/ConfigAppearance.qml:309
msgctxt "Text displayment"
msgid "Hints when hover"
msgstr "Tip tonen na aanwijzen"
#: ../contents/ui/config/ConfigAppearance.qml:319
msgid "Placement:"
msgstr "Locatie:"
#: ../contents/ui/config/ConfigAppearance.qml:325
msgctxt "Text placement"
msgid "Top left"
msgstr "Linksboven"
#: ../contents/ui/config/ConfigAppearance.qml:328
msgctxt "Text placement"
msgid "Top right"
msgstr "Rechtboven"
#: ../contents/ui/config/ConfigAppearance.qml:331
msgctxt "Text placement"
msgid "Bottom left"
msgstr "Linksonder"
#: ../contents/ui/config/ConfigAppearance.qml:334
msgctxt "Text placement"
msgid "Bottom right"
msgstr "Rechtsonder"
#: ../contents/ui/config/ConfigAppearance.qml:351
msgid "Charts colors"
msgstr "Kleuren grafieken"
#: ../contents/ui/config/ConfigAppearance.qml:367 ../contents/ui/config/ConfigAppearance.qml:442
msgctxt "Chart config"
msgid "Usage:"
msgstr "Gebruik:"
#: ../contents/ui/config/ConfigAppearance.qml:369 ../contents/ui/config/ConfigAppearance.qml:394
#: ../contents/ui/config/ConfigAppearance.qml:419 ../contents/ui/config/ConfigAppearance.qml:426
#: ../contents/ui/config/ConfigAppearance.qml:444 ../contents/ui/config/ConfigAppearance.qml:451
#: ../contents/ui/config/ConfigAppearance.qml:476 ../contents/ui/config/ConfigAppearance.qml:483
msgctxt "Chart color"
msgid "Choose series color"
msgstr "Kies seriekleur"
#: ../contents/ui/config/ConfigAppearance.qml:374 ../contents/ui/config/ConfigAppearance.qml:456
msgctxt "Chart config"
msgid "Temperature:"
msgstr "Temperatuur:"
#: ../contents/ui/config/ConfigAppearance.qml:376 ../contents/ui/config/ConfigAppearance.qml:458
msgctxt "Chart color"
msgid "Choose text color"
msgstr "Kies tekstkleur"
#: ../contents/ui/config/ConfigAppearance.qml:392
msgctxt "Chart config"
msgid "Physical:"
msgstr "Fysiek:"
#: ../contents/ui/config/ConfigAppearance.qml:399
msgctxt "Chart config"
msgid "Swap:"
msgstr "Swap:"
#: ../contents/ui/config/ConfigAppearance.qml:401
msgctxt "Chart color"
msgid "Choose color of series and text"
msgstr "Kies kleur van serie en tekst"
#: ../contents/ui/config/ConfigAppearance.qml:417 ../contents/ui/config/ConfigData.qml:191
msgctxt "Chart config"
msgid "Receiving:"
msgstr "Ontvangst:"
#: ../contents/ui/config/ConfigAppearance.qml:424 ../contents/ui/config/ConfigData.qml:215
msgctxt "Chart config"
msgid "Sending:"
msgstr "Verzending:"
#: ../contents/ui/config/ConfigAppearance.qml:449
msgctxt "Chart config"
msgid "Memory:"
msgstr "Geheugen"
#: ../contents/ui/config/ConfigAppearance.qml:474 ../contents/ui/config/ConfigData.qml:250
msgctxt "Chart config"
msgid "Read:"
msgstr "Lees:"
#: ../contents/ui/config/ConfigAppearance.qml:481 ../contents/ui/config/ConfigData.qml:274
msgctxt "Chart config"
msgid "Write:"
msgstr "Schrijf:"
#: ../contents/ui/config/ConfigAppearance.qml:489
msgid "Threshold text colors"
msgstr "Drempelwaarde tekstkleuren"
#: ../contents/ui/config/ConfigAppearance.qml:495
msgid "Warning status:"
msgstr "Waarschuwingsstatus:"
#: ../contents/ui/config/ConfigAppearance.qml:497
msgid "Choose text color when the value is in warning status"
msgstr "Kies de tekstkleur wanneer de waarde in de waarschuwingsstatus staat"
#: ../contents/ui/config/ConfigAppearance.qml:502
msgid "Critical status:"
msgstr "Kritieke status:"
#: ../contents/ui/config/ConfigAppearance.qml:504
msgid "Choose text color when the value is in critical status"
msgstr "Tekstkleur kiezen wanneer de waarde in kritieke status is"
#: ../contents/ui/config/ConfigData.qml:39 ../contents/ui/config/ConfigData.qml:67
msgid "Custom"
msgstr "Aangepast"
#: ../contents/ui/config/ConfigData.qml:125
msgctxt "Config header"
msgid "Thresholds"
msgstr "Drempels"
#: ../contents/ui/config/ConfigData.qml:148
msgid "Network interfaces:"
msgstr "Netwerkkaarten:"
#: ../contents/ui/config/ConfigData.qml:185 ../contents/ui/config/ConfigData.qml:244
msgid "Maximum transfer speed"
msgstr "Maximale overdrachtssnelheid"
#: ../contents/ui/config/ConfigData.qml:298
msgctxt "Config header"
msgid "Graphic card"
msgstr "Grafische kaart"
#: ../contents/ui/config/ConfigData.qml:305
msgid "Graphic card:"
msgstr "Grafische kaart:"
#: ../contents/ui/config/ConfigData.qml:347
msgid "Warning"
msgstr "Waarschuwing"
#: ../contents/ui/config/ConfigData.qml:354
msgid "Critical"
msgstr "Kritisch"
#: ../contents/ui/config/ConfigData.qml:361
msgid "CPU Temperature:"
msgstr "CPU-temperatuur:"
#: ../contents/ui/config/ConfigData.qml:393
msgid "Physical Memory Usage:"
msgstr "Fysiek geheugengebruik:"
#: ../contents/ui/config/ConfigData.qml:417
msgid "GPU Temperature:"
msgstr "GPU-temperatuur:"
#: ../contents/ui/config/ConfigGeneral.qml:84
msgctxt "Config header"
msgid "Click action"
msgstr "Klik actie"
#: ../contents/ui/config/ConfigGeneral.qml:101
msgid "Update interval:"
msgstr "Bijwerktussenpoos:"
#: ../contents/ui/config/ConfigGeneral.qml:110
msgid "%1 seconds"
msgstr "%1 seconden"
#: ../contents/ui/config/ConfigGeneral.qml:128 ../contents/ui/config/ConfigGeneral.qml:215
#: ../contents/ui/config/ConfigGeneral.qml:276
msgid "Visibility:"
msgstr "Zichtbaarheid:"
#: ../contents/ui/config/ConfigGeneral.qml:134 ../contents/ui/config/ConfigGeneral.qml:170
#: ../contents/ui/config/ConfigGeneral.qml:221 ../contents/ui/config/ConfigGeneral.qml:282
msgid "Disabled"
msgstr "Uitgeschakeld"
#: ../contents/ui/config/ConfigGeneral.qml:137
msgid "Total usage"
msgstr "Totaal gebruik"
#: ../contents/ui/config/ConfigGeneral.qml:140
msgid "System usage"
msgstr "Systeemgebruik"
#: ../contents/ui/config/ConfigGeneral.qml:143
msgid "User usage"
msgstr "Gebruikersgebruik"
#: ../contents/ui/config/ConfigGeneral.qml:163
msgid "Clock visibility:"
msgstr "Klok zichtbaarheid:"
#: ../contents/ui/config/ConfigGeneral.qml:173
msgctxt "Agregator"
msgid "Average"
msgstr "Gemiddeld"
#: ../contents/ui/config/ConfigGeneral.qml:176
msgctxt "Agregator"
msgid "Minimum"
msgstr "Minimaal"
#: ../contents/ui/config/ConfigGeneral.qml:179
msgctxt "Agregator"
msgid "Maximum"
msgstr "Maximaal"
#: ../contents/ui/config/ConfigGeneral.qml:199 ../contents/ui/config/ConfigGeneral.qml:341
msgid "Show temperature"
msgstr "Toon temperatuur"
#: ../contents/ui/config/ConfigGeneral.qml:224
msgid "Physical memory (in KiB)"
msgstr "Fysiek geheugen (in KiB)"
#: ../contents/ui/config/ConfigGeneral.qml:227
msgid "Physical memory (in %)"
msgstr "Fysiek geheugen (in %)"
#: ../contents/ui/config/ConfigGeneral.qml:230
msgid "Application memory (in KiB)"
msgstr "Toepassingsgeheugen (KiB)"
#: ../contents/ui/config/ConfigGeneral.qml:233
msgid "Application memory (in %)"
msgstr "Toepassingsgeheugen (in %)"
#: ../contents/ui/config/ConfigGeneral.qml:259
msgid "Show swap"
msgstr "Toon swap"
#: ../contents/ui/config/ConfigGeneral.qml:285
msgid "In kibibyte (KiB/s)"
msgstr "In kibibyte (KiB/s)"
#: ../contents/ui/config/ConfigGeneral.qml:288
msgid "In kilobit (Kbps)"
msgstr "In kilobit (Kbps)"
#: ../contents/ui/config/ConfigGeneral.qml:291
msgid "In kilobyte (KBps)"
msgstr "In kilobyte (KBps)"
#: ../contents/ui/config/ConfigGeneral.qml:327 ../contents/ui/config/ConfigGeneral.qml:364
msgid "Enabled?"
msgstr "Ingeschakeld?"
#: ../contents/ui/config/ConfigGeneral.qml:331
msgid "Show memory"
msgstr "Toon geheugen"
#: ../contents/ui/config/ConfigGeneral.qml:336
msgid "Memory in percent"
msgstr "Geheugen in procent"
#: ../contents/ui/config/ConfigGeneral.qml:380
msgid "Search an application:"
msgstr "Een toepassing zoeken:"
#: ../contents/ui/config/ConfigGeneral.qml:382
msgid "Application name"
msgstr "Naam toepassing"
#: ../contents/ui/config/ConfigGeneral.qml:389
msgid "Applications"
msgstr "Toepassingen"
@@ -1,483 +0,0 @@
# Translation of resourcesMonitor-fork in LANGUAGE
# Copyright (C) 2023
# This file is distributed under the same license as the resourcesMonitor-fork package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: resourcesMonitor-fork\n"
"Report-Msgid-Bugs-To: https://github.com/orblazer/plasma-applet-resources-monitor\n"
"POT-Creation-Date: 2023-05-31 18:43+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../contents/config/config.qml:6
#: ../contents/ui/config/ConfigData.qml:120
#: ../contents/ui/config/ConfigGeneral.qml:79
msgctxt "Config header"
msgid "General"
msgstr ""
#: ../contents/config/config.qml:11
msgctxt "Config header"
msgid "Data"
msgstr ""
#: ../contents/config/config.qml:16
msgctxt "Config header"
msgid "Appearance"
msgstr ""
#: ../contents/ui/components/functions.js:20
msgctxt "kilobyte suffix"
msgid "Bps"
msgstr ""
#: ../contents/ui/components/functions.js:28
msgctxt "kilobit suffix"
msgid "bps"
msgstr ""
#: ../contents/ui/components/functions.js:36
msgctxt "kibibyte suffix"
msgid "iB/s"
msgstr ""
#: ../contents/ui/components/graph/CpuGraph.qml:41
msgctxt "Graph label"
msgid "Clock"
msgstr ""
#: ../contents/ui/components/graph/CpuGraph.qml:41
#: ../contents/ui/components/graph/GpuGraph.qml:32
msgctxt "Graph label"
msgid "Temp."
msgstr ""
#: ../contents/ui/components/graph/DisksGraph.qml:28
msgctxt "Graph label"
msgid "Read"
msgstr ""
#: ../contents/ui/components/graph/DisksGraph.qml:28
msgctxt "Graph label"
msgid "Write"
msgstr ""
#: ../contents/ui/components/graph/GpuGraph.qml:56
msgctxt "Percent unit"
msgid "%1%"
msgstr ""
#: ../contents/ui/components/graph/NetworkGraph.qml:31
msgctxt "Graph label"
msgid "Receiving"
msgstr ""
#: ../contents/ui/components/graph/NetworkGraph.qml:31
msgctxt "Graph label"
msgid "Sending"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:76
#: ../contents/ui/config/ConfigAppearance.qml:361
#: ../contents/ui/config/ConfigGeneral.qml:122
msgctxt "Chart name"
msgid "CPU"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:81
#: ../contents/ui/config/ConfigAppearance.qml:386
#: ../contents/ui/config/ConfigGeneral.qml:209
msgctxt "Chart name"
msgid "Memory"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:86
#: ../contents/ui/config/ConfigAppearance.qml:436
#: ../contents/ui/config/ConfigGeneral.qml:315
msgctxt "Chart name"
msgid "GPU"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:91
#: ../contents/ui/config/ConfigAppearance.qml:468
#: ../contents/ui/config/ConfigData.qml:239
#: ../contents/ui/config/ConfigGeneral.qml:352
msgctxt "Chart name"
msgid "Disks I/O"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:96
#: ../contents/ui/config/ConfigAppearance.qml:411
#: ../contents/ui/config/ConfigData.qml:142
#: ../contents/ui/config/ConfigGeneral.qml:270
msgctxt "Chart name"
msgid "Network"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:115
#: ../contents/ui/config/ConfigGeneral.qml:116
msgctxt "Config header"
msgid "Charts"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:120
msgctxt "Config header"
msgid "Text"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:125
msgctxt "Config header"
msgid "Colors"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:143
msgid "Vertical layout"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:148
msgid "History amount:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:155
msgid "Width:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:162
msgid "Height:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:169
msgid "Margin:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:180
msgid "Fill opacity:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:192
msgid "Charts order"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:280
msgid "Drop shadows"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:285
msgid "Font scale:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:297
msgid "Text displayment:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:303
msgctxt "Text displayment"
msgid "Always"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:306
msgctxt "Text displayment"
msgid "On hover"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:309
msgctxt "Text displayment"
msgid "Hints when hover"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:319
msgid "Placement:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:325
msgctxt "Text placement"
msgid "Top left"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:328
msgctxt "Text placement"
msgid "Top right"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:331
msgctxt "Text placement"
msgid "Bottom left"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:334
msgctxt "Text placement"
msgid "Bottom right"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:351
msgid "Charts colors"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:367
#: ../contents/ui/config/ConfigAppearance.qml:442
msgctxt "Chart config"
msgid "Usage:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:369
#: ../contents/ui/config/ConfigAppearance.qml:394
#: ../contents/ui/config/ConfigAppearance.qml:419
#: ../contents/ui/config/ConfigAppearance.qml:426
#: ../contents/ui/config/ConfigAppearance.qml:444
#: ../contents/ui/config/ConfigAppearance.qml:451
#: ../contents/ui/config/ConfigAppearance.qml:476
#: ../contents/ui/config/ConfigAppearance.qml:483
msgctxt "Chart color"
msgid "Choose series color"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:374
#: ../contents/ui/config/ConfigAppearance.qml:456
msgctxt "Chart config"
msgid "Temperature:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:376
#: ../contents/ui/config/ConfigAppearance.qml:458
msgctxt "Chart color"
msgid "Choose text color"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:392
msgctxt "Chart config"
msgid "Physical:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:399
msgctxt "Chart config"
msgid "Swap:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:401
msgctxt "Chart color"
msgid "Choose color of series and text"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:417
#: ../contents/ui/config/ConfigData.qml:191
msgctxt "Chart config"
msgid "Receiving:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:424
#: ../contents/ui/config/ConfigData.qml:215
msgctxt "Chart config"
msgid "Sending:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:449
msgctxt "Chart config"
msgid "Memory:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:474
#: ../contents/ui/config/ConfigData.qml:250
msgctxt "Chart config"
msgid "Read:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:481
#: ../contents/ui/config/ConfigData.qml:274
msgctxt "Chart config"
msgid "Write:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:489
msgid "Threshold text colors"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:495
msgid "Warning status:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:497
msgid "Choose text color when the value is in warning status"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:502
msgid "Critical status:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:504
msgid "Choose text color when the value is in critical status"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:39
#: ../contents/ui/config/ConfigData.qml:67
msgid "Custom"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:125
msgctxt "Config header"
msgid "Thresholds"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:148
msgid "Network interfaces:"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:185
#: ../contents/ui/config/ConfigData.qml:244
msgid "Maximum transfer speed"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:298
msgctxt "Config header"
msgid "Graphic card"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:305
msgid "Graphic card:"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:347
msgid "Warning"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:354
msgid "Critical"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:361
msgid "CPU Temperature:"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:393
msgid "Physical Memory Usage:"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:417
msgid "GPU Temperature:"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:84
msgctxt "Config header"
msgid "Click action"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:101
msgid "Update interval:"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:110
msgid "%1 seconds"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:128
#: ../contents/ui/config/ConfigGeneral.qml:215
#: ../contents/ui/config/ConfigGeneral.qml:276
msgid "Visibility:"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:134
#: ../contents/ui/config/ConfigGeneral.qml:170
#: ../contents/ui/config/ConfigGeneral.qml:221
#: ../contents/ui/config/ConfigGeneral.qml:282
msgid "Disabled"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:137
msgid "Total usage"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:140
msgid "System usage"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:143
msgid "User usage"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:163
msgid "Clock visibility:"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:173
msgctxt "Agregator"
msgid "Average"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:176
msgctxt "Agregator"
msgid "Minimum"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:179
msgctxt "Agregator"
msgid "Maximum"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:199
#: ../contents/ui/config/ConfigGeneral.qml:341
msgid "Show temperature"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:224
msgid "Physical memory (in KiB)"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:227
msgid "Physical memory (in %)"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:230
msgid "Application memory (in KiB)"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:233
msgid "Application memory (in %)"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:259
msgid "Show swap"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:285
msgid "In kibibyte (KiB/s)"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:288
msgid "In kilobit (Kbps)"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:291
msgid "In kilobyte (KBps)"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:327
#: ../contents/ui/config/ConfigGeneral.qml:364
msgid "Enabled?"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:331
msgid "Show memory"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:336
msgid "Memory in percent"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:380
msgid "Search an application:"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:382
msgid "Application name"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:389
msgid "Applications"
msgstr ""
File diff suppressed because it is too large Load Diff
+76 -71
View File
@@ -1,120 +1,125 @@
{ {
"dependencies": { "dependencies": {
"@anthropic-ai/claude-code": "^0.2.45", "@anthropic-ai/claude-code": "^2.1.22",
"@babel/cli": "^7.23.9", "@babel/cli": "^7.28.6",
"@babel/core": "^7.23.9", "@babel/core": "^7.28.6",
"@babel/preset-env": "^7.23.9", "@babel/preset-env": "^7.28.6",
"@faker-js/faker": "^9.3.0", "@faker-js/faker": "^10.2.0",
"@ionic/cli": "^7.2.0", "@google/gemini-cli": "^0.26.0",
"@mrodrig/json-2-csv-cli": "^5.5.5", "@ionic/cli": "^7.2.1",
"@nestjs/cli": "^10.3.2", "@mrodrig/json-2-csv-cli": "^5.5.9",
"@openapitools/openapi-generator-cli": "^2.9.0", "@nestjs/cli": "^11.0.16",
"@quasar/cli": "^2.3.0", "@openai/codex": "^0.92.0",
"@types/node": "^22.10.1", "@openapitools/openapi-generator-cli": "^2.28.0",
"@vue/cli": "^5.0.8", "@quasar/cli": "^2.5.0",
"@types/node": "^25.1.0",
"@vue/cli": "^5.0.9",
"@webpack-cli/generators": "^3.0.7", "@webpack-cli/generators": "^3.0.7",
"aigle": "^1.14.1", "aigle": "^1.14.1",
"ari-client": "^2.2.0", "ari-client": "^2.2.0",
"base-x": "^5.0.0", "base-x": "^5.0.1",
"blitz": "^2.0.5", "blitz": "^3.0.2",
"byline": "^5.0.0", "byline": "^5.0.0",
"chokidar-cli": "^3.0.0", "chokidar-cli": "^3.0.0",
"cjs-to-es6": "^2.0.1", "cjs-to-es6": "^2.0.1",
"cline": "^1.0.10",
"colorette": "^2.0.20", "colorette": "^2.0.20",
"composerize": "^1.6.10", "composerize": "^1.7.5",
"create-astro": "^4.7.3", "create-astro": "^4.13.2",
"create-expo-app": "^3.2.0", "create-expo-app": "^3.5.3",
"create-feathers": "^5.0.22", "create-feathers": "^5.0.37",
"create-next-app": "^15.0.4", "create-next-app": "^16.1.6",
"create-nollup-app": "^0.0.9", "create-nollup-app": "^0.0.9",
"create-nuxt-app": "^5.0.0", "create-nuxt-app": "^6.0.0",
"create-redwood-app": "^8.4.1", "create-redwood-app": "^8.9.0",
"create-refine-app": "^1.12.3", "create-refine-app": "^1.12.11",
"create-strapi-app": "^5.5.0", "create-strapi-app": "^5.34.0",
"create-vite": "^6.0.1", "create-vite": "^8.2.0",
"create-vite-plugin-ssr": "^0.0.304", "create-vite-plugin-ssr": "^0.0.304",
"csvtojson": "^2.0.10", "csvtojson": "^2.0.14",
"curl-trace-parser": "^0.0.10", "curl-trace-parser": "^0.0.10",
"curlconverter": "^4.11.0", "curlconverter": "^4.12.0",
"degit": "^2.8.4", "degit": "^2.8.4",
"deoptigate": "^0.7.1", "deoptigate": "^0.7.1",
"ejs": "^3.1.9", "ejs": "^4.0.1",
"electron": "33.2.1", "electron": "39.2.0",
"eslint": "^9.16.0", "eslint": "^9.39.2",
"expo-cli": "6.3.10", "expo-cli": "6.3.10",
"express": "^4.18.2", "express": "^5.2.1",
"express-generator": "^4.16.1", "express-generator": "^4.16.1",
"fastify-cli": "^7.0.1", "fastify-cli": "^7.4.1",
"file-header": "^0.1.1", "file-header": "^0.1.1",
"fx": "^35.0.0", "fx": "^39.2.0",
"gavel": "^10.0.4", "gavel": "^10.0.4",
"generate-password": "^1.7.1", "generate-password": "^1.7.1",
"generator-jhipster": "^8.1.0", "generator-jhipster": "^8.11.0",
"generator-jhipster-nodejs": "^3.0.0", "generator-jhipster-nodejs": "^3.2.0",
"generator-jhipster-quasar": "^0.14.3", "generator-jhipster-quasar": "^0.14.3",
"http-server": "^14.1.1", "http-server": "^14.1.1",
"hygen": "^6.2.11", "hygen": "^6.2.11",
"ignite-cli": "^10.0.5", "ignite-cli": "^11.4.0",
"jscodeshift": "^17.1.1", "ipx": "^3.1.1",
"json-2-csv": "^5.5.5", "jscodeshift": "^17.3.0",
"json-2-csv": "^5.5.10",
"json-server": "^1.0.0-alpha.23", "json-server": "^1.0.0-alpha.23",
"jsvu": "^2.2.0", "jsvu": "^3.0.3",
"knex": "^3.1.0", "knex": "^3.1.0",
"lerna": "^8.1.2", "lerna": "^9.0.3",
"lodash": "^4.17.21", "localtunnel": "^2.0.2",
"magic-regexp": "^0.8.0", "lodash": "^4.17.23",
"magic-regexp": "^0.10.0",
"mhtml2html": "^3.0.0", "mhtml2html": "^3.0.0",
"mjml": "^4.15.3", "mjml": "^4.18.0",
"mkpass": "https://github.com/harish2704/mkpass", "mkpass": "https://github.com/harish2704/mkpass",
"neovim": "^5.3.0", "neovim": "^5.4.0",
"nightmare": "^3.0.2", "nightmare": "^3.0.2",
"nodemon": "^3.0.3", "nodemon": "^3.1.11",
"nollup": "^0.21.0", "nollup": "^0.21.0",
"npm-offline-registry": "^0.0.9", "npm-offline-registry": "^0.0.9",
"omgopass": "^3.2.1", "omgopass": "^3.2.1",
"onchange": "^7.1.0", "onchange": "^7.1.0",
"pg": "8.13.1", "pg": "8.17.2",
"pkg": "^5.8.1", "pkg": "^5.8.1",
"plop": "^4.0.1", "plop": "^4.0.5",
"postgraphile": "4.13.0", "postgraphile": "4.14.1",
"prettier": "^3.2.5", "prettier": "^3.8.1",
"proxy-kutti": "^1.0.1", "proxy-kutti": "^1.0.1",
"puppeteer": "^23.10.1", "puppeteer": "^24.30.0",
"puppeteer-core": "^23.10.1", "puppeteer-core": "^24.30.0",
"pwa-asset-generator": "^8.1.2",
"qrcode-svg": "^1.1.0", "qrcode-svg": "^1.1.0",
"react": "^19.0.0", "react": "^19.2.4",
"react-dom": "^19.0.0", "react-dom": "^19.2.4",
"react-native": "^0.76.4", "react-native": "^0.83.1",
"react-native-web": "^0.19.10", "react-native-web": "^0.21.2",
"react-scripts": "^5.0.1", "react-scripts": "^5.0.1",
"redis-commander": "^0.8.0", "redis-commander": "^0.9.0",
"rollup": "^4.12.0", "rollup": "^4.57.0",
"runtime-cli": "^3.2.0", "runtime-cli": "^3.2.0",
"sass": "^1.71.0", "serve": "^14.2.5",
"serve": "^14.2.1", "sharp-cli": "^5.2.0",
"sharp-cli": "^5.1.0",
"sqlite3": "^5.1.7", "sqlite3": "^5.1.7",
"ssh-access-manager": "^1.2.2", "ssh-access-manager": "^1.2.2",
"storybook": "^8.4.7", "storybook": "^10.0.7",
"svgo": "^3.2.0", "svgo": "^4.0.0",
"sway-workspace-grid": "^0.0.2", "sway-workspace-grid": "^0.0.2",
"tailwind-config-viewer": "^2.0.4", "tailwind-config-viewer": "^2.0.4",
"ts-node": "^10.9.2", "ts-node": "^10.9.2",
"twilio": "^5.3.7", "twilio": "^5.10.5",
"typescript": "^5.3.3", "typescript": "^5.9.3",
"uglify-js": "^3.17.4", "uglify-js": "^3.17.4",
"uncss": "^0.17.3", "uncss": "^0.17.3",
"verdaccio": "^6.0.2", "verdaccio": "^6.2.4",
"vite": "^6.0.3", "vite": "^7.3.1",
"webpack-cli": "^5.1.4", "webpack-cli": "^6.0.1",
"wscat": "^6.0.1", "wscat": "^6.1.0",
"x-ray": "^2.3.4", "x-ray": "^2.3.4",
"yeoman-environment": "^4.3.0", "yeoman-environment": "^5.1.2",
"zx": "^8.2.4" "zx": "^8.8.5"
}, },
"devDependencies": { "devDependencies": {
"@swc/cli": "^0.5.2", "@swc/cli": "^0.7.10",
"@swc/core": "^1.7.3" "@swc/core": "^1.15.11"
}, },
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
} }
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -13,7 +13,7 @@ if test -z "$USER_PROFILEREAD"; then
PATH="$HOME/.linuxbrew/bin:$PATH"; PATH="$HOME/.linuxbrew/bin:$PATH";
PATH="$HOME/.local/bin:$HOME/bin:$PATH" PATH="$HOME/.local/bin:$HOME/bin:$PATH"
PATH="$PATH:$HOME/.local/Apps/flutter/bin" PATH="$PATH:$HOME/.local/Apps/flutter/bin"
PATH="$PYENV_ROOT/bin:$PATH" # PATH="$PYENV_ROOT/bin:$PATH"
export PATH export PATH
export DENO_INSTALL="$HOME/.deno" export DENO_INSTALL="$HOME/.deno"
@@ -37,4 +37,4 @@ if [ -n "$BASH_VERSION" -a -n "$PS1" ]; then
. "$HOME/.bashrc" . "$HOME/.bashrc"
fi fi
fi fi
. "$HOME/.deno/env" . "$HOME/.deno/env"