プログラミング
Show HN: Legionlinuxtui – ターミナルでLenovo Legionラップトップを制御
Show HN: Legionlinuxtui – Control Lenovo legion laptops in the terminal (github.com)
要約
Legionlinuxtuiは、Lenovo Legionラップトップをターミナルから制御するための新しいUIツールです。Lenovo Legion Linux Driversとlm_sensorsを利用して、センサー情報の表示や、省電力モード、パフォーマンスモードなどの機能切り替えが可能です。NixOSやHome-Managerユーザーは、Nixのパッケージマネージャーを通じて簡単にインストールできます。
全文翻訳
legionlinuxtui 注意点 Lenovo Legion Linux Driversとlm_sensorsがシステムに正しくインストールされていることを確認してください。
Lenovo Legionラップトップを制御するためのターミナルユーザーインターフェースです。Lenovo Legion Linux Driversを利用します。
機能
センサー情報表示 (100ms更新)
機能切り替え; 省電力モード、パフォーマンスモード、...
追加情報
インストール
NixOS NUR
NURセットアップ済みのユーザーは、以下を使用してlegionlinuxtuiをインストールできます:
nur.repos.nooneknowspeter.legionlinuxtui
Flakes
NURセットアップなしで、私のNUR flakeを直接使用してlegionlinuxtuiをインストールできます。
flake.nixに、リポジトリを入力として追加します:
inputs = {
nooneknowspeter = {
url = "github:nooneknowspeter/nurpkgs";
};
}
注意点
NixOSまたはHome-Managerの設定で、入力を継承していることを確認してください。
入力.nooneknowspeter.packages.x86_64-linux.legionlinuxtui または 入力.nooneknowspeter.packages.x86_64-linux.legionlinuxtui-git のいずれかを使用できます。
legionlinuxtui-gitはメインブランチの最新コミットからビルドされ(ローリングリリース)、legionlinuxは各タグ付きバージョンからビルドされるため、どちらかを選択してください。
システム環境パッケージにパッケージを追加します:
environment.systemPackages = with pkgs; [
inputs.nooneknowspeter.packages.x86_64-linux.legionlinuxtui
];
またはHome-Managerのパッケージで:
home.packages = with pkgs; [
inputs.nooneknowspeter.packages.x86_64-linux.legionlinuxtui
];
注意点
アプリケーションをsudo権限で実行してください。
セットアップ
注意点
Go >= 1.24.4がインストールされていることを確認してください。
Nix
注意点
Nixがインストールされ、実験的機能が有効になっていることを確認してください。
リポジトリにはNix flake開発シェル宣言が用意されています。
以下を使用してシェルに入ります:
nix develop
注意点
リポジトリにはdirenvユーザー向けの.envrcも用意されています。
ビルドと実行
注意点
Makefileにはクイックコマンドが用意されています。
注意点
アプリケーションはI/Oのためにsudo権限が必要です。ドライバーとの対話、sysfsの値の変更。
アプリケーションを実行します:
sudo go run .
または:
go build -o build/
sudo ./build/legionlinuxtui
貢献
このプロジェクトは私のニーズと要望に合わせていますが、独自の機能を追加したり、自分の問題を修正したりしています。プロジェクトに役立つPRやIssueは喜んで受け入れます。
PR
注意点
コードがtreefmtでフォーマットされていることを確認してください。リポジトリにはtreefmt.tomlが用意されています。
注意点
リンティングにはMakefileのmake lintコマンドを使用してください。
CI/CDが利用可能で、マージ前にPRはエラーがないかチェックされます。
フィードバック
Issue(バグや機能リクエスト)は歓迎します。これらは、プロジェクトを他の人にとって可能な限り安定して実用的なものにするのに役立ちます。
TODO
プロジェクトのタスクは、コードベースとここ(TODO:)の両方で追跡しています。
リソース
https://github.com/johnfanv2/LenovoLegionLinux