home/scripts: move to pkgs

This commit is contained in:
Guanran Wang 2024-03-02 20:50:51 +08:00
parent 690c024995
commit 6057cf181d
Signed by: nyancat
SSH key fingerprint: SHA256:8oWGKciPALWut/6WA27oFKofX+6Wtc0gQnsefXLQx/8
11 changed files with 77 additions and 63 deletions

View file

@ -2,6 +2,7 @@
config,
pkgs,
lib,
inputs,
...
}: {
imports = [
@ -67,6 +68,7 @@
modifier = "Mod4";
keybindings = let
inherit (config.wayland.windowManager.sway.config) modifier;
inherit (inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.scripts) screenshot;
in
{
### Sway itself
@ -100,9 +102,9 @@
"${modifier}+Shift+Semicolon" = ''exec rofi -modi "power-menu:rofi-power-menu --confirm=reboot/shutdown" -show power-menu'';
# Screenshot
"${modifier}+Shift+s" = "exec screenshot region";
"Print" = "exec screenshot fullscreen";
"Print+Control" = "exec screenshot swappy";
"${modifier}+Shift+s" = "exec ${screenshot} region";
"Print" = "exec ${screenshot} fullscreen";
"Print+Control" = "exec ${screenshot} swappy";
# Fn keys
"XF86MonBrightnessUp" = "exec ${lib.getExe pkgs.brightnessctl} set 5%+";

View file

@ -2,7 +2,6 @@
imports =
[
./fonts
./scripts
./wallpapers
./theme.nix

View file

@ -1,53 +0,0 @@
{pkgs, ...}:
with pkgs; let
# trimmed down version of writeShellApplication
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/trivial-builders/default.nix#L245
#
# it wont work if i change writeTextFile to writeScriptBin... unsure why
# error: A definition for option ... is not of type `package'. Definition values:
# - In `/nix/store/<hash>-source/nixos/profiles/common/graphical/home/scripts': <function>
makeScript = {
name,
file,
runtimeInputs ? [],
}:
writeTextFile {
inherit name;
executable = true;
destination = "/bin/${name}";
text = ''
#!${runtimeShell}
${lib.optionalString (runtimeInputs != []) ''export PATH="${lib.makeBinPath runtimeInputs}:$PATH"''}
${builtins.readFile file}
'';
};
in {
home.packages = [
(makeScript {
name = "lofi";
runtimeInputs = [coreutils mpv];
file = pkgs.fetchurl {
url = "https://raw.githubusercontent.com/lime-desu/bin/69422c37582c5914863997c75c268791a0de136e/lofi";
hash = "sha256-hT+S/rqOHUYnnFcSDFfQht4l1DGasz1L3wDHKUWLraA=";
};
})
(makeScript {
name = "screenshot";
runtimeInputs = [coreutils jq grim slurp swappy wl-clipboard libnotify];
file = pkgs.substitute {
src = pkgs.fetchurl {
url = "https://raw.githubusercontent.com/nwg-piotr/nwg-shell/c29e8eb4658a2613fb221ead0b101c75f457bcaf/scripts/screenshot";
hash = "sha256-Z/fWloz8pLHsvPTPOeBxnbMsGDRTY3G3l/uePQ3ZxjU=";
};
# i dont like using an environment variable
substitutions = [
"--replace-warn"
"DIR=\${SCREENSHOT_DIR:=$HOME/Screenshots}"
"DIR=$HOME/Pictures/Screenshots"
];
};
})
];
}

View file

@ -1,7 +1,14 @@
_pkgs: {
# fcitx5-tokyonight = pkgs.callPackage ./fcitx5-tokyonight {};
# metacubexd = pkgs.callPackage ./metacubexd {};
# mpvScripts.modernx = pkgs.callPackage ./mpvScripts/modernx {};
# picom-ft-labs = pkgs.callPackage ./picom-ft-labs {};
# v2ray-rules-dat = pkgs.callPackage ./v2ray-rules-dat {};
# NOTE: 301: All packages are migrated to `github:Guanran928/nur-packages`,
# only keeping some packages that only fits for personal use.
pkgs: {
scripts = rec {
# util
makeScript = pkgs.callPackage ./scripts/makeScript.nix {};
# scripts
# TODO: Do I really have to inherit `makeScript` for every script?
# NOTE: ./scripts/_bin/* is unused, I probably should to remove them.
lofi = pkgs.callPackage ./scripts/lofi.nix {inherit makeScript;};
screenshot = pkgs.callPackage ./scripts/screenshot.nix {inherit makeScript;};
};
}

14
pkgs/scripts/lofi.nix Normal file
View file

@ -0,0 +1,14 @@
{
makeScript,
coreutils,
mpv,
fetchurl,
}:
makeScript {
name = "lofi";
runtimeInputs = [coreutils mpv];
file = fetchurl {
url = "https://raw.githubusercontent.com/lime-desu/bin/69422c37582c5914863997c75c268791a0de136e/lofi";
hash = "sha256-hT+S/rqOHUYnnFcSDFfQht4l1DGasz1L3wDHKUWLraA=";
};
}

View file

@ -0,0 +1,16 @@
# trimmed down version of writeShellApplication
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/trivial-builders/default.nix#L245
{
lib,
runtimeShell,
writeScriptBin,
}: {
name,
file,
runtimeInputs ? [],
}:
writeScriptBin name ''
#!${runtimeShell}
${lib.optionalString (runtimeInputs != []) ''export PATH="${lib.makeBinPath runtimeInputs}:$PATH"''}
${builtins.readFile file}
''

View file

@ -0,0 +1,29 @@
{
makeScript,
coreutils,
jq,
grim,
slurp,
swappy,
wl-clipboard,
libnotify,
fetchurl,
substitute,
}:
makeScript {
name = "screenshot";
runtimeInputs = [coreutils jq grim slurp swappy wl-clipboard libnotify];
file = substitute {
src = fetchurl {
url = "https://raw.githubusercontent.com/nwg-piotr/nwg-shell/c29e8eb4658a2613fb221ead0b101c75f457bcaf/scripts/screenshot";
hash = "sha256-Z/fWloz8pLHsvPTPOeBxnbMsGDRTY3G3l/uePQ3ZxjU=";
};
# i dont like using an environment variable
substitutions = [
"--replace-warn"
"DIR=\${SCREENSHOT_DIR:=$HOME/Screenshots}"
"DIR=$HOME/Pictures/Screenshots"
];
};
}