diff --git a/home/applications/sway/default.nix b/home/applications/sway/default.nix index d454732..a9403b9 100644 --- a/home/applications/sway/default.nix +++ b/home/applications/sway/default.nix @@ -67,7 +67,6 @@ modifier = "Mod4"; keybindings = let inherit (config.wayland.windowManager.sway.config) modifier; - screenshot = "/home/guanranwang/.local/bin/screenshot"; in { ### Sway itself @@ -101,9 +100,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/scripts/default.nix b/nixos/profiles/common/graphical/home/scripts/default.nix index 6a30c68..2ffe58a 100644 --- a/nixos/profiles/common/graphical/home/scripts/default.nix +++ b/nixos/profiles/common/graphical/home/scripts/default.nix @@ -1,36 +1,47 @@ -{pkgs, ...}: let - binPATH = ".local/bin"; +{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 = lib.concatStringsSep "\n" [ + "#!${runtimeShell}" + (lib.optionalString (runtimeInputs != []) ''export PATH="${lib.makeBinPath runtimeInputs}:$PATH"'') + (builtins.readFile file) + ]; + }; in { - home.packages = with pkgs; [ - #pamixer - #brightnessctl - grim - slurp - swappy - jq - #mpvpaper - #swww - libnotify - #dunst - ]; - home.sessionPath = ["$HOME/${binPATH}"]; - home.file = builtins.mapAttrs (_name: value: value // {executable = true;}) { - #${binPATH} = { - # source = ./bin; - # recursive = true; - #}; - - "${binPATH}/lofi".source = pkgs.fetchurl { - url = "https://raw.githubusercontent.com/lime-desu/bin/69422c37582c5914863997c75c268791a0de136e/lofi"; - hash = "sha256-hT+S/rqOHUYnnFcSDFfQht4l1DGasz1L3wDHKUWLraA="; - }; - - "${binPATH}/screenshot".source = pkgs.substitute { - src = pkgs.fetchurl { - url = "https://raw.githubusercontent.com/nwg-piotr/nwg-shell/c29e8eb4658a2613fb221ead0b101c75f457bcaf/scripts/screenshot"; - hash = "sha256-Z/fWloz8pLHsvPTPOeBxnbMsGDRTY3G3l/uePQ3ZxjU="; + home.packages = [ + (makeScript { + name = "lofi"; + runtimeInputs = [mpv]; + file = pkgs.fetchurl { + url = "https://raw.githubusercontent.com/lime-desu/bin/69422c37582c5914863997c75c268791a0de136e/lofi"; + hash = "sha256-hT+S/rqOHUYnnFcSDFfQht4l1DGasz1L3wDHKUWLraA="; }; - replacements = ["--replace" "DIR=\${SCREENSHOT_DIR:=$HOME/Screenshots}" "DIR=$HOME/Pictures/Screenshots"]; # i dont like using an environment variable - }; - }; + }) + + (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="; + }; + replacements = ["--replace" "DIR=\${SCREENSHOT_DIR:=$HOME/Screenshots}" "DIR=$HOME/Pictures/Screenshots"]; # i dont like using an environment variable + }; + }) + ]; }