99 lines
4.5 KiB
Bash
99 lines
4.5 KiB
Bash
#!/bin/bash
|
|
|
|
# File setup
|
|
cp ~/.profile/avc.png ~/.face
|
|
|
|
# === VS Code configs ===
|
|
cp ~/.profile/settings.json ~/.config/'Code - OSS'/User/settings.json
|
|
cp ~/.profile/keybindings.json ~/.config/'Code - OSS'/User/keybindings.json
|
|
|
|
# === GNOME keyboard shortcuts ===
|
|
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-down "['']"
|
|
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-up "['']"
|
|
|
|
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Shift>Alt_L']"
|
|
gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Alt>Shift_L']"
|
|
|
|
gsettings set org.gnome.desktop.wm.keybindings switch-windows "['<Alt>Tab']"
|
|
gsettings set org.gnome.desktop.wm.keybindings switch-applications "['']"
|
|
gsettings set org.gnome.desktop.wm.keybindings maximize "['<Super>Up']"
|
|
|
|
# === Wallpaper ===
|
|
gsettings set org.gnome.desktop.background picture-uri "file://$HOME/os/wallpaper.jpg"
|
|
gsettings set org.gnome.desktop.background picture-uri-dark "file://$HOME/os/wallpaper.jpg"
|
|
gsettings set org.gnome.shell favorite-apps "['org.gnome.Settings.desktop', 'code-oss.desktop', 'chromium.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Console.desktop']"
|
|
|
|
# === Gnome folders flattening ===
|
|
gsettings set org.gnome.desktop.app-folders folder-children "[]"
|
|
gsettings set org.gnome.desktop.app-folders folder-children "['']" 2>/dev/null || true
|
|
echo "✅ App grid flattened! All apps will appear in a single alphabetical list."
|
|
|
|
# === Git config (no shell issues) ===
|
|
git config --global user.name "Danila Fominykh"
|
|
git config --global user.email "d@m8sh.su"
|
|
git config --global credential.helper store
|
|
echo 'Defaults timestamp_timeout=60,!tty_tickets' | sudo tee /etc/sudoers.d/timeout
|
|
|
|
# === Cleanup (no shell issues) ===
|
|
for pkg in gnome-layout-switcher gnome-user-docs manjaro-application-utility libpamac-flatpak-plugin pamac-gnome-integration gnome-contacts gnome-tour gnome-text-editor gnome-calendar gnome-characters gnome-chess gnome-music gnome-system-monitor gnome-maps gnome-boxes gnome-calculator gnome-weather gnome-font-viewer gnome-mines gnome-logs gnome-clocks gnome-tweaks gnome-connections baobab quadrapassel iagno simple-scan snapshot loupe papers decibels gnome-firmware gnome-disk-utility pamac-gtk pamac-cli libpamac ex-vi-compat vim timeshift-autosnap-manjaro collision endeavour file-roller fragments kvantum-manjaro manjaro-hello micro timeshift gufw malcontent thunderbird firefox gnome-shell-extension-gtk4-desktop-icons-ng webapp-manager showtime; do
|
|
pacman -Q "$pkg" &>/dev/null && sudo pacman -Rns --noconfirm "$pkg"
|
|
done
|
|
|
|
# === System Updates (safe) ===
|
|
sudo pacman -Syu
|
|
sudo pacman -S --needed --noconfirm git go docker docker-compose chromium code base-devel rustup
|
|
|
|
# === Environment Setup - SOLUTION 1 ===
|
|
# Write env vars to file (will apply on next shell)
|
|
echo 'export GOROOT=/usr/lib/go' >> ~/.zshrc
|
|
echo 'export GOPATH=$HOME/go' >> ~/.zshrc
|
|
echo 'export PATH=$PATH:/usr/lib/go/bin' >> ~/.zshrc
|
|
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.zshrc
|
|
echo 'export PATH="$PATH:$HOME/go/bin"' >> ~/.zshrc
|
|
|
|
# **CRITICAL: Export them NOW for this script**
|
|
export GOROOT=/usr/lib/go
|
|
export GOPATH=$HOME/go
|
|
export PATH=$PATH:/usr/lib/go/bin
|
|
export PATH=$PATH:$GOPATH/bin
|
|
|
|
# === Go tools (now works because PATH is set) ===
|
|
go install mvdan.cc/gofumpt@latest
|
|
go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.11.4
|
|
|
|
# === VS Code extensions ===
|
|
code --install-extension PKief.material-icon-theme
|
|
code --install-extension mhutchie.git-graph
|
|
code --install-extension jeff-hykin.mario
|
|
code --install-extension golang.Go
|
|
code --install-extension rust-lang.rust-analyzer
|
|
code --install-extension vadimcn.vscode-lldb
|
|
code --install-extension tamasfe.even-better-toml
|
|
|
|
# === Rust setup ===
|
|
|
|
rustup default stable
|
|
cargo install tauri-cli
|
|
cargo install create-tauri-app
|
|
|
|
# === Docker setup ===
|
|
sudo groupadd docker 2>/dev/null # 2>/dev/null hides "group already exists" error
|
|
sudo usermod -aG docker $USER
|
|
|
|
sudo systemctl enable docker
|
|
sudo systemctl start docker
|
|
|
|
# === Chromium setup ===
|
|
|
|
[ -f ~/.config/chromium/Default/Preferences ] && sed -i 's/"show_on_all_tabs":true/"show_on_all_tabs":false/' ~/.config/chromium/Default/Preferences || echo "Chromium preferences not found - run Chromium at least once first"
|
|
sudo rm -f /etc/chromium/master_preferences
|
|
rm -rf ~/.config/chromium
|
|
|
|
# === Final message ===
|
|
echo ""
|
|
echo "✅ Script completed!"
|
|
echo "⚠️ IMPORTANT: Log out and log back in (or reboot) for:"
|
|
echo " - Docker group permissions to take effect"
|
|
echo " - New shell environment variables"
|
|
echo " - Full GNOME session reload"
|