Skip to content

A compilation of opinionated, minimal dev packages that can be extended for customised use.

License

Notifications You must be signed in to change notification settings

GetPsyched/not-so-flakey-devshells

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

not-so-flakey-devshells

FlakeHub

A compilation of opinionated, minimal dev packages that can be extended for customised use.

Warning This project is under heavy development. Things could break at any time. Please wait for v1.x.x

Features

  1. Zero dependencies.
  2. As of right now, my flake provides 2 package outputs: default and vscodium.
    • default provides the basic command-line stuff that you would need for the respective language, technology, or whatever the flake is for.
    • vscodium provides extension overrides for VSCodium so that you can get a fully featured IDE for your development.
      Note:
      • You can override this package to append additional extensions, if you wish. See the example below.
      • I plan to add workspace setting overrides as well but I haven't figured that out yet. Stay tuned.

Installation

Add the following to your flake inputs:

inputs = {
  # using FlakeHub
  flakey-devShells.url = "https://flakehub.com/f/GetPsyched/not-so-flakey-devshells/0.x.x.tar.gz";
  flakey-devShells.inputs.nixpkgs.follows = "nixpkgs";

  # using GitHub
  flakey-devShells.url = "github:GetPsyched/not-so-flakey-devshells";
  flakey-devShells.inputs.nixpkgs.follows = "nixpkgs";
};

Example

My flake provides packages for most systems which you can use inside your devShells. Here's how:

# flake.nix
{
  description = "...";

  inputs = {
    flakey-devShells.url = "https://flakehub.com/f/GetPsyched/not-so-flakey-devshells/0.x.x.tar.gz";
    flakey-devShells.inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs = inputs@{ nixpkgs, flakey-devShells, ... }:
    let
      system = "x86_64-linux";
      pkgs = nixpkgs.legacyPackages.${system};
      flakey-devShell-pkgs = flakey-devShells.outputs.packages.${system};
    in
    {
      devShells.${system}.default = pkgs.mkShell {
        buildInputs = [
          # Your regular imports:
          pkgs.some-package-from-nixpkgs

          # Packages from my flake:
          (flakey-devShell-pkgs.default.override { environments = [ "nix" "svelte" ]; })
          (flakey-devShell-pkgs.vscodium.override {
            # This will install an opinionated list of extensions.
            environments = [ "nix" "svelte" ];

            # If you don't want those or want to add a missing one for your workflow, do it here
            extensions = with pkgs.vscode-extensions; [
              some-publisher.some-extension
            ];
          })
        ];
      };
    };
}

About

A compilation of opinionated, minimal dev packages that can be extended for customised use.

Resources

License

Stars

Watchers

Forks