mu4e with helm

Finally a decent mail client =)

TL;DR => try mu4e.

When one has to choose a mail client, all sorts of complicated criteria start to raise.
Some known GUI alternatives:
– Evolution
– Thunderbird
– Claws
– Balsa
– Sylpheed
– Kmail
– …

now let’s continue with text-interface
– Alpine – Linus one btw ;)
– mutt – probably a lot of dev’s use this one.

& this is not over with Emacs ones :
– gnus
– rmail
– mew
– wanderlust…

OK, in this mua jungle i’ve found two recent excellent companions : one for the desktop & one for Emacs.
On the gui side, Geary brought a lot of cool stuff. Please look at some shots/blogs. Its a modern linux mail client.

Now, on the dark side, i’ve discovered mu4e. Finally!

QUICK DESC
. mu4e does not get your mail itself, you sync it locally, then it indexes it and you work from there
. reading / search / etc is done inside a dedicated emacs major mode
. composing is another major mode (inheriting from standard gnus composer)

CONS
. so, a little bit of set up to get your mails locally *and correctly*. some setup on mu4e emacs
. no (obvious) folders management tool (rename/reorganize/…)
. you probably want to use mu git version ;)

PROS
. correct speed to update [given indexing is instant, that's either offlineimap or msync time...]
. really great speed to jump around (folders / bookmarked searches)
. terrific speed to search (folder / from / size / date / or really whatever)
. terrific speed to handle several mails at once, a-la dired.
. open attachment / links correctly fast
. native is txt view, & you can handle html really easily
. good native contacts management – no set up for this.
. quite easy to use, small learning curve, very small if you use emacs dired
. emacs extensibility… which contributes to the good user feeling

SOME NOTES

You can easily ask an email to be converted per w3m.
mu4e-html2text-command « w3m -dump -T text/html »

But you can also view in browser…
(add-to-list ‘mu4e-view-actions
‘(« ViewInBrowser » . mu4e-action-view-in-browser) t)

I prefer to kill buffer after sending a message.
message-kill-buffer-on-exit t

Don’t forget to say to Emacs to use mu4e to both read-mail and compose-message (but generally you do compose from mu4e).

FOLDERS WITH HELM

I’m an old-school gui-retarded guy who uses imap folders. Yup. (Which might explain why mutt does not meet my needs.)
So, mu4e properly allows you to jump around from one folder to another, and default completion is ido
=> you have some sort of « browsing ».

You can « refile » mail to a default folder.
You can easily have helm to jump from to one folder (& move mails to).

(defun pyl-mu4e-read-maildir (prompt maildirs predicate require-match initial-input)
(helm-comp-read prompt maildirs
:name prompt
:must-match t))

Then choose this func.

(setq  mu4e-completing-read-function ‘pyl-helm-mu-compl-read)

Actually this is the quickest possible way to handle folders.
mu4e just missed folder management! well, I guess I’ll post about this.
– Create a new folder : run ‘mu mkdir’ from an async command (curiously mu4e does not provide this one!)
– Delete a folder : This depends, but with offline imap this tends to s*!#. Actually you need to both remove the local folder + remove the remote one! what if you have 2 offlineimap??? ouch.

I’ll look at this before « renaming » and « moving » a folder properly…

Publié dans emacs | Marqué avec , | Laisser un commentaire

Sad but part of life

I was sad to see that one contributor does not like GNOME anymore : http://pvanhoof.be/blog/index.php/2014/09/10/please-remove-me-from-planet-gnome. I guess there would have been better ways to express this however.

We (users) could argue Tracker is not the most succesful tech right now in the desktop ; we could especially argue lots of good stuff is happening to GNOME despite what some feel.

Why would one single desktop satisfy everyone? Let’s put rants aside. Would we see tomorrow while looking at the past?

Publié dans Gnome | Laisser un commentaire

offline ownCloud notes, thanks to GUADEC!

Bijiben offers from some time now, to work with ownCloud notes. The way it works is to use the webdav folder available through gnome-online-accounts. All ownCloud notes are there, ready to be amended. It’s obviously also possible to create new notes or delete obsoletes ones.

Well, that’s simple, but does not offer an offline mode.

As expected, GUADEC has been a great opportunity to finally meet so much people I only knew trough the net – which has been a fun.

How is that related?

I did not expect to meet Jan-Christoph from ownCloud, and not only I met him, but also he demoed me ownCloud client configuration format. We obviously agreed it would be better, whenever a user has a client installed, to rely on the local, already synced material rather to work with online webdav notes.

Thus, I just implemented this tonight, and from whoever installs an ownCloud client and synchronize his files, notes will still be available offline. It will still be possible to create notes while offline, and they will be synced whenever network comes back.

guadec-2014-badge-small

Big up to GUADEC and Jan-Christoph venue!

Publié dans Bijiben, Gnome | Marqué avec | Laisser un commentaire

First GUADEC ever!

My very first GUADEC, finally!

I already looked at previous GUADEC, however, I could not attend these. How sad. 2013 : for example, I missed « GNOME and ownCloud – desktop plus web for a holisic experience » (you can still see http://www.superlectures.com/guadec2013/) or « News from the GNOME OSTree project ».

guadec-2014-badge-small

Of course this is not only about the schedule. This is also, obviously, about meeting people. Now its time not to regret anything and to come!

Publié dans Gnome | Laisser un commentaire

Notes welcome

Hey!,

do you want to easily contribute to GNOME? Allan Day has a recipe for you!

1) Fire up your favourite browser

2) Look at known bugs, and help GNOME fixing these. Some of them are a good way to make your own path to GNOME. Really. Once you tasted fixing something for both yourself and others, chances are you’ll get addicted to.

 

