openorienteering-mapper.nix (1508B)
1 { config, lib, pkgs, ... }: 2 3 with lib; 4 let 5 cfg = config.programs.openorienteering-mapper; 6 configDir = "${config.xdg.configHome}/OpenOrienteering.org"; 7 configFile = "${configDir}/Mapper.conf"; 8 domain = "org.openorienteering.Mapper"; 9 in 10 { 11 meta.maintainers = [ maintainers.sikmir ]; 12 13 options.programs.openorienteering-mapper = { 14 enable = mkEnableOption "An orienteering mapmaking program"; 15 16 package = mkOption { 17 default = pkgs.openorienteering-mapper; 18 defaultText = literalExpression "pkgs.openorienteering-mapper"; 19 example = "pkgs.nur.repos.sikmir.openorienteering-mapper-bin"; 20 description = "OpenOrienteering Mapper package to install."; 21 type = types.package; 22 }; 23 }; 24 25 config = mkIf cfg.enable ( 26 mkMerge [ 27 { 28 home.packages = [ cfg.package ]; 29 } 30 31 ( 32 mkIf pkgs.stdenv.isLinux { 33 home.activation.createConfigFile = lib.hm.dag.entryAfter [ "writeBoundary" ] '' 34 $DRY_RUN_CMD mkdir -p ${configDir} 35 $DRY_RUN_CMD touch ${configFile} 36 ''; 37 } 38 ) 39 40 { 41 home.activation.tipsVisible = 42 lib.hm.dag.entryAfter [ "writeBoundary" ] 43 ( 44 if pkgs.stdenv.isDarwin then 45 "$DRY_RUN_CMD /usr/bin/defaults write ${domain} HomeScreen.tipsVisible -bool false" 46 else 47 "$DRY_RUN_CMD ${pkgs.crudini}/bin/crudini $VERBOSE_ARG --set ${configFile} HomeScreen tipsVisible 0" 48 ); 49 } 50 ] 51 ); 52 }