想把 awesome- tab 的背景和前景改成和当前主题背景一样,大家有什么好办法吗?

现在的 awesome-tab 的颜色和主题冲突有点明显,想知道大家有把它们颜色变成一样的办法吗?
我想把 background 和 tab-selected 的颜色和主题颜色同步,tab-unselected 的颜色改得比主题颜色深一点
这张图是现在的颜色


谢谢大家

  • 背景颜色定制: awesome-tab-background-color
  • 未选中标签: awesome-tab-unselected
  • 选中标签: awesome-tab-selected

这些文档写的都有: awesome-tab/README.md at 4b3d13b389de2454f77bef8a4ffc413718e44b01 · manateelazycat/awesome-tab · GitHub

提问前可以先看 README :wink:

其实我是想说想把颜色同步得和当前主题的背景一样,是说根据主题的颜色设置自动更换 awesome-tab 的颜色,而不是说怎么更改 awesome-tab 的颜色,可能之前没说清 虽然现在也不一定说清楚了:joy:

欢迎来补丁改善这个功能

但问题是我还不清楚怎样获得当前主题的背景色,这个有固定的变量名吗。

describe-face default里面的foreground和background,怎么用代码取我不清楚

我明天去看看

不要小看某假装成OS的编辑器啊

(require 'color)
(set-face-attribute 'pesudo 'attrib (color-darken-name (face-background 'default) .4))

(color-darken-name (face-background 'default) .4) 的值似乎是 #31232f2c2e30 并不是个 HEX 16色,我不太清楚是啥 :sweat_smile:

看了看文档,大概明白了,谢谢!

设置 awesome-tab 背景透明的方法应该出来了,就一句 (setq awesome-tab-background-color (face-background 'default)) ,但是目前还遇到了两个问题:

  1. 在配置里修改后启动完并不是和主题背景(#32302f)一样的(变成了#282828),我觉得大概是加载顺序的问题,因为启动时message了一下结果刚启动时的主题背景也是#282828
  2. awesome-tab-selected的颜色修改也没有正确显示,我并不知道修改选中tab的背景颜色就究竟对应哪个变量名

下面是我的init-tab配置

(push (expand-file-name "lisp/awesome-tab" user-emacs-directory) load-path)

(require 'awesome-tab)
(awesome-tab-mode t)
(setq awesome-tab-style 'bar)
(setq awesome-tab-background-color (face-background 'default))
(setq awesome-tab-selected-background (face-background 'default))
(setq awesome-tab-selected-foreground (face-background 'default))
(setq awesome-tab-selected-color (face-background 'default))
(setq awesome-tab-selected (face-background 'default))
(message (face-background 'default))
(message awesome-tab-background-color)

(provide 'init-tab)

awesome-tab版本应该是最新的
测试环境windows,目前手头上还没有Linux能用

另附:
*scratch*中直接用 (setq awesome-tab-background-color (face-background 'default)) 修改是有效果的

不是16色,能用就行,反正face的color认

可以再研究一下,根据 default 颜色的变化而动态变化。

欢迎研究出来发补丁啊,哈哈哈哈

最近可能还会搞一下,可是awsome-tab-selected的颜色背景感觉就是定不好,而且也没写过补丁啊

标签颜色可以通过当前背景色的灰度变换做到完全自适应主题

补丁很简单啊,github改改点击按钮就提交了

试试after-init-hook?

找到问题了,我使用了 synchronize-theme 把主题和时间同步,所以主题可能加载顺序总是很前面而且经常会改变,所以把 awesome-tab 的颜色设置放在 synchronize-theme 里面就背景一致了,而且更改主题的时候tab的空白部分背景也会跟着改,然而我还是不知道怎么改 awesome-tab-selected颜色因为这东东似乎怎么都改不了 @manateelazycat 代码放下面了

(defun synchronize-theme ()
  (interactive)
  (setq hour
        (string-to-number
         (substring (current-time-string) 11 13)))
  (if (member hour (number-sequence 8 18))
      (progn
        (setq now day-theme)
        (message "Day Now"))
    (progn
      (setq now night-theme)
      (message "Night Now")))
  (progn
    (load-theme now t)
    (setq-default awesome-tab-background-color (face-background 'default))
    (setq-default awesome-tab-selected-background (face-background 'default))
    (setq-default awesome-tab-selected-foreground (face-background 'default))
    (setq-default awesome-tab-selected-color (face-background 'default))
    (setq-default awesome-tab-selected (face-background 'default))))

(run-with-timer 0 3600 'synchronize-theme)

这是目前能达到的效果