OK, (1) is easy, but what about (2)? That’s where Allan worked: now for some modules you have these bugs just there waiting for you, for example Documents or Contacts.

Or, if you want to help on some « Notes » issues or improvements, I recently started a similar list. Pick one of these seven bugs and fix it =)

The scope is quite limited now but i’d rather prefer show what’s really good to go. I think making this list broader.

 

Publié dans Bijiben, Gnome | Laisser un commentaire

Notes – some first 3.13 bits

Blogging late about this : 3.13.1 is released from a long time now!

Since it’s so early on the road to 3.14, it was reasonable to push some changes to Notes

- What Evolution calls « memos » is often referred to as « VJOURNAL ». This is small notes you write onto your calendar. Until now Notes only had two backends (« providers ») : local (xml local files, in order to let user rsync or dropbox it) and ownCloud (still, files). Now there is VJOURNAL support, so whoever has a remote calendar supporting this can make Notes display – and edit – these notes.

Actually this was also a test I did to check how awful was coding a new provider. Turns out, it’s not that bad actually, but obviously improvements might be made. I vaguely started documenting this – have a look at the wiki if interested!

- Remove Clutter. This will improve performance – and should make wayland ok (ouch, on my station unfortunately there are some issues before to confirm this).

This means the selection popover which arises whenever text is selected is now implemented differently. This did not come without bugs.

- Focus new notes: 徐春阳 (Chunyang Xu) fixed a very nasty bug. Now newly created notes will focus when opened. This is way more comfortable.

 

3.14 has a lot more planned. Another post about this soon.

Publié dans Bijiben, Gnome | Laisser un commentaire

Still emacs

seems like, once one tasted making its editor behave like expected, there is no return. (yup, yet another post about emacs.)

You can’t go back letting others decide your tool. Given resistance is futile, and given I don’t know lisp, well I just fired up some awful code, however providing me just what i need. For now, I just messed up evil-mode & it does not matter much given i just can’t use any other keymap [with one little exception below]. I’ll take more time improving and making richer this code, all the emergency was to have something usable, and more usable than anything else. Evil-mode really rocks, given one can declare its own « states », its own motion, and given they made a precious work on keymaps behavior.

