{"id":37226970,"url":"https://github.com/sansneo/prime","last_synced_at":"2026-01-15T03:17:22.291Z","repository":{"id":327992202,"uuid":"1110960624","full_name":"sansneo/prime","owner":"sansneo","description":"For a masterable, comfy and distraction-free setup!","archived":false,"fork":false,"pushed_at":"2026-01-04T16:58:53.000Z","size":7055,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-05T18:46:05.663Z","etag":null,"topics":["dotfiles","prime","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/sansneo.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-06T02:06:09.000Z","updated_at":"2026-01-04T16:58:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sansneo/prime","commit_stats":null,"previous_names":["sansneo/prime"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sansneo/prime","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sansneo%2Fprime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sansneo%2Fprime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sansneo%2Fprime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sansneo%2Fprime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sansneo","download_url":"https://codeload.github.com/sansneo/prime/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sansneo%2Fprime/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28442261,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T00:55:22.719Z","status":"online","status_checked_at":"2026-01-15T02:00:08.019Z","response_time":62,"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":["dotfiles","prime","vim"],"created_at":"2026-01-15T03:17:21.709Z","updated_at":"2026-01-15T03:17:22.283Z","avatar_url":"https://github.com/sansneo.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# prime\n\u003e For a masterable, comfy and distraction-free setup!\n\n```\n ______   ______     __     __    __     ______    \n/\\  == \\ /\\  == \\   /\\ \\   /\\ \"-./  \\   /\\  ___\\   \n\\ \\  _-/ \\ \\  __\u003c   \\ \\ \\  \\ \\ \\-./\\ \\  \\ \\  __\\   \n \\ \\_\\    \\ \\_\\ \\_\\  \\ \\_\\  \\ \\_\\ \\ \\_\\  \\ \\_____\\ \n  \\/_/     \\/_/ /_/   \\/_/   \\/_/  \\/_/   \\/_____/ \n\n```\n\nI need a system that:  \n* Gets me to my goals (passing exams, shipping and excelling at my craft over time).\n* Is minimal[^1] (kind of elitist) with an effective and coherent toolset.\n* Has low overhead once it clicks and builds little fatigue while using it[^2].\n* Takes no time installing, can be[^3] secure and has no big corpo telemetry.\n\nIs that you[^4]? Great! Then read the rest.\n\n## Builds\nThere are four builds available, all of which are based on the latest Void Linux x86_64-glibc.\n* Headless (`headless-prime.iso`), the toolset plus the drivers, almost nothing else.\n* Xorg (`xorg-prime.iso`), everything headless has plus audio, bluetooth,  \nfonts, graphics and various applications.\n* Gaming (`gaming-prime-iso`), same as xorg, but with insecure kernel boot  \noptions (for a performance increase up to 20%), Heroic and various emulators.\n* Personal (`personal-prime.iso`), same as xorg plus highly opinionated additions such as VSCode.\n\n\u003e [!CAUTION]\n\u003e Your system will be vulnerable to Meltdown and a lot more if you choose to use insecure boot options, but unless someone is on your computer having fun with process hacking,\nyou are probably good.\n\n## Headless\nPackages are (mostly) organized by the following priority order:  \n`Kernel \u003e Shell \u003e Userland (non‑network) \u003e Userland (network) \u003e Daemons` and  \nwithin each priority, grouped by origin: `Linux project \u003e GNU project \u003e Other projects`.\n\nPure driver packages are not listed, but are installed as part of the system and very much essential.\n\n### Toolset\n* linux and kmod: kernel and modules\n* dracut: generate initramfs\n* grub: bootloader\n* efibootmgr: manage uefi boot entries\n* os-prober: detect other operating systems\n* runit: init system\n* glibc: libc\n* bash and dash: user and system shell\n* tmux: multiplexer\n* tmate: share terminal\n* skim: fuzzy finder\n* usbutils: usb utilities\n* util-linux: system utilities\n* procps-ng: process utilities\n* coreutils: core utilities\n* findutils: find utilities\n* grep: pattern matching\n* sed: stream editor\n* less: pager\n* man and texinfo: read documentation\n* atool (supporting gzip, tar, xz, 7z, zip and rar): archive and unarchive\n* e2fsprogs, btrfs-progs and xfsprogs: ext4, btrfs, xfs disk utilities\n* f2fs-tools, dosfstools and exfat-utils: fat and exfat utilities\n* ntfs-3g: ntfs disk utilities\n* sudo: privilege escalation\n* shadow: users and groups\n* xxd: format in octal, hexadecimal and binary\n* helix: modern editor\n* which: show full command path\n* file: detect file type\n* xbps and vpm: manage packages\n* android-tools and scrcpy: mobile devices\n* ethtool: query and control network driver and hardware\n* openssl: cryptography\n* curl: send http and socks requests\n* trurl: parse and manipulate urls\n* jq: json processor\n* traceroute: follow network packets\n* iproute2 and iputils: network utilities\n* wget: http and ftp download utility\n* gallery-dl: download images from various websites\n* yt-dlp: download videos from various websites\n* openssh: secure remote shell\n* acpid: handle acpi events\n* eudev: device manager\n* agetty: manage ttys\n* cronie: cron implementation\n* ntp and chrony: time synchronization\n* dhcpcd: dhcp client\n* iw and iwd: wifi\n* iptables and ip6tables: firewall\n* tlp: power management\n* docker, docker-buildx and docker-compose: containers\n\n### Languages\n* asm/c\n  * binutils: binary utilities\n  * bison: parser generator\n  * flex: lexer\n  * m4: macro processor\n  * make: build system\n  * autoconf and automake: portable software builds\n  * pkg-config: retrieve information about installed libraries\n  * gcc: compiler collection\n  * gdb: debugger\n  * strace: trace syscalls\n  * ltrace: trace library calls\n  * rizin: binary exploitation, process hacking and reverse engineering\n* gawk: awk implementation\n* go: compiled garbage collected language\n  * delve: debugger\n* python: runtime object oriented language\n  * pip: package manager\n* gleam: runtime functional language\n* sqlite: embeddable sql database\n* typst, troff and groff: typesetting\n* diffutils: diff utilities\n* patch: patch source files\n* git and github-cli: version control system\n* protobuf: protocol buffers\n\n### Additional\nPackages that are not part of the toolset, but are included in headless.\n* kbd: keyboard utilities (ttys)\n* gettext: localization\n* bc: basic calculator\n* ed: standard editor\n* nvi: visual editor\n\n## Xorg\n* dbus: message bus system \n* elogind: user logins and seats\n* polkit: policy framework\n* pipewire, wireplumber and wiremix: audio\n* bluez: bluetooth\n* xorg and xinit: display server\n  * xrandr: manage monitors\n  * xinput and setxkbmap: configure mouse and keyboard (xorg)\n  * xclip: clipboard\n  * xprop: display window properties\n  * xset: change display server properties\n* noto (including cjk and emojis): system fonts\n* jetbrains mono, 0xproto, commit mono and mononoki: programming fonts\n* dk: window manager\n* sxhkd: hotkey daemon\n* dmenu: launcher\n* scrot: screenshot\n* xautolock and slock: lock screen\n* xwallpaper: set wallpaper\n* ranger: file manager\n* nsxiv: view images\n* kew: listen to music\n* mpv: play videos\n* ffmpeg: manipulate audios and videos\n* zathura (supporting pdf, epub, xps, cbz, cbr, cb7 and cbt): read documents\n\n### Apps\n* chromium and qutebrowser: browse the web\n* obs: record and live stream\n* qbittorrent: torrent\n* cutter: rizin frontend\n\nIn addition to the drivers, language servers, linters, and formatters some languages are also installed.\n\n## Documentation\n* [GNU](https://www.gnu.org/manual/manual.html)\n* [Linux](https://kernel.org)\n* [Helix](https://helix-editor.com)\n* [Curl](https://curl.se/docs/tutorial.html)\n* [Jq](https://jqlang.org)\n* [Rizin](https://rizin.re)\n* [Go](https://go.dev)\n* [Python](https://docs.python.org/3)\n* [Gleam](https://gleam.run)\n* [SQLite](https://sqlite.org)\n* [Typst](https://typst.app/docs)\n* [Git](https://git-scm.com/docs)\n* [GitHub](https://docs.github.com)\n* [Caddy](https://caddyserver.com)\n* [Docker](https://docs.docker.com)\n* [Kubernetes](https://kubernetes.io/docs/home)\n* [Traefik](https://doc.traefik.io/traefik/)\n* [Amazon Web Services](https://docs.aws.amazon.com)\n* [Tencent Cloud](https://www.tencentcloud.com/document/product)\n* [HashiCorp](https://developer.hashicorp.com)\n* [Pulumi](https://www.pulumi.com)\n* [Grafana](https://grafana.com)\n* [Void](https://voidlinux.org)\n\nCheck out the highly curated [quickmarks](./xorg/etc/skel/.config/qutebrowser/quickmarks) for more!\n\n\u003e [!TIP]\n\u003e Offline?\n\u003e Use `man` to access manual pages.  \n\u003e Use `info` to access the GNU documentation system.\n\nDon't use fucking AI[^5] whenever you can't understand something.\n\n## Screenshots\n![Concept](./design/light.png)\n![Alacritty, Tmux and Helix](./design/terminal.png)\n![Gaming](./design/games.png)\n\nIs it supposed to look this pretty?   \nThat's not the point, but I'm happy it does!\n\n## Installation\n1. Boot it up and run `sudo void-installer`, follow the process and done 🎉!  \nYou know how to partition and where to mount stuff, you are a big boy/girl.\n\n\u003e [!TIP]\n\u003e Make sure to pick the services and groups you want!  \n\u003e Enable both iwd and wpa_supplicant if you need Wi-Fi!\n\n2. Now log into your new system and get the remaining drivers.\n\n\u003e [!NOTE]\n\u003e Some of these might already be installed.  \n\u003e Better safe than sorry!\n\nCPU microcode\n```sh\n# For Intel CPUs\nvpm install linux-firmware-intel\n# For AMD CPUs\nvpm install linux-firmware-amd\n```\n\nGPU drivers\n```sh\n# For AMD GPUs\nvpm install mesa-vulkan-radeon xf86-video-amdgpu xf86-video-ati\n# For Nvidia GPUs\nvpm install nvidia nvidia-vaapi-driver nvidia-docker\n# For Intel GPUs\nvpm install intel-video-accel intel-media-driver\n```\n\n3. Lastly, make sure your `~/.xinitrc` is just the way you want it!\n\n### Tips\nPrime comes with Qutebrowser and Chromium installed.\n\nTo preserve your mental health while browsing the modern internet try using a network-wide DNS adblocker such as [NextDNS](https://nextdns.io) if you decide to use Qutebrowser.\n\nUse [uBlock Origin](https://addons.mozilla.org/en-US/firefox/addon/ublock-origin) and [YouTube Unhook](https://addons.mozilla.org/en-US/firefox/addon/youtube-recommended-videos)\non Chromium to achive the same.\n\nDon't forget to install your `~/.gitconfig` and `~/.ssh` keys!\n```ini\n[user]\n  email = sansneolink@gmail.com\n\tname = Alberto Chiaravalli\n\tsigningkey = ~/.ssh/sign.pub\n[gpg]\n\tformat = ssh\n[commit]\n\tgpgsign = true\n[init]\n\tdefaultBranch = main\n[pull]\n\trebase = true\n```\n\nEdit `/etc/dhcpcd.conf` to specify your preferred DNS servers (by default, Cloudflare's DNS is used).   \nTo prevent dhcpcd from overwriting your `/etc/resolv.conf`, uncomment `nohook resolv.conf`.  \nTo use your gateway's default DNS server, comment `nooption domain_name_servers` and `nooption rdnss`.\n\nRemove the default Helix themes to keep exlusively my selection.\n```sh\nsudo rm -r /usr/lib/helix/runtime/themes\n```\n\nInstall goimports (not in the repositories) for on-format automatic imports with Go.\n```sh\ngo install golang.org/x/tools/cmd/goimports@latest\n```\n\nYou can run the `kubectl`, `aws-cli` and `terraform` as Docker containers.  \nThis requires the containerd and docker services to be running.\n\n### Gaming\nThe homonymous build comes with these installed:\n* heroic : play native and windows (with proton) games\n* mgba: play nintendo gba games through an emulator\n* melonds: play nintendo ds games through an emulator\n* dolphin: play nintendo wii games through an emulator\n* cemu: play nintendo wii u games through an emulator\n* ryujinx: play nintendo switch games through an emulator\n\n\u003e [!NOTE]\n\u003e I don't really play games anymore, but it's super cool that almost every game runs flawlessly with no setup required on Linux now!  \n\u003e One limitation is (usually competitive) multiplayer games with kernel level anti-cheats.  \n\u003e Heroic can install pirated[^7] games by first running Warez scene installers.\n\n## Building\n\u003e [!WARNING]\n\u003e Do this on a Void Linux with `qemu-user-static`, `unzip`, `curl` and `wget` installed.\n\n1. Clone the repo\n```\ngit clone https://github.com/sansneo/prime\ncd prime\ngit submodule update --init --remote\n```\n2. Become root and run `build.sh`\n```\nsu\nsh build.sh\n```\n\nThis will take a while...  \nThe resulting files will be available in `build/`.  \nTo learn more, take a look at `build.sh` and refer to [void-linux/void-mklive](https://github.com/void-linux/void-mklive).\n \n### Conclusion\nI love my computer! Do you?   \n\nPlease, [get the fuck out of technology](https://geohot.github.io/blog/jekyll/update/2025/09/13/get-out-of-technology.html) if you are here for the money.  \nBecause of the [state of the world](https://www.slickcharts.com/sp500) there's a lot of that to be made here if you actually care about doing something real and\ncreating value by making infrastructures and computers better instead of just moving data around.  \n\nI really enjoy everything systems programming, secure backend development and cloud, so I'll be doing that.  \nAs time passes I look up to legends such as Rob Pike, Russ Cox and George Hotz more and more.  \nI am 22 years old at the time of writing this, in my 30s I'll have a pretty good understanding of my toolset and computers in general, then hopefully,\nin my 40s I'll be able to compare to them.\n\nThanks to computers, I have the knowledge.  \nThanks to luck, I have the genetics.   \nWhat's stopping me?  \n\nLife can be beautiful (even if it definitely can feel dark at times), self-improvement is the best and my drive for doing what I do will forever grow.\nI believe in you, dear reader. \n\nWe won't stand for mediocrity.\n\nP.S.\nMy Instagram is mostly a face thing and way too distracting for me to actually use.  \nWrite me an email or ask me to add you on WhatsApp \u003c3.\nThanks for reading!\n\n# Footnotes\n[^1]: Yes, this is a Linux kernel with the GNU userspace plus a lot more meaning complexity is gonna be pretty high compared to something like OpenBSD or Plan 9, but I can't\ncompromise on functionality and focusing on the toolset alone, it's really not that bad given you have 20 years to spare, point is, it's doable!\n\n[^2]: This is the real enemy we face as developers, we need to reduce overhead and that mental fatigue that slowly builds while we work!\n  Here's a video from [The Primeagen](https://www.youtube.com/watch?v=ZH3iKbEiks0) I really liked which touches on the topic.\n\n[^3]: If you use a modern CPU on a non-core/libre (meaning modern basically) system,\n  if you are holding a non-rooted phone with Google services running on it (meaning you are a normal person),\n  if you often use something like Discord (eww) or play video games like Valorant (maybe try something single-player or fun with friends) or Rainbow Six Siege that have a\n  kernel-level anti-cheat running, your super secure private hacker ideological setup starts to look cringey.\n  Prime is secure and practical in all the right ways IMO.\n\n[^4]: You can't use Prime unless you bench at least 60kg and are really hot.\n\n[^5]: Come on, really? Up until AIs can write a complete authentication API that's not vulnerable to BOLA, CSRF or anything else in the API OWASP TOP-10\nI will use it very rarely and ask questions I know are common knowledge, it does not work for anything really niche and overly specific, at least for now.\n\n[^6]: The GTK default file picker thing is so fucking bad, just live with it if you must.\n\n[^7]: In a world where so many companies do not care about quality of product as compared to the monetary game, you need to use like 7 different\n  subscription based streaming platforms to watch a whole show and AAA game studios often shit out low effort games at full price, I believe it's totally fair to pirate things.\n  Keep a list of the media you love, shows, games and music you didn't pay for (knowledge shouldn't be paywalled and there's great value there), then give back once rich.  \n  Counter argument, what if everyone does this? Most people are just not technical enough, be grateful you are and enjoy!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsansneo%2Fprime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsansneo%2Fprime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsansneo%2Fprime/lists"}