Skip to content
/ vide Public

Nix-powered modal IDE composed of individual tools.

License

Notifications You must be signed in to change notification settings

lokasku/vide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vide

Nix-powered modal IDE composed of individual tools, namely :

Motivation

Leveraging Nix flakes, nix run github:lokasku/vide enables a fully reproducible and ephemeral IDE environment on any system with Nix installed, utilizing the flakes and nix-command experimental features. This setup ensures the IDE leaves no trace after garbage collection, with configurations entirely encapsulated to deliver a consistent interface, independent of any existing XDG configurations.

This solution is ideal for frequent system transitions, eliminating the need for reinstallation or reconfiguration of the IDE. The modal design reduces dependencies to just a terminal application, available on nearly all platforms.

This IDE addresses the challenges of frequent IDE reconfiguration, offering a rapid, uniform development environment that bypasses time-intensive setup, including managing dotfiles and symlinks.

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:lokasku/vide";
  };

  outputs = inputs @ { self, ... }: {
    nixosConfigurations.myconfig = nixos.lib.nixosSystem rec {
      ...
      system = "x86_64-linux";
      specialArgs = {
        inherit inputs;
      };
    };
  };
}
{ pkgs
, inputs
, system
, ...
}:
  {
    environment.systemPackages = [
      inputs.vide.packages.${system}.vide
    ];
  }

Home Manager

{
  inputs = {
    ...
    vide.url = "github:lokasku/vide";
  };

  outputs = { nixpkgs, ... } @ inputs:
    let
      system = "x86_64-linux";
      pkgs = nixpkgs.legacyPackages.${system};
    in {
      homeConfigurations.lokasku = home-manager.lib.homeManagerConfiguration {
        ...
        extraSpecialArgs = {
          inherit inputs system;
        };
      };
    };
}
{ pkgs
, inputs
, system
, ...
}:
  {
    home.packages = [
      inputs.vide.packages.${system}.vide
    ];
  }

Credits

This project was inspired by Felko's Vide project. The original idea of using Nix to combine various tools belongs to him. Thank you Felko for sharing this concept.

About

Nix-powered modal IDE composed of individual tools.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published