Remove old configs

aeeee0772c2bf1c3f9755fd1e9d9b17d4b5e93ba
Alexis Sellier committed ago 1 parent 056a79e0
.config/alacritty/alacritty.yml deleted +0 -597
1 -
# Configuration for Alacritty, the GPU enhanced terminal emulator.
2 -
3 -
# Any items in the `env` entry below will be added as
4 -
# environment variables. Some entries may override variables
5 -
# set by alacritty itself.
6 -
env:
7 -
  # TERM variable
8 -
  #
9 -
  # This value is used to set the `$TERM` environment variable for
10 -
  # each instance of Alacritty. If it is not present, alacritty will
11 -
  # check the local terminfo database and use `alacritty` if it is
12 -
  # available, otherwise `xterm-256color` is used.
13 -
  TERM: xterm-256color
14 -
15 -
window:
16 -
  # Window dimensions (changes require restart)
17 -
  #
18 -
  # Specified in number of columns/lines, not pixels.
19 -
  # If both are `0`, this setting is ignored.
20 -
  dimensions:
21 -
    columns: 0
22 -
    lines: 0
23 -
24 -
  # Window position (changes require restart)
25 -
  #
26 -
  # Specified in number of pixels.
27 -
  # If the position is not set, the window manager will handle the placement.
28 -
  position:
29 -
    x: 0
30 -
    y: 0
31 -
32 -
  # Window padding (changes require restart)
33 -
  #
34 -
  # Blank space added around the window in pixels. This padding is scaled
35 -
  # by DPI and the specified value is always added at both opposing sides.
36 -
  padding:
37 -
    x: 10
38 -
    y: 10
39 -
40 -
  # Spread additional padding evenly around the terminal content.
41 -
  dynamic_padding: false
42 -
43 -
  # Window decorations
44 -
  #
45 -
  # Values for `decorations`:
46 -
  #     - full: Borders and title bar
47 -
  #     - none: Neither borders nor title bar
48 -
  #
49 -
  # Values for `decorations` (macOS only):
50 -
  #     - transparent: Title bar, transparent background and title bar buttons
51 -
  #     - buttonless: Title bar, transparent background, but no title bar buttons
52 -
  decorations: full
53 -
54 -
  # When true, alacritty starts maximized.
55 -
  start_maximized: false
56 -
57 -
scrolling:
58 -
  # Maximum number of lines in the scrollback buffer.
59 -
  # Specifying '0' will disable scrolling.
60 -
  history: 8192
61 -
62 -
  # Number of lines the viewport will move for every line scrolled when
63 -
  # scrollback is enabled (history > 0).
64 -
  multiplier: 3
65 -
66 -
  # Faux Scrolling
67 -
  #
68 -
  # The `faux_multiplier` setting controls the number of lines the terminal
69 -
  # should scroll when the alternate screen buffer is active. This is used
70 -
  # to allow mouse scrolling for applications like `man`.
71 -
  #
72 -
  # Specifying `0` will disable faux scrolling.
73 -
  faux_multiplier: 3
74 -
75 -
  # Scroll to the bottom when new text is written to the terminal.
76 -
  auto_scroll: false
77 -
78 -
# Spaces per Tab (changes require restart)
79 -
#
80 -
# This setting defines the width of a tab in cells.
81 -
#
82 -
# Some applications, like Emacs, rely on knowing about the width of a tab.
83 -
# To prevent unexpected behavior in these applications, it's also required to
84 -
# change the `it` value in terminfo when altering this setting.
85 -
tabspaces: 8
86 -
87 -
# Font configuration (changes require restart)
88 -
font:
89 -
  # Normal (roman) font face
90 -
  normal:
91 -
    # Font family
92 -
    #
93 -
    # Default:
94 -
    #   - (macOS) Menlo
95 -
    #   - (Linux) monospace
96 -
    #   - (Windows) Consolas
97 -
    family: monospace
98 -
99 -
    # The `style` can be specified to pick a specific face.
100 -
    style: Regular
101 -
102 -
  # Bold font face
103 -
  bold:
104 -
    # Font family
105 -
    #
106 -
    # If the bold family is not specified, it will fall back to the
107 -
    # value specified for the normal font.
108 -
    family: monospace
109 -
110 -
    # The `style` can be specified to pick a specific face.
111 -
    style: Bold
112 -
113 -
  # Italic font face
114 -
  italic:
115 -
    # Font family
116 -
    #
117 -
    # If the italic family is not specified, it will fall back to the
118 -
    # value specified for the normal font.
119 -
    family: monospace
120 -
121 -
    # The `style` can be specified to pick a specific face.
122 -
    style: Italic
123 -
124 -
  # Point size
125 -
  size: 11.0
126 -
127 -
  # Offset is the extra space around each character. `offset.y` can be thought of
128 -
  # as modifying the line spacing, and `offset.x` as modifying the letter spacing.
129 -
  offset:
130 -
    x: 0
131 -
    y: 0
132 -
133 -
  # Glyph offset determines the locations of the glyphs within their cells with
134 -
  # the default being at the bottom. Increasing `x` moves the glyph to the right,
135 -
  # increasing `y` moves the glyph upwards.
136 -
  glyph_offset:
137 -
    x: 0
138 -
    y: 0
139 -
140 -
  # Thin stroke font rendering (macOS only)
141 -
  #
142 -
  # Thin strokes are suitable for retina displays, but for non-retina screens
143 -
  # it is recommended to set `use_thin_strokes` to `false`
144 -
  #
145 -
  # macOS >= 10.14.x:
146 -
  #
147 -
  # If the font quality on non-retina display looks bad then set
148 -
  # `use_thin_strokes` to `true` and enable font smoothing by running the
149 -
  # following command:
150 -
  #   `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
151 -
  #
152 -
  # This is a global setting and will require a log out or restart to take
153 -
  # effect.
154 -
  use_thin_strokes: false
155 -
156 -
# Display the time it takes to redraw each frame.
157 -
render_timer: false
158 -
159 -
# Keep the log file after quitting Alacritty.
160 -
persistent_logging: false
161 -
162 -
# If `true`, bold text is drawn using the bright color variants.
163 -
draw_bold_text_with_bright_colors: true
164 -
165 -
# Colors
166 -
colors:
167 -
  # Default colors
168 -
  primary:
169 -
    background: '0x000000'
170 -
    foreground: '0xeaeaea'
171 -
172 -
    # Bright and dim foreground colors
173 -
    #
174 -
    # The dimmed foreground color is calculated automatically if it is not present.
175 -
    # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
176 -
    # is `false`, the normal foreground color will be used.
177 -
    #dim_foreground: '0x9a9a9a'
178 -
    #bright_foreground: '0xffffff'
179 -
180 -
  # Cursor colors
181 -
  #
182 -
  # Colors which should be used to draw the terminal cursor. If these are unset,
183 -
  # the cursor color will be the inverse of the cell color.
184 -
  cursor:
185 -
    text: '0x000000'
186 -
    cursor: '#8B0000'
187 -
188 -
189 -
  # Selection colors
190 -
  #
191 -
  # Colors which should be used to draw the selection area. If selection
192 -
  # background is unset, selection color will be the inverse of the cell colors.
193 -
  # If only text is unset the cell text color will remain the same.
194 -
  selection:
195 -
    text: '0xeaeaea'
196 -
    background: '0x404040'
197 -
198 -
199 -
  # Normal colors
200 -
  normal:
201 -
    black:   '#000000' # Black
202 -
    red:     '#B03060' # Maroon
203 -
    green:   '#66CDAA' # Medium aquamarine
204 -
    yellow:  '#FFE4B5' # Moccasin
205 -
    blue:    '#483D8B' # Dark slate blue
206 -
    magenta: '#663399' # Rebecca purple
207 -
    cyan:    '#ADD8E6' # Light blue
208 -
    white:   '#BEBEBE' # Gray
209 -
210 -
  # Bright colors
211 -
  bright:
212 -
    black:   '#A9A9A9' # Dark gray
213 -
    red:     '#B03060' # Maroon
214 -
    green:   '#7FFFD4' # Aquamarine
215 -
    yellow:  '#FFE4B5' # Moccasin
216 -
    blue:    '#483D8B' # Dark slate blue
217 -
    magenta: '#663399' # Rebecca purple
218 -
    cyan:    '#ADD8E6' # Light blue
219 -
    white:   '#FFFFFF' # White
220 -
221 -
  # Dim colors
222 -
  #
223 -
  # If the dim colors are not set, they will be calculated automatically based
224 -
  # on the `normal` colors.
225 -
  #dim:
226 -
  #  black:   '0x000000'
227 -
  #  red:     '0x8c3336'
228 -
  #  green:   '0x7a8530'
229 -
  #  yellow:  '0x97822e'
230 -
  #  blue:    '0x506d8f'
231 -
  #  magenta: '0x80638e'
232 -
  #  cyan:    '0x497e7a'
233 -
  #  white:   '0x9a9a9a'
234 -
235 -
  # Indexed Colors
236 -
  #
237 -
  # The indexed colors include all colors from 16 to 256.
238 -
  # When these are not set, they're filled with sensible defaults.
239 -
  #
240 -
  # Example:
241 -
  #   `- { index: 16, color: '0xff00ff' }`
242 -
  #
243 -
  indexed_colors: []
244 -
245 -
# Visual Bell
246 -
#
247 -
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
248 -
# rung, the terminal background will be set to white and transition back to the
249 -
# default background color. You can control the rate of this transition by
250 -
# setting the `duration` property (represented in milliseconds). You can also
251 -
# configure the transition function by setting the `animation` property.
252 -
#
253 -
# Values for `animation`:
254 -
#   - Ease
255 -
#   - EaseOut
256 -
#   - EaseOutSine
257 -
#   - EaseOutQuad
258 -
#   - EaseOutCubic
259 -
#   - EaseOutQuart
260 -
#   - EaseOutQuint
261 -
#   - EaseOutExpo
262 -
#   - EaseOutCirc
263 -
#   - Linear
264 -
#
265 -
# Specifying a `duration` of `0` will disable the visual bell.
266 -
visual_bell:
267 -
  animation: EaseOutExpo
268 -
  duration: 0
269 -
  color: '0xffffff'
270 -
271 -
# Background opacity
272 -
#
273 -
# Window opacity as a floating point number from `0.0` to `1.0`.
274 -
# The value `0.0` is completely transparent and `1.0` is opaque.
275 -
background_opacity: 1.0
276 -
277 -
# Mouse bindings
278 -
#
279 -
# Available fields:
280 -
#   - mouse
281 -
#   - action
282 -
#   - mods (optional)
283 -
#
284 -
# Values for `mouse`:
285 -
#   - Middle
286 -
#   - Left
287 -
#   - Right
288 -
#   - Numeric identifier such as `5`
289 -
#
290 -
# All available `mods` and `action` values are documented in the key binding
291 -
# section.
292 -
mouse_bindings:
293 -
  - { mouse: Middle, action: PasteSelection }
294 -
295 -
mouse:
296 -
  # Click settings
297 -
  #
298 -
  # The `double_click` and `triple_click` settings control the time
299 -
  # alacritty should wait for accepting multiple clicks as one double
300 -
  # or triple click.
301 -
  double_click: { threshold: 300 }
302 -
  triple_click: { threshold: 300 }
303 -
304 -
  # If this is `true`, the cursor is temporarily hidden when typing.
305 -
  hide_when_typing: false
306 -
307 -
  url:
308 -
    # URL launcher
309 -
    #
310 -
    # This program is executed when clicking on a text which is recognized as a URL.
311 -
    # The URL is always added to the command as the last parameter.
312 -
    #
313 -
    # When set to `None`, URL launching will be disabled completely.
314 -
    #
315 -
    # Default:
316 -
    #   - (macOS) open
317 -
    #   - (Linux) xdg-open
318 -
    #   - (Windows) explorer
319 -
    launcher:
320 -
      program: xdg-open
321 -
      args: []
322 -
323 -
    # URL modifiers
324 -
    #
325 -
    # These are the modifiers that need to be held down for opening URLs when clicking
326 -
    # on them. The available modifiers are documented in the key binding section.
327 -
    modifiers: None
328 -
329 -
selection:
330 -
  semantic_escape_chars: ",โ”‚`|:\"' ()[]{}<>"
331 -
332 -
  # When set to `true`, selected text will be copied to the primary clipboard.
333 -
  save_to_clipboard: false
334 -
335 -
# Allow terminal applications to change Alacritty's window title.
336 -
dynamic_title: true
337 -
338 -
cursor:
339 -
  # Cursor style
340 -
  #
341 -
  # Values for `style`:
342 -
  #   - โ–‡ Block
343 -
  #   - _ Underline
344 -
  #   - | Beam
345 -
  style: Block
346 -
347 -
  # If this is `true`, the cursor will be rendered as a hollow box when the
348 -
  # window is not focused.
349 -
  unfocused_hollow: true
350 -
351 -
# Live config reload (changes require restart)
352 -
live_config_reload: true
353 -
354 -
# Shell
355 -
#
356 -
# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
357 -
# Entries in `shell.args` are passed unmodified as arguments to the shell.
358 -
#
359 -
# Default:
360 -
#   - (Linux/macOS) /bin/bash --login
361 -
#   - (Windows) powershell
362 -
#shell:
363 -
#  program: /bin/bash
364 -
#  args:
365 -
#    - --login
366 -
367 -
# Windows 10 ConPTY backend (Windows only)
368 -
#
369 -
# This will enable better color support and may resolve other issues,
370 -
# however this API and its implementation is still young and so is
371 -
# disabled by default, as stability may not be as good as the winpty
372 -
# backend.
373 -
#
374 -
# Alacritty will fall back to the WinPTY automatically if the ConPTY
375 -
# backend cannot be initialized.
376 -
enable_experimental_conpty_backend: false
377 -
378 -
# Send ESC (\x1b) before characters when alt is pressed.
379 -
alt_send_esc: true
380 -
381 -
# Key bindings
382 -
#
383 -
# Key bindings are specified as a list of objects. Each binding will specify a
384 -
# key and modifiers required to trigger it, terminal modes where the binding is
385 -
# applicable, and what should be done when the key binding fires. It can either
386 -
# send a byte sequence to the running application (`chars`), execute a
387 -
# predefined action (`action`) or fork and execute a specified command plus
388 -
# arguments (`command`).
389 -
#
390 -
# Bindings are always filled by default, but will be replaced when a new binding
391 -
# with the same triggers is defined. To unset a default binding, it can be
392 -
# mapped to the `None` action.
393 -
#
394 -
# Example:
395 -
#   `- { key: V, mods: Control|Shift, action: Paste }`
396 -
#
397 -
# Available fields:
398 -
#   - key
399 -
#   - mods (optional)
400 -
#   - chars | action | command (exactly one required)
401 -
#   - mode (optional)
402 -
#
403 -
# Values for `key`:
404 -
#   - `A` -> `Z`
405 -
#   - `F1` -> `F12`
406 -
#   - `Key1` -> `Key0`
407 -
#
408 -
#   A full list with available key codes can be found here:
409 -
#   https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants
410 -
#
411 -
#   Instead of using the name of the keys, the `key` field also supports using
412 -
#   the scancode of the desired key. Scancodes have to be specified as a
413 -
#   decimal number.
414 -
#   This command will allow you to display the hex scancodes for certain keys:
415 -
#     `showkey --scancodes`
416 -
#
417 -
# Values for `mods`:
418 -
#   - Command
419 -
#   - Control
420 -
#   - Super
421 -
#   - Shift
422 -
#   - Alt
423 -
#
424 -
#   Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.
425 -
#   Whitespace and capitalization is relevant and must match the example.
426 -
#
427 -
# Values for `chars`:
428 -
#   The `chars` field writes the specified string to the terminal. This makes
429 -
#   it possible to pass escape sequences.
430 -
#   To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run
431 -
#   the command `showkey -a` outside of tmux.
432 -
#   Note that applications use terminfo to map escape sequences back to
433 -
#   keys. It is therefore required to update the terminfo when
434 -
#   changing an escape sequence.
435 -
#
436 -
# Values for `action`:
437 -
#   - Paste
438 -
#   - PasteSelection
439 -
#   - Copy
440 -
#   - IncreaseFontSize
441 -
#   - DecreaseFontSize
442 -
#   - ResetFontSize
443 -
#   - ScrollPageUp
444 -
#   - ScrollPageDown
445 -
#   - ScrollLineUp
446 -
#   - ScrollLineDown
447 -
#   - ScrollToTop
448 -
#   - ScrollToBottom
449 -
#   - ClearHistory
450 -
#   - Hide
451 -
#   - Quit
452 -
#   - ClearLogNotice
453 -
#   - SpawnNewInstance
454 -
#   - None
455 -
#
456 -
# Values for `command`:
457 -
#   The `command` field must be a map containing a `program` string and
458 -
#   an `args` array of command line parameter strings.
459 -
#
460 -
#   Example:
461 -
#       `command: { program: "alacritty", args: ["-e", "vttest"] }`
462 -
#
463 -
# Values for `mode`:
464 -
#   - ~AppCursor
465 -
#   - AppCursor
466 -
#   - ~AppKeypad
467 -
#   - AppKeypad
468 -
key_bindings:
469 -
  # (Windows/Linux only)
470 -
  #- { key: V,        mods: Control|Shift, action: Paste            }
471 -
  #- { key: C,        mods: Control|Shift, action: Copy             }
472 -
  #- { key: Insert,   mods: Shift,         action: PasteSelection   }
473 -
  #- { key: Key0,     mods: Control,       action: ResetFontSize    }
474 -
  #- { key: Equals,   mods: Control,       action: IncreaseFontSize }
475 -
  #- { key: Add,      mods: Control,       action: IncreaseFontSize }
476 -
  #- { key: Subtract, mods: Control,       action: DecreaseFontSize }
477 -
  #- { key: Minus,    mods: Control,       action: DecreaseFontSize }
478 -
479 -
  # (macOS only)
480 -
  #- { key: Key0,   mods: Command, action: ResetFontSize    }
481 -
  #- { key: Equals, mods: Command, action: IncreaseFontSize }
482 -
  #- { key: Add,    mods: Command, action: IncreaseFontSize }
483 -
  #- { key: Minus,  mods: Command, action: DecreaseFontSize }
484 -
  #- { key: K,      mods: Command, action: ClearHistory     }
485 -
  #- { key: K,      mods: Command, chars: "\x0c"            }
486 -
  #- { key: V,      mods: Command, action: Paste            }
487 -
  #- { key: C,      mods: Command, action: Copy             }
488 -
  #- { key: H,      mods: Command, action: Hide             }
489 -
  #- { key: Q,      mods: Command, action: Quit             }
490 -
  #- { key: W,      mods: Command, action: Quit             }
491 -
492 -
  - { key: Paste,                   action: Paste                            }
493 -
  - { key: Copy,                    action: Copy                             }
494 -
  - { key: L,        mods: Control, action: ClearLogNotice                   }
495 -
  - { key: L,        mods: Control, chars: "\x0c"                            }
496 -
  - { key: Home,     mods: Alt,     chars: "\x1b[1;3H"                       }
497 -
  - { key: Home,                    chars: "\x1bOH",        mode: AppCursor  }
498 -
  - { key: Home,                    chars: "\x1b[H",        mode: ~AppCursor }
499 -
  - { key: End,      mods: Alt,     chars: "\x1b[1;3F"                       }
500 -
  - { key: End,                     chars: "\x1bOF",        mode: AppCursor  }
501 -
  - { key: End,                     chars: "\x1b[F",        mode: ~AppCursor }
502 -
  - { key: PageUp,   mods: Shift,   action: ScrollPageUp,   mode: ~Alt       }
503 -
  - { key: PageUp,   mods: Shift,   chars: "\x1b[5;2~",     mode: Alt        }
504 -
  - { key: PageUp,   mods: Control, chars: "\x1b[5;5~"                       }
505 -
  - { key: PageUp,   mods: Alt,     chars: "\x1b[5;3~"                       }
506 -
  - { key: PageUp,                  chars: "\x1b[5~"                         }
507 -
  - { key: PageDown, mods: Shift,   action: ScrollPageDown, mode: ~Alt       }
508 -
  - { key: PageDown, mods: Shift,   chars: "\x1b[6;2~",     mode: Alt        }
509 -
  - { key: PageDown, mods: Control, chars: "\x1b[6;5~"                       }
510 -
  - { key: PageDown, mods: Alt,     chars: "\x1b[6;3~"                       }
511 -
  - { key: PageDown,                chars: "\x1b[6~"                         }
512 -
  - { key: Tab,      mods: Shift,   chars: "\x1b[Z"                          }
513 -
  - { key: Back,                    chars: "\x7f"                            }
514 -
  - { key: Back,     mods: Alt,     chars: "\x1b\x7f"                        }
515 -
  - { key: Insert,                  chars: "\x1b[2~"                         }
516 -
  - { key: Delete,                  chars: "\x1b[3~"                         }
517 -
  - { key: Left,     mods: Shift,   chars: "\x1b[1;2D"                       }
518 -
  - { key: Left,     mods: Control, chars: "\x1b[1;5D"                       }
519 -
  - { key: Left,     mods: Alt,     chars: "\x1b[1;3D"                       }
520 -
  - { key: Left,                    chars: "\x1b[D",        mode: ~AppCursor }
521 -
  - { key: Left,                    chars: "\x1bOD",        mode: AppCursor  }
522 -
  - { key: Right,    mods: Shift,   chars: "\x1b[1;2C"                       }
523 -
  - { key: Right,    mods: Control, chars: "\x1b[1;5C"                       }
524 -
  - { key: Right,    mods: Alt,     chars: "\x1b[1;3C"                       }
525 -
  - { key: Right,                   chars: "\x1b[C",        mode: ~AppCursor }
526 -
  - { key: Right,                   chars: "\x1bOC",        mode: AppCursor  }
527 -
  - { key: Up,       mods: Shift,   chars: "\x1b[1;2A"                       }
528 -
  - { key: Up,       mods: Control, chars: "\x1b[1;5A"                       }
529 -
  - { key: Up,       mods: Alt,     chars: "\x1b[1;3A"                       }
530 -
  - { key: Up,                      chars: "\x1b[A",        mode: ~AppCursor }
531 -
  - { key: Up,                      chars: "\x1bOA",        mode: AppCursor  }
532 -
  - { key: Down,     mods: Shift,   chars: "\x1b[1;2B"                       }
533 -
  - { key: Down,     mods: Control, chars: "\x1b[1;5B"                       }
534 -
  - { key: Down,     mods: Alt,     chars: "\x1b[1;3B"                       }
535 -
  - { key: Down,                    chars: "\x1b[B",        mode: ~AppCursor }
536 -
  - { key: Down,                    chars: "\x1bOB",        mode: AppCursor  }
537 -
  - { key: F1,                      chars: "\x1bOP"                          }
538 -
  - { key: F2,                      chars: "\x1bOQ"                          }
539 -
  - { key: F3,                      chars: "\x1bOR"                          }
540 -
  - { key: F4,                      chars: "\x1bOS"                          }
541 -
  - { key: F5,                      chars: "\x1b[15~"                        }
542 -
  - { key: F6,                      chars: "\x1b[17~"                        }
543 -
  - { key: F7,                      chars: "\x1b[18~"                        }
544 -
  - { key: F8,                      chars: "\x1b[19~"                        }
545 -
  - { key: F9,                      chars: "\x1b[20~"                        }
546 -
  - { key: F10,                     chars: "\x1b[21~"                        }
547 -
  - { key: F11,                     chars: "\x1b[23~"                        }
548 -
  - { key: F12,                     chars: "\x1b[24~"                        }
549 -
  - { key: F1,       mods: Shift,   chars: "\x1b[1;2P"                       }
550 -
  - { key: F2,       mods: Shift,   chars: "\x1b[1;2Q"                       }
551 -
  - { key: F3,       mods: Shift,   chars: "\x1b[1;2R"                       }
552 -
  - { key: F4,       mods: Shift,   chars: "\x1b[1;2S"                       }
553 -
  - { key: F5,       mods: Shift,   chars: "\x1b[15;2~"                      }
554 -
  - { key: F6,       mods: Shift,   chars: "\x1b[17;2~"                      }
555 -
  - { key: F7,       mods: Shift,   chars: "\x1b[18;2~"                      }
556 -
  - { key: F8,       mods: Shift,   chars: "\x1b[19;2~"                      }
557 -
  - { key: F9,       mods: Shift,   chars: "\x1b[20;2~"                      }
558 -
  - { key: F10,      mods: Shift,   chars: "\x1b[21;2~"                      }
559 -
  - { key: F11,      mods: Shift,   chars: "\x1b[23;2~"                      }
560 -
  - { key: F12,      mods: Shift,   chars: "\x1b[24;2~"                      }
561 -
  - { key: F1,       mods: Control, chars: "\x1b[1;5P"                       }
562 -
  - { key: F2,       mods: Control, chars: "\x1b[1;5Q"                       }
563 -
  - { key: F3,       mods: Control, chars: "\x1b[1;5R"                       }
564 -
  - { key: F4,       mods: Control, chars: "\x1b[1;5S"                       }
565 -
  - { key: F5,       mods: Control, chars: "\x1b[15;5~"                      }
566 -
  - { key: F6,       mods: Control, chars: "\x1b[17;5~"                      }
567 -
  - { key: F7,       mods: Control, chars: "\x1b[18;5~"                      }
568 -
  - { key: F8,       mods: Control, chars: "\x1b[19;5~"                      }
569 -
  - { key: F9,       mods: Control, chars: "\x1b[20;5~"                      }
570 -
  - { key: F10,      mods: Control, chars: "\x1b[21;5~"                      }
571 -
  - { key: F11,      mods: Control, chars: "\x1b[23;5~"                      }
572 -
  - { key: F12,      mods: Control, chars: "\x1b[24;5~"                      }
573 -
  - { key: F1,       mods: Alt,     chars: "\x1b[1;6P"                       }
574 -
  - { key: F2,       mods: Alt,     chars: "\x1b[1;6Q"                       }
575 -
  - { key: F3,       mods: Alt,     chars: "\x1b[1;6R"                       }
576 -
  - { key: F4,       mods: Alt,     chars: "\x1b[1;6S"                       }
577 -
  - { key: F5,       mods: Alt,     chars: "\x1b[15;6~"                      }
578 -
  - { key: F6,       mods: Alt,     chars: "\x1b[17;6~"                      }
579 -
  - { key: F7,       mods: Alt,     chars: "\x1b[18;6~"                      }
580 -
  - { key: F8,       mods: Alt,     chars: "\x1b[19;6~"                      }
581 -
  - { key: F9,       mods: Alt,     chars: "\x1b[20;6~"                      }
582 -
  - { key: F10,      mods: Alt,     chars: "\x1b[21;6~"                      }
583 -
  - { key: F11,      mods: Alt,     chars: "\x1b[23;6~"                      }
584 -
  - { key: F12,      mods: Alt,     chars: "\x1b[24;6~"                      }
585 -
  - { key: F1,       mods: Super,   chars: "\x1b[1;3P"                       }
586 -
  - { key: F2,       mods: Super,   chars: "\x1b[1;3Q"                       }
587 -
  - { key: F3,       mods: Super,   chars: "\x1b[1;3R"                       }
588 -
  - { key: F4,       mods: Super,   chars: "\x1b[1;3S"                       }
589 -
  - { key: F5,       mods: Super,   chars: "\x1b[15;3~"                      }
590 -
  - { key: F6,       mods: Super,   chars: "\x1b[17;3~"                      }
591 -
  - { key: F7,       mods: Super,   chars: "\x1b[18;3~"                      }
592 -
  - { key: F8,       mods: Super,   chars: "\x1b[19;3~"                      }
593 -
  - { key: F9,       mods: Super,   chars: "\x1b[20;3~"                      }
594 -
  - { key: F10,      mods: Super,   chars: "\x1b[21;3~"                      }
595 -
  - { key: F11,      mods: Super,   chars: "\x1b[23;3~"                      }
596 -
  - { key: F12,      mods: Super,   chars: "\x1b[24;3~"                      }
597 -
  - { key: NumpadEnter,             chars: "\n"                              }
.st/PKGBUILD deleted +0 -39
1 -
# Contributor: Patrick Jackson <PatrickSJackson gmail com>
2 -
# Maintainer: Christoph Vigano <mail@cvigano.de>
3 -
4 -
pkgname=st
5 -
pkgver=0.7
6 -
pkgrel=1
7 -
pkgdesc='A simple virtual terminal emulator for X.'
8 -
arch=('i686' 'x86_64')
9 -
license=('MIT')
10 -
depends=('libxft' 'libxext' 'xorg-fonts-misc')
11 -
makedepends=('ncurses')
12 -
url="http://st.suckless.org"
13 -
source=(http://dl.suckless.org/st/$pkgname-$pkgver.tar.gz
14 -
       config.h
15 -
       st-scrollback-20160727-308bfbf.diff)
16 -
17 -
md5sums=('29b2a599cf1511c8062ed8f025c84c63'
18 -
         '4e1c7c6c9829e72719365a8cd30bddd4'
19 -
         'c55076d94247e121a1a86d32a793cf2e')
20 -
21 -
prepare() {
22 -
  cd $srcdir/$pkgname-$pkgver
23 -
  # skip terminfo which conflicts with ncurses
24 -
  sed -i '/\@tic /d' Makefile
25 -
  cp $srcdir/config.h config.h
26 -
  patch -Np1 < ../st-scrollback-20160727-308bfbf.diff
27 -
}
28 -
29 -
build() {
30 -
  cd $srcdir/$pkgname-$pkgver
31 -
  make X11INC=/usr/include/X11 X11LIB=/usr/lib/X11
32 -
}
33 -
34 -
package() {
35 -
  cd $srcdir/$pkgname-$pkgver
36 -
  make PREFIX=/usr DESTDIR="$pkgdir" TERMINFO="$pkgdir/usr/share/terminfo" install
37 -
  install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
38 -
  install -Dm644 README "$pkgdir/usr/share/doc/$pkgname/README"
39 -
}
.st/config.h deleted +0 -448
1 -
/* See LICENSE file for copyright and license details. */
2 -
3 -
/*
4 -
 * appearance
5 -
 *
6 -
 * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
7 -
 */
8 -
static char font[] = "Inconsolata:pixelsize=22";
9 -
static int borderpx = 5;
10 -
#define histsize 4000
11 -
12 -
/*
13 -
 * What program is execed by st depends of these precedence rules:
14 -
 * 1: program passed with -e
15 -
 * 2: utmp option
16 -
 * 3: SHELL environment variable
17 -
 * 4: value of shell in /etc/passwd
18 -
 * 5: value of shell in config.h
19 -
 */
20 -
static char shell[] = "/bin/zsh";
21 -
static char *utmp = NULL;
22 -
static char stty_args[] = "stty raw pass8 nl -echo -iexten -cstopb 38400";
23 -
24 -
/* identification sequence returned in DA and DECID */
25 -
static char vtiden[] = "\033[?6c";
26 -
27 -
/* Kerning / character bounding-box multipliers */
28 -
static float cwscale = 1.0;
29 -
static float chscale = 1.0;
30 -
31 -
/*
32 -
 * word delimiter string
33 -
 *
34 -
 * More advanced example: " `'\"()[]{}"
35 -
 */
36 -
static char worddelimiters[] = " ";
37 -
38 -
/* selection timeouts (in milliseconds) */
39 -
static unsigned int doubleclicktimeout = 300;
40 -
static unsigned int tripleclicktimeout = 600;
41 -
42 -
/* alt screens */
43 -
static int allowaltscreen = 1;
44 -
45 -
/* frames per second st should at maximum draw to the screen */
46 -
static unsigned int xfps = 120;
47 -
static unsigned int actionfps = 60;
48 -
49 -
/*
50 -
 * blinking timeout (set to 0 to disable blinking) for the terminal blinking
51 -
 * attribute.
52 -
 */
53 -
static unsigned int blinktimeout = 800;
54 -
55 -
/*
56 -
 * thickness of underline and bar cursors
57 -
 */
58 -
static unsigned int cursorthickness = 2;
59 -
60 -
/*
61 -
 * bell volume. It must be a value between -100 and 100. Use 0 for disabling
62 -
 * it
63 -
 */
64 -
static int bellvolume = 0;
65 -
66 -
/* default TERM value */
67 -
static char termname[] = "xterm-256color";
68 -
69 -
/*
70 -
 * spaces per tab
71 -
 *
72 -
 * When you are changing this value, don't forget to adapt the ยปitยซ value in
73 -
 * the st.info and appropriately install the st.info in the environment where
74 -
 * you use this st version.
75 -
 *
76 -
 *	it#$tabspaces,
77 -
 *
78 -
 * Secondly make sure your kernel is not expanding tabs. When running `stty
79 -
 * -a` ยปtab0ยซ should appear. You can tell the terminal to not expand tabs by
80 -
 *  running following command:
81 -
 *
82 -
 *	stty tabs
83 -
 */
84 -
static unsigned int tabspaces = 8;
85 -
86 -
/* Terminal colors (16 first used in escape sequence) */
87 -
static const char *colorname[] = {
88 -
	/* 8 normal colors */
89 -
	"#000000",
90 -
	"#AA0000",
91 -
	"#00AA00",
92 -
	"yellow",
93 -
	"#0000AA",
94 -
	"#AA00AA",
95 -
	"#00AAAA",
96 -
	"#DDDDDD",
97 -
98 -
	/* 8 bright colors */
99 -
	"#666666",
100 -
	"#FF5555",
101 -
	"#55FF55",
102 -
	"#FFFF55",
103 -
	"#5555FF",
104 -
	"#FF55FF",
105 -
	"#55FFFF",
106 -
	"#FFFFFF",
107 -
108 -
	[255] = 0,
109 -
110 -
	/* more colors can be added after 255 to use with DefaultXX */
111 -
	"darkred",
112 -
	"#555555",
113 -
	"#000000"
114 -
};
115 -
116 -
117 -
/*
118 -
 * Default colors (colorname index)
119 -
 * foreground, background, cursor, reverse cursor
120 -
 */
121 -
static unsigned int defaultfg = 7;
122 -
static unsigned int defaultbg = 258;
123 -
static unsigned int defaultcs = 256;
124 -
static unsigned int defaultrcs = 257;
125 -
126 -
/*
127 -
 * Default shape of cursor
128 -
 * 2: Block ("โ–ˆ")
129 -
 * 4: Underline ("_")
130 -
 * 6: Bar ("|")
131 -
 * 7: Snowman ("โ˜ƒ")
132 -
 */
133 -
static unsigned int cursorshape = 2;
134 -
135 -
/*
136 -
 * Default colour and shape of the mouse cursor
137 -
 */
138 -
static unsigned int mouseshape = XC_xterm;
139 -
static unsigned int mousefg = 7;
140 -
static unsigned int mousebg = 0;
141 -
142 -
/*
143 -
 * Colors used, when the specific fg == defaultfg. So in reverse mode this
144 -
 * will reverse too. Another logic would only make the simple feature too
145 -
 * complex.
146 -
 */
147 -
static unsigned int defaultitalic = 11;
148 -
static unsigned int defaultunderline = 7;
149 -
150 -
/*
151 -
 * Internal mouse shortcuts.
152 -
 * Beware that overloading Button1 will disable the selection.
153 -
 */
154 -
static MouseShortcut mshortcuts[] = {
155 -
	/* button               mask            string */
156 -
	{ Button4,              XK_ANY_MOD,     "\031" },
157 -
	{ Button5,              XK_ANY_MOD,     "\005" },
158 -
};
159 -
160 -
/* Internal keyboard shortcuts. */
161 -
#define MODKEY Mod1Mask
162 -
163 -
static Shortcut shortcuts[] = {
164 -
	/* mask                 keysym          function        argument */
165 -
	{ XK_ANY_MOD,           XK_Break,       sendbreak,      {.i =  0} },
166 -
	{ ControlMask,          XK_Print,       toggleprinter,  {.i =  0} },
167 -
	{ ShiftMask,            XK_Print,       printscreen,    {.i =  0} },
168 -
	{ XK_ANY_MOD,           XK_Print,       printsel,       {.i =  0} },
169 -
	{ MODKEY|ShiftMask,     XK_Prior,       xzoom,          {.f = +2} },
170 -
	{ MODKEY|ShiftMask,     XK_Next,        xzoom,          {.f = -2} },
171 -
	{ MODKEY|ShiftMask,     XK_Home,        xzoomreset,     {.f =  0} },
172 -
	{ XK_NO_MOD,            XK_Insert,      selpaste,       {.i =  0} },
173 -
	{ ShiftMask,            XK_Insert,      clippaste,      {.i =  0} },
174 -
	{ MODKEY|ControlMask,   XK_C,           clipcopy,       {.i =  0} },
175 -
	{ MODKEY|ControlMask,   XK_V,           clippaste,      {.i =  0} },
176 -
	{ MODKEY,               XK_Num_Lock,    numlock,        {.i =  0} },
177 -
	{ ShiftMask,            XK_Page_Up,     kscrollup,      {.i =  5} },
178 -
	{ ShiftMask,            XK_Page_Down,   kscrolldown,    {.i =  5} },
179 -
};
180 -
181 -
/*
182 -
 * Special keys (change & recompile st.info accordingly)
183 -
 *
184 -
 * Mask value:
185 -
 * * Use XK_ANY_MOD to match the key no matter modifiers state
186 -
 * * Use XK_NO_MOD to match the key alone (no modifiers)
187 -
 * appkey value:
188 -
 * * 0: no value
189 -
 * * > 0: keypad application mode enabled
190 -
 * *   = 2: term.numlock = 1
191 -
 * * < 0: keypad application mode disabled
192 -
 * appcursor value:
193 -
 * * 0: no value
194 -
 * * > 0: cursor application mode enabled
195 -
 * * < 0: cursor application mode disabled
196 -
 * crlf value
197 -
 * * 0: no value
198 -
 * * > 0: crlf mode is enabled
199 -
 * * < 0: crlf mode is disabled
200 -
 *
201 -
 * Be careful with the order of the definitions because st searches in
202 -
 * this table sequentially, so any XK_ANY_MOD must be in the last
203 -
 * position for a key.
204 -
 */
205 -
206 -
/*
207 -
 * If you want keys other than the X11 function keys (0xFD00 - 0xFFFF)
208 -
 * to be mapped below, add them to this array.
209 -
 */
210 -
static KeySym mappedkeys[] = { -1 };
211 -
212 -
/*
213 -
 * State bits to ignore when matching key or button events.  By default,
214 -
 * numlock (Mod2Mask) and keyboard layout (XK_SWITCH_MOD) are ignored.
215 -
 */
216 -
static uint ignoremod = Mod2Mask|XK_SWITCH_MOD;
217 -
218 -
/*
219 -
 * Override mouse-select while mask is active (when MODE_MOUSE is set).
220 -
 * Note that if you want to use ShiftMask with selmasks, set this to an other
221 -
 * modifier, set to 0 to not use it.
222 -
 */
223 -
static uint forceselmod = ShiftMask;
224 -
225 -
/*
226 -
 * This is the huge key array which defines all compatibility to the Linux
227 -
 * world. Please decide about changes wisely.
228 -
 */
