モードラインのみで新しいフレームを作成する


13

モードラインのみを含む新しいフレームを作成したい。特にファイルバッファではありません。

なぜこれが必要なのですか?組織モードのクロッキングを使用して作業時間を計ります。組織モードでは、現在作業中のタスクのタイマーがモードラインに表示され、タイマーがリアルタイムで更新されます。私はEmacs以外のアプリを使用しているので、それらに切り替えるとき(たとえば、ブラウザーまたは端末を使用するとき)、実行中のタイマーを確認できるようにします。私は新しいフレームを作成できると思っていましたが、モードラインでタイマーをクリックすると、.orgファイルが新しいフレームで開きます(すでにモードラインのみを表示するようにサイズ変更されています)最初のフレームで。

モードラインの外観(青いバー)は次のとおりです。これが新しいフレームに必要なすべてです。

ここに画像の説明を入力してください

(最終的には、新しいフレームを常に手前に表示する方法を理解する必要がありますが、それはこの質問の範囲外です)

関連する場合はOS Xを使用します。


1
ちょっとした話ですが、私はOSXメニューバーに組織モードの行情報を表示するelispとmacrubyスクリプトに取り組んでいます。それは私のために働いていますが、私はそれをうまくまとめようとするつもりです。
ジョーダンビオンド

@JordonBiondo-すばらしい!あなたの解決策は、私がここでやっていることよりもさらに良くなるかもしれません。楽しみにしています。何か変わったことがあったらすぐ連絡をください。
スリッドは、モニカーを復活させる

あなたが本当に「素晴らしい!」と言っている答えをそれに答えるために感じたら、あなたはあなたの質問にタイトルを付け直し、言い換えるべきです。私の知る限り、彼らは「モードライン以外の何ものでもない」フレームのリクエストに答えていないからです(そして、どんな答えもそうなるとは思いません)。IOW、リクエストの最初の定式化から目的を緩和した場合、それに応じて質問を更新することを検討してください。
ドリュー

読んだ後、OPに特定の問題があるように見えたが、最良の解決策ではなく、1つの解決策のみを求めていたことに同意します。
ジョーダンビオンド

@Drew-特定の編集を提案しますか?PythonNutの元のソリューションが私の元の要求に答えます。「特にファイルバッファではありません。」と言ったので、彼の解決策は空のバッファを作成しますが、新しいフレームにファイルバッファが表示されないことに注意してください。
スリッドは、モニカの復職を

回答:


7

JorgenSchäfer 答えMatthew Piziakの提案に拡張すると、次のスニペットが生成されます。

(with-current-buffer (generate-new-buffer "*empty*")
  (make-frame '((minibuffer . nil)
                 (unsplittable . t)
                 (buffer-predicate . (lambda (x) nil))
                 (height . 2)
                 (left-fringe . 0)
                 (right-fringe . 0)
                 (tool-bar-lines . 0)
                 (menu-bar-lines . 0)))
  (set-window-dedicated-p
    (get-buffer-window (current-buffer) t) t))

私が知る限り、これはウィンドウを空のバッファに正しくロックします。別のバッファに切り替えようとすると、親フレームの既存のウィンドウでバッファが開きます。


すばらしい、これが機能することを確認しました。新しいフレームにメインフレームのfont-size(およびfont-name)を継承させる方法はありますか?また、モードラインの冗長なバッファ固有の部分を*empty* All L1 (Fundamental)削除できますか?ここでは鉱山がどのように見えるかです:i.imgur.com/iOLw57c.png
SRIDが復活モニカ言う

@SridharRatnakumar幸いなことに、余分なモードライン情報を削除するのは簡単です。それを含めるように回答を修正しました。フォントを保存することの意味がわかりませんか?バッファーは空ではありませんか?
PythonNut

私はモードラインのテキストのフォントプロパティを参照していました(空のバッファではありません)。
スリッドは、モニカを復活させる

ああ、後のコードでメインフレームのモードラインもクリアしました!これが不可能な場合は、その変更を元に戻して、回答を受け入れます(質問を満たします)。
スリッドは、モニカを

私もちょうどそれに気づいた。私はそれを修正しました。モードラインフォントは変更しても変わらないので、何が起こっているのかわかりません。
PythonNut

5

これは私が思いつく最高のものです:

(with-current-buffer (generate-new-buffer "*empty*")
  (make-frame '((minibuffer . nil)
                (unsplittable . t)
                (buffer-predicate . (lambda (x) nil))
                (height . 2)
                (left-fringe . 0)
                (right-fringe . 0)
                (tool-bar-lines . 0)
                (menu-bar-lines . 0))))

私はそこに1つのバッファを持つ少なくとも1つのウィンドウを無効にする方法を見ていませんが、このスニペットを使用して表示されるウィンドウはどのファイルにも関連付けられていません。buffer-predicateそこに任意の(他の)バッファを表示するために選択されたフレームからのを防ぐので、あなたは1つの余分空行を扱うことができれば、これはそれを行う必要があります。


期待どおりに機能しません。バッファは新しいフレームでまだアクティブになっています。ここで説明するアニメーションGIFです:i.imgur.com/07Q3tcW.gifv
SRIDが復活モニカ言う

2
使用display-buffer-alistすることがこれに対する解決策かもしれません。
カウシャルモディ

ここでの組織の使用がに準拠していない理由はわかりませんbuffer-predicatedisplay-buffer-alist実際に使用することはアイデアかもしれませんが、特定のフレームが使用されるのを防ぐために使用する方法はわかりません。
ヨルゲンシェーファー

2
これで修正できset-window-dedicated-pますか?
マシューピジアック

1
buffer-predicate、情報によると、のみで使用されているother-buffer機能、それがフレーム内の任意のバッファを表示するから、他の機能を妨げないすなわち。
ポリツァ

3

OSXの組織時計のさらに別のソリューション

ステータスバーの小さなボックス。出勤しなかった場合は赤に変わります。

赤いボックスの図、githubページを参照

https://github.com/koddo/org-clock-statusbar-app


1
私は少し遅れて、正確な質問に答えていませんが、誰かのために働く代替手段を提供します。
koddo

3

OSXメニューバーに組織時計情報を表示するためのソリューション

指定した問題の代替ソリューションは次のとおりです。

私はEmacs以外のアプリを使用しているので、それらに切り替えるとき(たとえば、ブラウザーまたは端末を使用するとき)、実行中のタイマーを確認できるようにします。

これを使用して、ほとんど常に表示できるはずのosxメニューバーに組織クロックからの情報を表示できます。

https://github.com/jordonbiondo/osx-org-clock-menubar MELPAで利用可能

これにはmacrubyが必要であることに注意してください。

出勤中の様子

ここに画像の説明を入力してください


1
MacRubyのに頼らないシンプルな実装がで行うことができるemacsclient -e "(org-clock-get-clocked-time)"とBITBAR:getbitbar.com
mankoff

ソリューションを作成する必要があります。
ジョーダン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.