Ubuntu」タグアーカイブ

fvwm3のインストール

「FVWM version 3 — the successor to fvwm2」が公開されているが、現在UbuntuにはFvwm3のパッケージは存在しない。https://packages.ubuntu.com/

待っていても、パッケージでは提供されないのだろうか。と言う訳でコンパイルしインストールを行う。

https://github.com/fvwmorg/fvwm3/blob/master/dev-docs/INSTALL.md ここを参考に、Core dependenciesとOptional dependenciesをインストールしておく。
librsvg-devがなくてlibrsvg2-devがあったので、これをインストールしてみた。大丈夫?

#!/bin/bash
while read line
do
echo -e "\e[32;1m$line\e[m"
sudo apt install $line -y
done << EOF
libevent-dev
libx11-dev
libxrandr-dev
libxrender-dev
libxt-dev
asciidoctor
libfontconfig-dev
libfreetype6-dev
libfribidi-dev
libncurses5-dev
libpng-dev
libreadline-dev
librsvg2-dev
libsm-dev
libxcursor-dev
libxext-dev
libxft-dev
libxi-dev
libxpm-dev
sharutils
EOF

準備ができたらgitからダウロード

git clone https://github.com/fvwmorg/fvwm3.git

あとはInstalling From Gitの手順で

./autogen.sh
./configure --enable-mandoc 
make

configureでWith Golang support? noになったが、まぁいいか。

じゃないわ! FvwmPrompt — a new module written in golang: ./configure --enable-golang needed at compile time だとさ。
で、以下のconfigureでyesになった。

./configure --enable-mandoc --enable-golang

つまりこういう事である。

/autogen.sh && ./configure --enable-mandoc --enable-golang && make -j4

さらに改良。Makefileに、CPPFLAGS = -march=amdfam10 追加。k10なのよ。
でmake clean && make -j4

sudo make install

インストールできたら、 .xinitrcのfvwm2の部分をfvwm3に書き換えて。startxする。
何が変わったのかはここを読むといい。https://github.com/fvwmorg/fvwm3/releases

fvwm3では、Strokeコマンドがなくなった。libstroke support has been removed.だと。
あまり使わないので、まぁ影響はないけど。キーとマウスクリックで対応できるでしょうから。Strokeは設定ファイルからコメントアウト。あとEdgeResistance 30 30でエラー、引数は1つのみが正解。何か2つ目の引数って効果あるの?ってずっと思ってた。EdgeResistance 30が正しいと、-vオプションのエラーログで分かった。

logを取るには.xinitrcで起動時に fvwm3 -v と -vのオプションを付けると、$HOME/.fvwm/fvwm3-output.log が作られる。起動中では pkill -USR2 fvwm3 ができる。

Fvwm3のモジュールは以下のとおり

FvwmAnimate
FvwmAuto
FvwmBacker
FvwmButtons
FvwmCommandS
FvwmConsole
FvwmConsoleC
FvwmEvent
FvwmForm
FvwmIconMan
FvwmIdent
FvwmMFL
FvwmPager
FvwmPerl
FvwmRearrange
FvwmScript
FvwmTalk

fvwm2.6.8のモジュールは以下の通り。○は存続、×は消滅したもの。

FvwmAnimate ○
FvwmAuto ○
FvwmBacker ○
FvwmBanner ×
FvwmButtons ○
FvwmCascade ×
FvwmCommandS ○
FvwmConsole ○
FvwmConsoleC ○
FvwmConsoleC.pl ×
FvwmCpp ×
FvwmEvent(FvwmAudio) ○
FvwmForm ○
FvwmIconMan ○
FvwmIdent ○
FvwmM4 ×
FvwmPager ○
FvwmPerl ○
FvwmProxy ×
FvwmRearrange ○
FvwmScript ○
FvwmTalk ○
FvwmTile ×