229 -
static Key key[] = {
230 -
	/* keysym           mask            string      appkey appcursor crlf */
231 -
	{ XK_KP_Home,       ShiftMask,      "\033[2J",       0,   -1,    0},
232 -
	{ XK_KP_Home,       ShiftMask,      "\033[1;2H",     0,   +1,    0},
233 -
	{ XK_KP_Home,       XK_ANY_MOD,     "\033[H",        0,   -1,    0},
234 -
	{ XK_KP_Home,       XK_ANY_MOD,     "\033[1~",       0,   +1,    0},
235 -
	{ XK_KP_Up,         XK_ANY_MOD,     "\033Ox",       +1,    0,    0},
236 -
	{ XK_KP_Up,         XK_ANY_MOD,     "\033[A",        0,   -1,    0},
237 -
	{ XK_KP_Up,         XK_ANY_MOD,     "\033OA",        0,   +1,    0},
238 -
	{ XK_KP_Down,       XK_ANY_MOD,     "\033Or",       +1,    0,    0},
239 -
	{ XK_KP_Down,       XK_ANY_MOD,     "\033[B",        0,   -1,    0},
240 -
	{ XK_KP_Down,       XK_ANY_MOD,     "\033OB",        0,   +1,    0},
241 -
	{ XK_KP_Left,       XK_ANY_MOD,     "\033Ot",       +1,    0,    0},
242 -
	{ XK_KP_Left,       XK_ANY_MOD,     "\033[D",        0,   -1,    0},
243 -
	{ XK_KP_Left,       XK_ANY_MOD,     "\033OD",        0,   +1,    0},
244 -
	{ XK_KP_Right,      XK_ANY_MOD,     "\033Ov",       +1,    0,    0},
245 -
	{ XK_KP_Right,      XK_ANY_MOD,     "\033[C",        0,   -1,    0},
246 -
	{ XK_KP_Right,      XK_ANY_MOD,     "\033OC",        0,   +1,    0},
247 -
	{ XK_KP_Prior,      ShiftMask,      "\033[5;2~",     0,    0,    0},
248 -
	{ XK_KP_Prior,      XK_ANY_MOD,     "\033[5~",       0,    0,    0},
249 -
	{ XK_KP_Begin,      XK_ANY_MOD,     "\033[E",        0,    0,    0},
250 -
	{ XK_KP_End,        ControlMask,    "\033[J",       -1,    0,    0},
251 -
	{ XK_KP_End,        ControlMask,    "\033[1;5F",    +1,    0,    0},
252 -
	{ XK_KP_End,        ShiftMask,      "\033[K",       -1,    0,    0},
253 -
	{ XK_KP_End,        ShiftMask,      "\033[1;2F",    +1,    0,    0},
254 -
	{ XK_KP_End,        XK_ANY_MOD,     "\033[4~",       0,    0,    0},
255 -
	{ XK_KP_Next,       ShiftMask,      "\033[6;2~",     0,    0,    0},
256 -
	{ XK_KP_Next,       XK_ANY_MOD,     "\033[6~",       0,    0,    0},
257 -
	{ XK_KP_Insert,     ShiftMask,      "\033[2;2~",    +1,    0,    0},
258 -
	{ XK_KP_Insert,     ShiftMask,      "\033[4l",      -1,    0,    0},
259 -
	{ XK_KP_Insert,     ControlMask,    "\033[L",       -1,    0,    0},
260 -
	{ XK_KP_Insert,     ControlMask,    "\033[2;5~",    +1,    0,    0},
261 -
	{ XK_KP_Insert,     XK_ANY_MOD,     "\033[4h",      -1,    0,    0},
262 -
	{ XK_KP_Insert,     XK_ANY_MOD,     "\033[2~",      +1,    0,    0},
263 -
	{ XK_KP_Delete,     ControlMask,    "\033[M",       -1,    0,    0},
264 -
	{ XK_KP_Delete,     ControlMask,    "\033[3;5~",    +1,    0,    0},
265 -
	{ XK_KP_Delete,     ShiftMask,      "\033[2K",      -1,    0,    0},
266 -
	{ XK_KP_Delete,     ShiftMask,      "\033[3;2~",    +1,    0,    0},
267 -
	{ XK_KP_Delete,     XK_ANY_MOD,     "\033[P",       -1,    0,    0},
268 -
	{ XK_KP_Delete,     XK_ANY_MOD,     "\033[3~",      +1,    0,    0},
269 -
	{ XK_KP_Multiply,   XK_ANY_MOD,     "\033Oj",       +2,    0,    0},
270 -
	{ XK_KP_Add,        XK_ANY_MOD,     "\033Ok",       +2,    0,    0},
271 -
	{ XK_KP_Enter,      XK_ANY_MOD,     "\033OM",       +2,    0,    0},
272 -
	{ XK_KP_Enter,      XK_ANY_MOD,     "\r",           -1,    0,   -1},
273 -
	{ XK_KP_Enter,      XK_ANY_MOD,     "\r\n",         -1,    0,   +1},
274 -
	{ XK_KP_Subtract,   XK_ANY_MOD,     "\033Om",       +2,    0,    0},
275 -
	{ XK_KP_Decimal,    XK_ANY_MOD,     "\033On",       +2,    0,    0},
276 -
	{ XK_KP_Divide,     XK_ANY_MOD,     "\033Oo",       +2,    0,    0},
277 -
	{ XK_KP_0,          XK_ANY_MOD,     "\033Op",       +2,    0,    0},
278 -
	{ XK_KP_1,          XK_ANY_MOD,     "\033Oq",       +2,    0,    0},
279 -
	{ XK_KP_2,          XK_ANY_MOD,     "\033Or",       +2,    0,    0},
280 -
	{ XK_KP_3,          XK_ANY_MOD,     "\033Os",       +2,    0,    0},
281 -
	{ XK_KP_4,          XK_ANY_MOD,     "\033Ot",       +2,    0,    0},
282 -
	{ XK_KP_5,          XK_ANY_MOD,     "\033Ou",       +2,    0,    0},
283 -
	{ XK_KP_6,          XK_ANY_MOD,     "\033Ov",       +2,    0,    0},
284 -
	{ XK_KP_7,          XK_ANY_MOD,     "\033Ow",       +2,    0,    0},
285 -
	{ XK_KP_8,          XK_ANY_MOD,     "\033Ox",       +2,    0,    0},
286 -
	{ XK_KP_9,          XK_ANY_MOD,     "\033Oy",       +2,    0,    0},
287 -
	{ XK_Up,            ShiftMask,      "\033[1;2A",     0,    0,    0},
288 -
	{ XK_Up,            ControlMask,    "\033[1;5A",     0,    0,    0},
289 -
	{ XK_Up,            Mod1Mask,       "\033[1;3A",     0,    0,    0},
290 -
	{ XK_Up,            XK_ANY_MOD,     "\033[A",        0,   -1,    0},
291 -
	{ XK_Up,            XK_ANY_MOD,     "\033OA",        0,   +1,    0},
292 -
	{ XK_Down,          ShiftMask,      "\033[1;2B",     0,    0,    0},
293 -
	{ XK_Down,          ControlMask,    "\033[1;5B",     0,    0,    0},
294 -
	{ XK_Down,          Mod1Mask,       "\033[1;3B",     0,    0,    0},
295 -
	{ XK_Down,          XK_ANY_MOD,     "\033[B",        0,   -1,    0},
296 -
	{ XK_Down,          XK_ANY_MOD,     "\033OB",        0,   +1,    0},
297 -
	{ XK_Left,          ShiftMask,      "\033[1;2D",     0,    0,    0},
298 -
	{ XK_Left,          ControlMask,    "\033[1;5D",     0,    0,    0},
299 -
	{ XK_Left,          Mod1Mask,       "\033[1;3D",     0,    0,    0},
300 -
	{ XK_Left,          XK_ANY_MOD,     "\033[D",        0,   -1,    0},
301 -
	{ XK_Left,          XK_ANY_MOD,     "\033OD",        0,   +1,    0},
302 -
	{ XK_Right,         ShiftMask,      "\033[1;2C",     0,    0,    0},
303 -
	{ XK_Right,         ControlMask,    "\033[1;5C",     0,    0,    0},
304 -
	{ XK_Right,         Mod1Mask,       "\033[1;3C",     0,    0,    0},
305 -
	{ XK_Right,         XK_ANY_MOD,     "\033[C",        0,   -1,    0},
306 -
	{ XK_Right,         XK_ANY_MOD,     "\033OC",        0,   +1,    0},
307 -
	{ XK_ISO_Left_Tab,  ShiftMask,      "\033[Z",        0,    0,    0},
308 -
	{ XK_Return,        Mod1Mask,       "\033\r",        0,    0,   -1},
309 -
	{ XK_Return,        Mod1Mask,       "\033\r\n",      0,    0,   +1},
310 -
	{ XK_Return,        XK_ANY_MOD,     "\r",            0,    0,   -1},
311 -
	{ XK_Return,        XK_ANY_MOD,     "\r\n",          0,    0,   +1},
312 -
	{ XK_Insert,        ShiftMask,      "\033[4l",      -1,    0,    0},
313 -
	{ XK_Insert,        ShiftMask,      "\033[2;2~",    +1,    0,    0},
314 -
	{ XK_Insert,        ControlMask,    "\033[L",       -1,    0,    0},
315 -
	{ XK_Insert,        ControlMask,    "\033[2;5~",    +1,    0,    0},
316 -
	{ XK_Insert,        XK_ANY_MOD,     "\033[4h",      -1,    0,    0},
317 -
	{ XK_Insert,        XK_ANY_MOD,     "\033[2~",      +1,    0,    0},
318 -
	{ XK_Delete,        ControlMask,    "\033[M",       -1,    0,    0},
319 -
	{ XK_Delete,        ControlMask,    "\033[3;5~",    +1,    0,    0},
320 -
	{ XK_Delete,        ShiftMask,      "\033[2K",      -1,    0,    0},
321 -
	{ XK_Delete,        ShiftMask,      "\033[3;2~",    +1,    0,    0},
322 -
	{ XK_Delete,        XK_ANY_MOD,     "\033[P",       -1,    0,    0},
323 -
	{ XK_Delete,        XK_ANY_MOD,     "\033[3~",      +1,    0,    0},
324 -
	{ XK_BackSpace,     XK_NO_MOD,      "\177",          0,    0,    0},
325 -
	{ XK_BackSpace,     Mod1Mask,       "\033\177",      0,    0,    0},
326 -
	{ XK_Home,          ShiftMask,      "\033[2J",       0,   -1,    0},
327 -
	{ XK_Home,          ShiftMask,      "\033[1;2H",     0,   +1,    0},
328 -
	{ XK_Home,          XK_ANY_MOD,     "\033[H",        0,   -1,    0},
329 -
	{ XK_Home,          XK_ANY_MOD,     "\033[1~",       0,   +1,    0},
330 -
	{ XK_End,           ControlMask,    "\033[J",       -1,    0,    0},
331 -
	{ XK_End,           ControlMask,    "\033[1;5F",    +1,    0,    0},
332 -
	{ XK_End,           ShiftMask,      "\033[K",       -1,    0,    0},
333 -
	{ XK_End,           ShiftMask,      "\033[1;2F",    +1,    0,    0},
334 -
	{ XK_End,           XK_ANY_MOD,     "\033[4~",       0,    0,    0},
335 -
	{ XK_Prior,         ControlMask,    "\033[5;5~",     0,    0,    0},
336 -
	{ XK_Prior,         ShiftMask,      "\033[5;2~",     0,    0,    0},
337 -
	{ XK_Prior,         XK_ANY_MOD,     "\033[5~",       0,    0,    0},
338 -
	{ XK_Next,          ControlMask,    "\033[6;5~",     0,    0,    0},
339 -
	{ XK_Next,          ShiftMask,      "\033[6;2~",     0,    0,    0},
340 -
	{ XK_Next,          XK_ANY_MOD,     "\033[6~",       0,    0,    0},
341 -
	{ XK_F1,            XK_NO_MOD,      "\033OP" ,       0,    0,    0},
342 -
	{ XK_F1, /* F13 */  ShiftMask,      "\033[1;2P",     0,    0,    0},
343 -
	{ XK_F1, /* F25 */  ControlMask,    "\033[1;5P",     0,    0,    0},
344 -
	{ XK_F1, /* F37 */  Mod4Mask,       "\033[1;6P",     0,    0,    0},
345 -
	{ XK_F1, /* F49 */  Mod1Mask,       "\033[1;3P",     0,    0,    0},
346 -
	{ XK_F1, /* F61 */  Mod3Mask,       "\033[1;4P",     0,    0,    0},
347 -
	{ XK_F2,            XK_NO_MOD,      "\033OQ" ,       0,    0,    0},
348 -
	{ XK_F2, /* F14 */  ShiftMask,      "\033[1;2Q",     0,    0,    0},
349 -
	{ XK_F2, /* F26 */  ControlMask,    "\033[1;5Q",     0,    0,    0},
350 -
	{ XK_F2, /* F38 */  Mod4Mask,       "\033[1;6Q",     0,    0,    0},
351 -
	{ XK_F2, /* F50 */  Mod1Mask,       "\033[1;3Q",     0,    0,    0},
352 -
	{ XK_F2, /* F62 */  Mod3Mask,       "\033[1;4Q",     0,    0,    0},
353 -
	{ XK_F3,            XK_NO_MOD,      "\033OR" ,       0,    0,    0},
354 -
	{ XK_F3, /* F15 */  ShiftMask,      "\033[1;2R",     0,    0,    0},
355 -
	{ XK_F3, /* F27 */  ControlMask,    "\033[1;5R",     0,    0,    0},
356 -
	{ XK_F3, /* F39 */  Mod4Mask,       "\033[1;6R",     0,    0,    0},
357 -
	{ XK_F3, /* F51 */  Mod1Mask,       "\033[1;3R",     0,    0,    0},
358 -
	{ XK_F3, /* F63 */  Mod3Mask,       "\033[1;4R",     0,    0,    0},
359 -
	{ XK_F4,            XK_NO_MOD,      "\033OS" ,       0,    0,    0},
360 -
	{ XK_F4, /* F16 */  ShiftMask,      "\033[1;2S",     0,    0,    0},
361 -
	{ XK_F4, /* F28 */  ControlMask,    "\033[1;5S",     0,    0,    0},
362 -
	{ XK_F4, /* F40 */  Mod4Mask,       "\033[1;6S",     0,    0,    0},
363 -
	{ XK_F4, /* F52 */  Mod1Mask,       "\033[1;3S",     0,    0,    0},
364 -
	{ XK_F5,            XK_NO_MOD,      "\033[15~",      0,    0,    0},
365 -
	{ XK_F5, /* F17 */  ShiftMask,      "\033[15;2~",    0,    0,    0},
366 -
	{ XK_F5, /* F29 */  ControlMask,    "\033[15;5~",    0,    0,    0},
367 -
	{ XK_F5, /* F41 */  Mod4Mask,       "\033[15;6~",    0,    0,    0},
368 -
	{ XK_F5, /* F53 */  Mod1Mask,       "\033[15;3~",    0,    0,    0},
369 -
	{ XK_F6,            XK_NO_MOD,      "\033[17~",      0,    0,    0},
370 -
	{ XK_F6, /* F18 */  ShiftMask,      "\033[17;2~",    0,    0,    0},
371 -
	{ XK_F6, /* F30 */  ControlMask,    "\033[17;5~",    0,    0,    0},
372 -
	{ XK_F6, /* F42 */  Mod4Mask,       "\033[17;6~",    0,    0,    0},
373 -
	{ XK_F6, /* F54 */  Mod1Mask,       "\033[17;3~",    0,    0,    0},
374 -
	{ XK_F7,            XK_NO_MOD,      "\033[18~",      0,    0,    0},
375 -
	{ XK_F7, /* F19 */  ShiftMask,      "\033[18;2~",    0,    0,    0},
376 -
	{ XK_F7, /* F31 */  ControlMask,    "\033[18;5~",    0,    0,    0},
377 -
	{ XK_F7, /* F43 */  Mod4Mask,       "\033[18;6~",    0,    0,    0},
378 -
	{ XK_F7, /* F55 */  Mod1Mask,       "\033[18;3~",    0,    0,    0},
379 -
	{ XK_F8,            XK_NO_MOD,      "\033[19~",      0,    0,    0},
380 -
	{ XK_F8, /* F20 */  ShiftMask,      "\033[19;2~",    0,    0,    0},
381 -
	{ XK_F8, /* F32 */  ControlMask,    "\033[19;5~",    0,    0,    0},
382 -
	{ XK_F8, /* F44 */  Mod4Mask,       "\033[19;6~",    0,    0,    0},
383 -
	{ XK_F8, /* F56 */  Mod1Mask,       "\033[19;3~",    0,    0,    0},
384 -
	{ XK_F9,            XK_NO_MOD,      "\033[20~",      0,    0,    0},
385 -
	{ XK_F9, /* F21 */  ShiftMask,      "\033[20;2~",    0,    0,    0},
386 -
	{ XK_F9, /* F33 */  ControlMask,    "\033[20;5~",    0,    0,    0},
387 -
	{ XK_F9, /* F45 */  Mod4Mask,       "\033[20;6~",    0,    0,    0},
388 -
	{ XK_F9, /* F57 */  Mod1Mask,       "\033[20;3~",    0,    0,    0},
389 -
	{ XK_F10,           XK_NO_MOD,      "\033[21~",      0,    0,    0},
390 -
	{ XK_F10, /* F22 */ ShiftMask,      "\033[21;2~",    0,    0,    0},
391 -
	{ XK_F10, /* F34 */ ControlMask,    "\033[21;5~",    0,    0,    0},
392 -
	{ XK_F10, /* F46 */ Mod4Mask,       "\033[21;6~",    0,    0,    0},
393 -
	{ XK_F10, /* F58 */ Mod1Mask,       "\033[21;3~",    0,    0,    0},
394 -
	{ XK_F11,           XK_NO_MOD,      "\033[23~",      0,    0,    0},
395 -
	{ XK_F11, /* F23 */ ShiftMask,      "\033[23;2~",    0,    0,    0},
396 -
	{ XK_F11, /* F35 */ ControlMask,    "\033[23;5~",    0,    0,    0},
397 -
	{ XK_F11, /* F47 */ Mod4Mask,       "\033[23;6~",    0,    0,    0},
398 -
	{ XK_F11, /* F59 */ Mod1Mask,       "\033[23;3~",    0,    0,    0},
399 -
	{ XK_F12,           XK_NO_MOD,      "\033[24~",      0,    0,    0},
400 -
	{ XK_F12, /* F24 */ ShiftMask,      "\033[24;2~",    0,    0,    0},
401 -
	{ XK_F12, /* F36 */ ControlMask,    "\033[24;5~",    0,    0,    0},
402 -
	{ XK_F12, /* F48 */ Mod4Mask,       "\033[24;6~",    0,    0,    0},
403 -
	{ XK_F12, /* F60 */ Mod1Mask,       "\033[24;3~",    0,    0,    0},
404 -
	{ XK_F13,           XK_NO_MOD,      "\033[1;2P",     0,    0,    0},
405 -
	{ XK_F14,           XK_NO_MOD,      "\033[1;2Q",     0,    0,    0},
406 -
	{ XK_F15,           XK_NO_MOD,      "\033[1;2R",     0,    0,    0},
407 -
	{ XK_F16,           XK_NO_MOD,      "\033[1;2S",     0,    0,    0},
408 -
	{ XK_F17,           XK_NO_MOD,      "\033[15;2~",    0,    0,    0},
409 -
	{ XK_F18,           XK_NO_MOD,      "\033[17;2~",    0,    0,    0},
410 -
	{ XK_F19,           XK_NO_MOD,      "\033[18;2~",    0,    0,    0},
411 -
	{ XK_F20,           XK_NO_MOD,      "\033[19;2~",    0,    0,    0},
412 -
	{ XK_F21,           XK_NO_MOD,      "\033[20;2~",    0,    0,    0},
413 -
	{ XK_F22,           XK_NO_MOD,      "\033[21;2~",    0,    0,    0},
414 -
	{ XK_F23,           XK_NO_MOD,      "\033[23;2~",    0,    0,    0},
415 -
	{ XK_F24,           XK_NO_MOD,      "\033[24;2~",    0,    0,    0},
416 -
	{ XK_F25,           XK_NO_MOD,      "\033[1;5P",     0,    0,    0},
417 -
	{ XK_F26,           XK_NO_MOD,      "\033[1;5Q",     0,    0,    0},
418 -
	{ XK_F27,           XK_NO_MOD,      "\033[1;5R",     0,    0,    0},
419 -
	{ XK_F28,           XK_NO_MOD,      "\033[1;5S",     0,    0,    0},
420 -
	{ XK_F29,           XK_NO_MOD,      "\033[15;5~",    0,    0,    0},
421 -
	{ XK_F30,           XK_NO_MOD,      "\033[17;5~",    0,    0,    0},
422 -
	{ XK_F31,           XK_NO_MOD,      "\033[18;5~",    0,    0,    0},
423 -
	{ XK_F32,           XK_NO_MOD,      "\033[19;5~",    0,    0,    0},
424 -
	{ XK_F33,           XK_NO_MOD,      "\033[20;5~",    0,    0,    0},
425 -
	{ XK_F34,           XK_NO_MOD,      "\033[21;5~",    0,    0,    0},
426 -
	{ XK_F35,           XK_NO_MOD,      "\033[23;5~",    0,    0,    0},
427 -
};
428 -
429 -
/*
430 -
 * Selection types' masks.
431 -
 * Use the same masks as usual.
432 -
 * Button1Mask is always unset, to make masks match between ButtonPress.
433 -
 * ButtonRelease and MotionNotify.
434 -
 * If no match is found, regular selection is used.
435 -
 */
