From 737eeb516e3e517f4e7dff3a4bb4e811e18b6b84 Mon Sep 17 00:00:00 2001 From: Jake Pullen Date: Wed, 3 Sep 2025 19:05:13 +0100 Subject: [PATCH] latest fedora updates --- alacritty/alacritty.toml | 50 ++------------ git/gitconfig | 2 +- set_up_dev/{install_me.sh => arch.sh} | 0 set_up_dev/bazecore_grab.sh | 82 +++++++++++++++++++++++ set_up_dev/fedora.sh | 93 +++++++++++++++++++++++++++ zsh/.zshrc | 9 +-- 6 files changed, 182 insertions(+), 54 deletions(-) rename set_up_dev/{install_me.sh => arch.sh} (100%) create mode 100755 set_up_dev/bazecore_grab.sh create mode 100755 set_up_dev/fedora.sh diff --git a/alacritty/alacritty.toml b/alacritty/alacritty.toml index 7a150c8..97523ec 100644 --- a/alacritty/alacritty.toml +++ b/alacritty/alacritty.toml @@ -9,61 +9,20 @@ import = [ ] [window] -title = "Alacritty" -decorations = "none" +title = "JP Dev Area" +dynamic_title = true blur = true opacity = 0.9 padding.x = 10 padding.y = 10 [window.dimensions] -columns = 160 +columns = 150 lines = 80 + [cursor.style] shape = "Beam" -blinking = "Never" - -# [colors] -# #transparent_background_colors = true -# draw_bold_text_with_bright_colors = true - -# [env] -# TERM = "xterm-256color" - -# [font] -# #glyph_offset = { x = 1, y = 0 } -# normal.family = "MesloLGS Nerd Font Mono" -# normal.style = "Regular" -# size = 16.0 - -# [font.bold] -# family = "MesloLGS Nerd Font Mono" -# style = "Bold" - -# [font.italic] -# family = "MesloLGS Nerd Font Mono" -# style = "Italic" - - -[font] -size = 14 - -[font.normal] -family = "Inconsolata Nerd Font" -style = "Regular" - -[font.bold] -family = "Inconsolata Nerd Font" -style = "Bold" - -[font.italic] -family = "Inconsolata Nerd Font" -style = "Italic" - -[font.bold_italic] -family = "Inconsolata Nerd Font" -style = "Bold Italic" [colors.primary] background = "#10131c" @@ -94,3 +53,4 @@ save_to_clipboard = false [terminal.shell] program = "/usr/bin/zsh" +args = ["-l"] diff --git a/git/gitconfig b/git/gitconfig index 36dd9cd..e8165ad 100644 --- a/git/gitconfig +++ b/git/gitconfig @@ -1,7 +1,7 @@ [user] email = hello@jake-is.me name = Jake Pullen - signingkey = 047E30AFD800B3E3 + signingkey = 5CBC649FBEF851A6 [commit] template = ~/.config/git/template diff --git a/set_up_dev/install_me.sh b/set_up_dev/arch.sh similarity index 100% rename from set_up_dev/install_me.sh rename to set_up_dev/arch.sh diff --git a/set_up_dev/bazecore_grab.sh b/set_up_dev/bazecore_grab.sh new file mode 100755 index 0000000..501bb0f --- /dev/null +++ b/set_up_dev/bazecore_grab.sh @@ -0,0 +1,82 @@ +#!/usr/bin/env bash +# ------------------------------------------------------------------ +# download_latest_appimage.sh +# +# Usage: +# ./download_latest_appimage.sh / [output_dir] +# +# Example: +# ./download_latest_appimage.sh Dygmalab/Bazecor /tmp +# +# The script uses the public GitHub API (no authentication token needed for +# a single request). If you hit rate limits, set GITHUB_TOKEN with a +# personal access token and the script will use it automatically. +# ------------------------------------------------------------------ + +set -euo pipefail + +# ---------- Helper functions ---------- +error() { + echo "❌ $*" >&2 +} +warn() { + echo "⚠️ $*" +} + +# ---------- Argument parsing ---------- +# if [[ $# -lt 1 ]]; then +# error "Missing repository argument." +# echo "Usage: $0 / [output_dir]" +# exit 1 +# fi + +REPO="Dygmalab/Bazecor" # e.g. Dygmalab/Bazecor +OUTDIR="$HOME/AppImages" + +# Ensure output directory exists +mkdir -p "$OUTDIR" + +# ---------- GitHub API ---------- +API_URL="https://api.github.com/repos/${REPO}/releases/latest" +# If you have a token, uncomment the next line: +# AUTH_HEADER="Authorization: token $GITHUB_TOKEN" + +# Fetch release metadata (JSON) +echo "🔎 Querying GitHub for latest release of ${REPO}..." +RELEASE_JSON=$(curl -sSL --fail \ + "${API_URL}" \ + ${AUTH_HEADER:+-H "$AUTH_HEADER"}) + +# ---------- Find the AppImage asset ---------- +APPIMAGE_URL="" +while IFS= read -r line; do + # Each line is a JSON object describing an asset. + # We look for a "name" field that ends with .AppImage (case‑insensitive) + if [[ "$line" =~ \"name\":\ *\"([^\"]+\.AppImage)\" ]]; then + APPIMAGE_NAME="${BASH_REMATCH[1]}" + # The download URL is in the "browser_download_url" field. + if [[ "$line" =~ \"browser_download_url\":\ *\"([^\"]+)\" ]]; then + APPIMAGE_URL="${BASH_REMATCH[1]}" + break + fi + fi +done < <(echo "$RELEASE_JSON" | jq -c '.assets[]') + +if [[ -z $APPIMAGE_URL ]]; then + error "No AppImage asset found in the latest release." + exit 2 +fi + +echo "📥 Found AppImage: ${APPIMAGE_NAME}" +echo "🔗 Download URL: ${APPIMAGE_URL}" + +# ---------- Download ---------- +OUTFILE="${OUTDIR}/${APPIMAGE_NAME}" +echo "🚚 Downloading to ${OUTFILE} ..." +curl -L --fail \ + "${APPIMAGE_URL}" \ + -o "$OUTFILE" + +chmod +x "$OUTFILE" +echo "✅ Done! AppImage saved as $OUTFILE" + diff --git a/set_up_dev/fedora.sh b/set_up_dev/fedora.sh new file mode 100755 index 0000000..97fb7f4 --- /dev/null +++ b/set_up_dev/fedora.sh @@ -0,0 +1,93 @@ +#!/usr/bin/env bash + +# ------------------------------------------------------------ +# Fedora package bootstrap script +# Author: Jake Pullen +# Date : 2025-08-15 +# +# Usage: +# chmod +x fedora-setup.sh +# sudo ./fedora-setup.sh +# ------------------------------------------------------------ + +set -euo pipefail # safer shell behaviour +shopt -s expand_aliases # if you use aliases inside the script + +# 1. Update system first +echo "==> Updating Fedora base packages..." +sudo dnf upgrade --refresh -y + +# 2. Install RPM‑Fusion repos (free & non‑free) +echo "==> Enabling RPM‑Fusion repositories..." +sudo dnf install \ + https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \ + https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm \ + -y + +# list all packages we want from dnf +package_list=( + "alacritty" + "fastfetch" + "zsh" + "btop" + "steam" + ) + +# Create a string of packages +package_string=$(IFS=' ' ; echo "${package_list[@]}") + +# 3. Install packages listed +echo "==> Installing dnf Packages..." +sudo dnf install $package_string -y --skip-unavailable + +# 5. Install Flatpak (if not present) and set up Flathub +if ! command -v flatpak &>/dev/null; then + echo "==> Installing Flatpak..." + sudo dnf install flatpak -y +fi + +echo "==> Adding Flathub repository..." +flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + +# 6. Install Discord via Flatpak +echo "==> Installing Discord..." +flatpak install -y flathub com.discordapp.Discord +flatpak install -y flathub com.spotify.Client + +# 7. Install stuff from around the web that we want +# UV for Python Dev +curl -LsSf https://astral.sh/uv/install.sh | sh + +# Rust, because we all love rust +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh + +# Zed, we like a Neovim Backup +curl -f https://zed.dev/install.sh | sh + +# Bazecore for the Dygma Keyboard +./bazecore_grab.sh + +# sim link config +folders_to_link=( + "alacritty" + "git" + "zsh" + ) +for folder in "${folders_to_link[@]}"; do + config_path="$HOME/dotfiles/$folder" + target_path="$HOME/.config/$folder" + ln -s "$config_path" "$target_path" +done + +ln -s $HOME/dotfiles/git/gitconfig $HOME/.gitconfig + + +# 9. Clean up (optional) +echo "==> Cleaning up package cache..." +sudo dnf clean all + +echo "====================================================" +echo "All done! Your Fedora system is now ready to go." +echo "You can run 'flatpak list' to see Flatpak apps or 'dnf list installed' for rpm packages." +echo "Happy hacking!" + diff --git a/zsh/.zshrc b/zsh/.zshrc index 5457664..e8ae617 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -30,13 +30,6 @@ setopt histignorealldups alias ..='cd ..' alias la='ls -la' -# Aliases: git -alias ga='git add' -alias gc='git commit' -alias gcm='git checkout main' -alias gl='git log --graph --all --pretty=format:"%C(magenta)%h %C(white) %an %ar%C(blue) %D%n%s%n"' -alias gnew='git checkout -b' # new branch - -# Alias: neovim +alias lmstudio='./AppImages/LM-Studio.AppImage' fastfetch