diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,10 @@
 # dnf-repo releases
 
+## 0.5.4 (2023-05-06)
+- Revert "don't printAction's if no args"
+- use simple-prompt
+- just check for SUDO_USER instead of euid
+
 ## 0.5.3 (2022-12-31)
 - for copr template file, detect fedora distro otherwise assume epel
 - don't print actions if no args
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
 A wrapper of the dnf package manager for fine control of
 enabled/disabled yum repos (eg Copr repos).
 
-dnf is the package manager used by Fedora Linux and also modern RHEL.
+dnf is the package manager used by Fedora Linux and also from RHEL 8 on.
 
 DNF is a bit slow at handling multiple repos because it attempts
 to refresh the cached repodata frequently. So it can be advantageous
@@ -22,7 +22,7 @@
 
 ```shellsession
 $ dnf-repo --version
-0.5.3
+0.5.4
 $ dnf-repo --help
 DNF wrapper repo tool
 
@@ -36,6 +36,7 @@
                   --disable-debuginfo | --enable-source | --disable-source |
                   (-c|--add-copr COPR) | (-k|--add-koji REPO) |
                   (-u|--repourl URL)] [DNFARGS]
+
   see https://github.com/juhp/dnf-repo#readme
 
 Available options:
diff --git a/dnf-repo.cabal b/dnf-repo.cabal
--- a/dnf-repo.cabal
+++ b/dnf-repo.cabal
@@ -1,5 +1,5 @@
 name:                dnf-repo
-version:             0.5.3
+version:             0.5.4
 synopsis:            DNF wrapper tool to control repos
 description:
         A command-line wrapper of the dnf package manager to
@@ -8,7 +8,7 @@
 license-file:        LICENSE
 author:              Jens Petersen <juhpetersen@gmail.com>
 maintainer:          Jens Petersen <juhpetersen@gmail.com>
-copyright:           2022  Jens Petersen <juhpetersen@gmail.com>
+copyright:           2022-2023  Jens Petersen <juhpetersen@gmail.com>
 category:            Utility
 homepage:            https://github.com/juhp/dnf-repo
 bug-reports:         https://github.com/juhp/dnf-repo/issues
@@ -20,7 +20,8 @@
                      ||  == 8.8.4
                      ||  == 8.10.7
                      ||  == 9.0.2
-                     ||  == 9.2.5
+                     ||  == 9.2.7
+                     ||  == 9.4.5
 data-dir:            data
 data-files:          copr.fedorainfracloud.orgCOLONOWNERCOLONREPO.repo
                      koji-REPO.repo
@@ -45,7 +46,7 @@
                        http-directory >= 0.1.9,
                        simple-cmd,
                        simple-cmd-args >= 0.1.8,
-                       unix
+                       simple-prompt
   default-language:    Haskell2010
   ghc-options:         -Wall
   if impl(ghc >= 8.0)
diff --git a/src/ExpireRepos.hs b/src/ExpireRepos.hs
--- a/src/ExpireRepos.hs
+++ b/src/ExpireRepos.hs
@@ -6,6 +6,7 @@
 import Control.Monad
 import Data.List (nub)
 import SimpleCmd (error')
+import SimplePrompt (yesno)
 
 import Sudo
 
@@ -16,7 +17,7 @@
 expireRepo dryrun debug repo = do
   old <- read <$> readFile expiredFile :: IO [String]
   let expired = nub $ old ++ [repo]
-  ok <- yesno $ "Mark '" ++ repo ++ "' cache expired"
+  ok <- yesno Nothing $ "Mark '" ++ repo ++ "' cache expired"
   when ok $ do
     doSudo dryrun debug "sed" ["-i", "-e",
                                "s/" ++ renderShow old ++ "/" ++ renderShow expired ++ "/",
@@ -41,7 +42,7 @@
     else do
     mapM_ putStrLn old
     putStrLn ""
-    ok <- yesno "Unset cache expirations"
+    ok <- yesno Nothing "Unset cache expirations"
     when ok $ do
       doSudo dryrun debug "sed" ["-i", "-e",
                                "s/" ++ renderShow old ++ "/" ++ renderShow [] ++ "/",
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -8,15 +8,16 @@
 import Data.Bifunctor (bimap)
 import Data.Char (isDigit)
 import Data.List.Extra
-import Data.Maybe (mapMaybe, maybeToList)
+import Data.Maybe (isJust, mapMaybe, maybeToList)
 import Network.HTTP.Directory (httpExists', (+/+))
 import SimpleCmd
 import SimpleCmdArgs
+import SimplePrompt (yesno)
 import System.Directory
+import System.Environment (lookupEnv)
 import System.FilePath
 import System.IO (hSetBuffering, stdout, BufferMode(NoBuffering))
 import System.IO.Extra (withTempDir)
-import System.Posix.User (getEffectiveUserName,getLoginName)
 import System.Time.Extra (sleep)
 
 import Paths_dnf_repo (getDataFileName, version)
@@ -26,7 +27,7 @@
 
 main :: IO ()
 main = do
-  checkEuid
+  checkSudo
   simpleCmdArgs' (Just version)
     "DNF wrapper repo tool"
     "see https://github.com/juhp/dnf-repo#readme" $
@@ -91,7 +92,7 @@
     nameStates <- sort <$> concatMapM readRepos repofiles
     let actions = selectRepo exact nameStates modes
         moreoutput = not (null args) || null actions || listrepos
-    unless (null actions || null args || quiet) $ do
+    unless (null actions || quiet) $ do
       mapM_ putStrLn $ reduceOutput $ mapMaybe (printAction save) actions
       when moreoutput $
         warning ""
@@ -116,7 +117,7 @@
         else do
         let changes = concatMap saveRepo actions
         unless (null changes) $ do
-          ok <- yesno $ "Save changed repo" ++ " enabled state" ++ ['s' | length changes > 1]
+          ok <- yesno Nothing $ "Save changed repo" ++ " enabled state" ++ ['s' | length changes > 1]
           when ok $
             doSudo dryrun debug "dnf" $ "config-manager" : changes
     if null args
@@ -194,7 +195,7 @@
   case mowned of
     Just owner -> warning $ repofile +-+ "owned by" +-+ owner
     Nothing -> do
-      ok <- yesno $ "Remove " ++ takeFileName repofile
+      ok <- yesno Nothing $ "Remove " ++ takeFileName repofile
       when ok $ do
         doSudo dryrun debug "rm" [repofile]
 
@@ -225,11 +226,9 @@
                then Just relver
                else error' $ "unknown releasever:" +-+ relver
 
-checkEuid :: IO ()
-checkEuid =
-  -- getLoginName fails for proot
-  unlessM (cmdBool "pgrep" ["--session", "0", "proot"]) $ do
-  user <- getLoginName
-  euser <- getEffectiveUserName
-  when (user /= euser) $
-    warning "*Recommended not to run dnf-repo as root*"
+checkSudo :: IO ()
+checkSudo = do
+  -- previously checked for euid (no username for termux-fedora)
+  issudo <- isJust <$> lookupEnv "SUDO_USER"
+  when issudo $
+    warning "*No need to run dnf-repo directly with sudo*"
diff --git a/src/Sudo.hs b/src/Sudo.hs
--- a/src/Sudo.hs
+++ b/src/Sudo.hs
@@ -1,11 +1,8 @@
 module Sudo (
-  doSudo,
-  prompt_,
-  yesno
+  doSudo
   ) where
 
 import Control.Monad
-import Data.List.Extra (lower)
 import SimpleCmd (cmdN, sudo_)
 
 -- FIXME make this silent (simple-cmd-0.2.7) unless debug
@@ -16,22 +13,3 @@
     else do
     when debug $ cmdN c args
     sudo_ c args
-
-prompt :: String -> IO String
-prompt desc = do
-  putStr $ desc ++ ": "
-  getLine
-
-prompt_ :: String -> IO ()
-prompt_ desc = do
-  void $ prompt desc
-
-yesno :: String -> IO Bool
-yesno desc = do
-  inp <- prompt $ desc ++ "? [y/n]"
-  case lower inp of
-    "y" -> return True
-    "yes" -> return True
-    "n" -> return False
-    "no" -> return False
-    _ ->  yesno desc
