- [情報技術] vimで使われている画面描写ライブラリ「ncurses」
- vimがCUIでどうやって画面を作っているのかが気になったのでソースコードを読んだところ、画面描写のところで「ncurses」が見つかりました。ncursesはC言語で作られたライブラリで、ターミナルに依存しないテキスト・ユーザー・インターフェース作成用APIのライブラリだそうです。
- 試しにncursesを使って画面描画をしてみました。
- "ncurses.c" という名前のファイルを作り、そこにCのコードを書いていきました。書いたら保存して、手頃なCコンパイラ(わたしはgcc)でコンパイルして、できた実行ファイルを実行して確認です。コンパイル時に「関数が定義されていない」とエラーが出る場合は、オプション "-l" でライブラリをリンカーに渡してみてください。
/**
* COMPILE Example
* $ gcc ncurses.c -o ncurses -lncurses
*/
#include <ncurses.h>
#include <stdlib.h>
int main() {
// ncursesの初期化
initscr(); // 画面の初期化
start_color(); // カラーのサポートを開始
// カラーの初期化
init_pair(1, COLOR_RED, COLOR_BLACK); // 赤色の色ペアを定義
// カーソルを非表示に
curs_set(0);
// カーソルを特定の位置に移動
mvprintw(10, 10, "Hello, Terminal using ncurses!");
// 色を適用
attron(COLOR_PAIR(1)); // 色ペアを使用
mvprintw(12, 10, "This text is red!");
attroff(COLOR_PAIR(1)); // 色ペアの適用を解除
// 更新を行う
refresh();
// キー入力を待つ
getch();
// ncursesの終了
endwin();
return 0;
}
- 2026-01-10 (Sat) by Canaid SK
- [情報技術] Linuxでディレクトリ内のファイル総容量を確認する
- Linuxでディレクトリ内のファイル層容量を知るには `du` コマンドを使います。
$ du -sh {ディレクトリのPath}
-
- わたしのtestディレクトリで試した結果は、
$ du -sh test
593M test
- 2026-01-09 (Fri) by Canaid SK
- [情報技術] 無線LANのUSB子機がなぜか使えない問題
- 無線LANのUSB子機をつけてネットワークの状態を見たとします。
$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> ...
2: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN mode DORMANT group default qlen 1000
- DOWNしているのでUPします。
$ ip link set wlan0 up
RTNETLINK answers: Operation not permitted
- 操作が許可されていないと出ました。管理者権限で再試行します。
$ sudo ip link set wlan0 up
RTNETLINK answers: Operation not possible due to RF-kill
- RF-killのせいで不可能だそうです。ブロックされているのかを調べます。
$ rfkill
ID TYPE DEVICE SOFT HARD
0 bluetooth hci0 blocked unblocked
1 wlan phy0 blocked unblocked
- ソフトブロックされていますので、解除します。
$ rfkill unblock 1
- USB子機のインジケーターが点滅を始めました。無線LANに繋がりました。
- 2025-12-29 (Mon) by Canaid SK
- [情報技術] ASUS X205TAにArchLinuxをインストール
- ASUS X205TAにDebian12ベースのRaspberryPI OS Desktopを入れることができた話を以前しました。今回はArchLinuxを入れてみました。
- なぜArchかというと、本機でブートできるディストリビューションがそもそも上述の2つしかなかったからです。あれこれ試したのですが。
- Archは最初に手動インストールを試みたところ、ブートローダーのGRUBがどうしても読み込まれず、やむなく「archinstall」を使いました。
- 結論を言いますと、自動インストールだろうがGRUBを起動することはできませんでした。そしてArchで初期選択されていたsystemd-bootは起動できました。ただ、移動キーが利かないので、ブートローダー画面でOSを起動する以外を選択できません。
- 用途をDesktopにし、デスクトップ環境をXfceにしました。すると、PI OS Desktopで起きていた問題のほとんどが、Archでは発生しませんでした。スリープモードにしたあとタッチパッドのドライバがエラーを吐くのは同じでしたが。
- ArchLinuxであればX205TAはかなり快適に使えますね。
- 2025-12-29 (Mon) by Canaid SK
- [情報技術] MySQLでユーザーの権限を管理する
- MySQLでユーザーを作る最基本コマンド
CREATE USER '{ユーザーアカウント}' IDENTIFY BY '{パスワード}'
- ユーザーに権限を与える。
GRANT CREATE ON *.* TO `{ユーザーアカウント}`; -- データベースもテーブルも作れるようにする。
GRANT CREATE, DROP ON *.* TO `{ユーザーアカウント}`; -- どのデータベースもテーブルも作れて消せるようにする。
GRANT CREATE ON `hoge`.* TO `{ユーザーアカウント}`; -- hogeというデータベースや、hogeのテーブルを作れるようにする。
GRANT INSERT ON `hoge_%`.* TO `{ユーザーアカウント}`; -- 「hoge_{任意の文字列}」という形式のデータベースのテーブルに値を追加できるようにする。
- ユーザーの権限を確認する。
SHOW GRANTS FOR `{ユーザーアカウント}`;
- 2025-12-05 (Fri) by Canaid SK
- [情報技術] Apache2のエラー「.htaccess: Option Indexes not allowed here」解消
- Apache2で「Internal Server Error」が出たときに、エラーログを見ますよね。そのログに「/***/.htaccess: Option Indexes not allowed here.」と書かれていたら、Apache2のConfigureファイルを変更することで解消できます。
- 例えば、表示したいウェブサイトの場所がユーザーディレクトリならば、`/etc/apache2/mods-avairable/userdir.conf` を管理者権限で開き、変更しましょう。変更する場所は、ここです。
AllowOverride ...
- .htaccessファイルで上書きをして良い項目が設定されているかと思います。もしも存在しなければ、その行を追加してください。書き方は次の通りです。
AllowOverride ... Options=Indexes
- `Options=Indexes` を追加する形です。このOptionsに複数指定する場合は、カンマで区切ればOKです。
- 設定をし終わったら、Apache2を再起動してください。
- 2025-11-28 (Fri) by Canaid SK
- [情報技術] X WIndow Systemでマウススクロールの向きを変える
- LinuxのGUIにX Window Systemを使用していて、マウス(またはタッチパッド)のスクロールの向きを変えるには、「libinput Natural Scrolling Enabled」を有効化/無効化します。
- 「有効」にすれば、スマホ画面のスクロールと同じ挙動になります。「無効」は向きが逆になります。
- 一時的な変更はコマンドでできます。
$ xinput #マウス等の一覧からIDを確認
$ xinput list-props <DEVICE ID> #設定を確認
$ xinput set-prop <DEVICE ID> "libinput Natural Scrolling Enabled" 1 #有効化
- 2025-11-12 (Wed) by Canaid SK
- [情報技術] LXDEでダークテーマにする
- LinuxでLXDEを使いつつ配色をダークテーマにしたい場合は「LXAppearance」を使います。このツール自身は、GTK+のテーマを切り替えるものです。
- まだ入っていない場合はインストールしましょう。
- テーマ以外にも、アイコンやマウスカーソルなど見た目全般を変更できます。
$ lxappearance&
- 2025-11-12 (Wed) by Canaid SK