diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,8 +1,7 @@
 # nix-tree
 
 ![Build Status](https://github.com/utdemir/nix-tree/workflows/nix-build/badge.svg)
-[![Packaging status](https://repology.org/badge/vertical-allrepos/nix-tree.svg)](https://repology.org/project/nix-tree/versions)
-
+[![Packaging status](https://repology.org/badge/vertical-allrepos/haskell:nix-tree.svg)](https://repology.org/project/haskell:nix-tree/versions)
 
 Interactively browse the dependency graph of your Nix derivations.
 
@@ -10,32 +9,18 @@
 
 ## Installation
 
-From nixpkgs-unstable:
+Stable version:
 
 ```
-nix-env -iA nix-tree -f https://github.com/nixos/nixpkgs/archive/nixpkgs-unstable.tar.gz
+nix-env -i nix-tree
 ```
 
-Development version:
+Development version (requires Nix with flake support):
 
 ```
-nix-env -iA nix-tree -f https://github.com/utdemir/nix-tree/archive/master.tar.gz
-```
-
-A nixpkgs overlay is also provided via `overlay.nix`, that can be used
-with tools like [home-manager][]:
-
-```nix
-nixpkgs.overlays = [
-  (let url = https://github.com/utdemir/nix-tree/archive/master.tar.gz;
-    in import "${builtins.fetchTarball url}/overlay.nix" {})
-];
-
-home.packages = [ pkgs.nix-tree ];
+nix profile install github:utdemir/nix-tree
 ```
 
-
-
 ## Usage
 
 ```
@@ -53,6 +38,13 @@
 ```
 
 [home-manager]: https://github.com/rycee/home-manager
+
+## Hacking
+
+All contributions, issues and feature requests are welcome.
+
+To hack on it, simply run `nix develop` (which requires a Nix version
+with flakes support) and use `cabal` as usual.
 
 # Related tools
 
diff --git a/nix-tree.cabal b/nix-tree.cabal
--- a/nix-tree.cabal
+++ b/nix-tree.cabal
@@ -1,7 +1,7 @@
 name:                nix-tree
 synopsis:            Interactively browse a Nix store paths dependencies
 description:         A terminal curses application to browse a Nix store paths dependencies
-version:             0.1.1.0
+version:             0.1.2.0
 homepage:            https://github.com/utdemir/nix-tree
 license:             BSD3
 author:              Utku Demir
@@ -20,6 +20,7 @@
                       StorePath
                       App
                       InvertedIndex
+                      Paths_nix_tree
   ghc-options:        -Wall -fno-warn-name-shadowing -threaded -O2 -threaded
   build-depends:      base >= 4.11 && < 5
                     , aeson
diff --git a/src/App.hs b/src/App.hs
--- a/src/App.hs
+++ b/src/App.hs
@@ -152,11 +152,10 @@
             B.continue =<< moveF B.listMovePageUp s
           (B.VtyEvent (V.EvKey V.KPageDown []), Nothing) ->
             B.continue =<< moveF B.listMovePageDown s
-          -- modals
-          (B.VtyEvent (V.EvKey k []), Just _)
+          -- why-depends modal
+          (B.VtyEvent (V.EvKey k []), Just (ModalWhyDepends _))
             | k `elem` [V.KChar 'q', V.KEsc] ->
               B.continue s {aeOpenModal = Nothing}
-          -- why-depends modal
           (B.VtyEvent (V.EvKey k []), Just (ModalWhyDepends l))
             | k `elem` [V.KChar 'j', V.KDown, V.KChar '\t'] ->
               B.continue s {aeOpenModal = Just $ ModalWhyDepends (B.listMoveDown l)}
@@ -175,6 +174,8 @@
                   Nothing -> B.continue closed
                   Just (_, path) -> B.continue $ selectPath path closed
           -- search modal
+          (B.VtyEvent (V.EvKey V.KEsc []), Just (ModalSearch _ _ _)) ->
+            B.continue s {aeOpenModal = Nothing}
           (B.VtyEvent (V.EvKey k []), Just (ModalSearch l r xs))
             | k `elem` [V.KDown, V.KChar '\t'] ->
               B.continue s {aeOpenModal = Just $ ModalSearch l r (B.listMoveDown xs)}
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -7,7 +7,9 @@
 
 import App
 import qualified Data.HashMap.Strict as HM
+import Data.Version (showVersion)
 import PathStats
+import Paths_nix_tree (version)
 import Protolude
 import System.Directory (canonicalizePath, doesDirectoryExist, getHomeDirectory)
 import System.FilePath ((</>))
@@ -15,7 +17,7 @@
 usage :: Text
 usage =
   unlines
-    [ "Usage: nix-tree [paths] [-h|--help]",
+    [ "Usage: nix-tree [paths...] [-h|--help] [--version]",
       "  Paths default to $HOME/.nix-profile and /var/run/current-system.",
       "Keybindings:",
       unlines . map ("  " <>) . lines $ helpText
@@ -32,6 +34,10 @@
   args <- getArgs
   when (any (`elem` ["-h", "--help"]) args) $ do
     putStr usage
+    exitWith ExitSuccess
+
+  when ("--version" `elem` args) $ do
+    putStrLn $ "nix-tree " ++ showVersion version
     exitWith ExitSuccess
 
   paths <- case args of
