Giter Site home page Giter Site logo

win-utils's Introduction

Windows Utilities

Windows で動作するユティリティコマンド群です。

Windows 10 1903 以降で利用可能です。それより前の Windows で利用する場合は、 該当するバージョンのサブフォルダ配下のファイルを本フォルダにマージしてご利用ください。

本コマンドは AutoHotKey_L(v1.1系)のスクリプトとして作成しています。 AutoHotKey については、以下を参照してください。

Unicode 64bit のコンパイラでコンパイルしたバイナリも登録しています。

全てのコマンドは、DrvFs ファイルシステム上のフォルダに格納する必要があります。 WSL からコマンドを利用する場合には、格納したフォルダにコマンドパスを通してお使いください。 ( Windows 10 1903 を利用している場合、PATH に登録するパスは DrvFs のフォルダへの実際のパス (シンボリックリンクではないパス)としてください。 シンボリックリンクのパスを PATH に登録すると、exe コマンドが実行できなくなります。)

コマンドの中で wsl.exe を使っています。複数の Linux のディストリビューションをインストールしている場合は、 wsl -s コマンドで連携する(emacsclient をコールする)ディストリビューションを指定してください。

■ wslemacs-start

WSL Emacs をデーモンモードで起動するためのコマンドです。以降に紹介している wslclient を利用する ために作成しました。

Startup フォルダにコマンドのショートカットファイルを格納しておくと、OS 起動時にコマンドを 自動起動させることができます。

使用方法

wslemacs-start.exe

wslemacs-start.ahk を見ていただくと分かる通り、Emacs はログインシェルかつインタラクティブ モードで起動した bash から起動するようにしています。これは、環境変数などが極力設定された 状態で Emacs が立ち上がるようにするためです。bash 起動時にインタラクティブな応答(例えば、 keychain や ssh-add 実行時のパスフレーズの入力など)があるとコマンドが正常に起動できません ので、ご留意ください。 そのような応答が必要な場合は、タスクトレイにある wslemacs-start.exe のアイコンのメニューに コンソールを表示する機能(Show Console)がありますので、そのコンソールから入力を完了させる ようにしてください。

なお、パスフレーズの入力を回避する方法としては、ssh-agent-wsl を使う方法があるようです。

次の設定を ~/.bash_profile に追加するのが良いと思います。

eval $(<ssh-agent-wsl コマンドを置く Windows のパス>/ssh-agent-wsl -a ~/.ssh/ssh-agent-wsl.sock -r)

⇒ (2020/07/19 追記)同じ開発者から新しいプロジェクトがリリースされていました。

使ってみましたが、wsl-ssh-agent はまだ WSL2 で利用できないようですので、ssh-aget-wsl を使い 続けることにしました。

■ wslemacs-stop

WSL Emacs を終了するためのコマンドです。

使用方法

wslemacs-stop.exe

■ wslclient / emacsclientw

WSL Emacs と連携可能な emacsclient コマンドです。

Emacs は事前にデーモンモードで起動しておくか、普通に Emacs を立ち上げておいてください。

また、Xサーバとして emacsclientw.ahk の GroupAdd で定義されているいずれかの Xサーバが 起動している必要があります。

使用方法

wslclient [emacsclient options] file...        # emacsclient command for WSL (frontend command)
wslclient.exe [emacsclient options] file...    # emacsclient command for Windows (frontend command)
emacsclientw.exe [emacsclient options] file... # emacsclient command with activate control (base command)

Emacs や Windows 側に必要となる設定は、以下の説明を参照してください。

wslclient.exe はコマンド名称にハイフンで繋がるオプションを指定できます。例えば、wslclient.exe をコピーして、wslclient-cn.exe というファイル名のコマンドを作ると、emacsclientw.exe に -cn オプションを付けて呼び出すコマンドとなります。 以下の4つのコマンド名称のコマンドを作っておけば、大抵は事足りるのではないかと思います。 コマンドの引数としてオプションを指定することもできますが、Windows の GUI を使った利用でも オプションの指定ができるように、このような仕様としています。

wslclient.exe    # wait version
wslclient-n.exe  # no-wait version
wslclient-c.exe  # create-frame and wait version
wslclient-cn.exe # create-frame and no-wait version

wslemacs-start.exe で Emacs を起動している場合は、Alt+e で本コマンドを起動することもできます。 (wslclient.exe、emacsclientw.exe は、wslemacs-start.exe と 同じフォルダに格納しておく 必要があります。)

exe コマンドを新規にインストールした場合、もしくは更新した場合には、一回目のコマンド 実行時に正常に動作しないこと(コマンドが二回実行されるなど)があるようです。 二回目からは正常に動作します。

■ winactivate

開いているウィンドウをアクティベートするためのコマンドです。

Cygwin もしくは WSL の sglstart コマンドから利用することを目的として作成しました。

使用方法

winactivate.exe filename

使用例

winactivate.exe foo.txt

この場合、以下の正規表現にマッチするタイトルを持つアクティブではないウィンドウがあれば、 アクティベートされます。

(^| )(foo\.txt|foo)( |$)

該当するウィンドウがあった場合は 0 を、なかった場合は 1 を返します。

その他

sglstart コマンドについては、以下を参照してください。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.