HRR Co., Ltd.

技術的な記録を残していくことを目的としています。1次情報を大事にしています。

何でもタブ化するWindowTabsが便利

はじめに

今やアプリケーション内にタブの機能を持つものが大半で、SDI (Single Document Interface) のアプリケーションは減ってきたなと感じております。

しかしそれでもExcelTeraTerm (Windowsのターミナルエミュレータ)など、SDIを採用しているものを散見されてます。
特に私の場合は、TeraTermのタブ化という用途で、今回紹介する WindowsTabs を使ってみました。

WindowsTabs とは

github.com

A utility that brings browser-style tabbed window management to the desktop.

との通り、ブラウザのようなタブを付与するアプリケーションになります。

WindowsTabsのイメージ画像

元々は他の方が作成していたものをForkして今に至るようです。
上記GitHubのページにもあるように、自分でコンパイルすることも可能です。

余談

Collector というアプリケーションがありまして、今も?TeraTermに同梱されているタブ化機能を持つものになります。
これの今どきのインターフェースを備えたものといってもいいかもしれません。

www4.point.ne.jp

昔のIEはSDIだったので、それをタブ化するアプリケーションとして始まったものだったという理解をしております。

使い方

Releases のページから、exeファイルをダウンロードしてきて、それを実行するだけです。

github.com

exeを最初に叩くときは警告が出るかもしれません。
それが憚られる方は、やめざるを得ないと思います…。

使い方

WindowTbas を起動すると、下記のようなタブが すべての アプリケーションに対して付与されます。
タブブラウザにも問答無用でつくのが面白い。

起動時のイメージ

ですので、ターゲットから外すには、個別の設定が必要になります。
その他、タブの見た目や表示位置も変更が可能ですので、いろいろいじってみるといいと思います。

設定画面はタブの上での右クリックからアクセス可能です。

右クリックメニュー

「Settings...」をクリックすると、例えば下記のタブではアプリケーション毎にタブを設定する/しないが設定可能です。

設定画面

終わりに

私はTeraTermのタブ化が目的でしたが、他にもタブで使えたらいいと思われるものがあるかと思います。
ぜひお試しください。

以上でした!

WSLにTeraTermで接続する方法(SSHなし)

はじめに

Windowsからのssh接続をするとなると、WSL側でsshサービスを立ち上げる必要があり、PC起動後にひと手間かかります。

hrroct.hatenablog.com

これまではPC起動時に自動的にバッチ処理で立ち上げていたので、特に手間というほどのことはなかったのですが…。
あるタイミングのWindows Updateでプロキシ設定がWSL側に同様に適用されなくなり、Windows側からのsshサービス立ち上げがうまく行かなくなりました。
(これはこれで解決したいのですが、未だ対応する余裕がなく…)

そこで今回は趣向を変えて、そもそもsshでの接続をしない方向で攻めます。

やりかた

Cygwin + wslbridge2 で対応します。
WSLができて、もうCygwinに頼ることはないと思っていたのですが、ここにきて回帰することになるとは…。

wslbridge2 の導入

wslbridge2 とは、

github.com

Explore various ways to connect Windows Subsystem for Linux (WSL) with Windows terminal emulators and command line programs.

(DeepL訳) Windows Subsystem for Linux (WSL) を Windows ターミナルエミュレータコマンドラインプログラムと接続する様々な方法を探る。

というわけで、Cygwinに限らずmsys2でも可能らしいのですが、今回はCygwinで。
リリースノートのページから、下記2つのファイルを落としてきて、展開します。

https://github.com/Biswa96/wslbridge2/releases
wslbridge2-backend.zip
wslbridge2-cygwin.zip

そして適当な場所に配置します。

C:\MyApps\wslbridge2\wslbridge2.exe  
C:\MyApps\wslbridge2\wslbridge2-backend

このままだと起動せず、 cygwin1.dll がないと言われることになります。
そのためにCygwinを入れることになります。

Cygwinの導入

www.cygwin.com

ちなみに、Cygwinとは…

・a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.
・a DLL (cygwin1.dll) which provides substantial POSIX API functionality.

(DeepL訳)
・Windows上でLinuxディストリビューションと同様の機能を提供する、GNUおよびオープンソースツールの大規模なコレクション。
・POSIX APIの主要な機能を提供するDLL(cygwin1.dll)。

ということで、今回の用途は主に後者、DLLファイルに用があります。
ダウンロード、インストールをすれば、規定の通りなら下記ディレクトリにDLLファイルが存在すると思います。

C:\cygwin64\bin\cygwin1.dll

そして、Windows環境変数に下記を追記して、Pathが通るようにしておきます。

C:\cygwin64\bin

更に、Cygtermのコンフィグファイルの修正を行います。
(これには管理者権限が必要ですので、メモ帳を管理者権限で立ち上げるなりで開きましょう)

C:\Program Files (x86)\teraterm5\cygterm.cfg

ファイルが上記の場所にありますので、下記のように修正します(wslbridge2を経由して起動するイメージ)。
バックスラッシュはエスケープ目的で2つ重ねます。

SHELL = auto

↓↓↓

# SHELL = auto
SHELL = "C:\\MyApps\\wslbridge2\\wslbridge2.exe" -W~

ここでの W オプションは下記の意味合いがあります。

-W or --wsldir: Changes the working directory to WSL path.

最後に、下記を実行してTeratermが立ち上がれば一旦成功。
一緒に立ち上がってくるbackendのプログラムが気になるところですが…これはしょうがないものとして一旦放置です。

C:\Program Files (x86)\teraterm5\cygterm.exe

cygconnect(TeraTermマクロ)で起動したい

私がTeratermを使い続ける理由のほとんどはマクロ機能なので、マクロから起動できないと意味がありません。

動作確認としては、

cygconnect;

とだけ記載したwsl.ttl (名前は何でもいいですが拡張子をttlとする) を作成して、これを実行することで同様にTeraTermが開けばOKです。

ちなみに私は、下記の不具合を踏んでうまくいかなかったので、Teratermを最新にしておくことをオススメします。
私は teraterm-5.4.1.exe でうまくいきました。

github.com

最後に

これでsshに頼ることなく、WSL2への接続が可能になりました。
皆様のWindowsでの快適な開発ができることに寄与できたのなら幸いです。

以上でした!

EPOMAKER Split 65 のキーマッピングの方法

概要

新しいキーボードを衝動的にお迎えしましたので、そのキーマッピング方法を忘れないうちに記録しておきます。
説明書に記載はあるのですが、VIAを初めて使う方にもわかりやすいように心がけました。

EPOMAKER Split65

Amazonにて、通常時で21,340円、20%OFFで17,072円で私が見た中ではこれが最安。
ホットスワップが可能ですが、初期のキーは「Flamingo Switch」or「Wisteria Linear Switch」から選ぶことが可能です。どっちにもリニア軸(引っかかりがないタイプ)みたいですね。

VIAのダウンロードとインストールから

VIAというソフトウェアを利用しますので、ダウンロードとインストールが必要です。

github.com

上記のGitHunのサイトから可能です。Windowsの方は下記のどちらかになると思います。
via-3.0.0-win.exe
via-3.0.0-win.msi

私はexeファイルからインストールしました。

インストール完了

うまく行けば上のようなウィンドウが表示されることと思います。

VIAの起動と設定

Searching for devises...

ソフトウェアを起動するとこのような画面になります。
最初はまだキーボードが繋がってなくとも大丈夫です。

Show Design Tab

次に設定ファイルを読み込ませます。
キーボードの形は製品によっていろいろで、今回のように変な形をしてる場合(褒めてます)は独自の設定ファイルを読み込ませる必要があります。

そのために、上記「SETTINGS」タブの「Show Design Tab」をONにします。
こうするとこれまでなかった「DESIGN」タブが表示されるようになります。

設定ファイル(JSONファイル)の取得と読み込み

epomaker.com

EPOMAKERのサイト

こちらのサイトにアクセスして、画像の場所をクリックすることで、設定ファイルであるJSONファイルをダウンロードできます。
ZIP圧縮されているので、右クリックから展開してあげてください。

非推奨の機能はOFFに

その後、「User V2 definitions (deprecated)」がOFFになっていることを確認したうえで、上の点線の枠内にダウンロードしたJSONファイルをドラッグアンドドロップしてあげます。

一番左のCONFIGUREタブにて編集が可能です

この状態で、キーボードがPCと接続ができていれば、一番左の「CONFIGURE」タブが、今回のキーボード「EPOMAKER Split 65」の形になっていると思います。
この状態で、キーマッピングを変更したいキーをクリックして、画面下半分から書き換え先を選んでクリックして…という流れで変更していくことになります。

