A nix-powered IDE assembled from individual components, namely:
- kakoune (editor)
- kks (kakoune interop tool)
- lazygit (git client)
- zellij (terminal multiplexer)
- zjstatus (zellij status bar)
- alacritty (terminal emulator)
- fish (shell)
- broot (file picker)
- fzf (picker for everything else)
- yazi (file explorer)
- ripgrep (git-aware grep alternative)
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.
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.
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.
{
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
];
}
{
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
];
}
nix profile install github:felko/vide