aboutsummaryrefslogtreecommitdiff
path: root/src/input.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/input.rs')
-rw-r--r--src/input.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/input.rs b/src/input.rs
index a1bd5c9a..47374e47 100644
--- a/src/input.rs
+++ b/src/input.rs
@@ -20,6 +20,7 @@
//! determine what to do when a non-modifier key is pressed.
use std::borrow::Cow;
use std::mem;
+use std::process::Command;
use std::time::Instant;
use copypasta::{Clipboard, Load, Buffer};
@@ -144,6 +145,9 @@ pub enum Action {
/// Paste contents of selection buffer
PasteSelection,
+ /// Run given command
+ Command(String, Vec<String>),
+
/// Quits Alacritty.
Quit,
}
@@ -174,6 +178,17 @@ impl Action {
warn!("Error loading data from clipboard. {}", Red(err));
});
},
+ Action::Command(ref program, ref args) => {
+ trace!("running command: {} {:?}", program, args);
+ match Command::new(program).args(args).spawn() {
+ Ok(child) => {
+ debug!("spawned new proc with pid: {}", child.id());
+ },
+ Err(err) => {
+ warn!("couldn't run command: {}", err);
+ },
+ }
+ },
Action::Quit => {
// FIXME should do a more graceful shutdown
::std::process::exit(0);