1
0
Fork 0

added some setup scripts

This commit is contained in:
Kim, Jimin 2022-01-30 13:58:16 +09:00
parent d4f03a5cbe
commit a4109a744c
15 changed files with 1135 additions and 225 deletions

View file

@ -1,4 +1,11 @@
{
"cSpell.words": ["developomp", "flatpak", "pamac"],
"cSpell.words": [
"alacritty",
"btop",
"developomp",
"flatpak",
"pamac",
"ungoogled"
],
"python.formatting.provider": "black"
}

View file

@ -1,224 +0,0 @@
[Desktop Entry]
Version=1.0
Name=Brave
# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
GenericName=Web Browser
GenericName[ar]=متصفح الشبكة
GenericName[bg]=Уеб браузър
GenericName[ca]=Navegador web
GenericName[cs]=WWW prohlížeč
GenericName[da]=Browser
GenericName[de]=Web-Browser
GenericName[el]=Περιηγητής ιστού
GenericName[en_GB]=Web Browser
GenericName[es]=Navegador web
GenericName[et]=Veebibrauser
GenericName[fi]=WWW-selain
GenericName[fr]=Navigateur Web
GenericName[gu]=
GenericName[he]=דפדפן אינטרנט
GenericName[hi]=
GenericName[hu]=Webböngésző
GenericName[it]=Browser Web
GenericName[ja]=
GenericName[kn]=
GenericName[ko]=
GenericName[lt]=Žiniatinklio naršyklė
GenericName[lv]=Tīmekļa pārlūks
GenericName[ml]=
GenericName[mr]=
GenericName[nb]=Nettleser
GenericName[nl]=Webbrowser
GenericName[pl]=Przeglądarka WWW
GenericName[pt]=Navegador Web
GenericName[pt_BR]=Navegador da Internet
GenericName[ro]=Navigator de Internet
GenericName[ru]=Веб-браузер
GenericName[sl]=Spletni brskalnik
GenericName[sv]=Webbläsare
GenericName[ta]= ி
GenericName[th]=
GenericName[tr]=Web Tarayıcı
GenericName[uk]=Навігатор Тенет
GenericName[zh_CN]=
GenericName[zh_HK]=
GenericName[zh_TW]=
# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
GenericName[bn]=
GenericName[fil]=Web Browser
GenericName[hr]=Web preglednik
GenericName[id]=Browser Web
GenericName[or]=
GenericName[sk]=WWW prehliadač
GenericName[sr]=Интернет прегледник
GenericName[te]= ి
GenericName[vi]=B duyt Web
# Gnome and KDE 3 uses Comment.
Comment=Access the Internet
Comment[ar]=الدخول إلى الإنترنت
Comment[bg]=Достъп до интернет
Comment[bn]=ি
Comment[ca]=Accedeix a Internet
Comment[cs]=Přístup k internetu
Comment[da]=Få adgang til internettet
Comment[de]=Internetzugriff
Comment[el]=Πρόσβαση στο Διαδίκτυο
Comment[en_GB]=Access the Internet
Comment[es]=Accede a Internet.
Comment[et]=Pääs Internetti
Comment[fi]=Käytä internetiä
Comment[fil]=I-access ang Internet
Comment[fr]=Accéder à Internet
Comment[gu]=
Comment[he]=גישה אל האינטרנט
Comment[hi]= ि
Comment[hr]=Pristup Internetu
Comment[hu]=Internetelérés
Comment[id]=Akses Internet
Comment[it]=Accesso a Internet
Comment[ja]=
Comment[kn]= ಿಿ
Comment[ko]=
Comment[lt]=Interneto prieiga
Comment[lv]=Piekļūt internetam
Comment[ml]=
Comment[mr]=
Comment[nb]=Gå til Internett
Comment[nl]=Verbinding maken met internet
Comment[or]=
Comment[pl]=Skorzystaj z internetu
Comment[pt]=Aceder à Internet
Comment[pt_BR]=Acessar a internet
Comment[ro]=Accesaţi Internetul
Comment[ru]=Доступ в Интернет
Comment[sk]=Prístup do siete Internet
Comment[sl]=Dostop do interneta
Comment[sr]=Приступите Интернету
Comment[sv]=Gå ut på Internet
Comment[ta]=
Comment[te]= ి
Comment[th]=
Comment[tr]=İnternet'e erişin
Comment[uk]=Доступ до Інтернету
Comment[vi]=Truy cp Internet
Comment[zh_CN]=访
Comment[zh_HK]=
Comment[zh_TW]=
StartupNotify=true
StartupWMClass=brave-browser
TryExec=brave
Exec=brave %U
Terminal=false
Icon=brave-desktop
Type=Application
Categories=Network;WebBrowser;
MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ipfs;x-scheme-handler/ipns;
Actions=new-window;new-private-window;
[Desktop Action new-window]
Name=New Window
Name[am]=
Name[ar]=نافذة جديدة
Name[bg]=Нов прозорец
Name[bn]=
Name[ca]=Finestra nova
Name[cs]=Nové okno
Name[da]=Nyt vindue
Name[de]=Neues Fenster
Name[el]=Νέο Παράθυρο
Name[en_GB]=New Window
Name[es]=Nueva ventana
Name[et]=Uus aken
Name[fa]=پنجره جدید
Name[fi]=Uusi ikkuna
Name[fil]=New Window
Name[fr]=Nouvelle fenêtre
Name[gu]= િ
Name[hi]= ि
Name[hr]=Novi prozor
Name[hu]=Új ablak
Name[id]=Jendela Baru
Name[it]=Nuova finestra
Name[iw]=חלון חדש
Name[ja]=
Name[kn]= ಿ
Name[ko]=
Name[lt]=Naujas langas
Name[lv]=Jauns logs
Name[ml]=ി ി
Name[mr]= ि
Name[nl]=Nieuw venster
Name[no]=Nytt vindu
Name[pl]=Nowe okno
Name[pt]=Nova janela
Name[pt_BR]=Nova janela
Name[ro]=Fereastră nouă
Name[ru]=Новое окно
Name[sk]=Nové okno
Name[sl]=Novo okno
Name[sr]=Нови прозор
Name[sv]=Nytt fönster
Name[sw]=Dirisha Jipya
Name[ta]=ி
Name[te]= ి
Name[th]=
Name[tr]=Yeni Pencere
Name[uk]=Нове вікно
Name[vi]=Ca s Mi
Name[zh_CN]=
Name[zh_TW]=
Exec=brave
[Desktop Action new-private-window]
Name=New Incognito Window
Name[ar]=نافذة جديدة للتصفح المتخفي
Name[bg]=Нов прозорец инкогнито
Name[bn]=
Name[ca]=Finestra d'incògnit nova
Name[cs]=Nové anonymní okno
Name[da]=Nyt inkognitovindue
Name[de]=Neues Inkognito-Fenster
Name[el]=Νέο παράθυρο για ανώνυμη περιήγηση
Name[en_GB]=New Incognito window
Name[es]=Nueva ventana de incógnito
Name[et]=Uus inkognito aken
Name[fa]=پنجره جدید حالت ناشناس
Name[fi]=Uusi incognito-ikkuna
Name[fil]=Bagong Incognito window
Name[fr]=Nouvelle fenêtre de navigation privée
Name[gu]= િ
Name[hi]= ि
Name[hr]=Novi anoniman prozor
Name[hu]=Új Inkognitóablak
Name[id]=Jendela Penyamaran baru
Name[it]=Nuova finestra di navigazione in incognito
Name[iw]=חלון חדש לגלישה בסתר
Name[ja]=
Name[kn]= ಿ
Name[ko]= 릿
Name[lt]=Naujas inkognito langas
Name[lv]=Jauns inkognito režīma logs
Name[ml]=ി ി
Name[mr]= ि
Name[nl]=Nieuw incognitovenster
Name[no]=Nytt inkognitovindu
Name[pl]=Nowe okno incognito
Name[pt]=Nova janela de navegação anónima
Name[pt_BR]=Nova janela anônima
Name[ro]=Fereastră nouă incognito
Name[ru]=Новое окно в режиме инкогнито
Name[sk]=Nové okno inkognito
Name[sl]=Novo okno brez beleženja zgodovine
Name[sr]=Нови прозор за прегледање без архивирања
Name[sv]=Nytt inkognitofönster
Name[ta]=ி ி
Name[te]= ి
Name[th]=
Name[tr]=Yeni Gizli pencere
Name[uk]=Нове вікно в режимі анонімного перегляду
Name[vi]=Ca s n danh mi
Name[zh_CN]=
Name[zh_TW]=
Exec=brave --incognito
MimeType=x-scheme-handler/unknown;x-scheme-handler/about;text/html;text/xml;application/xhtml_xml;image/webp;x-scheme-handler/http;x-scheme-handler/https;

