xmonad

xmonad
原作者スペンサー・ヤンセン、ドン・スチュワート、ジェイソン・クレイトン
初回リリース2007年3月6日[ 1 ] (2007年3月6日
安定版リリース
0.18.0 [ 2 ] ウィキデータで編集する / 2024年2月3日
リポジトリ
書かれたハスケル
オペレーティング·システムPOSIX互換
プラットフォームクロスプラットフォーム; X Window SystemGHCが必要
サイズ56 KB (ソースコード) [ 3 ]
入手可能な英語
タイプウィンドウマネージャー
ライセンスBSD 3節
Webサイトxmonad.org ウィキデータで編集する
xmonad のXineramaサポート: 3 つの画面を同時にタイリングします。
タイリングモードのxmonad

xmonadはX Window System用の動的ウィンドウマネージャタイル型)であり、関数型プログラミング言語Haskellで書かれていることで知られています。[ 4 ] [ 5 ]

ウィンドウマネージャー

2007年3月に開発が開始され、2007年4月にバージョン0.1が500のHaskell [ 7 ](その後2000行にまで増加)として発表されました[ 6 ] 。xmonadは、 dwmlarswmStumpWMに類似したタイル型ウィンドウマネージャです。ウィンドウを重なり合わないように配置し、マウスを使わずにウィンドウを管理できます。xmonadは、多くのLinuxディストリビューションBerkeley Software Distribution (BSD)システムを含む、幅広いUnix系オペレーティングシステム向けにパッケージ化され、配布されています。

xmonadは元々 dwmのクローン(デフォルトのキーバインドなどにおいて派生的)であったが、現在ではdwmユーザーには利用できない機能[ 8 ] [ 9 ]をサポートしている。例えば、ワークスペースごとのレイアウト、タイリングの反映、状態の保存、レイアウトのミラーリング、GNOMEのサポート、画面ごとのステータスバーなどである。外部設定ファイルを変更することでカスタマイズでき、実行中に「再読み込み」することができる。[ 10 ] xmonadの機能は他のタイリングウィンドウマネージャにも影響を与え始めている。dwmはxmonadから「緊急フック」を借用し[ 11 ] 、リリース4.8ではXineramaのサポート(マルチヘッドディスプレイ用)も含まれており、xmonadのフィボナッチスパイラルレイアウトを再実装するためのパッチも存在する。[ 12 ]

Haskellプロジェクト

2023 年のマニュアルページには次のように記載されていました。

xmonadは、豊富な静的型システムを備えた現代的な関数型言語の表現力を活用することで、正確性と堅牢性を重視した、完全かつ機能豊富なウィンドウマネージャを提供します。[...] ウィンドウマネージャの内部プロパティは、型システムが提供する静的保証と型ベースの自動テストの組み合わせによってチェックされます。この利点は、コードが理解しやすく、変更が容易であることです。[ 13 ]

xmonad は、ソースコードのサイズが 500 行と小さいと宣伝されて以来、2023 年現在で約 2,000 行にまで成長しました。

他のウィンドウマネージャのエミュレーションや、フィボナッチ螺旋に基づいたウィンドウタイリングなどの珍しいレイアウトアルゴリズムを含むコアシステムの拡張は、アクティブなコミュニティによって実装されており[ 14 ]、ライブラリとして利用可能です。[ 15 ]

マウスの必要性をなくすことに加えて、[ 16 ] xmonad の開発者は、信頼性を向上させ、バージョン 0.7 時点でコードの総行数を 1200 行未満に抑えるために準形式手法プログラム導出を多用しています。ウィンドウ マネージャのプロパティ (ウィンドウのフォーカスの動作など) は、QuickCheckを使用してチェックされます。[ 17 ]この重点により、xmonad はいくつかの点で珍しいものになっています。Haskell で書かれた最初のウィンドウ マネージャであることに加えて、フォーカスを自動的に管理するためにジッパーデータ構造を使用する最初のウィンドウ マネージャでもあり、そのコアはパターン マッチに関して安全であることが証明されており、[ 18 ]信頼性の向上にさらに貢献しています。開発者は次のように書いています。

xmonadは、X Window System用のタイル型ウィンドウマネージャであり、Haskellで実装、設定、動的拡張が可能です。このデモでは、純粋関数型データ構造、表現力豊かな型システム、拡張された静的チェック、そしてプロパティベーステストを活用することで、副作用が支配的なソフトウェアをHaskellに期待される精度と効率で開発できることを示します。さらに、Haskellをアプリケーションの設定および拡張言語として使用する方法についても説明します。[ 19 ]

コードは副作用のないコードと副作用のための薄いラッパーに分離されている。[ 20 ] Alejandro Serrano Menaによると、Haskellアプリケーションライブラリのアクションにドメイン固有言語を実装する方法は2つある。「コンビネータライブラリを開発する」か「独自のモナドを作成する」かで、xmonadは後者の成功例である。[ 21 ] xmonadは2013年の関数型プログラミングの本で最も有名なHaskellプロジェクトの1つとみなされた。[ 5 ]

