Last active
May 14, 2024 09:02
-
-
Save lazanet/3890f8de22d8c47aa852b93e5d62e168 to your computer and use it in GitHub Desktop.
Script that sets up Ubuntu 22.04 to my liking
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env -S bash -e | |
set -o xtrace | |
function set_gnome_configuration { | |
# Disable Gnome animations | |
gsettings set org.gnome.desktop.interface enable-animations false | |
# Dock settings | |
gsettings set org.gnome.shell.extensions.dash-to-dock show-apps-at-top true | |
dconf write /org/gnome/shell/extensions/dash-to-dock/dash-max-icon-size 24 | |
dconf write /org/gnome/shell/extensions/dash-to-dock/multi-monitor true | |
# Add Sr1 EN Sr2 keyboard layouts | |
dconf write /org/gnome/desktop/input-sources/sources "[('xkb', 'rs+latin'), ('xkb', 'us'), ('xkb', 'rs')]" | |
# Enable Shift + Alt for switching keyboard layouts | |
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Super>space', 'XF86Keyboard']" | |
gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Shift><Super>space', '<Shift>XF86Keyboard']" | |
gsettings set org.gnome.desktop.input-sources xkb-options "['grp_led:scroll', 'grp:alt_shift_toggle']" | |
gsettings set org.gnome.desktop.wm.preferences button-layout ":minimize,maximize,close" | |
# Change background | |
gsettings set org.gnome.desktop.background picture-uri "file:///usr/share/backgrounds/ubuntu_by_arman1992.jpg" | |
gsettings set org.gnome.desktop.background picture-uri-dark "file:///usr/share/backgrounds/ubuntu_by_arman1992.jpg" | |
# Enable dark theme | |
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' | |
gsettings set org.gnome.desktop.interface gtk-theme 'Yaru-blue-dark' | |
# Setup terminal theme | |
profile_id=b1dcc9dd-5262-4d8d-a863-c897e6d979b9 | |
dconf write /org/gnome/terminal/legacy/profiles:/:$profile_id/use-theme-colors false | |
dconf write /org/gnome/terminal/legacy/profiles:/:$profile_id/foreground-color "'#D3D3CFCFCDCD'" | |
dconf write /org/gnome/terminal/legacy/profiles:/:$profile_id/background-color "'#040405050404'" | |
dconf write /org/gnome/terminal/legacy/profiles:/:$profile_id/use-theme-transparency false | |
dconf write /org/gnome/terminal/legacy/profiles:/:$profile_id/use-transparent-background true | |
dconf write /org/gnome/terminal/legacy/profiles:/:$profile_id/background-transparency-percent 20 | |
# Setup gedit theme | |
gsettings set org.gnome.gedit.preferences.editor display-line-numbers true | |
gsettings set org.gnome.gedit.preferences.editor scheme 'solarized-dark' | |
dconf write /org/gnome/gedit/preferences/editor/tabs-size "uint32 4" | |
# Top bar tweaks | |
gsettings set org.gnome.desktop.interface clock-show-seconds true | |
gsettings set org.gnome.desktop.interface show-battery-percentage true | |
dconf write /org/gnome/desktop/sound/allow-volume-above-100-percent true | |
# Configure workspaces | |
gsettings set org.gnome.mutter dynamic-workspaces false | |
gsettings set org.gnome.desktop.wm.preferences num-workspaces 2 | |
gsettings set org.gnome.mutter workspaces-only-on-primary false | |
gsettings set org.gnome.shell.extensions.dash-to-dock isolate-workspaces true | |
gsettings set org.gnome.shell disable-extension-version-validation true | |
} | |
function gnome_extensions { | |
pushd $(mktemp -d) | |
wget -O gnome-shell-extension-installer "https://github.com/brunelli/gnome-shell-extension-installer/raw/master/gnome-shell-extension-installer" | |
chmod +x gnome-shell-extension-installer | |
./gnome-shell-extension-installer 906 # https://extensions.gnome.org/extension/906/sound-output-device-chooser/ | |
./gnome-shell-extension-installer 1319 # https://extensions.gnome.org/extension/1319/gsconnect/ | |
popd | |
} | |
function set_dash_to_panel { | |
pushd $(mktemp -d) | |
wget -O gnome-shell-extension-installer "https://github.com/brunelli/gnome-shell-extension-installer/raw/master/gnome-shell-extension-installer" | |
chmod +x gnome-shell-extension-installer | |
./gnome-shell-extension-installer 1160 # https://extensions.gnome.org/extension/1160/dash-to-panel/ | |
popd | |
gsettings set org.gnome.shell.extensions.dash-to-panel appicon-margin 2 | |
gsettings set org.gnome.shell.extensions.dash-to-panel appicon-padding 6 | |
gsettings set org.gnome.shell.extensions.dash-to-panel panel-sizes '{"0":48,"1":48}' | |
gsettings set org.gnome.shell.extensions.dash-to-panel panel-positions '{"0":"LEFT","1":"LEFT"}' | |
gsettings set org.gnome.shell.extensions.dash-to-panel dot-style-unfocused 'DOTS' | |
gsettings set org.gnome.shell.extensions.dash-to-panel dot-style-focused 'DOTS' | |
gsettings set org.gnome.shell.extensions.dash-to-panel trans-use-custom-opacity true | |
gsettings set org.gnome.shell.extensions.dash-to-panel trans-panel-opacity 0.9 | |
gsettings set org.gnome.shell.extensions.dash-to-panel isolate-workspaces true | |
gsettings set org.gnome.shell.extensions.dash-to-panel click-action 'TOGGLE-SHOWPREVIEW' | |
gsettings set org.gnome.shell.extensions.dash-to-panel hot-keys true | |
} | |
function unsnap { | |
# Unsnap this SOB | |
pushd $(mktemp -d) | |
wget https://github.com/popey/unsnap/archive/refs/heads/main.zip | |
unzip main.zip | |
cd unsnap-main | |
./unsnap auto | |
popd | |
} | |
function apt_packages { | |
set -e | |
sudo apt update | |
sudo apt clean | |
sudo apt -y autoremove | |
# Add kisak-mesa repository | |
sudo dpkg --add-architecture i386 | |
sudo add-apt-repository -y ppa:kisak/kisak-mesa | |
# Add VSCode repository | |
pushd $(mktemp -d) | |
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg | |
sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/microsoft-archive-keyring.gpg | |
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list' | |
popd | |
sudo apt update && sudo apt -y upgrade | |
sudo apt -y install libgl1-mesa-dri:i386 mesa-vulkan-drivers mesa-vulkan-drivers:i386 | |
sudo apt -y install curl gpg vlc cheese neofetch gnome-tweaks gnome-shell-extension-manager build-essential git code steam cifs-utils rar remmina sqlitebrowser baobab fzf mc | |
pushd $(mktemp -d) | |
wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb | |
sudo apt -y install ./teamviewer_amd64.deb | |
popd | |
pushd $(mktemp -d) | |
wget https://mega.nz/linux/repo/xUbuntu_22.04/amd64/megasync-xUbuntu_22.04_amd64.deb | |
sudo apt -y install ./megasync-xUbuntu_22.04_amd64.deb | |
popd | |
pushd $(mktemp -d) | |
wget https://zoom.us/client/latest/zoom_amd64.deb | |
sudo apt -y install ./zoom_amd64.deb | |
popd | |
} | |
function flatpak_packages { | |
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo | |
flatpak install -y flathub org.onlyoffice.desktopeditors com.jetbrains.IntelliJ-IDEA-Community com.jetbrains.PyCharm-Community com.google.AndroidStudio | |
xdg-settings set default-web-browser org.mozilla.firefox.desktop | |
} | |
function set_term_configuration { | |
echo "export PS1=\"\[\033[01;34m\]\w\[\033[36m\]\$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/')\[\033[00m\]\$ \"" >> ~/.bashrc | |
echo "source /usr/share/doc/fzf/examples/key-bindings.bash" >> ~/.bashrc | |
echo "neofetch" >> ~/.bashrc | |
} | |
function add_dock_icons { | |
# Add dock icons | |
gsettings set org.gnome.shell favorite-apps "['org.mozilla.firefox.desktop', 'org.gnome.Nautilus.desktop', 'snap-store_ubuntu-software.desktop', 'org.gnome.Terminal.desktop', 'code.desktop', 'steam.desktop', 'com.teamviewer.TeamViewer.desktop', 'vlc.desktop', 'org.onlyoffice.desktopeditors.desktop', 'com.jetbrains.IntelliJ-IDEA-Community.desktop', 'com.jetbrains.PyCharm-Community.desktop', 'com.google.AndroidStudio.desktop']" | |
} | |
function install_sdkman { | |
# Install sdkman! | |
curl -s "https://get.sdkman.io" | bash | |
source "$HOME/.sdkman/bin/sdkman-init.sh" | |
sdk install java 22.3.r19-grl | |
sdk install maven | |
sdk install gradle | |
} | |
set_gnome_configuration | |
gnome_extensions | |
# set_dash_to_panel | |
unsnap | |
apt_packages | |
flatpak_packages | |
set_term_configuration | |
add_dock_icons | |
install_sdkman |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment