forked from pub-solar/os
Our first real readme
This commit is contained in:
parent
524845a460
commit
b3a4ae5bbc
131
README.md
131
README.md
|
@ -1,95 +1,46 @@
|
||||||
[![NixOS](https://img.shields.io/badge/NixOS-unstable-blue.svg?style=flat&logo=NixOS&logoColor=white)](https://nixos.org)
|
# PubSolarOS
|
||||||
[![MIT License](https://img.shields.io/github/license/divnix/devos)][mit]
|
|
||||||
[![Chat](https://img.shields.io/matrix/devos:nixos.org.svg?label=%23devos%3Anixos.org&logo=matrix&server_fqdn=matrix.org)][matrix]
|
|
||||||
|
|
||||||
> #### ⚠ Advisory ⚠
|
Welcome to PubSolarOS, a very opiniated Linux (NixOS) distribution for the nerdy.
|
||||||
> DevOS requires the [flakes][flakes] feature available via an _experimental_
|
|
||||||
> branch of [nix][nix]. Until nix 2.4 is released, this project
|
|
||||||
> should be considered unstable.
|
|
||||||
|
|
||||||
### Why?
|
We're creating this distribution for our own personal use and fun, but
|
||||||
Make an awesome template for NixOS users, with consideration for common tools like [home-manager][home-manager],
|
take pride in our craft. As of 14.08.22 it's running on 14 physical devices,
|
||||||
[devshell][devshell], and [more](./doc/integrations).
|
both `x86_64` and `ARM`.
|
||||||
|
|
||||||
### No. Why _flakes_?
|
At its core, it's a NixOS installation running our configuration. The UX
|
||||||
Flakes are a part of an explicit push to improve [Nix's UX](https://github.com/NixOS/nix/blob/master/doc/manual/src/contributing/cli-guideline.md), and have become an integral part of that effort.
|
decisions and the way the project is structured are what make it
|
||||||
|
_PubSolarOS_:
|
||||||
|
|
||||||
They also make [Nix expressions](https://nixos.org/manual/nix/unstable/expressions/expression-syntax.html) easier to distribute and reuse with convient [flake references](https://github.com/NixOS/nix/blob/master/src/nix/flake.md#flake-references) for building or using packages, modules, and whole systems.
|
* Reproducibility is king, and the future is with declarative and functional
|
||||||
|
programming. Even if Nix does not turn out to be the end-all-be-all of
|
||||||
|
reproducible package management (Guix looks good), it has a plethora
|
||||||
|
of packages, a very active and helpful community, and very solid
|
||||||
|
software engineering practices.
|
||||||
|
* Because reproducibility is king, we're using nix flakes for locking flake
|
||||||
|
dependencies. [Digga](https://github.com/divnix/digga) is our flake
|
||||||
|
utility library, made by the wonderful people of the Divnix community.
|
||||||
|
* Physical devices are not shared anymore nowadays. Only seldomly will you
|
||||||
|
find shared devices that need more than one user account. For this
|
||||||
|
reason, only one user (excluding `root`) is assumed.
|
||||||
|
* Keyboard navigation wins where it matters; ergonomics, programmability,
|
||||||
|
efficiency, and speed. We use a tiling window manager (`sway`) and
|
||||||
|
prioritize cli-based solutions where sensible. The editor is `neovim`
|
||||||
|
configured to be just as opiniated as the operating system it is a part
|
||||||
|
of. For mailing, `neomutt` is the default, but we're more divided on
|
||||||
|
that part.
|
||||||
|
* We like new and shiny things, so we've moved to Wayland and pipewire.
|
||||||
|
* SICHERHEIT is written in capital letters at pub.solar, so we have first-
|
||||||
|
class disk-encryption support. Currently in the works is a paranoid
|
||||||
|
mode where the device can only hibernate (no more sleep or lockscreen)
|
||||||
|
so your data is locked any time you leave the device.
|
||||||
|
* Free software is better. If we can avoid it, nonfree software is avoided.
|
||||||
|
By default, `allowUnfree` is `false` so we don't ship non-free software
|
||||||
|
in a basic PubSolarOS ISO. However, nothing prevents you from using
|
||||||
|
as much non-free software as you like.
|
||||||
|
* Automation is better. The reproducibility of nix feels so much more
|
||||||
|
powerful once you're deploying your new configuration from your laptop
|
||||||
|
to all your other devices with one command. We've automated CI (WIP).
|
||||||
|
* Community is important. We just like working on this together, and it
|
||||||
|
feels really good to see our progress at the end of a
|
||||||
|
[hakken.irl](https://pub.solar/hakken) session.
|
||||||
|
|
||||||
## Getting Started
|
To get started, take a look at the quick start guide in our docs.
|
||||||
Check out the [guide](https://devos.divnix.com/start) to get up and running.
|
|
||||||
Also, have a look at [_flake.nix_](./flake.nix). If anything is not immediately
|
|
||||||
discoverable via "[`digga`][digga]'s [`mkFlake`][mk-flake],
|
|
||||||
please file a bug report.
|
|
||||||
|
|
||||||
### Status: Beta
|
|
||||||
Although this project has already matured quite a bit, especially through
|
|
||||||
recent outfactoring of [`digga`][digga], a fair amount of api polishing is still
|
|
||||||
expected. There are unstable versions (0._x_._x_) to help users keep track
|
|
||||||
of changes and progress, and a [`develop`](https://github.com/divnix/devos/tree/develop) branch for the brave 😜
|
|
||||||
|
|
||||||
## In the Wild
|
|
||||||
* @Pacman99: [Personal](https://gitlab.com/coffeetables/lower), [Server](https://gitlab.com/coffeetables/myrdd)
|
|
||||||
* [@danielphan2003](https://github.com/danielphan2003/flk) and make sure to also check out [devos-ext-lib][devos-ext-lib]
|
|
||||||
* [PubSolarOS](https://git.sr.ht/~b12f/pub-solar-os)
|
|
||||||
|
|
||||||
## Shoulders
|
|
||||||
This work does not reinvent the wheel. It stands on the [shoulders of the
|
|
||||||
following giants][giants]:
|
|
||||||
|
|
||||||
### :onion: — like the layers of an onion
|
|
||||||
- [`divnix/digga`][digga]
|
|
||||||
- [`gytis-ivaskevicius/flake-utils-plus`][fup]
|
|
||||||
- [`numtide/flake-utils`][fu]
|
|
||||||
|
|
||||||
### :family: — like family
|
|
||||||
- [`numtide/devshell`][devshell]
|
|
||||||
- [`serokell/deploy-rs`][deploy]
|
|
||||||
- [`berberman/nvfetcher`][nvfetcher]
|
|
||||||
- [`NixOS/nixpkgs`][nixpkgs]
|
|
||||||
|
|
||||||
:heart:
|
|
||||||
|
|
||||||
## Inspiration & Art
|
|
||||||
- [hlissner/dotfiles][dotfiles]
|
|
||||||
- [nix-user-chroot](https://github.com/nix-community/nix-user-chroot)
|
|
||||||
- [Nickel](https://github.com/tweag/nickel)
|
|
||||||
- [Awesome Nix](https://github.com/nix-community/awesome-nix)
|
|
||||||
- [devshell](https://github.com/numtide/devshell)
|
|
||||||
|
|
||||||
## Divnix
|
|
||||||
The divnix org is an open space that spontaneously formed out of "the Nix".
|
|
||||||
It is really just a place where otherwise unrelated people work
|
|
||||||
together and get stuff done.
|
|
||||||
|
|
||||||
It's a place to stop "geeking out in isolation" (or within company boundaries).
|
|
||||||
A place to experiment, learn together, and iterate quickly on best practices.
|
|
||||||
That's what it is.
|
|
||||||
|
|
||||||
It might eventually become a non-profit if that's not too complicated or, if those
|
|
||||||
goals are sufficiently upstreamed into "the Nix", dissolved.
|
|
||||||
|
|
||||||
# License
|
|
||||||
DevOS is licensed under the [MIT License][mit].
|
|
||||||
|
|
||||||
[community]: https://github.com/divnix/devos/tree/community
|
|
||||||
[core]: https://github.com/divnix/devos
|
|
||||||
[deploy]: https://github.com/serokell/deploy-rs
|
|
||||||
[devshell]: https://github.com/numtide/devshell
|
|
||||||
[digga]: https://github.com/divnix/digga
|
|
||||||
[dotfiles]: https://github.com/hlissner/dotfiles
|
|
||||||
[flake-doc]: https://github.com/NixOS/nix/blob/master/src/nix/flake.md
|
|
||||||
[flakes]: https://nixos.wiki/wiki/Flakes
|
|
||||||
[fu]: https://github.com/numtide/flake-utils
|
|
||||||
[fup]: https://github.com/gytis-ivaskevicius/flake-utils-plus
|
|
||||||
[giants]: https://en.wikipedia.org/wiki/Standing_on_the_shoulders_of_giants
|
|
||||||
[home-manager]: https://nix-community.github.io/home-manager
|
|
||||||
[mit]: https://mit-license.org
|
|
||||||
[mk-flake]: https://github.com/divnix/digga/tree/main/src/mkFlake
|
|
||||||
[nix]: https://nixos.org/manual/nix/stable
|
|
||||||
[nixos]: https://nixos.org/manual/nixos/stable
|
|
||||||
[nixpkgs]: https://github.com/NixOS/nixpkgs
|
|
||||||
[nvfetcher]: https://github.com/berberman/nvfetcher
|
|
||||||
[please]: https://github.com/nrdxp/devos/tree/nrd
|
|
||||||
[matrix]: https://matrix.to/#/#devos:nixos.org
|
|
||||||
[devos-ext-lib]: https://github.com/divnix/devos-ext-lib
|
|
||||||
|
|
Loading…
Reference in a new issue