小技チョコレート

ちょっとした小技を紹介するだけのブログです。

Manjaro LinuxとLogicool K380の相性を調べる

LogicoolBluetoothキーボードK380とManjaro Linuxとの相性を調べた結果です。


〈目次〉


環境

Manjaro Linuxにあらかじめ適用した設定

こちらのリンク先に挙げられている設定を適用しました。

接続の作業が必要なタイミングとその手順

上述の設定を適用し、かつManjaro LinuxとK380とのペアリングを済ませたうえで、Manjaro LinuxとK380とを接続します。
接続の作業が必要になるタイミングは、次の3つです。

  • Manjaro Linuxの起動後、最初にキーボードを使おうとする時
  • Manjaro Linuxサスペンドから復帰させた後で、最初にキーボードを使おうとする時
  • K380の接続先を、他の機器からManjaro Linuxへ切り替える時

接続する手順は次のとおりです。

F1〜F3のいずれかのキー(Manjaro Linuxと対応しているキー)を押して、そのキーの上にあるランプが点滅し終わって点灯すると、接続ができて使えるようになります。
そのようにして使える状態になるまでに、〈F1/F2/F3のいずれかを押す→点滅する〉というサイクルを1〜5回程度行う必要があります(1回押すだけでは必ずしも接続できません)。ですので、最初のキーを押してから、使えるようになるまでの所要時間は、短ければ数秒、長ければ20秒余りかかります。使えるようになってから数秒経つと、K380の左上のランプは消えます。*1

タイミングごとの使用の可否

上述の設定を適用し、かつManjaro LinuxとK380とのペアリングを済ませたうえで、各タイミングごとにManjaro LinuxとK380とを接続できるかどうか(キーボードとして使えるかどうか)を調べた結果が下記の通りです。*2

  • 使えるとき

    • 起動時の最初のログイン画面
    • ログイン後
    • ログオフして電源を切らずに再ログインするときのログイン画面
    • 画面ロックから復帰するときのパスワード入力画面
    • サスペンドから復帰するときのパスワード入力画面
    • サスペンドから復帰してログインした後
  • 使えないとき*3

    • 起動後の最初のログイン画面と、サスペンドから復帰した時のログイン画面において、上述の〈キー押下げ→ランプ点滅〉を数度繰り返しても接続ができない場合があります。
      • その場合は、キーボード経由でログインパスワードを入力することができないので、予めキーボードの代替手段としてスクリーンキーボードをログイン画面で使えるようにしておくことをお奨めします。
      • ログイン後に〈キー押下げ→ランプ点滅〉を何度か行えば接続されます。

Xmodmapの設定がクリアされるタイミング

Xmodmopを使用している場合は、~/.Xmodmapに書いてある設定がManjaro Linuxに適用された後でBluetoothバイス(K380以外も含む)がManjaro Linuxに接続されると、それ以前に~/.Xmodmapから読み込まれていた設定はクリアされます(.Xmodmapというファイルが壊れるのではなく、設定内容が適用されていない状態になるだけです)。Manjaro Linuxサスペンドから復帰してK380と接続されたタイミングもそれに当てはまります。

~/.Xmodmapに書いてある設定を再適用するには、端末でxmodmap ~/.Xmodmapと実行します。

ペアリング済みなのに接続できなくなったときの対処法

ペアリング済みなのに、Manjaro LinuxとK380との接続が全くできなくなったときは、Manjaro LinuxとK380とのペアリングを一旦削除してから再びペアリングすれば、再び接続できるようになると思います。

f:id:ichbin:20200110202428p:plain
(Manjaro Linux Cinnamon Editionの場合はBluetoothの設定画面で「デバイスの削除」をクリックするとペアリングが削除される)

関連記事

fnキーを押さずにファンクションキーを使う方法

ログイン画面にスクリーンキーボードを表示する方法

Linuxにログインするためのパスワードを入力するタイミングでK380が使えないときのために、スクリーンキーボードをログイン画面に表示するには、下記の方法があります。


*1:K380のペアリング先が1個だけしかない場合は、F1〜F3以外の任意のキーを押しても接続ができるようです。

*2:ハイバネーションからの復帰については調べていません。

*3:ペアリング済みなのに使えない原因は、基本的には、Manjaro LinuxとK380との接続が切れていることだと考えてよいと思います。

Bluetoothアダプタ LBT-UAN05C2/N(ELECOM) とLinuxとの相性を調べる