受付

Linux Magazineはxmonadを「2009年の私のトップリソース」のリストに含めました。 [ 22 ] 2012年にはHow-To Geekがxmonadは設定が複雑だが優れていると評し、 [ 23 ] 2013年にはLinuxデスクトップ環境8選のリストに含まれました。 [ 24 ] Lifehackerはxmonadのユーザーインターフェースの基本操作は、少数の命令セットで教えることができると書いています。 [ 25 ] Network Worldは高度なカスタマイズ性と速度を指摘し、 [ 4 ] MakeUseOfではxmonadがOpenboxと比較して肯定的なレビューを受けました。 [ 26 ]

2016年、Ars TechnicaはxmonadとAwesomeがCinnamonよりも高度なタイリング能力を持っていると評した。[ 27 ] 2017年には、ビッグデータ用のウィンドウマネージャーとしての応用も考慮され、強力であると評された。[ 28 ]一方opensource.comの記事では、xmonadよりもdwmが選ばれた。 [ 29 ] TechRadarによる「2018年のベストLinuxデスクトップ」のレビューでは、「ここに掲載されている他のすべてのデスクトップ環境の中で際立っているデスクトップ環境が1つあるとすれば、それはこれだ」と評されている。[ 30 ]

Xmonadアプリケーションのソースコード行数が少ないこと、純粋関数型プログラミング言語Haskellを使用していること、そして厳格なソフトウェアテスト手順が記録されていることから、他の研究プロジェクトにおいてベースラインアプリケーションとして使用されることがあります。これには、 Rocq証明支援ツールを用いたxmonadの再実装[ 31 ]、 xmonadが命令型プログラムであることの判定[ 32 ]、パッケージマネージャNixをベースとしたLinuxディストリビューションNixOSに関するパッケージ管理の研究などが含まれます。[ 33 ]

参照