fvwm2.6.8はfvwm2.6の最終安定版ですね。
こちらでも絶版があるわけですが。FvwmTaskBarが無くなったのが大きかったかな。

  - Some fvwm modules have been removed:
      - FvwmDragWell   (no replacement)
      - FvwmGTK        (no replacement)
      - FvwmSave       (no replacement)
      - FvwmSaveDesk   (no replacement)
      - FvwmScroll     (no replacement)
      - FvwmTabs       (no replacement, never worked anyway)
      - FvwmTaskBar    (use FvwmButtons)
      - FvwmTheme      (in core of fvwm as colorsets)
      - FvwmWharf      (use FvwmButtons)
      - FvwmWinList    (use WindowList command)
      - FvwmWindowMenu (use WindowList command)
      - FvwmIconBox    (use the IconBox style instead)

FVWMを使う理由

この時代に、なぜFVWMを使っているのだろうか。
絶滅危惧種的存在のXウィンドウマネージャであるし。使う人間も絶滅危惧種的レアな人々であろうし。でも信じたいFVWMが存続し、進化し続けることを。
なぜなら、FVWMには、世界中のレアでコアな人間の希望と情熱があるからである。

という訳でFVWMが使える理由。

  • カスタマイズができる
  • 環境に依存しない
  • 環境を好みに作れる
  • 画面をとても広く使える
  • ハイバネーションを使っての利用は、やりっ放しの続きができる感がある。
  • コツコツ積み上げる感が良い
  • 自分の知恵を組み込める
  • 成長することができる
  • 簡単に済ますことができない
  • 普通ではない、そこが魅力

あえて言うと、使えない理由。

  • Linuxのノービスユーザーには、難解であろう。
  • 情報が少ない、情報が古い
  • どこから、どうカスタマイズしたら良いか分からない
  • 初期の設定だと、とてもださい。以前のよりは改良されているのだが。

そんなとこですかね。

fvwm3のManual Pageですが。驚異的な莫大な量です。manの歴代一位の長さと言えますか。親切丁寧に書かれてるんですが。まぁすごいですよね。

https://github.com/fvwmorg/fvwm3/blob/master/doc/fvwm3/fvwm3.adoc

fvwmに、fvwm-menu-desktop を使用し XDG Menusをメニュー追加

fvwmのメニューはカスタマイズが簡単にできるが、自動的に生成されるメニューはDebianメニューを使っていたが、
もっと便利なXDG Menusがあったのでこれを使えるように設定した。
StartFunctionsに以下を追加 

+ I Test (!f $[FVWM_USERDIR]/.XDGMenu) XDGRegen
+ I Read $[FVWM_USERDIR]/.XDGMenu

.XDGMenuファイルがないと、XDGRegenを実行し、そのファイルを読み込む。
XDGRegenは、以下で設定する。

DestroyFunc XDGRegen
AddToFunc XDGRegen
+ I PipeRead 'fvwm-menu-desktop --regen-cmd XDGRegen > \
    $[FVWM_USERDIR]/.XDGMenu; echo "Nop"'
+ I Read $[FVWM_USERDIR]/.XDGMenu

https://www.mankier.com/1/fvwm-menu-desktop

UbuntuにBrotherのプリンターを設定 16.04

http://note.kurodigi.com/post-0-30/ LinuxでBrother製プリンターを使う

/usr/libx32/libstdc++.so.6 をインストールする
$ sudo apt-get install libx32stdc++6
$ sudo apt-get install gdebi
$ sudo gdebi dcpj525nlpr-3.0.1-1.i386.deb
$ sudo gdebi dcpj525ncupswrapper-3.0.0-1.i386.deb

