diff --git a/.cspell/anglicisms.dict b/.cspell/anglicisms.dict index d7e2fac..5d8173a 100644 --- a/.cspell/anglicisms.dict +++ b/.cspell/anglicisms.dict @@ -1,36 +1,2 @@ -айтема -алиасов -аудиоредактор -бэклоге -вендоринг -видеотриммер -геймплея -дарк -информере -кадрируйте -композитинг -локал* -+и -+ью -макбук* -+а -+ов -мультиплеера -перегенерируйте -подкасты -проджект -рендерингу -скринкастов -сокотев -стриминговый -табом -трекеров -трекпадом -фанатская -фишинга -фреймбуфер* -+а -+у -+ы -шебангом -юникоде +кроссплатформенности +раскомментировать diff --git a/.cspell/apps&companies.dict b/.cspell/apps&companies.dict index 2a9b6f1..901f613 100644 --- a/.cspell/apps&companies.dict +++ b/.cspell/apps&companies.dict @@ -1,281 +1,11 @@ -анилибри* -+и -+я -госуслугах крипто -adwaita -akkoma -alacarte -alsa -alsamixer -alterator -altlinux -amarok -amberol -antrix -anullsrc -aosc -appimage -appinstall -apricity -archmerge -archstrike -artix -arya -ascensio -asplinux -astro -asus -asusctl -audiosharing -auonmb -autoremove -ayugram -barinfo -bcmwl -betterdiscord -bitrig -blackbox -bluemindo -caca -calligra -canbus -cascadia -chafa -chakra -chessclock -chrom -cleanjaro -clearcpiuid -cmus -condres -coolbits -customizer -dbus -dconf -deepin -desaos -devhelp -devuan -dnome -dracos -drauger -drawtext -droidcam -eartag -easyeffects -eepm -envycontrol -epmqf -epub -erekir -etersoft -exaile -facetime -facetimehd -fastfetch -fdisk -feren -ffprobe -fglrx -flathub +arianna +dxvk +flameshot flatpak -flatseal -fontcolor -fontsize -fotema freedesktop -fretboard -frugalware -funtoo -fwcutter -fwupd -gaphor -garuda -geopjr -gier -gmusicbrowser -gogdl -gogglesmm -gost -gpgkeys -gradience -grapejuice -grombyang -guayadeque -guix -gvfs -haher -hashman -helvum -hplip -huayra -hwdec -ibus -ifcx -infobar -inxi -irix -iterm -kaspersky -keyd -khronos -kibojoe -kingsoft -kogaion -komikku -kooha -korora -krita -kubuntu -kvantum -kyocera -lanczos -laravel -lavfi -lede -libadwaita -libratbag -librix -libtorrent -libx -lmde -lubuntu -lutris -macbook -mageia -mangohud -mcst -meslo -mindustry -minix -mizer -mobipocket -mocp -modeset -mopidy -mopslinux -mousai -muine -mxmdcb -mylyn -namib -neofetch -neovim -netease -netrunner -nextcloud -nitrux -noaccel -nofbaccel -nomossa -noto -notva -nurunner -nvdec -nvenc -nvim -nvsmi -obarun -ooxml -openmamba -optimus -pantum -pardus -parsix -pavucontrol -pclinux -penpot -pentoo -pflfxb -pipewire -pixterm -playerctl -polari -polkit -popos -porteus -postmarket -powerlevel -powertop -pragha -prin -pulseaudio -pushbuf -pypi -qmmp -qscale -qubes -raaml -radeon -rasterbar -ratbagd -reclocking -redcore -redstar -refracted_devuan -regata -rhythmbox -rnote -robo -rpmcs -rpmgp -rpmgs -rpmmacros -runpm +haruna +kiten runtu -ryzen -salentos -septor -serpulo -setpts -setuptools -shadowplay -siduction -sles -smplayer -sology -starterkits -sunos -syncthing -sysprof -tantros -taskwarrior -termpix -textpieces -timeshift tonfotos -trisquel -tycat -udev -ungoogled -urpm -usbguard -vala -vencord -venv -verilus -vesktop -vimscript -virtualenvs -vulkan -vulkaninfo -waterfox -wike -wireplumber -wpctl -xconfig -xdriver -xeyes -xferience -ximper -xlsclients -xmind -xmms -xnoise -xorg -xset -xubuntu -xwayland -yarock -zorin +ventoy diff --git a/.cspell/people-names.dict b/.cspell/people-names.dict index 243de85..37a447f 100644 --- a/.cspell/people-names.dict +++ b/.cspell/people-names.dict @@ -1,13 +1 @@ -Биллетером -Йюргом -Контосом -Мидюков -Раффаэле -Сандрини -fiersik -Hihin -Jürg -oleg -Raffaele -Ruslan -Sandrini +Ганта diff --git a/.cspell/slang.dict b/.cspell/slang.dict index 9ae5521..e69de29 100644 --- a/.cspell/slang.dict +++ b/.cspell/slang.dict @@ -1,98 +0,0 @@ -автозапуска -автологина -автотесты -аддон* -+а -+ам -+ов -+у -+ы -билд* -+а -+ер -+ера -+ерам -+еров -+еру -+еры -+ов -+ы -бранч* -+а -+е -бэкенд* -+а -+у -видеодрайвер* -+а -+ами -+ом -+ы -виртуализированные -вырвиглазным -дистубутивов -закоммитить -коммит* -+а -+ов -+у -мастеринг* -+а -+ом -медиаплатформа -междоменных -метапакет* -+а -+ов -многоконтейнерными -мультиоблачной -мультиплатформенный -мультиэкранную -перелогиниться -пересборк* -+а -+и -перетактировку -предпросмотре -пресет* -+а -+ами -+ов -+ом -+ы -проброска -протыкиваем -самописные -сборочниц* -+а -+е -+у -+ы -склонир* -+овать -+уйте -спека* -+х -термомонитора -фич* -+а -+ами -+ей -+и -флейворов -форк* -+а -+и -+ов -хешер* -+а -+у -ченжлог* -+а -+е -эксплойт* -+а -+ов -+ы -longterm -tada diff --git a/.cspell/terms.dict b/.cspell/terms.dict index 12018ca..446048f 100644 --- a/.cspell/terms.dict +++ b/.cspell/terms.dict @@ -1,40 +1,5 @@ -aarch -ACPI -bootloader -BTRFS -bugtracker -CIFS CUDA -distro -DLNA -DLSS -duallink -DXVK -efifb -fbcon -fbdev -Fira -framebuffer -fullscreen -GART -instdebug -MTRR -noarch -nomodeset -NTSC -PCIROM -POSIX -PRAMIN -Quadro -simpledrm -taskrc -TMDS -tmpfs -UEFI -vaapi -VBIOS -VESA -vesafb -weekstart -xoffset -yoffset +GOST +HDIMAGE +Ibus +Xorg diff --git a/.cspell/words.dict b/.cspell/words.dict index f94a469..6dccab7 100644 --- a/.cspell/words.dict +++ b/.cspell/words.dict @@ -1,49 +1,3 @@ -авторизируйтесь -аудиодорожк* -+ами -+ой -+у -аудиокодека -видеодорожку -видеокодек -видеоконтента -видеопотока -видеопроигрыватель -видеосообщениями -видеофайл* -+а -+ов -видеочип* -+а -+ами -+ов -+ом -+у -+ы -геймпад* -+а -+ам -+ами -+ах -+е -+ов -+ом -+у -+ы -крашиться -криптопровайдеров -медиафайл* -+е -+ов -мейнтейнер* -+ом -+а -+у -пересоберём -подпакетов -просмотрщик -раскомментировать -склонированного -типографики -файлообменной -шейдеры +видеочипов +кандзи +флешках diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..ccfb272 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,8 @@ +{ + "trailingComma": "none", + "tabWidth": 2, + "useTabs": false, + "printWidth": 110, + "singleQuote": true, + "semi": false +} diff --git a/.vitepress/config.json b/.vitepress/config.json index 278e193..450f148 100644 --- a/.vitepress/config.json +++ b/.vitepress/config.json @@ -1,20 +1,20 @@ { - "host": "https://alt-kde.wiki/", - "lang": "ru-RU", - "title": "ALT KDE Wiki", - "head": { - "titleSeponator": " — ", - "themeColor": "#62a0ea", - "type": "website", - "ogImage": "og-alt-wiki.jpg" - }, - "nolebase_exclude": [ - "index.md", - "wiki/index.md", - "reference/index.md", - "project/about/index.md", - "project/contributions/index.md" - ], - "yaWebmasterId": "7f227bf12097f984", - "yaMetrikaId": 97206782 -} \ No newline at end of file + "host": "https://alt-kde.wiki/", + "lang": "ru-RU", + "title": "ALT KDE Wiki", + "head": { + "titleSeponator": " — ", + "themeColor": "#62a0ea", + "type": "website", + "ogImage": "og-alt-wiki.jpg" + }, + "nolebase_exclude": [ + "index.md", + "wiki/index.md", + "reference/index.md", + "project/about/index.md", + "project/contributions/index.md" + ], + "yaWebmasterId": "7f227bf12097f984", + "yaMetrikaId": 97206782 +} diff --git a/.vitepress/data/gitlog.ts b/.vitepress/data/gitlog.ts index 50081e8..e3c5aea 100644 --- a/.vitepress/data/gitlog.ts +++ b/.vitepress/data/gitlog.ts @@ -1,181 +1,177 @@ -export const gitRepository = "https://github.com/OlegShchavelev/ALTKDEWiki" +export const gitRepository = 'https://github.com/OlegShchavelev/ALTKDEWiki' export const gitMaxCommits = 20000 export const gitDisplay = { - disableChangelog: false, - disableContributors: false -} - - -export const gitRewritePath = { - + disableChangelog: false, + disableContributors: false } +export const gitRewritePath = {} export const gitHeadersLocale = { - author_title: "Авторы", - history_title: "История изменений", + author_title: 'Авторы', + history_title: 'История изменений' } export const gitLocales = { - "ru-RU": { - noLogs: "Нет изменений", - lastEdited: "Последнее редактирование: {{daysAgo}}", - lastEditedDateFnsLocaleName: "ru", - viewFullHistory: "Показать историю", - committedOn: " от {{date}}" - } + 'ru-RU': { + noLogs: 'Нет изменений', + lastEdited: 'Последнее редактирование: {{daysAgo}}', + lastEditedDateFnsLocaleName: 'ru', + viewFullHistory: 'Показать историю', + committedOn: ' от {{date}}' + } } export const gitMapContributors = [ - { - name: "Владимир Васьков", - avatar: "https://github.com/Rirusha.png", - nameAliases: ["Rirusha", "Vladimir Vaskov"] - }, - { - name: "Олег Щавелев", - avatar: "https://github.com/OlegShchavelev.png", - nameAliases: ["OlegShchavelev", "Oleg Shchavelev", "Олег Щавелев"] - }, - { - name: "Семен Фомченков", - avatar: "https://github.com/Armatik.png", - nameAliases: ["Semen Fomchenkov", "Armatik", "armatik"] - }, - { - name: "Кирилл Уницаев", - avatar: "https://github.com/fiersik.png", - nameAliases: ["fiersik", "Fiersik Kouji"] - }, - { - name: "iQQator", - avatar: "https://github.com/iDevPro.png", - nameAliases: ["Субач Павел", "iQQator", "iDevPro"] - }, - { - name: "Александр Шамараев", - avatar: "https://github.com/AlexanderShad.png", - nameAliases: ["Aleksandr Shamaraev"] - }, - { - name: "Boria138", - avatar: "https://github.com/Boria138.png", - nameAliases: ["Boria138"] - }, - { - name: "otetswoo", - avatar: "https://github.com/otetswoo.png", - nameAliases: ["vldmr_true", "otetswoo"] - }, - { - name: "Дмитрий Орлов", - avatar: "https://github.com/Luckenty.png", - nameAliases: ["Dmitry", "Luckenty"] - }, - { - name: "Дмитрий Бондарев", - avatar: "https://github.com/pokedim13.png", - nameAliases: ["pokedim13"] - }, - { - name: "Арсений Засыпкин", - avatar: "https://github.com/ImCatCatcher.png", - nameAliases: ["ImCatCatcher", "Arseniy Zasypkin"] - }, - { - name: "Владислав Бабенко", - avatar: "https://github.com/vlad196.png", - nameAliases: ["vlad196", "Владислав Бабенко", "Vladislav Babenko"] - }, - { - name: "Хачатур Тоникян", - avatar: "https://github.com/feyte11.png", - nameAliases: ["Feytell228", "feyte11" ,"Khachatur Tonikyan"] - }, - { - name: "Антон Политов", - avatar: "https://github.com/Ampernic.png", - nameAliases: ["Ampernic", "Антон Политов"] - }, - { - name: "Илья Женецкий", - avatar: "https://github.com/ilyazheprog.png", - nameAliases: ["ilyazheprog", "Ilya Zhenetskij"] - }, - { - name: "Алексей Камаев", - avatar: "https://github.com/a1ex-ak.png", - nameAliases: ["Alexey Kamaev", "a1ex-ak"] - }, - { - name: "AnameVi", - avatar: "https://github.com/AnameVi.png", - nameAliases: ["AnameVi", "AnameV1S"] - }, - { - name: "Belovmv", - avatar: "https://github.com/Belovmv.png", - nameAliases: ["Belovmv"] - }, - { - name: "Anton Palgunov", - avatar: "https://github.com/Toxblh.png", - nameAliases: ["Anton Palgunov", "Toxblh"], - }, - { - name: "Максим Остапенко", - avatar: "https://github.com/Krator3.png", - nameAliases: ['Krator3', 'Maxim Ostapenko'], - }, - { - name: "Давид Султаниязов", - avatar: "https://github.com/X1Z53.png", - nameAliases: ['X1Z53', 'x1z53', 'Sultaniiazov David'], - }, - { - name: "Cyber:X", - avatar: "https://github.com/Cyber-X-Code.png", - nameAliases: ['Cyber-X', 'Cyber-X-Code'], - }, - { - name: "Жора Змейкин", - avatar: "https://github.com/Katze-942.png", - nameAliases: ['Katze-942'], - }, - { - name: "Александр Шамараев", - avatar: "https://github.com/AlexanderShad.png", - nameAliases: ['AlexanderShad'], - }, - { - name: "konoos56", - avatar: "https://github.com/konoos56.png", - nameAliases: ['konoos56'], - }, - { - name: "Alex Kryuchkov", - avatar: "https://github.com/alexkdeveloper.png", - nameAliases: ['alexkdeveloper'], - }, - { - name: "Keleth", - avatar: "https://github.com/Keleth.png", - nameAliases: ['Keleth'], - }, - { - name: "alchere", - avatar: "https://github.com/alchere.png", - nameAliases: ['alchere'], - }, - { - name: "Владислав Темнов", - avatar: "https://github.com/trashb1t.png", - nameAliases: ['trashb1t'], - }, - { - name: "Дмитрий Третьяков", - avatar: "https://github.com/dtwrk.png", - nameAliases: ['dtwrk', 'Dmitry Tretyakov'], - }, + { + name: 'Владимир Васьков', + avatar: 'https://github.com/Rirusha.png', + nameAliases: ['Rirusha', 'Vladimir Vaskov'] + }, + { + name: 'Олег Щавелев', + avatar: 'https://github.com/OlegShchavelev.png', + nameAliases: ['OlegShchavelev', 'Oleg Shchavelev', 'Олег Щавелев'] + }, + { + name: 'Семен Фомченков', + avatar: 'https://github.com/Armatik.png', + nameAliases: ['Semen Fomchenkov', 'Armatik', 'armatik'] + }, + { + name: 'Кирилл Уницаев', + avatar: 'https://github.com/fiersik.png', + nameAliases: ['fiersik', 'Fiersik Kouji'] + }, + { + name: 'iQQator', + avatar: 'https://github.com/iDevPro.png', + nameAliases: ['Субач Павел', 'iQQator', 'iDevPro'] + }, + { + name: 'Александр Шамараев', + avatar: 'https://github.com/AlexanderShad.png', + nameAliases: ['Aleksandr Shamaraev'] + }, + { + name: 'Boria138', + avatar: 'https://github.com/Boria138.png', + nameAliases: ['Boria138'] + }, + { + name: 'otetswoo', + avatar: 'https://github.com/otetswoo.png', + nameAliases: ['vldmr_true', 'otetswoo'] + }, + { + name: 'Дмитрий Орлов', + avatar: 'https://github.com/Luckenty.png', + nameAliases: ['Dmitry', 'Luckenty'] + }, + { + name: 'Дмитрий Бондарев', + avatar: 'https://github.com/pokedim13.png', + nameAliases: ['pokedim13'] + }, + { + name: 'Арсений Засыпкин', + avatar: 'https://github.com/ImCatCatcher.png', + nameAliases: ['ImCatCatcher', 'Arseniy Zasypkin'] + }, + { + name: 'Владислав Бабенко', + avatar: 'https://github.com/vlad196.png', + nameAliases: ['vlad196', 'Владислав Бабенко', 'Vladislav Babenko'] + }, + { + name: 'Хачатур Тоникян', + avatar: 'https://github.com/feyte11.png', + nameAliases: ['Feytell228', 'feyte11', 'Khachatur Tonikyan'] + }, + { + name: 'Антон Политов', + avatar: 'https://github.com/Ampernic.png', + nameAliases: ['Ampernic', 'Антон Политов'] + }, + { + name: 'Илья Женецкий', + avatar: 'https://github.com/ilyazheprog.png', + nameAliases: ['ilyazheprog', 'Ilya Zhenetskij'] + }, + { + name: 'Алексей Камаев', + avatar: 'https://github.com/a1ex-ak.png', + nameAliases: ['Alexey Kamaev', 'a1ex-ak'] + }, + { + name: 'AnameVi', + avatar: 'https://github.com/AnameVi.png', + nameAliases: ['AnameVi', 'AnameV1S'] + }, + { + name: 'Belovmv', + avatar: 'https://github.com/Belovmv.png', + nameAliases: ['Belovmv'] + }, + { + name: 'Anton Palgunov', + avatar: 'https://github.com/Toxblh.png', + nameAliases: ['Anton Palgunov', 'Toxblh'] + }, + { + name: 'Максим Остапенко', + avatar: 'https://github.com/Krator3.png', + nameAliases: ['Krator3', 'Maxim Ostapenko'] + }, + { + name: 'Давид Султаниязов', + avatar: 'https://github.com/X1Z53.png', + nameAliases: ['X1Z53', 'x1z53', 'Sultaniiazov David'] + }, + { + name: 'Cyber:X', + avatar: 'https://github.com/Cyber-X-Code.png', + nameAliases: ['Cyber-X', 'Cyber-X-Code'] + }, + { + name: 'Жора Змейкин', + avatar: 'https://github.com/Katze-942.png', + nameAliases: ['Katze-942'] + }, + { + name: 'Александр Шамараев', + avatar: 'https://github.com/AlexanderShad.png', + nameAliases: ['AlexanderShad'] + }, + { + name: 'konoos56', + avatar: 'https://github.com/konoos56.png', + nameAliases: ['konoos56'] + }, + { + name: 'Alex Kryuchkov', + avatar: 'https://github.com/alexkdeveloper.png', + nameAliases: ['alexkdeveloper'] + }, + { + name: 'Keleth', + avatar: 'https://github.com/Keleth.png', + nameAliases: ['Keleth'] + }, + { + name: 'alchere', + avatar: 'https://github.com/alchere.png', + nameAliases: ['alchere'] + }, + { + name: 'Владислав Темнов', + avatar: 'https://github.com/trashb1t.png', + nameAliases: ['trashb1t'] + }, + { + name: 'Дмитрий Третьяков', + avatar: 'https://github.com/dtwrk.png', + nameAliases: ['dtwrk', 'Dmitry Tretyakov'] + } ] diff --git a/.vitepress/data/icons.ts b/.vitepress/data/icons.ts index bccaebb..8ac14f1 100644 --- a/.vitepress/data/icons.ts +++ b/.vitepress/data/icons.ts @@ -31,11 +31,4 @@ const gitverse = ` ` -export { - telegram, - gitflic, - gitlab, - vk, - messager, - gitverse -} \ No newline at end of file +export { telegram, gitflic, gitlab, vk, messager, gitverse } diff --git a/.vitepress/data/navigations.ts b/.vitepress/data/navigations.ts index 761c16e..b65718e 100644 --- a/.vitepress/data/navigations.ts +++ b/.vitepress/data/navigations.ts @@ -1,60 +1,80 @@ -import { generateSidebar } from 'vitepress-sidebar'; +import { generateSidebar } from 'vitepress-sidebar' export const nav = [ - { text: 'Главная', link: '/' }, - { text: 'Документация', link: '/wiki/' }, - { text: 'Для авторов', link: '/reference/' }, - { - text: 'О проекте', items: [ - { text: 'О проекте', link: '/project/about/' }, - { text: 'Участники', link: '/project/contributions/' } - ] - }, + { text: 'Главная', link: '/' }, + { text: 'Документация', link: '/wiki/' }, + { text: 'Для авторов', link: '/reference/' }, + { + text: 'О проекте', + items: [ + { text: 'О проекте', link: '/project/about/' }, + { text: 'Участники', link: '/project/contributions/' } + ] + } ] -const sidebar_docs = [{ - text: 'Установка и обновление программ', base: '/apps/', items: generateSidebar({ - documentRootPath: 'docs/apps', - excludeFolders: ['_parts'], - useTitleFromFrontmatter: true, - useFolderTitleFromIndexFile: true, - useFolderLinkFromIndexFile: true +const sidebar_docs = [ + { + text: 'Установка и обновление программ', + base: '/apps/', + items: generateSidebar({ + documentRootPath: 'docs/apps', + excludeFolders: ['_parts'], + useTitleFromFrontmatter: true, + useFolderTitleFromIndexFile: true, + useFolderLinkFromIndexFile: true }), collapsed: true -}, { - text: 'Настройка графики', base: '/graphics/', items: [ - { text: 'NVIDIA', link: '/nvidia/', items: [ - { 'text': 'Открытые драйвера', link: '/nvidia/nvidia-nouveau/' }, - { 'text': 'Закрытые драйвера', link: '/nvidia/nvidia-drivers/' } + }, + { + text: 'Настройка графики', + base: '/graphics/', + items: [ + { + text: 'NVIDIA', + link: '/nvidia/', + items: [ + { text: 'Открытые драйвера', link: '/nvidia/nvidia-nouveau/' }, + { text: 'Закрытые драйвера', link: '/nvidia/nvidia-drivers/' } ], collapsed: false - } + } ], collapsed: true -}, { - text: 'Разработка', base: '/developers/', items: generateSidebar({ - documentRootPath: 'docs/developers', - useTitleFromFrontmatter: true, - useFolderTitleFromIndexFile: true, - useFolderLinkFromIndexFile: true + }, + { + text: 'Разработка', + base: '/developers/', + items: generateSidebar({ + documentRootPath: 'docs/developers', + useTitleFromFrontmatter: true, + useFolderTitleFromIndexFile: true, + useFolderLinkFromIndexFile: true }), collapsed: true -}, { - text: 'Решение проблем', base: '/workarrounds/', items: generateSidebar({ - documentRootPath: 'docs/workarrounds', - useTitleFromFrontmatter: true, - useFolderTitleFromIndexFile: true, - useFolderLinkFromIndexFile: true + }, + { + text: 'Решение проблем', + base: '/workarrounds/', + items: generateSidebar({ + documentRootPath: 'docs/workarrounds', + useTitleFromFrontmatter: true, + useFolderTitleFromIndexFile: true, + useFolderLinkFromIndexFile: true }), collapsed: true -}, { - text: 'Быстрые ссылки', base: '/package-manager/', items: generateSidebar({ - documentRootPath: 'docs/package-manager', - useTitleFromFrontmatter: true, - useFolderTitleFromIndexFile: true, - useFolderLinkFromIndexFile: true - }), -}] + }, + { + text: 'Быстрые ссылки', + base: '/package-manager/', + items: generateSidebar({ + documentRootPath: 'docs/package-manager', + useTitleFromFrontmatter: true, + useFolderTitleFromIndexFile: true, + useFolderLinkFromIndexFile: true + }) + } +] const sidebar_reference = [] diff --git a/.vitepress/data/popular_developers.ts b/.vitepress/data/popular_developers.ts index 800fbd5..c2c33ab 100644 --- a/.vitepress/data/popular_developers.ts +++ b/.vitepress/data/popular_developers.ts @@ -1,6 +1,6 @@ export const popular_developers = { - "KDE Community": { - src: '/developers/kde-community-logo.png', - alt: 'KDE Developers Community' - } -} \ No newline at end of file + 'KDE Community': { + src: '/developers/kde-community-logo.png', + alt: 'KDE Developers Community' + } +} diff --git a/.vitepress/data/sponsors.ts b/.vitepress/data/sponsors.ts index 25edacf..c6ba781 100644 --- a/.vitepress/data/sponsors.ts +++ b/.vitepress/data/sponsors.ts @@ -1,41 +1,41 @@ -import { title } from "process"; +import { title } from 'process' export const sponsors = [ - { - tier: 'Организационная структура', - size: 'big', - items: [ - { - name: 'ALT Linux Team', - img: './alt-linux-team.png', - url: 'https://packages.altlinux.org/ru/sisyphus' - }, - { - name: 'BaseALT', - img: './basealt.png', - url: 'https://www.basealt.ru' - } - ] - }, - { - tier: 'Товарищи по цеху VitePress', - size: 'big', - items: [ - { - name: 'MODX Pro', - img: './modx.svg', - url: 'https://docs.modx.pro/' - }, - { - name: 'IT WIKI', - img: './logo_for_friends_horizontal.svg', - url: 'https://it-wiki.com.ru/' - }, - { - name: 'Nólëbase', - img: './nolebase-logo.svg', - url: 'https://nolebase.ayaka.io/' - }, - ] - } -] \ No newline at end of file + { + tier: 'Организационная структура', + size: 'big', + items: [ + { + name: 'ALT Linux Team', + img: './alt-linux-team.png', + url: 'https://packages.altlinux.org/ru/sisyphus' + }, + { + name: 'BaseALT', + img: './basealt.png', + url: 'https://www.basealt.ru' + } + ] + }, + { + tier: 'Товарищи по цеху VitePress', + size: 'big', + items: [ + { + name: 'MODX Pro', + img: './modx.svg', + url: 'https://docs.modx.pro/' + }, + { + name: 'IT WIKI', + img: './logo_for_friends_horizontal.svg', + url: 'https://it-wiki.com.ru/' + }, + { + name: 'Nólëbase', + img: './nolebase-logo.svg', + url: 'https://nolebase.ayaka.io/' + } + ] + } +] diff --git a/.vitepress/data/team.ts b/.vitepress/data/team.ts index 4db1b9b..81a2ee4 100644 --- a/.vitepress/data/team.ts +++ b/.vitepress/data/team.ts @@ -1,7 +1,4 @@ -import { - gitflic, - gitverse -} from './icons' +import { gitflic, gitverse } from './icons' /* Настройки автоматизации участников */ @@ -16,75 +13,74 @@ const loading_placeholders = [ ] const leader_name = 'Олег Щавелев' -export { homeTopLimit, home_filter_type, page_filter_type, enable_autosearch, loading_placeholders, leader_name } +export { + homeTopLimit, + home_filter_type, + page_filter_type, + enable_autosearch, + loading_placeholders, + leader_name +} /* Информация об участниках */ export const contributions = [ - { - avatar: 'https://avatars.githubusercontent.com/u/20732384?v=4', - name: 'Олег Щавелев', - title: 'Разработчик, Участник', - links: [ - { icon: 'github', link: 'https://github.com/OlegShchavelev' }, - { - icon: { - svg: gitflic - }, - link: 'https://gitflic.ru/user/olegshchavelev' + { + avatar: 'https://avatars.githubusercontent.com/u/20732384?v=4', + name: 'Олег Щавелев', + title: 'Разработчик, Участник', + links: [ + { icon: 'github', link: 'https://github.com/OlegShchavelev' }, + { + icon: { + svg: gitflic }, - ] - }, - { - avatar: 'https://github.com/trashb1t.png', - name: 'Владислав Темнов', - title: 'Разработчик, Участник', - links: [ - { icon: 'github', link: 'https://github.com/trashb1t' }, - ], - }, - { - avatar: 'https://avatars.githubusercontent.com/u/57626821?v=4', - name: 'Семен Фомченков', - title: 'Участник', - links: [ - { icon: 'github', link: 'https://github.com/Armatik' }, - { - icon: { - svg: gitflic - }, - link: 'https://gitflic.ru/user/armatik' + link: 'https://gitflic.ru/user/olegshchavelev' + } + ] + }, + { + avatar: 'https://github.com/trashb1t.png', + name: 'Владислав Темнов', + title: 'Разработчик, Участник', + links: [{ icon: 'github', link: 'https://github.com/trashb1t' }] + }, + { + avatar: 'https://avatars.githubusercontent.com/u/57626821?v=4', + name: 'Семен Фомченков', + title: 'Участник', + links: [ + { icon: 'github', link: 'https://github.com/Armatik' }, + { + icon: { + svg: gitflic }, - ], - actionText: 'Поддержать', - sponsor: 'https://www.tinkoff.ru/cf/2MA0Bm6ax63' - }, - { - avatar: 'https://avatars.githubusercontent.com/u/131641124?v=4', - name: 'Кирилл Уницаев', - title: 'Участник', - links: [ - { icon: 'github', link: 'https://github.com/fiersik' } - ], - actionText: 'Поддержать', - sponsor: 'https://www.tinkoff.ru/cf/4p7xYDHEH2y' - }, - { - avatar: 'https://avatars.githubusercontent.com/u/48821354?v=4', - name: 'Жора Змейкин', - title: 'Участник', - links: [ - { icon: 'github', link: 'https://github.com/Katze-942' } - ], - actionText: 'Поддержать', - sponsor: 'https://www.tinkoff.ru/cf/1qXUImsZFTN' - }, - { - avatar: 'https://avatars.githubusercontent.com/u/167680957?v=4', - name: 'Дмитрий Третьяков', - title: 'Участник', - links: [ - { icon: 'github', link: 'https://github.com/dtwrk' } - ], - } - ] \ No newline at end of file + link: 'https://gitflic.ru/user/armatik' + } + ], + actionText: 'Поддержать', + sponsor: 'https://www.tinkoff.ru/cf/2MA0Bm6ax63' + }, + { + avatar: 'https://avatars.githubusercontent.com/u/131641124?v=4', + name: 'Кирилл Уницаев', + title: 'Участник', + links: [{ icon: 'github', link: 'https://github.com/fiersik' }], + actionText: 'Поддержать', + sponsor: 'https://www.tinkoff.ru/cf/4p7xYDHEH2y' + }, + { + avatar: 'https://avatars.githubusercontent.com/u/48821354?v=4', + name: 'Жора Змейкин', + title: 'Участник', + links: [{ icon: 'github', link: 'https://github.com/Katze-942' }], + actionText: 'Поддержать', + sponsor: 'https://www.tinkoff.ru/cf/1qXUImsZFTN' + }, + { + avatar: 'https://avatars.githubusercontent.com/u/167680957?v=4', + name: 'Дмитрий Третьяков', + title: 'Участник', + links: [{ icon: 'github', link: 'https://github.com/dtwrk' }] + } +] diff --git a/.vitepress/theme/components/AKWAsideMetaKeyword.vue b/.vitepress/theme/components/AKWAsideMetaKeyword.vue index b7bc0c1..78946c8 100644 --- a/.vitepress/theme/components/AKWAsideMetaKeyword.vue +++ b/.vitepress/theme/components/AKWAsideMetaKeyword.vue @@ -1,27 +1,26 @@ \ No newline at end of file + diff --git a/.vitepress/theme/components/AKWAsideMetaLink.vue b/.vitepress/theme/components/AKWAsideMetaLink.vue index 5ebc299..67cff0b 100644 --- a/.vitepress/theme/components/AKWAsideMetaLink.vue +++ b/.vitepress/theme/components/AKWAsideMetaLink.vue @@ -1,40 +1,40 @@ \ No newline at end of file + diff --git a/.vitepress/theme/components/AKWAsideMetaList.vue b/.vitepress/theme/components/AKWAsideMetaList.vue index ea5038d..cf1cffa 100644 --- a/.vitepress/theme/components/AKWAsideMetaList.vue +++ b/.vitepress/theme/components/AKWAsideMetaList.vue @@ -3,57 +3,55 @@ import VPLink from '@vitepress/theme/components/VPLink.vue' import { getDomainName } from './../composables/link' export interface Lists { - label?: string; - name?: string; - link: string; + label?: string + name?: string + link: string } const props = defineProps<{ - lists?: Object -}>(); - + lists?: Object +}>() \ No newline at end of file + diff --git a/.vitepress/theme/components/AKWDocsAsideMeta.vue b/.vitepress/theme/components/AKWDocsAsideMeta.vue index f94218a..7b097cc 100644 --- a/.vitepress/theme/components/AKWDocsAsideMeta.vue +++ b/.vitepress/theme/components/AKWDocsAsideMeta.vue @@ -1,6 +1,6 @@ \ No newline at end of file + diff --git a/.vitepress/theme/components/AKWGallery.vue b/.vitepress/theme/components/AKWGallery.vue index a0c5008..729520c 100644 --- a/.vitepress/theme/components/AKWGallery.vue +++ b/.vitepress/theme/components/AKWGallery.vue @@ -10,31 +10,33 @@ const route = useRoute() const params = defineProps(['id']) const props = computed(() => { - if (!frontmatter.value.gallery) { - return - } - - const { title, type, lazy, images } = frontmatter.value.gallery[params.id] - const gallery = [] + if (!frontmatter.value.gallery) { + return + } - if (images) { - for (let src of Object.keys(images)){ - gallery.push({...images[src], ...{'src': assetImage(src, route.path) }}) - } - - } + const { title, type, lazy, images } = frontmatter.value.gallery[params.id] + const gallery = [] - return { - title: title, - type: type, - gallery: gallery, - lazy: lazy, + if (images) { + for (let src of Object.keys(images)) { + gallery.push({ ...images[src], ...{ src: assetImage(src, route.path) } }) } + } + + return { + title: title, + type: type, + gallery: gallery, + lazy: lazy + } }) - \ No newline at end of file +

+ + diff --git a/.vitepress/theme/components/AKWHomeSponsors.vue b/.vitepress/theme/components/AKWHomeSponsors.vue index 9d401a8..df85b57 100644 --- a/.vitepress/theme/components/AKWHomeSponsors.vue +++ b/.vitepress/theme/components/AKWHomeSponsors.vue @@ -1,24 +1,22 @@ \ No newline at end of file + + diff --git a/.vitepress/theme/components/AKWHomeTeam.vue b/.vitepress/theme/components/AKWHomeTeam.vue index 5efbe4e..7176dc6 100644 --- a/.vitepress/theme/components/AKWHomeTeam.vue +++ b/.vitepress/theme/components/AKWHomeTeam.vue @@ -1,33 +1,26 @@ \ No newline at end of file + + + + + + + + + + + + + + + diff --git a/.vitepress/theme/components/AKWHomeTeamButton.vue b/.vitepress/theme/components/AKWHomeTeamButton.vue index d50ed36..ff996e9 100644 --- a/.vitepress/theme/components/AKWHomeTeamButton.vue +++ b/.vitepress/theme/components/AKWHomeTeamButton.vue @@ -1,7 +1,7 @@ \ No newline at end of file + diff --git a/.vitepress/theme/components/AKWHomeTeamMembers.vue b/.vitepress/theme/components/AKWHomeTeamMembers.vue index 4051073..d291bdf 100644 --- a/.vitepress/theme/components/AKWHomeTeamMembers.vue +++ b/.vitepress/theme/components/AKWHomeTeamMembers.vue @@ -1,8 +1,7 @@ - \ No newline at end of file + diff --git a/.vitepress/theme/components/AKWTeamLoader.vue b/.vitepress/theme/components/AKWTeamLoader.vue index 1c740d5..9231ae1 100644 --- a/.vitepress/theme/components/AKWTeamLoader.vue +++ b/.vitepress/theme/components/AKWTeamLoader.vue @@ -39,7 +39,7 @@ const random_placeholder = loading_placeholders[Math.floor(Math.random()*loading max-width: 1152px; background: var(--vp-c-bg-soft); border-radius: 10px; -} +} @media only screen and (max-width: 1024px) { .AKWSpiner .container { @@ -48,4 +48,4 @@ const random_placeholder = loading_placeholders[Math.floor(Math.random()*loading } } - \ No newline at end of file + diff --git a/.vitepress/theme/components/AKWTeamPage.vue b/.vitepress/theme/components/AKWTeamPage.vue index af8b51c..68f256f 100644 --- a/.vitepress/theme/components/AKWTeamPage.vue +++ b/.vitepress/theme/components/AKWTeamPage.vue @@ -1,38 +1,33 @@ diff --git a/.vitepress/theme/composables/asidemeta.ts b/.vitepress/theme/composables/asidemeta.ts index 7e79630..84d2f96 100644 --- a/.vitepress/theme/composables/asidemeta.ts +++ b/.vitepress/theme/composables/asidemeta.ts @@ -1,55 +1,50 @@ import { isValidUrl } from './link' export const getLists = (data: {}, labels: {}) => { + if (!data) return [] - if (!data) return [] + const _data = [] - const _data = [] + Object.entries(data).forEach(([key, value]) => { + _data[key] = + typeof value !== 'string' + ? Object.assign({}, { label: labels[key] }, value) + : { label: labels[key], link: value } + }) - Object.entries(data).forEach(([key, value]) => { - _data[key] = typeof value !== 'string' - ? Object.assign({}, { label: labels[key] }, value) - : { label: labels[key], link: value } - }) - - return { ..._data } + return { ..._data } } export const getLinks = (data: any, config: {}) => { + if (!data) return - if (!data) return - - const _data = [] + const _data = [] - Object.entries(data).forEach(([key, value]) => { - (value && config[key]) ? - _data[key] = Object.assign({}, { id: value?.id ?? value }, config[key]) - : {} - }) + Object.entries(data).forEach(([key, value]) => { + value && config[key] ? (_data[key] = Object.assign({}, { id: value?.id ?? value }, config[key])) : {} + }) - return Object.assign({}, _data) + return Object.assign({}, _data) } export const getKeywords = (data: Record, config: Record) => { - if (!data) return; + if (!data) return - const _data: Record = {}; + const _data: Record = {} - Object.values(data).forEach((value: string) => { - if (value && config[value]) { - _data[value] = config[value]; - } - }); + Object.values(data).forEach((value: string) => { + if (value && config[value]) { + _data[value] = config[value] + } + }) - return _data; -}; + return _data +} export const getLicence = (data: any) => { + if (!data) return {} - if (!data) return {} - - return { - metadata_license: data - } - -} \ No newline at end of file + return { + metadata_license: data + } +} diff --git a/.vitepress/theme/composables/data.ts b/.vitepress/theme/composables/data.ts index 2d9e04a..513b2c5 100644 --- a/.vitepress/theme/composables/data.ts +++ b/.vitepress/theme/composables/data.ts @@ -1,4 +1,4 @@ import { useData as useData$ } from 'vitepress' import type { DefaultTheme } from 'vitepress/theme' -export const useData: typeof useData$ = useData$ \ No newline at end of file +export const useData: typeof useData$ = useData$ diff --git a/.vitepress/theme/composables/git/stats.js b/.vitepress/theme/composables/git/stats.js index 2d61595..7872327 100644 --- a/.vitepress/theme/composables/git/stats.js +++ b/.vitepress/theme/composables/git/stats.js @@ -1,108 +1,114 @@ -import { Octokit } from "@octokit/core"; -import { contributions, leader_name } from '../../../data/team'; +import { Octokit } from '@octokit/core' +import { contributions, leader_name } from '../../../data/team' import { gitMapContributors } from '../../../data/gitlog' +export async function getContributors(key, owner, repo, autosearch) { + if (!key) return contributions + if (!owner) return contributions + if (!repo) return contributions -export async function getContributors(key, owner, repo, autosearch){ - if (!key) return contributions - if (!owner) return contributions - if (!repo) return contributions + const octokit = new Octokit({ + auth: key + }) - const octokit = new Octokit({ - auth: key + const contributorsRawBase = await octokit + .request('GET /repos/{owner}/{repo}/stats/contributors', { + owner: owner, + repo: repo, + headers: { + 'X-GitHub-Api-Version': '2022-11-28' + } + }) + .then((response) => { + return response.data }) - const contributorsRawBase = await octokit.request('GET /repos/{owner}/{repo}/stats/contributors', { - owner: owner, - repo: repo, - headers: { - 'X-GitHub-Api-Version': '2022-11-28' - } - }).then( response => { return response.data }) - - const userGetMore = async (user) => { - return await octokit.request('GET /users/{user}', { - user: user, - headers: { - 'X-GitHub-Api-Version': '2022-11-28' - } - }) - } + const userGetMore = async (user) => { + return await octokit.request('GET /users/{user}', { + user: user, + headers: { + 'X-GitHub-Api-Version': '2022-11-28' + } + }) + } - const contributors = [] + const contributors = [] - if (contributorsRawBase && contributorsRawBase != {} ){ + if (contributorsRawBase && contributorsRawBase != {}) { + for (const contributorRaw of contributorsRawBase) { + // Внутри forEach нельзя вызывать await - for (const contributorRaw of contributorsRawBase) { // Внутри forEach нельзя вызывать await + const { author, total, weeks } = contributorRaw + + const contributor = { + login: author.login, + name: autosearch + ? await userGetMore(author.login).then((response) => { + return response.data.name + }) + : author.login, + title: autosearch ? 'Участник' : false, + links: autosearch ? [{ icon: 'github', link: author.html_url }] : false, + avatar: author.avatar_url, + commits: total, + additions: 0 + } - const { author, total, weeks } = contributorRaw + // Считаем изменения + weeks.forEach((week) => { + contributor.additions += week.a + }) - const contributor = { - login: author.login, - name: autosearch ? await userGetMore(author.login).then( response => { return response.data.name }) : author.login, - title: autosearch ? "Участник" : false, - links: autosearch ? [ - { icon: 'github', link: author.html_url }, - ] : false, - avatar: author.avatar_url, - commits: total, - additions: 0 + // Ищем имя для сайта по нику гита + gitMapContributors.forEach((gitContributor) => { + if (gitContributor.nameAliases.includes(contributor.login)) { + contributor.name = gitContributor.name } - - // Считаем изменения - weeks.forEach( week => { - contributor.additions += week.a - }) - - // Ищем имя для сайта по нику гита - gitMapContributors.forEach( gitContributor => { - if (gitContributor.nameAliases.includes(contributor.login)) { - contributor.name = gitContributor.name - } - }) - // По имени достаем остальные параметры для сайта по нику - contributions.forEach( siteContributor => { - if(siteContributor.name == contributor.name){ - Object.keys(siteContributor).forEach( key => { - contributor[key] = siteContributor[key] - }) - } - }) - if ( contributor.name && contributor.title ) { - contributors.push(contributor) + }) + // По имени достаем остальные параметры для сайта по нику + contributions.forEach((siteContributor) => { + if (siteContributor.name == contributor.name) { + Object.keys(siteContributor).forEach((key) => { + contributor[key] = siteContributor[key] + }) } + }) + if (contributor.name && contributor.title) { + contributors.push(contributor) } - - return contributors - - } else { - - return contributions - } + + return contributors + } else { + return contributions + } } -export function filterContributors(contributors, filter_type){ - contributors = (filter_type.includes("commits")) ? contributors.sort((a, b) => (-a.commits) - (-b.commits)) : contributors - contributors = (filter_type.includes("additions")) ? contributors.sort((a, b) => (-a.additions) - (-b.additions)) : contributors +export function filterContributors(contributors, filter_type) { + contributors = filter_type.includes('commits') + ? contributors.sort((a, b) => -a.commits - -b.commits) + : contributors + contributors = filter_type.includes('additions') + ? contributors.sort((a, b) => -a.additions - -b.additions) + : contributors - if (filter_type.includes("role")){ - contributors.forEach( contributor => { - if (contributor.title.includes('Разработчик')){ - contributors = contributors.sort((x,y) => { - return x == contributor ? -1 : y == contributor ? 1 : 0; - }); + if (filter_type.includes('role')) { + contributors.forEach((contributor) => { + if (contributor.title.includes('Разработчик')) { + contributors = contributors.sort((x, y) => { + return x == contributor ? -1 : y == contributor ? 1 : 0 + }) } }) - contributors.forEach( contributor => { - if (contributor.name.includes(leader_name)){ - contributors = contributors.sort((x,y) => { - return x == contributor ? -1 : y == contributor ? 1 : 0; - }); + contributors.forEach((contributor) => { + if (contributor.name.includes(leader_name)) { + contributors = contributors.sort((x, y) => { + return x == contributor ? -1 : y == contributor ? 1 : 0 + }) } }) } return contributors -} +} diff --git a/.vitepress/theme/composables/image.ts b/.vitepress/theme/composables/image.ts index 034ee09..f7ea63e 100644 --- a/.vitepress/theme/composables/image.ts +++ b/.vitepress/theme/composables/image.ts @@ -1,11 +1,10 @@ import { isValidUrl } from './link' export const assetImage = (url: string, path: string) => { - + if (!url) return if (isValidUrl(url) != false) return url return (url.slice(0, 2) === './') ? new URL(`/${path.slice(1) + url.slice(2)}`, import.meta.url).href : url } - diff --git a/.vitepress/theme/composables/link.ts b/.vitepress/theme/composables/link.ts index a4f05d1..616ea50 100644 --- a/.vitepress/theme/composables/link.ts +++ b/.vitepress/theme/composables/link.ts @@ -1,12 +1,14 @@ export const isValidUrl = (urlString: string) => { - const urlPattern = new RegExp('^(https?:\\/\\/)?'+ - '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ - '((\\d{1,3}\\.){3}\\d{1,3}))'+ - '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ - '(\\?[;&a-z\\d%_.~+=-]*)?'+ - '(\\#[-a-z\\d_]*)?$','i'); - return !!urlPattern.test(urlString); - } - + const urlPattern = new RegExp( + '^(https?:\\/\\/)?' + + '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + + '((\\d{1,3}\\.){3}\\d{1,3}))' + + '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + + '(\\?[;&a-z\\d%_.~+=-]*)?' + + '(\\#[-a-z\\d_]*)?$', + 'i' + ) + return !!urlPattern.test(urlString) +} - export const getDomainName = (url: any) => url.match(/\/\/([^/]+)\//)[1].replace('www.', ''); \ No newline at end of file +export const getDomainName = (url: any) => url.match(/\/\/([^/]+)\//)[1].replace('www.', '') diff --git a/.vitepress/theme/index.ts b/.vitepress/theme/index.ts index 5b5f092..7559db0 100644 --- a/.vitepress/theme/index.ts +++ b/.vitepress/theme/index.ts @@ -1,7 +1,7 @@ // https://vitepress.dev/guide/custom-theme import { h } from 'vue' import type { Theme } from 'vitepress' -import {defineClientComponent} from 'vitepress' +import { defineClientComponent } from 'vitepress' import DefaultTheme from 'vitepress/theme' import AKWTeamPage from './components/AKWTeamPage.vue' @@ -12,20 +12,15 @@ import VueSilentbox from 'vue-silentbox' import { NolebaseEnhancedReadabilitiesMenu, - NolebaseEnhancedReadabilitiesScreenMenu, + NolebaseEnhancedReadabilitiesScreenMenu } from '@nolebase/vitepress-plugin-enhanced-readabilities' import type { Options } from '@nolebase/vitepress-plugin-enhanced-readabilities' import { InjectionKey } from '@nolebase/vitepress-plugin-enhanced-readabilities' import { enhanceAppWithTabs } from 'vitepress-plugin-tabs/client' -import { - NolebaseGitChangelogPlugin -} from '@nolebase/vitepress-plugin-git-changelog/client' +import { NolebaseGitChangelogPlugin } from '@nolebase/vitepress-plugin-git-changelog/client' -import { - gitLocales, - gitMapContributors -} from '../data/gitlog' +import { gitLocales, gitMapContributors } from '../data/gitlog' import { lexiconEnhancedReadabilities } from './lexicon/enhanced-readabilities' @@ -43,11 +38,8 @@ export default { return h(DefaultTheme.Layout, null, { 'nav-bar-content-after': () => h(NolebaseEnhancedReadabilitiesMenu), 'nav-screen-content-after': () => h(NolebaseEnhancedReadabilitiesScreenMenu), - 'home-features-after': () => [ - h(AKWHomeTeam), - h(AKWHomeSponsors) - ], - 'aside-outline-after': () => h(defineClientComponent(() => import('./components/AKWDocsAsideMeta.vue'))), + 'home-features-after': () => [h(AKWHomeTeam), h(AKWHomeSponsors)], + 'aside-outline-after': () => h(defineClientComponent(() => import('./components/AKWDocsAsideMeta.vue'))) }) }, enhanceApp(ctx) { @@ -55,16 +47,16 @@ export default { locales: lexiconEnhancedReadabilities } as Options) enhanceAppWithTabs(ctx.app) - ctx.app.component('contribution', AKWTeamPage); + ctx.app.component('contribution', AKWTeamPage) ctx.app.use(VueSilentbox, { - downloadButtonLabel: "Скачать 📥" - }); - ctx.app.component('Gallery', AKWGallery); - ctx.app.use(NolebaseGitChangelogPlugin, {locales: gitLocales, mapContributors: gitMapContributors}) + downloadButtonLabel: 'Скачать 📥' + }) + ctx.app.component('Gallery', AKWGallery) + ctx.app.use(NolebaseGitChangelogPlugin, { locales: gitLocales, mapContributors: gitMapContributors }) yandexMetrika(ctx, { counter: { id: config.yaMetrikaId - }, + } }) - }, + } } satisfies Theme diff --git a/.vitepress/theme/lexicon/enhanced-readabilities.ts b/.vitepress/theme/lexicon/enhanced-readabilities.ts index d641abd..fd4754b 100644 --- a/.vitepress/theme/lexicon/enhanced-readabilities.ts +++ b/.vitepress/theme/lexicon/enhanced-readabilities.ts @@ -1,64 +1,78 @@ export const lexiconEnhancedReadabilities = { - 'ru-RU': { - title: { - title: 'Повышенная читаемость' + 'ru-RU': { + title: { + title: 'Повышенная читаемость' + }, + layoutSwitch: { + title: 'Измените внешний вид страницы', + titleHelpMessage: + 'Измените стиль оформления ALT Gnome Wiki, выбирите максимально удобный вариант зависмости от размера вашего экрана и типа устройства.', + optionFullWidth: 'Полноэкранный', + optionFullWidthAriaLabel: 'Полноэкранный', + titleScreenNavWarningMessage: + 'Изменить внешний вид страницы недоступен на экране мобильного устройства', + optionFullWidthHelpMessage: 'Боковая панель и область содержимого занимают всю ширину экрана.', + optionSidebarWidthAdjustableOnly: 'Боковая панель с пользовательской настройкой', + optionSidebarWidthAdjustableOnlyAriaLabel: 'Боковая панель с пользовательской настройкой', + optionSidebarWidthAdjustableOnlyHelpMessage: + 'Увеличьте ширину боковой панели, максимальная ширина боковой панели может изменяться, но ширина области содержимого останется прежней.', + optionBothWidthAdjustable: 'Полноэрканный с пользовательской настройкой', + optionBothWidthAdjustableAriaLabel: 'Полноэрканный с пользовательской настройкой', + optionBothWidthAdjustableHelpMessage: + 'Управляется шириной боковой панели, и шириной содержания документа. Настройте желаемую ширину максимальной ширины боковой панели и содержимого документа.', + optionOriginalWidth: 'Оригинальная ширина', + optionOriginalWidthAriaLabel: 'Оригинальная ширина', + optionOriginalWidthHelpMessage: + 'Оригинальная ширина размера страницы, предусмотренная разработчиками VitePress', + pageLayoutMaxWidth: { + title: 'Измените максимальную ширину страницы', + titleAriaLabel: 'Измените максимальную ширину страницы', + titleHelpMessage: + 'Отрегулируйте точное значение ширины страницы ALT Gnome Wiki, чтобы адаптироваться к различным потребностям чтения и экранам.', + titleScreenNavWarningMessage: + 'Максимальная ширина макета страницы недоступна на экране мобильного устройства.', + slider: 'Отрегулируйте максимальную ширину страницы', + sliderAriaLabel: 'Отрегулируйте максимальную ширину страницы', + sliderHelpMessage: + 'Расположенный ползунок, позволяющий пользователю выбирать и настраивать желаемую ширину страницы, может быть изменен в зависимости от размера вашего экрана.' }, - layoutSwitch: { - title: 'Измените внешний вид страницы', - titleHelpMessage: 'Измените стиль оформления ALT Gnome Wiki, выбирите максимально удобный вариант зависмости от размера вашего экрана и типа устройства.', - optionFullWidth: 'Полноэкранный', - optionFullWidthAriaLabel: 'Полноэкранный', - titleScreenNavWarningMessage: 'Изменить внешний вид страницы недоступен на экране мобильного устройства', - optionFullWidthHelpMessage: 'Боковая панель и область содержимого занимают всю ширину экрана.', - optionSidebarWidthAdjustableOnly: 'Боковая панель с пользовательской настройкой', - optionSidebarWidthAdjustableOnlyAriaLabel: 'Боковая панель с пользовательской настройкой', - optionSidebarWidthAdjustableOnlyHelpMessage: 'Увеличьте ширину боковой панели, максимальная ширина боковой панели может изменяться, но ширина области содержимого останется прежней.', - optionBothWidthAdjustable: 'Полноэрканный с пользовательской настройкой', - optionBothWidthAdjustableAriaLabel: 'Полноэрканный с пользовательской настройкой', - optionBothWidthAdjustableHelpMessage: 'Управляется шириной боковой панели, и шириной содержания документа. Настройте желаемую ширину максимальной ширины боковой панели и содержимого документа.', - optionOriginalWidth: 'Оригинальная ширина', - optionOriginalWidthAriaLabel: 'Оригинальная ширина', - optionOriginalWidthHelpMessage: 'Оригинальная ширина размера страницы, предусмотренная разработчиками VitePress', - pageLayoutMaxWidth: { - title: 'Измените максимальную ширину страницы', - titleAriaLabel: 'Измените максимальную ширину страницы', - titleHelpMessage: 'Отрегулируйте точное значение ширины страницы ALT Gnome Wiki, чтобы адаптироваться к различным потребностям чтения и экранам.', - titleScreenNavWarningMessage: 'Максимальная ширина макета страницы недоступна на экране мобильного устройства.', - slider: 'Отрегулируйте максимальную ширину страницы', - sliderAriaLabel: 'Отрегулируйте максимальную ширину страницы', - sliderHelpMessage: 'Расположенный ползунок, позволяющий пользователю выбирать и настраивать желаемую ширину страницы, может быть изменен в зависимости от размера вашего экрана.', - }, - contentLayoutMaxWidth: { - title: 'Измените максимальную ширину содержания', - titleAriaLabel: 'Измените максимальную ширину содержания', - titleHelpMessage: 'Отрегулируйте точное значение ширины содержимого документа в макете ALT Gnome Wiki, чтобы адаптироваться к различным потребностям чтения и экранам.', - titleScreenNavWarningMessage: 'Максимальная ширина макета содержимого недоступна на экране мобильного устройства.', - slider: 'Отрегулируйте максимальную ширину содержимого', - sliderAriaLabel: 'Отрегулируйте максимальную ширину содержимого', - sliderHelpMessage: 'Расположенный ползунок, позволит пользователю выбирать и настраить желаемую ширину содержимого, может быть изменен в зависимости от размера вашего экрана.', - } - }, - spotlight: { - title: 'Фокус', - titleAriaLabel: 'Фокус', - titleHelpMessage: 'Выделите строку, на которой в данный момент находится курсор мыши, в содержимом, для удобства пользователей, у которых могут возникнуть трудности с чтением и фокусировкой.', - titleScreenNavWarningMessage: 'Фокус недоступен на экране мобильного устройства.', - optionOn: 'Включить', - optionOnAriaLabel: 'Включить', - optionOnHelpMessage: 'Включите фокус.', - optionOff: 'Выключить', - optionOffAriaLabel: 'Выключить', - optionOffHelpMessage: 'Выключите фокус.', - styles: { - title: 'Стиль фокуса', - titleHelpMessage: 'Измените стиль фокуса(подсветки)', - optionUnder: 'Under', - optionUnderAriaLabel: 'Under', - optionUnderHelpMessage: 'Добавьте сплошной цвет фона под зависающим элементом, чтобы выделить место, где в данный момент находится курсор', - optionAside: 'Aside', - optionAsideAriaLabel: 'Aside', - optionAsideHelpMessage: 'Добавьте фиксированную линию сплошным цветом в сторону элемента наведения курсора, чтобы выделить место, где в данный момент находится курсор' - } + contentLayoutMaxWidth: { + title: 'Измените максимальную ширину содержания', + titleAriaLabel: 'Измените максимальную ширину содержания', + titleHelpMessage: + 'Отрегулируйте точное значение ширины содержимого документа в макете ALT Gnome Wiki, чтобы адаптироваться к различным потребностям чтения и экранам.', + titleScreenNavWarningMessage: + 'Максимальная ширина макета содержимого недоступна на экране мобильного устройства.', + slider: 'Отрегулируйте максимальную ширину содержимого', + sliderAriaLabel: 'Отрегулируйте максимальную ширину содержимого', + sliderHelpMessage: + 'Расположенный ползунок, позволит пользователю выбирать и настраить желаемую ширину содержимого, может быть изменен в зависимости от размера вашего экрана.' + } + }, + spotlight: { + title: 'Фокус', + titleAriaLabel: 'Фокус', + titleHelpMessage: + 'Выделите строку, на которой в данный момент находится курсор мыши, в содержимом, для удобства пользователей, у которых могут возникнуть трудности с чтением и фокусировкой.', + titleScreenNavWarningMessage: 'Фокус недоступен на экране мобильного устройства.', + optionOn: 'Включить', + optionOnAriaLabel: 'Включить', + optionOnHelpMessage: 'Включите фокус.', + optionOff: 'Выключить', + optionOffAriaLabel: 'Выключить', + optionOffHelpMessage: 'Выключите фокус.', + styles: { + title: 'Стиль фокуса', + titleHelpMessage: 'Измените стиль фокуса(подсветки)', + optionUnder: 'Under', + optionUnderAriaLabel: 'Under', + optionUnderHelpMessage: + 'Добавьте сплошной цвет фона под зависающим элементом, чтобы выделить место, где в данный момент находится курсор', + optionAside: 'Aside', + optionAsideAriaLabel: 'Aside', + optionAsideHelpMessage: + 'Добавьте фиксированную линию сплошным цветом в сторону элемента наведения курсора, чтобы выделить место, где в данный момент находится курсор' } } -} \ No newline at end of file + } +} diff --git a/.vitepress/theme/styles/custom.css b/.vitepress/theme/styles/custom.css index dd1d4cd..bc6636d 100644 --- a/.vitepress/theme/styles/custom.css +++ b/.vitepress/theme/styles/custom.css @@ -5,7 +5,6 @@ * -------------------------------------------------------------------------- */ :root { - --vp-c-blue: #316f98; --vp-c-blue-light: #457da2; --vp-c-blue-lighter: #6e9ab6; @@ -15,7 +14,7 @@ --vp-c-blue-dimm-2: rgba(49, 111, 152, 0.2); --vp-c-blue-dimm-3: rgba(49, 111, 152, 0.5); - --vp-c-green: #20C996; + --vp-c-green: #20c996; --vp-c-green-light: #36cea0; --vp-c-green-lighter: #62d9b5; --vp-c-green-dark: #1cb487; @@ -33,7 +32,6 @@ --vp-c-yellow-dimm-2: rgba(255, 193, 7, 0.2); --vp-c-yellow-dimm-3: rgba(255, 193, 7, 0.5); - --vp-c-red: #dc3545; --vp-c-red-light: #df4957; --vp-c-red-lighter: #e6717c; @@ -71,18 +69,13 @@ :root { --vp-home-hero-name-color: transparent; - --vp-home-hero-name-background: -webkit-linear-gradient(120deg, - #20C996 30%, - #1d99f3); + --vp-home-hero-name-background: -webkit-linear-gradient(120deg, #20c996 30%, #1d99f3); - --vp-home-hero-image-background-image: linear-gradient(-45deg, - #20C996 50%, - #1d99f3 50%); + --vp-home-hero-image-background-image: linear-gradient(-45deg, #20c996 50%, #1d99f3 50%); --vp-home-hero-image-filter: blur(40px); } @media (min-width: 960px) { - :root { --vp-home-hero-image-filter: blur(72px); --vp-nav-logo-height: 36px; @@ -120,18 +113,20 @@ kbd { border: 1px solid var(--vp-c-border); - box-shadow: var(--vp-c-gray-soft) 0px 1px 1px 0px, var(--vp-c-neutral-inverse) 0px 1px 0px 0px inset; + box-shadow: + var(--vp-c-gray-soft) 0px 1px 1px 0px, + var(--vp-c-neutral-inverse) 0px 1px 0px 0px inset; background-color: var(--vp-c-gray-soft); border-radius: 3px; display: inline-block; - margin: 0 .2em; + margin: 0 0.2em; overflow-wrap: break-word; - padding: .1em .6em; + padding: 0.1em 0.6em; text-shadow: 0 1px 0 var(--vp-c-white); } :root { - --vp-nav-logo-height: 36px + --vp-nav-logo-height: 36px; } /** @@ -170,8 +165,8 @@ kbd { /** * implicitFigures * -------------------------------------------------------------------------- */ -figure>figcaption { +figure > figcaption { text-align: center; color: var(--vp-c-brand-lighter); font-size: 14px; -} \ No newline at end of file +} diff --git a/.vitepress/theme/styles/style.css b/.vitepress/theme/styles/style.css index bec1657..33033e3 100644 --- a/.vitepress/theme/styles/style.css +++ b/.vitepress/theme/styles/style.css @@ -8,7 +8,7 @@ * * Each colors have exact same color scale system with 3 levels of solid * colors with different brightness, and 1 soft color. - * + * * - `XXX-1`: The most solid color used mainly for colored text. It must * satisfy the contrast ratio against when used on top of `XXX-soft`. * @@ -43,7 +43,7 @@ * in custom container, badges, etc. * -------------------------------------------------------------------------- */ - :root { +:root { --vp-c-default-1: var(--vp-c-gray-1); --vp-c-default-2: var(--vp-c-gray-2); --vp-c-default-3: var(--vp-c-gray-3); @@ -92,17 +92,9 @@ :root { --vp-home-hero-name-color: transparent; - --vp-home-hero-name-background: -webkit-linear-gradient( - 120deg, - #bd34fe 30%, - #41d1ff - ); - - --vp-home-hero-image-background-image: linear-gradient( - -45deg, - #bd34fe 50%, - #47caff 50% - ); + --vp-home-hero-name-background: -webkit-linear-gradient(120deg, #bd34fe 30%, #41d1ff); + + --vp-home-hero-image-background-image: linear-gradient(-45deg, #bd34fe 50%, #47caff 50%); --vp-home-hero-image-filter: blur(44px); } @@ -140,6 +132,7 @@ /** * Component: GitChangeLog * -------------------------------------------------------------------------- */ - .bg-\$vp-custom-block-details-bg, .bg-vp-custom-block-details-bg{ +.bg-\$vp-custom-block-details-bg, +.bg-vp-custom-block-details-bg { background-color: var(--vp-c-gray-3) !important; -} \ No newline at end of file +} diff --git a/.vitepress/utils.ts b/.vitepress/utils.ts index b5cb40c..3865da7 100644 --- a/.vitepress/utils.ts +++ b/.vitepress/utils.ts @@ -1,4 +1,4 @@ export const HASH_RE = /#.*$/ export const EXT_RE = /(index)?\.(md|html)$/ -export const normalize = (path: string): string => decodeURI(path).replace(HASH_RE, '').replace(EXT_RE, ''); \ No newline at end of file +export const normalize = (path: string): string => decodeURI(path).replace(HASH_RE, '').replace(EXT_RE, '') diff --git a/.yaspeller/apps&companies.json b/.yaspeller/apps&companies.json index 7f9755a..be94e0b 100644 --- a/.yaspeller/apps&companies.json +++ b/.yaspeller/apps&companies.json @@ -1,129 +1,12 @@ [ - "(GSC|gsc)onnect", - "[Aa]lacarte", - "[Aa]ni[Ll]ibrix", - "[Ee]asy[Ee]ffects", "[Ee]e?pm", + "VitePress", "[Ff]latpak", - "[Ff]latseal", - "[Ff]oliate", - "[Ff]otema", - "[Gg]aphor", - "[Gg]rapejuice", - "[Kk]ooha", - "[Ll]ibre[Ww]olf", - "[Mm]industry", - "[Nn]eovim", - "[Oo]nly[Oo]ffice", - "[Oo]pen[Rr]azer", - "[Pp]ipe[Ww]ire", - "[Pp]olari", - "[Rr]note", - "[Tt]ext[Pp]ieces", - "[Tt]uba", - "[Uu]ngoogled", - "[Vv]esktop", - "[Ww]ike", - "[Xx]eyes", - "анимаций", - "Видеотриммер", - "зелёный", - "медиаплатформа", - "МойОфис", - "подами", - "хеши", - "AGWCategories", - "AGWGallery", - "ALT Gnome", - "app", - "AppIndicators", - "arduinoide", - "audiosharing", - "BaseALT", - "BDF", - "Biblioteca", - "blast2", - "Blender", - "boxy", - "cassette", - "celluloid", - "cli", - "Client", - "CommonMark", - "Cost", - "CSS", - "Date", - "desktopclient", - "desktopeditors", - "desrt", - "devhelp", - "Dialect", - "discord", - "DNOME", - "eog", - "Erekir", - "figma", - "FiraCode", - "Flatpak", - "Fullscreen", - "g4music", - "getpostman", - "GFM", - "GnomeAppsList", - "GoToSocial", - "gpu", - "graphs", - "gregorni", - "GTK4", - "Helvum", - "hw-probe", - "IDE", - "keyd", - "Krita", - "liferooter", - "LLC", - "LTS", - "Lutris", - "macOS", - "MetadataCleaner", - "mts", - "name", - "Neofetch", - "nextcloud", - "Nextcloud", - "obsidian", - "OLEG", - "OpenCore", - "Pika", - "pin(-app)?", - "Podman(Desktop)?", - "PortProton", - "ProtonLG", - "q-bittorrent", - "RAAML", - "rog", - "Ryzen", - "Serpulo", - "SHCHAVELEV", - "Snaps", - "snapshot", - "software", - "sonic3", "Steam Play", - "svg", - "Tantros", - "TextEditor", - "totem", - "transmissionbt", - "USBGuard", - "Vala", - "Viber", - "VideoTrimmer", - "Vimscript", - "VitePress", - "Vivaldi", - "vscode", - "WebfontKitGenerator", - "wpsoffice", - "ZeroTierOne" + "calligraplan", + "[Pp]lasma[Tt]ube", + "[Kk]iten", + "[Kk]ee[Pp]ass(XC|xc)", + "Chromium-GOST", + "Arianna" ] diff --git a/.yaspeller/frontmatter.json b/.yaspeller/frontmatter.json index abafb16..fe51488 100644 --- a/.yaspeller/frontmatter.json +++ b/.yaspeller/frontmatter.json @@ -1,13 +1 @@ -[ - "avatar", - "bolt", - "createdAt", - "dontthemes", - "icon", - "lastUpdated", - "link", - "logo", - "packageName", - "pluginID", - "progress" -] +[] diff --git a/.yaspeller/names.json b/.yaspeller/names.json index 9f22be7..51570cf 100644 --- a/.yaspeller/names.json +++ b/.yaspeller/names.json @@ -1,34 +1 @@ -[ - "[Bb]ytezz?", - "[Kk]etok", - "Adhami", - "alexkdeveloper", - "blissd", - "Brendan", - "Dynalist", - "Evan", - "flattool", - "Forster", - "Greg Ross", - "johnfactotum", - "Khaleel", - "kra-mo", - "libretro", - "Martz", - "Matt", - "Mikhail", - "Muse", - "neithern", - "nokyan", - "OBS Project", - "Paterakis", - "pavloniym", - "Philipp", - "Povliuk", - "Radolyn", - "Rirusha", - "ryuukyu", - "SeaDve", - "Tergoev", - "wwmm" -] +["OLEG", "SHCHAVELEV"] diff --git a/README.md b/README.md index 604eff3..d9e4830 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,21 @@ -
- - Logo - +
+ + Logo +

ALT KDE Wiki
GitHub License GitHub commit activity GitHub Issues or Pull Requests GitHub deployments -

+

База знаний открытого сообщества пользователей операционной системы ALT Regular KDE.

-
-
-
+
+
+
## Разработка + Перед запуском проекта убедитесь, что у вас установелны необходимые компоненты ``` @@ -34,7 +35,7 @@ npm run docs:dev ### Включение динамической сортировки участников на главной странице -Для работы функции требуется создать `read-only` токен GitHub +Для работы функции требуется создать `read-only` токен GitHub (Оффициальный REST API GitHub не предоставляет данные об активности в репозитории без авторизации. Поэтому для использования данного функционала требуется ключ с правом на чтение публичных репозиториев) @@ -62,17 +63,19 @@ VITE_GIT_KEY="{ваш токен}" - homeTopLimit - Лимит отображаемых пользователей на главной странице - home_filter_type - Тип сортировки пользователей на главной странице - page_filter_type - Тип сортировки пользователей на странице команды + 1. 'additions' - по количеству добавленых в репозиторий строк 2. 'commits' - по количеству коммитов в репозиторий 3. 'role+additions' - по роли участника (Разработчик -> Участник) и количеству добавленых в репозиторий строк 4. 'role+commits' - по роли участника (Разработчик -> Участник) и количеству коммитов + - enable_autosearch - Включено/выключено автозаполнение перечня участников из статистики - loading_placeholders - Массив с возможными выводами у спиннера загрузки виджета - - ## Зеркало + Вся документация из этого репозитория размещается на сайте [alt-kde.wiki](https://alt-kde.wiki/) автоматически. ## Лицензия + MIT Copyright © 2023-present OLEG SHCHAVELEV diff --git a/docs/apps/_parts/install/content-epm-play.md b/docs/apps/_parts/install/content-epm-play.md index c5d9ffb..923ea0b 100644 --- a/docs/apps/_parts/install/content-epm-play.md +++ b/docs/apps/_parts/install/content-epm-play.md @@ -1,7 +1,7 @@ -## Установка c помощью epm play +## Установка c помощью epm play При наличии пакета [eepm](/package-manager/epm/), можно установить **{{$frontmatter?.appstream?.name}}** одной командой: ```shell-vue epm play {{$frontmatter.aggregation?.epm?.play?.id ?? $frontmatter.aggregation?.epm?.play}} -``` \ No newline at end of file +``` diff --git a/docs/apps/_parts/install/content-flatpak.md b/docs/apps/_parts/install/content-flatpak.md index 29cc208..77e10b4 100644 --- a/docs/apps/_parts/install/content-flatpak.md +++ b/docs/apps/_parts/install/content-flatpak.md @@ -1,4 +1,4 @@ -## Установка с помощью Flatpak +## Установка с помощью Flatpak При наличии пакета [Flatpak](/package-manager/flatpak/), можно установить **{{ $frontmatter?.appstream?.name }}** одной командой: diff --git a/docs/apps/_parts/install/content-repo.md b/docs/apps/_parts/install/content-repo.md index 2db61c2..3dc632b 100644 --- a/docs/apps/_parts/install/content-repo.md +++ b/docs/apps/_parts/install/content-repo.md @@ -13,7 +13,9 @@ su - apt-get update apt-get install {{ $frontmatter?.aggregation?.sisyphus.id ?? $frontmatter?.aggregation?.sisyphus }} ``` + ```shell-vue[epm] epm -i {{ $frontmatter?.aggregation?.sisyphus.id ?? $frontmatter?.aggregation?.sisyphus }} ``` -::: \ No newline at end of file + +::: diff --git a/docs/apps/_parts/install/software-flatpak.md b/docs/apps/_parts/install/software-flatpak.md index 1cd618e..928cc92 100644 --- a/docs/apps/_parts/install/software-flatpak.md +++ b/docs/apps/_parts/install/software-flatpak.md @@ -1,3 +1,3 @@ :::tip Или с помощью Discover :thinking: Перейдите по ссылке для установки {{ $frontmatter?.appstream?.name }}, затем в браузере подтвердите операцию «открыть приложение». После этого откроется Discover, выберите в нём источник **«Flathub»** и нажмите кнопку «скачать» -::: \ No newline at end of file +::: diff --git a/docs/apps/_parts/install/software-repo.md b/docs/apps/_parts/install/software-repo.md index f835bc3..38ca9db 100644 --- a/docs/apps/_parts/install/software-repo.md +++ b/docs/apps/_parts/install/software-repo.md @@ -2,4 +2,4 @@ :::info В три клика :blush: Перейдите по ссылке установить {{ $frontmatter.title }} и подтвердите в браузере операцию «открыть приложение» Откроется Discover, выберите в нём источник **«Sisyphus»**, и нажмите кнопку «скачать» -::: \ No newline at end of file +::: diff --git a/docs/apps/arianna/index.md b/docs/apps/arianna/index.md index 28e1e79..f74b911 100644 --- a/docs/apps/arianna/index.md +++ b/docs/apps/arianna/index.md @@ -1,28 +1,28 @@ --- title: Arianna aggregation: - flatpak: org.kde.arianna + flatpak: org.kde.arianna appstream: - id: org.kde.arianna - name: Arianna - icon: ./img/org.kde.arianna.svg - summary: Приложение для чтения электронных книг и управления библиотекой. - keywords: - - kdedeveloped - developer: - name: KDE Community - metadata_license: - name: GNU GPLv3 - link: https://choosealicense.com/licenses/gpl-3.0/ - url: - homepage: https://apps.kde.org/ru/arianna/ - bugtracker: https://bugs.kde.org/enter_bug.cgi?product=Arianna + id: org.kde.arianna + name: Arianna + icon: ./img/org.kde.arianna.svg + summary: Приложение для чтения электронных книг и управления библиотекой. + keywords: + - kdedeveloped + developer: + name: KDE Community + metadata_license: + name: GNU GPLv3 + link: https://choosealicense.com/licenses/gpl-3.0/ + url: + homepage: https://apps.kde.org/ru/arianna/ + bugtracker: https://bugs.kde.org/enter_bug.cgi?product=Arianna --- # Arianna -Arianna — приложение для чтения электронных книг и управления библиотекой с поддержкой файлов «.epub». Arianna автоматически обнаруживает книги и сортирует их по категориям, жанрам и авторам. +Arianna — приложение для чтения электронных книг и управления библиотекой с поддержкой файлов `.epub`. Arianna автоматически обнаруживает книги и сортирует их по категориям, жанрам и авторам. ![Скриншот программы](https://cdn.kde.org/screenshots/arianna/library-view.png) - \ No newline at end of file + diff --git a/docs/apps/cryptopro/index.md b/docs/apps/cryptopro/index.md index 4c26c17..62efe34 100644 --- a/docs/apps/cryptopro/index.md +++ b/docs/apps/cryptopro/index.md @@ -1,6 +1,7 @@ --- title: КриптоПро CSP 5 --- + # КриптоПро CSP 5 КриптоПро CSP - программа для работы с электронными цифровыми подписями (ЭЦП) @@ -16,9 +17,11 @@ su - apt-get update apt-get install cryptopro-preinstall ``` + ```shell[epm] epm -i cryptopro-preinstall ``` + ::: ## Подготовка к работе КриптоПро CSP 5 @@ -27,7 +30,7 @@ epm -i cryptopro-preinstall ![Скачивание КриптоПро](img/20240424134657.png) -После скачивания архива, полностью распакуйте его и через терминал под **root'ом** запустите графический инсталлятор командой `bash install_gui.sh` . На втором шаге можете выбрать нужные компоненты. Допустим, я выберу всё, кроме неиспользуемых мной средств защиты КС2. +После скачивания архива, полностью распакуйте его и через терминал под **root'ом** запустите графический инсталлятор командой `bash install_gui.sh` . На втором шаге можете выбрать нужные компоненты. ![Версии КриптоПро](img/20240424135406.png) @@ -35,39 +38,40 @@ epm -i cryptopro-preinstall ## Работа с носителями -Если при установке была выбрана поддержка токенов и смарт-карт, то контейнеры, хранимые в защищенных носителях смогут определяться в "Инструменты КриптоПро". -Если же контейнеры хранятся на незащищенных носителях (на обычных "флешках") и "из коробки" такие контейнеры не стали определяться в "Инструменты КриптоПро" при подключении USB-носителя, то, как вариант, можно скопировать содержимое USB-носителя в директорию `var/opt/cprocsp/keys/username`, где `username` - используемое имя пользователя. Тогда "Инструменты КриптоПро" начнут видеть контейнеры в считывателе "Директория" (HDIMAGE) +Если при установке была выбрана поддержка токенов и смарт-карт, то контейнеры, хранимые в защищённых носителях, будут определяться в "Инструменты КриптоПро". +Если же контейнеры хранятся на незащищённых носителях (на обычных "флешках") и "из коробки" такие контейнеры не стали определяться в "Инструменты КриптоПро" при подключении USB-носителя, то, как вариант, можно скопировать содержимое USB-носителя в директорию `var/opt/cprocsp/keys/username`, где `username` - используемое имя пользователя. Тогда "Инструменты КриптоПро" начнут видеть контейнеры в считывателе "Директория" (HDIMAGE) ![](img/20240424140740.png) ## Установка личных сертификатов в КриптоПро CSP 5 Теперь можно установить личные сертификаты. + 1. Из контейнеров, в которые уже был установлен сертификат - выбрав в "Инструменты КриптоПро" во вкладке "Контейнеры" нужный из списка и нажав "Установить сертификат" 2. Из файла - выбрав в "Инструменты КриптоПро" вкладку "Сертификаты", нажав "Установить сертификаты" - ### Установка корневых и промежуточных сертификатов в КриптоПро CSP 5 -Для работы на определенных площадках может потребоваться установка дополнительных корневых (root) и промежуточных (intermediate) сертификатов. После их скачивания, установить такие сертификаты можно будет средствами "Инструменты КриптоПро" в разделе Сертификаты/Установить сертификаты. +Для работы на определённых площадках может потребоваться установка дополнительных корневых (root) и промежуточных (intermediate) сертификатов. После их скачивания, установить такие сертификаты можно будет средствами "Инструменты КриптоПро" в разделе Сертификаты/Установить сертификаты. ## Настройка Браузер -Для работы с ЭЦП подойдут Яндекс.Браузер и Chromium GOST +Для работы с ЭЦП подойдут Яндекс.Браузер и Chromium-GOST ### Плагин для браузера Для полноценной работы с ЭЦП в браузере также требуется наличие: -- установленного в браузере "**КриптоПро ЭЦП Browser plug-in**" -- установленного в системе пакета "**cprocsp-pki-plugin**" -Если в Chromium GOST по какой-то причине плагин "CryptoPro Extension for CAdES Browser Plug-in" не установился автоматически, то его потребуется установить [в магазине приложений](https://chrome.google.com/). +- установленного в браузере `КриптоПро ЭЦП Browser plug-in` +- установленного в системе пакета `cprocsp-pki-plugin` + +Если в Chromium GOST по какой-то причине плагин `CryptoPro Extension for CAdES Browser Plug-in` не установился автоматически, то его потребуется установить [в магазине приложений](https://chrome.google.com/). -Далее, в случае отсутствия установленного пакета "**cprocsp-pki-plugin**", плагин предложит скачать архив: +Далее, в случае отсутствия установленного пакета `cprocsp-pki-plugin`, плагин предложит скачать архив: ![](img/20240426104552.png) -В скачанном архиве нас будет интересовать пакет "**cprocsp-pki-plugin-...amd64.rpm**". +В скачанном архиве нас будет интересовать пакет `cprocsp-pki-plugin-*-amd64.rpm`. ![](img/20240426104048.png) @@ -75,8 +79,7 @@ epm -i cryptopro-preinstall `*` здесь команда приведена для примера. Версии пакетов и, соответственно, их номер постоянно обновляются. -Теперь возвращаемся в браузер и идем проверять работу плагина. Все должно работать - +Теперь возвращаемся в браузер и идём проверять работу плагина. Все должно работать ![](img/20240426110739.png) ![](img/20240426111052.png) diff --git a/docs/apps/flameshot/index.md b/docs/apps/flameshot/index.md index 980e572..e7b9799 100644 --- a/docs/apps/flameshot/index.md +++ b/docs/apps/flameshot/index.md @@ -1,23 +1,23 @@ --- title: Flameshot aggregation: - flatpak: org.flameshot.Flameshot - sisyphus: flameshot + flatpak: org.flameshot.Flameshot + sisyphus: flameshot appstream: - id: org.flameshot.Flameshot - name: Flameshot - icon: ./img/org.flameshot.Flameshot.png - summary: Кроссплатформенный и многофункциональный создатель скриншотов с открытым исходным кодом. - developer: - name: flameshot-org - metadata_license: - name: GNU GPLv3.0 - link: https://choosealicense.com/licenses/gpl-3.0/ - url: - homepage: https://flameshot.org/ - bugtracker: https://github.com/flameshot-org/flameshot/issues - translate: https://hosted.weblate.org/engage/flameshot/ - help: https://flameshot.org/docs/ + id: org.flameshot.Flameshot + name: Flameshot + icon: ./img/org.flameshot.Flameshot.png + summary: Кроссплатформенный и многофункциональный создатель скриншотов с открытым исходным кодом. + developer: + name: flameshot-org + metadata_license: + name: GNU GPLv3 + link: https://choosealicense.com/licenses/gpl-3.0/ + url: + homepage: https://flameshot.org/ + bugtracker: https://github.com/flameshot-org/flameshot/issues + translate: https://hosted.weblate.org/engage/flameshot/ + help: https://flameshot.org/docs/ --- # Flameshot @@ -27,7 +27,7 @@ Flameshot - это программа, предназначенная для с Помимо этого, программа предоставляет пользователю обширные возможности редактирования скриншотов. :::tip -На данный момент поддержка Wayland в Flameshot все еще является экспериментальной. +На данный момент поддержка Wayland в Flameshot все ещё является экспериментальной. Однако на практике все работает достаточно стабильно и корректно. ::: @@ -37,12 +37,15 @@ Flameshot - это программа, предназначенная для с --- + ## Настройка Для открытия меню с настройками можно воспользоваться командой ниже: + ```shell flameshot config ``` + Или же открыть программу из так называемого меню "пуск". После этого нужно нажать правой кнопкой мыши по логотипу Flameshot, который должен был появиться в трее, и выбрать пункт "Настройки". @@ -54,9 +57,11 @@ flameshot config :::tip Помимо вышеперечисленных способов, Flameshot можно конфигурировать прямо в терминале. Для того чтобы посмотреть доступные опции, выполните следующую команду: + ```shell flameshot config -h ``` + ::: ![Скриншот настроек Flameshot](./img/flameshot_settings.png 'Скриншот настроек Flameshot') @@ -64,41 +69,60 @@ flameshot config -h ### Аргументы Создание скриншота с помощью GUI инструмента: + ```shell flameshot gui ``` + :::info Теперь вы можете выбрать область захвата. -Если вы хотите сделать скриншот всего экрана, можно просто нажать сочетание клавиш `Ctrl+a`. +Если вы хотите сделать скриншот всего экрана, можно просто нажать сочетание клавиш [[Ctrl]] + [[A]]. ::: + --- + Захват в полноэкранном режиме: + ```shell flameshot full ``` + :::info Если у вас несколько мониторов, данная команда сделает скриншот из всех них! ::: + --- + Захват конкретного экрана: + ```shell flameshot screen -n screen_number ``` + :::info Нумерация экранов начинается с 0! ::: + --- + При помощи `-p` можно указать нужный путь для сохранения скриншота: + ```shell flameshot gui -p ~/Downloads ``` + --- + Опция `-d` позволяет добавить задержку в миллисекундах: + ```shell flameshot gui -d 2000 ``` + --- + Параметр `-c` копирует скриншот прямо в буфер обмена: + ```shell flameshot full -c ``` @@ -111,9 +135,11 @@ flameshot full -c :::tip Все представленные флаги можно комбинировать друг с другом. Например, для того чтобы сохранить скриншот в каталог "Downloads", а также скопировать его в буфер обмена, выполните следующую команду: + ```shell flameshot full -c -p ~/Downloads ``` + ::: ## Горячие клавиши @@ -121,26 +147,26 @@ flameshot full -c -p ~/Downloads Посмотреть доступные сочетания клавиш с их назначением можно в меню "Настройки" во вкладке "Горячие клавиши". Поэтому в данном разделе будут перечислены лишь несколько самых полезных из них. -| Действие | Комбинация | -|:-----------------------------------:|:--------------:| -| Отменить последнее изменение | Ctrl+z | -| Повторить последнее изменение | Ctrl+Shift+z | -| Копировать выделение в буфер обмена | Ctrl+c | -| Сохранить снимок экрана в файл | Ctrl+s | -| Покинуть захват экрана | Ctrl+q | -| Подтвердить захват | Enter | -| Выбрать весь экран | Ctrl+a | -| Выйти из захвата экрана | Esc | -| Показать/Скрыть боковую панель | Space (Пробел) | +| Комбинация | Действие | +| :--------------------------: | :---------------------------------: | +| [[Ctrl]] + [[Z]] | Отменить последнее изменение | +| [[Ctrl]] + [[Shift]] + [[Z]] | Повторить последнее изменение | +| [[Ctrl]] + [[C]] | Копировать выделение в буфер обмена | +| [[Ctrl]] + [[S]] | Сохранить снимок экрана в файл | +| [[Ctrl]] + [[Q]] | Покинуть захват экрана | +| [[Enter]] | Подтвердить захват | +| [[Ctrl]] + [[a]] | Выбрать весь экран | +| [[Esc]] | Выйти из захвата экрана | +| [[Space]] | Показать/Скрыть боковую панель | -## Настройка PrintScreen +## Настройка [[PrintScreen]] По умолчанию рассматриваемая программа не имеет никаких комбинаций клавиш для вызова захвата экрана в GNU\Linux. Однако их можно назначить в приложении "Параметры системы KDE5" в разделе "Комбинации клавиш" при помощи кнопки "Добавить команду". -Теперь вводим нужную команду в появившемся меню, а после назначаем для нее сочетание клавиш. +Теперь вводим нужную команду в появившемся меню, а после назначаем для неё сочетание клавиш. :::info -Комбинация клавиш будет называться, так же как и введенная команда. +Комбинация клавиш будет называться, так же как и введённая команда. При необходимости название можно изменить, нажав на иконку с карандашом возле самого сочетания. Для удаления рядом есть иконка с мусоркой. ::: diff --git a/docs/apps/haruna/index.md b/docs/apps/haruna/index.md index 088a7be..eed7bf7 100644 --- a/docs/apps/haruna/index.md +++ b/docs/apps/haruna/index.md @@ -1,22 +1,22 @@ --- title: Haruna aggregation: - flatpak: org.kde.haruna - sisyphus: kde5-haruna + flatpak: org.kde.haruna + sisyphus: kde5-haruna appstream: - id: org.kde.haruna - name: Haruna - icon: ./img/haruna-logo.svg - summary: Медиаплеер от KDE на основе Qt. - developer: - name: KDE - avatar: ./img/KDE_logo.png - metadata_license: - name: GNU GPLv3.0 or later - link: https://choosealicense.com/licenses/gpl-3.0/ - url: - homepage: https://haruna.kde.org/ - bugtracker: https://bugs.kde.org/enter_bug.cgi?product=haruna + id: org.kde.haruna + name: Haruna + icon: ./img/haruna-logo.svg + summary: Медиаплеер от KDE на основе Qt. + developer: + name: KDE + avatar: ./img/KDE_logo.png + metadata_license: + name: GNU GPLv3 or later + link: https://choosealicense.com/licenses/gpl-3.0/ + url: + homepage: https://haruna.kde.org/ + bugtracker: https://bugs.kde.org/enter_bug.cgi?product=haruna --- # Haruna @@ -29,15 +29,19 @@ Haruna — медиаплеер с открытым исходным кодом, :::tabs ==apt-get + ```shell su - apt-get update apt-get install kde5-haruna ``` + ==epm + ```shell epm -i kde5-haruna ``` + ::: @@ -45,20 +49,19 @@ epm -i kde5-haruna ### Комбинации клавиш Для того чтобы ускорить и, возможно, облегчить использование данного плеера можно использовать сочетания клавиш, которые при надобности легко изменяются в настройках. -Рассказывать о всех них нет смысла, поэтому ниже вы найдете таблицу с только самыми *нужными из них. - -| Описание | Комбинация | -|:-----------------------------------------:|:------------:| -| Переключить полноэкранный режим | f | -| Загрузить последний воспроизведенный файл | Ctrl+Shift+l | -| Выключить звук | m | -| Открыть файл | Ctrl+o | -| Открыть URL | Ctrl+Shift+o | -| Увеличить скорость воспроизведения | ] | -| Уменьшить скорость воспроизведения | [ | -| Восстановить скорость воспроизведения | BackSpace | -| Переключить отображение строки меню | Ctrl+m | -| Переключить отображение заголовка | Ctrl+h | +Рассказывать о всех них нет смысла, поэтому ниже вы найдёте таблицу с только самыми \*нужными из них. -*В данную таблицу не были включены самые базовые комбинации в духе воспроизведение/пауза, выход и так далее. +| Комбинация | Описание | +| :--------------------------: | :---------------------------------------: | +| [[F]] | Переключить полноэкранный режим | +| [[Ctrl]] + [[Shift]] + [[L]] | Загрузить последний воспроизведённый файл | +| [[m] | Выключить звук | +| [[Ctrl]] + [[O]] | Открыть файл | +| [[Ctrl]] + [[Shift]] + [[O]] | Открыть URL | +| [[\]]] | Увеличить скорость воспроизведения | +| [[\[]] | Уменьшить скорость воспроизведения | +| [[Backspace]] | Восстановить скорость воспроизведения | +| [[Ctrl]] + [[M]] | Переключить отображение строки меню | +| [[Ctrl]] + [[H]] | Переключить отображение заголовка | +\*В данную таблицу не были включены самые базовые комбинации в духе воспроизведение/пауза, выход и так далее. diff --git a/docs/apps/keepassxc/index.md b/docs/apps/keepassxc/index.md index a637963..7591f02 100644 --- a/docs/apps/keepassxc/index.md +++ b/docs/apps/keepassxc/index.md @@ -1,31 +1,31 @@ --- title: KeePassXC aggregation: - flatpak: org.keepassxc.KeePassXC - sisyphus: keepassxc + flatpak: org.keepassxc.KeePassXC + sisyphus: keepassxc appstream: - id: org.keepassxc.KeePassXC - name: KeePassXC - icon: ./img/keepassxc-logo.svg - summary: Кроссплатформенный менеджер паролей с открытым исходным кодом. - developer: - name: KeePassXC Team - metadata_license: - name: GNU GPLv3.0 - link: https://choosealicense.com/licenses/gpl-3.0/ - url: - homepage: https://keepassxc.org/ - bugtracker: https://github.com/keepassxreboot/keepassxc/issues - translate: https://www.transifex.com/keepassxc/keepassxc - help: https://keepassxc.org/docs + id: org.keepassxc.KeePassXC + name: KeePassXC + icon: ./img/keepassxc-logo.svg + summary: Кроссплатформенный менеджер паролей с открытым исходным кодом. + developer: + name: KeePassXC Team + metadata_license: + name: GNU GPLv3 + link: https://choosealicense.com/licenses/gpl-3.0/ + url: + homepage: https://keepassxc.org/ + bugtracker: https://github.com/keepassxreboot/keepassxc/issues + translate: https://www.transifex.com/keepassxc/keepassxc + help: https://keepassxc.org/docs --- # KeePassXC KeePassXC - менеджер паролей, позволяющий хранить все ваши логины и пароли в одном безопасном месте. -За счет своей кроссплатформенности, KeePassXC доступен для GNU/Linux, Windows и MacOS. +За счёт своей кроссплатформенности, KeePassXC доступен для GNU/Linux, Windows и MacOS. Также при помощи неофициального порта, он доступен и на Android. -Еще одной приятной особенностью рассматриваемого менеджера паролей является его одинаковый внешний вид на любой поддерживаемой платформе. +Ещё одной приятной особенностью рассматриваемого менеджера паролей является его одинаковый внешний вид на любой поддерживаемой платформе. ![Скриншот программы KeePassXC](./img/keepassxc_screen.png 'Скриншот программы KeePassXC') diff --git a/docs/apps/kiten/index.md b/docs/apps/kiten/index.md index 60bcdc2..55e50d1 100644 --- a/docs/apps/kiten/index.md +++ b/docs/apps/kiten/index.md @@ -1,24 +1,24 @@ --- title: Kiten aggregation: - flatpak: org.kde.kiten - sisyphus: kde5-kiten - snap: kiten + flatpak: org.kde.kiten + sisyphus: kde5-kiten + snap: kiten appstream: - id: org.kde.kiten - name: Kiten - icon: ./img/org.kde.kiten.svg - summary: Справочник и учебное пособие по изучению японского языка. - keywords: - - kdedeveloped - developer: - name: KDE Community - metadata_license: - name: GNU GPLv2.0+ - link: https://choosealicense.com/licenses/gpl-2.0/ - url: - homepage: https://apps.kde.org/ru/kiten/ - bugtracker: https://bugs.kde.org/enter_bug.cgi?product=Kiten + id: org.kde.kiten + name: Kiten + icon: ./img/org.kde.kiten.svg + summary: Справочник по японскому языку и учебное пособие. + keywords: + - kdedeveloped + developer: + name: KDE Community + metadata_license: + name: GNU GPLv2+ + link: https://choosealicense.com/licenses/gpl-2.0/ + url: + homepage: https://apps.kde.org/ru/kiten/ + bugtracker: https://bugs.kde.org/enter_bug.cgi?product=Kiten --- # Kiten @@ -29,4 +29,4 @@ Kiten — справочник и учебное пособие по изуче - \ No newline at end of file + diff --git a/docs/apps/libreoffice/index.md b/docs/apps/libreoffice/index.md index 353ac43..f295112 100644 --- a/docs/apps/libreoffice/index.md +++ b/docs/apps/libreoffice/index.md @@ -1,33 +1,33 @@ --- title: LibreOffice aggregation: - sisyphus: LibreOffice-still - flatpak: - id: org.libreoffice.LibreOffice - build: offical -appstream: + sisyphus: LibreOffice-still + flatpak: id: org.libreoffice.LibreOffice - name: LibreOffice - icon: ./img/org.libreoffice.LibreOffice.desktop.png - summary: Мощный офисный пакет LibreOffice - metadata_license: - name: MPL-v2.0 - link: https://www.mozilla.org/en-US/MPL/2.0/ - developer: - name: The Document Foundation - url: - homepage: https://www.libreoffice.org/ - bugtracker: - name: documentfoundation.org - link: https://bugs.documentfoundation.org/ - donation: https://www.libreoffice.org/donate/ - translate: https://www.libreoffice.org/community/localization/ + build: official +appstream: + id: org.libreoffice.LibreOffice + name: LibreOffice + icon: ./img/org.libreoffice.LibreOffice.desktop.png + summary: Мощный офисный пакет LibreOffice + metadata_license: + name: MPL-v2.0 + link: https://www.mozilla.org/en-US/MPL/2.0/ + developer: + name: The Document Foundation + url: + homepage: https://www.libreoffice.org/ + bugtracker: + name: documentfoundation.org + link: https://bugs.documentfoundation.org/ + donation: https://www.libreoffice.org/donate/ + translate: https://www.libreoffice.org/community/localization/ --- # LibreOffice LibreOffice — это мощный офисный пакет, который полностью совместим с 32 и 64-битными системами. -Он был переведен более чем на 30 языков, что делает его доступным для пользователей по всему миру. +Он был переведён более чем на 30 языков, что делает его доступным для пользователей по всему миру. LibreOffice поддерживает большинство популярных операционных систем, включая GNU/Linux, Microsoft Windows и Mac OS X. ## Установка из репозитория @@ -45,10 +45,12 @@ su - apt-get update apt-get install LibreOffice-still LibreOffice-still-kde5 ``` + ```shell[epm] epm -i LibreOffice-still LibreOffice-still-kde5 ``` -== Fresh + +== Fresh ::: code-group ```shell[apt-get] @@ -56,9 +58,11 @@ su - apt-get update apt-get install LibreOffice LibreOffice-kde5 ``` + ```shell[epm] epm -i LibreOffice LibreOffice-kde5 ``` + ::: :::info @@ -74,14 +78,17 @@ epm -i LibreOffice LibreOffice-kde5 В ALT Regular KDE вы можете установить их при помощи терминала: ::: code-group + ```shell[apt-get] su - apt-get update apt-get install fonts-ttf-ms ``` + ```shell[epm] epm -i fonts-ttf-ms ``` + ::: Существует несколько вариантов установки дополнительных шрифтов в офисный пакет LibreOffice. diff --git a/docs/apps/micro/index.md b/docs/apps/micro/index.md index c4a1657..a887463 100644 --- a/docs/apps/micro/index.md +++ b/docs/apps/micro/index.md @@ -1,28 +1,28 @@ --- title: Micro aggregation: - sisyphus: micro + sisyphus: micro appstream: - id: micro.desktop - name: Micro - icon: ./img/micro-logo.png - summary: Консольный текстовый редактор, сочетающий в себе простоту и функциональность. - developer: - name: Zachary Yedidia - nickname: zyedidia - metadata_license: - name: MIT - link: https://choosealicense.com/licenses/mit/ - url: - homepage: https://micro-editor.github.io/ - bugtracker: https://github.com/zyedidia/micro/issues - help: https://micro-editor.github.io/about.html + id: micro.desktop + name: Micro + icon: ./img/micro-logo.png + summary: Консольный текстовый редактор, сочетающий в себе простоту и функциональность. + developer: + name: Zachary Yedidia + nickname: zyedidia + metadata_license: + name: MIT + link: https://choosealicense.com/licenses/mit/ + url: + homepage: https://micro-editor.github.io/ + bugtracker: https://github.com/zyedidia/micro/issues + help: https://micro-editor.github.io/about.html --- # Micro -Micro - текстовый редактор с TUI интерфейсом, являющийся отличной альтернативой Nano. -Он предлагает пользователю привычные сочетания клавиш, простой и удобный интерфейс, расширяемость при помощи плагинов, качественную подсветку синтаксиса и это еще не все! +Micro - текстовый редактор с TUI, являющийся отличной альтернативой Nano. +Он предлагает пользователю привычные сочетания клавиш, простой и удобный интерфейс, расширяемость при помощи плагинов, качественную подсветку синтаксиса и это ещё не все! ![Скриншот редактора Micro](./img/micro-screen.png 'Скриншот редактора Micro') @@ -32,15 +32,19 @@ Micro - текстовый редактор с TUI интерфейсом, яв :::tabs ==apt-get + ```shell su - apt-get update apt-get install micro ``` + ==epm + ```shell epm -i micro ``` + ::: ### Установка с официального сайта @@ -50,6 +54,7 @@ su - curl https://getmic.ro | bash mv micro /usr/bin ``` + :::info Учтите, что в данном способе отсутствует возможность получения обновлений! Если вы хотите получать обновления автоматически, воспользуйтесь пакетом из репозитория. @@ -61,36 +66,40 @@ mv micro /usr/bin В Micro используются всем известные горячие клавиши, как и в любом другом GUI текстовом редакторе. В таблице ниже продемонстрированы их варианты "по умолчанию". -| Комбинация | Назначение | -|:----------:|:-----------------------------------------------------:| -| Ctrl+q | Выход из программы | -| Ctrl+s | Сохранить изменения в файле | -| Ctrl+x | Вырезать текст из файла | -| Ctrl+v | Вставить текст в файл | -| Ctrl+k | Вырезать строку из файла | -| Ctrl+z | Отменить действие | -| Ctrl+f | Поиск по файлу (Ctrl+n = дальше, Ctrl+p = предыдущий) | -| Ctrl+a | Выбрать все | -| Ctrl+e | Командная строка | -| Ctrl+t | Открыть новую вкладку | -| Alt+, | Предыдущая вкладка | -| Alt+. | Следующая вкладка | -| Ctrl+g | Открыть раздел помощи | -| Alt+g | Посмотреть горячие клавиши | -| Ctrl+o | Открыть файл | -| Ctrl+y | Вернутся к предыдущему действию | -| Ctrl+d | Продублировать строку | +| Комбинация | Назначение | +| :--------: | :---------------------------------------------------: | +| Ctrl+q | Выход из программы | +| Ctrl+s | Сохранить изменения в файле | +| Ctrl+x | Вырезать текст из файла | +| Ctrl+v | Вставить текст в файл | +| Ctrl+k | Вырезать строку из файла | +| Ctrl+z | Отменить действие | +| Ctrl+f | Поиск по файлу (Ctrl+n = дальше, Ctrl+p = предыдущий) | +| Ctrl+a | Выбрать все | +| Ctrl+e | Командная строка | +| Ctrl+t | Открыть новую вкладку | +| Alt+, | Предыдущая вкладка | +| Alt+. | Следующая вкладка | +| Ctrl+g | Открыть раздел помощи | +| Alt+g | Посмотреть горячие клавиши | +| Ctrl+o | Открыть файл | +| Ctrl+y | Вернутся к предыдущему действию | +| Ctrl+d | Продублировать строку | :::info Командная строка Micro поддерживает не только некоторые внешние команды, но и свои собственные. Например, чтобы разделить окно по горизонтали, нужно выполнить следующую команду: + ```shell hsplit filename ``` + По вертикали: + ```shell vsplit filename ``` + :::tip Переключаться между частями можно с помощью Ctrl + w или мышки. ::: @@ -102,26 +111,32 @@ vsplit filename Чтобы назначить Micro текстовым редактором "по умолчанию" существует несколько способов: 1. При помощи файла .bashrc: + ```shell echo "export EDITOR="micro"" >> ~/.bashrc && source ~/.bashrc ``` + :::info Файл ".bashrc" выполняется при инициализации сеанса интерактивной оболочки. То есть при запуске терминала через графический интерфейс KDE будет использоваться данный файл. ::: 2. При помощи файла .bash_profile: + ```shell echo "export EDITOR="micro"" >> ~/.bash_profile && source ~/.bash_profile ``` + :::info Если планируется подключаться к сеансам с помощью login оболочек (например, вход по SSH), можно добавить переменную окружения в рассматриваемый файл. ::: 3. При помощи файла /etc/environment: + ```shell echo "export EDITOR="micro"" >> /etc/environment && source /etc/environment ``` + :::info Этот способ предназначен для изменения значения переменной окружения глобально, то есть у всех пользователей. ::: @@ -129,9 +144,11 @@ echo "export EDITOR="micro"" >> /etc/environment && source /etc/environment :::tip Способы, приведенные выше, делают значение переменной окружения постоянной. Если же вы хотите установить ее только на время текущего сеанса оболочки, воспользуйтесь командой ниже: + ```shell export EDITOR=micro ``` + ::: ### Конфигурация Micro @@ -144,16 +161,23 @@ export EDITOR=micro Нужно всего лишь указать желаемый параметр и значение для него. Например, чтобы включить перенос строк, который по умолчанию отключен, добавьте в указанный файл следующий код: + ```shell "softwrap": true, ``` + --- + Для отображения полосы прокрутки укажите это: + ```shell "scrollbar": true, ``` + --- + Включить поиск по файлу без учета регистра можно так: + ```shell "ignorecase": true, ``` @@ -161,6 +185,7 @@ export EDITOR=micro :::tip Параметры должны находится внутри фигурных скобок, которые присутствуют в файле изначально. Если вы добавили в конфигурацию все продемонстрированные опции, у вас получится примерно такая картина: + ```shell { "softwrap": true, @@ -168,7 +193,9 @@ export EDITOR=micro "ignorecase": true, } ``` + Спустя некоторое время файл обновиться автоматически и примет подобный вид: + ```shell { "scrollbar": true, @@ -176,6 +203,7 @@ export EDITOR=micro "ignorecase": true, } ``` + ::: :::info @@ -183,7 +211,7 @@ export EDITOR=micro На самом деле их там много, что перечислить все не хватит никаких сил. Однако это получилось у разработчиков Micro, поэтому подробно узнать о всех опциях программы можно [здесь](https://github.com/zyedidia/micro/blob/master/runtime/help/options.md). -P.S: Учтите, что вся документация написанa на английском языке. +P.S: Учтите, что вся документация написана на английском языке. Если для вас это является проблемой, можно использовать переводчики, которые в нынешних реалиях способны достаточно точно перевести нужную информацию. ::: @@ -194,6 +222,7 @@ P.S: Учтите, что вся документация написанa на :::tabs ==Wayland :::code-group + ```shell[apt-get] su - apt-get update @@ -206,6 +235,7 @@ epm -i wl-clipboard ==X11 :::code-group + ```shell[apt-get] su - apt-get update @@ -215,6 +245,7 @@ apt-get install xclip ```shell[epm] epm -i xclip ``` + P.S: Вместо `xclip` можно использовать `xsel`. ::: @@ -233,19 +264,24 @@ P.S: Вместо `xclip` можно использовать `xsel`. ::: Например, чтобы поменять функционал комбинаций `Ctrl+z` и `Ctrl+y` местами, пропишите в файле следующее: + ```shell { "Ctrl-y": "Undo", "Ctrl-z": "Redo", } ``` + --- + Помимо изменения уже существующих сочетаний, можно создавать свои собственные: + ```shell { "Alt-s": "Save,Quit", } ``` + :::info В данном примере создается горячая клавиша `Alt+s`, при нажатии которой произойдет сохранение изменений в файле с последующим выходом из редактора. ::: @@ -260,9 +296,11 @@ P.S: Вместо `xclip` можно использовать `xsel`. ### Изменение внешнего вида Чтобы изменить цветовую схему, нажмите `Ctrl-e` в Micro, чтобы вызвать командую строку, и введите в нее следующее: + ```shell set colorscheme twilight ``` + :::info Twilight можно заменить на любую другую доступную тему. В примере приведена тема для терминалов, поддерживающих 256 цветов. @@ -285,9 +323,11 @@ Twilight можно заменить на любую другую доступн Для лучшего понимания представленной информации разберем работу с плагинами на примере того, что добавляет файловый менеджер в Micro. Чтобы установить его, выполните указанную ниже команду в терминале: + ```shell micro -plugin install filemanager ``` + :::info Теперь в редакторе доступна возможность взаимодействия с деревом каталогов при помощи команды `tree`, которая вводится в меню, открывающееся по нажатию `Ctrl+e`. @@ -307,9 +347,11 @@ P.S: По умолчанию на странице плагинов от Micro ### Удаление Если же вы захотели удалить какой-либо плагин, достаточно всего лишь выполнить следующую команду в терминале: + ```shell micro -plugin remove filemanager ``` + :::info Вместо `filemanager` укажите желаемое расширение. ::: diff --git a/docs/apps/nano/index.md b/docs/apps/nano/index.md index 717297f..1d40d20 100644 --- a/docs/apps/nano/index.md +++ b/docs/apps/nano/index.md @@ -1,19 +1,19 @@ --- title: Nano aggregation: - sisyphus: nano + sisyphus: nano appstream: - name: Nano - icon: ./img/nano-logo.png - summary: Консольный текстовый редактор с открытым исходным кодом. - developer: - name: GNU - avatar: ./img/gnu-logo.png - metadata_license: - name: GNU GPLv3.0 - link: https://choosealicense.com/licenses/gpl-3.0/ - url: - homepage: https://www.nano-editor.org/ + name: Nano + icon: ./img/nano-logo.png + summary: Консольный текстовый редактор с открытым исходным кодом. + developer: + name: GNU + avatar: ./img/gnu-logo.png + metadata_license: + name: GNU GPLv3 + link: https://choosealicense.com/licenses/gpl-3.0/ + url: + homepage: https://www.nano-editor.org/ --- # Nano @@ -26,45 +26,61 @@ Nano - консольный текстовый редактор, подходя :::tabs ==apt-get + ```shell su - apt-get update apt-get install nano ``` + ==epm + ```shell epm -i nano ``` + ::: ## Возможности -Рассматриваемыей текстовый редактор имеет достаточно много возможностей, которые по умолчанию отключены. Из-за этого человек, не знающий о них, использует довольно-таки ограниченную версию Nano. Чтобы исправить это, достаточно всего лишь указать нужные флаги при запуске программы. Ниже представлены доступные опции для расширения возможностей Nano. +Рассматриваемый текстовый редактор имеет достаточно много возможностей, которые по умолчанию отключены. Из-за этого человек, не знающий о них, использует довольно-таки ограниченную версию Nano. Чтобы исправить это, достаточно всего лишь указать нужные флаги при запуске программы. Ниже представлены доступные опции для расширения возможностей Nano. Активировать поддержку мыши: + ```shell nano -m file_name ``` + --- + Отобразить полосу прокрутки: + ```shell nano -q file_name ``` + --- + Добавить нумерацию строк: + ```shell nano -l file_name ``` + :::info Вместо `-l` можно использовать `--linenumbers`. В уже открытом файле можно использовать сочетание клавиш `Alt + n` для переключения нумерации строк. ::: + --- + Активировать мини-бар: + ```shell nano --minibar file_name ``` + :::info Данная опция объединяет строки состояния снизу и сверху в общий мини-бар внизу. ::: @@ -72,11 +88,15 @@ nano --minibar file_name :::tip При нажатии `Alt + c` появится дополнительная информация. ::: + --- + Сделать редактор минималистичным: + ```shell nano -0 file_name ``` + :::info Данный параметр скроет заголовок, строку состояния и раздел справки. Важные сообщения будут появляться в нижней части строки состояния и исчезать через 1,5 секунды после нажатия любой клавиши. ::: @@ -86,8 +106,11 @@ nano -0 file_name `Alt + X` переключает раздел справки внизу. ::: + --- + Автоматически сохранять файл при выходе: + ```shell nano -t file_name ``` @@ -95,85 +118,126 @@ nano -t file_name :::info Теперь файлы будут сохраняться автоматически без отображения подсказок с просьбой сохранить файл, подтвердить выход и так далее. ::: + --- + Автоматически создавать резервные копии файла: + ```shell nano -B file_name ``` + :::info Копия будет сохранена в том же каталоге, что и текущий файл с тем же названием с символом `~` в конце. ::: + --- + Разместить курсор на искомом слове: + ```shell nano +c/test file_name ``` + :::info Файл откроется с курсором на первом совпадении. В данном случае ищется слово test. При использовании символа `+` поиск указанного слова начинается с начала текста. Буква `c` добавляет поиск с учетом регистра. ::: + --- + Разместить курсор в указанной позиции: + ```shell nano +line,columns file_name ``` + :::info Например: + ```shell nano +10,5 ~/.bashrc ``` + Курсор будет расположен на десятой строке и пятом столбце (символе). ::: + --- + Открыть файл в режиме "только для чтения": + ```shell nano -v file_name ``` + --- + Установить размер табуляции: + ```shell nano -T 4 file_name ``` + :::tip В данном примере табуляция равна 4 проблемам. ::: + --- + Всегда показывать положение курсора: + ```shell nano -c file_name ``` + --- + Указать каталог для резервной копии: + ```shell nano -C ~/backups file_name ``` + :::info Каталог для хранения резервных копий должен существовать заранее, иначе Nano сообщит, что каталог недопустим. ::: + --- + Конвертировать табуляции в пробелы: + ```shell nano -E file_name ``` + --- + Включить поддержку редактирования нескольких файлов: + ```shell nano -F file_name ``` + --- + Запоминать и восстанавливать позицию курсора во время последнего редактирования: + ```shell nano -P file_name ``` + --- + :::warning В данном блоке были продемонстрированы многие, но далеко не все параметры текстового редактора Nano. Чтобы узнать об остальных опциях, выполните команду ниже: + ```shell nano -h ``` + ::: ## Сочетания клавиш @@ -182,21 +246,21 @@ nano -h Однако из-за их сокращения некоторые комбинации могут быть не понятными. Поэтому ниже вы увидите горячие клавиши, которые появляются при запуске текстового редактора Nano с более понятными описаниями. -| Комбинация | Описание | -|:----------:|:--------------------------------------------------------:| -| ^ g | Отобразить все доступные сочетания клавиш с их описанием | -| ^ o | Сохранить изменения в файле | -| ^ w | Поиск по тексту | -| ^ k | Вырезать текст из файла | -| ^ j | Отформатировать текст | -| ^ c | Отобразить текущую позицую курсора в виде данных | -| M-u | Отменить действие | -| ^x | Выйти из Nano | -| ^r | Прочитать файл | -| ^\ | Заменить текст | -| ^u | Вставить текст в файл | -| ^t | Выполнить команду и записать результат в файл | -| M-e | Вернутся к предыдущему действию | +| Комбинация | Описание | +| :--------: | :------------------------------------------------------: | +| ^ g | Отобразить все доступные сочетания клавиш с их описанием | +| ^ o | Сохранить изменения в файле | +| ^ w | Поиск по тексту | +| ^ k | Вырезать текст из файла | +| ^ j | Отформатировать текст | +| ^ c | Отобразить текущую позицию курсора в виде данных | +| M-u | Отменить действие | +| ^x | Выйти из Nano | +| ^r | Прочитать файл | +| ^\ | Заменить текст | +| ^u | Вставить текст в файл | +| ^t | Выполнить команду и записать результат в файл | +| M-e | Вернутся к предыдущему действию | :::info Символ `^` обозначает клавишу `Ctrl`. @@ -215,26 +279,32 @@ nano -h Чтобы назначить Nano текстовым редактором "по умолчанию" существует несколько способов: 1. При помощи файла .bashrc: + ```shell echo "export EDITOR="nano"" >> ~/.bashrc && source ~/.bashrc ``` + :::info Файл ".bashrc" выполняется при инициализации сеанса интерактивной оболочки. То есть при запуске терминала через графический интерфейс KDE будет использоваться данный файл. ::: 2. При помощи файла .bash_profile: + ```shell echo "export EDITOR="nano"" >> ~/.bash_profile && source ~/.bash_profile ``` + :::info Если планируется подключаться к сеансам с помощью login оболочек (например, вход по SSH), можно добавить переменную окружения в рассматриваемый файл. ::: 3. При помощи файла /etc/environment: + ```shell echo "export EDITOR="nano"" >> /etc/environment && source /etc/environment ``` + :::info Этот способ предназначен для изменения значения переменной окружения глобально, то есть у всех пользователей. ::: @@ -242,9 +312,11 @@ echo "export EDITOR="nano"" >> /etc/environment && source /etc/environment :::tip Способы, приведенные выше, делают значение переменной окружения постоянной. Если же вы хотите установить ее только на время текущего сеанса оболочки, воспользуйтесь командой ниже: + ```shell export EDITOR=nano ``` + ::: ### Конфигурация Nano @@ -254,6 +326,7 @@ export EDITOR=nano В частности, в указанном файле настраиваются функции, доступные при использовании Nano без указания дополнительных флагов. Например, чтобы не указывать опцию `-l` при каждом запуске программы, достаточно раскомментировать (убрать символ `#` в начале строки) следующий параметр: + ```shell set linenumbers ``` diff --git a/docs/apps/plan/index.md b/docs/apps/plan/index.md index 678e04c..18efd26 100644 --- a/docs/apps/plan/index.md +++ b/docs/apps/plan/index.md @@ -1,22 +1,22 @@ --- title: Plan aggregation: - sisyphus: calligra-plan + sisyphus: calligra-plan appstream: - id: org.kde.calligraplan.desktop - name: Plan - icon: ./img/org.kde.calligraplan.svg - summary: Приложение по управлению проектами. - keywords: - - kdedeveloped - developer: - name: KDE Community - metadata_license: - name: GNU GPLv2.0+ - link: https://choosealicense.com/licenses/gpl-2.0/ - url: - homepage: https://apps.kde.org/ru/calligraplan/ - bugtracker: https://bugs.kde.org/enter_bug.cgi?format=guided&product=calligraplan + id: org.kde.calligraplan.desktop + name: Plan + icon: ./img/org.kde.calligraplan.svg + summary: Приложение по управлению проектами. + keywords: + - kdedeveloped + developer: + name: KDE Community + metadata_license: + name: GNU GPLv2+ + link: https://choosealicense.com/licenses/gpl-2.0/ + url: + homepage: https://apps.kde.org/ru/calligraplan/ + bugtracker: https://bugs.kde.org/enter_bug.cgi?format=guided&product=calligraplan --- # Plan @@ -26,11 +26,11 @@ Plan — приложение по управлению проектами, пр Возможности: - Множество режимов просмотра: диаграмма Ганта, режим просмотра ресурсов, режим просмотра счетов -- Использование стандартных структур: Структурная декомпозиция работ (СДР), иерархическая структура ресурсов (RBS), структура распредения затрат (CBS) +- Использование стандартных структур: Структурная декомпозиция работ (СДР), иерархическая структура ресурсов (RBS), структура распределения затрат (CBS) - Настраиваемый уровень детализации на диаграмме Ганта -- Поддержка итоговых задач, задач и этапов +- Поддержка итоговых задач и этапов - Настраиваемые ограничения планирования ![Скриншот программы](./img/screenshot.png) - \ No newline at end of file + diff --git a/docs/apps/plasmatube/index.md b/docs/apps/plasmatube/index.md index 164c91f..9710878 100644 --- a/docs/apps/plasmatube/index.md +++ b/docs/apps/plasmatube/index.md @@ -1,22 +1,22 @@ --- title: PlasmaTube aggregation: - flatpak: org.kde.plasmatube + flatpak: org.kde.plasmatube appstream: - id: org.kde.plasmatube - name: PlasmaTube - icon: ./img/org.kde.plasmatube.svg - summary: Приложение для просмотра видео с YouTube на телефоне или компьютере. - keywords: - - kdedeveloped - developer: - name: KDE Community - metadata_license: - name: GNU GPLv3.0 - link: https://choosealicense.com/licenses/gpl-3.0/ - url: - homepage: https://apps.kde.org/ru/plasmatube/ - bugtracker: https://bugs.kde.org/enter_bug.cgi?product=PlasmaTube + id: org.kde.plasmatube + name: PlasmaTube + icon: ./img/org.kde.plasmatube.svg + summary: Приложение для просмотра видео с YouTube на телефоне или компьютере. + keywords: + - kdedeveloped + developer: + name: KDE Community + metadata_license: + name: GNU GPLv3 + link: https://choosealicense.com/licenses/gpl-3.0/ + url: + homepage: https://apps.kde.org/ru/plasmatube/ + bugtracker: https://bugs.kde.org/enter_bug.cgi?product=PlasmaTube --- # PlasmaTube diff --git a/docs/apps/qbittorrent/index.md b/docs/apps/qbittorrent/index.md index dd5b63e..94542ca 100644 --- a/docs/apps/qbittorrent/index.md +++ b/docs/apps/qbittorrent/index.md @@ -1,50 +1,49 @@ --- title: qBittorrent aggregation: - flatpak: org.qbittorrent.qBittorrent - sisyphus: qbittorrent + flatpak: org.qbittorrent.qBittorrent + sisyphus: qbittorrent appstream: - id: org.qbittorrent.qBittorrent - name: qBittorrent - icon: ./img/qbittorrent-logo.svg - summary: Cвободный кроссплатформенный клиент файлообменной сети BitTorrent. - developer: - name: qBittorrent Community - metadata_license: - name: GNU GPLv3 + OpenSSL - link: https://github.com/qbittorrent/qBittorrent/blob/master/COPYING/ - url: - homepage: https://www.qbittorrent.org/ - bugtracker: https://github.com/qbittorrent/qBittorrent/issues/ - translate: https://github.com/qbittorrent/qBittorrent/wiki/How-to-translate-qBittorrent + id: org.qbittorrent.qBittorrent + name: qBittorrent + icon: ./img/qbittorrent-logo.svg + summary: Свободный кроссплатформенный клиент файлообменной сети BitTorrent. + developer: + name: qBittorrent Community + metadata_license: + name: GNU GPLv3 + OpenSSL + link: https://github.com/qbittorrent/qBittorrent/blob/master/COPYING/ + url: + homepage: https://www.qbittorrent.org/ + bugtracker: https://github.com/qbittorrent/qBittorrent/issues/ + translate: https://github.com/qbittorrent/qBittorrent/wiki/How-to-translate-qBittorrent gallery: - 1: - title: Галерея - type: silentbox - images: - https://www.youtube.com/watch?v=XPe_MSCHBQ8: - description: Видео фиулвифдцтдл - download: true - autoplay: true - controls: false - https://www.youtube.com/watch?v=g3xIvgnrWVk: Что угодго, просто чтобы был ключ, если не нужны параметры - https://www.youtube.com/watch?v=XPe_MSC1BQ8: - description: Видео фиулвфцафцацвфцвфцифдцтдл - download: true - autoplay: true - controls: false - lazyload: true - 2: - title: Ой, а это вторая галерея - type: silentbox - images: - ./img/screenshot.png: 1 - ./img/screenshot copy.png: - download: true - ./img/screenshot copy 2.png: - description: Очередной скриншот - lazyload: true - + 1: + title: Галерея + type: silentbox + images: + https://www.youtube.com/watch?v=XPe_MSCHBQ8: + description: Видео фиулвифдцтдл + download: true + autoplay: true + controls: false + https://www.youtube.com/watch?v=g3xIvgnrWVk: Что угодно, просто чтобы был ключ, если не нужны параметры + https://www.youtube.com/watch?v=XPe_MSC1BQ8: + description: Видео фиулвфцафцацвфцвфцифдцтдл + download: true + autoplay: true + controls: false + lazyload: true + 2: + title: Ой, а это вторая галерея + type: silentbox + images: + ./img/screenshot.png: 1 + ./img/screenshot copy.png: + download: true + ./img/screenshot copy 2.png: + description: Очередной скриншот + lazyload: true --- # qBittorrent @@ -52,4 +51,4 @@ gallery: qBittorrent — это бесплатный и открытый клиент BitTorrent, который позволяет пользователям загружать и скачивать файлы через протокол BitTorrent. - \ No newline at end of file + diff --git a/docs/apps/steam/index.md b/docs/apps/steam/index.md index d56ab88..e9b3bcb 100644 --- a/docs/apps/steam/index.md +++ b/docs/apps/steam/index.md @@ -1,31 +1,31 @@ --- title: Steam aggregation: - flatpak: - id: com.valvesoftware.Steam - build: unoffical - sisyphus: steam - epm: - play: - id: steam - build: unoffical + flatpak: + id: com.valvesoftware.Steam + build: unofficial + sisyphus: steam + epm: + play: + id: steam + build: unofficial appstream: - id: steam.desktop - name: Steam - icon: ./img/steam-logo.svg - summary: Клиент для платформы Steam - keywords: - - proprietary - - restrictions - developer: - name: Valve Software - avatar: https://avatars.githubusercontent.com/u/3082775?s=200&v=4 - metadata_license: - name: Собственная - link: https://store.steampowered.com/eula/243950_eula_0 - url: - homepage: https://store.steampowered.com/ - bugtracker: https://github.com/ValveSoftware/steam-for-linux/issues + id: steam.desktop + name: Steam + icon: ./img/steam-logo.svg + summary: Клиент для платформы Steam + keywords: + - proprietary + - restrictions + developer: + name: Valve Software + avatar: https://avatars.githubusercontent.com/u/3082775?s=200&v=4 + metadata_license: + name: Собственная + link: https://store.steampowered.com/eula/243950_eula_0 + url: + homepage: https://store.steampowered.com/ + bugtracker: https://github.com/ValveSoftware/steam-for-linux/issues --- # Steam @@ -54,11 +54,11 @@ Proton — интегрированный со Steam Play инструмент, Запустите клиент и найдите в верхней части приложения надпись Steam. При нажатии на неё откроется контекстное меню, выберите пункт «Настройки». В настройках перейдите в раздел совместимость и выберите: -* Включить Steam Play, для поддерживаемых продуктов -* Включить Steam Play для других продуктов -* Включить другие игры с помощью `Proton 8.x.x` +- Включить Steam Play, для поддерживаемых продуктов +- Включить Steam Play для других продуктов +- Включить другие игры с помощью `Proton 8.x.x` -Включить поддержку Steam Play возможно и для конкретной игры. В разделе **БИБЛИОТЕКА** в перечне с играми выберите из списка игру, вызовите контекстное меню правой кликом мышки и выберите пункт свойства. В окне настроек в разделе **Совместимость**, активируйте опции **Принудительно использовать выбранный инструмент совместимости Steam Play** и выберите нужную вам ветку **Proton** +Включить поддержку Steam Play возможно и для конкретной игры. В разделе **БИБЛИОТЕКА** в перечне с играми выберите из списка игру, вызовите контекстное меню правой кликом мышки и выберите пункт свойства. В окне настроек в разделе **Совместимость**, активируйте опции **Принудительно использовать выбранный инструмент совместимости Steam Play** и выберите нужную вам ветку **Proton** ![Steam Play](./img/steam_play.gif) @@ -77,9 +77,11 @@ su - apt-get update apt-get install vulkan-amdgpu xorg-drv-amdgpu i586-xorg-drv-amdgpu ``` + ```shell[epm] epm -i vulkan-amdgpu xorg-drv-amdgpu i586-xorg-drv-amdgpu ``` + ::: ## Запуск Steam для графических устройств от Intel @@ -93,9 +95,11 @@ su - apt-get update apt-get install i586-libGL i586-libGLU i586-xorg-dri-intel ``` + ```shell[epm] epm -i i586-libGL i586-libGLU i586-xorg-dri-intel ``` + ::: ## Рекомендации и обходные решения @@ -105,6 +109,7 @@ epm -i i586-libGL i586-libGLU i586-xorg-dri-intel Проверьте что при запуске игры в вашей системе выбрана английская раскладка клавиатуры. Если это не так, то закройте игру, поменяйте раскладку на английскую и запустите игру заново. Так-же можно добавить параметр запуска к игре, это должно решить проблему: + ```shell -input_button_code_is_scan_code ``` @@ -113,7 +118,7 @@ epm -i i586-libGL i586-libGLU i586-xorg-dri-intel ### Залипают клавиши (stuck down) в играх Steam Play (Proton) -Вы можете использовать xset утилиту, которая работает на X.org уровне в средах рабочего стола. +Вы можете использовать `xset` утилиту, которая работает на X.org уровне в средах рабочего стола. Отключить повторение с клавиатуры: @@ -122,7 +127,8 @@ xset r off ``` :::info -Как правило, данная проблема связанна с ошибкой в библиотеке Ibus.) +Как правило, данная проблема связанна с ошибкой в библиотеке Ibus. + Данный метод работает как в Xorg, так и Wayland сессиях. ::: @@ -132,7 +138,7 @@ xset r off xset r on ``` -### Зависание мышки при движении в играх +### Зависание мышки при движении в играх Данная проблема обусловлена подключением «Неизвестного монитора» в списке устройств у пользователей NVIDIA c проприетарными драйверами версии 535.xx. Временное решение описано на станице [NVIDIA](https://alt-gnome.wiki/nvidia.html#%C2%AB%D0%BD%D0%B5%D0%B8%D0%B7%D0%B2%D0%B5%D1%81%D1%82%D0%BD%D1%8B%D0%B8-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%C2%BB-%D0%B2-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D0%BA%D0%B0%D1%85-%D0%B4%D0%B8%D1%81%D0%BF%D0%BB%D0%B5%D0%B5%D0%B2-%D0%B2-%D1%81%D0%B5%D1%81%D1%81%D0%B8%D0%B8-wayland) @@ -148,4 +154,4 @@ xset r on ```shell flatpak override --user --env=STEAM_FORCE_DESKTOPUI_SCALING=1.25 com.valvesoftware.Steam -``` \ No newline at end of file +``` diff --git a/docs/developers/python/index.md b/docs/developers/python/index.md index 636b43b..6d8ac3b 100644 --- a/docs/developers/python/index.md +++ b/docs/developers/python/index.md @@ -18,9 +18,11 @@ apt-get update apt-get install gcc-c++ zlib-devel libssl-devel libsqlite3-devel libffi-devel exit ``` + ```shell[epm] epm -i gcc-c++ zlib-devel libssl-devel libsqlite3-devel libffi-devel ``` + ::: ## Установка из исходного кода @@ -59,8 +61,6 @@ exit `VERSION` — необходимая версия Python. \ `--prefix` — устанавливает директорию для сборки, можно убрать. - - :::info При сборке Python в собственную директорию, необходимо добавить её в переменную PATH. ::: @@ -75,12 +75,14 @@ apt-get update apt-get install pip exit ``` + ```shell[epm] epm -i pip ``` + ::: -## Использование venv +## Использование `venv` ### Переходим в папку проекта: @@ -94,4 +96,4 @@ cd /path/to/project/ python3.10 -m venv venv source venv/bin/activate pip install -U pip -``` \ No newline at end of file +``` diff --git a/docs/developers/python/poetry/index.md b/docs/developers/python/poetry/index.md index bb0e7c2..c640e59 100644 --- a/docs/developers/python/poetry/index.md +++ b/docs/developers/python/poetry/index.md @@ -28,7 +28,8 @@ poetry new NAME `NAME` — название проекта. -::: details Пример архитектуры +::: details Пример архитектуры + ```shell new_project ├── new_project @@ -38,6 +39,7 @@ new_project └── tests └── __init__.py ``` + ::: ### Инициализация существующего проекта: @@ -108,20 +110,20 @@ poetry config OPTION VALUE `OPTION` — параметр. \ `VALUE` — значение. -| Параметр | Тип | Описание | -| :----------------------------------------|:--------|:--------------------------------------------------------------------------- | -| cache-dir | string | Путь к каталогу кэша, используемому Poetry | -| experimental.system-git-client | boolean | Использовать серверную часть системного клиента git | -| installer.max-workers | int | Максимальное количество рабочих при использовании параллельного установщика | -| installer.modern-installation | boolean | Более современный и быстрый метод установки пакета | -| installer.no-binary | boolean | Не устанавливать бинарные зависимости | -| installer.parallel | boolean | Параллельное выполнение при использовании нового установщика | -| virtualenvs.create | boolean | Создание venv при его отсутствие | -| virtualenvs.in-project | boolean | Создавать venv в каталоге проекта | -| virtualenvs.options.always-copy | boolean | Создавать файлы окружения вместо ссылок | -| virtualenvs.options.no-pip | boolean | Не устанавливать pip | -| virtualenvs.options.no-setuptools | boolean | Не устанавливать setuptools | -| virtualenvs.options.system-site-packages | boolean | Использовать системные зависимости | -| virtualenvs.path | string | Каталог для хранения venv | -| virtualenvs.prefer-active-python | boolean | Использовать текущий активированный Python для venv | -| virtualenvs.prompt | string | Строка, которая будет отображаться при активации venv | +| Параметр | Тип | Описание | +| :----------------------------------------- | :------ | :-------------------------------------------------------------------------- | +| `cache-dir` | string | Путь к каталогу кэша, используемому Poetry | +| `experimental.system-git-client` | boolean | Использовать серверную часть системного клиента Git | +| `installer.max-workers` | int | Максимальное количество рабочих при использовании параллельного установщика | +| `installer.modern-installation` | boolean | Более современный и быстрый метод установки пакета | +| `installer.no-binary` | boolean | Не устанавливать бинарные зависимости | +| `installer.parallel` | boolean | Параллельное выполнение при использовании нового установщика | +| `virtualenvs.create` | boolean | Создание venv при его отсутствие | +| `virtualenvs.in-project` | boolean | Создавать venv в каталоге проекта | +| `virtualenvs.options.always-copy` | boolean | Создавать файлы окружения вместо ссылок | +| `virtualenvs.options.no-pip` | boolean | Не устанавливать pip | +| `virtualenvs.options.no-setuptools` | boolean | Не устанавливать setuptools | +| `virtualenvs.options.system-site-packages` | boolean | Использовать системные зависимости | +| `virtualenvs.path` | string | Каталог для хранения venv | +| `virtualenvs.prefer-active-python` | boolean | Использовать текущий активированный Python для venv | +| `virtualenvs.prompt` | string | Строка, которая будет отображаться при активации venv | diff --git a/docs/developers/python/qt6-app/index.md b/docs/developers/python/qt6-app/index.md index c2235d7..b34463a 100644 --- a/docs/developers/python/qt6-app/index.md +++ b/docs/developers/python/qt6-app/index.md @@ -15,11 +15,13 @@ mkdir test_qt cd test_qt pip3 install pyqt6 ``` + ```shell[poetry] poetry new test_qt cd test_qt poetry add pyqt6 ``` + ::: ### Вставляем код в файл main.py: @@ -27,9 +29,11 @@ poetry add pyqt6 ```shell nano main.py ``` + ::: info Обратите внимание В данном примере мы используем редактор `nano`, вы же можете использовать любой другой. ::: + ```python from PyQt6.QtWidgets import QApplication, QLabel, QMainWindow, QPushButton from PyQt6.QtGui import QDesktopServices @@ -42,14 +46,14 @@ class MainWindow(QMainWindow): self.setWindowTitle("Пример") self.setMinimumSize(250, 200) self.setMaximumSize(250, 200) - + label = QLabel("Привет, мир", self) label.move(78, 50) button = QPushButton("ALT KDE Wiki", self) button.move(75, 100) button.clicked.connect(self.open_website) - + def open_website(self): url = QUrl("https://alt-kde.wiki") QDesktopServices.openUrl(url) @@ -69,10 +73,12 @@ if __name__ == "__main__": ```shell[pip] python3 main.py ``` + ```shell[poetry] poetry shell python3 main.py ``` + ::: -![qt-app](./img/qt-app.png) \ No newline at end of file +![qt-app](./img/qt-app.png) diff --git a/docs/developers/rust/index.md b/docs/developers/rust/index.md index f4f13e4..65cee79 100644 --- a/docs/developers/rust/index.md +++ b/docs/developers/rust/index.md @@ -30,7 +30,8 @@ cargo new NAME `NAME` — название проекта. -::: details Пример архитектуры +::: details Пример архитектуры + ```shell new_project ├── Cargo.lock @@ -40,6 +41,7 @@ new_project └── src/ └── main.rs ``` + ::: ### Указание зависимостей: @@ -66,4 +68,4 @@ cargo build --release ```shell cargo run -``` \ No newline at end of file +``` diff --git a/docs/download/index.md b/docs/download/index.md index e1bf243..a9e7686 100644 --- a/docs/download/index.md +++ b/docs/download/index.md @@ -2,7 +2,7 @@ Доступны несколько наборов образов, специфичных для конкретных сред/архитектур. Для скачивания доступны две ветки: -- **tested** — образ обновляется после проверки сопровождающим проекта, обновление образа зависит от объема изменений и других факторов; +- **tested** — образ обновляется после проверки сопровождающим проекта, обновление образа зависит от объёма изменений и других факторов; - **current** — обновляется без проверки сопровождающим проекта, автоматически инструментами Сизифа, обновление образа еженедельно (каждую среду); ## Скачать ALT Regular KDE с Яндекс Зеркала @@ -19,4 +19,4 @@ :::warning На текущий момент, у репозитория производителя отсутствуют сертификаты безопасности SSL (https соединение), это связанно с устройством информационного портала, возможное изменение статуса в 2024 году, после релиза бранча P11 -::: \ No newline at end of file +::: diff --git a/docs/graphics/nvidia/index.md b/docs/graphics/nvidia/index.md index 9d19b39..7520ec2 100644 --- a/docs/graphics/nvidia/index.md +++ b/docs/graphics/nvidia/index.md @@ -8,7 +8,7 @@ NVIDIA — это собственный драйвер самой компан Важно отметить, что драйвер NVIDIA постоянно развивается и обновляется, и различные версии этого драйвера могут иметь свои особенности и ограничения, [поэтому критически важно знать версию установленного драйвера и информацию, связанную с ним.](./nvidia-drivers/#настроика-драиверов) -При установке основного пакета [nvidia_glx_common](./nvidia-drivers/#способ-2-вручную), необходимая версия драйвера устанавливается автоматически, и не требуется никаких дополнительных действий со стороны пользователя. +При установке основного пакета [nvidia_glx_common](./nvidia-drivers/#способ-2-вручную), необходимая версия драйвера устанавливается автоматически, и не требуется никаких дополнительных действий со стороны пользователя. Также существует скрипт установки через [EPM](./nvidia-drivers/#способ-1-через-epm), предлагающий собственные дополнительные настройки. @@ -29,11 +29,13 @@ Nouveau — это [open-source](https://en.wikipedia.org/wiki/Open-source_softw ## Выбор правильного драйвера: При выборе драйвера для графического чипа, следует учесть три основных аспекта: -1. **Развитие драйверов:** Как Nouveau, так и NVIDIA постоянно обновляются и развиваются. Невозможно точно предсказать, какие функции будут добавлены или изменены в каждом из них в будущем. Если однажды услышали, что чего-то нет в каких-то драйверах, через пол-года это может поменяться. -2. **Архитектура графического чипа:** Важно учитывать, что старые модели графических чипов, как правило, лучше работают с драйвером Nouveau, чем с последними поддерживаемым драйвером NVIDIA, но всё индивидуально и необходимо проверять для каждой архитектуры видеочипов отдельно. Для проверки уровня поддержки различных архитектур можно обратиться к [FeatureMatrix](https://nouveau.freedesktop.org/FeatureMatrix.html) для Nouveau и к странице ["Закрытые драйвера"](./nvidia-drivers/index.md) в случае с NVIDIA (См. блоки «Для драйверов XXX»). -3. **Происхождение драйверов:** Проприетарный драйвер NVIDIA разрабатываются самой компанией NVIDIA и зачастую не контактирует с сообществом Linux. В то же время Nouveau является частью проекта Mesa 3D ( одной из основных частей графического стека Linux), но разрабатывается с помощью реверс-инжиниринга. Это означает, что проприетарный драйвер обычно обеспечивает более высокий уровень поддержки видеокарт NVIDIA, в то время как Nouveau обеспечивает более глубокую интеграцию с системами GNU Linux. + +1. **Развитие драйверов:** Как Nouveau, так и NVIDIA постоянно обновляются и развиваются. Невозможно точно предсказать, какие функции будут добавлены или изменены в каждом из них в будущем. Если однажды услышали, что чего-то нет в каких-то драйверах, через полгода это может поменяться. +2. **Архитектура графического чипа:** Важно учитывать, что старые модели графических чипов, как правило, лучше работают с драйвером Nouveau, чем с последними, где предпочтительнее использовать драйвер NVIDIA. Однако всё индивидуально, и проверка требуется для каждой архитектуры видеочипов отдельно. Для проверки уровня поддержки различных архитектур можно обратиться к [Feature Matrix](https://nouveau.freedesktop.org/FeatureMatrix.html) для Nouveau и к [блоку настройки драйвера](#настройка-драйвера) в случае с NVIDIA. +3. **Происхождение драйверов:** Проприетарный драйвер NVIDIA разрабатываются самой компанией NVIDIA и зачастую не контактирует с сообществом Linux. В то же время Nouveau является частью проекта Mesa (одной из основных частей графического стека GNU/Linux). Однако он разрабатывается с помощью реверс-инжиниринга, то есть проприетарный драйвер обычно обеспечивает более высокий уровень поддержки видеокарт, в то время как Nouveau обеспечивает более глубокую интеграцию с GNU/Linux системами. ### На данный момент, драйвера имеют следующие основные различия: + Проприетарный драйвер NVIDIA обеспечивает управление питанием большего числа видеокарт, поддерживают работу CUDA, а также обеспечивают лучшую поддержку игр и графических программ. Это способствует более комфортной работе с операционной системой. С другой стороны, Nouveau встроен в ядро Linux и обычно не требует дополнительных настроек. Он также поддерживает управление питанием, но на меньшем количестве видеокарт, не поддерживает CUDA и имеют плохую поддержку игр. В некоторых моментах обеспечивает лучшую поддержку там, [где NVIDIA имеет плохую](https://gitlab.freedesktop.org/xorg/xserver/-/issues/1317). @@ -43,15 +45,17 @@ Nouveau — это [open-source](https://en.wikipedia.org/wiki/Open-source_softw ::: ### Рекомендации по выбору: + Если вам необходимы игры, CUDA и другие технологии NVIDIA, и при использовании Nouveau возникают проблемы с производительностью, рекомендуется установить драйвер NVIDIA. Если вы не используете вышеупомянутые технологии, и ваша видеокарта работает стабильно на Nouveau, рекомендуется остаться на нём. ### Источники: + https://www.altlinux.org/Nvidia https://en.wikipedia.org/wiki/Nouveau_(software) https://x.org/ -https://nouveau.freedesktop.org/ \ No newline at end of file +https://nouveau.freedesktop.org/ diff --git a/docs/graphics/nvidia/nvidia-drivers/index.md b/docs/graphics/nvidia/nvidia-drivers/index.md index cabee7d..baba2e5 100644 --- a/docs/graphics/nvidia/nvidia-drivers/index.md +++ b/docs/graphics/nvidia/nvidia-drivers/index.md @@ -30,7 +30,8 @@ epm play switch-to-nvidia su - update-kernel ``` -Для дальнейшей установки проприетарных драйвера NVIDIA, **необходимо перезагрузить операционную систему**. + +Для дальнейшей установки проприетарных драйвера NVIDIA, **необходимо перезагрузить операционную систему**. Установим проприетарный драйвер NVIDIA: @@ -52,6 +53,7 @@ make-initrd Далее будет описана важная информация и настройка каждой из этих версий. Чтобы узнать версию Ваших драйвера, необходимо ввести: + ```shell inxi -G ``` @@ -63,6 +65,7 @@ inxi -G Если установили вручную, смотрите дальнейшую настройку. #### Сессия Wayland + Для работы Wayland необходимо настроить [сохранение выделенных ресурсов видеопамяти](#настроика-сохранение-выделенных-ресурсов-видеопамяти) ::: warning @@ -70,6 +73,7 @@ inxi -G ::: ### Драйвер 470.223.02 + ::: info Драйвер до версии 495 имеет поддержку только одного buffer API — [EGLStreams](https://www.phoronix.com/news/GNOME-Mutter-Mainline-EGLStream). @@ -81,6 +85,7 @@ Kwin [удалила поддержку EGLStreams](https://invent.kde.org/plasm ::: #### Проблема с Intel: + Драйвер 470.223.02 и более ранние версии, начиная с **Linux 5.18** могут работать неправильно в системах с процессорами Intel 11-го поколения и новее, из-за несовместимости с [Indirect Branch Tracking](https://edc.intel.com/content/www/us/en/design/ipla/software-development-platforms/client/platforms/alder-lake-desktop/12th-generation-intel-core-processors-datasheet-volume-1-of-2/007/indirect-branch-tracking/). Можно отключить его, добавив значение `ibt=off` в параметр `GRUB_CMDLINE_LINUX_DEFAULT`: @@ -117,6 +122,7 @@ Kwin [удалила поддержку EGLStreams](https://invent.kde.org/plasm ::: #### Сессия Wayland + Kwin [удалила поддержку EGLStreams](https://invent.kde.org/plasma/kwin/-/merge_requests/1638). **Сессия Wayland на данном драйвере не поддерживается.** @@ -125,12 +131,15 @@ Kwin [удалила поддержку EGLStreams](https://invent.kde.org/plasm ::: info Для драйвера до версии ~400 ускоренное декодирование видео NVDEC **недоступен**. ::: + #### Сессия Wayland + Драйверы до версии 364.12 **не имеют поддержку Kernel Mode Settings**. **Сессия Wayland на данном драйвере не поддерживается.** ### Драйвер 304.137 + ::: info Для драйвера до версии ~400 ускоренное декодирование видео NVDEC **недоступен**. @@ -138,11 +147,13 @@ Kwin [удалила поддержку EGLStreams](https://invent.kde.org/plasm ::: #### Сессия Wayland + Драйверы до версии 364.12 **не имеют поддержку Kernel Mode Settings**. **Сессия Wayland на данном драйвере не поддерживается.** ## Полезные программы: + ::: info При установке драйвера через **EPM**, многие программы, скорее всего уже будут установлены. @@ -167,12 +178,15 @@ su - apt-get update apt-get install nvidia-settings ``` + ```shell[epm] epm -i nvidia-settings ``` + ::: ### nvidia-smi + [nvidia-smi](https://developer.download.nvidia.com/compute/DCGM/docs/nvidia-smi-367.38.pdf) (также NVSMI) предоставляет возможности мониторинга и управления для NVIDIA Tesla, Quadro, GRID и GeForce начиная с семейства Fermi. ```shell[apt-get] @@ -180,30 +194,30 @@ su - apt-get update apt-get install nvidia-smi ``` + ```shell[epm] epm -i nvidia-smi ``` - ### EnvyControl EnvyControl это утилита командной строки которая позволяет выбирать режим работы гибридной графики, на выбор представлено три режима #### Гибридный режим - - Позволяет драйверу самому решать какой графический процессор использовать, обычно большую часть времени используется интегрированная графика, а дискретная графика работает только если она нужна, например в играх или программах для монтажа - - Позволяет использовать RTD3, [подробнее](#управление-питанием-pci-express-runtime-d3-rtd3) - - Работает только на видеокартах Turing и выше - - Возможны проблемы с HDMI +- Позволяет драйверу самому решать какой графический процессор использовать, обычно большую часть времени используется интегрированная графика, а дискретная графика работает только если она нужна, например в играх или программах для монтажа +- Позволяет использовать RTD3, [подробнее](#управление-питанием-pci-express-runtime-d3-rtd3) +- Работает только на видеокартах Turing и выше +- Возможны проблемы с HDMI - #### Интегрированный режим +#### Интегрированный режим - - Использует только интегрированную графику (Intel или AMD) отключая Nvidia - - Мониторы подключенные к Nvidia работать не будут +- Использует только интегрированную графику (Intel или AMD) отключая Nvidia +- Мониторы подключенные к Nvidia работать не будут #### Nvidia режим - - Используется исключительно видеокарта от Nvidia +- Используется исключительно видеокарта от Nvidia #### Пара примеров @@ -222,6 +236,7 @@ envycontrol -s hybrid --rtd3 ``` Установить гибридный режим, включить ForceCompositionPipeline, а так же установить coolbits на 28 разрешая разгон видеокарты: + ```shell su- envycontrol -s nvidia --force-comp --coolbits 24 @@ -235,12 +250,14 @@ su - apt-get update apt-get install envycontrol ``` + ```shell[epm] epm -i envycontrol ``` + ::: -После установки рекомендуем ввести команду ```envycontrol --help``` что бы ознакомится со всеми возможностями утилиты, если вы желаете использовать графическую утилиту, доступен так же [апплет для KDE plasma](https://store.kde.org/p/2138365/) +После установки рекомендуем ввести команду `envycontrol --help` что бы ознакомится со всеми возможностями утилиты, если вы желаете использовать графическую утилиту, доступен так же [апплет для KDE plasma](https://store.kde.org/p/2138365/) ### vulkan-tools @@ -253,9 +270,11 @@ su - apt-get update apt-get install vulkan-tools ``` + ```shell[epm] epm -i vulkan-tools ``` + ::: Для вывода информации `vulkaninfo` в терминале введите: @@ -265,6 +284,7 @@ vulkaninfo --summary ``` ### nvidia-vaapi-driver + Реализация VA-API, использующая NVDEC в качестве бэкенда. Эта реализация специально разработана для использования в Firefox для ускоренного декодирования веб-содержимого и может работать некорректно в других приложениях. Доп. информацию смотрите на [странице проекта](https://github.com/elFarto/nvidia-vaapi-driver) ```shell[apt-get] @@ -274,6 +294,7 @@ apt-get install nvidia-vaapi-driver ``` ### nvidia-modprobe + Утилита nvidia-modprobe используется компонентами драйвера NVIDIA в пользовательском пространстве для проверки загрузки модуля ядра NVIDIA и наличия файлов символьных устройств NVIDIA. Эти возможности обычно предоставлялись @@ -289,6 +310,7 @@ apt-get install nvidia-modprobe ``` ### nvidia-cuda-toolkit + Этот пакет содержит библиотеки и сопутствующие файлы, необходимые для запуска программ, использующих [CUDA](https://developer.nvidia.com/cuda-toolkit). @@ -299,6 +321,7 @@ apt-get install nvidia-cuda-toolkit ``` ### nvidia-xconfig + nvidia-xconfig - это инструмент, предназначенный для обеспечения базового управления по параметрам конфигурации, доступным в драйвере NVIDIA X11. ```shell[apt-get] @@ -310,6 +333,7 @@ apt-get install nvidia-xconfig ## Детальная настройка драйвера ### Активация [Kernel Mode Setting](https://www.kernel.org/doc/html/latest/gpu/drm-kms.html). + Необходимо прописать в параметр `GRUB_CMDLINE_LINUX_DEFAULT` значение `nvidia-drm.modeset=1` и сгенерировать новых grub.cfg: ```shell @@ -317,6 +341,7 @@ su - mcedit /etc/sysconfig/grub2 grub-mkconfig -o /boot/grub/grub.cfg ``` + ::: tip Чтобы проверить, работает ли KMS, напишите в терминале от пользователя root (Администратора): @@ -332,6 +357,7 @@ grub-mkconfig -o /boot/grub/grub.cfg ::: ### Настройка сохранение выделенных ресурсов видеопамяти + [NVIDIA предлагает 2 способа](https://download.nvidia.com/XFree86/Linux-x86_64/550.40.07/README/powermanagement.html): #### 1 способ. Через сохранение в безымянных временных файлах. @@ -343,12 +369,13 @@ grub-mkconfig -o /boot/grub/grub.cfg **Как включить:** - Активируем интерфейсы управления питания NVIDIA: +Активируем интерфейсы управления питания NVIDIA: ```shell su - systemctl enable nvidia-suspend.service nvidia-resume.service nvidia-hibernate.service ``` + ::: tip Эти интерфейсы заменяют стандартные sleep hibernate и resume, давая возможность записать ресурсы видеопамяти перед отключением питания у видеокарты. ::: @@ -371,9 +398,9 @@ make-initrd ::: info Для сохранения ресурсов видеопамяти важно, чтобы файловая система имела поддержку безымянных временных файлов и имела достаточный объём для сохранения видеопамяти. Объём, равный сумме всей видеопамяти + 5% от неё, будет вполне достаточно для её сохранения. -Узнать количество видеопамяти можно командой: `nvidia-smi -q -d MEMORY |grep 'FB Memory Usage' -A1` +Узнать количество видеопамяти можно командой: `nvidia-smi -q -d MEMORY | grep 'FB Memory Usage' -A1` -NVIDIA не даёт каких-то конкретных рекомендаций, какую директорию использовать, но на форумах зачастую рекомендуют `/var/tmp`, и судя по её [описанию](https://www.pathname.com/fhs/pub/fhs-2.3.html#VARTMPTEMPORARYFILESPRESERVEDBETWEE), этоn вариант наиболее рационален. +NVIDIA не даёт каких-то конкретных рекомендаций, какую директорию использовать, но на форумах зачастую рекомендуют `/var/tmp`, и судя по её [описанию](https://www.pathname.com/fhs/pub/fhs-2.3.html#VARTMPTEMPORARYFILESPRESERVEDBETWEE), этоn вариант наиболее рационален. ::: #### 2 способ. Через через режим сохранения питания [S0ix](https://ru.msi.com/blog/why-modern-standby-matters-for-business-laptop#:~:text=%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F%20Modern%20Standby%20%E2%80%93%20%D1%8D%D1%82%D0%BE,%D0%BE%D0%BD%D0%B0%20%D0%BF%D0%BE%D0%B7%D0%B2%D0%BE%D0%BB%D1%8F%D0%B5%D1%82%20%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D1%83%20%C2%AB%D0%BF%D1%80%D0%BE%D0%B1%D1%83%D0%B6%D0%B4%D0%B0%D1%82%D1%8C%D1%81%D1%8F%C2%BB%20%D0%BC%D0%BE%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE). @@ -388,6 +415,7 @@ NVIDIA не даёт каких-то конкретных рекомендаци ```shell cat /sys/power/mem_sleep ``` + ::: tip Если в выводе есть s2idle, значит s2idle поддерживается и проверяем видеочип. Если в выводе нет s2idle, тогда используйте 1 способ. ::: @@ -398,11 +426,12 @@ cat /sys/power/mem_sleep ```shell grep 'Video Memory Self Refresh' /proc/driver/nvidia/gpus/::.0/power ``` + ::: tip Если ответ `Video Memory Self Refresh: is supported` значит s0ix поддерживает и можно проверять систему дальше. ::: -Если система и видеочип поддерживает указанные режимы, добавляем параметр `NVreg_EnableS0ixPowerManagement=1`: +Если система и видеочип поддерживает указанные режимы, добавляем параметр `NVreg_EnableS0ixPowerManagement=1`: ```shell su - @@ -415,6 +444,7 @@ modprobe nvidia NVreg_EnableS0ixPowerManagement=1 su - echo "s2idle" > /sys/power/mem_sleep ``` + После указания опции и режима , тестируем сон и проверяем, всё ли корректно загрузилось. Если всё хорошо, добавляем настройки на постоянную загрузку: ```shell @@ -424,7 +454,9 @@ options nvidia NVreg_EnableS0ixPowerManagement=1 _EOF_ make-initrd ``` + Если ранее приходилось вручную указывать s2idle, прописываем в параметр `GRUB_CMDLINE_LINUX_DEFAULT` значение `mem_sleep_default=s2idle` и генерируем новых grub.cfg: + ```shell su - mcedit /etc/sysconfig/grub2 @@ -433,6 +465,7 @@ grub-mkconfig -o /boot/grub/grub.cfg ::: info При переходе видеокарты в спящий режим S0ix, будет выполнятся один из 2-х сценариев: + - Если использование памяти было меньше определённого порога, видеопамять с копируется в системную память и полностью отключится вместе с графическим процессором - Если использование памяти было больше определённого порога, видеопамять будет в режиме самообновления, в то время как остальная часть графического процессора будет отключена @@ -440,6 +473,7 @@ grub-mkconfig -o /boot/grub/grub.cfg ::: ### Управление питанием PCI-Express Runtime D3 (RTD3) + Драйвер NVIDIA имеет поддержку динамического управления питанием графического процессора NVIDIA ([PCI-Express Runtime D3 (RTD3) Power Management](https://download.nvidia.com/XFree86/Linux-x86_64/550.40.07/README/dynamicpowermanagement.html). В это управление входит регулирование тактовой частоты, напряжение на разных участках микросхемы, а также, в некоторых случаях, полное отключение тактовой частоты или питания элементов чипа. @@ -447,6 +481,7 @@ grub-mkconfig -o /boot/grub/grub.cfg И всё это не влияя на функциональность, позволяя работать графическому процессору с меньшей производительностью, но с более низким потреблением энергии. Для работы RTD3 необходимо следующее: + - Ноутбук - Процессор из серия чипсетов Coffeelake или новее - Видеокарта архитектуры Turing или новее @@ -460,6 +495,7 @@ grub-mkconfig -o /boot/grub/grub.cfg ::: Для автоматизации управления надо добавить правила в '/lib/udev/rules.d': + ```shell su - cat << _EOF_ > /lib/udev/rules.d/80-nvidia-pm @@ -475,6 +511,7 @@ make-initrd ``` В /etc/modprobe.d добавляем конфигурационный файл с параметром: + ```shell su - cat << _EOF_ > /etc/modprobe.d/nvidia_RTD3.conf @@ -495,6 +532,7 @@ make-initrd [PAT](https://docs.kernel.org/arch/x86/pat.html) более современная технология и является более гибким атрибутом, добавляя новые возможности для организации памяти. Чтобы её включить, в /etc/modprobe.d добавляем конфигурационный файл с параметром: + ```shell su - cat << _EOF_ > /etc/modprobe.d/nvidia_PAT.conf @@ -503,6 +541,7 @@ options nvidia NVreg_UsePageAttributeTable=1 _EOF_ make-initrd ``` + ::: warning Удостоверьтесь, что ваша система поддерживает PAT, а в противном случае, у вас могут быть проблемы с системой. ::: @@ -550,10 +589,12 @@ _EOF_ ## Решение известных проблем ### «Неизвестный монитор» в настройках дисплеев в сессии Wayland + :::info Данная проблема может привести к не работе устройств ввода: мышка, тачпад. Особенно часто данные проблемы проявляются в играх. ::: На данный момент существует 3 способа устранения фантомного неизвестного монитора: + #### Способ 1. Использование собственного фреймбуфера от NVIDIA: Смотрите настройку [фреймбуфера от NVIDIA](#фреимбуфер-от-nvidia) @@ -588,11 +629,12 @@ grub-mkconfig -o /boot/grub/grub.cfg Откройте приложение "Параметры системы KDE5", перейдите во вкладку "Экран", в опции "Настройка экранов" выберите экран "Unknown" в параметре "Устройство" и отключите его, убрав галочку с параметра "Включен". -### В сессии Wayland панель задач "зависает" (Plasma 5.7): +### В сессии Wayland панель задач "зависает" (Plasma 5.7): + Необходимо отключить "миниатюры окон" в настройках панели задач (Plasma/Tasks) Для этого необходимо снять галочку с **Показывать миниатюру окна при наведении указателя мыши на элемент в панели задач**. -Для этого щёлкните правой кнопкой мыши и выберите **"настроить виджет «Панель задач»" -> "Внешний вид" -> "Показывать миниатюру окна при наведении указателя мыши на элемент в панели задач"** +Для этого щёлкните правой кнопкой мыши и выберите **"настроить виджет «Панель задач»" -> "Внешний вид" -> "Показывать миниатюру окна при наведении указателя мыши на элемент в панели задач"** ::: info Проблема наблюдается только на Plasma 5.x и затрагивает также владельцев AMD. @@ -602,24 +644,28 @@ P.S: В KDE Plasma 6 данную проблему уже решили. ::: ### Не работает KMS + Если при загрузке системы чёрный экран, либо при проверке 'cat /sys/module/nvidia_drm/parameters/modeset' выводит 'N', можно попробовать [включить KMS через командную строку ядра](#активация-kernel-mode-setting) ### Чёрный экран при выборе сессии X11, либо ошибка в инициализации CUDA + Драйвер NVIDIA для Linux по умолчанию использует Message Signaled Interrupts (MSI). Это обеспечивает лучшую совместимость и масштабируемость, из-за избегания совместного использования IRQ. Было замечено, что некоторые системы имели проблемы с поддержкой MSI. Все известные ошибки были исправлены, но если наблюдаете данные проблемы, попробуйте отключить MSI: + ```shell su - cat << _EOF_ > /etc/modprobe.d/nvidia_MSI.conf -# This options deactivate MSI +# This options deactivate MSI options nvidia NVreg_EnableMSI=0 _EOF_ make-initrd ``` ### Если при установке или первом запуске чёрный экран, артефакты или другие проблемы + Если при первом же включении или установке появляются проблемы с отображением картинки, можно попробовать сменить режим вывода графики, чтобы в последующем иметь возможность взаимодействовать с системой и выяснить причины проблем с видеодрайверами. Для этого необходимо на этапе выбора вариантов загрузки в [GRUB](https://en.wikipedia.org/wiki/GNU_GRUB) нажать кнопку <<**e**>> и дописать одни из следующих параметров: @@ -627,7 +673,7 @@ make-initrd - **nomodeset** — не загружать видеодрайверы для видеокарты до момента, пока не будет загружена графическая система X. В результате система загружается в текстовом виде, можно видеть сообщения процесса загрузки, проблема «черного экрана загрузки» устраняется; - **xdriver** — графический установщик предпринимает попытку автоматического подбора драйвера видеокарты, но иногда это ему не удаётся. Данным параметром можно отключить «искусственный интеллект» и явно указать нужный вариант драйвера; - **instdebug** — если будет присутствовать этот параметр, то перед запуском и после завершения работы графического установщика будет запущена командная оболочка (shell). Это очень полезное средство для выявления причин отсутствия запуска графической части программы установки. Последовательность работы внутренних сценариев следующая: install2 → xinit → alterator-install2 → alterator-wizard. При необходимости можно вручную загрузить Xorg (команда xinit) и в открывшемся окне терминала запустить alterator-install2 (или alterator-wizard) вручную. Лог-файлы инсталлятора сохраняются в /tmp. -xdriver — отключает авто определение и принудительно загружает указанный драйвер; можно указать любой драйвер, поддерживаемый Xorg. Например, i915, nvidia, radeon, fglrx и т.д. + xdriver — отключает авто определение и принудительно загружает указанный драйвер; можно указать любой драйвер, поддерживаемый Xorg. Например, i915, nvidia, radeon, fglrx и т.д. Существуют универсальные видеодрайверы: @@ -655,21 +701,27 @@ xdriver — отключает авто определение и прину ### [nvidia-smi](#nvidia-smi) С его помощью можно установить порог TDP + ```shell su - nvidia-smi -pl 160.30 ``` + Установить пороги часто GPU: + ```shell su - nvidia-smi -q -d SUPPORTED_CLOCKS nvidia-smi --lock-gpu-clocks=0,1695 --mode=1 ``` + Установить пороги часто GPU: + ```shell su - nvidia-smi --lock-memory-clocks=0,5001 ``` + Для детальной настройки смотрите его [man-страницу](https://manpages.ubuntu.com/manpages/xenial/man1/alt-nvidia-340-smi.1.html) ::: tip @@ -693,18 +745,19 @@ https://justin.palpant.us/monitor-and-maximize-nvidia-gpu-performance-on-linux/ Установить битовую маску можно либо в конфигурационном файле xorg.conf в разделе Device, либо через такие программы, как [nvidia-xconfig](#nvidia-xconfig) и [EnvyControl](#envycontrol) Пример работы с nvidia-xconfig: + ```shell nvidia-xconfig --cool-bits=2 ``` -|Бит|Описание| -| - | - | -| 1 | Если установлено значение "1" (бит 1), позволяет разгонять старые (до Fermi) ядра на странице "Тактовые частоты" в разделе "Настройки nvidia". | -| 2 | Если установлено значение "2" (бит 1), драйвер NVIDIA попытается инициализировать SLI при использовании графических процессоров с разным объемом видеопамяти. | -| 4 | Если установлено значение "4" (бит 2), на странице nvidia-настройки термомонитора будет доступна настройка скорости вращения вентилятора графического процессора на графических платах с программируемыми возможностями вентилятора. | -| 8 | Если установлено значение "8" (бит 3), на странице PowerMizer в панели управления nvidia-настройки отобразится таблица, которая позволяет устанавливать смещения для каждого тактового домена и уровня производительности для применения к тактовым значениям. Это разрешено на некоторых графических процессорах GeForce. Не все тактовые диапазоны или уровни производительности могут быть изменены.(для Fermi и выше) | -| 16 | Если установлено значение "16" (бит 4), интерфейс командной строки nvidia-settings позволяет настроить перенапряжение графического процессора. Это разрешено на некоторых графических процессорах GeForce.(для Fermi и выше) | -| 0 | Если установлено значение "0" (бит 0), все неподдерживаемые функции отключены. | +| Бит | Описание | +| --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | Если установлено значение "1" (бит 1), позволяет разгонять старые (до Fermi) ядра на странице "Тактовые частоты" в разделе "Настройки nvidia". | +| 2 | Если установлено значение "2" (бит 1), драйвер NVIDIA попытается инициализировать SLI при использовании графических процессоров с разным объемом видеопамяти. | +| 4 | Если установлено значение "4" (бит 2), на странице nvidia-настройки термомонитора будет доступна настройка скорости вращения вентилятора графического процессора на графических платах с программируемыми возможностями вентилятора. | +| 8 | Если установлено значение "8" (бит 3), на странице PowerMizer в панели управления nvidia-настройки отобразится таблица, которая позволяет устанавливать смещения для каждого тактового домена и уровня производительности для применения к тактовым значениям. Это разрешено на некоторых графических процессорах GeForce. Не все тактовые диапазоны или уровни производительности могут быть изменены.(для Fermi и выше) | +| 16 | Если установлено значение "16" (бит 4), интерфейс командной строки nvidia-settings позволяет настроить перенапряжение графического процессора. Это разрешено на некоторых графических процессорах GeForce.(для Fermi и выше) | +| 0 | Если установлено значение "0" (бит 0), все неподдерживаемые функции отключены. | При перезагрузке все изменения в nvidia-settings сбрасываются. Для сохранения разгона необходимо Использование таких утилит, как [nvclock](https://packages.altlinux.org/ru/sisyphus/srpms/nvclock/) или [gwe](https://packages.altlinux.org/ru/sisyphus/srpms/gwe/) @@ -722,16 +775,16 @@ _EOF_ ## Данные об оборудовании и ПО пользователей за 2024 год. -Ознакомиться с таблецей вы можете перейдя [по ссылке](https://cloud.alt-gnome.ru/index.php/s/JSCj9gxB7j5boPg) +Ознакомиться с таблицей вы можете перейдя [по ссылке](https://cloud.alt-gnome.ru/index.php/s/JSCj9gxB7j5boPg) ### Источники: + https://www.altlinux.org/Nvidia https://www.kernel.org/doc/html/latest/gpu/drm-kms.html https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers/ru - https://www.altlinux.org/#Проблемы_с_драйвером_видеокарты https://bugzilla.altlinux.org/39108 diff --git a/docs/graphics/nvidia/nvidia-nouveau/index.md b/docs/graphics/nvidia/nvidia-nouveau/index.md index fa3338c..ad39e0b 100644 --- a/docs/graphics/nvidia/nvidia-nouveau/index.md +++ b/docs/graphics/nvidia/nvidia-nouveau/index.md @@ -1,9 +1,11 @@ # Nouveau драйвер: + ## Смена проприетарного драйвера от NVIDIA на Nouveau Для установки открытого драйвера NOUVEAU, необходимо следующее: ::: code-group + ```shell[apt-get] su - apt-get remove nvidia_glx_common @@ -39,6 +41,7 @@ epm reinstall xorg-dri-nouveau xorg-drv-nouveau # перезагрузиться reboot ``` + ::: Как только все загрузилось и мы убедились, что NOUVEAU заработало: @@ -50,6 +53,7 @@ make-initrd # посмотреть что в выводе сборки initrd присутствует Nouveau reboot ``` + ## Управление питанием на Nouveau Nouveau, драйвер с открытым исходным кодом для графических процессоров Nvidia, развивается посредством реверс-инжиниринга. В области управления питанием были как прогрессы, так и регрессы (см. страницу [PowerManagement](https://nouveau.freedesktop.org/PowerManagement.html)). @@ -70,4 +74,4 @@ https://nouveau.freedesktop.org/ https://wiki.archlinux.org/title/Nouveau -https://wiki.gentoo.org/wiki/Nouveau \ No newline at end of file +https://wiki.gentoo.org/wiki/Nouveau diff --git a/docs/index.md b/docs/index.md index 6a6aaff..1b1ab56 100644 --- a/docs/index.md +++ b/docs/index.md @@ -3,8 +3,8 @@ layout: home hero: - name: "ALT Regular KDE" - text: "Community" + name: 'ALT Regular KDE' + text: 'Community' image: src: /laptop.svg alt: Gnome @@ -19,9 +19,9 @@ hero: features: - title: Раньше чем у других - details: Eжедневно обновляемый репозиторий пакетов свободных программ Sisyphus - - title: Цифровая НЕзависмость + details: Ежедневно обновляемый репозиторий пакетов свободных программ Sisyphus + - title: Цифровая НЕзависимость details: Семейство дистрибутивов Linux, производится в России с 2000 года. - title: Открытое сообщество details: Путеводитель в мир открытого программного обеспечения. ---- \ No newline at end of file +--- diff --git a/docs/licence.md b/docs/licence.md index 03a6494..07e33ba 100644 --- a/docs/licence.md +++ b/docs/licence.md @@ -1,10 +1,11 @@ # Лицензия -The MIT License (MIT) -Copyright © 2023-present OLEG SHCHAVELEV +MIT License -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +Copyright (c) 2023 OLEG SHCHAVELEV + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/docs/package-manager/epm/index.md b/docs/package-manager/epm/index.md index c826868..a726804 100644 --- a/docs/package-manager/epm/index.md +++ b/docs/package-manager/epm/index.md @@ -1,26 +1,27 @@ --- title: EPM aggregation: - sisyphus: eepm + sisyphus: eepm appstream: - name: EPM - icon: ./img/etersoft.png - summary: Единая система управления пакетами. - developer: - name: Этерсофт - metadata_license: - name: GNU AGPLv3 - link: https://choosealicense.com/licenses/agpl-3.0/ - url: - homepage: https://github.com/Etersoft/eepm - bugtracker: https://github.com/Etersoft/eepm/issues + name: EPM + icon: ./img/etersoft.png + summary: Единая система управления пакетами. + developer: + name: Этерсофт + metadata_license: + name: GNU AGPLv3 + link: https://choosealicense.com/licenses/agpl-3.0/ + url: + homepage: https://github.com/Etersoft/eepm + bugtracker: https://github.com/Etersoft/eepm/issues --- # Единая команда управления пакетами (epm) -**EPM** — команда управления пакетами, имеющая одинаковый интерфейс на всех системах. При интерфейсе, похожем на rpm, apt и urpm, выполняет необходимые операции **на любой платформе**. +**EPM** — команда управления пакетами, имеющая одинаковый интерфейс на всех системах. При интерфейсе, похожем на `rpm`, `apt` и `urpm`, выполняет необходимые операции **на любой платформе**. ## Установка из репозитория + **EPM** можно установить используя терминал: ```shell @@ -31,19 +32,19 @@ apt-get install eepm ## Команды -| Описание операции | Команда EPM | Команда ALT Linux | -| ----------------- | :-------------------: | :-----------------: | -| Установка пакета по названию в систему | epm -i (package) | apt-get install (package) | -| Установка файла пакета в систему | epm -i (package file) | apt-get install (package file) | -| Удаление пакета из системы | epm -e (package) | apt-get remove (package) | -| Поиск пакета в репозитории | epm -s (text) | apt-cache search (text) | -| Проверка наличия пакета в системе | epm -q (package) | rpm -qa (pipe) grep (package) | -| Список установленных пакетов | epm -qa | rpm -qa | -| Поиск по названиям установленных пакетов | epm -qp (word) | grep (word) | -| Принадлежность файла к (установленному) пакету | epmqf (file) | rpm -qf (file) | -| Список файлов в (установленном) пакете | epm -ql (package) | rpm -ql (package) | -| Вывести информацию о пакете | epm -ql (package) | apt-cache show (package) | -| Обновить дистрибутив | epm upgrade | apt-get dist-upgrade | +| Описание операции | Команда EPM | Команда ALT Linux | +| ---------------------------------------------- | :---------------------: | :------------------------------: | +| Установка пакета по названию в систему | `epm -i (package)` | `apt-get install (package)` | +| Установка файла пакета в систему | `epm -i (package file)` | `apt-get install (package file)` | +| Удаление пакета из системы | `epm -e (package)` | `apt-get remove (package)` | +| Поиск пакета в репозитории | `epm -s (text)` | `apt-cache search (text)` | +| Проверка наличия пакета в системе | `epm -q (package)` | `rpm -qa (pipe) grep (package)` | +| Список установленных пакетов | `epm -qa` | `rpm -qa` | +| Поиск по названиям установленных пакетов | `epm -qp (word)` | `grep (word)` | +| Принадлежность файла к (установленному) пакету | `epmqf (file)` | `rpm -qf (file)` | +| Список файлов в (установленном) пакете | `epm -ql (package)` | `rpm -ql (package)` | +| Вывести информацию о пакете | `epm -ql (package)` | `apt-cache show (package)` | +| Обновить дистрибутив | `epm upgrade` | `apt-get dist-upgrade` | ### Информация о системе @@ -54,29 +55,31 @@ epm print info ``` ::: details Пример вывода информация о системе + ```shell -distro_info v20230406 (EPM version 3.62.5-alt1) : Copyright © 2007-2024 Etersoft - -                      Pretty name (--pretty): ALT Regular (20240122) (Sisyphus) -          (--distro-name / --distro-version): Sisyphus / 20240122 (orig. Sisyphus 20240122) -        Base distro name (-d) / version (-v): ALTLinux/Sisyphus -    Vendor distro name (-s) / Repo name (-r): alt / Sisyphus -                Package manager/type (-g/-p): apt-rpm / rpm -           Base OS name (-o) / CPU arch (-a): linux x86_64 -                CPU norm register size  (-b): 64 bit -                         Virtualization (-i): (host system) -                       CPU Cores/MHz (-c/-z): 4 / 2500 MHz -                     System memory size (-m): 15906 MiB -                Running service manager (-y): systemd +distro_info v20230406 (EPM version 3.62.5-alt1) : Copyright © 2007-2024 Etersoft + +                      Pretty name (--pretty): ALT Regular (20240122) (Sisyphus) +          (--distro-name / --distro-version): Sisyphus / 20240122 (orig. Sisyphus 20240122) +        Base distro name (-d) / version (-v): ALTLinux/Sisyphus +    Vendor distro name (-s) / Repo name (-r): alt / Sisyphus +                Package manager/type (-g/-p): apt-rpm / rpm +           Base OS name (-o) / CPU arch (-a): linux x86_64 +                CPU norm register size  (-b): 64 bit +                         Virtualization (-i): (host system) +                       CPU Cores/MHz (-c/-z): 4 / 2500 MHz +                     System memory size (-m): 15906 MiB +                Running service manager (-y): systemd            Bug report URL (--bug-report-url): https://bugs.altlinux.org/ ``` + ::: ## Утилита EPM Play **EPM Play** — инструмент, автоматически устанавливающий и удаляющий пакеты, используя заготовленные сценарии. При этом не использует сторонние репозитории. -``` +``` epm play [options] [argument] ``` @@ -110,9 +113,11 @@ epm play --remove telegram su - apt-get remove Telegram ``` + ```shell[epm] epm -e Telegram ``` + ::: ### Обновить приложение до последней версии @@ -144,7 +149,7 @@ epm play --list ``` :::warning -При совпадение идентификаторов приложений, в списке будут присутствовать приложения установленные с помощью пакетного менеджера `apt-get` +При совпадение идентификаторов приложений, в списке будут присутствовать приложения установленные с помощью пакетного менеджера `apt-get` ::: Получить список установленных утилит: @@ -181,19 +186,19 @@ epm play --installed telegram epm play --product-alternatives telegram ``` -## Утилита EPM Repack +## Утилита EPM Repack EPM Repack — инструмент позволяющий конвертировать (переупаковать) пакеты от сторонних производителей в стандарт RPM семейства операционных систем ALT -| Менеджер пакетов | Дистрибутив | -| -----------------| ------------------- | -| rpm | asplinux suse mandriva rosa mandrake pclinux sled sles fedora redhat scientific centos rhel | -| deb | debian ubuntu mint runtu mcst | -| tgz | slackware mopslinux | -| tbz | freebsd | -| tbz2 | gentoo | -| apk | alpine | -| pkg.gz | sunos | +| Менеджер пакетов | Дистрибутив | +| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| `rpm` | ASPLinux, SUSE (+ Enterprise Desktop/Server), Mandriva, ROSA, Mandrake, PCLinuxOS, Fedora, Red Hat (+ Enterprise), Scientific, CentOS | +| `deb` | Debian, Ubuntu, Mint, Runtu, Эльбрус Линукс | +| `tgz` | Slackware, MOPSLinux | +| `tbz` | FreeBSD | +| `tbz2` | Gentoo | +| `apk` | Alpine | +| `pkg.gz` | SunOS | Установим deb приложение используя утилиту `epm repack`: @@ -202,27 +207,28 @@ epm repack tonfotos.deb epm -i tonfotos-1.6.5-epm1.repacked.2.x86_64.rpm ``` -Альтернативном вводом является: +Альтернативном вводом является: ```shell epm -i tonfotos.deb ``` -При установке пакета, epm автоматически определит, что установленный файл не является стандартным и запустит команду `epm repack`, а после переупаковки пакета, он автоматически его установит. +При установке пакета, epm автоматически определит, что установленный файл не является стандартным и запустит команду `epm repack`, а после переупаковки пакета, он автоматически его установит. :::info - Предварительно скачайте deb-пакет [на официальном сайте производителя](https://tonfotos.com). Перейдите в папку со скаченной программой Tonfotos, в моём случае: +Предварительно скачайте deb-пакет [на официальном сайте производителя](https://tonfotos.com). Перейдите в папку со скаченной программой Tonfotos, в моём случае: ```shell cd Загрузки ``` + ::: -## Установка приложений с помощью appinstall +## Установка приложений с помощью `appinstall` - Для установки и удаления приложений из каталога `epm play` используя графический интерфейс, рекомендуем использовать appinstall +Для установки и удаления приложений из каталога `epm play` используя графический интерфейс, рекомендуем использовать `appinstall` -**appinstall** можно установить используя терминал: +`appinstall` можно установить используя терминал: ::: code-group @@ -231,7 +237,9 @@ su - apt-get update apt-get install appinstall ``` + ```shell[epm] epm -i appinstall ``` -::: \ No newline at end of file + +::: diff --git a/docs/package-manager/flatpak/index.md b/docs/package-manager/flatpak/index.md index 4c0d818..a70abcc 100644 --- a/docs/package-manager/flatpak/index.md +++ b/docs/package-manager/flatpak/index.md @@ -4,11 +4,11 @@ title: Flatpak # Flatpak -Flatpak — пакетный менеджер для управления Flatpak-пакетами. В модели Flatpak приложения могут создаваться и распространяться независимо от устройства (host-системы), в которой они используются, приложение частично изолированы от хост-системы ('sandboxed') во время работы приложения. +Flatpak — система для создания, распространения и запуска изолированных настольных приложений в Linux. ## Установка из репозитория -Устоновим Flatpak используя Konsole: +Установим Flatpak используя терминал: :::tabs == Flatpak @@ -19,9 +19,11 @@ su - apt-get update apt-get install flatpak ``` + ```shell[epm] epm -i flatpak ``` + == Flatpak c FlatHub ::: code-group @@ -30,9 +32,11 @@ su - apt-get update apt-get install flatpak-repo-flathub ``` + ```shell[epm] epm -i flatpak-repo-flathub ``` + ::: ### Интеграция с центром приложений Discovery @@ -46,22 +50,24 @@ su - apt-get update apt-get install plasma5-discover-flatpak ``` + ```shell[epm] epm -i plasma5-discover-flatpak ``` + ::: ## Использование пакетного менеджера Flatpak ### Управления репозиториями -Просмотр подключенных репозитриев осуществляется командой `remotes`, введите в Konsole: +Просмотр подключенных репозиториев осуществляется командой `remotes`, введите в терминал: ```shell flatpak remotes ``` -Подключить репозиторий общесистемно используйте следующую команду. Опция `--if-not-exists` останавливает команду от выдачи ошибки, если удаленное устройство уже существует: +Подключить репозиторий для всей системы используйте следующую команду. Опция `--if-not-exists` останавливает команду от выдачи ошибки, если удаленное устройство уже существует: ```shell flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo @@ -89,7 +95,7 @@ flatpak search krita flatpak install flathub org.kde.krita ``` -Альтернативном вариантом установки приложения указать агрумент путь к мета-файлу, в котором содержатя необходимые данные об установке: +Альтернативном вариантом установки приложения указать аргумент путь к мета-файлу, в котором содержатся необходимые данные об установке: ```shell flatpak install https://flathub.org/repo/appstream/org.kde.krita.flatpakref @@ -115,4 +121,4 @@ flatpak run org.kde.krita ```shell flatpak remove org.kde.krita -``` \ No newline at end of file +``` diff --git a/docs/project/about/index.md b/docs/project/about/index.md index 653ef58..7cddce2 100644 --- a/docs/project/about/index.md +++ b/docs/project/about/index.md @@ -10,4 +10,4 @@ ## Авторы и участники проекта -Проект **ALT KDE Wiki** принадлежит русскоязычному сообществу, которое разрабатывает и поддерживает его на добровольной основе. Каждый участник сообщества является совладельцем проекта и вносит свой вклад в его развитие. \ No newline at end of file +Проект **ALT KDE Wiki** принадлежит русскоязычному сообществу, которое разрабатывает и поддерживает его на добровольной основе. Каждый участник сообщества является совладельцем проекта и вносит свой вклад в его развитие. diff --git a/docs/project/contributions/index.md b/docs/project/contributions/index.md index e16ec4c..9f41d7f 100644 --- a/docs/project/contributions/index.md +++ b/docs/project/contributions/index.md @@ -1,4 +1,4 @@ --- layout: contribution longtitle: Участники ---- \ No newline at end of file +--- diff --git a/docs/reference/index.md b/docs/reference/index.md index 43f6126..2c4a448 100644 --- a/docs/reference/index.md +++ b/docs/reference/index.md @@ -1,3 +1,3 @@ # Для авторов -В данном разделе расположены различные правила и советы для авторов. Здесь вы найдёте полезную информацию о том, как создавать и редактировать статьи на вики. Ознакомьтесь с этими правилами и советами, чтобы улучшить свои навыки авторства на ALT KDE Wiki. \ No newline at end of file +В данном разделе расположены различные правила и советы для авторов. Здесь вы найдёте полезную информацию о том, как создавать и редактировать статьи на вики. Ознакомьтесь с этими правилами и советами, чтобы улучшить свои навыки авторства на ALT KDE Wiki. diff --git a/docs/wiki/index.md b/docs/wiki/index.md index e87fd39..59699c6 100644 --- a/docs/wiki/index.md +++ b/docs/wiki/index.md @@ -4,4 +4,4 @@ aside: false # ALT REGULAR KDE WIKI -ALT Regular KDE — прогрессивная операционная система, разработанная таким образом, чтобы получать ежедневные обновления из репозитория Сизиф. Сизиф — нестабильный репозиторий, который развивается постоянно, то есть не обладает ограничениями на размещение в него пакетов. \ No newline at end of file +ALT Regular KDE — прогрессивная операционная система, разработанная таким образом, чтобы получать ежедневные обновления из репозитория Сизиф. Сизиф — нестабильный репозиторий, который развивается постоянно, то есть не обладает ограничениями на размещение в него пакетов. diff --git a/docs/workarrounds/change-gtk-themes/index.md b/docs/workarrounds/change-gtk-themes/index.md index a1b758e..035ff7a 100644 --- a/docs/workarrounds/change-gtk-themes/index.md +++ b/docs/workarrounds/change-gtk-themes/index.md @@ -2,7 +2,7 @@ title: Некоторые GTK приложения выглядят чужеродно --- -# Некоторые GTK приложения выглядят чужеродно +# Некоторые GTK приложения выглядят чужеродно Некоторые GTK приложения используют тему «Default», которая имеет внешний вид в стиле «Windows 95». Она совершенно не сочетается с современным дизайном KDE, но, к счастью, это легко исправить. @@ -10,36 +10,41 @@ title: Некоторые GTK приложения выглядят чужеро Ниже вы можете наблюдать вышеописанную проблему на примере приложения «Synaptic»: ![Default тема, приложение Synaptic](./img/default_theme.png) - Однако на сегодняшний день в основном вы будете встречаться с ситуацией, когда внешний вид схож с KDE, но при этом он не полноценный. -Например, будут отсутствовать некоторые иконки у кнопок и/или не будет использоваться темная тема, если вам таковая нужна. +Например, будут отсутствовать некоторые иконки у кнопок и/или не будет использоваться тёмная тема, если вам таковая нужна. -На скриншоте ниже можно наблюдать именно этот случай на примере программы «Gparted»: -![Сломанная KDE-подобная тема, приложение Gparted](./img/broken_gparted.png) +На скриншоте ниже можно наблюдать именно этот случай на примере программы «GParted»: +![Сломанная KDE-подобная тема, приложение GParted](./img/broken_gparted.png) ### Установка правильной темы + 1. Заходим в приложение «Параметры системы KDE5» 2. Переходим во вкладку «Внешний вид» и выбираем пункт «Оформление приложений» 3. Нажимаем на кнопку «Настроить оформление приложений GNOME/GTK», которая находится в правом нижнем углу 4. Выбираем подходящую тему: + - Breeze-Education — Светлая тема - - Breeze-Education-dark — Темная тема + - Breeze-Education-dark — Тёмная тема P.S: Если у вас отсутствуют данные темы, то вам необходимо установить их вручную при помощи команды ниже: :::tabs == apt-get + ```shell su - apt-get install gtk-theme-breeze-education ``` == epm + ```shell epm -i gtk-theme-breeze-education ``` + ::: + 5. Нажимаем «Применить» Теперь подобные приложения должны использовать корректную тему: ![Breeze тема, приложение Synaptic](./img/breeze_theme.png) -![Темная Breeze тема, приложение Gparted](./img/correct_gparted.png) +![Темная Breeze тема, приложение GParted](./img/correct_gparted.png) diff --git a/docs/workarrounds/enable-downloading-of-third-party-themes/index.md b/docs/workarrounds/enable-downloading-of-third-party-themes/index.md index 6e9e825..5af8bb2 100644 --- a/docs/workarrounds/enable-downloading-of-third-party-themes/index.md +++ b/docs/workarrounds/enable-downloading-of-third-party-themes/index.md @@ -7,11 +7,12 @@ title: Не работает загрузка сторонних тем KDE По умолчанию в ALT Linux отключена возможность загружать и скачивать сторонние темы KDE, но это легко исправить. ![Скриншот настроек с загрузкой тем](./img/screenshot.png 'Скриншот настроек с загрузкой тем') + ### Открываем терминал и выполняем следующую команду: + ```shell su - sed -i 's/ghns=false/ghns=true/g' /etc/kf5/xdg/kdeglobals /etc/xdg/kdeglobals ``` Готово! Осталось только перезагрузить систему (иногда кнопка появляется сразу) и вы сможете скачивать темы, модули рабочего стола и т. д. - diff --git a/docs/workarrounds/how-lock-screen-after-waking/index.md b/docs/workarrounds/how-lock-screen-after-waking/index.md index 84f26c9..ffbfa15 100644 --- a/docs/workarrounds/how-lock-screen-after-waking/index.md +++ b/docs/workarrounds/how-lock-screen-after-waking/index.md @@ -7,10 +7,11 @@ title: Не срабатывает блокировка экрана после Бывает ситуация, перевёл компьютер в спящий режим и отошёл по своим делам. А другой человек выводит его из спящего режима и спокойно получает доступ к системе, ведь экран блокировки не срабатывает. Ситуация страшная, а решается одной галочкой. ### Исправляем проблему: + 1. Заходим в «Параметры системы KDE5» 2. Переходим в «Поведение рабочей среды» => «Блокировка экрана» 3. Нажимаем на галочку «После выхода из ждущего режима» 4. И нажимаем «Применить» ![Скриншот настроек](./img/screenshot_settings.png) -Готово, теперь экран всегда будет блокироваться после выхода из спящего или ждущего режима. \ No newline at end of file +Готово, теперь экран всегда будет блокироваться после выхода из спящего или ждущего режима. diff --git a/docs/workarrounds/how-to-restore-grub-with-btrfs/index.md b/docs/workarrounds/how-to-restore-grub-with-btrfs/index.md index 17deb8a..dac9179 100644 --- a/docs/workarrounds/how-to-restore-grub-with-btrfs/index.md +++ b/docs/workarrounds/how-to-restore-grub-with-btrfs/index.md @@ -12,7 +12,8 @@ sdb - HDD на 1000GB. Используется только для `home` ![](img/IMG_20240426_113454_533_1.jpg) -Итак, в случае наличия поврежденной записи GRUB мы увидим следующее приветствие: +Итак, в случае наличия повреждённой записи GRUB мы увидим следующее приветствие: + ```shell GNU GRUB version... Minimal BASH-like line editing... @@ -20,6 +21,7 @@ grub> ``` Теперь наша задача войти в систему. Для этого нам потребуется сначала найти директорию `boot` в корневом разделе. Но в GRUB свое обозначение разделов. Выведем список разделов командой `ls` и увидим примерно следующее: + ``` (proc) (hd0) (hd0,gpt2) (hd0,gpt1) (hd1) (hd1,gpt3), (hd1,gpt2), (hd1,gpt1) (hd2) (hd2,gpt1) ``` @@ -30,11 +32,11 @@ grub> `ls (hd0,gpt2)/` -`grub/ ventoy/ efi/ ENROLL_THIS_KEY_IN_MOKMANAGER.cer tool/` - очевидно мы нашли вставленный в компьютер USB-носитель с Ventoy'ем. Значит, диск hd0 нас больше не интересует +`grub/ ventoy/ efi/ ENROLL_THIS_KEY_IN_MOKMANAGER.cer tool/` - очевидно мы нашли вставленный в компьютер USB-носитель с Ventoy. Значит, диск hd0 нас больше не интересует `ls (hd2,gpt1)/` -`@home/` - мы нашли раздел нашего HDD-диска, на котором размещен раздел `/home`. Значит, диск hd2 нас больше не интересует +`@home/` - мы нашли раздел нашего HDD-диска, на котором размещён раздел `/home`. Значит, диск hd2 нас больше не интересует `ls (hd1,gpt1)/` @@ -52,7 +54,7 @@ grub> `dev/ run/ selinux/ boot/ lib/ sbin/ ...` - теперь нам видна структура корневого раздела, в котором также присутствует директория `/boot`. -Теперь наша задача найти и указать GRUB путь к образу ядра Linux, путь к корневому разделу (мы уже знаем, что это будет `root=/dev/sda3`) и путь к образу Initrd. Для этого еще углубимся в файловую систему +Теперь наша задача найти и указать GRUB путь к образу ядра Linux, путь к корневому разделу (мы уже знаем, что это будет `root=/dev/sda3`) и путь к образу Initrd. Для этого ещё углубимся в файловую систему `ls (hd1,gpt3)/@/boot/` @@ -68,8 +70,8 @@ grub> `boot` -После выполнения последней команды система начнет загружаться и мы сможем войти в нее. Войдя в Параметрах системы KDE/Рабочая среда/Запуск и завершение/Загрузчик GRUB2 мы увидим то, что записей нет. Это говорит о том, что мы вошли в систему, но конфигурация GRUB автоматически не записалась. То есть если ничего не изменить, то при следующей перезагрузке мы попадем в GRUB. Для исправления ситуации устанавливаем GRUB +После выполнения последней команды система начнёт загружаться и мы сможем войти в неё. Войдя в Параметрах системы KDE/Рабочая среда/Запуск и завершение/Загрузчик GRUB2 мы увидим то, что записей нет. Это говорит о том, что мы вошли в систему, но конфигурация GRUB автоматически не записалась. То есть если ничего не изменить, то при следующей перезагрузке мы попадём в GRUB. Для исправления ситуации устанавливаем GRUB `apt-get install grub` -После установки GRUB, он автоматически создаст и сохранит конфигурацию. Увидеть это можно будет вновь зайдя в Параметрах системы KDE/Рабочая среда/Запуск и завершение/Загрузчик GRUB2. На этом восстановление поврежденной записи GRUB будет завершено +После установки GRUB, он автоматически создаст и сохранит конфигурацию. Увидеть это можно будет вновь зайдя в Параметрах системы KDE/Рабочая среда/Запуск и завершение/Загрузчик GRUB2. На этом восстановление повреждённой записи GRUB будет завершено diff --git a/docs/workarrounds/lightdm-does-not-remember-last-session/index.md b/docs/workarrounds/lightdm-does-not-remember-last-session/index.md index 0c20ce5..528eacd 100644 --- a/docs/workarrounds/lightdm-does-not-remember-last-session/index.md +++ b/docs/workarrounds/lightdm-does-not-remember-last-session/index.md @@ -4,10 +4,10 @@ title: LightDM не запоминает последнюю выбранную # LightDM не запоминает последнюю выбранную сессию -Распространённая проблема, LightDM просто не запоминает сеанс, который вы использовали в прошлый раз и каждый раз предлагает вам загрузиться в Plasma (X11). +Распространённая проблема, LightDM просто не запоминает сеанс, который вы использовали в прошлый раз и каждый раз предлагает вам загрузиться в Plasma (X11). ## Решение проблемы Проблема решается установкой пакета `accountsservice`. Как это сделать описывается в этой статье: -- [Отсутствует список пользователей в настройках](/workarrounds/settings-user-no-list/) \ No newline at end of file +- [Отсутствует список пользователей в настройках](/workarrounds/settings-user-no-list/) diff --git a/docs/workarrounds/settings-user-no-list/index.md b/docs/workarrounds/settings-user-no-list/index.md index a0bed45..a263628 100644 --- a/docs/workarrounds/settings-user-no-list/index.md +++ b/docs/workarrounds/settings-user-no-list/index.md @@ -19,11 +19,13 @@ su - apt-get update apt-get install accountsservice ``` + ```shell[epm] epm -i accountsservice ``` + ::: Теперь перезайдите в параметры системы для вступления изменений в силу. -![Список пользователей в настройках](./img/settings-user-no-list-2.png) \ No newline at end of file +![Список пользователей в настройках](./img/settings-user-no-list-2.png) diff --git a/tsconfig.json b/tsconfig.json index 2ffd07d..8d55733 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,25 +1,17 @@ { - "compilerOptions": { - "target": "ESNext", - "module": "ESNext", - "moduleResolution": "Node", - "allowSyntheticDefaultImports": true, - "resolveJsonModule": true, - "types": [ - "node", - "vite/client" - ], - "baseUrl": "./", - "paths": { - "@/*": ["./*"], - "@vitepress/theme/*": ["node_modules/vitepress/dist/client/theme-default/*"] - }, - }, - "include": [ - "/*.d.ts", - "/*.ts", - ], - "exclude": [ - "node_modules" - ] - } \ No newline at end of file + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true, + "resolveJsonModule": true, + "types": ["node", "vite/client"], + "baseUrl": "./", + "paths": { + "@/*": ["./*"], + "@vitepress/theme/*": ["node_modules/vitepress/dist/client/theme-default/*"] + } + }, + "include": ["/*.d.ts", "/*.ts"], + "exclude": ["node_modules"] +} diff --git a/uno.config.ts b/uno.config.ts index 612b148..6e74ed7 100644 --- a/uno.config.ts +++ b/uno.config.ts @@ -4,18 +4,18 @@ export default defineConfig({ shortcuts: [], presets: [ presetUno({ - dark: 'class', + dark: 'class' }), presetAttributify(), presetIcons({ prefix: 'i-', scale: 1.2, // size: 1.2 rem extraProperties: { - 'display': 'inline-block', + display: 'inline-block', 'vertical-align': 'middle', - 'min-width': '1.2rem', + 'min-width': '1.2rem' }, - warn: true, - }), - ], -}) \ No newline at end of file + warn: true + }) + ] +})