Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

                                                             ░░░░░░░           
      ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░████░░░░░       
     ░░███████████████████████████████████████████████████████▒▒███████░░░     
     ░████▒▒▒▒▒   █▒▒▒▒▒▒▒   █▒▒▒▒▒▒   ██▒▒▒▒▒▒   ██▒▒▒▒▒▒   ██▒█▒▒   ██░░░   
     ░███▒▒▒▒▒▒▒▒██▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒██▒▒▒██▒▒▒▒██▒▒▒██▒▒▒▒██▒▒▒███▒▒▒▒▒▒███░░  
     ░████▒▒▒▒███████▒▒▒▒▒████▒▒▒▒▒▒█▒▒▒▒█▒▒▒▒▒█▒▒▒▒██▒▒▒▒█▒▒▒▒██▒▒▒▒▒▒▒▒█░░ 
     ░░██▓▓░░░░░░░░░██░░░░░███░░░░░░░░░░██░░░░░░░░░░░█░░░░░░░░███░░░██░░░██░ 
      ░░▓███████░░░░░█░░░░░███░░░░░░░░███░░░░░░░░░░░░█░░░░███████░░░░█░░░░█░░
       ░███░   █░░░░░██░░░░░██░░░░░░░░░░██░░░░░█░░░░░█░░░░ ██████░░░░█░░░░██░
       ░███░░░░░░░░░░░█░░░░░██░░░░░█░░░░░█░░░░░█░░░░░█░░░░░░█████░░░░█░░░░░█░
       ░█▓▓▒▒▒▒▒▒▒▒▒▒██▒▒▒▒▒██▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒█████▒▒▒▒▒▒▒▒▒██░
       ░▓███▒▒▒▒▒▒▒▒███▒▒▒▒███▒▒▒▒██▒▒▒▒██▒▒▒▒██▒▒▒▒██▒▒▒▒▒██████▒▒▒▒▒▒▒▒██░░
       ░░███████▓████████████████████▓█████████████▓███████████████▓███████░░ 
        ░░█████▓████████████████████▓█████████████▓███████████████▓███████░░  
         ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░   

strapd

A multi-distro quick-bootstrap for comfort and efficiency.

Why would I use this?

For right now, you shouldn't, unless you explicitly wanna help test; That's quickly changing but I'd like to be up front: we're still getting set up. Lots of cleanup to do, lots of configurations to try. That said...

It's nice when a lot of people use the same powerful tool, configured in approximately the same way. Setting up a linux box is a journey, and one worth taking! But once you've done a few, automating and homogenizing a bunch of the process is useful.

Install

Fresh

media/strapd-media build makes the image and media/strapd-media flash writes it to a stick; arch/iso/README.md covers both, and doing either by hand. On the box, run strapd-install.

On your existing Arch or Debian box

git clone <this repo> ~/strapd
cd ~/strapd && arch/install.sh      # or debian/install.sh

Retrying it

arch/install.sh is safe to run again, so pointing it at a newer checkout is how you pick up changes. On its own it leaves configs you have edited alone. To also put $HOME back to the defaults this version ships:

cd ~/strapd && arch/install.sh --reset-configs

That empties the config directories strapd owns and re-seeds them, so files you added next to a shipped config go too. Directories strapd only seeds one file into are left alone apart from that file, which is what keeps your browser profile, input-method profile and git identity. Whatever it replaces is copied to ~/.local/state/strapd/config-backup/ first.

Just the config half, without the packages and system setup:

strapd reinstall configs --dry-run   # see what it would do
strapd reinstall configs

Tests

./run-tests.sh                  # the Arch tree, run whenever
./run-tests.sh debian           # the Debian tree
bash shared/test/shell          # just the neutral core, no distro layer
bash shared/test/acceptance     # needs a live session

The shell tests are approximately unit tests, acceptance spins up virtualized systems

Questions no one actually asked

Is this just a woke fork of Oma-

That's not a hair question, I'm sorry.

Why this workflow?

It's an easy place to onboard linux users fleeing another popular bootstrap. Convergent evolution is good here, so that we may more easily support one another. This workflow will also be honed further, we're still pre-0.1.

What are your credentials here?

I've just been using linux a long time, and working in ops for a decent while. "Please package linux to be usable for others" is extremely my wheelhouse

What's next?

An approximate roadmap:

  • Get the existing experience tested and refined

    • We want to ensure solid support on x86 Apple, Lenovo, and *Framework machines, and then expand into arm where possible within those ecosystems
    • We want at least one active user for each of Arch, Nixos, and Debian, and, at leas one active user for each of Sway, Mango, and Niri
    • We want automated iso builds and super easy installs.
    • We want the code to feel good to work with. There's a fair bit of cleanup to do, and some fingerprints to file off.
  • Modularize

    • Omakase is an approach, but this is more kaiten-zushi; we're all eating fish and rice, but, you might prefer a bit of spice, or to try a bit of everything As such, a few optional modules will be iterated upon, to expand our potential audience, and offer a few new experiences, while keeping a shared Way of Doing Things, so that we can easily support one another.
  • Advertise

    • This is a product of a Moment, we need to raise awareness somewhat quickly

*Questions about Framework are also not hair questions.

This repo will aspire to 1.0, which will honor the basic behavrioural contract of that other bootstrap's version 4, and serve as "base" for the strapd ecosystem.

Is this just slop?

It's "agentically engineered software"; I am using llms. I don't think that matters but, some of you may, and lying about it is gross. I'm also writing chunks by hand, and accepting contributions, without any explicit AI policy.

Is this "malleable software"

All open source software is malleable, so, yes. strapd is exceptionally malleable in that most of the code is interpreted, so changes are largely instant.

Who did that ascii art?

Me, Jae. I used ascii draw studio It was important to me that any iconography for this project have a known, consenting, not-generated origin, so, I'm doing it for now.

About

a linux bootstrap worth using (someday soon; heavy development atm)

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages