「Linux」カテゴリーアーカイブ

emacsのメニューバー、ツールバーを消去する

emacsの操作に慣れてくると、emacs画面の上部にあるパネルやツールバーを使わなくなります。
大事な画面のリソースが減ってしまうので、これを消すことを考えます。

emacsの設定ファイル(~/.emacs)にメニューバーとツールバーの消去する設定

(menu-bar-mode -1)
(tool-bar-mode 0)

を記述することで消せます。書いてemacsを再度開くと、以下の通りとなります。

環境:Linux-mint 20
Emacs: GNU Emacs 26.3 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.14) of 2020-03-26, modified by Debian

メニューバーとツールバー有り

メニューバーとツールバー無し

参考

メニューバーの削除
Remove the Emacs menu bar

ツールバーの削除
in GNU Emacs OSX, how to hide title bar? stack overflow

jpg,png画像からeps画像への変換

jpg, png画像などのラスタライズ画像をベクタ形式のeps画像に変換する方法です。

まとめ


一番良い方法は、LinuxでImagemagickのconvertコマンドを使って、

convert aa.jpg eps2:aa.eps

とする方法です。

1. Imagemagickを使う


Linuxが使える場合です。
Imagemagickのconvertコマンドで

convert aa.jpg eps2:aa.eps

とします。
eps2が無い

convert aa.jpg aa.eps

でも変換できますが、画像容量が大きくなってしまいます。

例えば、カラーマップの画像 668kBの”aa.jpg”

オリジナル画像

convert aa.jpg eps2:aa.eps
convert aa.jpg bb.eps

の二通りで変換した場合

668K aa.jpg   : 元画像
 17M bb.eps   : 通常のconvert
612K aa.eps   : eps2を付けたconvert

と大きな違いが出ます。

線のpng画像”rr.png”(元サイズ29.5kB)

であっても

convert rr.png eps2:rr.eps
convert rr.png rrn.eps

の二通りで変換した場合

 32K rr.png   : 元画像
5.5M rrn.eps  : 通常のconvert
104K rr.eps   : eps2を付けたconvert

となります。

eps画像をeps2によって再変換することもできますが、画質が許容できないくらい落ちてしまうのでやめたほうが良いと思います。
再変換に関して、恐らく何らかのオプションを付ければ大丈夫と思いますが、調べてはいません。

2. Gimpを使う


Linux, windowsが使える場合です。

Gimpで画像を開いて

ファイル→名前を付けてエクスポート

に進みます。
その後、ファイル名、拡張子を.epsにすれば、eps形式が得られます。

この方法では、
32Kの上の元画像が、4.5Mのeps画像になりました。

3. Inkscapeを使う


Inkscapeはwindowsでも用いることができる、ベクタ形式が編集可能なソフトです。

まずはラスタライズ画像をインポートします。

インポートは上のようにやればよいです。

続いて、ページサイズを取り込んだ画像に合わせるために以下の操作をします。

これによって、eps画像は、668kBから859kBに代わります。

このほか、画像の拡大縮小や、eps出力時の設定を変更を変えていけば容量も変わりますので、試してください。

参考サイト

ImageMagickでeps形式に画像を変換するhttp://fatsumiyoshi.hatenablog.com/entry/2012/10/01/174354

emacs上で再読み込み

emacs上でファイルを再読み込みしたいとします。
OSはLinux mint17.1です。

例えば、
emacsであるファイルを開いたまま、sedコマンドでファイルをいじると、そのいじったファイルは現在開いているemacsには反映されません。

これを変更してF5キーを押すだけでemacs上で再読み込みができるようにします。

ホームディレクトリに
.emacs
というファイルを作成し、その中に↓

