55 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
harish2704 e4700bcfae Various changes 2025-03-18 15:39:03 +05:30
harish2704 b85c9e85f4 Podman Containers config with selinux disabled 2025-03-18 12:41:01 +05:30
harish2704 53600c45a9 Usb reset 2024-12-20 14:57:21 +05:30
harish2704 b05417c993 updates for nvim 2024-09-14 21:57:24 +05:30
harish2704 f5ee533ab5 Merge branch 'master' of github.com:harish2704/dotFiles 2024-09-14 21:51:40 +05:30
harish2704 6dffd67295 Rm chrome gtk 2024-09-14 21:50:33 +05:30
harish2704 95ed0a6d3e Set default editor 2024-09-14 21:49:56 +05:30
harish2704 21476e1ee0 Misc fixes 2024-09-14 21:49:05 +05:30
harish2704 6f7fc253ff Misc changes 2024-09-14 21:42:14 +05:30
harish2704 e15e028d22 Updates for npm and my utils 2024-09-14 21:36:09 +05:30
harish2704 0941df79fd Update local npm packs 2024-09-14 21:34:28 +05:30
harish2704 6fa595df78 Fix malayalam font 2024-09-14 21:34:17 +05:30
harish2704 027bd37909 Clear screen and switch window shortcuts for tmux 2024-09-14 20:26:41 +05:30
harish2704 f9dcbb2736 Update from lat 2024-02-26 12:55:42 +05:30
harish2704 d7e49b646c Cleanup and update node_modules 2024-02-17 21:53:16 +05:30
harish2704 6dd3ed0b1c Added pyenv
added updated alacritty confg
Changed lunarvim shorten display
2024-02-11 15:42:21 +05:30
harish2704 5b652223aa Disable null-ls 2024-02-11 15:31:28 +05:30
harish2704 e89937e4b3 Update changes for ibus settings 2024-02-11 15:31:16 +05:30
harish2704 20bfe52f2e Update from len lap 2023-12-25 08:59:11 +05:30
harish2704 ba402cd254 Add chromium fix 2023-12-25 08:58:25 +05:30
harish2704 b20aef6d9b Update node_modules 2023-11-27 16:09:41 +05:30
harish2704 3fbee04d57 Merge branch 'master' of github.com:harish2704/dotFiles 2023-11-27 15:53:20 +05:30
harish2704 23fcc5e74c Updates 2023-11-27 15:51:19 +05:30
87 changed files with 59649 additions and 52650 deletions
+2
View File
@@ -1,3 +1,5 @@
home/.local/Apps/neovim-distros/lunarvim/cache
home/.local/Apps/neovim-distros/lunarvim/share
home/.local/Apps/neovim-distros/lunarvim/LunarVim
home/.local/Apps/neovim-distros/LazyVim
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
+30 -1
View File
@@ -26,7 +26,7 @@ C_YELLOW1="\[\e[38;5;226m\]"
C_AQUAMARINE1="\[\e[38;5;86m\]"
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
@@ -34,3 +34,32 @@ export EDITOR=vim
export HISTCONTROL=ignoredups
export HISTSIZE=11000
export HISTFILESIZE=11000
alias ip='ip --color=auto'
# export NVM_DIR="$HOME/.nvm"
# [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
#export PYENV_ROOT="$HOME/.pyenv"
#[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
#eval "$(pyenv init -)"
# bun
export BUN_INSTALL="$HOME/.bun"
export PATH="$BUN_INSTALL/bin:$PATH"
. "$HOME/.deno/env"
source $HOME/.local/share/bash-completion/completions/deno.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";
}
+45
View File
@@ -0,0 +1,45 @@
[font]
size = 14.0
[font.normal]
family = "CodeNewRoman Nerd Font Mono"
[[keyboard.bindings]]
chars = "\u001B[13;2u"
key = "Return"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[13;5u"
key = "Return"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[13;6u"
key = "Return"
mods = "Control|Shift"
[[keyboard.bindings]]
chars = "\u001B[Z"
key = "Tab"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[27;5;9~"
key = "Tab"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[27;6;9~"
key = "Tab"
mods = "Control|Shift"
[[keyboard.bindings]]
chars = "\u001B[74;5u"
key = "J"
mods = "Control|Shift"
[[keyboard.bindings]]
chars = "\u001B[75;5u"
key = "K"
mods = "Control|Shift"
-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
+8
View File
@@ -0,0 +1,8 @@
[containers]
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" ]
@@ -2,24 +2,24 @@
<!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
<!-- SPDX-License-Identifier: MIT -->
<fontconfig>
<!-- Generic alias this font to sans-serif -->
<alias>
<family>Manjari</family>
<default>
<family>sans-serif</family>
</default>
</alias>
<!-- For Malayalam sans-serif, prefer this font -->
<match>
<test compare="contains" name="lang">
<string>ml</string>
</test>
<test name="family">
<string>sans-serif</string>
</test>
<edit binding="strong" mode="prepend" name="family">
<string>Manjari</string>
</edit>
</match>
<dir>~/.fonts</dir>
<!-- Generic alias this font to sans-serif -->
<alias>
<family>sans-serif</family>
<prefer>
<family>Noto Sans</family>
<family>Noto Sans Malayalam</family>
</prefer>
</alias>
<!-- For Malayalam sans-serif, prefer this font -->
<!-- <match> -->
<!-- <test compare="contains" name="lang"> -->
<!-- <string>ml</string> -->
<!-- </test> -->
<!-- <test name="family"> -->
<!-- <string>sans-serif</string> -->
<!-- </test> -->
<!-- <edit binding="strong" mode="prepend" name="family"> -->
<!-- <string>Manjari</string> -->
<!-- </edit> -->
<!-- </match> -->
</fontconfig>
+66 -96
View File
@@ -1,17 +1,14 @@
[ActivityManager]
_k_friendly_name=Activity Manager
switch-to-activity-2b22975f-ece8-4bc8-a72a-f88fc0add08b=none,none,Switch to activity "Default"
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"
[KDE Keyboard Layout Switcher]
Switch keyboard layout to English (India, with rupee)=none,none,Switch keyboard layout to English (India\\, with rupee)
Switch to Next Keyboard Layout=Ctrl+Alt+K,Meta+Alt+K,Switch to Next Keyboard Layout
Switch to Last-Used Keyboard Layout=Meta+Alt+L,Meta+Alt+L,Switch to Last-Used Keyboard Layout
Switch to Next Keyboard Layout=Meta+Alt+K,Meta+Alt+K,Switch to Next Keyboard Layout
_k_friendly_name=Keyboard Layout Switcher
[im-chooser.desktop]
_k_friendly_name=Input Method Selector
_launch=none,none,Input Method Selector
[kaccess]
Toggle Screen Reader On and Off=Meta+Alt+S,Meta+Alt+S,Toggle Screen Reader On and Off
_k_friendly_name=Accessibility
@@ -22,14 +19,8 @@ Enable Touchpad=Touchpad On,Touchpad On,Enable Touchpad
Toggle Touchpad=Touchpad Toggle,Touchpad Toggle\tMeta+Ctrl+Zenkaku Hankaku,Toggle Touchpad
_k_friendly_name=Touchpad
[kded5]
Show System Activity=Ctrl+Esc,Ctrl+Esc,Show System Activity
_k_friendly_name=KDE Daemon
display=Display\tMeta+P,Display\tMeta+P,Switch Display
[khotkeys]
_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
{5d4c37a6-d8b3-40b0-aa6a-92f325302538}=none,none,Save Profile 1
{81787487-f07d-4111-b1cf-9da1406075ca}=none,none,Load Profile 1
@@ -42,27 +33,37 @@ _k_friendly_name=Custom Shortcuts Service
_k_friendly_name=Audio Volume
decrease_microphone_volume=Microphone Volume Down,Microphone Volume Down,Decrease Microphone Volume
decrease_volume=Volume Down,Volume Down,Decrease Volume
decrease_volume_small=Shift+Volume Down,Shift+Volume Down,Decrease Volume by 1%
increase_microphone_volume=Microphone Volume Up,Microphone Volume Up,Increase Microphone Volume
increase_volume=Volume Up,Volume Up,Increase Volume
increase_volume_small=Shift+Volume Up,Shift+Volume Up,Increase Volume by 1%
mic_mute=Microphone Mute\tMeta+Volume Mute,Microphone Mute\tMeta+Volume Mute,Mute Microphone
mute=Volume Mute,Volume Mute,Mute
[ksmserver]
Halt Without Confirmation=none,,Halt Without Confirmation
Halt Without Confirmation=none,,Shut Down Without Confirmation
Lock Session=Meta+L\tCtrl+Alt+L\tScreensaver,Meta+L\tScreensaver,Lock Session
Log Out=Ctrl+Alt+Del,Ctrl+Alt+Del,Log Out
Log Out=Ctrl+Alt+Del,Ctrl+Alt+Del,Show Logout Screen
Log Out Without Confirmation=none,,Log Out Without Confirmation
LogOut=none,,Log Out
Reboot=none,,Reboot
Reboot Without Confirmation=none,,Reboot Without Confirmation
Shut Down=none,,Shut Down
_k_friendly_name=Session Management
[kwin]
Activate Window Demanding Attention=Ctrl+Alt+A,Meta+Ctrl+A,Activate Window Demanding Attention
ClearLastMouseMark=Meta+Shift+F12,Meta+Shift+F12,Clear Last Mouse Mark
ClearMouseMarks=Meta+Shift+F11,Meta+Shift+F11,Clear All Mouse Marks
Cycle Overview=none,none,Cycle through Overview and Grid View
Cycle Overview Opposite=none,none,Cycle through Grid View and Overview
Decrease Opacity=Meta+_,,Decrease Opacity of Active Window by 5%
Edit Tiles=Meta+T,Meta+T,Toggle Tiles Editor
Expose=Ctrl+F9,Ctrl+F9,Toggle Present Windows (Current desktop)
Expose=none,Ctrl+F9,Toggle Present Windows (Current desktop)
ExposeAll=Ctrl+F10\tLaunch (C),Ctrl+F10\tLaunch (C),Toggle Present Windows (All desktops)
ExposeClass=Ctrl+F7,Ctrl+F7,Toggle Present Windows (Window class)
ExposeClassCurrentDesktop=none,none,Toggle Present Windows (Window class on current desktop)
Grid View=Meta+G,Meta+G,Toggle Grid View
Increase Opacity=Meta++,,Increase Opacity of Active Window by 5%
Invert Screen Colors=none,none,Invert Screen Colors
Kill Window=Ctrl+Alt+Esc,Meta+Ctrl+Esc,Kill Window
@@ -76,7 +77,6 @@ MoveZoomUp=none,none,Move Zoomed Area Upwards
Overview=Meta+W,Meta+W,Toggle Overview
Setup Window Shortcut=none,,Setup Window Shortcut
Show Desktop=Meta+D,Meta+D,Peek at Desktop
ShowDesktopGrid=Ctrl+F8,Meta+F8,Show Desktop Grid
Suspend Compositing=Alt+Shift+F12,Alt+Shift+F12,Suspend Compositing
Switch One Desktop Down=Ctrl+Alt+Down,Meta+Ctrl+Down,Switch One Desktop Down
Switch One Desktop Up=Ctrl+Alt+Up,Meta+Ctrl+Up,Switch One Desktop Up
@@ -122,14 +122,10 @@ Switch to Screen Above=none,,Switch to Screen Above
Switch to Screen Below=none,,Switch to Screen Below
Switch to Screen to the Left=none,,Switch to Screen to the Left
Switch to Screen to the Right=none,,Switch to Screen to the Right
Toggle Night Color=none,none,Toggle Night Color
Toggle Night Color=none,none,Suspend/Resume Night Light
Toggle Window Raise/Lower=none,,Toggle Window Raise/Lower
Walk Through Desktop List=none,,Walk Through Desktop List
Walk Through Desktop List (Reverse)=none,,Walk Through Desktop List (Reverse)
Walk Through Desktops=none,,Walk Through Desktops
Walk Through Desktops (Reverse)=none,,Walk Through Desktops (Reverse)
Walk Through Windows=Alt+Tab,Alt+Tab,Walk Through Windows
Walk Through Windows (Reverse)=Alt+Shift+Backtab,Alt+Shift+Backtab,Walk Through Windows (Reverse)
Walk Through Windows (Reverse)=Alt+Shift+Backtab,Alt+Shift+Tab,Walk Through Windows (Reverse)
Walk Through Windows Alternative=none,,Walk Through Windows Alternative
Walk Through Windows Alternative (Reverse)=none,,Walk Through Windows Alternative (Reverse)
Walk Through Windows of Current Application=Alt+`,Alt+`,Walk Through Windows of Current Application
@@ -139,6 +135,10 @@ Walk Through Windows of Current Application Alternative (Reverse)=none,,Walk Thr
Window Above Other Windows=none,,Keep Window Above Others
Window Below Other Windows=none,,Keep Window Below Others
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 Grow Horizontal=none,,Expand Window Horizontally
Window Grow Vertical=none,,Expand Window Vertically
@@ -155,10 +155,10 @@ Window One Desktop Down=Ctrl+Alt+Shift+Down,Meta+Ctrl+Shift+Down,Window One Desk
Window One Desktop Up=Ctrl+Alt+Shift+Up,Meta+Ctrl+Shift+Up,Window One Desktop Up
Window One Desktop to the Left=Ctrl+Alt+Shift+Left,Meta+Ctrl+Shift+Left,Window One Desktop to the Left
Window One Desktop to the Right=Ctrl+Alt+Shift+Right,Meta+Ctrl+Shift+Right,Window One Desktop to the Right
Window One Screen Down=none,,Window One Screen Down
Window One Screen Up=none,,Window One Screen Up
Window One Screen to the Left=none,,Window One Screen to the Left
Window One Screen to the Right=none,,Window One Screen to the Right
Window One Screen Down=none,,Move Window One Screen Down
Window One Screen Up=none,,Move Window One Screen Up
Window One Screen to the Left=none,,Move Window One Screen to the Left
Window One Screen to the Right=none,,Move Window One Screen to the Right
Window Operations Menu=Alt+F3,Alt+F3,Window Operations Menu
Window Pack Down=none,,Move Window Down
Window Pack Left=none,,Move Window Left
@@ -198,94 +198,55 @@ Window to Desktop 7=none,,Window to Desktop 7
Window to Desktop 8=none,,Window to Desktop 8
Window to Desktop 9=none,,Window to Desktop 9
Window to Next Desktop=none,,Window to Next Desktop
Window to Next Screen=Meta+Shift+Right,Meta+Shift+Right,Window to Next Screen
Window to Next Screen=Meta+Shift+Right,Meta+Shift+Right,Move Window to Next Screen
Window to Previous Desktop=none,,Window to Previous Desktop
Window to Previous Screen=Meta+Shift+Left,Meta+Shift+Left,Window to Previous Screen
Window to Screen 0=none,,Window to Screen 0
Window to Screen 1=none,,Window to Screen 1
Window to Screen 2=none,,Window to Screen 2
Window to Screen 3=none,,Window to Screen 3
Window to Screen 4=none,,Window to Screen 4
Window to Screen 5=none,,Window to Screen 5
Window to Screen 6=none,,Window to Screen 6
Window to Screen 7=none,,Window to Screen 7
Window to Previous Screen=Meta+Shift+Left,Meta+Shift+Left,Move Window to Previous Screen
Window to Screen 0=none,,Move Window to Screen 0
Window to Screen 1=none,,Move Window to Screen 1
Window to Screen 2=none,,Move Window to Screen 2
Window to Screen 3=none,,Move Window to Screen 3
Window to Screen 4=none,,Move Window to Screen 4
Window to Screen 5=none,,Move Window to Screen 5
Window to Screen 6=none,,Move Window to Screen 6
Window to Screen 7=none,,Move Window to Screen 7
_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_zoom_in=Meta+=,Meta++,Zoom In
view_zoom_in=Meta+=,Meta++\tMeta+=,Zoom In
view_zoom_out=Meta+-,Meta+-,Zoom Out
[mediacontrol]
_k_friendly_name=Media Controller
mediavolumedown=none,none,Media volume down
mediavolumeup=none,none,Media volume up
mediavolumedown=none,,Media volume down
mediavolumeup=none,,Media volume up
nextmedia=Media Next,Media Next,Media playback next
pausemedia=Media Pause,Media Pause,Pause media playback
playmedia=none,none,Play media playback
playmedia=none,,Play media playback
playpausemedia=Media Play,Media Play,Play/Pause media playback
previousmedia=Media Previous,Media Previous,Media playback previous
stopmedia=Media Stop,Media Stop,Stop media playback
[nvim.desktop]
_k_friendly_name=Neovim
_launch=none,none,Neovim
[org.flameshot.Flameshot.desktop]
Capture=Ctrl+Shift+Print,none,Take screenshot
Configure=none,none,Configure
Launcher=none,none,Open launcher
_k_friendly_name=Flameshot
_launch=none,none,Flameshot
[org.kde.dolphin.desktop]
_k_friendly_name=Dolphin
_launch=Meta+E,Meta+E,Dolphin
[org.kde.kcalc.desktop]
_k_friendly_name=KCalc
_launch=Launch (1),Launch (1),KCalc
[org.kde.konsole.desktop]
NewTab=none,none,Open a New Tab
NewWindow=none,none,Open a New Window
_k_friendly_name=Konsole
_launch=Ctrl+Alt+T,none,Konsole
[org.kde.krunner.desktop]
RunClipboard=Alt+Shift+F2,Alt+Shift+F2,Run command on clipboard contents
_k_friendly_name=KRunner
_launch=Alt+F2\tAlt+Space,Alt+Space\tAlt+F2\tSearch,KRunner
[org.kde.plasma.emojier.desktop]
_k_friendly_name=Emoji Selector
_launch=Meta+.,Meta+.,Emoji Selector
[org.kde.spectacle.desktop]
ActiveWindowScreenShot=none,Meta+Print,Capture Active Window
CurrentMonitorScreenShot=Print,none,Capture Current Monitor
FullScreenScreenShot=Shift+Print,Shift+Print,Capture Entire Desktop
OpenWithoutScreenshot=none,none,Launch Spectacle without capturing
RectangularRegionScreenShot=Meta+Shift+Print,Meta+Shift+Print,Capture Rectangular Region
WindowUnderCursorScreenShot=Meta+Ctrl+Print,Meta+Ctrl+Print,Capture Window Under Cursor
_k_friendly_name=Spectacle
_launch=none,Print,Launch Spectacle
[org_kde_powerdevil]
Decrease Keyboard Brightness=Keyboard Brightness Down,Keyboard Brightness Down,Decrease Keyboard Brightness
Decrease Screen Brightness=Monitor Brightness Down,Monitor Brightness Down,Decrease Screen Brightness
Decrease Screen Brightness Small=Shift+Monitor Brightness Down,Shift+Monitor Brightness Down,Decrease Screen Brightness by 1%
Hibernate=Hibernate,Hibernate,Hibernate
Increase Keyboard Brightness=Keyboard Brightness Up,Keyboard Brightness Up,Increase Keyboard Brightness
Increase Screen Brightness=Monitor Brightness Up,Monitor Brightness Up,Increase Screen Brightness
Increase Screen Brightness Small=Shift+Monitor Brightness Up,Shift+Monitor Brightness Up,Increase Screen Brightness by 1%
PowerDown=Power Down,Power Down,Power Down
PowerOff=Power Off,Power Off,Power Off
Sleep=Sleep,Sleep,Suspend
Toggle Keyboard Backlight=Keyboard Light On/Off,Keyboard Light On/Off,Toggle Keyboard Backlight
Turn Off Screen=none,none,Turn Off Screen
_k_friendly_name=Power Management
powerProfile=Battery\tMeta+B,Battery\tMeta+B,Switch Power Profile
[plasmashell]
_k_friendly_name=Plasma
_k_friendly_name=plasmashell
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 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 3=Meta+3,Meta+3,Activate Task Manager Entry 3
activate task manager entry 4=Meta+4,Meta+4,Activate Task Manager Entry 4
@@ -295,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 9=Meta+9,Meta+9,Activate Task Manager Entry 9
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 69=none,none,Activate Digital Clock Widget
clear-history=none,none,Clear Clipboard History
@@ -304,8 +266,8 @@ cycleNextAction=none,none,Next History Item
cyclePrevAction=none,none,Previous History Item
edit_clipboard=none,none,Edit Contents…
manage activities=Meta+Q,Meta+Q,Show Activity Switcher
next activity=Meta+Tab,Meta+Tab,Walk through activities
previous activity=Meta+Shift+Tab,Meta+Shift+Tab,Walk through activities (Reverse)
next activity=Meta+A,none,Walk through activities
previous activity=Meta+Shift+A,none,Walk through activities (Reverse)
repeat_action=Ctrl+Alt+R,Meta+Ctrl+R,Manually Invoke Action on Current Clipboard
show dashboard=Ctrl+F12,Ctrl+F12,Show Desktop
show-barcode=none,none,Show Barcode…
@@ -315,14 +277,22 @@ switch to next activity=none,,Switch to Next Activity
switch to previous activity=none,,Switch to Previous Activity
toggle do not disturb=none,,Toggle do not disturb
[systemsettings.desktop]
_k_friendly_name=System Settings
_launch=Tools,Tools,System Settings
kcm-kscreen=none,none,Display Configuration
kcm-lookandfeel=none,none,Global Theme
kcm-users=none,none,Users
powerdevilprofilesconfig=none,none,Energy Saving
screenlocker=none,none,Screen Locking
[services][net.local.ibus-next-engine.py.desktop]
_launch=Ctrl+Space
[services][org.flameshot.Flameshot.desktop]
Capture=Ctrl+Shift+Print
[services][org.kde.krunner.desktop]
_launch=Alt+F2\tAlt+Space
[services][org.kde.spectacle.desktop]
ActiveWindowScreenShot=none
FullScreenScreenShot=none
RecordRegion=Meta+Shift+R
RecordScreen=none
RecordWindow=none
_launch=none
[wacomtablet]
Map to fullscreen=Meta+Ctrl+F,Meta+Ctrl+F,Map to fullscreen
-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
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]
Comment=Shortcuts for Skanlite
DataCount=7
+51 -14
View File
@@ -1,8 +1,12 @@
[$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
[Activities][LastVirtualDesktop]
5631f9b9-eda6-43ff-826c-7cb51e8f26f5=84ef5d92-b39b-4f01-b593-76799daa2ce0
[Compositing]
GLTextureFilter=1
LatencyPolicy=Medium
OpenGLIsUnsafe=false
[Desktops]
@@ -10,6 +14,9 @@ Id_1=530b2e8c-a321-41ca-ba52-2fba5b5e2f52
Id_10=af9aa3e6-6382-4ccb-a92d-800b0b1f74a7
Id_11=7aaace88-9ee2-43c0-844c-19c5514523d3
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_3=84ef5d92-b39b-4f01-b593-76799daa2ce0
Id_4=5fe31393-808e-4747-8bfe-9a4df1075a59
@@ -18,18 +25,22 @@ Id_6=0259dad0-c996-46c7-b8a1-364756a779ed
Id_7=fc82803a-f727-408a-aa1f-84e76c11c1cf
Id_8=a52131ec-edac-4001-965f-ce878e73377e
Id_9=2feaf12f-0461-4372-8878-fdf5f282aec0
Name_10=Desktop 2
Name_11=Desktop 3
Name_12=Desktop 4
Name_2=New Desktop
Name_3=New Desktop
Name_4=New Desktop
Name_5=New Desktop
Name_6=New Desktop
Name_7=New Desktop
Name_8=New Desktop
Name_9=New Desktop
Number=12
Name_1=D1
Name_10=D10
Name_11=D11
Name_12=D12
Name_13=D13
Name_14=D14
Name_15=D15
Name_2=D2
Name_3=D3
Name_4=D4
Name_5=D5
Name_6=D6
Name_7=D7
Name_8=D8
Name_9=D9
Number=15
Rows=3
[NightColor]
@@ -37,7 +48,7 @@ Active=true
LatitudeAuto=9.9185
LongitudeAuto=76.2558
Mode=Constant
NightTemperature=4200
NightTemperature=4800
[Plugins]
desktopchangeosdEnabled=true
@@ -51,6 +62,9 @@ padding=4
[Tiling][0d39903c-8966-51c1-b3a1-c3ebda3dc7d0]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
[Tiling][31d42160-070b-554b-b196-ee308d3a8430]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
[Tiling][37c04cea-60e5-572b-8cdf-0edec2e3e650]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
@@ -63,29 +77,52 @@ tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"wi
[Tiling][4f220735-699f-553f-a72e-7a926d3f0774]
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]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
[Tiling][6b9c3fe7-c68b-52f5-ace8-17b337127e5e]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
[Tiling][a149f44c-18c8-54d9-bea5-8d58d841af49]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
[Tiling][a3d991e5-e4d6-5b87-b0c7-d6949c612be9]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
[Tiling][bc2a8622-43e1-5de4-9a5d-521e479edee4]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
[Tiling][c8c8a1aa-ae6b-5caf-85b7-76aff40574b4]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
[Tiling][cb363ef7-affc-5675-a490-30c1baa9ff75]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
[Tiling][ccd244ca-5575-569f-a8c9-ce17c79b0288]
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]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
[Tiling][ecc5d445-b642-5d22-991f-6423e65b585e]
tiles={"layoutDirection":"horizontal","tiles":[{"width":0.25},{"width":0.5},{"width":0.25}]}
[Wayland]
InputMethod[$e]=/usr/share/applications/org.freedesktop.IBus.Panel.Wayland.Gtk3.desktop
VirtualKeyboardEnabled=true
[Windows]
RollOverDesktops=false
[Xwayland]
Scale=1.25
Scale=1
[org.kde.kdecoration2]
library=org.kde.breeze
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
vmap <C-f> "fy/<C-r>f
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,7 +24,15 @@ plugin=org.kde.plasma.digitalclock
[Containments][3][Applets][21][Configuration]
PreloadWeight=100
popupHeight=450
popupWidth=396
popupWidth=810
[Containments][3][Applets][21][Configuration][Appearance]
selectedTimeZones=America/New_York,Europe/Zagreb,Local
showSeconds=Always
[Containments][3][Applets][21][Configuration][ConfigDialog]
DialogHeight=540
DialogWidth=720
[Containments][3][Applets][22]
immutability=1
@@ -41,7 +49,7 @@ plugin=org.kde.plasma.taskmanager
PreloadWeight=26
[Containments][3][Applets][27][Configuration][General]
launchers=preferred://filemanager,preferred://browser
launchers=
[Containments][3][Applets][28]
immutability=1
@@ -49,7 +57,7 @@ plugin=org.kde.plasma.icon
[Containments][3][Applets][28][Configuration]
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
[Containments][3][Applets][31]
@@ -57,7 +65,7 @@ immutability=1
plugin=org.kde.plasma.icon
[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
[Containments][3][Applets][38]
@@ -65,7 +73,7 @@ immutability=1
plugin=org.kde.plasma.icon
[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
[Containments][3][Applets][4]
@@ -98,18 +106,74 @@ plugin=org.kde.plasma.pager
[Containments][3][Applets][5][Configuration]
PreloadWeight=26
[Containments][3][Applets][52]
[Containments][3][Applets][56]
immutability=1
plugin=org.kde.resourcesMonitor-fork
plugin=org.kde.plasma.brightness
[Containments][3][Applets][52][Configuration][Appearance]
fontScale=32
graphHeight=1
graphWidth=1
[Containments][3][Applets][56][Configuration]
PreloadWeight=100
popupHeight=180
popupWidth=360
[Containments][3][Applets][52][Configuration][ConfigDialog]
DialogHeight=660
DialogWidth=880
[Containments][3][Applets][57]
immutability=1
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]
immutability=1
@@ -127,13 +191,16 @@ DialogWidth=1920
PreloadWeight=18
[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]
ItemGeometries-1536x864=
[Containments][3][Shortcuts]
global=Meta+F12
[Containments][54]
ItemGeometries-1024x768=
ItemGeometries-1920x1080=
ItemGeometriesHorizontal=
activityId=2b22975f-ece8-4bc8-a72a-f88fc0add08b
activityId=5631f9b9-eda6-43ff-826c-7cb51e8f26f5
formfactor=0
immutability=1
lastScreen=0
@@ -141,13 +208,11 @@ location=0
plugin=org.kde.plasma.folder
wallpaperplugin=org.kde.image
[Containments][50][General]
ToolBoxButtonState=topcenter
ToolBoxButtonX=377
ToolBoxButtonY=34
[Containments][54][General]
positions={"1024x768":[],"1920x1080":[]}
[Containments][51]
activityId=2b22975f-ece8-4bc8-a72a-f88fc0add08b
[Containments][58]
activityId=5631f9b9-eda6-43ff-826c-7cb51e8f26f5
formfactor=0
immutability=1
lastScreen=1
@@ -155,6 +220,30 @@ location=0
plugin=org.kde.plasma.folder
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]
activityId=
formfactor=2
@@ -206,7 +295,7 @@ immutability=1
plugin=org.kde.plasma.manage-inputmethod
[Containments][9][Applets][15][Configuration]
PreloadWeight=26
PreloadWeight=36
[Containments][9][Applets][16]
immutability=1
@@ -256,7 +345,7 @@ immutability=1
plugin=org.kde.plasma.battery
[Containments][9][Applets][23][Configuration]
PreloadWeight=26
PreloadWeight=0
[Containments][9][Applets][24]
immutability=1
@@ -272,6 +361,9 @@ plugin=org.kde.plasma.networkmanagement
[Containments][9][Applets][25][Configuration]
PreloadWeight=100
[Containments][9][Applets][25][Configuration][General]
currentDetailsTab=details
[Containments][9][Applets][26]
immutability=1
plugin=org.kde.plasma.mediacontroller
@@ -286,6 +378,20 @@ plugin=org.kde.kscreen
[Containments][9][Applets][42][Configuration]
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]
DialogHeight=660
DialogWidth=880
@@ -294,9 +400,9 @@ DialogWidth=880
PreloadWeight=26
[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
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
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.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]
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
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
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-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
+62 -43
View File
@@ -8,13 +8,15 @@
show_thumbnail=1
[Window]
width=1280
height=659
width=959
height=1014
maximized=1
[Desktop]
show_wallpaper=1
wallpaper=$HOME/Pictures/wallpapers/1920x1080/pexels-og-mpango-3041110-0.jpg
bg1=4656,4125,12014
bg2=0,0,3200
bg2=26528,4179,32767
text=65535,65535,65535
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_unmounted-icn=gtk-harddisk
dev_icon_internal_mounted-icn=gtk-harddisk
dev_icon_network-icn=gtk-network
dev_icon_file-lbl=Mounted File
book_icon-lbl=_Icon
book_show-b=1
@@ -80,26 +83,26 @@ main_terminal-b=2
main_save_tabs-b=1
main_exit-key=113
main_exit-keymod=4
panel1_show-s=////
panel1_show-x=7
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=3
panel1_show-key=49
panel1_show-keymod=4
panel1_show-b=1
panel2_show-s=////
panel2_show-x=5
panel1_show-b=2
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=1
panel2_show-key=50
panel2_show-keymod=4
panel2_show-b=2
panel3_show-s=////
panel3_show-x=1
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=4
panel3_show-key=51
panel3_show-keymod=4
panel3_show-b=2
panel4_show-s=////
panel4_show-x=2
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=6
panel4_show-key=52
panel4_show-keymod=4
panel4_show-b=2
panel4_show-b=1
main_pbar-b=1
main_focus_panel-lbl=_Go
main_auto-lbl=_Events
@@ -124,13 +127,13 @@ task_col_status-y=130
task_col_status-b=1
task_col_count-x=1
task_col_path-x=2
task_col_path-y=54
task_col_path-y=675
task_col_path-b=1
task_col_file-x=3
task_col_file-y=738
task_col_file-y=228
task_col_file-b=1
task_col_to-x=4
task_col_to-y=29
task_col_to-y=365
task_col_to-b=1
task_col_progress-x=5
task_col_progress-y=100
@@ -154,7 +157,7 @@ task_col_avgspeed-b=1
task_col_avgest-x=12
task_col_avgest-y=459
task_col_avgest-b=1
task_show_manager-x=257
task_show_manager-x=250
task_show_manager-b=2
task_hide_manager-b=1
task_popups-s=600
@@ -206,8 +209,8 @@ new_folder-keymod=4
new_archive-key=65
new_archive-keymod=1
arc_dlg-s=hand_arc_+zip
arc_dlg-x=840
arc_dlg-y=630
arc_dlg-x=1364
arc_dlg-y=908
arc_dlg-z=0
arc_dlg-b=1
tab_new-key=-1
@@ -299,7 +302,8 @@ prop_perm-key=112
prop_perm-keymod=4
panel1_show_toolbox-b=1
panel1_show_devmon-b=1
panel1_show_book-b=1
panel1_show_dirtree-b=1
panel1_show_book-b=2
panel1_show_sidebar-b=2
panel1_list_detailed-x=2
panel1_list_detailed-y=1
@@ -313,7 +317,7 @@ panel1_list_compact-b=2
panel1_list_large-b=1
panel1_show_hidden-key=104
panel1_show_hidden-keymod=4
panel1_show_hidden-b=1
panel1_show_hidden-b=2
panel1_detcol_name-x=0
panel1_detcol_name-b=1
panel1_detcol_size-x=1
@@ -450,7 +454,7 @@ panel1_slider_positions-y=198
panel_sliders-s=405
panel_sliders-x=848
panel_sliders-y=579
panel_sliders-z=748
panel_sliders-z=764
cstm_7551f58c-x=0
cstm_7551f58c-key=103
cstm_7551f58c-keymod=4
@@ -464,13 +468,13 @@ cstm_7551f58c-keep=1
file_dlg-x=840
file_dlg-y=630
panel1_show_pathbar-b=1
text_dlg-s=600
text_dlg-s=690
text_dlg-x=500
text_dlg-y=562
text_dlg-z=400
text_dlg-y=310
text_dlg-z=643
cstm_779468ff-y=
cstm_779468ff-key=118
cstm_779468ff-keymod=67108864
cstm_779468ff-key=86
cstm_779468ff-keymod=67108865
cstm_779468ff-label=GVim
cstm_779468ff-next=cstm_44b46be8
cstm_779468ff-prev=cstm_46ad647a
@@ -481,7 +485,7 @@ cstm_779468ff-keep=1
app_dlg-s=500
app_dlg-x=1920
app_dlg-y=1005
app_dlg-z=484
app_dlg-z=452
arc_tar_bz2-s=
cstm_46ad647a-y=
cstm_46ad647a-key=88
@@ -681,7 +685,7 @@ cstm_7a0c9cbe-tool=4
cstm_7a0c9cbe-prev=cstm_051d0ab7
panel1_show_toolbox0-b=1
panel1_show_devmon0-b=1
panel1_show_book0-b=1
panel1_show_book0-b=2
panel1_show_sidebar0-b=2
panel1_detcol_name0-b=1
panel1_detcol_size0-b=1
@@ -690,8 +694,8 @@ panel1_detcol_perm0-b=1
panel1_detcol_owner0-b=1
panel1_detcol_date0-b=1
panel1_slider_positions0-s=292
panel1_slider_positions0-x=351
panel1_slider_positions0-y=233
panel1_slider_positions0-x=416
panel1_slider_positions0-y=236
panel1_show_toolbox1-b=1
panel1_show_devmon1-b=1
panel1_show_book1-b=1
@@ -736,7 +740,7 @@ panel1_detcol_owner2-b=1
panel1_detcol_date2-b=1
panel1_slider_positions2-s=292
panel1_slider_positions2-x=160
panel1_slider_positions2-y=72
panel1_slider_positions2-y=236
panel3_show_toolbox2-b=1
panel3_show_devmon2-b=2
panel3_show_book2-b=2
@@ -803,7 +807,7 @@ panel2_detcol_date0-y=100
panel2_detcol_date0-b=1
panel2_slider_positions0-s=0
panel2_slider_positions0-x=339
panel2_slider_positions0-y=233
panel2_slider_positions0-y=373
panel2_show_toolbox2-b=1
panel2_show_devmon2-b=1
panel2_show_book2-b=1
@@ -869,7 +873,7 @@ panel3_detcol_owner0-b=1
panel3_detcol_date0-y=1046
panel3_detcol_date0-b=1
panel3_slider_positions0-s=0
panel3_slider_positions0-x=293
panel3_slider_positions0-x=242
panel3_slider_positions0-y=233
cstm_0c2251bc-y=
cstm_0c2251bc-key=103
@@ -937,8 +941,8 @@ panel4_detcol_owner0-b=1
panel4_detcol_date0-y=100
panel4_detcol_date0-b=1
panel4_slider_positions0-s=0
panel4_slider_positions0-x=203
panel4_slider_positions0-y=233
panel4_slider_positions0-x=253
panel4_slider_positions0-y=595
panel3_show_toolbox3-b=1
panel3_show_devmon3-b=1
panel3_show_book3-b=2
@@ -1015,28 +1019,28 @@ cstm_570b5ce2-line=bash-session -n
cstm_570b5ce2-task_err=1
cstm_570b5ce2-task_out=1
cstm_3164fd7c-x=3
cstm_3164fd7c-z=/home/harish
cstm_3164fd7c-z=$HOME
cstm_3164fd7c-label=Home
cstm_3164fd7c-next=cstm_5e51738c
cstm_3164fd7c-parent=main_book
cstm_5e51738c-x=3
cstm_5e51738c-z=/home/harish/Downloads
cstm_5e51738c-z=$HOME/Downloads
cstm_5e51738c-label=Downloads
cstm_5e51738c-next=cstm_7610ef7d
cstm_5e51738c-prev=cstm_3164fd7c
cstm_7610ef7d-x=3
cstm_7610ef7d-z=/home/harish/Projects
cstm_7610ef7d-z=$HOME/Projects
cstm_7610ef7d-label=Projects
cstm_7610ef7d-next=cstm_460a2fe0
cstm_7610ef7d-prev=cstm_5e51738c
cstm_44b46be8-y=
cstm_44b46be8-key=118
cstm_44b46be8-keymod=67108872
cstm_44b46be8-keymod=67108864
cstm_44b46be8-label=Lvim
cstm_44b46be8-icon=nvim
cstm_44b46be8-next=cstm_2852ad6c
cstm_44b46be8-prev=cstm_779468ff
cstm_44b46be8-line=env HISTSIZE=10000 HISTFILE="%d/.bash_history" lvim
cstm_44b46be8-line=env HISTSIZE=10000 HISTFILE="%d/.bash_history" lvim %F
cstm_44b46be8-task_err=1
cstm_44b46be8-task_out=1
cstm_44b46be8-keep=1
@@ -1050,12 +1054,27 @@ cstm_78d6ed67-task_err=1
cstm_78d6ed67-task_out=1
cstm_78d6ed67-keep=1
cstm_460a2fe0-x=3
cstm_460a2fe0-z=/home/harish/Documents
cstm_460a2fe0-z=$HOME/Documents
cstm_460a2fe0-label=Documents
cstm_460a2fe0-next=cstm_579daf70
cstm_460a2fe0-prev=cstm_7610ef7d
cstm_579daf70-x=3
cstm_579daf70-z=/home/harish/.file-headers
cstm_579daf70-z=$HOME/.file-headers
cstm_579daf70-label=.file-headers
cstm_579daf70-next=cstm_1b769d37
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
+2 -2
View File
@@ -17,12 +17,12 @@ set $right l
# set $term gnome-terminal
set $term konsole
# Your preferred application launcher
set $menu dmenu_run
set $menu rofi -show drun
### Output configuration
#
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
output * bg /usr/share/backgrounds/f39/default/f39-01-day.png fill
#
# Example configuration:
#
+4
View File
@@ -8,6 +8,7 @@
defaultBranch = main
[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"
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"]
process = git-lfs filter-process
required = true
@@ -19,3 +20,6 @@
autoSetupRemote = true
[pull]
rebase = false
[gui]
fontui = -family \"Noto Sans\" -size 16 -weight normal -slant roman -underline 0 -overstrike 0
fontdiff = -family \"Noto Sans Mono\" -size 16 -weight normal -slant roman -underline 0 -overstrike 0
+2 -1
View File
@@ -1,5 +1,6 @@
gtk-sound-theme-name="ocean"
gtk-enable-animations=1
gtk-primary-button-warps-slider=0
gtk-primary-button-warps-slider=1
gtk-toolbar-style=3
gtk-menu-images=1
gtk-button-images=1
@@ -1,6 +1,7 @@
#!/usr/bin/env bash
export HISTSIZE=10000
export HISTFILE=$PWD/.bash_history
export HISTCONTROL=erasedups
if [[ $1 == '-n' ]]; then
konsole &
+2 -1
View File
@@ -1,2 +1,3 @@
#!/usr/bin/env bash
/usr/bin/chromium-browser --password-store=kwallet5 --force-device-scale-factor=1.25 "$@"
# --force-device-scale-factor=1.25
/usr/bin/chromium-browser --password-store=kwallet5 "$@"
+112 -4
View File
@@ -68,7 +68,7 @@ videoformobile(){
local infile=$1;
shift
set -x
ffmpeg -i "$infile" -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 3.0 $@
ffmpeg -i "$infile" -c:v h264 -pix_fmt yuv420p -level 3.0 $@
}
# allow permission for docker container. dockerAllow <path>
@@ -83,13 +83,13 @@ devSetup(){
lvim &
bash-session -n &
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 "Window Maximize"
qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "Switch One Desktop Down"
git gui &
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"
}
@@ -336,7 +336,8 @@ subtitleBurn(){
# Gen random password
genPassword(){
node -p "require('base-x')('!#$%&()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_abcdefghijklmnopqrstuvwxyz{|}~' ).encode( crypto.randomBytes(${1:-15}) )"
cd ~/.node_modules_mine;
node -p "require('base-x').default('!#$%&()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_abcdefghijklmnopqrstuvwxyz{|}~' ).encode( crypto.randomBytes(${1:-15}) )"
}
# Convert json to csv with column headers
@@ -428,7 +429,114 @@ fontCacheRefresh(){
fc-cache -f -v
}
# tell yarn to use node_modules directory
yarnUseNodemodules(){
yarn config set nodeLinker node-modules
}
# usbreset
usbreset(){
set -x
buses=$(lspci | grep USB | cut -d' ' -f1)
for i in $buses; do
echo -n "0000:$i" | sudo tee /sys/bus/pci/drivers/xhci_hcd/unbind
sleep 0.5
echo -n "0000:$i" | sudo tee /sys/bus/pci/drivers/xhci_hcd/bind
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(){
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/csv-split-by-col.py
./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
./nvim-distro.sh
./lzvim.sh
@@ -6,6 +6,8 @@
vim.opt.shiftwidth = 2
vim.opt.tabstop = 2
vim.opt.relativenumber = true
vim.opt.list = true
vim.opt.relativenumber = false
-- general
lvim.log.level = "info"
@@ -21,7 +23,7 @@ lvim.format_on_save = {
lvim.leader = "space"
-- add your own keymapping
lvim.keys.normal_mode["<C-s>"] = ":w<cr>"
lvim.keys.normal_mode['<C-p>'] = ":Telescope find_files<CR>"
lvim.keys.normal_mode['<C-p>'] = ":Telescope fd<CR>"
-- lvim.keys.normal_mode["<S-l>"] = ":BufferLineCycleNext<CR>"
-- lvim.keys.normal_mode["<S-h>"] = ":BufferLineCyclePrev<CR>"
@@ -34,8 +36,11 @@ end
-- lvim.builtin.which_key.mappings["P"] = { "<cmd>Telescope projects<CR>", "Projects" }
-- Disable automatic changing of directory in lunarvim
lvim.builtin.project.active = false
lvim.builtin.project.manual_mode = true
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
-- lvim.colorscheme = "lunar"
@@ -61,11 +66,11 @@ lvim.builtin.lualine.sections.lualine_b = { 'branch', '%f' }
-- Automatically install missing parsers when entering buffer
lvim.builtin.treesitter.auto_install = true
lvim.builtin.luasnip = {
sources = {
friendly_snippets = false,
},
}
-- lvim.builtin.luasnip = {
-- sources = {
-- friendly_snippets = false,
-- },
-- }
-- lvim.builtin.treesitter.ignore_install = { "haskell" }
@@ -74,7 +79,10 @@ lvim.builtin.luasnip = {
-- -- generic LSP settings <https://www.lunarvim.org/docs/languages#lsp-support>
lvim.lsp.null_ls.setup.timeout_ms = 20000
-- add `pyright` to `skipped_servers` list
-- vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "pyright" })
-- lvim.lsp.null_ls.setup.timeout_ms = 20000
-- --- disable automatic installation of servers
-- lvim.lsp.installer.setup.automatic_installation = false
@@ -102,14 +110,14 @@ lvim.lsp.null_ls.setup.timeout_ms = 20000
-- end
-- -- linters and formatters <https://www.lunarvim.org/docs/languages#lintingformatting>
local formatters = require "lvim.lsp.null-ls.formatters"
formatters.setup {
{
command = "prettier",
extra_args = { "--print-width", "100" },
filetypes = { "typescript", "typescriptreact", "javascript", "javascriptreact" },
},
}
-- local formatters = require "lvim.lsp.null-ls.formatters"
-- formatters.setup {
-- {
-- command = "prettier",
-- extra_args = { "--print-width", "100" },
-- filetypes = { "typescript", "typescriptreact", "javascript", "javascriptreact" },
-- },
-- }
-- local linters = require "lvim.lsp.null-ls.linters"
-- linters.setup {
-- { command = "flake8", filetypes = { "python" } },
@@ -143,19 +151,81 @@ luasnip.filetype_extend("dart", { "flutter" })
-- })
local actions = require("telescope.actions")
lvim.builtin.telescope.pickers.git_files.mappings = {
i = {
['<C-t>'] = actions.smart_send_to_qflist + actions.open_qflist,
}
}
lvim.builtin.telescope.pickers.live_grep.mappings = {
i = {
['<C-t>'] = actions.smart_send_to_qflist + actions.open_qflist,
}
}
lvim.builtin.telescope.pickers.find_files.mappings = {
i = {
['<C-t>'] = actions.smart_send_to_qflist + actions.open_qflist,
}
}
lvim.builtin.telescope.defaults.path_display = { "shorten" };
lvim.builtin.telescope.defaults.path_display = { shorten = 4 };
lvim.builtin.telescope.defaults.file_ignore_patterns = {
"vendor/*",
"%.lock",
"__pycache__/*",
"%.sqlite3",
"%.ipynb",
"node_modules/*",
"%.jpg",
"%.jpeg",
"%.png",
"%.svg",
"%.otf",
"%.ttf",
".git/",
"%.webp",
".dart_tool/",
".github/",
".gradle/",
".idea/",
".settings/",
".vscode/",
"__pycache__/",
"build/",
"env/",
"gradle/",
"node_modules/",
"target/",
"%.pdb",
"%.dll",
"%.exe",
"%.cache",
"%.ico",
"%.pdf",
"%.dylib",
"%.jar",
"%.docx",
"%.met",
"smalljre_*/*",
".vale/",
"%.burp",
"%.mp4",
"%.mkv",
"%.rar",
"%.zip",
"%.7z",
"%.tar",
"%.bz2",
"%.epub",
"%.flac",
"%.tar.gz",
}
vim.cmd([[
command! -nargs=+ Gr :silent execute 'grep! -nr "<args>" | copen'
au BufRead,BufNewFile *Caddyfile set filetype=caddy
command! -nargs=+ Gr :silent execute 'grep! "<args>" | copen'
" Raw version of Gr command.
command! -nargs=* Grc grep -nr <args>
command! -nargs=* Grc grep <args>
" Add file header to current buffer. Depends on https://github.com/harish2704/file-header
command! Header :execute "0r!file-header '%'"
@@ -185,7 +255,7 @@ command! CopyFilename :let @+=@%
command! Code :execute "!code ./ -g %:". ( line('.')+1 )
" For Open a terminal in current directory
nmap <Leader><Leader>t :!xdg-terminal&<CR>
nmap <Leader><Leader>t :!konsole&<CR>
" Open git-gui in current pwd
nmap <Leader><Leader>g :!git gui &<CR>
@@ -222,7 +292,7 @@ tmap <M-Right> <C-\><C-n><C-W>l
tmap <M-Left> <C-\><C-n><C-W>h
" }}}
set grepprg=ag\ --nogroup\ --nocolor
set grepprg=ag\ --vimgrep
nmap <C-/> :Gr <C-R><C-W>
@@ -267,7 +337,7 @@ dap.adapters.php = {
type = 'executable',
command = 'node',
args = {
'/home/harish/tmp/nvim-configs/lunarvim/share/nvim/mason/packages/php-debug-adapter/extension/out/phpDebug.js' }
'$HOME/tmp/nvim-configs/lunarvim/share/nvim/mason/packages/php-debug-adapter/extension/out/phpDebug.js' }
}
dap.configurations.php = {
@@ -279,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 = {
{
"gpanders/editorconfig.nvim",
@@ -1,54 +1,55 @@
{
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
"LuaSnip": { "branch": "master", "commit": "c4d6298347f7707e9757351b2ee03d0c00da5c20" },
"NrrwRgn": { "branch": "master", "commit": "e027db9d94f94947153cd7b5ac9abd04371ab2b0" },
"alpha-nvim": { "branch": "main", "commit": "7a6b9487dba044a43fde534bf5036f0fda5b6b23" },
"auto-session": { "branch": "main", "commit": "3eb26b949e1b90798e84926848551046e2eb0721" },
"bigfile.nvim": { "branch": "main", "commit": "9616b73670ffeb92679677554ded88854ae42cf8" },
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"LuaSnip": { "branch": "master", "commit": "0abc8f390b278c3b4aabc4c004ac8a088b65cf24" },
"NrrwRgn": { "branch": "master", "commit": "e6f29bd507903b587229c544d3e1eba3cc0f0a13" },
"alpha-nvim": { "branch": "main", "commit": "6c6a89d5b068b5251c8bdf0dd57bb921bcfeeb09" },
"auto-session": { "branch": "main", "commit": "6cde3874a9283c2db55627acca5f28e4fa402320" },
"bigfile.nvim": { "branch": "main", "commit": "33eb067e3d7029ac77e081cfe7c45361887a311a" },
"bracey.vim": { "branch": "master", "commit": "4e1a22acc01787814819df1057d039d4ecf357eb" },
"bufferline.nvim": { "branch": "main", "commit": "417b303328118b6d836ae330142e88771c48a8a3" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" },
"editorconfig.nvim": { "branch": "master", "commit": "5b9e303e1d6f7abfe616ce4cc8d3fffc554790bf" },
"emmet-vim": { "branch": "master", "commit": "def5d57a1ae5afb1b96ebe83c4652d1c03640f4d" },
"gitsigns.nvim": { "branch": "main", "commit": "749267aaa863c30d721c9913699c5d94e0c07dd3" },
"indent-blankline.nvim": { "branch": "master", "commit": "9637670896b68805430e2f72cf5d16be5b97a22a" },
"lazy.nvim": { "branch": "main", "commit": "3ad55ae678876516156cca2f361c51f7952a924b" },
"lir.nvim": { "branch": "master", "commit": "969e95bd07ec315b5efc53af69c881278c2b74fa" },
"lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"editorconfig.nvim": { "branch": "master", "commit": "67758c3e8a2f79019322a60013e4ce0aad09dafa" },
"emmet-vim": { "branch": "master", "commit": "92ef2f74f4093edc99db5e9e4cf7e40116a85bd6" },
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
"gitsigns.nvim": { "branch": "main", "commit": "dd3f588bacbeb041be6facf1742e42097f62165d" },
"indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" },
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"lir.nvim": { "branch": "master", "commit": "f1291b88d3649743165cfb5d0d44a7722d4021ea" },
"lualine.nvim": { "branch": "master", "commit": "131a558e13f9f28b15cd235557150ccb23f89286" },
"lunar.nvim": { "branch": "master", "commit": "08bbc93b96ad698d22fc2aa01805786bcedc34b9" },
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "2997f467881ac4faa6f8c5e7065e3a672297c8ad" },
"mason.nvim": { "branch": "main", "commit": "a51c2d063c5377ee9e58c5f9cda7c7436787be72" },
"neodev.nvim": { "branch": "main", "commit": "3de41fe4b07443c9f1d75062920dfbb9cd31d641" },
"nlsp-settings.nvim": { "branch": "main", "commit": "2a52e793d4f293c0e1d61ee5794e3ff62bfbbb5d" },
"null-ls.nvim": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" },
"nvim-autopairs": { "branch": "master", "commit": "ae5b41ce880a6d850055e262d6dfebd362bb276e" },
"nvim-cmp": { "branch": "main", "commit": "51f1e11a89ec701221877532ee1a23557d291dd5" },
"nvim-dap": { "branch": "master", "commit": "4377a05b9476587b7b485d6a9d9745768c4e4b37" },
"nvim-dap-ui": { "branch": "master", "commit": "85b16ac2309d85c88577cd8ee1733ce52be8227e" },
"nvim-lspconfig": { "branch": "master", "commit": "f7922e59aeb9bc3e31a660ea4e7405ffa3fc2c3a" },
"nvim-navic": { "branch": "master", "commit": "9c89730da6a05acfeb6a197e212dfadf5aa60ca0" },
"nvim-surround": { "branch": "main", "commit": "1c2ef599abeeb98e40706830bcd27e90e259367a" },
"nvim-tree.lua": { "branch": "master", "commit": "920868dba13466586897a8f40220eca6b2caac41" },
"nvim-treesitter": { "branch": "master", "commit": "31f608e47b838594d32a7bc42028e2cefd0ddaad" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "9bff161dfece6ecf3459e6e46ca42e49f9ed939f" },
"nvim-web-devicons": { "branch": "master", "commit": "cfc8824cc1db316a276b36517f093baccb8e799a" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "7b01e2974a47d489bb92f47a41e4c0088ea8f86e" },
"mason.nvim": { "branch": "main", "commit": "cbf8d285e1462dd24acf3507817be2bbcb035919" },
"mini.icons": { "branch": "main", "commit": "520995f1d75da0e4cc901ee95080b1ff2bc46b94" },
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
"nlsp-settings.nvim": { "branch": "main", "commit": "1ae83a5be572fd5e8c1547b5c4c582ce1a14c017" },
"none-ls.nvim": { "branch": "main", "commit": "f9d557ac7cd28a3a993b5ea49716498bd540b01f" },
"nvim-autopairs": { "branch": "master", "commit": "7b9923abad60b903ece7c52940e1321d39eccc79" },
"nvim-cmp": { "branch": "main", "commit": "a1d504892f2bc56c2e79b65c6faded2fd21f3eca" },
"nvim-dap": { "branch": "master", "commit": "531771530d4f82ad2d21e436e3cc052d68d7aebb" },
"nvim-dap-ui": { "branch": "master", "commit": "1a66cabaa4a4da0be107d5eda6d57242f0fe7e49" },
"nvim-lspconfig": { "branch": "master", "commit": "deb0df61b2d6691e745b16a42755e10ad38218e9" },
"nvim-navic": { "branch": "master", "commit": "f5eba192f39b453675d115351808bd51276d9de5" },
"nvim-surround": { "branch": "main", "commit": "8b47db616ef658b8fc27e61db2896aa2f40134de" },
"nvim-tree.lua": { "branch": "master", "commit": "07f541fcaa4a5ae019598240362449ab7e9812b3" },
"nvim-treesitter": { "branch": "master", "commit": "cf12346a3414fa1b06af75c79faebe7f76df080a" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "6141a40173c6efa98242dc951ed4b6f892c97027" },
"nvim-web-devicons": { "branch": "master", "commit": "7d8dad2c837fcdf2e65997e68657c1a21c568074" },
"onedarker.nvim": { "branch": "freeze", "commit": "b00dd2189f264c5aeb4cf04c59439655ecd573ec" },
"plenary.nvim": { "branch": "master", "commit": "267282a9ce242bbb0c5dc31445b6d353bed978bb" },
"project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" },
"schemastore.nvim": { "branch": "main", "commit": "c7c6353db3208608786503cbade1e9f8d3531f15" },
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
"schemastore.nvim": { "branch": "main", "commit": "59b4296a733a5b93ce2aee23ee406b6d279183cc" },
"structlog.nvim": { "branch": "main", "commit": "45b26a2b1036bb93c0e83f4225e85ab3cee8f476" },
"tabular": { "branch": "master", "commit": "339091ac4dd1f17e225fe7d57b48aff55f99b23a" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "9bc8237565ded606e6c366a71c64c0af25cd7a50" },
"telescope.nvim": { "branch": "0.1.x", "commit": "776b509f80dd49d8205b9b0d94485568236d1192" },
"toggleterm.nvim": { "branch": "main", "commit": "12cba0a1967b4f3f31903484dec72a6100dcf515" },
"tokyonight.nvim": { "branch": "main", "commit": "1ee11019f8a81dac989ae1db1a013e3d582e2033" },
"vim-fugitive": { "branch": "master", "commit": "cbe9dfa162c178946afa689dd3f42d4ea8bf89c1" },
"tabular": { "branch": "master", "commit": "12437cd1b53488e24936ec4b091c9324cafee311" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "b25b749b9db64d375d782094e2b9dce53ad53a40" },
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"toggleterm.nvim": { "branch": "main", "commit": "9a88eae817ef395952e08650b3283726786fb5fb" },
"tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" },
"vim-fugitive": { "branch": "master", "commit": "3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0" },
"vim-gnupg": { "branch": "main", "commit": "f9b608f29003dfde6450931dc0f495a912973a88" },
"vim-illuminate": { "branch": "master", "commit": "76f28e858f1caae87bfa45fb4fd09e4b053fc45b" },
"vim-snippets": { "branch": "master", "commit": "ccc2fa1529d372f7ac16d5eb07a385a72b50e05d" },
"which-key.nvim": { "branch": "main", "commit": "7ccf476ebe0445a741b64e36c78a682c1c6118b7" }
}
"vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" },
"vim-snippets": { "branch": "master", "commit": "ededcf7581962ee616cadab360d5966f3307f11a" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
}
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
THIS_DIR=$(dirname $(readlink -f $0))
export NVIM_APPNAME="lvim"
export LUNARVIM_RUNTIME_DIR="$THIS_DIR/lunarvim/share/lvim"
export LUNARVIM_CONFIG_DIR="$THIS_DIR/lunarvim/nvim"
export LUNARVIM_CACHE_DIR="$THIS_DIR/lunarvim/cache"
export LUNARVIM_BASE_DIR="$THIS_DIR/lunarvim/LunarVim"
nvim -u "$LUNARVIM_BASE_DIR/init.lua" "$@"
+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"
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
if [[ ! -d $nvconf ]]; then
echo "invalid \$PKG. Available values:"
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
@@ -1,26 +0,0 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Name=Chromium GTK4
Comment=Access the Internet
GenericName=Web Browser
Exec=/usr/bin/chromium-browser --gtk-version=4 %U
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=chromium-browser
Categories=Network;WebBrowser;
MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;
StartupWMClass=Chromium-browser
Keywords=web;browser;internet;
Actions=new-window;new-private-window;
X-Desktop-File-Install-Version=0.26
[Desktop Action new-window]
Name=Open a New Window
Exec=chromium-browser --gtk-version=4 %U
[Desktop Action new-private-window]
Name=Open a New Private Window
Exec=chromium-browser --incognito --gtk-version=4 %U
@@ -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 ""
+1 -3
View File
@@ -1,3 +1 @@
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
spec: "@yarnpkg/plugin-interactive-tools"
nodeLinker: node-modules
File diff suppressed because it is too large Load Diff
+95 -76
View File
@@ -1,106 +1,125 @@
{
"dependencies": {
"@babel/cli": "^7.22.5",
"@babel/core": "^7.22.5",
"@babel/preset-env": "^7.22.5",
"@faker-js/faker": "^8.2.0",
"@ionic/cli": "^7.1.1",
"@nestjs/cli": "^10.1.0",
"@openapitools/openapi-generator-cli": "^2.6.0",
"@quasar/cli": "^2.2.1",
"@twilio-labs/plugin-dev-phone": "latest",
"@types/node": "^20.3.3",
"@vue/cli": "^5.0.8",
"@anthropic-ai/claude-code": "^2.1.22",
"@babel/cli": "^7.28.6",
"@babel/core": "^7.28.6",
"@babel/preset-env": "^7.28.6",
"@faker-js/faker": "^10.2.0",
"@google/gemini-cli": "^0.26.0",
"@ionic/cli": "^7.2.1",
"@mrodrig/json-2-csv-cli": "^5.5.9",
"@nestjs/cli": "^11.0.16",
"@openai/codex": "^0.92.0",
"@openapitools/openapi-generator-cli": "^2.28.0",
"@quasar/cli": "^2.5.0",
"@types/node": "^25.1.0",
"@vue/cli": "^5.0.9",
"@webpack-cli/generators": "^3.0.7",
"aigle": "^1.14.1",
"ari-client": "^2.2.0",
"base-x": "^4.0.0",
"blitz": "^2.0.0-beta.29",
"base-x": "^5.0.1",
"blitz": "^3.0.2",
"byline": "^5.0.0",
"chokidar-cli": "^3.0.0",
"cjs-to-es6": "^2.0.1",
"cline": "^1.0.10",
"colorette": "^2.0.20",
"create-astro": "^3.1.10",
"create-expo-app": "^2.0.3",
"create-feathers": "^5.0.6",
"create-next-app": "latest",
"composerize": "^1.7.5",
"create-astro": "^4.13.2",
"create-expo-app": "^3.5.3",
"create-feathers": "^5.0.37",
"create-next-app": "^16.1.6",
"create-nollup-app": "^0.0.9",
"create-nuxt-app": "^5.0.0",
"create-redwood-app": "^6.1.0",
"create-refine-app": "^1.11.0",
"create-vite": "^4.3.2",
"create-vite-plugin-ssr": "^0.0.293",
"csvtojson": "^2.0.10",
"create-nuxt-app": "^6.0.0",
"create-redwood-app": "^8.9.0",
"create-refine-app": "^1.12.11",
"create-strapi-app": "^5.34.0",
"create-vite": "^8.2.0",
"create-vite-plugin-ssr": "^0.0.304",
"csvtojson": "^2.0.14",
"curl-trace-parser": "^0.0.10",
"curlconverter": "^4.12.0",
"degit": "^2.8.4",
"deoptigate": "^0.7.1",
"ejs": "^3.1.9",
"electron": "25.2.0",
"eslint": "^8.44.0",
"expo-cli": "^6.3.9",
"express": "^4.18.2",
"ejs": "^4.0.1",
"electron": "39.2.0",
"eslint": "^9.39.2",
"expo-cli": "6.3.10",
"express": "^5.2.1",
"express-generator": "^4.16.1",
"fastify-cli": "^5.7.1",
"fastify-cli": "^7.4.1",
"file-header": "^0.1.1",
"firebase-tools": "^12.4.2",
"fx": "^28.0.0",
"generate-password": "^1.7.0",
"generator-jhipster": "^8.0.0-beta.1",
"generator-jhipster-nodejs": "^2.0.0",
"fx": "^39.2.0",
"gavel": "^10.0.4",
"generate-password": "^1.7.1",
"generator-jhipster": "^8.11.0",
"generator-jhipster-nodejs": "^3.2.0",
"generator-jhipster-quasar": "^0.14.3",
"http-server": "^14.1.1",
"hygen": "^6.2.11",
"ignite-cli": "^8.8.3",
"json-server": "^0.17.3",
"jsvu": "^2.1.0",
"knex": "^2.4.2",
"lerna": "^7.1.1",
"lodash": "^4.17.21",
"magic-regexp": "^0.7.0",
"mjml": "^4.14.1",
"neovim": "^4.10.1",
"ignite-cli": "^11.4.0",
"ipx": "^3.1.1",
"jscodeshift": "^17.3.0",
"json-2-csv": "^5.5.10",
"json-server": "^1.0.0-alpha.23",
"jsvu": "^3.0.3",
"knex": "^3.1.0",
"lerna": "^9.0.3",
"localtunnel": "^2.0.2",
"lodash": "^4.17.23",
"magic-regexp": "^0.10.0",
"mhtml2html": "^3.0.0",
"mjml": "^4.18.0",
"mkpass": "https://github.com/harish2704/mkpass",
"neovim": "^5.4.0",
"nightmare": "^3.0.2",
"nodemon": "^2.0.22",
"nodemon": "^3.1.11",
"nollup": "^0.21.0",
"npm-offline-registry": "^0.0.9",
"omgopass": "^3.2.1",
"onchange": "^7.1.0",
"pg": "8.11.1",
"pg": "8.17.2",
"pkg": "^5.8.1",
"plop": "^3.1.2",
"pnpm": "^8.6.5",
"postgraphile": "^4.13.0",
"prettier": "^2.8.8",
"plop": "^4.0.5",
"postgraphile": "4.14.1",
"prettier": "^3.8.1",
"proxy-kutti": "^1.0.1",
"puppeteer": "^20.7.4",
"puppeteer-core": "^20.7.4",
"puppeteer": "^24.30.0",
"puppeteer-core": "^24.30.0",
"pwa-asset-generator": "^8.1.2",
"qrcode-svg": "^1.1.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-native": "latest",
"react-native-web": "^0.19.6",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"react-native": "^0.83.1",
"react-native-web": "^0.21.2",
"react-scripts": "^5.0.1",
"redis-commander": "^0.8.0",
"rollup": "^3.26.0",
"redis-commander": "^0.9.0",
"rollup": "^4.57.0",
"runtime-cli": "^3.2.0",
"sass": "^1.63.6",
"serve": "^14.2.0",
"sharp-cli": "^2.1.0",
"sqlite3": "^5.1.6",
"ssh-key-manager": "^0.0.2",
"storybook": "^7.0.24",
"svgo": "^3.0.2",
"serve": "^14.2.5",
"sharp-cli": "^5.2.0",
"sqlite3": "^5.1.7",
"ssh-access-manager": "^1.2.2",
"storybook": "^10.0.7",
"svgo": "^4.0.0",
"sway-workspace-grid": "^0.0.2",
"tailwind-config-viewer": "^1.7.2",
"ts-node": "^10.9.1",
"twilio": "^4.13.0",
"twilio-cli": "^5.5.0",
"typescript": "^5.1.6",
"tailwind-config-viewer": "^2.0.4",
"ts-node": "^10.9.2",
"twilio": "^5.10.5",
"typescript": "^5.9.3",
"uglify-js": "^3.17.4",
"uncss": "^0.17.3",
"vite": "^4.3.9",
"webpack-cli": "^5.1.4",
"wscat": "^5.2.0",
"verdaccio": "^6.2.4",
"vite": "^7.3.1",
"webpack-cli": "^6.0.1",
"wscat": "^6.1.0",
"x-ray": "^2.3.4",
"yarn": "^1.22.19",
"yeoman-environment": "^3.19.3",
"zx": "^7.2.2"
}
"yeoman-environment": "^5.1.2",
"zx": "^8.8.5"
},
"devDependencies": {
"@swc/cli": "^0.7.10",
"@swc/core": "^1.15.11"
},
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
}
File diff suppressed because it is too large Load Diff
+16 -7
View File
@@ -1,6 +1,7 @@
if test -z "$USER_PROFILEREAD"; then
export EDITOR=/usr/bin/vim
export PYENV_ROOT="$HOME/.pyenv"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
@@ -12,20 +13,28 @@ if test -z "$USER_PROFILEREAD"; then
PATH="$HOME/.linuxbrew/bin:$PATH";
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
PATH="$PATH:$HOME/.local/Apps/flutter/bin"
PATH="$PYENV_ROOT/bin:$PATH"
# PATH="$PYENV_ROOT/bin:$PATH"
export PATH
export DENO_INSTALL="/home/harish/.deno"
export DENO_INSTALL="$HOME/.deno"
export PATH="$DENO_INSTALL/bin:$PATH"
export TIME_STYLE=long-iso
export TCLLIBPATH=$HOME/.local/share/tkthemes
export ANDROID_HOME=$HOME/.local/Apps/android-sdk
export SYSTEMD_PAGER=
export INPUT_METHOD=ibus
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
# export INPUT_METHOD=ibus
# export GTK_IM_MODULE=ibus
# export XMODIFIERS=@im=ibus
# export QT_IM_MODULE=ibus
export USER_PROFILEREAD=1
fi
if [ -n "$BASH_VERSION" -a -n "$PS1" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
. "$HOME/.deno/env"
+15 -3
View File
@@ -1,7 +1,19 @@
set-option -g default-terminal 'tmux-256color'
set-option -ga terminal-overrides ',xterm-256color:Tc'
# set-option -g default-terminal 'tmux-256color'
# set-option -ga terminal-overrides ',xterm-256color:Tc'
setw -g mode-keys vi
set-option -g mouse on
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xsel -i --clipboard"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "wl-copy"
bind-key -n C-k send-keys -R
bind-key -n M-! select-window -t 1
bind-key -n M-@ select-window -t 2
bind-key -n M-# select-window -t 3
bind-key -n M-$ select-window -t 4
bind-key -n M-% select-window -t 5
bind-key -n M-^ select-window -t 6
bind-key -n M-& select-window -t 7
bind-key -n M-* select-window -t 8
bind-key -n M-( select-window -t 9
+1
View File
@@ -115,3 +115,4 @@ watchdog
xlsx2csv
# xlwt
youtube-dl
csvkit
+7
View File
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
# Fix: Chromium taking long time to open in first time
# https://bugs.archlinux.org/task/75650
echo no-allow-external-cache:0:1 | gpgconf --change-options gpg-agent