diff --git a/home/applications/sway/default.nix b/home/applications/sway/default.nix index a9403b9..b954673 100644 --- a/home/applications/sway/default.nix +++ b/home/applications/sway/default.nix @@ -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%+"; diff --git a/nixos/profiles/common/graphical/home/default.nix b/nixos/profiles/common/graphical/home/default.nix index bf43d32..c7e4e29 100644 --- a/nixos/profiles/common/graphical/home/default.nix +++ b/nixos/profiles/common/graphical/home/default.nix @@ -2,7 +2,6 @@ imports = [ ./fonts - ./scripts ./wallpapers ./theme.nix diff --git a/nixos/profiles/common/graphical/home/scripts/default.nix b/nixos/profiles/common/graphical/home/scripts/default.nix deleted file mode 100644 index 7c6f433..0000000 --- a/nixos/profiles/common/graphical/home/scripts/default.nix +++ /dev/null @@ -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/-source/nixos/profiles/common/graphical/home/scripts': - 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" - ]; - }; - }) - ]; -} diff --git a/pkgs/default.nix b/pkgs/default.nix index 7f724e1..d52e3d8 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -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;}; + }; } diff --git a/nixos/profiles/common/graphical/home/scripts/_bin/wrapped-brightnessctl b/pkgs/scripts/_bin/wrapped-brightnessctl similarity index 100% rename from nixos/profiles/common/graphical/home/scripts/_bin/wrapped-brightnessctl rename to pkgs/scripts/_bin/wrapped-brightnessctl diff --git a/nixos/profiles/common/graphical/home/scripts/_bin/wrapped-mpvpaper b/pkgs/scripts/_bin/wrapped-mpvpaper similarity index 100% rename from nixos/profiles/common/graphical/home/scripts/_bin/wrapped-mpvpaper rename to pkgs/scripts/_bin/wrapped-mpvpaper diff --git a/nixos/profiles/common/graphical/home/scripts/_bin/wrapped-pamixer b/pkgs/scripts/_bin/wrapped-pamixer similarity index 100% rename from nixos/profiles/common/graphical/home/scripts/_bin/wrapped-pamixer rename to pkgs/scripts/_bin/wrapped-pamixer diff --git a/nixos/profiles/common/graphical/home/scripts/_bin/wrapped-swww b/pkgs/scripts/_bin/wrapped-swww similarity index 100% rename from nixos/profiles/common/graphical/home/scripts/_bin/wrapped-swww rename to pkgs/scripts/_bin/wrapped-swww diff --git a/pkgs/scripts/lofi.nix b/pkgs/scripts/lofi.nix new file mode 100644 index 0000000..8a5b8bc --- /dev/null +++ b/pkgs/scripts/lofi.nix @@ -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="; + }; +} diff --git a/pkgs/scripts/makeScript.nix b/pkgs/scripts/makeScript.nix new file mode 100644 index 0000000..37e0c1a --- /dev/null +++ b/pkgs/scripts/makeScript.nix @@ -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} +'' diff --git a/pkgs/scripts/screenshot.nix b/pkgs/scripts/screenshot.nix new file mode 100644 index 0000000..d04dd7c --- /dev/null +++ b/pkgs/scripts/screenshot.nix @@ -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" + ]; + }; +}