(defun revert-buffer-no-confirm (&optional force-reverting)
  "Interactive call to revert-buffer. Ignoring the auto-save
 file and not requesting for confirmation. When the current buffer
 is modified, the command refuses to revert it, unless you specify
 the optional argument: force-reverting to true."
  (interactive "P")
  ;;(message "force-reverting value is %s" force-reverting)
  (if (or force-reverting (not (buffer-modified-p)))
      (revert-buffer :ignore-auto :noconfirm)
    (error "The buffer has been modified")))

  ;; reload buffer
  (global-set-key (kbd "<f5>") 'revert-buffer-no-confirm)

と入力します。これを記述し、もう一度emacsを立ち上げ,sedコマンド等で外部から編集し、F5キーを押せば更新されます。

参考文献

Emacsで現在開いてるバッファを再読込する

ffmpegでavi→gif変換

LinuxOSの場合です。

ffmpegを使ってaviからgifアニメーションを作る場合のコマンドです。

ffmpegのインストール手順はCompile FFmpeg on Ubuntu, Debian, or Mintここ。

オリジナルのまま、aviからgifに変換したい場合

ffmpeg -i video.avi -t 10 out.gif

サイズを800×400にしてgifで出力させたい場合

ffmpeg -i video.avi -t 10 -s 800x400 out.gif

参考


How to generate gif from avi using ffmpeg? [closed]

LinuxMintでアップデート失敗

僕の環境は、
VMware(R) Player バージョン7.1.0 build-2496824
に、LinuxMint 17.1 Rebeccaをインストールしている環境です。

sudo apt-get update
sudo apt-get dist-upgrade

をした後、再起動したあと、
LinuxMintの起動後にモードを選択する画面が表示され、

udevadm trigger is not permitted while udev is unconfigured.
udevadm settle is not permitted...
...
ALERT! /dev/disk/by-uuid/....-....-....-.... -.... does not exist.
Dropping to shell!
BusyBox v1.21.1 (Ubuntu 1:1.21.0-1ubuntu1) built-in shell (ash)
Enter 'help' for a list of built-in commands.

(initramfs) _

画像ではこんな感じになりました。
20150511-51639_b_c1
※uuidを晒しても安全か分からなかったため、念のため隠しています。

こうなってしまった後の場合の復帰方法を書きます。手順を書けば、

  1. liveCD からLinuxを起動
  2. “sudo fdisk -l” を入力し、ブートディスクを確認する, 僕の場合は /dev/sda1 でした。
  3. “sudo mkdir /media/newroot” を入力
  4. “sudo mount /dev/sda1 /media/newroot”, を入力, ブートディスクを作成したディレクトリに変更
  5. “sudo chroot /media/newroot” を入力
  6. “sudo apt-get update”
  7. “sudo apt-get dist-upgrade”
  8. 再起動で幸せに!

で治りました。
Thread: “udevadm trigger is not permitted while udev is unconfigured.”より。
ただし、6,7の手順ではすんなりアップデートはできず、apt-get update入力後失敗し、
>代わりにconfigure…を入力してください
と出て、こちらを改めて入力しました。
また、dist-upgradeもすんなりはできず、オプション追加して再入力してください、とあったのでその通りにしました。


詳しく書いていきます。

  1. liveCD からLinuxを起動

    必要なのは使っているLinuxの.isoファイルです。
    LiveCDはLinuxをインストールしたときに使用した,LinuxOSが入っているCD/DVD/USBのことです。
    ですが、物理的なCDドライブは特に必要ありません。.isoイメージファイルさえあればokです。
    LinuxMint17.1の場合はisoイメージファイルを
    Download Linux Mint 17.1 Rebecca
    よりダウンロードできます。日本の場合はno-codecs版です。
    ※ちなみに、VMwareでUSBからのブートは出来ません。Biosに項目があるかもしれませんが、できません。
    ダウンロードしたら、VMwareの設定で、起動時に仮想ドライブを起動するようにします。
    仮想マシンの設定を選択して、設定します。
    20150512-164029a_ca_c
    ↑を選択してから
    20150512-213544_c_c
    を選択してokを。

    そして、問題になっているLinuxを起動し、Bios画面を表示させ、CDromから起動するように変更します。
    起動の途中でEscを押せばBios画面に入れるのですが、一瞬で読み込みが終わり、起動画面は消えるので結構シビアです。
    確実にBios画面に入るためにはVMwareをCDブート、USBブートする/VMwareのBIOS画面を出すより、このようにすればいいそうです。

    仮想OSを作成したフォルダ内の「*.vmx」ファイルに、以下の1行を追加する事で、ESCキーを受け付ける時間を延ばす事が可能です。
    BIOS.BootDelay = “5000”
    単位はミリ秒。上記の場合、5秒間の猶予が出来ます。
    2~3秒に設定していると、意外にあっという間に通過します。お勧めは4~6秒くらいです。
    余談ですが、以下の一行を追加すると、毎回BIOS画面に入れます
    bios.forceSetupOnce = “TRUE”

    そうして起動します。するとGUIでLinuxMintが起動するかと思います。そうしたらターミナルを開いて次のステップに進みます。

  2. “sudo fdisk -l” を入力し、ブートディスクを確認する

    次に、今使われているブートディスクは何なのか、を調べます。

    sudo fdisk -l

    を入力するとこの画像のように表示されることでしょう。
    20150512-162004_c
    ここで、左から2列目、”Boot” とある欄を見ますとアスタリスクが付いていることが分かります。
    なので、これが自分のBootディスク、ということになります。
    上の画面の場合は/dev/sda1, ということです。

  3. “sudo mkdir /media/newroot” を入力

    説明はありません。

  4. “sudo mount /dev/sda1 /media/newroot” を入力

    説明はありません。

  5. “sudo chroot /media/newroot” を入力

    説明はありません。

  6. “sudo apt-get update”

    ここでちょっと躓きました。僕の場合だけかもしれませんが、エラーが出されました。
    > Err http://…
    みたいな文がずらずらと。ただ、よくよくエラー文を読むと、
    代わりにconfigure…を入力してください
    とあったのでこれを入力しました。そうしたら、とりあえずokとなりました。

  7. “sudo apt-get dist-upgrade”

    次にこれを入力します。ここでもエラーが出ましたが、エラー文に
    オプションを追加して入力してください、
    とあったのでその通りにしたらokとなりました。

  8. 再起動

    再起動すれば元通り!
    この時、Bios画面か、仮想CD/DVDドライブから読み込ませないようにしておかないと意味がないので外しておきましょう。

途中、sudo に関して、

sudo: unable to resolve host

が出てきました。一応解決するためにはこのリンク先通りにやれば解決します。
これが必要な手順か、は知りません。

カーネルが、という場合もあるようです。その時は手順6,7が違うものになるそうです。

参考先

Thread: “udevadm trigger is not permitted while udev is unconfigured.” このエラーのフォーラム
Download Linux Mint 17.1 RebeccaLinux Mint 17.1 Rebeccaのダウンロード
VMwareをCDブート、USBブートする/VMwareのBIOS画面を出すBIOS画面を確実に出すためには。
sudo: unable to resolve host が表示されたらsudoの解決

とある詳しい方。

LXDE

LinuxMint 17.1 “Rebecca” においてデスクトップ環境”lxde”をインストールするための手順です。

LXDEの導入

lxdeとは?
Arch Linux LXDE (日本語)より引用

LXDE (“Lightweight X11 Desktop Environment”) は極めて高いパフォーマンスを持ち省エネルギーなデスクトップ環境です。開発者たちの国際的なコミュニティにより管理され、美しいインターフェース、多言語対応、標準的なキーボードショートカットとタブファイラーのような追加機能を含みます。LXDE は CPU も RAM も他のデスクトップ環境に比べ消費が少ないです。特に、ネットブック、モバイル端末や、古い計算機などによるクラウドコンピューティングにあわせてデザインされています。

ぶっちゃければ軽いよ!ということです。
windowsだったらこの変更に相当する操作はありません。
これからやろうとしているのは
OS → バージョン → デスクトップ環境
の順で書けば、
LinuxMint → 17.1(Rebecca) → cinnamon
から
LinuxMint → 17.1(Rebecca) → LXDE
に変更する、という操作です。cinnamon, LXDEの他にMate, KDE, Xfceなどがあります。
詳しくは調べてください。

設定→Synapticパッケージマネージャ
と進みます。
Synapticパッケージマネージャの検索ボックスでlxdeを検索してチェック、チェックして出てくる関連のものも全てチェックします。
さらに、lxdmもチェックします。
どうやらこのlxdmがないとログイン画面でどのデスクトップ環境でスタートするか?の選択ができません。

あとはSynapticパッケージマネージャの”適用”を押せば終了です。ログアウトして、
ログイン画面で(多分デフォルトでは)λになっているところを押してlxdeで起動を選択、その後ログインしましょう。


lxterminal のカラーを変えたい!

  …できません。

Thread: Colour Scheme on lxterminal in lubuntu

LXTerminal Colors?
より。

At this time we do not offer any more customization than foreground/background. You are encouraged to run any terminal emulator that meets your needs.

訳すと、”前景色と背景色以上のカスタマイズは提供しないよ。カスタムしたかったら別のターミナルをインストールしてねミ☆”
だそうです。

→guake terminalというのがよさそうです。

sudo apt-get install guake

で、インストールが終わったら端末で

guake

と入力し、F12キーを押せば立ち上がります。guake terminalの設定は
スタートボタン→設定→Guake Preferences
で設定できます。


LXDEのスタートアップ(起動時に自動的に実行させるプログラム)の設定がないよ!

Arch LXDEによると、
ディレクトリの場所:~/.config/lxsession/LXDE/autostart
にLXDEを起動させたときに実行させるプログラムが書いてあります。その中身に何が書いてあるかというと、

@xscreensaver -no-splash
@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE
@/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1

のような文が記述されていると思います。意味はArch LXDEによると@以下の文が起動時のプログラムとして実行されます。
なので、ここを書き換えて、たとえばguake端末を起動時に立ち上げたいのならば

@xscreensaver -no-splash
@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE
@/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
@guake

という風に@guakeを付け加えてあげましょう。


guakeの横幅を変えたいよ!

How To Adjust Guake Terminal Width を見てみるとUbuntu12.10以降はguakeの設定ファイルは

/usr/bin/guake

にあります。LinuxMint17.1でも同じで、上のディレクトリにあります。この中身を編集していきます。

sudo emacs /usr/bin/guake

で開き、820~830行目あたりにある

def get_final_window_rect(self):
    """Gets the final size of the main window of guake. The height
    is the window_height property, width is window_width and the
    horizontal alignment is given by window_alignment.
    """

    screen = self.window.get_screen()
    height = self.client.get_int(KEY('/general/window_height'))
    width = 100
    halignment = self.client.get_int(KEY('/general/window_halignment'))

のwidth=100になっているところ書き換えてwidth=50とか80とかにします。
ちなみにこのwidthはウインドウの横幅に対するパーセンテージです。

※サイトで検索した時、下の場所にあるからねーっていう記述がかなりあったけれどこれはUbuntu12.04以前の場合です。
/usr/lib/guake/guake.py
昔のだね。

フォントサイズ変更

emacsでフォントサイズを変更したい場合は?環境はemacs24。

(調べてもよくわからないし出てこない…。)
一度だけ変更したい場合は、Ctrl-x-± で可能です。
ではずっと変更したい場合は?
emacsの設定ファイルに記述します。emacsの設定ファイルの場所は
emacswiki – InitFileより

  1. For GnuEmacs, it is ~/.emacs or _emacs or ~/.emacs.d/init.el.
  2. For XEmacs, it is ~/.xemacs or ~/.xemacs/init.el.
  3. For AquamacsEmacs, it is ~/.emacs or ~/Library/Preferences/Aquamacs Emacs/Preferences.el

にあります。環境によって場所が異なります。
Linuxmint17.1,”sudo apt-get install emacs24″で行った場合、おそらく~/.emacsでしょう。

21.8 Fontsを見るとデフォルトでは
フォント(の種類) : monospace font
フォントサイズ : 10pt
として設定されているそうです。

テキストエディタで~/.emacsを開き、
(custom-set-variables


)
の括弧の

(add-to-list 'default-frame-alist
                       '(font . "DejaVu Sans Mono-12"))

という文を記述します。
現在、フォントのタイプの変更は僕は分かりません。多分DejaVu…を変えればよさそう。
12のところを10とか14とかに変えればデフォルトのフォントサイズを変更することができます。

見出しに使っている画像は8,9,10,11,12,20の場合の比較です。参考にどうぞ。

僕の使ってる~./emacsはこちら