From 57c8948e4e65d9af28a441ef2c38a974c29f90dd Mon Sep 17 00:00:00 2001 From: Joe Date: Fri, 16 Jun 2023 17:07:08 +0200 Subject: up --- .local/bin/dmapps | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100755 .local/bin/dmapps (limited to '.local/bin/dmapps') 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__ -- cgit v1.2.3