අන්තර්ගතය වෙත යන්න

ෂෙල් ප්ලගින

OmarOS ඩෙස්ක්ටොප් එක omaros-shell නම් තනි දිගුකාලීන Quickshell ක්‍රියාවලියක් ලෙස ක්‍රියාත්මක වන අතර, ඔබට තිරය මත දකින සියල්ල පාහේ එහි ඇතුළත ප්ලගින එකකි. තීරුව ප්ලගින එකකි. එයින් පහළට වැටෙන පැනලයන්, ඉමෝජි තේරීම සහ පසුරු කළමනාකරු වැනි සම්පූර්ණතිර අතිශයයන්, OmarOS මෙනුවම, අගුලු තිරය, polkit සංවාදය, සහ ඔබේ බැටරිය නරඹා රාත්‍රියේ ඔබේ තිරය උණුසුම් කරන හිස නොමැති සේවාවන්ද එසේමය.

එය ක්‍රියාත්මක කිරීමේ විස්තරයක් පමණක් නොවේ. එයින් අදහස් වන්නේ ඔබට ඩෙස්ක්ටොප් එකේ කැබලි අක්‍රීය කිරීමට, ඒවා මාරු කිරීමට, නැතහොත් OmarOS හි මූලාශ්‍රයේ එක රේඛාවකටවත් අත නොතබා ඔබටම ලිවිය හැකි බවයි.

පළමු-පාර්ශවීය ප්ලගින OmarOS සමඟ පැමිණ $OMAROS_PATH/shell/plugins/ තුළ ජීවත් වේ. ඔබ විසින්ම එකතු කරන ඕනෑම දෙයක් — ඔබේම අත්හදා බැලීම්, නැතහොත් ඔබට GitHub එකේ හමු වූ දෙයක් — ~/.config/omaros/plugins/ තුළ ජීවත් වේ. දෙකම ආරම්භයේදී එ ලෙසම සොයාගනු ලැබේ, නමුත් ගොඩනැගූ ඒවාට විශ්වාසදායක ෂෙල් අතුරුමුහුණත් ලැබෙන අතර තෙවන-පාර්ශවීය ප්ලගිනවලට ඒවායේම සේවාව සහ ජීවන පාදකයට සීමා කර සීමාසහිත අතුරුමුහනතක් ලැබේ. ගොඩනැගූ ඒවායේ ක්ලෝන රඳවාගන්නේ මුල් හැසිරීම සඳහා අවශ්‍ය වන මූලාශ්‍ර-නිශ්චිත වින්‍යාසය සහ UI ඇමතුම් පමණි.

ඔබ සතු දේ බැලීම

omaros plugin list

එය සොයාගත් සෑම ප්ලගිනයක්ම එහි id එක, එය සක්‍රීය කර ඇත්දැයි, එය පළමු-පාර්ශවීයද තෙවන-පාර්ශවීයදැයි, එහි වර්ග, සහ එහි සංදර්ශන නාමය සමඟ මුද්‍රණය කරයි. ඔබ එය වෙනත් දෙයකට පෝෂණය කරන්නේ නම් --json එකතු කරන්න.

ප්ලගින id නාම අවකාශයට අයත්ය. ගොඩනැගූ ඒවා සියල්ල omaros. සමඟ අරඹයි — omaros.clock, omaros.network, omaros.notifications — සහ එම නාම අවකාශය රක්ෂිත බැවින්, තෙවන-පාර්ශවීය ප්ලගිනුවකට කිසි විටෙකත් එයට හිමිකම් කියිය නොහැක.

ඒවා සක්‍රීය කිරීම සහ අක්‍රීය කිරීම

omaros plugin enable omaros.tailscale
omaros plugin disable omaros.weather

නැතහොත් මෙනුව භාවිතා කරන්න: සැකසුම > ප්ලගින හි සක්‍රීය කරන්න, අක්‍රීය කරන්න, එක් කරන්න, ක්ලෝන කරන්න, සහ ඉවත් කරන්න යන්නේ, එක් එක් එම ක්‍රියාව සඳහා තේරුම් ගත හැකි ප්ලගින පමණක් ලබාදෙන තේරීමක් සමඟ ඇත.

සක්‍රීය කළ තත්ත්වය ~/.config/omaros/shell.json තුළ ගබඩා කරනු ලබන අතර, ප්ලගින වර්ග දෙක සඳහා නීතිය මදක් වෙනස් වේ. තෙවන-පාර්ශවීය ප්ලගින එකක් එහි id එක එම ගොනුවේ කොතැනක හෝ දිස්වන විට හරියටම සක්‍රීය වේ — තීරු පිරිසැලසුම් ඇතුළත් කිරීමක් ලෙස, plugins[] හි ඇතුළත් කිරීමක් ලෙස, නැතහොත් bar.id ලෙස. තීරු විජෙට් නොවන පළමු-පාර්ශවීය ප්ලගින අනෙක් අතටය: ඒවා පෙරනිමියෙන් සක්‍රීය අතර අක්‍රීය වන්නේ disabledPlugins[] හි ලැයිස්තුගත කිරීමෙන් පමණි.

සම්පූර්ණ තීරු ප්ලගිනුවකට කිසිසේත් අක්‍රීය තත්ත්වයක් නැත. සෑම විටම හරියටම එක් තීරුවක් ඇති බැවින්, ඔබ එය තව එකක් සක්‍රීය කිරීමෙන් ආදේශ කරයි. තීරු විජෙට් නිවැහිල්ල ඉහළ තීරුව තුළ ආවරණය වේ.

git වෙතින් ප්ලගින එකක් එකතු කිරීම

තෙවන-පාර්ශවීය ප්ලගින එකක් යනු එහි මූලයේ manifest.json එකක් ඇති git ගබඩාවක් පමණි.

omaros plugin add https://github.com/acme/omaros-weather.git --enable

එය යමක් කිරීමට පෙර, ප්ලගින ඔබේ දිගුකාලීන ෂෙල් ක්‍රියාවලිය තුළ අයනික, අනුපාතය අඩු කළ කේතය ලෙස ක්‍රියා කරන බව එය පැහැදිලිවම ඔබට පවසයි, URL එක පෙන්වයි, සහ ඔබට තහවුරු කිරීමට සෑය. එය බරපතලව ගන්න. තෙවන-පාර්ශවීය ප්ලගින අතුරුමුහුණත සත්‍යාපන සේවා සෘජුවම හෙළි නොකරයි, සහ ආදේශක තීරුවකට වින්‍යාස කළ සත්‍යාපන-නොවන UI සඳහා පමණක් සීමාසහිත හැකියාවන් ලැබේ. දෘශ්‍ය ප්ලගින තවමත් ෂෙලයේ QML දර්ශනය බෙදාගැනී සාමාන්‍ය දෙමව්පිය විවෙක වලට ඇවිදිය හැකි වන අතර, සෑම ප්ලගින කේතයක්ම ඔබේ පරිශීලක ගිණුමට ළඟා විය හැකි සියල්ල සමඟ ධාවනය වේ. සත්‍යාපන තත්ත්වය ළඟා විය හැකි ධාරක වස්තු ප්‍රස්ථාරයෙන් පිටත එම සේවාවන් තැබීමෙන් වෙනම ආරක්ෂා වේ. ඔබ ධාවනය කිරීමට කැමති ගබඩාවන් පමණක් එක් කරන්න, සහ ඔබ ඒවා සක්‍රීය කිරීමට පෙර ඒවා කියවන්න.

ආදේශක තීරුවකට ස්ථාපිත විජෙට් විදහා දැක්විය හැක, නමුත් තීරුවට වෙනත් ප්ලගිනුවක සජීවී සේවා වස්තුවක් ඉල්ලීමට අවසර නොමැති බැවින් සේවා-බන්ධනය කළ තෙවන-පාර්ශවීය විජෙට් වලට අඩු ධාරණ අනුවාදයෙන් ක්‍රියාකාරිත්වය අඩු විය හැක. එවැනි විජෙට් එකකට එහි සහායක සේවාව අවශ්‍ය නම් ගොඩනැගූ omaros.bar එකට ආපසු මාරු වන්න.

ඉන්පසු එය ගබඩාව වේදිකා නාමාවලියකට ක්ලෝන කරයි, මැනිෆෙස්ට් එක වලංගු කරයි, වෙනත් ප්ලගිනුවක් දැනටමත් එම id එකට හිමිකම් කියන්නේ නම් ස්ථාපනය ප්‍රතික්ෂේප කරයි, සහ එය ~/.config/omaros/plugins/<id>/ වෙත ගෙන යයි. --enable නොමැතිව එය දැන් එය සක්‍රීය කිරීමට ඔබට අවශ්‍යදැයි අසයි, ඔබට නැහැ කියා පළමුව කේතය කියවීමට යා හැක. එය කිසි විටෙකත් ප්ලගිනෙහි කිසිවක් ක්‍රියාත්මක නොකරයි, කිසිවිට ස්ථාපනය කොකුවක් ක්‍රියාත්මක නොකරයි, සහ කිසි විටෙකත් sudo නොඅසනු ඇත — එය ගොනු ක්ලෝන කරයි, මැනිෆෙස්ට් එක පරීක්ෂා කරයි, සහ IPC හරහා කොඩියක් පෙරළයි.

යාවත්කාලීන කිරීම යනු එම එකම පිටපතේම වේගවත්-ඉදිරියට අදින්න කිරීමකි:

omaros plugin update acme.weather
omaros plugin update

id එකක් නොමැතිවිට එය ඔබ සතු git-කළමනාකරණය කරනු ලබන සෑම ප්ලගිනුවක්ම යාවත්කාලීන කරයි. එය යෙදීමට පෙර ඔබට වෙනස්කම පෙන්වයි, එය අභිබවනය කළ නොහැකි දේශීය වෙනස්කම් ඔබට ඇත්නම් යාවත්කාලීනයන් ප්‍රතික්ෂේප කරයි, සහ නව නිකුතුව වලංගුභාවය අසමත් නම් ආපසු හරවනු ලැබේ.

omaros plugin remove acme.weather

ඉවත් කිරීම පළමුව ප්ලගින එක අක්‍රීය කරයි, ඉන්පසු එය git පිටපතක් නම් මකාදමනු ලැබේ (ගබඩාව තවමත් ඉහළට ඇත) නැතහොත් එය අනුලකුණු සබැඳියක් නම් එය ගලවනු ලැබේ. git ගබඩාවක් නොමැති අතින් සාදන ලද ප්ලගින නාමාවලියක් සෘජුවම මකා දැමීම වෙනුවට ප්ලගින නාමාවලිය තුළ කාල මුද්‍රණය කළ උපස්ථයකට ගෙනෙනු ඇත.

එය වෙනස් කිරීමට ගොඩනැගූ එකක් ක්ලෝන කිරීම

මෙය මගේ ප්‍රියතම කොටසයි. ඔබට ගොඩනැගූ විජෙට් එකක් හැසිරෙන ආකාරය වෙනස් කිරීමට අවශ්‍ය නම්, $OMAROS_PATH යටතේ ඇති ගොනු සංස්කරණය නොකරන්න — ඒවා පැකේජයට අයත් වන අතර ඊළඟ යාවත්කාලීනය එවා අවලංගු කරනු ඇත. ඒ වෙනුවට එය ක්ලෝන කරන්න:

omaros plugin clone omaros.clock

එය සම්පූර්ණ ප්ලගින එක ~/.config/omaros/plugins/omar.clock එකට පිටපත් කරන ලදී (ඔබේ පරිශීලක නාමය, මගේ නොවේ), එය "My Clock" ලෙස නම් කරයි, එය සක්‍රීය කරයි, සහ ෂෙලය ගොඩනැගූ එකෙන් ඔබේ පිටපතට මාරු කරයි — පවතින තීරු විජෙට් එකක පිහිටුම සහ සැකසීම් තබාගන්නා ගමන්. නව නාමාවලිය ඔබේ $EDITOR එක තුළ වහාම විවෘත කිරීමට --edit එකතු කරන්න, එය මෙනුවේ සැකසුම > ප්ලගින > ප්ලගිනුව ක්ලෝන කරන්න ඔබ වෙනුවෙන් සිදු කරන දේයි.

