diff --git a/modules/programs/am2rlauncher.nix b/modules/programs/am2rlauncher.nix
new file mode 100644
index 00000000..01a6b53b
--- /dev/null
+++ b/modules/programs/am2rlauncher.nix
@@ -0,0 +1,48 @@
+{
+ lib,
+ pkgs,
+ config,
+ ...
+}:
+let
+ inherit (lib)
+ types
+ mkIf
+ mkEnableOption
+ mkPackageOption
+ mkOption
+ ;
+
+ cfg = config.programs.am2rlauncher;
+in
+{
+ meta.maintainers = with lib.hm.maintainers; [ aguirre-matteo ];
+ options.programs.am2rlauncher = {
+ enable = mkEnableOption "am2rlauncher";
+ package = mkPackageOption pkgs "am2rlauncher" { nullable = true; };
+ config = mkOption {
+ type = with types; either str path;
+ default = "";
+ example = ''
+
+
+ '';
+ description = ''
+ Config file for am2rlauncher in XML format. You can see the available options
+ by modifying the settings in the GUI and looking at $XDG_CONFIG_HOME/AM2RLauncher/config.xml.
+ '';
+ };
+ };
+
+ config = mkIf cfg.enable {
+ assertions = [
+ (lib.hm.assertions.assertPlatform "programs.am2rlauncher" pkgs lib.platforms.linux)
+ ];
+
+ home.packages = mkIf (cfg.package != null) [ cfg.package ];
+ xdg.configFile."AM2RLauncher/config.xml" = mkIf (cfg.config != "") {
+ source =
+ if lib.isPath cfg.config then cfg.config else pkgs.writeText "am2rlauncher-config.xml" cfg.config;
+ };
+ };
+}
diff --git a/tests/modules/programs/am2rlauncher/config.xml b/tests/modules/programs/am2rlauncher/config.xml
new file mode 100644
index 00000000..92053418
--- /dev/null
+++ b/tests/modules/programs/am2rlauncher/config.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/tests/modules/programs/am2rlauncher/default.nix b/tests/modules/programs/am2rlauncher/default.nix
new file mode 100644
index 00000000..2fc5645f
--- /dev/null
+++ b/tests/modules/programs/am2rlauncher/default.nix
@@ -0,0 +1,5 @@
+{ lib, pkgs, ... }:
+
+lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux {
+ am2rlauncher-settings = ./settings.nix;
+}
diff --git a/tests/modules/programs/am2rlauncher/settings.nix b/tests/modules/programs/am2rlauncher/settings.nix
new file mode 100644
index 00000000..4704ff7f
--- /dev/null
+++ b/tests/modules/programs/am2rlauncher/settings.nix
@@ -0,0 +1,12 @@
+{
+ programs.am2rlauncher = {
+ enable = true;
+ config = ./config.xml;
+ };
+
+ nmt.script = ''
+ assertFileExists home-files/.config/AM2RLauncher/config.xml
+ assertFileContent home-files/.config/AM2RLauncher/config.xml \
+ ${./config.xml}
+ '';
+}