Git Product home page Git Product logo

everything-nix's Introduction

Welcome to the Satellite

In case you are not familiar with nix/nixos, this is a collection of configuration files which build all my systems in a declarative manner. The tool used to configure the global system is called nixos, and the one used to configure the individual users is called home-manager.

A visual history of my setup is in the works!

Features this repository includes:

  • Sets up all the apps I use — including git, neovim, fish, tmux, starship, hyprland, anyrun, discord, zathura, wezterm & much more.
  • Sets up my entire homelab — including zfs-based impermanence, automatic let's-encrypt certificates, tailscale, syncthing, vaultwarden, whoogle, pounce, calico, smos, intray, actual & more.
  • Consistent base16 theming using stylix
  • Declarative secret management using sops-nix

The current state of this repo is a refactor of my old, messy nixos config, based on the structure of this template.

Hosts

This repo's structure is based on the concept of hosts - individual machines configured by me. I'm naming each host based on things in space/mythology (they are the same picture). The hosts I have right now are:

  • tethys — my personal laptop
  • lapetus — older laptop running as a server
  • euporie — barebones host for testing things insdie a VM
  • enceladus — my android phone. Although not configured using nix, this name gets referenced in some places

File structure

Location Description
common Configuration loaded on both nixos and home-manager
devshells Nix shells
docs Additional documentation regarding my setup
home Home manager configurations
hosts/nixos Nixos configurations
modules Custom generic/nixos/home-manager modules
overlays Nix overlays
pkgs Nix packages
flake.nix Nix flake entrypoint!
scripts Bash scripts that come in handy when on a live cd
.sops.yaml Sops entrypoint
stylua.toml Lua formatter config for the repo

Points of interest

Here's some things you might want to check out:

Things I use

This does not include links to every plugin I use for every program here. You can see more details in the respective configurations.

Fundamentals

Input handling

  • kanata — software-level keyboard layout customizer. One of the few such programs with support for chording
  • opentabletdriver

Graphical

Terminal

There are many clis I use which I did not include here, for the sake of brevity.

  • Neovim — my editor
  • Tmux — terminal multiplexer
  • Fish — user friendly shell
  • yazi — file manager
  • Catgirl — irc client
  • lazygit — git tui
  • Self management:
    • Smos — selfhosted comprehensive self-management system
    • Intray — selfhosted GTD capture tool

Services

homelab-homepage

Most services are served over tailscale, using certificates generated by let's encrypt.

Hall of fame

Includes links to stuff which used to be in the previous section but is not used anymore. Only created this section in June 2023, so stuff I used earlier might not be here. Sorted with the most recently dropped things at the top.

  • Ranger — I switched to Yazi
  • firenvim - the concept is cool, but I found the whole thing pretty annoying at times
  • venn.nvim — the concept is cool, but I would use it about once a year
  • hydra.nvim — I was rarely using it, and it was taking up precious config space
  • winbar.nvim — I mostly had this here for the looks, so I moved the path it provided to my statusbar
  • treesitter-visual-context.nvim — felt like this was cluttering my screen more than anything
  • Paperplanes.nvim — replaced by a single curl call
  • Eww - experimented with eww for a bit, but setup was painful and bars are a bit useless
  • Neogit — was a bit slow / clunky, so I switched to lazygit
  • Slambda — custom keyboard chording utility. I retired the project in favour of kanata
  • GPG + pass — I switched to vaultwarden
  • Agenix & homeage — I switched to sops-nix
  • Mind.nvim — self management tree editor. The project got archived, so I switched to Smos.
  • Null-ls — general purpose neovim LSP. The project got archived, so I switched to formatter.nvim.
  • Wofi — program launcher. I switched to Anyrun.
  • Alacritty — terminal emulator. I switched to Wezterm.
  • Xmonad — xorg window manager. I switched to Hyprland.
  • Chrome — web browser. I switched to firefox because it offers a better HM module.

everything-nix's People

Contributors

prescientmoon avatar

Stargazers

Christopher Chalcraft 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.