Compare commits

...

9 Commits

Author SHA1 Message Date
ION606 761cb980e5 added claude 2026-05-06 17:54:23 -07:00
ION606 95d5033a72 added claude 2026-05-06 17:17:26 -07:00
ION606 6ce6f10251 not exec always polkit 2026-02-18 12:20:09 -08:00
ION606 b08fef66dc added polit 2026-02-18 12:19:08 -08:00
ION606 afc7036317 added Ani-CLI to fish config 2026-02-08 18:10:42 +09:00
ION606 ac9081237b Merge branch 'main' of https://github.com/ION606/config-backup 2026-01-03 12:55:28 -08:00
ION606 1fc598c6a0 merge 2026-01-03 12:55:26 -08:00
ION606 86275392b8 Merge branch 'main' of https://github.com/ION606/config-backup 2025-12-13 11:40:01 -05:00
ION606 0e74f8056d updated timeout and lock screen 2025-12-13 11:39:55 -05:00
12 changed files with 306 additions and 56 deletions
+2
View File
@@ -1,2 +1,4 @@
temp/
props.txt
*.log
Executable
+69
View File
@@ -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"
+5 -4
View 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";
+39
View File
@@ -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
+6 -10
View File
@@ -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
View File
@@ -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
View File
@@ -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]
+35
View File
@@ -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"
+83
View 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 = ""
+1
View File
@@ -70,6 +70,7 @@ jre-openjdk
jre21-openjdk
jre8-openjdk
krita
lemurs
less
libreoffice-fresh
librewolf-bin
+9 -2
View File
@@ -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 &
+15
View File
@@ -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