View file

@ -0,0 +1,340 @@
[Desktop Entry]
Version=1.0
Name=LibreWolf
GenericName=Web Browser
GenericName[ar]=متصفح ويب
GenericName[ast]=Restolador Web
GenericName[bn]=
GenericName[ca]=Navegador web
GenericName[cs]=Webový prohlížeč
GenericName[da]=Webbrowser
GenericName[de]=Webbrowser
GenericName[el]=Περιηγητής διαδικτύου
GenericName[es]=Navegador web
GenericName[et]=Veebibrauser
GenericName[fa]=مرورگر اینترنتی
GenericName[fi]=WWW-selain
GenericName[fr]=Navigateur Web
GenericName[gl]=Navegador Web
GenericName[he]=דפדפן אינטרנט
GenericName[hr]=Web preglednik
GenericName[hu]=Webböngésző
GenericName[it]=Browser web
GenericName[ja]=
GenericName[ko]=
GenericName[ku]=Geroka torê
GenericName[lt]=Interneto naršyklė
GenericName[nb]=Nettleser
GenericName[nl]=Webbrowser
GenericName[nn]=Nettlesar
GenericName[no]=Nettleser
GenericName[pl]=Przeglądarka WWW
GenericName[pt]=Navegador Web
GenericName[pt_BR]=Navegador Web
GenericName[ro]=Navigator Internet
GenericName[ru]=Веб-браузер
GenericName[sk]=Internetový prehliadač
GenericName[sl]=Spletni brskalnik
GenericName[sv]=Webbläsare
GenericName[tr]=Web Tarayıcı
GenericName[ug]=توركۆرگۈ
GenericName[uk]=Веб-браузер
GenericName[vi]=Trình duyt Web
GenericName[zh_CN]=
GenericName[zh_TW]=
Comment=Browse the World Wide Web
Comment[ar]=تصفح الشبكة العنكبوتية العالمية
Comment[ast]=Restola pela Rede
Comment[bn]=
Comment[ca]=Navegueu per el web
Comment[cs]=Prohlížení stránek World Wide Webu
Comment[da]=Surf på internettet
Comment[de]=Im Internet surfen
Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web)
Comment[es]=Navegue por la web
Comment[et]=Lehitse veebi
Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
Comment[fi]=Selaa Internetin WWW-sivuja
Comment[fr]=Naviguer sur le Web
Comment[gl]=Navegar pola rede
Comment[he]=גלישה ברחבי האינטרנט
Comment[hr]=Pretražite web
Comment[hu]=A világháló böngészése
Comment[it]=Esplora il web
Comment[ja]=
Comment[ko]=
Comment[ku]=Li torê bigere
Comment[lt]=Naršykite internete
Comment[nb]=Surf på nettet
Comment[nl]=Verken het internet
Comment[nn]=Surf på nettet
Comment[no]=Surf på nettet
Comment[pl]=Przeglądanie stron WWW
Comment[pt]=Navegue na Internet
Comment[pt_BR]=Navegue na Internet
Comment[ro]=Navigați pe Internet
Comment[ru]=Доступ в Интернет
Comment[sk]=Prehliadanie internetu
Comment[sl]=Brskajte po spletu
Comment[sv]=Surfa på webben
Comment[tr]=İnternet'te Gezinin
Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ
Comment[uk]=Перегляд сторінок Інтернету
Comment[vi]=Đ duyt các trang web
Comment[zh_CN]=
Comment[zh_TW]=
Keywords=Internet;WWW;Browser;Web;Explorer
Keywords[ar]=انترنت;إنترنت;متصفح;ويب;وب
Keywords[ast]=Internet;WWW;Restolador;Web;Esplorador
Keywords[ca]=Internet;WWW;Navegador;Web;Explorador;Explorer
Keywords[cs]=Internet;WWW;Prohlížeč;Web;Explorer
Keywords[da]=Internet;Internettet;WWW;Browser;Browse;Web;Surf;Nettet
Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen
Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Περιηγητής;LibreWolf;Φιρεφοχ;Ιντερνετ
Keywords[es]=Explorador;Internet;WWW
Keywords[fi]=Internet;WWW;Browser;Web;Explorer;selain;Internet-selain;internetselain;verkkoselain;netti;surffaa
Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur
Keywords[he]=דפדפן;אינטרנט;רשת;אתרים;אתר;פיירפוקס;מוזילה;
Keywords[hr]=Internet;WWW;preglednik;Web
Keywords[hu]=Internet;WWW;Böngésző;Web;Háló;Net;Explorer
Keywords[it]=Internet;WWW;Browser;Web;Navigatore
Keywords[is]=Internet;WWW;Vafri;Vefur;Netvafri;Flakk
Keywords[ja]=Internet;WWW;Web;;;;
Keywords[nb]=Internett;WWW;Nettleser;Explorer;Web;Browser;Nettside
Keywords[nl]=Internet;WWW;Browser;Web;Explorer;Verkenner;Website;Surfen;Online
Keywords[pt]=Internet;WWW;Browser;Web;Explorador;Navegador
Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador
Keywords[ru]=Internet;WWW;Browser;Web;Explorer;интернет;браузер;веб;файрфокс;огнелис
Keywords[sk]=Internet;WWW;Prehliadač;Web;Explorer
Keywords[sl]=Internet;WWW;Browser;Web;Explorer;Brskalnik;Splet
Keywords[tr]=İnternet;WWW;Tarayıcı;Web;Gezgin;Web sitesi;Site;sörf;çevrimiçi;tara
Keywords[uk]=Internet;WWW;Browser;Web;Explorer;Інтернет;мережа;переглядач;оглядач;браузер;веб;файрфокс;вогнелис;перегляд
Keywords[vi]=Internet;WWW;Browser;Web;Explorer;Trình duyt;Trang web
Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;;;;;LibreWolf;ff;;;
Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;;;;;;
Exec=/usr/lib/librewolf/librewolf %u
Icon=librewolf
Terminal=false
X-MultipleArgs=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
StartupNotify=true
StartupWMClass=LibreWolf
Categories=Network;WebBrowser;
Actions=new-window;new-private-window;
[Desktop Action new-window]
Name=New Window
Name[ach]=Dirica manyen
Name[af]=Nuwe venster
Name[an]=Nueva finestra
Name[ar]=نافذة جديدة
Name[as]=
Name[ast]=Ventana nueva
Name[az]=Yeni Pəncərə
Name[be]=Новае акно
Name[bg]=Нов прозорец
Name[bn_BD]= (N)
Name[bn_IN]=
Name[br]=Prenestr nevez
Name[brx]= '(N)
Name[bs]=Novi prozor
Name[ca]=Finestra nova
Name[cak]=K'ak'a' tzuwäch
Name[cs]=Nové okno
Name[cy]=Ffenestr Newydd
Name[da]=Nyt vindue
Name[de]=Neues Fenster
Name[dsb]=Nowe wokno
Name[el]=Νέο παράθυρο
Name[en_GB]=New Window
Name[en_US]=New Window
Name[en_ZA]=New Window
Name[eo]=Nova fenestro
Name[es_AR]=Nueva ventana
Name[es_CL]=Nueva ventana
Name[es_ES]=Nueva ventana
Name[es_MX]=Nueva ventana
Name[et]=Uus aken
Name[eu]=Leiho berria
Name[fa]=پنجره جدید
Name[ff]=Henorde Hesere
Name[fi]=Uusi ikkuna
Name[fr]=Nouvelle fenêtre
Name[fy_NL]=Nij finster
Name[ga_IE]=Fuinneog Nua
Name[gd]=Uinneag ùr
Name[gl]=Nova xanela
Name[gn]=Ovetã pyahu
Name[gu_IN]= િ
Name[he]=חלון חדש
Name[hi_IN]= ि
Name[hr]=Novi prozor
Name[hsb]=Nowe wokno
Name[hu]=Új ablak
Name[hy_AM]=Նոր Պատուհան
Name[id]=Jendela Baru
Name[is]=Nýr gluggi
Name[it]=Nuova finestra
Name[ja]=
Name[ja_JP-mac]=
Name[ka]=
Name[kk]=Жаңа терезе
Name[km]=
Name[kn]= ಿಿ
Name[ko]=
Name[kok]=
Name[ks]=نئئ وِنڈو
Name[lij]=Neuvo barcon
Name[lo]=
Name[lt]=Naujas langas
Name[ltg]=Jauns lūgs
Name[lv]=Jauns logs
Name[mai]= ि
Name[mk]=Нов прозорец
Name[ml]=ി
Name[mr]=
Name[ms]=Tetingkap Baru
Name[my]=
Name[nb_NO]=Nytt vindu
Name[ne_NP]=
Name[nl]=Nieuw venster
Name[nn_NO]=Nytt vindauge
Name[or]= ି
Name[pa_IN]= ਿ
Name[pl]=Nowe okno
Name[pt_BR]=Nova janela
Name[pt_PT]=Nova janela
Name[rm]=Nova fanestra
Name[ro]=Fereastră nouă
Name[ru]=Новое окно
Name[sat]= ि (N)
Name[si]=
Name[sk]=Nové okno
Name[sl]=Novo okno
Name[son]=Zanfun taaga
Name[sq]=Dritare e Re
Name[sr]=Нови прозор
Name[sv_SE]=Nytt fönster
Name[ta]=ி
Name[te]= ి
Name[th]=
Name[tr]=Yeni pencere
Name[tsz]=Eraatarakua jimpani
Name[uk]=Нове вікно
Name[ur]=نیا دریچہ
Name[uz]=Yangi oyna
Name[vi]=Ca s mi
Name[wo]=Palanteer bu bees
Name[xh]=Ifestile entsha
Name[zh_CN]=
Name[zh_TW]=
Exec=/usr/lib/librewolf/librewolf --new-window %u
[Desktop Action new-private-window]
Name=New Private Window
Name[ach]=Dirica manyen me mung
Name[af]=Nuwe privaatvenster
Name[an]=Nueva finestra privada
Name[ar]=نافذة خاصة جديدة
Name[as]= ি
Name[ast]=Ventana privada nueva
Name[az]=Yeni Məxfi Pəncərə
Name[be]=Новае акно адасаблення
Name[bg]=Нов прозорец за поверително сърфиране
Name[bn_BD]= ি
Name[bn_IN]= ি
Name[br]=Prenestr merdeiñ prevez nevez
Name[brx]= '
Name[bs]=Novi privatni prozor
Name[ca]=Finestra privada nova
Name[cak]=K'ak'a' ichinan tzuwäch
Name[cs]=Nové anonymní okno
Name[cy]=Ffenestr Breifat Newydd
Name[da]=Nyt privat vindue
Name[de]=Neues privates Fenster
Name[dsb]=Nowe priwatne wokno
Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
Name[en_GB]=New Private Window
Name[en_US]=New Private Window
Name[en_ZA]=New Private Window
Name[eo]=Nova privata fenestro
Name[es_AR]=Nueva ventana privada
Name[es_CL]=Nueva ventana privada
Name[es_ES]=Nueva ventana privada
Name[es_MX]=Nueva ventana privada
Name[et]=Uus privaatne aken
Name[eu]=Leiho pribatu berria
Name[fa]=پنجره ناشناس جدید
Name[ff]=Henorde Suturo Hesere
Name[fi]=Uusi yksityinen ikkuna
Name[fr]=Nouvelle fenêtre de navigation privée
Name[fy_NL]=Nij priveefinster
Name[ga_IE]=Fuinneog Nua Phríobháideach
Name[gd]=Uinneag phrìobhaideach ùr
Name[gl]=Nova xanela privada
Name[gn]=Ovetã ñemi pyahu
Name[gu_IN]= િ
Name[he]=חלון פרטי חדש
Name[hi_IN]= ि ि
Name[hr]=Novi privatni prozor
Name[hsb]=Nowe priwatne wokno
Name[hu]=Új privát ablak
Name[hy_AM]=Սկսել Գաղտնի դիտարկում
Name[id]=Jendela Mode Pribadi Baru
Name[is]=Nýr huliðsgluggi
Name[it]=Nuova finestra anonima
Name[ja]=
Name[ja_JP-mac]=
Name[ka]=
Name[kk]=Жаңа жекелік терезе
Name[km]=
Name[kn]= ಿ ಿಿ
Name[ko]=
Name[kok]= ि
Name[ks]=نْو پرایوٹ وینڈو
Name[lij]=Nêuvo barcón privòu
Name[lo]=
Name[lt]=Naujas privataus naršymo langas
Name[ltg]=Jauns privatais lūgs
Name[lv]=Jauns privātais logs
Name[mai]= ि ि (W)
Name[mk]=Нов приватен прозорец
Name[ml]=ി
Name[mr]= ि
Name[ms]=Tetingkap Persendirian Baharu
Name[my]=New Private Window
Name[nb_NO]=Nytt privat vindu
Name[ne_NP]= ि
Name[nl]=Nieuw privévenster
Name[nn_NO]=Nytt privat vindauge
Name[or]= ି ି
Name[pa_IN]= ਿ
Name[pl]=Nowe okno prywatne
Name[pt_BR]=Nova janela privativa
Name[pt_PT]=Nova janela privada
Name[rm]=Nova fanestra privata
Name[ro]=Fereastră privată nouă
Name[ru]=Новое приватное окно
Name[sat]= ि ि (W )
Name[si]= (W)
Name[sk]=Nové okno v režime Súkromné prehliadanie
Name[sl]=Novo zasebno okno
Name[son]=Sutura zanfun taaga
Name[sq]=Dritare e Re Private
Name[sr]=Нови приватан прозор
Name[sv_SE]=Nytt privat fönster
Name[ta]=ி ி
Name[te]= ి ి
Name[th]=
Name[tr]=Yeni gizli pencere
Name[tsz]=Juchiiti eraatarakua jimpani
Name[uk]=Приватне вікно
Name[ur]=نیا نجی دریچہ
Name[uz]=Yangi maxfiy oyna
Name[vi]=Ca s riêng tư mi
Name[wo]=Panlanteeru biir bu bees
Name[xh]=Ifestile yangasese entsha
Name[zh_CN]=
Name[zh_TW]=
Exec=/usr/lib/librewolf/librewolf --private-window %u

