2021年12月31日金曜日

PySimpleGUIでボタンメニュー要素の画像をファイル名で指定する

PySimpleGUIでボタンメニュー要素の画像をファイル名で指定するは、image_filenameパラメータで画像ファイルを指定します。

サンプル実行手順

以下のファイルを保存して、実行します。メニューボタンに画像が表示されます。

buttonmenu_image.py
import PySimpleGUI as sg

sg.theme('SystemDefault')
menu_def = [
    'buttonmenu', ['サンプル &1', 'サンプル &2']
]
mytext = sg.Text('', font=('Noto Serif CJK JP',30))
layout = [
    [sg.ButtonMenu("メニュー", menu_def, image_filename='/usr/share/icons/hicolor/64x64/apps/firefox.png')],
    [mytext]
]

window = sg.Window('ボタンメニューサンプル', layout, size=(300,100))
# イベントループ
while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED:
        break

window.close()

・実行コマンド
python buttonmenu_image.py

〇実行結果

関連情報

PySimpleGUIでボタンメニュー要素を表示し、選択されたメニュー項目の処理を行う

PySimpleGUIでボタンメニュー要素の境界線の太さを指定する

PySimpleGUIでボタンメニュー要素のフォントを指定する

PySimpleGUIでボタンメニュー要素のツールチップを設定する

PySimpleGUIでボタンメニュー要素の文字色・背景色を設定する

・PySimpleGUIに関する他の記事はこちらを参照してください。

2021年12月30日木曜日

Rocky Linux 8にGraviton Editorをインストールする

Graviton EditorはシンプルなElectron製エディタです。

〇Graviton Editorの画面(Rocky Linux 8)

インストール方法

以下のコマンドを実行します。
wget https://github.com/Graviton-Code-Editor/Graviton-App/releases/download/v2.3.0/Graviton.Editor_Installer_2.3.0_linux_x86_64.rpm

sudo dnf -y install ./Graviton.Editor_Installer_2.3.0_linux_x86_64.rpm

関連情報

・Graviront Editorのgithubリポジトリ
https://github.com/Graviton-Code-Editor/Graviton-App

2021年12月29日水曜日

PySimpleGUIでボタンメニュー要素のツールチップを設定する

PySimpleGUIでボタンメニュー要素のツールチップを設定するには、以下のサンプルプログラムのようにtooltipパラメータを指定します。

サンプル実行手順

以下のファイルを保存して、実行します。メニューボタン上にマウスをホバリングさせると、ツールチップが表示されます。

buttonmenu_tooltip.py
import PySimpleGUI as sg

sg.theme('SystemDefault')
menu_def = [
    'buttonmenu', ['サンプル &1', 'サンプル &2']
]
mytext = sg.Text('', font=('Noto Serif CJK JP',30))
layout = [
    [sg.ButtonMenu("クリックして選択してください", menu_def, tooltip='ボタンを押してメニューから項目を選択してください')],
    [mytext]
]

window = sg.Window('ボタンメニューサンプル', layout, size=(300,100))
# イベントループ
while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED:
        break

window.close()

・実行コマンド
python buttonmenu_tooltip.py

〇実行結果

関連情報

PySimpleGUIでボタンメニュー要素を表示し、選択されたメニュー項目の処理を行う

PySimpleGUIでボタンメニュー要素の境界線の太さを指定する

PySimpleGUIでボタンメニュー要素のフォントを指定する

PySimpleGUIでボタンメニュー要素の画像をファイル名で指定する

PySimpleGUIでボタンメニュー要素の文字色・背景色を設定する

・PySimpleGUIに関する他の記事はこちらを参照してください。

2021年12月28日火曜日

PySimpleGUIでボタンメニュー要素の文字色・背景色を設定する

PySimpleGUIでボタンメニュー要素の文字色・背景色を設定するには、以下のサンプルプログラムのようにtext_color/background_colorを指定します。

サンプル実行手順

以下のファイルを保存して、実行します。設定した文字色・背景色のボタンメニューが表示されます。

buttonmenu_color.py
import PySimpleGUI as sg

sg.theme('SystemDefault')
menu_def = [
    'buttonmenu', ['サンプル &1', 'サンプル &2']
]
mytext = sg.Text('', font=('Noto Serif CJK JP',30))
layout = [
    [sg.ButtonMenu("クリックして選択してください", menu_def, text_color='#5577dd', background_color='#80ff80')],
    [mytext]
]

window = sg.Window('メニューサンプル', layout, size=(300,100))
# イベントループ
while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED:
        break

window.close()

・実行コマンド
python buttonmenu_color.py

〇実行結果

関連情報

PySimpleGUIでボタンメニュー要素を表示し、選択されたメニュー項目の処理を行う

PySimpleGUIでボタンメニュー要素の境界線の太さを指定する

PySimpleGUIでボタンメニュー要素のフォントを指定する

PySimpleGUIでボタンメニュー要素の画像をファイル名で指定する

