Commit graph

487 commits

Author SHA1 Message Date
Robert Irelan
36fed6d1a1
Add modeline segment for follow-mode (#489)
When follow-mode is enabled for a buffer, this will show a segment left
of buffer-info (which contains the file name) like "Follow M/N", where N
is the total number of follow windows for this buffer and M is the index
of the selected window.
2021-11-11 16:34:52 +08:00
Vincent Zhang
b59802efba [Refactor] Add doom-modeline-wspc. 2021-11-06 22:48:51 +08:00
Vincent Zhang
79dc0ca1a9 Keep both position indicator and percent position.
Close #488.
2021-11-06 18:50:03 +08:00
Vincent Zhang
56876e64d9 Update lsp icon when necessary. 2021-10-13 14:44:20 +08:00
Vincent Zhang
4cd8bf208c Refactor. 2021-10-01 18:49:35 +08:00
Vincent Zhang
af99ef6625 Fix docstring warnings. 2021-10-01 01:09:41 +08:00
Vincent Zhang
ffedb34800 Fix compatibility issue of the latest flymake.
Fix #469.
2021-09-25 14:03:17 +08:00
Vincent Zhang
bcbb276b51 Update comments. 2021-09-18 23:11:21 +08:00
Fabian Brosda
23bc8fe190
rename flymake--backend-state to flymake--state (#468)
* rename flymake--backend-state to flymake--state

s.a. 6e10086901

* adding alias for flymake--backend-state

This way the code should be compatible with old and new versions of
flymake.
2021-09-18 18:54:53 +08:00
Vincent Zhang
ef78fe07cd Fix the position of state icon in buffer-default-directory segment. 2021-09-09 01:27:57 +08:00
Vincent Zhang
6fc40724d2 Improve timemachine segment. 2021-09-09 01:24:15 +08:00
Prashant Vithani
749e860d4e
Use file-local-name to get VC state (#464)
Recently the [change in vc-git in emacs](3572613550)
broke modeline state in remote files as it prepends a string in the
beginning and cannot retrieve relative file path to pass as git command
argument.

The fix here ensures that the prefix in the beginning of the file path
doesn't break the `(vc-state)` command by passing local file name of the
remote files.

Fix #463
2021-08-23 12:30:03 +08:00
Vincent Zhang
51af51d248 Enhance timemachine segment. 2021-07-22 02:33:30 +08:00
Vincent Zhang
77cd244ae5 Don't display icons in TUI. 2021-07-21 16:45:40 +08:00
_7696122
30f17d303b
Add sml-modeline to buffer-position (#458) 2021-07-06 14:04:36 +08:00
Vincent Zhang
07d03c4626 [Feature] Support citre-mode. 2021-06-28 01:31:51 +08:00
Vincent Zhang
1660910b75 [Feature] Support mlscroll.
Close #452.
2021-06-06 23:32:37 +08:00
Vincent Zhang
0e98271159 [Refactor] bar and hud. 2021-05-27 16:40:13 +08:00
Vincent Zhang
b8e24f1a75 Revert "New option: doom-modeline-bar."
This reverts commit 1784e392d7.

Close #447.
2021-05-27 02:33:14 +08:00
Vincent Zhang
9b5cfe3a27 Exclude minibuffer and child frames in window-number segment. 2021-05-26 04:20:54 +08:00
Vincent Zhang
3b393766f4 Fix merge issue. 2021-05-17 12:11:38 +08:00
marienz
8c49ddf12c
Improve cache invalidation for bar and hud segment (#442)
The cached bar segment is only updated if it is active (that is: the hud
is not active), and drawing the segment relies on the cache being
up-to-date. This could cause problems if the bar is reconfigured while
inactive, and then activated.

Fix this by updating the cache when drawing if not populated yet, and
changing `doom-modeline-refresh-bars` to unconditionally invalidate it.

Both the bar and hud segment were invalidating their cache from
`window-configuration-change-hook`, which should not be necessary: the
bar segment should not care about window configuration at all, and the
hud segment should detect buffer position changes correctly on redraw.
These extra invalidations mask problems like the one this commit fixes.

Remove the unnecessary invalidations.

Co-authored-by: Vincent Zhang <seagle0128@gmail.com>
2021-05-17 02:00:47 +08:00
Vincent Zhang
1784e392d7 New option: doom-modeline-bar.
Whether to display the bar to indicate active and inactive windows.
It's only respected in GUI.
2021-05-16 22:27:49 +08:00
Vincent Zhang
22563e68df Refactor. 2021-05-16 22:09:24 +08:00
Vincent Zhang
b5d38aa711 Improve hud bar. 2021-05-15 18:39:53 +08:00
Vincent Zhang
a89ac6c7a1 New option: doom-modeline-hud.
Whether to use hud instead of default bar. It's only respected in GUI.
2021-05-15 03:52:00 +08:00
marienz
7ed4dbdf72
Add a "hud" segment inspired by powerline (#439)
This is a small graphical indicator showing the rough size of and
position in the current buffer. It is not used by default in any
modeline, but is intended to be usable as a replacement of the "bar"
segment.

To avoid performance problems, cache the HUD images as window
parameters. When rendering the modeline, we check if the buffer
position (or size) has changed enough to change the image, and reuse the
image if not. This check should be similar in performance to rendering
buffer size or position. Changing bar width or height forcibly
invalidates all cached images, so they get redrawn as the modeline in
each window is rendered.

This only adds the segment. To use it, define a new modeline.
2021-05-14 23:57:54 +08:00
Vincent Zhang
0531669f59 Format and eliminate warnings. 2021-05-13 22:09:27 +08:00
Naofumi Yasufuku
a7f376d4bb
Show tab-bar workspace-name even if tab-bar-show is nil (#438)
If tab-bar is hidden by setting tab-bar-show nil, tab-bar-mode is nil
but still new tabs can be created by tab-bar-new-tab.  Modeline
workspace-name should be displayed even if tab-bar is hidden.

workspace-name doesn't bother you when tab-bar has only one tab.
2021-05-12 02:29:06 +08:00
marienz
e898c0d396
Support hiding buffer encoding when at default (#435)
Only showing the buffer encoding and EOL style when they are
interesting (not at their default values) makes them stand out more when
needed, and frees up space when not. Users currently cannot hide the
coding-system and EOL segments separately, and would have to watch for
changes to `buffer-file-coding-system` to toggle visibility. Since
doom-modeline reads these values already anyway, we can easily add
support.

Add a new value `'nondefault` for `doom-modeline-buffer-encoding` to
enable this feature.

Add two new settings to set the default. Detecting the user's defaults
is tricky: Emacs does not use a single variable for the default coding
system but a prioritized list, and hooks can (and do, on Windows) change
the defaults. For now, hardcode reasonable "default defaults" and allow
the user to customize them.

Reorganize slightly to minimize work done if we choose not to display a
segment. Behavior when the new feature is not used should be unchanged.
2021-04-27 22:59:10 +08:00
marienz
92f141f91a
Simplify image creation (#432)
Switch from an XPM to a PBM bitmap: PBM is easier to generate and easier
for Emacs to decode. Emacs has PBM support built-in so it's always
available (keep the `image-type-available-p` check in case this changes).

Stop creating a temporary list-of-lists to iterate over.

Rename `doom-modeline--make-xpm` to `doom-modeline--make-image` because
it's no longer creating an XPM, and the type of the bitmap should not
matter to callers.
2021-04-19 17:58:09 +08:00
Waqar Hameed
3433275efe
Add face for notifications (#431)
There is a face for the number part of
notifications (`doom-modeline-unread-number`), however, none for the
notification itself. For symmetry, we introduce
`doom-modeline-notification` as a face for notifications. We also set
the default value to `doom-modeline-warning` to keep the previous
behavior.

Signed-off-by: Waqar Hameed <whame91@gmail.com>
2021-04-12 14:40:01 +08:00
Vincent Zhang
0c2f2f0aa2 Fix #422: Emacs freezes continuously after tramp buffer loses connection.
Don't check if the remote files exist.
2021-03-08 20:12:32 +08:00
Vincent Zhang
5fca2ea926 Fix checkdoc warnings. 2021-01-17 07:44:10 +08:00
Vincent Zhang
f7e50accbf Ensure battery-status-function is valid.
See #408.
2021-01-17 07:39:40 +08:00
tianshu
de34f11b11
Add Meow indicator (#401)
Co-authored-by: shitianshu <doglooksgood@gmail.com>
2021-01-03 16:20:19 +08:00
Vincent Zhang
fb34eb5eb6 Fix invalid faces while displaying lv windows. 2020-11-29 00:59:51 +08:00
Vincent Zhang
6f1864583b Eliminate warnings. 2020-11-21 00:08:34 +08:00
Arnaud Spiwack
ece3007641
Add support for Boon modal states (#388)
[Boon](https://github.com/jyp/boon) is a modal mode for Emacs. This
commit adds support for Boon in the modal segment.

Boon has four states:
- Command (like Evil's normal)
- Insert
- Special (mostly pass-through, much like Evil's Emacs mode)
- Off, used when Boon really doesn't know what to do. There is no real
  equivalent in Evil; this commit uses the same face as Evil's
  operator state for this one. It's arbitrary, but it probably doesn't
  matter too much.
2020-11-12 12:24:23 +08:00
Vincent Zhang
5cfc0251e0 Use buffer-list-update-hook instead of advising select-window.
Fix #386.
2020-11-02 23:55:50 +08:00
Vincent Zhang
86d91e891b [Feature] Add mouse actions to mu4e alert segment.
Close #382.
2020-10-05 21:58:04 +08:00
Vincent Zhang
538017a399 Suppress some segments when the window is small. 2020-10-01 12:38:56 +08:00
Vincent Zhang
214493b8a1 Improve github notification. 2020-08-28 01:10:04 +08:00
Jim Myhrberg
d8d04332f5
Add option to show/hide workspace-name in modeline (#371) 2020-08-24 10:30:46 +08:00
Alex Murray
9235985ff7
Add support for poke-line in buffer position segment 2020-08-18 12:30:58 +09:30
Vincent Zhang
160d7ac278 [Enhancement] support all flycehck error levels.
Support LSP customized levels.
See https://github.com/emacs-lsp/lsp-mode/issues/1961.
2020-08-02 23:32:27 +08:00
Vincent Zhang
5623f161f1 Add dashboard mode-line. 2020-07-25 14:24:18 +08:00
Vincent Zhang
15c859dc4b Fix invalid format in indent-info segment. 2020-07-23 21:35:53 +08:00
Vincent Zhang
df28fb2181 Improve buffer-default-directory segment. 2020-07-23 18:07:10 +08:00
Vincent Zhang
e27473dd23 Display buffer state in buffer-default-directory segment.
See #368.
2020-07-23 16:45:16 +08:00