nixos/apps/lookout.nix

54 lines
1.8 KiB
Nix
Raw Permalink Normal View History

#./apps/lookout.nix
{ pkgs, lib, config, ... }:
let
lookout = pkgs.rustPlatform.buildRustPackage (finalAttrs: {
pname = "lookout";
version = "0.9.99";
src = pkgs.fetchFromGitHub {
owner = "gavindi";
repo = "lookout";
tag = finalAttrs.version;
hash = "sha256-X0m5f/Kk8Uf4e330vY/E5OHb8i5O/JI0zLGWqYS2BzE=";
};
# Cargo workspace lives in source/, data/ next to it.
sourceRoot = "${finalAttrs.src.name}/source";
cargoHash = "sha256-6f9aNjvDcdpxxkGbxBDrEB94YZikpc3bNtYex0EREXE=";
# The app crate's tests instantiate GTK widgets, which needs a display.
doCheck = false;
nativeBuildInputs = with pkgs; [ pkg-config glib wrapGAppsHook4 ];
buildInputs = with pkgs; [ gtk4 libadwaita webkitgtk_6_0 ];
postInstall = ''
install -Dm644 data/io.github.gavindi.Lookout.desktop -t $out/share/applications
install -Dm644 data/io.github.gavindi.Lookout.metainfo.xml -t $out/share/metainfo
install -Dm644 data/icons/hicolor/scalable/apps/io.github.gavindi.Lookout.svg \
-t $out/share/icons/hicolor/scalable/apps
install -Dm644 data/gschema/io.github.gavindi.Lookout.gschema.xml \
-t $out/share/glib-2.0/schemas
'';
meta = {
description = "Native GNOME mail, calendar and contacts client shaped like Outlook";
homepage = "https://github.com/gavindi/lookout";
license = lib.licenses.gpl3Plus;
mainProgram = "lookout";
platforms = lib.platforms.linux;
};
});
in
{
config = lib.mkIf (lib.elem config.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ]) {
environment.systemPackages = [
lookout
# Lookout reads accounts from GOA over D-Bus; nothing on Hyprland can add
# one without this settings panel.
pkgs.gnome-online-accounts-gtk
];
services.gnome.gnome-online-accounts.enable = true;
};
}