PySimpleGUIでボタンメニュー要素のツールチップを設定する

・PySimpleGUIに関する他の記事はこちらを参照してください。

2021年12月27日月曜日

PySimpleGUIでボタンメニュー要素を表示し、選択されたメニュー項目の処理を行う

PySimpleGUIでボタンメニュー要素を表示し、選択されたメニュー項目の処理を行うには、以下のサンプルプログラムのようにメニュー定義・イベント処理を行います。
メニュー定義で、「&」と続く英文字がALT+英文字のショートカットになります。また、先頭に「!」が付くと無効化されたメニュー項目になります。

サンプル実行手順

以下のファイルを保存して、実行します。ボタンを押してメニューを選択すると、下に配置したテキストが更新されます。

buttonmenu_events.py
import PySimpleGUI as sg

sg.theme('SystemDefault')
menu_def = [
    'buttonmenu', ['サンプル &1', 'サンプル &2']
]
mytext = sg.Text('', font=('Noto Serif CJK JP',30))
layout = [
    [sg.ButtonMenu("クリックして選択してください", menu_def)],
    [mytext]
]

window = sg.Window('メニューサンプル', layout, size=(300,100))
# イベントループ
while True:
    event, values = window.read()
    print(event,values)
    if values is not None and values[0] == 'サンプル 1':
        mytext.update(value='サンプル1')
    if values is not None and values[0] == 'サンプル 2':
        mytext.update(value='サンプル2')
    if event == sg.WIN_CLOSED:
        break

window.close()

・実行コマンド
python buttonmenu_events.py

〇実行結果

関連情報

PySimpleGUIでボタンメニュー要素の境界線の太さを指定する

PySimpleGUIでボタンメニュー要素のフォントを指定する

PySimpleGUIでボタンメニュー要素の画像をファイル名で指定する

PySimpleGUIでボタンメニュー要素のツールチップを設定する

PySimpleGUIでボタンメニュー要素の文字色・背景色を設定する

・PySimpleGUIに関する他の記事はこちらを参照してください。

2021年12月26日日曜日

Debian 11(Bullseye)にKontactをインストールする

Kontactは、メーラー、連絡先、カレンダー・ToDo・フィードリーダーなどの機能を統合したアプリケーションです。

〇Kontactの画面

インストール方法

以下のコマンドを実行します。
sudo apt-get update

sudo apt-get -y install kontact

2021年12月25日土曜日

Debian 11(Bullseye)/Raspberry Pi OS(Raspbian Bullseye)にシステム情報を表示するKInfoCenterをインストールする

KInfoCenterでハードウェアやOSなどのシステム情報を表示する事ができます。
下記のコマンドをでインストールした後、シェルなどからkinfocenterコマンドを実行して起動できます。

〇KInfoCenterの画面(Debian 11)

〇KInfoCenterの画面(Raspberry Pi OS)

KInfoCenterのインストール方法

以下のコマンドを実行します。
sudo apt-get update

sudo apt-get -y install kinfocenter

コマンドによる実行

kinfocenter

2021年12月24日金曜日

Debian 11(Bullseye)に動画編集ソフトKdenliveをインストールする

Kdenliveは動画編集ソフトウェアです。

〇Kdenliveの画面(Debian 11)

〇インストール方法
以下のコマンドを実行します。
sudo apt-get update

sudo apt-get -y install kdenlive

関連情報

動画編集アプリKdenliveのまとめ

・Kdenliveに関する他の情報はこちらを参照してください。

・Kdenliveのgithubリポジトリ
https://github.com/KDE/kdenlive

・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

2021年12月22日水曜日

Android端末&UserLAnd上のUbuntu20.04にRangerをインストールする

Rangerコマンドでターミナルをディレクトリ階層をキーボードで移動してファイルの中身を確認したり、実行する事ができます。

〇Rangerの画面
※実行はrangerと入力します。Qか:qでコマンドを終了します。矢印キーで移動、リターンで確定になります。

インストール方法

以下のコマンドを実行します。
sudo apt-get update

sudo apt-get -y install ranger

動作環境

Xperia Ace2

Debian 11(Bullseye)/)Raspberry Pi OS(Raspbian Bullseye)にgretlをインストールする

gretlはオープンソースの統計解析アプリケーションです。

〇gretlの画面(Debian 11)

〇gretlの画面(Raspberry Pi OS)

インストール方法

シェルから以下のコマンド実行します
sudo apt-get -y install gretl

関連情報

・gretlに関する他の記事はこちらを参照してください。

2021年12月21日火曜日

Android端末&UserLAnd上のUbuntu20.04にNCurses Disk Usage(ncduコマンド)をインストールする

NCurses Disk Usage(ncduコマンド)でCUI画面でディスク使用量を分かりやすく調べることが出来ます。矢印キーでフォルダの移動を行い、qキーで終了します。

〇ncduコマンドの画面

インストール手順

