diff options
| author | Joe <rrbo@proton.me> | 2023-06-16 17:07:08 +0200 | 
|---|---|---|
| committer | Joe <rrbo@proton.me> | 2023-06-16 17:07:08 +0200 | 
| commit | 57c8948e4e65d9af28a441ef2c38a974c29f90dd (patch) | |
| tree | c83c223f57d1ef39ddee6d5b4636e3643e9d7e77 /.local/bin/dmapps | |
| parent | up (diff) | |
| download | dotfiles-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/dmapps | 95 | 
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__  | 
