felko / vide

A proof of concept for a nix-powered IDE assembled from individual components

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

vide

A nix-powered IDE assembled from individual components, namely:

selecting a file by content search using broot

Motivation

Thanks to Nix flakes, one can directly invoke nix run github:felko/vide from any computer with Nix installed with flake and nix-command experimental features. The IDE will run and leave no trace after garbage collection. The configuration is completely standalone which means you will get the exact same interface regardless of any potential XDG configurations.

Make your own

The choice of tools and config is very opinionated and is not written in a modular way. Feel free to fork the repo if you want to use different tools or anything that makes it more to your liking. That being said, I won't accept PRs that add support for alternative tools (e.g. other editors, file explorers, etc) since this repo is intended for my personal use.

Installation

While the primary purpose is to be able to run the IDE by URL as shown above, it's also possible to install it on your system, either declaratively or imperatively.

NixOS/nix-darwin

{
  inputs = {
    ...

    vide.url = "github:felko/vide";
  };

  outputs = inputs @ { self, ... }: {
    # darwinConfigurations.myconfig = nix-darwin.lib.darwinSystem rec {
    #   system = "aarch64-darwin";
    # or
    nixosConfigurations.myconfig = nixos.lib.nixosSystem rec {
      system = "x86_64-linux";
      modules = [ ./configuration.nix ];
      specialArgs = {
        inherit inputs;
      };
    };
  };
}
{ pkgs, inputs, system, ... }:

{
  environment.systemPackages = [
    inputs.vide.packages.${system}.vide
  ];
}

Home-manager

{
  inputs = {
    ...

    vide.url = "github:felko/vide";
  };

  outputs = { nixpkgs, ... } @ inputs:
    let
      system = "aarch64-darwin";
      pkgs = nixpkgs.legacyPackages.${system};
    in {
      homeConfigurations.<user> = home-manager.lib.homeManagerConfiguration {
        ...
        extraSpecialArgs = {
          inherit inputs system;
        };
      };
    };
}
{ pkgs, inputs, system, ... }:

{
  home.packages = [
    inputs.vide.packages.${system}.vide
  ];
}

Profile installation

nix profile install github:felko/vide

About

A proof of concept for a nix-powered IDE assembled from individual components

License:Do What The F*ck You Want To Public License


Languages

Language:Nix 58.2%Language:KakouneScript 37.3%Language:Shell 4.6%