Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Layout Manager

Named tool window layouts for JetBrains Rider, like Window | Layouts in other JetBrains IDEs.

日本語

Features

  • Save the current tool window layout under a name and switch between layouts at any time.
  • Keep layouts shared by all solutions or specific to one solution.
  • Restore the active layout, save changes into it, rename or delete layouts, or go back to the default layout.
  • Reopen each solution with the tool window layout it had when it was closed.
  • Rider's Window | Layout Settings is integrated into the layout menu (optional).
  • Prefer the menu of other JetBrains IDEs? Switch to it in the settings.
  • English and Japanese user interface.

The actions are under Window | Layouts, the options under Settings | Tools | Layout Manager.

Requirements

JetBrains Rider 2026.1 to 2026.3 (builds 261 to 263).

Installation

Install Layout Manager from JetBrains Marketplace (Settings | Plugins | Marketplace), or download the plugin ZIP and use Settings | Plugins | ⚙ | Install Plugin from Disk….

Building

JDK 25 is provisioned by Gradle toolchains.

./gradlew buildPlugin      # build/distributions/LayoutManagerPlugin-<version>.zip
./gradlew runIde           # run a sandboxed Rider with the plugin
./gradlew verifyPlugin     # IntelliJ Plugin Verifier
./gradlew selfTest         # in-IDE self-test (two Rider launches, about a minute and a half)

The plugin is built against the oldest supported Rider (platformVersion, downloaded from the JetBrains Maven repository) and verified against it and the latest one (platformVersionLatest). To build and run against a locally installed Rider instead, pass -PriderLocalPath=<Rider install directory>; such builds target that Rider's Java version and are for development only, not for release.

Signing and publishing

The build reads secrets from environment variables only; nothing is stored in the repository.

Variable Used by Content
CERTIFICATE_CHAIN signPlugin Certificate chain (PEM)
PRIVATE_KEY signPlugin Private key (PEM)
PRIVATE_KEY_PASSWORD signPlugin Password of the private key
PUBLISH_TOKEN publishPlugin JetBrains Marketplace token

1. Create a signing key and certificate

The plugin signer supports ECDSA, RSA and DSA keys (not Ed25519). These steps create an ECDSA key on the P-384 curve, protected by a password, in ~/.jetbrains-signing. Keep that folder and the password private and backed up: later versions must be signed with the same key. OpenSSL is included in Git for Windows.

Windows PowerShell (OpenSSL is not on its PATH, so it is called by its full path):

$openssl = 'C:\Program Files\Git\ucrt64\bin\openssl.exe'
New-Item -ItemType Directory -Force ~\.jetbrains-signing | Out-Null
Set-Location ~\.jetbrains-signing
& $openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-384 -aes-256-cbc -out private_encrypted.pem
& $openssl req -key private_encrypted.pem -new -x509 -days 3650 -sha384 -out chain.crt

Git Bash:

mkdir -p ~/.jetbrains-signing && cd ~/.jetbrains-signing
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-384 -aes-256-cbc -out private_encrypted.pem
openssl req -key private_encrypted.pem -new -x509 -days 3650 -sha384 -out chain.crt

genpkey asks for the key password twice; req asks for it again and for the certificate details (for example Luna Project as the organization). In Git Bash, do not pass the details with -subj "/CN=…": the shell rewrites the leading / into a Windows path.

2. Sign the plugin

Set the variables in the same terminal, then sign. Replace <password> with the key password.

$env:CERTIFICATE_CHAIN = Get-Content -Raw ~\.jetbrains-signing\chain.crt
$env:PRIVATE_KEY = Get-Content -Raw ~\.jetbrains-signing\private_encrypted.pem
$env:PRIVATE_KEY_PASSWORD = '<password>'
.\gradlew.bat signPlugin
export CERTIFICATE_CHAIN="$(cat ~/.jetbrains-signing/chain.crt)"
export PRIVATE_KEY="$(cat ~/.jetbrains-signing/private_encrypted.pem)"
export PRIVATE_KEY_PASSWORD='<password>'
./gradlew signPlugin

The result is build/distributions/LayoutManagerPlugin-<version>-signed.zip. To check the signature, run verifyPluginSignature afterwards as a separate command (Gradle rejects running both tasks in one command).

3. Publish

  1. Upload the first version by hand on JetBrains Marketplace: the signed ZIP, license LGPL 2.1, source code https://github.com/LunaProject-Discord/LayoutManager.
  2. Create a token under My Tokens in your Marketplace profile and set it as PUBLISH_TOKEN.
  3. Publish later versions with publishPlugin (signs, verifies and uploads), with the variables above set.

See also Plugin Signing.

License

GNU Lesser General Public License v2.1


日本語

JetBrains Rider に、他の JetBrains IDE の ウィンドウ | レイアウト と同様の、名前付きツールウィンドウレイアウトを追加するプラグインです。

