Compare commits

...

43 Commits

Author SHA1 Message Date
2cd57f32ff chore: add .gitignore for gitconfig.d directory 2025-06-30 06:45:20 +02:00
8f7a00e823 refactor(install): use symlink for post-merge hook 2025-06-30 06:44:43 +02:00
1bf8799c5d feat: add alias for local claude command 2025-06-27 10:28:59 +02:00
480b57f156 chore: update directory structure for gitconfig files 2025-06-23 09:42:47 +02:00
82ee9bda0a chore: update gitconfig structure and add base config 2025-06-23 09:29:06 +02:00
0ef0739ad3 chore: add echo statements for better script output 2025-06-23 09:23:50 +02:00
61a177e8b5 feat(zsh): add Atuin integration and new gitconfig script 2025-06-23 09:22:15 +02:00
f5624a02e8 feat: add alias for sl command with error handling 2025-06-16 16:13:37 +02:00
5ef265b2be feat(alias): add new tmuxinator aliases for stop and kill 2025-06-16 16:07:21 +02:00
493c15012a feat(tmuxinator): add configurations for casino and djh projects 2025-06-16 13:43:21 +02:00
3c09c4b6c5 feat(zsh): add NVM configuration and tmuxinator aliases 2025-06-16 13:04:11 +02:00
698af399dc chore(.zshrc): update plugins list in configuration file 2025-06-16 12:18:21 +02:00
b97854ba29 docs: remove outdated install script instructions 2025-06-16 11:48:42 +02:00
37f0cf7b4f chore(tmux): reorganize keybindings and config loading 2025-06-16 11:43:24 +02:00
8d3399c0e3 chore(setup): update .zshenv with script directory path 2025-06-16 11:41:12 +02:00
774fd82066 chore: update dotfiles configuration and aliases management 2025-06-16 11:36:33 +02:00
f708bef114 chore: update .stow-local-ignore to include post-merge 2025-06-16 11:31:23 +02:00
4c35e7b5f3 chore(tmux): update key bindings for window navigation 2025-06-16 11:19:43 +02:00
9d73dcf1d7 chore: add git config for line endings handling 2025-06-16 11:08:03 +02:00
b9f51c970c chore(install): remove existing .zshrc if not a symlink 2025-06-16 11:07:14 +02:00
aa5766d749 chore(setup): redirect stderr to /dev/null in setup script 2025-06-16 10:51:11 +02:00
01d5434b43 test 2025-06-16 10:49:15 +02:00
d7a1f3ab92 chore: suppress output of dos2unix command 2025-06-16 10:48:41 +02:00
6c770bdf90 test 2025-06-16 10:48:22 +02:00
2b504de943 chore(setup): simplify dos2unix command for all files 2025-06-16 10:47:28 +02:00
20840fce4c chore(setup): update paths for dos2unix commands 2025-06-16 10:45:43 +02:00
b39e6c438c refactor(install): streamline package installation command 2025-06-16 10:41:21 +02:00
1c9c34febf chore: update stow ignore and install script logic 2025-06-16 10:32:55 +02:00
2f470523ec add post-merge hook 2025-06-16 10:11:18 +02:00
37c188ecb2 test 2025-06-16 10:10:09 +02:00
90d58ceb35 test 2025-06-16 10:09:41 +02:00
abc33322f9 add toggle mouse keybind 2025-06-16 10:02:28 +02:00
b456a72a47 fix tmux 2025-06-16 09:03:12 +02:00
1a68b832de idk 2025-06-16 08:27:45 +02:00
e8e9aa2421 remove .profile bc wthelly 2025-06-14 23:51:04 +02:00
e3d628d8ab move zsh stuff 2025-06-14 23:46:09 +02:00
99e7a8bb82 styles ig 2025-06-14 23:32:33 +02:00
bfa1112228 maybe tmux is back 2025-06-14 23:25:03 +02:00
0a8339129f remove fucking tmux fucking little bitch ill fuck tmux fucknig mom 2025-06-14 22:50:06 +02:00
729089d8aa even more tmux 2025-06-14 22:32:16 +02:00
048b69ae13 add tmux plugins 2025-06-14 22:30:49 +02:00
0d90f23ce5 add tmux 2025-06-14 22:30:03 +02:00
248068c55a add stow 2025-06-14 22:29:14 +02:00
35 changed files with 290 additions and 117 deletions

5
.config/.gitignore vendored
View File

