summaryrefslogtreecommitdiffstats
path: root/.local/bin/dmapps
diff options
context:
space:
mode:
authorJoe <rrbo@proton.me>2023-06-16 17:07:08 +0200
committerJoe <rrbo@proton.me>2023-06-16 17:07:08 +0200
commit57c8948e4e65d9af28a441ef2c38a974c29f90dd (patch)
treec83c223f57d1ef39ddee6d5b4636e3643e9d7e77 /.local/bin/dmapps
parentup (diff)
downloaddotfiles-bsd-57c8948e4e65d9af28a441ef2c38a974c29f90dd.tar.gz
dotfiles-bsd-57c8948e4e65d9af28a441ef2c38a974c29f90dd.tar.bz2
dotfiles-bsd-57c8948e4e65d9af28a441ef2c38a974c29f90dd.tar.xz
dotfiles-bsd-57c8948e4e65d9af28a441ef2c38a974c29f90dd.tar.zst
dotfiles-bsd-57c8948e4e65d9af28a441ef2c38a974c29f90dd.zip
up
Diffstat (limited to '')
-rwxr-xr-x.local/bin/dmapps95
1 files changed, 95 insertions, 0 deletions
diff --git a/.local/bin/dmapps b/.local/bin/dmapps
new file mode 100755
index 0000000..f3cc78d
--- /dev/null
+++ b/.local/bin/dmapps
@@ -0,0 +1,95 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use Data::Dump qw(dump);
+use POSIX qw(setsid);
+use Sys::Hostname;
+
+use constant PROG_LIST => "" .
+"Terminal" . "\n" .
+"File manager" . "\n" .
+"Web browser" . "\n" .
+"--- Accessories ---" . "\n" .
+"Qualculate!" . "\n" .
+"Kleopatra" . "\n" .
+"Transmission" . "\n" .
+"Wireshark" . "\n" .
+"MKVToolNix" . "\n";
+
+sub run
+{
+ my ($action) = @_;
+ my $pid;
+
+ chomp($action);
+ # Terminal
+ if ($action eq "Terminal") {
+ $pid = fork();
+ exit if $pid;
+ setsid();
+ exec("alacritty");
+ }
+ # File manager
+ elsif ($action eq "File manager") {
+ $pid = fork();
+ exit if $pid;
+ setsid();
+ exec("pcmanfm");
+ }
+ # Web browser
+ elsif ($action eq "Web browser") {
+ $pid = fork();
+ exit if $pid;
+ setsid();
+ exec("librewolf");
+ }
+ # --- Accessories ---
+ # Qualculate!
+ elsif ($action eq "Qualculate!") {
+ $pid = fork();
+ exit if $pid;
+ setsid();
+ exec("qualculate-gtk");
+ }
+ # Kleopatra
+ elsif ($action eq "Kleopatra") {
+ $pid = fork();
+ exit if $pid;
+ setsid();
+ exec("kleopatra");
+ }
+ # Transmission
+ elsif ($action eq "Transmission") {
+ $pid = fork();
+ exit if $pid;
+ setsid();
+ exec("transmission-gtk");
+ }
+ # Wireshark
+ elsif ($action eq "Wireshark") {
+ $pid = fork();
+ exit if $pid;
+ setsid();
+ exec("doas", "wireshark");
+ }
+ return;
+}
+
+sub main
+{
+ my $action;
+ my $prompt;
+
+ $prompt = PROG_LIST;
+ $action = `printf "$prompt" | dmenu -i -l 25 -m 0`;
+ if (not $action) {
+ return;
+ }
+ run($action);
+ return;
+}
+
+main();
+
+__END__