{"id":15805295,"url":"https://github.com/lsys/dotfiles","last_synced_at":"2026-04-17T19:01:21.486Z","repository":{"id":155090113,"uuid":"600704124","full_name":"LSYS/dotfiles","owner":"LSYS","description":"🚧🛠️ .files and setup configs - to help overcome my fear of setting up a new machine","archived":false,"fork":false,"pushed_at":"2025-07-29T14:31:15.000Z","size":545,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-29T17:15:08.299Z","etag":null,"topics":["bash","dotfiles","wsl"],"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/LSYS.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,"zenodo":null}},"created_at":"2023-02-12T10:28:56.000Z","updated_at":"2025-07-29T14:31:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"28e7d572-dc33-478f-869d-32da507af367","html_url":"https://github.com/LSYS/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/LSYS/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LSYS%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LSYS%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LSYS%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LSYS%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LSYS","download_url":"https://codeload.github.com/LSYS/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LSYS%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31941845,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T17:29:20.459Z","status":"ssl_error","status_checked_at":"2026-04-17T17:28:47.801Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bash","dotfiles","wsl"],"created_at":"2024-10-05T02:07:59.350Z","updated_at":"2026-04-17T19:01:21.481Z","avatar_url":"https://github.com/LSYS.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# My .files and setup configurations\n![alt text](misc/img/mugshot.png)\n\n\u003c!---------------------- TABLE OF CONTENT ----------------------\u003e\n# [Roadmap](#roadmap)\n\u003cdetails open\u003e\u003csummary\u003e\u003cb\u003eshow/hide\u003c/b\u003e\u003c/summary\u003e\u003cp\u003e\n\n\u003e - [My key concerns/needs](#my-key-concernsneeds)\n\u003e - [Installation: Main Scripts](#installation-main-scripts)\n\u003e - [Installation: Order of Installation](#installation-order-of-installation-win)\n\u003e - [Additonal Details](#additional-details)\n\u003e - [References](#references)\n\u003c/p\u003e\u003c/details\u003e\u003cp\u003e\u003c/p\u003e\n\n## My key concerns/needs\n\n* WSL\n* Use package managers whenever possible (`apt`, `brew`, `winget`, `choco`, `npm`)\n* Dotfiles are symlinked from this repo into `$HOME`\n* (Mini)Conda, Jupyter, Python\n* LaTeX + reveal-md for typesetting\n* Bash with `Oh-My-Posh`\n\n## Installation: Main Scripts\n\n### Using the bootstrap script\nThe **`bootstrap`** file will take care of installing almost everything in my Linux subsystem. Just `cd` into the local folder of this repo and run `./bootstrap`. This `bootstrap` script calls the individual installers to set up the dotfiles, `bin/`, and package installers using `APT`, `Homebrew` (`Linuxbrew`), and `NPM`.\n\n```shell\ncd $HOME \ngit clone https://github.com/LSYS/dotfiles.git\ncd dotfiles\n./bootstrap\n```\n\n### Using the PowerShell scripts\nThe `PowerShell` scripts in `win/` will take care of installing Windows OS applications using `winget` and, to a smaller extent for applications that cannot be installed from `winget`, `Chocolatey`. \nTo install apps using `winget` and `Chocolatey`:\n```PowerShell\ncd win\n./winget.ps1\n./choco.ps1\n```\n\n## Installation: Order of Installation (Win)\n\n1. Install `WSL`: Open `PowerShell` as administrator \n    ```PowerShell\n    wsl --install -d Debian\n    # confirm that bash is running\n    which $SHELL\n    ```\n  \n1. Install Native Windows apps: Open `PowerShell` (`./choco.ps1` need Admin)\n    ```PowerShell\n    ./winget.ps1\n    ./choco.ps1\n    ```\n    This will install `WindowsTerminal` and `Oh-My-Posh`. Type\n    ```PowerShell\n    oh-my-posh font install\n    ```\n    to install the fonts and choose Meslo (recommended). Seth the font in WindowTerminal setting (settings.json)\n    ```json\n    {\n        \"profiles\":\n        {\n            \"defaults\":\n            {\n                \"font\":\n                {\n                    \"face\": \"MesloLGM NF\"\n                }\n            }\n        }\n    }\n    ```\n3. Open WSL (`Debian`) in WindowsTerminal and run the `bootstrap` installer:\n    ```bash\n    cd $HOME/dotfiles \u0026\u0026 ./bootstrap\n    ```\n    This will call the following installers:\n    * `dotfiles.sh`\n    * `win/wslconfig.sh`\n    * `bin/install.sh`\n    * `packages/apt.sh`\n    * `packages/brew.sh`\n    * `packages/npm.sh`\n    * `monty/install.sh`\n\n4. Once `Oh-My-Posh` is installed via `packages/brew.sh`. Check that it works\n    ```bash\n    eval \"$(oh-my-posh init bash)\"\n    ```\n    and symlink the poshthemes to home (where `bash/.bash_profile` will look for the themes)\n    ```bash\n    cd $HOME \u0026\u0026 mkdir poshthemes \u0026\u0026 cd poshthemes\n    ln -s /home/linuxbrew/.linuxbrew/opt/oh-my-posh/themes/* \n    ```\n\n## Additional Details\n\n### Bash\n\nWill be installed in `./dotfiles.sh`.\n```console\n.\n├── bash\n│  ├── .aliases\n│  ├── .bash_profile\n│  ├── .exports\n│  ├── .functions\n│  └── .inputrc\n```\n\n* `.aliases`: Shell aliases defined here (including some for `Git`)\n* `.bash_profile`: General bash settings (including `Oh-My-Posh` and sources other bash `dotfiles`)\n* `.exports`: For `environment variables` (e.g., custom shell utilities and `conda` is specified here)\n* `.functions`: For functions too big for `aliases` but too small for `bin/`\n* `.inputrc`: Config for input (`case-insensitive completion` here)\n* Run `make cleancr` to sanitize shell scrips for \\cr carriage returns (might lead to unexpected, and quiet, breakages)\n\n(**Note:** `.bash_profile` is the first config that will be read by `bash`. So this file will source all other relevant dotfiles.)\n\n### Git\n\nWill be installed in `./dotfiles.sh`.\n\n```Console\n├── git\n│  └── .gitconfig\n```\n\n`.gitconfig`: Includes `Git` aliases.\n\n### Python + (Mini)Conda (`./monty/`)\n\nWill be installed by `./monty/install.sh`.\n```console\n├── monty\n│  ├── install.sh\n│  ├── jupyter_notebook_config.py\n│  └── requirements\n│     ├── base.txt\n│     ├── dev.txt\n│     ├── docs.txt\n│     └── gis.txt\n```\n\n* `jupyter_notebook_config.py`: Needed to make sure notebooks open in browser (native from Windows)\n* `install.sh`: Installs Miniconda, Jupyter Notebook (and its extensions), installs base packages into base, creates `venv`(s) and installs the relevant packages into the `venv`(s).\n\n### Packages\n\nWill be installed by `packages/apt.sh`, `packages/brew.sh`, and `packages/npm.sh`.\n```console\n├── packages\n│  ├── apt.sh\n│  ├── brew.sh\n│  └── npm.sh\n```\n* `apt.sh`: Installs utilities from `APT`.\n* `brew.sh` Sets up and install `Linuxbrew`.\n* `npm.sh`: Sets up `NVM` and `NPM`. Installs `reveal-md` (`reveal.js`) and other utilities only available from `NPM`.\n\n### Windows\n\nWill be installed by `win/winget.ps1` and `win/choco.ps1` (using PowerShell; `win/choco.ps1` will require admin priviledges).\n\n```console\n├── win\n│  ├── .wslconfig\n│  ├── .wslconfig-x1\n│  ├── chocolatey.ps1\n│  ├── terminal-settings.json\n│  ├── winget.ps1\n│  └── wslconfig.sh\n```\n\n* `winget.ps1`: Installs `winget` and follow up by installing other applications (e.g. Chrome, WindowsTerminal, Oh-My-Posh, GNUMake, PowerToys, 7zip, Slack, Sublime Text, Git etc.).\n* `chocolatey.ps1`: Installs `Chocolatey` and other Windows app that cannot be installed by `winget` (e.g., MikTex, TexStudio, tree, postgresql, pgadmin4, du, etc.). This will require `PowerShell` admin priviledges. \n* `wslconfig.sh`: Installs `.wslconfig` to `c/Users/\u003cusername\u003e`\n\n### Miscellaneous (`./misc/`)\n```console\n├── misc\n│  ├── img\n│  ├── .curlrc\n│  ├── .latexmkrc\n│  ├── .wgetrc\n│  ├── references.md\n│  └── vimium.txt\n```\n## References\n\n[See here.](https://github.com/LSYS/dotfiles/blob/main/misc/references.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flsys%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flsys%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flsys%2Fdotfiles/lists"}