サクサク記事を読み進められるRSSリーダー「FreshRSS」

Googleリーダーの頃はRSSリーダーをよく利用していましたが、サービス終了とともに徐々に頻度が減り。一応、Feedlyに移行はして利用していましたが、最近はSNSなどで情報収集するのでRSSリーダーを利用する機会は減っていました。
そんな中、良さそうなRSSリーダー「FreshRSS」を見つけたので入れてみました。カスタマイズするとGoogleリーダーの頃と同じような感じ、いやもっと前のFeedDemonと同じようにサクサクと閲覧出来ます。どんな感じだったかはもう忘れてしまいましたが。

Docker環境でインストール

Docker環境があればすぐに導入できます。自分仕様で、~/freshrssディレクトリを作成し、一気に完成まで。
3ペイン表示にするThreePanesViewプラグインと、続きも一気に表示できるAf_Readabilityプラグインも一緒に導入しています。

mkdir -p ~/freshrss && cat > ~/freshrss/docker-compose.yml << 'EOF'
version: '3'
services:
  freshrss:
    image: freshrss/freshrss:latest
    container_name: freshrss
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - freshrss_data:/var/www/FreshRSS/data
      - freshrss_extensions:/var/www/FreshRSS/extensions
    environment:
      TZ: Asia/Tokyo
      CRON_MIN: '*/15'

volumes:
  freshrss_data:
  freshrss_extensions:
EOF
cd ~/freshrss && docker compose up -d && sleep 10 && \
sudo apt install -y unzip && \
curl -L "https://framagit.org/nicofrand/xextension-threepanesview/-/archive/master/xextension-threepanesview-master.zip" -o tpv.zip && \
unzip tpv.zip && \
docker cp xextension-threepanesview-master freshrss:/var/www/FreshRSS/extensions/xExtension-ThreePanesView && \
rm -rf tpv.zip xextension-threepanesview-master && \
curl -L https://github.com/Niehztog/freshrss-af-readability/archive/refs/heads/master.zip -o af.zip && \
unzip af.zip && \
docker cp freshrss-af-readability-master freshrss:/var/www/FreshRSS/extensions/xExtension-af_readability && \
rm -rf af.zip freshrss-af-readability-master && \
echo "完了!http://localhost:8080 にアクセスしてセットアップしてください"

完了したらhttp://IPアドレス:8080にアクセスして設定していきます。

Web上で設定

最初に環境確認やパスワード作成がありますが、特に戸惑う部分はないはずです。

設定が完了してログインすれば使えるようになります。まずは拡張機能を有効にします。


ThreePanesViewプラグインとAf_Readabilityプラグイン導入済みなので、トグルスイッチをOnにします。Af_Readabilityプラグインは歯車のところをクリックすれば、対象のフィードを選択出来ます。読み込み済みのフィードには適用されないので、フィードを追加した時には忘れずに設定しましょう。

これで3ペインに、さらに「続きを読む」になっているフィードも大半は全文が表示されるはずです。

CSSで使いやすいデザインに

デフォルトでは記事部分のコンテンツ幅が狭く記事を読みにくいのでUserCSSを有効にし、歯車マークをクリックして次のコードを入れています。

フィード一覧やタイトル一覧を狭くして記事ページを大きく、タイトル一覧の幅が狭くなるとタイトルがほとんど見えなくなるので日付表示を隠す設定にしています。数値を調整して好みの幅にできます。#aside_feedがフィード一覧、#streamが記事タイトル一覧です。さらに、タイトル一覧が少しでも長く出るように、タイトル一覧ペインのフィード名は非表示にしてアイコンだけにし、そのぶんタイトル一覧が長く出るようにしています。

#stream {
  width: 280px !important;
  min-width: 280px !important;
}

#aside_feed {
  width: 200px !important;
  min-width: 200px !important;
}

#current-article {
  flex: 1 !important;
  width: auto !important;
}

#stream .flux .flux_header .item .date,
#stream .flux .flux_header .date {
  display: none !important;
}

#stream .flux .flux_header .item .title,
#stream .flux .flux_header .item .title:has(~ .date) {
  position: relative !important;
  padding-right: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

#stream .flux .websitename .item.website,
#stream .flux .item.website {
  width: 32px !important;
  min-width: 32px !important;
  max-width: 32px !important;
  overflow: hidden !important;
  padding: 0 !important;
}

#stream .flux .flux_header .item.website .item-element {
  padding: 0 6px !important;
}

#stream .flux .flux_header .websiteName {
  display: none !important;
}

#stream .flux .flux_header .item.titleAuthorSummaryDate {
  width: auto !important;
  max-width: 100% !important;
}

CSSがうまく反映されない時は、貼り付けたあとにトグルスイッチをOn/Offすれば反映されるはず。

ここからは個人的な設定ですが。使っていくうちにまだ変更するかもしれません。

テーマは好みなものですが、邪魔が少ない「Origine-compact」にしています。そして一番右側のペインの中で最大幅を利用出来るように「最大幅」に。状況に応じて、リーディングの「ノーマルビュー」で「すべての記事を表示する」に。

ショートカットキーは、左手のホームポジションで操作しやすいように。マウスカーソルが記事ペインにあれば、左手fキーでどんどん進め、読みたい記事はスクロール、記事タイトルを進ませすぎて戻して読みたい時はdキー、とサクサク読めます。

カスタマイズした設定

ディスプレイ

・テーマ:Origine-compact
・コンテンツ幅:最大幅

リーディング

・1ページ当たりの記事の数:50
・記事を既読にする…すでに同一タイトルがフィード内上位n件の最新記事に存在するとき:チェック

ショートカット

・次の記事を開く:g
・次の未読の記事を開く:f
・前の記事を表示する:d

モバイルで連携

iOSアプリもあるようで、NetNewsWireReeder (Classic)ReadkitがFreshRSSと連携出来て良さそうみたいです。現在のところ、iPhoneでまでRSSを読もうとは思っていないので試してはいませんが。

ちなみに、FeedlyからOPMLをエクスポートするにはhttps://feedly.com/i/opmlから。