From: Nick Bowler Date: Sun, 31 Aug 2008 18:27:27 +0000 (-0400) Subject: Merge branch 'master' of git://git.draconx.ca/fvwmconf X-Git-Url: http://git.draconx.ca/gitweb/fvwmconf.git/commitdiff_plain/c6f5c393eef5f19621f50b2caecaab2136fc443e?hp=1c27999f104bd105063f6c6b1ff5bd152deceea6 Merge branch 'master' of git://git.draconx.ca/fvwmconf --- diff --git a/artemis/config b/artemis/config index 3e69f0c..c0849d9 100644 --- a/artemis/config +++ b/artemis/config @@ -3,10 +3,10 @@ Read common/bindings Read common/nickstheme # Bigger fonts must be set before including rootmenu -Style * Font 'xft:M+1P+IPAG:Bold:size=9:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' -Style * IconFont 'xft:M+1P+IPAG:Bold:size=9:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' -MenuStyle * Font 'xft:M+1P+IPAG:size=9:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' -MenuStyle * TitleFont 'xft:M+1P+IPAG:Bold:size=9:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' +Style * Font 'xft:Meiryo Short:Bold:size=9:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' +Style * IconFont 'xft:Meiryo Short:Bold:size=9:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' +MenuStyle * Font 'xft:Meiryo Short:size=9:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' +MenuStyle * TitleFont 'xft:Meiryo Short:Bold:size=9:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' Read artemis/rootmenu Read common/wallpaper diff --git a/common/nickstheme b/common/nickstheme index 817a5a0..e465331 100644 --- a/common/nickstheme +++ b/common/nickstheme @@ -54,22 +54,23 @@ Colorset 4 fg white, bg #567ea2 Style * ColorSet 1 Style * HilightColorSet 2 -# Fonts. Probably need to patch FVWM to support proper selection of Japanese -# fonts... -Style * Font 'xft:M+1P+IPAG:Bold:size=8:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' -Style * IconFont 'xft:M+1P+IPAG:Bold:size=8:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' -MenuStyle * Font 'xft:M+1P+IPAG:size=8:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' -MenuStyle * TitleFont 'xft:M+1P+IPAG:Bold:size=8:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' +# "Meiryo Short" is a modified version of a font from Windows Vista. +# Previous configs used M+1P+IPAG with reasonable results. +# If FVWM supported multiple font selection, this would be nicer. +Style * Font 'xft:Meiryo Short:Bold:size=8:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' +Style * IconFont 'xft:Meiryo Short:Bold:size=8:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' +MenuStyle * Font 'xft:Meiryo Short:size=8:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' +MenuStyle * TitleFont 'xft:Meiryo Short:Bold:size=8:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' MenuStyle * HilightBack, HilightTitleBack, Hilight3DOff MenuStyle * TrianglesSolid, TrianglesUseFore, TitleUnderlines1 MenuStyle * SeparatorsLong, BorderWidth 1 MenuStyle * ItemFormat "%.3s%.2|%2.4i%.5l%.5l%.5r%.5i%2.3>%1|" MenuStyle * MenuColorset 3, ActiveColorset 4, TitleColorset 8 -MenuStyle * VerticalTitleSpacing 3 2, VerticalItemSpacing 2 2 +MenuStyle * VerticalTitleSpacing 1 1, VerticalItemSpacing 1 2 # Buttons: menu iconify maximize --title-- shade close -Mouse 1 1 N Menu MenuWindow +Mouse 1 1 N Menu MenuWindow Interior 0 0 Mouse 1 3 N DoIconify diff --git a/config b/config index d436df7..5a3f26e 100644 --- a/config +++ b/config @@ -20,7 +20,6 @@ SetEnv GTK2_RC_FILES $[FVWM_USERDIR]/gtk2rc # Global Features Read global/multiscreen Read global/fullscreen -Read global/windowmenu Read global/appspecific # Machine-specific features @@ -28,6 +27,10 @@ PipeRead "[ -f '$[FVWM_USERDIR]/$[HOST]/config' ] \ && echo Read $[HOST]/config \ || echo Read default/config" +# Menus (must be loaded after themes) +Read global/windowmenu +Read global/alttab + # Virtual Desktops DesktopSize 6x1 EdgeThickness 1 @@ -49,7 +52,7 @@ CursorStyle Menu left_ptr # Global Styles and Options HideGeometryWindow Move OpaqueMoveSize -1 -Style * TileCascadePlacement, GrabFocusOff +Style * MinOverlapPlacement, GrabFocusOff Style * ResizeOpaque Style * EWMHUseStrutHints, MwmButtons diff --git a/finial/config b/finial/config index 75f9f7d..1b32a61 100644 --- a/finial/config +++ b/finial/config @@ -6,10 +6,10 @@ Read common/bindings Read common/nickstheme # Bigger fonts must be set before including rootmenu -Style * Font 'xft:M+1P+IPAG:Bold:size=9:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' -Style * IconFont 'xft:M+1P+IPAG:Bold:size=9:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' -MenuStyle * Font 'xft:M+1P+IPAG:size=9:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' -MenuStyle * TitleFont 'xft:M+1P+IPAG:Bold:size=9:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' +Style * Font 'xft:Meiryo Short:Bold:size=9:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' +Style * IconFont 'xft:Meiryo Short:Bold:size=9:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' +MenuStyle * Font 'xft:Meiryo Short:size=9:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' +MenuStyle * TitleFont 'xft:Meiryo Short:Bold:size=9:minspace=true:rgba=rgb:antialias=true:encoding=iso10646-1' Read finial/rootmenu Read common/wallpaper diff --git a/global/alttab b/global/alttab new file mode 100644 index 0000000..cc01944 --- /dev/null +++ b/global/alttab @@ -0,0 +1,24 @@ +CopyMenuStyle * MenuWindowSelect +MenuStyle MenuWindowSelect SelectOnRelease Alt_L + +# Window Selector +DestroyMenu MenuWindowSelect +AddToMenu MenuWindowSelect ++ DynamicPopupAction MakeMenuWindowSelect +ChangeMenuStyle MenuWindowSelect MenuWindowSelect + +DestroyFunc MakeMenuWindowSelect +AddToFunc MakeMenuWindowSelect ++ I DestroyMenu recreate MenuWindowSelect ++ I AddToMenu MenuWindowSelect "Page $[page.nx]" Title ++ I All (CurrentPage, !CirculateHit) AddToMenu MenuWindowSelect $[w.name]%$[w.miniiconfile]$[w.miniiconfile.svgopts]% WindowId $[w.id] WindowSelect + +DestroyFunc WindowSelect +AddToFunc WindowSelect ++ I Iconify off ++ I FlipFocus ++ I Raise ++ I WarpToWindow 5p 5p + +Key Tab A M NoWindow Popup MenuWindowSelect Root c c +Mouse 2 R A Menu MenuWindowSelect diff --git a/global/appspecific b/global/appspecific index c96079b..3fc4534 100644 --- a/global/appspecific +++ b/global/appspecific @@ -1 +1,3 @@ Style "Guild Wars" StaysOnTop +Style "Warcraft III" StaysOnTop +Style "GQview full screen" StaysOnTop diff --git a/scripts/mpdmenu.pl b/scripts/mpdmenu.pl index 94ec8d5..25a56b3 100755 --- a/scripts/mpdmenu.pl +++ b/scripts/mpdmenu.pl @@ -67,27 +67,27 @@ if (defined $album) { my $entry; $menu = "MenuMPDAlbum" unless defined $menu; - + $album =~ s/"/\\"/g; print $sock "playlistfind album \"$album\"\n"; while (<$sock>) { last if (/^OK/); die($_) if (/^ACK/); - + if (/^(\w+): (.*)$/) { if ($1 eq "file") { if (keys(%$entry) > 0) { addalbumentry(\@playlist, $entry) } - + $entry = {}; } - + $entry->{$1} = $2; } } addalbumentry(\@playlist, $entry) if (keys(%$entry) > 0); - + die("No tracks found.\n") if (!@playlist); foreach (sort albumsort @playlist) { my ($t_file, $t_trackno, $t_artist, $t_title, $t_id) = ( @@ -97,16 +97,16 @@ if (defined $album) { $_->{Title}, $_->{Id}, ); - + next if (defined $artist && !$accept{albumdir($t_file)}); - - $t_artist = sanitise($t_artist); - $t_title = sanitise($t_title); - + + $t_artist = sanitise($t_artist, 0); + $t_title = sanitise($t_title, 0); + my $cmd = sprintf "AddToMenu $menu \"%d\t%s - %s\"" ." Exec mpc playid %d", $t_trackno, $t_artist, $t_title, $t_id; - + cmd($cmd); } } elsif (defined $artist) { @@ -122,7 +122,7 @@ if (defined $album) { while (<$sock>) { last if (/^OK/); die($_) if (/^ACK/); - + if (/^(\w+): (.*)$/) { $file = $2 if ($1 eq "file"); $albums{$2} = $file if ($1 eq "Album"); @@ -136,7 +136,7 @@ if (defined $album) { use locale; foreach (sort keys(%albums)) { my $key = $_; - my $a_album = sanitise($key); + my $a_album = sanitise($key, 1); open THUMB, "-|", "$FVWM/scripts/thumbnail.zsh", "--small", "--music", $albums{$key}; @@ -173,7 +173,7 @@ if (defined $album) { $menu = "MenuMPDTitle" unless defined $menu; # Open and close brackets. - my ($ob, $cb) = ("[\[~〜<(ー−-]", "[\]~〜>)ー−-]"); + my ($ob, $cb) = ("[\[~〜<〈(ー−-]", "[\]~〜>〉)ー−-]"); $_ = $title; @@ -186,17 +186,18 @@ if (defined $album) { s/ -Practice Track-//; # Fair Heaven s/〜世界で一番アナタが好き〜//; # Pure Heart s/〜彼方への哀歌//; # 十二幻夢 + s/ sora no uta ver.//; # 美しい星 s/\s*-remix-$//; # Otherwise "D-THREAD -remix-" doesn't work right. # Deal with titles like "blah (ABC version)". - s/\s*$ob.*(style|mix|edit|edition|ver\.?|version|カラオケ)$cb?$//i; + s/\s*$ob.*(style|mix|edit|edition|ver\.?|version|melody|カラオケ)$cb?$//i; # Deal with titles like "blah (without XYZ)". - s/\s*$ob((e\.)?piano|english|japanese|inst|tv|without|w\/o|off|back|short|karaoke|game).*//i; + s/\s*$ob\s*((e\.)?piano|english|japanese|inst|tv|without|w\/o|off|back|short|karaoke|game).*//i; # Deal with titles like "blah instrumental". - s/\s+(instrumental|off vocal|short)(\s+(size|version|s))?$//i; + s/\s+(instrumental|off vocal|short|tv)([\s-]+(mix|size|version))?$//i; s/\s+without\s+\w+$//i; my $basetitle = $_; @@ -207,13 +208,13 @@ if (defined $album) { while (<$sock>) { last if (/^OK/); die($_) if (/^ACK/); - + if (/^(\w+): (.*)$/) { if ($1 eq "file") { push @titles, $entry if (keys(%$entry) > 0); $entry = {}; } - + $entry->{$1} = $2; } } @@ -230,9 +231,10 @@ if (defined $album) { ); # MPD searches are case-insensitive. - next if (!($t_title =~ m/(\P{Latin}|^)\Q$basetitle\E(\P{Latin}|$)/)); - $t_artist = sanitise($t_artist); - $t_title = sanitise($t_title); + next if (!($t_title =~ m/(\P{Latin}|^)\Q$basetitle\E(\P{Latin}|$)/ || $t_title =~ m/\Q$basetitle\E/i)); + + $t_artist = sanitise($t_artist, 1); + $t_title = sanitise($t_title, 1); open THUMB, "-|", "$FVWM/scripts/thumbnail.zsh", "--small", "--music", $t_file; @@ -263,43 +265,49 @@ if (defined $album) { $songid = $2 if ($1 eq "songid"); } } - die("Failed status query\n") unless (defined $state && defined $songid); + die("Failed status query\n") unless (defined $state); - print $sock "playlistid $songid\n"; - while (<$sock>) { - last if (/^OK/); - die($_) if (/^ACK/); + cmd("AddToMenu $menu Playing Title") if ($state eq "play"); + cmd("AddToMenu $menu Paused Title") if ($state eq "pause"); + cmd("AddToMenu $menu Stopped Title") if ($state eq "stop"); - if (/^(\w+): (.*)$/) { - $entry{$1} = $2; + if (defined $songid) { + print $sock "playlistid $songid\n"; + while (<$sock>) { + last if (/^OK/); + die($_) if (/^ACK/); + + if (/^(\w+): (.*)$/) { + $entry{$1} = $2; + } } - } - die("Failed data query\n") unless (keys(%entry) > 0); + die("Failed data query\n") unless (keys(%entry) > 0); - open THUMB, "-|", "$FVWM/scripts/thumbnail.zsh", - "--image", "--music", $entry{file}; - my $thumb = ; - my $scan = ; - close(THUMB); - die("Incompetent use of thumbnail.zsh") if ($?); + open THUMB, "-|", "$FVWM/scripts/thumbnail.zsh", + "--image", "--music", $entry{file}; + my $thumb = ; + my $scan = ; + close(THUMB); + die("Incompetent use of thumbnail.sh") if ($?); - $thumb =~ s/\n//sg; - $scan =~ s/\n//sg; + $thumb =~ s/\n//sg; + $scan =~ s/\n//sg; - cmd("AddToMenu $menu Playing Title") if ($state eq "play"); - cmd("AddToMenu $menu Paused Title") if ($state eq "pause"); - cmd("AddToMenu $menu Stopped Title") if ($state eq "stop"); - if (-f $thumb) { - cmd("AddToMenu $menu \"*$thumb*\" " - ."Exec exec gqview ".shellify($scan, 0)); + if (-f $thumb) { + cmd("AddToMenu $menu \"*$thumb*\" " + ."Exec exec gqview ".shellify($scan, 0)); + } + cmd("AddToMenu $menu \"Title: ".sanitise($entry{Title}, 0) + ."\" Popup MenuMPDTitle"); + cmd("AddToMenu $menu \"Artist: ".sanitise($entry{Artist}, 0) + ."\" Popup MenuMPDArtist"); + cmd("AddToMenu $menu \"Album: ".sanitise($entry{Album}, 0) + ."\" Popup MenuMPDAlbum"); + cmd("AddToMenu $menu \"\" Nop"); + } else { + cmd("AddToMenu $menu \"\""); + cmd("AddToMenu $menu \"\" Nop"); } - cmd("AddToMenu $menu \"Title: ".sanitise($entry{Title})."\" " - ."Popup MenuMPDTitle"); - cmd("AddToMenu $menu \"Artist: ".sanitise($entry{Artist})."\" " - ."Popup MenuMPDArtist"); - cmd("AddToMenu $menu \"Album: ".sanitise($entry{Album})."\" " - ."Popup MenuMPDAlbum"); - cmd("AddToMenu $menu \"\" Nop"); if ($state eq "play" || $state eq "pause") { cmd("AddToMenu $menu \"\t\tNext%$icons/next.svg:16x16%\" " @@ -344,7 +352,7 @@ if (defined $album) { ."--menu MenuMPDAlbum " ."--album ".shellify($entry{Album}, 1)." " ."--artist ".shellify($entry{Artist}, 1)."\""); - + cmd("DestroyFunc MakeMenuMPDArtist"); cmd("AddToFunc MakeMenuMPDArtist + I DestroyMenu MenuMPDArtist @@ -362,7 +370,8 @@ print $sock "close\n"; sub sanitise { $_ = $_[0]; - s/([\$&@%^*])/\1\1/g; + s/&/&&/g if ($_[1]); + s/([\$@%^*])/\1\1/g; s/"/\\"/g; return $_; }