diff --git a/doc/release-notes/rl-2105.adoc b/doc/release-notes/rl-2105.adoc
index 4fe8953a..0de98fb2 100644
--- a/doc/release-notes/rl-2105.adoc
+++ b/doc/release-notes/rl-2105.adoc
@@ -72,35 +72,6 @@ programs.rofi.extraConfig = {
 };
 ----
 
-* The `services.redshift.extraOptions` and `services.gammastep.extraOptions`
-options were removed in favor of <<opt-services.redshift.settings>> and
-`services.gammastep.settings`, that are now an attribute set rather
-than a string. They also support new features not available before, for
-example:
-+
-[source,nix]
-----
-services.redshift = {
-  dawnTime = "6:00-7:45";
-  duskTime = "18:35-20:15";
-  settings = {
-    redshift = {
-      gamma = 0.8;
-      adjustment-method = "randr";
-    };
-
-    randr = {
-      screen = 0;
-    };
-  };
-};
-----
-+
-It is recommended to check either
-https://github.com/jonls/redshift/blob/master/redshift.conf.sample[redshift.conf.sample] or
-https://gitlab.com/chinstrap/gammastep/-/blob/master/gammastep.conf.sample[gammastep.conf.sample]
-for the available additional options in each program.
-
 [[sec-release-21.05-state-version-changes]]
 === State Version Changes
 
diff --git a/modules/services/redshift-gammastep/gammastep.nix b/modules/services/redshift-gammastep/gammastep.nix
index d8383692..6296a7e4 100644
--- a/modules/services/redshift-gammastep/gammastep.nix
+++ b/modules/services/redshift-gammastep/gammastep.nix
@@ -4,17 +4,14 @@ with lib;
 
 let
   commonOptions = import ./lib/options.nix {
-    inherit config lib pkgs;
+    inherit config lib;
 
     moduleName = "gammastep";
     programName = "Gammastep";
-    # https://gitlab.com/chinstrap/gammastep/-/commit/1608ed61154cc652b087e85c4ce6125643e76e2f
-    mainSection = "general";
     defaultPackage = pkgs.gammastep;
     examplePackage = "pkgs.gammastep";
     mainExecutable = "gammastep";
     appletExecutable = "gammastep-indicator";
-    xdgConfigFilePath = "gammastep/config.ini";
     serviceDocumentation = "https://gitlab.com/chinstrap/gammastep/";
   };
 
diff --git a/modules/services/redshift-gammastep/lib/options.nix b/modules/services/redshift-gammastep/lib/options.nix
index 59cd42f4..69f14177 100644
--- a/modules/services/redshift-gammastep/lib/options.nix
+++ b/modules/services/redshift-gammastep/lib/options.nix
@@ -1,61 +1,32 @@
-{ config, lib, pkgs, moduleName, mainSection, programName, defaultPackage
-, examplePackage, mainExecutable, appletExecutable, xdgConfigFilePath
-, serviceDocumentation }:
+# Adapted from Nixpkgs.
+
+{ config, lib, moduleName, programName, defaultPackage, examplePackage
+, mainExecutable, appletExecutable, serviceDocumentation }:
 
 with lib;
 
 let
 
   cfg = config.services.${moduleName};