ちなみに、リアルタイムで設定が変わりますので、保存ボタン等はありません。

設定例

ちなみに私は下記のようにしております。自分なりのやり方を探すのも楽しいです。
(他の方が触れないキーボードになりますが…)

私の設定例: Layer0(初期)

  • 「Caps Lock」を「Left Ctrl」に
  • 「Left Ctrl」を「Fn1」に(レイヤー1への切り替えです。小指の付け根で押してます)
  • 右の「Space」を「Enter」に(これをするために買ったといっても過言ではありません)
  • 右の「Fn」を「Fn2」に(レイヤー2への切り替えです。2はそんなに使わないですが)

私の設定例: Layer 1

  • レイヤー1の「h」「j」「k」「l」を矢印キーに(Vimと一緒)
  • レイヤー1の「Space」を「Backspace」に

終わりに

キーボードによってVIAの扱いが変わるので、忘備録的な意味合いも込めた記事でした。

キーマッピングとは話題がずれますが、Spaceバーが分割されているキーボードは便利ですよ…
気になった方はぜひお試しあれ。

以上でした。

勤怠関連のExcel関数集

はじめに

掲題通りで、小ネタです。 例えば正社員以外の勤怠を### はじめに

掲題通りで、小ネタです。 システムを使わない場合の勤怠管理にExcelファイルを使うことはあると思っており… そんなときに有用なものをまとめました。

1. 時間の切り上げ、切り下げ

例えば勤怠の時間は15分単位ですよ、となった場合、

9:08 → 9:15
9:54 → 10:00

または

18:38 → 18:30
20:09 → 20:00

のようにするしたい場合があります。

やり方

切り上げ

=CEILING(A10,"0:15")

切り下げ

=FLOOR(A10,"0:15")

15分単位で、というのを"0:15"と書けるのがポイントかなと。

参考

support.microsoft.com

support.microsoft.com

2. ◯分表記をhh:mmに

70分 → 1:10:00  

みたいなイメージです。

やり方

=INT(SUBSTITUTE(A10,"分",""))/1440

シリアル値(1日で1になるような値)に変換して、書式設定で1:10:00のようにすることを考えます。 まず「分」をSUBSTITUTE関数で除外した上で、INT関数で数字として扱います。
1日が24時間、1時間は60分ということで24 * 60 = 1440で割ることで、シリアル値への変換が可能です。

参考

support.microsoft.com

3. 時分(160:30)を小数点表記に(160.5)

24を掛け算した上で、小数点で表示するように書式設定を行います。
シリアル値は1日で1になるような値なので、これを時間表記にするために24を掛け算します(1日 = 24時間ということで)。

=A10*24

おわりに

主に自分用でしたが…どなたかお役に立てばと思っての放流です。
以上でした。

Cliborで1時間後の時間を出力したい

はじめに

Cliborの定型文はマクロが使えてとても便利です。
今回、1時間後の時間を貼り付けられたら便利だなという場面に遭遇したので、小ネタですが記事にしました。

○分後でも、○日後でも、○日前でも可能です。

バージョン情報 (2.3.4)

バージョンは2.3.4で試しております。
古いと正常に動かない場合があります。

結論

現在時刻(時間:分)を下記とすると、
<$CLB_HDATE>hh:nn</CLB_HDATE>

1時間後は下記のようになります。
<$CLB_HDATE><$CLB_INCHOUR>1</CLB_INCHOUR>hh:nn</CLB_HDATE>

定型文に↓のように設定しておくと、チャットツールでお昼休憩に行きます!宣言に便利かもしれません。

お昼休憩に行ってきます!
(<$CLB_HDATE>hh:nn</CLB_HDATE>~<$CLB_HDATE><$CLB_INCHOUR>1</CLB_INCHOUR>hh:nn</CLB_HDATE>)

出力はこんな感じ。

お昼休憩に行ってきます!
(11:58~12:58)

参照したドキュメント

本家のQ&Aサイトです。

chigusa-web.com

Delphi製ということで、日時の指定の仕方はこちらのドキュメントが参考になります。
hhとかnnのお話です。

docwiki.embarcadero.com

最後に

Windowsクリップボード管理ソフトは、今のところこちらが一番かなと思ってます。
上記マクロはいろいろあるので、便利に使いこなしていただければ幸いです。

以上でした。