Merge branch 'refactor2' of git.axenov.dev:anthony/shell into refactor2
This commit is contained in:
@@ -1,2 +1,3 @@
|
||||
.DS_Store
|
||||
*.bak
|
||||
*.log
|
||||
|
||||
@@ -1,241 +1,261 @@
|
||||
# Autogenerated at 10.07.2025 23:45 using ./gen-makefile
|
||||
# Autogenerated at 24.03.2026 00:34 using ./gen-makefile
|
||||
.DEFAULT_GOAL := help
|
||||
|
||||
#===============================================
|
||||
# Scripts listed in ./install
|
||||
#===============================================
|
||||
|
||||
##apache2: Install apache2 (latest)
|
||||
##anytype: Manage anytype (deb)
|
||||
anytype:
|
||||
@./install/anytype install
|
||||
|
||||
##apache2: Manage apache2 (apt)
|
||||
apache2:
|
||||
@./install/apache2
|
||||
@./install/apache2 install
|
||||
|
||||
##apt: Install software from apt
|
||||
##apt: Install basic software from apt
|
||||
apt:
|
||||
@./install/apt
|
||||
@./install/apt install
|
||||
|
||||
##canon-mg2500: Install Canon Pixma MG2500 + ppa
|
||||
##brew: Install software from brew
|
||||
brew:
|
||||
@./install/brew install
|
||||
|
||||
##canon-mg2500: Canon Pixma MG2500 + ppa
|
||||
canon-mg2500:
|
||||
@./install/canon-mg2500
|
||||
@./install/canon-mg2500 install
|
||||
|
||||
##chrome: Install google chrome (latest)
|
||||
##chrome: Google Chrome (latest)
|
||||
chrome:
|
||||
@./install/chrome
|
||||
@./install/chrome install
|
||||
|
||||
##clamav: ClamAV (WIP)
|
||||
##clamav: ClamAV
|
||||
clamav:
|
||||
@./install/clamav
|
||||
@./install/clamav install
|
||||
|
||||
##composer: Install composer (latest)
|
||||
composer:
|
||||
@./install/composer
|
||||
@./install/composer install
|
||||
|
||||
##docker: Install docker (latest) + ppa
|
||||
##docker: Docker + ppa
|
||||
docker:
|
||||
@./install/docker
|
||||
@./install/docker install
|
||||
|
||||
##dots: Install dotfiles
|
||||
dots:
|
||||
@./install/dots
|
||||
@./install/dots install
|
||||
|
||||
##droidcam: Install droidcam v1.9.0
|
||||
droidcam:
|
||||
@./install/droidcam
|
||||
@./install/droidcam install
|
||||
|
||||
##droidcam-obs: Install droidcam-obs plugin v1.5.1
|
||||
droidcam-obs:
|
||||
@./install/droidcam-obs
|
||||
@./install/droidcam-obs install
|
||||
|
||||
##_example: Example script
|
||||
_example:
|
||||
@./install/_example install
|
||||
|
||||
##flameshot: Install flameshot (latest)
|
||||
flameshot:
|
||||
@./install/flameshot
|
||||
|
||||
##frkn.deprecated: Install Wireguard + FRKN
|
||||
frkn.deprecated:
|
||||
@./install/frkn.deprecated
|
||||
@./install/flameshot install
|
||||
|
||||
##git: Install git (latest)
|
||||
git:
|
||||
@./install/git
|
||||
@./install/git install
|
||||
|
||||
##golang: Install golang v1.21.0
|
||||
##golang: Install golang
|
||||
golang:
|
||||
@./install/golang
|
||||
@./install/golang install
|
||||
|
||||
##grub-customizer: Install grub-customizer (latest + ppa)
|
||||
grub-customizer:
|
||||
@./install/grub-customizer
|
||||
|
||||
##jbmono: Install JetBrains Mono fonts
|
||||
jbmono:
|
||||
@./install/jbmono
|
||||
@./install/grub-customizer install
|
||||
|
||||
##kde-appmenu: Install KDE Window AppMenu Applet
|
||||
kde-appmenu:
|
||||
@./install/kde-appmenu
|
||||
@./install/kde-appmenu install
|
||||
|
||||
##kde-backports: Install KDE Backports
|
||||
kde-backports:
|
||||
@./install/kde-backports
|
||||
@./install/kde-backports install
|
||||
|
||||
##kde-file-templates: Install file templates (KDE)
|
||||
kde-file-templates:
|
||||
@./install/kde-file-templates
|
||||
@./install/kde-file-templates install
|
||||
|
||||
##kde-portal: Install KDE portal
|
||||
kde-portal:
|
||||
@./install/kde-portal
|
||||
@./install/kde-portal install
|
||||
|
||||
##keyd: Install keyd
|
||||
keyd:
|
||||
@./install/keyd install
|
||||
|
||||
##libreoffice: Install libreoffice
|
||||
libreoffice:
|
||||
@./install/libreoffice
|
||||
@./install/libreoffice install
|
||||
|
||||
##lite-xl: Install lite-xl v2.1.7
|
||||
lite-xl:
|
||||
@./install/lite-xl
|
||||
@./install/lite-xl install
|
||||
|
||||
##llmfit: Install llmfit
|
||||
llmfit:
|
||||
@./install/llmfit install
|
||||
|
||||
##mariadb: Install mariadb (latest) and php-mysql + phpMyAdmin (if php is installed)
|
||||
mariadb:
|
||||
@./install/mariadb
|
||||
@./install/mariadb install
|
||||
|
||||
##nerd-fonts: Install nerd-fonts
|
||||
nerd-fonts:
|
||||
@./install/nerd-fonts install
|
||||
|
||||
##nodejs: Install nodejs + npm via nvm
|
||||
nodejs:
|
||||
@./install/nodejs
|
||||
@./install/nodejs install
|
||||
|
||||
##ntfy: Install ntfy (latest) + ppa
|
||||
ntfy:
|
||||
@./install/ntfy
|
||||
@./install/ntfy install
|
||||
|
||||
##nvim: Install nvim + lazyvim
|
||||
nvim:
|
||||
@./install/nvim
|
||||
@./install/nvim install
|
||||
|
||||
##obs-studio: Install obs-studio (latest snap)
|
||||
obs-studio:
|
||||
@./install/obs-studio
|
||||
@./install/obs-studio install
|
||||
|
||||
##ollama: Install ollama
|
||||
ollama:
|
||||
@./install/ollama install
|
||||
|
||||
##omz-clean: Install omz (latest)
|
||||
omz-clean:
|
||||
@./install/omz-clean
|
||||
@./install/omz-clean install
|
||||
|
||||
##omz-fancy: Install omz fancy (powerline10k + MesloLGS font)
|
||||
omz-fancy:
|
||||
@./install/omz-fancy
|
||||
@./install/omz-fancy install
|
||||
|
||||
##openvpn: Install openvpn v2.6.3 (src)
|
||||
openvpn:
|
||||
@./install/openvpn
|
||||
@./install/openvpn install
|
||||
|
||||
##papirus: Install papirus-icon-theme (latest)
|
||||
papirus:
|
||||
@./install/papirus
|
||||
@./install/papirus install
|
||||
|
||||
##pgsql: Install postgresql (latest) and php-pgsql (if php is installed)
|
||||
pgsql:
|
||||
@./install/pgsql
|
||||
@./install/pgsql install
|
||||
|
||||
##php: Install php v8.4
|
||||
php:
|
||||
@./install/php
|
||||
@./install/php install
|
||||
|
||||
##phpcs: Install phpcs + php-cs-fixer
|
||||
phpcs:
|
||||
@./install/phpcs
|
||||
@./install/phpcs install
|
||||
|
||||
##phpmd: Install phpmd
|
||||
phpmd:
|
||||
@./install/phpmd
|
||||
@./install/phpmd install
|
||||
|
||||
##php-psalm: Install psalm
|
||||
php-psalm:
|
||||
@./install/php-psalm
|
||||
@./install/php-psalm install
|
||||
|
||||
##php-spx: Install php-spx
|
||||
php-spx:
|
||||
@./install/php-spx
|
||||
@./install/php-spx install
|
||||
|
||||
##phpstan: Install phpstan
|
||||
phpstan:
|
||||
@./install/phpstan
|
||||
@./install/phpstan install
|
||||
|
||||
##phpunit: Install phpunit
|
||||
phpunit:
|
||||
@./install/phpunit
|
||||
@./install/phpunit install
|
||||
|
||||
##postman: Install postman (latest)
|
||||
postman:
|
||||
@./install/postman
|
||||
@./install/postman install
|
||||
|
||||
##qt5: Install qt5
|
||||
qt5:
|
||||
@./install/qt5
|
||||
@./install/qt5 install
|
||||
|
||||
##rustdesk: Install rustdesk client (flatpak)
|
||||
##rustdesk: Install rustdesk client v1.4.2 (deb)
|
||||
rustdesk:
|
||||
@./install/rustdesk
|
||||
|
||||
##rustdesk-deb: Install rustdesk client v1.4.0 (deb)
|
||||
rustdesk-deb:
|
||||
@./install/rustdesk-deb
|
||||
@./install/rustdesk install
|
||||
|
||||
##snap: Install bunch of software from snap
|
||||
snap:
|
||||
@./install/snap
|
||||
@./install/snap install
|
||||
|
||||
##sublimemerge: Install Sublime Merge
|
||||
sublimemerge:
|
||||
@./install/sublimemerge
|
||||
@./install/sublimemerge install
|
||||
|
||||
##sublimetext: Install Sublime Text
|
||||
sublimetext:
|
||||
@./install/sublimetext
|
||||
@./install/sublimetext install
|
||||
|
||||
##suld: Samsung Unified Linux Driver repo
|
||||
suld:
|
||||
@./install/suld
|
||||
@./install/suld install
|
||||
|
||||
##syncthing: Install syncthing (latest) + ppa
|
||||
syncthing:
|
||||
@./install/syncthing
|
||||
@./install/syncthing install
|
||||
|
||||
##telebit: Install telebit (latest)
|
||||
telebit:
|
||||
@./install/telebit
|
||||
@./install/telebit install
|
||||
|
||||
##telegram: Install telegram (latest)
|
||||
telegram:
|
||||
@./install/telegram
|
||||
@./install/telegram install
|
||||
|
||||
##tilt: <no description>
|
||||
tilt:
|
||||
@./install/tilt install
|
||||
|
||||
##ulauncher: Install ulauncher (latest) + ppa
|
||||
ulauncher:
|
||||
@./install/ulauncher
|
||||
@./install/ulauncher install
|
||||
|
||||
##vivaldi: Install Vivaldi + ppa
|
||||
vivaldi:
|
||||
@./install/vivaldi
|
||||
@./install/vivaldi install
|
||||
|
||||
##vscode: VSCode deb-package
|
||||
vscode:
|
||||
@./install/vscode
|
||||
@./install/vscode install
|
||||
|
||||
##wine: Install wine (latest) + ppa
|
||||
wine:
|
||||
@./install/wine
|
||||
@./install/wine install
|
||||
|
||||
##youtube-dl: Install youtube-dl (src)
|
||||
youtube-dl:
|
||||
@./install/youtube-dl
|
||||
@./install/youtube-dl install
|
||||
|
||||
##ytdlcue: Install ytdlcue
|
||||
ytdlcue:
|
||||
@./install/ytdlcue
|
||||
@./install/ytdlcue install
|
||||
|
||||
##zint: Install zint (latest)
|
||||
zint:
|
||||
@./install/zint
|
||||
@./install/zint install
|
||||
|
||||
##zsh: Install vanilla zsh
|
||||
zsh:
|
||||
@./install/zsh
|
||||
@./install/zsh install
|
||||
|
||||
|
||||
#===============================================
|
||||
@@ -265,63 +285,59 @@ phpstack: php phptools
|
||||
|
||||
##^omz: Upgrade omz
|
||||
^omz:
|
||||
@./upgrade/omz
|
||||
@./upgrade/omz upgrade
|
||||
|
||||
#===============================================
|
||||
# Scripts listed in ./uninstall
|
||||
#===============================================
|
||||
|
||||
##/apache2: Uninstall apache2
|
||||
/apache2:
|
||||
@./uninstall/apache2
|
||||
|
||||
##/canon-mg2500: Uninstall Canon Pixma MG2500 + ppa
|
||||
/canon-mg2500:
|
||||
@./uninstall/canon-mg2500
|
||||
|
||||
##/chrome: Uninstall google chrome
|
||||
/chrome:
|
||||
@./uninstall/chrome
|
||||
@./uninstall/chrome remove
|
||||
|
||||
##/composer: Uninstall composer
|
||||
/composer:
|
||||
@./uninstall/composer
|
||||
@./uninstall/composer remove
|
||||
|
||||
##/docker: Uninstall docker + ppa
|
||||
/docker:
|
||||
@./uninstall/docker
|
||||
@./uninstall/docker remove
|
||||
|
||||
##/grub-customizer: Uninstall grub-customizer with ppa
|
||||
/grub-customizer:
|
||||
@./uninstall/grub-customizer
|
||||
@./uninstall/grub-customizer remove
|
||||
|
||||
##/lazynvim: <no description>
|
||||
/lazynvim:
|
||||
@./uninstall/lazynvim
|
||||
@./uninstall/lazynvim remove
|
||||
|
||||
##/lite-xl: Uninstall lite-xl
|
||||
/lite-xl:
|
||||
@./uninstall/lite-xl
|
||||
@./uninstall/lite-xl remove
|
||||
|
||||
##/omz: Uninstall omz
|
||||
/omz:
|
||||
@./uninstall/omz
|
||||
@./uninstall/omz remove
|
||||
|
||||
##/rustdesk: Uninstall rustdesk client
|
||||
/rustdesk:
|
||||
@./uninstall/rustdesk remove
|
||||
|
||||
##/sublimemerge: Uninstall Sublime Merge
|
||||
/sublimemerge:
|
||||
@./uninstall/sublimemerge
|
||||
@./uninstall/sublimemerge remove
|
||||
|
||||
##/sublimetext: Uninstall Sublime Text
|
||||
/sublimetext:
|
||||
@./uninstall/sublimetext
|
||||
@./uninstall/sublimetext remove
|
||||
|
||||
##/vivaldi: Uninstall vivaldi + ppa
|
||||
/vivaldi:
|
||||
@./uninstall/vivaldi
|
||||
@./uninstall/vivaldi remove
|
||||
|
||||
##/wine: Uninstall wine
|
||||
/wine:
|
||||
@./uninstall/wine
|
||||
@./uninstall/wine remove
|
||||
|
||||
#===============================================
|
||||
# Service goals
|
||||
|
||||
+3
-3
@@ -18,7 +18,7 @@ for file in ./install/*; do
|
||||
name=${name%.sh}
|
||||
desc=$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${file})
|
||||
[ -z "$desc" ] && desc='<no description>'
|
||||
echo -e "##${name}: ${desc}\n${name}:\n\t@${file}\n" >> Makefile
|
||||
echo -e "##${name}: ${desc}\n${name}:\n\t@${file} install\n" >> Makefile
|
||||
done;
|
||||
|
||||
cat << EOF >> Makefile
|
||||
@@ -47,7 +47,7 @@ for file in ./upgrade/*; do
|
||||
name=${name%.sh}
|
||||
desc=$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${file})
|
||||
[ -z "$desc" ] && desc='<no description>'
|
||||
echo -e "##${CHR_UPGRADE}${name}: ${desc}\n${CHR_UPGRADE}${name}:\n\t@${file}\n" >> Makefile
|
||||
echo -e "##${CHR_UPGRADE}${name}: ${desc}\n${CHR_UPGRADE}${name}:\n\t@${file} upgrade\n" >> Makefile
|
||||
done;
|
||||
|
||||
cat << EOF >> Makefile
|
||||
@@ -62,7 +62,7 @@ for file in ./uninstall/*; do
|
||||
name=${name%.sh}
|
||||
desc=$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${file})
|
||||
[ -z "$desc" ] && desc='<no description>'
|
||||
echo -e "##${CHR_UNINSTALL}${name}: ${desc}\n${CHR_UNINSTALL}${name}:\n\t@${file}\n" >> Makefile
|
||||
echo -e "##${CHR_UNINSTALL}${name}: ${desc}\n${CHR_UNINSTALL}${name}:\n\t@${file} remove\n" >> Makefile
|
||||
done;
|
||||
|
||||
cat << EOF >> Makefile
|
||||
|
||||
Executable
+46
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Manage anytype (deb)
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
installDir="$HOME/install/anytype"
|
||||
|
||||
install() {
|
||||
release="$(curl -s 'https://api.github.com/repos/anyproto/anytype-ts/releases/latest')"
|
||||
tag="$(echo "$release" | jq -r '.tag_name')"
|
||||
asset="$(echo "$release" | jq -r '.assets.[] | select(.name | test("amd64.deb$"))')"
|
||||
url="$(echo "$asset" | jq -r '.browser_download_url')"
|
||||
echo -e "$tag $url"
|
||||
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing anytype $tag"
|
||||
echo "==============================================="
|
||||
echo
|
||||
|
||||
mkdir -p "$installDir"
|
||||
filepath="$installDir/anytype_${tag}_amd46.deb"
|
||||
wget "$url" -O "$filepath"
|
||||
sudo dpkg -i "$filepath"
|
||||
|
||||
echo
|
||||
echo "Finish! $tag"
|
||||
echo
|
||||
}
|
||||
|
||||
remove() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Removing anytype"
|
||||
echo "==============================================="
|
||||
echo
|
||||
sudo apt purge -y anytype*
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
*) install ;;
|
||||
esac
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install software from brew
|
||||
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
|
||||
brew install \
|
||||
bash \
|
||||
stow \
|
||||
gnupg \
|
||||
pinentry-mac
|
||||
|
||||
echo "pinentry-program $(which pinentry-mac)" >> ~/.gnupg/gpg-agent.conf
|
||||
gpgconf --kill gpg-agent
|
||||
+16
-10
@@ -10,24 +10,27 @@ doRemove() {
|
||||
sudo apt purge -y docker* podman-docker containerd runc
|
||||
}
|
||||
|
||||
install_() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing Docker"
|
||||
echo "==============================================="
|
||||
echo
|
||||
doRemove
|
||||
installRepo() {
|
||||
sudo apt install -y ca-certificates lsb-release
|
||||
source /etc/os-release
|
||||
codename="$VERSION_CODENAME"
|
||||
key="/etc/apt/keyrings/docker.asc"
|
||||
arch=$(dpkg --print-architecture)
|
||||
sudo install -m 0755 -d /etc/apt/keyrings
|
||||
curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" -o "$key"
|
||||
sudo chmod a+r $key
|
||||
echo "deb [arch=$arch signed-by=$key] https://download.docker.com/linux/ubuntu $codename stable" \
|
||||
echo "deb [arch=$arch signed-by=$key] https://download.docker.com/linux/ubuntu $VERSION_CODENAME stable" \
|
||||
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
sudo apt update
|
||||
}
|
||||
|
||||
install() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing Docker"
|
||||
echo "==============================================="
|
||||
echo
|
||||
# doRemove
|
||||
installRepo
|
||||
sudo apt install -y \
|
||||
docker-ce \
|
||||
docker-ce-cli \
|
||||
@@ -53,7 +56,8 @@ upgrade() {
|
||||
docker-ce-cli \
|
||||
containerd.io \
|
||||
docker-buildx-plugin \
|
||||
docker-compose-plugin
|
||||
docker-compose-plugin \
|
||||
docker-model-plugin
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
@@ -74,5 +78,7 @@ remove() {
|
||||
case "$1" in
|
||||
u|upgrade|update) upgrade ;;
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
install-repo) installRepo ;;
|
||||
# remove-repo) removeRepo ;; #TODO
|
||||
*) install ;;
|
||||
esac
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install Wireguard + FRKN (deprecated)
|
||||
source "$( dirname $(readlink -e -- "${BASH_SOURCE}"))/../helpers.sh" || exit 255
|
||||
|
||||
# https://frkn.org/ru/installation
|
||||
|
||||
title
|
||||
|
||||
mkdir -p "$HOME/install/frkn"
|
||||
cd "$HOME/install/frkn"
|
||||
|
||||
apt_install wireguard jq
|
||||
|
||||
countries=(jp nl tr at ru se)
|
||||
for idx in ${!countries[@]}; do
|
||||
country=${countries[idx]}
|
||||
info "Downloading config for $country ($(expr $idx + 1)/${#countries[@]})"
|
||||
|
||||
json=$(curl -s "https://api.frkn.org/peer?location=$country" | jq)
|
||||
|
||||
iface_address=$(echo $json | jq -r .iface.address)
|
||||
iface_privkey=$(echo $json | jq -r .iface.key)
|
||||
iface_dns=$(echo $json | jq -r .iface.dns)
|
||||
peer_pubkey=$(echo $json | jq -r .peer.pubkey)
|
||||
peer_psk=$(echo $json | jq -r .peer.psk)
|
||||
peer_allowed_ips=$(echo $json | jq -r .peer.allowed_ips)
|
||||
peer_endpoint=$(echo $json | jq -r .peer.endpoint)
|
||||
|
||||
cat << EOF > "frkn-$country.conf"
|
||||
[Interface]
|
||||
Address = $iface_address
|
||||
DNS = $iface_dns
|
||||
PrivateKey = $iface_privkey
|
||||
|
||||
[Peer]
|
||||
PublicKey = $peer_pubkey
|
||||
PresharedKey = $peer_psk
|
||||
AllowedIPs = $peer_allowed_ips
|
||||
Endpoint = $peer_endpoint
|
||||
PersistentKeepalive = 25
|
||||
EOF
|
||||
|
||||
done
|
||||
|
||||
sudo cp frkn-*.conf /etc/wireguard/
|
||||
|
||||
[ $? = 0 ] && {
|
||||
echo
|
||||
success "Wireguard + FRKN installed!"
|
||||
wg --version
|
||||
info "Use 'wg-quick (up|down) frkn-($(implode '|' ${countries[@]}))' to control connections"
|
||||
info "Use 'sudo wg show' to see connection status"
|
||||
}
|
||||
+46
-17
@@ -1,28 +1,57 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install golang v1.21.0
|
||||
source "$( dirname $(readlink -e -- "${BASH_SOURCE}"))/../helpers.sh" || exit 255
|
||||
##makedesc: Install golang
|
||||
|
||||
# https://go.dev/dl/
|
||||
# https://golang.org/doc/install
|
||||
# https://www.vultr.com/docs/install-the-latest-version-of-golang-on-ubuntu
|
||||
# https://github.com/udhos/update-golang/blob/master/update-golang.sh
|
||||
|
||||
[ $1 ] && VERSION="$1" || VERSION="1.23.0"
|
||||
title "Installing golang v$VERSION..."
|
||||
set -eo pipefail
|
||||
|
||||
FILE="go$VERSION.linux-amd64.tar.gz"
|
||||
sudo rm -rf /usr/local/go && \
|
||||
download "https://golang.org/dl/$FILE" "/tmp/$FILE" && \
|
||||
sudo tar -xzf "/tmp/$FILE" -C /usr/local && \
|
||||
rm -rf "/tmp/$FILE" && \
|
||||
sudo chown $USER: -R /usr/local/go && \
|
||||
echo 'export PATH="/usr/local/go/bin:$PATH"' >> "$HOME/.profile" && \
|
||||
echo "export GOPATH=\"\$HOME/.go\"" >> "$HOME/.profile" && \
|
||||
source ~/.profile
|
||||
doRemove() {
|
||||
[ -d "/usr/local/go" ] && sudo rm -rf "/usr/local/go"
|
||||
}
|
||||
|
||||
[ $? = 0 ] && {
|
||||
install() {
|
||||
dlUrl="https://go.dev/dl"
|
||||
json=$(curl -sSL "$dlUrl/?mode=json")
|
||||
version=$(echo "$json" | jq -r '.[0].version')
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing golang v$version"
|
||||
echo "==============================================="
|
||||
echo
|
||||
latestJson=$(echo "$json" | jq -r '.[0].files.[] | select (.kind == "archive" and .os == "linux" and .arch == "amd64")')
|
||||
fileName=$(echo "$latestJson" | jq -r '.filename')
|
||||
fileUrl="$dlUrl/$fileName"
|
||||
downloadPath="$HOME/install"
|
||||
archivePath="$downloadPath/$fileName"
|
||||
doRemove
|
||||
[ -f "$archivePath" ] || wget "$fileUrl" -O "$archivePath"
|
||||
[ -f "$archivePath" ] && sudo tar -xzf "$archivePath" -C /usr/local
|
||||
sudo chown "$USER": -R /usr/local/go
|
||||
echo 'export PATH="/usr/local/go/bin:$PATH"' >> "$HOME/.profile"
|
||||
echo "export GOPATH=\"\$HOME/.go\"" >> "$HOME/.profile"
|
||||
echo
|
||||
success "golang installed!"
|
||||
info "NOTE: now run 'source ~/.profile' to apply new env vars"
|
||||
go version
|
||||
go install github.com/go-delve/delve/cmd/dlv@latest
|
||||
go install
|
||||
echo "Finish!"
|
||||
}
|
||||
|
||||
remove() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Removing golang"
|
||||
echo "==============================================="
|
||||
echo
|
||||
doRemove
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
*) install ;;
|
||||
esac
|
||||
|
||||
|
||||
Executable
+69
@@ -0,0 +1,69 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install keyd
|
||||
|
||||
# https://github.com/rvaiya/keyd
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
mkdir -p "$HOME/install"
|
||||
|
||||
install() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing keyd (latest)"
|
||||
echo "==============================================="
|
||||
echo
|
||||
hash git || { echo "ERROR: git not installed" ; exit 1; }
|
||||
cd "$HOME/install"
|
||||
git clone --depth=1 --single-branch https://github.com/rvaiya/keyd.git "$HOME/install/keyd"
|
||||
cd "$HOME/install/keyd"
|
||||
make && sudo make install
|
||||
sudo systemctl enable --now keyd
|
||||
echo
|
||||
echo "Finish!"
|
||||
}
|
||||
|
||||
upgrade() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Upgrading keyd"
|
||||
echo "==============================================="
|
||||
echo
|
||||
hash git || { echo "ERROR: git not installed" ; exit 1; }
|
||||
[ -d "$HOME/install/keyd" ] || { echo "ERROR: repo not found: $HOME/install/keyd" ; exit 1; }
|
||||
cd "$HOME/install/keyd"
|
||||
make && sudo make install
|
||||
sudo systemctl enable --now keyd
|
||||
sudo usermod -aG keyd "$(whoami)"
|
||||
echo
|
||||
echo "Finish!"
|
||||
}
|
||||
|
||||
restart() {
|
||||
sudo systemctl restart keyd
|
||||
}
|
||||
|
||||
reload() {
|
||||
sudo systemctl reload keyd
|
||||
}
|
||||
|
||||
remove() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Removing keyd"
|
||||
echo "==============================================="
|
||||
echo
|
||||
sudo dpkg -r keyd
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
restart) restart ;;
|
||||
reload) reload ;;
|
||||
u|upgrade|update) upgrade ;;
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
*) install ;;
|
||||
esac
|
||||
|
||||
Executable
+49
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install llmfit
|
||||
|
||||
# https://github.com/AlexsJones/llmfit
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
mkdir -p "$HOME/install"
|
||||
|
||||
install() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing llmfit (latest)"
|
||||
echo "==============================================="
|
||||
echo
|
||||
curl -fsSL https://llmfit.axjns.dev/install.sh | sh -s -- --local
|
||||
echo
|
||||
echo "Finish!"
|
||||
}
|
||||
|
||||
upgrade() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Upgrading llmfit"
|
||||
echo "==============================================="
|
||||
echo
|
||||
curl -fsSL https://llmfit.axjns.dev/install.sh | sh -s -- --local
|
||||
echo
|
||||
echo "Finish!"
|
||||
}
|
||||
|
||||
remove() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Removing llmfit"
|
||||
echo "==============================================="
|
||||
echo
|
||||
sudo rm -rf "$(which llmfit)"
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
u|upgrade) upgrade ;;
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
*) install ;;
|
||||
esac
|
||||
|
||||
+25
-17
@@ -5,20 +5,30 @@ set -eo pipefail
|
||||
|
||||
#TODO nokia-sans
|
||||
|
||||
downloadPath="$HOME/install/nerd-fonts"
|
||||
installPath="$HOME/.local/share/fonts/"
|
||||
url="https://github.com/ryanoasis/nerd-fonts/releases/latest/download"
|
||||
isMac() { uname -s | grep -q "Darwin"; }
|
||||
isLinux() { uname -s | grep -q "Linux"; }
|
||||
|
||||
fonts=(
|
||||
url="https://github.com/ryanoasis/nerd-fonts/releases/latest/download"
|
||||
downloadPath="$HOME/install/nerd-fonts"
|
||||
if isMac; then
|
||||
installPath="$HOME/Library/Fonts/"
|
||||
elif isLinux; then
|
||||
installPath="$HOME/.local/share/fonts/"
|
||||
else
|
||||
echo "This OS is not supported yet!"
|
||||
exit
|
||||
fi
|
||||
|
||||
fontsNames=(
|
||||
FiraCode
|
||||
FiraMono
|
||||
# FiraMono
|
||||
JetBrainsMono
|
||||
Meslo
|
||||
Noto
|
||||
# Noto
|
||||
RobotoMono
|
||||
Ubuntu
|
||||
UbuntuMono
|
||||
UbuntuSans
|
||||
# Ubuntu
|
||||
# UbuntuMono
|
||||
# UbuntuSans
|
||||
)
|
||||
|
||||
install() {
|
||||
@@ -29,15 +39,13 @@ install() {
|
||||
echo
|
||||
|
||||
[[ -d "$downloadPath" ]] || mkdir -p "$downloadPath"
|
||||
|
||||
for fontname in "${fonts[@]}"; do
|
||||
fontdir="$installPath/Nerd-$fontname"
|
||||
for fontname in "${fontsNames[@]}"; do
|
||||
fontDir="$installPath/Nerd-$fontname"
|
||||
wget "$url/$fontname.tar.xz" -O "$downloadPath/$fontname.tar.xz"
|
||||
[[ -d "$installPath/$fontname" ]] || mkdir -p "$fontdir"
|
||||
tar -xJf "$downloadPath/$fontname.tar.xz" -C "$fontdir"
|
||||
[[ -d "$installPath/$fontname" ]] || mkdir -p "$fontDir"
|
||||
tar -xJf "$downloadPath/$fontname.tar.xz" -C "$fontDir"
|
||||
done
|
||||
|
||||
fc-cache -vf "$installPath"
|
||||
isLinux && fc-cache -vf "$installPath"
|
||||
|
||||
echo
|
||||
echo "Finish!"
|
||||
@@ -52,7 +60,7 @@ remove() {
|
||||
echo
|
||||
|
||||
find "$installPath" -type d -name "Nerd-*" -exec rm -rf {} +
|
||||
fc-cache -vf "$installPath"
|
||||
isLinux && fc-cache -vf "$installPath"
|
||||
|
||||
echo
|
||||
echo "Finish!"
|
||||
|
||||
+57
-18
@@ -1,27 +1,66 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install nodejs + npm via nvm
|
||||
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing nodejs..."
|
||||
echo "==============================================="
|
||||
echo
|
||||
isMac() { uname -s | grep -q "Darwin"; }
|
||||
isLinux() { uname -s | grep -q "Linux"; }
|
||||
|
||||
installed() {
|
||||
command -v "$1" >/dev/null 2>&1
|
||||
install() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing nodejs + nvm..."
|
||||
echo "==============================================="
|
||||
echo
|
||||
|
||||
if isMac; then
|
||||
brew install nvm
|
||||
elif isLinux; then
|
||||
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
|
||||
else
|
||||
echo "This OS is not supported yet!"
|
||||
exit
|
||||
fi
|
||||
nvm install-latest-npm
|
||||
nvm install node
|
||||
nvm use node
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && source "$NVM_DIR/nvm.sh"
|
||||
[ -s "$NVM_DIR/bash_completion" ] && source "$NVM_DIR/bash_completion"
|
||||
|
||||
cat << EOF >> "$HOME/.profile"
|
||||
|
||||
# nvm (not nvim!)
|
||||
export NVM_DIR="\$HOME/.nvm" # nvim_autoinstalled
|
||||
[ -s "\$NVM_DIR/nvm.sh" ] && source "\$NVM_DIR/nvm.sh" # nvim_autoinstalled
|
||||
[ -s "\$NVM_DIR/bash_completion" ] && source "\$NVM_DIR/bash_completion" # nvim_autoinstalled
|
||||
|
||||
EOF
|
||||
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
|
||||
nvm current
|
||||
nvm ls
|
||||
}
|
||||
|
||||
installed "nvm" && sudo apt install -y --autoremove nodejs npm nvm
|
||||
remove() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Removing nodejs + nvm..."
|
||||
echo "==============================================="
|
||||
echo
|
||||
|
||||
! installed "nvm" && wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
|
||||
nvm unload
|
||||
rm -rf "$NVM_DIR"
|
||||
# sed -i "/NVM_DIR[=\].+/d" "$HOME/.profile"
|
||||
brew uninstall nvm
|
||||
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
nvm install-latest-npm
|
||||
nvm install node
|
||||
nvm use node
|
||||
echo "Finish!"
|
||||
nvm current
|
||||
nvm ls
|
||||
case "$1" in
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
*) install ;;
|
||||
esac
|
||||
|
||||
Executable
+61
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env bash
|
||||
##makedesc: Install ollama
|
||||
|
||||
# https://github.com/ollama/ollama
|
||||
|
||||
set -o pipefail
|
||||
|
||||
mkdir -p "$HOME/install"
|
||||
|
||||
install() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Installing ollama (latest)"
|
||||
echo "==============================================="
|
||||
echo
|
||||
curl -fsSL https://ollama.com/install.sh | sh
|
||||
echo
|
||||
echo "Finish!"
|
||||
}
|
||||
|
||||
upgrade() {
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Upgrading ollama"
|
||||
echo "==============================================="
|
||||
echo
|
||||
curl -fsSL https://ollama.com/install.sh | sh
|
||||
echo
|
||||
echo "Finish!"
|
||||
}
|
||||
|
||||
remove() {
|
||||
# https://docs.ollama.com/linux#uninstall
|
||||
echo
|
||||
echo "==============================================="
|
||||
echo "Removing ollama"
|
||||
echo "==============================================="
|
||||
echo
|
||||
sudo systemctl stop ollama
|
||||
sudo systemctl disable ollama
|
||||
sudo rm /etc/systemd/system/ollama.service
|
||||
sudo rm -r "$(which ollama | tr 'bin' 'lib')"
|
||||
sudo rm "$(which ollama)"
|
||||
sudo userdel ollama
|
||||
sudo groupdel ollama
|
||||
sudo rm -rf \
|
||||
/usr/bin/ollama \
|
||||
/usr/share/ollama \
|
||||
/usr/local/lib/ollama \
|
||||
/usr/local/bin/ollama
|
||||
echo
|
||||
echo "Finish!"
|
||||
echo
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
u|upgrade) upgrade ;;
|
||||
r|remove|d|delete|p|purge) remove ;;
|
||||
*) install ;;
|
||||
esac
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ download "https://dl.pstmn.io/download/latest/linux64" "$HOME/install/postman.ta
|
||||
[Desktop Entry]
|
||||
Name=Postman
|
||||
Exec=$HOME/.local/bin/postman %U
|
||||
Icon=$HOME/install/Postman/app/icons/icon_128x128.png
|
||||
Icon=$HOME/install/Postman/app/resources/app/assets/icon.png
|
||||
Categories=Development,Network
|
||||
Terminal=false
|
||||
Type=Application
|
||||
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
mkdir -p ~/install/tilt ~/.local/bin
|
||||
cd ~/install/tilt
|
||||
|
||||
KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt)
|
||||
curl -LO "https://dl.k8s.io/release/$KUBECTL_VERSION/bin/linux/amd64/kubectl"
|
||||
curl -LO "https://dl.k8s.io/release/$KUBECTL_VERSION/bin/linux/amd64/kubectl.sha256"
|
||||
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check
|
||||
chmod +x kubectl
|
||||
cp ./kubectl ~/.local/bin/kubectl
|
||||
|
||||
################################################################################
|
||||
|
||||
CTLPTL_URL=$(curl -s "https://api.github.com/repos/tilt-dev/ctlptl/releases/latest" \
|
||||
| jq -r '.assets.[] | select(.name | test("linux.x86_64.tar.gz")).browser_download_url')
|
||||
|
||||
curl -fsSL "$CTLPTL_URL" | tar -xz -C ~/.local/bin ctlptl
|
||||
# chmod +x ~/.local/bin/ctlptl
|
||||
|
||||
################################################################################
|
||||
|
||||
TILT_URL=$(curl -s "https://api.github.com/repos/tilt-dev/tilt/releases/latest" \
|
||||
| jq -r '.assets.[] | select(.name | test("linux.x86_64.tar.gz")).browser_download_url')
|
||||
|
||||
curl -fsSL "$TILT_URL" | tar -xz -C ~/.local/bin tilt
|
||||
# chmod +x ~/.local/bin/tilt
|
||||
cd -
|
||||
|
||||
echo "Version of ctlptl = $(ctlptl version)"
|
||||
echo "Version of tilt = $(tilt version)"
|
||||
echo "Version of kubectl:"
|
||||
kubectl version
|
||||
Executable
+1
@@ -0,0 +1 @@
|
||||
AFRAID_TOKEN=6qfkK3VmHf7t4PwvTUJtxNEQ
|
||||
Executable
+25
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
# shellcheck disable=SC1091
|
||||
thisdir="$( dirname "$(readlink -e -- "${BASH_SOURCE[0]}")")"
|
||||
|
||||
log() {
|
||||
timestamp="$(date +'%Y-%m-%d %H:%M:%S')"
|
||||
datestamp="$(date +'%Y-%m-%d')"
|
||||
[ ! -d "$thisdir/log" ] && mkdir "$thisdir/log"
|
||||
echo "[$timestamp] $*" >> "$thisdir/log/$datestamp.log"
|
||||
}
|
||||
|
||||
[ ! -f "$thisdir/.env" ] && {
|
||||
log "ERROR: .env not exists"
|
||||
exit 1
|
||||
}
|
||||
|
||||
source "$thisdir/.env"
|
||||
|
||||
[ -z "$AFRAID_TOKEN" ] && {
|
||||
log "ERROR: env var AFRAID_TOKEN not specified"
|
||||
exit 1
|
||||
}
|
||||
|
||||
result=$(curl -s "http://sync.afraid.org/u/${AFRAID_TOKEN}/")
|
||||
log "$result"
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# X11:
|
||||
# xrandr --listactivemonitors
|
||||
# xrandr --output $OUTPUT --rotate (left|right|normal|...)
|
||||
|
||||
# Wayland KDE: https://www.reddit.com/r/kde/comments/11vrbwc/how_do_i_rotate_the_screen_on_kde_with_wayland/
|
||||
# kscreen-doctor --outputs
|
||||
OUTPUT='HDMI-A-1'
|
||||
[ "$1" ] && DIRECTION="$1" || DIRECTION="normal" # (left|right|normal|inverted)
|
||||
kscreen-doctor "output.$OUTPUT.rotation.$DIRECTION"
|
||||
@@ -1,57 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Очистка места на диске
|
||||
# https://gist.github.com/anthonyaxenov/02c00c965be4eb5bb163a153abdf4c2b
|
||||
# https://itsfoss.com/free-up-space-ubuntu-linux/
|
||||
|
||||
echo
|
||||
echo
|
||||
df -hx tmpfs
|
||||
echo
|
||||
|
||||
echo
|
||||
echo "[1/5] Removing apt caches and unused packages"
|
||||
echo
|
||||
|
||||
sudo apt autoremove --purge
|
||||
sudo apt autoclean
|
||||
sudo apt clean
|
||||
|
||||
echo
|
||||
echo "[2/5] Removing old system logs"
|
||||
echo
|
||||
|
||||
sudo journalctl --vacuum-time=1d
|
||||
sudo rm -rf /var/log/journal/user-*@*
|
||||
sudo rm -rf /var/log/journal/system*@*
|
||||
sudo rm /var/log/{syslog,dmesg,btmp}.*
|
||||
sudo rm /var/log/{auth,dpkg,kern,alternatives,dmesg}.log.*
|
||||
|
||||
echo
|
||||
echo "[3/5] Cleaning user trash and thumbnails"
|
||||
echo
|
||||
|
||||
rm -rf ~/.local/share/Trash/files/*
|
||||
rm -rf ~/.cache/thumbnails/*
|
||||
|
||||
echo
|
||||
echo "[4/5] Cleaning out dangling docker objects"
|
||||
echo
|
||||
|
||||
docker system prune -f
|
||||
# docker system prune -af
|
||||
|
||||
echo
|
||||
echo "[5/5] Removing disabled unused snaps"
|
||||
echo
|
||||
|
||||
sudo snap list --all \
|
||||
| awk '/disabled/{print $1, $3}' \
|
||||
| while read snapname revision; do
|
||||
sudo snap remove "$snapname" --revision="$revision"
|
||||
done
|
||||
|
||||
echo
|
||||
echo
|
||||
df -hx tmpfs
|
||||
echo
|
||||
echo
|
||||
-115
@@ -1,115 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function disconnect() {
|
||||
echo "Disconnecting: $1"
|
||||
sudo wg-quick down "$1"
|
||||
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
|
||||
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
|
||||
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1
|
||||
echo
|
||||
}
|
||||
|
||||
function connect() {
|
||||
echo "Connecting: frkn-$1"
|
||||
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
|
||||
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
|
||||
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
|
||||
sudo wg-quick up "frkn-$1"
|
||||
echo
|
||||
}
|
||||
|
||||
function in_array() {
|
||||
local find=$1
|
||||
shift
|
||||
for e in "$@"; do
|
||||
[[ "$e" == "$find" ]] && return 0
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
function update_wg() {
|
||||
sudo apt install -y wireguard jq && wg --version
|
||||
}
|
||||
|
||||
function update_frkn() {
|
||||
local countries=(uk ru nl nl2 ch)
|
||||
for idx in ${!countries[@]}; do
|
||||
country=${countries[idx]}
|
||||
echo "Downloading config for $country ($(expr $idx + 1)/${#countries[@]})"
|
||||
|
||||
json=$(curl -s "https://api.frkn.org/peer?location=$country" | jq)
|
||||
|
||||
iface_address=$(echo $json | jq -r .iface.address)
|
||||
iface_privkey=$(echo $json | jq -r .iface.key)
|
||||
iface_dns=$(echo $json | jq -r .iface.dns)
|
||||
peer_pubkey=$(echo $json | jq -r .peer.pubkey)
|
||||
peer_psk=$(echo $json | jq -r .peer.psk)
|
||||
peer_allowed_ips=$(echo $json | jq -r .peer.allowed_ips)
|
||||
peer_endpoint=$(echo $json | jq -r .peer.endpoint)
|
||||
|
||||
cat << EOF > "./frkn-$country.conf"
|
||||
[Interface]
|
||||
Address = $iface_address
|
||||
DNS = $iface_dns
|
||||
PrivateKey = $iface_privkey
|
||||
|
||||
[Peer]
|
||||
PublicKey = $peer_pubkey
|
||||
PresharedKey = $peer_psk
|
||||
AllowedIPs = $peer_allowed_ips
|
||||
Endpoint = $peer_endpoint
|
||||
PersistentKeepalive = 25
|
||||
EOF
|
||||
done
|
||||
sudo mv -f ./frkn-*.conf /etc/wireguard/
|
||||
}
|
||||
|
||||
command="$1"
|
||||
countries=()
|
||||
current=$(sudo wg show | head -n 1 | awk '{print $2}')
|
||||
|
||||
for file in /etc/wireguard/*.conf; do
|
||||
filename=${file/\/etc\/wireguard\/frkn-}
|
||||
code=${filename/.conf/}
|
||||
countries+=($code)
|
||||
done
|
||||
|
||||
correct=-1
|
||||
if [ -z "$command" ] ; then
|
||||
while [ $correct -lt 0 ]; do
|
||||
read -rp "Entry on of country code (${countries[*]}): " command
|
||||
if in_array "$command" ${countries[@]}; then
|
||||
correct=1
|
||||
else
|
||||
echo "Неверный код страны!"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
case "$command" in
|
||||
"update" )
|
||||
if update_wg && update_frkn; then
|
||||
echo "Wireguard and FRKN updated"
|
||||
else
|
||||
echo "Something went wrong"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
"down" )
|
||||
if [ -n "$current" ]; then
|
||||
disconnect "$current"
|
||||
fi
|
||||
;;
|
||||
|
||||
"show" )
|
||||
sudo wg show
|
||||
;;
|
||||
|
||||
* )
|
||||
if [ -n "$current" ]; then
|
||||
disconnect "$current"
|
||||
fi
|
||||
connect "$command"
|
||||
;;
|
||||
esac
|
||||
Executable
+55
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
################################################################################
|
||||
# НАЗНАЧЕНИЕ: Переключение драйвера для видеокарт AMD GCN 1.0 (Pitcairn/SI).
|
||||
#
|
||||
# ЧТО ИСПРАВЛЯЕТ:
|
||||
# Артефакты, мерцание, черные окна и "шахматную сетку" в Electron-приложениях
|
||||
# (VS Code, Discord, Obsidian, Skype) и браузере Chrome/Chromium в среде KDE.
|
||||
#
|
||||
# ПОЧЕМУ ЭТО НУЖНО:
|
||||
# По умолчанию для старых карт (R7 370 / R9 270X) Ubuntu использует драйвер 'radeon'.
|
||||
# Он стабилен, но плохо поддерживает современное аппаратное ускорение и Vulkan.
|
||||
# Переключение на драйвер 'amdgpu' дает:
|
||||
# 1. Полную поддержку Vulkan API.
|
||||
# 2. Совместимость с современным аппаратным ускорением Chromium.
|
||||
# 3. Повышенную производительность в KDE Plasma (движок KWin).
|
||||
#
|
||||
# ПРИНЦИП РАБОТЫ:
|
||||
# Скрипт передает ядру параметры 'radeon.si_support=0' (отключить старый драйвер
|
||||
# для архитектуры Southern Islands) и 'amdgpu.si_support=1' (включить новый).
|
||||
################################################################################
|
||||
|
||||
# Проверка на права суперпользователя
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Пожалуйста, запустите скрипт через sudo"
|
||||
exit
|
||||
fi
|
||||
|
||||
echo "--- Настройка AMDGPU для GCN 1.0 (Pitcairn) ---"
|
||||
|
||||
# 1. Резервное копирование конфига Grub
|
||||
cp /etc/default/grub /etc/default/grub.bak
|
||||
echo "[1/4] Бэкап Grub создан: /etc/default/grub.bak"
|
||||
|
||||
# 2. Добавление параметров поддержки amdgpu и отключение старого radeon
|
||||
# Используем sed для вставки параметров в строку GRUB_CMDLINE_LINUX_DEFAULT
|
||||
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="/GRUB_CMDLINE_LINUX_DEFAULT="radeon.si_support=0 amdgpu.si_support=1 /' /etc/default/grub
|
||||
echo "[2/4] Параметры ядра добавлены в /etc/default/grub"
|
||||
|
||||
# 3. Обновление конфигурации Grub
|
||||
echo "[3/4] Обновление загрузчика..."
|
||||
update-grub
|
||||
|
||||
# 4. Проверка необходимости внесения в blacklist (опционально, но надежно)
|
||||
if [ ! -f /etc/modprobe.d/amdgpu.conf ]; then
|
||||
echo "options amdgpu si_support=1" > /etc/modprobe.d/amdgpu.conf
|
||||
echo "options radeon si_support=0" >> /etc/modprobe.d/amdgpu.conf
|
||||
echo "[4/4] Конфиг modprobe создан"
|
||||
else
|
||||
echo "[4/4] Конфиг modprobe уже существует"
|
||||
fi
|
||||
|
||||
echo "-------------------------------------------------------"
|
||||
echo "Готово! Перезагрузите компьютер, чтобы изменения вступили в силу."
|
||||
echo "После перезагрузки выполните: lspci -k | grep -EA3 'VGA|3D'"
|
||||
Executable
+54
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
################################################################################
|
||||
# НАЗНАЧЕНИЕ: Откат изменений и возврат к стандартному драйверу 'radeon'.
|
||||
#
|
||||
# ЗАЧЕМ ЭТО НУЖНО:
|
||||
# Этот скрипт используется, если после перехода на 'amdgpu' возникли проблемы:
|
||||
# 1. Система загружается в черный экран или зависает.
|
||||
# 2. Появились проблемы с выводом звука через HDMI (иногда бывает на GCN 1.0).
|
||||
# 3. Наблюдаются специфические графические баги, которых не было ранее.
|
||||
#
|
||||
# ЧТО ИСПРАВЛЯЕТ:
|
||||
# Возвращает конфигурацию системы к стандартному состоянию Ubuntu. Драйвер
|
||||
# 'radeon' является базовым и максимально стабильным для старых карт AMD,
|
||||
# хотя и не поддерживает современные функции (Vulkan, новый стек Electron).
|
||||
#
|
||||
# ПРИНЦИП РАБОТЫ:
|
||||
# 1. Восстанавливает исходный файл /etc/default/grub из резервной копии.
|
||||
# 2. Удаляет специфические инструкции из /etc/modprobe.d/, которые заставляли
|
||||
# ядро игнорировать карту для драйвера radeon.
|
||||
# 3. Обновляет конфигурацию загрузчика для применения изменений.
|
||||
################################################################################
|
||||
|
||||
# Проверка на права суперпользователя
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Пожалуйста, запустите скрипт через sudo"
|
||||
exit
|
||||
fi
|
||||
|
||||
echo "--- Откат изменений и возврат к драйверу Radeon ---"
|
||||
|
||||
# 1. Восстановление Grub из бэкапа или очистка вручную
|
||||
if [ -f /etc/default/grub.bak ]; then
|
||||
mv /etc/default/grub.bak /etc/default/grub
|
||||
echo "[1/3] Конфигурация Grub восстановлена из бэкапа."
|
||||
else
|
||||
# Если бэкапа нет, удаляем параметры через sed
|
||||
sed -i 's/radeon.si_support=0 //g' /etc/default/grub
|
||||
sed -i 's/amdgpu.si_support=1 //g' /etc/default/grub
|
||||
echo "[1/3] Параметры удалены из /etc/default/grub вручную."
|
||||
fi
|
||||
|
||||
# 2. Удаление файлов из modprobe.d
|
||||
if [ -f /etc/modprobe.d/amdgpu.conf ]; then
|
||||
rm /etc/modprobe.d/amdgpu.conf
|
||||
echo "[2/3] Файл /etc/modprobe.d/amdgpu.conf удален."
|
||||
fi
|
||||
|
||||
# 3. Обновление конфигурации Grub
|
||||
echo "[3/3] Обновление загрузчика..."
|
||||
update-grub
|
||||
|
||||
echo "-------------------------------------------------------"
|
||||
echo "Откат завершен. После перезагрузки система вернется на драйвер 'radeon'."
|
||||
Regular → Executable
Regular → Executable
Regular → Executable
Executable
+22
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
rename() {
|
||||
local dir="$1"
|
||||
echo "Processing: $dir"
|
||||
[ -d "$dir.bak" ] && rm -rf "$dir.bak"
|
||||
mv "$dir" "$dir.bak"
|
||||
}
|
||||
|
||||
dirs=(
|
||||
"$HOME/.config/Code/Cache"
|
||||
"$HOME/.config/Code/CachedData"
|
||||
"$HOME/.config/Code/Code Cache"
|
||||
"$HOME/.config/Code/GPUCache"
|
||||
"$HOME/.config/Code/Service Worker"
|
||||
)
|
||||
|
||||
for dir in "${dirs[@]}"; do
|
||||
rename "$dir"
|
||||
done
|
||||
|
||||
echo "Success"
|
||||
Reference in New Issue
Block a user