参考文献

  1. ^ 「初期インポート: xmonad/xmonad@b2c1430 。GitHub 。
  2. ^ 「リリース 0.18.0」。2024年2月3日。 2024年2月20日閲覧
  3. ^ "xmonad: download" . suckless.org . 2012年12月26日時点のオリジナルよりアーカイブ2012年12月17日閲覧。
  4. ^ a b Lunduke, Bryan (2013年5月15日). 「おそらく見たことのない10の素晴らしいLinuxデスクトップ環境」 . Network World . xmonad. 2018年5月26日時点のオリジナルよりアーカイブ
  5. ^ a bオーリグ、イェンス;メーネルト、ハンネス。シルマー、ステファニー(2018年9月24日)。Das Curry-Buch – JavaScript を使用した機能的なプログラムオライリードイツ。 p. 177.ISBN 978-3868993691– Google ブックス経由。
  6. ^ Janssen, Spencer (2007-04-22). "Announce: xmonad 0.1" . Haskell-cafe (メーリングリスト). 2021年8月30日時点のオリジナルよりアーカイブ。 2021年8月30日閲覧
  7. ^ 「Xmonad: Haskellで書かれたタイル型ウィンドウマネージャ」OSNews . 2007年5月22日. 2008年4月11日時点のオリジナルよりアーカイブ。 2007年9月23日閲覧
  8. ^ 「キーボード駆動型環境が新たな窓を開く」 OSNews . 2007年5月31日. 2007年6月4日時点のオリジナルよりアーカイブ。 2007年5月31日閲覧
  9. ^ "xmonad 0.4 リリース" . OSNews . 2007年10月19日. 2007年12月22日時点のオリジナルよりアーカイブ2007年12月23日閲覧。
  10. ^素早く再コンパイルし、新しいxmonadバイナリを実行することで実現できます。 「Haskell Weekly News: April 27, 2007」を参照してください。Haskell Weekly News。2007年4月27日。2007年5月29日時点のオリジナルからアーカイブ。 2007年5月23日閲覧
  11. ^開発者の議論を参照。2018年9月18日アーカイブ。Wayback Machineのdwmメーリングリスト
  12. ^ Suckless.org: フィボナッチレイアウトパッチArchived 2013-04-13 at the Wayback Machine to dwm
  13. ^ "xmonadのManpage" . xmonad.org. 2021年10月27日. 2023年8月13日時点のオリジナルよりアーカイブ。 2023年9月1日閲覧
  14. xmonadユーザーは、 Wayback Machine のインターネット リレー チャット(IRC) チャンネルの#xmonad Archived 2007-12-29と xmonad メーリング リストで大量のトラフィックを生成します。また、コア開発者以外の開発者による拡張ライブラリへのコミットも多数あります ( Wayback Machineのxmonad 統計ページArchived 2007-12-23 を)
  15. ^ "xmonad: 寄稿コード" . xmonad.org. 2007年5月22日. 2007年9月16日時点のオリジナルよりアーカイブ。 2007年5月23日閲覧
  16. ^ Mitchell, Neil (2008年6月). 「6.5.5」. Transformation and Analysis (PDF) (PhD). ヨーク大学. 2018年9月12日時点のオリジナルよりアーカイブ(PDF) . 2018年9月12日閲覧
  17. ^ Hu, Zhenjiang; Hughes, John; Wang, Meng (2015). 「関数型プログラミングの重要性」(PDF) . National Science Review . 2 (3): 350– 351. doi : 10.1093/nsr/nwv042 . ISSN 2095-5138 . 2018年7月23日時点のオリジナルよりアーカイブ(PDF) . 2018年9月27日閲覧 
  18. ^ Mitchell, Neil (2007年5月9日). 「Neil MitchellのHaskellブログ:XMonadはクラッシュするのか?」オリジナルより2007年5月14日アーカイブ2007年5月17日閲覧
  19. ^スチュワート&ヤンセン、2007
  20. ^ Warden, Shane; Biancuzzi, Federico (2009). Masterminds of Programming: Conversations with the Creators of Major Programming Languages . O'Reilly Media . p. 181. ISBN 978-0596515171. 2018年9月19日時点のオリジナルよりアーカイブ2018年9月18日閲覧。
  21. ^メナ、アレハンドロ・セラーノ (2014 年 3 月 5 日)。Haskell の入門: プロジェクトベースのアプローチを押します。 p. 385.ISBN 9781430262510. 2018年9月24日時点のオリジナルよりアーカイブ2018年9月24日閲覧– Google Books経由。
  22. ^ Zawodny, Jeremy (2009年12月6日). 「2009年の私のトップリソース」 . Linux Magazine . 2018年9月23日時点のオリジナルよりアーカイブ2018年9月23日閲覧。
  23. ^ Hoffman, Chris (2012年5月24日). 「Linux用タイルウィンドウマネージャーXmonadの使い方」 How-To Geek. 2018年9月18日時点のオリジナルよりアーカイブ。 2018年9月17日閲覧
  24. ^ Hoffman, Chris (2013年5月18日). 「Linuxユーザーには選択肢がある:8つのLinuxデスクトップ環境」 How-To Geek. 2017年7月13日時点のオリジナルよりアーカイブ。 2018年9月24日閲覧
  25. ^ Goerzen, John (2013年1月8日). 「私は子供たちをコマンドラインで育てました…そして彼らはそれを愛しています」 . Lifehacker . Univision Communications . 2018年9月18日時点のオリジナルよりアーカイブ。 2018年9月17日閲覧
  26. ^ Stieben, Danny (2018年9月18日). 「Linux用の新しいデスクトップ環境が必要? Openboxかxmonadを試してみませんか?」 makeuseof.com . 2017年11月23日時点のオリジナルよりアーカイブ。 2018年9月24日閲覧
  27. ^ 「Mint 18レビュー:「とにかく動く」Linuxはこれ以上ない」 Ars Technica、2016年8月4日。2018年9月17日時点のオリジナルよりアーカイブ。 2018年9月17日閲覧
  28. ^ニタ、ステファニア・ロレダナ;マリウス・ミハイレスク(2017年9月14日)。実践的な同時実行 Haskell: ビッグ データ アプリケーションを使用するを押します。ページ 40–41。ISBN 978-1484227800– Amazon経由。
  29. ^ 「Linuxウィンドウマネージャーにdwmを使う4つの理由」 Opensource.com Red Hat 2017年7月18日オリジナルより2018年9月18日アーカイブ。 2018年9月17日閲覧
  30. ^ 「2018年のベストLinuxデスクトップ」 TechRadar.Future plc . 2018年1月15日. 2018年9月18日時点のオリジナルよりアーカイブ。 2018年9月17日閲覧
  31. ^ Swierstra, Wouter (2012年9月13日). 「Coqでのxmonad(体験レポート)証明支援機能を用いたウィンドウマネージャのプログラミング」. Voigtländer, J. (編). Haskell '12 Proceedings of the 2012 Haskell Symposium . ICFP 2012 The 17th ACM SIGPLAN International Conference on Functional Programming . コペンハーゲン、デンマーク: Association for Computing Machinery . pp.  131– 136. ISBN 978-1-4503-1574-6
  32. ^ Lippmeier, Ben (2010年5月). Type Inference and Optimisation for an Impure World (PDF) (PhD). Australian National University. pp.  45– 46. 2018年9月27日時点のオリジナルよりアーカイブ。
  33. ^ドルストラ、イールコ;ロー、アンドレス;ピエロン、ニコラ (2010 年 11 月)。「NixOS: 純粋に機能的な Linux ディストリビューション」関数型プログラミングのジャーナル20 ( 5–6 ): 577– 615.土井: 10.1017/S0956796810000195ISSN 0956-7968 

引用文献

さらに読む