From b218264db7344938254a312b32772bb0c31c0ee6 Mon Sep 17 00:00:00 2001
From: Myned <dev@bjork.tech>
Date: Wed, 12 Feb 2025 17:10:53 -0600
Subject: [PATCH] programs: add qalculate

Signed-off-by: Myned <dev@bjork.tech>
---
 options/custom/programs/default.nix   |  1 +
 options/custom/programs/qalculate.nix | 30 +++++++++++++++++++++++++++
 options/custom/settings/packages.nix  |  1 -
 3 files changed, 31 insertions(+), 1 deletion(-)
 create mode 100644 options/custom/programs/qalculate.nix

diff --git a/options/custom/programs/default.nix b/options/custom/programs/default.nix
index a8f43d5..c0aaef2 100644
--- a/options/custom/programs/default.nix
+++ b/options/custom/programs/default.nix
@@ -21,6 +21,7 @@ with lib; {
       nixgl.enable = true;
       nushell.enable = true;
       polkit.enable = true;
+      qalculate.enable = true;
       ssh.enable = true;
       starship.enable = true;
       sudo.enable = true;
diff --git a/options/custom/programs/qalculate.nix b/options/custom/programs/qalculate.nix
new file mode 100644
index 0000000..f6e5282
--- /dev/null
+++ b/options/custom/programs/qalculate.nix
@@ -0,0 +1,30 @@
+{
+  config,
+  lib,
+  pkgs,
+  ...
+}:
+with lib; let
+  cfg = config.custom.programs.qalculate;
+in {
+  options.custom.programs.qalculate = {
+    enable = mkOption {default = false;};
+  };
+
+  config = mkIf cfg.enable {
+    # https://github.com/Qalculate/libqalculate
+    # https://qalculate.github.io/manual/qalc.html
+    environment.systemPackages = [pkgs.libqalculate];
+
+    home-manager.sharedModules = [
+      {
+        xdg.configFile = {
+          # https://github.com/svenstaro/rofi-calc?tab=readme-ov-file#advanced-usage
+          "qalculate/qalc.cfg".text = ''
+            digit_grouping=2
+          '';
+        };
+      }
+    ];
+  };
+}
diff --git a/options/custom/settings/packages.nix b/options/custom/settings/packages.nix
index 00893f8..3f4f58b 100644
--- a/options/custom/settings/packages.nix
+++ b/options/custom/settings/packages.nix
@@ -28,7 +28,6 @@ in {
           fzf # Fuzzy search
           jq # JSON parser
           killport # Kill processes on port
-          libqalculate # Calculator
           lf # Terminal file manager
           lm_sensors # System sensors
           nix-output-monitor # Nix build parser