Giter VIP home page Giter VIP logo

outerheaven's Introduction

Directory structure

OuterHeaven/
├──builders/    (currently unused, module for remote build machines to help speed up rebuild time)
├──images/      (images referenced in my configuration such as wallpapers)
├───machines/          (machine specific configuration)
│   ├───ShadowMoses/         [Main Desktop]
│   ├───Tanker/            [My Steam Deck running NixOS]
│   ├───BigShell/           [My laptop, a Lenovo IdeaPad Flex 5 16ALC7]
│   └───jd/           [Another laptop, that I use as my server] (not an omnipotent AI)
├───modules/        (modules, all of which are machine-agnostic)
│   ├───core/         [modules managed with NixOS options and flake provided modules]
│   └───home-manager/        [modules managed with home-manager options and flake provided modules]
├───server-modules/         [modules used for my hosted services on my server]
├───flake.nix       (my flake containing my inputs, outputs and 2 custom variables for each machine.)
└───flake.lock      (the flake lock, which controls version locks for each input.)

General philosophy

The general philosophy is this configuration is simplicity and modularity. Mostly so people I tell about NixOS can look at my configuration and understand it.

How 2 Install?

First, partition your drives with disko with the following commands

sudo nix --extra-experimental-features 'nix-command flakes' run github:nix-community/disko -- --mode zap_create_mount --flake github:raidenovich/OuterHeaven

(Or preferably use the minimal install, which has the same disko file anyways)

Secondly, run the nixos-install command.

sudo nixos-install --flake github:raidenovich/OuterHeaven 

My personal advice is to clone the git repo and not remotely build as sometimes it can disconnect from your wifi network while building. (Don't ask me why, I don't know)

What to do post-install? (note for self)

(In order)

1 - Import sops keys

2 - Create a user password with sops

3 - Create a root password with sops

And with that, you'll get this config on a brand new computer! Hopefully.

Versioning

The versioning would be largely inconsistent if I version every update since this is something I modify daily or at the very worst weekly BUT when there is a major change I will bump the number up from 2.0 -> 3.0 for example. I will update the current major version we're on when I release big updates for this config such as changes to config structre.

Current major version: 2.0
Next Major version: 3.0 (will be released when my configuration is a multi-system configuration like mentioned above.)

Why?

I just wanted to share my config, that's all :P

Some stuff isn't working, why?

I admit that I sometimes set up stuff in my config that I don't make use of all the time so if there is a problem I might not notice it myself so feel free to open an issue (No, really I don't mind at all. Do it. It helps me better my system too.)

Heirarchy of fixes/workarounds applied

├──modules/core/gui/steam.nix    (gamescope workaround)
├──modules/home-manager/gui/flameshot.nix      (flameshot wayland fix)
├──modules/home-manager/gui/vesktop.nix        (vesktop override)
├──modules/home-manager/packages/packages.nix   (packages module)
└──modules/home-manager/packages/pkgcustom/     (pkgcustom)

Info about workaround/fixes applied

See paranthesis' above for related modules and their directories.

gamescope workaround

The override used here for Gamescope running through steam on NixOS (yes, very specifically gamescope running through Steam on NixOS) does not bring up the gamescope window because gamescope looks for certain libraries in the provided FHS environment and it can't find them in said FHS environment, therefore making this workaround necessary.

flameshot wayland fix

The overrides used here make it so that flameshot is compiled with the appropriate cmake flags so that it works on Wayland and locks the version to a certain commit known to work with Wayland. (flameshot-org/flameshot#3012)

vesktop override

The overrides used here removes Vencord related branding and replaces the icons and name with regular Discord's and adds launch flags that help with screen sharing on Wayland.

packages module

This home manager managed module contains packages I manage under home-manager, alongside some overrides and override templates that I plan to reuse later.

pkgcustom

packages that I plan to submit to nixpkgs in the future, some of which are referenced in packages.nix but mostly not. The name is pkgcustom because it sounded cool in my head.

Plans

  • non-nixlang configurations in their own folder (so that the used languages percentage can be accurate)
  • Multi-system configuration
  • Jovian NixOS setup
  • Impermanence
  • Disko (for each machine)

...And more! (There are some things that are too insignificant for me to permanently add to this plans section)

Cool people

people I was so gracious as to steal take inspiration from :)

https://git.notashelf.dev/NotAShelf/nyx (I didn't actually take anything from notashelf's config, but felt like adding them anyway because funny.)
https://git.jacekpoz.pl/jacekpoz/niksos (I literally stole the entire README.md format from this guy)
https://git.outfoxxed.me/outfoxxed/nixnew (There are way too many things to say about this one)
https://github.com/kinzoku-dev/nebula (this person steals from me) (I'm flattered by it)
https://github.com/IogaMaster/dotfiles (added here for losing their mind and trying to help me set up my minecraft server AND making awesome nix videos)
https://github.com/vimjoyer/nixconf (added for being a cool guy and making super duper awesome nix videos)
https://github.com/iynaix/dotfiles (added for being a nix wizard.)

Special thanks to:

Anyone and everyone who has starred this config. It makes me super happy to know that my code helps some people! :^)

outerheaven's People

Contributors

raidenovich avatar

Stargazers

Ciel Yu avatar  avatar nebu avatar  avatar T0PSH31F avatar  avatar Jacob Birkett avatar Bernd Müller avatar raf avatar  avatar  avatar Nicholas B avatar Thomas Leon Highbaugh avatar HiWhatName avatar  avatar  avatar  avatar Ayman avatar  avatar  avatar

Watchers

 avatar Ayman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.