1
src/constants.py Normal file
View file

@ -0,0 +1 @@
tmp_dir = "/tmp/com.developomp.setup"

584
src/setup/__init__.py Normal file
View file

@ -0,0 +1,584 @@
"""
setup scripts require two things: name and setup function.
name is a string that contains what it'll show in the list, and setup() is what'll run when it is selected.
"""
from . import *
"""
setup_cpu_undervolting() {
# intel CPU undervolting for less heat and power consumption
# https://wiki.archlinux.org/index.php/Undervolting_CPU
package_install intel-undervolt
config_file=/etc/intel-undervolt.conf
# create backup in case anything goes wrong
sudo install --backup $config_file $config_file.bak
# Explanation:
# for lines that are not comments (lines that do not start with a hash)
# search for "undervolt <number> '<field>' <original value><comment>"
# and replaces with "undervolt <number> '<field>' -100 <comment>"
# This method does not preserve the space between the value and the comment.
# So this:
# value # space between comment and value: 2
# becomes this:
# value # space between comment and value: 1
sudo sed -i -e "/^[^#]/s/\(undervolt [0-9]* 'CPU'\) .*\(#.*\)/\1 -100 \2/" $config_file
sudo sed -i -e "/^[^#]/s/\(undervolt [0-9]* 'CPU Cache'\) .*\(#.*\)/\1 -100 \2/" $config_file
sudo intel-undervolt apply
sudo systemctl enable intel-undervolt
}
setup_deno() {
package_install deno
}
setup_discord() {
# assumes that plugins are located in ~/.config/BetterDiscord/plugins
# betterdiscordctl-git: BetterDiscord installer
package_install \
discord \
betterdiscordctl-git
install ./home/pomp/.config/autostart/discord.desktop ~/.config/autostart/
BD_PLUGINS=(
134 # https://betterdiscord.app/plugin/Avatar%20Hover
60 # https://betterdiscord.app/plugin/BadgesEverywhere
119 # https://betterdiscord.app/plugin/BetterCodeblocks
62 # https://betterdiscord.app/plugin/BetterNsfwTag
63 # https://betterdiscord.app/plugin/BetterSearchPage
228 # https://betterdiscord.app/plugin/CallTimeCounter
64 # https://betterdiscord.app/plugin/CharCounter
67 # https://betterdiscord.app/plugin/CompleteTimestamps
176 # https://betterdiscord.app/plugin/Copier
68 # https://betterdiscord.app/plugin/CopyRawMessage
69 # https://betterdiscord.app/plugin/CreationDate
186 # https://betterdiscord.app/plugin/DoNotTrack
132 # https://betterdiscord.app/plugin/EmoteReplacer
245 # https://betterdiscord.app/plugin/FreeEmojis
81 # https://betterdiscord.app/plugin/GoogleTranslateOption
284 # https://betterdiscord.app/plugin/GrammarCorrect
220 # https://betterdiscord.app/plugin/GuildProfile
83 # https://betterdiscord.app/plugin/ImageUtilities
295 # https://betterdiscord.app/plugin/InvisibleTyping
84 # https://betterdiscord.app/plugin/JoinedAtDate
85 # https://betterdiscord.app/plugin/LastMessageDate
287 # https://betterdiscord.app/plugin/Link-Profile-Picture
11 # https://betterdiscord.app/plugin/MemberCount
29 # https://betterdiscord.app/plugin/PermissionsViewer
158 # https://betterdiscord.app/plugin/PlatformIndicators
93 # https://betterdiscord.app/plugin/QuickMention
94 # https://betterdiscord.app/plugin/ReadAllNotificationsButton
179 # https://betterdiscord.app/plugin/RedditMentions
97 # https://betterdiscord.app/plugin/RevealAllSpoilersOption
98 # https://betterdiscord.app/plugin/SendLargeMessages
159 # https://betterdiscord.app/plugin/ShowAllActivities
291 # https://betterdiscord.app/plugin/ShowConnections
103 # https://betterdiscord.app/plugin/ShowHiddenChannels
104 # https://betterdiscord.app/plugin/SpellCheck
162 # https://betterdiscord.app/plugin/StaffTag
8 # https://betterdiscord.app/plugin/SuppressReplyMentions
253 # https://betterdiscord.app/plugin/Typing%20Users%20Avatars
196 # https://betterdiscord.app/plugin/TypingIndicator
293 # https://betterdiscord.app/plugin/UserDetails
)
log "installing betterdiscord plugins"
for id in "${BD_PLUGINS[@]}"; do
BD_PLUGIN_URL="https://betterdiscord.app/Download?id=$id"
log "installing $BD_PLUGIN_URL"
wget --content-disposition --no-clobber -P ~/.config/BetterDiscord/plugins "$BD_PLUGIN_URL"
done
POST_INSTALL+=("discord: run betterdiscordctl install")
}
setup_docker() {
package_install docker
sudo usermod -aG docker "${USER}"
sudo systemctl --now enable docker
}
setup_dotnet() {
package_install dotnet-sdk
}
setup_filezilla() {
package_install filezilla
}
setup_fonts() {
log "installing fonts"
# wget: For downloading zip files
# noto-fonts-emoji: Emoji fonts
# nerd-fonts-noto-sans-mono: Terminal font
# ttf-baekmuk: Korean font
package_install \
wget \
noto-fonts-emoji \
nerd-fonts-noto-sans-mono \
ttf-baekmuk
# path to temporarily save font related files
fonts_directory="$SCRIPT_DIR/tmp/fonts"
# fonts to download
font_names=(
"Audiowide"
"Varela Round"
"Ubuntu Mono"
"Nanum Gothic Coding"
)
# create fonts directory if it does not exist
if [ ! -d "$fonts_directory" ]; then
mkdir -p "$fonts_directory"
fi
# download and unzip font files if they're not downloaded already
for font_name in "${font_names[@]}"; do
zip_path="$fonts_directory/$font_name.zip"
# download and unzip if either zip file or unzipped directory exists
if [ ! -f "$zip_path" ] && [ ! -d "$fonts_directory/$font_name" ]; then
wget -O "$zip_path" "https://fonts.google.com/download?family=$font_name" # download zip file
unzip "$zip_path" -d "$fonts_directory/$font_name" # unzip file
rm "$zip_path" # remove zip file
fi
done
font_install_dir="$HOME/.local/share/fonts"
# create local fonts directory if it does not exist already
if [ ! -d "$font_install_dir" ]; then
mkdir -p "$font_install_dir"
fi
# "install" all fonts
find "$fonts_directory" -type f -name "*.ttf" | while read ttf_file_path; do
mv -f "$ttf_file_path" "$font_install_dir/${ttf_file_path##*/}"
done
# regenerate font cache
fc-cache -vf
# cleanup
rm -rf $fonts_directory
}
setup_freetube() {
pamac install freetube-bin
# todo: freetube data
}
setup_fstab() {
if cat /etc/fstab | grep "/media/pomp/data" &>/dev/null; then
return
fi
echo "UUID=1cea13a5-ea19-4023-99dd-4bfd062a288c /media/pomp/data ext4 defaults 0 2" | sudo tee -a /etc/fstab >/dev/null
log "added /media/pomp/data to fstab"
}
setup_dns() {
:
# https://1.1.1.1
}
setup_geogebra() {
package_install geogebra
}
setup_gimp() {
# photoshop but FOSS
package_install gimp
}
setup_git() {
package_install git
git config --global user.email "developomp@gmail.com"
git config --global user.name "developomp"
git config --global pull.rebase false
git config --global init.defaultBranch master
}
setup_gnome() {
# gnome, nvidia driver, and optimus manager
# gdm-prime gdm patched for optimus laptops
# vimix-cursors cursors
# vimix-gtk-themes-git gtk theme
# papirus-icon-theme icon theme
# gnome-backgrounds wallpapers and shit
# gwe nvidia GPU overclocking https://gitlab.com/leinardi/gwe
# nvidia nvidia GPU support
# nvidia-settings nvidia settings
# lib32-nvidia-utils 32bit nvidia driver utils
# optimus-manager-qt https://github.com/Shatur/optimus-manager-qt
package_install \
gdm-prime \
vimix-cursors \
vimix-gtk-themes-git \
papirus-icon-theme \
gnome-backgrounds \
gwe \
nvidia \
nvidia-settings \
lib32-nvidia-utils \
optimus-manager-qt
sudo systemctl enable gdm
sudo systemctl enable optimus-manager
install ./home/pomp/.config/autostart/gwe.desktop ~/.config/autostart/
install ./home/pomp/.config/autostart/io.optimus_manager.OptimusManagerQt.desktop ~/.config/autostart/
# prevent rootless X
sudo install -g root -o root -m u=rw,g=r,o=r ./etc/X11/Xwrapper.config /etc/X11/Xwrapper.config
load_dconf "gnome-desktop-interface.conf"
# set nvidia preferred mode on login
install ./home/pomp/.nvidia-preferred-mode.sh ~/
install ./home/pomp/.config/autostart/nvidia-preferred-mode.desktop ~/.config/autostart/
setup_gnome_apps
setup_alacritty # so I have a terminal to work with when only gnome is installed
cat >~/.config/user-dirs.dirs <<EOL
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="/media/pomp/data/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="/media/pomp/data/Documents"
XDG_MUSIC_DIR="/media/pomp/data/Music"
XDG_PICTURES_DIR="/media/pomp/data/Pictures"
XDG_VIDEOS_DIR="/media/pomp/data/Videos"
EOL
# Not using power switching
# read this wiki[^1] about power management with acpi call for more information
# [^1]: https://github.com/Askannz/optimus-manager/wiki/A-guide--to-power-management-options#configuration-4--acpi_call
# todo: gwe mode: ultra(270,660)
POST_INSTALL+=("gnome: reboot")
}
setup_gnome_apps() {
# alacarte: application menu editor
# baobab: Disk usage analysis
# cheese: take photo/video with camera
# dconf-editor: GUI for dconf
# eog: photo viewer
# evince: document viewer
# file-roller: compress & decompress files/directories
# gnome-calculator: scientific calculator
# gnome-characters: Search for emojis, special characters, and symbols
# gnome-clocks: For multiple clocks for different time zones
# gnome-control-center: gnome settings
# gnome-disk-utility: gnome disk management
# gnome-font-viewer: Managing fonts
# gnome-keyring: passwords and keys
# gnome-logs: GUI for systemd journal
# gnome-screenshot: take screenshots
# gnome-system-monitor: show system processes
# gnome-tweaks: shows extra settings
# gpick: color picker
# nautilus: gnome file manager
# sushi: quick previewer for nautilus
package_install \
alacarte \
baobab \
cheese \
dconf-editor \
eog \
evince \
file-roller \
gnome-calculator \
gnome-characters \
gnome-clocks \
gnome-control-center \
gnome-disk-utility \
gnome-font-viewer \
gnome-keyring \
gnome-logs \
gnome-screenshot \
gnome-system-monitor \
gnome-tweaks \
gpick \
nautilus \
sushi
}
setup_gnome_extensions() {
log "installing gnome extensions"
# chrome-gnome-shell GNOME shell integration for Chrome
# gnome-shell-extension-installer Installation of gnome extensions from command line
# gnome-shell-extension-pop-shell-git for window tiling
package_install \
chrome-gnome-shell \
gnome-shell-extension-installer \
gnome-shell-extension-pop-shell-git
load_dconf "extension-pop-shell.conf"
extensions=(
36,"extension-lockkeys.conf" # lock-keys
906,"extension-sound-output-device-chooser.conf" # sound-output-device-chooser
1460,"extension-vitals.conf" # vitals
2741,"" # remove-alttab-delay-v2
2890,"extension-trayIconsReloaded.conf" # tray-icons-reloaded
3193,"extension-blur-my-shell.conf" # blur-my-shell
4000,"extension-barbar.conf" # babar
4158,"" # gnome-40-ui-improvements
)
for i in "${extensions[@]}"; do
IFS=","
set -- $i
# $1: extension id
# $2: extension dconf
log "installing: https://extensions.gnome.org/extension/$1"
gnome-shell-extension-installer $1 --yes --update
if [ ! -z $2 ]; then
load_dconf $2
fi
done
# enable extensions
load_dconf "extensions.conf"
gnome-shell-extension-installer --restart-shell
}
setup_go() {
# programming language
package_install go
}
setup_godot() {
# game engine
package_install godot
}
setup_grub() {
sudo sed -i '/GRUB_TIMEOUT=/c\GRUB_TIMEOUT=1' /etc/default/grub
sudo sed -i '/GRUB_TIMEOUT_STYLE=/c\GRUB_TIMEOUT_STYLE=hidden' /etc/default/grub
sudo grub-mkconfig -o /boot/grub/grub.cfg
}
setup_gsmartcontrol() {
# disk health checker
package_install gsmartcontrol
}
setup_inkscape() {
# adobe illustrator but FOSS
package_install inkscape
}
setup_jdk() {
# jdk-openjdk: latest jdk (17 as of writing)
# jdk8-openjdk: jdk8
# jdk11-openjdk: jdk11
package_install \
jdk-openjdk \
jdk8-openjdk \
jdk11-openjdk
}
setup_kdenlive() {
# video editing
package_install kdenlive-appimage
}
setup_keyboard() {
# Korean keyboard support
package_install ibus-hangul
POST_INSTALL+=("keyboard: setup korean keyboard and reboot")
}
setup_middleclickpaste() {
# prevents middle click paste
package_install xmousepasteblock-git
# todo: make it autostart
}
setup_mystiq() {
# video converter
package_install mystiq
}
setup_node() {
# nodejs: Javascript on servers!
# nvm: Node.JS version manager
# npm: node package manager
# yarn: better node package manager
package_install \
nodejs \
nvm \
npm \
yarn
# https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
# export PATH="$(yarn global bin):$PATH"
}
setup_obs() {
# obs-plugin-input-overlay-bin: show inputs in OBS
# obs-studio-browser: screen recording and streaming with browser overlay support
package_install \
obs-plugin-input-overlay-bin \
obs-studio-browser
}
setup_ordne() {
package_install ordne
}
setup_osu() {
package_install osu-lazer-bin
}
setup_pacman() {
# enable multilib, color, parallel download, and total download in /etc/pacman.conf
:
}
setup_pamac() {
smart_mkdir "$SCRIPT_DIR/tmp"
cd "$SCRIPT_DIR/tmp" || (error "failed to move to $SCRIPT_DIR/tmp for pamac installation" && exit 1)
sudo pacman --noconfirm -S --needed git
git clone https://aur.archlinux.org/libpamac-aur.git
cd ./libpamac-aur && makepkg -si
cd "$SCRIPT_DIR/tmp" || (error "failed to move to $SCRIPT_DIR/tmp for pamac installation" && exit 1)
git clone https://aur.archlinux.org/pamac-aur.git
cd ./pamac-aur && makepkg -si
cd "$SCRIPT_DIR" || (error "failed to come back to working directory after installing pamac" && exit 1)
# idk why but the permissions is set like this
sudo install -g root -o root -m u=rwx,g=rx,o=rx ./etc/pamac.conf /etc/pamac.conf
sudo install -g root -o root -m u=rw,g=r,o=r ./etc/pacman.conf /etc/pacman.conf
sudo pacman -Syyuu
}
setup_pavucontrol() {
# PulseAudio settings I use for redirecting desktop audio to microphone input
package_install pavucontrol
}
setup_pip() {
# package installer for python
package_install python-pip
}
setup_piper() {
# gaming mouse settings GUI
package_install piper
}
setup_pomky() {
install ./home/pomp/.local/bin/pomky ~/.local/bin/
install ./home/pomp/.config/autostart/pomky.desktop ~/.config/autostart/
}
setup_rust() {
package_install \
rust \
rustup
rustup install stable
}
setup_shfmt() {
package_install shfmt
}
setup_steam() {
package_install steam
}
setup_timeshift() {
# backup and restore system
package_install timeshift
}
setup_unity() {
# game engine
package_install unityhub
POST_INSTALL+=("Change editors location")
}
setup_vim() {
# vim plugin manager
package_install vim-plug
install ./home/pomp/.vimrc ~
POST_INSTALL+=("Install vim plugins with :PlugInstall command")
}
setup_virtualbox() {
# https://wiki.archlinux.org/title/VirtualBox
package_install \
virtualbox \
virtualbox-host-modules-arch \
virtualbox-ext-oracle
sudo systemctl enable systemd-modules-load
sudo systemctl start systemd-modules-load
sudo modprobe vboxdrv
}
setup_wine() {
# wine: compatibility layer
# wine-gecko: internet explorer for wine
# wine-mono: .NET runtime for wine
# winetricks: wine helper script
package_install \
wine \
wine-gecko \
wine-mono \
winetricks
# WINEARCH=win32 WINEPREFIX=~/.win32/ winecfg
# winetricks allfonts
# winetricks settings fontsmooth=rgb
}
dnspy
"""

