質問編集履歴
3
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,125 +1,65 @@
|
|
1
1
|
Stack Overflow やr/emacsを何度探しても見つけられなかったので、質問させていただきます。
|
2
2
|
|
3
|
+
Emacsのモードラインをいじっています。
|
3
4
|
|
4
|
-
|
5
|
-
モードラインはアクティブなウィンドウを切り替えるとそれに応じて色が変わります。
|
5
|
+
Emacsのモードラインはアクティブなウィンドウを切り替えるとそれに応じて色が変わります。
|
6
|
-
|
7
|
-
|
8
6
|
|
9
7
|
アクティブなモードラインには `mode-line`フェイス、そうでない方は`mode-line-inactive`フェイスが使われるようですが、これらは単純にpropertizeで色を付けた文字列には適用されず、アクティブかどうかに関わらずpropertizeした色で表示されます。
|
10
8
|
|
11
|
-
|
12
|
-
|
13
9
|
これをpropertizeした文字列でもモードラインが非アクティブになると暗い色に切り替えたいと思っています。
|
14
|
-
|
15
|
-
|
16
10
|
|
17
11
|
例えば、現状のflycheckのインジケータは下のようになっています。
|
18
12
|
|
19
|
-
|
20
|
-
|
21
13
|
|ウィンドウの状態|モードライン表示|
|
22
|
-
|
23
14
|
|:--|:--:|
|
24
|
-
|
25
|
-
|アクティブ|![アクティブ時](7
|
15
|
+
|アクティブ|![アクティブ時](https://d1666c7av167g2.cloudfront.net/questions/2022-01-12/ec8a03e7-e150-4361-838d-518c22cac3de.png)|
|
26
|
-
|
27
|
-
|非アクティブ|![インアクティブ時](
|
16
|
+
|非アクティブ|![インアクティブ時](https://d1666c7av167g2.cloudfront.net/questions/2022-01-12/58c54d7a-93f4-43d0-9c11-9468c95891b1.png)|
|
28
|
-
|
29
|
-
|
30
17
|
|
31
18
|
右側の web-modeのインジケータは`propertize`して**ない**ので非アクティブ時に色が暗くなりますが、左側のflycheckの方は`propertize`して**いる**ので非アクティブになっても赤黄緑のままです。
|
32
19
|
|
33
|
-
|
34
|
-
|
35
|
-
この赤黄緑
|
20
|
+
この赤黄緑が非アクティブになったときに暗い色にしたいというのが、今回の質問の内容となります。
|
36
|
-
|
37
|
-
|
38
21
|
|
39
22
|
以下は現状の init.el の抜粋です。
|
40
|
-
|
41
23
|
``` lisp
|
42
|
-
|
43
24
|
(defun my-flycheck-mode-line ()
|
44
|
-
|
45
25
|
(let-alist (flycheck-count-errors flycheck-current-errors)
|
46
|
-
|
47
26
|
(let* ((status flycheck-last-status-change)
|
48
|
-
|
49
27
|
(info (or .info 0))
|
50
|
-
|
51
28
|
(warnings (or .warning 0))
|
52
|
-
|
53
29
|
(errors (or .error 0)))
|
54
|
-
|
55
30
|
(when status
|
56
|
-
|
57
31
|
(concat
|
58
|
-
|
59
32
|
(propertize (int-to-string errors) 'face 'flycheck-error-list-error) " "
|
60
|
-
|
61
33
|
(propertize (int-to-string warnings) 'face 'flycheck-error-list-warning) " "
|
62
|
-
|
63
34
|
(propertize (int-to-string info) 'face 'flycheck-error-list-info))))))
|
64
35
|
|
65
|
-
|
66
|
-
|
67
36
|
(defun my-mode-line--form ()
|
68
|
-
|
69
37
|
(let* ((left-part (concat
|
70
|
-
|
71
38
|
evil-mode-line-tag
|
72
|
-
|
73
39
|
;;;;; snip ;;;;;;;;;;;;;
|
74
|
-
|
75
40
|
" "))
|
76
|
-
|
77
41
|
(right-part (concat
|
78
|
-
|
79
42
|
(my-coding-system-name-mnemonic)
|
80
|
-
|
81
43
|
;;;;; snip ;;;;;;;;;;;;;
|
82
|
-
|
83
44
|
(flycheck-mode (my-flycheck-mode-line)) ;; <--!!!
|
84
|
-
|
85
45
|
" "
|
86
|
-
|
87
46
|
mode-name
|
88
|
-
|
89
47
|
))
|
90
|
-
|
91
48
|
;;;;; snip ;;;;;;;;;;;;;
|
92
|
-
|
93
49
|
(margin
|
94
|
-
|
95
50
|
(propertize " "
|
96
|
-
|
97
51
|
'display `(space :align-to (- (+ scroll-bar scroll-bar) ,(string-width right-part) ,margin-env)))))
|
98
|
-
|
99
52
|
(concat left-part margin right-part)))
|
100
53
|
|
101
|
-
|
102
|
-
|
103
54
|
(setq-default mode-line-format '(:eval (my-mode-line--form)))
|
104
|
-
|
105
55
|
```
|
106
|
-
|
107
|
-
|
108
56
|
|
109
57
|
もう長いことこのまま使っており、暇を見ては`window-state-change-hook`等に何か仕込んでみたりするのですが自力では解決まで至っておりません。
|
110
58
|
|
111
|
-
|
112
|
-
|
113
59
|
細かなことで恐縮なのですが、最近特に目が悪くなってきたのか、他のバッファに一生懸命タイピングしていることが多くなり、ちょっとしんどくなってきました。
|
114
60
|
|
115
|
-
|
116
|
-
|
117
61
|
もしご存じの方がおられましたら、ヒントだけでも頂けますと助かります。
|
118
|
-
|
119
62
|
よろしくお願いします。
|
120
63
|
|
121
|
-
|
122
|
-
|
123
64
|
#### 環境
|
124
|
-
|
125
65
|
- Emacs: 27.2 (Emacs Mac Port)
|
2
書式
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,11 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
Emacsのモードラインをいじっています。
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
モードラインはアクティブなウィンドウを切り替えるとそれに応じて色が変わります。
|
10
6
|
|
11
7
|
|
12
8
|
|
@@ -36,7 +32,7 @@
|
|
36
32
|
|
37
33
|
|
38
34
|
|
39
|
-
この赤黄緑
|
35
|
+
この赤黄緑を非アクティブになったときに暗い色にしたいというのが、今回の質問の内容となります。
|
40
36
|
|
41
37
|
|
42
38
|
|
1
書式
test
CHANGED
File without changes
|
test
CHANGED
@@ -32,11 +32,15 @@
|
|
32
32
|
|
33
33
|
|
34
34
|
|
35
|
-
右側の web-modeのインジケータは`propertize`して
|
35
|
+
右側の web-modeのインジケータは`propertize`して**ない**ので非アクティブ時に色が暗くなりますが、左側のflycheckの方は`propertize`して**いる**ので非アクティブになっても赤黄緑のままです。
|
36
36
|
|
37
37
|
|
38
38
|
|
39
|
+
この赤黄緑が非アクティブになったときに暗い色にしたいというのが、今回の質問の内容となります。
|
40
|
+
|
41
|
+
|
42
|
+
|
39
|
-
以下は init.el の抜粋です。
|
43
|
+
以下は現状の init.el の抜粋です。
|
40
44
|
|
41
45
|
``` lisp
|
42
46
|
|