小林 未知数の備忘録
Ubuntu

Ubuntu全般

  • sshの接続が遅いとき

    /etc/nsswitch.conf
                    #hosts:          files mdns4_minimal [NOTFOUND=return] dns nis mdns4
                    hosts:          files mdns4_minimal [NOTFOUND=return] dns nis
    /etc/ssh/ssh_config
                    #    GSSAPIAuthentication yes
                    #    GSSAPIDelegateCredentials no
  • UbuntuにNISクライアントを入れたとき、ブート時にネットワークが立ち上がる前にNISクライアントを立ち上げようとして失敗することがある。NISサーバーもUbuntuなら起こりにくいがCentOSならほぼ間違いなくNISクライアントの立ち上げに失敗する。

    • 回避策1

      /etc/init/ypbind.confで
                          pre-start script
                          …
                          sleep 10
                          end script
      のように、pre-startスクリプトの最後の行にsleep 10を入れて立ち上げを10秒遅らせればだいたい回避できる。これでもたまに失敗するので、その時は素直にCtrl+Alt+F2でコンソール画面にしてログイン後
                          sudo service ypbind restart
      としてNISクライアントを再起動してCtrl+Alt+F7とする。
    • 回避策2

      個人的な利用であれば、NISクライアントを諦めて同じユーザー名、ユーザーIDのアカウントを作れば良い。
  • pdfファイルの結合

    普通ならpdftkで結合できるが、windowsのpdfpdfpdf (pdfc.exe) ならファイル名の栞が付く。wineで動作する。
  • pdfファイルに書き込むソフト

    Linuxはpdfファイルに書き込んだりできるソフトはokularくらいしかない。もうすこし色々書き込んだりしたければwine経由でpdf xchange viewerを使うのが良さそう。ただし、wineから直接インストールすると色々と不具合が起こる模様 (僕の場合はファイル保存時に必ず落ちた) 。なのでPlayOnLinuxを用い、32bit用としてインストールする。日本語のインライン入力はできないが、別にエディタを用いてコピーペーストすれば入力自体はできる。
  • 再表示が簡単にできるpngビューワ

    OkularやqpdfviewならF5でできる。前者は高機能、後者は動作が軽い。eog (Eye of GNOME : 画像ビューア) はバグなのか動作がおかしいのでだめ。
  • vncviewerのインストール

                    sudo apt-get install vncviewer
    要はUbuntuソフトウェアセンターからインストールすると、変なものが入るということ
  • vlcメディアプレーヤーで画面が真っ黒

    ツール→設定→ビデオ→出力→X11ビデオ出力
    SMPlayerなどでも同様の方法で解決できる。
  • ブートUSBメモリを作成

    USBメモリをフォーマットするのにGpartedが便利。またisoファイルからブートUSBメモリを作成するにはUNetbootinが便利。ちなみにUbuntuのネットワークインストール用のisoファイルはここから入手できる。
  • Ubuntuで高速フーリエ変換

    ちょこっとフーリエ変換したいときに。インストールは
                    apt install libfftw3-3 libfftw3-dev libfftw3-doc
    コンパイルは
                    gcc hoge.c -lm -lfftw3
  • キャッシュのクリア

                    sudo sysctl -w vm.drop_caches=3

