sunflower uses the following special characters outside US-ASCII: ◊«». this section documents how to type them in various environments.

operating systems

macOS (default)

  • : Option+Shift+V
  • «: Option+\
  • »: Option+Shift+\

macOS (rebinding)

go to Settings -> Keyboard -> Text Replacements and enter the replacements of your choice. Matthew Buttrick also recommends Typinator.

Windows (default)

  • : holding down Alt, type 9674 on the numpad.
  • «: holding down Alt, type 0171 on the numpad.
  • »: holding down Alt, type 0187 on the numpad.

Windows (rebinding)

I've heard good things about WinCompose. Alternatively, there's always AutoHotKey:

; Binds Alt-f to ◊, Alt-j to «, Alt-k to ».
!f:: Send {U+25CA}
!j:: Send {U+00AB}
!k:: Send {U+00bB}

Linux (default)

  • : Ctrl+Shift+U 2 5 C A Enter
  • «: Ctrl+Shift+U A B Enter
  • »: Ctrl+Shift+U B B Enter

Linux (rebinding)

you have several options here.

Compose key

This requires you to have a compose key somewhere on your keyboard. See the Arch Wiki. On GNOME, you can configure it in Settings -> Keyboard -> Compose Key.

  • : no default binding. Instead you can use the alias : Compose < >
  • «: Compose < <
  • »: Compose > >

key remapping daemon

i like keyd. a lot of people i know like kmonad. i cannot in good conscience recommend xmodmap, but it is an option.

editors

vscode (rebinding)

Open a snippets file (File -> Preferences -> Configure Snippets -> New Global Snippets File -> "flower"). Add the following config:

{
	"Lozenge": {
		"prefix": "\\f",
		"body": ["◊"]
	},
	"Left Guillemot": {
		"prefix": "\\j",
		"body": ["«"]
	},
	"Right Guillemot": {
		"prefix": "\\k",
		"body": ["»"]
	}
}

vim, neovim, emacs Evil mode

  • : Ctrl-K L Z
  • «: Ctrl-K < <
  • »: Ctrl-K > >

neovim (rebinding)

use vim.keymap.set:

vim.keymap.set('i', '\\f', '◊', { desc = "Lozenge" })
vim.keymap.set('i', '\\j', '«', { desc = "Sunflower open quote" })
vim.keymap.set('i', '\\k', '»', { desc = "Sunflower close quote" })

emacs

(global-set-key "\M-\\" "◊"), or C-\ rfc1345 RET to toggle an input mode where &LZ (<<, >>) produces («, »).

jyn, how do you type it?

on Windows, i use the neovim rebinding with no OS-level binding. on my home desktop, i have this bound to the symbol layer of my keyboard.