以下のコマンドを実行してncduコマンドをインストールします。
sudo apt-get update

sudo apt-get -y install ncdu
実行する場合はシェルからncduコマンドを実行します。

動作環境

Xperia Ace2

Debian 11(Bullseye)でGravity言語をインストールする。

Gravity言語は、軽量の動的型付け言語です。Debian 11(Bullseye)にインストールするには、以下の手順を実行します。

ビルド&インストール方法

以下のコマンドを実行します。
sudo apt-get update

sudo apt-get -y install build-essential git

git clone https://github.com/marcobambini/gravity.git

sudo mv gravity /opt

cd /opt/gravity

make

sudo ln -s /opt/gravity/gravity /usr/local/bin/gravity

テスト実行

以下のコマンドで、Hello World!を表示します。
cd

cat << EOF > helloworld.gravity
func main()
{
  System.print("Hello World!");
}
EOF

gravity -q helloworld.gravity

関連情報

・プロジェクトwebサイト
https://marcobambini.github.io/gravity/#/

2021年12月20日月曜日

Android端末&UserLAnd上のUbuntu20.04に自動補完機能を持つfishシェルをインストールする

Android端末&UserLAnd上のUbuntu20.04に自動補完機能を持つfishシェルをインストールするには、以下の手順を実行します。
コマンドをある程度入力すると候補が表示されます。Tabキーを押すと、選択モードになり上下キーで選択、リターンキーで決定できます。

〇fishコマンドの画面

インストール手順

以下のコマンドを実行します。
sudo apt-get update

sudo apt-get -y install fish

動作環境

Xperia Ace2

関連情報

・プロジェクトwebサイト
https://fishshell.com/

Debian 11(Bullseye)/Ubuntu 20.04にボンバーマン風のゲームgranatierをインストールする

ボンバーマン風のゲームgranatierをインストールするには、以下のコマンドを実行します。

〇Debian 11(Bullseye)

〇Ubuntu 20.04

インストール方法

シェルから以下のコマンド実行します
sudo apt-get -y install flatpak

sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

sudo flatpak -y install flathub org.kde.granatier

2021年12月19日日曜日

Android端末&UserLAnd上のUbuntu20.04にディスク使用量・空き容量をCUIでグラフ表示してくれるdufコマンドをインストールする

dufコマンドで、ディスク使用量・空き容量を分かりやすくCUIでグラフ表示する事が出来ます。

〇dufの画面

インストール手順

以下のコマンドを実行します。
wget https://github.com/muesli/duf/releases/download/v0.6.2/duf_0.6.2_linux_arm64.deb

sudo apt-get -y install ./duf_0.6.2_linux_arm64.deb

動作環境

Xperia Ace2

AlmaLinux 8にGraviton Editorをインストールする

Graviton EditorはシンプルなElectron製エディタです。

〇Graviton Editorの画面

インストール方法

以下のコマンドを実行します。
wget https://github.com/Graviton-Code-Editor/Graviton-App/releases/download/v2.3.0/Graviton.Editor_Installer_2.3.0_linux_x86_64.rpm

sudo dnf -y install ./Graviton.Editor_Installer_2.3.0_linux_x86_64.rpm

関連情報

・Graviront Editorのgithubリポジトリ
https://github.com/Graviton-Code-Editor/Graviton-App

2021年12月18日土曜日

Android端末&UserLAnd上のUbuntu20.04にDokuWikiをインストールする

UserLAndを使用してAndroid端末上にUbuntuなどのLinux環境を構築することができます。DokuWikiをインストールするには、以下の手順を実行します。

〇DokuWikiの画面
インストール後、ブラウザからhttp://<Android端末のIP>:8080/dokuwiki/ にアクセスします。
※Andorid端末を固定IPに設定しておいた方が楽に他のPCなどからアクセスできます。もしくは、Andorid上のブラウザでhttp://127.0.0.1:8080/dokuwiki/を指定します。

インストール方法

以下のコマンドをシェルから実行します。
sudo apt-get -y install apache2 \
  php7.4 \
  libapache2-mod-php7.4 \
  php7.4-mbstring \
  php7.4-xml

wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz

tar xvfz dokuwiki-stable.tgz

mv dokuwiki-2* dokuwiki

sudo mv dokuwiki /var/www/html

sudo chown -R www-data:www-data /var/www/html/dokuwiki

sudo sed -i "s/80/8080/" /etc/apache2/ports.conf

sudo service apache2 restart

関連情報

・DokuWikiに関する他の情報はこちらを参照してください。

・DokuWikiのWebサイト
https://www.dokuwiki.org/dokuwiki

Debian 11(Bullseye)/Raspberry Pi OS(Raspbian Bullseye)にGlimpse Editorをインストールする

Glimpse Editorはオープンソースの画像処理ツールです。

〇Glimpse Editorの画面(Debian 11)

〇Glimpse Editorの画面(Raspbian Bullseye)

