Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@
];
};
in {
packages = nixpkgs.lib.genAttrs supportedSystems (system:
import ./pkgs { pkgs = mkPkgs system; }
);

overlays = import ./overlays {inherit inputs;};

nixosConfigurations = {
Expand Down
3 changes: 1 addition & 2 deletions home/modules/desktop/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ in {
unstable.spotify
] ++ lib.optionals isDarwin [
dockutil
vimr
(callPackage ./vimr-wrapper.nix { inherit config; })
(vimr.override { neovim = config.programs.neovim.finalPackage; })
];

file = {
Expand Down
28 changes: 0 additions & 28 deletions home/modules/desktop/vimr-wrapper.nix

This file was deleted.

70 changes: 37 additions & 33 deletions pkgs/default.nix
Original file line number Diff line number Diff line change
@@ -1,38 +1,42 @@
# Custom packages, that can be defined similarly to ones from nixpkgs
# You can build them using 'nix build .#example'
{ pkgs ? import <nixpkgs> {} } :
rec {

mbta-mcp-server = pkgs.callPackage ./mbta-mcp-server { };
tunnelmanager = pkgs.callPackage ./tunnelmanager { };

vimr = pkgs.callPackage ./vimr { };
leftovers = pkgs.callPackage ./leftovers { };

replicated = pkgs.callPackage ./replicated { };
kots = pkgs.callPackage ./kots { };
troubleshoot-sbctl = pkgs.callPackage ./sbctl { };
helm-beta = pkgs.callPackage ./helm-beta { };

llmPlugins = pkgs.callPackage ./llm/plugins { };

instruqt = pkgs.callPackage ./instruqt { };

imgpkg = pkgs.callPackage ./imgpkg { };

icalpal = pkgs.callPackage ./icalpal { };
mole = pkgs.callPackage ./mole { };

zapier-platform-cli = pkgs.callPackage ./zapier-platform-cli { };
spiral-cli = pkgs.callPackage ./spiral-cli { };
readwise-cli = pkgs.callPackage ./readwise-cli { };
hermes-agent = pkgs.callPackage ./hermes-agent { };
vault-gardener = pkgs.callPackage ./vault-gardener { };
obsidian-headless = pkgs.callPackage ./obsidian-headless { };
{ pkgs ? import <nixpkgs> {} }:
let
inherit (pkgs) lib;
in
{
mbta-mcp-server = pkgs.callPackage ./mbta-mcp-server {};
tunnelmanager = pkgs.callPackage ./tunnelmanager {};

leftovers = pkgs.callPackage ./leftovers {};

replicated = pkgs.callPackage ./replicated {};
kots = pkgs.callPackage ./kots {};
troubleshoot-sbctl = pkgs.callPackage ./sbctl {};
helm-beta = pkgs.callPackage ./helm-beta {};

instruqt = pkgs.callPackage ./instruqt {};
imgpkg = pkgs.callPackage ./imgpkg {};

mole = pkgs.callPackage ./mole {};
zapier-platform-cli = pkgs.callPackage ./zapier-platform-cli {};
spiral-cli = pkgs.callPackage ./spiral-cli {};
readwise-cli = pkgs.callPackage ./readwise-cli {};
hermes-agent = pkgs.callPackage ./hermes-agent {};
vault-gardener = pkgs.callPackage ./vault-gardener {};
obsidian-headless = pkgs.callPackage ./obsidian-headless {};

# simonw tools
claude-code-transcripts = pkgs.callPackage ./claude-code-transcripts { };
ttok = pkgs.callPackage ./ttok { };
rodney = pkgs.callPackage ./rodney { };
showboat = pkgs.callPackage ./showboat { };
claude-code-transcripts = pkgs.callPackage ./claude-code-transcripts {};
exa-py = pkgs.callPackage ./exa-py {};
ttok = pkgs.callPackage ./ttok {};
rodney = pkgs.callPackage ./rodney {};
showboat = pkgs.callPackage ./showboat {};

} // lib.optionalAttrs pkgs.stdenv.isDarwin {
vimr = pkgs.callPackage ./vimr {};
icalpal = pkgs.callPackage ./icalpal {};

} // lib.optionalAttrs (pkgs.stdenv.isDarwin && pkgs.stdenv.isAarch64) {
mlx-lm = pkgs.callPackage ./mlx-lm {};
}
5 changes: 3 additions & 2 deletions pkgs/mlx-lm/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@ python3.pkgs.buildPythonPackage rec {
owner = "ml-explore";
repo = "mlx-lm";
rev = "v${version}";
hash = "sha256-d//JUhvRpNde1+drWWYJ9lmkXi+buaa1zxDg4rQdt0o=";
hash = "sha256-d//JUhvRpNde1+drWWYJ9lmkXi+buaa1zxDg4rQdt0o=";
};


pyproject = true;
build-system = [
python3.pkgs.setuptools
python3.pkgs.wheel
Expand Down
21 changes: 20 additions & 1 deletion pkgs/vimr/default.nix
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
{ fetchurl, lib, stdenv }:
{ fetchurl, lib, stdenv, makeWrapper, vimUtils, neovim ? null }:

let
hasNeovim = neovim != null;
in
stdenv.mkDerivation rec {
pname = "vimr";
version = "v0.63.0";
Expand All @@ -10,13 +13,28 @@ stdenv.mkDerivation rec {
sha256 = "sha256-/wmfzSezc68IRRPHfh24Y31eyjcH9OElfCGBjN9soLg=";
};

nativeBuildInputs = lib.optionals hasNeovim [ makeWrapper ];

dontFixup = true;

installPhase = ''
runHook preInstall

APP_DIR="$out/Applications/VimR.app"
mkdir -p "$APP_DIR"
cp -r . "$APP_DIR"

mkdir -p "$out/bin"
${if hasNeovim then ''
makeWrapper "$APP_DIR/Contents/Resources/vimr" "$out/bin/vimr" \
${lib.concatStringsSep " " neovim.wrapperArgs} \
--add-flags '--nvim' \
--add-flags '--cmd "set packpath^=${vimUtils.packDir neovim.packpathDirs}"' \
--add-flags '--cmd "set rtp^=${vimUtils.packDir neovim.packpathDirs}"'
'' else ''
ln -s "$APP_DIR/Contents/Resources/vimr" "$out/bin/vimr"
''}

runHook postInstall
'';

Expand All @@ -25,5 +43,6 @@ stdenv.mkDerivation rec {
homepage = "https://twitter.com/VimRefined";
license = licenses.mit;
platforms = [ "x86_64-darwin" "aarch64-darwin" ];
mainProgram = "vimr";
};
}