diff --git a/src/list.rs b/src/list.rs
index de120ea..2430ed7 100644
--- a/src/list.rs
+++ b/src/list.rs
@@ -1,6 +1,6 @@
 use anyhow::Result;
 use crossterm::{
-    event::{self, Event, KeyCode, KeyEventKind},
+    event::{self, Event, KeyCode, KeyEventKind, KeyModifiers},
     terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen},
     ExecutableCommand,
 };
@@ -28,10 +28,16 @@ pub fn list(app_state: &mut AppState) -> Result<()> {
 
         let key = loop {
             match event::read()? {
-                Event::Key(key) => match key.kind {
-                    KeyEventKind::Press | KeyEventKind::Repeat => break key,
-                    KeyEventKind::Release => (),
-                },
+                Event::Key(key) => {
+                    if key.modifiers != KeyModifiers::NONE {
+                        continue;
+                    }
+
+                    match key.kind {
+                        KeyEventKind::Press | KeyEventKind::Repeat => break key,
+                        KeyEventKind::Release => (),
+                    }
+                }
                 // Redraw
                 Event::Resize(_, _) => continue 'outer,
                 // Ignore
diff --git a/src/watch/terminal_event.rs b/src/watch/terminal_event.rs
index 7c85b5b..faca8a2 100644
--- a/src/watch/terminal_event.rs
+++ b/src/watch/terminal_event.rs
@@ -1,4 +1,4 @@
-use crossterm::event::{self, Event, KeyCode, KeyEventKind};
+use crossterm::event::{self, Event, KeyCode, KeyEventKind, KeyModifiers};
 use std::sync::mpsc::Sender;
 
 use super::WatchEvent;
@@ -26,6 +26,10 @@ pub fn terminal_event_handler(tx: Sender<WatchEvent>) {
 
         match terminal_event {
             Event::Key(key) => {
+                if key.modifiers != KeyModifiers::NONE {
+                    continue;
+                }
+
                 match key.kind {
                     KeyEventKind::Release => continue,
                     KeyEventKind::Press | KeyEventKind::Repeat => (),