Add overlay for nixpkgs.
This commit is contained in:
parent
7b0cc62e30
commit
36c0a37045
4 changed files with 107 additions and 48 deletions
107
helpers.nix
107
helpers.nix
|
@ -11,31 +11,104 @@ with inputs.nixpkgs.lib; {
|
||||||
user ? "fern",
|
user ? "fern",
|
||||||
extraModules ? [],
|
extraModules ? [],
|
||||||
}: let
|
}: let
|
||||||
|
system = platform;
|
||||||
|
secrets = builtins.toString inputs.secrets;
|
||||||
|
|
||||||
|
pull-requests = {
|
||||||
|
fluffychat = import nixpkgs-pr-fluffychat {
|
||||||
|
inherit system;
|
||||||
|
overlays = [
|
||||||
|
(final: prev: {
|
||||||
|
fluffychat = prev.fluffychat.overrideAttrs (prevAttrs: rec {
|
||||||
|
desktopItems = [
|
||||||
|
((builtins.elemAt prevAttrs.desktopItems 0).override {startupWMClass = "fluffychat";})
|
||||||
|
];
|
||||||
|
});
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
feishin = import nixpkgs-pr-feishin {
|
||||||
|
inherit system;
|
||||||
|
overlays = [
|
||||||
|
(final: prev: {
|
||||||
|
feishin = prev.feishin.overrideAttrs (prevAttrs: rec {
|
||||||
|
pname = "feishin";
|
||||||
|
version = "0.18.0";
|
||||||
|
|
||||||
|
src = prev.fetchFromGitHub {
|
||||||
|
owner = "jeffvli";
|
||||||
|
repo = "feishin";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-4gcS7Vd7LSpEByO2Hlk6nb8V2adBPh5XwWGCu2lwOA4=";
|
||||||
|
};
|
||||||
|
|
||||||
|
pnpmDeps = prev.pnpm_10.fetchDeps {
|
||||||
|
inherit pname version src;
|
||||||
|
hash = "sha256-1MGxrUcfvazxAubaYAsQuulUKm05opWOIC7oaLzjr7o=";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
userPackages = final: prev: {
|
||||||
|
# WebOne HTTP proxy.
|
||||||
|
webone = prev.pkgs.callPackage ./packages/webone {};
|
||||||
|
# Yazi Gruvbox theme.
|
||||||
|
yazi-flavour-gruvbox-dark = prev.pkgs.callPackage ./packages/yazi-flavour-gruvbox {};
|
||||||
|
# Latest FluffyChat.
|
||||||
|
fluffychat = pull-requests.fluffychat.fluffychat;
|
||||||
|
# Latest Feishin.
|
||||||
|
feishin = pull-requests.feishin.feishin;
|
||||||
|
# PrismLauncher with Temurin JRE.
|
||||||
|
prismlauncher = prev.prismlauncher.override {
|
||||||
|
jdks = [
|
||||||
|
prev.pkgs.temurin-jre-bin
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
permittedInsecurePackages = [
|
||||||
|
"dotnet-sdk-6.0.428"
|
||||||
|
"dotnet-runtime-6.0.36"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
overlays = [
|
||||||
|
userPackages
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
deployPkgs = import nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
overlays = [
|
||||||
|
deploy-rs.overlays.default
|
||||||
|
(self: super: {
|
||||||
|
deploy-rs = {
|
||||||
|
inherit (pkgs) deploy-rs;
|
||||||
|
lib = super.deploy-rs.lib;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nixosConfigurations.${hostname} = nixosSystem {
|
nixosConfigurations.${hostname} = nixosSystem {
|
||||||
system = platform;
|
inherit system pkgs;
|
||||||
pkgs = import nixpkgs {
|
|
||||||
inherit system;
|
|
||||||
config = {
|
|
||||||
allowUnfree = true;
|
|
||||||
permittedInsecurePackages = [
|
|
||||||
"dotnet-sdk-6.0.428"
|
|
||||||
"dotnet-runtime-6.0.36"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
overlays = [(import ./overlay.nix inputs)];
|
|
||||||
};
|
|
||||||
|
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit
|
inherit
|
||||||
nixpkgs
|
|
||||||
hostname
|
hostname
|
||||||
platform
|
platform
|
||||||
suite
|
suite
|
||||||
user
|
user
|
||||||
|
secrets
|
||||||
; # Inherit variables.
|
; # Inherit variables.
|
||||||
secrets = builtins.toString inputs.secrets;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
modules =
|
modules =
|
||||||
|
@ -49,13 +122,15 @@ with inputs.nixpkgs.lib; {
|
||||||
++ extraModules;
|
++ extraModules;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
// optionalAttrs (suite != "desktop") {
|
// optionalAttrs ((suite == "server")
|
||||||
|
|| (suite == "vm")
|
||||||
|
|| (suite == "lxc")) {
|
||||||
deploy.nodes.${hostname} = {
|
deploy.nodes.${hostname} = {
|
||||||
hostname = "${hostname}.local";
|
hostname = "${hostname}.local";
|
||||||
profiles.system = {
|
profiles.system = {
|
||||||
user = "root";
|
user = "root";
|
||||||
sshUser = user;
|
sshUser = user;
|
||||||
path = pkgs.deploy-rs.deploy-rs.lib.activate.nixos self.nixosConfigurations.${hostname};
|
path = deployPkgs.deploy-rs.lib.activate.nixos self.nixosConfigurations.${hostname};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
userPackages,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
|
@ -47,13 +47,13 @@ in {
|
||||||
startLimitIntervalSec = 5;
|
startLimitIntervalSec = 5;
|
||||||
startLimitBurst = 3;
|
startLimitBurst = 3;
|
||||||
environment = {
|
environment = {
|
||||||
OPENSSL_CONF = "${userPackages.webone}/lib/webone/openssl_webone.cnf";
|
OPENSSL_CONF = "${pkgs.webone}/lib/webone/openssl_webone.cnf";
|
||||||
};
|
};
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
User = "webone";
|
User = "webone";
|
||||||
Group = "webone";
|
Group = "webone";
|
||||||
ExecStart = "${userPackages.webone}/bin/webone";
|
ExecStart = "${pkgs.webone}/bin/webone";
|
||||||
TimeoutStopSec = "10";
|
TimeoutStopSec = "10";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
RestartSec = "5";
|
RestartSec = "5";
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
{
|
{
|
||||||
nixpkgs,
|
|
||||||
userPackages,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
hostname,
|
hostname,
|
||||||
|
@ -20,9 +18,6 @@ with lib; {
|
||||||
# Add @wheel to trusted-users for remote deployments.
|
# Add @wheel to trusted-users for remote deployments.
|
||||||
nix.settings.trusted-users = ["root" "@wheel"];
|
nix.settings.trusted-users = ["root" "@wheel"];
|
||||||
|
|
||||||
# Set $NIX_PATH to flake input.
|
|
||||||
nix.nixPath = ["nixpkgs=${nixpkgs}"];
|
|
||||||
|
|
||||||
# Enable redistributable firmware.
|
# Enable redistributable firmware.
|
||||||
hardware.enableRedistributableFirmware = true;
|
hardware.enableRedistributableFirmware = true;
|
||||||
|
|
||||||
|
@ -77,7 +72,7 @@ with lib; {
|
||||||
# yazi cd on quit.
|
# yazi cd on quit.
|
||||||
function y
|
function y
|
||||||
set tmp (mktemp -t "yazi-cwd.XXXXXX")
|
set tmp (mktemp -t "yazi-cwd.XXXXXX")
|
||||||
${pkgs.yazi}/bin/yazi $argv --cwd-file="$tmp"
|
yazi $argv --cwd-file="$tmp"
|
||||||
if read -z cwd < "$tmp"; and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
|
if read -z cwd < "$tmp"; and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
|
||||||
builtin cd -- "$cwd"
|
builtin cd -- "$cwd"
|
||||||
end
|
end
|
||||||
|
@ -89,10 +84,10 @@ with lib; {
|
||||||
# https://nixos.wiki/wiki/Fish#Setting_fish_as_your_shell
|
# https://nixos.wiki/wiki/Fish#Setting_fish_as_your_shell
|
||||||
programs.bash = {
|
programs.bash = {
|
||||||
interactiveShellInit = ''
|
interactiveShellInit = ''
|
||||||
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
if [[ $(ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||||
then
|
then
|
||||||
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
||||||
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
|
exec fish $LOGIN_OPTION
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -107,9 +102,12 @@ with lib; {
|
||||||
|
|
||||||
nixvim = {
|
nixvim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
|
||||||
|
# For telescope.
|
||||||
dependencies.ripgrep.enable = true;
|
dependencies.ripgrep.enable = true;
|
||||||
|
|
||||||
|
# Space as leader.
|
||||||
globals.mapleader = " ";
|
globals.mapleader = " ";
|
||||||
|
|
||||||
keymaps = [
|
keymaps = [
|
||||||
|
@ -226,7 +224,7 @@ with lib; {
|
||||||
|
|
||||||
programs.yazi = {
|
programs.yazi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
flavors."gruvbox-dark.yazi" = userPackages.yazi-flavour-gruvbox-dark;
|
flavors."gruvbox-dark.yazi" = pkgs.yazi-flavour-gruvbox-dark;
|
||||||
settings.theme = {
|
settings.theme = {
|
||||||
flavor.dark = "gruvbox-dark";
|
flavor.dark = "gruvbox-dark";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
userPackages,
|
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
@ -48,8 +47,8 @@ with lib; {
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
excludePackages = with pkgs; [
|
excludePackages = [
|
||||||
xterm # Don't install xterm.
|
pkgs.xterm # Don't install xterm.
|
||||||
];
|
];
|
||||||
|
|
||||||
displayManager.gdm.enable = true;
|
displayManager.gdm.enable = true;
|
||||||
|
@ -105,6 +104,8 @@ with lib; {
|
||||||
celluloid
|
celluloid
|
||||||
deploy-rs
|
deploy-rs
|
||||||
discord
|
discord
|
||||||
|
feishin
|
||||||
|
fluffychat
|
||||||
ghostty
|
ghostty
|
||||||
gimp3
|
gimp3
|
||||||
glabels-qt
|
glabels-qt
|
||||||
|
@ -118,27 +119,12 @@ with lib; {
|
||||||
merriweather-sans
|
merriweather-sans
|
||||||
nerd-fonts.fira-code
|
nerd-fonts.fira-code
|
||||||
obsidian
|
obsidian
|
||||||
|
prismlauncher
|
||||||
|
prismlauncher
|
||||||
protonmail-desktop
|
protonmail-desktop
|
||||||
signal-desktop
|
signal-desktop
|
||||||
smile
|
smile
|
||||||
userPackages.feishin
|
|
||||||
yubioath-flutter
|
yubioath-flutter
|
||||||
|
|
||||||
# PrismLauncher with temurin jre.
|
|
||||||
(prismlauncher.override {
|
|
||||||
jdks = [
|
|
||||||
temurin-jre-bin
|
|
||||||
];
|
|
||||||
})
|
|
||||||
|
|
||||||
# FluffyChat 2.0.0 with fixed desktop item.
|
|
||||||
(userPackages.fluffychat.overrideAttrs (
|
|
||||||
finalAttrs: previousAttrs: {
|
|
||||||
desktopItems = [
|
|
||||||
((builtins.elemAt previousAttrs.desktopItems 0).override {startupWMClass = "fluffychat";})
|
|
||||||
];
|
|
||||||
}
|
|
||||||
))
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Allow opening terminal applications from gnome app launcher.
|
# Allow opening terminal applications from gnome app launcher.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue