diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # Revision history for blucontrol
 
+## 0.3.1.0 *30 May 2021*
+
+* New module `Blucontrol.Gamma.Modifier`.
+* New command line flag `-i`/`--ignore-config` to stick to the default configuration.
+
 ## 0.3.0.1 *28 Apr 2021*
 
 * Support GHC 9.0.1.
diff --git a/blucontrol.cabal b/blucontrol.cabal
--- a/blucontrol.cabal
+++ b/blucontrol.cabal
@@ -1,5 +1,5 @@
 name:                blucontrol
-version:             0.3.0.1
+version:             0.3.1.0
 synopsis:            Configurable blue light filter
 description:         This application is a blue light filter, with the main focus on
                      configurability.
@@ -33,6 +33,7 @@
                        Blucontrol.Gamma
                        Blucontrol.Gamma.Const
                        Blucontrol.Gamma.Linear
+                       Blucontrol.Gamma.Modifier
                        Blucontrol.Main
                        Blucontrol.Main.CLI
                        Blucontrol.Main.Control
diff --git a/src/Blucontrol/Control/Concat.hs b/src/Blucontrol/Control/Concat.hs
--- a/src/Blucontrol/Control/Concat.hs
+++ b/src/Blucontrol/Control/Concat.hs
@@ -9,10 +9,11 @@
 import Control.Monad.Base
 import Control.Monad.Trans
 import Control.Monad.Trans.Control
+import Data.Kind
 
 import Blucontrol.Control
 
-newtype ControlConcatT (t1 :: (* -> *) -> * -> *) (t2 :: (* -> *) -> * -> *) (m :: * -> *) a = ControlConcatT { unControlConcatT :: t2 (t1 m) a }
+newtype ControlConcatT (t1 :: (Type -> Type) -> Type -> Type) (t2 :: (Type -> Type) -> Type -> Type) (m :: Type -> Type) a = ControlConcatT { unControlConcatT :: t2 (t1 m) a }
   deriving (Applicative, Functor, Monad, MonadBase b, MonadBaseControl b)
 
 instance (forall m. Monad m => Monad (t1 m), MonadTrans t1, MonadTrans t2) => MonadTrans (ControlConcatT t1 t2) where
diff --git a/src/Blucontrol/Control/Count.hs b/src/Blucontrol/Control/Count.hs
--- a/src/Blucontrol/Control/Count.hs
+++ b/src/Blucontrol/Control/Count.hs
@@ -24,6 +24,19 @@
 instance MonadTrans ControlCountT where
   lift = ControlCountT . lift . lift
 
+-- TODO: workaround for ghc-9.0.1
+defaultLiftWith2' :: (Monad m)
+                  => (Run ControlCountT -> m a)
+                  -> ControlCountT m a
+defaultLiftWith2' f = ControlCountT $ liftWith $ \run -> liftWith $ \run' -> f $ run' . run . unControlCountT
+
+instance MonadTransControl ControlCountT where
+  type StT ControlCountT a = StT (ReaderT ConfigCount) (StT (StateT Natural) a)
+  -- TODO: workaround for ghc-9.0.1
+  --liftWith = defaultLiftWith2 ControlCountT unControlCountT
+  liftWith = defaultLiftWith2'
+  restoreT = defaultRestoreT2 ControlCountT
+
 instance MonadBaseControl IO m => MonadControl (ControlCountT m) where
   type ControlConstraint (ControlCountT m) a = CountableException a
   doInbetween a = do if isException a
diff --git a/src/Blucontrol/Gamma/Modifier.hs b/src/Blucontrol/Gamma/Modifier.hs
new file mode 100644
--- /dev/null
+++ b/src/Blucontrol/Gamma/Modifier.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE UndecidableInstances #-}
+
+module Blucontrol.Gamma.Modifier (
+  GammaModifierT
+, runGammaModifierT
+) where
+
+import Control.Monad.Base
+import Control.Monad.Except
+import Control.Monad.Reader
+import Control.Monad.Trans.Control
+
+import Blucontrol.Gamma
+
+newtype GammaModifierT c m a = GammaModifierT { unGammaModifierT :: ReaderT (c -> IO c) m a }
+  deriving (Applicative, Functor, Monad, MonadBase b, MonadBaseControl b, MonadTrans, MonadTransControl)
+
+instance MonadReader r m => MonadReader r (GammaModifierT c m) where
+  ask = lift ask
+  local f tma = liftWith $ \ run ->
+    local f $ run tma
+
+instance (MonadBase IO m, MonadGamma c m) => MonadGamma c (GammaModifierT c m) where
+  gamma = do oldGamma <- lift gamma
+             modifyGamma <- GammaModifierT ask
+             liftBase $ modifyGamma oldGamma
+
+runGammaModifierT :: (c -> IO c) -> GammaModifierT c m a -> m a
+runGammaModifierT modify tma = runReaderT (unGammaModifierT tma) modify
diff --git a/src/Blucontrol/Main/CLI.hs b/src/Blucontrol/Main/CLI.hs
--- a/src/Blucontrol/Main/CLI.hs
+++ b/src/Blucontrol/Main/CLI.hs
@@ -20,6 +20,7 @@
 
 data Flag = Help
           | Version
+          | IgnoreConfig
   deriving (Eq, Generic, Ord, Read, Show)
 
 instance NFData Flag
@@ -27,6 +28,7 @@
 options :: [OptDescr Flag]
 options = [ Option ['h'] ["help"] (NoArg Help) "Explain CLI usage"
           , Option ['v'] ["version"] (NoArg Version) "Display version"
+          , Option ['i'] ["ignore-config"] (NoArg IgnoreConfig) "Use default configuration"
           ]
 
 launch :: IO ()
@@ -45,6 +47,7 @@
     [] -> build
     [Version] -> do printVersion
                     exitSuccess
+    [IgnoreConfig] -> return ()
     _ -> do printUsage
             exitFailure
 
