Linux

SlackAppを最小化状態で自動起動する for Linux

元ネタ SlackAppを最小化状態で自動起動する

SlackAppを自動起動にしている場合は ~/.config/autostart/slack.desktop と言うファイルがあります。 私の環境では、slack.desktop/usr/share/applications/slack.desktop に存在していました。 なので、編集するには `sudo`` が必要です。

[Desktop Entry]
Name=Slack
StartupWMClass=Slack
Comment=Slack Desktop
GenericName=Slack Client for Linux
Exec=/usr/bin/slack %U
Icon=/usr/share/pixmaps/slack.png
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Network;InstantMessaging;
MimeType=x-scheme-handler/slack;

Exec が実際に実行するコマンドを指定しています。/usr/bin/slack が本体なので、この直後に --startup を挿入すれば最小化状態で自動起動するようになります。

Exec=/usr/bin/slack --startup %U

おそらく、SlackAppをアップデートすると /usr/share/applications/slack.desktop は上書きされて --startup が消えるので、~/.config/autostart/ にはシンボリックリンクではなく、コピーを置くなどのしたほうがいいです。

apt installを使わずにTeXLiveを導入する

TeX ディストリビューション

Linux で TeX 環境を構築するには,2つの方法があります.

  1. 使用している Linux ディストリビューションのパッケージ管理システムから TeX Live のパッケージをインストールする.
  2. TeX Live のインストーラを使ってインストールする.

前者の場合は,他のパッケージと同様に統一的な管理ができますが,ディストリビューションによっては提供されているパッケージのバージョンが古いことがあります. 後者の場合は,パッケージ管理システムによる管理からは外れてしまいますが,tlmgr を使って最新の状態にアップデートし続けることが可能です.

TeX Live のインストール †

TeX Live のインストールガイド

に従えばよいですが,このページでもネットワークインストーラを使う場合について簡単に説明します.

まず,ミラーサイトから install-tl-unx.tar.gz をダウンロードします.

※ wget を使用する場合

$ wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz

※ curl を使用する場合

$ curl -O http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz

install-tl-unx.tar.gz を展開します.

$ tar xvf install-tl-unx.tar.gz

展開したインストーラのディレクトリに移動します.

$ cd install-tl*

root 権限でインストーラを実行します. オプションでダウンロードするリポジトリを指定できます.

$ sudo ./install-tl -no-gui -repository http://mirror.ctan.org/systems/texlive/tlnet/

...
Actions:
 <I> start installation to hard disk
 <H> help
 <Q> quit
Enter command: I

I を入力してインストールを開始します. サーバーの接続エラーが発生したり,何らかの理由により取得したアーカイブに問題があったりした場合はインストールが途中でストップします. この場合は,以下のコマンドで途中から再開できたりできなかったりします.

Macにe2psをインストールする

WtSeries : UNIXソフトからe2psをダウンロードして解凍します。 現在の最新バージョンは、e2ps-4.34

解凍フォルダー内のps-font.cをエディタで開き、14~53行の行末にバックスラッシュを追加します。

char *gsFonts = "Times-Roman\
Times-Italic\
Times-Bold\
Times-BoldItalic\
Helvetica\
Helvetica-Oblique\
Helvetica-Bold\
Helvetica-BoldOblique\
Courier\
Courier-Oblique\
Courier-Bold\
Courier-BoldOblique\
Symbol\
AvantGarde-Book\
AvantGarde_BookOblique\
AvantGarde_Demi\
AvantGarde_DemiOblique\
Bookman-Light\
Bookman-LightItalic\
Bookman-Demi\
Bookman-DemiItalic\
Helvetica-Narrow\
Helvetica-Narrow-Oblique\
Helvetica-Narrow-Bold\
Helvetica-Narrow-BoldObliqeu\
NewCenturySchlbl-Roman\
NewCenturySchlbl-Italic\
NewCenturySchlbl-Bold\
NewCenturySchlbl-BoldItalic\
Palatino-Roman\
Palatino-Italic\
Palatino-Bold\
Palatino-BoldItalic\
Zapfchancery-MediumItalic\
ZapfDingbats\
Ryumin-Light.Hiragana\
Ryumin-Light.Katakana\
Gothic-Meduim.Hiragana\
Gothic-Medium.Katakana\
";

terminalで解凍フォルダー内に移動します。

cd e2ps-4.34

続いて以下のようにmakeします。

make
sudo make install

/usr/local/bin に e2ps と e2lpr がインストールされていたら成功です。

Debianにemacs-26.1-rc1をInstallする

私の場合は、ThinkpadのWindows10にVirtualBoxをInstallし、Vbox上でEmacs on Debianを動かしています。 もう一台メインマシンのmacbookにもEmacsを導入し、設定ファイルはDropboxで共用しています。

最近Macの方をemacs26.1にアップデートしたら、なぜかDebianのEmacs25.3で一部の設定ファイルが読み込みエラーになり起動しません。 やむなく、まだ安定版ではないけれどDebianのほうにもemacs26.1をインストールすることにしました。

Installの手順

  • apt-getでのパッケージインストールはまだ出来ないのでソースをダウンロードしてビルドします。
  • ソースがすぐに見つからず探すのに苦労したがようやく下記にありました。
$ wget https://alpha.gnu.org/gnu/emacs/pretest/emacs-26.1-rc1.tar.xz
$ unar emacs-26.1-rc1.tar.xz
$ cd emacs-26.1
$ ./configure --with-x-toolkit=gtk3 --with-sound=no --with-x
$ make
$ sudo make install
$ sudo reboot 
$ emacs --version
$ GNU Emacs 26.1
  • 今回 configure での --with-xwidgets オプションがエラーになりましたので諦めました。
  • emacs26.1のインストールによって設定ファイル読み込みエラーは出なくなりました。原因は不明です。

Debian9にHUGO最新バージョンをインストールする

はじめに

Emacs+HUGOをMac環境メインで使っているが、Windows10(ThinkPad)上のVboxにdebianを入れて予備環境も構築している。

MacでのHUGOは、brewで簡単にバージョンアップできるのだけれど、 Linuxの場合、apt-getをupdateしても古いバージョンのHUGOしかインストール出来ない。 そこで、直接最新版をダウンロードしてインストールしたので備忘録としてメモしておく。

HUGO最新版をダウンロードしてインストール

端末で直接ダウンロードすることも出来るが、どのみち最新版を調べる必要があるので, プラウザでダウンロードサイトにアクセスする。

https://github.com/spf13/hugo/releases/

リストが表示されるので、最新バージョンを落としてくる。

hugo_0.34_Linux-64bit.deb

使っている環境に合うものをダウンロードする。

普通に操作すれば、Downloadsフォルダに保存されるので、あとはターミナルからコマンドを使ってインストールする。

$ cd ~/Downloads
$ sudo dpkg -i hugo_0.34_Linux-64bit.deb

終わったら、念のためにHUGOのバージョンを確認しておこう。

$ hugo version
Hugo Static Site Generator v0.34 linux/amd64 BuildDate: 2018-01-22T12:06:40Z

Conglaturation…

DebianにEmacs25.3をInstallする

私の場合は、ThinkpadのWindows10にVirtualBoxをInstallし、Vbox上でDebianを動かしています。

Installの手順

  • apt-getでインストールできるのは、Emacs25.1までなので、dawnloadしたsourceを直接コンパイルしてインストールします。
  • 幸い、もともとEmacs25.2がInstallしたあったので、すんなり成功しました。
$ wget http://public.p-knowledge.co.jp/gnu-mirror/emacs/emacs-25.3.tar.xz 
$ unar emacs-25.3.tar.xz
$ cd emacs-25.3
$ ./configure --with-x-toolkit=gtk3 --with-sound=no --with-x --with-xwidgets
$ make
$ sudo make install
$ sudo reboot 
$ emacs --version
$ GNU Emacs 25.3.1
  • emacs25.2はインストールしたままで上書きしましたが、まったく問題ありませんでした。

xwidgetsが動いた(^o^)v

  • Emacs25で採用されたxwidgetsですが、Mac環境では動きませんでした。
  • Linuxでは動くとの情報だったので試しました。

UpFtpをMacとLinuxとで共用する方法

UpFtpと言うのは、結城浩さんの作られたMakeWebと併せて使うためのFTP自動化ツールのことです。

  • Makeweb:テキストをXHTMLに変換するPerlスクリプト
  • UpFtp:ホームページ更新用Perlスクリプト

これらのツールを使えば、MakeWeb記法(Markdown記法のような書式)で書いた、index.txtをMakeWebでコンパイルしてindex.htmlを生成させ、UpFtpでサーバーに送って更新する…という手順を下記のように makefileに書き、make -k するだけで自動処理されます。

makefile

target = index.html
a.out:all
all: $(target)

.SUFFIXES: .txt .html
.txt.html:
	perl ~/Dropbox/Web/GH/mw/makeweb.pl $< $@ # index.txt to index.html
	perl ~/Dropbox/Web/GH/upftp/upftp.pl 

異なる環境でデータを共有するのはDropboxが便利

Dropboxは、Windows/Linux/macOSとマルチ環境で使えるので、WEB構築の元データを複数端末で共有するのには一番適している。同期速度などの点でも他のクラウドと比較して一番早い。

ぼくの場合は、どの環境もユーザーフォルダの直下にDropboxをインストールしているので、以下のようPATH構成になる。

  • Windows C:\Users/minoru/Dropbox
  • Lnux /home/minoru/Dropbox
  • Mac /Users/minoru/Dropbox

Makefileの場合は、~/Dropboxと書くことで認識してくれるので容易に共用設定が書けるが、UpFtpの設定ファイルの場合は、以下のようにフルパスを書く必要があるので工夫が必要となる。

# Local root directory (in fullpath)
my $localrootdir = "";
# File list (in fullpath)
my $filelist = "";

ユーザフォルダーを変数で取得

フルパスを直書きするとマルチ環境で共用できないので、変数を取得してそれを共通で使えるようにします。

Mac/Linuxの場合

MacもLinuxも同じUNIXなので以下の方法でユーザーフォルダのPATHを取得できる。

$home = $ENV{"HOME"}
$home = %USERPROFILE%

Mac/Linux共用の設定

私の場合は、以下のように書くことでうまく動いている。

# Get HOME directory from environment variables
my $home = $ENV{"HOME"};
# Local root directory (in fullpath)
my $localrootdir = "$home/Dropbox/Web/GH";
# File list (in fullpath)
my $filelist = "$home/Dropbox/Web/GH/upftp/filelist.txt";

Windows/Mac(Linux)共用の設定

ここからは確認できていないので無責任になるけれども、OSを判別する特殊変数を使って分岐させる必要がある。