[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orgmode] Re: Agenda view > Face for deadlines > PATCH
From: |
Sébastien Vauban |
Subject: |
[Orgmode] Re: Agenda view > Face for deadlines > PATCH |
Date: |
Fri, 21 May 2010 09:43:48 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) |
Hi all,
Sébastien Vauban wrote:
> Sébastien Vauban wrote:
>> In the same kind of thought, trying to enhance the way we (or I) visualize
>> tasks in the agenda, I have chosen some sort of "inverse video" face for
>> deadlines.
>>
>> (my-org-deadline-yesterday ((t (:foreground "white" :background "#D80000"
>> :weight bold))))
>> (my-org-deadline-today ((t (:foreground "white" :background "#E9A36A"
>> :weight bold))))
>> (my-org-deadline-tomorrow ((t (:foreground "black" :background "#B4F1B3"
>> :weight bold))))
>> (my-org-deadline-later ((t (:foreground "black" :background "#AACAFC"))))
>>
>> with the following code in my .emacs file:
>>
>> ;; faces for showing deadlines in the agenda
>> (setq org-agenda-deadline-faces
>> '((1.01 . my-org-deadline-yesterday)
>> (0.99 . my-org-deadline-today)
>> (0.49 . my-org-deadline-tomorrow)
>> (0.00 . my-org-deadline-later)))
>>
>> The result is the following:
>>
>> Week-agenda (W20-W21):
>> 2010-05-18 Tue
>> _________________________________________________________________
>> Personal: 17:15-17:20 Sarah!
>> :home::errands:
>> refile: Sched. 2x: TODO [#A] Update reservations Scorpios
>> :refile::
>> x Family: xxx In -1 d.: TODO [#A] Photos-reportage Andre xxxx
>> :home::computer:
>>
>> where `xxx' is just some textual way to represent background color.
>>
>> For the sake of clarity, I'd like the first 2 characters (in front of
>> `Family', in my example) not to be "impacted" by that face. Otherwise, when
>> in inverse video, they obfuscate the view of the day separators and of the
>> deadline lines.
>
> I was so disturbed by this, and have always wanted to become (and still
> wants) enlightened in Emacs Lisp and in Org's code that I finally took the
> time to try and understand how all this works.
>
> Not easy for me, I must admit. Cannot say I can follow the code, either,
> because of lack of knowledge, on ELisp and on how to trace through the code.
>
> Though, I've been able to answer my own demand, by adding a function (code
> stolen from `org-compat.el'):
>
> (defun org-add-props-from-2 (string plist &rest props)
> "Add text properties to string, from position 2 to end.
> PLIST may be a list of properties, PROPS are individual properties and values
> that will be added to PLIST. Returns the string that was modified."
> (add-text-properties
> 2 (length string) (if props (append plist props) plist) string)
> string)
>
> and changing one line of `org-agenda.el' (L4619, function
> `org-agenda-get-deadlines'):
>
> (org-add-props txt props
>
> to
>
> (org-add-props-from-2 txt props
>
> Maybe that can be factored (much, much) more smartly?
>
> Can this be patched against the source code?
After applying my patch, and playing a bit more with the results, I observed
that entering RET on such lines (where the 2 first characters are not
highlighted anymore) does not work anymore: "command not allowed on this
line".
Is there someone more knowledgeable than I am that could help?
Best regards,
Seb
--
Sébastien Vauban
- [Orgmode] Re: Agenda view > Day separator, (continued)
- [Orgmode] Re: Agenda view > Day separator, Markus Heller, 2010/05/17
- Re: [Orgmode] Re: Agenda view > Day separator, Nick Dokos, 2010/05/17
- [Orgmode] Re: Agenda view > Day separator, Markus Heller, 2010/05/17
- [Orgmode] Re: Agenda view > Day separator, Sébastien Vauban, 2010/05/18
- [Orgmode] Re: Agenda view > Day separator, Štěpán Němec, 2010/05/18
- [Orgmode] Re: Agenda view > Day separator, Sébastien Vauban, 2010/05/18
- [Orgmode] Re: Agenda view > Day separator, Štěpán Němec, 2010/05/18
- [Orgmode] Re: Agenda view > Day separator, J. David Boyd, 2010/05/18
[Orgmode] Agenda view > Face for deadlines, Sébastien Vauban, 2010/05/18