<commit_before>#+TITLE:   ui/window-select
#+DATE:    October 8, 2017
#+SINCE:   v2.0.7
#+STARTUP: inlineimages

* Table of Contents :TOC:
- [[#description][Description]]
  - [[#module-flags][Module Flags]]
  - [[#packages][Packages]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
  - [[#ace-window][ace-window]]
  - [[#switch-window][switch-window]]

* Description
This module provides several methods for selecting windows without the use of
the mouse or spatial navigation (e.g. =C-w {h,j,k,l}=).

The command ~other-window~ is remapped to either ~switch-window~ or
~ace-window~, depending on which backend you've enabled. It is bound to ~C-x o~
(and ~C-w C-w~ for evil users).

It also provides numbered windows and selection with the ~winum~ package, if
desired. Evil users can jump to window N in =C-w <N>= (where N is a number
between 0 and 9). Non evil users have =C-x w <N>= instead.

** Module Flags
+ =+switch-window= Use the switch-window package as the backend, instead of
  ace-window (avy).
+ =+numbers= Enable numbered windows and window selection (using winum).

** Packages
+ [[https://github.com/dimitri/switch-window][switch-window]] (if =+switch-window=)
+ [[https://github.com/abo-abo/ace-window][ace-window]] (if =+switch-window= isn't enabled)
+ [[https://github.com/deb0ch/emacs-winum][winum]] (if =+numbers=)

* Prerequisites
This module has no additional dependencies.

* TODO Features
* Configuration
This module provides two backends, both providing the same functionality, but
with different visual cues. They are =ace-window= and =switch-window=.

** ace-window
The first character of the buffers changes to a highlighted, user-selectable
character.

 + Pros: the content of the buffers are always visible.
 + Cons: The displayed characters are small and difficult to see.

** switch-window
Replaces the entire buffer with large letters.

 + Pros: The displayed characters are /really/ easy to see.
 + Cons: You can't see the contents of the buffers.<commit_msg>Clarify ace-window font size and add example<commit_after>#+TITLE:   ui/window-select
#+DATE:    October 8, 2017
#+SINCE:   v2.0.7
#+STARTUP: inlineimages

* Table of Contents :TOC:
- [[#description][Description]]
  - [[#module-flags][Module Flags]]
  - [[#packages][Packages]]
- [[#prerequisites][Prerequisites]]
- [[#features][Features]]
- [[#configuration][Configuration]]
  - [[#ace-window][ace-window]]
  - [[#switch-window][switch-window]]

* Description
This module provides several methods for selecting windows without the use of
the mouse or spatial navigation (e.g. =C-w {h,j,k,l}=).

The command ~other-window~ is remapped to either ~switch-window~ or
~ace-window~, depending on which backend you've enabled. It is bound to ~C-x o~
(and ~C-w C-w~ for evil users).

It also provides numbered windows and selection with the ~winum~ package, if
desired. Evil users can jump to window N in =C-w <N>= (where N is a number
between 0 and 9). Non evil users have =C-x w <N>= instead.

** Module Flags
+ =+switch-window= Use the switch-window package as the backend, instead of
  ace-window (avy).
+ =+numbers= Enable numbered windows and window selection (using winum).

** Packages
+ [[https://github.com/dimitri/switch-window][switch-window]] (if =+switch-window=)
+ [[https://github.com/abo-abo/ace-window][ace-window]] (if =+switch-window= isn't enabled)
+ [[https://github.com/deb0ch/emacs-winum][winum]] (if =+numbers=)

* Prerequisites
This module has no additional dependencies.

* TODO Features
* Configuration
This module provides two backends, both providing the same functionality, but
with different visual cues. They are =ace-window= and =switch-window=.

** ace-window
The first character of the buffers changes to a highlighted, user-selectable
character.

 + Pros: the content of the buffers are always visible.
 + Cons: Requires custom configuration to show large letters.
 
**** Custom font-face example
This changes the ace-window display to show a white letter with a red background. The box attribute adds some padding.
#+BEGIN_SRC elisp
  (custom-set-faces
   '(aw-leading-char-face
     ((t (:foreground "white" :background "red" :weight bold :height 2.5 :box (:line-width 10 :color "red"))))))
#+END_SRC 

** switch-window
Replaces the entire buffer with large letters.

 + Pros: The displayed characters are /really/ easy to see.
 + Cons: You can't see the contents of the buffers.
{'fraction_non_alphanumeric': 0.131508078994614, 'fraction_numerical': 0.0058348294434470375, 'mean_word_length': 4.468711656441718, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5198371', 'n_tokens_mistral': 1405, 'n_tokens_neox': 1333, 'n_words': 515}