ea6ee9440a
Add omarchy-crash-mute to mute and unmute one program
...
The mute was reachable only as `omarchy-toggle crash-ignore/<program>`, which asks whoever runs it to know the flag layout, to reduce a binary's path to the name the watcher keys on, and to have read the rule that a name climbing out of that directory writes an unrelated toggle. All of that was carried in the skill's prose, which is the wrong place for a rule that has to hold: prose is advice, and the thing being advised about is a name the crashed program chose.
So it is a command now. `omarchy crash mute hyprland` silences that program, `off` lifts it, `toggle` flips it, and no argument lists what is muted. It takes the binary's path as readily as the name and reduces it the way the watcher does, so the `Executable:` line from `coredumpctl` can be handed straight to it; it refuses what is not one component of a name, so it cannot be talked into writing outside its own directory whatever it is given; and it re-reads the flag afterwards and reports what is now true rather than what was asked for. The listing counts only regular files, because that is all the watcher honours -- anything else in there would read as muted while the crashes kept arriving. A leading `--` is consumed so a program named `-h`, which the router would otherwise answer with its own help, can still be muted.
The watcher gained an unrelated fix that this uncovered. Its fields are read with `IFS=$'\t'`, and tab is IFS whitespace, so an empty field collapsed into the next delimiter and shifted every field after it along one: a crash whose comm was empty had a path read as its pid and was discarded as somebody else's. A process can set its comm to nothing, so that was reachable. Empty fields now arrive as a dash like missing ones, and a dash joins the empty and dot cases that fall back to `unknown`.
Co-Authored-By: Codex XHigh <noreply@openai.com >
2026-08-27 11:26:28 +02:00
..
2026-08-11 11:07:14 +02:00
2026-08-10 14:10:31 +02:00
2026-08-23 14:26:25 -04:00
2026-08-13 12:13:41 +02:00
2026-08-09 13:27:38 +02:00
2026-08-25 16:07:17 +02:00
2026-08-07 23:49:43 +02:00
2026-08-07 15:46:10 +02:00
2026-08-07 15:46:10 +02:00
2026-08-12 18:46:17 +02:00
2026-08-07 15:46:10 +02:00
2026-08-13 19:30:56 +02:00
2026-08-24 17:58:52 +02:00
2026-05-25 14:47:08 +02:00
2026-06-22 19:57:05 +02:00
2026-08-12 16:49:15 +02:00
2026-08-16 05:45:06 -04:00
2026-07-08 11:49:56 -07:00
2026-08-12 16:49:15 +02:00
2026-08-12 16:49:15 +02:00
2026-07-20 16:37:33 -07:00
2026-05-25 14:18:39 +02:00
2026-06-24 13:31:17 +02:00
2026-08-23 17:02:29 -04:00
2026-08-10 20:27:40 +02:00
2026-08-13 10:35:22 +02:00
2026-07-28 21:28:31 -07:00
2026-08-22 17:19:23 +02:00
2026-08-10 22:49:44 +02:00
2026-08-01 15:35:34 -05:00
2026-08-07 23:58:51 +02:00
2026-08-12 16:49:15 +02:00
2026-07-23 17:05:29 -07:00
2026-08-15 12:34:28 +02:00
2026-08-13 22:37:29 +02:00
2026-08-23 17:02:29 -04:00
2026-08-19 11:56:51 +02:00
2026-08-20 11:44:11 +02:00
2026-08-12 16:58:46 +02:00
2026-08-12 18:37:40 +02:00
2026-08-14 08:59:14 +02:00
2026-08-27 11:26:28 +02:00
2026-08-27 09:21:07 +02:00
2026-08-15 12:34:28 +02:00
2026-08-04 12:16:54 -05:00
2026-08-08 14:58:29 +02:00
2026-08-11 11:04:50 -04:00
2026-08-11 11:04:50 -04:00
2026-08-25 09:37:55 +02:00
2026-08-24 21:58:27 +02:00
2026-07-16 21:53:15 -07:00
2026-07-18 18:21:39 -07:00
2026-05-27 10:41:12 +02:00
2026-07-11 11:42:55 -07:00
2026-05-29 15:25:21 +02:00
2026-08-23 14:26:25 -04:00
2026-06-04 18:38:25 -04:00
2026-08-09 21:54:21 +02:00
2026-07-19 17:36:34 -07:00
2026-08-25 09:10:20 +02:00
2026-08-09 13:57:36 +02:00
2026-08-07 23:59:50 +02:00
2026-08-13 12:25:25 +02:00
2026-08-12 14:01:58 +02:00
2026-08-13 12:37:43 +02:00
2026-08-11 18:34:07 +02:00
2026-08-13 12:22:58 +02:00
2026-08-11 13:20:23 +02:00
2026-08-18 21:40:20 +02:00
2026-08-13 20:28:43 +02:00
2026-07-29 14:49:55 -04:00
2026-08-25 11:03:12 +02:00
2026-08-18 22:24:56 +02:00
2026-08-11 13:26:24 +02:00
2026-08-11 11:29:35 +02:00
2026-07-16 21:19:28 -07:00
2026-05-29 15:59:13 +02:00
2026-07-23 21:03:43 -07:00
2026-07-21 15:25:49 -07:00
2026-06-22 17:32:56 +02:00
2026-08-12 16:49:15 +02:00
2026-06-23 16:22:27 +02:00
2026-08-22 16:55:01 +02:00
2026-08-12 16:57:57 +02:00
2026-07-22 16:10:45 -07:00
2026-08-22 20:18:14 +02:00
2026-07-29 17:15:27 -04:00
2026-08-12 16:42:37 +02:00
2026-06-28 20:46:23 -04:00
2026-07-25 12:35:17 -07:00
2026-08-11 23:35:40 -07:00
2026-08-10 05:58:56 -07:00
2026-07-26 19:19:33 -07:00
2026-08-13 21:04:47 +02:00
2026-08-12 16:49:15 +02:00
2026-08-12 16:49:15 +02:00
2026-08-11 11:29:35 +02:00
2026-06-04 18:38:25 -04:00
2026-08-12 16:49:15 +02:00
2026-06-25 06:55:11 -04:00
2026-08-22 16:24:21 +02:00
2026-08-13 09:58:15 +02:00
2026-08-15 17:04:04 +02:00
2026-08-23 11:44:23 +02:00
2026-08-23 14:26:25 -04:00
2026-06-12 13:49:46 -04:00
2026-07-20 11:07:44 -07:00
2026-08-24 14:36:09 +02:00
2026-08-22 13:43:46 +02:00
2026-08-11 13:26:24 +02:00
2026-08-25 11:03:12 +02:00
2026-08-11 18:25:44 +02:00
2026-08-05 08:30:12 -05:00
2026-08-11 14:16:32 -07:00
2026-07-23 20:37:25 -07:00
2026-06-21 12:31:06 +02:00
2026-07-31 17:18:42 -04:00
2026-08-07 12:50:04 +02:00
2026-08-17 03:36:59 -04:00
2026-07-21 15:26:20 -07:00
2026-08-23 18:31:42 -04:00
2026-08-23 17:18:58 -04:00
2026-07-18 21:49:47 -07:00
2026-08-13 10:48:18 +02:00
2026-08-13 10:48:18 +02:00
2026-07-24 16:48:14 -07:00
2026-06-24 13:40:16 +02:00
2026-07-18 12:31:03 -07:00
2026-08-25 09:10:20 +02:00
2026-08-01 13:13:39 -05:00
2026-07-29 22:39:55 -04:00
2026-08-12 16:49:15 +02:00
2026-07-29 18:11:32 -04:00
2026-07-29 21:34:47 -04:00
2026-08-23 16:43:31 +02:00
2026-08-12 16:49:15 +02:00
2026-07-23 13:51:07 -07:00
2026-06-29 10:49:43 -05:00
2026-08-01 15:36:34 -05:00
2026-07-19 09:33:23 -07:00
2026-08-14 12:24:47 +02:00
2026-08-20 22:28:31 +02:00
2026-08-24 18:56:00 +02:00
2026-06-22 18:30:16 +02:00
2026-05-25 14:18:39 +02:00
2026-08-19 17:29:36 +02:00
2026-08-11 11:29:35 +02:00
2026-07-23 15:04:22 -07:00
2026-08-12 16:49:15 +02:00
2026-08-13 12:23:48 +02:00
2026-08-12 16:49:15 +02:00
2026-08-25 12:09:17 +02:00
2026-08-25 12:09:17 +02:00
2026-08-25 12:09:17 +02:00
2026-08-10 03:21:08 -07:00
2026-07-27 15:32:56 -07:00
2026-07-19 17:36:34 -07:00
2026-08-01 15:38:55 -05:00
2026-08-10 03:31:17 -07:00
2026-07-29 23:21:45 -04:00
2026-08-10 14:14:57 -07:00
2026-07-26 19:19:33 -07:00
2026-08-07 18:44:37 +02:00
2026-08-09 19:15:21 +02:00
2026-08-24 21:58:27 +02:00
2026-08-24 18:56:00 +02:00
2026-08-24 21:58:27 +02:00
2026-08-24 15:33:03 +02:00
2026-08-13 11:46:45 +02:00
2026-07-22 17:31:14 -07:00
2026-08-01 15:38:55 -05:00
2026-08-07 23:43:49 +02:00
2026-08-23 18:31:42 -04:00
2026-08-01 15:44:07 -05:00
2026-05-29 14:28:03 +02:00
2026-08-25 09:10:20 +02:00
2026-08-23 16:43:31 +02:00
2026-08-25 22:30:09 +02:00
2026-08-03 16:52:02 -05:00
2026-08-25 11:03:12 +02:00
2026-08-09 04:29:26 -07:00
2026-08-12 16:49:15 +02:00
2026-08-14 08:23:45 +02:00
2026-07-27 15:50:28 -07:00
2026-07-23 15:28:32 -07:00
2026-07-23 15:28:32 -07:00
2026-08-12 11:56:02 +02:00
2026-07-27 15:50:28 -07:00
2026-08-12 11:56:02 +02:00
2026-06-04 18:38:25 -04:00
2026-08-14 00:15:07 -07:00
2026-06-04 18:38:25 -04:00
2026-08-12 11:56:02 +02:00
2026-08-14 09:08:34 +02:00
2026-07-29 20:04:49 -07:00
2026-08-11 22:47:39 +02:00
2026-07-17 07:59:20 -07:00
2026-07-29 09:15:53 -07:00
2026-08-23 14:26:25 -04:00
2026-08-13 19:33:22 +02:00
2026-08-05 17:43:14 +02:00
2026-08-01 12:53:30 -07:00
2026-08-07 12:50:04 +02:00
2026-08-19 13:59:25 +02:00
2026-08-24 18:56:00 +02:00
2026-07-29 19:26:26 -07:00
2026-08-25 22:29:27 +02:00
2026-07-26 14:37:22 -07:00