Initial commit
This commit is contained in:
34
.editorconfig
Executable file
34
.editorconfig
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
# EditorConfig is awesome: https://editorconfig.org
|
||||||
|
|
||||||
|
# top-most EditorConfig file
|
||||||
|
root = true
|
||||||
|
|
||||||
|
# Unix-style newlines with a newline ending every file
|
||||||
|
[*]
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
# Matches multiple files with brace expansion notation
|
||||||
|
# Set default charset
|
||||||
|
[*.{js,py}]
|
||||||
|
charset = utf-8
|
||||||
|
|
||||||
|
# 4 space indentation
|
||||||
|
[*.py]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 4
|
||||||
|
|
||||||
|
# Tab indentation (no size specified)
|
||||||
|
[Makefile]
|
||||||
|
indent_style = tab
|
||||||
|
|
||||||
|
# Indentation override for all JS under lib directory
|
||||||
|
[lib/**.js]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
# Matches the exact files either package.json or .travis.yml
|
||||||
|
[{package.json,.travis.yml}]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
16
.gitconfig
Executable file
16
.gitconfig
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
[user]
|
||||||
|
name = Sebastian Krüger
|
||||||
|
email = valknar@pivoine.art
|
||||||
|
[filter "lfs"]
|
||||||
|
clean = git-lfs clean -- %f
|
||||||
|
smudge = git-lfs smudge -- %f
|
||||||
|
process = git-lfs filter-process
|
||||||
|
required = true
|
||||||
|
[core]
|
||||||
|
editor = nano
|
||||||
|
[init]
|
||||||
|
defaultBranch = main
|
||||||
|
[alias]
|
||||||
|
squash-all = "!f(){ git reset $(git commit-tree \"HEAD^{tree}\" \"$@\");};f"
|
||||||
|
[push]
|
||||||
|
autoSetupRemote = true
|
||||||
30
.gitignore
vendored
Executable file
30
.gitignore
vendored
Executable file
@@ -0,0 +1,30 @@
|
|||||||
|
# Ignore everything
|
||||||
|
*
|
||||||
|
|
||||||
|
# But not these files.
|
||||||
|
!CLAUDE.md
|
||||||
|
!.gitignore
|
||||||
|
!.gitconfig
|
||||||
|
!.gitmodules
|
||||||
|
!README.md
|
||||||
|
!.editorconfig
|
||||||
|
!.nvmrc
|
||||||
|
!.ruby-version
|
||||||
|
!.python-version
|
||||||
|
!.p10k.zsh
|
||||||
|
!.zprofile
|
||||||
|
!.zlogout
|
||||||
|
!.zlogin
|
||||||
|
!.zshrc
|
||||||
|
!.zshenv
|
||||||
|
!.hushlogin
|
||||||
|
!arty.yml
|
||||||
|
!signature.txt
|
||||||
|
|
||||||
|
# Ignore so we won't commit these in the allowed dirctories.
|
||||||
|
.DS_Store
|
||||||
|
*.log*
|
||||||
|
*.db*
|
||||||
|
*.vscdb*
|
||||||
|
*.sqlite*
|
||||||
|
*.bnk*
|
||||||
0
.hushlogin
Normal file
0
.hushlogin
Normal file
193
.p10k.zsh
Normal file
193
.p10k.zsh
Normal file
@@ -0,0 +1,193 @@
|
|||||||
|
# Generated by Powerlevel10k configuration wizard on 2025-09-04 at 02:33 CEST.
|
||||||
|
# Based on romkatv/powerlevel10k/config/p10k-pure.zsh, checksum 07533.
|
||||||
|
# Wizard options: nerdfont-v3 + powerline, small icons, pure, snazzy, 24h time, 1 line,
|
||||||
|
# compact, instant_prompt=verbose.
|
||||||
|
# Type `p10k configure` to generate another config.
|
||||||
|
#
|
||||||
|
# Config file for Powerlevel10k with the style of Pure (https://github.com/sindresorhus/pure).
|
||||||
|
#
|
||||||
|
# Differences from Pure:
|
||||||
|
#
|
||||||
|
# - Git:
|
||||||
|
# - `@c4d3ec2c` instead of something like `v1.4.0~11` when in detached HEAD state.
|
||||||
|
# - No automatic `git fetch` (the same as in Pure with `PURE_GIT_PULL=0`).
|
||||||
|
#
|
||||||
|
# Apart from the differences listed above, the replication of Pure prompt is exact. This includes
|
||||||
|
# even the questionable parts. For example, just like in Pure, there is no indication of Git status
|
||||||
|
# being stale; prompt symbol is the same in command, visual and overwrite vi modes; when prompt
|
||||||
|
# doesn't fit on one line, it wraps around with no attempt to shorten it.
|
||||||
|
#
|
||||||
|
# If you like the general style of Pure but not particularly attached to all its quirks, type
|
||||||
|
# `p10k configure` and pick "Lean" style. This will give you slick minimalist prompt while taking
|
||||||
|
# advantage of Powerlevel10k features that aren't present in Pure.
|
||||||
|
|
||||||
|
# Temporarily change options.
|
||||||
|
'builtin' 'local' '-a' 'p10k_config_opts'
|
||||||
|
[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases')
|
||||||
|
[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob')
|
||||||
|
[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')
|
||||||
|
'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
|
||||||
|
|
||||||
|
() {
|
||||||
|
emulate -L zsh -o extended_glob
|
||||||
|
|
||||||
|
# Unset all configuration options.
|
||||||
|
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
|
||||||
|
|
||||||
|
# Zsh >= 5.1 is required.
|
||||||
|
[[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return
|
||||||
|
|
||||||
|
# Prompt colors.
|
||||||
|
local grey='242'
|
||||||
|
local red='#FF5C57'
|
||||||
|
local yellow='#F3F99D'
|
||||||
|
local blue='#57C7FF'
|
||||||
|
local magenta='#FF6AC1'
|
||||||
|
local cyan='#9AEDFE'
|
||||||
|
local white='#F1F1F0'
|
||||||
|
|
||||||
|
# Left prompt segments.
|
||||||
|
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
|
||||||
|
context # user@host
|
||||||
|
dir # current directory
|
||||||
|
vcs # git status
|
||||||
|
command_execution_time # previous command duration
|
||||||
|
# virtualenv # python virtual environment
|
||||||
|
prompt_char # prompt symbol
|
||||||
|
)
|
||||||
|
|
||||||
|
# Right prompt segments.
|
||||||
|
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
|
||||||
|
# command_execution_time # previous command duration
|
||||||
|
# virtualenv # python virtual environment
|
||||||
|
# context # user@host
|
||||||
|
time # current time
|
||||||
|
)
|
||||||
|
|
||||||
|
# Basic style options that define the overall prompt look.
|
||||||
|
typeset -g POWERLEVEL9K_BACKGROUND= # transparent background
|
||||||
|
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE= # no surrounding whitespace
|
||||||
|
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' ' # separate segments with a space
|
||||||
|
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR= # no end-of-line symbol
|
||||||
|
typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION= # no segment icons
|
||||||
|
|
||||||
|
# Add an empty line before each prompt except the first. This doesn't emulate the bug
|
||||||
|
# in Pure that makes prompt drift down whenever you use the Alt-C binding from fzf or similar.
|
||||||
|
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false
|
||||||
|
|
||||||
|
# Magenta prompt symbol if the last command succeeded.
|
||||||
|
typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS}_FOREGROUND=$magenta
|
||||||
|
# Red prompt symbol if the last command failed.
|
||||||
|
typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS}_FOREGROUND=$red
|
||||||
|
# Default prompt symbol.
|
||||||
|
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯'
|
||||||
|
# Prompt symbol in command vi mode.
|
||||||
|
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮'
|
||||||
|
# Prompt symbol in visual vi mode is the same as in command mode.
|
||||||
|
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='❮'
|
||||||
|
# Prompt symbol in overwrite vi mode is the same as in command mode.
|
||||||
|
typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=false
|
||||||
|
|
||||||
|
# Grey Python Virtual Environment.
|
||||||
|
typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=$grey
|
||||||
|
# Don't show Python version.
|
||||||
|
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false
|
||||||
|
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
|
||||||
|
|
||||||
|
# Blue current directory.
|
||||||
|
typeset -g POWERLEVEL9K_DIR_FOREGROUND=$blue
|
||||||
|
|
||||||
|
# Context format when root: user@host. The first part white, the rest grey.
|
||||||
|
typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE="%F{$white}%n%f%F{$grey}@%m%f"
|
||||||
|
# Context format when not root: user@host. The whole thing grey.
|
||||||
|
typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE="%F{$grey}%n@%m%f"
|
||||||
|
# Don't show context unless root or in SSH.
|
||||||
|
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_CONTENT_EXPANSION=
|
||||||
|
|
||||||
|
# Show previous command duration only if it's >= 5s.
|
||||||
|
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=5
|
||||||
|
# Don't show fractional seconds. Thus, 7s rather than 7.3s.
|
||||||
|
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
|
||||||
|
# Duration format: 1d 2h 3m 4s.
|
||||||
|
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
|
||||||
|
# Yellow previous command duration.
|
||||||
|
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=$yellow
|
||||||
|
|
||||||
|
# Grey Git prompt. This makes stale prompts indistinguishable from up-to-date ones.
|
||||||
|
typeset -g POWERLEVEL9K_VCS_FOREGROUND=$grey
|
||||||
|
|
||||||
|
# Disable async loading indicator to make directories that aren't Git repositories
|
||||||
|
# indistinguishable from large Git repositories without known state.
|
||||||
|
typeset -g POWERLEVEL9K_VCS_LOADING_TEXT=
|
||||||
|
|
||||||
|
# Don't wait for Git status even for a millisecond, so that prompt always updates
|
||||||
|
# asynchronously when Git state changes.
|
||||||
|
typeset -g POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDS=0
|
||||||
|
|
||||||
|
# Cyan ahead/behind arrows.
|
||||||
|
typeset -g POWERLEVEL9K_VCS_{INCOMING,OUTGOING}_CHANGESFORMAT_FOREGROUND=$cyan
|
||||||
|
# Don't show remote branch, current tag or stashes.
|
||||||
|
typeset -g POWERLEVEL9K_VCS_GIT_HOOKS=(vcs-detect-changes git-untracked git-aheadbehind)
|
||||||
|
# Don't show the branch icon.
|
||||||
|
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
|
||||||
|
# When in detached HEAD state, show @commit where branch normally goes.
|
||||||
|
typeset -g POWERLEVEL9K_VCS_COMMIT_ICON='@'
|
||||||
|
# Don't show staged, unstaged, untracked indicators.
|
||||||
|
typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED}_ICON=
|
||||||
|
# Show '*' when there are staged, unstaged or untracked files.
|
||||||
|
typeset -g POWERLEVEL9K_VCS_DIRTY_ICON='*'
|
||||||
|
# Show '⇣' if local branch is behind remote.
|
||||||
|
typeset -g POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON=':⇣'
|
||||||
|
# Show '⇡' if local branch is ahead of remote.
|
||||||
|
typeset -g POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON=':⇡'
|
||||||
|
# Don't show the number of commits next to the ahead/behind arrows.
|
||||||
|
typeset -g POWERLEVEL9K_VCS_{COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=1
|
||||||
|
# Remove space between '⇣' and '⇡' and all trailing spaces.
|
||||||
|
typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${${${P9K_CONTENT/⇣* :⇡/⇣⇡}// }//:/ }'
|
||||||
|
|
||||||
|
# Grey current time.
|
||||||
|
typeset -g POWERLEVEL9K_TIME_FOREGROUND=$grey
|
||||||
|
# Format for the current time: 09:51:02. See `man 3 strftime`.
|
||||||
|
typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}'
|
||||||
|
# If set to true, time will update when you hit enter. This way prompts for the past
|
||||||
|
# commands will contain the start times of their commands rather than the end times of
|
||||||
|
# their preceding commands.
|
||||||
|
typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false
|
||||||
|
|
||||||
|
# Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt
|
||||||
|
# when accepting a command line. Supported values:
|
||||||
|
#
|
||||||
|
# - off: Don't change prompt when accepting a command line.
|
||||||
|
# - always: Trim down prompt when accepting a command line.
|
||||||
|
# - same-dir: Trim down prompt when accepting a command line unless this is the first command
|
||||||
|
# typed after changing current working directory.
|
||||||
|
typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=off
|
||||||
|
|
||||||
|
# Instant prompt mode.
|
||||||
|
#
|
||||||
|
# - off: Disable instant prompt. Choose this if you've tried instant prompt and found
|
||||||
|
# it incompatible with your zsh configuration files.
|
||||||
|
# - quiet: Enable instant prompt and don't print warnings when detecting console output
|
||||||
|
# during zsh initialization. Choose this if you've read and understood
|
||||||
|
# https://github.com/romkatv/powerlevel10k#instant-prompt.
|
||||||
|
# - verbose: Enable instant prompt and print a warning when detecting console output during
|
||||||
|
# zsh initialization. Choose this if you've never tried instant prompt, haven't
|
||||||
|
# seen the warning, or if you are unsure what this all means.
|
||||||
|
typeset -g POWERLEVEL9K_INSTANT_PROMPT=off
|
||||||
|
|
||||||
|
# Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized.
|
||||||
|
# For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload
|
||||||
|
# can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you
|
||||||
|
# really need it.
|
||||||
|
typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=off
|
||||||
|
|
||||||
|
# If p10k is already loaded, reload configuration.
|
||||||
|
# This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true.
|
||||||
|
(( ! $+functions[p10k] )) || p10k reload
|
||||||
|
}
|
||||||
|
|
||||||
|
# Tell `p10k configure` which file it should overwrite.
|
||||||
|
typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a}
|
||||||
|
|
||||||
|
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
|
||||||
|
'builtin' 'unset' 'p10k_config_opts'
|
||||||
1
.python-version
Normal file
1
.python-version
Normal file
@@ -0,0 +1 @@
|
|||||||
|
3.10.17
|
||||||
1
.ruby-version
Normal file
1
.ruby-version
Normal file
@@ -0,0 +1 @@
|
|||||||
|
3.4.1
|
||||||
14
.zlogin
Executable file
14
.zlogin
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
HIDRIVE=/mnt/hidrive
|
||||||
|
HIDRIVE_VALKNAR="$HIDRIVE/users/valknar"
|
||||||
|
|
||||||
|
mount "$HIDRIVE" 2>/dev/null
|
||||||
|
|
||||||
|
ln -s "$HIDRIVE_VALKNAR/Documents" "$HOME/Documents" 2>/dev/null
|
||||||
|
ln -s "$HIDRIVE_VALKNAR/Pictures" "$HOME/Pictures" 2>/dev/null
|
||||||
|
ln -s "$HIDRIVE_VALKNAR/Videos" "$HOME/Videos" 2>/dev/null
|
||||||
|
ln -s "$HIDRIVE_VALKNAR/Music" "$HOME/Music" 2>/dev/null
|
||||||
|
|
||||||
|
xdg-user-dirs-update --set DOCUMENTS "$HOME/Documents"
|
||||||
|
xdg-user-dirs-update --set PICTURES "$HOME/Pictures"
|
||||||
|
xdg-user-dirs-update --set VIDEOS "$HOME/Videos"
|
||||||
|
xdg-user-dirs-update --set MUSIC "$HOME/Music"
|
||||||
189
.zshrc
Normal file
189
.zshrc
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
if [ -d "$HOME/bin" ]; then
|
||||||
|
export PATH="$HOME/bin:$PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$HOME/.local/bin" ]; then
|
||||||
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$HOME/.rbenv/bin" ]; then
|
||||||
|
export PATH="$PATH:$HOME/.rbenv/bin"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$HOME/.pyenv/bin" ]; then
|
||||||
|
export PYENV_ROOT="$HOME/.pyenv"
|
||||||
|
export PATH="$PYENV_ROOT/bin:$PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$HOME/.cargo/bin" ]; then
|
||||||
|
export PATH="$PATH:$HOME/.cargo/bin"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "/usr/local/go/bin" ]; then
|
||||||
|
export PATH="$PATH:/usr/local/go/bin"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$HOME/go/bin" ]; then
|
||||||
|
export PATH="$PATH:$HOME/go/bin"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$HOME/node_modules/.bin" ]; then
|
||||||
|
export PATH="$PATH:$HOME/node_modules/.bin"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Source .env file early to export environment variables
|
||||||
|
if [ -f "$HOME/.env" ] ; then
|
||||||
|
set -a
|
||||||
|
source "$HOME/.env"
|
||||||
|
set +a
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$BASH_VERSION" ]; then
|
||||||
|
# include .bashrc if it exists
|
||||||
|
if [ -f "$HOME/.bashrc" ]; then
|
||||||
|
. "$HOME/.bashrc"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -s "$NVM_DIR/nvm.sh" ] ; then
|
||||||
|
. "$NVM_DIR/nvm.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -s "$NVM_DIR/bash_completion" ] ; then
|
||||||
|
. "$NVM_DIR/bash_completion"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -s "$HOME/.rvm/scripts/rvm" ] ; then
|
||||||
|
. "$HOME/.rvm/scripts/rvm"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -s "$HOME/.cargo/env" ] ; then
|
||||||
|
. "$HOME/.cargo/env"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v oh-my-posh 2>&1 >/dev/null; then
|
||||||
|
eval "$(! oh-my-posh init zsh --config=~/worker.omp.json)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v rbenv 2>&1 >/dev/null; then
|
||||||
|
eval "$(rbenv init - --no-rehash zsh)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v pyenv 2>&1 >/dev/null; then
|
||||||
|
eval "$(pyenv init --path)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
|
||||||
|
# Initialization code that may require console input (password prompts, [y/n]
|
||||||
|
# confirmations, etc.) must go above this block; everything else may go below.
|
||||||
|
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
||||||
|
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If you come from bash you might have to change your $PATH.
|
||||||
|
# export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH
|
||||||
|
|
||||||
|
# Path to your Oh My Zsh installation.
|
||||||
|
export ZSH="$HOME/.oh-my-zsh"
|
||||||
|
|
||||||
|
# Set name of the theme to load --- if set to "random", it will
|
||||||
|
# load a random theme each time Oh My Zsh is loaded, in which case,
|
||||||
|
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
||||||
|
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
|
||||||
|
ZSH_THEME="powerlevel10k/powerlevel10k"
|
||||||
|
|
||||||
|
# Set list of themes to pick from when loading at random
|
||||||
|
# Setting this variable when ZSH_THEME=random will cause zsh to load
|
||||||
|
# a theme from this variable instead of looking in $ZSH/themes/
|
||||||
|
# If set to an empty array, this variable will have no effect.
|
||||||
|
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
|
||||||
|
|
||||||
|
# Uncomment the following line to use case-sensitive completion.
|
||||||
|
# CASE_SENSITIVE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to use hyphen-insensitive completion.
|
||||||
|
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
||||||
|
# HYPHEN_INSENSITIVE="true"
|
||||||
|
|
||||||
|
# Uncomment one of the following lines to change the auto-update behavior
|
||||||
|
# zstyle ':omz:update' mode disabled # disable automatic updates
|
||||||
|
# zstyle ':omz:update' mode auto # update automatically without asking
|
||||||
|
# zstyle ':omz:update' mode reminder # just remind me to update when it's time
|
||||||
|
|
||||||
|
# Uncomment the following line to change how often to auto-update (in days).
|
||||||
|
# zstyle ':omz:update' frequency 13
|
||||||
|
|
||||||
|
# Uncomment the following line if pasting URLs and other text is messed up.
|
||||||
|
# DISABLE_MAGIC_FUNCTIONS="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to disable colors in ls.
|
||||||
|
# DISABLE_LS_COLORS="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to disable auto-setting terminal title.
|
||||||
|
# DISABLE_AUTO_TITLE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to enable command auto-correction.
|
||||||
|
# ENABLE_CORRECTION="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to display red dots whilst waiting for completion.
|
||||||
|
# You can also set it to another string to have that shown instead of the default red dots.
|
||||||
|
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
|
||||||
|
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
|
||||||
|
# COMPLETION_WAITING_DOTS="true"
|
||||||
|
|
||||||
|
# Uncomment the following line if you want to disable marking untracked files
|
||||||
|
# under VCS as dirty. This makes repository status check for large repositories
|
||||||
|
# much, much faster.
|
||||||
|
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
||||||
|
|
||||||
|
# Uncomment the following line if you want to change the command execution time
|
||||||
|
# stamp shown in the history command output.
|
||||||
|
# You can set one of the optional three formats:
|
||||||
|
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
||||||
|
# or set a custom format using the strftime function format specifications,
|
||||||
|
# see 'man strftime' for details.
|
||||||
|
# HIST_STAMPS="mm/dd/yyyy"
|
||||||
|
|
||||||
|
# Would you like to use another custom folder than $ZSH/custom?
|
||||||
|
# ZSH_CUSTOM=/path/to/new-custom-folder
|
||||||
|
|
||||||
|
# Which plugins would you like to load?
|
||||||
|
# Standard plugins can be found in $ZSH/plugins/
|
||||||
|
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
|
||||||
|
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||||
|
# Add wisely, as too many plugins slow down shell startup.
|
||||||
|
plugins=(git pm2 gh sudo ssh ruby rust python node github rsync nvm rbenv pyenv docker docker-compose qrcode zsh-autosuggestions zsh-syntax-highlighting zsh-interactive-cd zsh-navigation-tools)
|
||||||
|
|
||||||
|
[[ ! -f $ZSH/oh-my-zsh.sh ]] || source $ZSH/oh-my-zsh.sh
|
||||||
|
|
||||||
|
# User configuration
|
||||||
|
|
||||||
|
# export MANPATH="/usr/local/man:$MANPATH"
|
||||||
|
|
||||||
|
# You may need to manually set your language environment
|
||||||
|
# export LANG=en_US.UTF-8
|
||||||
|
|
||||||
|
# Preferred editor for local and remote sessions
|
||||||
|
# if [[ -n $SSH_CONNECTION ]]; then
|
||||||
|
# export EDITOR='vim'
|
||||||
|
# else
|
||||||
|
# export EDITOR='nvim'
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# Compilation flags
|
||||||
|
# export ARCHFLAGS="-arch $(uname -m)"
|
||||||
|
|
||||||
|
# Set personal aliases, overriding those provided by Oh My Zsh libs,
|
||||||
|
# plugins, and themes. Aliases can be placed here, though Oh My Zsh
|
||||||
|
# users are encouraged to define aliases within a top-level file in
|
||||||
|
# the $ZSH_CUSTOM folder, with .zsh extension. Examples:
|
||||||
|
# - $ZSH_CUSTOM/aliases.zsh
|
||||||
|
# - $ZSH_CUSTOM/macos.zsh
|
||||||
|
# For a full list of active aliases, run `alias`.
|
||||||
|
#
|
||||||
|
# Example aliases
|
||||||
|
# alias zshconfig="mate ~/.zshrc"
|
||||||
|
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
||||||
|
|
||||||
|
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
||||||
|
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
||||||
111
CLAUDE.md
Normal file
111
CLAUDE.md
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
# CLAUDE.md
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code when working with code in this repository.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
This is a personal home directory repository managed as a git repository with selective tracking via `.gitignore`. The repository tracks dotfiles and configuration for a Debian development environment supporting Node.js, Python, Ruby, Rust, and Go development.
|
||||||
|
|
||||||
|
## Key Architecture
|
||||||
|
|
||||||
|
### Arty Configuration
|
||||||
|
|
||||||
|
`arty.yml` defines the repository structure using Arty (artifact/repository manager):
|
||||||
|
- **references**: Git subrepositories to clone into specific paths
|
||||||
|
- **scripts**: Installation and setup commands
|
||||||
|
- Manages version managers (nvm, rbenv, pyenv, gvm) and shell configuration
|
||||||
|
|
||||||
|
### Git Selective Tracking
|
||||||
|
|
||||||
|
The `.gitignore` uses an inverted pattern (ignore everything, then selectively allow):
|
||||||
|
- Tracks only specific dotfiles and configuration files
|
||||||
|
- Excludes logs, databases, and temporary files
|
||||||
|
|
||||||
|
## Development Environment
|
||||||
|
|
||||||
|
### Language Version Management
|
||||||
|
- **Node.js**: Managed by nvm, version specified in `.nvmrc`
|
||||||
|
- **Ruby**: Managed by rbenv, version in `.ruby-version`
|
||||||
|
- **Python**: Managed by pyenv, version in `.python-version`
|
||||||
|
- **Rust**: Via rustup (`.cargo/`, `.rustup/`)
|
||||||
|
- **Go**: Via gvm (`.gvm/`)
|
||||||
|
|
||||||
|
### Shell Environment
|
||||||
|
- **Shell**: Zsh with Oh-My-Zsh framework
|
||||||
|
- **Theme**: Powerlevel10k (`.p10k.zsh`)
|
||||||
|
- **Plugins**: zsh-autosuggestions, zsh-syntax-highlighting
|
||||||
|
- **Login Configuration**: `.zlogin` mounts HiDrive storage and creates symbolic links
|
||||||
|
|
||||||
|
## Common Commands
|
||||||
|
|
||||||
|
### Environment Setup
|
||||||
|
```bash
|
||||||
|
# Sync all dependencies (version managers, shell config, etc.)
|
||||||
|
arty sync
|
||||||
|
|
||||||
|
# Install system packages
|
||||||
|
arty debian/update && arty debian/install
|
||||||
|
|
||||||
|
# Install language runtimes
|
||||||
|
arty node/install # Node.js via nvm
|
||||||
|
arty ruby/install # Ruby via rbenv
|
||||||
|
arty python/install # Python via pyenv
|
||||||
|
arty rust/install # Rust via rustup
|
||||||
|
|
||||||
|
# Install global packages
|
||||||
|
arty npm/install # npm, pnpm, llmx
|
||||||
|
arty gem/install # bundler
|
||||||
|
```
|
||||||
|
|
||||||
|
### Arty Scripts (from arty.yml)
|
||||||
|
```bash
|
||||||
|
arty debian/update # Enable non-free repos
|
||||||
|
arty debian/install # System packages
|
||||||
|
arty docker/install # Docker Engine
|
||||||
|
arty rust/install # Rust toolchain
|
||||||
|
arty node/install # Node.js (uses nvm)
|
||||||
|
arty ruby/install # Ruby (uses rbenv)
|
||||||
|
arty python/install # Python (uses pyenv)
|
||||||
|
arty uv/install # uv Python package manager
|
||||||
|
arty zed/install # Zed editor
|
||||||
|
arty claude/install # Claude CLI
|
||||||
|
arty mattermost/install
|
||||||
|
arty joplin/install
|
||||||
|
arty yq/install
|
||||||
|
arty spotify/install
|
||||||
|
arty npm/install # npm, pnpm, @valknarthing/llmx
|
||||||
|
arty gem/install # bundler
|
||||||
|
```
|
||||||
|
|
||||||
|
### Git Workflow
|
||||||
|
```bash
|
||||||
|
# Stage all changes and check if clean
|
||||||
|
g0 # alias for: git add . && git diff --quiet && git diff --cached --quiet
|
||||||
|
|
||||||
|
# Reset to single commit
|
||||||
|
g1 # alias for: git reset $(git commit-tree "HEAD^{tree}" -m "A new start")
|
||||||
|
|
||||||
|
# Get last commit message
|
||||||
|
g2 # alias for: git log --format=%B -n 1 HEAD | head -n 1
|
||||||
|
```
|
||||||
|
|
||||||
|
## Repository References (managed by arty)
|
||||||
|
|
||||||
|
From `arty.yml`:
|
||||||
|
- `bin/` - Custom scripts and executables
|
||||||
|
- `.llmx/` - LLM configuration
|
||||||
|
- `.nvm/` - Node Version Manager
|
||||||
|
- `.gvm/` - Go Version Manager
|
||||||
|
- `.rbenv/` - Ruby Version Manager (includes ruby-build plugin)
|
||||||
|
- `.pyenv/` - Python Version Manager
|
||||||
|
- `.oh-my-zsh/` - Oh-My-Zsh framework
|
||||||
|
- `custom/themes/powerlevel10k/` - Powerlevel10k theme
|
||||||
|
- `custom/plugins/zsh-autosuggestions/`
|
||||||
|
- `custom/plugins/zsh-syntax-highlighting/`
|
||||||
|
|
||||||
|
## Important Notes
|
||||||
|
|
||||||
|
- **Selective Git Tracking**: This repository uses an inverted `.gitignore` pattern - everything is ignored by default (`*`), then specific files are explicitly allowed.
|
||||||
|
- **Arty Repository Manager**: `arty.yml` manages git subrepositories. Use `arty sync` to clone/update all dependencies.
|
||||||
|
- **Docker**: Use arty to manage docker in this project. Run `arty up -d CONTAINER(s)` instead of `arty restart CONTAINER(S)`.
|
||||||
|
- **SSH**: Always push with the valknarthing ssh key. Ensure the ssh agent only has one key loaded.
|
||||||
318
README.md
Executable file
318
README.md
Executable file
@@ -0,0 +1,318 @@
|
|||||||
|
<div align="center">
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
_ _____ __ __ __ _ _____ ____ _ _____
|
||||||
|
| | / / | / / / //_// | / / | / __ ( ) ___/
|
||||||
|
| | / / /| | / / / ,< / |/ / /| | / /_/ //\__ \
|
||||||
|
| |/ / ___ |/ /___/ /| |/ /| / ___ |/ _, _/ ___/ /
|
||||||
|
|___/_/ |_/_____/_/ |_/_/ |_/_/ |_/_/ |_| /____/
|
||||||
|
|
||||||
|
__________ ____ ____________
|
||||||
|
/ ____/ __ \/ __ \/ ____/ ____/
|
||||||
|
/ /_ / / / / /_/ / / __/ __/
|
||||||
|
/ __/ / /_/ / _, _/ /_/ / /___
|
||||||
|
/_/ \____/_/ |_|\____/_____/
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
# WHERE CODE MEETS CHAOS
|
||||||
|
|
||||||
|
[](https://www.debian.org/)
|
||||||
|
[](https://www.slayer.net/)
|
||||||
|
[](/)
|
||||||
|
[](LICENSE)
|
||||||
|
|
||||||
|
**My Debian home directory - forged in the fires of chaos, tempered with configuration files,**
|
||||||
|
**and wielded with the fury of a thousand riffs.**
|
||||||
|
|
||||||
|
*This is where dotfiles headbang and shell scripts scream.*
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## THE ARSENAL
|
||||||
|
|
||||||
|
### WEAPONS OF MASS DEVELOPMENT
|
||||||
|
|
||||||
|
```
|
||||||
|
+-----------------------------------------------------+
|
||||||
|
| NODE.JS | Managed by nvm |
|
||||||
|
| PYTHON | Managed by pyenv |
|
||||||
|
| RUBY | Managed by rbenv |
|
||||||
|
| RUST | Managed by rustup |
|
||||||
|
| GO | Managed by gvm |
|
||||||
|
| DOCKER | Containerized destruction |
|
||||||
|
+-----------------------------------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## QUICK START RITUAL
|
||||||
|
|
||||||
|
### Summoning the Environment
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Clone this unholy repository
|
||||||
|
git init && git remote add origin git@dev.pivoine.art:valknar/home.git
|
||||||
|
git fetch && git reset --hard origin/main
|
||||||
|
git branch --set-upstream-to=origin/main main
|
||||||
|
|
||||||
|
# 2. Configure git
|
||||||
|
git config --global init.defaultBranch main
|
||||||
|
git config --global --add safe.directory /home/$USER
|
||||||
|
|
||||||
|
# 3. Sync all dependencies (version managers, shell config, etc.)
|
||||||
|
arty sync
|
||||||
|
|
||||||
|
# 4. Install system packages
|
||||||
|
arty debian/update && arty debian/install
|
||||||
|
|
||||||
|
# 5. Install development tools
|
||||||
|
arty rust/install
|
||||||
|
arty node/install
|
||||||
|
arty ruby/install
|
||||||
|
arty python/install
|
||||||
|
|
||||||
|
# 6. Install global packages
|
||||||
|
arty npm/install
|
||||||
|
arty gem/install
|
||||||
|
|
||||||
|
# 7. Source the shell configuration
|
||||||
|
source ~/.zshrc
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ARTY - REPOSITORY ORCHESTRATION
|
||||||
|
|
||||||
|
### What is Arty?
|
||||||
|
|
||||||
|
**Arty.sh** is a bash-based dependency and repository manager that orchestrates git subrepositories like a conductor of chaos. It's part of the [butter.sh](https://github.com/butter-sh/butter-sh.github.io) ecosystem.
|
||||||
|
|
||||||
|
### Available Scripts
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# System setup
|
||||||
|
arty debian/update # Enable non-free repos and update sources
|
||||||
|
arty debian/install # curl, zsh, fzf, davfs2, krusader, make, imagemagick, ffmpeg, yt-dlp, thunderbird, etc.
|
||||||
|
arty debian/remove # Remove pulseaudio-module-bluetooth
|
||||||
|
|
||||||
|
# Development tools
|
||||||
|
arty docker/install # Docker Engine with user group
|
||||||
|
arty rust/install # Rust toolchain via rustup
|
||||||
|
arty node/install # Node.js via nvm
|
||||||
|
arty ruby/install # Ruby via rbenv
|
||||||
|
arty python/install # Python via pyenv
|
||||||
|
arty uv/install # uv Python package manager
|
||||||
|
|
||||||
|
# Applications
|
||||||
|
arty zed/install # Zed code editor
|
||||||
|
arty claude/install # Claude AI CLI
|
||||||
|
arty spotify/install # Spotify desktop client
|
||||||
|
arty mattermost/install # Mattermost desktop client
|
||||||
|
arty joplin/install # Joplin note-taking app
|
||||||
|
arty yq/install # yq YAML processor
|
||||||
|
|
||||||
|
# Package managers
|
||||||
|
arty npm/install # npm, pnpm, @valknarthing/llmx
|
||||||
|
arty gem/install # bundler
|
||||||
|
```
|
||||||
|
|
||||||
|
### What Arty Manages
|
||||||
|
|
||||||
|
- **Version managers** (nvm, rbenv, pyenv, gvm)
|
||||||
|
- **Shell configuration** (Oh-My-Zsh, Powerlevel10k, plugins)
|
||||||
|
- **Custom binaries** (from valknar/bin repository)
|
||||||
|
- **LLM configuration** (from home-llmx repository)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## COMMAND LINE BRUTALITY
|
||||||
|
|
||||||
|
### Git Operations
|
||||||
|
|
||||||
|
```bash
|
||||||
|
g0 # Stage all changes and verify clean state
|
||||||
|
g1 # Nuclear reset to single commit
|
||||||
|
g2 # Show last commit message
|
||||||
|
```
|
||||||
|
|
||||||
|
### Development Servers
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Serve current directory on port 8000
|
||||||
|
ss
|
||||||
|
|
||||||
|
# Download YouTube video as MP3
|
||||||
|
yt "https://youtube.com/watch?v=..."
|
||||||
|
```
|
||||||
|
|
||||||
|
### Rsync Power
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Sync to remote with sudo
|
||||||
|
rs /local/path/ user@host:/remote/path/
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ENVIRONMENT STRUCTURE
|
||||||
|
|
||||||
|
```
|
||||||
|
~/
|
||||||
|
+-- bin/ # Custom scripts and executables
|
||||||
|
+-- .llmx/ # LLM configuration (Claude, etc.)
|
||||||
|
+-- .nvm/ # Node Version Manager
|
||||||
|
+-- .rbenv/ # Ruby Version Manager
|
||||||
|
| +-- plugins/ruby-build/
|
||||||
|
+-- .pyenv/ # Python Version Manager
|
||||||
|
+-- .gvm/ # Go Version Manager
|
||||||
|
+-- .oh-my-zsh/ # Oh-My-Zsh framework
|
||||||
|
| +-- custom/
|
||||||
|
| +-- themes/
|
||||||
|
| | +-- powerlevel10k/
|
||||||
|
| +-- plugins/
|
||||||
|
| +-- zsh-autosuggestions/
|
||||||
|
| +-- zsh-syntax-highlighting/
|
||||||
|
+-- Projects/ # Development projects
|
||||||
|
+-- Documents/ # -> /mnt/hidrive/users/valknar/Documents
|
||||||
|
+-- Pictures/ # -> /mnt/hidrive/users/valknar/Pictures
|
||||||
|
+-- Videos/ # -> /mnt/hidrive/users/valknar/Videos
|
||||||
|
+-- Music/ # -> /mnt/hidrive/users/valknar/Music
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## DOTFILE HIGHLIGHTS
|
||||||
|
|
||||||
|
### Shell Configuration
|
||||||
|
- **`.zshrc`** - Oh-My-Zsh with Powerlevel10k theme
|
||||||
|
- **`.zlogin`** - Login script (mounts HiDrive, creates symbolic links)
|
||||||
|
- **`.p10k.zsh`** - Powerlevel10k configuration
|
||||||
|
|
||||||
|
### Version Files
|
||||||
|
- **`.nvmrc`** - Node.js version
|
||||||
|
- **`.ruby-version`** - Ruby version
|
||||||
|
- **`.python-version`** - Python version
|
||||||
|
|
||||||
|
### Git Configuration
|
||||||
|
- **`.gitignore`** - INVERTED PATTERN (ignore all, allow specific files)
|
||||||
|
- **`.gitconfig`** - Git user configuration
|
||||||
|
|
||||||
|
### Orchestration
|
||||||
|
- **`arty.yml`** - Repository and dependency management with installation scripts
|
||||||
|
|
||||||
|
### Personal
|
||||||
|
- **`signature.txt`** - ASCII art email signature
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## HIDRIVE INTEGRATION
|
||||||
|
|
||||||
|
The `.zlogin` script automatically:
|
||||||
|
- **Mounts HiDrive** storage at `/mnt/hidrive` on shell login
|
||||||
|
- **Creates symbolic links** from HiDrive to home directory:
|
||||||
|
- `~/Documents` -> `/mnt/hidrive/users/valknar/Documents`
|
||||||
|
- `~/Pictures` -> `/mnt/hidrive/users/valknar/Pictures`
|
||||||
|
- `~/Videos` -> `/mnt/hidrive/users/valknar/Videos`
|
||||||
|
- `~/Music` -> `/mnt/hidrive/users/valknar/Music`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## GIT SELECTIVE TRACKING
|
||||||
|
|
||||||
|
This repository uses an **inverted `.gitignore`** pattern:
|
||||||
|
|
||||||
|
```gitignore
|
||||||
|
# Ignore everything
|
||||||
|
*
|
||||||
|
|
||||||
|
# Allow specific files
|
||||||
|
!CLAUDE.md
|
||||||
|
!README.md
|
||||||
|
!.gitignore
|
||||||
|
!.zshrc
|
||||||
|
!.zlogin
|
||||||
|
!arty.yml
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
**Why?** To track only essential dotfiles and configurations while ignoring cache, logs, and user data.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## SHELL PLUGIN POWER
|
||||||
|
|
||||||
|
**Oh-My-Zsh Plugins Loaded:**
|
||||||
|
```
|
||||||
|
git sudo ssh rsync docker docker-compose
|
||||||
|
nvm rbenv pyenv
|
||||||
|
zsh-autosuggestions zsh-syntax-highlighting
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## USEFUL RESOURCES
|
||||||
|
|
||||||
|
### System & Shell
|
||||||
|
- [Oh-My-Zsh](https://ohmyz.sh/)
|
||||||
|
- [Powerlevel10k](https://github.com/romkatv/powerlevel10k)
|
||||||
|
|
||||||
|
### Language Managers
|
||||||
|
- [nvm](https://github.com/nvm-sh/nvm) - Node Version Manager
|
||||||
|
- [rbenv](https://github.com/rbenv/rbenv) - Ruby Version Manager
|
||||||
|
- [pyenv](https://github.com/pyenv/pyenv) - Python Version Manager
|
||||||
|
- [gvm](https://github.com/moovweb/gvm) - Go Version Manager
|
||||||
|
- [rustup](https://rustup.rs/) - Rust Toolchain Manager
|
||||||
|
|
||||||
|
### Orchestration
|
||||||
|
- [Arty.sh / Butter.sh Ecosystem](https://github.com/butter-sh/butter-sh.github.io)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## LICENSE
|
||||||
|
|
||||||
|
MIT License - Do whatever the hell you want with it.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
=================================================================
|
||||||
|
|
||||||
|
__________ ____ ______ _________
|
||||||
|
/ ____/ __ \/ __ \/ ____/ / _/ ___/
|
||||||
|
/ / / / / / / / / __/ / / \__ \
|
||||||
|
/ /___/ /_/ / /_/ / /___ _/ / ___/ /
|
||||||
|
\____/\____/_____/_____/ /___//____/
|
||||||
|
|
||||||
|
______________ _______ ____ ____ ___ ______ __
|
||||||
|
/_ __/ ____/ |/ / __ \/ __ \/ __ \/ | / __ \ \/ /
|
||||||
|
/ / / __/ / /|_/ / /_/ / / / / /_/ / /| | / /_/ /\ /
|
||||||
|
/ / / /___/ / / / ____/ /_/ / _, _/ ___ |/ _, _/ / /
|
||||||
|
/_/ /_____/_/ /_/_/ \____/_/ |_/_/ |_/_/ |_| /_/
|
||||||
|
|
||||||
|
__ __________________ __ _________
|
||||||
|
/ |/ / ____/_ __/ | / / / _/ ___/
|
||||||
|
/ /|_/ / __/ / / / /| | / / / / \__ \
|
||||||
|
/ / / / /___ / / / ___ |/ /___ _/ / ___/ /
|
||||||
|
/_/ /_/_____/ /_/ /_/ |_/_____/ /___//____/
|
||||||
|
|
||||||
|
______________________ _ _____ __
|
||||||
|
/ ____/_ __/ ____/ __ \/ | / / | / /
|
||||||
|
/ __/ / / / __/ / /_/ / |/ / /| | / /
|
||||||
|
/ /___ / / / /___/ _, _/ /| / ___ |/ /___
|
||||||
|
/_____/ /_/ /_____/_/ |_/_/ |_/_/ |_/_____/
|
||||||
|
|
||||||
|
=================================================================
|
||||||
|
|
||||||
|
FORGED BY VALKNAR
|
||||||
|
valknar@pivoine.art
|
||||||
|
Powered by Debian | Fueled by Metal
|
||||||
|
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
**[BACK TO THE TOP](#)**
|
||||||
|
|
||||||
|
</div>
|
||||||
105
arty.yml
Normal file
105
arty.yml
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
name: "Valknar's home"
|
||||||
|
version: "1.0.0"
|
||||||
|
description: "Valknar's home repository"
|
||||||
|
author: "valknar@pivoine.art"
|
||||||
|
license: "MIT"
|
||||||
|
|
||||||
|
notes: |
|
||||||
|
# Valknar's Home Repository
|
||||||
|
|
||||||
|
This is a **personal development environment** configuration managed with `arty`.
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install all dependencies
|
||||||
|
arty deps
|
||||||
|
|
||||||
|
# Update system packages
|
||||||
|
arty debian/update && arty debian/install
|
||||||
|
|
||||||
|
# Install development tools
|
||||||
|
arty node/install
|
||||||
|
arty rust/install
|
||||||
|
arty python/install
|
||||||
|
```
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
- **Shell Configuration**: Zsh with Oh-My-Zsh and Powerlevel10k theme
|
||||||
|
- **Version Managers**: nvm (Node), rbenv (Ruby), pyenv (Python), gvm (Go)
|
||||||
|
- **Development Tools**: Docker, Rust, Node.js, Python, Ruby
|
||||||
|
- **Utilities**: Custom scripts in `bin/` directory
|
||||||
|
|
||||||
|
## Important Commands
|
||||||
|
|
||||||
|
1. **System Setup** - Run Ansible playbook for complete setup
|
||||||
|
2. **Environment Variables** - Loaded from `.init/export.sh`
|
||||||
|
3. **Custom Functions** - Available in `.init/functions.sh`
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
- [Repository](ssh://git@dev.pivoine.art:2222/valknar/bin.git)
|
||||||
|
- [Documentation](https://docs.pivoine.art)
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- Always use `arty` to manage Docker containers
|
||||||
|
- Run `arty up -d CONTAINER` instead of `arty restart CONTAINER`
|
||||||
|
- Push with the `valknarthing` SSH key
|
||||||
|
- Ensure SSH agent has only one key for pushing
|
||||||
|
|
||||||
|
references:
|
||||||
|
- url: https://dev.pivoine.art/valknar/bin.git
|
||||||
|
into: bin
|
||||||
|
- url: https://dev.pivoine.art/valknar/home-llmx.git
|
||||||
|
into: .llmx
|
||||||
|
- url: https://github.com/nvm-sh/nvm.git
|
||||||
|
into: .nvm
|
||||||
|
- url: https://github.com/moovweb/gvm.git
|
||||||
|
into: .gvm
|
||||||
|
- url: https://github.com/rbenv/rbenv.git
|
||||||
|
into: .rbenv
|
||||||
|
- url: https://github.com/rbenv/ruby-build.git
|
||||||
|
into: .rbenv/plugins/ruby-build
|
||||||
|
- url: https://github.com/pyenv/pyenv.git
|
||||||
|
into: .pyenv
|
||||||
|
- url: https://github.com/ohmyzsh/ohmyzsh.git
|
||||||
|
into: .oh-my-zsh
|
||||||
|
- url: https://github.com/romkatv/powerlevel10k.git
|
||||||
|
into: .oh-my-zsh/custom/themes/powerlevel10k
|
||||||
|
- url: https://github.com/zsh-users/zsh-autosuggestions.git
|
||||||
|
into: .oh-my-zsh/custom/plugins/zsh-autosuggestions
|
||||||
|
- url: https://github.com/zsh-users/zsh-syntax-highlighting.git
|
||||||
|
into: .oh-my-zsh/custom/plugins/zsh-syntax-highlighting
|
||||||
|
|
||||||
|
scripts:
|
||||||
|
debian/update: sudo sed -i 's/main non-free-firmware/main contrib non-free non-free-firmware/g' /etc/apt/sources.list && sudo apt update
|
||||||
|
debian/install:
|
||||||
|
sudo apt install curl zsh fzf davfs2 krusader make imagemagick ffmpeg yt-dlp
|
||||||
|
thunderbird pkg-config blueman libffi-dev zlib1g-dev libyaml-dev libssl-dev tree firmware-linux-nonfree firmware-realtek
|
||||||
|
debian/remove: sudo apt remove pulseaudio-module-bluetooth
|
||||||
|
docker/install: curl -fsSL -o- https://get.docker.com | sudo sh && sudo usermod -aG docker $USER
|
||||||
|
rust/install: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||||
|
node/install: nvm install
|
||||||
|
ruby/install: rbenv install
|
||||||
|
python/install: pyenv install
|
||||||
|
uv/install: curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||||
|
zed/install: curl -f https://zed.dev/install.sh | sh
|
||||||
|
claude/install: curl -fsSL https://claude.ai/install.sh | bash
|
||||||
|
mattermost/install:
|
||||||
|
curl -fsS -o- https://deb.packages.mattermost.com/setup-repo.sh | sudo bash
|
||||||
|
&& sudo apt install mattermost-desktop
|
||||||
|
joplin/install: wget -O -
|
||||||
|
https://raw.githubusercontent.com/laurent22/joplin/dev/Joplin_install_and_update.sh | bash
|
||||||
|
yq/install:
|
||||||
|
wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64
|
||||||
|
-O /usr/local/bin/yq && chmod +x /usr/local/bin/yq
|
||||||
|
spotify/install:
|
||||||
|
curl -sS https://download.spotify.com/debian/pubkey_C85668DF69375001.gpg |
|
||||||
|
sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/spotify.gpg && echo "deb
|
||||||
|
https://repository.spotify.com stable non-free" | sudo tee
|
||||||
|
/etc/apt/sources.list.d/spotify.list && sudo apt-get update && sudo apt-get
|
||||||
|
install spotify-client
|
||||||
|
npm/install: npm i -g npm pnpm @valknarthing/llmx
|
||||||
|
gem/install: gem install bundler
|
||||||
10
signature.txt
Normal file
10
signature.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
|
||||||
|
██╗ ██╗ █████╗ ██╗ ██╗ ██╗███╗ ██╗ █████╗ ██████╗
|
||||||
|
██║ ██║██╔══██╗██║ ██║ ██╔╝████╗ ██║██╔══██╗██╔══██╗
|
||||||
|
██║ ██║███████║██║ █████╔╝ ██╔██╗ ██║███████║██████╔╝
|
||||||
|
╚██╗ ██╔╝██╔══██║██║ ██╔═██╗ ██║╚██╗██║██╔══██║██╔══██╗
|
||||||
|
╚████╔╝ ██║ ██║███████╗██║ ██╗██║ ╚████║██║ ██║██║ ██║
|
||||||
|
╚═══╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝ ╚═╝
|
||||||
|
───────────────────────────────────────────────────────────────────
|
||||||
|
valknar@pivoine.art │ (+49) 174 8188918 │ https://pivoine.art
|
||||||
|
───────────────────────────────────────────────────────────────────
|
||||||
Reference in New Issue
Block a user