diff --git a/home/user/desktops.nix b/home/user/desktops.nix index e0f9df8..b851cd9 100644 --- a/home/user/desktops.nix +++ b/home/user/desktops.nix @@ -8,10 +8,18 @@ let browser = "firefox"; iconPrefix = ".local/share/icons/hicolor/scalable/apps"; newWindow = "${browser} --new-window"; - mkIconPkg = pkgs.callPackage ../../utils/make-icon.nix { }; + googleCalendarIcon = pkgs.callPackage (import ../../utils/make-icon.nix { + name = "google-calendar"; + url = "https://ssl.gstatic.com/calendar/images/dynamiclogo_2020q4/calendar_6_2x.png"; + sha256 = "sha256-IODUWX9m0iwunJWPJv1kw5gfgDPvAZtmD8vcSTEBjsQ="; + }) { }; in { - # Update icon cache + home.packages = [ + googleCalendarIcon + ]; + + # UpdamkIconPkg te icon cache home.activation = { updateIconCache = lib.hm.dag.entryAfter [ "linkGeneration" ] '' $DRY_RUN_CMD ${pkgs.gtk3}/bin/gtk-update-icon-cache -t -f ~/.local/share/icons/hicolor @@ -22,7 +30,7 @@ in "${iconPrefix}/notion.svg".text = '' - + @@ -57,5 +65,17 @@ in "Utility" ]; }; + + google-calendar = { + name = "Google Calendar"; + genericName = "Calendar"; + exec = "${pkgs.xdg-utils}/bin/xdg-open https://calendar.google.com/u/2/r"; + comment = "Google Calendar"; + icon = "google-calendar"; + terminal = false; + categories = [ + "Office" + ]; + }; }; } diff --git a/utils/make-icon.nix b/utils/make-icon.nix index cfceee1..d4efc1b 100644 --- a/utils/make-icon.nix +++ b/utils/make-icon.nix @@ -1,52 +1,51 @@ { - pkgs ? import { }, + name, + url, + sha256, +}: +{ + pkgs, imagemagick, file, stdenvNoCC, ... }: let - makeIconPkg = - { - name, - url, - sha256, - }: - stdenvNoCC.mkDerivation rec { - inherit name; - pname = name; - - src = pkgs.fetchurl { - inherit url sha256; - }; - - dontUnpack = true; - - nativeBuildInputs = [ - imagemagick - file - ]; - - buildPhase = '' - mkdir -p $out/share/icons/hicolor/256x256/apps - mkdir -p $out/share/icons/hicolor/scalable/apps - - fileType=$(file -b --mime-type $src) - if [ "$fileType" = "image/png" ]; then - echo "Processing PNG image..." - magick $src -resize 256x256 $out/share/icons/hicolor/256x256/apps/${name}.png - elif [ "$fileType" = "image/svg+xml" ]; then - echo "Processing SVG image..." - cp $src $out/share/icons/hicolor/scalable/apps/${name}.svg - else - echo "Unsupported image type: $fileType" - exit 1 - fi - ''; - - pathsToLink = [ - "/share/icons" - ]; - }; + appName = name; in -makeIconPkg +stdenvNoCC.mkDerivation rec { + pname = "${appName}-icon"; + name = pname; + + src = pkgs.fetchurl { + inherit url sha256; + }; + + dontUnpack = true; + + nativeBuildInputs = [ + imagemagick + file + ]; + + buildPhase = '' + mkdir -p $out/share/icons/hicolor/256x256/apps + mkdir -p $out/share/icons/hicolor/scalable/apps + + fileType=$(file -b --mime-type $src) + if [ "$fileType" = "image/png" ]; then + echo "Processing PNG image..." + magick $src -resize 256x256 $out/share/icons/hicolor/256x256/apps/${appName}.png + elif [ "$fileType" = "image/svg+xml" ]; then + echo "Processing SVG image..." + cp $src $out/share/icons/hicolor/scalable/apps/${appName}.svg + else + echo "Unsupported image type: $fileType" + exit 1 + fi + ''; + + pathsToLink = [ + "/share/icons" + ]; +}