Arch Linuxで、Brother DCP-J952Nを動かす。
CUPSのインストール
sudo pacman -S cups
CUPSサービスの開始
sudo systemctl enable cups.service
sudo systemctl start cups.service
Brotherから、RPMパッケージのドライバを持ってきて、rpmextract.shで抽出。
PPDファイルが中にあるのでセーブ。
CUPS(http://127.0.0.1:631)を起動させて、プリンタを追加。
PPDファイルを指定する。
URLは、’ipp://192.168.003.002/ipp/' (固定IPなので、192.163.003.002を指定している)
テストプリント 出来上がり。
しかし、カラーが出ない。geditからタイトルが印刷されない。無理なのかなあ。
Qiitaの記事編集エディタが動かなくなった原因
Qiitaの記事が編集できなくなった。編集しようとしてもレスポンスがかなり遅いかフリーズする。IMかシステムかがおかしくなっているかと思って、web検索してみたら、ある特定の文字列を記事に含んでいると誤動作するとの記述があった。その問題は解決しているらしいが、新しい問題が起こったのだろう。改造したmc.ext.iniをQiitaに載せるとエディタがおかしくなる。多分、ある特定の文字列が改造したmc.ext.iniに含まれていて、その文字列をアップするとおかしくなるのだろう。Qiitaのバグだろうから、運営にメールを書いておいた。
追記:運営から返事が来て、一部のデバイスでシンタックスハイライトを使うと不具合が発生するとのことで、シンタックスハイライトを切ったら直った。すぐ修正することは難しいと言われてる。
シンタックスハイライトを切る方法
```plaintext:mc.ext.ini
---
```
Midnight Commander拡張ファイル
Midnight Commanderの拡張ファイルを載せます。
今時MidnightCommanderを使っている人はかなりの懐古趣味の人だと思いますが、webで見ても情報が少なかったし、mc.ext.iniを書いているサイトは見当たらなかったので。
エディタをneovimにし、画像ファイルをfehで見れるようにし、
音楽と動画をvlcで再生できるようにし、htmlをブラウザとエディタから開けるようにしたものです。
Midnight Commanderの「拡張ファイルを編集」が動かないので、動くようにする。mc.ext.iniを変えたら動かなくなってたところが、元に戻しても動かなくなったので。
~/.config/mc.ext.iniにロケートする。
# Midnight Commander 4.0 extension file
#
# Warning: The structure of this file has been completely changed with the version 4.0!
#
# All lines starting with # or empty lines are ignoted.
#
# IMPORTANT: mc scans this file only upon first use or after editing it using the
# mc "Edit extension file" command (F9-c-e). If you edit this file in any other way
# while mc is running, you will need to press F9-c-e and exit the editor for your
# changes to take effect, or exit mc and start it again.
#
# Section name can be anything with following exceptions:
# there are two reserved section names:
# mc.ext.ini
# Default
# special name pattern:
# Include/xxxxx
# See below for more details.
#
# Section [mc.ext.ini] is mandatory. It contains file metadata.
# "Version" parameter is mandatory. It contains the file format version.
#
# Section [Default] is optional. It is applied only if no other match was found.
#
# Sections like [Include/xxxx] can be referenced as "Include=xxxx" from other sections.
# Section [Include/xxxx] can be located as before as after sections that point to it.
#
# Sections are processed from top to bottom, thus the order is important.
# If there are more than one sections with the same name in this file, the first
# section will be used.
#
# [Default] should be a catch-all action and come last.
#
# A section describing a file can contain following keys:
#
# File descriptions:
#
# Directory
# Matches any directory matching regular expression.
# Always case sensitive.
# This key has the highest priority over other keys. If this key is in a section,
# other keys are ignored.
#
# Type
# Matches files if `file %f` matches regular expression
# (the "filename:" part is removed from `file %f` output).
# Ignored if the "file" utility isn't used (not found during the configure step
# or disabled in the ini-file).
#
# TypeIgnoreCase [true|false]
# Defines whether the Type value is case sensitive or not.
# If absent, Type is case sensitive.
#
# Regex
# An extended regular expression
# Please note that we are using the PCRE library and thus \| matches
# the literal | and | has a special meaning (or), and () have a special meaning
# and \( \) stand for literal ( ).
#
# Example:
# Regex=\.t(ar\.lzma|lz)$
# matches *.tar.lzma or *.tlz.
#
# RegexIgnoreCase [true|false]
# Defines whether the Regex value is case sensitive or not.
# If absent, Regex is case sensitive.
#
# Shell
# Describes an extension when starting with a dot (no wildcards).
#
# Example:
# Shell=.tar
# matches *.tar.
#
# If it doesn't start with a dot, it matches only a file of that name.
#
# If both keys Regex and Shell are in the same section, Regex is used
# and Shell is ignored.
#
# ShellIgnoreCase [true|false]
# Defines whether the Shell value is case sensitive or not.
# If absent, Shell is case sensitive.
#
# Include
# Reference to another section.
#
# Example:
# Include=video
# points to the [Include/video] section.
#
# Commands:
#
# Open
# Execute the command if the user presses Enter or doubleclicks it.
#
# View
# Execute the command if the user presses F3.
#
# Edit
# Execute the command if the user presses F4.
#
# All commands are ignored if the section contains the Include key.
#
# Command is any one-line shell command, with the following substitutions:
#
# %%
# The % character
#
# %p
# Name of the current file without the path.
# Also provided to the external application as MC_EXT_BASENAME environment variable.
#
# %f
# Name of the current file. Unlike %p, if the file is located on a non-local
# virtual filesystem, that is either tarfs or ftpfs, then the file will be
# temporarily copied into a local directory and %f will be the full path
# to this local temporary file.
# If you don't want to get a local copy and want to get the virtual fs path
# (like /ftp://ftp.cvut.cz/pub/hungry/xword), then use %d/%p instead of %f.
# Also provided to the external application as MC_EXT_FILENAME environment variable.
#
# %d
# Name of the current directory without the trailing slash (`pwd`).
# Also provided to the external application as MC_EXT_CURRENTDIR environment variable.
#
# %s
# "Selected files", that is space separated list of tagged files if any or the name
# of the current file.
# Also provided to the external application as MC_EXT_SELECTED environment variable.
#
# %t
# List of the tagged files.
# Also provided to the external application as MC_EXT_ONLYTAGGED environment variable.
#
# %u
# List of the tagged files (they will be untaged after the command is executed).
#
# (If the letter following the % is uppercase, then it refers to the opposite panel.
# But you shouldn't have to use it in this file.)
#
# %cd
# The rest is a path mc should change into (cd won't work, since it's a child process).
# %cd handles even vfs names.
#
# %view
# The command output will be piped into mc's internal file viewer. If you use
# only %view and no command, the viewer will load %f file instead (that is no piping,
# which is the difference to %view cat %f).
#
# %view may be directly followed by {} with one or more of the following
# separated by commas:
# ascii (ascii mode)
# hex (hex mode),
# nroff (color highlighting for text using escape sequences),
# unform (no highlighting for nroff sequences)
#
# %var{VAR:default}
# This macro will expand to the value of the VAR variable in the environment if it's
# set, otherwise the default value will be used. This is similar to the Bourne shell
# ${VAR-default} construct.
#
# Section can contain both Type and Regex or Type and Shell keys. In this case
# they are handled as an AND condition.
#
# Example:
# Shell=.3gp
# Type=^ISO Media.*3GPP
#
# matches *.3gp files for which `file` output is a line starting with "ISO Media"
# and containing "3GPP".
#
# If there are more than one keys with the same name in a section, the last key will be used.
#
#
# Any new entries you want to add are always welcome if they are useful on more than one
# system. You can post your modifications as tickets at www.midnight-commander.org.
### Changes ###
#
# Reorganization: 2012-03-07 Slava Zanko <slavazanko@gmail.com>
# 2021-03-28 Andrew Borodin <aborodin@vmail.ru>
# 2021-08-24 Tomas Szepe <szepe@pinerecords.com>
# 2022-09-11 Andrew Borodin <aborodin@vmail.ru>: port to INI format.
[mc.ext.ini]
Version=4.0
### exe file ###
[exe]
Shell=.exe
Open=wine %f &
### GIT Repo ###
[gitfs changeset]
Regex=^\[git\]
Open=%cd %p/changesetfs://
View=%cd %p/patchsetfs://
### Archives ###
# Since we use "file -z", we should use Regex and Shell first, then Type.
######### Files by name (Regex and Shell) #########
# .tgz, .tpz, .tar.gz, .tar.z, .tar.Z
[tar.gzip]
Regex=\.t([gp]?z|ar\.g?[zZ])$
Include=tar.gz
[ipk]
Shell=.ipk
Include=tar.gz
[gem]
Shell=.gem
Include=tar.gz
[tar.bzip]
Shell=.tar.bz
# Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.bzip
[tar.bzip2]
Regex=\.t(ar\.bz2|bz2?|b2)$
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.bzip2
# .tar.lzma, .tlz
[tar.lzma]
Regex=\.t(ar\.lzma|lz)$
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.lzma
[tar.lz]
Shell=.tar.lz
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.lz
# .tar.lz4, .tlz4
[tar.lz4]
Regex=\.t(ar\.lz4|lz4)$
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.lz4
# .tar.xz, .txz
[tar.xz]
Regex=\.t(ar\.xz|xz)$
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.xz
# .tar.zst, .tzst
[tar.zst]
Regex=\.t(ar\.zst|zst)$
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.zst
# .tar.F - used on QNX
[tar.F]
Shell=.tar.F
# Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.F
# .qpr/.qpk - QNX Neutrino package installer files
[tar.qpr]
Regex=\.qp[rk]$
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.qpr
[tar]
Shell=.tar
ShellIgnoreCase=true
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar
[arj]
Regex=\.a(rj|[0-9][0-9])$
RegexIgnoreCase=true
Open=%cd %p/uarj://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view arj
[cab]
Shell=.cab
ShellIgnoreCase=true
Open=%cd %p/ucab://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cab
[ha]
Shell=.ha
ShellIgnoreCase=true
Open=%cd %p/uha://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view ha
[rar]
Regex=\.r(ar|[0-9][0-9])$
RegexIgnoreCase=true
Open=%cd %p/urar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view rar
# ALZip
[alz]
Shell=.alz
ShellIgnoreCase=true
Open=%cd %p/ualz://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view alz
[cpio.Z]
Shell=.cpio.Z
Open=%cd %p/ucpio://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.z
[cpio.lz]
Shell=.cpio.lz
Open=%cd %p/ucpio://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.lz
[cpio.lz4]
Shell=.cpio.lz4
Open=%cd %p/ucpio://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.lz4
[cpio.xz]
Shell=.cpio.xz
Open=%cd %p/ucpio://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.xz
[cpio.zst]
Shell=.cpio.zst
Open=%cd %p/ucpio://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.zst
[cpio.gz]
Shell=.cpio.gz
Open=%cd %p/ucpio://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.gz
[cpio]
Shell=.cpio
ShellIgnoreCase=true
Include=cpio
[initrd]
Regex=^(initramfs.*\.img|initrd(-.+)?\.img(-.+)?)$
Include=cpio
[7zip]
Shell=.7z
ShellIgnoreCase=true
Open=%cd %p/u7z://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view 7z
[patch]
Regex=\.(diff|patch)$
Open=%cd %p/patchfs://
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view cat
[patch.gz]
Regex=\.(diff|patch)\.(gz|Z)$
Open=%cd %p/patchfs://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view gz
[patch.bz2]
Regex=\.(diff|patch)\.bz2$
Open=%cd %p/patchfs://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view bz2
[patch.xz]
Regex=\.(diff|patch)\.xz$
Open=%cd %p/patchfs://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view xz
[patch.zst]
Regex=\.(diff|patch)\.zst$
Open=%cd %p/patchfs://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zst
[ls-lR]
Regex=(^|\.)ls-?lR(\.gz|Z|bz2)$
Open=%cd %p/lslR://
[trpm]
Shell=.trpm
Open=%cd %p/trpm://
View=%view{ascii} /usr/lib/mc/ext.d/package.sh view trpm
# RPM packages (SuSE uses *.spm for source packages)
[src.rpm]
Regex=\.(src\.rpm|spm)$
Open=%cd %p/rpm://
View=%view{ascii} /usr/lib/mc/ext.d/package.sh view src.rpm
[rpm]
Shell=.rpm
Open=%cd %p/rpm://
View=%view{ascii} /usr/lib/mc/ext.d/package.sh view rpm
[deb]
Regex=\.u?deb$
Open=%cd %p/deb://
View=%view{ascii} /usr/lib/mc/ext.d/package.sh view deb
[dpkg]
Shell=.debd
Open=%cd %p/debd://
View=%view{ascii} /usr/lib/mc/ext.d/package.sh view debd
[apt]
Shell=.deba
Open=%cd %p/deba://
Ciew=%view{ascii} /usr/lib/mc/ext.d/package.sh view deba
[ISO9660]
Shell=.iso
ShellIgnoreCase=true
Open=%cd %p/iso9660://
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view iso9660
[ar]
Regex=\.s?a$
Open=%cd %p/uar://
#Open=%view{ascii} ar tv %f
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view ar
[gplib]
Shell=.lib
ShellIgnoreCase=true
Open=%cd %p/ulib://
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view lib
### Sources ###
[C/C++]
Regex=\.(c|cc|cpp|cxx|c\+\+)$
RegexIgnoreCase=true
Include=editor
[C/C++ header]
Regex=\.(h|hh|hpp|hxx|h\+\+)$
RegexIgnoreCase=true
Include=editor
[Fortran]
Shell=.f
ShellIgnoreCase=true
Include=editor
[Assembler]
Regex=\.(s|asm)$
RegexIgnoreCase=true
Include=editor
[Typescript]
Shell=.ts
ShellIgnoreCase=true
Type=^Java source
Include=editor
# .so libraries
[so]
Regex=\.(so|so\.[0-9\.]*)$
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view so
### Documentation ###
#[Texinfo]
#Regex=\.(te?xi|texinfo)$
[info-by-shell]
Shell=.info
Open=/usr/lib/mc/ext.d/text.sh open info
# Exception: .3gp are video files, not manual pages
[3gp]
Shell=.3gp
ShellIgnoreCase=true
Type=^ISO Media.*3GPP
Include=video
# Troff with me macros.
# Exception - "read.me" is not a nroff file.
[read.me]
Shell=read.me
Open=
View=
[troff]
Shell=.me
Open=/usr/lib/mc/ext.d/text.sh open nroff.me %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view nroff.me %var{PAGER:more}
[roff with ms macros]
Shell=.ms
Open=/usr/lib/mc/ext.d/text.sh open nroff.ms %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view nroff.ms %var{PAGER:more}
# Manual page
[man.lz]
Regex=([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.lz$
Open=/usr/lib/mc/ext.d/text.sh open man.lz %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.lz %var{PAGER:more}
[man.lz4]
Regex=([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.lz4$
Open=/usr/lib/mc/ext.d/text.sh open man.lz4 %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.lz4 %var{PAGER:more}
[man.lzma]
Regex=([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.lzma$
Open=/usr/lib/mc/ext.d/text.sh open man.lzma %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.lzma %var{PAGER:more}
[man.xz]
Regex=([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.xz$
Open=/usr/lib/mc/ext.d/text.sh open man.xz %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.xz %var{PAGER:more}
[man.zst]
Regex=([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.zst$
Open=/usr/lib/mc/ext.d/text.sh open man.zst %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.zst %var{PAGER:more}
# Perl pod page
[pod]
Shell=.pod
Open=/usr/lib/mc/ext.d/text.sh open pod %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view pod %var{PAGER:more}
[chm]
Shell=.chm
ShellIgnoreCase=true
Open=/usr/lib/mc/ext.d/text.sh open chm
### Images ###
[xcf]
Shell=.xcf
Open=/usr/lib/mc/ext.d/image.sh open xcf &
[xbm]
Shell=.xbm
Open=/usr/lib/mc/ext.d/image.sh open xbm &
[xpm]
Shell=.xpm
Include=image
[svg]
Shell=.svg
ShellIgnoreCase=true
View=%view{ascii} /usr/lib/mc/ext.d/image.sh view svg
Open=/usr/lib/mc/ext.d/image.sh open svg &
### Sound files ###
[sound]
Regex=\.(wav|snd|voc|au|smp|aiff|snd|m4a|ape|aac|wv|spx|flac)$
RegexIgnoreCase=true
Open=/usr/lib/mc/ext.d/sound.sh open common &
View=%view{ascii} /usr/lib/mc/ext.d/sound.sh view common
[mod]
Regex=\.(mod|s3m|xm|it|mtm|669|stm|ult|far)$
RegexIgnoreCase=true
Open=/usr/lib/mc/ext.d/sound.sh open mod &
[wav22]
Shell=.waw22
ShellIgnoreCase=true
Open=/usr/lib/mc/ext.d/sound.sh open wav22 &
[mp3]
Shell=.mp3
ShellIgnoreCase=true
Open=/usr/lib/mc/ext.d/sound.sh open mp3 &
View=%view{ascii} /usr/lib/mc/ext.d/sound.sh view mp3
[ogg]
Regex=\.og[gax]$
RegexIgnoreCase=true
Open=/usr/lib/mc/ext.d/sound.sh open ogg &
View=%view{ascii} /usr/lib/mc/ext.d/sound.sh view ogg
[opus]
Shell=.opus
ShellIgnoreCase=true
Open=/usr/lib/mc/ext.d/sound.sh open opus &
View=%view{ascii} /usr/lib/mc/ext.d/sound.sh view opus
[midi]
Regex=\.(midi?|rmid?)$
RegexIgnoreCase=true
Open=/usr/lib/mc/ext.d/sound.sh open midi
[wma]
Shell=.wma
ShellIgnoreCase=true
Open=/usr/lib/mc/ext.d/sound.sh open wma &
View=%view{ascii} /usr/lib/mc/ext.d/sound.sh view wma
# Play list
[playlist]
Regex=\.(m3u|pls)$
RegexIgnoreCase=true
Open=/usr/lib/mc/ext.d/sound.sh open playlist &
### Video ###
[avi]
Shell=.avi
ShellIgnoreCase=true
Include=video
[asf]
Regex=\.as[fx]$
RegexIgnoreCase=true
Include=video
[divx]
Shell=.divx
ShellIgnoreCase=true
Include=video
[mkv]
Shell=.mkv
ShellIgnoreCase=true
Include=video
[mov]
Regex=\.(mov|qt)$
RegexIgnoreCase=true
Include=video
[mp4]
Regex=\.(mp4|m4v|mpe?g)$
RegexIgnoreCase=true
Include=video
# MPEG-2 TS container + H.264 codec
[mts]
Shell=.mts
ShellIgnoreCase=true
Include=video
[ts]
Shell=.ts
ShellIgnoreCase=true
Include=video
[vob]
Shell=.vob
ShellIgnoreCase=true
Include=video
[wmv]
Shell=.wmv
ShellIgnoreCase=true
Include=video
[fli]
Regex=\.fl[icv]$
RegexIgnoreCase=true
Include=video
[ogv]
Shell=.ogv
ShellIgnoreCase=true
Include=video
[realaudio]
Regex=\.ra?m$
RegexIgnoreCase=true
Open=/usr/lib/mc/ext.d/video.sh open ram
[webm-by-shell]
Shell=.webm
ShellIgnoreCase=true
Include=video
### Documents ###
[html]
Regex=\.html?$
RegexIgnoreCase=true
Open=/usr/lib/mc/ext.d/web.sh open html &
View=%view{ascii} /usr/lib/mc/ext.d/web.sh view ALL_FORMATS
Edit=nvim %f &
[StarOffice-5.2]
Shell=.sdw
ShellIgnoreCase=true
Open=/usr/lib/mc/ext.d/doc.sh open ooffice &
# StarOffice 6 and OpenOffice.org formats
[OpenOffice.org]
Regex=\.(odt|fodt|ott|sxw|stw|ods|fods|ots|sxc|stc|odp|fodp|otp|sxi|sti|odg|fodg|otg|sxd|std|odb|odf|sxm|odm|sxg)$
RegexIgnoreCase=true
Open=/usr/lib/mc/ext.d/doc.sh open ooffice &
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view odt
[AbiWord]
Shell=.abw
ShellIgnoreCase=true
Open=/usr/lib/mc/ext.d/doc.sh open abw &
[Gnumeric]
Shell=.gnumeric
ShellIgnoreCase=true
Open=/usr/lib/mc/ext.d/doc.sh open gnumeric &
[rtf]
Shell=.rtf
ShellIgnoreCase=true
Open=/usr/lib/mc/ext.d/doc.sh open msdoc &
# Microsoft Word Document
[msdoc-by-shell]
Regex=\.(do[ct]|wri|docx)$
RegexIgnoreCase=true
Open=/usr/lib/mc/ext.d/doc.sh open msdoc &
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msdoc
# Microsoft Excel Worksheet
[msxls-by-shell]
Regex=\.(xl[sw]|xlsx)$
RegexIgnoreCase=true
Open=/usr/lib/mc/ext.d/doc.sh open msxls &
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msxls
# Microsoft PowerPoint Presentation
[msppt]
Regex=\.(pp[ts]|pptx)$
RegexIgnoreCase=true
Open=/usr/lib/mc/ext.d/doc.sh open msppt &
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msppt
[dvi]
Shell=.dvi
ShellIgnoreCase=true
Open=/usr/lib/mc/ext.d/doc.sh open dvi &
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view dvi
[tex]
Shell=.tex
ShellIgnoreCase=true
Include=editor
[markdown]
Regex=\.(md|mkd)$
ShellIgnoreCase=true
Include=editor
[djvu]
Regex=\.djvu?$
RegexIgnoreCase=true
Open=/usr/lib/mc/ext.d/doc.sh open djvu &
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view djvu
# Comic Books
[cbr]
Regex=\.cb[zr]$
RegexIgnoreCase=true
Open=/usr/lib/mc/ext.d/doc.sh open comic &
# Epup, mobi, fb2
[ebook]
Regex=\.(epub|mobi|fb2)$
RegexIgnoreCase=true
Open=/usr/lib/mc/ext.d/doc.sh open ebook &
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view ebook
### Miscellaneous ###
# Compiled Java classes
[javaclass]
Shell=.class
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view javaclass
[Imakefile]
Shell=Imakefile
Open=xmkmf -a
# Makefile.PL (MakeMaker)
[Makefile.pl]
Regex=^Makefile\.(PL|pl)$
Open=%var{PERL:perl} %f &
[Makefile]
Regex=^[Mm]akefile
Open=make -f %f %{Enter parameters}
[dbf]
Shell=.dbf
ShellIgnoreCase=true
Open=/usr/lib/mc/ext.d/misc.sh open dbf &
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view dbf
# REXX script
[rexx]
Regex=\.(rexx?|cmd)$
Open=rexx %f %{Enter parameters};echo "Press ENTER";read y
# Disk images for Commodore computers (VIC20, C64, C128)
[d64]
Shell=.d64
ShellIgnoreCase=true
Open=%cd %p/uc1541://
View=%view{ascii} c1541 %f -list
# Glade, a user interface designer for GTK+ and GNOME
[glade]
Shell=.glade
ShellIgnoreCase=true
Open=/usr/lib/mc/ext.d/misc.sh open glade
# Gettext Catalogs
[mo]
Regex=.g?mo$
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view mo
[po]
Shell=.po
Open=/usr/lib/mc/ext.d/misc.sh open po
[lyx]
Shell=.lyx
ShellIgnoreCase=true
Open=/usr/lib/mc/ext.d/misc.sh open lyx
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view lyx
[torrent]
Shell=.torrent
ShellIgnoreCase=true
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view torrent
[ASCII text executable]
Type=ASCII text executable
Open=%f &
View=less %f
Edit=nvim %f
### Plain compressed files ###
[ace]
Shell=.ace
ShellIgnoreCase=true
Open=%cd %p/uace://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view ace
[arc]
Shell=.arc
ShellIgnoreCase=true
Open=%cd %p/uarc://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view arc
[zip-by-shell]
Shell=.zip
ShellIgnoreCase=true
Open=%cd %p/uzip://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zip
[zoo]
Shell=.zoo
ShellIgnoreCase=true
Open=%cd %p/uzoo://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zoo
[lz4]
Shell=.lz4
ShellIgnoreCase=true
Open=/usr/lib/mc/ext.d/archive.sh view lz4 %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view lz4
[wim]
Shell=.wim
ShellIgnoreCase=true
Open=%cd %p/uwim://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view wim
######### Files by Type #########
### Archives ###
[mailbox]
Type=^ASCII\ mail\ text
Open=%cd %p/mailfs://
### Sources ###
# Object
[elf]
Type=^ELF
#Open=%var{PAGER:more} %f
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view elf
### Documentation ###
# GNU Info page
[info-by-type]
Type=^Info\ text
Open=/usr/lib/mc/ext.d/text.sh open info
# Manual page - compressed
[troff.gz]
Type=troff.*gzip compressed
Open=/usr/lib/mc/ext.d/text.sh open man.gz %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.gz %var{PAGER:more}
[troff.bzip]
Type=troff.*bzip compressed
Open=/usr/lib/mc/ext.d/text.sh open man.bz %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.bz %var{PAGER:more}
[troff.bzip2]
Type=troff.*bzip2 compressed
Open=/usr/lib/mc/ext.d/text.sh open man.bz2 %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.bz2 %var{PAGER:more}
# Manual page
[man]
Type=troff or preprocessor input
Open=/usr/lib/mc/ext.d/text.sh open man %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man %var{PAGER:more}
### Images ###
[gif]
Type=^GIF
Include=image
[bitmap]
Type=^PC\ bitmap
Include=image
[jng]
Type=^JNG
Include=image
[mng]
Type=^MNG
Include=image
[rbm]
Type=^PBM
Include=image
[pgm]
Type=^PGM
Include=image
[netpbm]
Type=^Netpbm
Include=image
### Video ###
[webm-by-type]
Type=WebM
Include=video
### Documents ###
[postscript]
Type=^PostScript
Open=/usr/lib/mc/ext.d/doc.sh open ps
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view ps
[pdf]
Type=^PDF
Open=/usr/lib/mc/ext.d/doc.sh open pdf
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view pdf
# Microsoft Word Document
[msdoc-by-type]
Type=^Microsoft\ Word
Open=/usr/lib/mc/ext.d/doc.sh open msdoc &
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msdoc
# Microsoft Excel Worksheet
[msxls-by-type]
Type=^Microsoft\ Excel
Open=/usr/lib/mc/ext.d/doc.sh open msxls &
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msxls
# Use OpenOffice.org/LibreOffice to open any MS Office documents
[mso-doc-1]
Type=^Microsoft\ Office\ Document
Open=/usr/lib/mc/ext.d/doc.sh open ooffice &
[mso-doc-2]
Type=^Microsoft\ OOXML
Open=/usr/lib/mc/ext.d/doc.sh open ooffice &
[framemaker]
Type=^FrameMaker
Open=/usr/lib/mc/ext.d/doc.sh open framemaker
### Miscellaneous ###
[sqlite3.db]
Type=^SQLite 3.x database
Open=/usr/lib/mc/ext.d/misc.sh open sqlite
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view sqlite
### Plain compressed files ###
[gzip]
Type=\(gzip compressed
Open=/usr/lib/mc/ext.d/archive.sh view gz %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view gz
[bzip]
Type=\(bzip compressed
Open=/usr/lib/mc/ext.d/archive.sh view bzip %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view bzip
[bzip2]
Type=\(bzip2 compressed
Open=/usr/lib/mc/ext.d/archive.sh view bzip2 %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view bz2
[compress]
Type=\(compress'd
Open=/usr/lib/mc/ext.d/archive.sh view gz %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view gz
[lz]
Type=\(lzip compressed
Open=/usr/lib/mc/ext.d/archive.sh view lz %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view lz
[lzma]
Type=\(LZMA compressed
Open=/usr/lib/mc/ext.d/archive.sh view lzma %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view lzma
[xz]
Type=\(XZ compressed
Open=/usr/lib/mc/ext.d/archive.sh view xz %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view xz
[zstd]
Type=\(Zstandard compressed
Open=/usr/lib/mc/ext.d/archive.sh view zst %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zst
[zip-by-type]
Type=\(Zip archive
Open=%cd %p/uzip://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zip
[jar]
Type=\(Java\ (Jar\ file|archive)\ data\ \((zip|JAR)\)
TypeIgnoreCase=true
Open=%cd %p/uzip://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zip
[lha]
Type=^LHa\ .*archive
Open=%cd %p/ulha://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view lha
[pak]
Type=^PAK\ .*archive
Open=%cd %p/unar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view pak
# Parity Archive
[par2]
Type=^Parity\ Archive\ Volume\ Set
Open=/usr/lib/mc/ext.d/archive.sh open par2
######### Includes #########
# Includes should be at end of the bindings
[Include/tar.gz]
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.gz
[Include/cpio]
Open=%cd %p/ucpio://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio
[Include/editor]
Open=nvim %f
[Include/image]
Open=feh %f &
[Include/video]
Open=vlc %f &
######### Default #########
# Default target for anything not described above
[Default]
Open=nvim %f
View=less %f
### EOF ###
Picasa3のアルバムデータベース削除
今時Picasa3なんて使ってる人居ないだろうな。僕はwineで使っているので、wineの方法を書いておきます。
Picasa3はアルバムの一括削除機能がないので、一回散らかしたアルバムデータは手動で一々削除していくしかありませんでしたが、
/home/gar/.wine/drive_c/users/gar/Local Settings/Application Data/Google/Picasa2/のディレクトリを削除すると、データベースの一括削除ができます。
.../Google/Picasa2Albums/は監視フォルダのリスト等が入っていて、.../Google/Picasa2/にはサムネイルなどが入っています。
削除コマンドのaliasを.bashrcに登録しておくと良いでしょう。
alias picasaclear='rm -rf "/home/gar/.wine/drive_c/users/gar/Local Settings/Application Data/Google/Picasa"*'
これで、picasaclearとすると、データベースと、監視フォルダの一括削除ができます。
python3 AttributeError
AttributeError: partially initialized module 'random' has no attribute 'seed' (most likely due to a circular import) これが出る時は、実行ファイル名にインポートしたモジュールの名前と同じ名前が付いているときだ。 いちいちpythonはファイル名とインポートモジュール名を区別しなくてはいけない。 調べるのが面倒くさい。 自分自身じゃなくても、インポートモジュールと同じ名前で実行ファイルがあったらダメみたい。 実行ファイルがt.pyという名前で、他に以前うっかり作ってそのままにしておいたrandom.pyというファイルがあったら、それでこのエラーが出た。これは、import randomとぶつかったのである。random.pyを消したら上手く行った。
linux 用PC9801エミュレータ'xnp2'を動かしてみた。Ubuntu 18.04 & Arch linux
09 /232018
linux 用PC9801エミュレータ'xnp2'を動かしてみた。
★Ubuntu 18.04
① 必要なパッケージをインストールする。
sudo apt-get install libsdl-mixer1.2 libsdl-mixer1.2-dev libgtk2.0-dev libglib2.0-dev x11proto-xext-dev gcc-avr build-essential
② https://github.com/nonakap/xnp2 ( GitHub xnp2 )から、zipファイルをダウンロードする。
③ お好みのディレクトリfooで、zipファイルを展開。
④ xnp2-masterというディレクトリが出来るので、その中の、
x11 (すなわち、foo/xnp2-master/x11/)に入る。
⑤ ビルド。
(1) sh autogen.sh
(2) ./configure
(3) make
(4) sudo make install
⑥ ディレクトリfooにて、ファントファイルとFreeDOS(98)(MS-DOS同様に動く、無料で手に入るDOS) の入った、ハードディスクイメージを手に入れる。
(1)font.bmp
(2)fd98_hd_100m_20180629.zip
⑦ ハードディスクイメージを展開。
$ unzip fd98_hd_100m_20180629.zip
⑧ ハードディスクイメージを指定して、xnp2を動かす。
$ xnp2 FD98_HD.hdi
⑨ フォントファイルを指定してxnp2をリセット。
「Emulate」→「Font...」で指定。「Emulate」→「Reset」でリセット。
⑩ 終了。
「Emulate」→「Exit」
⑪ 「~/.np2/np2rc」が設定ファイルなので、お好みに設定。
⑫ Linuxファイルシステムと、ハードディスクイメージのファイルの交換をするため、Vectorから、「editdisk」をインストールする。
⑬ 自分は、昔のプログラムを動かすために、screen optionの設定を「EGC」にしてやった。
★Arch linux
Arch linuxでは、xnp2は、
yay -S xnp2
で、インストールできる。
以上。
今後の課題
yacc,lex(bison,flex)によるGAME言語のコンパイラ作成。
Prologをやる。
タートルグラフィックス。
pascalをやる。
Javaをやる。
bison,flexはインストールした。SWI-Prolog もインストールした。fpc(Free Pascal)もインストールした。
ucblogoもインストールした。今後の課題である。
eclipseをやろう。pleiadesで日本語化。GUIによるIDEは扱ったことがないので。
linuxでlanを張ってvncserverとremminaをインストールする。
ChatGPTとStable diffusionもやりたい。ChatGPTにはSMSが必要。stable diffusionにはハイスペックのパソコンが必要だ。
GAME言語の思い出
GAME言語が流行ったのは、パソコン黎明期1980年前後。GAME言語には思い入れがあります。僕がコンピュータをやり始めた中学一年の時、まだパソコンはパソコンという呼称ではなくマイコンと呼ばれ、今のように広まっていず、マニアだけがやっていました。当時、国民機と呼ばれたPC-8001、PC-8801が発売され、僕はそれらのコンピュータを買ってもらい、ゲームを作って雑誌に投稿していたマイコン少年でした。ゲームを作るときに問題になるのがコンピュータの処理速度で、Z80の8ビットマイコンにはマイクロソフトのN88-BASICは重くてリアルタイムゲームは無理と言われていました。そこで登場したのが月刊ASCIIに載っていた「GAME言語」で、MZ-80やPC-8001、APPLE][、CBM-3032などの機種で、コンパクトで軽量で高速な処理を実現していました。実行速度はアセンブラには敵わないけれど、雑誌にいろんなGAME言語のプログラムが載り、一世を風靡しました。ちょっと恥ずかしいですが、僕はGAME言語を参考に、自作の言語処理系を作り、インタプリタとコンパイラでゲームを開発していました。自作言語の第一号はMIEP(MICRO INTEGER EXPRESSION PROCESSOR)と言い、エディタとインタプリタとコンパイラで構成されていました。PC-8801用でした。これで、PC-8801向けに、PACK'N BOYとGALACKという、パックマンとギャラクシアンのクローンを作り、PSK(パソコンショップ高知)から発売していました。自作言語の第二号は、これも、GAME言語から派生したものですが、MIGといい、これは略称ではなく、「速いゲームを作りたい」という思いで、旧ソ連の超音速戦闘機から取りました。GAME言語は’General Algorithmic Micro Expression’の略だった様に記憶しています。MIGはIDEを作ろうと思ったのですが、エディタとコンパイラだけで断念。それでも、インラインアセンブラを装備していました。MIGでStarStruck とInternalTroubleというゲームを作り、PSKから発売をしました。このゲームもPC-8801用でした。<div>この間、ふとハックアタックがあり、Ubuntu20.04で、スクラッチからC言語で、GAME言語のインタプリタを二晩徹夜で作り、GithubとQiitaに上げました。いまではGAME言語は廃れており、資料を手に入れるのが困難ですが、GAME言語と聞いてノスタルジーを覚える同世代のエンジニア達のなんかのお役に立てれば、また、思い出を温めるお手伝いができれば、と思っています。
LXDE,cinnamonの日付書式のフォーマット
”%A%b%d日 %R”で、"火曜日4月04日 23:27"と出る。
command lineのdateコマンドと同じ書式。