Compare commits

...

5 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
6 changed files with 130 additions and 18 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"
+6 -16
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,21 +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
# no timeout after 600 seconds ffs
exec_always --no-startup-id xset s off
exec_always --no-startup-id xset s noblank
exec_always --no-startup-id xset -dpms
# 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
@@ -65,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
@@ -76,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
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"
+3 -2
View File
@@ -88,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
@@ -114,11 +114,12 @@ 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