nix: 2.16->2.15; home/fish/atuin: remove up key binding

nix-plugins built for a newer nix versions than pkgs.nix makes using
pkgs.nix impossible, and overriding pkgs.nix globally breaks some
derivations, so I have to do per-app overrides (couldn't find a way to
revert it for a single app for some reason). This reverts a nix-plugins
update to 2.16 so I can build it for 2.15 and escape the "symbol not
found" hell.

also override nixVersions.unstable to be 2.15 as well

finally, use custom code for atuin integration because I hate the way it
normally hijacks my up key
This commit is contained in:
chayleaf 2023-08-04 08:30:16 +07:00
parent 44877e1d59
commit 9bf71ca13a
8 changed files with 92 additions and 29 deletions

View file

@ -266,7 +266,7 @@
packages = lib.genAttrs [ packages = lib.genAttrs [
"x86_64-linux" "x86_64-linux"
"aarch64-linux" "aarch64-linux"
] (system: let self = overlay self (import nixpkgs { inherit system; }); in self ); ] (system: let self = overlay ((mkPkgs { inherit system; }) // self) (import nixpkgs { inherit system; }); in self);
nixosImages.router = let pkgs = mkPkgs { system = "aarch64-linux"; }; in { nixosImages.router = let pkgs = mkPkgs { system = "aarch64-linux"; }; in {
emmcImage = pkgs.callPackage ./system/hardware/bpi-r3/image.nix { emmcImage = pkgs.callPackage ./system/hardware/bpi-r3/image.nix {
inherit (nixosConfigurations.router-emmc) config; inherit (nixosConfigurations.router-emmc) config;

View file

@ -1,4 +1,6 @@
{ pkgs, ... }: { pkgs
, config
, ... }:
{ {
programs.fish = programs.fish =
@ -19,6 +21,33 @@
source /etc/fish/config.fish source /etc/fish/config.fish
''; '';
interactiveShellInit = '' interactiveShellInit = ''
# ${config.programs.atuin.package}/bin/atuin init fish | source
set -gx ATUIN_SESSION (atuin uuid)
function _atuin_preexec --on-event fish_preexec
if not test -n "$fish_private_mode"
set -gx ATUIN_HISTORY_ID (atuin history start -- "$argv[1]")
end
end
function _atuin_postexec --on-event fish_postexec
set s $status
if test -n "$ATUIN_HISTORY_ID"
RUST_LOG=error atuin history end --exit $s -- $ATUIN_HISTORY_ID &>/dev/null &
disown
end
end
function _atuin_search
set h (RUST_LOG=error atuin search $argv -i -- (commandline -b) 3>&1 1>&2 2>&3)
commandline -f repaint
if test -n "$h"
commandline -r $h
end
end
bind \cr _atuin_search
if bind -M insert > /dev/null 2>&1
bind -M insert \cr _atuin_search
end
# ${pkgs.any-nix-shell}/bin/any-nix-shell fish | source # ${pkgs.any-nix-shell}/bin/any-nix-shell fish | source
function nix-shell function nix-shell

View file

@ -29,6 +29,7 @@
programs = { programs = {
atuin = { atuin = {
enable = true; enable = true;
enableFishIntegration = false;
settings = { settings = {
update_check = false; update_check = false;
}; };

View file

@ -63,7 +63,8 @@
CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS = "-C link-arg=--ld-path=${pkgs.mold}/bin/mold"; CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS = "-C link-arg=--ld-path=${pkgs.mold}/bin/mold";
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [
mold gimp krita blender-hip
kdenlive glaxnimate mediainfo
ghidra cutter2 ghidra cutter2
openrgb piper openrgb piper
steam-run steam steam-run steam
@ -81,16 +82,12 @@
winetricks winetricks
# protontricks # proton-caller # protontricks # proton-caller
# bottles # bottles
virtmanager virtmanager looking-glass-client
gimp krita blender-hip clang_latest mold
tdesktop rustc rustfmt cargo clippy
clang_latest rustc rustfmt cargo clippy
kdenlive
mediainfo
glaxnimate
lalrpop lalrpop
looking-glass-client
tio tio
tdesktop
]; ];
xdg.configFile."looking-glass/client.ini".text = '' xdg.configFile."looking-glass/client.ini".text = ''
[app] [app]

View file

@ -9,17 +9,38 @@ let
sources = import ./_sources/generated.nix { sources = import ./_sources/generated.nix {
inherit (pkgs) fetchgit fetchurl fetchFromGitHub dockerTools; inherit (pkgs) fetchgit fetchurl fetchFromGitHub dockerTools;
}; };
nixForNixPlugins = pkgs.nixVersions.nix_2_15;
in in
{ {
inherit (nix-gaming) faf-client osu-lazer-bin; inherit (nix-gaming) faf-client osu-lazer-bin;
nixForNixPlugins = pkgs.nixVersions.nix_2_16; inherit nixForNixPlugins;
nix-plugins = pkgs.nix-plugins.overrideAttrs (old: {
src = old.src.override {
rev = "8b9d06ef5b1b4f53cc99fcfde72bae75c7a7aa9c";
hash = "sha256-7Lo+YxpiRz0+ZLFDvYMJWWK2j0CyPDRoP1wAc+OaPJY=";
};
});
nix = nixForNixPlugins;
nixVersions = pkgs.nixVersions.extend (self: super: {
stable = nixForNixPlugins;
unstable = nixForNixPlugins;
});
/* Various patches to change Nix version of existing packages so they don't error out because of nix-plugins in nix.conf
hydra_unstable = pkgs.hydra_unstable.override { nix = nixForNixPlugins; };
harmonia = pkgs.harmonia.override { nix = nixForNixPlugins; };
nix-init = pkgs.nix-init.override { nix = nixForNixPlugins; };
nix-serve = pkgs.nix-serve.override { nix = nixForNixPlugins; };
nix-serve-ng = pkgs.nix-serve-ng.override { nix = nixForNixPlugins; };
nurl = pkgs.nurl.override { nixVersions = builtins.mapAttrs (k: v: nixForNixPlugins) pkgs.nixVersions; };
*/
clang-tools_latest = pkgs.clang-tools_16; clang-tools_latest = pkgs.clang-tools_16;
clang_latest = pkgs.clang_16; clang_latest = pkgs.clang_16;
home-daemon = callPackage ./home-daemon { };
/*ghidra = pkgs.ghidra.overrideAttrs (old: { /*ghidra = pkgs.ghidra.overrideAttrs (old: {
patches = old.patches ++ [ ./ghidra-stdcall.patch ]; patches = old.patches ++ [ ./ghidra-stdcall.patch ];
});*/ });*/
home-daemon = callPackage ./home-daemon { };
# pin version # pin version
looking-glass-client = pkgs.looking-glass-client.overrideAttrs (old: { looking-glass-client = pkgs.looking-glass-client.overrideAttrs (old: {
version = "B6"; version = "B6";
@ -43,13 +64,10 @@ in
''; '';
}; };
rofi-steam-game-list = callPackage ./rofi-steam-game-list { }; rofi-steam-game-list = callPackage ./rofi-steam-game-list { };
searxng = pkgs.searxng.overridePythonAttrs (old: { searxng = pkgs'.python3.pkgs.toPythonModule (pkgs.searxng.overrideAttrs (old: {
inherit (sources.searxng) src; inherit (sources.searxng) src;
version = "unstable-" + sources.searxng.date; version = "unstable-" + sources.searxng.date;
propagatedBuildInputs = old.propagatedBuildInputs ++ (with pkgs'.python3.pkgs; [ }));
pytomlpp
]);
});
# system76-scheduler = callPackage ./system76-scheduler.nix { }; # system76-scheduler = callPackage ./system76-scheduler.nix { };
techmino = callPackage ./techmino { }; techmino = callPackage ./techmino { };

View file

@ -133,8 +133,6 @@ in {
enable_http2 = true; # See https://www.python-httpx.org/http2/ enable_http2 = true; # See https://www.python-httpx.org/http2/
}; };
}; };
# workaround for a bug, will probably get fixed upstream some day
services.uwsgi.instance.vassals.searx.pythonPackages = lib.mkForce (self: [ pkgs.searxng self.pytomlpp ]);
services.nginx.virtualHosts."search.${cfg.domainName}" = let inherit (config.services.searx) settings; in { services.nginx.virtualHosts."search.${cfg.domainName}" = let inherit (config.services.searx) settings; in {
quic = true; quic = true;

View file

@ -67,6 +67,9 @@ in {
${lib.optionalString (cfg.lanCidrV4 != "0.0.0.0/0") "allow ${cfg.lanCidrV4};"} ${lib.optionalString (cfg.lanCidrV4 != "0.0.0.0/0") "allow ${cfg.lanCidrV4};"}
${lib.optionalString (cfg.lanCidrV6 != "::/0") "allow ${cfg.lanCidrV6};"} ${lib.optionalString (cfg.lanCidrV6 != "::/0") "allow ${cfg.lanCidrV6};"}
deny all; deny all;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;
''; '';
locations."/".proxyPass = "http://${lib.quoteListenAddr config.services.hydra.listenHost}:${toString config.services.hydra.port}/"; locations."/".proxyPass = "http://${lib.quoteListenAddr config.services.hydra.listenHost}:${toString config.services.hydra.port}/";
locations."/static/".root = "${config.services.hydra.package}/libexec/hydra/root/"; locations."/static/".root = "${config.services.hydra.package}/libexec/hydra/root/";
@ -75,13 +78,16 @@ in {
services.nix-serve = { services.nix-serve = {
enable = true; enable = true;
package = pkgs.nix-serve-ng.override { package = pkgs.nix-serve-ng;
nix = config.nix.package;
};
bindAddress = "127.0.0.1"; bindAddress = "127.0.0.1";
secretKeyFile = "/secrets/cache-priv-key.pem"; secretKeyFile = "/secrets/cache-priv-key.pem";
}; };
nix.settings.allowed-users = [ "nix-serve" "hydra" "hydra-www" ]; /*services.harmonia = {
enable = true;
signKeyPath = "/secrets/cache-priv-key.pem";
settings.bind = "[::1]:5000";
};*/
nix.settings.allowed-users = [ "nix-serve" "harmonia" "hydra" "hydra-www" ];
# only hydra has access to this file anyway # only hydra has access to this file anyway
nix.settings.extra-builtins-file = "/etc/nixos/private/extra-builtins.nix"; nix.settings.extra-builtins-file = "/etc/nixos/private/extra-builtins.nix";
impermanence.directories = [ impermanence.directories = [
@ -98,16 +104,30 @@ in {
services.nginx.virtualHosts."binarycache.${cfg.domainName}" = { services.nginx.virtualHosts."binarycache.${cfg.domainName}" = {
quic = true; quic = true;
enableACME = true; enableACME = true;
addSSL = true; forceSSL = true;
basicAuthFile = "/secrets/home_password"; basicAuthFile = "/secrets/home_password";
locations."/".proxyPass = "http://${config.services.nix-serve.bindAddress}:${toString config.services.nix-serve.port}"; locations."/".proxyPass = "http://${config.services.nix-serve.bindAddress}:${toString config.services.nix-serve.port}";
extraConfig = ''
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;
'';
# TODO: fix
# https://github.com/nix-community/harmonia/issues/120
/*locations."/".proxyPass = "http://${config.services.harmonia.settings.bind or "[::1]:5000"}";
locations."/".extraConfig = ''
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
'';*/
# zstd on;
# zstd_types application/x-nix-archive;
}; };
services.hydra = { services.hydra = {
enable = true; enable = true;
package = pkgs.hydra_unstable.override {
nix = config.nix.package;
};
hydraURL = "home.${cfg.domainName}/hydra"; hydraURL = "home.${cfg.domainName}/hydra";
listenHost = "127.0.0.1"; listenHost = "127.0.0.1";
minimumDiskFree = 30; minimumDiskFree = 30;

View file

@ -26,7 +26,7 @@ in {
imports = [ ./maubot.nix ]; imports = [ ./maubot.nix ];
networking.firewall.allowedTCPPorts = [ 8008 8448 ]; networking.firewall.allowedTCPPorts = [ 8008 8448 ];
systemd.services.matrix-synapse.serviceConfig.TimeoutStartSec = 180; systemd.services.matrix-synapse.serviceConfig.TimeoutStartSec = 900;
services.nginx.virtualHosts."${cfg.domainName}" = { services.nginx.virtualHosts."${cfg.domainName}" = {
locations."= /.well-known/matrix/server".extraConfig = matrixServerConfigResponse; locations."= /.well-known/matrix/server".extraConfig = matrixServerConfigResponse;