232 lines
6.3 KiB
Bash
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
|