436 -
static uint selmasks[] = {
437 -
	[SEL_RECTANGULAR] = Mod1Mask,
438 -
};
439 -
440 -
/*
441 -
 * Printable characters in ASCII, used to estimate the advance width
442 -
 * of single wide characters.
443 -
 */
444 -
static char ascii_printable[] =
445 -
	" !\"#$%&'()*+,-./0123456789:;<=>?"
446 -
	"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"
447 -
	"`abcdefghijklmnopqrstuvwxyz{|}~";
448 -
.st/st-scrollback-20160727-308bfbf.diff deleted +0 -1
1 -
config.def.h +0 -19
1 -
+++ b/config.def.h
2 -
@@ -7,6 +7,7 @@
3 -
  */
4 -
 static char font[] = "Liberation Mono:pixelsize=12:antialias=true:autohint=true";
5 -
 static int borderpx = 2;
6 -
+#define histsize 2000
7 -
 
8 -
 /*
9 -
  * What program is execed by st depends of these precedence rules:
10 -
@@ -172,6 +173,8 @@ static Shortcut shortcuts[] = {
11 -
 	{ MODKEY|ShiftMask,     XK_C,           clipcopy,       {.i =  0} },
12 -
 	{ MODKEY|ShiftMask,     XK_V,           clippaste,      {.i =  0} },
13 -
 	{ MODKEY,               XK_Num_Lock,    numlock,        {.i =  0} },
14 -
+	{ ShiftMask,            XK_Page_Up,     kscrollup,      {.i = -1} },
15 -
+	{ ShiftMask,            XK_Page_Down,   kscrolldown,    {.i = -1} },
16 -
 };
17 -
 
18 -
 /*
19 -
st.c +0 -363
1 -
+++ b/st.c
2 -
@@ -86,6 +86,8 @@ char *argv0;
3 -
 #define TRUERED(x)		(((x) & 0xff0000) >> 8)
4 -
 #define TRUEGREEN(x)		(((x) & 0xff00))
5 -
 #define TRUEBLUE(x)		(((x) & 0xff) << 8)
6 -
+#define TLINE(y)		((y) < term.scr ? term.hist[((y) + term.histi - term.scr \
7 -
+				+ histsize + 1) % histsize] : term.line[(y) - term.scr])
8 -
 
9 -
 
10 -
 enum glyph_attribute {
11 -
@@ -228,26 +230,6 @@ typedef struct {
12 -
 	int narg;              /* nb of args */
