mirror of
https://github.com/vhaudiquet/mymachine.git
synced 2025-12-18 12:06:06 +00:00
Multiple changes towards better Ubuntu support :)
This commit is contained in:
@@ -99,7 +99,7 @@ install_docker() {
|
||||
}
|
||||
|
||||
install_kubectl() {
|
||||
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
|
||||
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | gpg --batch --yes --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
|
||||
chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg
|
||||
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /' | tee /etc/apt/sources.list.d/kubernetes.list
|
||||
chmod 644 /etc/apt/sources.list.d/kubernetes.list
|
||||
@@ -110,34 +110,51 @@ install_kubectl() {
|
||||
export EXTRA_INSTALL_MESSAGE="Installing snap packages"
|
||||
extra_init() {
|
||||
# Install ghostty
|
||||
echo -ne "ghostty"
|
||||
# TODO: use a ppa / something updatable
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/mkasberg/ghostty-ubuntu/HEAD/install.sh)" >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${BRed}Could not install ghostty. Skipping.${NC}"
|
||||
fi
|
||||
erase_text "ghostty"
|
||||
|
||||
|
||||
# Install VSCode
|
||||
# NOTE: would be better to install code-oss, and features+marketplace
|
||||
echo -ne "code"
|
||||
sudo snap install code --classic >/dev/null 2>&1
|
||||
erase_text "code"
|
||||
|
||||
# TODO: Install code-oss, and features+marketplace
|
||||
# TODO: Install jellyfin-media-player
|
||||
|
||||
# Install android-studio
|
||||
sudo snap install android-studio --classic >/dev/null 2>&1
|
||||
echo -ne "android-studio"
|
||||
snap install android-studio --classic >/dev/null 2>&1
|
||||
erase_text "android-studio"
|
||||
|
||||
# TODO: Install zen browser
|
||||
|
||||
echo -ne "github-cli"
|
||||
install_github_cli >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${BRed}Could not install github-cli. Skipping.${NC}"
|
||||
fi
|
||||
erase_text "github-cli"
|
||||
|
||||
# Docker, Kubectl
|
||||
echo -ne "docker"
|
||||
install_docker >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${BRed}Could not install docker. Skipping.${NC}"
|
||||
fi
|
||||
erase_text "docker"
|
||||
|
||||
echo -ne "kubectl"
|
||||
install_kubectl >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${BRed}Could not install kubectl. Skipping.${NC}"
|
||||
fi
|
||||
erase_text "kubectl"
|
||||
}
|
||||
|
||||
extra_finish() {
|
||||
|
||||
29
dotfiles.sh
Normal file
29
dotfiles.sh
Normal file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
install_dotfile_ifnot() {
|
||||
mkdir -p $(dirname -- /home/${USERNAME}/${1})
|
||||
cp --update=none ${script_dir}/dotfiles/${1} /home/${USERNAME}/${1}
|
||||
}
|
||||
|
||||
echo "Installing dotfiles..."
|
||||
# cp -r --update=none ${script_dir}/dotfiles/. /home/${USERNAME}/
|
||||
cat ${script_dir}/dotfiles/.config/git/config | envsubst '$GIT_USER $EMAIL' >/home/${USERNAME}/.config/git/config
|
||||
|
||||
# Install bashrc if not mymachine-installed
|
||||
if ! [[ "$(head -n 1 /home/${USERNAME}/.bashrc)" = "# mymachine" ]]; then
|
||||
cp "${script_dir}/dotfiles/.bashrc" "/home/${USERNAME}/.bashrc"
|
||||
fi
|
||||
|
||||
# Install code settings depending on which code is installed
|
||||
CODE_NAME="Code - OSS"
|
||||
if [ "${ID}" = "ubuntu" ]; then
|
||||
# On Ubuntu, we install official code snap
|
||||
CODE_NAME="Code"
|
||||
fi
|
||||
mkdir -p /home/${USERNAME}/.config/${CODE_NAME}/User
|
||||
cp "${script_dir}/dotfiles/.config/Code - OSS/User/settings.json" "/home/${USERNAME}/.config/${CODE_NAME}/User/settings.json"
|
||||
|
||||
# Install ghostty, git, gh settings if not present
|
||||
install_dotfile_ifnot .config/ghostty/config
|
||||
install_dotfile_ifnot .config/git/config
|
||||
install_dotfile_ifnot .config/gh/config.yml
|
||||
@@ -1,10 +1,13 @@
|
||||
#
|
||||
# mymachine
|
||||
# ~/.bashrc
|
||||
#
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
# OS-specific information
|
||||
source /etc/os-release
|
||||
|
||||
# History file settings
|
||||
# No duplicate lines / lines starting with space in history
|
||||
HISTCONTROL=ignoreboth
|
||||
@@ -34,7 +37,12 @@ fi
|
||||
source /home/${USER}/.config/prompt.sh
|
||||
|
||||
# Bitwarden SSH agent
|
||||
if [ "${ID}" = "ubuntu" ]; then
|
||||
# On Ubuntu, Bitwarden snap is used, which changes the sock path
|
||||
export SSH_AUTH_SOCK=/home/${USER}/snap/bitwarden/current/.bitwarden-ssh-agent.sock
|
||||
else
|
||||
export SSH_AUTH_SOCK=/home/${USER}/.bitwarden-ssh-agent.sock
|
||||
fi
|
||||
|
||||
# PATH modifications
|
||||
# Local binaries
|
||||
@@ -48,3 +56,5 @@ alias e=${EDITOR}
|
||||
alias l="ls -lla"
|
||||
alias c="clear"
|
||||
alias k="kubectl"
|
||||
|
||||
### End of default bashrc, append anything here
|
||||
|
||||
@@ -26,5 +26,9 @@
|
||||
"workbench.preferredDarkColorTheme": "Adwaita Dark",
|
||||
"workbench.preferredLightColorTheme": "Adwaita Light",
|
||||
"editor.renderLineHighlight": "none",
|
||||
"workbench.tree.indent": 12
|
||||
"workbench.tree.indent": 12,
|
||||
"redhat.telemetry.enabled": false,
|
||||
"telemetry.feedback.enabled": false,
|
||||
"telemetry.telemetryLevel": "off",
|
||||
"docker.lsp.telemetry": "off",
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source /etc/os-release
|
||||
|
||||
parse_git_branch()
|
||||
{
|
||||
branch=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ <\1>/')
|
||||
|
||||
28
mymachine.sh
28
mymachine.sh
@@ -106,6 +106,13 @@ fi
|
||||
|
||||
# Install packages
|
||||
source ${script_dir}/distribution/${ID}/install.sh
|
||||
erase_text() {
|
||||
# Remove text from terminal
|
||||
count=$(echo "${1}" | wc -m)
|
||||
for ((i=1; i<$count; i++)); do echo -ne '\b'; done
|
||||
for ((i=1; i<$count; i++)); do echo -ne ' '; done
|
||||
for ((i=1; i<$count; i++)); do echo -ne '\b'; done
|
||||
}
|
||||
install_package() {
|
||||
package="${1}"
|
||||
command="${2}"
|
||||
@@ -118,11 +125,7 @@ install_package() {
|
||||
echo -e "\n${BRed}Failed to install package '${package}'. Skipping."
|
||||
fi
|
||||
|
||||
# Remove current package name from terminal
|
||||
count=$(echo "${package}" | wc -m)
|
||||
for ((i=1; i<$count; i++)); do echo -ne '\b'; done
|
||||
for ((i=1; i<$count; i++)); do echo -ne ' '; done
|
||||
for ((i=1; i<$count; i++)); do echo -ne '\b'; done
|
||||
erase_text "${package}"
|
||||
}
|
||||
|
||||
refresh_package_db
|
||||
@@ -138,8 +141,9 @@ done
|
||||
echo ""
|
||||
|
||||
# Install distribution-specific extra packages
|
||||
echo -e "Initializing extra package installation..."
|
||||
echo -ne "Initializing extra package installation... "
|
||||
extra_init
|
||||
echo ""
|
||||
echo -ne "${EXTRA_INSTALL_MESSAGE}... "
|
||||
for package in "${EXTRA_PACKAGES[@]}"; do
|
||||
install_package "${package}" install_extra_command
|
||||
@@ -165,6 +169,12 @@ fi
|
||||
export VSCODE_EXTENSIONS="${script_dir}/vscode-extensions.txt"
|
||||
echo -ne "Installing VSCode extensions... "
|
||||
i=0 total=$(wc -l < ${VSCODE_EXTENSIONS}); while read ext; do
|
||||
# Ignore commented extensions
|
||||
if [[ "${ext}" == \#* ]]; then
|
||||
i=$((i + 1))
|
||||
continue
|
||||
fi
|
||||
|
||||
# TODO: Here we assume extensions are at most a 2-digit number ; change that :)
|
||||
istr=$(printf "%02d" $i)
|
||||
echo -ne "\b\b\b\b\b${istr}/${total}"
|
||||
@@ -181,9 +191,7 @@ if [[ $i = $total ]]; then
|
||||
fi
|
||||
|
||||
# Install dotfiles, without overwriting
|
||||
echo "Installing dotfiles..."
|
||||
cp -r --update=none ${script_dir}/dotfiles/. /home/${USERNAME}/
|
||||
cat ${script_dir}/dotfiles/.config/git/config | envsubst '$GIT_USER $EMAIL' >/home/${USERNAME}/.config/git/config
|
||||
source "${script_dir}/dotfiles.sh"
|
||||
|
||||
# Setup GRUB theme
|
||||
echo "Setting up GRUB theme..."
|
||||
@@ -223,4 +231,4 @@ if [ "$MICROCODE_INSTALLED" == "false" ]; then
|
||||
fi
|
||||
echo "To use WireGuard, don't forget to add this client on VPN server (your private key is under ~/.wireguard/privatekey)"
|
||||
echo "To use GitHub, you need to use 'gh auth login' to connect to GitHub"
|
||||
echo -e "${BNC}Goodbye ! Make sure to ${BGreen}reboot${BNC} to apply all changes !${NC}"
|
||||
echo -e "${BNC}Goodbye ! Make sure to ${BGreen}reboot${NC}${BNC} to apply all changes !${NC}"
|
||||
|
||||
@@ -33,7 +33,7 @@ ms-vscode.hexeditor
|
||||
ms-vscode.makefile-tools
|
||||
ms-vscode.remote-explorer
|
||||
ms-vscode.vscode-serial-monitor
|
||||
nvarner.typst-lsp
|
||||
# nvarner.typst-lsp
|
||||
piousdeer.adwaita-theme
|
||||
pkief.material-icon-theme
|
||||
pkief.material-product-icons
|
||||
|
||||
Reference in New Issue
Block a user