Index: uspace/app/bdsh/input.c
===================================================================
--- uspace/app/bdsh/input.c	(revision f1b37d6bd2486bb5de368a6ba65627cdf8e51695)
+++ uspace/app/bdsh/input.c	(revision cedd33bc60c61096e2f8391917e491d043ae0f83)
@@ -90,4 +90,5 @@
 static void tinput_sel_get_bounds(tinput_t *ti, int *sa, int *sb);
 static bool tinput_sel_active(tinput_t *ti);
+static void tinput_sel_all(tinput_t *ti);
 static void tinput_sel_delete(tinput_t *ti);
 static void tinput_key_ctrl(tinput_t *ti, console_event_t *ev);
@@ -255,5 +256,5 @@
 	size_t off;
 
-	ilen = min(str_length(str), INPUT_MAX - ti->nc);
+	ilen = min((ssize_t) str_length(str), INPUT_MAX - ti->nc);
 	if (ilen == 0)
 		return;
@@ -477,4 +478,12 @@
 }
 
+static void tinput_sel_all(tinput_t *ti)
+{
+	ti->sel_start = 0;
+	ti->pos = ti->nc;
+	tinput_display_tail(ti, 0, 0);
+	tinput_position_caret(ti);
+}
+
 static void tinput_sel_delete(tinput_t *ti)
 {
@@ -654,4 +663,8 @@
 		tinput_seek_vertical(ti, seek_forward, false);
 		break;
+	case KC_X:
+		tinput_sel_copy_to_cb(ti);
+		tinput_sel_delete(ti);
+		break;
 	case KC_C:
 		tinput_sel_copy_to_cb(ti);
@@ -659,4 +672,7 @@
 	case KC_V:
 		tinput_paste_from_cb(ti);
+		break;
+	case KC_A:
+		tinput_sel_all(ti);
 		break;
 	default:
Index: uspace/app/edit/edit.c
===================================================================
--- uspace/app/edit/edit.c	(revision f1b37d6bd2486bb5de368a6ba65627cdf8e51695)
+++ uspace/app/edit/edit.c	(revision cedd33bc60c61096e2f8391917e491d043ae0f83)
@@ -135,4 +135,5 @@
 
 static bool selection_active(void);
+static void selection_sel_all(void);
 static void selection_get_points(spt_t *pa, spt_t *pb);
 static void selection_delete(void);
@@ -335,4 +336,13 @@
 		pane.rflags |= REDRAW_TEXT;
 		caret_update();
+		break;
+	case KC_X:
+		selection_copy();
+		selection_delete();
+		pane.rflags |= REDRAW_TEXT;
+		caret_update();
+		break;
+	case KC_A:
+		selection_sel_all();
 		break;
 	default:
@@ -1004,4 +1014,18 @@
 }
 
+static void selection_sel_all(void)
+{
+	spt_t spt, ept;
+
+	pt_get_sof(&spt);
+	pt_get_eof(&ept);
+	sheet_remove_tag(&doc.sh, &pane.sel_start);
+	sheet_place_tag(&doc.sh, &spt, &pane.sel_start);
+	sheet_remove_tag(&doc.sh, &pane.caret_pos);
+	sheet_place_tag(&doc.sh, &ept, &pane.caret_pos);
+
+	pane.rflags |= REDRAW_TEXT;
+}
+
 static void selection_copy(void)
 {