lpadmin groupにユーザーを登録する(Debianでは不要)これはすでにあったんで略
CUPS Web 管理サイト(http://localhost:631/admin)で設定

Ubuntu16.04のサスペンド、ハイバネート

Ubuntu 16.04でサスペンド、ハイバネートを行う

サスペンドはできるのだが、ハイバネートがうまく動作しない。なぜハイバネート(ハイバネーション)を行いたいのか?

ハイバネーションとは、コンピュータの電源を切る直前の状態を保存して、次に電源を入れたときに電源を切る直前の状態から作業を再開する機能。「休止状態」とも呼ばれる。

サスペンドでもいいんじゃない?と思うだろ

ハイバネーション中はコンピュータの電源を完全に切ってしまうため、(バッテリーの自由放電を除いて)電力を消費しない。ハイバネーションを行うためには、メモリ内容を保存できるだけの空き領域がハードディスクに存在する必要がある。「サスペンド」機能に似ているが、サスペンドは作業状態をメモリに、ハイバネーションはハードディスクに保存する点が異なる。

<電源を完全に切ることが、ハイバネーションとサスペンドの違いである。それは電力を消費しない、つまりエネルギーゼロでメモリの内容を保存できるのである。

電源を切る直前の状態に戻す。いちいちOSやアプリケーションソフトの終了や起動を行う場合よりも時間や手間がかからず、消費電力も抑えることができる。

しかも、ウィンドウズをブートさせてウィンドウズを使用したあと、Ubuntuを立ち上げ、作業の続きをできる。こんな理にかなった方法を使わないことはない。が、Ubuntu 16.04で使えなくなっていた。

Ubuntu 16.04でサスペンド、ハイバネートを行う方法

sudo apt-get purge btrfs-tools

btrfsパーティション、ファイルシステムは使ってないので、要らない。SWAPがRAMより大きく必要になる。

sudo vi /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla

このファイルに以下の記述がなければ、書く。

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

そしてリスタート

sudo service polkitd restart
sudo ls /etc/polkit-1/localauthority/50-local.d
com.ubuntu.enable-hibernate.pkla

ここにファイルができた。

で、これでも動かない。手動でハイバネートを行ってみる。

sudo systemctl hibernate

これでもだめな場合、SWAPの設定をする。

sudo edit /etc/default/grub

ここからが以下のサイトを参考に
http://www.linux.org/threads/all-about-swap.6470/ All About Swap

If your kernel supports hibernation, but your system will not hibernate, then try this. In /etc/default/grub, replace “[GRUB_CMDLINE_LINUX=””]” with “[GRUB_CMDLINE_LINUX=”resume=UUID=4236dabb-fa7d-4066-b171-91ffa7afb4f4″]”, then run “update-grub”. Next, execute the command string below.
echo “RESUME=UUID=4236dabb-fa7d-4066-b171-91ffa7afb4f4” > /etc/initramfs-tools/conf.d/resume; update-initramfs -u
You may be wondering what is happening. Well, GRUB is being informed which swap space contains the hibernated system (if hibernation took place). Initramfs is also informed about the swap space used for hibernation. Obviously, the user must type their own UUID in-place of mine. The UUID is a special way to specify partitions.

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=47ef2af5-e4cd-4f23-9f64-1466b3540905"

/etc/default/grubに、上の記述し、update-grubを行う。
/etc/initramfs-tools/conf.d/resumeに、不明なUUIDの指定があったので、消してSWAP
UUIDを記入し

resume=UUID=47ef2af5-e4cd-4f23-9f64-1466b3540905"

、update-initramfs -uを行う。
*もちろんこのUUIDは、わしの環境のであるが。

sudo blkid |grep 'TYPE="swap"'

とか

lsblk -o name,fstype,uuid

で探るんじゃ。わしのは、fstabでpriでストライピングしてあるやつだ。よくわからないが片方だけのUUIDであるが、これよくないんかな?だったらストライピングやめるか。普通swap使ってないしなぁ。
これでハイバネートできるようになった。ついでにGRUB画面で画像を表示を行った。
https://help.ubuntu.com/community/Grub2/Displays Grub2/Displays
を参考に /boot/grubにJPGファイルを入れた。

  1. ハイバネートを成功させた
  2. GRUBに画像表示をさせた
  3. ハイバネートからのパスワードをかけた xscreensaverをインストールした。

これでUbuntu 16.04で、作業を中断しても、元の状態に戻せる、ハイバネートが使えるようになった。
ところが……つづきはこちら
https://www.exodabe.com/20170124354.html

コメント、質問、感想はお気軽にどうぞ