{"id":13897844,"url":"https://github.com/erictleung/dotfiles","last_synced_at":"2025-03-25T03:31:35.321Z","repository":{"id":35652309,"uuid":"39927193","full_name":"erictleung/dotfiles","owner":"erictleung","description":":wrench: A repository of my dotfiles to setup my development environments","archived":false,"fork":false,"pushed_at":"2024-01-27T19:21:06.000Z","size":659,"stargazers_count":13,"open_issues_count":12,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-19T08:40:04.689Z","etag":null,"topics":["aliases","bashrc","config","configuration-files","cygwin","dotfiles","emacs","emacs-info","git","linux","termux","unix","vim-setup"],"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/erictleung.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"ko_fi":"erictleung","custom":["paypal.me/erictleung"]}},"created_at":"2015-07-30T02:31:26.000Z","updated_at":"2024-05-06T04:26:56.000Z","dependencies_parsed_at":"2024-01-27T20:29:48.102Z","dependency_job_id":null,"html_url":"https://github.com/erictleung/dotfiles","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/erictleung%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erictleung%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erictleung%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erictleung%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/erictleung","download_url":"https://codeload.github.com/erictleung/dotfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245394751,"owners_count":20608122,"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":["aliases","bashrc","config","configuration-files","cygwin","dotfiles","emacs","emacs-info","git","linux","termux","unix","vim-setup"],"created_at":"2024-08-06T18:03:54.577Z","updated_at":"2025-03-25T03:31:35.021Z","avatar_url":"https://github.com/erictleung.png","language":"Shell","funding_links":["https://ko-fi.com/erictleung","paypal.me/erictleung"],"categories":["Shell"],"sub_categories":[],"readme":"# dotfiles\n\nA repository of my dotfiles and OS-specific configuration details.\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n**Contents**\n\n- [Motivation](#motivation)\n- [Setup](#setup)\n- [Installation](#installation)\n- [Operating Systems](#operating-systems)\n  - [Windows](#windows)\n  - [Unix](#unix)\n  - [Termux](#termux)\n- [Software Specific Setups](#software-specific-setups)\n  - [Emacs Info](#emacs-info)\n  - [Vim Setup](#vim-setup)\n  - [Git Setup](#git-setup)\n- [Useful Software](#useful-software)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## Motivation\n\nThis directory, as with many dotfile repositories, aim to create a reproducible\nconfiguration setup for when you move to a new computer. Because of my work and\npersonal computer usage, I am to account for all major operating systems i.e.\nmacOS, Windows, and Unix.\n\n[GNU Stow](https://www.gnu.org/software/stow/) is used to manage my dotfiles.\nIt symbolically links my configuration files to their appropriate places.\n\n## Setup\n\nInstall with respect to working operating system.\n\n```shell\nsudo apt-get install stow\nbrew install stow\nsudo pacman -S stow\n```\n\n## Installation\n\n```shell\n# Setup SSH keys\nssh-keygen\n\n# ...Copy key from ~/.ssh/id_rsa.pub\n# Add value to GitHub list of acceptable keys\n\n# Install dotfiles\ncd ~\ngit clone git@github.com:erictleung/dotfiles.git\ncd dotfiles\n\n# Install specific configurations\nstow bash # e.g. bash configuration files\n```\n\n## Operating Systems\n\n### Windows\n\nIf possible, installing the\n[Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10)\nis the most ideal situation to having a terminal-like interface.\n\nAs an Emacs user, I want to use the visual GUI. This requires an X Client to\ngenerate the GUI. This can done using X Launch. Some instructions to set this\nup are written up [here](https://sudhakaryblog.wordpress.com/2018/08/30/run-gui-app-on-windows-xlaunch-vcxsrv/).\n\nIf WSL cannot used because of administrative privileges, the second best option\nis to install an Emacs GUI with [Git Bash](https://gitforwindows.org/). To\ninstall the GUI from [here](https://ftp.gnu.org/gnu/emacs/windows/). Download\none of the installers, like `emacs-27.2-x86_64-installer.exe`,should install\nEmacs in `C:/Program Files/`.\n\nWhen opening Emacs, the home directory is located in\n`C:/Users/\u003cuser_name\u003e/AppData/Roaming/`. Because I use SyncThing to sync my Org\nmode notes, SyncThing should put its folders in this `Roaming/` directory for\npath navigation to work as expected. Similarly, my `dotfiles/` should be copied\ninto this directory.\n\nFrom Git Bash, you can run the following to link these files because `stow`\ndon't be able to reach it properly.\n\n```sh\ncd\nln -s ~/dotfiles/emacs/.emacs.d ~/AppData/Roaming\n```\n\nIn the past, I have made use of [Cygwin](http://cygwin.com/) as the terminal\nwindow I use. Updates and package management are done using the Cygwin\nexecutable file. However, it appears [MSYS2](https://www.msys2.org/) is a\nbetter alternative bceause it\n\n\u003e \"...provide[s] a build environment for native Windows software and the\n\u003e Cygwin-using parts are kept at a minimum.\"\n\nWhen setting up MSYS2, the path defaults to the `AppData/Roaming/` directory.\nTo make it more native with the Window's user home director, navigate to\n`~/etc/nsswitch.conf` and make the edit\n\n```\ndb_home: windows # cygwin desc\n```\n\nThese changes are summarized\n[here](https://aktasfatih.com/setting-up-windows-with-msys2/). The packages in\nMSYS2 can be found\n[here](https://github.com/msys2/MSYS2-packages) and\n[here](https://github.com/msys2-unofficial/MSYS2-packages).\n\nThere is a package manager, [chocolatey](https://chocolatey.org/), that I've\nheard about and have downloaded, but it is less utilized. I will note here on\nusing it in the future.\n\n### Unix\n\n[Homebrew](https://brew.sh/) and [Linuxbrew](https://docs.brew.sh/Homebrew-on-Linux)\nare both great package managers when you don't have access to root.\n\n**Note**: must have [Ruby](https://www.ruby-lang.org/) installed.\n\n```shell\n# macOS\nruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\"\n\n# Linux\nsh -c \"$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)\"\n```\n\nTo [uninstall Homebrew](https://github.com/Homebrew/brew/blob/master/docs/FAQ.md),\nrun the following:\n\n```shell\nruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)\"\n```\n\nFor LaTeX on Ubuntu,\n\n```shell\ncd ~\nmkdir texmf\nsudo apt-get install xzdec\ntlmgr init-usertree\n```\n\n### Termux\n\nThese tools are missing from the shell, so let's install them here.\n\n```sh\npkg install vim emacs make git curl openssh stow\n```\n\nTo install various machine learning packages, I found this repository helpful\nin some of the commands to run to install\n\nhttps://github.com/sanheensethi/Installing-ML-in-Termux-Python\n\nA quick summary of the commands below:\n\n```sh\napt update\napt upgrade\n\napt install clang git python python-dev fftw freetype freetype-dev libpng \\\n    libpng-dev pkg-config\n\npip install --upgrade pip\npip install numpy matplotlib pandas jupyter\n\napt install wget\n\ncurl -o setup.sh https://its-pointless.github.io/setup-pointless-repo.sh\nbash setup.sh\napt install scipy\nrm setup.sh\n\npip install scikit-learn\n```\n\n## Software Specific Setups\n\n### Emacs Info\n\nHere are some notable packages I regularly depend on:\n\n- `academic-phrases` for academic writing\n- `ace-window` for better window management\n- `avy/swiper` for navigation in files\n- `company` for autocomplete\n- `deft`/`zetteldeft` for quick note management\n- `elfeed`/`elfeed-org`/`elfeed-goodies` for RSS reading\n- `helm-bibtex` for searching and managing bibliographies\n- `org-brain` for concept mapping\n- `org-mode` for drafting documents and organizing\n- `org-ref` for BibTeX bibliography management\n- `projectile` for quickly navigating files across project\n- `try` for simply trying out packages without commitments\n- `w3m` for browsing the internet within Emacs\n- `which-key` for hints when pressing key chords\n- `writegood-mode` for writing well\n- `yasnippet` for quick snippets and templates\n\n### Vim Setup\n\nRun the following.\n\n```\ngit clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim\n```\n\nThen from within `vim`, run\n\n```\n:PluginInstall\n```\n\nto install the listed plugins in `vim` configuration file.\n\n### Git Setup\n\nReminder that this directory has git configurations that can be done again, but\nthe information already exists here to make a consistent configuration across\ncomputers.\n\n\n## Useful Software\n\nBelow are some pieces of software that are useful for working and help me\ninterface with files and be productive.\n\n**CLI**\n\n- [`pandiff`](https://github.com/davidar/pandiff) - Prose diffs for any\n  document format supported by Pandoc; installs by `npm`.\n- [`jq`](https://stedolan.github.io/jq/) - Lightweight and flexible\n  command-line JSON processor.\n- [`ranger`](https://github.com/ranger/ranger) - A VIM-inspired file manager\n  for the console.\n- [`sqlfluff`](https://github.com/sqlfluff/sqlfluff) - The SQL Linter for\n  humans.\n- [QRcode.show](https://qrcode.show/) - Generate QR code using curl.\n- [ShellCheck](https://github.com/koalaman/shellcheck) - A static analysis\n  tool for shell scripts ([live editor](https://www.shellcheck.net/)).\n\n**Web Tools**\n\n- [Tiny Helpers](https://tiny-helpers.dev/) - A collection of free\n  single-purpose online tools for web developers.\n- [QR Code Generator](https://www.the-qrcode-generator.com/) - Simple and\n  useful.\n- [repl.it](https://repl.it/) - Create interactive REPLs for lots of languages.\n- [JDoodle](https://www.jdoodle.com/) - Like repl.it, but also includes MySQL\n  and MongoDB.\n- [DB Fiddle](https://www.db-fiddle.com/) - Database-specific fiddle.\n- [Online LaTeX editor](https://www.codecogs.com/latex/eqneditor.php) - Quickly\n  and easily create LaTeX equation images.\n- [Twitter Card Validator](https://cards-dev.twitter.com/validator) - See how\n  your website will show up on Twitter.\n- [OneLook](https://onelook.com/) - Dictionary with more expressive search\n  patterns and also has a nice thesaurus and reverse dictionary.\n- [Duckie](http://duckie.me/) - A tool for one person pair programming.\n- [remove.bg](https://remove.bg) - Remove image backgrounds.\n- [AutoDraw](https://www.autodraw.com/) - Drawing tool with machine learning\n  guessing your drawing for quick illustrations.\n- [Rentry.co](https://rentry.co/) - Markdown pastebin.\n- [doi2bib](https://www.doi2bib.org/) - Take DOI and give BibTeX.\n- [diagrams.net](https://app.diagrams.net/) - Easy to create diagrams online\n  (formerly draw.io).\n- [Resumake](https://resumake.io) - Easy template application to create a\n  resume.\n- [Quick Database Diagrams](https://quickdatabasediagrams.com/) - Draw\n  entity-relationship diagrams by writing pseudocode.\n- [Excalidraw](https://github.com/excalidraw/excalidraw) - Virtual whiteboard\n  for sketching hand-drawn like diagrams (https://excalidraw.com/).\n- [Color Wheel - Canva](https://www.canva.com/colors/color-wheel/) - Tool to\n  create good color combinations.\n- [Banner](https://liyasthomas.github.io/banner/) - Generate banner images for\n  blog posts. Source at https://github.com/liyasthomas/banner.\n- [Web Developer Tools](https://www.browserling.com/tools) - Miscellaneous\n  convenience tools for web development, the most useful to me so far have been\n  the image conversion tools.\n- [tinypng](https://tinypng.com/) - Smart PNG and JPEG compression.\n- [readme.so](https://readme.so/) - Easily create a README.\n- [Online PNG Tools](https://onlinepngtools.com/) - Collection of useful PNG\n  image utilities for working with PNG graphics files.\n- [sequel fumpt](https://sqlfum.pt/) - Help format SQL with slider width.\n- [ConvertCSV](https://www.convertcsv.com/) - Convert CSV files to others.\n\n**Cross-Platform Desktop**\n\n- [Color Oracle](https://colororacle.org/) - Design for color impaired.\n- [Freeplane](https://www.freeplane.org/wiki/index.php/Home) - Free mind\n  mapping and knowledge management software.\n- [Publish or Perish](https://harzing.com/resources/publish-or-perish) -\n  Retrieved and analyzes academic citations from variety of sources with a\n  number of metrics.\n- [TikZit](https://tikzit.github.io/) - Simple GUI editor for graphs and string\n  diagrams.\n- [VLC Media Player](https://www.videolan.org/vlc/) - Free and open source\n  cross-platform multimedia player.\n- [LICEcap](https://www.cockos.com/licecap/) - Capture an area of your desktop\n  and save it directly to .GIF.\n\n*Note*: The above desktop applications were chosen to be cross platform and\nstandards based in terms of their inputs and outputs, if applicable.\n\n**Windows Specific**\n\n- [Dexpot](https://www.dexpot.de) - Virtual desktops for Windows.\n- [Cygwin](https://www.cygwin.com/) - Linux feeling on Windows 7 (Windows 10\n  has Windows Subsystem for Linux (WSL) option for terminal).\n- [WinDirStat](https://windirstat.net/) - Disk usage statistics viewer and\n  cleanup tool.\n- [Rapid Environment Editor](https://www.rapidee.com/en/about) - Windows\n  environment variables management.\n- [ImageGlass](https://github.com/d2phap/ImageGlass) - A lightweight, versatile\n  image viewer.\n\n**Firefox Plugins**\n\n- [Mouseless](https://addons.mozilla.org/en-US/firefox/addon/mouseless-plugin/) - Use\n  mouse as least as possible (https://github.com/mortie/mouseless-plugin). See\n  `scripts/mouseless.json` file with configuration in JSON form.\n- [web-archives](https://addons.mozilla.org/en-US/firefox/addon/view-page-archive) - View\n  archived and cached versions of web pages of 10+ search engines\n  (https://github.com/dessant/web-archives).\n- [Unpaywall](https://github.com/ourresearch/unpaywall-extension) - Gives you a\n  link to a free PDF when viewing scholarly articles.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferictleung%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferictleung%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferictleung%2Fdotfiles/lists"}