-  settingsFormat = pkgs.formats.ini { };
 
 in {
   meta = {
     maintainers = with maintainers; [ rycee petabyteboy thiagokokada ];
   };
 
-  imports = let
-    mkRenamed = old: new:
-      mkRenamedOptionModule ([ "services" moduleName ] ++ old) [
-        "services"
-        moduleName
-        "settings"
-        mainSection
-        new
-      ];
-  in [
-    (mkRemovedOptionModule [ "services" moduleName "extraOptions" ]
-      "All ${programName} configuration is now available through services.${moduleName}.settings instead.")
-    (mkRenamed [ "brightness" "day" ] "brightness-day")
-    (mkRenamed [ "brightness" "night" ] "brightness-night")
-  ];
-
   options = {
-    enable = mkEnableOption programName;
-
-    dawnTime = mkOption {
-      type = types.nullOr types.str;
-      default = null;
-      example = "6:00-7:45";
+    enable = mkOption {
+      type = types.bool;
+      default = false;
+      example = true;
       description = ''
-        Set the time interval of dawn manually.
-        The times must be specified as HH:MM in 24-hour format.
-      '';
-    };
-
-    duskTime = mkOption {
-      type = types.nullOr types.str;
-      default = null;
-      example = "18:35-20:15";
-      description = ''
-        Set the time interval of dusk manually.
-        The times must be specified as HH:MM in 24-hour format.
+        Enable ${programName} to change your screen's colour temperature
+        depending on the time of day.
       '';
     };
 
     latitude = mkOption {
-      type = with types; nullOr (either str float);
-      apply = toString;
+      type = types.nullOr types.str;
       default = null;
       description = ''
         Your current latitude, between <literal>-90.0</literal> and
@@ -65,8 +36,7 @@ in {
     };
 
     longitude = mkOption {
-      type = with types; nullOr (either str float);
-      apply = toString;
+      type = types.nullOr types.str;
       default = null;
       description = ''
         Your current longitude, between <literal>-180.0</literal> and
@@ -105,6 +75,26 @@ in {
       };
     };
 
+    brightness = {
+      day = mkOption {
+        type = types.str;
+        default = "1";
+        description = ''
+          Screen brightness to apply during the day,
+          between <literal>0.1</literal> and <literal>1.0</literal>.
+        '';
+      };
+
+      night = mkOption {
+        type = types.str;
+        default = "1";
+        description = ''
+          Screen brightness to apply during the night,
+          between <literal>0.1</literal> and <literal>1.0</literal>.
+        '';
+      };
+    };
+
     package = mkOption {
       type = types.package;
       default = defaultPackage;
@@ -123,62 +113,26 @@ in {
       '';
     };
 
-    settings = mkOption {
-      type = types.submodule { freeformType = settingsFormat.type; };
-      default = { };
-      example = literalExample ''
-        {
-          ${mainSection} = {
-            adjustment-method = "randr";
-          };
-          randr = {
-            screen = 0;
-          };
-        };
-      '';
+    extraOptions = mkOption {
+      type = types.listOf types.str;
+      default = [ ];
+      example = [ "-v" "-m randr" ];
       description = ''
-        The configuration to pass to ${programName}.
-        Available options for ${programName} described in
-        <citerefentry>
-          <refentrytitle>${moduleName}</refentrytitle>
-          <manvolnum>1</manvolnum>
-        </citerefentry>.
+        Additional command-line arguments to pass to
+        <command>redshift</command>.
       '';
     };
   };
 
   config = {
     assertions = [{
-      assertion = (cfg.settings ? ${moduleName}.dawn-time || cfg.settings
-        ? ${moduleName}.dusk-time)
-        || (cfg.settings.${moduleName}.location-provider) == "geoclue2"
-        || ((cfg.settings.${moduleName}.location-provider) == "manual"
-          && (cfg.settings ? ${moduleName}.latitude || cfg.settings
-            ? ${moduleName}.longitude));
-      message = ''
-        In order for ${programName} to know the time of action, you need to set one of
-          - services.${moduleName}.provider = "geoclue2" for automatically inferring your location
-            (you also need to enable Geoclue2 service separately)
-          - services.${moduleName}.longitude and .latitude for specifying your location manually
-          - services.${moduleName}.dawnTime and .duskTime for specifying the times manually
-      '';
+      assertion = cfg.provider == "manual" -> cfg.latitude != null
+        && cfg.longitude != null;
+      message = "Must provide services.${moduleName}.latitude and"
+        + " services.${moduleName}.latitude when"
+        + " services.${moduleName}.provider is set to \"manual\".";
     }];
 
-    services.${moduleName}.settings = {
-      ${mainSection} = {
-        temp-day = cfg.temperature.day;
-        temp-night = cfg.temperature.night;
-        location-provider = cfg.provider;
-        dawn-time = mkIf (cfg.dawnTime != null) cfg.dawnTime;
-        dusk-time = mkIf (cfg.duskTime != null) cfg.dawnTime;
-        latitude = mkIf (cfg.latitude != null) cfg.latitude;
-        longitude = mkIf (cfg.longitude != null) cfg.longitude;
-      };
-    };
-
-    xdg.configFile.${xdgConfigFilePath}.source =
-      settingsFormat.generate xdgConfigFilePath cfg.settings;
-
     systemd.user.services.${moduleName} = {
       Unit = {
         Description = "${programName} colour temperature adjuster";
@@ -191,9 +145,21 @@ in {
 
       Service = {
         ExecStart = let
+          providerString = if cfg.provider == "manual" then
+            "${cfg.latitude}:${cfg.longitude}"
+          else
+            cfg.provider;
+
+          args = [
+            "-l ${providerString}"
+            "-t ${toString cfg.temperature.day}:${
+              toString cfg.temperature.night
+            }"
+            "-b ${toString cfg.brightness.day}:${toString cfg.brightness.night}"
+          ] ++ cfg.extraOptions;
+
           command = if cfg.tray then appletExecutable else mainExecutable;
-          configFullPath = config.xdg.configHome + "/${xdgConfigFilePath}";
-        in "${cfg.package}/bin/${command} -c ${configFullPath}";
+        in "${cfg.package}/bin/${command} ${concatStringsSep " " args}";
         RestartSec = 3;
         Restart = "on-failure";
       };
diff --git a/modules/services/redshift-gammastep/redshift.nix b/modules/services/redshift-gammastep/redshift.nix
index d65227ca..068dbd67 100644
--- a/modules/services/redshift-gammastep/redshift.nix
+++ b/modules/services/redshift-gammastep/redshift.nix
@@ -4,16 +4,14 @@ with lib;
 
 let
   commonOptions = import ./lib/options.nix {
-    inherit config lib pkgs;
+    inherit config lib;
 
     moduleName = "redshift";
     programName = "Redshift";
-    mainSection = "redshift";
     defaultPackage = pkgs.redshift;
     examplePackage = "pkgs.redshift";
     mainExecutable = "redshift";
     appletExecutable = "redshift-gtk";
-    xdgConfigFilePath = "redshift/redshift.conf";
     serviceDocumentation = "http://jonls.dk/redshift/";
   };
 
diff --git a/tests/modules/services/redshift-gammastep/gammastep-basic-configuration-expected.service b/tests/modules/services/redshift-gammastep/gammastep-basic-configuration-expected.service
index 35eaf519..25b95b55 100644
--- a/tests/modules/services/redshift-gammastep/gammastep-basic-configuration-expected.service
+++ b/tests/modules/services/redshift-gammastep/gammastep-basic-configuration-expected.service
@@ -2,7 +2,7 @@
 WantedBy=graphical-session.target
 
 [Service]
-ExecStart=@gammastep@/bin/gammastep -c /home/hm-user/.config/gammastep/config.ini
+ExecStart=@gammastep@/bin/gammastep -l 0.0:0.0 -t 5500:3700 -b 1:1
 Restart=on-failure
 RestartSec=3
 
diff --git a/tests/modules/services/redshift-gammastep/gammastep-basic-configuration-file-expected.conf b/tests/modules/services/redshift-gammastep/gammastep-basic-configuration-file-expected.conf
deleted file mode 100644
index 71dd96b5..00000000
--- a/tests/modules/services/redshift-gammastep/gammastep-basic-configuration-file-expected.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-[general]
-adjustment-method=randr
-gamma=0.800000
-latitude=0.0
-location-provider=manual
-longitude=0.000000
-temp-day=5500
-temp-night=3700
-
-[randr]
-screen=0
diff --git a/tests/modules/services/redshift-gammastep/gammastep-basic-configuration.nix b/tests/modules/services/redshift-gammastep/gammastep-basic-configuration.nix
index c663d594..c3baf8d9 100644
--- a/tests/modules/services/redshift-gammastep/gammastep-basic-configuration.nix
+++ b/tests/modules/services/redshift-gammastep/gammastep-basic-configuration.nix
@@ -6,14 +6,7 @@
       enable = true;
       provider = "manual";
       latitude = "0.0";
-      longitude = 0.0;
-      settings = {
-        general = {
-          adjustment-method = "randr";
-          gamma = 0.8;
-        };
-        randr = { screen = 0; };
-      };
+      longitude = "0.0";
     };
 
     nixpkgs.overlays = [
@@ -25,9 +18,6 @@
     ];
 
     nmt.script = ''
-      assertFileContent \
-          home-files/.config/gammastep/config.ini \
-          ${./gammastep-basic-configuration-file-expected.conf}
       assertFileContent \
           home-files/.config/systemd/user/gammastep.service \
           ${./gammastep-basic-configuration-expected.service}
diff --git a/tests/modules/services/redshift-gammastep/redshift-basic-configuration-expected.service b/tests/modules/services/redshift-gammastep/redshift-basic-configuration-expected.service
index 5dce5dc1..13ccf550 100644
--- a/tests/modules/services/redshift-gammastep/redshift-basic-configuration-expected.service
+++ b/tests/modules/services/redshift-gammastep/redshift-basic-configuration-expected.service
@@ -2,7 +2,7 @@
 WantedBy=graphical-session.target
 
 [Service]
-ExecStart=@redshift@/bin/redshift -c /home/hm-user/.config/redshift/redshift.conf
+ExecStart=@redshift@/bin/redshift -l 0.0:0.0 -t 5500:3700 -b 1:1
 Restart=on-failure
 RestartSec=3
 
diff --git a/tests/modules/services/redshift-gammastep/redshift-basic-configuration-file-expected.conf b/tests/modules/services/redshift-gammastep/redshift-basic-configuration-file-expected.conf
deleted file mode 100644
index 0336f8b6..00000000
--- a/tests/modules/services/redshift-gammastep/redshift-basic-configuration-file-expected.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-[randr]
-screen=0
-
-[redshift]
-adjustment-method=randr
-gamma=0.800000
-latitude=0.000000
-location-provider=manual
-longitude=0.0
-temp-day=5500
-temp-night=3700
diff --git a/tests/modules/services/redshift-gammastep/redshift-basic-configuration.nix b/tests/modules/services/redshift-gammastep/redshift-basic-configuration.nix
index 5e2fe40e..ab8a159a 100644
--- a/tests/modules/services/redshift-gammastep/redshift-basic-configuration.nix
+++ b/tests/modules/services/redshift-gammastep/redshift-basic-configuration.nix
@@ -5,15 +5,8 @@
     services.redshift = {
       enable = true;
       provider = "manual";
-      latitude = 0.0;
+      latitude = "0.0";
       longitude = "0.0";
-      settings = {
-        redshift = {
-          adjustment-method = "randr";
-          gamma = 0.8;
-        };
-        randr = { screen = 0; };
-      };
     };
 
     nixpkgs.overlays = [
@@ -25,9 +18,6 @@
     ];
 
     nmt.script = ''
-      assertFileContent \
-          home-files/.config/redshift/redshift.conf \
-          ${./redshift-basic-configuration-file-expected.conf}
       assertFileContent \
           home-files/.config/systemd/user/redshift.service \
           ${./redshift-basic-configuration-expected.service}