mirror of
https://github.com/ION606/config-backup.git
synced 2026-05-14 22:16:58 +00:00
Compare commits
9 Commits
f8f5615416
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 761cb980e5 | |||
| 95d5033a72 | |||
| 6ce6f10251 | |||
| b08fef66dc | |||
| afc7036317 | |||
| ac9081237b | |||
| 1fc598c6a0 | |||
| 86275392b8 | |||
| 0e74f8056d |
@@ -1,2 +1,4 @@
|
||||
temp/
|
||||
props.txt
|
||||
*.log
|
||||
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
log_dir="${HOME}/.claude/logs"
|
||||
mkdir -p "$log_dir"
|
||||
|
||||
timestamp="$(date +%Y%m%d-%H%M%S)"
|
||||
session_file="${log_dir}/session-${timestamp}.log"
|
||||
cwd="$(pwd)"
|
||||
|
||||
echo "session: ${session_file}"
|
||||
|
||||
if [[ -z "${CLAUDE_CODE_OAUTH_TOKEN:-}" ]]; then
|
||||
CLAUDE_CODE_OAUTH_TOKEN="$(pass show claude/oauth-token | tr -d '\n')" || {
|
||||
echo "error: could not retrieve token from pass" >&2
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
if [[ -n "${ANTHROPIC_API_KEY:-}" ]]; then
|
||||
echo "error: ANTHROPIC_API_KEY would override oauth, billing API instead of plan" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# build minimal claude.json with subscription binding only
|
||||
auth_blob="$(
|
||||
python3 <<PY
|
||||
import json
|
||||
d = json.load(open("${HOME}/.claude.json"))
|
||||
out = {
|
||||
"hasCompletedOnboarding": True,
|
||||
"theme": "dark",
|
||||
"bypassPermissionsModeAccepted": True,
|
||||
"userID": d.get("userID", ""),
|
||||
"oauthAccount": d.get("oauthAccount", {}),
|
||||
"mcpServers": d.get("mcpServers", {}),
|
||||
"projects": {
|
||||
"/workspace": {
|
||||
"hasTrustDialogAccepted": True,
|
||||
"hasTrustDialogHooksAccepted": True,
|
||||
"hasCompletedProjectOnboarding": True,
|
||||
"mcpServers": d.get("projects", {}).get(cwd, {}).get("mcpServers", {}),
|
||||
},
|
||||
},
|
||||
}
|
||||
print(json.dumps(out))
|
||||
PY
|
||||
)"
|
||||
|
||||
if [[ -z "$(echo "$auth_blob" | python3 -c 'import sys,json; print(json.load(sys.stdin).get("userID",""))')" ]]; then
|
||||
echo "error: no userID found in host ~/.claude.json -- log in on host first" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export CLAUDE_CODE_OAUTH_TOKEN
|
||||
export AUTH_BLOB="$auth_blob"
|
||||
|
||||
docker pull containers.ion606.dev/ion606/claude-docker:latest &>/dev/null
|
||||
|
||||
docker run --rm -it \
|
||||
-v "${cwd}:/workspace" \
|
||||
-v "${HOME}/.claude/plugins:/root/.claude/plugins:ro" \
|
||||
-v "${HOME}/.claude/settings.json:/root/.claude/settings.json:ro" \
|
||||
-e CLAUDE_CODE_OAUTH_TOKEN \
|
||||
-e AUTH_BLOB \
|
||||
-e README_CONTENTS="$(cat ${cwd}/CLAUDE.md)" \
|
||||
--cap-drop ALL \
|
||||
ion-claude:latest "$@" \
|
||||
2>&1 | tee "$session_file"
|
||||
@@ -64,13 +64,14 @@ fmt_time() {
|
||||
hours="${hours% hour}";
|
||||
# convert decimal hours to h m
|
||||
local total_min;
|
||||
total_min="$(python - <<'PY'
|
||||
total_min="$(python - <<'PY' "$hours"
|
||||
import math,sys
|
||||
h=float(sys.stdin.read().strip())
|
||||
m=round((h-int(h))*60)
|
||||
arg = sys.argv[1] if len(sys.argv) > 1 else "0"
|
||||
h = float(arg)
|
||||
m = round((h - int(h)) * 60)
|
||||
print(f"{int(h)}h{m}m")
|
||||
PY
|
||||
<<<"$hours")";
|
||||
)";
|
||||
printf "%s" "$total_min";
|
||||
else
|
||||
printf "%s" "$raw";
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash
|
||||
# check status of a specific bluetooth device via bluetoothctl
|
||||
|
||||
|
||||
# check if bluetooth service is active
|
||||
if ! systemctl is-active --quiet bluetooth.service; then
|
||||
echo "Bluetooth off" # icon or text when BT is down
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# check if controller is powered on
|
||||
if ! bluetoothctl show | grep -q "Powered: yes"; then
|
||||
echo "BT ctrl off"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# check connected status
|
||||
mapfile -t macs < <(bluetoothctl devices | awk '{print $2}')
|
||||
|
||||
connected_name=""
|
||||
|
||||
for mac in "${macs[@]}"; do
|
||||
# get info for this device
|
||||
info=$(bluetoothctl info "$mac")
|
||||
if echo "$info" | grep -q "Connected: yes"; then
|
||||
# extract Name:
|
||||
name=$(echo "$info" | grep "^\\s*Name:" | sed 's/.*Name: //')
|
||||
connected_name="$name"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -n "$connected_name" ]]; then
|
||||
# you can replace the icon with a nerd-font icon if you use one
|
||||
echo " $connected_name"
|
||||
else
|
||||
echo " Disconnected"
|
||||
fi
|
||||
|
||||
@@ -22,12 +22,8 @@ font pango:monospace 8
|
||||
# Start XDG autostart .desktop files using dex. See also
|
||||
# https://wiki.archlinux.org/index.php/XDG_Autostart
|
||||
exec --no-startup-id dex --autostart --environment i3
|
||||
|
||||
# COMMENT THIS IN FOR ONE SCREEN
|
||||
# exec_always --no-startup-id killall -q polybar; polybar -c .config/polybar/main.module &
|
||||
|
||||
# DELETEME if you change your monitor setup
|
||||
exec_always --no-startup-id bash /home/ion606/setupScreens.sh
|
||||
exec_always --no-startup-id killall -q polybar; polybar --config=/home/ion606/.config/polybar/main.module &
|
||||
exec --no-startup-id /usr/libexec/xfce-polkit &
|
||||
|
||||
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
|
||||
# they are included here as an example. Modify as you see fit.
|
||||
@@ -35,15 +31,14 @@ exec_always --no-startup-id bash /home/ion606/setupScreens.sh
|
||||
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
|
||||
# screen before suspend. Use loginctl lock-session to lock your screen.
|
||||
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
|
||||
exec_always --no-startup-id dunst
|
||||
|
||||
# NetworkManager is the most popular way to manage wireless networks on Linux,
|
||||
# and nm-applet is a desktop environment-independent system tray GUI for it.
|
||||
exec --no-startup-id nm-applet
|
||||
exec --no-startup-id /usr/lib/notify-osd/notify-osd &
|
||||
|
||||
exec_always feh --bg-fill "$(find /home/ion606/Pictures/astolfo/ -type f | shuf -n 1)"
|
||||
exec_always picom --config /home/ion606/.config/picom/picom.conf
|
||||
exec_always feh --bg-fill "$(find /home/ion606/Pictures/bk -type f | shuf -n 1)"
|
||||
exec_always picom --config /home/ion606/.config/picom/picom.config
|
||||
exec_always --no-startup-id eww daemon
|
||||
|
||||
focus_follows_mouse no
|
||||
@@ -59,7 +54,7 @@ bindsym XF86MonBrightnessDown exec brightnessctl set 10%-
|
||||
bindsym XF86MonBrightnessUp exec brightnessctl set +10%
|
||||
|
||||
|
||||
bindsym $mod+Shift+B exec feh --bg-fill "$(find /home/ion606/Pictures/astolfo/ -type f | shuf -n 1)"
|
||||
bindsym $mod+Shift+B exec feh --bg-fill "/home/ion606/Pictures/bk.gif"
|
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
@@ -70,6 +65,7 @@ tiling_drag modifier titlebar
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec alacritty
|
||||
bindsym $mod+t exec i3-sensible-terminal
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
+35
-31
@@ -1,8 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
img="$(find /home/ion606/Pictures/astolfo/ -type f | shuf -n 1)";
|
||||
tmp="/tmp/i3lock-bg.png";
|
||||
|
||||
magick "$img" -strip "$tmp";
|
||||
|
||||
if [[ "$1" == "--single" ]]; then
|
||||
i3lock -i Pictures/ohnocringe.jpg -F
|
||||
exit 0
|
||||
i3lock -i "$tmp" -F
|
||||
exit 0
|
||||
fi
|
||||
|
||||
BLANK='#00000000'
|
||||
@@ -13,33 +18,32 @@ WRONG='#880000bb'
|
||||
VERIFYING='#00564dE6'
|
||||
|
||||
i3lock \
|
||||
--insidever-color=$CLEAR \
|
||||
--ringver-color=$VERIFYING \
|
||||
\
|
||||
--insidewrong-color=$CLEAR \
|
||||
--ringwrong-color=$WRONG \
|
||||
\
|
||||
--inside-color=$BLANK \
|
||||
--ring-color=$DEFAULT \
|
||||
--line-color=$BLANK \
|
||||
--separator-color=$DEFAULT \
|
||||
\
|
||||
--verif-color=$TEXT \
|
||||
--wrong-color=$TEXT \
|
||||
--time-color=$TEXT \
|
||||
--date-color=$TEXT \
|
||||
--layout-color=$TEXT \
|
||||
--keyhl-color=$WRONG \
|
||||
--bshl-color=$WRONG \
|
||||
\
|
||||
--screen 1 \
|
||||
--blur 9 \
|
||||
--clock \
|
||||
--indicator \
|
||||
--time-str="%H:%M:%S" \
|
||||
--date-str="%A, %Y-%m-%d" \
|
||||
--keylayout 1
|
||||
|
||||
--insidever-color=$CLEAR \
|
||||
--ringver-color=$VERIFYING \
|
||||
\
|
||||
--insidewrong-color=$CLEAR \
|
||||
--ringwrong-color=$WRONG \
|
||||
\
|
||||
--inside-color=$BLANK \
|
||||
--ring-color=$DEFAULT \
|
||||
--line-color=$BLANK \
|
||||
--separator-color=$DEFAULT \
|
||||
\
|
||||
--verif-color=$TEXT \
|
||||
--wrong-color=$TEXT \
|
||||
--time-color=$TEXT \
|
||||
--date-color=$TEXT \
|
||||
--layout-color=$TEXT \
|
||||
--keyhl-color=$WRONG \
|
||||
--bshl-color=$WRONG \
|
||||
\
|
||||
--screen 1 \
|
||||
--blur 9 \
|
||||
--clock \
|
||||
--indicator \
|
||||
--time-str="%H:%M:%S" \
|
||||
--date-str="%A, %Y-%m-%d" \
|
||||
--keylayout 1
|
||||
|
||||
# # paths for temporary images
|
||||
# tmpbg='/tmp/lockscreen.png'
|
||||
@@ -72,11 +76,11 @@ i3lock \
|
||||
# # while kill -0 "$lock_pid" 2>/dev/null; do
|
||||
# # # reset tmpbg to the original blurred image
|
||||
# # cp "$original_bg" "$tmpbg"
|
||||
|
||||
|
||||
# # # overlay the clock text on the reset image
|
||||
# # magick "$tmpbg" -gravity center -font Ubuntu-Bold -pointsize 50 -fill white \
|
||||
# # -annotate +0+200 "$(date '+%I:%M %p')" "$tmpbg"
|
||||
|
||||
|
||||
# # # reload i3lock with the updated image
|
||||
# # i3lock -i "$tmpbg" --nofork &
|
||||
# # sleep 1
|
||||
|
||||
+7
-9
@@ -12,11 +12,13 @@ modules-left = i3
|
||||
modules-center = memory
|
||||
modules-right = cpu player wifi bluetooth clock backlight battery
|
||||
font-0 = Noto Sans:size=10;2
|
||||
font-1 = Font Awesome 6 Free Solid:size=10;2
|
||||
# font-1 = Font Awesome 6 Free Solid:size=10;2
|
||||
font-1 = "Symbols Nerd Font:size=12;2"
|
||||
font-2 = Font Awesome 6 Brands:size=10;2
|
||||
font-3 = DejaVu Sans Mono:size=10;2
|
||||
font-4 = Nerd Font:style=Regular:size=12;0
|
||||
font-5 = NotoEmoji:scale=10;
|
||||
font-6 = ttf-arimo-nerd:scale=10
|
||||
|
||||
separator = |
|
||||
separator-foreground = #6a0dad
|
||||
@@ -153,15 +155,11 @@ animation-packetloss-1 = 📶
|
||||
animation-packetloss-1-foreground = #000000
|
||||
animation-packetloss-framerate = 500
|
||||
|
||||
|
||||
[module/bluetooth]
|
||||
type = internal/bluetooth
|
||||
interval = 5
|
||||
format-connected = %name%
|
||||
format-disconnected = Off
|
||||
format-foreground = #ffffff
|
||||
format-background = #483d8b
|
||||
format-padding = 5
|
||||
type = custom/script
|
||||
exec = /home/ion606/.config/polybar/scripts/bluetooth_status.sh
|
||||
interval = 1
|
||||
click-left = blueman-manager &
|
||||
|
||||
|
||||
[module/player]
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Configuration
|
||||
PACKAGE_FILE="packages.txt"
|
||||
LOG_FILE="broken_packages.log"
|
||||
|
||||
# Check if packages.txt exists
|
||||
if [[ ! -f "$PACKAGE_FILE" ]]; then
|
||||
echo "Error: $PACKAGE_FILE not found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Clear or create the log file
|
||||
echo "--- Installation Failures ($(date)) ---" > "$LOG_FILE"
|
||||
|
||||
echo "Starting installation process..."
|
||||
|
||||
# Loop through each line in the file
|
||||
while IFS= read -r package || [[ -n "$package" ]]; do
|
||||
# Skip empty lines or lines starting with #
|
||||
[[ -z "$package" || "$package" =~ ^# ]] && continue
|
||||
|
||||
echo "Installing: $package..."
|
||||
|
||||
# Attempt installation
|
||||
if ! yay -Sy --noconfirm "$package"; then
|
||||
echo "[FAILED] $package" | tee -a "$LOG_FILE"
|
||||
else
|
||||
echo "[SUCCESS] $package"
|
||||
fi
|
||||
|
||||
done < "$PACKAGE_FILE"
|
||||
|
||||
echo "--------------------------------------"
|
||||
echo "Process complete. Broken packages logged in $LOG_FILE"
|
||||
@@ -0,0 +1,83 @@
|
||||
[colors]
|
||||
# base colors
|
||||
background = "black"
|
||||
foreground = "white"
|
||||
highlight = "cyan"
|
||||
error = "red"
|
||||
|
||||
[layout]
|
||||
padding = 1
|
||||
margin = 1
|
||||
border_style = "solid"
|
||||
|
||||
[fonts]
|
||||
regular = "monospace"
|
||||
bold = "monospace bold"
|
||||
|
||||
[animations]
|
||||
enable = true
|
||||
|
||||
[username_field]
|
||||
remember = true
|
||||
|
||||
[username_field.style]
|
||||
show_title = true
|
||||
title = "Umsername!"
|
||||
title_color = "white"
|
||||
content_color = "white"
|
||||
title_color_focused = "light cyan"
|
||||
content_color_focused = "light cyan"
|
||||
show_border = true
|
||||
border_color = "white"
|
||||
border_color_focused = "light cyan"
|
||||
use_max_width = true
|
||||
max_width = 48
|
||||
|
||||
[password_field]
|
||||
content_replacement_character = "*"
|
||||
|
||||
[password_field.style]
|
||||
show_title = true
|
||||
title = "Pamsmword! (shhh, secret :3)"
|
||||
title_color = "white"
|
||||
content_color = "white"
|
||||
title_color_focused = "light magenta"
|
||||
content_color_focused = "light magenta"
|
||||
show_border = true
|
||||
border_color = "white"
|
||||
border_color_focused = "light magenta"
|
||||
use_max_width = true
|
||||
max_width = 48
|
||||
|
||||
[environment_switcher]
|
||||
switcher_visibility = "visible"
|
||||
toggle_hint = "Switcher %key%"
|
||||
toggle_hint_color = "dark gray"
|
||||
toggle_hint_modifiers = ""
|
||||
include_tty_shell = false
|
||||
remember = true
|
||||
show_movers = true
|
||||
mover_color = "dark gray"
|
||||
mover_modifiers = ""
|
||||
mover_color_focused = "light yellow"
|
||||
mover_modifiers_focused = "bold"
|
||||
left_mover = "<"
|
||||
right_mover = ">"
|
||||
mover_margin = 1
|
||||
show_neighbours = true
|
||||
neighbour_color = "dark gray"
|
||||
neighbour_modifiers = ""
|
||||
neighbour_color_focused = "light blue"
|
||||
neighbour_modifiers_focused = ""
|
||||
neighbour_margin = 1
|
||||
selected_color = "gray"
|
||||
selected_modifiers = "underlined"
|
||||
selected_color_focused = "light green"
|
||||
selected_modifiers_focused = "bold"
|
||||
max_display_length = 8
|
||||
no_envs_text = "No environments..."
|
||||
no_envs_color = "white"
|
||||
no_envs_modifiers = ""
|
||||
no_envs_color_focused = "red"
|
||||
no_envs_modifiers_focused = ""
|
||||
|
||||
@@ -70,6 +70,7 @@ jre-openjdk
|
||||
jre21-openjdk
|
||||
jre8-openjdk
|
||||
krita
|
||||
lemurs
|
||||
less
|
||||
libreoffice-fresh
|
||||
librewolf-bin
|
||||
|
||||
@@ -40,6 +40,7 @@ echo "This script will install and configure the following:
|
||||
- Tailscale (VPN)
|
||||
- Warp (Cloudflare's VPN)
|
||||
- auto-cpufreq (battery optimizer)
|
||||
- change and configure the default login to lemurs
|
||||
- Remove Thunar and Foot (if present)
|
||||
- Clean up and update the system
|
||||
|
||||
@@ -87,7 +88,7 @@ mkdir -p /home/$USERTEMP/auto-cpufreq/auto-cpufreq.conf
|
||||
mv auto-cpufreq.conf /home/$USERTEMP/auto-cpufreq/auto-cpufreq.conf
|
||||
|
||||
# set up automations in child process
|
||||
mkdir -p /home/$USERTEMP/.automations && cp -r -f auto/* /home/$USERTEMP/.automations/ && $(sudo pacman -Sy --needed --noconfirm dunst && sudo bash /home/$USERTEMP/.automations/setupauto.sh /home/$USERTEMP &> /home/$USERTEMP/setuplogs.log) &
|
||||
mkdir -p /home/$USERTEMP/.automations && cp -r -f auto/* /home/$USERTEMP/.automations/ && $(sudo pacman -Sy --needed --noconfirm dunst && sudo bash /home/$USERTEMP/.automations/setupauto.sh /home/$USERTEMP &>/home/$USERTEMP/setuplogs.log) &
|
||||
|
||||
# Installs
|
||||
# Librewolf
|
||||
@@ -107,12 +108,18 @@ LATEST_JDK=$(sudo dnf list available | grep -E 'java-[0-9]+-openjdk' | awk '{pri
|
||||
# General Package Install
|
||||
yay -Sy --needed --noconfirm - <packages.txt || echo "failed to install some packages!"
|
||||
|
||||
# login manager stuffs
|
||||
sudo systemctl disable display-manager.service
|
||||
sudo systemctl enable lemurs.service
|
||||
sudo mv -f lemurs-config.toml /etc/lemurs/config.toml
|
||||
|
||||
mv -f Librewolf/chrome /home/$USERTEMP/.librewolf/
|
||||
mv -f claude /usr/sbin/
|
||||
|
||||
npm install -g @bitwarden/cli alacritty-themes typescript || echo "failed to install Typescript!"
|
||||
|
||||
mkdir -p /home/$USERTEMP/.icons
|
||||
echo -e "https://www.gnome-look.org/p/1305251\nhttps://www.gnome-look.org/p/2091068" > /home/$USERTEMP/.icons/links.txt
|
||||
echo -e "https://www.gnome-look.org/p/1305251\nhttps://www.gnome-look.org/p/2091068" >/home/$USERTEMP/.icons/links.txt
|
||||
|
||||
alacritty-themes --create && alacritty-themes Hyper || echo "alacritty theme install failed!"
|
||||
cp -r /home/$USERTEMP/.config/wofi/ wofi >/dev/null 2>&1 &
|
||||
|
||||
@@ -30,12 +30,18 @@ set -x EDITOR nvim
|
||||
|
||||
set -gx PATH /opt/cuda/bin $PATH
|
||||
set -gx LD_LIBRARY_PATH /opt/cuda/lib64 $LD_LIBRARY_PATH
|
||||
set -gx JAVA_HOME /usr/lib/jvm/java-21-openjdk
|
||||
set -gx PATH $JAVA_HOME/bin:$PATH
|
||||
|
||||
# GTK and Qt themes
|
||||
set -x GTK_THEME "Adwaita:dark"
|
||||
set -x GTK2_RC_FILES "/usr/share/themes/Adwaita-dark/gtk-2.0/gtkrc"
|
||||
set -x QT_STYLE_OVERRIDE Adwaita-Dark
|
||||
|
||||
# Ani-CLI
|
||||
set -x ANI_CLI_PLAYER vlc
|
||||
set -x ANI_CLI_DOWNLOAD_DIR ~/Videos/Anime
|
||||
|
||||
# SDKMAN init
|
||||
if test -s "$SDKMAN_DIR/bin/sdkman-init.sh"
|
||||
source "$SDKMAN_DIR/bin/sdkman-init.sh"
|
||||
@@ -59,6 +65,11 @@ kill -9 (ps aux | grep vesktop | grep -v grep | awk '{print $2}' | head -n 1)
|
||||
ps aux | grep vesktop
|
||||
end
|
||||
|
||||
function killwebex
|
||||
bash /home/ion606/killwebex.sh
|
||||
ps aux | grep webex
|
||||
end
|
||||
|
||||
function updateDiscord
|
||||
set target_dir ~/Discord
|
||||
set tar_file (find . -type f -name "discord-*.tar.gz" | head -n 1)
|
||||
@@ -96,3 +107,7 @@ starship init fish | source
|
||||
if test -f ~/.config/fish/conf.d/colors.fish
|
||||
source ~/.config/fish/conf.d/colors.fish
|
||||
end
|
||||
|
||||
# bun
|
||||
set --export BUN_INSTALL "$HOME/.bun"
|
||||
set --export PATH $BUN_INSTALL/bin $PATH
|
||||
|
||||
Reference in New Issue
Block a user