diff options
| author | Simen A. W. Olsen <hello@simenandre.no> | 2024-12-27 20:09:44 +0100 |
|---|---|---|
| committer | Simen A. W. Olsen <hello@simenandre.no> | 2024-12-27 20:09:44 +0100 |
| commit | 240106d9782a6f35d1cc0cf6ad56126d42bf5764 (patch) | |
| tree | d0293c643d82a7307e48a50b8ec4b7bfd6e7b408 | |
| parent | b2bdcbc530b7482126118acd3ca2efcbf0014cdb (diff) | |
| download | dotfiles-240106d9782a6f35d1cc0cf6ad56126d42bf5764.tar.gz dotfiles-240106d9782a6f35d1cc0cf6ad56126d42bf5764.zip | |
add zsh setup
| -rw-r--r-- | .config/.DS_Store | bin | 6148 -> 0 bytes | |||
| -rw-r--r-- | apps/Brewfile | 41 | ||||
| -rwxr-xr-x | bootstrap.sh | 20 | ||||
| -rw-r--r-- | ghostty/.config/ghostty/config | 2 | ||||
| -rw-r--r-- | tmux/.tmux.conf | 0 | ||||
| -rw-r--r-- | tmux/tmux.conf | 64 | ||||
| -rw-r--r-- | zsh/.config/zsh/.zshenv | 3 | ||||
| -rwxr-xr-x[-rw-r--r--] | zsh/.config/zsh/aliases (renamed from zsh/aliases.zsh) | 0 | ||||
| -rwxr-xr-x | zsh/.config/zsh/extras (renamed from zsh/extras.zsh) | 0 | ||||
| -rwxr-xr-x[-rw-r--r--] | zsh/.config/zsh/path (renamed from zsh/path.zsh) | 0 | ||||
| l--------- | zsh/.zshenv | 1 | ||||
| -rwxr-xr-x[-rw-r--r--] | zsh/.zshrc | 1 |
12 files changed, 46 insertions, 86 deletions
diff --git a/.config/.DS_Store b/.config/.DS_Store Binary files differdeleted file mode 100644 index ff27636..0000000 --- a/.config/.DS_Store +++ /dev/null diff --git a/apps/Brewfile b/apps/Brewfile index 340fcec..8354cfb 100644 --- a/apps/Brewfile +++ b/apps/Brewfile @@ -6,19 +6,19 @@ tap "oven-sh/bun" # Bun JavaScript runtime tap "pulumi/tap" # Pulumi infrastructure as code tools tap "go-task/tap" # Task runner for Go tap "tursodatabase/tap" # Turso database tools +tap "libsql/sqld" tap "yakitrak/yakitrak" # Tap for yakitrak tools tap "simenandre/tools" # Tap for Simen Andre's tools # Mas brew "mas" # Mac App Store command-line interface -mas "Outline", id: 1356178125 # Note-taking application +mas "Outline", id: 1356178125 # Outline VPN mas "Remote Desktop", id: 409907375 # Microsoft Remote Desktop application # Shells and Shell Utilities brew "zsh" # Z shell brew "bash" # Modern version of Bash brew "bash-completion" # Bash completion -brew "yadm" # Yet Another Dotfiles Manager brew "ghq" # Manage remote repository clones brew "moreutils" # Collection of additional Unix utilities @@ -26,6 +26,7 @@ brew "moreutils" # Collection of additional Unix utilities brew "findutils" # GNU `find`, `locate`, `updatedb`, and `xargs`, `g`-prefixed. brew "gnu-sed" # GNU `sed`, overwriting the built-in `sed`. brew "grep" # More recent version of macOS `grep` +brew "stow" # Networking Tools brew "wget" # `wget` with IRI support. @@ -48,9 +49,10 @@ brew "zopfli" # Compression tool # Programming Languages and Runtimes brew "golang" # Go programming language -brew "python@3.10" # Python 3.10 +brew "python@3.11" # Python 3.11 brew "rust" # Rust programming language brew "zig" # Zig programming language +brew "pkl" # Configuration language # Font Tools brew "sfnt2woff" # Convert TTF to WOFF @@ -94,6 +96,9 @@ brew "azure-cli" # Microsoft Azure command-line tool brew "kubectl" # Kubernetes command-line tool brew "helm" # Kubernetes package manager brew "cilium-cli" # CLI to install, manage & troubleshoot Kubernetes clusters +cask "google-cloud-sdk" # Google Cloud SDK +brew "doctl" # DigitalOcean CLI +brew "flyctl" # Fly.io CLI # Container Tools brew "podman" # Manage pods, containers, and container images @@ -105,15 +110,16 @@ cask "podman-desktop" # Podman desktop brew "go-task" # Task runner for Go brew "act" # Run GitHub Actions locally -# Databases +# Databases and Database Tools brew "turso" # Turso database command-line tool +brew "libpq" # PostgreSQL C library +brew "sqld" # SQL daemon # Video Meeting Applications cask "microsoft-teams" # Microsoft Teams cask "zoom" # Zoom video conferencing # Applications -cask "visual-studio-code" # Visual Studio Code editor cask "spotify" # Spotify music streaming brew "neovim" # Hyperextensible Vim-based text editor cask "slack" # Slack messaging app @@ -126,22 +132,33 @@ cask "microsoft-remote-desktop" # Microsoft Remote Desktop app cask "postico" # PostgreSQL GUI client cask "cyberduck" # FTP and cloud storage browser cask "adobe-creative-cloud" # Adobe Creative Cloud -cask "1password" # 1Password password manager +# TODO: Figure out how to handle 1password when it updates itself +# cask "1password" # 1Password password manager +cask "1password-cli" # 1Password command-line tool +cask "protonvpn" # ProtonVPN client cask "openvpn-connect" # OpenVPN client cask "raycast" # Command launcher -cask "wezterm" # Terminal emulator cask "rectangle" # Window management app +cask "google-chrome" # Google Chrome browser +cask "google-drive" # Google Drive +cask "google-drive-file-stream" # Google Drive for desktop +cask "karabiner-elements" # Keyboard customizer +cask "postman" # API platform +cask "ghostty" # Modern terminal emulator # Terminal Tools brew "pv" # Pipe viewer brew "rename" # Perl-powered file rename script brew "rlwrap" # Readline wrapper brew "tree" # Display directories as trees +brew "screen" # Terminal multiplexer brew "vbindiff" # Visual binary diff brew "tmate" # Instant terminal sharing brew "asciinema" # Record and share terminal sessions brew "dasel" # Query and update data structures from the command line brew "tldr" # Simplified and community-driven man pages +brew "starship" # Cross-shell prompt +brew "gh" # GitHub CLI # HTTP and Web Servers brew "caddy" # Fast, multi-platform web server with automatic HTTPS @@ -149,10 +166,10 @@ brew "goreleaser" # Deliver Go binaries as fast and easily # Specific Toolsets brew "whalebrew" # Dockerized CLI applications - +brew "gd" # Graphics library +brew "ghostscript" # PostScript interpreter +brew "rclone" # Manage cloud storage +brew "graphviz" # Graph visualization software +# # Obsidian cask "obsidian" # Obsidian note-taking app - -# My tools -brew "trippl-timely" # Not clear, could be a custom tool -brew "xlsx-mxlookup" # Not clear, could be a custom tool diff --git a/bootstrap.sh b/bootstrap.sh index 7a12335..430feb4 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -5,26 +5,28 @@ if ! command -v brew >/dev/null 2>&1; then /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" fi -# Install GNU Stow -brew install stow - # Install packages from Brewfile cd apps && brew bundle # Create symlinks using stow cd .. -stow zsh -stow git -stow apps -stow config -stow tmux -stow nvim +stow_folders=(zsh git starship tmux nvim) +for folder in "${stow_folders[@]}"; do + echo "stow $folder" + stow -t $HOME -D $folder + stow -t $HOME $folder +done # Install TPM for tmux if [ ! -d "$HOME/.tmux/plugins/tpm" ]; then git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm fi +# Configure macOS defaults with countdown +echo "Setting MacOS defaults in 10 seconds. Press CTRL+C to abort..." +sleep 10 +echo "" + # Configure macOS defaults sh macos/macos diff --git a/ghostty/.config/ghostty/config b/ghostty/.config/ghostty/config new file mode 100644 index 0000000..9fb1770 --- /dev/null +++ b/ghostty/.config/ghostty/config @@ -0,0 +1,2 @@ +theme = tokyonight-storm + diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tmux/.tmux.conf diff --git a/tmux/tmux.conf b/tmux/tmux.conf deleted file mode 100644 index ca1ab51..0000000 --- a/tmux/tmux.conf +++ /dev/null @@ -1,64 +0,0 @@ - -unbind C-b -set-option -g prefix C-a -bind-key C-a send-prefix -set -g status-style 'bg=#333333 fg=#5eacd3' -set -g mouse on -set -g base-index 1 -set -g pane-base-index 1 -set-window-option -g pane-base-index 1 -set-option -g renumber-windows on -set-option -g mouse on - -set -ga terminal-overrides ",screen-256color*:Tc" -set-option -g default-terminal "screen-256color" -set -s escape-time 0 - -set-window-option -g mode-keys vi -bind -T copy-mode-vi v send-keys -X begin-selection -bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard' - -bind '"' split-window -c "#{pane_current_path}" -bind % split-window -h -c "#{pane_current_path}" - -bind-key -r g run-shell "tmux neww lazygit" -bind-key -r i run-shell "tmux neww ~/scripts/tmux-cht.sh" - -bind-key -r f run-shell "tmux neww twm" -bind-key -r F run-shell "tmux neww twm -l" -bind-key -r e run-shell "tmux switch -t $TWM_DEFAULT" -bind X confirm-before kill-session - -# Smart pane switching with awareness of Vim splits. -# See: https://github.com/christoomey/vim-tmux-navigator - -# decide whether we're in a Vim process -is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ - | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" - -bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L' -bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D' -bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U' -bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R' - -tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")' - -if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \ - "bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'" -if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \ - "bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'" - -bind-key -n 'C-Space' if-shell "$is_vim" 'send-keys C-Space' 'select-pane -t:.+' - -bind-key -T copy-mode-vi 'C-h' select-pane -L -bind-key -T copy-mode-vi 'C-j' select-pane -D -bind-key -T copy-mode-vi 'C-k' select-pane -U -bind-key -T copy-mode-vi 'C-l' select-pane -R -bind-key -T copy-mode-vi 'C-\' select-pane -l -bind-key -T copy-mode-vi 'C-Space' select-pane -t:.+ - -set -g @plugin 'tmux-plugins/tpm' -set -g @plugin 'tmux-plugins/tmux-sensible' - - -run '~/.tmux/plugins/tpm/tpm' diff --git a/zsh/.config/zsh/.zshenv b/zsh/.config/zsh/.zshenv new file mode 100644 index 0000000..51b9cf4 --- /dev/null +++ b/zsh/.config/zsh/.zshenv @@ -0,0 +1,3 @@ +export ZDOTDIR=$HOME/.config/zsh + +. "$HOME/.cargo/env" diff --git a/zsh/aliases.zsh b/zsh/.config/zsh/aliases index ebda55c..ebda55c 100644..100755 --- a/zsh/aliases.zsh +++ b/zsh/.config/zsh/aliases diff --git a/zsh/extras.zsh b/zsh/.config/zsh/extras index 0647ca0..0647ca0 100755 --- a/zsh/extras.zsh +++ b/zsh/.config/zsh/extras diff --git a/zsh/path.zsh b/zsh/.config/zsh/path index ef41549..ef41549 100644..100755 --- a/zsh/path.zsh +++ b/zsh/.config/zsh/path diff --git a/zsh/.zshenv b/zsh/.zshenv new file mode 120000 index 0000000..9fbf4d2 --- /dev/null +++ b/zsh/.zshenv @@ -0,0 +1 @@ +.config/zsh/.zshenv
\ No newline at end of file diff --git a/zsh/.zshrc b/zsh/.zshrc index bdc70cc..9ef0a9d 100644..100755 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -1,4 +1,3 @@ - # Download Znap, if it's not there yet. [[ -r ~/.zsh_repos/znap/znap.zsh ]] || git clone --depth 1 -- \ |