@ -4,4 +4,7 @@
!btop/
btop/btop.log
!neofetch/
!ssh/
!ssh/
!tmux/
!zsh/
!tmuxinator

2
.config/tmux/tmux.conf Normal file
View File

@ -0,0 +1,2 @@
source-file ~/.config/tmux/tmux.conf.d/plugins.conf
source-file ~/.config/tmux/tmux.conf.d/keybinds.conf

View File

@ -0,0 +1,10 @@
set -g prefix C-y
set -g mouse on
bind-key r source-file ~/.tmux.conf \; display "Reloaded tmux config";
bind-key c detach
bind-key f set-option -g mouse \; display-message 'Mouse #{?mouse,on,off}'
bind-key a previous-window
bind-key d next-window
bind-key n new-window

View File

@ -0,0 +1,5 @@
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'catppuccin/tmux'
source-file ~/.config/tmux/tmux.conf.d/styles.conf
run "~/.config/tmux/plugins/tpm/tpm"

View File

@ -0,0 +1,31 @@
set-option -g status-position top
set -g @catppuccin_flavor "macchiato"
set -g @catppuccin_window_status_style "rounded"
set -g @catppuccin_pane_status_enabled "yes" # set to "yes" to enable
set -g @catppuccin_pane_border_status "yes" # set to "yes" to enable
set -g @catppuccin_window_left_separator ""
set -g @catppuccin_window_right_separator " "
set -g @catppuccin_window_middle_separator " █"
set -g @catppuccin_window_number_position "right"
set -g @catppuccin_window_default_fill "number"
set -g @catppuccin_window_default_text "#W"
set -g @catppuccin_window_current_fill "number"
set -g @catppuccin_window_current_text "#W"
set -g @catppuccin_status_modules_right "directory user host session"
set -g @catppuccin_status_left_separator " "
set -g @catppuccin_status_right_separator ""
set -g @catppuccin_status_right_separator_inverse "no"
set -g @catppuccin_status_fill "icon"
set -g @catppuccin_status_connect_separator "no"
set -g @catppuccin_directory_text "#{pane_current_path}"
set -g @catppuccin_window_current_text "#{window_name}"
set -g @catppuccin_window_default_text "#{window_name}"

