i3-dmenu-desktop: skip .desktop files with Type != Application

This commit is contained in:
Michael Stapelberg 2012-12-11 22:43:06 +01:00
parent 60db534a08
commit 5a63b64fb8

View File

@ -35,7 +35,7 @@ my $result = GetOptions(
'dmenu=s' => \$dmenu_cmd, 'dmenu=s' => \$dmenu_cmd,
'entry-type=s' => \$entry_type, 'entry-type=s' => \$entry_type,
'version' => sub { 'version' => sub {
say "dmenu-desktop 1.1 © 2012 Michael Stapelberg"; say "dmenu-desktop 1.2 © 2012 Michael Stapelberg";
exit 0; exit 0;
}, },
'help' => sub { 'help' => sub {
@ -157,7 +157,8 @@ for my $file (values %desktops) {
if ($key =~ /^Name/) { if ($key =~ /^Name/) {
$names{$key} = $value; $names{$key} = $value;
} elsif ($key eq 'Exec' || } elsif ($key eq 'Exec' ||
$key eq 'TryExec') { $key eq 'TryExec' ||
$key eq 'Type') {
$apps{$base}->{$key} = $value; $apps{$base}->{$key} = $value;
} elsif ($key eq 'NoDisplay' || } elsif ($key eq 'NoDisplay' ||
$key eq 'Hidden' || $key eq 'Hidden' ||
@ -204,6 +205,10 @@ my %choices;
for my $app (keys %apps) { for my $app (keys %apps) {
my $name = $apps{$app}->{Name}; my $name = $apps{$app}->{Name};
# Dont try to use .desktop files which dont have Type=application
next if (!exists($apps{$app}->{Type}) ||
$apps{$app}->{Type} ne 'Application');
# Dont offer apps which have NoDisplay == true or Hidden == true. # Dont offer apps which have NoDisplay == true or Hidden == true.
# See http://wiki.xfce.org/howto/customize-menu#hide_menu_entries # See http://wiki.xfce.org/howto/customize-menu#hide_menu_entries
# for the difference between NoDisplay and Hidden. # for the difference between NoDisplay and Hidden.
@ -446,7 +451,7 @@ command) and both (type = both).
=head1 VERSION =head1 VERSION
Version 1.1 Version 1.2
=head1 AUTHOR =head1 AUTHOR