インストール方法

シェルから以下のコマンド実行します
sudo apt-get -y install flatpak

sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

sudo flatpak -y install flathub org.glimpse_editor.Glimpse
※ダウンロード中にエラーが発生した場合は、コマンドを再実行してください。

2021年12月17日金曜日

Android端末&UserLAnd上のUbuntu20.04にpipenvをインストールして、python仮想環境からローカルのMariaDBにアクセスする

Android端末&UserLAnd上のUbuntu20.04にpipenvをインストールして、python仮想環境からローカルのMariaDBにアクセスするには、以下の手順を実行します。

実行手順

1. MariaDBのインストール
以下のページを参考に、MariaDBをインストールします。
Android端末&UserLAnd上のUbuntu20.04にMariaDBをインストールする

2. テスト用DBとユーザの作成
以下のコマンドを実行して、testユーザとtestデータベースを作成します。
mysql -uroot -proot -e "CREATE DATABASE test DEFAULT CHARACTER SET utf8mb4;"

mysql -uroot -proot -e "CREATE USER test@localhost IDENTIFIED BY 'test';"
※パスワードは適宜変更してください。

mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost';"

mysql -uroot -proot -e "FLUSH PRIVILEGES;"

3. pipenvのインストール
sudo apt-get update

sudo apt-get -y install python3-pip python3-distutils python3-dev 

sudo pip3 install --upgrade setuptools

sudo pip3 install pipenv

echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.bashrc

source ~/.bashrc

4. PyMySQLをインストールしたpython仮想環境の作成
以下のコマンドを実行してpython3とPyMySQLモジュールのインストールされた環境を作成します。
mkdir -p ~/pythonmariadb

cd ~/pythonmariadb

pipenv --python 3

pipenv install PyMySQL

pipenv shell

5. ソースコードの作成と実行
以下のようなPyMySQLを使用してMariaDBに接続し、バージョン情報を取得するプログラムを作成し、実行します。
test.py
import pymysql.cursors

conn = pymysql.connect(host='localhost', user='test', password='test', db='test', cursorclass=pymysql.cursors.DictCursor)

with conn.cursor() as cur:
    sql = "SELECT version()"
    cur.execute(sql)
    result = cur.fetchall()
    print(result)

conn.close()

・実行コマンド
python test.py
[{'version()': '10.3.32-MariaDB-0ubuntu0.20.04.1'}]

動作環境

Xperia Ace2

Debian 11(Bullseye)にGanttProjectをインストールする

Gantt ProjectはMicrosoft Projectのようなプロジェクト管理ソフトウェアです。

〇GanttProjectの画面(Debian 11)

インストール方法

以下のコマンドを実行します。
sudo apt-get -y update

wget https://sourceforge.net/projects/ganttproject/files/ganttproject-3.1.3100/ganttproject_3.1.3100-1_all.deb

sudo apt-get install ./ganttproject_3.1.3100-1_all.deb

2021年12月16日木曜日

Android端末&UserLAnd上のUbuntu20.04にcronをインストールする

UserLAndを使用してAndroid端末上にUbuntuなどのLinux環境を構築することができます。デフォルトではcronが入っていないので、インストールします。

インストール手順

sudo apt-get -y install cron vim

sudo service cron start

テスト用に日時をログ出力するエントリを最終行に追加します。
sudo crontab -e
* * * * * /usr/bin/date >> /tmp/sample

数分待って、ログ出力されていることを確認します。
cat /tmp/sample
※結構実行間隔が空くときあるようです(端末/アプリのスリープ時?)。

動作環境

Xperia Ace2

Debian 11(Bullseye)にFreeCADをインストールする

FreeCADはオープンソースのCAD描画アプリケーションです。

〇FreeCADの画面

インストール方法

以下のコマンドを実行します。
sudo mkdir -p /opt/freecad

cd /opt/freecad

sudo wget https://github.com/FreeCAD/FreeCAD/releases/download/0.19.2/FreeCAD_0.19-24291-Linux-Conda_glibc2.12-x86_64.AppImage

sudo chmod +x FreeCAD_0.19-24291-Linux-Conda_glibc2.12-x86_64.AppImage

cat << EOF | sudo tee /usr/share/applications/freecad.desktop
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/opt/freecad/FreeCAD_0.19-24291-Linux-Conda_glibc2.12-x86_64.AppImage
Name=FreeCAD
Categories=Development;
EOF

関連情報

・FreeCADに関する他の記事はこちらを参照してください。

2021年12月15日水曜日

Android端末&UserLAnd上のUbuntu20.04にMariaDBをインストールする

UserLAndを使用してAndroid端末上にUbuntuなどのLinux環境を構築することができます。MariaDBをインストールするには、以下の手順を実行します。

インストール手順

1. 以下のコマンドを実行してMariaDBをインストールします。
sudo apt-get update

sudo apt-get -y install mariadb-server mariadb-client