4
.config/tmuxinator/.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
/*
!casino.yml
!.gitignore

View File

@ -0,0 +1,56 @@
# /home/csimonis/.config/tmuxinator/casino.yml
name: casino
root: ~/projects/school/casino
# Optional tmux socket
# socket_name: foo
# Note that the pre and post options have been deprecated and will be replaced by
# project hooks.
# Project hooks
# Runs on project start, always
on_project_start: docker compose up -d
# Run on project start, the first time
# on_project_first_start: command
# Run on project start, after the first time
# on_project_restart: command
# Run on project exit ( detaching from tmux session )
# on_project_exit: command
# Run on project stop
on_project_stop: docker compose down
# Runs in each window and pane before window/pane specific commands. Useful for setting up interpreter versions.
# pre_window: rbenv shell 2.0.0-p247
# Pass command line options to tmux. Useful for specifying a different tmux.conf.
# tmux_options: -f ~/.tmux.mac.conf
# Change the command to call tmux. This can be used by derivatives/wrappers like byobu.
# tmux_command: byobu
# Specifies (by name or index) which window will be selected on project startup. If not set, the first window is used.
# startup_window: editor
# Specifies (by index) which pane of the specified window will be selected on project startup. If not set, the first pane is used.
# startup_pane: 1
# Controls whether the tmux session should be attached to automatically. Defaults to true.
# attach: false
windows:
- casino:
layout: main-vertical
# Synchronize all panes of this window, can be enabled before or after the pane commands run.
# 'before' represents legacy functionality and will be deprecated in a future release, in favour of 'after'
# synchronize: after
panes:
- clear
- cd frontend && nvm use 22.12 && exec bun run start
- cd backend && exec watchexec -r -e java ./gradlew :bootRun

View File

@ -1,3 +0,0 @@
/*
!.gitignore
!example.gitconfig

16
.gitignore vendored
View File

@ -1,15 +1 @@
/*
!setup
!zsh/
!.gitignore
!.alias.d/
!.config/
!.gitconfig
!.gitconfig.d
!.p10k.zsh
!.zshrc
!.zshenv.template
!.profile
!install
!README.md
.zshenv

20
.gitmodules vendored
View File

@ -1,9 +1,15 @@
[submodule "zsh/plugins/zsh-autosuggestions"]
path = zsh/plugins/zsh-autosuggestions
[submodule ".config/zsh/plugins/zsh-autosuggestions"]
path = .config/zsh/plugins/zsh-autosuggestions
url = https://github.com/zsh-users/zsh-autosuggestions
[submodule "zsh/plugins/zsh-syntax-highlighting"]
path = zsh/plugins/zsh-syntax-highlighting
url = https://github.com/zsh-users/zsh-syntax-highlighting
[submodule "zsh/themes/powerlevel10k"]
path = zsh/themes/powerlevel10k
[submodule ".config/zsh/themes/powerlevel10k"]
path = .config/zsh/themes/powerlevel10k
url = https://github.com/romkatv/powerlevel10k
[submodule ".config/zsh/plugins/zsh-syntax-highlighting"]
path = .config/zsh/plugins/zsh-syntax-highlighting
url = https://github.com/zsh-users/zsh-syntax-highlighting
[submodule ".config/tmux/plugins/tpm"]
path = .config/tmux/plugins/tpm
url = https://github.com/tmux-plugins/tpm
[submodule ".config/tmux/plugins/tmux"]
path = .config/tmux/plugins/tmux
url = https://github.com/catppuccin/tmux

View File

@ -1,27 +0,0 @@
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi

9
.stow-local-ignore Normal file
View File

@ -0,0 +1,9 @@
.git
.gitignore
.gitmodules
.zshenv.template
README.md
.gitconfig.d
alias.d
scripts
gitconfig.d

1
.tmux.conf Normal file
View File

@ -0,0 +1 @@
source-file ~/.config/tmux/tmux.conf

View File

@ -1 +1,2 @@
export OPENAI_KEY=
export OPENAI_KEY=
export DOTFILES_INSTALL_DIR=

19
.zshrc
View File

@ -6,7 +6,7 @@ if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]
fi
# Set custom Zsh plugin path
export ZSH_CUSTOM="$HOME/dotfiles/zsh"
export ZSH_CUSTOM="$HOME/.config/zsh"
# Load plugins
source $ZSH_CUSTOM/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
@ -86,7 +86,7 @@ HIST_STAMPS="dd.mm.yyyy"
# 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=(zsh-autosuggestions z)
plugins=(zsh-autosuggestions z aliases sudo tmux)
source $ZSH/oh-my-zsh.sh
@ -121,12 +121,12 @@ source $ZSH/oh-my-zsh.sh
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
for file in $HOME/.alias.d/*; do
source $HOME/.zshenv
for file in $DOTFILES_INSTALL_DIR/alias.d/*; do
source $file
done
source $HOME/.zshenv
eval "$(direnv hook zsh)"
if command -v ng >/dev/null; then
@ -140,3 +140,12 @@ fi
# bun
export BUN_INSTALL="$HOME/.bun"
export PATH="$BUN_INSTALL/bin:$PATH"
export PATH=".:$PATH"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
. "$HOME/.atuin/bin/env"
eval "$(atuin init zsh)"

View File

@ -7,12 +7,6 @@ git clone https://git.simonis.lol/csimonis/dotfiles.git ~/dotfiles
cd ~/dotfiles
# Install Script uses apt so if your not root get fucked idiot
if [ "$(id -u)" -ne 0 ]; then
alias apt='sudo apt'
fi
# Installs system dependencies and does some other stuff
./install
# Creates Symlinks and installs zsh themes and plugins

View File

@ -1,8 +1,9 @@
alias c='clear'
alias ll='ls -lah'
alias cat='batcat'
alias sl='sl -e'
alias claude='~/.claude/local/claude'
if [ ! $UID -eq 0 ]; then
alias apt='sudo apt'
alias apt-get='sudo apt-get'
fi
fi

5
alias.d/tmuxinator.sh Normal file
View File

@ -0,0 +1,5 @@
alias t='tmuxinator'
alias ts='tmuxinator start'
alias tl='tmuxinator list'
alias tst='tmuxinator stop'
alias tsk='tmuxinator kill'

5
gitconfig.d/.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
/*
!.gitignore
!example.gitconfig
!base.gitconfig
!var

View File

@ -0,0 +1,8 @@
[credential]
helper = store
[push]
autoSetupRemote = true
[core]
autocrlf = false
[pull]
rebase = true

4
gitconfig.d/var/.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
/*
!example.gitconfig
!.gitignore

View File

@ -1,14 +1,14 @@
[user]
email = user@mail
name = John Doe
signingkey = 1234
[credential]
helper = store
[push]
autoSetupRemote = true
[core]
autocrlf = true
[pull]
rebase = true
[commit]
gpgsign = true
[user]
email = user@mail
name = John Doe
signingkey = 1234
[credential]
helper = store
[push]
autoSetupRemote = true
[core]
autocrlf = true
[pull]
rebase = true
[commit]
gpgsign = true

29
install
View File

@ -1,29 +0,0 @@
#!/usr/bin/env bash
set -e
echo
echo "[+] Updating System Packages..."
echo
sudo apt update -qq
echo
echo "[+] Installing Dependencies..."
echo
sudo apt install -yqq \
zsh \
curl \
exa \
direnv \
bat \
btop
echo
echo "[+] Installing Oh My Zsh..."
echo
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
echo "Include $HOME/.config/ssh/*" >> "$HOME/.ssh/config"
./setup

34
scripts/gitconfig Executable file
View File

@ -0,0 +1,34 @@
#!/usr/bin/env bash
set -e
CONFIG_DIR="$DOTFILES_INSTALL_DIR/gitconfig.d/var"
echo
echo "[+] Generating Gitconfig"
echo
rm -f "$HOME/.gitconfig"
cp "$DOTFILES_INSTALL_DIR/gitconfig.d/base.gitconfig" "$HOME/.gitconfig"
for config in "$CONFIG_DIR"/*.gitconfig; do
[ -e "$config" ] || continue
filename=$(basename "$config")
domain="${filename%.gitconfig}"
# Skip example.gitconfig
if [[ "$filename" == "example.gitconfig" ]]; then
echo "Skipping $filename"
continue
fi
echo "Create config for $domain"
cat <<EOF >> "$HOME/.gitconfig"
[includeIf "hasconfig:remote.*.url:https://**$domain/**"]
path = $config
EOF
done

47
scripts/install Executable file
View File

@ -0,0 +1,47 @@
#!/usr/bin/env bash
set -e
git config core.autocrlf false
APT_CMD="apt"
if [ "$(id -u)" -ne 0 ]; then
APT_CMD="sudo apt"
fi
echo
echo "[+] Updating System Packages..."
echo
$APT_CMD update -qq
echo
echo "[+] Installing Dependencies..."
echo
$APT_CMD install -yqq \
zsh \
curl \
exa \
direnv \
bat \
btop \
stow \
tmux \
dos2unix
if [ ! -d "$HOME/.oh-my-zsh" ]; then
echo
echo "[+] Installing Oh My Zsh..."
echo
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
fi
if [ -f "$HOME/.zshrc" ] && [ ! -L "$HOME/.zshrc" ]; then
rm "$HOME/.zshrc"
fi
mkdir -p "$HOME/.ssh"
echo "Include $HOME/.config/ssh/*" >> "$HOME/.ssh/config"
ln -s $DOTFILES_INSTALL_DIR/scripts/post-merge .git/hooks/post-merge
./setup

3
scripts/post-merge Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
./setup

View File

@ -2,9 +2,14 @@
set -e
echo
echo "[+] Cloning submodules..."
echo
git submodule update --init --recursive
find . -type d -name '.git*' -prune -o -type f -print0 | xargs -0 dos2unix > /dev/null 2>&1
echo "[+] Creating Gitconfigs..."
(
@ -14,16 +19,17 @@ echo "[+] Creating Gitconfigs..."
done;
) > "$HOME/.gitconfig"
echo "[+] Creating symlinks..."
./scripts/gitconfig
ln -sf "$PWD/.zshrc" "$HOME/.zshrc"
ln -sf "$PWD/.p10k.zsh" "$HOME/.p10k.zsh"
ln -sf "$PWD/.config" "$HOME/.config"
ln -sf "$PWD/.alias.d" "$HOME/.alias.d"
ln -sf "$PWD/.profile" "$HOME/.profile"
echo
echo "[+] Creating symlinks..."
echo
if [ ! -f "$PWD/.zshenv" ]; then
cp "$PWD/.zshenv.template" "$PWD/.zshenv"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
sed -i "s|^export DOTFILES_INSTALL_DIR=.*|export DOTFILES_INSTALL_DIR=${SCRIPT_DIR}|" .zshenv
fi
ln -sf "$PWD/.zshenv" "$HOME/.zshenv"
stow .