diff --git a/R/shiny-ui-base.R b/R/shiny-ui-base.R
index 835a29b933b1e0a979b25ca968fc8834a1620111..4f1e958722835604a3170365b15f02b2e4553484 100644
--- a/R/shiny-ui-base.R
+++ b/R/shiny-ui-base.R
@@ -1008,6 +1008,29 @@ mk_shinyscreen_server <- function(projects,init) {
             shinymsg("Saving state completed.")
         })
 
+        observeEvent(input$sel_indir_b,{
+            indir <- input$indir_list
+            req(isTruthy(indir))
+            rvs$m$conf$indir <- file.path(init$indir, indir)
+            message("Selected input dir:",rvs$m$conf$indir)
+        })
+
+        observeEvent(rvs$m$conf$indir,{
+            indir <- rvs$m$conf$indir
+            req(isTruthy(indir) && dir.exists(indir))
+            
+            updateSelectInput(session = session,
+                              inputId = "comp_list",
+                              choices = list.files(path=indir,
+                                                   pattern = "*.csv$"))
+            updateSelectInput(session = session,
+                              inputId = "indir_list",
+                              selected = basename(indir),
+                              choices = list.dirs(path = init$indir,
+                                                  full.names = F,
+                                                  recursive = F))
+        })
+
         ## Hold your horses.
         ## observeEvent(rvs$m$conf$project,{
         ##     wd <- rvs$m$conf$project