2024-08-31

正式リリースされていた deepin 23

deepin は、Debian の安定版をベースとした Linux ディストリビューションで、中国に拠点をおく Wuhan Deepin Technology Co., Ltd.(武汉深之度科技有限公司)が開発しています。デスクトップ環境に Qt を利用した独自の DDE (Deepin Desktop Environment) を採用しています。

気づくのが遅れましたが、長いプレビュー期間を経て、8 月 15 日に deepin 23 がリリースされました [1]

deepin のインストール用 iso イメージのダウンロードサイト

CPU アーキテクチャーは、X86 (x86_64), ARM に加えて LoongArch が含まれているのが興味深いです。RISC-V もサポートしています(記事執筆時点ではこのアーキテクチャのみプレビュー版です)。

deepin 23 のデスクトップ画面

早速、仮想環境 GNOME Boxes に deepin 23 をインストールしてみましたが、仮想環境との相性が悪いのでしょうか、しばらくするとフリーズしてしまいます。この週末に実機(古いノート PC)にインストールして詳しく調べるつもりです。

なお、ナナッキーさんのサイト [2] で deepin 23 がすでに紹介されています。

日本語変換については、Mozc にこだわらなければ、Anthy で日本語変換ができます。

※ Mozc に比べれば、Anthy の日本語変換はおバカなので、慣れないと苛々するかもしれません。😅

本ブログ deepin 23 プレビュー版の記事 [3] にしたがって、正式版でも試しましたが、同じように日本語変換ができました。あいにく、そのあと仮想環境がフリーズしてしまってスクリーンショットを取れなかったので、プレビュー版の記事の内容を抜き出しました。

bitwalk@deepin-pc:~$ sudo apt install fcitx5-anthy
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
    ...
    ...
以下の追加パッケージがインストールされます:
  anthy anthy-common kasumi libanthy1 libanthyinput0
以下のパッケージが新たにインストールされます:
  anthy anthy-common fcitx5-anthy kasumi libanthy1 libanthyinput0
アップグレード: 0 個、新規インストール: 6 個、削除: 0 個、保留: 1 個。
5,965 kB のアーカイブを取得する必要があります。
この操作後に追加で 30.1 MB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 https://community-packages.deepin.com/beige beige/main amd64 anthy-common all 1:0.4-2 [5,595 kB]
    ...
    ...
libc-bin (2.37-12deepin3) のトリガを処理しています ...
man-db (2.12.0-1) のトリガを処理しています ...
bitwalk@deepin-pc:~$ im-config -n fcitx5
bitwalk@deepin-pc:~$ 

コントロールセンターを起動して、左側の「キーボードと言語」タブをクリックして表示される右側画面上部の「Input Method」タブを選択して、以下のように「キーボード - 日本語」と「Anthy」を追加します(「英語」は削除)。

 

これで Ctrl + SPACE で英数入力と(ローマ字)ひらがな入力を切り替えます。さらにひらがな入力の時は SPACE で変換候補を表示、Enter で確定となります。

Text Editor での日本語入力例

実機にインストールして、後日、詳しくまとめる予定です。

参考サイト

  1. deepin 23 Release Note – Deepin Technology Community [2024-08-15]
  2. 優れたデスクトップ環境Deepinの紹介、ただし問題もあり|ナナッキー [2024-08-18]
  3. bitWalk's: deepin [2024-04-29]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

2024-08-29

「廻想体 ネクスト ユーピー B」フォント

今はフリーあるいはオープンソースのフォントが利用できる時代です。いろいろなフォントを紹介しているサイトはありますが、気に入ったデザインのフォントを自分なりのやり方で紹介しています。

今回紹介するフォントは「廻想体 ネクスト ユーピー(B)」というフォントです。

フォント名 廻想体 ネクスト ユーピー B
収録字数 ひらがな・カタカナ・欧文・数字・JIS 第一水準漢字(2965字)・JIS 第二水準(880字)・IBM 拡張漢字他数点
配布ライセンス もじワク研究 / Open Type フォント使用許諾範囲
配布サイト 日本語フリーフォント | 廻想体 | もじワク研究

配布サイトによると、フォントの特徴は次のようになっています。

  • 3種の線だけで構成されたスリムな日本語フォント
  • 「斜め」の線の角度を全て ±62° に統一
  • 書体幅は通常の書体幅 1000 に対し 800 で作成
  • ひらがな中心に構成すると可愛ゆく
  • カタカナで構成するとステレオタイプの近未来感
  • 漢字で構成すると「なんかやったぜ感」が漂い
  • 欧文・数字で構成するとなんかイイ感じに
  • タレ、ハネ、ム、払いが含まれる一部漢字デザイン(異体字)が選べます。
  • 半角ひらがな・半角カタカナは角度はそのままで半角幅のかなが楽しめます。

利用例を下記に示しました。

Kaisotai-Next-UP-B.ttf の利用例

使用したプログラム

スクリーンショット用に使用したプログラムは、本ブログの過去記事 [1] で紹介しています。

参考・関連サイト

  1. bitWalk's: 「ポプらむ☆キウイ」フォント [2024-08-27]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

2024-08-28

CentOS Stream 10 情報 (3)

CentOS Stream は、継続的に提供される Red Hat® Enterprise Linux (RHEL) のディストリビューション・アップストリームを、オープンソース・コミュニティのメンバーが Red Hat の開発者と連携して開発、テスト、貢献することができる、Linux® ディストリビューションです。

Red Hat は Red Hat Enterprise Linux ソースコードを CentOS Stream 開発プラットフォームで開発してから、新しい Red Hat Enterprise Linux バージョンをリリースします。Red Hat Enterprise Linux 9 は、CentOS Stream 内で構築された最初のメジャーリリースです。

参考サイト [1] より引用

来年は Red Hat Enterprise Linux 10 がリリースされると予想されますが、その開発版である CentOS Stream の開発が始まっています。まだ正式な CentOS Stream 10 のリリース前ですが、開発版の iso ファイルがダウンロードできます。

CentOS Stream 10(プレリリース版)の入手先

現時点での CentOS Stream 10 開発版の iso ファイルをダウンロードして、仮想環境 (GNOME Boxes) にインストールしてみました。実際のところ、ときどき iso ファイルをダウンロードしてインストールを試していたのですが、しばらくの間はインストールに成功していませんでした。

CentOS-Stream-10-20240826.0-x86_64-dvd1.iso をインストール直後のログイン時のデスクトップ画面

CentOS Stream 10 (CentOS-Stream-10-20240826.0-x86_64-dvd1.iso) の構成は以下のようになっていました。

Linux kernel
kernel-6.11.0-0.rc4.20.el10.x86_64
GNOME
gnome-shell-47~alpha-4.el10.x86_64

前回確認したとき [6] より、カーネル、GNOME 共に新しいバージョンになっています。

正確にいつからそうなったかは判らないのですが、パッケージのリポジトリが有効になっていました。これで毎回 iso イメージをダウンロードしなくとも、ネットワークを通してアップデートできそうです。ただし、インストーラが変更される可能性があると考えているので、ときどき iso ファイルをダウンロードしてインストーラを確認する必要はありそうです。

気づいたこととして、python コマンドが python 3 系を指すように変更されたようです。

bitwalk@centos:~$ python -V
Python 3.12.5
bitwalk@centos:~$ 

参考サイト

  1. CentOS Stream とは | Red Hat
  2. Red Hat、RHELからLibreOfficeパッケージを削除へ、今後はFlatpakで対応 | gihyo.jp [2023-06-08]
  3. Red Hat Enterprise Linux 10 での Wayland および Xorg サーバーに関する方針 [2023-11-27]
  4. Red Hat Evaluating x86-64-v3 Requirement For RHEL 10 - Phoronix [2024-01-03]
  5. bitWalk's: CentOS Stream 10 情報 (1) [2024-05-26]
  6. bitWalk's: CentOS Stream 10 情報 (2) [2024-06-27]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

2024-08-27

「ポプらむ☆キウイ」フォント

小学館の雑誌「サライ」[1] の最新号 2024年 9月号の大特集、「漢字」に遊ぶ を大変興味深く読みました。特に、石川祐基さんが案内する記事「町の漢字看板を楽しむ」(44 ページ)に触発され、自分も町を歩いて看板の文字を楽しんでみたくなりました。

さらに、今はフリーあるいはオープンソースのフォントが利用できるこの時代です。看板の漢字ではありませんが、デスクトップ画面でいろいろなデザインのフォントを見て楽しむこともできます。いろいろなフォントを紹介しているサイトはありますが、気に入ったデザインのフォントを自分なりのやり方で紹介したいと思いました。

紹介する第一弾のフォントは「ポプらむ☆キウイ」という、ポップ体のフォントです。ポップ体とは、POP 広告を制作するのに利用に適した書体のフォントです。

フォント名 ポプらむ☆キウイ
収録字数 JIS 第一水準 + JIS第二水準(184字)IBM 拡張漢字
配布ライセンス SIL Open Font License, Version 1.1
配布サイト ポプらむ☆キウイ | キウイ皮ごと齧る

利用例を下記に示しました。

PopRumKiwi-Telop.ttf の利用例

使用したプログラム

スクリーンショット用に使用したプログラムを紹介しておきます。

下記の OS 環境で動作確認をしています。

RHEL 9.4 x86_64
Python 3.12.1
PySide6 6.7.2

プログラムを以下に示しました。

フォルダーボタンをクリックすると、ttfotf の拡張子を持ったファイルを選択するダイアログが表示されます。読み込みたいファイルを選択すると、QPlainTextEdit のインスタンス内に入力する文字が読み込んだフォントで表示されます。

font-explorer.py

参考・関連サイト

  1. サライ.jp|小学館の雑誌『サライ』公式サイト
  2. 湘南モノレール「もじ鉄」旅|石川祐基 | 湘南モノレール株式会社

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

2024-08-18

動的に複数のチャートを表示する

PySide (Qt for Python) は、Qt(キュート)の Python バインディングで、GUI などを構築するためのクロスプラットフォームなライブラリです。Linux/X11, macOS および Microsoft Windows をサポートしています。配布ライセンスは LGPL で公開されています。

mplfinance のチャートを PySide6 のウィジェットに埋め込んだ時に、表示するチャートを動的に増やしたり減らしたりしたかったので、FigureCanvas インスタンスを変えずに、表示するチャートの数を増減するサンプルを作ってみました。

下記の OS 環境で動作確認をしています。

RHEL 9.4 x86_64
Python 3.12.1
PySide6 6.7.2
mplfinance 0.12.10b0
yfinance 0.2.41

サンプルを以下に示しました。サンプルでは、日経平均株価の過去3ヶ月の日足データを yfinance で取得しています。

qt_mpl_finance_3.py
qt_mpl_finance_3.py の実行例

ツールバーの Volume チャックボックスにチェックを入れると、出来高の棒グラフが下に追加されます。プロットは切り替える度に再描画しています。

qt_mpl_finance_3.py の実行例(ツールバーの Volume チャックボックスをチェック)

FigureCanvas クラスを継承した MyChart クラスで、軸数の設定や再描画の処理をしています。今回の用途では縦方向にチャートを増減させるだけですが、メインのチャートを常に大きく表示したかったので、処理を簡単にするために GridSpec で複数チャートの表示レイアウトを決めています。

class MyChart(FigureCanvas):
    def __init__(self):
        self.fig = Figure()
        super().__init__(self.fig)
        self.fig.subplots_adjust(
            left=0.12,
            right=0.87,
            top=0.9,
            bottom=0.05,
        )
        self.ax = dict()

    def initAxes(self, ax, n: int):
        if n > 1:
            gs = self.fig.add_gridspec(
                n, 1,
                wspace=0.0, hspace=0.0,
                height_ratios=[3 if i == 0 else 1 for i in range(n)]
            )
            for i, axis in enumerate(gs.subplots(sharex='col')):
                ax[i] = axis
                ax[i].grid()
        else:
            ax[0] = self.fig.add_subplot()
            ax[0].grid()

    def initChart(self, n: int):
        self.removeAxes()
        self.initAxes(self.ax, n)

    def clearAxes(self):
        axs = self.fig.axes
        for ax in axs:
            ax.cla()

    def refreshDraw(self):
        self.fig.canvas.draw()

    def removeAxes(self):
        axs = self.fig.axes
        for ax in axs:
            ax.remove()
        self.ax = dict()

    def setTitle(self, title: str):
        self.ax[0].set_title(title)

MyChart の使い方は(mplfinance には依存せず)以下のような流れになります。

# MyChart クラスのインスタンスを配置
chart = MyChart()
self.setCentralWidget(chart)
# チャート用のナビゲーションツールバーを配置
navigation = NavigationToolbar(chart)
self.addToolBar(navigation)
...
...
# 表示するチャート数を n で指定して初期化
chart.initChart(n)

# チャートを描画
# 軸は chart.ax[0], chart.ax[1], ..., chart.ax[n-1] で指定
...
...

# チャートの表示を更新
chart.refreshDraw()
# ナビゲーションツールバーの更新
navigation.update()

参考サイト

  1. matplotlib.gridspec.GridSpec — Matplotlib documentation

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

2024-08-17

ラジオボタンの機能をプッシュボタンで実現する

PySide (Qt for Python) は、Qt(キュート)の Python バインディングで、GUI などを構築するためのクロスプラットフォームなライブラリです。Linux/X11, macOS および Microsoft Windows をサポートしています。配布ライセンスは LGPL で公開されています。

ラジオボタンの機能とは、複数のラジオボタンを並べて、その中から一つのみが選ばれる機能を指しています。この、「ひとつのみが選ばれる機能」を、プッシュボタンで実現する例を紹介します。

下記の OS 環境で動作確認をしています。

RHEL 9.4 x86_64
Python 3.12.1
PySide6 6.7.2

ここで紹介するサンプルでは、みふねたかし氏のサイト [1] で紹介されているイラストを、サイズを変更して利用させていただいています(下記)。

QRadioButton を利用した場合

まずはラジオボタンを3つ、横に並べたサンプルを示します。

qt_radiobutton_fruit_1.py
qt_radiobutton_fruit_1.py の実行例
qt_radiobutton_fruit_1.py の実行時の出力例
「林檎」をオフにしました。
「葡萄」をオンにしました。
「葡萄」をオフにしました。
「蜜柑」をオンにしました。
「蜜柑」をオフにしました。
「林檎」をオンにしました。

もし、レイアウト上の問題や、あるいは好みの問題から、ラジオボタンのチェック部分を取り除き、文字列はツールチップをポップアップして表示させるようにして、イメージだけのボタンにしたい場合、QRadioButton では実現できません。

QPushButton を利用した場合

QRadioButton が継承している QAbstractButton クラスは、QPushButton も継承していて、QRadioButton の「ひとつのみが選ばれる機能」という排他的な選択機能も実装しています。

そこで、QPushButton を利用して、ラジオボタンの「ひとつのみが選ばれる機能」という排他的な選択機能を実現しました。

サンプルを下記に示しました。

qt_radiobutton_fruit_2.py
qt_radiobutton_fruit_2.py の実行例

3つのボタンで同じ設定を繰り返すのを避けるため、QPushButton を継承した ToggleButtonImage クラスを用意しました。

class ToggleButtonImage(QPushButton):
    def __init__(self, imgname: str, tooltip_str: str):
        super().__init__()
        self.setIcon(QIcon(imgname))
        self.setIconSize(QSize(32, 32))
        self.setToolTip(tooltip_str)
        self.setCheckable(True)
        self.setAutoExclusive(True)

ラジオボタンと同じ機能は self.setCheckable(True)self.setAutoExclusive(True) で実現しています。イメージだけを表示する代わりに、イメージのサイズを少し大きくしました。

QButtonGroup は、QRadioButton の時と同じように使えます。出力例は省略しましたが、selection_changed メソッドでは(ラジオボタンに表示していた文字列の代わりに)ツールチップに設定した文字列を出力するようにしています。

参考サイト

  1. かわいいフリー素材集 いらすとや
  2. QAbstractButton - Qt for Python
  3. QButtonGroup - Qt for Python

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加