13 -
 } STREscape;
14 -
 
15 -
-/* Internal representation of the screen */
16 -
-typedef struct {
17 -
-	int row;      /* nb row */
18 -
-	int col;      /* nb col */
19 -
-	Line *line;   /* screen */
20 -
-	Line *alt;    /* alternate screen */
21 -
-	int *dirty;  /* dirtyness of lines */
22 -
-	XftGlyphFontSpec *specbuf; /* font spec buffer used for rendering */
23 -
-	TCursor c;    /* cursor */
24 -
-	int top;      /* top    scroll limit */
25 -
-	int bot;      /* bottom scroll limit */
26 -
-	int mode;     /* terminal mode flags */
27 -
-	int esc;      /* escape state flags */
28 -
-	char trantbl[4]; /* charset table translation */
29 -
-	int charset;  /* current charset */
30 -
-	int icharset; /* selected charset for sequence */
31 -
-	int numlock; /* lock numbers in keyboard */
32 -
-	int *tabs;
33 -
-} Term;
34 -
-
35 -
 /* Purely graphic info */
36 -
 typedef struct {
37 -
 	Display *dpy;
38 -
@@ -327,6 +309,8 @@ typedef struct {
39 -
 /* function definitions used in config.h */
40 -
 static void clipcopy(const Arg *);
41 -
 static void clippaste(const Arg *);
42 -
+static void kscrolldown(const Arg *);
43 -
+static void kscrollup(const Arg *);
44 -
 static void numlock(const Arg *);
45 -
 static void selpaste(const Arg *);
46 -
 static void xzoom(const Arg *);
47 -
@@ -340,6 +324,29 @@ static void sendbreak(const Arg *);
48 -
 /* Config.h for applying patches and the configuration. */
49 -
 #include "config.h"
50 -
 
51 -
+/* Internal representation of the screen */
52 -
+typedef struct {
53 -
+	int row;      /* nb row */
54 -
+	int col;      /* nb col */
55 -
+	Line *line;   /* screen */
56 -
+	Line *alt;    /* alternate screen */
57 -
+	Line hist[histsize]; /* history buffer */
58 -
+	int histi;    /* history index */
59 -
+	int scr;      /* scroll back */
60 -
+	int *dirty;  /* dirtyness of lines */
61 -
+	XftGlyphFontSpec *specbuf; /* font spec buffer used for rendering */
62 -
+	TCursor c;    /* cursor */
63 -
+	int top;      /* top    scroll limit */
64 -
+	int bot;      /* bottom scroll limit */
65 -
+	int mode;     /* terminal mode flags */
66 -
+	int esc;      /* escape state flags */
67 -
+	char trantbl[4]; /* charset table translation */
68 -
+	int charset;  /* current charset */
69 -
+	int icharset; /* selected charset for sequence */
70 -
+	int numlock; /* lock numbers in keyboard */
71 -
+	int *tabs;
72 -
+} Term;
73 -
+
74 -
 /* Font structure */
75 -
 typedef struct {
76 -
 	int height;
77 -
@@ -399,8 +406,8 @@ static void tputtab(int);
78 -
 static void tputc(Rune);
79 -
 static void treset(void);
80 -
 static void tresize(int, int);
81 -
-static void tscrollup(int, int);
82 -
-static void tscrolldown(int, int);
83 -
+static void tscrollup(int, int, int);
84 -
+static void tscrolldown(int, int, int);
85 -
 static void tsetattr(int *, int);
86 -
 static void tsetchar(Rune, Glyph *, int, int);
87 -
 static void tsetscroll(int, int);
88 -
@@ -731,10 +738,10 @@ tlinelen(int y)
89 -
 {
90 -
 	int i = term.col;
91 -
 
92 -
-	if (term.line[y][i - 1].mode & ATTR_WRAP)
93 -
+	if (TLINE(y)[i - 1].mode & ATTR_WRAP)
94 -
 		return i;
95 -
 
96 -
-	while (i > 0 && term.line[y][i - 1].u == ' ')
97 -
+	while (i > 0 && TLINE(y)[i - 1].u == ' ')
98 -
 		--i;
99 -
 
100 -
 	return i;
101 -
@@ -796,7 +803,7 @@ selsnap(int *x, int *y, int direction)
102 -
 		 * Snap around if the word wraps around at the end or
103 -
 		 * beginning of a line.
104 -
 		 */
105 -
-		prevgp = &term.line[*y][*x];
106 -
+		prevgp = &TLINE(*y)[*x];
107 -
 		prevdelim = ISDELIM(prevgp->u);
108 -
 		for (;;) {
109 -
 			newx = *x + direction;
110 -
@@ -811,14 +818,14 @@ selsnap(int *x, int *y, int direction)
111 -
 					yt = *y, xt = *x;
112 -
 				else
113 -
 					yt = newy, xt = newx;
114 -
-				if (!(term.line[yt][xt].mode & ATTR_WRAP))
115 -
+				if (!(TLINE(yt)[xt].mode & ATTR_WRAP))
116 -
 					break;
117 -
 			}
118 -
 
119 -
 			if (newx >= tlinelen(newy))
120 -
 				break;
121 -
 
122 -
-			gp = &term.line[newy][newx];
123 -
+			gp = &TLINE(newy)[newx];
124 -
 			delim = ISDELIM(gp->u);
125 -
 			if (!(gp->mode & ATTR_WDUMMY) && (delim != prevdelim
126 -
 					|| (delim && gp->u != prevgp->u)))
127 -
@@ -839,14 +846,14 @@ selsnap(int *x, int *y, int direction)
128 -
 		*x = (direction < 0) ? 0 : term.col - 1;
129 -
 		if (direction < 0) {
130 -
 			for (; *y > 0; *y += direction) {
131 -
-				if (!(term.line[*y-1][term.col-1].mode
132 -
+				if (!(TLINE(*y-1)[term.col-1].mode
133 -
 						& ATTR_WRAP)) {
134 -
 					break;
135 -
 				}
136 -
 			}
137 -
 		} else if (direction > 0) {
138 -
 			for (; *y < term.row-1; *y += direction) {
139 -
-				if (!(term.line[*y][term.col-1].mode
140 -
+				if (!(TLINE(*y)[term.col-1].mode
141 -
 						& ATTR_WRAP)) {
142 -
 					break;
143 -
 				}
144 -
@@ -1012,13 +1019,13 @@ getsel(void)
145 -
 		}
146 -
 
147 -
 		if (sel.type == SEL_RECTANGULAR) {
148 -
-			gp = &term.line[y][sel.nb.x];
149 -
+			gp = &TLINE(y)[sel.nb.x];
150 -
 			lastx = sel.ne.x;
151 -
 		} else {
152 -
-			gp = &term.line[y][sel.nb.y == y ? sel.nb.x : 0];
153 -
+			gp = &TLINE(y)[sel.nb.y == y ? sel.nb.x : 0];
154 -
 			lastx = (sel.ne.y == y) ? sel.ne.x : term.col-1;
155 -
 		}
156 -
-		last = &term.line[y][MIN(lastx, linelen-1)];
157 -
+		last = &TLINE(y)[MIN(lastx, linelen-1)];
158 -
 		while (last >= gp && last->u == ' ')
159 -
 			--last;
160 -
 
161 -
@@ -1490,6 +1497,9 @@ ttyread(void)
162 -
 	/* keep any uncomplete utf8 char for the next call */
163 -
 	memmove(buf, ptr, buflen);
164 -
 
165 -
+	if (term.scr > 0 && term.scr < histsize-1)
166 -
+		term.scr++;
167 -
+
168 -
 	return ret;
169 -
 }
170 -
 
171 -
@@ -1499,6 +1509,9 @@ ttywrite(const char *s, size_t n)
172 -
 	fd_set wfd, rfd;
173 -
 	ssize_t r;
174 -
 	size_t lim = 256;
175 -
+	Arg arg = (Arg){ .i = term.scr };
176 -
+
177 -
+	kscrolldown(&arg);
178 -
 
179 -
 	/*
180 -
 	 * Remember that we are using a pty, which might be a modem line.
181 -
@@ -1690,13 +1703,53 @@ tswapscreen(void)
182 -
 }
183 -
 
184 -
 void
185 -
-tscrolldown(int orig, int n)
186 -
+kscrolldown(const Arg* a)
187 -
+{
188 -
+	int n = a->i;
189 -
+
190 -
+	if (n < 0)
191 -
+		n = term.row + n;
192 -
+
193 -
+	if (n > term.scr)
194 -
+		n = term.scr;
195 -
+
196 -
+	if (term.scr > 0) {
197 -
+		term.scr -= n;
198 -
+		selscroll(0, -n);
199 -
+		tfulldirt();
200 -
+	}
201 -
+}
202 -
+
203 -
+void
204 -
+kscrollup(const Arg* a)
205 -
+{
206 -
+	int n = a->i;
207 -
+
208 -
+	if (n < 0)
209 -
+		n = term.row + n;
210 -
+
211 -
+	if (term.scr <= histsize - n) {
212 -
+		term.scr += n;
213 -
+		selscroll(0, n);
214 -
+		tfulldirt();
215 -
+	}
216 -
+}
217 -
+
218 -
+void
219 -
+tscrolldown(int orig, int n, int copyhist)
220 -
 {
221 -
 	int i;
222 -
 	Line temp;
223 -
 
224 -
 	LIMIT(n, 0, term.bot-orig+1);
225 -
 
226 -
+	if (copyhist) {
227 -
+		term.histi = (term.histi - 1 + histsize) % histsize;
228 -
+		temp = term.hist[term.histi];
229 -
+		term.hist[term.histi] = term.line[term.bot];
230 -
+		term.line[term.bot] = temp;
231 -
+	}
232 -
+
233 -
 	tsetdirt(orig, term.bot-n);
234 -
 	tclearregion(0, term.bot-n+1, term.col-1, term.bot);
235 -
 
236 -
@@ -1710,13 +1763,20 @@ tscrolldown(int orig, int n)
237 -
 }
238 -
 
239 -
 void
240 -
-tscrollup(int orig, int n)
241 -
+tscrollup(int orig, int n, int copyhist)
242 -
 {
243 -
 	int i;
244 -
 	Line temp;
245 -
 
246 -
 	LIMIT(n, 0, term.bot-orig+1);
247 -
 
248 -
+	if (copyhist) {
249 -
+		term.histi = (term.histi + 1) % histsize;
250 -
+		temp = term.hist[term.histi];
251 -
+		term.hist[term.histi] = term.line[orig];
252 -
+		term.line[orig] = temp;
253 -
+	}
254 -
+
255 -
 	tclearregion(0, orig, term.col-1, orig+n-1);
256 -
 	tsetdirt(orig+n, term.bot);
257 -
 
258 -
@@ -1765,7 +1825,7 @@ tnewline(int first_col)
259 -
 	int y = term.c.y;
260 -
 
261 -
 	if (y == term.bot) {
262 -
-		tscrollup(term.top, 1);
263 -
+		tscrollup(term.top, 1, 1);
264 -
 	} else {
265 -
 		y++;
266 -
 	}
267 -
@@ -1930,14 +1990,14 @@ void
268 -
 tinsertblankline(int n)
269 -
 {
270 -
 	if (BETWEEN(term.c.y, term.top, term.bot))
271 -
-		tscrolldown(term.c.y, n);
272 -
+		tscrolldown(term.c.y, n, 0);
273 -
 }
274 -
 
275 -
 void
276 -
 tdeleteline(int n)
277 -
 {
278 -
 	if (BETWEEN(term.c.y, term.top, term.bot))
279 -
-		tscrollup(term.c.y, n);
280 -
+		tscrollup(term.c.y, n, 0);
281 -
 }
282 -
 
283 -
 int32_t
284 -
@@ -2371,11 +2431,11 @@ csihandle(void)
285 -
 		break;
286 -
 	case 'S': /* SU -- Scroll <n> line up */
287 -
 		DEFAULT(csiescseq.arg[0], 1);
288 -
-		tscrollup(term.top, csiescseq.arg[0]);
289 -
+		tscrollup(term.top, csiescseq.arg[0], 0);
290 -
 		break;
291 -
 	case 'T': /* SD -- Scroll <n> line down */
292 -
 		DEFAULT(csiescseq.arg[0], 1);
293 -
-		tscrolldown(term.top, csiescseq.arg[0]);
294 -
+		tscrolldown(term.top, csiescseq.arg[0], 0);
295 -
 		break;
296 -
 	case 'L': /* IL -- Insert <n> blank lines */
297 -
 		DEFAULT(csiescseq.arg[0], 1);
298 -
@@ -2871,7 +2931,7 @@ eschandle(uchar ascii)
299 -
 		return 0;
300 -
 	case 'D': /* IND -- Linefeed */
301 -
 		if (term.c.y == term.bot) {
302 -
-			tscrollup(term.top, 1);
303 -
+			tscrollup(term.top, 1, 1);
304 -
 		} else {
305 -
 			tmoveto(term.c.x, term.c.y+1);
306 -
 		}
307 -
@@ -2884,7 +2944,7 @@ eschandle(uchar ascii)
308 -
 		break;
309 -
 	case 'M': /* RI -- Reverse index */
310 -
 		if (term.c.y == term.top) {
311 -
-			tscrolldown(term.top, 1);
312 -
+			tscrolldown(term.top, 1, 1);
313 -
 		} else {
314 -
 			tmoveto(term.c.x, term.c.y-1);
315 -
 		}
316 -
@@ -3047,7 +3107,7 @@ tputc(Rune u)
317 -
 void
318 -
 tresize(int col, int row)
319 -
 {
320 -
-	int i;
321 -
+	int i, j;
322 -
 	int minrow = MIN(row, term.row);
323 -
 	int mincol = MIN(col, term.col);
324 -
 	int *bp;
325 -
@@ -3087,6 +3147,14 @@ tresize(int col, int row)
326 -
 	term.dirty = xrealloc(term.dirty, row * sizeof(*term.dirty));
327 -
 	term.tabs = xrealloc(term.tabs, col * sizeof(*term.tabs));
328 -
 
329 -
+	for (i = 0; i < histsize; i++) {
330 -
+		term.hist[i] = xrealloc(term.hist[i], col * sizeof(Glyph));
331 -
+		for (j = mincol; j < col; j++) {
332 -
+			term.hist[i][j] = term.c.attr;
333 -
+			term.hist[i][j].u = ' ';
334 -
+		}
335 -
+	}
336 -
+
337 -
 	/* resize each row to new width, zero-pad if needed */
338 -
 	for (i = 0; i < minrow; i++) {
339 -
 		term.line[i] = xrealloc(term.line[i], col * sizeof(Glyph));
340 -
@@ -3976,11 +4044,11 @@ drawregion(int x1, int y1, int x2, int y2)
341 -
 		term.dirty[y] = 0;
342 -
 
343 -
 		specs = term.specbuf;
344 -
-		numspecs = xmakeglyphfontspecs(specs, &term.line[y][x1], x2 - x1, x1, y);
345 -
+		numspecs = xmakeglyphfontspecs(specs, &TLINE(y)[x1], x2 - x1, x1, y);
346 -
 
347 -
 		i = ox = 0;
348 -
 		for (x = x1; x < x2 && i < numspecs; x++) {
349 -
-			new = term.line[y][x];
350 -
+			new = TLINE(y)[x];
351 -
 			if (new.mode == ATTR_WDUMMY)
352 -
 				continue;
353 -
 			if (ena_sel && selected(x, y))
354 -
@@ -4000,7 +4068,8 @@ drawregion(int x1, int y1, int x2, int y2)
355 -
 		if (i > 0)
356 -
 			xdrawglyphfontspecs(specs, base, i, ox, y);
357 -
 	}
358 -
-	xdrawcursor();
359 -
+	if (term.scr == 0)
360 -
+		xdrawcursor();
361 -
 }
362 -
 
363 -
 void
.unison/dropbox.prf deleted +0 -17
1 -
root = /home/cloudhead
2 -
root = ssh://cloudhead@box//home/cloudhead
3 -
4 -
sshargs = -oIdentityFile=/home/cloudhead/.ssh/id_rsa_share
5 -
6 -
path=share
7 -
auto = true
8 -
batch = true
9 -
perms = 0
10 -
ui = text
11 -
confirmmerge = false
12 -
confirmbigdel = false
13 -
prefer = newer
14 -
silent = false
15 -
times = true
16 -
repeat = watch
17 -
logfile = /home/cloudhead/.unison.log