Wassily Kondratev <wk@xxxxxxxxxxx> writes:
> New clients have "default" appearance, even if some theme has been applied
> globally. How to make certain theme default?
>
> I tried:
>
> (defvar xwem-theme-new
> ;; ...
> )
>
> [code]
> (defun my-xwem-theme-setup ()
> (xwem-theme-apply xwem-theme-new)
> (setf xwem-theme-default xwem-theme-new)
> )
> (add-hook 'xwem-after-init-hook 'my-xwem-theme-setup)
> [/code],
>
> bit it did no effect. Experiments with xwem-cl-create-hook also gave nothing.
Sorry about total leak of documentation, but which exactly look you
want to change? You could take a look at `xwem-face-default-theme'
and `xwem-face-extrim-theme' to find out faces that you can change.
xwem faces are build on top of specifiers and tag sets. domains for
speciers are: xwem frame, xwem window or xwem client - i.e. each face
can have diffirent values according to domains. Besides domains xwem
faces has tag list - list of symbols that denotes face state, for
example, consider 'xwem-tabber-face - face used to display tabs in
frame. If tag list is '(frame-selected tab-selected) it has one
foreground/background colors, but if tag list is '(frame-nonselected
tab-selected) it has different foreground/background colors.
So, every face look is configured as set of tag lists and face
values. And every face can have domain-local values.
> (setf xwem-theme-default xwem-theme-new)
No, themes is not the root thing to control look and feel of xwem
domains (frame, window, client). themes is just an easy to use
interface to root things, such as (frame properties, clients
properties, xwem faces, colors, etc)
So, this setf means nothing for xwem. yes, "default" is
bad(confusing) name for theme, but this theme tries to revert
configuration(faces, cursors, frame/client properties) to default
values.
Once you've created a theme you want to use, simple add this:
(xwem-theme-apply my-theme)
To your xwemrc.
However take a note that:
1) 'frame-property theme instances are not applied to any frames -
because at the time of xwemrc execution there no xwem frames at
all. To modify default frame properties you should tweak
`xwem-frame-default-properties' variable.
2) 'client-property theme instances also not applied to any client -
becauses at the time of xwemrc execution there no xwem clients.
To modify default client properties use
`xwem-client-default-properties' or use `xwem-manage-list' if you
want different properties for different clients.
When you define new theme, there only few theme instances you may use:
* 'face - specifies xwem face
* 'frame-property - specifies domain-local(either valid xwem frame
or global) frame property.
* 'client-property - specifies domain-local(either valid xwem client
or global) client property.
* 'custom - specifies value for custom variable.
So, as you can see, themes is only jointed interface to diffirent root
instances that controls look and feel.
NOTE: to apply theme interactively use H-M-x xwem-theme-set RET
--
lg
|