LoginSignup
8
3

More than 3 years have passed since last update.

便利な TweetDeck の Viewer を作ってみた

Posted at

作業中も TweetDeck 見たいですよね?僕は見たいです。
そこで、作業の邪魔をしないで TweetDeck を見るための Viewer を作ってみました。

本体は GitHub/mini-deck に置いておきます。

これは何?

ちっちゃい TweetDeck を常に最前面に表示するアプリです。
(注意) 現在は macOS のみをサポートしています。

minideck.gif

特徴

  • 簡単導入
  • ミニサイズなウィンドウ
  • フレームレス
  • 常に最前面表示
  • 表示崩れなしで拡大縮小可
  • 通常の TweetDeck と同じ使用感

使い方

アプリ版

  1. GitHub/Releases から zip をダウンロードします
  2. 展開してアプリを起動するだけ!

CLI 起動版

  1. レポジトリを git clone します
  2. npm install で必要な package をインストールします
  3. npm start で起動!

どうやったの?

TweetDeck の表示

TweetDeck 自体は Webview で表示させています。

index.html
<body>
  <div id="wrapper">
    <webview
      src="https://tweetdeck.com/">
    </webview>
  </div>
</body>

ウィンドウの諸々の設定

それ以外のウィンドウ設定は基本的に全て index.js で設定してます。
See: Electron | Browser Window

index.js
new BrowserWindow({
    // 中略
    width: 400,
    height: 200, // サイズを確定
    frame: false, // フレームを消す
    alwaysOnTop: true, // 常に最前面に表示
    titleBarStyle: 'customButtonOnHover', // ボタンを隠す
});

ちょっとした工夫

TweetDeck 内のリンクをクリックした際に Chrome などのブラウザで表示させるには openExternal(url) を使います。
See: Qiita | Electronn の 内でリンクを開いたときに外部ブラウザで開く

main.js
function openExternalUrl(event){
  const url = event.url;
  if (url.startsWith('http://') || url.startsWith('https://')) {
    shell.openExternal(url);
  }
};

実は Electron の Frameless Window はデフォルトでドラッグが制限されています。なので CSS 側でドラッグを許可する必要があります。
See: Electron | Frameless Window#Draggable region

style.css
body{
  /* 中略 */
  -webkit-app-region: drag;
}

参考

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3