2. 初期設定
sudo mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
※最初はパスワードがないのでリターンキー
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
※パスワードを2回入力
Password updated successfully!
Reloading privilege tables..
... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
※yを入力
... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
※yを入力
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
※yを入力
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
※yを入力
... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

3. 動作確認
mysql -uroot -p -e "select version();"
Enter password:
+----------------------------------+
| version()                        |
+----------------------------------+
| 10.3.32-MariaDB-0ubuntu0.20.04.1 |
+----------------------------------+

動作環境

Xperia Ace2

Raspberry Pi OS(Raspbian Bullseye)にFreeplane1.9.11をインストールする

Freeplaneでマインドマップを作成する事ができます。

〇Freeplaneの画面

インストール方法

以下のコマンドを実行します。
sudo apt-get -y install default-jdk

cd /opt

sudo wget 'https://sourceforge.net/projects/freeplane/files/freeplane%20stable/freeplane_bin-1.9.11.zip'

sudo unzip freeplane_bin-1.9.11.zip

sudo mv /opt/freeplane-1.9.11 /opt/freeplane

cat << EOF | sudo tee /usr/share/applications/freeplane.desktop
#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/opt/freeplane/freeplane.sh
Name=Freeplane
Icon=/opt/freeplane/freeplane.png
Categories=Office;
EOF

関連情報

・Freeplaneに関する他の記事は、こちらを参照してください。

2021年12月14日火曜日

Debian 11(Bullseye)/Raspberry Pi OS(Raspbian Bullseye)にFocusWriterをインストールする

FocusWriterはシンプルなフルスクリーンエディタです。フルスクリーンでテキスト編集する事ができるので、書くことに集中できます。

〇FocusWriterの画面(Debian 11)

〇FocusWriterの画面(Raspbian Bullseye)

インストール方法

シェルから以下のコマンド実行します
sudo apt-get update

sudo apt-get -y install focuswriter

2021年12月13日月曜日

Shutter Encoderのまとめ

Shutter Encoderは動画形式の変換だけでなく、シンプルな動画加工処理を行うこともできます。

インストール方法

以下のプラットフォームにShutter Encoderをインストールすることができます。

Debian 11(Bullseye)/Ubuntu 20.04に動画ファイル変換アプリケーションShutter Encoderをインストールする

AlmaLinux 8に動画ファイル変換アプリケーションShutter Encoderをインストールする

画質の加工

コントラストやホワイトバランスなど画質を調整することができます。

Shutter Encoderで動画のホワイトバランスを変更する

Shutter Encoderで動画のホワイトレベル・ブラックレベルを変換する

Shutter Encoderで動画のコントラスト(Contrast)を変換する

Shutter Encoderで動画の露出(Exposure)を変換する

Shutter Encoderで動画を滑らかにする・シャープにする

色調の加工

以下のような色調を加工する処理を行うことができます。

Shutter Encoderで動画を着色する

Shutter EncoderでVibranceフィルタで自然な感じで彩度を変更する

Shutter Encoderで彩度を変更する

画像や文字の重ね合わせ・編集処理

以下のように画像や文字列を動画上に重ねたり、回転や切り取りなどの編集を行うこともできます。

Shutter Encoderで動画上に透過画像を重ねる

Shutter Encoderに動画上に文字列を描画する

Shutter Encoderで動画を回転する

Shutter Encoderで動画の一部分を切り取る

その他

上記以外にもフェードインなどの効果を付けることもできます。

Shutter Encoderで動画にフェードイン・フェードアウト効果をつける

Shutter Encoderで動画の画面の端を暗くする・明るくする

Shutter Encoderで動画の音声を消す

関連情報

・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

Debian 11(Bullseye)/Raspberry Pi OS(Raspbian Bullseye)にflowbladeをインストールする

flowbladeは動画編集アプリケーションです。

〇flowbladeの画面(Debian 11)

〇flowbladeの画面(Raspberry Pi)

インストール方法

以下のコマンド実行します
sudo apt-get update

sudo apt-get -y install flowblade

関連情報

動画編集アプリケーションFlowbladeのまとめ

・プロジェクトgithubリポジトリ
https://github.com/jliljebl/flowblade

・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ

2021年12月12日日曜日

マイクロUSBコネクタを持つ太陽光LEDスティックを作る

マイクロUSBコネクタを持つ太陽光LEDスティックを作るには以下の手順を実行します。

〇作成した太陽光LEDスティック

作成手順

1. 必要部品の準備
5Vで光らせることのできる太陽光LEDモジュールとマイクロUSBコネクタを準備します。いずれの部品も秋月電子さんで購入できます。
太陽光LEDモジュール(白色LED) 1×3 5V

マイクロUSBコネクタ 電源供給用

2. 部品のはんだ付け
マイクロUSBコネクタのコネクタ口を上に、端子固定用の足を手前に向けたとき、マイクロUSBコネクタの下の端子の左側を太陽光LEDモジュールの+端子、マイクロUSBコネクタの下の端子の右側を-端子にはんだ付けします。

3. 太陽光LEDモジュールとコネクタを格納するケースとフタをOpenSCADでデザインします。
以下のコードを実行して形状を調整し、STLファイルにエクスポートします。フレームのサイズなど3Dプリンタや設定によって微調整してください。

・ソースコード(ケース)
INNER_MARGIN=0.5;
WALL_THICK=2;
// 内寸
LED_MOD_IW=60+INNER_MARGIN;
LED_MOD_ID=10+INNER_MARGIN;
LED_MOD_IH=2;

USB_GAP=1;
USB_D=8;
USB_W=8;

// 外寸
LED_MOD_EW=LED_MOD_IW+USB_W+WALL_THICK;
LED_MOD_ED=LED_MOD_ID+WALL_THICK*2;

USB_SIDE_D=(LED_MOD_ED-USB_D)/2;


// 底面
translate([0, 0, 0])
linear_extrude(height=WALL_THICK){
    square([LED_MOD_EW, LED_MOD_ED]);
}
// LEDモジュール側の底面ギャップ
translate([USB_W, 0, WALL_THICK])
linear_extrude(height=USB_GAP){
    square([LED_MOD_EW-USB_W, LED_MOD_ED]);
}


// USBと反対側の壁
translate([LED_MOD_EW-WALL_THICK, 0, USB_GAP+WALL_THICK])
linear_extrude(height=LED_MOD_IH){
    square([WALL_THICK, LED_MOD_ED]);
}

// LEDモジュール手前
translate([USB_W, 0, USB_GAP+WALL_THICK])
linear_extrude(height=LED_MOD_IH){
    square([LED_MOD_EW-USB_W, WALL_THICK]);
}
// LEDモジュール奥
translate([USB_W, LED_MOD_ED-WALL_THICK, USB_GAP+WALL_THICK])
linear_extrude(height=LED_MOD_IH){
    square([LED_MOD_EW-USB_W, WALL_THICK]);
}

// USB口手前
translate([0, 0, WALL_THICK])
linear_extrude(height=USB_GAP+LED_MOD_IH){
    square([USB_W, USB_SIDE_D]);
}

// USB口奥
translate([0, LED_MOD_ED-USB_SIDE_D, WALL_THICK])
linear_extrude(height=USB_GAP+LED_MOD_IH){
    square([USB_W, USB_SIDE_D]);
}

〇OpenSCADでのモデル表示(ケース)

・ソースコード(フタ)
INNER_MARGIN=0.5;
TOP_THICK=1;
TOP_H=1;
WALL_THICK=2;
// 内寸
LED_MOD_IW=60+INNER_MARGIN;
LED_MOD_ID=10+INNER_MARGIN;
LED_MOD_IH=2;

USB_GAP=1;
USB_D=8;
USB_W=8;
HOLE_POS_W=2;
HOLE_W=2;
HOLE_D=1;

// 外寸
LED_MOD_EW=LED_MOD_IW+USB_W+WALL_THICK;
LED_MOD_ED=LED_MOD_ID+WALL_THICK*2;

USB_SIDE_D=(LED_MOD_ED-USB_D)/2;

difference(){
    union(){
        // 底面
        translate([0, 0, 0])
        linear_extrude(height=TOP_THICK){
            square([LED_MOD_EW, LED_MOD_ED]);
        }

        // USBと反対側の壁
        translate([LED_MOD_EW-TOP_THICK-WALL_THICK, WALL_THICK, TOP_THICK])
        linear_extrude(height=TOP_H){
            square([TOP_THICK, LED_MOD_ID]);
        }

        // LEDモジュール手前
        translate([USB_W+INNER_MARGIN, WALL_THICK, TOP_THICK])
        linear_extrude(height=TOP_H){
            square([LED_MOD_IW-INNER_MARGIN, TOP_THICK]);
        }
        // LEDモジュール奥
        translate([USB_W+INNER_MARGIN, LED_MOD_ED-WALL_THICK-TOP_THICK, TOP_THICK])
        linear_extrude(height=TOP_H){
            square([LED_MOD_IW-INNER_MARGIN, TOP_THICK]);
        }
    }
    union(){
        translate([USB_W, WALL_THICK+TOP_THICK, 0])
        linear_extrude(height=TOP_THICK){
            square([LED_MOD_IW-TOP_THICK, LED_MOD_ID-TOP_THICK*2]);
        }

        // USB穴手前
        translate([HOLE_POS_W, USB_SIDE_D, 0])
        linear_extrude(height=TOP_THICK){
            square([HOLE_W, HOLE_D]);
        }
        // USB穴奥
        translate([HOLE_POS_W, LED_MOD_ED-USB_SIDE_D-HOLE_D, 0])
        linear_extrude(height=TOP_THICK){
            square([HOLE_W, HOLE_D]);
        }
    }
}

〇OpenSCADでのモデル表示(フタ)

2. Ultimaker CuraでSTLファイルを読み込み、スライスしてgcodeを保存します。

3. 3Dプリンターで印刷します

〇3Dプリンタで印刷したLEDスティックのケースとフタ

関連情報

OpenSCADまとめ

Debian 11(Bullseye)/Raspberry Pi OS(Raspbian Bullseye)に自動補完機能を持つfishシェルをインストールする

Debian 11(Bullseye)/Raspberry Pi OS(Raspbian Bullseye)に自動補完機能を持つfishシェルをインストールするには、以下のコマンドを実行します。
コマンドをある程度入力すると候補が表示されます。Tabキーを押すと、選択モードになり上下キーで選択、リターンキーで決定できます。

〇fishコマンドの画面(Debian 11)

〇fishコマンドの画面(Raspbian Bullseye)

インストール手順

以下のコマンドを実行します。
sudo apt-get update

sudo apt-get -y install fish

関連情報

・プロジェクトwebサイト
https://fishshell.com/

2021年12月11日土曜日

PySimpleGUIでテーブル要素のアライメントを設定する

PySimpleGUIでテーブル要素のアライメントを設定するには、以下のサンプルプログラムのようにjustificationパラメータにleft,right,centerのいずれかを指定します。このとき、auto_size_columnsにFalse、def_col_widthパラメータに列幅の文字数を指定します。

サンプル実行手順

以下のファイルを保存して、実行します。

table_justification.py
import PySimpleGUI as sg

headings=["列A", "列B", "列C"]
data=[
    [100, 200, 300],
    [400, 500, 600]
]
sg.theme('SystemDefault')
layout = [
    [sg.Table(data, headings, justification='center', auto_size_columns=False, def_col_width=5)]
]

window = sg.Window('テーブルサンプル', layout, size=(200,150))
# イベントループ
while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED:
        break

window.close()

・実行コマンド
python table_justification.py

〇実行結果

関連情報

PySimpleGUIでテーブル要素の列幅を設定する

PySimpleGUIでテーブル要素の表示する列を設定する

PySimpleGUIでテーブル要素の表示行数を設定する

PySimpleGUIでテーブル要素の行の高さを設定する

PySimpleGUIでテーブル要素のフォントを設定する

PySimpleGUIでテーブル要素の色を設定する

PySimpleGUIでテーブル要素のパディングを設定する

PySimpleGUIでテーブル要素の各列の幅を設定する

・PySimpleGUIに関する他の記事はこちらを参照してください。

Debian 11(Bullseye)/Raspberry Pi OS(Raspbian Bullseye)にFileZillaをインストールする

FileZillaはオープンソースのFTPクライアントです。

〇FileZillaの画面(Debian 11)

〇FileZillaの画面(Raspberry Pi OS - Raspbian Bullseye)

インストール方法

シェルから以下のコマンド実行します
sudo apt-get update

sudo apt-get -y install filezilla

関連情報

・FileZillaに関する記事はこちらを参照してください。

2021年12月10日金曜日

PySimpleGUIでテーブル要素の各列の幅を設定する

PySimpleGUIでテーブル要素の各列の幅を設定するには、以下のサンプルプログラムのようにcol_widthsパラメータに配列で各列の幅(文字数)を指定します。また、このとき、auto_size_columnsもFalseに設定します。

サンプル実行手順

以下のファイルを保存して、実行します。

table_colwidths.py
import PySimpleGUI as sg

headings=["列A", "列B", "列C"]
widths=[6, 5, 4]
data=[
    [100, 200, 300],
    [400, 500, 600]
]
sg.theme('SystemDefault')
layout = [
    [sg.Table(data, headings=headings, col_widths=widths, auto_size_columns=False)]
]
window = sg.Window('テーブルサンプル', layout, size=(200,150))
# イベントループ
while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED:
        break

window.close()

・実行コマンド
python table_colwidths.py

〇実行結果

関連情報

PySimpleGUIでテーブル要素の列幅を設定する

PySimpleGUIでテーブル要素の表示する列を設定する

PySimpleGUIでテーブル要素の表示行数を設定する

PySimpleGUIでテーブル要素の行の高さを設定する

PySimpleGUIでテーブル要素のフォントを設定する

PySimpleGUIでテーブル要素の色を設定する

PySimpleGUIでテーブル要素のパディングを設定する

PySimpleGUIでテーブル要素のアライメントを設定する

・PySimpleGUIに関する他の記事はこちらを参照してください。

Raspberry Pi OS(Raspbian Bullseye)にFeatherPadをインストールする

FeatherPadはシンプルで軽量なマルチタブエディターです。

〇FeatherPadの画面

インストール方法

以下のコマンドを実行します。
sudo apt-get -y install featherpad

2021年12月9日木曜日

PySimpleGUIでテーブル要素のパディングを設定する

PySimpleGUIでテーブル要素のパディングを設定するには、以下のサンプルプログラムのようにpadパラメータにピクセル数のタプル((左, 右), (上, 下))で指定します。

サンプル実行手順

以下のファイルを保存して、実行します。

table_pad.py
import PySimpleGUI as sg

headings=["列A", "列B", "列C"]
visible_columns=[True, False, True]
data=[
    [100, 200, 300],
    [400, 500, 600]
]
sg.theme('SystemDefault')
layout = [
    [sg.Table(data, headings=headings, pad=((10, 20),(30, 40)))]
]

window = sg.Window('テーブルサンプル', layout, size=(200,150))
# イベントループ
while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED:
        break

window.close()

・実行コマンド
python table_pad.py

〇実行結果

関連情報

PySimpleGUIでテーブル要素の列幅を設定する

PySimpleGUIでテーブル要素の表示する列を設定する

PySimpleGUIでテーブル要素の表示行数を設定する

PySimpleGUIでテーブル要素の行の高さを設定する

PySimpleGUIでテーブル要素のフォントを設定する

PySimpleGUIでテーブル要素の色を設定する

PySimpleGUIでテーブル要素の各列の幅を設定する

PySimpleGUIでテーブル要素のアライメントを設定する

・PySimpleGUIに関する他の記事はこちらを参照してください。

electermをDebian 11(Bullseye)にインストールする

electermはelecteronベースのターミナル/sftpクライアントです。SSH先をブックマークしたり、Quick commandでコマンドを素早く実行する事が出来ます。

〇electermのターミナル画面(Debian 11)

インストール方法

以下のコマンドを実行してelectermをインストールします。
wget https://github.com/electerm/electerm/releases/download/v1.17.16/electerm-1.17.16-linux-amd64.deb

sudo apt-get -y install ./electerm-1.17.16-linux-amd64.deb

関連情報

・electermのgithubリポジトリ
https://github.com/electerm/electerm

2021年12月8日水曜日

PySimpleGUIでテーブル要素の色を設定する

PySimpleGUIでテーブル要素の色を設定するには、以下のパラメータを指定します。
・text_color : セルの文字の色
・background_color : セル背景色
・alternating_row_color : バンディングのセル背景色
・selected_row_colors : 選択された行の文字色・背景色をタプルで指定します。
・header_text_color : ヘッダーの文字色
・header_background_color : ヘッダーの背景色

〇サンプル実行手順
以下のファイルを保存して、実行します。

table_colors.py
import PySimpleGUI as sg

headings=["列A", "列B", "列C"]
visible_columns=[True, False, True]
data=[
    [100, 200, 300],
    [400, 500, 600],
    [700, 800, 900]
]
sg.theme('SystemDefault')
layout = [
    [sg.Table(data, headings=headings, text_color='#000000', background_color="#ffffff", alternating_row_color="#e0e0e0", selected_row_colors=("#000060", "#ccddff"), header_text_color="#c00000", header_background_color="#404040")]
]

window = sg.Window('テーブルサンプル', layout, size=(200,150))
# イベントループ
while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED:
        break

window.close()

・実行コマンド
python table_colors.py

〇実行結果

関連情報

PySimpleGUIでテーブル要素の列幅を設定する

PySimpleGUIでテーブル要素の表示する列を設定する

PySimpleGUIでテーブル要素の表示行数を設定する

PySimpleGUIでテーブル要素の行の高さを設定する

PySimpleGUIでテーブル要素のフォントを設定する

PySimpleGUIでテーブル要素のパディングを設定する

PySimpleGUIでテーブル要素の各列の幅を設定する

PySimpleGUIでテーブル要素のアライメントを設定する

・PySimpleGUIに関する他の記事はこちらを参照してください。

Debian 11(Bullseye)/Raspberry Pi OS(Rasbian Bullseye)にフォルダ毎のディスク使用量を分かりやすく表示できるdustコマンドをインストールする

フォルダ毎のディスク使用量を分かりやすく表示できるdustコマンドをインストールするには、以下のコマンドを実行します。

インストール手順

1. Rust言語のインストール
※curlをインストールしていない場合は、あらかじめ「sudo apt-get -y install curl」でインストールしておきます。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
※以下の様な選択肢が表示されたら1を入力します
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
インストールしたシェルですぐにRustを使用するために、以下のコマンドを実行します。
source $HOME/.cargo/env

2. dustコマンドのインストール
cargo install du-dust
3. dustコマンドの実行
以下のコマンドを実行して、フォルダ毎の容量を表示する事ができます。
dust

〇dustコマンドの実行例(Debian 11)

〇dustコマンドの実行例(Raspberry Pi OS - Raspbian Bullseye)

〇トラブルシューティング
以下のエラーが発生した場合は、
error: linker `cc` not found
以下のコマンドを実行してgccをインストールします。
sudo apt-get -y install gcc

関連情報

・dustコマンドのgithubリポジトリ
https://github.com/bootandy/dust