From c35bb4b185b44f630a39da950c9da08ad7f17d7e Mon Sep 17 00:00:00 2001
From: Gabriel Arazas <foodogsquared@foodogsquared.one>
Date: Mon, 25 Sep 2023 23:00:40 +0800
Subject: [PATCH] config: improve conditional for checking NixOS module

This is mainly for integrating NixOS modules with home-manager by
setting them conditionally if certain options are enabled. This prevents
duplicate configurations which often result in conflicts (like the
Firefox module that is both available on NixOS and home-manager).
---
 modules/home-manager/profiles/desktop.nix             | 2 +-
 users/home-manager/foo-dogsquared/modules/browser.nix | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/modules/home-manager/profiles/desktop.nix b/modules/home-manager/profiles/desktop.nix
index 5797bcee..1e01ea2a 100644
--- a/modules/home-manager/profiles/desktop.nix
+++ b/modules/home-manager/profiles/desktop.nix
@@ -26,7 +26,7 @@ in {
         ffmpeg-full # Ah yes, everyman's multimedia swiss army knife.
         imagemagick # Ah yes, everyman's image manipulation tool.
         gmic # Don't let the gimmicks fool you, it's a magical image framework.
-      ] ++ (lib.optional (osConfig ? programs.blender.enable && !osConfig.programs.blender.enable) blender);
+      ] ++ (lib.optional (osConfig ? programs.blender.enable -> !osConfig.programs.blender.enable) blender);
     })
 
     (lib.mkIf cfg.audio.enable {
diff --git a/users/home-manager/foo-dogsquared/modules/browser.nix b/users/home-manager/foo-dogsquared/modules/browser.nix
index 93f78adf..91245c0e 100644
--- a/users/home-manager/foo-dogsquared/modules/browser.nix
+++ b/users/home-manager/foo-dogsquared/modules/browser.nix
@@ -33,7 +33,7 @@
   };
 
   # Despite the name, it isn't a browser for furries.
-  programs.firefox = lib.mkIf (osConfig ? programs.firefox.enable && !osConfig.programs.firefox.enable) {
+  programs.firefox = lib.mkIf (osConfig ? programs.firefox.enable -> !osConfig.programs.firefox.enable) {
     enable = true;
 
     package = with pkgs; wrapFirefox firefox-unwrapped {