From b86f9599dcdf6c5c32394aa6f19b132ef874cd15 Mon Sep 17 00:00:00 2001 From: Nikolaos Karaolidis Date: Tue, 2 Jul 2024 19:52:44 +0300 Subject: [PATCH] Add declarative qalculate config Signed-off-by: Nikolaos Karaolidis --- flake.lock | 30 +++++++++++++------------- users/configs/qalculate/default.nix | 33 +++++++++++++++++++++++++---- 2 files changed, 44 insertions(+), 19 deletions(-) diff --git a/flake.lock b/flake.lock index 8c6262b..ae7d084 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1719401812, - "narHash": "sha256-QONBQ/arBsKZNJuSd3sMIkSYFlBoRJpvf1jGlMfcOuI=", + "lastModified": 1719864345, + "narHash": "sha256-e4Pw+30vFAxuvkSTaTypd9zYemB/QlWcH186dsGT+Ms=", "owner": "nix-community", "repo": "disko", - "rev": "b6a1262796b2990ec3cc60bb2ec23583f35b2f43", + "rev": "544a80a69d6e2da04e4df7ec8210a858de8c7533", "type": "github" }, "original": { @@ -27,11 +27,11 @@ ] }, "locked": { - "lastModified": 1719418488, - "narHash": "sha256-Hu75KIbGLJA8qe42rO5WkRQ+E+BuzjS42bNEZcy9zT8=", + "lastModified": 1719827439, + "narHash": "sha256-tneHOIv1lEavZ0vQ+rgz67LPNCgOZVByYki3OkSshFU=", "owner": "nix-community", "repo": "home-manager", - "rev": "607f969f5dca2dc100cbc53e24ab49ac24ef8987", + "rev": "59ce796b2563e19821361abbe2067c3bb4143a7d", "type": "github" }, "original": { @@ -58,11 +58,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1719254875, - "narHash": "sha256-ECni+IkwXjusHsm9Sexdtq8weAq/yUyt1TWIemXt3Ko=", + "lastModified": 1719848872, + "narHash": "sha256-H3+EC5cYuq+gQW8y0lSrrDZfH71LB4DAf+TDFyvwCNA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2893f56de08021cffd9b6b6dfc70fd9ccd51eb60", + "rev": "00d80d13810dbfea8ab4ed1009b09100cca86ba8", "type": "github" }, "original": { @@ -74,11 +74,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1719099622, - "narHash": "sha256-YzJECAxFt+U5LPYf/pCwW/e1iUd2PF21WITHY9B/BAs=", + "lastModified": 1719663039, + "narHash": "sha256-tXlrgAQygNIy49LDVFuPXlWD2zTQV9/F8pfoqwwPJyo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5e8e3b89adbd0be63192f6e645e0a54080004924", + "rev": "4a1e673523344f6ccc84b37f4413ad74ea19a119", "type": "github" }, "original": { @@ -105,11 +105,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1719268571, - "narHash": "sha256-pcUk2Fg5vPXLUEnFI97qaB8hto/IToRfqskFqsjvjb8=", + "lastModified": 1719873517, + "narHash": "sha256-D1dxZmXf6M2h5lNE1m6orojuUawVPjogbGRsqSBX+1g=", "owner": "Mic92", "repo": "sops-nix", - "rev": "c2ea1186c0cbfa4d06d406ae50f3e4b085ddc9b3", + "rev": "a11224af8d824935f363928074b4717ca2e280db", "type": "github" }, "original": { diff --git a/users/configs/qalculate/default.nix b/users/configs/qalculate/default.nix index efd6cf4..3ca561f 100644 --- a/users/configs/qalculate/default.nix +++ b/users/configs/qalculate/default.nix @@ -1,11 +1,36 @@ { user ? throw "user argument is required" }: { lib, config, pkgs, ... }: +let + hmConfig = config.home-manager.users.${user.name}; +in { home-manager.users.${user.name} = { - home.packages = with pkgs; [ qalculate-gtk ]; + home = { + packages = with pkgs; [ qalculate-gtk ]; + persistence."/cache${user.home}".files = [ "${hmConfig.xdg.relativeConfigHome}/qalculate/qalculate-gtk.history" ]; + }; - wayland.windowManager.hyprland.settings.bind = [ - ", XF86Calculator, exec, ${lib.meta.getExe pkgs.qalculate-gtk}" - ]; + xdg.configFile."qalculate/qalculate-gtk.cfg".source = (pkgs.formats.ini { }).generate "qalculate-gtk.cfg" { + General = { + allow_multiple_instances = 1; + width = 500; + save_history_separately = 1; + auto_update_exchange_rates = 1; + local_currency_conversion = 1; + use_binary_prefixes = 1; + persistent_keypad = 1; + copy_ascii = 1; + copy_ascii_without_units = 1; + }; + Mode = { + calculate_as_you_type = 1; + excessive_parenthesis = 1; + }; + }; + + wayland.windowManager.hyprland.settings = { + bind = [ ", XF86Calculator, exec, ${lib.meta.getExe pkgs.qalculate-gtk}" ]; + windowrulev2 = [ "float, class:(qalculate-gtk)" ]; + }; }; }