{"id":23092891,"url":"https://github.com/whatishedoing/setup","last_synced_at":"2025-08-04T08:39:01.228Z","repository":{"id":50512706,"uuid":"100110665","full_name":"WhatIsHeDoing/Setup","owner":"WhatIsHeDoing","description":"Scripts that set up my common environments.","archived":false,"fork":false,"pushed_at":"2024-12-19T11:50:05.000Z","size":92,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-30T05:54:35.769Z","etag":null,"topics":["bash","chocolatey","fedora","powershell","scoop","setup","ubuntu","windows"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WhatIsHeDoing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2017-08-12T12:22:43.000Z","updated_at":"2025-02-06T17:37:34.000Z","dependencies_parsed_at":"2023-10-04T03:17:48.674Z","dependency_job_id":"45742b4e-aafc-47da-ade0-879db9230cd9","html_url":"https://github.com/WhatIsHeDoing/Setup","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/WhatIsHeDoing/Setup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WhatIsHeDoing%2FSetup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WhatIsHeDoing%2FSetup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WhatIsHeDoing%2FSetup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WhatIsHeDoing%2FSetup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WhatIsHeDoing","download_url":"https://codeload.github.com/WhatIsHeDoing/Setup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WhatIsHeDoing%2FSetup/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268671954,"owners_count":24288241,"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","status":"online","status_checked_at":"2025-08-04T02:00:09.867Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","chocolatey","fedora","powershell","scoop","setup","ubuntu","windows"],"created_at":"2024-12-16T21:39:35.599Z","updated_at":"2025-08-04T08:39:01.202Z","avatar_url":"https://github.com/WhatIsHeDoing.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💻 Prep My OS\n\n## 👋 Introduction\n\nThis repository contains a group of scripts that set up my common environments.\n\nThese can be re-run at any time, and will update pre-installed packages, runtimes and their associated packages, plus global configuration.\nEach script is designed to set up each Operating System (OS) using similar tools where possible,\nsuch as [Starship] as the shell prompt and [VS Code] as the code editor,\nto simplify moving between them.\n\nClick on the [Ubuntu] version below to see it in action:\n\n[![asciicast](https://asciinema.org/a/kblRtgZYt1p78qMtcgQ8UNAMi.svg)](https://asciinema.org/a/kblRtgZYt1p78qMtcgQ8UNAMi)\n\n## 🏃‍ Running\n\nRun one of the following for your OS in your terminal of choice:\n\n```sh\nsh setup_debian.sh\nsh setup_fedora.sh\nsh setup_ubuntu.sh\n.\\setup_windows.ps1\n```\n\n## 🔋 Included\n\nAs current support for Debian and Fedora is currently limited, `all` platforms means Ubuntu and Windows.\n\n### 👟 Runtimes\n\n| Runtime      | Platforms | Description                                                           |\n| ------------ | --------- | --------------------------------------------------------------------- |\n| [.NET]       | all       | Free, open-source, cross-platform framework                           |\n| [Docker]     | all       | Containerize applications                                             |\n| [gcc]        | all       | GNU Compiler Collection                                               |\n| [kubectl]    | all       | kubectl controls the Kubernetes cluster manager                       |\n| [minikube]   | all       | Fast Kubernetes cluster set up                                        |\n| [Node.js]    | all       | Free, open-source, cross-platform JavaScript runtime environment      |\n| [Powershell] | all       | Automation and configuration tool/framework                           |\n| [Python]     | all       | Programming language                                                  |\n| [Rust]       | all       | Language empowering everyone to build reliable and efficient software |\n\n### 🔨 Tools\n\n| Tool              | Platforms | Description                                                               |\n| ----------------- | --------- | ------------------------------------------------------------------------- |\n| [7zip]            | all       | File archiver with a high compression ratio                               |\n| [asciinema]       | Ubuntu    | Record and share terminal sessions                                        |\n| [bat]             | all       | A `cat(1)` clone with wings                                               |\n| [bottom]          | all       | Terminal graphical process/system monitor                                 |\n| [cargo-outdated]  | all       | cargo subcommand to show outdated Rust dependencies                       |\n| [Checkov]         | all       | Policy-as-code for everyone                                               |\n| [diskonaut]       | all       | Terminal disk space navigator                                             |\n| [eza]             | all       | Modern, maintained replacement for `ls`                                   |\n| [Flatpak]         | all       | The future of apps on Linux                                               |\n| [fzf]             | all       | Command-line fuzzy finder                                                 |\n| [Git]             | all       | Distributed version control system                                        |\n| [Helm]            | all       | Package manager for Kubernetes                                            |\n| [innounp]         | Windows   | Inno Setup unpacker                                                       |\n| [IPython]         | all       | Toolkit to run Python interactively, including Jupyter                    |\n| [jid]             | all       | JSON incremental digger                                                   |\n| [jq]              | all       | `sed` for JSON data                                                       |\n| [just]            | all       | Just a command runner                                                     |\n| [k9s]             | Windows   | Kubernetes CLI to manage your clusters in style!                          |\n| [lens]            | all       | The Way The World Runs Kubernetes                                         |\n| [less]            | all       | Terminal pager                                                            |\n| [nuget]           | Windows   | Package manager for .NET                                                  |\n| [pandoc]          | all       | Universal markup converter                                                |\n| [pnpm]            | all       | Fast, disk space efficient JavaScript package manager                     |\n| [powersession-rs] | Windows   | A Rust port of `asciinema` for Windows                                    |\n| [pre-commit]      | all       | A framework for managing and maintaining multi-language pre-commit hooks  |\n| [Pulumi]          | all       | Create, deploy, and manage infrastructure on any cloud using any language |\n| [PuTTY]           | Windows   | SSH and telnet client                                                     |\n| [rga]             | all       | Regex-based search tool for a multitude of file types                     |\n| [Scoop]           | Windows   | Command-line installer for Windows                                        |\n| [Starship]        | all       | Cross-shell prompt                                                        |\n| [UPX]             | all       | Executable packer                                                         |\n| [Warp]            | Ubuntu    | The terminal reimagined                                                   |\n| [WSL]             | Windows   | Run a GNU/Linux environment directly on Windows                           |\n| [Zed]             | Ubuntu    | Zed is a high-performance, multiplayer code editor                        |\n\n### 📱 Apps\n\n| App            | Platforms | Description                                                                       |\n| -------------- | --------- | --------------------------------------------------------------------------------- |\n| [Amberol]      | Ubuntu    | A small and simple sound and music player                                         |\n| [Caesium]      | Windows   | Image compressor                                                                  |\n| [DBeaver]      | all       | Universal database tool                                                           |\n| [draw.io]      | all       | Technology stack for building diagramming applications                            |\n| [Obsidian]     | all       | Obsidian is the private and flexible writing app that adapts to the way you think |\n| [Portmaster]   | Windows   | App firewall and monitor                                                          |\n| [RapidEE]      | Windows   | Rapid Environment Editor                                                          |\n| [SpaceSniffer] | Windows   | Visualise folder and file structures on disk                                      |\n| [Spotify]      | all       | Digital music service                                                             |\n| [Telegram]     | all       | Messaging                                                                         |\n| [VS Code]      | all       | Code editor                                                                       |\n\n### 🦀 Rust Modules\n\n| Runtime          | Description                                                                   |\n| ---------------- | ----------------------------------------------------------------------------- |\n| [cargo-outdated] | A cargo subcommand for checking and applying updates to installed executables |\n| [cargo-modules]  | A cargo plugin for showing a tree-like overview of a crate's modules          |\n| [cargo-update]   | A cargo subcommand for checking and applying updates to installed executables |\n| [wasm-pack]      | 📦✨ your favourite rust -\u003e wasm workflow tool!                                 |\n\n### ⚙️ Scripts\n\nSome tools require extra configuration or combinations to get the best from them.\nThe scripts below are available as aliases on Ubuntu and Windows:\n\n| Global Alias | Meaning      | Description                                                            |\n| ------------ | ------------ | ---------------------------------------------------------------------- |\n| `ll`         | long listing | Comprehensive listing of files in the current directory                |\n| `ff \u003cterm\u003e`  | fuzzy find   | Fuzzy find of a search term for all files within the current directory |\n\n## 🧪 Testing\n\nFirst, set up [pre-commit] and run an initial test:\n\n```sh\npre-commit install\npre-commit run --all-files\n```\n\nThe majority of the Ubuntu setup script can be tested on any platform using a [Docker] container. Build and run it with:\n\n```sh\ndocker build --progress=plain -f Dockerfile.ubuntu -t setup_ubuntu .\ndocker run -it setup_ubuntu\n```\n\nSimilarly, the _entire_ Fedora script can be tested in Docker with:\n\n```sh\ndocker build --progress=plain -f Dockerfile.fedora -t setup_fedora .\ndocker run -it setup_fedora\n```\n\nContainers should be verified with [Container Structure Tests], vulnerabilities with [Grype] and best practices with [Kics]:\n\n```sh\ngrype setup_ubuntu\ndocker run -t -v /home/user/Setup:/Dockerfile checkmarx/kics:latest scan -p .\ncontainer-structure-test test --image setup_ubuntu --config container-structure-test.yml\n```\n\n## 💡 Inspiration\n\nThe initial inspiration came from a post by [Scott Hanselman] on how to make a pretty prompt in Windows Terminal.\n\n[.NET]: https://dotnet.microsoft.com/\n[7zip]: https://7-zip.org/\n[Amberol]: https://gitlab.gnome.org/World/amberol\n[asciinema]: https://asciinema.org/\n[bat]: https://github.com/sharkdp/bat\n[bottom]: https://clementtsang.github.io/bottom/\n[Caesium]: https://saerasoft.com/caesium\n[cargo-outdated]: https://github.com/kbknapp/cargo-outdated\n[cargo-modules]: https://crates.io/crates/cargo-modules\n[cargo-update]: https://crates.io/crates/cargo-update\n[Checkov]: https://www.checkov.io/\n[Container Structure Tests]: https://github.com/GoogleContainerTools/container-structure-test\n[DBeaver]: https://dbeaver.io/\n[diskonaut]: https://github.com/imsnif/diskonaut\n[Docker]: https://www.docker.com/\n[draw.io]: https://www.drawio.com/\n[eza]: https://github.com/eza-community/eza\n[Flatpak]: https://flatpak.org/\n[fzf]: https://github.com/junegunn/fzf\n[gcc]: https://gcc.gnu.org/\n[Git]: https://git-scm.com/\n[Grype]: https://github.com/anchore/grype\n[Helm]: https://helm.sh/\n[innounp]: https://innounp.sourceforge.net/\n[IPython]: https://ipython.readthedocs.io/\n[jid]: https://github.com/simeji/jid\n[jq]: https://jqlang.github.io/jq/\n[just]: https://just.systems/\n[k9s]: https://k9scli.io/\n[Kics]: https://kics.io/\n[kubectl]: https://kubernetes.io/docs/reference/kubectl/kubectl/\n[lens]: https://k8slens.dev/\n[less]: https://www.greenwoodsoftware.com/less/\n[minikube]: https://minikube.sigs.k8s.io/\n[Node.js]: https://nodejs.org/\n[nuget]: https://www.nuget.org/\n[Obsidian]: https://obsidian.md/\n[pandoc]: https://pandoc.org/\n[pnpm]: https://pnpm.io/\n[Portmaster]: https://safing.io/\n[powersession-rs]: https://github.com/Watfaq/PowerSession-rs\n[Powershell]: https://github.com/PowerShell/PowerShell\n[pre-commit]: https://pre-commit.com/\n[Pulumi]: https://www.pulumi.com/\n[PuTTY]: https://putty.org/\n[Python]: https://www.python.org/\n[RapidEE]: https://www.rapidee.com/\n[rga]: https://github.com/phiresky/ripgrep-all\n[Rust]: https://www.rust-lang.org/\n[Scoop]: https://scoop.sh/\n[Scott Hanselman]: https://www.hanselman.com/blog/HowToMakeAPrettyPromptInWindowsTerminalWithPowerlineNerdFontsCascadiaCodeWSLAndOhmyposh.aspx\n[SpaceSniffer]: http://www.uderzo.it/main_products/space_sniffer/\n[Spotify]: https://open.spotify.com/\n[Starship]: https://starship.rs/\n[Telegram]: https://telegram.org/\n[Ubuntu]: https://ubuntu.com/\n[UPX]: https://upx.github.io/\n[VS Code]: https://code.visualstudio.com/\n[Warp]: https://www.warp.dev/\n[wasm-pack]: https://rustwasm.github.io/wasm-pack/\n[WSL]: https://learn.microsoft.com/en-us/windows/wsl/\n[Zed]: https://zed.dev/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhatishedoing%2Fsetup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwhatishedoing%2Fsetup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhatishedoing%2Fsetup/lists"}