Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .config/efm-langserver/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ languages:
yaml:
lint-command: 'yamllint -f parsable -'
lint-stdin: true
lint-format:
lint-formats:
- '%f:%l:%c: %m'
5 changes: 2 additions & 3 deletions .config/nvim/coc-settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
"coc.preferences.formatOnSave": true,
"coc.preferences.useQuickfixForLocations": true,
"explorer.icon.enableNerdfont": true,
"rust-analyzer.updates.channel": "nightly",
"rust-analyzer.updates.channel": "stable",
"tsserver.log": "verbose",
"tsserver.trace.server": "verbose",
"yaml.format.enable": true,
Expand All @@ -72,6 +72,5 @@
"python.venvPath": ".",
"python.formatting.provider": "ruff",
"python.linting.ruffEnabled": true,
"biome.requireConfiguration": false,
"clangd.path": "~/dotfiles/.config/coc/extensions/coc-clangd-data/install/19.1.2/clangd_19.1.2/bin/clangd"
"biome.requireConfiguration": false
}
2 changes: 1 addition & 1 deletion .config/nvim/lua/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ require('lazy').setup({
config = function()
vim.keymap.set('n', '<space>n', '<cmd>NeotermToggle<CR>', { noremap = true })
require('neoterm').setup {
positon = 'fullscreen',
position = 'fullscreen',
noinsert = false
}
end
Expand Down
12 changes: 1 addition & 11 deletions .config/wezterm/.wezterm.lua
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,7 @@ local config = {
}
}

if wezterm.target_triple == 'x86_64-pc-windows-msvc' then
config.default_domain = 'WSL:Arch'
config.wsl_domains = {
{
name = 'WSL:Arch',
distribution = 'Arch',
username = 'coil398',
default_cwd = '/home/coil398'
}
}
elseif wezterm.target_triple == 'aarch64-apple-darwin' or wezterm.target_triple == 'x64_64-apple-darwin' then
if wezterm.target_triple == 'aarch64-apple-darwin' or wezterm.target_triple == 'x64_64-apple-darwin' then
config.font_size = 13.0
end

Expand Down
20 changes: 20 additions & 0 deletions .github/workflows/luacheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Luacheck

on:
push:
pull_request:

jobs:
luacheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Luacheck
run: |
sudo apt-get update
sudo apt-get install -y luacheck
- name: Run Luacheck (Neovim Lua)
run: |
luacheck --version
luacheck --no-color --config .luacheckrc --no-unused .config/nvim/**/*.lua

26 changes: 26 additions & 0 deletions .github/workflows/shellcheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: ShellCheck

on:
push:
pull_request:

jobs:
shellcheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install ShellCheck
run: |
sudo apt-get update
sudo apt-get install -y shellcheck
- name: Run ShellCheck
run: |
set -e
shopt -s globstar nullglob || true
files=(etc/**/*.sh bin/**/*)
# Fallback if bashisms are not available
if [ ${#files[@]} -eq 0 ]; then
files=$(find etc bin -type f -name "*.sh" 2>/dev/null || true)
fi
echo "Linting: ${files[@]}"
shellcheck -S warning ${files[@]}
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
!/.config/efm-langserver/
!/.config/alacritty/
!/.config/procs/
!/.config/wezterm/
!/.config/coc/
/node_modules/
.DS_Store
.node-version
Expand Down
15 changes: 15 additions & 0 deletions .luacheckrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
std = 'lua54'

globals = {
-- Neovim API
'vim',
}

codes = {
-- allow long lines and unused args/vars in config snippets
-- (we run luacheck mainly for syntax/scope problems)
ignore = {
'631', -- line is too long
}
}

4 changes: 2 additions & 2 deletions .tmux/.tmux.conf
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@ set -g status-left-length 40
set -g status-left "#[fg=green]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
## 右パネルを設定する
set -g status-right-length 150
set -g status-right "#[fg=white] #($TMUX_PLUGIN_MANAGER_PATH/tmux-mem-cpu-load/tmux-mem-cpu-load --interval 1 --averages-count 0) #[fg=red]#(cpu_temp) #[fg=green]#(get_gpu_temp 2) #[fg=yellow]#(wifi)#[default] #(get_battery -t) #[fg=blue] #(get_sound_device) #[fg=magenta] #(get_volume)#[fg=cyan][%Y-%m-%d(%a) %H:%M:%S]"
set -g status-right "#[fg=white] #($TMUX_PLUGIN_MANAGER_PATH/tmux-mem-cpu-load/tmux-mem-cpu-load --interval 1 --averages-count 0 || echo '-') #[fg=red]#(cpu_temp || echo '-') #[fg=green]#(get_gpu_temp 2 || echo '-') #[fg=yellow]#(wifi || echo '-')#[default] #(get_battery -t || echo '-') #[fg=blue] #(get_sound_device || echo '-') #[fg=magenta] #(get_volume || echo '-')#[fg=cyan][%Y-%m-%d(%a) %H:%M:%S]"
## リフレッシュの間隔を設定する(デフォルト 15秒)
set -g status-interval 1
set -g status-interval 5
## ウィンドウリストの位置を中心寄せにする
set -g status-justify centre
## ヴィジュアルノーティフィケーションを有効にする
Expand Down
12 changes: 7 additions & 5 deletions .zshrc
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,16 @@ export PATH="$HOME/.cargo/bin:$PATH"

export PATH="$HOME/.bin:$PATH"

# krew
export PATH="${KWER_ROOT:-$HOME/.krew}/bin:$PATH"
# krew: fix env var name (KREW_ROOT)
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

fpath=($HOME/.zsh/completion $fpath)

# anyenv
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
# anyenv: guard initialization when not installed
if command -v anyenv >/dev/null 2>&1; then
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
fi

# Go
export GOPATH="$HOME/go"
Expand Down
25 changes: 22 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,22 @@
My best dotfiles.

curl -fsSL https://raw.githubusercontent.com/coil398/dotfiles/master/etc/init.sh | sh
My best dotfiles.

- Install: `curl -fsSL https://raw.githubusercontent.com/coil398/dotfiles/master/etc/init.sh | sh`

Notes
- Do not commit absolute, machine-specific symlinks in the repo (e.g., `nvim -> /Users/...`).
- To link Neovim config on your machine, run one of:
- `sh etc/link.sh` (links dotfiles, including `.config` contents)
- `ln -snfv "$PWD/.config/nvim" "$HOME/.config/nvim"`

Baseline
- Linux baseline is Ubuntu; prefer apt-based tooling.
- Avoid hardcoding WSL distributions or user-specific settings in config files.

Prerequisites
- Ubuntu: `sudo apt update && sudo apt install -y git curl neovim tmux shellcheck`
- macOS: install Homebrew, then `brew install git curl neovim tmux shellcheck`

Keybindings
- tmux: prefix is `C-q` (Ctrl+q). Reload config: `prefix + r`.
- Neovim: toggle terminal (neoterm) with `<space>n`; Telescope is included, common mappings follow defaults (`<leader>ff`, etc., if configured).
- coc.nvim: format on save/type is enabled; check `:CocConfig` for language settings.
22 changes: 9 additions & 13 deletions etc/install/homebrew/brew_install.sh
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
brew update && brew upgrade
brew install git
brew install neovim
brew install zsh
brew install zsh-completions
brew install zplug
brew install tmux
brew install reattach-to-user-namespace
brew install tmux-mem-cpu-load
brew install global --with-exuberant-ctags --with-pygments
brew install tig
brew install osx-cpu-temp
brew install ag
brew install go
brew install git neovim zsh zsh-completions zplug tmux tig ripgrep go

# macOS-only tools
if [ "$(uname)" = "Darwin" ]; then
brew install reattach-to-user-namespace osx-cpu-temp
fi

# Tags/tools (no deprecated options)
brew install global ctags pygments || true
22 changes: 11 additions & 11 deletions etc/install/homebrew/linux.sh
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
#!/bin/bash
#!/bin/sh

SCRIPT_DIR=`dirname $0`
cd $SCRIPT_DIR
. '../../util.sh'
# Prefer apt-based installs on Linux; do not install linuxbrew-wrapper.
# Install basic build tools commonly needed by other steps.
set -eu

if has 'sudo'; then
sudo apt -y update && sudo apt -y upgrade
sudo apt -y install build-essential file git python-setuptools ruby zsh
sudo apt -y install linuxbrew-wrapper
if command -v sudo >/dev/null 2>&1; then
sudo apt -y update && sudo apt -y upgrade
sudo apt -y install build-essential file git curl
else
apt -y update && sudo apt -y upgrade
apt -y install build-essential file git python-setuptools ruby
apt -y install linuxbrew-wrapper
apt -y update && apt -y upgrade
apt -y install build-essential file git curl
fi

echo "Skipped Homebrew install on Linux. Use apt-based installers instead."
9 changes: 5 additions & 4 deletions etc/install/homebrew/mac.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/bin/bash
#!/bin/sh

echo 'Installing homebrew'
xcode-select --install
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
set -eu
echo 'Installing Homebrew (official script)'
xcode-select --install || true
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
22 changes: 12 additions & 10 deletions etc/link.sh
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
#!/bin/sh

set -eu

DOT_DIRECTORY="${HOME}/dotfiles"
cd ${DOT_DIRECTORY}
cd "$DOT_DIRECTORY"

for f in .??*
do
[[ ${f} = ".git" ]] && continue
[[ ${f} = ".gitignore" ]] && continue
[[ ${f} = ".DS_Store" ]] && continue
ln -snfv ${DOT_DIRECTORY}/${f} ${HOME}/${f}
for f in .??*; do
[ "$f" = ".git" ] && continue
[ "$f" = ".gitignore" ] && continue
[ "$f" = ".DS_Store" ] && continue
ln -snfv "$DOT_DIRECTORY/$f" "$HOME/$f"
done
ln -s ${DOT_DIRECTORY}/.tmux/.tmux.conf $HOME/.tmux.conf
if [[ `uname` = "Darwin" ]];then
ln -s ${DOT_DIRECTORY}/.tmux/.tmux.conf.mac $HOME/.tmux.conf.mac

ln -snfv "$DOT_DIRECTORY/.tmux/.tmux.conf" "$HOME/.tmux.conf"
if [ "$(uname)" = "Darwin" ]; then
ln -snfv "$DOT_DIRECTORY/.tmux/.tmux.conf.mac" "$HOME/.tmux.conf.mac"
fi
echo 'Deploy dotfiles completed.'
4 changes: 2 additions & 2 deletions etc/load.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bash
#!/usr/bin/env bash

export PLATFORM

Expand Down Expand Up @@ -245,7 +245,7 @@ log_fail() {
logging ERROR "$1" 1>&2
}

log_fail() {
log_warn() {
logging WARN "$1"
}

Expand Down
21 changes: 17 additions & 4 deletions etc/set.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,20 @@ case "${OS}" in
;;
esac

mv $HOME/.enhancd $HOME/dotfiles/.enhancd
mv $HOME/.cache $HOME/dotfiles/.cache
rm -rf $HOME/.config
sh $HOME/.config/nvim/init.sh
mv "$HOME/.enhancd" "$HOME/dotfiles/.enhancd" 2>/dev/null || true
mv "$HOME/.cache" "$HOME/dotfiles/.cache" 2>/dev/null || true

# Make setup non-destructive: avoid removing the entire ~/.config
# If ~/.config exists and is not a symlink, back it up once with a timestamp
if [ -e "$HOME/.config" ] && [ ! -L "$HOME/.config" ]; then
backup_dir="$HOME/.config.backup.$(date +%Y%m%d%H%M%S)"
echo "Backing up ~/.config to ${backup_dir}"
mv "$HOME/.config" "$backup_dir"
fi

# If this repo provides a ~/.config directory, link it when no link exists
if [ -d "$HOME/dotfiles/.config" ] && [ ! -L "$HOME/.config" ]; then
ln -s "$HOME/dotfiles/.config" "$HOME/.config"
fi

sh "$HOME/.config/nvim/init.sh"
1 change: 0 additions & 1 deletion nvim

This file was deleted.

Loading