/dotfiles-and-scripts

:pill: dotfiles and scripts for my Linux and Windows

Primary LanguageShell

🐝 dotfiles and scripts for my Linux/Win

The ArchLinux installation scripts has been migrated to this repo and is no longer maintained.

|简体中文|

🎨 Linux Windows
Shell Editor Vim / Neovim (compatible with vscode-neovim)
Terminal Alacritty + Tmux + Zsh WindowsTerminal + pwsh(OMPosh)
Font Monaco Nerd
Dict kd
Others fzf / fd / ranger / lf / pistol / rg etc.
GUI Desktop i3wm -
Statusbar polybar
Launcher rofi
Notice dunst
Enhancement picom
Input fcitx5
Screenshot flameshot

Check file tree

TOC

⚙️ usage

Firstly, clone this repo.

apply all configurations

To apply everything in form of creating symbolic links for them (there will be prompt and backup before overwriting files):

python symlink.py

script parameters:

  • -h show this help message and exit
  • -i, --interactive Let me determine each file
  • -d, --delete remove all symlink files
  • --nogui only for terminal apps
  • --vimonly only for vim related apps

(Neo)Vim configuration and setup

Here are two sets of full-featured configuration for Vim and Neovim (compatible with vscode-neovim). Spent years optimizing them. There are many plugin differences, but the basic behaviors and keybindings are pretty much the same. Mainly for everyday Python/Golang/Java/Javascript/Typescript development, as well as whipping up VimL/Lua/Bash scripts.

Simply run:

bash scripts/setup_vim.sh

This script will take care of everything included:

  • ensure Vim/Neovim installed
  • created symlinks for configuraion files
  • setup plugin and the manager
  • install related apps (lsp, linters, fixers, fuzzy finders, etc.)

Or if you only need the configuration files, run symlink.py with vimonly specified:

python symlink.py --vimonly

Launch Vim/Neovim and the plugin setup will start automatically.

Syncing Vim configurations directory under root might run into issues. I prefer not to create unique configuration for root user. FYI, I will create symlinks for .vimrc and .vim unser /root, sharing the same files with normal user.

install recommanded apps

These are the apps I use for pretty much everything – work, development, and everyday life.

Linux

This script supports both Arch Linux-based and Debian/Ubuntu-based distributions.

bash scripts/install_apps.sh

Windows

./dotfiles-and-scripts/scripts/setup.ps1

🧰 toolbox scripts

the description about some scripts that are no longer maintained can be found here

manage Aria2 and auto update bt-trackers

Function:

  • launch, restart, stop, check status, check log
  • update bt-tracker(from ngosang/trackerslist) periodically. Or via update subcommand
  • backup old log files
  • other trivials

Better combine with cron.

More details can be found in comments of the script.

fetch advertisement domain list for Chinese users

Mainly for Pi-hole use. Alternatively you can add domain lists directly to Pi-hole's adlists, but Pi-hole updates often get stuck (possibly due to the performance of older Raspberry Pi models). So, I decided to create a manual handling script instead.

I've mixed together domain lists from a bunch of popular repos, got rid of duplicates, and set it to run weekly in crontab. After that, just add local file link to Pi-hole.

👀 screenshots

  • i3 Desktop on ArchLinux:

  • (N)Vim:

  • Windows Terminal & pwsh7:

💡 create your own Dotfile repo

You can fork this repo and symlink your configuration files with symlink.py.