manateelazycat/awesome-tray

awesome-tray 一些显示问题.

zw963 opened this issue · 13 comments

zw963 commented

目前使用过程中, 主要遇到两个问题:

当开启多个 window 时, 鼠标挪到 tray 上面, 看到很多重复的 tray 信息, 体验较差.

1.gif

和 tabbar.el 在一起不工作

1.png

awesome-tray 相关的配置:

(require 'awesome-tray)
(awesome-tray-mode 1)

(provide 'awesome-tray_init)
;;; awesome-tray_init.el ends here

tabbar 相关的配置 (网上抄的)

(when (require 'tabbar nil t)
  (set-face-attribute 'tabbar-default nil
                      :background "gray20"
                      :foreground "gray20"
                      :box '(:line-width 1 :color "gray20" :style nil))
  (set-face-attribute 'tabbar-unselected nil
                      :background "gray30"
                      :foreground "white"
                      :box '(:line-width 5 :color "gray30" :style nil))
  (set-face-attribute 'tabbar-selected nil
                      :background "gray75"
                      :foreground "black"
                      :box '(:line-width 5 :color "gray75" :style nil))
  (set-face-attribute 'tabbar-highlight nil
                      :background "white"
                      :foreground "black"
                      :underline nil
                      :box '(:line-width 5 :color "white" :style nil))
  (set-face-attribute 'tabbar-button nil
                      :box '(:line-width 1 :color "gray20" :style nil))
  (set-face-attribute 'tabbar-separator nil
                      :background "gray20"
                      :height 0.6)
  ;; Enable tabbars globally:
  (tabbar-mode 1)
  (global-set-key [(meta \9)] 'tabbar-backward-tab)
  (global-set-key [(meta \0)] 'tabbar-forward-tab)

  (setq tabbar-buffer-list-function
        (lambda ()
          (remove-if
           (lambda (buffer)
             (or
              (string-match "^\\*.*\\*.*$\\|Scratch.txt" (buffer-name buffer))
              (eql major-mode 'dired-mode))
             )
           (buffer-list))))

  (defun tabbar-buffer-groups ()
    "Return the list of group names the current buffer belongs to.
Return a list of one element based on major mode."
    (list
     (cond
      ((or (get-buffer-process (current-buffer))
           ;; Check if the major mode derives from `comint-mode' or
           ;; `compilation-mode'.
           (tabbar-buffer-mode-derived-p
            major-mode '(comint-mode compilation-mode)))
       "Process"
       )
      ((member (buffer-name)
               '("*scratch*" "*Messages*"))
       "Common"
       )
      ((eq major-mode 'dired-mode)
       "Dired"
       )
      ((memq major-mode
             '(help-mode apropos-mode Info-mode Man-mode))
       "Help"
       )
      ((memq major-mode
             '(rmail-mode
               rmail-edit-mode vm-summary-mode vm-mode mail-mode
               mh-letter-mode mh-show-mode mh-folder-mode
               gnus-summary-mode message-mode gnus-group-mode
               gnus-article-mode score-mode gnus-browse-killed-mode))
       "Mail"
       )
      ((memq major-mode
             '(ruby-mode enh-ruby-mode rhtml-mode feature-mode js2-mode js-mode
                         yaml-mode haml-mode slim-mode css-mode scss-mode coffee-mode
                         markdown-mode sql-mode html-mode handlebars-mode sh-mode
                         python-mode web-mode dockerfile-mode scss-css-mode nginx-mode
                         ))
       "Web Develop"
       )
      ((memq major-mode
             '(dev-mode emacs-lisp-mode makefile-bsdmake-mode
                        nxml-mode conf-unix-mode-hook
                        ))
       "Develop"
       )
      ((memq major-mode
             '(text-mode org-mode
                         ))
       "Text"
       )
      (t
       ;; Return `mode-name' if not blank, `major-mode' otherwise.
       (if (and (stringp mode-name)
                ;; Take care of preserving the match-data because this
                ;; function is called when updating the header line.
                (save-match-data (string-match "[^ ]" mode-name)))
           mode-name
         (symbol-name major-mode))
       ))))
  )

(provide 'tabbar_init)
;;; tabbar_init.el ends here

第一个问题是因为你的版本太旧了(最开始的bug), 新版没有问题.
我的 awesome-tab.el 没有问题, 可以很好的工作, 我不想去给 tabbar.el 修bug, 如果你要真的要坚持 tabbar.el , 请自己排查吧.

谢谢你的反馈.

zw963 commented

@manateelazycat , 第一个问题还是存在的. 483ef5b, 开启左右两个 window 时, 鼠标在 tray 晃动几下, 然后就会看到一大堆信息.

zw963 commented

第二个问题, 配置应该是没问题的, 因为用了很多年了, 不过 tabbar.el 的确很老了, 我升级为 aquamacs-tabbar, 解决了.

zw963 commented

第一个问题, 当查看 flycheck 提示错误信息时, 也会出现.

@manateelazycat , 第一个问题还是存在的. 483ef5b, 开启左右两个 window 时, 鼠标在 tray 晃动几下, 然后就会看到一大堆信息.

Fix at 7e573fd

zw963 commented

你好, 更新后发现了更严重的问题, 直接启动卡死了, 是那种 kill -9 才能杀掉的卡死, 我移除掉其他所有 package, 还是依旧, 因为这个插件启动太早了, 没有太多错误信息:

Loading /home/zw963/Dropbox/common/.emacs.d/set_load_path.el (source)...done
Loading /home/zw963/Dropbox/common/.emacs.d/base_init.el (source)...
Loading /home/zw963/.emacs.d/recentf...done
Cleaning up the recentf list...done (0 removed)
Loading /home/zw963/Dropbox/common/.emacs.d/base_init.el (source)...done
Loading /home/zw963/Dropbox/common/.emacs.d/functions.el (source)...done
Loading /home/zw963/Dropbox/common/.emacs.d/init.el (source)...
Loading /home/zw963/Dropbox/common/.emacs.d/keybindings.el (source)...done
Loading /home/zw963/Dropbox/common/.emacs.d/autoloads.el (source)...done
string-suffix-p: Wrong type argument: stringp, nil
Mark set                                                                                                           (10:0 bottom) dir:.emacs.d git:test messages-buffer-mode [2018-11-18 13:30]
Mark activated                                                                                                        (10:0 83%) dir:.emacs.d git:test messages-buffer-mode [2018-11-18 13:30]
zw963 commented

可以确认为最新的修改引入的问题, 回滚后可以启动了.

你好, 更新后发现了更严重的问题, 直接启动卡死了, 是那种 kill -9 才能杀掉的卡死, 我移除掉其他所有 package, 还是依旧, 因为这个插件启动太早了, 没有太多错误信息:

Loading /home/zw963/Dropbox/common/.emacs.d/set_load_path.el (source)...done
Loading /home/zw963/Dropbox/common/.emacs.d/base_init.el (source)...
Loading /home/zw963/.emacs.d/recentf...done
Cleaning up the recentf list...done (0 removed)
Loading /home/zw963/Dropbox/common/.emacs.d/base_init.el (source)...done
Loading /home/zw963/Dropbox/common/.emacs.d/functions.el (source)...done
Loading /home/zw963/Dropbox/common/.emacs.d/init.el (source)...
Loading /home/zw963/Dropbox/common/.emacs.d/keybindings.el (source)...done
Loading /home/zw963/Dropbox/common/.emacs.d/autoloads.el (source)...done
string-suffix-p: Wrong type argument: stringp, nil
Mark set                                                                                                           (10:0 bottom) dir:.emacs.d git:test messages-buffer-mode [2018-11-18 13:30]
Mark activated                                                                                                        (10:0 83%) dir:.emacs.d git:test messages-buffer-mode [2018-11-18 13:30]

42e9bad 已经修复了, 不好意思, 代码不够健壮.

zw963 commented

问题1 已经修复, 问题2 在升级到最新的 tabbar 之后, 也已经可用, 非常感谢!

问题1 已经修复, 问题2 在升级到最新的 tabbar 之后, 也已经可用, 非常感谢!

谢谢反馈

mut0u commented

我也有同样的问题, awesome-tab 使用的commit 是7f164d312a724c789bd596fba04d6625a388e03cawesome-tray的commit 是afaaeca97a694ad48336dd5dc906273c36448ba4
我在custom.el 中设置了themes。启动过程中, custom加载themes的时候, 会使tray 失效。
image

使用awesome-tray-mode 重新enable 这个mode 的时候, awesome-tab 会出现显示问题。
image

应该是

  (set-face-attribute 'mode-line nil
                      :foreground awesome-tray-mode-line-active-color
                      :background awesome-tray-mode-line-active-color
                      :height 0.1
                      :box nil)

是这个造成的。

你的主题和mode-line height属性冲突,请先用emacs -q 做横向对比测试

谢谢

mut0u commented

.emacs文件只加载awesome-tabawesome-tray

(add-to-list 'load-path (expand-file-name "~/elisp"))
(require 'awesome-tray)
(awesome-tray-mode 1)
(require 'awesome-tab)
(awesome-tab-mode t)

awesome-tray 会让tab 的宽度改变
image