ELECOMのBluetoothアダプタLBT-UAN05C2/NLinuxで使えるかどうかを調べた結果です。
使用したPCは富士通FMV D5260(FMVDA2A0C1)です。

  • Manjaro Linux Cinnamon Edition(64bit)の、2019年12月下旬での最新版(18.1.3?)
    • 挿すだけで使える。
    • 音声をBluetoothスピーカー(Google Nest Mini)に出力すると、頻繁に音が途切れます。
      • ただしこのアダプタが原因かどうかは不明です。

参考資料

Dynalistに書き込む方法のまとめ

アウトライナーDynalistに書き込む方法は、大別して5つあります。

  1. 直接書き込む
  2. ブラウザの拡張機能から書き込む
  3. iOS / Androidの共有メニューから書き込む
  4. APIを利用して書き込む*2
  5. メールで書き込む(有料版のみ)

*1:Arch系のLinuxならAURからもインストールできる。

*2:DynalistのAPIに関する公式ドキュメントはこちら

Scrapbox用UserScriptの作成例

ScrapboxにUserScriptを導入する手順については、こちらのリンク先をご覧ください。


〈目次〉


Scrapboxのページ右上にある「PageMenu」に、前のページへ戻るボタンを設置する

用途

Scrapbox用のiOSアプリであるPorter for Scrpboxにおいて、画面の左端からスワイプして「前のページ」へ戻ろうとすると「Pinboard」が開いてしまって戻れない、という問題に対処する用途で作ったものです。
Porter for Scrpbox以外の環境でも勿論使えます。

使い方

Porter for Scrpboxやモバイル版ウェブブラウザでScrapboxのページを開いた際には、画面の右上に<の形のアイコンが表示されますが、それをタップすると、「前のページ」へ戻るボタンが現れます。それをタップすることで前のページへ戻れます。*1

注意点

  • ボタンのアイコンとして使用するための画像ファイルが必要です(例えばこちらのようなもの)。
  • Porter for Scrpbox(やブラウザなど)を起動した時点で最初に表示されたページにおいては動作せず、そこから1回以上ページ遷移をした後で動作します。
  • このUserScriptを設置して"Load new UserScript"をクリックした直後の状態においても、やはり動作せず、そこから1回以上ページ遷移をした後で初めて動作します。

コード

選択範囲の改行を消す

code:script.js
 scrapbox.PopupMenu.addButton({
    title: '改行消',  //"改行消"はポップアップするボタンの名前。変更可能です。
    onClick: text =>{
    text=text.split(/\n/).map(line => line.replace('/\\n/g','')).join('')
   return text;
    }
 })

選択範囲の先頭に#を付ける

code:script.js
    scrapbox.PopupMenu.addButton({
        title: '#追加',  //"#追加"はポップアップするボタンの名前。変更可能です。
        onClick: text =>{
        text=text.split(/\n/).map(line => line.replace(/^/g,'#')).join('\n')
        return text;
        }
    })

選択範囲内のハッシュタグの直前にスペースがないとき、半角スペースを1個入れる

マウスで選択した範囲内で、次のような置換をします。

  • hoge#fugahoge #fuga
  • hoge#fugahoge #fuga(全角シャープは半角シャープにする)

コード

code:script.js
 scrapbox.PopupMenu.addButton({
    title: '#',  //「#」はポッアップするボタンの名前。変更可能です。
    onClick: text =>{
    //# or #の直前にスペースがないとき、半角スペースを入れ、かつ全角#は半角#に置換する
    text=text.split(/\n/).map(line => line.replace(/([^\s])[##]/g,'$1 #')).join('\n')
    return text;
    }
 })

範囲選択したところをコード記法にする

code:script.js
 scrapbox.PopupMenu.addButton({
    title: 'code',
    onClick: text =>{
    text=text.split(/\n/).map(line => line.replace(/(.+)/g,'`$1`')).join('\n')
   return text;
    }
 })

範囲選択したところを数式にする

code:script.js
 scrapbox.PopupMenu.addButton({
    title: '数式',
    onClick: text =>{
    text=text.split(/\n/).map(line => line.replace(/(.+)/g,'\[\$ $1\]')).join('\n')
   return text;
    }
 })

Dynalistからプレーンテキスト形式でエクスポートした内容をScrapbox記法に置換する

別の記事で紹介しています。

GoogleフォトからScrapboxに貼り付けた画像のURLを整形し、画像が見えるようにする

別の記事で紹介しています。


*1:Scrapboxのプロジェクトのトップページを開いているときは、アイコンは表示されません(Scrapboxの仕様です)。