機能

  • 現在のツールウィンドウのレイアウトに名前を付けて保存し、いつでも切り替えられます。
  • レイアウトは、すべてのソリューションで共通にするか、ソリューションごとに保存するかを選べます。
  • 使用中のレイアウトの復元、変更の保存、名前の変更、削除、デフォルトのレイアウトへの切り替えができます。
  • ソリューションを開くと、前回閉じたときのレイアウトを復元します。
  • Rider の ウィンドウ | レイアウト設定 をレイアウトメニューに統合します (オプション)。
  • 他の JetBrains IDE と同じメニューを使いたい場合は、設定で切り替えられます。
  • 英語と日本語の表示に対応しています。

操作は ウィンドウ | レイアウト、設定は 設定 | ツール | Layout Manager にあります。

動作環境

JetBrains Rider 2026.1〜2026.3 (ビルド 261〜263)

インストール

JetBrains Marketplace (設定 | プラグイン | Marketplace) から Layout Manager をインストールするか、プラグインの ZIP をダウンロードして 設定 | プラグイン | ⚙ | ディスクからプラグインをインストール… を使用してください。

ビルド

JDK 25 は Gradle のツールチェーンで自動的に用意されます。

./gradlew buildPlugin      # build/distributions/LayoutManagerPlugin-<バージョン>.zip
./gradlew runIde           # プラグインを入れたテスト用の Rider を起動
./gradlew verifyPlugin     # IntelliJ Plugin Verifier
./gradlew selfTest         # IDE 内の自己テスト (Rider を2回起動、約1分半)

プラグインは、対応する最も古い Rider (platformVersion、JetBrains の Maven リポジトリからダウンロード) に対してビルドし、 その版と最新の版 (platformVersionLatest) で検証します。インストール済みの Rider でビルド・実行する場合は -PriderLocalPath=<Rider のインストール先> を指定してください。この場合はその Rider の Java のバージョン向けにビルドされるため、 開発用であり、公開には使えません。

署名と公開

秘密の情報は環境変数からのみ読み込み、リポジトリには保存しません (変数の一覧は英語版の表を参照)。

1. 署名用の鍵と証明書を作る

署名ツールが対応している鍵は ECDSA、RSA、DSA です (Ed25519 には対応していません)。以下の手順では、パスワードで保護した P-384 曲線の ECDSA 鍵を ~/.jetbrains-signing に作ります。このフォルダーとパスワードは他人に渡さず、控えを取っておいてください。 以後の更新も同じ鍵で署名する必要があります。OpenSSL は Git for Windows に含まれています。

Windows PowerShell (OpenSSL が PATH にないため、フルパスで呼び出します):

$openssl = 'C:\Program Files\Git\ucrt64\bin\openssl.exe'
New-Item -ItemType Directory -Force ~\.jetbrains-signing | Out-Null
Set-Location ~\.jetbrains-signing
& $openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-384 -aes-256-cbc -out private_encrypted.pem
& $openssl req -key private_encrypted.pem -new -x509 -days 3650 -sha384 -out chain.crt

Git Bash:

mkdir -p ~/.jetbrains-signing && cd ~/.jetbrains-signing
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-384 -aes-256-cbc -out private_encrypted.pem
openssl req -key private_encrypted.pem -new -x509 -days 3650 -sha384 -out chain.crt

genpkey では鍵のパスワードを2回、req ではそのパスワードと証明書の情報 (組織名に Luna Project など) を聞かれます。 Git Bash では -subj "/CN=…" で情報を渡さないでください。先頭の / が Windows のパスに書き換えられてエラーになります。

2. 署名する

同じターミナルで環境変数を設定してから署名します。<パスワード> は鍵のパスワードに置き換えてください。

$env:CERTIFICATE_CHAIN = Get-Content -Raw ~\.jetbrains-signing\chain.crt
$env:PRIVATE_KEY = Get-Content -Raw ~\.jetbrains-signing\private_encrypted.pem
$env:PRIVATE_KEY_PASSWORD = '<パスワード>'
.\gradlew.bat signPlugin
export CERTIFICATE_CHAIN="$(cat ~/.jetbrains-signing/chain.crt)"
export PRIVATE_KEY="$(cat ~/.jetbrains-signing/private_encrypted.pem)"
export PRIVATE_KEY_PASSWORD='<パスワード>'
./gradlew signPlugin

build/distributions/LayoutManagerPlugin-<バージョン>-signed.zip ができます。署名を確認する場合は、続けて verifyPluginSignature を別のコマンドとして実行してください (1つのコマンドで両方を実行すると Gradle がエラーにします)。

3. 公開する

  1. 最初のバージョンは JetBrains Marketplace から手動でアップロードします。 署名済みの ZIP をアップロードし、ライセンスに LGPL 2.1、ソースコードに https://github.com/LunaProject-Discord/LayoutManager を指定します。
  2. Marketplace のプロフィールの My Tokens でトークンを作成し、PUBLISH_TOKEN に設定します。
  3. 2回目以降は、上の環境変数を設定したうえで publishPlugin を実行すると公開できます (署名・検証・アップロードを行います)。

Plugin Signing も参照してください。

ライセンス

GNU Lesser General Public License v2.1

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages