2016年9月10日土曜日

PPxをタブ型一画面で使う


挨拶


つかさです。
PPxをタブ型一画面で使ってみる。




こんなのです。僕は今までタブを活用したことがあまりなかったのだが、マウスを中心にするのならタブも悪くはないのではないかと思うようになった。

タブ型一画面にする


以下を編集して取込。

X_mpane = 1,1 ; 一体化時の最大同時表示ペイン数,起動時のペイン数
X_combo = 1 ; 複数 PPc を一体化 0:しない 1:する

これで

  • 一体型
  • ペイン数を1で固定

となる。

マウスジェスチャーを使えるようにする


マウスジェスチャーを利用し、Webブラウザのようにタブを扱えるようにする。

以下を編集して取込。

XC_Gest = 2 ; 右ボタンでジェスチャーを 0:しない 1:する 2:する+D&D可
MC_click = { ; PPc メイン窓
RG_DU ,%K"@BS"
RG_LR ,*pane newtab
RG_DR ,*pane closetab
RG_L ,*pane select h-1
RG_R ,*pane select h+1
}

これで

↓↑:親フォルダへ
←→:新しいタブを開く
↓→:タブを閉じる
←:左のタブへ
→:右のタブへ

という挙動になる。


2016年9月5日月曜日

PPxでマウスジェスチャー

あいさつ


いつの間にかPPvでもマウスジェスチャーができるようになっていた(俺が気づいてなかっただけだけど)。
これで、俺がいつか遠い昔に目指していた「片方の手だけで画像ファイル等をダラダラ閲覧する」ことが可能になる。そう、ブラウザでマウスジェスチャーだけで適当なサイトをダラダラ閲覧するように!
          ∧_∧         ⊂(´・ω・`)つ-、       ///   /_/:::::/        |:::|/⊂ヽノ|:::| /」     / ̄ ̄旦 ̄ ̄ ̄/|   /______/ | |   | |-----------| |
参考:片方の手だけでだらだらキーボード打ちたい

準備


以下を編集して取込。

XC_Gest = 2 ; 右ボタンでジェスチャーを 0:しない 1:する 2:する+D&D可
XV_drag = 0,1,3,2 ; ドラッグ開始ボタン スクロール,選択,窓移動,ジェスチャ(右のみ)
  ; 0:使用しない 1:左 2:右 3:中/ホイール 4:左右同時 5:第4 6:第5
MC_click = {
RG_L = @^LEFT
RG_R = @^RIGHT
RG_DU    ,%K"@BS"
RG_DR ,%K"@&F4"
}
MV_click = {
RG_L    ,*execute C,*cursor 6, -1 %: %KC"@N"
RG_R    ,*execute C,*cursor 6, 1 %: %KC"@N"
RG_U    ,%KC "@UP @N"
RG_D    ,%KC "@DOWN @N"
RG_DU ,%K-C"@BS@N"
RG_DR ,%K"@&F4"
LD_SPC ,*ifmatch attribute:d,%*extract(C"%%FCDN") %: %K-C"@Enter @N" %: *stop
 %K-C"@BS@N"
}


使い方


マウスジェスチャーは右クリックから行う。

PPc

→:履歴を進む
←:履歴を戻る
↓↑:上の階層へ
↓→:閉じる

PPv

→:右のファイルへ
←:左のファイルへ
↑:上のファイルへ
↓:下のファイルへ
↓↑:上の階層へ
↓→:閉じる
左ダブルクリック:フォルダ上なら下層移動。ファイル上なら上の階層へ


マウスジェスチャーは情報行に表示される。


右クリックから↓のマウスジェスチャーをすると下のファイルを表示する。



 PPvを閉じたい時は右クリックから↓→のマウスジェスチャー。


2016年8月7日日曜日

Linux Mint Xfceインストール時のメモ

Acer Aspire E11のHDDをSSDに換装した後、Linux Mint Xfceを入れてみた。その後にすることのメモ。

日本語化


$ sudo apt update
$ sudo apt dist-upgrade

としてパッケージを最新状態にした後、Fcitx-Mozc をインストールし、有効に。

$ sudo apt install fcitx-mozc --install-recommends
$ im-config -n fcitx

参考: 人気の「Linux Mint 17.2」/早速日本語入力を試す - ハルさんの電脳メモ 


輝度の調整



xbacklightをインストール。

$ sudo aptitude install xbacklight


次に、「セッションと起動」から「自動開始アプリケーション」を選んで「Add」。

名前:ディスプレイ輝度
説明:xbacklightで暗くする
コマンド:xbacklight -set 30

参考:LinuxMint17でのディスプレイ輝度の調整 - Raspi-Linux ガジェットベース


タッチパッドを無効化




僕のPCでは、タッチパッドを有効にしてると、なぜかたまにマウスカーソルが画面上を飛び回る愉快な状態になるので、無効化する。
スタートボタンをクリックし、「設定→マウスとタッチパッド」から無効化。


電池残量をタスクトレイに表示




タスクトレイを右クリックし、「パネル→新しいアイテムの追加」から「電源管理プラグイン」を追加。

Chrome


公式サイトからダウンロードし、インスコする。


Emacs


$ sudo apt install emacs

でインストール。次に、「.emacs」を編集し、以下を追加。

;;起動時の画面を消す
(setq inhibit-startup-message t)

;;アイコンを消す
(tool-bar-mode -1)

; 行番号表示
(require 'linum)
(global-linum-mode)

;; メッセージを消す
(setq initial-scratch-message "")

;; beep音を消す
(setq visible-bell t)
(setq ring-bell-function 'ignore)

;; *.~ とかのバックアップファイルを作らない
(setq make-backup-files nil)

;; .#* とかのバックアップファイルを作らない
(setq auto-save-default nil)

;; .emacs.dにパスを通す
(add-to-list 'load-path "~/.emacs.d")

;; howm-create2dir読み込み
(require 'howm-create2dir)

;; howmファイルをhowm2dirモードで開く
(setq auto-mode-alist
      (cons (cons "\\.howm$" 'howm-create2dir-mode) auto-mode-alist))

;; 文字コードをshift-jisに
(set-language-environment "Japanese")
(prefer-coding-system 'shift_jis)

次に、homeに「.emacs.d」フォルダを作成し、そこに以下のスクリプトを入れる(以前作ったやつをすっごく適当に改変したものなのでそのうち見直したい)。これで、Emacs起動後ミニバッファで「make-howm-create2dir-file」と入力すると、DropboxフォルダのTempフォルダにhowmを作成できる。
makehowm2dir.el 

;;; howmファイルを作成
(defun make-howm-create2dir-file (&optional howm-dir)
  (interactive)
  (let* ((filename (format-time-string "%Y-%m-%d-%H%M%S.howm"))
  (filepath
   (if howm-dir
       (concat (file-name-as-directory howm-dir) (format-time-string "%Y-%m-%d-%H%M%S.howm"))
     (format-time-string "Dropbox/Temp/%Y-%m-%d-%H%M%S.howm"))))
;;;     (format-time-string "%Y-%m-%d-%H%M%S.howm"))))
    (find-file filepath)
    (if (eq (point-max) (point-min))
 (progn
   (insert (format-time-string "= \n\n[%Y-%m-%d %H:%M]\n"))
   (goto-char (+ (point-min) 2))))
    ))

;;; howmファイルを作成2
(defun make-howm-create2dir-file2 ()
  (interactive)
  (let* ((filename (format-time-string "%Y-%m-%d-%H%M%S.howm"))
  (filepath (format-time-string "%Y-%m-%d-%H%M%S.howm")))
    (find-file filepath)
    (if (eq (point-max) (point-min))
 (progn
   (insert (format-time-string "= \n\n[%Y-%m-%d %H:%M]\n"))
   (goto-char (+ (point-min) 2))))
    ))


;;; 本体
(defun howm-create2dir (arg)
  (if (file-directory-p arg)
      (progn
 (make-howm-create2dir-file arg)
 (howm-create2dir-mode))))

;;; メジャーモード
(define-derived-mode howm-create2dir-mode nil "howm2dir"
       "homu mode"
       (define-key howm-create2dir-mode-map "\C-c,c" 'make-howm-create2dir-file2)
       (define-key howm-create2dir-mode-map (kbd "C-:") 'hateda-heading)
       (define-key howm-create2dir-mode-map (kbd "C-]") 'hateda-heading2)
       (font-lock-add-keywords
        nil
        '(("^\\*\\*\\*.*\n" . my-face-b-1)
   ("^\\*\\*.*\n" . my-face-b-2))))

;;; フェイス
(defface my-face-b-1 '((t (:foreground "white" :background "SteelBlue"))) nil)
(defface my-face-b-2 '((t (:foreground "white" :background "blue"))) nil)
(defvar my-face-b-1 'my-face-b-1)
(defvar my-face-b-2 'my-face-b-2)

;;; 行頭に見出しをつける
(defun hateda-heading ()
  (interactive "*")
  (save-excursion
    (beginning-of-line)
    (insert "**")))

(defun hateda-heading2 ()
  (interactive "*")
  (save-excursion
    (beginning-of-line)
    (insert "*")))

(provide 'howm-create2dir)
(provide 'howm-create2dir-mode)

Guake-terminal




F12を押すと上から降りてきて、もう一度F12を押すと戻っていくターミナル。

$ sudo apt-get install guake -y

でインストール。
次に、スタートボタンをクリックし、

「設定→設定マネージャー→セッションと起動→自動開始アプリケーション→追加」から、名前にguake、コマンドに「bash -c 'sleep 5s; guake'」と入力して、システム起動時に起動するようにする。


参考:Linuxmintでguake - 鶏口牛後

DropBox



公式サイトに行ってダウンロードし、インストールする。ついで、

$ dropbox start -i

とコマンドを打つと起動する。


Atom


Markdownをやるためにインスコする。


$ sudo add-apt-repository ppa:webupd8team/atom
$ sudo apt-get update
$ sudo apt-get install atom

参考:Ubuntu 15.04 LinuxMint 17 に Atomをインストールする - VariedTasteFinder

ranger




ターミナルで起動するファイラ。

まずは、ranger本体と必要なパッケージをインストールする。

$ sudo apt-get install ranger nkf w3m lynx highlight atool mediainfo xpdf caca-utils ranger --copy-config=all

次に、設定ファイルを作成する。

$ ranger --copy-config=all

scope.shを編集。テキストファイルが文字化けしないようにし、かつ枠の幅で折り返すようにする。nkfというコマンドとfoldというコマンドを使えばよさそう

#!/usr/bin/env sh
# ranger supports enhanced previews.  If the option "use_preview_script"
# is set to True and this file exists, this script will be called and its
# output is displayed in ranger.  ANSI color codes are supported.

# NOTES: This script is considered a configuration file.  If you upgrade
# ranger, it will be left untouched. (You must update it yourself.)
# Also, ranger disables STDIN here, so interactive scripts won't work properly

# Meanings of exit codes:
# code | meaning    | action of ranger
# -----+------------+-------------------------------------------
# 0    | success    | success. display stdout as preview
# 1    | no preview | failure. display no preview at all
# 2    | plain text | display the plain content of the file
# 3    | fix width  | success. Don't reload when width changes
# 4    | fix height | success. Don't reload when height changes
# 5    | fix both   | success. Don't ever reload

# Meaningful aliases for arguments:
path="$1"    # Full path of the selected file
width="$2"   # Width of the preview pane (number of fitting characters)
height="$3"  # Height of the preview pane (number of fitting characters)

maxln=200    # Stop after $maxln lines.  Can be used like ls | head -n $maxln

# Find out something about the file:
mimetype=$(file --mime-type -Lb "$path")
extension=${path##*.}

# Functions:
# runs a command and saves its output into $output.  Useful if you need
# the return value AND want to use the output in a pipe
try() { output=$(eval '"$@"'); }

# writes the output of the previouosly used "try" command
dump() { echo "$output"; }

# a common post-processing function used after most commands
trim() { head -n "$maxln"; }

# wraps highlight to treat exit code 141 (killed by SIGPIPE) as success
highlight() { command highlight "$@"; test $? = 0 -o $? = 141; }

case "$extension" in
    # Archive extensions:
    7z|a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
    rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
        try als "$path" && { dump | trim; exit 0; }
        try acat "$path" && { dump | trim; exit 3; }
        try bsdtar -lf "$path" && { dump | trim; exit 0; }
        exit 1;;
    rar)
        try unrar -p- lt "$path" && { dump | trim; exit 0; } || exit 1;;
    # PDF documents:
    pdf)
        try pdftotext -l 10 -nopgbrk -q "$path" - && \
            { dump | trim | fmt -s -w $width; exit 0; } || exit 1;;
    # BitTorrent Files
    torrent)
        try transmission-show "$path" && { dump | trim; exit 5; } || exit 1;;
    # HTML Pages:
    htm|html|xhtml)
        try w3m    -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; }
        try lynx   -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; }
        try elinks -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; }
        ;; # fall back to highlight/cat if the text browsers fail
esac

case "$mimetype" in
    # Syntax highlight for text files:
    text/* | */xml)
        try nkf "$path" && { dump | trim | fold -b -w $width; exit 5; } || exit 2;;
    # Ascii-previews of images:
    image/*)
        img2txt --gamma=0.6 --width="$width" "$path" && exit 4 || exit 1;;
    # Display information about media files:
    video/* | audio/*)
        exiftool "$path" && exit 5
        # Use sed to remove spaces so the output fits into the narrow window
        try mediainfo "$path" && { dump | trim | sed 's/  \+:/: /;';  exit 5; } || exit 1;;
esac

exit 1

参考


2016年7月23日土曜日

CyberFoxをインスコした後にやることのメモ

CyberFoxをインスコした時の設定メモです。

日本語化


Language Managerを利用する。

参考:Cyberfoxを簡単に日本語化できる「Language Manager」 - ハルパス


アドオン



FireGesturesは、マウスジェスチャーを有効にするアドオン。設定から、

  • 前のタブへ…マウスを右クリックしながら上にマウスを移動
  • 次のタブへ…マウスを右クリックしながら下にマウスを移動

という割当に変える。 これは、Tab Treeとの関係上こうしたほうが便利なため。



Gmail Notifier は、Gmailが届いたら、ツールバーアイコンとポップアップで知らせてくれるアドオン。特に難しい設定はしなくても、CyberFoxでGmailにログインしていたらいいらしい。

IME自動無効は、ロケーションバーに行ったら自動でIMEを無効にしてくれるアドオン。

Tab Treeは、 タブをツリー型にしてくれるアドオン。ツリー型タブというアドオンもあるが、こっちのほうがkikiっぽくていい。

ツリー型の何が素晴らしいかということは、十年前くらいに散々議論されてきただろうことなので(多分)特に言わないが、調べ物をしててたくさんタブを開きたい、一つのページからリンクを開きまくりたい、という時に、ツリーで階層構造を再現できるというのは非常に便利なのだ。


設定項目がたくさんあるので、いつか調べて記事にしてまとめるかもしれない。

参考

 

KiKiに一目惚れ! - 覚えられませんっ
Firefox2をKIKI似にしたい  - 覚えられませんっ

QuickDragは、調べたい単語とかリンクとかを選択してDrag&Dropすると新しいタブで検索してくれたり開いたりしてくれるアドオン。

uBlock Originは広告をブロックするアドオン。


2016年6月23日木曜日

PC自作した【十数年ぶり二度目】

十何年かぶりにPCを自作したのでそのメモ。
CPU用電源のケーブルを挿し忘れて「なんで起動しないんだよ!」と焦ったのは内緒だ。

about My Machine


  • 【CPU】Intel CPU Core i5-6500 3.2GHz
  • 【マザボ】ASUSTeK H110M-A
  • 【メモリ】CORSAIR DDR4 8GB×2 CMK16GX4M2A2666C16
  • 【電源】ANTEC NE650C
  • 【光学ドライブ】DRW-1814BLT
  • 【HDD】WD HDD 3.5インチ 1TB Blue WD10EZEX/N
  • 【SSD】Crucial CT240BX200SSD1
  • 【ケース】Define R5
  • 【グラボ】無し
  • 【OS】 Windows10



インストール後の設定


  • 環境変数にXYZZYHOMEを登録
  • スタートアップへのソフト登録。パスはC:\Users\ [ユーザー名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
  • 規定のIMEをGoogle日本語入力に。「コントロールパネル」>「すべてのコントロールパネル項目」>「言語」>「詳細設定」で上から2番めの項目「既定の入力方式の上書き」でGoogle日本語入力を選択
  • Screensaversを適当に設定
  • フォントをインストール

インストールしたソフト


  • マザボ(H110M-A)のドライバ
  • Office2007+SaveAsPDFandXPS.exe
  • Scribus
  • steam
  • Google日本語入力
  • Chrome
  • PDF-XChange Viewer
  • GhostScript
  • PDFTK
  • Caldix
  • MusicBee
  • DropBox
  • 7 Taskbar Tweaker(時刻表示のため)
  • Apache OpenOffice
  • FlashPlayer

2016年2月22日月曜日

拡張コメントを利用したソート

今回は、拡張コメントを利用して柔軟なソートをする方法です。PPx 1.47+1以降とPPx Script Module R15以降が必要です。

EXE、TXT、CFG、ZIPを前方に。それ以外は後方に持ってくるようなソートをしてみます。



以下をScriptフォルダに保存。

excomment.js
//!*script

for (var i = 0; i < PPx.EntryAllCount; i++) {
  if (PPx.Entry(i).Name.match(/.EXE$/i)) {
    PPx.Entry(i).SetComment(1,1);
  } else if (PPx.Entry(i).Name.match(/.TXT$/i)) {
    PPx.Entry(i).SetComment(1,2);
  } else if (PPx.Entry(i).Name.match(/.CFG$/i)) {
    PPx.Entry(i).SetComment(1,3);
  } else if (PPx.Entry(i).Name.match(/.ZIP$/i)) {
    PPx.Entry(i).SetComment(1,4);
  } else {
    PPx.Entry(i).SetComment(1,5);
  }
}

SetCommentで、個々のエントリに拡張コメントを設定してます。

次に、このスクリプトをCOMMENTEVENTに登録します。
以下を編集して取込。
KC_main = { ; PPcメイン窓
COMMENTEVENT1 ,*script %0\Script\excomment.js
}

次に、ソートを実行したいフォルダに行って、以下を実行。

*sortentry -thispath 24,1,0,B11111,1

すると、COMMENTEVENT1が呼び出され、excomment.jsが実行された後に、拡張コメントを用いたソートがなされます。

追記 2017/03/16


XC_dsetで、特定のフォルダでコマンドを実行するよう設定すれば良さげ。
PPxフォルダで拡張コメントのソートをしたいなら、次のようになる。cmd より前は無視しておk。
XC_dset = { 
D:\bin\ppx2window64\ = B0000,-1,-1,11,-1,-1,B011111,B00000000000000000000000001,cmd:"*sortentry -thispath 24,1,0,B11111,1"
}

参考:Paper Plane xUI (PPx) でサーバによって背景色を変える

2016年2月1日月曜日

サブフォルダをメニュー表示してファイル移動

カレントフォルダのサブフォルダをメニュー表示して、そこにカーソル下のファイル(あるいはマークファイル)を移動する。


文書や画像の管理の時、こういう操作をすることが結構多いよな、と思って作った。利用機会はあまり無い気もするが、一応コピーもできるようにする。

準備


以下をScriptフォルダに保存。

subdirmenu.js
//!*script
// カレントフォルダのサブフォルダをメニュー表示し、そこに移動/コピーするスクリプト
// 第一引数がmなら移動
// 第一引数がcならコピー

// 引数がなければ終了
if (PPx.Arguments.Length < 1){
  PPx.SetPopLineMessage("引数が正しくありません。");
  PPx.Quit(-1);
}

// サブフォルダがなければ終了
if (PPx.EntryDisplayDirectories() == 0){
  PPx.SetPopLineMessage("サブフォルダがありません。");
  PPx.Quit(-1);
}

var currentDir = PPx.Extract('%1');
var fso = PPx.CreateObject("Scripting.FileSystemObject");
var i2 = 0;

// メニューの削除
PPx.Execute("*setcust -|M_hoehoe =");

// メニュー項目の登録
for (var i = 0; i < PPx.EntryAllCount; i++) {
  var f = PPx.Entry(i).Name;
  // ディレクトリかどうかを判別
  if (PPx.Entry(i).Attributes & 16 && f !=('.') && f!=('..')) {
    // 項目数が10を超えたら次の段へ。30を超えたら終了。
    if (i2 == 10 || i2 == 20) { 
      PPx.Execute('*setcust M_hoehoe:||=');
    } else if (i2 == 30) {
      break;
    }
    // 表示内容を、コメントがあるときはコメントに。ない場合はフォルダ名に。
    if (PPx.Entry(i).Comment != ""){
      var item = PPx.Entry(i).Comment;
    } else {
      var item = f;
    }
    // メニューの登録。10項目までは数字のショートカットを付加する。
    if (i2 < 10) {
      // 表示内容の後ろに全角スペースを付け足している。表示内容が1文字の場合、実行内容も表示されてしまうため。
      PPx.Execute('*setcust M_hoehoe:&'+i2+ ' '+item+' = '+fso.BuildPath(PPx.Extract("%1"), f));
    } else {
      PPx.Execute('*setcust M_hoehoe:'+item+' = '+fso.BuildPath(PPx.Extract("%1"), f));
    }
    i2 += 1;
  }
}

// メニューの実行
if (PPx.Arguments.Item(0) == "m"){
  PPx.Execute("*ppcfile !move,%M_hoehoe,0");
} else if (PPx.Arguments.Item(0) == "c"){
  PPx.Execute("*ppcfile !copy,%M_hoehoe,0");
} else {
  PPx.SetPopLineMessage("引数にはmかcを指定してください");
}

//  オブジェクトを解放
fso = null;

以下を編集して取込。
KC_main = { ; PPcメイン窓
^\C ,*script %0\Script\subdirmenu.js,c
^\M ,*script %0\Script\subdirmenu.js,m
}

やり方


  1. 移動したいファイルをマークする。移動させたいのが一つなら、そこにカーソルを置くだけでもいい。
  2. Ctrl+Shift+Mを押す(コピーの場合はCtrl+Shift+C)。すると、サブフォルダメニューが出る。
  3. 移動したいフォルダを選択すると、ファイル移動する。


追記