Tim, if things improve with "gray" for the people involved in that particular discussion about that particular face, then I see that as No Bad Thing. I also agree with you that default face design is hard. If you are knowledgeable in this matter and have suggestions for better more robust faces in Eglot we would be delighted to accept them. Joao On Sat, Mar 5, 2022, 10:21 Tim Cross wrote: > > João Távora writes: > > > Hello Tim, > > > > The goal here, I think, was not to decide if the change had merit or > not. As far as I understand there are demonstrable functional > > problems with the faces default settings as chosen by Brian himself. > > > > I presume Brian is just trying to fix those problems, a legitimate goal > that cannot be left to "theme authors". There is such a thing > > as the "default theme" and we are all its authors. > > > > Brian is just asking if it is "legal" to take inspiration for decorative > face settings from a different project outside GNU ELPA. I believe > > it is quite legal, but I'm not a specialist so suggested he ask here. > > > > I understand. For the default value of a face, I think the key is to > look at the documentation of defface and use the facilities it has to > set a default based on the local environment. For example, use a face > spec which sets a different foreground colour based on whether the user > is using a light or dark theme, is running in a GUI frame or a terminal > or console etc. Just using :foreground "grey" is unlikely to give > adequate default face specification for all environments. > > Defining good default face specifications is harder than most people > realise. One way to simplify things and get a reasonable default is to > define the face to inherit from one of the standard built-in faces. For > example font-lock-warning-face. These faces have been implemented to > have reasonable defaults for most environments and provided they are > wrapped in a defcustom, the user can customise to suit their personal > preferences if desired (including turning of the inheritance). > > I don't believe there is any copyright issue here as you are not using > any lsp-mode code. You are defining a face, using standard Emacs > facilities and setting its attributes. lsp-mode has no copyright over > face attribute values. > > Personally, I wish more packages would define their faces in terms of > inheritance from standard/built-in faces. This would mean a user could > tweak the built-in faces to suit their preferences and the additional > packages would inherit those tweaks without needing to be done > individually. >