Lubuntu全般

  • Abiword, Gnumeric

    これら2つのソフト名が一瞬でも目に入ったら、即効で消去するべきソフト。事務等から送られてくるdocやxls等をこれらで開いて保存すると、文字化けして二度と復旧できなくなる。1バイト文字だけ扱うのならいいかと思いきや、数式で文字化けする。
  • lubuntuでWindowsネットワーク(samba)にアクセス

                    smb://ドメイン;ユーザー@サーバー名/フォルダ
  • /etc/lightdm/users.confでminimum-uid=500となっているのに、ログイン画面でUIDが1000以下のユーザーが表示されない。

    /etc/login.defsにUID_MINがあるのでこれを1000から500にする
    Linux Mintではこの方法でもダメだった。解決策が分からない。この時点でLinux Mintを使うという選択肢は個人的になくなった。
  • lubuntuでデュアルモニタ

    メニュー→設定→モニタの設定→両方のモニタをオン→ xrandrでモニタの名前をチェックし、
                    xrandr --output Monitor2 --right-of Monitor1
    とする。officeでプレゼンする場合は解像度を揃えておくのが無難
    また、目的の解像度がない場合、
                    xrandr --addmode VGA1 1280x1024
                    xrandr --output VGA1 --mode 1280x1024
    のようにする。またlibreoffice impressでプレゼンする場合、メインとサブが割と頻繁に入れ替わっているにも関わらず、libreoffice impressのスライドショー→スライドショーの設定→複数ディスプレイでプロジェクターを認識しないということがよくある。
                    xrandr --output Monitor2 --right-of Monitor1
                    xrandr --output Monitor2 --left-of Monitor1
                    xrandr --output Monitor2 --above Monitor1
                    xrandr --output Monitor2 --below Monitor1
                    xrandr --output Monitor2 --same-as Monitor1
    とかでガンバレ(前の学会では頑張れなかった(´・ω・`)) 根本的な解決策、それはubuntuとlubuntuを両方入れて、プレゼンするときだけubuntuを立ち上げること。
  • デフォルトでデュアルモニタ

    xrandrでデュアルモニタを設定してもログオフすれば元に戻るので、常にデュアルモニタになるように設定しておく。$HOME/.config/autostart/multidisplay.desktopというファイルを作り、中身を
                    [Desktop Entry]
                    Name=multidisplay
                    Exec=xrandr (設定)
                    Type=Application
    とする。
  • デュアルモニタかつタッチスクリーン

    xinputでタッチスクリーンのidを調べる。xrandrでモニタの名前を確認しておく。その後
                    xinput --map-to-output id モニタ
    とする。
  • UbuntuとLubuntuを両方入れる

    Lubuntuしか使わないのであれば、インストール時にLubuntu desktopを指定すればいいのだが、両方使う場合、インストール時にUbuntu desktopとLubuntu desktopの両方を指定すると、インストールに失敗するか、成功したとしても色々と不具合が起こって後々困ることになる。したがってUbuntu上でLubuntuを後でインストールするのが良い。
                    apt-get install lubuntu-desktop
    ログイン画面の右側にUbuntuかLubuntuのどちらを使うか訊かれるようになる。
  • lubuntuで最初に起動するプログラムを指定する

    /usr/share/applications に対応する .desktopファイルがあるならそれを$HOME/.config/autostat にコピーすれば良い。コマンドなら$HOME/.config/lxsession/Lubuntu/autostart にコマンドを書き込む。
  • デジタル時計の設定

                    %x %a %T
    表示は贅沢に

Ubuntu20.04LTS

  • lxqtでSuperキーを使ったウィンドウタイリングのショートカットがなくなった

    .config/openbox/lxqt-rc.xmlで設定しても効かない。どうやらlxqt-globalkeysというlqxtのキーボードショットカットと競合しているのが原因らしい。しかもlxqt-globalkeysでウインドウタイリングができないというダメ仕様。何考えてるんだ?
    解決策としてSuperキーを使ったウインドウタイリングショートカットを使う場合、Ctrl+SuperでSuperと認識されるみたいなのでそれで我慢する。ちなみにlxqt-rc.xmlには次のような記述を<keyboard>と</keyboard>の間に加えた。
                    <!-- Keybindings for window tiling -->
                    <keybind key="C-W-Up">
                      <action name="Maximize"/>
                    </keybind>
                    <keybind key="W-Left">        # HalfLeftScreen
                      <action name="UnmaximizeFull"/>
                      <action name="MoveResizeTo"><x>0</x><y>0</y><height>97%</height><width>50%</width></action>
                    </keybind>
                    <keybind key="W-Right">        # HalfRightScreen
                      <action name="UnmaximizeFull"/>
                      <action name="MoveResizeTo"><x>-0</x><y>0</y><height>97%</height><width>50%</width></action>
                    </keybind>
                    <keybind key="W-Up">        # HalfUpperScreen
                      <action name="UnmaximizeFull"/>
                      <action name="MoveResizeTo"><x>0</x><y>0</y><width>100%</width><height>50%</height></action>
                    </keybind>
                    <keybind key="W-Down">        # HalfLowerScreen
                      <action name="UnmaximizeFull"/>
                      <action name="MoveResizeTo"><x>0</x><y>-0</y><width>100%</width><height>50%</height></action>
                    </keybind>
                  
    この後に
                    openbox --reconfigure
    Cinnamonがこれに近いショートカットをデフォルトで入れているが、CinnamonはCinnamonで重いし、色々問題あるからなぁ…
  • 半角/全角キーで日本語入力変換

    これは今までと同じ。やっておくのが無難。
                    sudo apt install fcitx-mozc
  • Jupyter-notebookのデフォルトのブラウザをChromeにする

    UbuntuやCinnamonではChromeで立ち上がるのに、LubuntuではFirefoxになってしまう。
                    $HOME/anaconda3/bin/jupyter-notebook --generate-config
    その後、$HOME/.jupyter/jupyter_notebook_config.pyを編集
                    # c.NotebookApp.browser = ''
                    c.NotebookApp.brower = '/usr/bin/google-chrome'
    に変更
  • LXQTでCoogle chromeをデフォルトのウェブブラウザにする(上記の問題も解決)

    Chromeで設定してもFireFoxが起動してしまう。
    設定→LXQt settings→LXQt コンフィグレーションセンター→LXQtセッションの設定→規定のアプリケーション→ウェブブラウザ→/usr/bin/google-chrome
    何でchrome側から設定できないんだ?
  • zoomのインストール

    Discoverとかいう悲惨なソフトウェアマネージャからインストールすると悲惨なものが入るため、ダウンロードしてインストールすること
                    sudo apt install zoom_amd64.deb
  • 衡山フォントのインストール

    Discoverとかいう悲惨なソフトウェアマネージャでは見つけることができないため、CUIからインストールすること。Ubuntuのパッケージマネージャはバージョンが上がるごとに?になっていく気がする
                    sudo apt install fonts-aoyagi-kouzan-t
                    sudo apt install fonts-kouzan-mouhitsu
  • WPS Officeを日本語化する

    ja_JPフォルダをmuiフォルダに移動するだけではダメ。
    まずはここからja_JP.7zをダウンロードして解凍。普通に解凍すると解凍してできたja_JPフォルダの中にさらにja_JPフォルダがあるのでそれを$HOME/.local/share/Kingsoft/office6/mui/に移動。muiフォルダはなければ作成する。その後、$HOME/.config/Kingsoft/Office.confを編集
                    [General]
                    PersistentStatus=0
                    languages=ja_JP
    赤字部分を追加し、WPS Officeを再起動。
  • SpaceFMのアイコンがしょぼい (小さい)

    設定→LXQt settings→外観→アイコンテーマを変更
  • Alsaの音量コントロールがlxqtで見つからない。

                    alsamixer
  • OSインストール時に有線LANを認識しない

    I219-VコントローラーはUbuntu20.04.2までは認識しない。したがってUbuntu20.04.3 (以降) を入れる必要がある。つまり日本語化Remix (20.04.1) は駄目ということ。
  • アプリケーションインジケーターアイコンの表示がおかしい

    確認できたのはfcitx-mozc, Skype, Slack, discord。若干だがsylpheedもおかしい。色々調べたがうまく行かず、これが原因でlxqtをやめた人もいるみたい。ということで僕もここでlxqtおよびlubuntuの使用をやめたいと思います。今までありがとうございました。→lxdeにします。以降lxde関連。
  • lxdeでslackの挙動がおかしい

    具体的にchromeからxdgを開こうとしてもslackアプリに戻らずに、結局新しいchromeが開いて終わる。snapで入れたslackがアプリケーションメニューに入っていないことが原因っぽい。なので登録する。
                    echo "x-scheme-handler/slack=slack.desktop;" >> ~/.local/share/applications/mimeinfo.cache
                    cp $HOME/.config/autostart/slack.desktop $HOME/.local/share/applications/
  • 細かい電源管理をしたい

    lxdeには電源管理をするアプリがないのでxfce4の電源管理を借りることにする
                    sudo apt install xfce4-power-manager
    その後、/etc/xdg/lxsession/LXDE/autostartに
                    @xfce4-power-manager
    を追加。lxqt-powermanagementでもいいのかもしれないが、もうlxqtはしばらく触れないでおこう。
  • Ctl + Alt + T でターミナルが出ない

    $HOME/.config/openbox/lxde-rc.xmlの<keyboard>と</keyboard>の間に
                    <!-- Keybindings for window tiling -->
                    <keybind key="C-W-Up">
                      <action name="Maximize"/>
                    </keybind>
                    <keybind key="W-Left">        # HalfLeftScreen
                      <action name="UnmaximizeFull"/>
                      <action name="MoveResizeTo"><x>0</x><y>0</y><height>100%</height><width>50%</width></action>
                    </keybind>
                    <keybind key="W-Right">        # HalfRightScreen
                      <action name="UnmaximizeFull"/>
                      <action name="MoveResizeTo"><x>-0</x><y>0</y><height>100%</height><width>50%</width></action>
                    </keybind>
                    <keybind key="W-Up">        # HalfUpperScreen
                      <action name="UnmaximizeFull"/>
                      <action name="MoveResizeTo"><x>0</x><y>0</y><width>100%</width><height>50%</height></action>
                    </keybind>
                    <keybind key="W-Down">        # HalfLowerScreen
                      <action name="UnmaximizeFull"/>
                      <action name="MoveResizeTo"><x>0</x><y>-0</y><width>100%</width><height>50%</height></action>
                    </keybind>
                  
                    <!-- Launch a terminal on Ctrl + Alt + T-->
                    <keybind key="C-A-T">
                      <action name="Execute">
                        <command>qterminal</command>
                      </action>
                    </keybind>
    ついでに上記のキーボードタイリングも入れておいた。この後に
                    openbox --reconfigure
    今回はqterminalにしてみたが何でもいいと思う。
  • obs-studioとプラグインのbackgroundremovalを入れる。

    backgroundremovalはgitで配布されているが、そこに載っているインストールの手順ではインストール不可(obs-frontend-apiConfig.cmakeとかいう世の中に存在しないであろうファイルを求められる)。 代わりにpacstallを用いてインストールする。
    まずは準備から。pacstallをインストール。
                    git clone https://github.com/pacstall/pacstall.git
                    cd pacstall
                    sudo ./install.sh
    obs-studioを一度アンインストールし、再び最新版をインストール(場合によってはさらに入れ直す必要あり)。
                    sudo apt remove obs-studio --auto-remove
                    sudo add-apt-repository ppa:obsproject/obs-studio -r
                    sudo apt update
                    sudo apt install obs-studio
    必要なものをインストール
                    sudo apt install -y libobs-dev libopencv-dev language-pack-en build-essential cmake
    backgroundremovalをインストール
                    pacstall -I obs-backgroundremoval-git
    onnxruntimeのインストールに失敗した、という理由でインストールできないことがある。恐らくの原因はbackgroundremovalのインストール手順に載っている。
                    wget https://github.com/microsoft/onnxruntime/releases/download/v1.7.0/onnxruntime-linux-x64-1.7.0.tgz
                    sudo tar xzvf onnxruntime-linux-x64-1.7.0.tgz --strip-components=1 -C /usr/local/ --wildcards "*/include/*" "*/lib*/"
    を実行したせいだと思われる。この場合、これを実行した結果できたファイル群
                    /usr/local/include/cpu_provider_factory.h
                    /usr/local/include/cuda_provider_factory.h
                    /usr/local/include/onnxruntime_c_api.h
                    /usr/local/include/onnxruntime_cxx_api.h
                    /usr/local/include/onnxruntime_cxx_inline.h
                    /usr/local/include/onnxruntime_session_options_config_keys.h
                    /usr/local/lib/libonnxruntime.so.1.7.0
                    /usr/local/lib/libonnxruntime.so
    を消去。それでもうまく行かない場合はダウンロードフォルダ直下にonnxruntimeを展開する(要検証だが場所は関係ないと思われる)。
                    wget https://github.com/microsoft/onnxruntime/releases/download/v1.7.0/onnxruntime-linux-x64-1.7.0.tgz
                    tar zxvf onnxruntime-linux-x64-1.7.0.tgz
    obs-backgroundremovel-gitの作者によるとこれでインストール完了みたい。obs-studioを立ち上げて、動画のフィルターにbackgroundremovalが追加されるはず。 うまく行かない場合はobs-studioを終了し、先に下記のv4l2loopback等のインストールをやってしまってから改めてobs-studioを起動。これでもうまく行かない場合はobs-studioを入れ直す。
                    sudo apt remove obs-studio --auto-remove
                    sudo apt install obs-studio
  • obs-studioで仮想カメラの構築

    ここが参考になった。ぶっちゃけここを見たほうが良い。
    v4l2loopbackのインストール
                    sudo apt install v4l2loopback-dkms v4l2loopback-utils
    obs-v4l2sinkのインストール
    ここからインストーラーをダウンロード。その後
                    sudo apt install ./obs-v4l2sink.deb
                    cd /usr/lib/x86_64-linux-gnu/obs-plugins
                    sudo ln -s /usr/lib/obs-plugins/v4l2sink.so
    V4l2loopbackのロード(この作業は再起動毎に行う必要がある)
                    sudo modprobe v4l2loopback devices=1 video_nr=10 card_label="OBS Cam" exclusive_caps=1
    これでzoomやskypeのカメラの選択肢としてOBS Camというのが出現する。obs-studioを起動し、「ツール」→v4l2sink→Device Pathを/dev/video10→Startをクリックで仮想カメラが有効化され、その間はobs-studioで作成した画面をzoomやskypeに映すことができる。 zoomやdiscordではこれで問題ないが、skypeは基本解像度とカメラ解像度を合わせないとうまく映せないみたい。「設定」から解像度を指定し、obs-studioを再起動する。