mirror of
https://github.com/js0ny/dotfiles.git
synced 2025-12-21 00:33:00 +00:00
breaking: Remove setup script and use chezmoi
This commit is contained in:
parent
02bbb24cac
commit
0051a163c3
190 changed files with 118 additions and 3456 deletions
13
.chezmoiignore
Normal file
13
.chezmoiignore
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
# .chezmoiignore
|
||||||
|
|
||||||
|
# macOS only
|
||||||
|
{{ if ne .chezmoi.os "darwin" -}}
|
||||||
|
{{ end -}}
|
||||||
|
|
||||||
|
# Linux only
|
||||||
|
{{ if ne .chezmoi.os "linux" -}}
|
||||||
|
{{ end -}}
|
||||||
|
|
||||||
|
# Windows only
|
||||||
|
{{ if ne .chezmoi.os "windows" -}}
|
||||||
|
{{ end -}}
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
|
|
||||||
test:
|
|
||||||
echo "DOTFILES={{DOTFILES}}"
|
|
||||||
echo "XDG_CONFIG_HOME={{XDG_CONFIG_HOME}}"
|
|
||||||
echo "XDG_DATA_HOME={{XDG_DATA_HOME}}"
|
|
||||||
|
|
||||||
|
|
||||||
check:
|
|
||||||
@just check_shell
|
|
||||||
format:
|
|
||||||
@just format_shell
|
|
||||||
|
|
||||||
|
|
||||||
[private]
|
|
||||||
[unix]
|
|
||||||
check_shell:
|
|
||||||
shellcheck -x -s sh --severity=error **/*.sh platforms/mac/yabairc
|
|
||||||
shellcheck -x -s bash --severity=error **/*.bash tools/bash/* **/*.bashrc
|
|
||||||
|
|
||||||
[private]
|
|
||||||
[unix]
|
|
||||||
format_shell:
|
|
||||||
shfmt -w -i 2 -ci -bn -p **/*.sh
|
|
||||||
shfmt -w -i 2 -ci -bn -ln bash **/*.bash platforms/mac/sketchybar/sketchybarrc
|
|
||||||
# Ignore syntax errors in zsh files
|
|
||||||
shfmt -w -i 2 -ci -bn -ln bash **/*.zsh tools/zsh/**/* **/zshrc || true
|
|
||||||
|
|
||||||
[private]
|
|
||||||
check_info:
|
|
||||||
shellcheck -x -s sh **/*.sh platforms/mac/yabairc
|
|
||||||
shellcheck -x -s bash **/*.bash tools/bash/* scripts/*.{sh,zsh,bash} **/*.bashrc
|
|
||||||
|
|
||||||
[private]
|
|
||||||
init:
|
|
||||||
git remote add github git@github.com:js0ny/dotfiles.git
|
|
||||||
git remote add codeberg git@codeberg.org:js0ny/dotfiles.git
|
|
||||||
|
|
||||||
[private]
|
|
||||||
push:
|
|
||||||
git push github master
|
|
||||||
git push codeberg master
|
|
||||||
|
|
||||||
[private]
|
|
||||||
pull:
|
|
||||||
git pull github master
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
|
|
||||||
# Sudo and coreutils are required
|
|
||||||
LN := \
|
|
||||||
if os_family() == "windows" {
|
|
||||||
"sudo ln -sf"
|
|
||||||
} else {
|
|
||||||
"ln -sf"
|
|
||||||
}
|
|
||||||
CLIP := \
|
|
||||||
if os() == "windows" { "clip.exe" } \
|
|
||||||
else if os() == "linux" { "wl-copy" } \
|
|
||||||
else if os() == "macos" { "pbcopy" } \
|
|
||||||
else { "" }
|
|
||||||
|
|
||||||
|
|
||||||
CURL := \
|
|
||||||
if os() == "windows" { "Invoke-WebRequest" } \
|
|
||||||
else if os() == "linux" { "curl -L" } \
|
|
||||||
else if os() == "macos" { "curl -L" } \
|
|
||||||
else { "" }
|
|
||||||
|
|
||||||
CURL_OUT := \
|
|
||||||
if os() == "windows" { "-OutFile" } \
|
|
||||||
else if os() == "linux" { "-o" } \
|
|
||||||
else if os() == "macos" { "-o" } \
|
|
||||||
else { "" }
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
||||||
ideavim:
|
|
||||||
{{LN}} {{DOTFILES}}/common/ideavimrc {{XDG_CONFIG_HOME}}/ideavim/ideavimrc
|
|
||||||
git clone https://github.com/MarcoIeni/intellimacs {{join(home_directory(), ".local/share/intellimacs")}} --depth 1
|
|
||||||
|
|
||||||
lsd:
|
|
||||||
-mkdir {{XDG_CONFIG_HOME}}/lsd
|
|
||||||
{{LN}} {{DOTFILES}}/common/lsd.yaml {{XDG_CONFIG_HOME}}/lsd/config.yaml
|
|
||||||
|
|
||||||
bat:
|
|
||||||
mkdir -p "$(bat --config-dir)/themes"
|
|
||||||
wget -P "$(bat --config-dir)/themes" https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20Latte.tmTheme
|
|
||||||
wget -P "$(bat --config-dir)/themes" https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20Frappe.tmTheme
|
|
||||||
wget -P "$(bat --config-dir)/themes" https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20Macchiato.tmTheme
|
|
||||||
wget -P "$(bat --config-dir)/themes" https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20Mocha.tmTheme
|
|
||||||
{{LN}} {{DOTFILES}}/common/bat.config.dark {{DOTFILES}}/common/bat.config
|
|
||||||
{{LN}} {{DOTFILES}}/common/bat.config {{XDG_CONFIG_HOME}}/bat/config
|
|
||||||
|
|
||||||
[unix]
|
|
||||||
neovide:
|
|
||||||
which neovide
|
|
||||||
-mkdir -p {{XDG_CONFIG_HOME}}/neovide
|
|
||||||
{{LN}} {{DOTFILES}}/platforms/{{OS}}/neovide.toml {{XDG_CONFIG_HOME}}/neovide/config.toml
|
|
||||||
|
|
||||||
|
|
||||||
[linux]
|
|
||||||
readline:
|
|
||||||
mkdir -p {{XDG_CONFIG_HOME}}/readline
|
|
||||||
{{LN}} {{DOTFILES}}/common/inputrc {{XDG_CONFIG_HOME}}/readline/inputrc
|
|
||||||
|
|
||||||
[unix]
|
|
||||||
rtorrent:
|
|
||||||
mkdir -p {{XDG_CONFIG_HOME}}/rtorrent
|
|
||||||
{{LN}} {{DOTFILES}}/common/rtorrent.rc {{XDG_CONFIG_HOME}}/rtorrent/rtorrent.rc
|
|
||||||
mkdir -p {{XDG_DATA_HOME}}/rtorrent/session
|
|
||||||
mkdir -p {{XDG_DATA_HOME}}/rtorrent/watch
|
|
||||||
|
|
||||||
starship:
|
|
||||||
{{LN}} {{DOTFILES}}/common/starship.toml {{XDG_CONFIG_HOME}}/starship.toml
|
|
||||||
|
|
||||||
|
|
||||||
[unix]
|
|
||||||
vim:
|
|
||||||
mkdir -p {{XDG_DATA_HOME}}/vim/after
|
|
||||||
mkdir -p {{XDG_STATE_HOME}}/vim/{backup,swap,undo,view}
|
|
||||||
mkdir -p {{XDG_CONFIG_HOME}}/vim/
|
|
||||||
ln -sf {{DOTFILES}}/common/vimrc {{XDG_CONFIG_HOME}}/vim/vimrc
|
|
||||||
|
|
||||||
|
|
||||||
[windows]
|
|
||||||
vim:
|
|
||||||
New-Item -ItemType SymbolicLink -Path $HOME/_vimrc -Value {{DOTFILES}}/common/vim.noxdg.vimrc
|
|
||||||
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
||||||
|
|
||||||
[linux]
|
|
||||||
systemd:
|
|
||||||
{{LN}} {{DOTFILES}}/platforms/{{OS}}/systemd {{XDG_CONFIG_HOME}}/systemd
|
|
||||||
|
|
||||||
[linux]
|
|
||||||
keyd:
|
|
||||||
-which keyd || sudo pacman -S keyd --noconfirm || sudo apt install keyd --yes || @just build_keyd
|
|
||||||
sudo mkdir /etc/keyd/
|
|
||||||
sudo cp {{DOTFILES}}/platforms/linux/keyd/default.conf /etc/keyd/default.conf
|
|
||||||
mkdir -p {{XDG_CONFIG_HOME}}/keyd
|
|
||||||
{{LN}} {{DOTFILES}}/platforms/linux/keyd/app.conf {{XDG_CONFIG_HOME}}/keyd/app.conf
|
|
||||||
sudo systemctl enable --now keyd.service
|
|
||||||
|
|
||||||
[linux]
|
|
||||||
[private]
|
|
||||||
build_keyd:
|
|
||||||
git clone https://github.com/rvaiya/keyd $HOME/.local/build/keyd
|
|
||||||
cd $HOME/.local/build/keyd && make && sudo make install
|
|
||||||
|
|
||||||
[linux]
|
|
||||||
flatpak:
|
|
||||||
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
|
||||||
|
|
||||||
[linux]
|
|
||||||
swaylock:
|
|
||||||
mkdir -p {{XDG_CONFIG_HOME}}/swaylock
|
|
||||||
{{LN}} {{DOTFILES}}/platforms/linux/swaylock {{XDG_CONFIG_HOME}}/swaylock/config
|
|
||||||
|
|
||||||
[linux]
|
|
||||||
dunst:
|
|
||||||
mkdir -p {{XDG_CONFIG_HOME}}/dunst
|
|
||||||
{{LN}} {{DOTFILES}}/platforms/linux/dunstrc {{XDG_CONFIG_HOME}}/dunst/dunstrc
|
|
||||||
|
|
||||||
[linux]
|
|
||||||
hypr:
|
|
||||||
{{LN}} {{DOTFILES}}/platforms/linux/hypr/hyprland/dark.conf {{DOTFILES}}/platforms/linux/hypr/hyprland/current.conf
|
|
||||||
{{LN}} {{DOTFILES}}/platforms/linux/hypr {{XDG_CONFIG_HOME}}/hypr
|
|
||||||
|
|
||||||
[linux]
|
|
||||||
rofi:
|
|
||||||
{{LN}} {{DOTFILES}}/platforms/linux/rofi/dark.rasi {{DOTFILES}}/platforms/linux/rofi/current.rasi
|
|
||||||
{{LN}} {{DOTFILES}}/platforms/linux/rofi {{XDG_CONFIG_HOME}}/rofi
|
|
||||||
|
|
||||||
[linux]
|
|
||||||
waybar:
|
|
||||||
{{LN}} {{DOTFILES}}/platforms/linux/waybar {{XDG_CONFIG_HOME}}/waybar
|
|
||||||
{{LN}} {{DOTFILES}}/platforms/linux/waybar/dark.css {{DOTFILES}}/platforms/linux/waybar/current.css
|
|
||||||
|
|
||||||
[linux]
|
|
||||||
hyprland:
|
|
||||||
@just hypr
|
|
||||||
@just dunst
|
|
||||||
@just swaylock
|
|
||||||
@just rofi
|
|
||||||
|
|
||||||
|
|
||||||
[linux]
|
|
||||||
fcitx:
|
|
||||||
[ -d {{XDG_CONFIG_HOME}}/fcitx5 ] && mv {{XDG_CONFIG_HOME}}/fcitx {{XDG_CONFIG_HOME}}/fcitx5.bak
|
|
||||||
{{LN}} {{DOTFILES}}/platforms/linux/fcitx5 {{XDG_CONFIG_HOME}}/fcitx5
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
uv:
|
|
||||||
uv init {{XDG_DATA_HOME}}/uvenv
|
|
||||||
cd {{XDG_DATA_HOME}}/uvenv
|
|
||||||
uv venv
|
|
||||||
uv add -r {{DOTFILES}}/bootstrap/components/requirements.txt
|
|
||||||
|
|
||||||
vivaldi:
|
|
||||||
{{CURL}} https://github.com/catppuccin/vivaldi/releases/download/1.0.0-ctpv2/Catppuccin.Latte.Lavender.zip {{CURL_OUT}} "$HOME/Downloads/vivaldi-light.zip" # Catppuccin Latte Lavender
|
|
||||||
{{CURL}} https://github.com/catppuccin/vivaldi/releases/download/1.0.0-ctpv2/Catppuccin.Mocha.Lavender.zip {{CURL_OUT}} "$HOME/Downloads/vivaldi-dark.zip" # Catppuccin Mocha Lavender
|
|
||||||
|
|
||||||
|
|
||||||
zotero:
|
|
||||||
{{CURL}} https://github.com/syt2/zotero-addons/releases/download/V1.8.1/zotero-addons.xpi {{CURL_OUT}} "$HOME/Downloads/zotero-addons.xpi"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
||||||
[unix]
|
|
||||||
kitty:
|
|
||||||
which kitty
|
|
||||||
{{LN}} {{DOTFILES}}/tools/kitty {{XDG_CONFIG_HOME}}/kitty
|
|
||||||
|
|
||||||
neovim:
|
|
||||||
which nvim
|
|
||||||
{{LN}} {{DOTFILES}}/tools/nvim {{XDG_CONFIG_HOME}}/nvim
|
|
||||||
nvim --headless +checkhealth +"w nvim-healthcheck.txt" +qall
|
|
||||||
|
|
||||||
nvim:
|
|
||||||
@just neovim
|
|
||||||
|
|
||||||
[linux]
|
|
||||||
bash:
|
|
||||||
{{LN}} {{DOTFILES}}/tools/bash {{XDG_CONFIG_HOME}}/bash
|
|
||||||
sudo cp {{DOTFILES}}/tools/bash/xdg-compat.sh /etc/profile.d/xdg-compat.sh
|
|
||||||
|
|
||||||
[unix]
|
|
||||||
fish:
|
|
||||||
{{LN}} {{DOTFILES}}/tools/fish {{XDG_CONFIG_HOME}}/fish
|
|
||||||
{{CURL}} https://raw.githubusercontent.com/SpaceAceMonkey/dotenv-for-fish/refs/heads/main/dotenv.fish {{CURL_OUT}} "{{DOTFILES}}/tools/fish/functions/dotenv.fish"
|
|
||||||
|
|
||||||
[unix]
|
|
||||||
screen:
|
|
||||||
{{LN}} {{DOTFILES}}/tools/screen {{XDG_CONFIG_HOME}}/screen
|
|
||||||
|
|
||||||
[unix]
|
|
||||||
tmux:
|
|
||||||
{{LN}} {{DOTFILES}}/tools/tmux {{XDG_CONFIG_HOME}}/tmux
|
|
||||||
|
|
||||||
thunderbird:
|
|
||||||
{{CURL}} https://github.com/wshanks/tbkeys/releases/download/v2.4.0/tbkeys.xpi {{CURL_OUT}} "$HOME/Downloads/tbkeys.xpi"
|
|
||||||
{{CURL}} https://github.com/htyxyt/htyxyt-immersive-translate-Thunderbird/releases/download/thunderbird-v1.14.8/immersive-translate-Thunderbird.v1.14.8.xpi {{CURL_OUT}} "$HOME/Downloads/immersive-translate-Thunderbird.xpi"
|
|
||||||
{{CURL}} https://raw.githubusercontent.com/catppuccin/thunderbird/refs/heads/main/themes/mocha/mocha-lavender.xpi {{CURL_OUT}} "$HOME/Downloads/thunderbird-dark.xpi"
|
|
||||||
cat {{DOTFILES}}/tools/thunderbird/tbkeys.json | {{CLIP}}
|
|
||||||
|
|
||||||
wezterm:
|
|
||||||
which wezterm
|
|
||||||
{{LN}} {{DOTFILES}}/tools/wezterm {{XDG_CONFIG_HOME}}/wezterm
|
|
||||||
|
|
||||||
|
|
||||||
yazi:
|
|
||||||
which yazi || cargo install --locked yazi-fm yazi-cli
|
|
||||||
-ya pack -a llanosrocas/yaziline
|
|
||||||
-ya pack -a yazi-rs/plugins:git
|
|
||||||
-ya pack -a Rolv-Apneseth/starship
|
|
||||||
|
|
||||||
[unix]
|
|
||||||
zsh:
|
|
||||||
-[[ -f /etc/zshenv ]] && sudo cp {{DOTFILES}}/tools/zsh/global.zshenv /etc/zshenv # or /etc/zsh/zshenv
|
|
||||||
-[[ -f /etc/zsh/zshenv ]] && sudo cp {{DOTFILES}}/tools/zsh/global.zshenv /etc/zsh/zshenv
|
|
||||||
mkdir -p {{XDG_CONFIG_HOME}}/zsh
|
|
||||||
{{LN}} {{DOTFILES}}/tools/zsh/zshenv {{XDG_CONFIG_HOME}}/zsh/.zshenv
|
|
||||||
{{LN}} {{DOTFILES}}/tools/zsh/zshrc {{XDG_CONFIG_HOME}}/zsh/.zshrc
|
|
||||||
{{LN}} {{DOTFILES}}/tools/zsh/zprofile {{XDG_CONFIG_HOME}}/zsh/.zprofile
|
|
||||||
test -d {{XDG_CONFIG_HOME}}/zsh/plugins/zsh-autosuggestions || git clone --depth 1 https://github.com/zsh-users/zsh-autosuggestions.git {{XDG_CONFIG_HOME}}/zsh/plugins/zsh-autosuggestions
|
|
||||||
test -d {{XDG_CONFIG_HOME}}/zsh/plugins/zsh-syntax-highlighting || git clone --depth 1 https://github.com/zsh-users/zsh-syntax-highlighting.git {{XDG_CONFIG_HOME}}/zsh/plugins/zsh-syntax-highlighting
|
|
||||||
test -d {{XDG_CONFIG_HOME}}/zsh/plugins/zsh-history-substring-search || git clone --depth 1 https://github.com/zsh-users/zsh-history-substring-search.git {{XDG_CONFIG_HOME}}/zsh/plugins/zsh-history-substring-search
|
|
||||||
test -d {{XDG_CONFIG_HOME}}/zsh/plugins/zsh-completions || git clone --depth 1 https://github.com/zsh-users/zsh-completions.git {{XDG_CONFIG_HOME}}/zsh/plugins/zsh-completions
|
|
||||||
|
|
||||||
[linux]
|
|
||||||
install_emacs:
|
|
||||||
git clone --depth 1 https://github.com/emacs-mirror/emacs.git --branch feature/igc $HOME/.local/build/emacs-igc-build
|
|
||||||
cd $HOME/.local/build/emacs-igc-build
|
|
||||||
./autogen.sh
|
|
||||||
./configure --with-mailutils --with-native-compilation --with-pgtk --with-tree-sitter --with-imagemagick
|
|
||||||
make -j$(nproc)
|
|
||||||
sudo make install
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
OS := \
|
|
||||||
if os() == "linux" {
|
|
||||||
if env("WSL_DISTRO_NAME","") != "" {
|
|
||||||
"wsl"
|
|
||||||
} else {
|
|
||||||
"linux"
|
|
||||||
}
|
|
||||||
} else if os() == "windows" {
|
|
||||||
"win"
|
|
||||||
} else if os() == "macos" {
|
|
||||||
"mac"
|
|
||||||
} else { "" }
|
|
||||||
DOTFILES := join(home_directory(), ".dotfiles")
|
|
||||||
XDG_CONFIG_HOME := \
|
|
||||||
if env("XDG_CONFIG_HOME", "") != "" {env("XDG_CONFIG_HOME", "")} \
|
|
||||||
else {
|
|
||||||
if os_family() == "windows" {
|
|
||||||
env("APPDATA")
|
|
||||||
} else {
|
|
||||||
join(home_directory(), ".config")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
XDG_DATA_HOME := \
|
|
||||||
if env("XDG_DATA_HOME", "") != "" {env("XDG_DATA_HOME", "")} \
|
|
||||||
else {
|
|
||||||
if os_family() == "windows" {
|
|
||||||
env("LOCALAPPDATA", "")
|
|
||||||
} else {
|
|
||||||
join(home_directory(), ".local/share")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
XDG_STATE_HOME := \
|
|
||||||
if env("XDG_STATE_HOME", "") != "" {env("XDG_STATE_HOME", "")} \
|
|
||||||
else {
|
|
||||||
if os_family() == "windows" {
|
|
||||||
join(env("LOCALAPPDATA", ""), "state")
|
|
||||||
} else {
|
|
||||||
join(home_directory(), ".local/state")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
15
Justfile
15
Justfile
|
|
@ -1,15 +0,0 @@
|
||||||
# set shell := ["fish", "-c"]
|
|
||||||
set shell := ["bash", "-c"]
|
|
||||||
set windows-shell := ["pwsh", "-c"]
|
|
||||||
|
|
||||||
import '.just.d/vars.just'
|
|
||||||
import '.just.d/cmds.just'
|
|
||||||
import '.just.d/common.just'
|
|
||||||
import '.just.d/tools.just'
|
|
||||||
import '.just.d/misc.just'
|
|
||||||
import '.just.d/linux.just'
|
|
||||||
import '.just.d/check.just'
|
|
||||||
|
|
||||||
_default:
|
|
||||||
@just test
|
|
||||||
@just --list
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# shellcheck shell=sh
|
|
||||||
echo "[INFO] Installing DOOM Emacs"
|
|
||||||
echo "[ACTION] Request Human Takeover"
|
|
||||||
test -d ~/.config/emacs && mv ~/.config/emacs ~/.config/emacs.bak
|
|
||||||
git clone --depth 1 https://github.com/doomemacs/doomemacs ~/.config/emacs
|
|
||||||
~/.config/emacs/bin/doom install
|
|
||||||
~/.config/emacs/bin/doom sync
|
|
||||||
|
|
||||||
echo "[INFO] Installing Emacs-Rime"
|
|
||||||
git clone --depth 1 https://github.com/js0ny/Rime.git ~/.config/emacs/.local/cache/rime
|
|
||||||
|
|
@ -1,231 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# Adds better error handling and safety features
|
|
||||||
# shellcheck disable=SC2016
|
|
||||||
|
|
||||||
set -e # Exit immediately if a command exits with a non-zero status
|
|
||||||
set -u # Treat unset variables as an error
|
|
||||||
|
|
||||||
# Create temporary working directory
|
|
||||||
TEMP_DIR="${HOME}/.tmp/catppuccin-install"
|
|
||||||
mkdir -p "${TEMP_DIR}"
|
|
||||||
|
|
||||||
# Create config directories
|
|
||||||
mkdir -p "${HOME}/.config/tmux/plugins"
|
|
||||||
mkdir -p "${HOME}/.config/yazi"
|
|
||||||
mkdir -p "${HOME}/.config/btop/themes"
|
|
||||||
mkdir -p "${HOME}/.config/git"
|
|
||||||
mkdir -p "${HOME}/.config/lsd"
|
|
||||||
mkdir -p "${HOME}/.local/share/mc/skins"
|
|
||||||
mkdir -p "${HOME}/.config/fish/themes"
|
|
||||||
mkdir -p "${HOME}/.local/share/fcitx5/themes"
|
|
||||||
|
|
||||||
# Function for downloading files
|
|
||||||
download_file() {
|
|
||||||
local url="$1"
|
|
||||||
local output_path="$2"
|
|
||||||
local output_dir
|
|
||||||
|
|
||||||
# Extract directory from output path
|
|
||||||
output_dir=$(dirname "$output_path")
|
|
||||||
|
|
||||||
# Create directory if it doesn't exist
|
|
||||||
if [ ! -d "$output_dir" ]; then
|
|
||||||
mkdir -p "$output_dir"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Print status message
|
|
||||||
echo "Downloading: $url"
|
|
||||||
echo " to: $output_path"
|
|
||||||
|
|
||||||
# Download with curl (using -L to follow redirects)
|
|
||||||
if ! curl -L -s --fail "$url" -o "$output_path"; then
|
|
||||||
echo "Error: Failed to download $url" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Verify file was downloaded
|
|
||||||
if [ ! -f "$output_path" ]; then
|
|
||||||
echo "Error: File was not created at $output_path" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Download successful."
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to check if command exists
|
|
||||||
command_exists() {
|
|
||||||
command -v "$1" >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Install Bat themes
|
|
||||||
if command_exists bat; then
|
|
||||||
BAT_CONFIG_DIR=$(bat --config-dir 2>/dev/null || echo "${HOME}/.config/bat")
|
|
||||||
mkdir -p "${BAT_CONFIG_DIR}/themes"
|
|
||||||
|
|
||||||
echo "Installing Bat themes..."
|
|
||||||
THEMES=("Latte" "Frappe" "Macchiato" "Mocha")
|
|
||||||
|
|
||||||
for theme in "${THEMES[@]}"; do
|
|
||||||
download_file "https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20${theme}.tmTheme" \
|
|
||||||
"${BAT_CONFIG_DIR}/themes/Catppuccin ${theme}.tmTheme"
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Rebuilding Bat cache..."
|
|
||||||
bat cache --build || echo "WARNING: Failed to rebuild Bat cache" >&2
|
|
||||||
else
|
|
||||||
echo "Bat not found, skipping Bat themes installation" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install Tmux plugin
|
|
||||||
if command_exists tmux; then
|
|
||||||
echo "Installing Tmux plugin..."
|
|
||||||
|
|
||||||
TMUX_PLUGIN_DIR="${HOME}/.config/tmux/plugins/catppuccin"
|
|
||||||
rm -rf "${TMUX_PLUGIN_DIR}"
|
|
||||||
mkdir -p "${TMUX_PLUGIN_DIR}"
|
|
||||||
|
|
||||||
if command_exists git; then
|
|
||||||
if ! git clone -b v2.1.2 --depth=1 https://github.com/catppuccin/tmux.git "${TMUX_PLUGIN_DIR}/tmux" 2>/dev/null; then
|
|
||||||
echo "WARNING: Failed to clone Tmux plugin repository" >&2
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Git not found, skipping Tmux plugin installation" >&2
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Tmux not found, skipping Tmux plugin installation" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install Yazi theme
|
|
||||||
if command_exists yazi; then
|
|
||||||
echo "Installing Yazi theme..."
|
|
||||||
download_file "https://raw.githubusercontent.com/catppuccin/yazi/main/themes/mocha/catppuccin-mocha-lavender.toml" \
|
|
||||||
"${HOME}/.config/yazi/theme.toml"
|
|
||||||
else
|
|
||||||
echo "Yazi not found, skipping Yazi theme installation" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install BTopa themes
|
|
||||||
if command_exists btop; then
|
|
||||||
echo "Installing BTopa themes..."
|
|
||||||
download_file "https://raw.githubusercontent.com/catppuccin/btop/main/themes/catppuccin_mocha.theme" \
|
|
||||||
"${HOME}/.config/btop/themes/catppuccin_mocha.theme"
|
|
||||||
download_file "https://raw.githubusercontent.com/catppuccin/btop/main/themes/catppuccin_latte.theme" \
|
|
||||||
"${HOME}/.config/btop/themes/catppuccin_latte.theme"
|
|
||||||
else
|
|
||||||
echo "BTopa not found, skipping BTopa themes installation" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install Delta config
|
|
||||||
echo "Installing Delta config..."
|
|
||||||
download_file "https://raw.githubusercontent.com/catppuccin/delta/main/catppuccin.gitconfig" \
|
|
||||||
"${HOME}/.config/git/catppuccin-delta.gitconfig"
|
|
||||||
|
|
||||||
# Configure FZF
|
|
||||||
if command_exists fzf; then
|
|
||||||
echo "Configuring FZF..."
|
|
||||||
|
|
||||||
# Check shell type to determine how to set environment variables
|
|
||||||
if [ -n "${FISH_VERSION:-}" ] || command_exists fish; then
|
|
||||||
# For Fish shell
|
|
||||||
fish -c 'set -U FZF_DEFAULT_OPTS "--color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc --color=marker:#b4befe,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8 --color=selected-bg:#45475a --multi"' \
|
|
||||||
|| echo "WARNING: Failed to set FZF options for Fish shell" >&2
|
|
||||||
else
|
|
||||||
# For Bash/Zsh - add to both .bashrc and .zshrc if they exist
|
|
||||||
FZF_CONFIG="export FZF_DEFAULT_OPTS=\"--color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc --color=marker:#b4befe,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8 --color=selected-bg:#45475a --multi\""
|
|
||||||
|
|
||||||
# Add to .bashrc if it exists
|
|
||||||
if [ -f "${HOME}/.bashrc" ]; then
|
|
||||||
if ! grep -q "FZF_DEFAULT_OPTS.*catppuccin" "${HOME}/.bashrc"; then
|
|
||||||
echo "${FZF_CONFIG}" >>"${HOME}/.bashrc"
|
|
||||||
echo "Added FZF configuration to .bashrc"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add to .zshrc if it exists
|
|
||||||
if [ -f "${HOME}/.zshrc" ]; then
|
|
||||||
if ! grep -q "FZF_DEFAULT_OPTS.*catppuccin" "${HOME}/.zshrc"; then
|
|
||||||
echo "${FZF_CONFIG}" >>"${HOME}/.zshrc"
|
|
||||||
echo "Added FZF configuration to .zshrc"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "FZF not found, skipping FZF configuration" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install LSD themes
|
|
||||||
if command_exists lsd; then
|
|
||||||
echo "Installing LSD themes..."
|
|
||||||
download_file "https://raw.githubusercontent.com/catppuccin/lsd/main/themes/catppuccin-mocha/colors.yaml" \
|
|
||||||
"${HOME}/.config/lsd/colors.yaml"
|
|
||||||
download_file "https://raw.githubusercontent.com/catppuccin/lsd/main/themes/catppuccin-latte/colors.yaml" \
|
|
||||||
"${HOME}/.config/lsd/colors-light.yaml"
|
|
||||||
else
|
|
||||||
echo "LSD not found, skipping LSD themes installation" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install Midnight Commander skin
|
|
||||||
echo "Installing Midnight Commander skin..."
|
|
||||||
download_file "https://raw.githubusercontent.com/catppuccin/mc/main/catppuccin.ini" \
|
|
||||||
"${HOME}/.local/share/mc/skins/catppuccin.ini"
|
|
||||||
|
|
||||||
# Print MC configuration hint
|
|
||||||
echo "Note: To use the Midnight Commander theme:"
|
|
||||||
echo " - Change or add skin=catppuccin in the [Midnight-Commander] section inside ~/.config/mc/ini"
|
|
||||||
echo " - OR choose the skin inside Midnight Commander through F9 > Options > Appearance"
|
|
||||||
echo " - Save setup through F9 > Options > Save setup"
|
|
||||||
|
|
||||||
# Install PowerShell module
|
|
||||||
if command_exists pwsh; then
|
|
||||||
echo "Installing PowerShell module..."
|
|
||||||
PS_MODULE_PATH=$(pwsh -C 'Write-Output $Env:PSModulePath.split(":")[0]' 2>/dev/null)
|
|
||||||
|
|
||||||
if [ -n "${PS_MODULE_PATH}" ]; then
|
|
||||||
if command_exists git; then
|
|
||||||
if ! git clone --depth=1 https://github.com/catppuccin/powershell.git "${PS_MODULE_PATH}/Catppuccin" 2>/dev/null; then
|
|
||||||
echo "WARNING: Failed to clone PowerShell module repository" >&2
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Git not found, skipping PowerShell module installation" >&2
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "PowerShell module path not found, skipping PowerShell module installation" >&2
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "PowerShell not found, skipping PowerShell module installation" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install Fish themes
|
|
||||||
if command_exists fish; then
|
|
||||||
echo "Installing Fish themes..."
|
|
||||||
download_file "https://raw.githubusercontent.com/catppuccin/fish/main/themes/Catppuccin%20Mocha.theme" \
|
|
||||||
"${HOME}/.config/fish/themes/Catppuccin Mocha.theme"
|
|
||||||
download_file "https://raw.githubusercontent.com/catppuccin/fish/main/themes/Catppuccin%20Latte.theme" \
|
|
||||||
"${HOME}/.config/fish/themes/Catppuccin Latte.theme"
|
|
||||||
else
|
|
||||||
echo "Fish not found, skipping Fish themes installation" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install Fcitx5 themes
|
|
||||||
if command_exists fcitx5; then
|
|
||||||
echo "Installing Fcitx5 themes..."
|
|
||||||
|
|
||||||
rm -rf "${TEMP_DIR}/fcitx5"
|
|
||||||
if command_exists git; then
|
|
||||||
if git clone --depth=1 https://github.com/catppuccin/fcitx5.git "${TEMP_DIR}/fcitx5" 2>/dev/null; then
|
|
||||||
cp -r "${TEMP_DIR}/fcitx5/src/"* "${HOME}/.local/share/fcitx5/themes/"
|
|
||||||
else
|
|
||||||
echo "WARNING: Failed to clone Fcitx5 repository" >&2
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Git not found, skipping Fcitx5 themes installation" >&2
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Fcitx5 not found, skipping Fcitx5 themes installation" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Clean up temporary directory
|
|
||||||
rm -rf "${TEMP_DIR}"
|
|
||||||
|
|
||||||
echo "Catppuccin themes installation completed!"
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
mkdir -p ~/.tmp
|
|
||||||
# Bat
|
|
||||||
mkdir -p "$(bat --config-dir)/themes"
|
|
||||||
wget -P "$(bat --config-dir)/themes" https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20Latte.tmTheme
|
|
||||||
wget -P "$(bat --config-dir)/themes" https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20Frappe.tmTheme
|
|
||||||
wget -P "$(bat --config-dir)/themes" https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20Macchiato.tmTheme
|
|
||||||
wget -P "$(bat --config-dir)/themes" https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20Mocha.tmTheme
|
|
||||||
bat cache --build
|
|
||||||
# Tmux
|
|
||||||
mkdir -p ~/.config/tmux/plugins/catppuccin:w
|
|
||||||
git clone -b v2.1.2 https://github.com/catppuccin/tmux.git ~/.config/tmux/plugins/catppuccin/tmux
|
|
||||||
# Yazi
|
|
||||||
curl https://raw.githubusercontent.com/catppuccin/yazi/refs/heads/main/themes/mocha/catppuccin-mocha-lavender.toml -o ~/.config/yazi/theme.toml
|
|
||||||
# BTop
|
|
||||||
curl https://raw.githubusercontent.com/catppuccin/btop/refs/heads/main/themes/catppuccin_mocha.theme -o ~/.config/btop/themes/catppuccin_mocha.theme
|
|
||||||
curl https://raw.githubusercontent.com/catppuccin/btop/refs/heads/main/themes/catppuccin_latte.theme -o ~/.config/btop/themes/catppuccin_latte.theme
|
|
||||||
# Delta
|
|
||||||
curl https://raw.githubusercontent.com/catppuccin/delta/refs/heads/main/catppuccin.gitconfig -o ~/.config/git/catppuccin-delta.gitconfig
|
|
||||||
# Fzf
|
|
||||||
set -Ux FZF_DEFAULT_OPTS "\
|
|
||||||
--color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \
|
|
||||||
--color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \
|
|
||||||
--color=marker:#b4befe,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8 \
|
|
||||||
--color=selected-bg:#45475a \
|
|
||||||
--multi"
|
|
||||||
# LsD
|
|
||||||
curl https://raw.githubusercontent.com/catppuccin/lsd/refs/heads/main/themes/catppuccin-mocha/colors.yaml -o ~/.config/lsd/colors.yaml
|
|
||||||
curl https://raw.githubusercontent.com/catppuccin/lsd/refs/heads/main/themes/catppuccin-latte/colors.yaml -o ~/.config/lsd/colors-light.yaml
|
|
||||||
# Midnight Commander
|
|
||||||
# Change or add skin=catppuccin in the [Midnight-Commander] section inside ~/.config/mc/ini OR Choose the skin inside Midnight Commander through F9>Options>Appearance and Save setup through F9>Options/Save setup
|
|
||||||
mkdir -p $HOME/.local/share/mc/skins
|
|
||||||
curl https://raw.githubusercontent.com/catppuccin/mc/refs/heads/main/catppuccin.ini -o $HOME/.local/share/mc/skins/catppuccin.ini
|
|
||||||
# PowerShell
|
|
||||||
pwsh -C 'git clone https://github.com/catppuccin/powershell.git (Join-Path $Env:PSModulePath.split(":")[0] Catppuccin)'
|
|
||||||
# Fish
|
|
||||||
mkdir -p ~/.config/fish/themes
|
|
||||||
curl https://raw.githubusercontent.com/catppuccin/fish/refs/heads/main/themes/Catppuccin%20Mocha.theme -o ~/.config/fish/themes/Catppuccin\ Mocha.theme
|
|
||||||
curl https://raw.githubusercontent.com/catppuccin/fish/refs/heads/main/themes/Catppuccin%20Latte.theme -o ~/.config/fish/themes/Catppuccin\ Latte.theme
|
|
||||||
# fcitx5
|
|
||||||
git clone https://github.com/catppuccin/fcitx5.git ~/.tmp/fcitx5
|
|
||||||
cd ~/.tmp/fcitx5
|
|
||||||
mkdir -p ~/.local/share/fcitx5/themes
|
|
||||||
cp -r ./src/* ~/.local/share/fcitx5/themes
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
Install-Module CompletionPredictor
|
|
||||||
Install-Module PSFzf
|
|
||||||
Install-Module Posh-Git
|
|
||||||
|
|
@ -1,112 +0,0 @@
|
||||||
anyio==4.8.0
|
|
||||||
argon2-cffi==23.1.0
|
|
||||||
argon2-cffi-bindings==21.2.0
|
|
||||||
arrow==1.3.0
|
|
||||||
asttokens==3.0.0
|
|
||||||
async-lru==2.0.4
|
|
||||||
attrs==25.1.0
|
|
||||||
babel==2.17.0
|
|
||||||
beautifulsoup4==4.13.3
|
|
||||||
bleach==6.2.0
|
|
||||||
certifi==2025.1.31
|
|
||||||
cffi==1.17.1
|
|
||||||
charset-normalizer==3.4.1
|
|
||||||
comm==0.2.2
|
|
||||||
contourpy==1.3.1
|
|
||||||
cycler==0.12.1
|
|
||||||
debugpy==1.8.13
|
|
||||||
decorator==5.2.1
|
|
||||||
defusedxml==0.7.1
|
|
||||||
executing==2.2.0
|
|
||||||
fastjsonschema==2.21.1
|
|
||||||
fonttools==4.56.0
|
|
||||||
fqdn==1.5.1
|
|
||||||
h11==0.14.0
|
|
||||||
httpcore==1.0.7
|
|
||||||
httpx==0.28.1
|
|
||||||
idna==3.10
|
|
||||||
ipykernel==6.29.5
|
|
||||||
ipython==9.0.2
|
|
||||||
ipython-pygments-lexers==1.1.1
|
|
||||||
ipywidgets==8.1.5
|
|
||||||
isoduration==20.11.0
|
|
||||||
jedi==0.19.2
|
|
||||||
jinja2==3.1.6
|
|
||||||
joblib==1.4.2
|
|
||||||
json5==0.10.0
|
|
||||||
jsonpointer==3.0.0
|
|
||||||
jsonschema==4.23.0
|
|
||||||
jsonschema-specifications==2024.10.1
|
|
||||||
jupyter==1.1.1
|
|
||||||
jupyter-client==8.6.3
|
|
||||||
jupyter-console==6.6.3
|
|
||||||
jupyter-core==5.7.2
|
|
||||||
jupyter-events==0.12.0
|
|
||||||
jupyter-lsp==2.2.5
|
|
||||||
jupyter-server==2.15.0
|
|
||||||
jupyter-server-terminals==0.5.3
|
|
||||||
jupyterlab==4.3.5
|
|
||||||
jupyterlab-pygments==0.3.0
|
|
||||||
jupyterlab-server==2.27.3
|
|
||||||
jupyterlab-widgets==3.0.13
|
|
||||||
kiwisolver==1.4.8
|
|
||||||
markupsafe==3.0.2
|
|
||||||
matplotlib==3.10.1
|
|
||||||
matplotlib-inline==0.1.7
|
|
||||||
mistune==3.1.2
|
|
||||||
nbclient==0.10.2
|
|
||||||
nbconvert==7.16.6
|
|
||||||
nbformat==5.10.4
|
|
||||||
nest-asyncio==1.6.0
|
|
||||||
notebook==7.3.2
|
|
||||||
notebook-shim==0.2.4
|
|
||||||
numpy==2.2.3
|
|
||||||
overrides==7.7.0
|
|
||||||
packaging==24.2
|
|
||||||
pandas==2.2.3
|
|
||||||
pandocfilters==1.5.1
|
|
||||||
parso==0.8.4
|
|
||||||
pexpect==4.9.0
|
|
||||||
pillow==11.1.0
|
|
||||||
platformdirs==4.3.6
|
|
||||||
prometheus-client==0.21.1
|
|
||||||
prompt-toolkit==3.0.50
|
|
||||||
psutil==7.0.0
|
|
||||||
ptyprocess==0.7.0
|
|
||||||
pure-eval==0.2.3
|
|
||||||
pycparser==2.22
|
|
||||||
pygments==2.19.1
|
|
||||||
pyparsing==3.2.1
|
|
||||||
python-dateutil==2.9.0.post0
|
|
||||||
python-json-logger==3.3.0
|
|
||||||
pytz==2025.1
|
|
||||||
pyyaml==6.0.2
|
|
||||||
pyzmq==26.2.1
|
|
||||||
referencing==0.36.2
|
|
||||||
requests==2.32.3
|
|
||||||
rfc3339-validator==0.1.4
|
|
||||||
rfc3986-validator==0.1.1
|
|
||||||
rpds-py==0.23.1
|
|
||||||
scikit-learn==1.6.1
|
|
||||||
scipy==1.15.2
|
|
||||||
send2trash==1.8.3
|
|
||||||
setuptools==76.0.0
|
|
||||||
six==1.17.0
|
|
||||||
sniffio==1.3.1
|
|
||||||
soupsieve==2.6
|
|
||||||
stack-data==0.6.3
|
|
||||||
terminado==0.18.1
|
|
||||||
threadpoolctl==3.5.0
|
|
||||||
tinycss2==1.4.0
|
|
||||||
tornado==6.4.2
|
|
||||||
traitlets==5.14.3
|
|
||||||
types-python-dateutil==2.9.0.20241206
|
|
||||||
typing-extensions==4.12.2
|
|
||||||
tzdata==2025.1
|
|
||||||
uri-template==1.3.0
|
|
||||||
urllib3==2.3.0
|
|
||||||
wcwidth==0.2.13
|
|
||||||
webcolors==24.11.1
|
|
||||||
webencodings==0.5.1
|
|
||||||
websocket-client==1.8.0
|
|
||||||
widgetsnbextension==4.0.13
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
echo "[INFO] Installing Rime"
|
|
||||||
|
|
||||||
case "$(uname)" in
|
|
||||||
Linux)
|
|
||||||
RIMEDIR="${RIMEDIR:-$HOME/.local/share/fcitx5/rime}"
|
|
||||||
;;
|
|
||||||
Darwin)
|
|
||||||
RIMEDIR="${RIMEDIR:-$HOME/Library/Rime}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
git clone --depth 1 https://github.com/js0ny/rime_wanxiang_pro.git "$RIMEDIR"
|
|
||||||
cd "$RIMEDIR" || exit
|
|
||||||
|
|
||||||
just init
|
|
||||||
# just install_rime
|
|
||||||
just clone_plum
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# vim:ft=bash
|
|
||||||
# shellcheck disable=SC1090 shell=bash
|
|
||||||
# This should be run with bash > 4.0 or zsh
|
|
||||||
set -e # Exit immediately if a command exits with a non-zero status
|
|
||||||
|
|
||||||
DOTFILES="${DOTFILES:-$HOME/.dotfiles}"
|
|
||||||
ZDOTDIR="${ZDOTDIR:-$HOME/.config/zsh}"
|
|
||||||
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
|
||||||
NPM_CONFIG_USERCONFIG="${NPM_CONFIG_USERCONFIG:-$XDG_CONFIG_HOME/npm/npmrc}"
|
|
||||||
GUI_SETUP="${GUI_SETUP:-1}"
|
|
||||||
WHEEL="${WHEEL:-0}"
|
|
||||||
|
|
||||||
XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
|
|
||||||
XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
|
|
||||||
XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}"
|
|
||||||
|
|
||||||
echo "[INFO] Setting up some local directories"
|
|
||||||
test -d "$XDG_CACHE_HOME" || mkdir -p "$XDG_CACHE_HOME"
|
|
||||||
test -d "$XDG_DATA_HOME" || mkdir -p "$XDG_DATA_HOME"
|
|
||||||
test -d "$XDG_STATE_HOME" || mkdir -p "$XDG_STATE_HOME"
|
|
||||||
test -d ~/.local/state/zsh || mkdir -p ~/.local/state/zsh
|
|
||||||
|
|
||||||
# echo "[INFO] Setting up system-wide zsh configuration"
|
|
||||||
# echo "[ACTION] Elevation required!"
|
|
||||||
# test -f "/etc/zsh/zshenv" && sudo cp "$DOTFILES/tools/zsh/zshenv" "/etc/zsh/zshenv"
|
|
||||||
# test -f "/etc/zshenv" && sudo cp "$DOTFILES/tools/zsh/zshenv" "/etc/zshenv"
|
|
||||||
|
|
||||||
declare -A linkDots
|
|
||||||
|
|
||||||
linkDots=(
|
|
||||||
["$DOTFILES/common/condarc.yaml"]="$XDG_CONFIG_HOME/conda/.condarc"
|
|
||||||
# ["$DOTFILES/common/gitconfig"]="$XDG_CONFIG_HOME/git/config"
|
|
||||||
["$DOTFILES/common/glow.yaml"]="$HOME/.config/glow/config.yml"
|
|
||||||
["$DOTFILES/common/haskeline"]="$HOME/.haskeline"
|
|
||||||
["$DOTFILES/common/ideavimrc"]="$XDG_CONFIG_HOME/ideavim/ideavimrc"
|
|
||||||
["$DOTFILES/common/lazygit.yaml"]="$XDG_CONFIG_HOME/lazygit/config.yml"
|
|
||||||
["$DOTFILES/common/lesskey"]="$XDG_CONFIG_HOME/lesskey"
|
|
||||||
["$DOTFILES/common/npmrc"]="$NPM_CONFIG_USERCONFIG"
|
|
||||||
["$DOTFILES/common/NuGet.Config"]="$XDG_CONFIG_HOME/NuGet/NuGet.Config"
|
|
||||||
["$DOTFILES/common/pip.conf"]="$XDG_CONFIG_HOME/pip/pip.conf"
|
|
||||||
["$DOTFILES/common/starship.toml"]="$HOME/.config/starship.toml"
|
|
||||||
["$DOTFILES/common/tmux.conf"]="$XDG_CONFIG_HOME/tmux/tmux.conf"
|
|
||||||
["$DOTFILES/common/vimrc"]="$XDG_CONFIG_HOME/vim/vimrc"
|
|
||||||
["$DOTFILES/common/zellij.config.kdl"]="$HOME/.config/zellij/config.kdl"
|
|
||||||
# ["$DOTFILES/tools/emacs.d"]="$HOME/.emacs.d"
|
|
||||||
["$DOTFILES/tools/doom"]="$HOME/.config/doom"
|
|
||||||
["$DOTFILES/tools/fish"]="$HOME/.config/fish"
|
|
||||||
["$DOTFILES/tools/ipython"]="$XDG_CONFIG_HOME/ipython"
|
|
||||||
["$DOTFILES/tools/nvim"]="$XDG_CONFIG_HOME/nvim"
|
|
||||||
["$DOTFILES/tools/yazi"]="$HOME/.config/yazi"
|
|
||||||
["$DOTFILES/tools/zsh/zshrc"]="$ZDOTDIR/.zshrc"
|
|
||||||
["$DOTFILES/tools/zsh/zshenv"]="$ZDOTDIR/.zshenv"
|
|
||||||
["$DOTFILES/platforms/mac/pwshProfile.ps1"]="$HOME/.config/powershell/Microsoft.PowerShell_profile.ps1"
|
|
||||||
)
|
|
||||||
|
|
||||||
if [ $(uname) = "Darwin" ]; then
|
|
||||||
echo "[INFO] Running on macOS"
|
|
||||||
linkDots+=(
|
|
||||||
["$DOTFILES/platforms/mac/karabiner"]="$HOME/.config/karabiner"
|
|
||||||
["$DOTFILES/platforms/mac/skhdrc"]="$XDG_CONFIG_HOME/skhd/skhdrc"
|
|
||||||
["$DOTFILES/platforms/mac/sketchybarrc"]="$XDG_CONFIG_HOME/sketchybar/sketchybarrc"
|
|
||||||
["$DOTFILES/platforms/mac/yabairc"]="$XDG_CONFIG_HOME/yabai/yabairc"
|
|
||||||
["$DOTFILES/tools/wezterm"]="$HOME/.config/wezterm"
|
|
||||||
["$DOTFILES/tools/zed"]="$HOME/.config/zed"
|
|
||||||
["$DOTFILES/tools/sioyek"]="$HOME/.config/sioyek"
|
|
||||||
)
|
|
||||||
else
|
|
||||||
echo "[INFO] Running on Linux"
|
|
||||||
linkDots+=(
|
|
||||||
["$DOTFILES/common/inputrc"]="$XDG_CONFIG_HOME/readline/inputrc"
|
|
||||||
)
|
|
||||||
# WSL1 : Microsoft
|
|
||||||
# WSL2 : microsoft
|
|
||||||
# if [ "$(uname -r)" = *icrosoft* ]; then
|
|
||||||
# echo "[INFO] Running on WSL"
|
|
||||||
# : # NOP
|
|
||||||
if [ "$GUI_SETUP" -eq 1 ]; then
|
|
||||||
echo "[INFO] Setting up Linux GUI Applications"
|
|
||||||
linkDots+=(
|
|
||||||
["$DOTFILES/platforms/linux/awesome"]="$HOME/.config/awesome"
|
|
||||||
["$DOTFILES/platforms/linux/hypr"]="$HOME/.config/hypr"
|
|
||||||
["$DOTFILES/platforms/linux/waybar"]="$HOME/.config/waybar"
|
|
||||||
["$DOTFILES/platforms/linux/wlogout"]="$HOME/.config/wlogout"
|
|
||||||
["$DOTFILES/platforms/linux/mako-config"]="$HOME/.config/mako/config"
|
|
||||||
["$DOTFILES/tools/wezterm"]="$HOME/.config/wezterm"
|
|
||||||
["$DOTFILES/tools/zed"]="$HOME/.config/zed"
|
|
||||||
["$DOTFILES/tools/sioyek"]="$HOME/.config/sioyek"
|
|
||||||
)
|
|
||||||
for kde in "$DOTFILES/platforms/linux/kde/"*; do
|
|
||||||
linkDots+=["$kde"]="$HOME/.config/kde/$(basename "$kde")"
|
|
||||||
# echo "Linking $kde to $HOME/.config/kde/$(basename $kde)"
|
|
||||||
done
|
|
||||||
if [ "$WHEEL" -eq 1 ]; then
|
|
||||||
echo "[INFO] Setting up system environment variables"
|
|
||||||
echo "[ACTION] Elevation required!"
|
|
||||||
sudo cp "$DOTFILES/platforms/linux/etc/environment" "/etc/environment"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "[INFO] Copying example files"
|
|
||||||
test -d $XDG_CONFIG_HOME/git || mkdir -p $XDG_CONFIG_HOME/git
|
|
||||||
test -f $XDG_CONFIG_HOME/git/config && mv $XDG_CONFIG_HOME/git/config $XDG_CONFIG_HOME/git/config.bak
|
|
||||||
cp $DOTFILES/common/gitconfig.example $XDG_CONFIG_HOME/git/config
|
|
||||||
echo "[INFO] Don't forget to update your gitconfig!"
|
|
||||||
|
|
||||||
test -f ~/.wakatime.cfg && mv ~/.wakatime.cfg ~/.wakatime.cfg.bak
|
|
||||||
cp $DOTFILES/common/wakatime.example.cfg ~/.wakatime.cfg
|
|
||||||
echo "[INFO] Don't forget to update your wakatime config!"
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
WHEEL="${WHEEL:-1}"
|
|
||||||
|
|
||||||
echo "[INFO] ZDOTDIR = $ZDOTDIR"
|
|
||||||
echo "[INFO] DOTFILES = $DOTFILES"
|
|
||||||
echo "[INFO] WHEEL = $WHEEL"
|
|
||||||
|
|
||||||
echo "[ACTION] Press any key to proceed"
|
|
||||||
read -n 1
|
|
||||||
|
|
||||||
if [ "$WHEEL" -eq 1 ]; then
|
|
||||||
echo "[INFO] Setting up system-wide zsh configuration"
|
|
||||||
echo "[ACTION] Elevation required"
|
|
||||||
test -f "/etc/zsh/zshenv" && sudo cp "$DOTFILES/tools/zsh/global.zshenv" "/etc/zsh/zshenv"
|
|
||||||
test -f "/etc/zshenv" && sudo cp "$DOTFILES/tools/zsh/global.zshenv" "/etc/zshenv"
|
|
||||||
if [ "$(uname)" = "Darwin" ]; then
|
|
||||||
sudo cp "$DOTFILES/tools/zsh/global.zshenv" "/etc/zshenv"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "[INFO] Setting up user zsh configuration"
|
|
||||||
# A fallback case to set $ZDOTDIR in ~/.zshenv if the user cannot access global zshenv
|
|
||||||
ln -sf "$DOTFILES/tools/zsh/zshenv" "$HOME/.zshenv"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "[INFO] Installing zsh plugins"
|
|
||||||
test -d "$ZDOTDIR"/plugins/zsh-autosuggestions || git clone --depth 1 https://github.com/zsh-users/zsh-autosuggestions.git "$ZDOTDIR"/plugins/zsh-autosuggestions
|
|
||||||
test -d "$ZDOTDIR"/plugins/zsh-syntax-highlighting || git clone --depth 1 https://github.com/zsh-users/zsh-syntax-highlighting.git "$ZDOTDIR"/plugins/zsh-syntax-highlighting
|
|
||||||
test -d "$ZDOTDIR"/plugins/zsh-history-substring-search || git clone --depth 1 https://github.com/zsh-users/zsh-history-substring-search.git "$ZDOTDIR"/plugins/zsh-history-substring-search
|
|
||||||
test -d "$ZDOTDIR"/plugins/zsh-completions || git clone --depth 1 https://github.com/zsh-users/zsh-completions.git "$ZDOTDIR"/plugins/zsh-completions
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# vim:ft=bash
|
|
||||||
echo "[INFO] Installing AppMan"
|
|
||||||
echo "[ACTION] Type [2] to install AppMan"
|
|
||||||
wget -q https://raw.githubusercontent.com/ivan-hc/AM/main/AM-INSTALLER && chmod a+x ./AM-INSTALLER && ./AM-INSTALLER
|
|
||||||
|
|
||||||
APPMAN_PATH="$HOME/.local/bin/appman"
|
|
||||||
|
|
||||||
if command -v "$APPMAN_PATH" >/dev/null 2>&1; then
|
|
||||||
$APPMAN_PATH install wezterm
|
|
||||||
$APPMAN_PATH install nvim
|
|
||||||
fi
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# vim:ft=bash
|
|
||||||
# chromium-flags.sh
|
|
||||||
# Set Chromium & Electron Flags
|
|
||||||
|
|
||||||
echo "[INFO] Set Chromium & Electron Flags"
|
|
||||||
|
|
||||||
DOTFILES="${DOTFILES:-$HOME/.dotfiles}"
|
|
||||||
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
|
||||||
BROWSER_FLAG=$DOTFILES/platforms/linux/chromium-flags.conf
|
|
||||||
ELECTRON_FLAG=$DOTFILES/platforms/linux/electron-flags.conf
|
|
||||||
|
|
||||||
|
|
||||||
parse_args() {
|
|
||||||
while [[ $# -gt 0 ]]; do
|
|
||||||
case "$1" in
|
|
||||||
# --debug|-d)
|
|
||||||
# export LOG_LEVEL="DEBUG"
|
|
||||||
# log_debug "Debug mode enabled"
|
|
||||||
# shift
|
|
||||||
# ;;
|
|
||||||
--force|-f)
|
|
||||||
FORCE_FILE="true"
|
|
||||||
echo "Force update enabled"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Unknown argument: $1"
|
|
||||||
echo "Usage: chromium-flags.sh [--debug|-d] [--force|-f]"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
parse_args "$@"
|
|
||||||
|
|
||||||
# Browser Flags
|
|
||||||
|
|
||||||
browser_flags_path=(
|
|
||||||
"$XDG_CONFIG_HOME/chromium-flags.conf" # Chromium
|
|
||||||
"$XDG_CONFIG_HOME/chrome-flags.conf" # Google Chrome
|
|
||||||
"$XDG_CONFIG_HOME/thorium-flags.conf" # Thorium
|
|
||||||
"$XDG_CONFIG_HOME/vivaldi-flags.conf" # Vivaldi
|
|
||||||
"$XDG_CONFIG_HOME/vivaldi-stable.conf" # Vivaldi
|
|
||||||
|
|
||||||
)
|
|
||||||
|
|
||||||
electron_flags_path=(
|
|
||||||
"$XDG_CONFIG_HOME/electron-flags.conf" # General
|
|
||||||
"$XDG_CONFIG_HOME/code-flags.conf" # VSCode
|
|
||||||
"$XDG_CONFIG_HOME/qq-electron-flags.conf" # QQ
|
|
||||||
)
|
|
||||||
|
|
||||||
for path in "${browser_flags_path[@]}"; do
|
|
||||||
if [ -f "$path" ] && [ "$FORCE_FILE" != "true" ]; then
|
|
||||||
echo "[INFO] Found Browser Flags: $path"
|
|
||||||
else
|
|
||||||
echo "[INFO] Creating Browser Flags: $path"
|
|
||||||
ln -sf "$BROWSER_FLAG" "$path"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
for path in "${electron_flags_path[@]}"; do
|
|
||||||
if [ -f "$path" ] && [ "$FORCE_FILE" != "true" ]; then
|
|
||||||
echo "[INFO] Found Electron Flags: $path"
|
|
||||||
else
|
|
||||||
echo "[INFO] Creating Electron Flags: $path"
|
|
||||||
ln -sf "$ELECTRON_FLAG" "$path"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# vim:ft=bash
|
|
||||||
# chromium-flags.sh
|
|
||||||
# Set Chromium & Electron Flags
|
|
||||||
|
|
||||||
echo "[INFO] Set Chromium & Electron Flags"
|
|
||||||
|
|
||||||
DOTFILES="${DOTFILES:-$HOME/.dotfiles}"
|
|
||||||
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
|
||||||
BROWSER_FLAG=$DOTFILES/platforms/linux/chromium-flags.hypr.conf
|
|
||||||
ELECTRON_FLAG=$DOTFILES/platforms/linux/electron-flags.hypr.conf
|
|
||||||
|
|
||||||
|
|
||||||
parse_args() {
|
|
||||||
while [[ $# -gt 0 ]]; do
|
|
||||||
case "$1" in
|
|
||||||
# --debug|-d)
|
|
||||||
# export LOG_LEVEL="DEBUG"
|
|
||||||
# log_debug "Debug mode enabled"
|
|
||||||
# shift
|
|
||||||
# ;;
|
|
||||||
--force|-f)
|
|
||||||
FORCE_FILE="true"
|
|
||||||
echo "Force update enabled"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Unknown argument: $1"
|
|
||||||
echo "Usage: chromium-flags.sh [--debug|-d] [--force|-f]"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
parse_args "$@"
|
|
||||||
|
|
||||||
# Browser Flags
|
|
||||||
|
|
||||||
browser_flags_path=(
|
|
||||||
"$XDG_CONFIG_HOME/chromium-flags.conf" # Chromium
|
|
||||||
"$XDG_CONFIG_HOME/chrome-flags.conf" # Google Chrome
|
|
||||||
"$XDG_CONFIG_HOME/thorium-flags.conf" # Thorium
|
|
||||||
"$XDG_CONFIG_HOME/vivaldi-flags.conf" # Vivaldi
|
|
||||||
"$XDG_CONFIG_HOME/vivaldi-stable.conf" # Vivaldi
|
|
||||||
|
|
||||||
)
|
|
||||||
|
|
||||||
electron_flags_path=(
|
|
||||||
"$XDG_CONFIG_HOME/electron-flags.conf" # General
|
|
||||||
"$XDG_CONFIG_HOME/code-flags.conf" # VSCode
|
|
||||||
"$XDG_CONFIG_HOME/qq-electron-flags.conf" # QQ
|
|
||||||
)
|
|
||||||
|
|
||||||
for path in "${browser_flags_path[@]}"; do
|
|
||||||
if [ -f "$path" ] && [ "$FORCE_FILE" != "true" ]; then
|
|
||||||
echo "[INFO] Found Browser Flags: $path"
|
|
||||||
else
|
|
||||||
echo "[INFO] Creating Browser Flags: $path"
|
|
||||||
ln -sf "$BROWSER_FLAG" "$path"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
for path in "${electron_flags_path[@]}"; do
|
|
||||||
if [ -f "$path" ] && [ "$FORCE_FILE" != "true" ]; then
|
|
||||||
echo "[INFO] Found Electron Flags: $path"
|
|
||||||
else
|
|
||||||
echo "[INFO] Creating Electron Flags: $path"
|
|
||||||
ln -sf "$ELECTRON_FLAG" "$path"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
#!/usr/bin/env false
|
|
||||||
# TODO: This script is not ready for use yet
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Append Electron argument (for wayland) to *.desktop files
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import configparser
|
|
||||||
import os
|
|
||||||
|
|
||||||
APPEND_ARG_FILE = "~/.dotfiles/platforms/linux/electron-flags.conf"
|
|
||||||
|
|
||||||
|
|
||||||
with open(os.path.expanduser(APPEND_ARG_FILE)) as f:
|
|
||||||
APPEND_ARGS = list(map(str.strip, f.readlines()))
|
|
||||||
|
|
||||||
# for file in desktop_files:
|
|
||||||
# config = configparser.ConfigParser()
|
|
||||||
# config.read(file)
|
|
||||||
|
|
||||||
|
|
||||||
def append_arg(file):
|
|
||||||
config = configparser.ConfigParser()
|
|
||||||
config.read(file)
|
|
||||||
try:
|
|
||||||
exec_line = config["Desktop Entry"].get("Exec")
|
|
||||||
except KeyError:
|
|
||||||
print(f"Skipping {file} as it does not have an Exec key")
|
|
||||||
return
|
|
||||||
print(f"Appending {APPEND_ARGS} to {exec_line}")
|
|
||||||
config["Desktop Entry"].update({"Exec": f"{exec_line} {' '.join(APPEND_ARGS)}"})
|
|
||||||
with open(file, "w") as f:
|
|
||||||
config.write(f)
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument("-f", "--file", help="Desktop file to modify")
|
|
||||||
args = parser.parse_args()
|
|
||||||
append_arg(args.file)
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,193 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# vim:ft=bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
echo "Running the setup script"
|
|
||||||
|
|
||||||
# Variables
|
|
||||||
|
|
||||||
export DOTFILES="${DOTFILES:-$HOME/.dotfiles}"
|
|
||||||
|
|
||||||
# If is in the sudo or wheel group, set the WHEEL variable to 1
|
|
||||||
WHEEL=0
|
|
||||||
groups "$(whoami)" | grep -E -q '\b(sudo|wheel)\b' && WHEEL=1
|
|
||||||
|
|
||||||
if [ "$WHEEL" -eq 1 ]; then
|
|
||||||
echo "[INFO] Running as sudo or wheel group"
|
|
||||||
else
|
|
||||||
echo "[INFO] Not running as sudo or wheel group"
|
|
||||||
fi
|
|
||||||
|
|
||||||
export WHEEL
|
|
||||||
|
|
||||||
GUI_SETUP=0
|
|
||||||
|
|
||||||
IS_WSL=0
|
|
||||||
WINDOWS_USER=""
|
|
||||||
PACKAGE_MANAGER=""
|
|
||||||
|
|
||||||
# WSL detection
|
|
||||||
# NOTE: This is NOT a POSIX-compliant way, for POSIX-compliant way, use case/esac
|
|
||||||
if [[ "$(uname -r)" = *icrosoft* ]]; then
|
|
||||||
echo "[INFO] Running on WSL"
|
|
||||||
WINDOWS_USER="$(cmd.exe /c "echo %USERNAME%" | tr -d '\r')"
|
|
||||||
IS_WSL=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$IS_WSL" -eq 1 ]; then
|
|
||||||
if [[ "$(uname -r)" = *Microsoft* ]]; then
|
|
||||||
IS_WSL=1
|
|
||||||
elif [[ "$(uname -r)" = *microsoft* ]]; then
|
|
||||||
IS_WSL=2
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$IS_WSL" -eq 1 ]; then
|
|
||||||
echo "[INFO] Running on WSL1 Skipping GUI setup"
|
|
||||||
else
|
|
||||||
read -p "[ACTION] Do you want to setup Linux GUI? (y/N) " -r choice
|
|
||||||
case "$choice" in
|
|
||||||
y | Y)
|
|
||||||
GUI_SETUP=1
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "[INFO] Skipping GUI setup"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
export GUI_SETUP
|
|
||||||
|
|
||||||
# base-devel
|
|
||||||
|
|
||||||
if [ "$WHEEL" -eq 1 ]; then
|
|
||||||
echo "[INFO] Installing basic build tools"
|
|
||||||
if command -v apt >/dev/null 2>&1; then
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install -y build-essential
|
|
||||||
PACKAGE_MANAGER="apt"
|
|
||||||
elif command -v pacman >/dev/null 2>&1; then
|
|
||||||
sudo pacman -Syu --noconfirm
|
|
||||||
sudo pacman -S --noconfirm base-devel
|
|
||||||
PACKAGE_MANAGER="pacman"
|
|
||||||
else
|
|
||||||
echo "[ERROR] Unsupported package manager"
|
|
||||||
read -p "[ACTION] Do you still want to continue? (y/N) " -r choice
|
|
||||||
case "$choice" in
|
|
||||||
y | Y)
|
|
||||||
:
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "[ERROR] Exiting"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "[INFO] Cloning Dotfiles"
|
|
||||||
|
|
||||||
if [ -d "$DOTFILES" ]; then
|
|
||||||
echo "[INFO] Dotfiles already cloned"
|
|
||||||
elif [ "$IS_WSL" -eq 1 ]; then
|
|
||||||
ln -sf "/mnt/c/Users/$WINDOWS_USER/.dotfiles" "$DOTFILES"
|
|
||||||
elif command -v git >/dev/null 2>&1; then
|
|
||||||
git clone https://github.com/js0ny/dotfiles.git "$DOTFILES" --depth 1
|
|
||||||
else
|
|
||||||
echo "[ERROR] Git is not installed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$WHEEL" -eq 0 ]; then
|
|
||||||
read -p "[ACTION] Do you want to install some AppImages (by AppMan)? (y/N) " -r choice
|
|
||||||
case "$choice" in
|
|
||||||
y | Y)
|
|
||||||
source "$DOTFILES/bootstrap/linux/appman.bash"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "[INFO] Skipping AppMan installation"
|
|
||||||
:
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "[INFO] Setting up symbolic links"
|
|
||||||
|
|
||||||
source "$DOTFILES"/bootstrap/linux/symlinks.bash
|
|
||||||
|
|
||||||
set +x
|
|
||||||
|
|
||||||
if [ "$WHEEL" -eq 1 ]; then
|
|
||||||
source "$DOTFILES"/tools/bash/xdg-compat.sh
|
|
||||||
source "$DOTFILES"/tools/bash/global.bashrc
|
|
||||||
fi
|
|
||||||
source "$DOTFILES"/tools/bash/profile
|
|
||||||
source "$DOTFILES"/tools/bash/bashrc
|
|
||||||
source "$DOTFILES"/tools/bash/bash_aliases
|
|
||||||
|
|
||||||
set -x
|
|
||||||
|
|
||||||
if command -v zsh >/dev/null 2>&1; then
|
|
||||||
|
|
||||||
read -p "[ACTION] Do you want to setup zsh? (Y/n) " -r choice
|
|
||||||
case "$choice" in
|
|
||||||
n | N)
|
|
||||||
:
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
source "$DOTFILES"/bootstrap/components/zsh.sh
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$WHEEL" -eq 0 ]; then
|
|
||||||
echo "Done!"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# TODO: Add this part
|
|
||||||
read -p "[ACTION] Do you want to use other package managers? (y/N) " -r choice
|
|
||||||
case "$choice" in
|
|
||||||
y | Y)
|
|
||||||
:
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
:
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
echo "[INFO] Installing Doom Emacs"
|
|
||||||
|
|
||||||
source "$DOTFILES"/bootstrap/components/emacs.sh
|
|
||||||
|
|
||||||
if [ "$IS_WSL" -eq 1 ]; then
|
|
||||||
ln -sf "/mnt/c/Users/$WINDOWS_USER" "$HOME/winhome"
|
|
||||||
ln -sf "/mnt/c/Users/$WINDOWS_USER/Downloads" "$HOME/Downloads"
|
|
||||||
ln -sf "/mnt/c/Users/$WINDOWS_USER/Documents" "$HOME/Documents"
|
|
||||||
ln -sf "/mnt/c/Users/$WINDOWS_USER/Desktop" "$HOME/Desktop"
|
|
||||||
ln -sf "/mnt/c/Users/$WINDOWS_USER/Pictures" "$HOME/Pictures"
|
|
||||||
ln -sf "/mnt/c/Users/$WINDOWS_USER/Music" "$HOME/Music"
|
|
||||||
ln -sf "/mnt/c/Users/$WINDOWS_USER/Videos" "$HOME/Videos"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$GUI_SETUP" -eq 0 ]; then
|
|
||||||
echo "Done!"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Wayland
|
|
||||||
|
|
||||||
source "$DOTFILES"/bootstrap/linux/chromium-flags.bash
|
|
||||||
|
|
||||||
# Rime
|
|
||||||
|
|
||||||
source "$DOTFILES"/bootstrap/components/rime.sh
|
|
||||||
|
|
||||||
echo "[INFO] Installing Color Scheme (Catppuccin Mocha)"
|
|
||||||
|
|
||||||
# fish $DOTFILES/bootstrap/temp/mocha_port.fish
|
|
||||||
|
|
||||||
source "$DOTFILES"/bootstrap/components/mocha-port.bash
|
|
||||||
|
|
||||||
echo "Done!"
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# vim:ft=bash
|
|
||||||
set -e # Exit immediately if a command exits with a non-zero status
|
|
||||||
|
|
||||||
declare -A linkDots
|
|
||||||
|
|
||||||
source "$DOTFILES/bootstrap/components/symlinks.bash"
|
|
||||||
|
|
||||||
echo "[INFO] DOTFILES = $DOTFILES"
|
|
||||||
|
|
||||||
echo "[ACTION] Press any key to proceed"
|
|
||||||
read -r -n1 -s
|
|
||||||
|
|
||||||
echo "[INFO] Setting up symbolic links"
|
|
||||||
|
|
||||||
for src in "${!linkDots[@]}"; do
|
|
||||||
dest="${linkDots[$src]}"
|
|
||||||
echo "Linking $src to $dest"
|
|
||||||
if [ -d "$src" ]; then
|
|
||||||
test -d "$dest" && mv "$dest" "$dest.bak"
|
|
||||||
ln -sf "$src" "$dest"
|
|
||||||
elif [ -f "$src" ]; then
|
|
||||||
dest_parent=$(dirname "$dest")
|
|
||||||
test -d "$dest_parent" || mkdir -p "$dest_parent"
|
|
||||||
ln -sf "$src" "$dest"
|
|
||||||
else
|
|
||||||
echo "[ERROR] $src does not exist"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
|
|
||||||
|
|
@ -1,150 +0,0 @@
|
||||||
tap "daipeihust/tap"
|
|
||||||
tap "felixkratz/formulae"
|
|
||||||
tap "homebrew/bundle"
|
|
||||||
tap "homebrew/services"
|
|
||||||
tap "koekeishiya/formulae"
|
|
||||||
tap "nikitabobko/tap"
|
|
||||||
tap "railwaycat/emacsmacport"
|
|
||||||
brew "age"
|
|
||||||
brew "aichat"
|
|
||||||
brew "bat"
|
|
||||||
brew "bottom"
|
|
||||||
brew "broot"
|
|
||||||
brew "btop"
|
|
||||||
brew "cmake"
|
|
||||||
brew "composer"
|
|
||||||
brew "coreutils"
|
|
||||||
brew "curlie"
|
|
||||||
brew "dark-mode"
|
|
||||||
brew "dos2unix"
|
|
||||||
brew "duf"
|
|
||||||
brew "dust"
|
|
||||||
brew "duti"
|
|
||||||
brew "fastfetch"
|
|
||||||
brew "fd"
|
|
||||||
brew "ffmpeg"
|
|
||||||
brew "fish"
|
|
||||||
brew "fzf"
|
|
||||||
brew "gh"
|
|
||||||
brew "ghcup"
|
|
||||||
brew "git-delta"
|
|
||||||
brew "glow"
|
|
||||||
brew "go"
|
|
||||||
brew "hugo"
|
|
||||||
brew "hyperfine"
|
|
||||||
brew "imagemagick"
|
|
||||||
brew "ipython"
|
|
||||||
brew "julia"
|
|
||||||
brew "just"
|
|
||||||
brew "lazygit"
|
|
||||||
brew "less"
|
|
||||||
brew "pkgconf"
|
|
||||||
brew "lua"
|
|
||||||
brew "librime"
|
|
||||||
brew "lsd"
|
|
||||||
brew "luajit"
|
|
||||||
brew "luarocks"
|
|
||||||
brew "macvim", link: false
|
|
||||||
brew "node"
|
|
||||||
brew "markdownlint-cli"
|
|
||||||
brew "mas"
|
|
||||||
brew "neovim"
|
|
||||||
brew "nowplaying-cli"
|
|
||||||
brew "nushell"
|
|
||||||
brew "openjdk@21"
|
|
||||||
brew "pandoc"
|
|
||||||
brew "pipx"
|
|
||||||
brew "pnpm"
|
|
||||||
brew "procs"
|
|
||||||
brew "ripgrep"
|
|
||||||
brew "ripgrep-all"
|
|
||||||
brew "rlwrap"
|
|
||||||
brew "rust"
|
|
||||||
brew "rustup"
|
|
||||||
brew "screenfetch"
|
|
||||||
brew "sd"
|
|
||||||
brew "sevenzip"
|
|
||||||
brew "speedtest-cli"
|
|
||||||
brew "starship"
|
|
||||||
brew "switchaudio-osx"
|
|
||||||
brew "tldr"
|
|
||||||
brew "tmux"
|
|
||||||
brew "tree"
|
|
||||||
brew "uv"
|
|
||||||
brew "vim"
|
|
||||||
brew "wget"
|
|
||||||
brew "wget2"
|
|
||||||
brew "yarn"
|
|
||||||
brew "yazi"
|
|
||||||
brew "zellij"
|
|
||||||
brew "zoxide"
|
|
||||||
brew "daipeihust/tap/im-select"
|
|
||||||
brew "felixkratz/formulae/borders"
|
|
||||||
brew "felixkratz/formulae/sketchybar"
|
|
||||||
brew "koekeishiya/formulae/skhd"
|
|
||||||
brew "koekeishiya/formulae/yabai"
|
|
||||||
brew "railwaycat/emacsmacport/emacs-mac"
|
|
||||||
cask "activitywatch"
|
|
||||||
cask "alacritty"
|
|
||||||
cask "alex313031-thorium"
|
|
||||||
cask "alt-tab"
|
|
||||||
cask "apparency"
|
|
||||||
cask "appcleaner"
|
|
||||||
cask "arc"
|
|
||||||
cask "betterdisplay"
|
|
||||||
cask "chatgpt"
|
|
||||||
cask "discord"
|
|
||||||
cask "dotnet-sdk"
|
|
||||||
cask "font-caskaydia-cove-nerd-font"
|
|
||||||
cask "font-iosevka-nerd-font"
|
|
||||||
cask "font-jetbrains-mono-nerd-font"
|
|
||||||
cask "font-lxgw-wenkai"
|
|
||||||
cask "font-sf-mono"
|
|
||||||
cask "font-sf-pro"
|
|
||||||
cask "google-drive"
|
|
||||||
cask "iina"
|
|
||||||
cask "iterm2"
|
|
||||||
cask "jordanbaird-ice"
|
|
||||||
cask "karabiner-elements"
|
|
||||||
cask "keka"
|
|
||||||
cask "keyguard"
|
|
||||||
cask "kitty"
|
|
||||||
cask "localsend"
|
|
||||||
cask "ltspice"
|
|
||||||
cask "macfuse"
|
|
||||||
cask "neovide"
|
|
||||||
cask "obsidian"
|
|
||||||
cask "onedrive"
|
|
||||||
cask "orbstack"
|
|
||||||
cask "powershell"
|
|
||||||
cask "protonvpn"
|
|
||||||
cask "qlcolorcode"
|
|
||||||
cask "qlimagesize"
|
|
||||||
cask "qlmarkdown"
|
|
||||||
cask "qlstephen"
|
|
||||||
cask "qlvideo"
|
|
||||||
cask "qspace-pro"
|
|
||||||
cask "quicklook-json"
|
|
||||||
cask "quicklookase"
|
|
||||||
cask "r"
|
|
||||||
cask "raycast"
|
|
||||||
cask "rider"
|
|
||||||
cask "rstudio"
|
|
||||||
cask "rustdesk"
|
|
||||||
cask "scroll-reverser"
|
|
||||||
cask "sf-symbols"
|
|
||||||
cask "sioyek"
|
|
||||||
cask "skim"
|
|
||||||
cask "squirrel"
|
|
||||||
cask "steam"
|
|
||||||
cask "suspicious-package"
|
|
||||||
cask "telegram-desktop"
|
|
||||||
cask "typora"
|
|
||||||
cask "visual-studio-code"
|
|
||||||
cask "vivaldi"
|
|
||||||
cask "warp"
|
|
||||||
cask "wezterm"
|
|
||||||
cask "zen-browser"
|
|
||||||
mas "QQ", id: 451108668
|
|
||||||
mas "SnippetsLab", id: 1006087419
|
|
||||||
mas "微信", id: 836500024
|
|
||||||
|
|
@ -1,74 +0,0 @@
|
||||||
#!/bin/zsh
|
|
||||||
# duti.zsh
|
|
||||||
# Set default apps (duti)
|
|
||||||
# The id of the app can be found by running
|
|
||||||
# `osascript -e 'id of app "AppName"'`
|
|
||||||
brew install --formula duti
|
|
||||||
echo "[INFO] Setting Default Apps"
|
|
||||||
|
|
||||||
# Define an associative array with file extensions and corresponding app IDs
|
|
||||||
typeset -A app_defaults
|
|
||||||
app_defaults=(
|
|
||||||
# Markdown -> Typora
|
|
||||||
.md abnerworks.Typora
|
|
||||||
.markdown abnerworks.Typora
|
|
||||||
# PDF -> Sioyek
|
|
||||||
.pdf info.sioyek.sioyek
|
|
||||||
# Raw Text -> Neovide
|
|
||||||
.txt com.neovide.neovide
|
|
||||||
# Archive -> Keka
|
|
||||||
.zip com.aone.keka
|
|
||||||
.rar com.aone.keka
|
|
||||||
.7z com.aone.keka
|
|
||||||
.tar com.aone.keka
|
|
||||||
# Source Code Light -> Neovim
|
|
||||||
.gitignore com.neovide.neovide
|
|
||||||
.vimrc com.neovide.neovide
|
|
||||||
.vim com.neovide.neovide
|
|
||||||
.lua com.neovide.neovide
|
|
||||||
.py com.neovide.neovide
|
|
||||||
.jl com.neovide.neovide
|
|
||||||
.sh com.neovide.neovide
|
|
||||||
.c com.neovide.neovide
|
|
||||||
# Source Code DOTNET -> VSCode
|
|
||||||
.cs com.microsoft.VSCode
|
|
||||||
.fs com.microsoft.VSCode
|
|
||||||
.fsx com.microsoft.VSCode
|
|
||||||
.csx com.microsoft.VSCode
|
|
||||||
.ps1 com.microsoft.VSCode
|
|
||||||
# Source Code Web -> VSCode
|
|
||||||
.js com.microsoft.VSCode
|
|
||||||
.ts com.microsoft.VSCode
|
|
||||||
.jsx com.microsoft.VSCode
|
|
||||||
.tsx com.microsoft.VSCode
|
|
||||||
.css com.microsoft.VSCode
|
|
||||||
.scss com.microsoft.VSCode
|
|
||||||
.sass com.microsoft.VSCode
|
|
||||||
.vue com.microsoft.VSCode
|
|
||||||
# Source Code Config -> Neovim
|
|
||||||
.json com.neovide.neovide
|
|
||||||
.yaml com.neovide.neovide
|
|
||||||
.yml com.neovide.neovide
|
|
||||||
.toml com.neovide.neovide
|
|
||||||
.ini com.neovide.neovide
|
|
||||||
.cfg com.neovide.neovide
|
|
||||||
.conf com.neovide.neovide
|
|
||||||
.kdl com.neovide.neovide
|
|
||||||
.xml com.neovide.neovide
|
|
||||||
# Source Code Jupyter -> VSCode
|
|
||||||
.ipynb com.microsoft.VSCode
|
|
||||||
# Source Code DotNet Project -> Rider
|
|
||||||
.sln com.jetbrains.rider
|
|
||||||
.csproj com.jetbrains.rider
|
|
||||||
.fsproj com.jetbrains.rider
|
|
||||||
# Video -> IINA
|
|
||||||
.mp4 com.colliderli.iina
|
|
||||||
.mkv com.colliderli.iina
|
|
||||||
)
|
|
||||||
|
|
||||||
# Loop through the array and set the default apps
|
|
||||||
for ext app_id in ${(kv)app_defaults}; do
|
|
||||||
duti -s $app_id $ext all
|
|
||||||
done
|
|
||||||
|
|
||||||
unset app_defaults
|
|
||||||
|
|
@ -1,106 +0,0 @@
|
||||||
#! /bin/zsh
|
|
||||||
|
|
||||||
echo "Running the setup script"
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
|
|
||||||
# VARIABLES
|
|
||||||
|
|
||||||
export DOTFILES="${DOTFILES:-$HOME/.dotfiles}"
|
|
||||||
|
|
||||||
# In macOS, consider the user as sudoer by default
|
|
||||||
export WHEEL=1
|
|
||||||
export GUI_SETUP=1
|
|
||||||
|
|
||||||
# Xcode Command Line Tools
|
|
||||||
echo "[INFO] Installing Xcode Command Line Tools"
|
|
||||||
echo "[ACTION] Request Human Takeover"
|
|
||||||
|
|
||||||
xcode-select --install
|
|
||||||
|
|
||||||
# Press any key to continue (if Xcode Command Line Tools are installed)
|
|
||||||
echo "[ACTION] Press any key to continue when xcode CLI tools are installed"
|
|
||||||
read -n 1
|
|
||||||
|
|
||||||
# System Preferences
|
|
||||||
# Installation Sources
|
|
||||||
echo "[INFO] Setting Installation Sources"
|
|
||||||
echo "[ACTION] Request Human Takeover"
|
|
||||||
echo "In macOS Sequoia, setup manually (System preferences -> Security & Privacy -> General -> Allow apps downloaded from: Anywhere)"
|
|
||||||
# sudo spctl --master-disable
|
|
||||||
# In Mac OS Sequoia, the command above is not working
|
|
||||||
# Should be set up manually (System Preferences -> Security & Privacy -> General -> Allow apps downloaded from: Anywhere)
|
|
||||||
|
|
||||||
echo "[INFO] Installing Homebrew"
|
|
||||||
echo "[ACTION] Request Human Input"
|
|
||||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
||||||
|
|
||||||
echo "[ACTION] Press any key to continue when xcode CLI tools are installed"
|
|
||||||
read -n 1
|
|
||||||
|
|
||||||
echo "[INFO] Cloning Dotfiles"
|
|
||||||
|
|
||||||
git clone https://github.com/js0ny/dotfiles.git $DOTFILES
|
|
||||||
|
|
||||||
echo "[INFO] Setting up system properties"
|
|
||||||
|
|
||||||
source $DOTFILES/bootstrap/macOS/plist.zsh
|
|
||||||
|
|
||||||
read -p "[ACTION] Do you want to use sudo with touch ID? (Y/n) " -r choice
|
|
||||||
case "$choice" in
|
|
||||||
n | N)
|
|
||||||
:
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# Use `sudo cp` to prevent losing sudo access
|
|
||||||
sudo cp /etc/pam.d/sudo /etc/pam.d/sudo.bak
|
|
||||||
sudo cp $DOTFILES/platforms/mac/etc/pam.d/sudo /etc/pam.d/sudo
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
echo "[INFO] Installing Homebrew Packages"
|
|
||||||
|
|
||||||
# Load Brewfile
|
|
||||||
eval "$(/opt/homebrew/bin/brew shellenv)"
|
|
||||||
brew bundle --file=$DOTFILES/bootstrap/macOS/Brewfile
|
|
||||||
|
|
||||||
# Setting up emacs
|
|
||||||
ln -s /usr/local/opt/emacs-mac/Emacs.app /Applications/Emacs.app
|
|
||||||
|
|
||||||
# Setting Default Apps
|
|
||||||
|
|
||||||
source $DOTFILES/bootstrap/macOS/duti.zsh
|
|
||||||
|
|
||||||
# Setting up Dotfiles
|
|
||||||
|
|
||||||
source $DOTFILES/bootstrap/macOS/symlinks.zsh
|
|
||||||
source $DOTFILES/bootstrap/components/zsh.sh
|
|
||||||
|
|
||||||
source $DOTFILES/tools/zsh/global.zshenv
|
|
||||||
source $DOTFILES/tools/zsh/zshenv
|
|
||||||
source $DOTFILES/tools/zsh/zshrc
|
|
||||||
|
|
||||||
# Rime
|
|
||||||
|
|
||||||
source $DOTFILES/bootstrap/components/rime.sh
|
|
||||||
|
|
||||||
echo "[INFO] Installing Doom Emacs"
|
|
||||||
|
|
||||||
source $DOTFILES/bootstrap/components/emacs.sh
|
|
||||||
|
|
||||||
|
|
||||||
echo "[INFO] Installing Color Scheme (Catppuccin Mocha)"
|
|
||||||
|
|
||||||
bash $DOTFILES/bootstrap/components/mocha-port.bash
|
|
||||||
|
|
||||||
# Misc
|
|
||||||
|
|
||||||
dotnet tool install --global dotnet-repl
|
|
||||||
|
|
||||||
pnpm install -g typescript
|
|
||||||
pnpm install -g tsx
|
|
||||||
|
|
||||||
echo "Done! For additional setup, boot to recovery mode and run the following command:"
|
|
||||||
echo "csrutil enable --without fs --without debug --without nvram"
|
|
||||||
echo "Then, reboot the system"
|
|
||||||
echo "Run the post-install script to finish the setup"
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
## Finder
|
|
||||||
echo "[INFO] Setting Finder Preferences"
|
|
||||||
defaults write com.apple.finder QuitMenuItem -bool true # Quit with CMD+Q
|
|
||||||
defaults write com.apple.finder ShowPathbar -bool true # Show Path Bar
|
|
||||||
defaults write com.apple.finder ShowStatusBar -bool true # Show Status Bar
|
|
||||||
defaults write NSGlobalDomain AppleShowAllExtensions -bool true # Show All File Extensions
|
|
||||||
defaults write com.apple.finder AppleShowAllFiles -bool true # Show Hidden Files
|
|
||||||
defaults write com.apple.finder _FXSortFoldersFirst -bool true
|
|
||||||
defaults write com.apple.finder FinderSpawnTab -bool true
|
|
||||||
# Don't show External Hard Drives on Desktop
|
|
||||||
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool false
|
|
||||||
defaults write com.apple.finder ShowHardDrivesOnDesktop -bool false
|
|
||||||
defaults write com.apple.finder ShowMountedServersOnDesktop -bool false
|
|
||||||
defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool false
|
|
||||||
# No DS_Store on Network
|
|
||||||
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
|
|
||||||
# Keyboard
|
|
||||||
# Disable Accent Menu
|
|
||||||
defaults write NSGlobalDomain ApplePressAndHoldEnabled -boolean false
|
|
||||||
killall Finder
|
|
||||||
killall Dock
|
|
||||||
## Dock
|
|
||||||
echo "[INFO] Setting Dock Preferences"
|
|
||||||
defaults write com.apple.dock persistent-apps -array
|
|
||||||
defaults write com.apple.dock persistent-others -array
|
|
||||||
defaults write com.apple.dock autohide -bool true # Autohide Dock
|
|
||||||
defaults write com.apple.dock autohide-time-modifier -float 0.5
|
|
||||||
defaults write com.apple.dock autohide-delay -float 0 # Immediately Autohide Dock
|
|
||||||
defaults write com.apple.dock show-recents -bool false # Hide Recent Applications
|
|
||||||
killall Dock
|
|
||||||
## Trackpad
|
|
||||||
echo "[INFO] Setting Trackpad Preferences"
|
|
||||||
defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool true
|
|
||||||
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool true
|
|
||||||
defaults write com.apple.AppleMultitouchTrackpad Clicking -bool true
|
|
||||||
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
|
|
||||||
defaults write -g NSWindowShouldDragOnGesture -bool true
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
set -e # Exit immediately if a command exits with a non-zero status
|
|
||||||
|
|
||||||
# 声明为关联数组
|
|
||||||
typeset -A linkDots
|
|
||||||
|
|
||||||
# 从通用配置文件加载
|
|
||||||
source "$DOTFILES/bootstrap/components/symlinks.bash"
|
|
||||||
|
|
||||||
echo "[INFO] DOTFILES = $DOTFILES"
|
|
||||||
|
|
||||||
echo "[ACTION] Press any key to proceed"
|
|
||||||
read -r -n1
|
|
||||||
|
|
||||||
echo "[INFO] Setting up symbolic links"
|
|
||||||
# 使用 zsh 的关联数组语法
|
|
||||||
for src in ${(k)linkDots}; do
|
|
||||||
dest="${linkDots[$src]}"
|
|
||||||
echo "Linking $src to $dest"
|
|
||||||
if [ -d "$src" ]; then
|
|
||||||
test -d $dest && mv $dest $dest.bak
|
|
||||||
ln -sf $src $dest
|
|
||||||
elif [ -f "$src" ]; then
|
|
||||||
dest_parent=$(dirname $dest)
|
|
||||||
test -d $dest_parent || mkdir -p $dest_parent
|
|
||||||
ln -sf $src $dest
|
|
||||||
else
|
|
||||||
echo "[ERROR] $src does not exist"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
@ -1,223 +0,0 @@
|
||||||
#Requires -RunAsAdministrator
|
|
||||||
# TODO: This file is under development
|
|
||||||
exit 1
|
|
||||||
|
|
||||||
$DOTFILES = if ($Env:DOTFILES) { $Env:DOTFILES } else { Join-Path "$Env:USERPROFILE" "dotfiles" }
|
|
||||||
|
|
||||||
|
|
||||||
New-Item -ItemType Directory -Path (Join-Path $Env:UserProfile "Temp") -Force
|
|
||||||
|
|
||||||
winget install -e --id Git.Git
|
|
||||||
|
|
||||||
if (Get-Command git -ErrorAction SilentlyContinue) {
|
|
||||||
git clone https://github.com/js0ny/dotfiles.git "$DOTFILES" --depth 1
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Write-Output "[ERROR] Git is not installed"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Install scoop
|
|
||||||
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
|
||||||
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
|
|
||||||
|
|
||||||
# Inline `sudo`
|
|
||||||
sudo sudo config --enable normal
|
|
||||||
|
|
||||||
$BOOTSTRAP = Join-Path $DOTFILES "bootstrap" "win"
|
|
||||||
|
|
||||||
. (Join-Path $BOOTSTRAP "Environment.ps1")
|
|
||||||
. (Join-Path $BOOTSTRAP "Registry.ps1")
|
|
||||||
. (Join-Path $BOOTSTRAP "Symlinks.ps1")
|
|
||||||
|
|
||||||
scoop import (Join-Path $BOOTSTRAP "Scoopfile.json")
|
|
||||||
|
|
||||||
# Rime
|
|
||||||
|
|
||||||
$RIMEDIR = Join-Path $Env:AppData "Rime"
|
|
||||||
git clone --depth 1 https://github.com/js0ny/rime_wanxiang_pro.git $RIMEDIR
|
|
||||||
|
|
||||||
Set-Location $RIMEDIR
|
|
||||||
just init
|
|
||||||
just clone_plum
|
|
||||||
|
|
||||||
# The section below not done yet
|
|
||||||
exit 1
|
|
||||||
|
|
||||||
#!C:\Program Files\WindowsApps\Microsoft.PowerShell_7.4.6.0_x64__8wekyb3d8bbwe\pwsh.EXE
|
|
||||||
# Run with PowerShell 7
|
|
||||||
winget install -e --id Git.Git
|
|
||||||
git clone https://github.com/js0ny/dotfiles.git ~\.dotfiles
|
|
||||||
Set-Location -Path ~\.dotfiles
|
|
||||||
Remove-Item -Force $PROFILE
|
|
||||||
$DOTFILES = "$HOME\.dotfiles"
|
|
||||||
New-Item -ItemType SymbolicLink -Path $PROFILE -Target "$DOTFILES\win\Microsoft.PowerShell_profile.ps1"
|
|
||||||
. $PROFILE
|
|
||||||
# Install Scoop
|
|
||||||
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
|
||||||
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
|
|
||||||
# Install Chocolatey
|
|
||||||
# Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
|
|
||||||
|
|
||||||
# Set Dotfiles
|
|
||||||
# $DOTFILES\.config
|
|
||||||
$folders = @("conda", "git", "ideavim", "ipython", "markdownlint", "npm", "NuGet", "nvim", "pip", "Vim")
|
|
||||||
foreach ($folder in $folders) {
|
|
||||||
New-Item -ItemType Directory -Path "$Env:XDG_CONFIG_HOME\$folder" -Force
|
|
||||||
}
|
|
||||||
New-Item -ItemType SymbolicLink -Path "$Env:XDG_CONFIG_HOME\conda\.condarc" -Target "$DOTFILES\.config\conda\condarc.yaml" -Force
|
|
||||||
New-Item -ItemType SymbolicLink -Path "$Env:XDG_CONFIG_HOME\git\config" -Target "$DOTFILES\.config\git\.gitconfig" -Force
|
|
||||||
New-Item -ItemType SymbolicLink -Path "~\.haskeline" -Target "$DOTFILES\.haskeline" -Force
|
|
||||||
New-Item -ItemType SymbolicLink -Path "$Env:XDG_CONFIG_HOME\ideavim\.ideavimrc" -Target "$DOTFILES\.config\ideavim\.ideavimrc" -Force
|
|
||||||
New-Item -ItemType SymbolicLink -Path "$Env:XDG_CONFIG_HOME\ipython" -Target "$DOTFILES\.config\ipython" -Force
|
|
||||||
# New-Item -ItemType SymbolicLink -Path "~\.markdownlint.json" -Target "$DOTFILES\.markdownlint.json" -Force
|
|
||||||
New-Item -ItemType SymbolicLink -Path "$Env:XDG_CONFIG_HOME\npm\npmrc" -Target "$DOTFILES\.config\npm\npmrc" -Force
|
|
||||||
New-Item -ItemType SymbolicLink -Path "$Env:AppData\NuGet\NuGet.Config" -Target "$DOTFILES\.config\NuGet\NuGet.Config" -Force
|
|
||||||
New-Item -ItemType SymbolicLink -Path "$Env:XDG_CONFIG_HOME\nvim" -Target "$DOTFILES\.config\nvim" -Force
|
|
||||||
New-Item -ItemType SymbolicLink -Path "$Env:AppData\pip\pip.ini" -Target "$DOTFILES\.config\pip\pip.conf" -Force
|
|
||||||
New-Item -ItemType SymbolicLink -Path "$Env:XDG_CONFIG_HOME\Vim\_vimrc" -Target "$DOTFILES\.config\vim\vimrc" -Force
|
|
||||||
New-Item -ItemType SymbolicLink -Path "~\.wslconfig" -Target "$DOTFILES\win\.wslconfig" -Force
|
|
||||||
New-Item -ItemType SymbolicLink -Path "$Env:AppData\neovide\config.toml" -Target "$DOTFILES\win\neovide.toml" -Force
|
|
||||||
# New-Item -ItemType SymbolicLink -Path "~\.vscode.vimrc" -Target "$DOTFILES\vscode\vscode.vimrc" Use Absolute Path
|
|
||||||
# Hide dotfiles
|
|
||||||
Get-ChildItem -Force -Filter .* -Path $HOME | ForEach-Object { $_.Attributes += "Hidden" }
|
|
||||||
@(
|
|
||||||
Join-Path $HOME '.config'
|
|
||||||
Join-Path $HOME '.dotfiles'
|
|
||||||
) | ForEach-Object {
|
|
||||||
$_.Attributes -band -bnot [System.IO.FileAttributes]::Hidden
|
|
||||||
}
|
|
||||||
Set-Location $HOME\Documents
|
|
||||||
# Match WindowsPowerShell and PowerShell
|
|
||||||
Get-ChildItem -Force -Filter *owerShell | ForEach-Object { $_.Attributes += "Hidden" }
|
|
||||||
|
|
||||||
# Windows Terminal
|
|
||||||
if (Get-Command wt -ErrorAction SilentlyContinue) {
|
|
||||||
Write-Output "Windows Terminal (wt) installed"
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
winget install -e --id Microsoft.WindowsTerminal
|
|
||||||
}
|
|
||||||
|
|
||||||
# Uninstall Windows Apps
|
|
||||||
Get-AppxPackage *solit* | Remove-AppxPackage # 纸牌
|
|
||||||
Get-AppxPackage *sound* | Remove-AppxPackage # 錄音機
|
|
||||||
Get-AppxPackage *camera* | Remove-AppxPackage # 相機
|
|
||||||
Get-AppxPackage *weather* | Remove-AppxPackage # 天氣
|
|
||||||
Get-AppxPackage *Map* | Remove-AppxPackage # 地圖
|
|
||||||
# Get-AppxPackage *clipchamp* | Remove-AppxPackage # 其實這個還行
|
|
||||||
|
|
||||||
# Added Packages
|
|
||||||
scoop bucket add main
|
|
||||||
scoop bucket add nerd-fonts
|
|
||||||
scoop bucket add extras
|
|
||||||
scoop bucket add nonportable
|
|
||||||
|
|
||||||
# CLI Tools
|
|
||||||
# winget install -e --id GnuWin32.Grep # Use Select-String instead
|
|
||||||
scoop install main/make
|
|
||||||
# winget install -e --id GnuWin32.Which # Use Get-Command instead
|
|
||||||
scoop install main/fzf
|
|
||||||
scoop install main/ripgrep
|
|
||||||
scoop install main/wget
|
|
||||||
scoop install main/wget2
|
|
||||||
scoop install main/cmake
|
|
||||||
scoop install main/bat # modern cat
|
|
||||||
scoop install main/zoxide # Directory Jump
|
|
||||||
scoop install main/dos2unix # Convert line endings
|
|
||||||
scoop install main/hyperfine # Benchmark
|
|
||||||
scoop install main/bottom # System Monitor
|
|
||||||
scoop install main/delta # diff
|
|
||||||
scoop install extras/gpg4win
|
|
||||||
|
|
||||||
# File Management
|
|
||||||
scoop install extras/everything
|
|
||||||
scoop install main/7zip
|
|
||||||
scoop install extras/bandizip
|
|
||||||
scoop install main/pandoc
|
|
||||||
scoop install extras/sumatrapdf
|
|
||||||
winget install -e --id Google.GoogleDrive
|
|
||||||
sudo scoop install nonportable/winbtrfs-np
|
|
||||||
|
|
||||||
# System Enhancements
|
|
||||||
scoop install extras/fancontrol
|
|
||||||
scoop install extras/powertoys
|
|
||||||
scoop install extras/msiafterburner
|
|
||||||
winget install -e --id Yuanli.uTools
|
|
||||||
scoop install extras/geekuninstaller
|
|
||||||
scoop install extras/flow-launcher
|
|
||||||
# winget install -e --id AutoHotkey.AutoHotkey
|
|
||||||
scoop install extras/autohotkey
|
|
||||||
scoop install nonportable/mactype-np
|
|
||||||
scoop install extras/diskgenius
|
|
||||||
# winget install -e --id Nilesoft.Shell
|
|
||||||
# scoop install umi-ocr-paddle
|
|
||||||
|
|
||||||
# Editor
|
|
||||||
scoop install main/vim
|
|
||||||
scoop install main/neovim
|
|
||||||
scoop install extras/vscodium
|
|
||||||
scoop install extras/vscode
|
|
||||||
scoop install extras/neovide
|
|
||||||
|
|
||||||
|
|
||||||
# Security
|
|
||||||
scoop bucket add keyguard https://github.com/AChep/keyguard-repo-scoop
|
|
||||||
scoop install keyguard/keyguard
|
|
||||||
|
|
||||||
# PKM
|
|
||||||
scoop install extras/obsidian
|
|
||||||
winget install -e --id 9P7HPMXP73K4 # Siyuan
|
|
||||||
scoop install extras/typora
|
|
||||||
scoop install extras/zotero
|
|
||||||
scoop install extras/anki
|
|
||||||
# winget install -e --id Notion.Notion
|
|
||||||
|
|
||||||
# Browser
|
|
||||||
# Use Microsoft Edge directly
|
|
||||||
# winget install -e --id TheBrowserCompany.Arc
|
|
||||||
# winget install -e --id Mozilla.Firefox.Nightly # Not working
|
|
||||||
|
|
||||||
# Programming Languages
|
|
||||||
winget install -e --id Python.Python.3.13
|
|
||||||
winget install -e --id Anaconda.Miniconda3
|
|
||||||
winget install -e --id OpenJS.NodeJS
|
|
||||||
winget install -e --id Rustlang.Rustup
|
|
||||||
winget install -e --id Microsoft.DotNet.SDK.9
|
|
||||||
|
|
||||||
# Dev
|
|
||||||
scoop install extras/docker
|
|
||||||
scoop install extras/lazygit
|
|
||||||
|
|
||||||
# IDE
|
|
||||||
scoop install extras/rider
|
|
||||||
|
|
||||||
# Gaming
|
|
||||||
winget install -e --id Valve.Steam
|
|
||||||
|
|
||||||
# IME
|
|
||||||
winget install -e --id Rime.Weasel # 小狼毫 Rime
|
|
||||||
|
|
||||||
# Misc
|
|
||||||
winget install -e --id 9N5LW3JBCXKF --source msstore # MSIX Packaging Tool
|
|
||||||
winget install -e --id 9PKTQ5699M62 --source msstore # iCloud
|
|
||||||
winget install -e --id RazerInc.RazerInstaller # Razer Synapse
|
|
||||||
|
|
||||||
# Social
|
|
||||||
winget install -e --id 9N97ZCKPD60Q --source msstore # Unigram (Telegram client)
|
|
||||||
winget install -e --id Tencent.QQ.NT
|
|
||||||
winget install -e --id XPFCKBRNFZQ62G --source msstore # WeChat in Windows Store (MSIX)
|
|
||||||
|
|
||||||
# Others
|
|
||||||
winget install -e --id Appest.TickTick
|
|
||||||
winget install -e --id 9NBLGGH4Z1SP --source msstore # ShareX (screen capture)
|
|
||||||
|
|
||||||
# Fonts
|
|
||||||
scoop install FiraCode-NF
|
|
||||||
scoop install CascadiaCode-NF
|
|
||||||
scoop install LXGWWenKai # 霞鹜文楷
|
|
||||||
scoop install LXGWWenKaiMono # 霞鹜文楷Mono
|
|
||||||
|
|
||||||
# WSL
|
|
||||||
scoop install archwsl
|
|
||||||
wsl --set-version Arch 1
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# shellcheck disable=SC1090 shell=sh
|
|
||||||
# Date: 2025-02-11
|
|
||||||
# Author: js0ny
|
|
||||||
# IMPORTANT: The default `bash` in macOS is outdated, run with zsh or install the latest `bash` via Homebrew
|
|
||||||
# If you are macOS, run `xcode select --install` first
|
|
||||||
|
|
||||||
set -o errexit
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
DOTFILES="${DOTFILES:-$HOME/.dotfiles}"
|
|
||||||
|
|
||||||
mkdir -p ~/.local/.tmp
|
|
||||||
|
|
||||||
export DOTFILES
|
|
||||||
|
|
||||||
case "$(uname)" in
|
|
||||||
Linux)
|
|
||||||
curl https://raw.githubusercontent.com/js0ny/dotfiles/refs/heads/master/bootstrap/linux/main.bash -o ~/.local/.tmp/main.bash
|
|
||||||
source ~/.local/.tmp/main.bash
|
|
||||||
rm -rf ~/.local/.tmp/main.bash
|
|
||||||
;;
|
|
||||||
Darwin)
|
|
||||||
curl https://raw.githubusercontent.com/js0ny/dotfiles/refs/heads/master/bootstrap/macOS/main.zsh -o ~/.local/.tmp/main.zsh
|
|
||||||
zsh ~/.local/.tmp/main.zsh
|
|
||||||
rm -rf ~/.local/.tmp/main.zsh
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
#Requires -RunAsAdministrator
|
|
||||||
|
|
||||||
Set-MpPreference -EnableControlledFolderAccess 1
|
|
||||||
|
|
||||||
$protected = (Get-MpPreference).ControlledFolderAccessProtectedFolders
|
|
||||||
$protected += "$Env:UserProfile\.ssh"
|
|
||||||
$protected += "$Env:UserProfile\.config"
|
|
||||||
$protected += "$Env:UserProfile\Vault"
|
|
||||||
Set-MpPreference -ControlledFolderAccessProtectedFolders $protected
|
|
||||||
|
|
||||||
$apps = (Get-MpPreference).ControlledFolderAccessAllowedApplications
|
|
||||||
$apps += "$Env:Windir\System32\OpenSSH\ssh.exe"
|
|
||||||
$apps += "$Env:ProgramFiles\GPSoftware\Directory Opus\DOpus.exe"
|
|
||||||
$apps += (Get-Command -Name code).Source.Replace("bin\code.cmd", "Code.exe")
|
|
||||||
$apps += (Get-Command -Name pwsh).Source
|
|
||||||
$apps += (Get-Command -Name git).Source
|
|
||||||
Set-MpPreference -ControlledFolderAccessAllowedApplications $apps
|
|
||||||
|
|
||||||
$exclusion = (Get-MpPreference).ExclusionPath
|
|
||||||
$exclusion += "$env:ProgramFiles\JetBrains"
|
|
||||||
$exclusion += "$env:LocalAppData\JetBrains"
|
|
||||||
$exclusion += "D:\Source"
|
|
||||||
Set-MpPreference -ExclusionPath $exclusion
|
|
||||||
|
|
@ -1,93 +0,0 @@
|
||||||
# Set Environment Variables
|
|
||||||
# Use %PATH_EXT% to prevent PATH from being too long
|
|
||||||
[System.Environment]::SetEnvironmentVariable("Path_EXT_0", "D:\bin", "User")
|
|
||||||
[System.Environment]::SetEnvironmentVariable("Path_EXT_0", "C:\Users\jsony\AppData\Local\Cargo\bin", "User")
|
|
||||||
[System.Environment]::SetEnvironmentVariable("Path_EXT_1", "C:\Users\jsony\AppData\Local\Go\bin", "User")
|
|
||||||
[System.Environment]::SetEnvironmentVariable("Path_EXT_2", "C:\Users\jsony\AppData\Local\Cargo\bin", "User")
|
|
||||||
$currentPath = [System.Environment]::GetEnvironmentVariable("Path", "User")
|
|
||||||
if ($currentPath -notlike "*%PATH_EXT%*") {
|
|
||||||
$currentPath += ";%PATH_EXT_0%;%PATH_EXT_1%;%PATH_EXT_2%"
|
|
||||||
}
|
|
||||||
[System.Environment]::SetEnvironmentVariable("Path", $currentPath, "User")
|
|
||||||
[System.Environment]::SetEnvironmentVariable("PATH_EXT_0", "", [System.EnvironmentVariableTarget]::Machine)
|
|
||||||
[System.Environment]::SetEnvironmentVariable("PATH_EXT_1", "", [System.EnvironmentVariableTarget]::Machine)
|
|
||||||
[System.Environment]::SetEnvironmentVariable("PATH_EXT_2", "", [System.EnvironmentVariableTarget]::Machine)
|
|
||||||
$currentPath = [System.Environment]::GetEnvironmentVariable("Path", [System.EnvironmentVariableTarget]::Machine)
|
|
||||||
if ($currentPath -notlike "*%PATH_EXT%*") {
|
|
||||||
$currentPath += ";%PATH_EXT_0%;%PATH_EXT_1%;%PATH_EXT_2%"
|
|
||||||
}
|
|
||||||
[System.Environment]::SetEnvironmentVariable("Path", $currentPath, [System.EnvironmentVariableTarget]::Machine)
|
|
||||||
# Simulate XDG Base Directory Specification
|
|
||||||
$Env:XDG_CONFIG_HOME = "$Env:AppData"
|
|
||||||
$Env:XDG_DATA_HOME = "$Env:LocalAppData"
|
|
||||||
$Env:XDG_CACHE_HOME = "$Env:LocalAppData\Cache"
|
|
||||||
$Env:XDG_STATE_HOME = "$Env:LocalAppData\State"
|
|
||||||
[System.Environment]::SetEnvironmentVariable("XDG_CONFIG_HOME", "$Env:XDG_CONFIG_HOME", "User")
|
|
||||||
[System.Environment]::SetEnvironmentVariable("XDG_DATA_HOME", "$Env:XDG_DATA_HOME", "User")
|
|
||||||
New-Item -ItemType Directory -Path "$Env:LocalAppData\cache" -Force
|
|
||||||
[System.Environment]::SetEnvironmentVariable("XDG_CACHE_HOME", "$Env:XDG_CACHE_HOME", "User")
|
|
||||||
New-Item -ItemType Directory -Path "$Env:LocalAppData\state" -Force
|
|
||||||
[System.Environment]::SetEnvironmentVariable("XDG_STATE_HOME", "$Env:XDG_STATE_HOME", "User")
|
|
||||||
# Add environment variables
|
|
||||||
[System.Environment]::SetEnvironmentVariable("DOTFILES", "$DOTFILES", "User")
|
|
||||||
# Set potential environment variables to prevent softwares put their configs in the wrong place
|
|
||||||
# eg. dotfiles in %UserProfile%
|
|
||||||
# ~\.aws -> %AppData%\aws :: AWS CLI
|
|
||||||
New-Item -ItemType Directory -Path "$Env:AppData\aws" -Force
|
|
||||||
[System.Environment]::SetEnvironmentVariable("AWS_CONFIG_FILE", "$Env:AppData\aws\config", "User")
|
|
||||||
[System.Environment]::SetEnvironmentVariable("AWS_SHARED_CREDENTIALS_FILE", "$Env:AppData\aws\credentials", "User")
|
|
||||||
# ~\.azure -> %LocalAppData%\Azure :: Azure CLIcargo install --list
|
|
||||||
[System.Environment]::SetEnvironmentVariable("AZURE_CONFIG_DIR", "$Env:LocalAppData\Azure", "User")
|
|
||||||
# ~\.cargo -> %LocalAppData%\Cargo :: Rust https://doc.rust-lang.org/cargo/guide/cargo-home.html
|
|
||||||
[System.Environment]::SetEnvironmentVariable("CARGO_HOME", "$Env:LocalAppData\Cargo", "User")
|
|
||||||
# ~\.docker -> %AppData%\dotDocker :: Docker (Docker takes %AppData%\Docker, use dotDocker instead)
|
|
||||||
[System.Environment]::SetEnvironmentVariable("DOCKER_CONFIG", "$Env:AppData\dotDocker", "User")
|
|
||||||
# ~\.dotnet -> %LocalAppData%\dotNET :: .NET Core
|
|
||||||
[System.Environment]::SetEnvironmentVariable("DOTNET_CLI_HOME", "$Env:LocalAppData\dotNET", "User")
|
|
||||||
# ~\.emacs.d -> %AppData%\.emacs.d :: Emacs (This is default)
|
|
||||||
# [System.Environment]::SetEnvironmentVariable("EMACS_HOME", "$Env:AppData\emacs.d", "User")
|
|
||||||
# ~\go -> %LocalAppData%\GO :: golang
|
|
||||||
[System.Environment]::SetEnvironmentVariable("GOPATH", "$Env:LocalAppData\GO", "User")
|
|
||||||
# ~\.ipython -> %AppData%\ipython :: IPython
|
|
||||||
# IPython won't check XDG on Windows https://github.com/ipython/ipython/blob/0615526f80691452f2e282c363bce197c0141561/IPython/utils/path.py#L200
|
|
||||||
[System.Environment]::SetEnvironmentVariable("IPYTHONDIR", "$Env:AppData\ipython", "User")
|
|
||||||
# ~\.julia -> %LocalAppData%\julia :: Julia
|
|
||||||
[System.Environment]::SetEnvironmentVariable("JULIA_DEPOT_PATH", "$Env:LocalAppData\julia", "User")
|
|
||||||
# ~\_lesshst -> %LocalAppData%\state\lesshst :: less
|
|
||||||
[System.Environment]::SetEnvironmentVariable("LESSHISTFILE", "$Env:XDG_STATE_HOME\lesshst", "User")
|
|
||||||
# %AppData%\less\lesskey :: less
|
|
||||||
New-Item -ItemType Directory -Path "$Env:AppData\less" -Force
|
|
||||||
[System.Environment]::SetEnvironmentVariable("LESSKEYIN", "$Env:AppData\less\lesskey", "User")
|
|
||||||
# ~\.matplotlib -> %LocalAppData%\matplotlib :: Matplotlib
|
|
||||||
[System.Environment]::SetEnvironmentVariable("MPLCONFIGDIR", "$Env:LocalAppData\matplotlib", "User")
|
|
||||||
# ~\.npmrc -> %AppData%\npm\npmrc :: npm
|
|
||||||
[System.Environment]::SetEnvironmentVariable("NPM_CONFIG_USERCONFIG", "$Env:AppData\npm\npmrc", "User")
|
|
||||||
# ~\.node_repl_history -> %LocalAppData%\state\node\repl_history :: Node.js
|
|
||||||
New-Item -ItemType Directory -Path "$Env:XDG_STATE_HOME\node" -Force
|
|
||||||
[System.Environment]::SetEnvironmentVariable("NODE_REPL_HISTORY", "$Env:XDG_STATE_HOME\node\repl_history", "User")
|
|
||||||
# ~\.ts_node_repl_history -> %LocalAppData%\state\node\ts_node_repl_history :: Node.js
|
|
||||||
# NOTE: ts-node doesn't support this yet
|
|
||||||
# [System.Environment]::SetEnvironmentVariable("TS_NODE_REPL_HISTORY", "$Env:XDG_STATE_HOME\node\ts_node_repl_history", "User")
|
|
||||||
# ~\.nuget\packages -> %LocalAppData%\cache\NuGet\packages :: NuGet
|
|
||||||
[System.Environment]::SetEnvironmentVariable("NUGET_PACKAGES", "$Env:XDG_CACHE_HOME\NuGet\packages", "User")
|
|
||||||
# ~\.omnisharp -> %AppData%\OmniSharp :: OmniSharp
|
|
||||||
[System.Environment]::SetEnvironmentVariable("OMNISHARPHOME", "$Env:AppData\OmniSharp", "User")
|
|
||||||
# ~\.python_history -> %LocalAppData%\state\python\python_history :: Python
|
|
||||||
# Only works for Python 3.13+ https://docs.python.org/3.13/using/cmdline.html#envvar-PYTHON_HISTORY
|
|
||||||
New-Item -ItemType Directory -Path "$Env:XDG_STATE_HOME\python" -Force
|
|
||||||
[System.Environment]::SetEnvironmentVariable("PYTHON_HISTORY", "$Env:XDG_STATE_HOME\python\python_history", "User")
|
|
||||||
# ~\.rustup -> %LocalAppData%\Rustup :: Rust
|
|
||||||
[System.Environment]::SetEnvironmentVariable("RUSTUP_HOME", "$Env:LocalAppData\Rustup", "User")
|
|
||||||
# ~\.vimrc -> %AppData%\Vim\_vimrc :: Vim
|
|
||||||
New-Item -ItemType Directory -Path "$Env:AppData\Vim" -Force
|
|
||||||
[System.Environment]::SetEnvironmentVariable("VIM", "$Env:AppData\Vim", "User")
|
|
||||||
[System.Environment]::SetEnvironmentVariable("KOMOREBI_CONFIG_HOME", "$Env:AppData\komorebi", "User")
|
|
||||||
# ~\.vuerc -> %AppData%\vue\.vuerc :: Vue CLI
|
|
||||||
# Currently, Vue CLI doesn't support file path configuration:https://github.com/vuejs/vue-cli/blob/dev/packages/%40vue/cli/lib/confifile
|
|
||||||
# [System.Environment]::SetEnvironmentVariable("VUE_CLI_CONFIG_PATH", "$Env:AppData\vue\.vuerc", "User")
|
|
||||||
# ~\.wget-hsts -> %LocalAppData%\cache\wget-hsts :: wget
|
|
||||||
# Use Alias, wget host file path is not configurable
|
|
||||||
# ~\.yarnrc -> %AppData%\yarn\config.yaml :: Yarn v1
|
|
||||||
# Use Alias, yarnrc path is not configurable
|
|
||||||
|
|
||||||
# Reload required here to make sure the environment variables are set
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
|
|
||||||
# Disable StickyKeys
|
|
||||||
REG ADD "HKEY_CURRENT_USER\Control Panel\Accessibility\StickyKeys" /v "Flags" /t REG_SZ /d "506" /f
|
|
||||||
|
|
||||||
# Disable Hyper+Keys to open Office apps
|
|
||||||
REG ADD HKCU\Software\Classes\ms-officeapp\Shell\Open\Command /t REG_SZ /d rundll32
|
|
||||||
|
|
||||||
# Disable DOS 8.3 file name creation
|
|
||||||
sudo fsutil 8dot3name set 1
|
|
||||||
# Delete all known DOS 8.3 file name
|
|
||||||
fsutil 8dot3name strip /s /v C:\
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
#Requires -RunAsAdministrator
|
|
||||||
|
|
||||||
Write-Output "[INFO] Setting up KMonad Tasks"
|
|
||||||
|
|
||||||
# PowerShell Path, use 7 if available
|
|
||||||
if (Get-Command "pwsh" -ErrorAction SilentlyContinue) {
|
|
||||||
$PowerShellPath = (Get-Command "pwsh").Source
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$PowerShellPath = (Get-Command "powershell").Source
|
|
||||||
}
|
|
||||||
|
|
||||||
$DotStartUpPath = "$Env:DOTFILES\platforms\win\start"
|
|
||||||
|
|
||||||
$KMonadRunnerPath = Join-Path $DotStartUpPath "KMonad.ps1"
|
|
||||||
$Action = New-ScheduledTaskAction -Execute $PowerShellPath -Argument "-NoProfile -ExecutionPolicy Bypass -File $KMonadRunnerPath"
|
|
||||||
$Trigger = New-ScheduledTaskTrigger -AtLogOn
|
|
||||||
$Principal = New-ScheduledTaskPrincipal -UserId "$env:USERNAME" -LogonType Interactive -RunLevel Highest
|
|
||||||
$Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -DontStopOnIdleEnd -Hidden
|
|
||||||
|
|
||||||
Register-ScheduledTask -TaskName "Start Kmonad" -Action $Action -Trigger $Trigger -Principal $Principal -Settings $Settings -TaskPath "\Personal"
|
|
||||||
|
|
@ -1,78 +0,0 @@
|
||||||
# $DOTFILES\bootstrap\set_symlink_win.ps1
|
|
||||||
# Date: 2024-12-01
|
|
||||||
# Author: js0ny
|
|
||||||
# Set symlinks for dotfiles on Windows
|
|
||||||
# 在 Windows 上设置 配置文件的符号链接
|
|
||||||
|
|
||||||
# Run this with Administrator privileges
|
|
||||||
|
|
||||||
$DOTFILES = Join-Path $Env:UserProfile ".dotfiles"
|
|
||||||
$BASE_COMMON = Join-Path $DOTFILES "common"
|
|
||||||
$BASE_TOOLS = Join-Path $DOTFILES "tools"
|
|
||||||
$BASE_WIN = Join-Path $DOTFILES "platforms" "win"
|
|
||||||
$STARTUP = [System.Environment]::GetFolderPath("Startup")
|
|
||||||
|
|
||||||
$BAT_CONF = Join-Path $Env:AppData "bat" "config"
|
|
||||||
if ((Get-Command bat).Source -ccontains "scoop") {
|
|
||||||
$BAT_CONF = Join-Path (scoop prefix bat) "config"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$SIOYEKDIR = scoop prefix sioyek
|
|
||||||
|
|
||||||
$SIOYEKCFG = Get-ChildItem "$BASE_TOOLS\sioyek" -Filter "*.config"
|
|
||||||
|
|
||||||
foreach ($cfg in $SIOYEKCFG) {
|
|
||||||
$cfgName = $cfg.Name
|
|
||||||
$cfgPath = Join-Path $SIOYEKDIR $cfgName
|
|
||||||
New-Item -ItemType SymbolicLink -Target $cfg -Path $cfgPath -Force
|
|
||||||
}
|
|
||||||
|
|
||||||
$linkDots = @{
|
|
||||||
"$BASE_WIN\wslconfig" = "$Env:UserProfile\.wslconfig"
|
|
||||||
"$BASE_WIN\glzr" = "$Env:UserProfile\.glzr"
|
|
||||||
"$BASE_WIN\neovide.toml" = "$Env:AppData\neovide\config.toml"
|
|
||||||
"$BASE_WIN\vsvimrc" = "$Env:UserProfile\.vsvimrc"
|
|
||||||
"$BASE_COMMON\bat.config" = "$BAT_CONF"
|
|
||||||
"$BASE_COMMON\condarc.yaml" = "$Env:XDG_CONFIG_HOME\conda\.condarc"
|
|
||||||
"$BASE_COMMON\glow.yaml" = "$Env:AppData\glow\glow.yml"
|
|
||||||
"$BASE_COMMON\haskeline" = "$Env:UserProfile\.haskeline"
|
|
||||||
"$BASE_COMMON\ideavimrc" = "$Env:XDG_CONFIG_HOME\ideavim\ideavimrc"
|
|
||||||
"$BASE_COMMON\lazygit.yaml" = "$Env:AppData\lazygit\config.yml"
|
|
||||||
"$BASE_COMMON\lesskey" = "$Env:LessKeyIn"
|
|
||||||
"$BASE_COMMON\lsd" = "$Env:AppData\lsd\config.yaml"
|
|
||||||
"$BASE_COMMON\npmrc" = "$Env:NPM_CONFIG_USERCONFIG"
|
|
||||||
"$BASE_COMMON\NuGet.Config" = "$Env:AppData\NuGet\NuGet.Config"
|
|
||||||
"$BASE_COMMON\starship.toml" = "$Env:UserProfile\.config\starship.toml"
|
|
||||||
"$BASE_COMMON\pip.conf" = "$Env:AppData\pip\pip.ini"
|
|
||||||
"$BASE_COMMON\vimrc.noxdg.vimrc" = "$Env:UserProfile\_vimrc"
|
|
||||||
"$BASE_COMMON\emacs.d" = "$Env:AppData\.emacs.d"
|
|
||||||
"$BASE_TOOLS\ipython" = "$Env:IPYTHONDIR"
|
|
||||||
"$BASE_TOOLS\nvim" = "$Env:XDG_CONFIG_HOME\nvim"
|
|
||||||
"$BASE_TOOLS\wezterm" = "$Env:XDG_CONFIG_HOME\wezterm"
|
|
||||||
"$BASE_TOOLS\yazi" = "$Env:AppData\yazi\config"
|
|
||||||
"$BASE_TOOLS\zed" = "$Env:AppData\Zed"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
foreach ($src in $linkDots.Keys) {
|
|
||||||
$dest = $linkDots[$src]
|
|
||||||
# Auto create directories (Untested)
|
|
||||||
if (Test-Path -Path $src -PathType Container) {
|
|
||||||
New-Item -ItemType Directory -Path $dest -Force
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$Local:destParent = Split-Path -Path $dest -Parent
|
|
||||||
New-Item -ItemType Directory -Path $destParent -Force
|
|
||||||
}
|
|
||||||
if (Test-Path -Path $dest) {
|
|
||||||
Move-Item $dest "$dest.bak" -Force
|
|
||||||
}
|
|
||||||
New-Item -ItemType SymbolicLink -Target $src -Path $dest -Force
|
|
||||||
}
|
|
||||||
|
|
||||||
New-Item -ItemType SymbolicLink -Target "$BASE_WIN\Microsoft.PowerShell_profile.ps1" -Path "$Env:UserProfile\Documents\PowerShell\Microsoft.PowerShell_profile.ps1" -Force
|
|
||||||
|
|
||||||
Copy-Item (Join-Path $BASE_WIN "ahk" "bin" "Caps.exe") $STARTUP
|
|
||||||
Copy-Item (Join-Path $BASE_COMMON "gitconfig") $Env:UserProfile
|
|
||||||
13
dot_config/doom/dot_custom.el
Normal file
13
dot_config/doom/dot_custom.el
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
;;; -*- lexical-binding: t -*-
|
||||||
|
(custom-set-variables
|
||||||
|
;; custom-set-variables was added by Custom.
|
||||||
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
;; Your init file should contain only one such instance.
|
||||||
|
;; If there is more than one, they won't work right.
|
||||||
|
'(auth-source-save-behavior nil))
|
||||||
|
(custom-set-faces
|
||||||
|
;; custom-set-faces was added by Custom.
|
||||||
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
;; Your init file should contain only one such instance.
|
||||||
|
;; If there is more than one, they won't work right.
|
||||||
|
)
|
||||||
0
dot_config/fish/completions/.keep
Normal file
0
dot_config/fish/completions/.keep
Normal file
0
dot_config/fish/functions/.keep
Normal file
0
dot_config/fish/functions/.keep
Normal file
39
dot_config/fish/private_fish_variables
Normal file
39
dot_config/fish/private_fish_variables
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
# This file contains fish universal variable definitions.
|
||||||
|
# VERSION: 3.0
|
||||||
|
SETUVAR __fish_initialized:3800
|
||||||
|
SETUVAR fish_color_autosuggestion:brblack
|
||||||
|
SETUVAR fish_color_cancel:\x2dr
|
||||||
|
SETUVAR fish_color_command:normal
|
||||||
|
SETUVAR fish_color_comment:red
|
||||||
|
SETUVAR fish_color_cwd:green
|
||||||
|
SETUVAR fish_color_cwd_root:red
|
||||||
|
SETUVAR fish_color_end:green
|
||||||
|
SETUVAR fish_color_error:brred
|
||||||
|
SETUVAR fish_color_escape:brcyan
|
||||||
|
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_host:normal
|
||||||
|
SETUVAR fish_color_host_remote:yellow
|
||||||
|
SETUVAR fish_color_normal:normal
|
||||||
|
SETUVAR fish_color_operator:brcyan
|
||||||
|
SETUVAR fish_color_param:cyan
|
||||||
|
SETUVAR fish_color_quote:yellow
|
||||||
|
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack\x1e\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_selection:white\x1e\x2d\x2dbackground\x3dbrblack\x1e\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_status:red
|
||||||
|
SETUVAR fish_color_user:brgreen
|
||||||
|
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||||
|
SETUVAR fish_pager_color_background:\x1d
|
||||||
|
SETUVAR fish_pager_color_completion:normal
|
||||||
|
SETUVAR fish_pager_color_description:yellow\x1e\x2di
|
||||||
|
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||||
|
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan\x1e\x2d\x2dbold
|
||||||
|
SETUVAR fish_pager_color_secondary_background:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_completion:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_description:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_prefix:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_background:\x2dr
|
||||||
|
SETUVAR fish_pager_color_selected_completion:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_description:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_prefix:\x1d
|
||||||
|
SETUVAR fish_user_paths:/home/js0ny/\x2elocal/bin\x1e/home/js0ny/\x2elocal/build\x1e/usr/bin\x1e/usr/local/bin
|
||||||
53
dot_config/nvim/lazy-lock.json
Normal file
53
dot_config/nvim/lazy-lock.json
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
{
|
||||||
|
"LuaSnip": { "branch": "master", "commit": "de10d8414235b0a8cabfeba60d07c24304e71f5c" },
|
||||||
|
"auto-session": { "branch": "main", "commit": "7d37d1cae7a39ff57da9a452d21b5dbfc5636c18" },
|
||||||
|
"avante.nvim": { "branch": "main", "commit": "2791db9984d01674c3a507cc1a522ad7234f400a" },
|
||||||
|
"blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" },
|
||||||
|
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
||||||
|
"bullets.vim": { "branch": "master", "commit": "1c13e510e11d08b0259e8e627f128359c5521962" },
|
||||||
|
"catppuccin": { "branch": "main", "commit": "30fa4d122d9b22ad8b2e0ab1b533c8c26c4dde86" },
|
||||||
|
"conform.nvim": { "branch": "master", "commit": "a0ab60ed666c56b37fd7ed1847d2ac52f2482ce0" },
|
||||||
|
"copilot.lua": { "branch": "master", "commit": "f0c0d981de2737abc50bd7b5bb034ae440826827" },
|
||||||
|
"dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" },
|
||||||
|
"flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" },
|
||||||
|
"fzf-lua": { "branch": "main", "commit": "7d66cd81cf485fb17c22d82021cc166ce332a14c" },
|
||||||
|
"gitsigns.nvim": { "branch": "main", "commit": "6e3c66548035e50db7bd8e360a29aec6620c3641" },
|
||||||
|
"grug-far.nvim": { "branch": "main", "commit": "385d1949dc21d0c39e7a74b4f4a25da18817bc86" },
|
||||||
|
"image.nvim": { "branch": "master", "commit": "5cbb891eb8dde53f350dde69e23106d4e85d898b" },
|
||||||
|
"img-clip.nvim": { "branch": "main", "commit": "d8b6b030672f9f551a0e3526347699985a779d93" },
|
||||||
|
"kanagawa.nvim": { "branch": "master", "commit": "debe91547d7fb1eef34ce26a5106f277fbfdd109" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||||
|
"lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
|
||||||
|
"leetcode.nvim": { "branch": "master", "commit": "422b6beb4a64eca0524fbff94edd9550c156afc5" },
|
||||||
|
"lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" },
|
||||||
|
"luasnip-latex-snippets.nvim": { "branch": "main", "commit": "d3dd5223ef37a99c4adf3b5c7844fc760751b397" },
|
||||||
|
"multiple-cursors.nvim": { "branch": "main", "commit": "1ac15d047a4b265cc2389957bcc56ee561b29e02" },
|
||||||
|
"neo-tree.nvim": { "branch": "v3.x", "commit": "cea666ef965884414b1b71f6b39a537f9238bdb2" },
|
||||||
|
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
||||||
|
"nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" },
|
||||||
|
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
|
||||||
|
"nvim-dap": { "branch": "master", "commit": "968f89f8aac11b6bdbfc942c71d3436658c1435f" },
|
||||||
|
"nvim-dap-python": { "branch": "master", "commit": "bd771691da93846b0fc7e095512146a150218bfd" },
|
||||||
|
"nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
|
||||||
|
"nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
|
||||||
|
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
||||||
|
"nvim-surround": { "branch": "main", "commit": "d56752df477ebd808cb82cea2fc68cf7455abb21" },
|
||||||
|
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||||
|
"nvim-treesitter-context": { "branch": "master", "commit": "dca8726fea2c14e1ce6adbaa76a04816fbfaff61" },
|
||||||
|
"nvim-web-devicons": { "branch": "master", "commit": "c2599a81ecabaae07c49ff9b45dcd032a8d90f1a" },
|
||||||
|
"obsidian.nvim": { "branch": "main", "commit": "705cc9b4f66eca1e54040ac819102e80a32896d3" },
|
||||||
|
"org-bullets.nvim": { "branch": "main", "commit": "21437cfa99c70f2c18977bffd423f912a7b832ea" },
|
||||||
|
"orgmode": { "branch": "master", "commit": "b924cbb7e9c5f2c34f84d92e49dc76e01f32cad9" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||||
|
"render-markdown.nvim": { "branch": "main", "commit": "8074a9cc9a6f737320b7a0d76b2c4c3485155688" },
|
||||||
|
"rose-pine": { "branch": "main", "commit": "72befaffeac38db7bdd49e0549eaa2c4806dd878" },
|
||||||
|
"snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" },
|
||||||
|
"toggleterm.nvim": { "branch": "main", "commit": "9a88eae817ef395952e08650b3283726786fb5fb" },
|
||||||
|
"trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
|
||||||
|
"typst-preview.nvim": { "branch": "master", "commit": "dea4525d5420b7c32eebda7de15a6beb9d6574fa" },
|
||||||
|
"vim-beancount": { "branch": "master", "commit": "589a4f06f3b2fd7cd2356c2ef1dafadf6b7a97cf" },
|
||||||
|
"vim-just": { "branch": "main", "commit": "04b0f122f14c83f55a0f8bb2a087754dc98cdccc" },
|
||||||
|
"vim-wakatime": { "branch": "master", "commit": "3403495670f0ee08887401a28f8430dc4ac67429" },
|
||||||
|
"vimtex": { "branch": "master", "commit": "dc90feacb86f7b85b0b791d8073eefc769a23725" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue