Remove old configs
aeeee0772c2bf1c3f9755fd1e9d9b17d4b5e93ba
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 |