welcome to bodhi-evil =)

https://github.com/pyluyten/devil-mode

The idea is a a-la-vim paddle, i j k l, to move on per char. Extended paddle,  u & o, are word backward and forward. use control to move on, use alt to delete (thus: char with jl, word with up, line with ik). Basically that’s all you have to remember. perl $ will directly move you to end of line (^ is not needed here. Use quoted insert if you really need $cash$). In the same way, ^ for indentation. Selections will use the same i j k l paddle, but modifier is not needed, and I kept vim motions like b & w & e and so on, and x/c will directly cut/copy without modifier needed neither (well, text is selected, would you really enter c??). The rest is cua so you already know it : ^f to find (either regexp or search…), ^r to replace, ^s to save, ^z to undo, ^w to close, ^n for new… Plus some bonus like ^x x to kill line, ^c c to copy line, or « Mx one » to delete any other window,  or simply « ² » for ibuffer.

 

Later on, once the code is richer,  I’ll want to make this work onto ErgoEmacs to benefit from layout and options, and have a ground to code things more properly. I like this idea, and having tested ergoemacs « Standard » theme, that’s quite close to my conclusion. Ergoemacs also has i j k l and also has u o. And also has cua. That’s for the common points. And that’s the little exception, since so close to my approach, ErgoEmacs appear to be usable as-is.

 

If you did not look at ErgoEmacs & Evil-Mode, well, you really should. A text editor is basically about editing text. Ain’t it?

Publié dans emacs | Marqué avec , | Laisser un commentaire

Emacs selection mode

I thought about implementing operator+motion pattern keymap into emacs, but for now, i miserably failed. I still want to – later on.

However, I realized yesterday there is one context where, even with a « non modal » text editor, you should navigate without modifier. This is selecting text. While you are selecting : why should you press ^e to go end of line? Given you have a selection, typing e should be enough. Emacs knows you are extending your selection.

Thus, my first piece of lisp is a simple mode to change behaviour when mark is set. In such case, you can move without modifiers. I’ve tried to ways:

- the sort of vim way. Use ^ or $, ijkl

- sort of emacs read-only modes way. Use a e n p.

That’s a start. Seems this might be useful, at least for me =)

 

;;          KEYMAP
;; ——————————————–
(defvar devil-mode-map nil « Keymap for devil-mode »)

(defun devil-add-selection-keymap ()
  (when (not devil-mode-map)
  (setq devil-mode-map (make-sparse-keymap))

  ;; version VIM + CUA

  ;—————— moves ————————-
  ;(define-key devil-mode-map (kbd « l ») ‘forward-char)
  ;(define-key devil-mode-map (kbd « j ») ‘backward-char)
  ;(define-key devil-mode-map (kbd « k ») ‘next-line)
  ;(define-key devil-mode-map (kbd « i ») ‘previous-line)
  ;(define-key devil-mode-map (kbd « $ ») ‘end-of-line)
  ;(define-key devil-mode-map (kbd « a ») ‘beginning-of-line)
  ;(define-key devil-mode-map (kbd « ^ ») ‘back-to-indentation)
  ;(define-key devil-mode-map (kbd « w ») ‘forward-word)
  ;(define-key devil-mode-map (kbd « b ») ‘backward-word)
  ;
  ;;—————— operators ————————-
  ;(define-key devil-mode-map (kbd « c ») ‘kill-ring-save)
  ;(define-key devil-mode-map (kbd « x ») ‘kill-region)
  ;(define-key devil-mode-map (kbd « d ») ‘kill-region)
  ;(define-key devil-mode-map (kbd « z ») ‘exchange-point-and-mark)
 

  ;; version EMACS

  ;—————— moves ————————-
  (define-key devil-mode-map (kbd « f ») ‘forward-char)
  (define-key devil-mode-map (kbd « b ») ‘backward-char)
  (define-key devil-mode-map (kbd « n ») ‘next-line)
  (define-key devil-mode-map (kbd « p ») ‘previous-line)
  (define-key devil-mode-map (kbd « e ») ‘end-of-line)
  (define-key devil-mode-map (kbd « a ») ‘beginning-of-line)
  (define-key devil-mode-map (kbd « m ») ‘back-to-indentation)
  (define-key devil-mode-map (kbd « M-f ») ‘forward-word)
  (define-key devil-mode-map (kbd « M-b ») ‘backward-word)

  ;—————— operators ————————-
  (define-key devil-mode-map (kbd « w ») ‘kill-ring-save)
  (define-key devil-mode-map (kbd « k ») ‘kill-region)
  (define-key devil-mode-map (kbd « d ») ‘kill-region)
  (define-key devil-mode-map (kbd « x ») ‘exchange-point-and-mark)
  (define-key devil-mode-map (kbd « space ») ‘devil-unset-mark)
  )

  (set-temporary-overlay-map devil-mode-map t)
)

;;             toggle keymap
;; ——————————
(defun devil-activate-selection-state ()
   (devil-add-selection-keymap)
)

(defun devil-deactivate-selection-state ()

)

(add-hook ‘activate-mark-hook ‘devil-activate-selection-state)

(add-hook ‘activate-mark-hook ‘devil-deactivate-selection-state)

;;         define mode
;; ——————————

(define-minor-mode devil-mode
  « clavier bien tempéré »
 :lighter  » dev »
)

(provide ‘devil-mode)

 

Publié dans emacs | Laisser un commentaire

Notes – 3.12

Notes is close to 3.12, and i wanted to take a brief look at 3.12 changes. There was not big huge revamps this release, which is sometimes necessary for the sake of the code and its users. However,

The most visible part. is probably that list view is now fixed, meaning, there are now several columns, and i’m a bit shameful there was not before

.Image

A trash bin has been added, so you can restore or really delete trashed notes. This will work with previous version, since former « delete » is current « trash ». Access this through application menu.

Image

Also, Notes is now is single-window application : you can still « detach » notes, but you will not have several main views. Notice that detached window has no « back » button – second window only allows to visit a note. Why would you have two « main windows »? This made no sense. As a consequence, I added the bit to memorize window position and size and use it at next startup. Still, default width changed. Use « open in another window » from the selection toolbar or from the note gear menu.

Image

(You might have noticed former « collection » is now renamed « notebook ».)

Some nice fixes : now you need to scroll at the lowest part to see the « load more button ». Search does not propose anymore completion since anyway you have results as you type. For the sake of developers, Zeigeist is now optional, which might be useful in some situations.

Hopefully, contributors helped me. For example, as usual, Yosef Or Boczo detected itches on the code. Shobha Tyagi updated the documentation. Arnaud Bonatti added –version and –help arg to commandline. Thanks to Richard work on App data, I recently saw there are now around 40 translations, each one about 75% complete, so big kudos to GNOME translation team!

OK. I missed time to work on this release – and no, discovering Emacs Org Mode did not help, far from this =). Lot of work remains to be done. I did not work yet on important stuff like supporting IMAP backend to store notes, or getting rid of Clutter, or migrating to WebKit2, or adding features to the editor. Just wait and see? Or contribute!

Publié dans Gnome | Marqué avec | Laisser un commentaire

Notes for 3.10

Bijiben is now « Notes ». Collections appeared to replace old « tags » which were not consistent with other applications.

Overview

 

The selection mode had to evolve, too. Welcome to the new design pattern!

   SelectionMode

 

The preferences had a bit of UI change.

Preferences_1

Why a « primary book » in preferences? Because there is now a first online notes support. Currently it only works with ownCloud, and assume you setup the ownCloud account into gnome-control-center.

Which means you can setup your private ownCloud or get an account.

This was the main work this release, sadly Google Keep has no API yet but I still hope to work on other services.

Preferences_2

I’m glad the manual received some love.

Help

Still a lot to code for the future, but GNOME is getting better every day!

Publié dans Gnome | 5 commentaires