CygwinのEmacsをタスクバーからいい感じに起動
課題
WindowsでEmacsを動かす方法はいくつかありますが、Cygwinを使っている場合は親和性の観点から、CygwinのEmacsが使いたくなります。しかし、emacs-w32.exeはコンソールプログラム(コンソールアプリケーション)として作成されているので、単純にタスクバーにピン留めしてこれをクリックして起動すると、真っ黒のコンソールウィンドウが余分に表示され、いい感じじゃありません。
コンソールウィンドウの隠蔽
Cygwinはベースシステムにrun.exeというコマンドが用意されており、これに目的のプログラムを与えると、コンソールウィンドウを隠蔽してくれます。emacs-w32.exeのコンソールウィンドウを隠蔽するには、run.exeのショートカットを作成して適当な名前(run-emacsとか)に変え、プロパティの「リンク先」としてEmacsのコマンド名emacs-w32を引数として付け、C:\cygwin64\bin\run.exe emacs-w32
のようにしておきます。あと、アイコンをemacs-w32.exeのものに変更し、作業フォルダをC:\cygwin64\home\%USERNAME%
などとしておくとよいでしょう。
これをタスクバーにピン留めしておくと、起動しても、コンソールウィンドウが一瞬現れますが、すぐ消えるので、まあいい感じとしておきましょう。
ところがタスクバーをよく見ると、Emacsのアイコンがもう一つ表示されてしまいます。これはいい感じじゃありません。
タスクバーのグループ化制御
Windows 7以降では、プログラムはアプリケーションID(AppId)でグループ化されてタスクバーに表示されます。ところが、ショートカットにはデフォルトではAppIdが設定されていないため、起動されたプログラムそのものは別のグループとして扱われてしまうのです。
プログラムのAppIdは、7+ Taskbar Tweakerにより調べることができます。これをインストール・起動すると、ウィンドウ右下にある「Taskbar Inspector」ボタンにより、現在のタスクバーの各AppIdが表示されます。これによると、CygwinのEmacsのAppIDはGNU.Emacs
です(GNU純正のMinGW32バイナリも同様のようです)。
次に、ショートカットのAppIdを設定するには、Win7AppIdが利用できます。Win7AppId1.1.exe
をダウンロードして適当な場所に置き、次のように実行すると、それまでのAppIdが表示され、新しいAppIdが設定されます。(引数の先頭の/はスイッチとして扱われるので、Cygwinからはショートカットを絶対パスで指定でできないので注意)
$ Win7AppId1.1 run-emacs.lnk GNU.Emacs
完成
以上の作業の後、いったんタスクバーのピン留めをはずし、再度run-emacsをピン留めします。以降は、これをクリックすると、コンソールウィンドウは出ず、タスクバーのグループ化もうまくいき、いい感じです。
もちろん他のGUI付きコンソールアプリケーションにも応用できます。
Author And Source
この問題について(CygwinのEmacsをタスクバーからいい感じに起動), 我々は、より多くの情報をここで見つけました https://qiita.com/HirotoKagotani/items/121d3211c4631c547ada著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .