Size: a a a

2021 June 25

АБ

Александр Бантьев... in NixOS
Но да, сейчас оно в single-user режиме, как оно для нескольких пользователей будет работать
источник

АБ

Александр Бантьев... in NixOS
С какой стороны?
источник

АБ

Александр Бантьев... in NixOS
Matrix -> tg иначе и не получится
источник

SU

Sir Updatesalot in NixOS
ну вот да, и это раздражало
источник

SU

Sir Updatesalot in NixOS
кстати Panfrost завелся, наверное стоит описать телодвижения для Orange Pi 3 на вики
источник

VL

Valerii Leontiev in NixOS
завернуть бы... ибо вряд ли вайбер разродится фиксом
источник

IS

Igor Sidorov in NixOS
всем привет! подскажите пожалуйста

у меня в конфиге системы есть что-то примерно вот такое

programs.neovim = {
 enable = true;
 configure = {
  ...конфиг
  ...плагины
 };
};

соответственно после ребилда у меня появляется neovim который запускается с указанным конфигом и плагинами, все великолепно

теперь я хочу чтобы у меня был второй бинарник (например neovim2) который запускается с другим конфигом и плагинами, но не могу понять как это сделать

насколько я понимаю нужно вручную добавить в конфиг примерно то что делается в https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/programs/neovim.nix

т.е. я например делаю такое

{ pkgs, ... }: let
 foovim = pkgs.wrapNeovim pkgs.neovim-unwrapped { };
in {
 environment.systemPackages = [ foovim ];
}

но после ребилда с таким конфигом, бинарник foovim не появляется, для него создается все тот же neovim который заменяет изначальный, заданный в programs.neovim
источник

АБ

Александр Бантьев... in NixOS
Тебе нужно либо переименовать бинарник, либо сделать свой скрипт с нужным именем
источник

IS

Igor Sidorov in NixOS
а как его переименовать?
источник

АБ

Александр Бантьев... in NixOS
Например,


{ pkgs, ... }: let
foovim = pkgs.writeShellScriptBin "foovim" ''exec "${pkgs.wrapNeovim pkgs.neovim-unwrapped { }}/bin/neovim" "$@"'';
in {
environment.systemPackages = [ foovim ];
}
источник

АБ

Александр Бантьев... in NixOS
Либо


{ pkgs, ... }: let
foovim = pkgs.writeShellScriptBin "foovim" ''exec -a "$0" "${pkgs.wrapNeovim pkgs.neovim-unwrapped { }}/bin/neovim" "$@"'';
in {
environment.systemPackages = [ foovim ];
}
источник

IS

Igor Sidorov in NixOS
господи иисусе
источник

IS

Igor Sidorov in NixOS
ок спасибо, сейчас попробую
источник

АБ

Александр Бантьев... in NixOS
Ну а если хочешь переименовать скрипт который wrapNeovim выдает, то

{ pkgs, ... }: let
foovim = (pkgs.wrapNeovim pkgs.neovim-unwrapped { }).overrideAttrs (_: { postInstall = "mv $out/bin/neovim $out/bin/foovim"; });
in {
environment.systemPackages = [ foovim ];
}
источник

IS

Igor Sidorov in NixOS
хммм а это не сломает мой изначальный neovim который ставится через programs.neovim = {}
источник

IS

Igor Sidorov in NixOS
спасибо огромное! похоже сработало
источник

IS

Igor Sidorov in NixOS
но для меня это выглядит как мистика какая-то конечно, не пойму почему pkgs.wrapNeovim в этом конфиге

{ pkgs, ... }: let
 foovim = pkgs.wrapNeovim pkgs.neovim-unwrapped { };
in {
 environment.systemPackages = [ foovim ];
}

заменяет стандартный неовим, а вот в этом конфиге

{ pkgs, ... }: let
foovim = pkgs.writeShellScriptBin "foovim" ''exec "${pkgs.wrapNeovim pkgs.neovim-unwrapped { }}/bin/neovim" "$@"'';
in {
environment.systemPackages = [ foovim ];
}

не заменяет
источник

ц

ц in NixOS
Ну ты же не меняешь название бинарика в первом
источник

АБ

Александр Бантьев... in NixOS
Потому что у тебя получается два бинарника с названием neovim
источник

АБ

Александр Бантьев... in NixOS
foovim -- это просто название биндинга (переменной, если так понятнее)
источник