automate/020_wezterm_phind.sh

232 lines
6.3 KiB
Bash

#!/bin/bash
# Enable strict error checking
set -euo pipefail
IFS=$'\n\t'
# Set defaults
DEST=${1:-/etc/skel}
GITUSER=wez
PROJECT=wezterm
LATEST_RELEASE_URL="https://api.github.com/repos/${GITUSER}/${PROJECT}/releases/latest"
ARCH=$(dpkg --print-architecture)
conf_print_apt_sources() {
cat <<-'EOF'
Types: deb
URIs: https://apt.fury.io/wez/
Suites: *
Components: *
Signed-By: /usr/share/keyrings/wezterm-fury.gpg
EOF
}
conf_print_apt_sources | sudo tee /etc/apt/sources.list-available/wezterm.sources
sudo ln -sf /etc/apt/sources.list-available/wezterm.sources /etc/apt/sources.list.d/wezterm.sources
curl -fsSL https://apt.fury.io/wez/gpg.key | sudo gpg --yes --dearmor -o /usr/share/keyrings/wezterm-fury.gpg
sudo chmod 644 /usr/share/keyrings/wezterm-fury.gpg
sudo apt update
sudo apt install wezterm
## Function to handle errors
#handle_error() {
# local msg="$1"
# echo "Error: $msg" >&2
# exit 1
#}
#
## Fetch the latest release tag
#TAG=$(torsocks curl -L -H "Accept: application/vnd.github+json" \
# -H "X-GitHub-Api-Version: 2022-11-28" "$LATEST_RELEASE_URL" | jq -r '.tag_name') || \
# handle_error "Failed to fetch release information"
#
## Determine architecture-specific extension
#case $ARCH in
# amd64)
# EXTENSION="Debian12.deb"
# ;;
# arm64)
# EXTENSION="Debian12.arm64.deb"
# ;;
# armhf)
# EXTENSION="Debian12.armhf.deb"
# ;;
# *)
# handle_error "Unable to determine system architecture: $ARCH"
# ;;
#esac
#
## Download files with progress
#DEB_FILE="/tmp/${PROJECT}-${TAG}.${EXTENSION}"
#
## Download the .deb file first
#wget -c -q --show-progress \
# "https://github.com/${GITUSER}/${PROJECT}/releases/download/${TAG}/${PROJECT}-${TAG}.${EXTENSION}" \
# -O "$DEB_FILE" || handle_error "Failed to download .deb package"
#
## Only download and verify checksum for amd64
##if [ "$ARCH" = "amd64" ]; then
# SHA256_FILE="${DEB_FILE}.sha256"
#
# # Download checksum file
# wget -c -q --show-progress \
# "https://github.com/${GITUSER}/${PROJECT}/releases/download/${TAG}/${PROJECT}-${TAG}.${EXTENSION}.sha256" \
# -O "$SHA256_FILE" || handle_error "Failed to download checksum file"
##
# # Verify checksum
# if ! sha256sum --check "$SHA256_FILE"; then
# handle_error "Checksum verification failed"
# fi
#fi
#
## Install package
##sudo dpkg -i "$DEB_FILE" || handle_error "Failed to install package"
#sudo apt-get -f install || handle_error "Failed to fix dependencies"
# Create configuration directory
mkdir -p "${DEST}/.config/wezterm/colors"
# Set wallpaper path
WALLPAPER='${DEST}/Pictures/wallpapers/1920x1200-Wallpaper-041.jpg'
# Rest of the configuration remains the same...
conf_print_wezterm_theme_minimal() {
cat <<-EOF
local wezterm = require("wezterm")
return {
-- color_scheme = 'termnial.sexy',
-- color_scheme = "Catppuccin Mocha",
color_scheme = "mellow",
enable_tab_bar = false,
font_size = 11.0,
-- macos_window_background_blur = 40,
macos_window_background_blur = 30,
-- window_background_image = ${WALLPAPER}',
-- window_background_image_hsb = {
-- brightness = 0.01,
-- hue = 1.0,
-- saturation = 0.5,
-- },
-- window_background_opacity = 0.92,
window_background_opacity = 1.0,
-- window_background_opacity = 0.78,
-- window_background_opacity = 0.20,
window_decorations = "RESIZE",
keys = {
{
key = "f",
mods = "CTRL",
action = wezterm.action.ToggleFullScreen,
},
},
mouse_bindings = {
-- Ctrl-click will open the link under the mouse cursor
{
event = { Up = { streak = 1, button = "Left" } },
mods = "CTRL",
action = wezterm.action.OpenLinkAtMouseCursor,
},
},
}
EOF
}
conf_print_wezterm_theme_minimal | tee ${DEST}/.config/wezterm/wezterm.lua
# wget -c -O ${DEST}/.config/wezterm/colors/mellow.toml https://github.com/mellow-theme/mellow.nvim/blob/main/extras/wezterm/colors/mellow.toml
conf_print_wezterm_theme_mellow() {
cat <<-EOF
# Mellow colorscheme for wezterm
[colors]
foreground = "#c9c7cd"
background = "#161617"
cursor_bg = "#e3e2e5"
cursor_border = "#e3e2e5"
cursor_fg = "#161617"
selection_bg = "#3c3b3e"
selection_fg = "#e3e2e5"
scrollbar_thumb = "#57575f"
split = "#57575f"
ansi = ["#27272a","#f5a191","#90b99f","#e6b99d","#aca1cf","#e29eca","#ea83a5","#c1c0d4"]
brights = ["#353539","#ffae9f","#9dc6ac","#f0c5a9","#b9aeda","#ecaad6","#f591b2","#cac9dd"]
EOF
}
conf_print_wezterm_theme_mellow | tee ${DEST}/.config/wezterm/colors/mellow.toml
# wget -c -O ${DEST}/.config/wezterm/colors/hardhacker.toml https://github.com/hardhackerlabs/theme-wezterm/blob/master/hardhacker.toml
conf_print_wezterm_theme_hardhacker() {
cat <<-EOF
[colors]
ansi = [ "#282433", "#e965a5", "#b1f2a7", "#ebde76", "#b1baf4", "#e192ef", "#b3f4f3", "#eee9fc" ]
brights = [ "#3f3951", "#e965a5", "#b1f2a7", "#ebde76", "#b1baf4", "#e192ef", "#b3f4f3", "#eee9fc" ]
background = "#282433"
foreground = "#eee9fc"
compose_cursor = '#ebde76'
cursor_bg = "#eee9fc"
cursor_border = "#eee9fc"
cursor_fg = "#eee9fc"
selection_bg = "#e965a5"
selection_fg = "#eee9fc"
scrollbar_thumb = '#3f3951'
split = '#938aad'
[colors.indexed]
[colors.tab_bar]
background = "#282433"
[colors.tab_bar.active_tab]
bg_color = "#282433"
fg_color = "#e965a5"
intensity = "Normal"
underline = "None"
italic = false
strikethrough = false
[colors.tab_bar.inactive_tab]
bg_color = "#282433"
fg_color = "#938aad"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.inactive_tab_hover]
bg_color = "#e192ef"
fg_color = "#eee9fc"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.new_tab]
bg_color = "#282433"
fg_color = "#938aad"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.new_tab_hover]
bg_color = "#e192ef"
fg_color = "#eee9fc"
intensity = "Normal"
italic = true
strikethrough = false
underline = "None"
[metadata]
name = 'hardhacker'
origin_url = 'https://github.com/hardhackerlabs/theme-wezterm
EOF}
conf_print_wezterm_theme_hardhacker | tee ${DEST}/.config/wezterm/colors/hardhacker.toml
# An extensive wezterm config, maybe too extensive, using tmux as default.
# and a complete set of aditional keymaps to learn.
# https://github.com/KevinSilvester/wezterm-config