{ user ? throw "user argument is required", home ? throw "home argument is required", }: { lib, config, pkgs, ... }: { environment.persistence."/persist/cache"."${home}/.config/qalculate/qalculate-gtk.history" = { }; home-manager.users.${user} = { home.packages = with 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)" ]; }; }; }