Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Karmenzind/dotfiles-and-scripts
:pill: dotfiles and scripts for my Linux and Windows
https://github.com/Karmenzind/dotfiles-and-scripts
arch archlinux python tmux vim
Last synced: 21 days ago
JSON representation
:pill: dotfiles and scripts for my Linux and Windows
- Host: GitHub
- URL: https://github.com/Karmenzind/dotfiles-and-scripts
- Owner: Karmenzind
- Created: 2017-09-13T02:29:08.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-11-12T13:40:05.000Z (30 days ago)
- Last Synced: 2024-11-12T14:32:45.084Z (30 days ago)
- Topics: arch, archlinux, python, tmux, vim
- Language: Shell
- Homepage:
- Size: 26.9 MB
- Stars: 168
- Watchers: 9
- Forks: 28
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-hacking-lists - Karmenzind/dotfiles-and-scripts - :pill: dotfiles and scripts for my Linux and Windows (Shell)
README
# 🐝 dotfiles and scripts for my Linux/Win
> The ArchLinux installation scripts has been migrated to [this repo](https://github.com/Karmenzind/arch-installation-scripts) and is no longer maintained.
|[简体中文](./README_CN.md)|
🎨
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](./TREE.md)
## TOC
* [:gear: usage](#gear-usage)
* [apply all configurations](#apply-all-configurations)
* [(Neo)Vim configuration and setup](#neovim-configuration-and-setup)
* [install recommanded apps](#install-recommanded-apps)
* [Linux](#linux)
* [Windows](#windows)
* [:toolbox: toolbox scripts](#toolbox-toolbox-scripts)
* [manage Aria2 and auto update bt-trackers](#manage-aria2-and-auto-update-bt-trackers)
* [fetch advertisement domain list for Chinese users](#fetch-advertisement-domain-list-for-chinese-users)
* [:eyes: screenshots](#eyes-screenshots)
* [:bulb: create your own Dotfile repo](#bulb-create-your-own-dotfile-repo)## :gear: 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):
```bash
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
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:
```bash
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](./scripts/install_apps.sh) supports both Arch Linux-based and Debian/Ubuntu-based distributions.
```bash
bash scripts/install_apps.sh
```#### Windows
```bash
./dotfiles-and-scripts/scripts/setup.ps1
```## :toolbox: toolbox scripts
> the description about some scripts that are no longer maintained can [be found here](./scripts/deprecated/README.md)
### manage Aria2 and auto update bt-trackers
- [myaria2](./local_bin/myaria2)
Function:
- launch, restart, stop, check status, check log
- update bt-tracker(from ngosang/trackerslist) periodically. Or via `update` subcommand
- backup old log files
- other trivialsBetter combine with cron.
More details can be found in comments of the script.
### fetch advertisement domain list for Chinese users
- [update-adblock-list](./scripts/tools/update-adblock-list.sh)
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.
## :eyes: screenshots
- i3 Desktop on ArchLinux:
![](https://raw.githubusercontent.com/Karmenzind/i/master/dotfiles-and-scripts/float.png)
![](https://raw.githubusercontent.com/Karmenzind/i/master/dotfiles-and-scripts/desktop.png)- (N)Vim:
![](https://raw.githubusercontent.com/Karmenzind/i/master/dotfiles-and-scripts/vim.png)- Windows Terminal & pwsh7:
![](https://raw.githubusercontent.com/Karmenzind/i/master/dotfiles-and-scripts/winterminal.png)## :bulb: create your own Dotfile repo
You can fork this repo and symlink your configuration files with [symlink.py](./symlink.py).