{"id":13844845,"url":"https://github.com/Karmenzind/dotfiles-and-scripts","last_synced_at":"2025-07-12T00:32:03.811Z","repository":{"id":104623094,"uuid":"103343499","full_name":"Karmenzind/dotfiles-and-scripts","owner":"Karmenzind","description":":pill: dotfiles and scripts for my Linux and Windows","archived":false,"fork":false,"pushed_at":"2024-11-12T13:40:05.000Z","size":28236,"stargazers_count":168,"open_issues_count":2,"forks_count":28,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-11-12T14:32:45.084Z","etag":null,"topics":["arch","archlinux","python","tmux","vim"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Karmenzind.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-13T02:29:08.000Z","updated_at":"2024-11-12T13:40:09.000Z","dependencies_parsed_at":"2023-09-25T18:17:58.095Z","dependency_job_id":"beb55685-b175-4812-87c5-5e949dac0393","html_url":"https://github.com/Karmenzind/dotfiles-and-scripts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Karmenzind%2Fdotfiles-and-scripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Karmenzind%2Fdotfiles-and-scripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Karmenzind%2Fdotfiles-and-scripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Karmenzind%2Fdotfiles-and-scripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Karmenzind","download_url":"https://codeload.github.com/Karmenzind/dotfiles-and-scripts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225772780,"owners_count":17521888,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arch","archlinux","python","tmux","vim"],"created_at":"2024-08-04T17:02:59.196Z","updated_at":"2024-11-21T17:30:54.492Z","avatar_url":"https://github.com/Karmenzind.png","language":"Shell","readme":"# 🐝 dotfiles and scripts for my Linux/Win\n\n\u003e The ArchLinux installation scripts has been migrated to [this repo](https://github.com/Karmenzind/arch-installation-scripts) and is no longer maintained.\n\n|[简体中文](./README_CN.md)|\n\n\u003ctable\u003e\n\t\u003ccolgroup align=\"center\"\u003e\n    \u003ccol width=\"50\" align=\"center\"\u003e\u003c/col\u003e\n    \u003ccol width=\"70\" align=\"center\"\u003e\u003c/col\u003e\n    \u003ccol width=\"180\" align=\"center\"\u003e\u003c/col\u003e\n    \u003ccol width=\"160\" align=\"center\"\u003e\u003c/col\u003e\n\t\u003c/colgroup\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth colspan=2\u003e🎨\u003c/th\u003e\n      \u003cth\u003eLinux\u003c/th\u003e\n      \u003cth\u003eWindows\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" rowspan=\"5\" width=\"50\"\u003eShell\u003c/td\u003e\n      \u003ctd align=\"center\" \u003eEditor\u003c/td\u003e\n      \u003ctd align=\"center\" colspan=2\u003eVim / Neovim (compatible with vscode-neovim)\u003c/td\u003e\n      \u003c!-- \u003ctd align=\"center\"\u003eShell: Vim/Neovim\u003cbr\u003eGUI: GVim/Neovide\u003c/td\u003e --\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003eTerminal\u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003ca href=\"https://github.com/alacritty/alacritty\"\u003eAlacritty\u003c/a\u003e + Tmux + Zsh\n      \u003c/td align=\"center\"\u003e\n      \u003ctd align=\"center\"\u003eWindowsTerminal + pwsh(\u003ca href=\"ohmyposh.dev\"\u003eOMPosh\u003c/a\u003e)\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" \u003eFont\u003c/td\u003e\n      \u003ctd align=\"center\" colspan=\"2\"\u003e\n        \u003ca href=\"https://github.com/Karmenzind/monaco-nerd-fonts\"\u003eMonaco Nerd\u003c/a\u003e\n      \u003c/td align=\"center\"\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" \u003eDict\u003c/td\u003e\n      \u003ctd align=\"center\" colspan=\"2\"\u003e\u003ca href=\"https://github.com/Karmenzind/kd\"\u003ekd\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" \u003eOthers\u003c/td\u003e\n      \u003ctd align=\"center\" colspan=\"2\"\u003efzf / fd / ranger / lf / pistol / rg  etc.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" rowspan=\"7\" width=\"50\"\u003eGUI\u003c/td\u003e\n      \u003ctd align=\"center\"\u003eDesktop\u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003ca href=\"https://i3wm.org\"\u003ei3wm\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" rowspan=\"7\"\u003e-\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003eStatusbar\u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/polybar/polybar\"\u003epolybar\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003eLauncher\u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/davatorium/rofi\"\u003erofi\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003eNotice\u003c/td\u003e\n      \u003ctd align=\"center\"\u003edunst\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003eEnhancement\u003c/td\u003e\n      \u003ctd align=\"center\"\u003epicom\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003eInput\u003c/td\u003e\n      \u003ctd align=\"center\"\u003efcitx5\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003eScreenshot\u003c/td\u003e\n      \u003ctd align=\"center\"\u003eflameshot\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003e Check [file tree](./TREE.md)\n\n## TOC\n\n\u003c!-- vim-markdown-toc GFM --\u003e\n\n* [:gear: usage](#gear-usage)\n    * [apply all configurations](#apply-all-configurations)\n    * [(Neo)Vim configuration and setup](#neovim-configuration-and-setup)\n    * [install recommanded apps](#install-recommanded-apps)\n        * [Linux](#linux)\n        * [Windows](#windows)\n* [:toolbox: toolbox scripts](#toolbox-toolbox-scripts)\n    * [manage Aria2 and auto update bt-trackers](#manage-aria2-and-auto-update-bt-trackers)\n    * [fetch advertisement domain list for Chinese users](#fetch-advertisement-domain-list-for-chinese-users)\n* [:eyes: screenshots](#eyes-screenshots)\n* [:bulb: create your own Dotfile repo](#bulb-create-your-own-dotfile-repo)\n\n\u003c!-- vim-markdown-toc --\u003e\n\n## :gear: usage\n\nFirstly, **clone** this repo.\n\n### apply all configurations\n\nTo apply everything in form of creating symbolic links for them (there will be prompt and backup before overwriting files):\n\n```bash\npython symlink.py\n```\n\nscript parameters：\n-  -h                 show this help message and exit\n-  -i, --interactive  Let me determine each file\n-  -d, --delete       remove all symlink files\n-  --nogui            only for terminal apps\n-  --vimonly          only for vim related apps\n\n### (Neo)Vim configuration and setup\n\nHere 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.\n\nSimply run:\n\n```bash\nbash scripts/setup_vim.sh\n```\n\nThis script will take care of everything included:\n\n- ensure Vim/Neovim installed\n- created symlinks for configuraion files\n- setup plugin and the manager\n- install related apps (lsp, linters, fixers, fuzzy finders, etc.)\n\nOr if you only need the configuration files, run symlink.py with `vimonly` specified:\n\n```bash\npython symlink.py --vimonly\n```\n\nLaunch Vim/Neovim and the plugin setup will start automatically.\n\n\u003e 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.\n\n### install recommanded apps\n\nThese are the apps I use for pretty much everything – work, development, and everyday life.\n\n#### Linux\n\n[This script](./scripts/install_apps.sh) supports both Arch Linux-based and Debian/Ubuntu-based distributions.\n\n```bash\nbash scripts/install_apps.sh\n```\n\n#### Windows\n\n```bash\n./dotfiles-and-scripts/scripts/setup.ps1\n```\n\n## :toolbox: toolbox scripts\n\n\u003e the description about some scripts that are no longer maintained can [be found here](./scripts/deprecated/README.md)\n\n### manage Aria2 and auto update bt-trackers\n\n- [myaria2](./local_bin/myaria2)\n\nFunction:\n\n- launch, restart, stop, check status, check log\n- update bt-tracker（from ngosang/trackerslist) periodically. Or via `update` subcommand\n- backup old log files\n- other trivials\n\nBetter combine with cron.\n\nMore details can be found in comments of the script.\n\n### fetch advertisement domain list for Chinese users\n\n- [update-adblock-list](./scripts/tools/update-adblock-list.sh)\n\nMainly 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.\n\nI'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.\n\n## :eyes: screenshots\n\n- i3 Desktop on ArchLinux:\n    ![](https://raw.githubusercontent.com/Karmenzind/i/master/dotfiles-and-scripts/float.png)\n    ![](https://raw.githubusercontent.com/Karmenzind/i/master/dotfiles-and-scripts/desktop.png)\n\n- (N)Vim:\n    ![](https://raw.githubusercontent.com/Karmenzind/i/master/dotfiles-and-scripts/vim.png)\n\n- Windows Terminal \u0026 pwsh7:\n    ![](https://raw.githubusercontent.com/Karmenzind/i/master/dotfiles-and-scripts/winterminal.png)\n\n## :bulb: create your own Dotfile repo\n\nYou can fork this repo and symlink your configuration files with [symlink.py](./symlink.py).\n","funding_links":[],"categories":["Shell","Shell (473)"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKarmenzind%2Fdotfiles-and-scripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FKarmenzind%2Fdotfiles-and-scripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKarmenzind%2Fdotfiles-and-scripts/lists"}