From cf2ffce59565555c168b407a100594ae5a3aa292 Mon Sep 17 00:00:00 2001 From: Taiju HIGASHI Date: Sat, 6 Jan 2024 15:30:22 +0900 Subject: [PATCH] nyxt: update config --- README.md | 566 +++++++++++-------------- dotfiles/nyxt/.config/nyxt/config.lisp | 29 ++ dotfiles/nyxt/.config/nyxt/init.lisp | 42 -- taix.org | 110 ++--- 4 files changed, 305 insertions(+), 442 deletions(-) create mode 100644 dotfiles/nyxt/.config/nyxt/config.lisp delete mode 100644 dotfiles/nyxt/.config/nyxt/init.lisp diff --git a/README.md b/README.md index 55f9bec..7f0cf4f 100644 --- a/README.md +++ b/README.md @@ -4,134 +4,128 @@ OS は [GNU Guix](https://guix.gnu.org/) を使用し, 可能な限り宣言的に構成を記述している. -1. [Guix の設定](#orgc98fee7) - 1. [Guix の設定ファイルの適用](#org09a94af) - 1. [前処理](#org23d98e2) - 2. [システムのセットアップ](#orgb1e9780) - 3. [ホームのセットアップ](#orge3c3288) - 4. [パッケージのセットアップ](#orgc9cbff6) - 5. [各設定ファイルのリンク](#org9b956dc) - 2. [チャンネルの設定ファイル](#org103d11f) - 1. [NonGuix チャンネルの定義](#org2e9d41e) - 2. [Taix チャンネルの定義](#org5138bb2) - 3. [システムの設定ファイル](#orgce3abfe) - 1. [libinput の設定](#org1da78b9) - 4. [ホームの設定](#org0f06782) - 5. [パッケージの設定](#org45389ec) - 1. [デスクトップ](#org80bc7a2) - 2. [パッケージマネージャ](#org0e3cd16) - 3. [Emacs](#org46567a8) - 4. [シェル](#orge6180fd) - 5. [アプリケーション](#org74c879d) - 6. [フォント](#org2912d7f) - 7. [開発](#org3436926) - 8. [GNU Build System](#org20cc354) - 9. [ユーティリティ](#org5830d5b) - 10. [関数定義](#org3a76c85) - 1. [with-poppler-data](#orgf18e9da) -2. [Taix チャンネル](#org1010fc8) - 1. [emacs-xyz.scm](#org082eb4a) - 2. [pdf.scm](#orgf17bc96) -3. [Emacs の設定](#org76c6bc4) - 1. [Emacs の設定ファイル](#org3f53469) - 2. [プリミティブ実装部分のカスタマイズ](#org3145a3c) - 1. [dispnew.c](#orga4b3d61) - 2. [fontset.c](#org0e236b6) - 3. [frame.c](#org3260dbb) - 4. [xdisp.c](#org597f90f) - 5. [editfns.c](#orgdd315fc) - 3. [パッケージのカスタマイズ](#orgd47b2b5) - 1. [ace-window.el](#orgeaa83b1) - 2. [files.el](#org8c959b1) - 3. [browse-url.el](#org4b5b94c) - 4. [company.el](#org9c1d4c8) - 5. [minibuffer.el](#org6bb951a) - 1. [参考](#orge2a9b5d) - 6. [custom.el](#orga5217f5) - 7. [battery.el](#orgc374d9d) - 8. [time.el](#org5fb0471) - 9. [electric-pair.el](#orge9b1e1e) - 10. [eldoc.el](#orga1550eb) - 11. [paredit.el](#orga43ca6c) - 12. [rcirc.el](#org51623ea) - 13. [em-cmpl.el](#org25fdb08) - 14. [icomplete.el](#org42f5325) - 15. [startup.el](#orga833b4e) - 16. [org\*.el](#org853b52a) - 1. [org.el](#orga1d13dc) - 2. [org-agenda.el](#orgb1dfb09) - 3. [org-capture.el](#org0b5e7fa) - 17. [org-present](#org91bdea6) - 18. [ob-async.el](#org16940bf) - 19. [ox-gfm.el](#orgf05bd04) - 20. [scroll-bar.el](#org84d44fe) - 21. [sendmail.el](#orgee982c0) - 22. [skk\*.el](#org490bb86) - 1. [skk-kanagaki.el](#org353120b) - 2. [skk-tut.el](#org5517919) - 3. [skk-vars.el](#org2a35354) - 23. [smtpmail.el](#orgcac4fb8) - 24. [which-key.el](#orgd86c386) - 25. [faces.el](#org3971c99) - 26. [ibuffer.el](#org8a318c4) - 27. [bash-completion.el](#org8b1160f) - 28. [server.el](#orgd1e2f49) - 29. [cus-edit.el](#org5432b61) - 30. [editorconfig.el](#org10ff407) - 31. [inf-lisp.el](#org515aac0) - 32. [slime.el](#orgee66f3e) - 33. [yasnippet.el](#org1bf2a75) - 34. [copyright.el](#org51200a2) - 35. [geiser-guile.el](#org067ba07) - 36. [geiser-repl.el](#org07505ca) - 37. [simple.el](#orgc4a1e29) - 38. [mastodon.el](#org9cadf49) - 39. [elfeed.el](#org06d989c) - 40. [inf-ruby.el](#orgfb3a4ad) - 41. [robe.el](#orgb24eb75) - 42. [flycheck.el](#org998f3aa) - 43. [env.el](#org5487b6b) - 44. [kintai.el](#orge2e21d0) - 45. [js.el](#org9b63dea) - 4. [変数定義](#org3aabc89) - 1. [**my-sans-serif-font**](#org11474db) - 2. [**my-serif-font**](#orgdc6af8c) - 3. [**guix-source-path**](#org88f4db5) - 5. [関数定義](#orgdae8fbc) - 1. [my-add-hooks](#orgcb1b3c0) - 2. [my-toggle-delete-trailing-whitespace-on-save](#orgc2d7988) -4. [Ruby の設定](#org3de772b) - 1. [irb の設定ファイル](#org7428519) -5. [Nyxt の設定](#org83dd096) - 1. [Nyxt の設定ファイル](#orgc9417bd) - 2. [Nyxt のバッファ設定](#orga013396) - 3. [Nyxt のコマンド定義](#org3c50cfc) - 1. [copy-tver-streaming-url](#org9fa9f99) - 2. [play-tver-movie-on-mpv](#org5fc8e22) - 3. [play-tver-movie-on-mpv-x2](#orgbac6202) - 4. [関数定義](#orgbd20784) - 1. [make-streaming-url](#orge3e7eb4) - 2. [make-mpv-command](#org4317323) -6. [SBCL の設定](#org2cd45c8) - 1. [ASDF の設定](#org1262989) - 2. [QuickLisp の設定](#org519410c) - 3. [CFFI の設定](#org1b3a1a3) -7. [フォントの設定](#org31a0150) - - - +1. [Guix の設定](#org85d07af) + 1. [Guix の設定ファイルの適用](#org750a84b) + 1. [前処理](#org954f0f5) + 2. [システムのセットアップ](#org5329d2c) + 3. [ホームのセットアップ](#org139fff1) + 4. [パッケージのセットアップ](#org2611f51) + 5. [各設定ファイルのリンク](#org938cb47) + 2. [チャンネルの設定ファイル](#org9938386) + 1. [NonGuix チャンネルの定義](#orgbf4141f) + 2. [Taix チャンネルの定義](#org45ad672) + 3. [システムの設定ファイル](#org5db4825) + 1. [libinput の設定](#orgb969842) + 4. [ホームの設定](#org2850aff) + 5. [パッケージの設定](#orge855750) + 1. [デスクトップ](#org2268075) + 2. [パッケージマネージャ](#org728c720) + 3. [Emacs](#org10a415e) + 4. [シェル](#orgc75f577) + 5. [アプリケーション](#org0a5fe98) + 6. [フォント](#orgd3f0640) + 7. [開発](#orgd7f7034) + 8. [GNU Build System](#org692da05) + 9. [ユーティリティ](#orge95373c) + 10. [関数定義](#orga84948f) + 1. [with-poppler-data](#org0fe8ac7) +2. [Taix チャンネル](#org13cdcfd) + 1. [emacs-xyz.scm](#org954a311) + 2. [pdf.scm](#orgb00603c) +3. [Emacs の設定](#org67b692d) + 1. [Emacs の設定ファイル](#org67b9fc8) + 2. [プリミティブ実装部分のカスタマイズ](#orgf89e409) + 1. [dispnew.c](#orgeb9e269) + 2. [fontset.c](#orgf7a85fe) + 3. [frame.c](#orgbd9cdb6) + 4. [xdisp.c](#orge866e74) + 5. [editfns.c](#org7b31bb2) + 3. [パッケージのカスタマイズ](#org1f2dd06) + 1. [ace-window.el](#org1dc44da) + 2. [files.el](#org7693b27) + 3. [browse-url.el](#org71d3fa1) + 4. [company.el](#org727e701) + 5. [minibuffer.el](#orgb4f64de) + 1. [参考](#org82c5ab9) + 6. [custom.el](#orgc459d8b) + 7. [battery.el](#orgacab7ab) + 8. [time.el](#orge65fbd6) + 9. [electric-pair.el](#orgb6c0476) + 10. [eldoc.el](#orgcf125d1) + 11. [paredit.el](#org54fb719) + 12. [rcirc.el](#org1243b06) + 13. [em-cmpl.el](#org374ca59) + 14. [icomplete.el](#org57f9ef6) + 15. [startup.el](#orgd47ae23) + 16. [org\*.el](#org186b3a9) + 1. [org.el](#orga439a4c) + 2. [org-agenda.el](#org813a910) + 3. [org-capture.el](#org25415e3) + 17. [org-present](#orgb7f5b6d) + 18. [ob-async.el](#org49fd0a0) + 19. [ox-gfm.el](#orgc954a67) + 20. [scroll-bar.el](#orgc21b7f8) + 21. [sendmail.el](#orgdd86554) + 22. [skk\*.el](#org463197b) + 1. [skk-kanagaki.el](#org4a21f0c) + 2. [skk-tut.el](#orgbb654c2) + 3. [skk-vars.el](#org992f59b) + 23. [smtpmail.el](#org5c8f299) + 24. [which-key.el](#orgc1904fd) + 25. [faces.el](#org22d8d46) + 26. [ibuffer.el](#org3e83510) + 27. [bash-completion.el](#orga2959ff) + 28. [server.el](#org47e3945) + 29. [cus-edit.el](#org51e89c1) + 30. [editorconfig.el](#org2a726de) + 31. [inf-lisp.el](#orge9a1817) + 32. [slime.el](#org413842b) + 33. [yasnippet.el](#orgfe84776) + 34. [copyright.el](#org1e54956) + 35. [geiser-guile.el](#org32c1f00) + 36. [geiser-repl.el](#orgc6c6c47) + 37. [simple.el](#org605b660) + 38. [mastodon.el](#org797137c) + 39. [elfeed.el](#orgfea1d65) + 40. [inf-ruby.el](#org4bb7bf4) + 41. [robe.el](#orge2f698b) + 42. [flycheck.el](#org543985b) + 43. [env.el](#org8d41823) + 44. [kintai.el](#org8136bd7) + 45. [js.el](#orgfbc32d3) + 4. [変数定義](#org9b3e805) + 1. [**my-sans-serif-font**](#org35c62ff) + 2. [**my-serif-font**](#orgea950ef) + 3. [**guix-source-path**](#org560b305) + 5. [関数定義](#org8227a69) + 1. [my-add-hooks](#orgf41de8f) + 2. [my-toggle-delete-trailing-whitespace-on-save](#org6aaa041) +4. [Ruby の設定](#org83d4018) + 1. [irb の設定ファイル](#orgab090fe) +5. [Nyxt の設定](#org5798f63) + 1. [Nyxt の設定ファイル](#org5c6419c) + 2. [Nyxt のバッファ設定](#org02b5729) + 3. [Search Engine 設定](#orgf0735f2) +6. [SBCL の設定](#org00dba3f) + 1. [ASDF の設定](#org3dedf36) + 2. [QuickLisp の設定](#org948896e) + 3. [CFFI の設定](#orgda963ef) +7. [フォントの設定](#org91aeb11) + + + ## Guix の設定 - + ### Guix の設定ファイルの適用 以下の手順を実行して, Guix を設定する. - + #### 前処理 @@ -148,7 +142,7 @@ guix pull ``` - + #### システムのセットアップ @@ -157,7 +151,7 @@ sudo guix system reconfigure guix-config/system-config.scm ``` - + #### ホームのセットアップ @@ -166,7 +160,7 @@ sudo guix system reconfigure guix-config/system-config.scm ``` - + #### パッケージのセットアップ @@ -175,7 +169,7 @@ guix package --manifest=guix-config/package-config.scm ``` - + #### 各設定ファイルのリンク @@ -187,7 +181,7 @@ stow -vt $HOME emacs.d guix nyxt sbcl fontconfig irb ``` - + ### チャンネルの設定ファイル @@ -204,7 +198,7 @@ stow -vt $HOME emacs.d guix nyxt sbcl fontconfig irb 出力されたファイル: [dotfiles/guix/.config/guix/channels.scm](dotfiles/guix/.config/guix/channels.scm) - + #### NonGuix チャンネルの定義 @@ -222,7 +216,7 @@ stow -vt $HOME emacs.d guix nyxt sbcl fontconfig irb ``` - + #### Taix チャンネルの定義 @@ -235,7 +229,7 @@ stow -vt $HOME emacs.d guix nyxt sbcl fontconfig irb ``` - + ### システムの設定ファイル @@ -341,7 +335,7 @@ stow -vt $HOME emacs.d guix nyxt sbcl fontconfig irb 出力されたファイル: [system-config.scm](system-config.scm) - + #### libinput の設定 @@ -357,14 +351,14 @@ EndSection" ``` - + ### ホームの設定 TBD - + ### パッケージの設定 @@ -388,7 +382,7 @@ TBD 出力されたファイル: [package-config.scm](package-config.scm) - + #### デスクトップ @@ -408,7 +402,7 @@ TBD ``` - + #### パッケージマネージャ @@ -421,7 +415,7 @@ Guix のパッケージになっていないソフトウェアのインストー ``` - + #### Emacs @@ -473,7 +467,7 @@ Emacs 関連のパッケージとして下記をインストールする. ``` - + #### シェル @@ -491,7 +485,7 @@ Emacs 関連のパッケージとして下記をインストールする. ``` - + #### アプリケーション @@ -510,7 +504,7 @@ Emacs 関連のパッケージとして下記をインストールする. ``` - + #### フォント @@ -522,7 +516,7 @@ Emacs 関連のパッケージとして下記をインストールする. ``` - + #### 開発 @@ -541,7 +535,7 @@ Emacs 関連のパッケージとして下記をインストールする. ``` - + #### GNU Build System @@ -556,7 +550,7 @@ GNU Build System のパッケージとして下記をインストールする. ``` - + #### ユーティリティ @@ -580,12 +574,12 @@ GNU Build System のパッケージとして下記をインストールする. ``` - + #### 関数定義 - + ##### with-poppler-data @@ -599,14 +593,14 @@ poppler を依存関係に持つパッケージに poppler-data を追加する このラッパ関数でパッケージを包むと, PDF ファイル中の日本語を描画したり, 日本語のテキストの抽出できるようになる. - + ## Taix チャンネル Guix の公式チャンネルなどに未登録で, 独自にパッケージ定義しているものは, 独自チャンネルを作成して管理する. - + ### emacs-xyz.scm @@ -695,7 +689,7 @@ Guix の公式チャンネルなどに未登録で, 独自にパッケージ定 ``` - + ### pdf.scm @@ -718,14 +712,14 @@ This package includes Poppler encoding files for rendering of CJK and Cyrillic t ``` - + ## Emacs の設定 Org Mode を使用して Literature Programming 方式で Emacs を設定する. - + ### Emacs の設定ファイル @@ -749,14 +743,14 @@ Emacs の設定ファイルは, 下記の構成で記述されている. 出力されたファイル: [dotfiles/emacs.d/.emacs.d/init.el](dotfiles/emacs.d/.emacs.d/init.el) - + ### プリミティブ実装部分のカスタマイズ プリミティブ実装部分のカスタマイズ内容を定義する. - + #### dispnew.c @@ -769,7 +763,7 @@ Emacs の設定ファイルは, 下記の構成で記述されている. ``` - + #### fontset.c @@ -789,7 +783,7 @@ JIS X 0208 の文字セットでデフォルトの sans-serif フォントを使 ``` - + #### frame.c @@ -808,7 +802,7 @@ JIS X 0208 の文字セットでデフォルトの sans-serif フォントを使 ``` - + #### xdisp.c @@ -821,7 +815,7 @@ JIS X 0208 の文字セットでデフォルトの sans-serif フォントを使 ``` - + #### editfns.c @@ -834,14 +828,14 @@ JIS X 0208 の文字セットでデフォルトの sans-serif フォントを使 ``` - + ### パッケージのカスタマイズ 各種パッケージのカスタマイズ内容を定義する. - + #### ace-window.el @@ -860,7 +854,7 @@ ace-window にグローバルなキーをバインドする. ``` - + #### files.el @@ -897,7 +891,7 @@ read-only でファイルを開いた場合は view-mode を有効にする. ``` - + #### browse-url.el @@ -910,7 +904,7 @@ Emacs で使用するデフォルトのブラウザを EWW に設定する. ``` - + #### company.el @@ -929,7 +923,7 @@ company による補完を 1 文字目で開始する. ``` - + #### minibuffer.el @@ -942,7 +936,7 @@ company による補完を 1 文字目で開始する. ``` - + ##### 参考 @@ -954,7 +948,7 @@ company による補完を 1 文字目で開始する. - 例: `M-x foo` -> `fbarbazoo` - + #### custom.el @@ -967,7 +961,7 @@ company による補完を 1 文字目で開始する. ``` - + #### battery.el @@ -980,7 +974,7 @@ company による補完を 1 文字目で開始する. ``` - + #### time.el @@ -999,7 +993,7 @@ company による補完を 1 文字目で開始する. ``` - + #### electric-pair.el @@ -1012,7 +1006,7 @@ company による補完を 1 文字目で開始する. ``` - + #### eldoc.el @@ -1027,7 +1021,7 @@ company による補完を 1 文字目で開始する. ``` - + #### paredit.el @@ -1047,7 +1041,7 @@ Lisp 系の各種モードで paredit-mode を有効にする. ``` - + #### rcirc.el @@ -1065,7 +1059,7 @@ Lisp 系の各種モードで paredit-mode を有効にする. ``` - + #### em-cmpl.el @@ -1078,7 +1072,7 @@ EShell のコマンド補完候補に Emacs Lisp 関数も表示するように ``` - + #### icomplete.el @@ -1097,7 +1091,7 @@ EShell のコマンド補完候補に Emacs Lisp 関数も表示するように ``` - + #### startup.el @@ -1116,12 +1110,12 @@ Emacs の初期表示画面を抑制する. ``` - + #### org\*.el - + ##### org.el @@ -1156,7 +1150,7 @@ org-babel で使用する言語を指定する. ``` - + ##### org-agenda.el @@ -1169,7 +1163,7 @@ org-babel で使用する言語を指定する. ``` - + ##### org-capture.el @@ -1192,7 +1186,7 @@ org-babel で使用する言語を指定する. ``` - + #### org-present @@ -1222,7 +1216,7 @@ org-present-mode に切り替えた際に, プレゼン用に設定を変更し, ``` - + #### ob-async.el @@ -1235,7 +1229,7 @@ Org Babel を非同期に実行できるようにする. ``` - + #### ox-gfm.el @@ -1249,7 +1243,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### scroll-bar.el @@ -1258,7 +1252,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### sendmail.el @@ -1267,12 +1261,12 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### skk\*.el - + ##### skk-kanagaki.el @@ -1281,7 +1275,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + ##### skk-tut.el @@ -1291,7 +1285,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + ##### skk-vars.el @@ -1301,7 +1295,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### smtpmail.el @@ -1311,7 +1305,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### which-key.el @@ -1320,7 +1314,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### faces.el @@ -1342,7 +1336,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### ibuffer.el @@ -1351,7 +1345,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### bash-completion.el @@ -1361,7 +1355,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### server.el @@ -1372,7 +1366,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### cus-edit.el @@ -1387,7 +1381,7 @@ Github Flavored Markdown でエクスポートできるようにデフォルト ``` - + #### editorconfig.el @@ -1400,7 +1394,7 @@ EditorConfig を有効にする. ``` - + #### inf-lisp.el @@ -1415,7 +1409,7 @@ Inferior Lisp mode で SBCL を使用する. SLIME などでこの値が参照される. - + #### slime.el @@ -1428,7 +1422,7 @@ SLIME で使用する Contrib Package をロードする. ``` - + #### yasnippet.el @@ -1450,7 +1444,7 @@ Yasnippet をグローバルに有効化する. ``` - + #### copyright.el @@ -1478,7 +1472,7 @@ Guix のコントリビュート時に著作権表示を簡単に更新できる 参考: [The Perfect Setup (GNU Guix Reference Manual)](https://guix.gnu.org/manual/en/html_node/The-Perfect-Setup.html) - + #### geiser-guile.el @@ -1494,14 +1488,14 @@ Guix のソースコードを Geiser のロードパスに追加する. 参考: [The Perfect Setup (GNU Guix Reference Manual)](https://guix.gnu.org/manual/en/html_node/The-Perfect-Setup.html) - + #### geiser-repl.el > Geiser's REPL - + #### simple.el @@ -1514,7 +1508,7 @@ Guix のソースコードを Geiser のロードパスに追加する. ``` - + #### mastodon.el @@ -1533,7 +1527,7 @@ Guix のソースコードを Geiser のロードパスに追加する. ``` - + #### elfeed.el @@ -1546,7 +1540,7 @@ Guix のソースコードを Geiser のロードパスに追加する. ``` - + #### inf-ruby.el @@ -1565,7 +1559,7 @@ ruby-mode で inf-ruby-minor-mode を使う. ``` - + #### robe.el @@ -1585,7 +1579,7 @@ company-robe を使用する. ``` - + #### flycheck.el @@ -1598,7 +1592,7 @@ ruby-mode で flycheck-mode を使用する. ``` - + #### env.el @@ -1611,7 +1605,7 @@ Emacs の中では基本的に pager を使わないため, `PAGER` 環境変数 ``` - + #### kintai.el @@ -1625,7 +1619,7 @@ Emacs の中では基本的に pager を使わないため, `PAGER` 環境変数 ``` - + #### js.el @@ -1638,14 +1632,14 @@ Emacs の中では基本的に pager を使わないため, `PAGER` 環境変数 ``` - + ### 変数定義 Emacs のコンフィグで使用する変数を定義する. - + #### **my-sans-serif-font** @@ -1658,7 +1652,7 @@ Emacs のコンフィグで使用する変数を定義する. `serif` には `Noto Sans Serif CJK JP` を使用する. - + #### **my-serif-font** @@ -1667,7 +1661,7 @@ Emacs のコンフィグで使用する変数を定義する. ``` - + #### **guix-source-path** @@ -1678,14 +1672,14 @@ Guix のソースコードのパスを定義する. ``` - + ### 関数定義 Emacs のコンフィグで使用する関数を定義する. - + #### my-add-hooks @@ -1697,7 +1691,7 @@ Emacs のコンフィグで使用する関数を定義する. ``` - + #### my-toggle-delete-trailing-whitespace-on-save @@ -1715,12 +1709,12 @@ Emacs のコンフィグで使用する関数を定義する. ``` - + ## Ruby の設定 - + ### irb の設定ファイル @@ -1732,14 +1726,14 @@ IRB.conf[:USE_READLINE] = false if ENV['INSIDE_EMACS'] ``` - + ## Nyxt の設定 メインブラウザとして使用している Nyxt を設定する. - + ### Nyxt の設定ファイル @@ -1748,17 +1742,17 @@ Nyxt の設定ファイルは, 下記の構成で記述されている. ```common-lisp <<ヘッダ行>> -<> +(in-package :nyxt) -<> +<> -<> +<> ``` -出力されたファイル: [dotfiles/nyxt/.config/nyxt/init.lisp](dotfiles/nyxt/.config/nyxt/init.lisp) +出力されたファイル: [dotfiles/nyxt/.config/nyxt/config.lisp](dotfiles/nyxt/.config/nyxt/init.lisp) - + ### Nyxt のバッファ設定 @@ -1766,109 +1760,41 @@ Nyxt は Emacs のキーバインドで操作する. ```common-lisp (define-configuration buffer - ((default-modes (append '(nyxt::emacs-mode nyxt::blocker-mode) %slot-default%)))) -``` - - - - -### Nyxt のコマンド定義 - -Nyxt で使用する独自コマンドを定義する. - - - - -#### copy-tver-streaming-url - -某動画配信サービスの動画を mpv で再生するための URL を取得するコマンド. - -```common-lisp -(define-command-global copy-tver-streaming-url () - "Copy TVer streaming URL from a buffer." - (let ((url (make-tver-streaming-url (document-model (current-buffer))))) - (if url - (progn (copy-to-clipboard url) - (echo "~a copied to clipboard." url)) - (echo "Not found streaming url.")))) + ((default-modes + (pushnew 'nyxt/mode/emacs:emacs-mode %slot-value%)))) ``` - + -#### play-tver-movie-on-mpv +### Search Engine 設定 -某動画配信サービスの動画を mpv で再生するコマンド. +Search Engine を設定する. ```common-lisp -(define-command-global play-movie-of-tver-on-mpv () - "Make TVer streaming URL from a buffer and play the movie on mpv" - (let ((url (make-tver-streaming-url (document-model (current-buffer))))) - (if url - (progn - (echo "run command: ~a" (make-mpv-command url)) - (uiop:run-program (make-mpv-command url))) - (echo "Not found streaming url.")))) -``` - - - - -#### play-tver-movie-on-mpv-x2 - -某動画配信サービスの動画を 2 倍速で mpv で再生するコマンド. - -```common-lisp -(define-command-global play-movie-of-tver-on-mpv-x2 () - "Make streaming URL from a buffer and play the movie on mpv (speed=2.0)" - (let ((url (make-tver-streaming-url (document-model (current-buffer))))) - (if url - (let ((command (format nil "~a --speed=2.0" (make-mpv-command url)))) - (echo "run command: ~a" command) - (uiop:run-program command)) - (echo "Not found streaming url.")))) -``` - - - - -### 関数定義 - -定義したコマンド等で使用する関数を定義する. - - - - -##### make-streaming-url - -バッファから URL を生成するユーティリティ関数. - -```common-lisp -(defun make-tver-streaming-url (dom) - "Make streaming URL from a buffer." - (let ((els (clss:select "[data-video-id]" dom))) - (when (> (length els) 0) - (let* ((el (aref els 0)) - (account (plump:attribute el "data-account")) - (video-id (plump:attribute el "data-video-id"))) - (format nil "http://players.brightcove.net/~a/default_default/index.html?videoId=~a" account video-id))))) -``` - - - - -##### make-mpv-command - -URL から mpv コマンドを生成するユーティリティ関数. - -```common-lisp -(defun make-mpv-command (url) - "Make mpv command from url." - (format nil "mpv ~a" url)) -``` - - - +(define-configuration buffer + ((search-engines + (let ((ddg-completion + (make-search-completion-function :base-url + "https://duckduckgo.com/ac/?q=~a" + :processing-function + #'(lambda (results) + (when results + (map 'list + (lambda (hash-table) + (first + (alexandria:hash-table-values + hash-table))) + (j:decode results))))))) + (list + (make-instance 'search-engine :name "DuckDuckGo" :shortcut "ddg" :search-url + "https://duckduckgo.com/?q=~a" :fallback-url + (quri.uri:uri "https://duckduckgo.com/") :completion-function + ddg-completion)))))) +``` + + + ## SBCL の設定 @@ -1885,7 +1811,7 @@ SBCL を設定する. 出力されたファイル: [dotfiles/.sbclrc](dotfiles/.sbclrc) - + ### ASDF の設定 @@ -1896,7 +1822,7 @@ SBCL を設定する. ``` - + ### QuickLisp の設定 @@ -1911,7 +1837,7 @@ SBCL を設定する. ``` - + ### CFFI の設定 @@ -1929,7 +1855,7 @@ CFFI が Guix 上で C ライブラリを参照できるようにする. 参考: [Nyxt Developer Readme](https://github.com/atlas-engineer/nyxt/tree/master/documents#gnulinux-freebsd-gtk-dependencies) - + ## フォントの設定 diff --git a/dotfiles/nyxt/.config/nyxt/config.lisp b/dotfiles/nyxt/.config/nyxt/config.lisp new file mode 100644 index 0000000..271d293 --- /dev/null +++ b/dotfiles/nyxt/.config/nyxt/config.lisp @@ -0,0 +1,29 @@ +;;;; This code is generated by Org Mode. +;;;; +;;;; *DO NOT EDIT THIS DIRECTLY!!!* + +(in-package :nyxt) + +(define-configuration buffer + ((default-modes + (pushnew 'nyxt/mode/emacs:emacs-mode %slot-value%)))) + +(define-configuration buffer + ((search-engines + (let ((ddg-completion + (make-search-completion-function :base-url + "https://duckduckgo.com/ac/?q=~a" + :processing-function + #'(lambda (results) + (when results + (map 'list + (lambda (hash-table) + (first + (alexandria:hash-table-values + hash-table))) + (j:decode results))))))) + (list + (make-instance 'search-engine :name "DuckDuckGo" :shortcut "ddg" :search-url + "https://duckduckgo.com/?q=~a" :fallback-url + (quri.uri:uri "https://duckduckgo.com/") :completion-function + ddg-completion)))))) diff --git a/dotfiles/nyxt/.config/nyxt/init.lisp b/dotfiles/nyxt/.config/nyxt/init.lisp deleted file mode 100644 index 2c67785..0000000 --- a/dotfiles/nyxt/.config/nyxt/init.lisp +++ /dev/null @@ -1,42 +0,0 @@ -;;;; This code is generated by Org Mode. -;;;; -;;;; *DO NOT EDIT THIS DIRECTLY!!!* - -(define-configuration buffer - ((default-modes (append '(nyxt::emacs-mode nyxt::blocker-mode) %slot-default%)))) - -(defun make-tver-streaming-url (dom) - "Make streaming URL from a buffer." - (let ((els (clss:select "[data-video-id]" dom))) - (when (> (length els) 0) - (let* ((el (aref els 0)) - (account (plump:attribute el "data-account")) - (video-id (plump:attribute el "data-video-id"))) - (format nil "http://players.brightcove.net/~a/default_default/index.html?videoId=~a" account video-id))))) -(defun make-mpv-command (url) - "Make mpv command from url." - (format nil "mpv ~a" url)) - -(define-command-global copy-tver-streaming-url () - "Copy TVer streaming URL from a buffer." - (let ((url (make-tver-streaming-url (document-model (current-buffer))))) - (if url - (progn (copy-to-clipboard url) - (echo "~a copied to clipboard." url)) - (echo "Not found streaming url.")))) -(define-command-global play-movie-of-tver-on-mpv () - "Make TVer streaming URL from a buffer and play the movie on mpv" - (let ((url (make-tver-streaming-url (document-model (current-buffer))))) - (if url - (progn - (echo "run command: ~a" (make-mpv-command url)) - (uiop:run-program (make-mpv-command url))) - (echo "Not found streaming url.")))) -(define-command-global play-movie-of-tver-on-mpv-x2 () - "Make streaming URL from a buffer and play the movie on mpv (speed=2.0)" - (let ((url (make-tver-streaming-url (document-model (current-buffer))))) - (if url - (let ((command (format nil "~a --speed=2.0" (make-mpv-command url)))) - (echo "run command: ~a" command) - (uiop:run-program command)) - (echo "Not found streaming url.")))) diff --git a/taix.org b/taix.org index 64ec453..cb4cc47 100644 --- a/taix.org +++ b/taix.org @@ -1429,17 +1429,17 @@ Nyxt の設定ファイルは, 下記の構成で記述されている. - #+begin_src common-lisp :noweb tangle :tangle dotfiles/nyxt/.config/nyxt/init.lisp :mkdirp yes + #+begin_src common-lisp :noweb tangle :tangle dotfiles/nyxt/.config/nyxt/config.lisp :mkdirp yes <<ヘッダ行>> - <> + (in-package :nyxt) - <> + <> - <> + <> #+end_src - 出力されたファイル: [[file:dotfiles/nyxt/.config/nyxt/init.lisp][dotfiles/nyxt/.config/nyxt/init.lisp]] + 出力されたファイル: [[file:dotfiles/nyxt/.config/nyxt/init.lisp][dotfiles/nyxt/.config/nyxt/config.lisp]] *** Nyxt のバッファ設定 @@ -1447,85 +1447,35 @@ #+begin_src common-lisp :noweb-ref Nyxt のバッファ設定 (define-configuration buffer - ((default-modes (append '(nyxt::emacs-mode nyxt::blocker-mode) %slot-default%)))) + ((default-modes + (pushnew 'nyxt/mode/emacs:emacs-mode %slot-value%)))) #+end_src -*** Nyxt のコマンド定義 - - Nyxt で使用する独自コマンドを定義する. - -**** copy-tver-streaming-url - - 某動画配信サービスの動画を mpv で再生するための URL を取得するコマンド. - - #+begin_src common-lisp :noweb-ref Nyxt のコマンド定義 - (define-command-global copy-tver-streaming-url () - "Copy TVer streaming URL from a buffer." - (let ((url (make-tver-streaming-url (document-model (current-buffer))))) - (if url - (progn (copy-to-clipboard url) - (echo "~a copied to clipboard." url)) - (echo "Not found streaming url.")))) - #+end_src - -**** play-tver-movie-on-mpv - - 某動画配信サービスの動画を mpv で再生するコマンド. - - #+begin_src common-lisp :noweb-ref Nyxt のコマンド定義 - (define-command-global play-movie-of-tver-on-mpv () - "Make TVer streaming URL from a buffer and play the movie on mpv" - (let ((url (make-tver-streaming-url (document-model (current-buffer))))) - (if url - (progn - (echo "run command: ~a" (make-mpv-command url)) - (uiop:run-program (make-mpv-command url))) - (echo "Not found streaming url.")))) - #+end_src - -**** play-tver-movie-on-mpv-x2 - - 某動画配信サービスの動画を 2 倍速で mpv で再生するコマンド. +*** Search Engine 設定 - #+begin_src common-lisp :noweb-ref Nyxt のコマンド定義 - (define-command-global play-movie-of-tver-on-mpv-x2 () - "Make streaming URL from a buffer and play the movie on mpv (speed=2.0)" - (let ((url (make-tver-streaming-url (document-model (current-buffer))))) - (if url - (let ((command (format nil "~a --speed=2.0" (make-mpv-command url)))) - (echo "run command: ~a" command) - (uiop:run-program command)) - (echo "Not found streaming url.")))) - #+end_src - -*** 関数定義 - - 定義したコマンド等で使用する関数を定義する. + Search Engine を設定する. -***** make-streaming-url - - バッファから URL を生成するユーティリティ関数. - - #+begin_src common-lisp :noweb-ref Nyxt の関数定義 - (defun make-tver-streaming-url (dom) - "Make streaming URL from a buffer." - (let ((els (clss:select "[data-video-id]" dom))) - (when (> (length els) 0) - (let* ((el (aref els 0)) - (account (plump:attribute el "data-account")) - (video-id (plump:attribute el "data-video-id"))) - (format nil "http://players.brightcove.net/~a/default_default/index.html?videoId=~a" account video-id))))) - #+end_src - -***** make-mpv-command - - URL から mpv コマンドを生成するユーティリティ関数. - - #+begin_src common-lisp :noweb-ref Nyxt の関数定義 - (defun make-mpv-command (url) - "Make mpv command from url." - (format nil "mpv ~a" url)) - #+end_src + #+begin_src common-lisp :noweb-ref Nyxt の Search Engine 設定 + (define-configuration buffer + ((search-engines + (let ((ddg-completion + (make-search-completion-function :base-url + "https://duckduckgo.com/ac/?q=~a" + :processing-function + #'(lambda (results) + (when results + (map 'list + (lambda (hash-table) + (first + (alexandria:hash-table-values + hash-table))) + (j:decode results))))))) + (list + (make-instance 'search-engine :name "DuckDuckGo" :shortcut "ddg" :search-url + "https://duckduckgo.com/?q=~a" :fallback-url + (quri.uri:uri "https://duckduckgo.com/") :completion-function + ddg-completion)))))) + #+end_src ** SBCL の設定 -- 2.45.2