පරිශීලක නාම උපසර්ගය ඔබේ ක්ලෝනයේ id එක ඔබේම බවට තබාගනී, එබැවින් එය බෙදාගැනීම වෙනත් ඕනෑමෙකුගේ දෙයක් සමඟ ගැටීමක් සිදු නොවේ. මුල් ගොඩනැගූ id එකට සිදුකරන ඇමතුම් ඔබේ ක්ලෝනයට යොමු වනු ඇත, එබැවින් omaros.clock ගැන සඳහන් කළ කිසිවක් යාවත්කාලීන කිරීමට අවශ්‍ය නැත. ඔබ එය අවුල් කරන්නේ නම්, omaros plugin remove omar.clock ගොඩනැගූ එක නැවත ගෙන එයි.

~/.config/omaros/plugins/ යටතේ ඕනෑම තැනක ගොනුවක් සුරැකීම ස්වයංක්‍රීයව ප්ලගින කේතය නැවත පූරණය කරන බැවින්, ඔබට සංස්කාරකය විවෘතව තබා ඔබේ වෙනස්කම් නතර වන ආකාරය බැලිය හැක.

ඔබේම ඒවා ලිවීම

ප්ලගිනුවක් යනු manifest.json එකක් සහ QML ටිකක් සහිත නාමාවලියකි. මැනිෆෙස්ට් එක schemaVersion: 1, id එකක්, name, version, එක් හෝ වැඩි kinds, සහ සෑම වර්ගයක් සඳහාම QML ගොනුවට යොමු කරන entryPoints වස්තුවක් ප්‍රකාශ කරයි:

Kind What it is
bar-widget ක්‍රියාකාරී තීරුවකට කොටසකට දැමිය හැකි සංරචකයක්
panel ස්ථිර හෝ කැඳවනු ලැබූ උපයෝගී කවුළුවක්
overlay සම්පූර්ණ තිර අතිශයය
menu කැඳවනු ලැබූ මෙනූ මතුපිටක්
service UI නොමැති හිස නොමැති තනි ඩෙයක්
bar ගොඩනැගූ එක ආදේශ කරන සම්පූර්ණ තීරුවක්

ප්ලගිනුවකට එකවර වර්ග කිහිපයක් ප්‍රකාශ කළ හැක — මාධ්‍ය ප්ලගිනුව service එකක් සහ bar-widget එකක් යන දෙකම වේ. තීරු විජෙට්වලට එක්ස්ට්‍රා barWidget බ්ලොක් එකක් ලැබෙන අතර එය සංදර්ශන නාමය, ප්‍රවර්ගය, වාචික defaultSection එකක්, සහ allowMultiple ඇතුළත් වේ, එය තීරුවේ එකකට වැඩි ගණනක් තිබීම අර්ථවත්දැයි පැවසීමයි. බොහෝ විජෙට් එය false ලෙස සැකසයි; ස්පේසර් සහ දර්ශක එය true ලෙස සැකසයි.

ඔබ යමක් ප්‍රකාශනය කිරීමට පෙර, එය පරීක්ෂා කරන්න:

omaros plugin validate ./my-plugin

එය ෂෙලය පූරණය කිරීමේදී කරන පරීක්ෂාවන්ම පවත්වාගෙන යයි: යෝජනා අනුවාදය, අවශ්‍ය ක්ෂේත්‍ර, රක්ෂිත නොවන id එක, ආරක්ෂිත සාපේක්ෂ මාර්ග සහ සැබවින්ම පවතින ඇතුළු වීමේ ලක්ෂ්‍ය, ඔබ හිමිකම් පෑ සෑම වර්ගයක් සඳහාම ඇතුළු වීමේ ලක්ෂ්‍යයක්, සහ නාමාවලිය ඇතුළත කොහේකවත් අනුලකුණු සබැඳි නැත.

ප්ලගින සංවර්ධනය සඳහා, ෂෙල් යොමුව සහ පළමු-පාර්ශවීය ප්ලගින නාමවාලිය බලන්න.

ඔබේ ඒවා ලෝකය සමඟ බෙදාගැනීම

ඔබ ඔබට කැමති යමක් සාදා ඇති නමුත් සැටින් පසුව, එය පොදු git ගබඩාවක දාන්න. එය සම්පූර්ණ බෙදාහැරීමේ යාන්ත්‍රණයයි — එවිට ඕනෑම කෙනෙකුට ඔබේ URL එකට එරෙහිව omaros plugin add ක්‍රියාත්මක කර තත්පර ගණනින් එය ධාවනය කළ හැක.