17
src/setup/alacritty.py Normal file
View file

@ -0,0 +1,17 @@
from ..constants import tmp_dir
from ..util import pamac_install, smart_copy
from os import makedirs
name = "Alacritty terminal"
def setup() -> None:
"""terminal app written in rust"""
pamac_install("alacritty")
makedirs("~/.config/alacritty/")
smart_copy(
f"{tmp_dir}/home/pomp/.config/alacritty/alacritty.yml",
"~/.config/alacritty/alacritty.yml",
)

9
src/setup/blender.py Normal file
View file

@ -0,0 +1,9 @@
from ..util import flatpak_install
name = "Blender"
def setup():
"""3D graphics tool"""
flatpak_install("org.blender.Blender")

23
src/setup/browsers.py Normal file
View file

@ -0,0 +1,23 @@
from ..util import flatpak_install, smart_copy
from ..constants import tmp_dir
name = "Browsers"
post_install = ["restore onetab"]
def setup():
""""""
# install librewolf
flatpak_install("io.gitlab.librewolf-community")
smart_copy(
f"{tmp_dir}/home/pomp/.config/autostart/librewolf.desktop",
"~/.config/autostart/librewolf.desktop",
)
# todo: settings
# install ungoogled chromium
flatpak_install("com.github.Eloston.UngoogledChromium")
# todo: DNS https cloudflare
# todo: tor browser

