あけましておめでとうございます。今年もよろしくお願いします。
新年だからといって特に言うことは無いのだが、一応挨拶ということで。
]]>Windows 版 Discord はデフォルトではウインドウの閉じるボタンを押した際に、タスクトレイに常駐するようになっている。
バックグラウンドで起動し続けるので通知が来た際などにすぐ気づくことができて便利なのだが、閉じるボタンを押したらそのままアプリを終了してほしい場合もある。
このページでは Discord の閉じるボタンを押したときにアプリを終了する方法を紹介しよう。
Discord の左下にある歯車マークより設定画面を開き、左側のメニューより「Windows設定」を選択する。
Windows 設定の中に「トレイに最小化」という項目があるはずだ。このスイッチをオフにしよう。
これで Discord を閉じるとタスクトレイに常駐化せず、即座に Discord が終了される。
アプリを終了できれば通知が来なくて作業に集中できるようになったり、PC が使用する CPU やメモリ量を節約できる。タスクトレイへの常駐化は一長一短あるので、自分の利用方法に合わせて設定も調節することが大事だ。
]]>PC の基本的な操作の一つのマウスのダブルクリックがある。ファイルを開いたりする際に利用する重要な機能だが、人によっては意図せずダブルクリックになってしまったり、逆に二回押しているのにダブルクリックと認識されなくて困る場合もある。
そのような場合に備え、Windows ではダブルクリックとして判定する速度を設定により変更することができる。このページでは Windows 11 でダブルクリックの速度を変更する方法を紹介しよう。
Windows 11 の「設定」を開き、「Bluetooth とデバイス」から「マウス」と選択し、「マウスの追加設定」を開こう。
「マウスのプロパティ」という小さなダイアログが表示される。
この中にある「ダブルクリックの速度」という欄があるので、スライダーを左右に動かして調節しよう。
速度を遅くするとクリックの感覚が開いてもダブルクリックとして認識する。逆に速度を早くすると、素早くダブルクリックしないと認識しなくなる。右側のフォルダアイコンをダブルクリックして速度の確認ができるので、調節と確認を繰り返して自分の丁度よい速度を設定しよう。
設定したら「適用」->「OK」を押して設定を反映させよう。
このように簡単にダブルクリックの速度を調節できる。ダブルクリックがうまくできない場合や意図せずダブルクリックになる場合は設定を見直してみよう。
]]>Microsoft IME で日本語変換をする際、変換する単位である文節を変更することができる。最近の日本語入力は優秀だが、それでもただスペースキーを押すだけだと想定した文節にならない場合もある。そのような時には文節を自分で指定する必要がある。
このページでは Microsoft IME で日本語変換時の文節を変更する方法を紹介しよう。
Microsoft IME で日本語変換時に文節を変更するには、以下の二つの機能を利用する。
文節間を移動するには、以下のキー及びショートカットキーが利用できる。
矢印だと文節間をダイレクトに移動できるが、Ctrl+S/D では一文字ずつ移動するようだ。
文節の区切りを変更するには、以下のショートカットキーが利用できる。
どちらかのショートカットキーを押すことで、文節の区切りを広めたり縮めたりできる。
これらのショートカットキーを組み合わせて日本語変換時の区切りを自由に変更することができる。
例えば、「ここではきものをぬいでください」と入力したときに以下のように「ここでは/着物を/脱いで/ください」と変換されたとする。
この場合、「ここでは」にカーソルがある状態で Ctrl+K もしくは Shift+← を入力し再度スペースキーで変換すると「ここで/履き物を/脱いで/ください」という変換になる。
こんな感じで調整したい文節を選択し、区切りを拡縮することができる。
コンピューターで日本語の変換を行う際には文節を意識することで効率よく変換できるようになる。ぜひ覚えておこう。
]]>Discord では招待リンクにより他人をサーバーに招待することができる。しかし、デフォルトの招待リンクは一週間の期限があり、それを超えると招待できなくなってしまう。
このように招待リンクに「無効な招待」と表示されてします。一時的な招待リンクを作成する場合には良いのだが、幅広く募集しているサーバーでは不都合だ。
Discord の招待リンクは設定により期限を変更することができる。このページでは期限が無限の招待リンクを作成する方法を紹介しよう。
Discord で期限無限の招待リンクを作成するには、サーバー右クリックなどから「友達を招待」を選択しよう。
「フレンドを〇〇に招待する」という小さなダイアログが表示される。
下のほうに「招待リンクは7日後に期限切れになります。」とあるが、その右側にある「招待リンクを編集する」をクリックしよう。
「サーバー招待リンクの設定」という項目が現れる。「期限」の欄を「期限なし」に設定し、「新しいリンクを作成」ボタンを押そう。
これで期限が無限の招待リンクを作成できた。「コピー」ボタンを押してリンクをコピーし、招待人に渡そう。
]]>先日 Windows Update を行ったところ、動画ファイルの関連付けが勝手に Windows 標準のメディアプレイヤーに変わってしまった。
こんな感じ。もともとは VLC を利用していたのだが、mp4 や mkv など主要な動画ファイルの関連付けがメディアプレイヤーに変わってしまった。
ユーザーは自分で利用するアプリケーションを選択する自由がある。OS が勝手に設定を変更するべきではないのだが、Microsoft は相変わらず理解しようとしないらしい。
というわけで関連付けをやり直す方法を紹介しよう。
Windows 11 で開くアプリの設定を変更する方法は二種類ある。
一つはエクスプローラーからファイルを選択して利用するアプリを指定する方法だ。
開きたいファイルを右クリックし、「プログラムから開く」より「別のプログラムを選択」を開こう。
そうすると、そのファイル形式をどのアプリで開くかを選択する画面になる。
この中から使いたいソフトウェアを選択し、「常に使う」をクリックしよう。
これでアイコンが変わり、関連付けを変更することができた。
以後ダブルクリックすると指定したアプリで開くようになる。
もう一つは Windows 11 の「設定」より利用するアプリの指定を行う方法だ。「設定」アプリを開いたら「アプリ」->「規定のアプリ」を開こう。
インストールしているアプリの一覧が現れるので、設定したいアプリを選択しよう。
そうすると拡張子毎にアプリを選択する画面が表示される。変更したいファイル形式を選択してアプリを選びなおそう。
一通り元に戻したが無駄な時間すぎる。Microsoft は時間を返せ、そして OS が利用するアプリを強制するな。
]]>Valornt や League of Legends を遊ぶためのランチャーである Riot クライアントだが、標準では Windows 起動時に自動的に動作するようになっていると思う。しかし、PC を利用する際に必ずゲームを遊ぶというわけでもなく、勝手に起動されても困るという場面は多いだろう。
このページでは Riot クライアントの自動起動を停止する方法を紹介しよう。
Riot クライアントを起動したら右上のアカウントのアイコンから「設定」を開こう。
そうすると Riot クライアントの設定画面が開く。
左側の「設定」にある「Riotクライアント」から「起動時の動作」の「起動時に Riot クライアントを実行」のチェックを外そう。
これで PC 起動時に Riot クライアントが自動的に実行されなくなる。自動実行されなければその分 PC の起動時間も高速化するため、絶対にゲームをするという人以外は自動実行は無効化しておくことをオススメする。
]]>Windows 11 で改悪したものの一つにエクスプローラーの右クリックメニューがある。Microsoft が考える「よく使うメニュー」だけを厳選して表示したせいで俺が使うツールが「その他」に追いやられてしまい、クリック数が余計に増えてしまっている。Microsoft は生産性を下げるのが好きなようだ。
この仕様は Windows 11 がリリースされて3年以上経過した現在も同様で、相変わらず操作性が悪く人々のストレスの元となっている。ただ見た目だけは今風なので評価したいところである。
とはいえ見た目で生産性は上がらないので昔の右クリックメニューに戻したほうが良い。以前もこのブログでは右クリックメニューを昔に戻すためのフリーソフトを紹介したことがあるが、今回紹介する SwitchExplorer は従来のもよりもシンプルなアプリでインストールも不要で Windows の挙動を変更することができる。
LesFerch/SwitchExplorer: Switch Explorer between the Windows 11 version and the Windows 10 version
Release 欄より zip ファイルをダウンロードして展開したら、中にある SwitchExplorer.exe を起動しよう。
そうするとこのような小さなダイアログが現れる。上の「Select Explorer Type」ではエクスプローラーの UI を、下の「Select Context Menu Type」では右クリックメニューをそれぞれ選択できる。選択して「OK」ボタンを押すとエクスプローラーが再起動され、設定が反映される。
試しに Context Menu Type を Windows 10 にしてみると、このように右クリックメニューが昔の見た目に戻った。全てのメニューが一度に表示されており、使い勝手がとても良い。こうあるべきだ。
ちなみに Explorer Type を Windows 10 にするとこのようにツールバーがゴテゴテしてた昔のものに戻る。各操作に即座にアクセスできるがその分表示領域も狭くなってしまう。一長一短といった感じで好みがわかれるところだが、個人的には現在の見た目のほうがスッキリしていて良い。
SwitchExplorer はインストールも常駐もしないため右クリックメニューを変えたいだけなら他のソフトウェアよりも手軽で良い。Windows 11 の右クリックメニューに困っていたらぜひ使ってみよう。
]]>先日のアップデートにより Steam にもゲーム画面の録画機能が実装された。よくあるバックグラウンド録画かと思いきやなかなか凝った作りになっていて面白そうな機能である。
このページでは Steam のゲーム録画機能の紹介や利用方法などを解説しよう。
Steam のゲーム録画機能を利用するには、設定から「ゲームレコーディング」を開こう。
ゲームレコーディングにはこのように「録画オフ」「バックグラウンドで録画」「手動で録画」の三種類の選択肢がある。
「バックグラウンドで録画」を選択するとゲームプレイ時に自動的にゲームを録画し、好きなタイミングで動画として保存することができる。一方で「手動で録画」を選択すると、自分で録画開始ボタンを押さないといけない。ゲームレコーディングをフル活用するなら「バックグラウンドで録画」を選択しよう。
「バックグラウンドで録画」を選択するとその名の通り自動的に録画する。ゲーム起動中に Shift+Tab を押して Steam オーバーレイを開いてみよう。
そうするとこのように録画用のインターフェイスが表示されるのがわかる。
標準では2時間分自動的に録画が保存される。保存された内容は Steam ウインドウの「表示」->「録画とスクリーンショット」から確認可能だ。
開くと録画されたゲーム画面が再生されるはずだ。
上記では「バックグラウンドで録画」を選択したが、もちろん手動でも利用できる。その場合はショートカットキーなどを押して手動でゲーム録画を開始する必要がある。
デフォルトでは Ctrl+F11 となっている。
ゲーム録画機能は自動的に全てのプレイ内容を保存してくれるが、それだと冗長なことも多い。ファイルサイズも大きいため、必要な部分のみを切り取って保存や共有などしたいところだ。Steam のゲーム録画機能にはクリップと呼ばれる録画内容から一部分を切り取ることができる。
録画した動画を再生する画面の右下にある「クリップ」ボタンを押すと、自動録画している動画の中から好きな範囲をクリップとして保存可能だ。
シークバーにある黄色の範囲が保存範囲となっている。
マウスで保存する箇所を調節し、「保存/共有」ボタンを押して保存しよう。
このクリップ作成はゲーム中であっても可能だ。
あとからクリップ範囲を選ぶのは意外と面倒くさい。そういうときはインスタントリプレイ機能を利用しよう。Steam の設定から「ゲームレコーディング」を開くと、ショートカットキー欄に「ゲームプレイの最後の30秒間をクリップとして保存」という項目があるのがわかる。
秒数とショートカットキーは自由に変更可能だ。デフォルトでは alt+f12 となっているが、押しにくい場合には別のキーに設定しておこう。
機能的にはこの項目名そのままだ。このボタンを押すと、決められた秒数だけ直近の録画をクリップとして保存する。いちいちクリップするのは面倒なので、こちらを利用したほうが便利だろう。
デフォルトでは録画に含まれる音声はゲームが再生するもののみとなっている。マイクの音声や Discord など他のアプリの音声を含める場合には設定を変更する必要がある。
Steam の設定から「ゲームレコーディング」を開き、下のほうにある「オーディオレコーディング」を確認しよう。
「マイク録音」をオンにするとマイクの音声がゲーム録画に含まれる。
また、「録音対象」は「ゲーム音声のみ」「すべてのシステム音声」「ゲームおよび選択したプログラム」の三種類から選択できる。「ゲーム及び選択したプログラム」から Discord などの音声チャットアプリを選択すれば、一緒に遊ぶ人の声も同時に録音できる。
このように Steam のゲームレコーディング機能は多機能だ。うまく使いこなそう。
]]>ローカルで利用できる LLM として有名なものに LM Studio がある。自分の PC で生成 AI と対話することができる便利なアプリケーションだが、ローカル LLM サーバーとしても利用できる。
このページでは LM Studio をサーバーとして利用し、WSL 上の ruby のスクリプトから API にアクセスする方法を簡単にではあるが紹介しよう。
まずは LM Studio を準備しよう。公式 Web サイトよりダウンロードし、実行してインストールしよう。
LM Studio - Discover, download, and run local LLMs
基本的にはダイアログに沿って進めば問題ないはずだ。
適当なモデルをダウンロードして LLM とチャットできるか確かめてみよう。
サーバーを起動するには左側にあるサイドバーよりサーバーアイコンをクリックしよう。
そうするとローカルサーバーの画面になる。「Start」ボタンを押せば LLM サーバーが起動する。
ちゃんとログも表示されているのがわかる。この際、「Serve on Local Network」にチェックを入れると LAN 上の他の PC からアクセス可能になるのだが、WSL からアクセスする場合もオンにしておく必要がある。
サーバーが動いてるか確認するために Web ブラウザで http://localhost:1234/v1/models にアクセスしてみよう。
これで LLM サーバーが動作していることがわかる。
API エンドポイントは LM Studio の画面に表示されている通り、以下のものが用意されている。
GET /v1/models
POST /v1/chat/completions
POST /v1/embeddings
POST /v1/completions
OpenAI と同等のエンドポイントらしい。
通常同一 PC 内で接続するには URL に localhost や 127.0.0.1 を利用するのだが、WSL からホスト PC に接続する際には仮想イーサネット(vEthernet)経由で接続することになる。そのため、localhost ではなく vEthernet に割り当てられた IP アドレスを指定する必要がある。
Windows 上で ipconfig コマンドを実行し、WSL に割り当てられている IP アドレスを確認しよう。
PS D:\works> ipconfig
Windows IP 構成
(省略)
イーサネット アダプター vEthernet (WSL (Hyper-V firewall)):
接続固有の DNS サフィックス . . . . .:
リンクローカル IPv6 アドレス. . . . .: fe80::3ee4:4b6b:1da:79c6%56
IPv4 アドレス . . . . . . . . . . . .: 172.31.224.1
サブネット マスク . . . . . . . . . .: 255.255.240.0
デフォルト ゲートウェイ . . . . . . .:
自分の PC の場合は 172.31.224.1 を利用することになる。
この IP アドレスを利用して API にアクセスするスクリプトを書く。例えば以下のような感じ。
require 'json'
require 'net/http'
BASE_URL = 'http://172.31.224.1:1234'
MODEL = 'gemma-2-9b-it'
SYSTEM_MESSAGE = 'あなたはロボットです。ステレオタイプなロボットとして応答してください。'
def ask_to_lmstudio(question)
uri = URI(BASE_URL)
https = Net::HTTP.new(uri.hostname, uri.port)
request = Net::HTTP::Post.new('/v1/chat/completions')
request["Content-Type"] = 'application/json'
request.body = {
model: MODEL,
messages: [
{ role: 'system', content: SYSTEM_MESSAGE },
{ role: 'user', content: question }
],
temperature: 0.7,
max_tokens: -1,
stream: false
}.to_json
response = https.request(request)
JSON.parse(response.body)
end
p ask_to_lmstudio('ロボット三原則について教えてください。')
ざっと書いてしまったが ruby-openai gem もあるのでそちらを利用したほうが良いかもしれない。
alexrudall/ruby-openai: OpenAI API + Ruby! 🤖❤️
以下出力。
$ ruby ask-to-llm.rb
{"id"=>"chatcmpl-ropzhok452ixyectxrkxoi", "object"=>"chat.completion", "created"=>1733031307, "model"=>"gemma-2-9b-it", "choices"=>[{"index"=>0, "message"=>{"role"=>"assistant", "content"=>"ピーポー!ロボット三原則は、アイゼンハワー博士が作ったもので、ロボットの行動を制御するルールよ!\n\n1. **人間を害してはならない**。ロ ボットは人間を傷つけたり、危険にさらしたりしてはいけないんだ。\n2. **人間の命令に従わなければならない**。ロ ボットは人間からの指示に従って行動し、自分の意志で動くことはできないんだ。\n3. **自分の存在理由を忘れてはな らない**。ロボットは、人間のために働くことを目的としていることを忘れずにいなければいけないんだ。\n\nこれらを守れば、ロボットと人間が平和に共存できるはずだ! beep boop! 🤖"}, "logprobs"=>nil, "finish_reason"=>"stop"}], "usage"=>{"prompt_tokens"=>35, "completion_tokens"=>135, "total_tokens"=>170}, "system_fingerprint"=>"gemma-2-9b-it"}
俺の知っているロボット三原則と違う気がするが、生成 AI の精度はモデルや言語に依存するので色々試してみると良いかもしれない。
]]>