9
src/setup/btop.py Normal file
View file

@ -0,0 +1,9 @@
from ..util import pamac_install
name = "Btop"
def setup():
"""top but better"""
pamac_install("btop")

9
src/setup/office.py Normal file
View file

@ -0,0 +1,9 @@
from ..util import flatpak_install
name = "Office suite"
def setup():
"""MS office cracked 2022 pro+ deluxe v2.4"""
flatpak_install("org.onlyoffice.desktopeditors")

View file

@ -0,0 +1,9 @@
from ..util import flatpak_install
name = "Video player"
def setup():
"""gnome video player"""
flatpak_install("org.gnome.Totem")

72
src/setup/vscodium.py Normal file
View file

@ -0,0 +1,72 @@
from ..util import flatpak_install, smart_copy
from ..constants import tmp_dir
from os import system
name = "Vscodium"
def setup():
"""vscode without microsoft"""
flatpak_install("com.vscodium.codium")
# codium --list-extensions
extensions = (
"aaron-bond.better-comments",
"bierner.jsdoc-markdown-highlighting",
"dbaeumer.vscode-eslint",
"denoland.vscode-deno",
"DigitalBrainstem.javascript-ejs-support",
"dsznajder.es7-react-js-snippets",
"eamodio.gitlens",
"earshinov.sort-lines-by-selection",
"EditorConfig.EditorConfig",
"esbenp.prettier-vscode",
"foxundermoon.shell-format",
"geequlim.godot-tools",
"golang.go",
"jeff-tian.markdown-katex",
"jock.svg",
"matklad.rust-analyzer",
"mhutchie.git-graph",
"ms-python.python",
"ms-toolsai.jupyter",
"ms-toolsai.jupyter-keymap",
"ms-toolsai.jupyter-renderers",
"ms-vscode.hexeditor",
"naumovs.color-highlight",
"nico-castell.linux-desktop-file",
"PKief.material-icon-theme",
"qwtel.sqlite-viewer",
"Razoric.gdscript-toolkit-formatter",
"redwan-hossain.auto-rename-tag-clone",
"serayuzgur.crates",
"streetsidesoftware.code-spell-checker",
"styled-components.vscode-styled-components",
"svelte.svelte-vscode",
"tamasfe.even-better-toml",
"XadillaX.viml",
"zhuangtongfa.material-theme",
)
for extension in extensions:
system(f"codium --install-extension {extension}")
# autostart vscodium
smart_copy(
f"{tmp_dir}/home/pomp/.config/autostart/codium.desktop",
"~/.config/autostart/codium.desktop",
)
# vscodium settings
smart_copy(
f"{tmp_dir}/home/pomp/.config/VSCodium/User/settings.json",
"~/.config/VSCodium/User/settings.json",
)
# enable vscode extension store
smart_copy(
f"{tmp_dir}/home/pomp/.config/VSCodium/product.json",
"~/.config/VSCodium/product.json",
)

9
src/setup/wireshark.py Normal file
View file

@ -0,0 +1,9 @@
from ..util import flatpak_install
name = "Wireshark"
def setup():
"""network protocol analyzer GUI"""
flatpak_install("org.wireshark.Wireshark")

9
src/setup/zoom.py Normal file
View file

@ -0,0 +1,9 @@
from ..util import flatpak_install
name = "Zoom"
def setup():
"""gay video conference app"""
flatpak_install("us.zoom.Zoom")

36
src/setup/zsh.py Normal file
View file

@ -0,0 +1,36 @@
from ..util import pamac_install, smart_copy
from ..constants import tmp_dir
from .. import log
from os.path import isdir
from os import system
name = "Zsh"
def setup():
"""Objectively better shell"""
pamac_install("zsh")
if not isdir("/home/pomp/.oh-my-zsh"):
log.log("zsh already configured. Skipping.")
return
# install oh my zsh
system(
'sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"'
)
# install powerlevel10k theme
system(
"git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"
)
# install syntax highlighter
system(
"git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting"
)
# apply zshrc configuration
smart_copy(f"{tmp_dir}/home/pomp/.zshrc", "~/.zshrc")