summaryrefslogtreecommitdiff
path: root/old/lindy
diff options
context:
space:
mode:
Diffstat (limited to 'old/lindy')
-rw-r--r--old/lindy/alacritty/alacritty.yml639
-rw-r--r--old/lindy/dot_bashrc31
-rw-r--r--old/lindy/dot_i3/config250
-rwxr-xr-xold/lindy/dot_i3/i3lock-dpms9
-rw-r--r--old/lindy/dot_i3/i3status.conf72
-rw-r--r--old/lindy/dot_tmux.conf54
-rw-r--r--old/lindy/dot_vimrc135
-rw-r--r--old/lindy/sway/config264
-rw-r--r--old/lindy/systemd/alps-inria.service15
-rw-r--r--old/lindy/systemd/dino-background.service14
-rw-r--r--old/lindy/systemd/rclone-mount@.service15
-rw-r--r--old/lindy/systemd/scream-client.service16
-rw-r--r--old/lindy/systemd/secure-tunnel@.service16
-rwxr-xr-xold/lindy/vm/vmconf.sh30
-rwxr-xr-xold/lindy/vm/vmunconf.sh17
-rw-r--r--old/lindy/vm/win10_vm_conf_20211123.xml208
-rw-r--r--old/lindy/wayfire.ini323
-rw-r--r--old/lindy/wf-shell.ini131
-rw-r--r--old/lindy/xkb/symbols/custom-fr1749
19 files changed, 3988 insertions, 0 deletions
diff --git a/old/lindy/alacritty/alacritty.yml b/old/lindy/alacritty/alacritty.yml
new file mode 100644
index 0000000..0c5785c
--- /dev/null
+++ b/old/lindy/alacritty/alacritty.yml
@@ -0,0 +1,639 @@
+# Configuration for Alacritty, the GPU enhanced terminal emulator.
+
+# Any items in the `env` entry below will be added as
+# environment variables. Some entries may override variables
+# set by alacritty itself.
+env:
+ # TERM variable
+ #
+ # This value is used to set the `$TERM` environment variable for
+ # each instance of Alacritty. If it is not present, alacritty will
+ # check the local terminfo database and use `alacritty` if it is
+ # available, otherwise `xterm-256color` is used.
+ TERM: xterm-256color
+
+#window:
+ # Window dimensions (changes require restart)
+ #
+ # Specified in number of columns/lines, not pixels.
+ # If both are `0`, this setting is ignored.
+ #dimensions:
+ # columns: 0
+ # lines: 0
+
+ # Window position (changes require restart)
+ #
+ # Specified in number of pixels.
+ # If the position is not set, the window manager will handle the placement.
+ #position:
+ # x: 0
+ # y: 0
+
+ # Window padding (changes require restart)
+ #
+ # Blank space added around the window in pixels. This padding is scaled
+ # by DPI and the specified value is always added at both opposing sides.
+ #padding:
+ # x: 0
+ # y: 0
+
+ # Spread additional padding evenly around the terminal content.
+ #dynamic_padding: false
+
+ # Window decorations
+ #
+ # Values for `decorations`:
+ # - full: Borders and title bar
+ # - none: Neither borders nor title bar
+ #
+ # Values for `decorations` (macOS only):
+ # - transparent: Title bar, transparent background and title bar buttons
+ # - buttonless: Title bar, transparent background, but no title bar buttons
+ #decorations: full
+
+ # Startup Mode (changes require restart)
+ #
+ # Values for `startup_mode`:
+ # - Windowed
+ # - Maximized
+ # - Fullscreen
+ #
+ # Values for `startup_mode` (macOS only):
+ # - SimpleFullscreen
+ #startup_mode: Windowed
+
+ # Window title
+ #title: Alacritty
+
+ # Window class (Linux/BSD only):
+ #class:
+ # Application instance name
+ #instance: Alacritty
+ # General application class
+ #general: Alacritty
+
+ # GTK theme variant (Linux/BSD only)
+ #
+ # Override the variant of the GTK theme. Commonly supported values are `dark` and `light`.
+ # Set this to `None` to use the default theme variant.
+ #gtk_theme_variant: None
+
+#scrolling:
+ # Maximum number of lines in the scrollback buffer.
+ # Specifying '0' will disable scrolling.
+ #history: 10000
+
+ # Number of lines the viewport will move for every line scrolled when
+ # scrollback is enabled (history > 0).
+ #multiplier: 3
+
+ # Scroll to the bottom when new text is written to the terminal.
+ #auto_scroll: false
+
+# Spaces per Tab (changes require restart)
+#
+# This setting defines the width of a tab in cells.
+#
+# Some applications, like Emacs, rely on knowing about the width of a tab.
+# To prevent unexpected behavior in these applications, it's also required to
+# change the `it` value in terminfo when altering this setting.
+#tabspaces: 8
+
+# Font configuration
+font:
+ # Normal (roman) font face
+ normal:
+ # Font family
+ #
+ # Default:
+ # - (macOS) Menlo
+ # - (Linux/BSD) monospace
+ # - (Windows) Consolas
+ family: Input Mono
+
+ # The `style` can be specified to pick a specific face.
+ style: Light
+
+ # Bold font face
+ bold:
+ # Font family
+ #
+ # If the bold family is not specified, it will fall back to the
+ # value specified for the normal font.
+ family: Input Mono
+
+ # The `style` can be specified to pick a specific face.
+ style: Italic
+
+ # Italic font face
+ italic:
+ # Font family
+ #
+ # If the italic family is not specified, it will fall back to the
+ # value specified for the normal font.
+ family: Input Mono
+
+ # The `style` can be specified to pick a specific face.
+ style: Regular
+
+ # Bold italic font face
+ #bold_italic:
+ # Font family
+ #
+ # If the bold italic family is not specified, it will fall back to the
+ # value specified for the normal font.
+ #family: monospace
+
+ # The `style` can be specified to pick a specific face.
+ #style: Bold Italic
+
+ # Point size
+ size: 12.0
+
+ # Offset is the extra space around each character. `offset.y` can be thought of
+ # as modifying the line spacing, and `offset.x` as modifying the letter spacing.
+ #offset:
+ # x: 0
+ # y: 0
+
+ # Glyph offset determines the locations of the glyphs within their cells with
+ # the default being at the bottom. Increasing `x` moves the glyph to the right,
+ # increasing `y` moves the glyph upwards.
+ #glyph_offset:
+ # x: 0
+ # y: 0
+
+ # Thin stroke font rendering (macOS only)
+ #
+ # Thin strokes are suitable for retina displays, but for non-retina screens
+ # it is recommended to set `use_thin_strokes` to `false`
+ #
+ # macOS >= 10.14.x:
+ #
+ # If the font quality on non-retina display looks bad then set
+ # `use_thin_strokes` to `true` and enable font smoothing by running the
+ # following command:
+ # `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
+ #
+ # This is a global setting and will require a log out or restart to take
+ # effect.
+ #use_thin_strokes: true
+
+# If `true`, bold text is drawn using the bright color variants.
+#draw_bold_text_with_bright_colors: true
+
+# Colors (Tomorrow Night Bright)
+colors:
+ # Default colors
+ primary:
+ background: '0x282828'
+ foreground: '0xeeeeee'
+
+ # Bright and dim foreground colors
+ #
+ # The dimmed foreground color is calculated automatically if it is not present.
+ # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
+ # is `false`, the normal foreground color will be used.
+ #dim_foreground: '0x9a9a9a'
+ #bright_foreground: '0xffffff'
+
+ # Cursor colors
+ #
+ # Colors which should be used to draw the terminal cursor. If these are unset,
+ # the cursor color will be the inverse of the cell color.
+ #cursor:
+ # text: '0x000000'
+ # cursor: '0xffffff'
+
+ # Selection colors
+ #
+ # Colors which should be used to draw the selection area. If selection
+ # background is unset, selection color will be the inverse of the cell colors.
+ # If only text is unset the cell text color will remain the same.
+ #selection:
+ # text: '0xeaeaea'
+ # background: '0x404040'
+
+
+ # Default Normal colors
+ #normal:
+ # black: '0x000000'
+ # red: '0xd54e53'
+ # green: '0xb9ca4a'
+ # yellow: '0xe6c547'
+ # blue: '0x7aa6da'
+ # magenta: '0xc397d8'
+ # cyan: '0x70c0ba'
+ # white: '0xeaeaea'
+
+
+ # TENDER THEME
+ #
+ # Normal colors
+ normal:
+ black: '0x282828'
+ red: '0xf43753'
+ green: '0xc9d05c'
+ yellow: '0xffc24b'
+ blue: '0xb3deef'
+ magenta: '0xd3b987'
+ cyan: '0x73cef4'
+ white: '0xeeeeee'
+
+ # Bright colors
+ bright:
+ black: '0xAAAAAA'
+ red: '0xf43753'
+ green: '0xc9d05c'
+ yellow: '0xffc24b'
+ blue: '0xb3deef'
+ magenta: '0xd3b987'
+ cyan: '0x73cef4'
+ white: '0xfeffff'
+
+
+ # -- MOLOKAI THEME --
+
+ # Molokai normal
+ # normal:
+ # #black: '#333333'
+ # #red: '#C4265E'
+ # #green: '#86B42B'
+ # #yellow: '#B3B42B'
+ # #blue: '#6A7EC8'
+ # #magenta: '#8C6BC8'
+ # #cyan: '#56ADBC'
+ # #white: '#E3E3DD'
+ # #bright colors as normal colors
+ # black: '#000000'
+ # red: '#F92672'
+ # green: '#A6E22E'
+ # yellow: '#E2E22E'
+ # blue: '#819AFF'
+ # magenta: '#AE81FF'
+ # cyan: '#66D9EF'
+ # white: '#F8F8F2'
+ # # Molokai bright
+ # bright:
+ # black: '#999999'
+ # red: '#F92672'
+ # green: '#A6E22E'
+ # yellow: '#E2E22E'
+ # blue: '#819AFF'
+ # magenta: '#AE81FF'
+ # cyan: '#66D9EF'
+ # white: '#F8F8F2'
+
+ # Defualt bright colors used as normal colors
+ #normal:
+ # black: '0x000000'
+ # red: '0xff3334'
+ # green: '0x9ec400'
+ # yellow: '0xe7c547'
+ # blue: '0x7aa6da'
+ # magenta: '0xb77ee0'
+ # cyan: '0x54ced6'
+ # white: '0xffffff'
+
+ # Default Bright colors
+ #bright:
+ # black: '0x666666'
+ # red: '0xff3334'
+ # green: '0x9ec400'
+ # yellow: '0xe7c547'
+ # blue: '0x7aa6da'
+ # magenta: '0xb77ee0'
+ # cyan: '0x54ced6'
+ # white: '0xffffff'
+
+ # Dim colors
+ #
+ # If the dim colors are not set, they will be calculated automatically based
+ # on the `normal` colors.
+ #dim:
+ # black: '0x000000'
+ # red: '0x8c3336'
+ # green: '0x7a8530'
+ # yellow: '0x97822e'
+ # blue: '0x506d8f'
+ # magenta: '0x80638e'
+ # cyan: '0x497e7a'
+ # white: '0x9a9a9a'
+
+ # Indexed Colors
+ #
+ # The indexed colors include all colors from 16 to 256.
+ # When these are not set, they're filled with sensible defaults.
+ #
+ # Example:
+ # `- { index: 16, color: '0xff00ff' }`
+ #
+ #indexed_colors: []
+
+# Visual Bell
+#
+# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
+# rung, the terminal background will be set to white and transition back to the
+# default background color. You can control the rate of this transition by
+# setting the `duration` property (represented in milliseconds). You can also
+# configure the transition function by setting the `animation` property.
+#
+# Values for `animation`:
+# - Ease
+# - EaseOut
+# - EaseOutSine
+# - EaseOutQuad
+# - EaseOutCubic
+# - EaseOutQuart
+# - EaseOutQuint
+# - EaseOutExpo
+# - EaseOutCirc
+# - Linear
+#
+# Specifying a `duration` of `0` will disable the visual bell.
+#visual_bell:
+# animation: EaseOutExpo
+# duration: 0
+# color: '0xffffff'
+
+# Background opacity
+#
+# Window opacity as a floating point number from `0.0` to `1.0`.
+# The value `0.0` is completely transparent and `1.0` is opaque.
+#background_opacity: 1.0
+
+#selection:
+ #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
+
+ # When set to `true`, selected text will be copied to the primary clipboard.
+ #save_to_clipboard: false
+
+# Allow terminal applications to change Alacritty's window title.
+#dynamic_title: true
+
+#cursor:
+ # Cursor style
+ #
+ # Values for `style`:
+ # - ▇ Block
+ # - _ Underline
+ # - | Beam
+ #style: Block
+
+ # If this is `true`, the cursor will be rendered as a hollow box when the
+ # window is not focused.
+ #unfocused_hollow: true
+
+# Live config reload (changes require restart)
+#live_config_reload: true
+
+# Shell
+#
+# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
+# Entries in `shell.args` are passed unmodified as arguments to the shell.
+#
+# Default:
+# - (macOS) /bin/bash --login
+# - (Linux/BSD) user login shell
+# - (Windows) powershell
+#shell:
+# program: /bin/bash
+# args:
+# - --login
+
+# Startup directory
+#
+# Directory the shell is started in. If this is unset, or `None`, the working
+# directory of the parent process will be used.
+#working_directory: None
+
+# WinPTY backend (Windows only)
+#
+# Alacritty defaults to using the newer ConPTY backend if it is available,
+# since it resolves a lot of bugs and is quite a bit faster. If it is not
+# available, the the WinPTY backend will be used instead.
+#
+# Setting this option to `true` makes Alacritty use the legacy WinPTY backend,
+# even if the ConPTY backend is available.
+#winpty_backend: false
+
+# Send ESC (\x1b) before characters when alt is pressed.
+#alt_send_esc: true
+
+#debug:
+ # Display the time it takes to redraw each frame.
+ #render_timer: false
+
+ # Keep the log file after quitting Alacritty.
+ #persistent_logging: false
+
+ # Log level
+ #
+ # Values for `log_level`:
+ # - None
+ # - Error
+ # - Warn
+ # - Info
+ # - Debug
+ # - Trace
+ #log_level: Warn
+
+ # Print all received window events.
+ #print_events: false
+
+ # Record all characters and escape sequences as test data.
+ #ref_test: false
+
+#mouse:
+ # Click settings
+ #
+ # The `double_click` and `triple_click` settings control the time
+ # alacritty should wait for accepting multiple clicks as one double
+ # or triple click.
+ #double_click: { threshold: 300 }
+ #triple_click: { threshold: 300 }
+
+ # If this is `true`, the cursor is temporarily hidden when typing.
+ #hide_when_typing: false
+
+ #url:
+ # URL launcher
+ #
+ # This program is executed when clicking on a text which is recognized as a URL.
+ # The URL is always added to the command as the last parameter.
+ #
+ # When set to `None`, URL launching will be disabled completely.
+ #
+ # Default:
+ # - (macOS) open
+ # - (Linux/BSD) xdg-open
+ # - (Windows) explorer
+ #launcher:
+ # program: xdg-open
+ # args: []
+
+ # URL modifiers
+ #
+ # These are the modifiers that need to be held down for opening URLs when clicking
+ # on them. The available modifiers are documented in the key binding section.
+ #modifiers: None
+
+# Mouse bindings
+#
+# Mouse bindings are specified as a list of objects, much like the key
+# bindings further below.
+#
+# Each mouse binding will specify a:
+#
+# - `mouse`:
+#
+# - Middle
+# - Left
+# - Right
+# - Numeric identifier such as `5`
+#
+# - `action` (see key bindings)
+#
+# And optionally:
+#
+# - `mods` (see key bindings)
+#mouse_bindings:
+# - { mouse: Middle, action: PasteSelection }
+
+# Key bindings
+#
+# Key bindings are specified as a list of objects. For example, this is the
+# default paste binding:
+#
+# `- { key: V, mods: Control|Shift, action: Paste }`
+#
+# Each key binding will specify a:
+#
+# - `key`: Identifier of the key pressed
+#
+# - A-Z
+# - F1-F24
+# - Key0-Key9
+#
+# A full list with available key codes can be found here:
+# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
+#
+# Instead of using the name of the keys, the `key` field also supports using
+# the scancode of the desired key. Scancodes have to be specified as a
+# decimal number. This command will allow you to display the hex scancodes
+# for certain keys:
+#
+# `showkey --scancodes`.
+#
+# Then exactly one of:
+#
+# - `chars`: Send a byte sequence to the running application
+#
+# The `chars` field writes the specified string to the terminal. This makes
+# it possible to pass escape sequences. To find escape codes for bindings
+# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
+# of tmux. Note that applications use terminfo to map escape sequences back
+# to keys. It is therefore required to update the terminfo when changing an
+# escape sequence.
+#
+# - `action`: Execute a predefined action
+#
+# - Copy
+# - Paste
+# - PasteSelection
+# - IncreaseFontSize
+# - DecreaseFontSize
+# - ResetFontSize
+# - ScrollPageUp
+# - ScrollPageDown
+# - ScrollLineUp
+# - ScrollLineDown
+# - ScrollToTop
+# - ScrollToBottom
+# - ClearHistory
+# - Hide
+# - Minimize
+# - Quit
+# - ToggleFullscreen
+# - SpawnNewInstance
+# - ClearLogNotice
+# - ReceiveChar
+# - None
+#
+# (macOS only):
+# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space
+#
+# - `command`: Fork and execute a specified command plus arguments
+#
+# The `command` field must be a map containing a `program` string and an
+# `args` array of command line parameter strings. For example:
+# `{ program: "alacritty", args: ["-e", "vttest"] }`
+#
+# And optionally:
+#
+# - `mods`: Key modifiers to filter binding actions
+#
+# - Command
+# - Control
+# - Option
+# - Super
+# - Shift
+# - Alt
+#
+# Multiple `mods` can be combined using `|` like this:
+# `mods: Control|Shift`.
+# Whitespace and capitalization are relevant and must match the example.
+#
+# - `mode`: Indicate a binding for only specific terminal reported modes
+#
+# This is mainly used to send applications the correct escape sequences
+# when in different modes.
+#
+# - AppCursor
+# - AppKeypad
+# - Alt
+#
+# A `~` operator can be used before a mode to apply the binding whenever
+# the mode is *not* active, e.g. `~Alt`.
+#
+# Bindings are always filled by default, but will be replaced when a new
+# binding with the same triggers is defined. To unset a default binding, it can
+# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
+# a no-op if you do not wish to receive input characters for that binding.
+#key_bindings:
+ # (Windows, Linux, and BSD only)
+ #- { key: V, mods: Control|Shift, action: Paste }
+ #- { key: C, mods: Control|Shift, action: Copy }
+ #- { key: Insert, mods: Shift, action: PasteSelection }
+ #- { key: Key0, mods: Control, action: ResetFontSize }
+ #- { key: Equals, mods: Control, action: IncreaseFontSize }
+ #- { key: Add, mods: Control, action: IncreaseFontSize }
+ #- { key: Subtract, mods: Control, action: DecreaseFontSize }
+ #- { key: Minus, mods: Control, action: DecreaseFontSize }
+
+ # (Windows only)
+ #- { key: Return, mods: Alt, action: ToggleFullscreen }
+
+ # (macOS only)
+ #- { key: Key0, mods: Command, action: ResetFontSize }
+ #- { key: Equals, mods: Command, action: IncreaseFontSize }
+ #- { key: Add, mods: Command, action: IncreaseFontSize }
+ #- { key: Minus, mods: Command, action: DecreaseFontSize }
+ #- { key: K, mods: Command, action: ClearHistory }
+ #- { key: K, mods: Command, chars: "\x0c" }
+ #- { key: V, mods: Command, action: Paste }
+ #- { key: C, mods: Command, action: Copy }
+ #- { key: H, mods: Command, action: Hide }
+ #- { key: M, mods: Command, action: Minimize }
+ #- { key: Q, mods: Command, action: Quit }
+ #- { key: W, mods: Command, action: Quit }
+ #- { key: F, mods: Command|Control, action: ToggleFullscreen }
+
+ #- { key: Paste, action: Paste }
+ #- { key: Copy, action: Copy }
+ #- { key: L, mods: Control, action: ClearLogNotice }
+ #- { key: L, mods: Control, chars: "\x0c" }
+ #- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }
+ #- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }
+ #- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt }
+ #- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt }
diff --git a/old/lindy/dot_bashrc b/old/lindy/dot_bashrc
new file mode 100644
index 0000000..5ba4663
--- /dev/null
+++ b/old/lindy/dot_bashrc
@@ -0,0 +1,31 @@
+#
+# ~/.bashrc
+#
+
+# If not running interactively, don't do anything
+[[ $- != *i* ]] && return
+
+#source $HOME/.profile
+
+alias ls='ls --color=auto'
+PS1='[\u@\h \W]\$ '
+
+export EDITOR='vim'
+
+alias irc='ssh -t adnab.me /usr/local/bin/irc'
+
+export PATH=$HOME/.local/bin:$PATH
+
+#keychain ~/.ssh/id_rsa --quiet
+keychain ~/.ssh/id_ed25519 --quiet
+eval $(keychain --eval --quiet)
+
+# RUST
+source $HOME/.cargo/env
+
+# xkb
+if [ ! -z "$DISPLAY" ]; then
+ xkbcomp ~/.xkb/symbols/custom-fr $DISPLAY 2>/dev/null
+fi
+
+alias copyx='xclip -selection c'
diff --git a/old/lindy/dot_i3/config b/old/lindy/dot_i3/config
new file mode 100644
index 0000000..85a33ab
--- /dev/null
+++ b/old/lindy/dot_i3/config
@@ -0,0 +1,250 @@
+# This file has been auto-generated by i3-config-wizard(1).
+# It will not be overwritten, so edit it as you like.
+#
+# Should you change your keyboard layout somewhen, delete
+# this file and re-run i3-config-wizard(1).
+#
+
+# i3 config file (v4)
+#
+# Please see http://i3wm.org/docs/userguide.html for a complete reference!
+
+# defaults
+#client.focused #4c7899 #285577 #ffffff #2e9ef4
+#client.focused_inactive #333333 #5f676a #ffffff #484e50
+#client.unfocused #333333 #222222 #888888 #292d2e
+#client.urgent #2f343a #900000 #ffffff #900000
+
+# class border backgr. text indicator
+#client.focused #97734c #77432c #ffffff #2e9ef4
+#client.focused_inactive #333333 #5f676a #ffffff #484e50
+#client.unfocused #333333 #222222 #888888 #292d2e
+#client.urgent #2f343a #900000 #ffffff #900000
+#client.background #111111
+
+# client.focused #333333 #5A5958 #dddddd #2e7ec4
+# client.focused_inactive #333333 #2f373a #AAAAAA #484e50
+# client.unfocused #333333 #222222 #888888 #292d2e
+# client.urgent #2f343a #900000 #ffffff #900000
+# client.background #111111
+
+client.focused #000000 #000000 #dddddd #2e7ec4
+client.focused_inactive #000000 #000000 #AAAAAA #484e50
+client.unfocused #000000 #000000 #888888 #292d2e
+client.urgent #000000 #900000 #ffffff #900000
+client.background #000000
+
+set $mod Mod4
+
+# font for window titles. ISO 10646 = Unicode
+#font -misc-fixed-medium-r-normal--12-120-75-75-C-70-iso10646-1
+font pango:Inconsolata 15px
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# start a terminal
+#bindsym $mod+Return exec i3-sensible-terminal
+#bindsym $mod+Return exec mlterm
+bindsym $mod+Return exec alacritty
+
+# bindsym $mod+Shift+X exec xscreensaver-command -lock
+#bindsym $mod+Shift+X exec i3lock -d -c 111111 -I 5
+bindsym $mod+Shift+X exec /home/lx/.i3/i3lock-dpms
+
+# music control
+#bindsym $mod+Shift+P exec mpc toggle
+#bindsym $mod+Shift+N exec mpc next
+
+# kill focused window
+bindsym $mod+Shift+Q kill
+
+# start dmenu (a program launcher)
+bindsym $mod+p exec dmenu_run
+
+# change focus
+bindsym $mod+h focus left
+bindsym $mod+j focus down
+bindsym $mod+k focus up
+bindsym $mod+l focus right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# move focused window
+bindsym $mod+Shift+H move left
+bindsym $mod+Shift+J move down
+bindsym $mod+Shift+K move up
+bindsym $mod+Shift+L move right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+# split in horizontal orientation
+bindsym $mod+b split h
+
+# split in vertical orientation
+bindsym $mod+v split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen
+
+# change container layout (stacked, tabbed, default)
+bindsym $mod+s layout stacking
+bindsym $mod+z layout tabbed
+bindsym $mod+e layout default
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+bindsym $mod+q focus parent
+
+# focus the child container
+#bindcode $mod+d focus child
+
+# switch to workspace
+#bindsym $mod+ampersand workspace 1
+#bindsym $mod+eacute workspace 2
+#bindsym $mod+quotedbl workspace 3
+#bindsym $mod+apostrophe workspace 4
+#bindsym $mod+parenleft workspace 5
+#bindsym $mod+minus workspace 6
+#bindsym $mod+egrave workspace 7
+#bindsym $mod+underscore workspace 8
+#bindsym $mod+ccedilla workspace 9
+#bindsym $mod+agrave workspace 10
+bindsym $mod+1 workspace 1
+bindsym $mod+2 workspace 2
+bindsym $mod+3 workspace 3
+bindsym $mod+4 workspace 4
+bindsym $mod+5 workspace 5
+bindsym $mod+6 workspace 6
+bindsym $mod+7 workspace 7
+bindsym $mod+8 workspace 8
+bindsym $mod+9 workspace 9
+bindsym $mod+0 workspace 10
+
+workspace_auto_back_and_forth yes
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace 1
+bindsym $mod+Shift+2 move container to workspace 2
+bindsym $mod+Shift+3 move container to workspace 3
+bindsym $mod+Shift+4 move container to workspace 4
+bindsym $mod+Shift+5 move container to workspace 5
+bindsym $mod+Shift+6 move container to workspace 6
+bindsym $mod+Shift+7 move container to workspace 7
+bindsym $mod+Shift+8 move container to workspace 8
+bindsym $mod+Shift+9 move container to workspace 9
+bindsym $mod+Shift+0 move container to workspace 10
+
+# reload the configuration file
+bindsym $mod+Shift+C reload
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindsym $mod+Shift+R restart
+# exit i3 (logs you out of your X session)
+bindsym $mod+Shift+E exit
+
+bindsym $mod+t border normal
+bindsym $mod+y border 1pixel
+bindsym $mod+u border none
+
+bindsym XF86MonBrightnessDown exec xbacklight -dec 10
+bindsym XF86MonBrightnessUp exec xbacklight -inc 10
+bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
+bindsym XF86AudioRaiseVolume exec pactl set-sink-mute @DEFAULT_SINK@ false && pactl set-sink-volume @DEFAULT_SINK@ +5%
+bindsym XF86AudioLowerVolume exec pactl set-sink-mute @DEFAULT_SINK@ false && pactl set-sink-volume @DEFAULT_SINK@ -5%
+bindsym XF86AudioPlay exec playerctl play-pause
+bindsym XF86AudioNext exec playerctl next
+
+
+for_window [title="xfce4-notifyd"] floating enable
+for_window [title="xfce4-notifyd"] border none
+for_window [title="Caml graphics"] floating enable
+for_window [title="QEMU"] floating enable
+for_window [title="a.out"] floating enable
+for_window [title="mgrx*"] floating enable
+for_window [class="Klavaro"] floating enable
+for_window [class="Steam"] floating enable
+for_window [class="Wine"] floating enable
+for_window [class="StepMania"] floating enable
+for_window [class="stepmania"] floating enable
+for_window [class="anki"] floating enable
+for_window [class="visu.bin"] floating enable
+for_window [class="pathfind"] floating enable
+
+#new_window 1pixel
+new_window none
+
+# resize window (you can also use the mouse for that)
+mode "resize" {
+ # These bindings trigger as soon as you enter the resize mode
+
+ # Pressing left will shrink the window’s width.
+ # Pressing right will grow the window’s width.
+ # Pressing up will shrink the window’s height.
+ # Pressing down will grow the window’s height.
+ bindsym h resize shrink width 5 px or 5 ppt
+ bindsym j resize grow height 5 px or 5 ppt
+ bindsym k resize shrink height 5 px or 5 ppt
+ bindsym l resize grow width 5 px or 5 ppt
+
+ # same bindings, but for the arrow keys
+ bindsym 113 resize shrink width 5 px or 5 ppt
+ bindsym 116 resize grow height 5 px or 5 ppt
+ bindsym 111 resize shrink height 5 px or 5 ppt
+ bindsym 114 resize grow width 5 px or 5 ppt
+
+ # back to normal: Enter or Escape
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+# Start i3bar to display a workspace bar (plus the system information i3status
+# finds out, if available)
+bar {
+ status_command i3status -c ~/.i3/i3status.conf
+ #font -misc-fixed-medium-r-normal--12-120-75-75-C-70-iso10646-1
+ font pango:Inconsolata 14px
+ colors {
+ background #000000
+ statusline #FFFFFF
+
+ focused_workspace #000000 #000000 #C8E7A4
+ active_workspace #000000 #000000 #EAB93D
+ inactive_workspace #000000 #000000 #888888
+ urgent_workspace #000000 #000000 #FF8D8D
+ }
+}
+
+
+exec_always xsetroot -cursor_name arrow
+#exec_always feh --bg-scale /home/lx/stuff/arch1.png
+#exec_always feh --bg-fill /home/lx/stuff/wallpaper/factory.jpg
+
+# fix nvidia tearing
+exec nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
+
+exec_always xinput --set-prop 'HID 04d9:1133' 'Device Accel Constant Deceleration' 2
+exec_always xinput --set-prop 'HID 04d9:1133' 'Device Accel Adaptive Deceleration' 2
+exec_always xinput --set-prop 'HID 04d9:1133' 'Device Accel Velocity Scaling' 5
+exec nm-applet
+exec nextcloud
+exec syncthing-gtk -m
+exec_always xset -b # disable bell
+exec xcompmgr
+exec redshift-gtk -l 48.8567:2.3508
+exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+
diff --git a/old/lindy/dot_i3/i3lock-dpms b/old/lindy/dot_i3/i3lock-dpms
new file mode 100755
index 0000000..fa97182
--- /dev/null
+++ b/old/lindy/dot_i3/i3lock-dpms
@@ -0,0 +1,9 @@
+#!/bin/sh
+revert() {
+ xset dpms 0 0 0
+}
+trap revert SIGHUP SIGINT SIGTERM
+#xset +dpms dpms 5 5 5
+xset dpms force off
+i3lock -n -c 111111 -I 5
+revert
diff --git a/old/lindy/dot_i3/i3status.conf b/old/lindy/dot_i3/i3status.conf
new file mode 100644
index 0000000..cc11aa8
--- /dev/null
+++ b/old/lindy/dot_i3/i3status.conf
@@ -0,0 +1,72 @@
+general {
+ colors = true
+ color_good = "#93D44F"
+ color_bad = "#FF8D8D"
+ color_degraded = "#FFC123"
+ interval = 5
+}
+
+order += "ipv6"
+order += "wireless wlp2s0"
+order += "ethernet enp4s0"
+order += "ethernet tun0"
+order += "ethernet tun1"
+order += "ethernet vpn0"
+order += "disk /home"
+order += "volume master"
+order += "cpu_temperature 1"
+order += "load"
+order += "time"
+
+wireless wlp2s0 {
+ format_up = "W: (%quality at %essid) %ip"
+ format_down = "W: down"
+}
+
+ethernet enp4s0 {
+ # if you use %speed, i3status requires root privileges
+ format_up = "E: %ip"
+ format_down = "E: down"
+}
+
+ethernet tun0 {
+ # if you use %speed, i3status requires root privileges
+ format_up = "tun0: %ip"
+ format_down = "tun0: down"
+}
+
+ethernet tun1 {
+ # if you use %speed, i3status requires root privileges
+ format_up = "tun1: %ip"
+ format_down = "tun1: down"
+}
+
+ethernet vpn0 {
+ # if you use %speed, i3status requires root privileges
+ format_up = "vpn0: %ip"
+ format_down = "vpn0: down"
+}
+
+volume master {
+ format = "♪: %volume"
+ device = "default"
+ mixer = "Master"
+ mixer_idx = 0
+}
+
+time {
+ format = "%a %Y-%m-%d %H:%M:%S"
+}
+
+load {
+ format = "%1min"
+}
+
+cpu_temperature 1 {
+ format = "T: %degrees °C"
+ path = "/sys/class/thermal/thermal_zone2/temp"
+}
+
+disk "/home" {
+ format = "%avail"
+}
diff --git a/old/lindy/dot_tmux.conf b/old/lindy/dot_tmux.conf
new file mode 100644
index 0000000..dc80775
--- /dev/null
+++ b/old/lindy/dot_tmux.conf
@@ -0,0 +1,54 @@
+# KEY BINDINGS
+
+setw -g mode-keys vi
+
+# remap prefix to Control + a
+set -g prefix C-q
+unbind C-b
+bind C-q send-prefix
+
+unbind q
+bind-key q copy-mode
+
+unbind p
+bind p paste-buffer
+
+# force a reload of the config file
+unbind r
+bind r source-file ~/.tmux.conf
+
+# quick pane cycling
+unbind ^A
+bind ^A select-pane -t :.+
+
+# switch panes using vim-like bindings C-a hjkl
+unbind h
+unbind j
+unbind k
+unbind l
+bind h select-pane -L
+bind l select-pane -R
+bind k select-pane -U
+bind j select-pane -D
+# switch panes using bindings C-q C-hl
+unbind ^H
+unbind ^L
+bind ^H previous-window
+bind ^L next-window
+
+# OTHER OPTIONS
+
+set -g mouse on
+
+set -g escape-time 0
+
+# don't rename windows automatically
+set-option -g allow-rename off
+
+
+######################
+### DESIGN CHANGES ###
+######################
+
+set -g status-bg colour2
+
diff --git a/old/lindy/dot_vimrc b/old/lindy/dot_vimrc
new file mode 100644
index 0000000..13ecca5
--- /dev/null
+++ b/old/lindy/dot_vimrc
@@ -0,0 +1,135 @@
+source /usr/share/vim/vim82/defaults.vim
+source /etc/vimrc
+
+let NERDTreeIgnore=['\.o$', '\.cmo$', '\.cmx$', '\.cmi$', '\.lib$', '\.pyc$', '^__pycache__$', '\.class$']
+
+set encoding=utf-8
+
+set cmdheight=2
+
+if has("patch-8.1.1564")
+ " Recently vim can merge signcolumn and number column into one
+ set signcolumn=number
+else
+ set signcolumn=yes
+endif
+
+set exrc
+set hlsearch
+
+set number
+set relativenumber
+
+let mapleader=","
+
+" Tab modes.
+map <leader>m <Esc>:set expandtab ts=2 sw=2 sts=2<CR>
+map <leader>t <Esc>:set noexpandtab ts=4 sw=4 sts=4<CR>
+map <leader>T <Esc>:set expandtab ts=4 sw=4 sts=4<CR>
+
+set pastetoggle=<F2>
+
+" reload config
+map <leader>c <Esc>:source ~/.vimrc<CR>
+
+" FZF bindings
+"
+" map <leader>f <Esc>:FZF<CR>
+map ; <Esc>:FZF<CR>
+
+map \ <Esc>:Vista finder coc<CR>
+map <leader>b <Esc>:Vista<CR>
+
+" Diagnostic messages
+
+map <leader>d <Esc>:CocDiagnostics<CR>
+
+" map <leader>l <Esc>:ALENextWrap<CR>
+nmap <silent> <leader>s <Plug>(coc-diagnostic-prev)
+nmap <silent> <leader>f <Plug>(coc-diagnostic-next)
+" map <C-n> <Esc>:cnext<CR>
+" map <C-m> <Esc>:cprevious<CR>
+
+" GoTo code navigation.
+nmap <silent> gd <Plug>(coc-definition)
+nmap <silent> gy <Plug>(coc-type-definition)
+nmap <silent> gi <Plug>(coc-implementation)
+nmap <silent> gr <Plug>(coc-references)
+
+" Use K to show documentation in preview window.
+nnoremap <silent> K :call <SID>show_documentation()<CR>
+
+function! s:show_documentation()
+ if (index(['vim','help'], &filetype) >= 0)
+ execute 'h '.expand('<cword>')
+ elseif (coc#rpc#ready())
+ call CocActionAsync('doHover')
+ else
+ execute '!' . &keywordprg . " " . expand('<cword>')
+ endif
+endfunction
+
+" tab completion (coc)
+inoremap <silent><expr> <TAB>
+ \ pumvisible() ? "\<C-n>" :
+ \ <SID>check_back_space() ? "\<TAB>" :
+ \ coc#refresh()
+inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
+
+function! s:check_back_space() abort
+ let col = col('.') - 1
+ return !col || getline('.')[col - 1] =~# '\s'
+endfunction
+
+
+" Symbol renaming.
+nmap <leader>rn <Plug>(coc-rename)
+
+" Formatting selected code.
+"xmap <leader>f <Plug>(coc-format-selected)
+"nmap <leader>f <Plug>(coc-format-selected)
+
+
+" Append modeline after last line in buffer.
+" Use substitute() instead of printf() to handle '%%s' modeline in LaTeX
+" files.
+function! AppendModeline()
+ let l:modeline = printf(" vim: set sts=%d ts=%d sw=%d tw=%d %set :",
+ \ &softtabstop, &tabstop, &shiftwidth, &textwidth, &expandtab ? '' : 'no')
+ let l:modeline = substitute(&commentstring, "%s", l:modeline, "")
+ call append(line("$"), l:modeline)
+endfunction
+nnoremap <silent> <Leader>ml :call AppendModeline()<CR>
+
+filetype plugin indent on
+set autoindent
+set smartindent
+set ts=4 sw=4
+
+" indentation for long line wraps
+set wrap
+set linebreak
+set breakindent
+let &showbreak = '> '
+
+set bg=dark
+
+au FileType make setl noexpandtab
+au FileType python setl sw=4 sts=4 et
+au FileType html setl sw=2 sts=2 et
+au FileType htmldjango setl sw=2 sts=2 et
+au FileType json setl sw=2 sts=2 et
+au FileType javascript setl sw=2 sts=2 et
+au FileType yaml setl sw=2 sts=2 et
+au FileType css setl sw=4 sts=4 et
+au FileType lua setl ts=4 sw=4 noet
+au FileType trema setl ts=2 sts=2 et
+au FileType typescript.tsx setl ts=2 sts=2 et
+au FileType rust setl ts=4 sw=4 noet
+au FileType tex setl indentexpr= nosi ai sw=4 sts=4 et
+
+let g:ale_linters = {'rust': ['analyzer']}
+
+highlight Pmenu ctermbg=gray guibg=gray
+
+colorscheme solarized8
diff --git a/old/lindy/sway/config b/old/lindy/sway/config
new file mode 100644
index 0000000..1f0f1f1
--- /dev/null
+++ b/old/lindy/sway/config
@@ -0,0 +1,264 @@
+# This file has been auto-generated by i3-config-wizard(1).
+# It will not be overwritten, so edit it as you like.
+#
+# Should you change your keyboard layout somewhen, delete
+# this file and re-run i3-config-wizard(1).
+#
+
+xwayland enable
+
+#input "*" xkb_layout "fr"
+#input "*" xkb_variant "oss"
+input "*" xkb_file "/home/lx/.xkb/symbols/custom-fr"
+
+#input "*" xkb_layout "us"
+#input "*" xkb_variant "intl"
+
+seat "*" hide_cursor 5000
+
+output "*" background "/home/lx/stuff/wp/mdvn1ywappt61.jpg" fit
+
+#output "eDP-1" scale 1.2
+
+# i3 config file (v4)
+#
+# Please see http://i3wm.org/docs/userguide.html for a complete reference!
+
+# defaults
+client.focused #4c7899 #285577 #ffffff #2e9ef4 #285577
+client.focused_inactive #333333 #5f676a #ffffff #484e50 #5f676a
+client.unfocused #333333 #222222 #888888 #292d2e #222222
+client.urgent #2f343a #900000 #ffffff #900000 #900000
+
+set $mod Mod4
+
+# font for window titles. ISO 10646 = Unicode
+#font -misc-fixed-medium-r-normal--12-120-75-75-C-70-iso10646-1
+font pango:Inconsolata 15px
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# start a terminal
+#bindsym $mod+Return exec i3-sensible-terminal
+#bindsym $mod+Return exec mlterm
+bindsym $mod+Return exec alacritty
+
+#bindsym $mod+Return exec xfce4-terminal
+#bindsym $mod+Return exec gnome-terminal
+#bindsym $mod+Return exec alacritty -e tmux
+#bindsym $mod+Return exec xterm -rv -ti vt340x -e tmux attach
+#bindsym $mod+o exec alacritty -e /home/aauvolat/.local/bin/fzf2.sh
+#bindsym $mod+m exec xterm -rv -ti vt340x -e /home/aauvolat/tmp/tmux/tmux -S /tmp/sixock attach
+#bindsym $mod+m exec xterm -rv -ti vt340x
+
+# bindsym $mod+Shift+X exec xscreensaver-command -lock
+#bindsym $mod+Shift+X exec i3lock -d -c 111111 -I 5
+#bindsym $mod+Shift+X exec /home/aauvolat/.i3/i3lock-dpms
+bindsym $mod+Shift+X exec swaylock -c 000000
+
+# music control
+#bindsym $mod+Shift+P exec mpc toggle
+#bindsym $mod+Shift+N exec mpc next
+
+# kill focused window
+bindsym $mod+Shift+Q kill
+
+# start dmenu (a program launcher)
+bindsym $mod+p exec bemenu-run --fn 'Inconsolata'
+
+bindsym $mod+n exec makoctl dismiss -a
+
+# change focus
+bindsym $mod+h focus left
+bindsym $mod+j focus down
+bindsym $mod+k focus up
+bindsym $mod+l focus right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# move focused window
+bindsym $mod+Shift+H move left
+bindsym $mod+Shift+J move down
+bindsym $mod+Shift+K move up
+bindsym $mod+Shift+L move right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+# split in horizontal orientation
+bindsym $mod+b split h
+
+# split in vertical orientation
+bindsym $mod+v split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen
+
+# change container layout (stacked, tabbed, default)
+bindsym $mod+s layout stacking
+bindsym $mod+z layout tabbed
+bindsym $mod+e layout default
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+bindsym $mod+q focus parent
+
+# focus the child container
+#bindcode $mod+d focus child
+
+# switch to workspace
+
+# ALEX FR CUSTOM LAYOUT
+bindsym $mod+braceleft workspace 1
+bindsym $mod+eacute workspace 2
+bindsym $mod+quotedbl workspace 3
+bindsym $mod+apostrophe workspace 4
+bindsym $mod+parenleft workspace 5
+bindsym $mod+minus workspace 6
+bindsym $mod+dead_grave workspace 7
+bindsym $mod+underscore workspace 8
+bindsym $mod+ccedilla workspace 9
+bindsym $mod+braceright workspace 10
+bindsym $mod+parenright workspace 11
+bindsym $mod+equal workspace 12
+
+workspace_auto_back_and_forth yes
+
+# move focused container to workspace
+
+# ALEX FR CUSTOM LAYOUT
+bindsym $mod+Shift+braceleft move container to workspace 1
+bindsym $mod+Shift+eacute move container to workspace 2
+bindsym $mod+Shift+quotedbl move container to workspace 3
+bindsym $mod+Shift+apostrophe move container to workspace 4
+bindsym $mod+Shift+parenleft move container to workspace 5
+bindsym $mod+Shift+minus move container to workspace 6
+bindsym $mod+Shift+dead_grave move container to workspace 7
+bindsym $mod+Shift+underscore move container to workspace 8
+bindsym $mod+Shift+ccedilla move container to workspace 9
+bindsym $mod+Shift+braceright move container to workspace 10
+bindsym $mod+Shift+parenright move container to workspace 11
+bindsym $mod+Shift+equal move container to workspace 12
+
+# reload the configuration file
+bindsym $mod+Shift+C reload
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindsym $mod+Shift+R restart
+# exit i3 (logs you out of your X session)
+bindsym $mod+Shift+E exit
+
+bindsym $mod+t border normal
+bindsym $mod+y border pixel 1
+bindsym $mod+u border none
+
+bindsym XF86MonBrightnessDown exec sudo brightnessctl set 10%-
+bindsym XF86MonBrightnessUp exec sudo brightnessctl set +10%
+
+bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
+bindsym XF86AudioRaiseVolume exec pactl set-sink-mute @DEFAULT_SINK@ false && pactl set-sink-volume @DEFAULT_SINK@ +5%
+bindsym XF86AudioLowerVolume exec pactl set-sink-mute @DEFAULT_SINK@ false && pactl set-sink-volume @DEFAULT_SINK@ -5%
+bindsym XF86AudioPlay exec playerctl play-pause
+bindsym XF86AudioNext exec playerctl next
+
+
+for_window [window_type="dialog"] floating enable
+for_window [window_type="utility"] floating enable
+for_window [window_type="splash"] floating enable
+for_window [title="xfce4-notifyd"] floating enable
+for_window [title="xfce4-notifyd"] border none
+for_window [title="Caml graphics"] floating enable
+for_window [title="QEMU"] floating enable
+for_window [title="a.out"] floating enable
+for_window [title="mgrx*"] floating enable
+for_window [class="Klavaro"] floating enable
+for_window [class="Steam"] floating enable
+for_window [class="Wine"] floating enable
+for_window [class="StepMania"] floating enable
+for_window [class="stepmania"] floating enable
+for_window [class="anki"] floating enable
+for_window [class="visu.bin"] floating enable
+for_window [class="pathfind"] floating enable
+for_window [class="anbox"] floating enable
+
+default_border pixel 1
+
+# resize window (you can also use the mouse for that)
+mode "resize" {
+ # These bindings trigger as soon as you enter the resize mode
+
+ # Pressing left will shrink the window’s width.
+ # Pressing right will grow the window’s width.
+ # Pressing up will shrink the window’s height.
+ # Pressing down will grow the window’s height.
+ bindsym h resize shrink width 5 px or 5 ppt
+ bindsym j resize grow height 5 px or 5 ppt
+ bindsym k resize shrink height 5 px or 5 ppt
+ bindsym l resize grow width 5 px or 5 ppt
+
+ # same bindings, but for the arrow keys
+ #bindsym 113 resize shrink width 5 px or 5 ppt
+ #bindsym 116 resize grow height 5 px or 5 ppt
+ #bindsym 111 resize shrink height 5 px or 5 ppt
+ #bindsym 114 resize grow width 5 px or 5 ppt
+
+ # back to normal: Enter or Escape
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+# Start i3bar to display a workspace bar (plus the system information i3status
+# finds out, if available)
+bar {
+ status_command i3status -c ~/.i3/i3status.conf
+ #font -misc-fixed-medium-r-normal--12-120-75-75-C-70-iso10646-1
+ font pango:Inconsolata 14px
+ colors {
+ background #000000
+ statusline #FFFFFF
+
+ focused_workspace #000000 #000000 #C8E7A4
+ active_workspace #000000 #000000 #EAB93D
+ inactive_workspace #000000 #000000 #888888
+ urgent_workspace #000000 #000000 #FF8D8D
+ }
+}
+
+exec_always pulseaudio --start
+
+#exec_always xsetroot -cursor_name arrow
+#exec_always xcompmgr
+#output "*" bg /home/aauvolat/Downloads/wp20190404.jpg fill
+
+exec gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark'
+exec gsettings set org.gnome.desktop.interface icon-theme 'Arc'
+exec_always dbus-update-activation-environment --systemd DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY
+
+exec /usr/libexec/xdg-desktop-portal
+
+exec mako
+#exec swayidle -w timeout 600 'swaylock -f -c 000000' \
+# timeout 610 'swaymsg "output * dpms off"' \
+# resume 'swaymsg "output * dpms on"' \
+# before-sleep 'swaylock -f -c 000000'
+
+exec nm-applet
+exec nextcloud
+exec syncthing-gtk -m
+exec_always xset -b # disable bell
+exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+
diff --git a/old/lindy/systemd/alps-inria.service b/old/lindy/systemd/alps-inria.service
new file mode 100644
index 0000000..c338b4f
--- /dev/null
+++ b/old/lindy/systemd/alps-inria.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Alps mail server for zimbra.inria.fr
+After=network.target
+
+[Service]
+WorkingDirectory=/home/lx/Deuxfleurs/alps
+ExecStart=/usr/bin/go run ./cmd/alps -theme alps imaps://zimbra.inria.fr:993 smtp://smtp.inria.fr:587
+
+# Restart every >2 seconds to avoid StartLimitInterval failure
+RestartSec=5
+Restart=always
+
+[Install]
+WantedBy=default.target
+
diff --git a/old/lindy/systemd/dino-background.service b/old/lindy/systemd/dino-background.service
new file mode 100644
index 0000000..2ccd4c3
--- /dev/null
+++ b/old/lindy/systemd/dino-background.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Run Dino chat client in background
+After=network.target
+
+[Service]
+ExecStart=dino --gapplication-service
+
+# Restart every >2 seconds to avoid StartLimitInterval failure
+RestartSec=5
+Restart=always
+
+[Install]
+WantedBy=default.target
+
diff --git a/old/lindy/systemd/rclone-mount@.service b/old/lindy/systemd/rclone-mount@.service
new file mode 100644
index 0000000..2f5a454
--- /dev/null
+++ b/old/lindy/systemd/rclone-mount@.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Mount a directory using rclone
+After=network.target
+
+[Service]
+ExecStartPre=sh -c "fusermount -u /home/lx.nobackup/mnt/%i || exit 0"
+ExecStart=/usr/bin/rclone mount --vfs-cache-mode minimal --cache-dir /home/lx/.cache/rclone/%i %i: /home/lx.nobackup/mnt/%i
+
+# Restart every >2 seconds to avoid StartLimitInterval failure
+RestartSec=10
+Restart=always
+
+[Install]
+WantedBy=default.target
+
diff --git a/old/lindy/systemd/scream-client.service b/old/lindy/systemd/scream-client.service
new file mode 100644
index 0000000..164cf6b
--- /dev/null
+++ b/old/lindy/systemd/scream-client.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Stream audio from Scream
+After=network.target
+
+[Service]
+ExecStart=scream -o pulse -i virbr0
+LimitNICE=-11
+Nice=-11
+
+# Restart every >2 seconds to avoid StartLimitInterval failure
+RestartSec=5
+Restart=always
+
+[Install]
+WantedBy=default.target
+
diff --git a/old/lindy/systemd/secure-tunnel@.service b/old/lindy/systemd/secure-tunnel@.service
new file mode 100644
index 0000000..5054dd2
--- /dev/null
+++ b/old/lindy/systemd/secure-tunnel@.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Setup a secure tunnel to %I
+After=network.target
+
+[Service]
+Environment="TARGET_PORT=22"
+EnvironmentFile=/home/lx/.config/secure-tunnel/%i.conf
+ExecStart=/usr/bin/ssh -NT -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -p ${TARGET_PORT} ${TUNNEL_DEF} ${TARGET}
+
+# Restart every >2 seconds to avoid StartLimitInterval failure
+RestartSec=5
+Restart=always
+
+[Install]
+WantedBy=default.target
+
diff --git a/old/lindy/vm/vmconf.sh b/old/lindy/vm/vmconf.sh
new file mode 100755
index 0000000..c5dfd7f
--- /dev/null
+++ b/old/lindy/vm/vmconf.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+set -x
+
+grep AnonHugePages /proc/meminfo
+
+sudo systemctl set-property --runtime -- user.slice AllowedCPUs=4-7
+sudo systemctl set-property --runtime -- user-1000.slice AllowedCPUs=4-7
+sudo systemctl set-property --runtime -- system.slice AllowedCPUs=4-7
+sudo systemctl set-property --runtime -- systemd-getty.slice AllowedCPUs=4-7
+sudo systemctl set-property --runtime -- init.scope AllowedCPUs=4-7
+
+sudo echo f0 | sudo tee /sys/bus/workqueue/devices/writeback/cpumask
+
+MAX=4
+for i in $(seq $MAX); do
+ echo "== $i/$MAX =="
+ echo 3 | sudo tee /proc/sys/vm/drop_caches
+ echo 1 | sudo tee /proc/sys/vm/compact_memory
+ sleep 5
+ sudo virsh allocpages 2M 3072
+ grep AnonHugePages /proc/meminfo
+done
+
+sudo virsh start win10
+
+systemctl --user restart scream-client
+
+grep AnonHugePages /proc/meminfo
+
diff --git a/old/lindy/vm/vmunconf.sh b/old/lindy/vm/vmunconf.sh
new file mode 100755
index 0000000..768ebc1
--- /dev/null
+++ b/old/lindy/vm/vmunconf.sh
@@ -0,0 +1,17 @@
+
+#!/bin/sh
+
+set -x
+
+grep AnonHugePages /proc/meminfo
+
+sudo systemctl set-property --runtime -- user.slice AllowedCPUs=0-7
+sudo systemctl set-property --runtime -- user-1000.slice AllowedCPUs=0-7
+sudo systemctl set-property --runtime -- system.slice AllowedCPUs=0-7
+sudo systemctl set-property --runtime -- systemd-getty.slice AllowedCPUs=0-7
+sudo systemctl set-property --runtime -- init.scope AllowedCPUs=0-7
+
+sudo echo ff | sudo tee /sys/bus/workqueue/devices/writeback/cpumask
+
+sudo virsh allocpages 2M 0
+
diff --git a/old/lindy/vm/win10_vm_conf_20211123.xml b/old/lindy/vm/win10_vm_conf_20211123.xml
new file mode 100644
index 0000000..25a7b4e
--- /dev/null
+++ b/old/lindy/vm/win10_vm_conf_20211123.xml
@@ -0,0 +1,208 @@
+<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
+ <name>win10</name>
+ <uuid>7d426215-c3ea-4f8e-af7d-77c9b9ddb88d</uuid>
+ <metadata>
+ <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
+ <libosinfo:os id="http://microsoft.com/win/10"/>
+ </libosinfo:libosinfo>
+ </metadata>
+ <memory unit='KiB'>6291456</memory>
+ <currentMemory unit='KiB'>6291456</currentMemory>
+ <memoryBacking>
+ <hugepages/>
+ </memoryBacking>
+ <vcpu placement='static' cpuset='0-3'>4</vcpu>
+ <iothreads>1</iothreads>
+ <cputune>
+ <vcpupin vcpu='0' cpuset='0'/>
+ <vcpupin vcpu='1' cpuset='1'/>
+ <vcpupin vcpu='2' cpuset='2'/>
+ <vcpupin vcpu='3' cpuset='3'/>
+ <emulatorpin cpuset='4-7'/>
+ <iothreadpin iothread='1' cpuset='4-7'/>
+ </cputune>
+ <os>
+ <type arch='x86_64' machine='pc-q35-6.0'>hvm</type>
+ <loader readonly='yes' type='pflash'>/usr/share/edk2-ovmf/x64/OVMF_CODE.fd</loader>
+ <nvram>/var/lib/libvirt/qemu/nvram/win10_VARS.fd</nvram>
+ <boot dev='hd'/>
+ </os>
+ <features>
+ <acpi/>
+ <apic/>
+ <hyperv>
+ <relaxed state='on'/>
+ <vapic state='on'/>
+ <spinlocks state='on' retries='8191'/>
+ </hyperv>
+ <vmport state='off'/>
+ </features>
+ <cpu mode='host-passthrough' check='partial' migratable='on'>
+ <topology sockets='1' dies='1' cores='2' threads='2'/>
+ </cpu>
+ <clock offset='localtime'>
+ <timer name='rtc' tickpolicy='catchup'/>
+ <timer name='pit' tickpolicy='delay'/>
+ <timer name='hpet' present='no'/>
+ <timer name='hypervclock' present='yes'/>
+ </clock>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <pm>
+ <suspend-to-mem enabled='no'/>
+ <suspend-to-disk enabled='no'/>
+ </pm>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='raw'/>
+ <source dev='/dev/zvol/Zonz/win10'/>
+ <target dev='vda' bus='virtio'/>
+ <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
+ </disk>
+ <disk type='file' device='cdrom'>
+ <driver name='qemu' type='raw'/>
+ <source file='/home/lx/Downloads/virtio-win-0.1.185.iso'/>
+ <target dev='sdc' bus='sata'/>
+ <readonly/>
+ <address type='drive' controller='0' bus='0' target='0' unit='2'/>
+ </disk>
+ <controller type='usb' index='0' model='qemu-xhci' ports='15'>
+ <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
+ </controller>
+ <controller type='sata' index='0'>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
+ </controller>
+ <controller type='pci' index='0' model='pcie-root'/>
+ <controller type='pci' index='1' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='1' port='0x10'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
+ </controller>
+ <controller type='pci' index='2' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='2' port='0x11'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
+ </controller>
+ <controller type='pci' index='3' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='3' port='0x12'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
+ </controller>
+ <controller type='pci' index='4' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='4' port='0x13'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
+ </controller>
+ <controller type='pci' index='5' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='5' port='0x14'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
+ </controller>
+ <controller type='pci' index='6' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='6' port='0x15'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
+ </controller>
+ <controller type='pci' index='7' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='7' port='0x8'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>
+ </controller>
+ <controller type='pci' index='8' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='8' port='0x9'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
+ </controller>
+ <controller type='pci' index='9' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='9' port='0xa'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+ </controller>
+ <controller type='pci' index='10' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='10' port='0xb'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/>
+ </controller>
+ <controller type='pci' index='11' model='pcie-to-pci-bridge'>
+ <model name='pcie-pci-bridge'/>
+ <address type='pci' domain='0x0000' bus='0x0a' slot='0x00' function='0x0'/>
+ </controller>
+ <controller type='pci' index='12' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='12' port='0xc'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x4'/>
+ </controller>
+ <controller type='pci' index='13' model='pcie-root-port'>
+ <model name='pcie-root-port'/>
+ <target chassis='13' port='0xd'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x5'/>
+ </controller>
+ <controller type='virtio-serial' index='0'>
+ <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
+ </controller>
+ <interface type='network'>
+ <mac address='52:54:00:1e:cc:c7'/>
+ <source network='default-nat'/>
+ <model type='virtio'/>
+ <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
+ </interface>
+ <serial type='pty'>
+ <target type='isa-serial' port='0'>
+ <model name='isa-serial'/>
+ </target>
+ </serial>
+ <console type='pty'>
+ <target type='serial' port='0'/>
+ </console>
+ <input type='mouse' bus='virtio'>
+ <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
+ </input>
+ <input type='keyboard' bus='virtio'>
+ <address type='pci' domain='0x0000' bus='0x09' slot='0x00' function='0x0'/>
+ </input>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <audio id='1' type='none'/>
+ <hostdev mode='subsystem' type='pci' managed='yes'>
+ <source>
+ <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
+ </source>
+ <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
+ </hostdev>
+ <hostdev mode='subsystem' type='pci' managed='yes'>
+ <source>
+ <address domain='0x0000' bus='0x01' slot='0x00' function='0x1'/>
+ </source>
+ <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
+ </hostdev>
+ <hostdev mode='subsystem' type='usb' managed='yes'>
+ <source>
+ <vendor id='0x045e'/>
+ <product id='0x028e'/>
+ </source>
+ <address type='usb' bus='0' port='1'/>
+ </hostdev>
+ <redirdev bus='usb' type='spicevmc'>
+ <address type='usb' bus='0' port='2'/>
+ </redirdev>
+ <redirdev bus='usb' type='spicevmc'>
+ <address type='usb' bus='0' port='3'/>
+ </redirdev>
+ <memballoon model='virtio'>
+ <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
+ </memballoon>
+ <shmem name='looking-glass'>
+ <model type='ivshmem-plain'/>
+ <size unit='M'>32</size>
+ <address type='pci' domain='0x0000' bus='0x0b' slot='0x01' function='0x0'/>
+ </shmem>
+ </devices>
+ <qemu:commandline>
+ <qemu:arg value='-object'/>
+ <qemu:arg value='input-linux,id=mouse1,evdev=/dev/input/by-id/usb-Logitech_USB_Receiver-if01-event-mouse'/>
+ <qemu:arg value='-object'/>
+ <qemu:arg value='input-linux,id=kbd1,evdev=/dev/input/by-id/usb-Chicony_USB_Keyboard-event-kbd,grab_all=on,repeat=on'/>
+ </qemu:commandline>
+</domain>
diff --git a/old/lindy/wayfire.ini b/old/lindy/wayfire.ini
new file mode 100644
index 0000000..4f5188a
--- /dev/null
+++ b/old/lindy/wayfire.ini
@@ -0,0 +1,323 @@
+# Default config for Wayfire
+#
+# Copy this to ~/.config/wayfire.ini and edit it to your liking.
+#
+# Take the tutorial to get started.
+# https://github.com/WayfireWM/wayfire/wiki/Tutorial
+#
+# Read the Configuration document for a complete reference.
+# https://github.com/WayfireWM/wayfire/wiki/Configuration
+
+# Input configuration ──────────────────────────────────────────────────────────
+
+# Example configuration:
+#
+[input]
+xkb_layout = fr
+#xkb_file = "/home/lx/.xkb/symbols/custom-fr"
+# xkb_variant = dvorak,bepo
+#
+# See Input options for a complete reference.
+# https://github.com/WayfireWM/wayfire/wiki/Configuration#input
+
+# Output configuration ─────────────────────────────────────────────────────────
+
+# Example configuration:
+#
+# [output:eDP-1]
+# mode = 1920x1080@60000
+# layout = 0,0
+# transform = normal
+# scale = 1.000000
+#
+# You can get the names of your outputs with wlr-randr.
+# https://github.com/emersion/wlr-randr
+#
+# See also kanshi for configuring your outputs automatically.
+# https://wayland.emersion.fr/kanshi/
+#
+# See Output options for a complete reference.
+# https://github.com/WayfireWM/wayfire/wiki/Configuration#output
+
+# Core options ─────────────────────────────────────────────────────────────────
+
+[core]
+
+# List of plugins to be enabled.
+# See the Configuration document for a complete list.
+plugins = \
+ alpha \
+ animate \
+ autostart \
+ command \
+ cube \
+ decoration \
+ expo \
+ fast-switcher \
+ fisheye \
+ grid \
+ idle \
+ invert \
+ move \
+ oswitch \
+ place \
+ resize \
+ switcher \
+ vswitch \
+ window-rules \
+ wobbly \
+ wrot \
+ zoom
+
+# Note: [blur] is not enabled by default, because it can be resource-intensive.
+# Feel free to add it to the list if you want it.
+# You can find its documentation here:
+# https://github.com/WayfireWM/wayfire/wiki/Configuration#blur
+
+# Close focused window.
+close_top_view = <super> KEY_Q | <alt> KEY_F4
+
+# Workspaces arranged into a grid: 3 × 3.
+vwidth = 4
+vheight = 3
+
+# Prefer client-side decoration or server-side decoration
+preferred_decoration_mode = client
+
+# Mouse bindings ───────────────────────────────────────────────────────────────
+
+# Drag windows by holding down Super and left mouse button.
+[move]
+activate = <super> BTN_LEFT
+
+# Resize them with right mouse button + Super.
+[resize]
+activate = <super> BTN_RIGHT
+
+# Zoom in the desktop by scrolling + Super.
+[zoom]
+modifier = <super>
+
+# Change opacity by scrolling with Super + Alt.
+[alpha]
+modifier = <super> <alt>
+
+# Rotate windows with the mouse.
+[wrot]
+activate = <super> <ctrl> BTN_RIGHT
+
+# Fisheye effect.
+[fisheye]
+toggle = <super> <ctrl> KEY_F
+
+# Decorations ──────────────────────────────────────────────────────────────────
+
+[decoration]
+border_size = 1
+title-height = 16
+#font = "sans-serif:12px"
+
+# Startup commands ─────────────────────────────────────────────────────────────
+
+[autostart]
+
+# Automatically start background and panel.
+# Set to false if you want to override the default clients.
+autostart_wf_shell = false
+
+# Set the wallpaper, start a panel and dock if you want one.
+# https://github.com/WayfireWM/wf-shell
+#
+# These are started by the autostart_wf_shell option above.
+#
+background = wf-background
+# panel = wf-panel
+# dock = wf-dock
+
+# Output configuration
+# https://wayland.emersion.fr/kanshi/
+outputs = kanshi
+
+# Notifications
+# https://wayland.emersion.fr/mako/
+# notifications = mako
+
+# Screen color temperature
+# https://sr.ht/~kennylevinsen/wlsunset/
+gamma = wlsunset
+
+# Idle configuration
+# https://github.com/swaywm/swayidle
+# https://github.com/swaywm/swaylock
+idle = swayidle before-sleep swaylock
+
+# XDG desktop portal
+# Needed by some GTK applications
+portal = /usr/libexec/xdg-desktop-portal
+
+fix_dbus = dbus-update-activation-environment --systemd DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY
+
+# Example configuration:
+#
+# [idle]
+# toggle = <super> KEY_Z
+# screensaver_timeout = 300
+# dpms_timeout = 600
+#
+# Disables the compositor going idle with Super + z.
+# This will lock your screen after 300 seconds of inactivity, then turn off
+# your displays after another 300 seconds.
+
+# Applications ─────────────────────────────────────────────────────────────────
+
+[command]
+
+# Start a terminal
+# https://github.com/alacritty/alacritty
+binding_terminal = <super> KEY_ENTER
+command_terminal = alacritty
+
+# Start your launcher
+# https://hg.sr.ht/~scoopta/wofi
+# Note: Add mode=run or mode=drun to ~/.config/wofi/config.
+# You can also specify the mode with --show option.
+binding_launcher = <super> <shift> KEY_ENTER | <super> KEY_P
+command_launcher = wofi -S run
+
+# Screen locker
+# https://github.com/swaywm/swaylock
+binding_lock = <super> <shift> KEY_X
+command_lock = swaylock -c 111111
+
+# Logout
+# https://github.com/ArtsyMacaw/wlogout
+binding_logout = <super> <shift> KEY_E
+command_logout = wlogout
+
+# Screenshots
+# https://wayland.emersion.fr/grim/
+# https://wayland.emersion.fr/slurp/
+binding_screenshot = KEY_PRINT
+command_screenshot = grim $(date '+%F_%T').webp
+binding_screenshot_interactive = <shift> KEY_PRINT
+command_screenshot_interactive = slurp | grim -g - $(date '+%F_%T').webp
+
+# Volume controls
+# https://alsa-project.org
+repeatable_binding_volume_up = KEY_VOLUMEUP
+#command_volume_up = amixer set Master 5%+
+command_volume_up = pactl set-sink-mute @DEFAULT_SINK@ false && pactl set-sink-volume @DEFAULT_SINK@ +5%
+repeatable_binding_volume_down = KEY_VOLUMEDOWN
+#command_volume_down = amixer set Master 5%-
+command_volume_down = pactl set-sink-mute @DEFAULT_SINK@ false && pactl set-sink-volume @DEFAULT_SINK@ -5%
+binding_mute = KEY_MUTE
+#command_mute = amixer set Master toggle
+command_mute = pactl set-sink-mute @DEFAULT_SINK@ toggle
+
+# Screen brightness
+# https://haikarainen.github.io/light/
+repeatable_binding_light_up = KEY_BRIGHTNESSUP
+command_light_up = light -A 5
+repeatable_binding_light_down = KEY_BRIGHTNESSDOWN
+command_light_down = light -U 5
+
+# Windows ──────────────────────────────────────────────────────────────────────
+
+# Position the windows in certain regions of the output.
+[grid]
+#
+# ⇱ ↑ ⇲ │ 7 8 9
+# ← f → │ 4 5 6
+# ⇱ ↓ ⇲ d │ 1 2 3 0
+# ‾ ‾
+slot_bl = <super> KEY_KP1 | <super> KEY_X
+slot_b = <super> KEY_KP2 | <super> KEY_C
+slot_br = <super> KEY_KP3 | <super> KEY_V
+slot_l = <super> KEY_LEFT | <super> KEY_KP4 | <super> KEY_S
+slot_c = <super> KEY_UP | <super> KEY_KP5 | <super> KEY_D
+slot_r = <super> KEY_RIGHT | <super> KEY_KP6 | <super> KEY_F
+slot_tl = <super> KEY_KP7 | <super> KEY_W
+slot_t = <super> KEY_KP8 | <super> KEY_E
+slot_tr = <super> KEY_KP9 | <super> KEY_R
+# Restore default.
+restore = <super> KEY_DOWN | <super> KEY_KP0 | <super> <shift> KEY_D
+
+# Change active window with an animation.
+[switcher]
+next_view = <alt> KEY_TAB
+prev_view = <alt> <shift> KEY_TAB
+
+# Simple active window switcher.
+[fast-switcher]
+#activate = <alt> KEY_ESC
+activate = <super> KEY_TAB
+
+# Workspaces ───────────────────────────────────────────────────────────────────
+
+# Switch to workspace.
+[vswitch]
+binding_left = <super> KEY_H
+binding_down = <super> KEY_J
+binding_up = <super> KEY_K
+binding_right = <super> KEY_L
+# Move the focused window with the same key-bindings, but add Shift.
+binding_win_left = <super> <shift> KEY_H
+binding_win_down = <super> <shift> KEY_J
+binding_win_up = <super> <shift> KEY_K
+binding_win_right = <super> <shift> KEY_L
+
+# Show the current workspace row as a cube.
+[cube]
+activate = <ctrl> <alt> BTN_LEFT
+# Switch to the next or previous workspace.
+#rotate_left = <super> <ctrl> KEY_H
+#rotate_right = <super> <ctrl> KEY_L
+
+# Show an overview of all workspaces.
+[expo]
+toggle = <super>
+# Select a workspace.
+# Workspaces are arranged into a grid of 3 × 3.
+# The numbering is left to right, line by line.
+#
+# ⇱ k ⇲
+# h ⏎ l
+# ⇱ j ⇲
+# ‾ ‾
+# See core.vwidth and core.vheight for configuring the grid.
+select_workspace_1 = KEY_1
+select_workspace_2 = KEY_2
+select_workspace_3 = KEY_3
+select_workspace_4 = KEY_4
+select_workspace_5 = KEY_5
+select_workspace_6 = KEY_6
+select_workspace_7 = KEY_7
+select_workspace_8 = KEY_8
+select_workspace_9 = KEY_9
+select_workspace_10 = KEY_0
+
+# Outputs ──────────────────────────────────────────────────────────────────────
+
+# Change focused output.
+[oswitch]
+# Switch to the next output.
+next_output = <super> KEY_O
+# Same with the window.
+next_output_with_win = <super> <shift> KEY_O
+
+# Invert the colors of the whole output.
+[invert]
+toggle = <super> KEY_I
+
+# Rules ────────────────────────────────────────────────────────────────────────
+
+# Example configuration:
+#
+# [window-rules]
+# maximize_alacritty = on created if app_id is "Alacritty" then maximize
+#
+# You can get the properties of your applications with the following command:
+# $ WAYLAND_DEBUG=1 alacritty 2>&1 | kak
+#
+# See Window rules for a complete reference.
+# https://github.com/WayfireWM/wayfire/wiki/Configuration#window-rules
diff --git a/old/lindy/wf-shell.ini b/old/lindy/wf-shell.ini
new file mode 100644
index 0000000..d8919ea
--- /dev/null
+++ b/old/lindy/wf-shell.ini
@@ -0,0 +1,131 @@
+[background]
+# Full path to image or directory of images
+image = /home/lx/stuff/wp/mdvn1ywappt61.jpg
+# Whether to scale images or preserve background ratio
+preserve_aspect = 0
+# In the case of directory, timeout between changing backgrounds, in seconds
+cycle_timeout = 150
+# In the case of directory, whether or not to randomize images
+randomize = 0
+
+
+
+[panel]
+# widgets_* is a space-separated list of widgets to be displayed
+# at the corresponding part of the panel
+# Supported widgets are: launchers clock network battery window-list volume menu
+# A special widgets is spacing widgets, it can be used to add padding everywhere on the panel
+# To use it, just append the amount of pixels you want as a padding
+# to the word "spacing" and use it as a plugin
+widgets_left = spacing4 menu spacing18 launchers
+widgets_center = clock
+#widgets_right = network spacing6 battery spacing12
+widgets_right = network spacing12
+
+# The minimal size of the panel. Note that some widgets might force panel bigger than this size.
+# All widgets also have individual settings for size
+# Changing this requires a panel restart
+minimal_height = 16
+
+# automatically hide when pointer isn't over the panel
+autohide = false
+
+# time in milliseconds to wait before hiding
+autohide_duration = 300
+
+# layer can be top, bottom, overlay or background
+layer = top
+
+# where to position panel
+# Possible values are only "top" and "bottom"
+position = bottom
+
+# set the background color.
+background_color = gtk_headerbar # match the color of a GtkHeaderbar
+#background_color = $555555 # Hex color, for example $FFFFFF for white
+#background_color = 0.033 0.041 0.047 0.9 # RGBA color, 1.0 0.0 0.0 0.5 for semi-transparent red
+
+
+# Configuration for the launchers widget
+# can be a desktop file
+#launcher_chrome = google-chrome.desktop
+launcher_firefox = firefox.desktop
+launcher_terminal1 = Alacritty.desktop
+launcher_terminal2 = mlterm.desktop
+#launcher_gedit = org.gnome.gedit.desktop
+
+# or a combination of bash command + icon
+launcher_cmd_1 = env XDG_CURRENT_DESKTOP=GNOME gnome-control-center
+launcher_icon_1 = /usr/share/icons/gnome/48x48/categories/preferences-system.png
+
+launcher_nau = org.gnome.Nautilus.desktop
+
+# spacing between widgets, can be negative
+launchers_spacing = 4
+
+# size of the launcher icon
+launchers_size = 42
+
+
+# Configuration for the clock widget
+# clock format, uses the Glib Time formatting
+clock_format = %e %a %H:%M
+# clock font
+clock_font = DejaVu Sans:style=Book 12
+
+
+# Configuration for the battery widget
+# How much info to display:
+# 0 -> only icon, 1 -> icon + percentage, 2 -> full info
+battery_status = 1
+battery_icon_size = 32
+
+# invert the colors of the icon, needs to be adjusted according to the size of the icons,
+# because some icon sizes are white, and others are black
+battery_icon_invert = 1
+
+# Font to use in the battery percentage indicator
+battery_font = default
+
+
+# Configuration for the network widget
+# Whether to display connection details, for ex. Wifi AP name
+network_status = 1
+
+network_status_font = DejaVu Sans:style=Book 10
+# network_icon_size = 30
+network_icon_invert_color = 1
+
+# whether to colour the wifi signal strength
+network_status_use_color = yes
+
+
+# Configuration for the menu widget
+# whether to enable fuzzy search in the menu
+menu_fuzzy_search = 1
+
+# image file to use as the menu icon
+# menu_icon = /usr/share/wayfire/icons/wayfire.png
+
+# command run when the logout button is clicked
+menu_logout_command = wayland-logout
+
+
+# Configuration for the volume widget
+# Number of seconds volume popover will display
+# after scrolling on the volume icon
+volume_display_timeout = 2.5
+
+
+
+[dock]
+# time in milliseconds to wait before hiding
+autohide_duration = 300
+
+# vertical alignment on the desktop
+# the only possible values are "top" and "bottom"
+position = bottom
+
+# For applications that aren't installed/configured properly, you can manually
+# set icons for given app_id's. Below is an example for IntelliJ IDEA
+#icon_mapping_jetbrains-idea-ce = /<path to intellij>/idea.png
diff --git a/old/lindy/xkb/symbols/custom-fr b/old/lindy/xkb/symbols/custom-fr
new file mode 100644
index 0000000..795c7ff
--- /dev/null
+++ b/old/lindy/xkb/symbols/custom-fr
@@ -0,0 +1,1749 @@
+xkb_keymap {
+xkb_keycodes "LX Variant" {
+ minimum = 8;
+ maximum = 255;
+ <ESC> = 9;
+ <AE01> = 10;
+ <AE02> = 11;
+ <AE03> = 12;
+ <AE04> = 13;
+ <AE05> = 14;
+ <AE06> = 15;
+ <AE07> = 16;
+ <AE08> = 17;
+ <AE09> = 18;
+ <AE10> = 19;
+ <AE11> = 20;
+ <AE12> = 21;
+ <BKSP> = 22;
+ <TAB> = 23;
+ <AD01> = 24;
+ <AD02> = 25;
+ <AD03> = 26;
+ <AD04> = 27;
+ <AD05> = 28;
+ <AD06> = 29;
+ <AD07> = 30;
+ <AD08> = 31;
+ <AD09> = 32;
+ <AD10> = 33;
+ <AD11> = 34;
+ <AD12> = 35;
+ <RTRN> = 36;
+ <LCTL> = 37;
+ <AC01> = 38;
+ <AC02> = 39;
+ <AC03> = 40;
+ <AC04> = 41;
+ <AC05> = 42;
+ <AC06> = 43;
+ <AC07> = 44;
+ <AC08> = 45;
+ <AC09> = 46;
+ <AC10> = 47;
+ <AC11> = 48;
+ <TLDE> = 49;
+ <LFSH> = 50;
+ <BKSL> = 51;
+ <AB01> = 52;
+ <AB02> = 53;
+ <AB03> = 54;
+ <AB04> = 55;
+ <AB05> = 56;
+ <AB06> = 57;
+ <AB07> = 58;
+ <AB08> = 59;
+ <AB09> = 60;
+ <AB10> = 61;
+ <RTSH> = 62;
+ <KPMU> = 63;
+ <LALT> = 64;
+ <SPCE> = 65;
+ <CAPS> = 66;
+ <FK01> = 67;
+ <FK02> = 68;
+ <FK03> = 69;
+ <FK04> = 70;
+ <FK05> = 71;
+ <FK06> = 72;
+ <FK07> = 73;
+ <FK08> = 74;
+ <FK09> = 75;
+ <FK10> = 76;
+ <NMLK> = 77;
+ <SCLK> = 78;
+ <KP7> = 79;
+ <KP8> = 80;
+ <KP9> = 81;
+ <KPSU> = 82;
+ <KP4> = 83;
+ <KP5> = 84;
+ <KP6> = 85;
+ <KPAD> = 86;
+ <KP1> = 87;
+ <KP2> = 88;
+ <KP3> = 89;
+ <KP0> = 90;
+ <KPDL> = 91;
+ <LVL3> = 92;
+ <LSGT> = 94;
+ <FK11> = 95;
+ <FK12> = 96;
+ <AB11> = 97;
+ <KATA> = 98;
+ <HIRA> = 99;
+ <HENK> = 100;
+ <HKTG> = 101;
+ <MUHE> = 102;
+ <JPCM> = 103;
+ <KPEN> = 104;
+ <RCTL> = 105;
+ <KPDV> = 106;
+ <PRSC> = 107;
+ <RALT> = 108;
+ <LNFD> = 109;
+ <HOME> = 110;
+ <UP> = 111;
+ <PGUP> = 112;
+ <LEFT> = 113;
+ <RGHT> = 114;
+ <END> = 115;
+ <DOWN> = 116;
+ <PGDN> = 117;
+ <INS> = 118;
+ <DELE> = 119;
+ <I120> = 120;
+ <MUTE> = 121;
+ <VOL-> = 122;
+ <VOL+> = 123;
+ <POWR> = 124;
+ <KPEQ> = 125;
+ <I126> = 126;
+ <PAUS> = 127;
+ <I128> = 128;
+ <I129> = 129;
+ <HNGL> = 130;
+ <HJCV> = 131;
+ <AE13> = 132;
+ <LWIN> = 133;
+ <RWIN> = 134;
+ <COMP> = 135;
+ <STOP> = 136;
+ <AGAI> = 137;
+ <PROP> = 138;
+ <UNDO> = 139;
+ <FRNT> = 140;
+ <COPY> = 141;
+ <OPEN> = 142;
+ <PAST> = 143;
+ <FIND> = 144;
+ <CUT> = 145;
+ <HELP> = 146;
+ <I147> = 147;
+ <I148> = 148;
+ <I149> = 149;
+ <I150> = 150;
+ <I151> = 151;
+ <I152> = 152;
+ <I153> = 153;
+ <I154> = 154;
+ <I155> = 155;
+ <I156> = 156;
+ <I157> = 157;
+ <I158> = 158;
+ <I159> = 159;
+ <I160> = 160;
+ <I161> = 161;
+ <I162> = 162;
+ <I163> = 163;
+ <I164> = 164;
+ <I165> = 165;
+ <I166> = 166;
+ <I167> = 167;
+ <I168> = 168;
+ <I169> = 169;
+ <I170> = 170;
+ <I171> = 171;
+ <I172> = 172;
+ <I173> = 173;
+ <I174> = 174;
+ <I175> = 175;
+ <I176> = 176;
+ <I177> = 177;
+ <I178> = 178;
+ <I179> = 179;
+ <I180> = 180;
+ <I181> = 181;
+ <I182> = 182;
+ <I183> = 183;
+ <I184> = 184;
+ <I185> = 185;
+ <I186> = 186;
+ <I187> = 187;
+ <I188> = 188;
+ <I189> = 189;
+ <I190> = 190;
+ <FK13> = 191;
+ <FK14> = 192;
+ <FK15> = 193;
+ <FK16> = 194;
+ <FK17> = 195;
+ <FK18> = 196;
+ <FK19> = 197;
+ <FK20> = 198;
+ <FK21> = 199;
+ <FK22> = 200;
+ <FK23> = 201;
+ <FK24> = 202;
+ <MDSW> = 203;
+ <ALT> = 204;
+ <META> = 205;
+ <SUPR> = 206;
+ <HYPR> = 207;
+ <I208> = 208;
+ <I209> = 209;
+ <I210> = 210;
+ <I211> = 211;
+ <I212> = 212;
+ <I213> = 213;
+ <I214> = 214;
+ <I215> = 215;
+ <I216> = 216;
+ <I217> = 217;
+ <I218> = 218;
+ <I219> = 219;
+ <I220> = 220;
+ <I221> = 221;
+ <I222> = 222;
+ <I223> = 223;
+ <I224> = 224;
+ <I225> = 225;
+ <I226> = 226;
+ <I227> = 227;
+ <I228> = 228;
+ <I229> = 229;
+ <I230> = 230;
+ <I231> = 231;
+ <I232> = 232;
+ <I233> = 233;
+ <I234> = 234;
+ <I235> = 235;
+ <I236> = 236;
+ <I237> = 237;
+ <I238> = 238;
+ <I239> = 239;
+ <I240> = 240;
+ <I241> = 241;
+ <I242> = 242;
+ <I243> = 243;
+ <I244> = 244;
+ <I245> = 245;
+ <I246> = 246;
+ <I247> = 247;
+ <I248> = 248;
+ <I249> = 249;
+ <I250> = 250;
+ <I251> = 251;
+ <I252> = 252;
+ <I253> = 253;
+ <I254> = 254;
+ <I255> = 255;
+ indicator 1 = "Caps Lock";
+ indicator 2 = "Num Lock";
+ indicator 3 = "Scroll Lock";
+ indicator 4 = "Compose";
+ indicator 5 = "Kana";
+ indicator 6 = "Sleep";
+ indicator 7 = "Suspend";
+ indicator 8 = "Mute";
+ indicator 9 = "Misc";
+ indicator 10 = "Mail";
+ indicator 11 = "Charging";
+ indicator 12 = "Shift Lock";
+ indicator 13 = "Group 2";
+ indicator 14 = "Mouse Keys";
+ alias <AC12> = <BKSL>;
+ alias <MENU> = <COMP>;
+ alias <HZTG> = <TLDE>;
+ alias <LMTA> = <LWIN>;
+ alias <RMTA> = <RWIN>;
+ alias <ALGR> = <RALT>;
+ alias <KPPT> = <I129>;
+ alias <LatA> = <AD01>;
+ alias <LatZ> = <AD02>;
+ alias <LatE> = <AD03>;
+ alias <LatR> = <AD04>;
+ alias <LatT> = <AD05>;
+ alias <LatY> = <AD06>;
+ alias <LatU> = <AD07>;
+ alias <LatI> = <AD08>;
+ alias <LatO> = <AD09>;
+ alias <LatP> = <AD10>;
+ alias <LatQ> = <AC01>;
+ alias <LatS> = <AC02>;
+ alias <LatD> = <AC03>;
+ alias <LatF> = <AC04>;
+ alias <LatG> = <AC05>;
+ alias <LatH> = <AC06>;
+ alias <LatJ> = <AC07>;
+ alias <LatK> = <AC08>;
+ alias <LatL> = <AC09>;
+ alias <LatM> = <AC10>;
+ alias <LatW> = <AB01>;
+ alias <LatX> = <AB02>;
+ alias <LatC> = <AB03>;
+ alias <LatV> = <AB04>;
+ alias <LatB> = <AB05>;
+ alias <LatN> = <AB06>;
+};
+
+xkb_types "LX Variant" {
+
+ virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
+
+ type "ONE_LEVEL" {
+ modifiers= none;
+ level_name[Level1]= "Any";
+ };
+ type "TWO_LEVEL" {
+ modifiers= Shift;
+ map[Shift]= Level2;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Shift";
+ };
+ type "ALPHABETIC" {
+ modifiers= Shift+Lock;
+ map[Shift]= Level2;
+ map[Lock]= Level2;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Caps";
+ };
+ type "KEYPAD" {
+ modifiers= Shift+NumLock;
+ map[Shift]= Level2;
+ map[NumLock]= Level2;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Number";
+ };
+ type "SHIFT+ALT" {
+ modifiers= Shift+Alt;
+ map[Shift+Alt]= Level2;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Shift+Alt";
+ };
+ type "PC_SUPER_LEVEL2" {
+ modifiers= Mod4;
+ map[Mod4]= Level2;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Super";
+ };
+ type "PC_CONTROL_LEVEL2" {
+ modifiers= Control;
+ map[Control]= Level2;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Control";
+ };
+ type "PC_LCONTROL_LEVEL2" {
+ modifiers= LControl;
+ map[LControl]= Level2;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "LControl";
+ };
+ type "PC_RCONTROL_LEVEL2" {
+ modifiers= RControl;
+ map[RControl]= Level2;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "RControl";
+ };
+ type "PC_ALT_LEVEL2" {
+ modifiers= Alt;
+ map[Alt]= Level2;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Alt";
+ };
+ type "PC_LALT_LEVEL2" {
+ modifiers= LAlt;
+ map[LAlt]= Level2;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "LAlt";
+ };
+ type "PC_RALT_LEVEL2" {
+ modifiers= RAlt;
+ map[RAlt]= Level2;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "RAlt";
+ };
+ type "CTRL+ALT" {
+ modifiers= Shift+Control+Alt+LevelThree;
+ map[Shift]= Level2;
+ preserve[Shift]= Shift;
+ map[LevelThree]= Level3;
+ map[Shift+LevelThree]= Level4;
+ preserve[Shift+LevelThree]= Shift;
+ map[Control+Alt]= Level5;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Shift";
+ level_name[Level3]= "Alt Base";
+ level_name[Level4]= "Shift Alt";
+ level_name[Level5]= "Ctrl+Alt";
+ };
+ type "LOCAL_EIGHT_LEVEL" {
+ modifiers= Shift+Lock+Control+LevelThree;
+ map[Shift]= Level2;
+ map[Lock]= Level2;
+ map[LevelThree]= Level3;
+ map[Shift+Lock+LevelThree]= Level3;
+ map[Shift+LevelThree]= Level4;
+ map[Lock+LevelThree]= Level4;
+ map[Control]= Level5;
+ map[Shift+Lock+Control]= Level5;
+ map[Shift+Control]= Level6;
+ map[Lock+Control]= Level6;
+ map[Control+LevelThree]= Level7;
+ map[Shift+Lock+Control+LevelThree]= Level7;
+ map[Shift+Control+LevelThree]= Level8;
+ map[Lock+Control+LevelThree]= Level8;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Shift";
+ level_name[Level3]= "Level3";
+ level_name[Level4]= "Shift Level3";
+ level_name[Level5]= "Ctrl";
+ level_name[Level6]= "Shift Ctrl";
+ level_name[Level7]= "Level3 Ctrl";
+ level_name[Level8]= "Shift Level3 Ctrl";
+ };
+ type "THREE_LEVEL" {
+ modifiers= Shift+LevelThree;
+ map[Shift]= Level2;
+ map[LevelThree]= Level3;
+ map[Shift+LevelThree]= Level3;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Shift";
+ level_name[Level3]= "Level3";
+ };
+ type "EIGHT_LEVEL" {
+ modifiers= Shift+LevelThree+LevelFive;
+ map[Shift]= Level2;
+ map[LevelThree]= Level3;
+ map[Shift+LevelThree]= Level4;
+ map[LevelFive]= Level5;
+ map[Shift+LevelFive]= Level6;
+ map[LevelThree+LevelFive]= Level7;
+ map[Shift+LevelThree+LevelFive]= Level8;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Shift";
+ level_name[Level3]= "Alt Base";
+ level_name[Level4]= "Shift Alt";
+ level_name[Level5]= "X";
+ level_name[Level6]= "X Shift";
+ level_name[Level7]= "X Alt Base";
+ level_name[Level8]= "X Shift Alt";
+ };
+ type "EIGHT_LEVEL_ALPHABETIC" {
+ modifiers= Shift+Lock+LevelThree+LevelFive;
+ map[Shift]= Level2;
+ map[Lock]= Level2;
+ map[LevelThree]= Level3;
+ map[Shift+LevelThree]= Level4;
+ map[Lock+LevelThree]= Level4;
+ map[Shift+Lock+LevelThree]= Level3;
+ map[LevelFive]= Level5;
+ map[Shift+LevelFive]= Level6;
+ map[Lock+LevelFive]= Level6;
+ map[LevelThree+LevelFive]= Level7;
+ map[Shift+LevelThree+LevelFive]= Level8;
+ map[Lock+LevelThree+LevelFive]= Level8;
+ map[Shift+Lock+LevelThree+LevelFive]= Level7;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Shift";
+ level_name[Level3]= "Alt Base";
+ level_name[Level4]= "Shift Alt";
+ level_name[Level5]= "X";
+ level_name[Level6]= "X Shift";
+ level_name[Level7]= "X Alt Base";
+ level_name[Level8]= "X Shift Alt";
+ };
+ type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" {
+ modifiers= Shift+Lock+NumLock+LevelThree+LevelFive;
+ map[Shift]= Level2;
+ map[LevelThree]= Level3;
+ map[Shift+LevelThree]= Level4;
+ map[LevelFive]= Level5;
+ map[Shift+LevelFive]= Level6;
+ preserve[Shift+LevelFive]= Shift;
+ map[LevelThree+LevelFive]= Level7;
+ map[Shift+LevelThree+LevelFive]= Level8;
+ map[NumLock]= Level5;
+ map[Shift+NumLock]= Level6;
+ preserve[Shift+NumLock]= Shift;
+ map[NumLock+LevelThree]= Level7;
+ map[Shift+NumLock+LevelThree]= Level8;
+ map[Shift+NumLock+LevelFive]= Level2;
+ map[NumLock+LevelThree+LevelFive]= Level3;
+ map[Shift+NumLock+LevelThree+LevelFive]= Level4;
+ map[Shift+Lock]= Level2;
+ map[Lock+LevelThree]= Level3;
+ map[Shift+Lock+LevelThree]= Level4;
+ map[Lock+LevelFive]= Level5;
+ map[Shift+Lock+LevelFive]= Level6;
+ preserve[Shift+Lock+LevelFive]= Shift;
+ map[Lock+LevelThree+LevelFive]= Level7;
+ map[Shift+Lock+LevelThree+LevelFive]= Level8;
+ map[Lock+NumLock]= Level5;
+ map[Shift+Lock+NumLock]= Level6;
+ preserve[Shift+Lock+NumLock]= Shift;
+ map[Lock+NumLock+LevelThree]= Level7;
+ map[Shift+Lock+NumLock+LevelThree]= Level8;
+ map[Shift+Lock+NumLock+LevelFive]= Level2;
+ map[Lock+NumLock+LevelThree+LevelFive]= Level3;
+ map[Shift+Lock+NumLock+LevelThree+LevelFive]= Level4;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Shift";
+ level_name[Level3]= "Alt Base";
+ level_name[Level4]= "Shift Alt";
+ level_name[Level5]= "X";
+ level_name[Level6]= "X Shift";
+ level_name[Level7]= "X Alt Base";
+ level_name[Level8]= "X Shift Alt";
+ };
+ type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" {
+ modifiers= Shift+Lock+NumLock+LevelThree+LevelFive;
+ map[Shift]= Level2;
+ map[LevelThree]= Level3;
+ map[Shift+LevelThree]= Level4;
+ map[LevelFive]= Level5;
+ map[Shift+LevelFive]= Level6;
+ preserve[Shift+LevelFive]= Shift;
+ map[LevelThree+LevelFive]= Level7;
+ map[Shift+LevelThree+LevelFive]= Level8;
+ map[NumLock]= Level5;
+ map[Shift+NumLock]= Level6;
+ preserve[Shift+NumLock]= Shift;
+ map[NumLock+LevelThree]= Level7;
+ map[Shift+NumLock+LevelThree]= Level8;
+ map[Shift+NumLock+LevelFive]= Level2;
+ map[NumLock+LevelThree+LevelFive]= Level3;
+ map[Shift+NumLock+LevelThree+LevelFive]= Level4;
+ map[Lock]= Level2;
+ map[Lock+LevelThree]= Level3;
+ map[Shift+Lock+LevelThree]= Level4;
+ map[Lock+LevelFive]= Level5;
+ map[Shift+Lock+LevelFive]= Level6;
+ map[Lock+LevelThree+LevelFive]= Level7;
+ map[Shift+Lock+LevelThree+LevelFive]= Level8;
+ map[Lock+NumLock]= Level5;
+ map[Shift+Lock+NumLock]= Level6;
+ map[Lock+NumLock+LevelThree]= Level7;
+ map[Shift+Lock+NumLock+LevelThree]= Level8;
+ map[Lock+NumLock+LevelFive]= Level2;
+ map[Lock+NumLock+LevelThree+LevelFive]= Level4;
+ map[Shift+Lock+NumLock+LevelThree+LevelFive]= Level3;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Shift";
+ level_name[Level3]= "Alt Base";
+ level_name[Level4]= "Shift Alt";
+ level_name[Level5]= "X";
+ level_name[Level6]= "X Shift";
+ level_name[Level7]= "X Alt Base";
+ level_name[Level8]= "X Shift Alt";
+ };
+ type "EIGHT_LEVEL_SEMIALPHABETIC" {
+ modifiers= Shift+Lock+LevelThree+LevelFive;
+ map[Shift]= Level2;
+ map[Lock]= Level2;
+ map[LevelThree]= Level3;
+ map[Shift+LevelThree]= Level4;
+ map[Lock+LevelThree]= Level3;
+ preserve[Lock+LevelThree]= Lock;
+ map[Shift+Lock+LevelThree]= Level4;
+ preserve[Shift+Lock+LevelThree]= Lock;
+ map[LevelFive]= Level5;
+ map[Shift+LevelFive]= Level6;
+ map[Lock+LevelFive]= Level6;
+ preserve[Lock+LevelFive]= Lock;
+ map[Shift+Lock+LevelFive]= Level6;
+ preserve[Shift+Lock+LevelFive]= Lock;
+ map[LevelThree+LevelFive]= Level7;
+ map[Shift+LevelThree+LevelFive]= Level8;
+ map[Lock+LevelThree+LevelFive]= Level7;
+ preserve[Lock+LevelThree+LevelFive]= Lock;
+ map[Shift+Lock+LevelThree+LevelFive]= Level8;
+ preserve[Shift+Lock+LevelThree+LevelFive]= Lock;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Shift";
+ level_name[Level3]= "Alt Base";
+ level_name[Level4]= "Shift Alt";
+ level_name[Level5]= "X";
+ level_name[Level6]= "X Shift";
+ level_name[Level7]= "X Alt Base";
+ level_name[Level8]= "X Shift Alt";
+ };
+ type "FOUR_LEVEL" {
+ modifiers= Shift+LevelThree;
+ map[Shift]= Level2;
+ map[LevelThree]= Level3;
+ map[Shift+LevelThree]= Level4;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Shift";
+ level_name[Level3]= "Alt Base";
+ level_name[Level4]= "Shift Alt";
+ };
+ type "FOUR_LEVEL_ALPHABETIC" {
+ modifiers= Shift+Lock+LevelThree;
+ map[Shift]= Level2;
+ map[Lock]= Level2;
+ map[LevelThree]= Level3;
+ map[Shift+LevelThree]= Level4;
+ map[Lock+LevelThree]= Level4;
+ map[Shift+Lock+LevelThree]= Level3;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Shift";
+ level_name[Level3]= "Alt Base";
+ level_name[Level4]= "Shift Alt";
+ };
+ type "FOUR_LEVEL_SEMIALPHABETIC" {
+ modifiers= Shift+Lock+LevelThree;
+ map[Shift]= Level2;
+ map[Lock]= Level2;
+ map[LevelThree]= Level3;
+ map[Shift+LevelThree]= Level4;
+ map[Lock+LevelThree]= Level3;
+ preserve[Lock+LevelThree]= Lock;
+ map[Shift+Lock+LevelThree]= Level4;
+ preserve[Shift+Lock+LevelThree]= Lock;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Shift";
+ level_name[Level3]= "Alt Base";
+ level_name[Level4]= "Shift Alt";
+ };
+ type "FOUR_LEVEL_MIXED_KEYPAD" {
+ modifiers= Shift+NumLock+LevelThree;
+ map[NumLock]= Level2;
+ map[Shift]= Level2;
+ map[LevelThree]= Level3;
+ map[NumLock+LevelThree]= Level3;
+ map[Shift+LevelThree]= Level4;
+ map[Shift+NumLock+LevelThree]= Level4;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Number";
+ level_name[Level3]= "Alt Base";
+ level_name[Level4]= "Shift Alt";
+ };
+ type "FOUR_LEVEL_X" {
+ modifiers= Shift+Control+Alt+LevelThree;
+ map[LevelThree]= Level2;
+ map[Shift+LevelThree]= Level3;
+ map[Control+Alt]= Level4;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Alt Base";
+ level_name[Level3]= "Shift Alt";
+ level_name[Level4]= "Ctrl+Alt";
+ };
+ type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {
+ modifiers= Shift+Lock+LevelThree;
+ map[Shift]= Level2;
+ map[Lock]= Level4;
+ preserve[Lock]= Lock;
+ map[LevelThree]= Level3;
+ map[Shift+LevelThree]= Level4;
+ map[Lock+LevelThree]= Level3;
+ preserve[Lock+LevelThree]= Lock;
+ map[Shift+Lock+LevelThree]= Level3;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Shift";
+ level_name[Level3]= "AltGr Base";
+ level_name[Level4]= "Shift AltGr";
+ };
+ type "FOUR_LEVEL_PLUS_LOCK" {
+ modifiers= Shift+Lock+LevelThree;
+ map[Shift]= Level2;
+ map[LevelThree]= Level3;
+ map[Shift+LevelThree]= Level4;
+ map[Lock]= Level5;
+ map[Shift+Lock]= Level2;
+ map[Lock+LevelThree]= Level3;
+ map[Shift+Lock+LevelThree]= Level4;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Shift";
+ level_name[Level3]= "Alt Base";
+ level_name[Level4]= "Shift Alt";
+ level_name[Level5]= "Lock";
+ };
+ type "FOUR_LEVEL_KEYPAD" {
+ modifiers= Shift+NumLock+LevelThree;
+ map[Shift]= Level2;
+ map[NumLock]= Level2;
+ map[LevelThree]= Level3;
+ map[Shift+LevelThree]= Level4;
+ map[NumLock+LevelThree]= Level4;
+ map[Shift+NumLock+LevelThree]= Level3;
+ level_name[Level1]= "Base";
+ level_name[Level2]= "Number";
+ level_name[Level3]= "Alt Base";
+ level_name[Level4]= "Alt Number";
+ };
+};
+
+xkb_compatibility "LX Variant" {
+
+ virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
+
+ interpret.useModMapMods= AnyLevel;
+ interpret.repeat= False;
+ interpret.locking= False;
+ interpret ISO_Level2_Latch+Exactly(Shift) {
+ useModMapMods=level1;
+ action= LatchMods(modifiers=Shift,clearLocks,latchToLock);
+ };
+ interpret Shift_Lock+AnyOf(Shift+Lock) {
+ action= LockMods(modifiers=Shift);
+ };
+ interpret Num_Lock+AnyOf(all) {
+ virtualModifier= NumLock;
+ action= LockMods(modifiers=NumLock);
+ };
+ interpret ISO_Level3_Shift+AnyOf(all) {
+ virtualModifier= LevelThree;
+ useModMapMods=level1;
+ action= SetMods(modifiers=LevelThree,clearLocks);
+ };
+ interpret ISO_Level3_Latch+AnyOf(all) {
+ virtualModifier= LevelThree;
+ useModMapMods=level1;
+ action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
+ };
+ interpret ISO_Level3_Lock+AnyOf(all) {
+ virtualModifier= LevelThree;
+ useModMapMods=level1;
+ action= LockMods(modifiers=LevelThree);
+ };
+ interpret Alt_L+AnyOf(all) {
+ virtualModifier= Alt;
+ action= SetMods(modifiers=modMapMods,clearLocks);
+ };
+ interpret Alt_R+AnyOf(all) {
+ virtualModifier= Alt;
+ action= SetMods(modifiers=modMapMods,clearLocks);
+ };
+ interpret Meta_L+AnyOf(all) {
+ virtualModifier= Meta;
+ action= SetMods(modifiers=modMapMods,clearLocks);
+ };
+ interpret Meta_R+AnyOf(all) {
+ virtualModifier= Meta;
+ action= SetMods(modifiers=modMapMods,clearLocks);
+ };
+ interpret Super_L+AnyOf(all) {
+ virtualModifier= Super;
+ action= SetMods(modifiers=modMapMods,clearLocks);
+ };
+ interpret Super_R+AnyOf(all) {
+ virtualModifier= Super;
+ action= SetMods(modifiers=modMapMods,clearLocks);
+ };
+ interpret Hyper_L+AnyOf(all) {
+ virtualModifier= Hyper;
+ action= SetMods(modifiers=modMapMods,clearLocks);
+ };
+ interpret Hyper_R+AnyOf(all) {
+ virtualModifier= Hyper;
+ action= SetMods(modifiers=modMapMods,clearLocks);
+ };
+ interpret Scroll_Lock+AnyOf(all) {
+ virtualModifier= ScrollLock;
+ action= LockMods(modifiers=modMapMods);
+ };
+ interpret ISO_Level5_Shift+AnyOf(all) {
+ virtualModifier= LevelFive;
+ useModMapMods=level1;
+ action= SetMods(modifiers=LevelFive,clearLocks);
+ };
+ interpret ISO_Level5_Latch+AnyOf(all) {
+ virtualModifier= LevelFive;
+ useModMapMods=level1;
+ action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
+ };
+ interpret ISO_Level5_Lock+AnyOf(all) {
+ virtualModifier= LevelFive;
+ useModMapMods=level1;
+ action= LockMods(modifiers=LevelFive);
+ };
+ interpret Mode_switch+AnyOfOrNone(all) {
+ virtualModifier= AltGr;
+ useModMapMods=level1;
+ action= SetGroup(group=+1);
+ };
+ interpret ISO_Level3_Shift+AnyOfOrNone(all) {
+ action= SetMods(modifiers=LevelThree,clearLocks);
+ };
+ interpret ISO_Level3_Latch+AnyOfOrNone(all) {
+ action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
+ };
+ interpret ISO_Level3_Lock+AnyOfOrNone(all) {
+ action= LockMods(modifiers=LevelThree);
+ };
+ interpret ISO_Group_Latch+AnyOfOrNone(all) {
+ virtualModifier= AltGr;
+ useModMapMods=level1;
+ action= LatchGroup(group=2);
+ };
+ interpret ISO_Next_Group+AnyOfOrNone(all) {
+ virtualModifier= AltGr;
+ useModMapMods=level1;
+ action= LockGroup(group=+1);
+ };
+ interpret ISO_Prev_Group+AnyOfOrNone(all) {
+ virtualModifier= AltGr;
+ useModMapMods=level1;
+ action= LockGroup(group=-1);
+ };
+ interpret ISO_First_Group+AnyOfOrNone(all) {
+ action= LockGroup(group=1);
+ };
+ interpret ISO_Last_Group+AnyOfOrNone(all) {
+ action= LockGroup(group=2);
+ };
+ interpret KP_1+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=-1,y=+1);
+ };
+ interpret KP_End+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=-1,y=+1);
+ };
+ interpret KP_2+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=+0,y=+1);
+ };
+ interpret KP_Down+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=+0,y=+1);
+ };
+ interpret KP_3+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=+1,y=+1);
+ };
+ interpret KP_Next+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=+1,y=+1);
+ };
+ interpret KP_4+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=-1,y=+0);
+ };
+ interpret KP_Left+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=-1,y=+0);
+ };
+ interpret KP_6+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=+1,y=+0);
+ };
+ interpret KP_Right+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=+1,y=+0);
+ };
+ interpret KP_7+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=-1,y=-1);
+ };
+ interpret KP_Home+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=-1,y=-1);
+ };
+ interpret KP_8+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=+0,y=-1);
+ };
+ interpret KP_Up+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=+0,y=-1);
+ };
+ interpret KP_9+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=+1,y=-1);
+ };
+ interpret KP_Prior+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=+1,y=-1);
+ };
+ interpret KP_5+AnyOfOrNone(all) {
+ repeat= True;
+ action= PtrBtn(button=default);
+ };
+ interpret KP_Begin+AnyOfOrNone(all) {
+ repeat= True;
+ action= PtrBtn(button=default);
+ };
+ interpret KP_F2+AnyOfOrNone(all) {
+ repeat= True;
+ action= SetPtrDflt(affect=button,button=1);
+ };
+ interpret KP_Divide+AnyOfOrNone(all) {
+ repeat= True;
+ action= SetPtrDflt(affect=button,button=1);
+ };
+ interpret KP_F3+AnyOfOrNone(all) {
+ repeat= True;
+ action= SetPtrDflt(affect=button,button=2);
+ };
+ interpret KP_Multiply+AnyOfOrNone(all) {
+ repeat= True;
+ action= SetPtrDflt(affect=button,button=2);
+ };
+ interpret KP_F4+AnyOfOrNone(all) {
+ repeat= True;
+ action= SetPtrDflt(affect=button,button=3);
+ };
+ interpret KP_Subtract+AnyOfOrNone(all) {
+ repeat= True;
+ action= SetPtrDflt(affect=button,button=3);
+ };
+ interpret KP_Separator+AnyOfOrNone(all) {
+ repeat= True;
+ action= PtrBtn(button=default,count=2);
+ };
+ interpret KP_Add+AnyOfOrNone(all) {
+ repeat= True;
+ action= PtrBtn(button=default,count=2);
+ };
+ interpret KP_0+AnyOfOrNone(all) {
+ repeat= True;
+ action= LockPtrBtn(button=default,affect=lock);
+ };
+ interpret KP_Insert+AnyOfOrNone(all) {
+ repeat= True;
+ action= LockPtrBtn(button=default,affect=lock);
+ };
+ interpret KP_Decimal+AnyOfOrNone(all) {
+ repeat= True;
+ action= LockPtrBtn(button=default,affect=unlock);
+ };
+ interpret KP_Delete+AnyOfOrNone(all) {
+ repeat= True;
+ action= LockPtrBtn(button=default,affect=unlock);
+ };
+ interpret F25+AnyOfOrNone(all) {
+ repeat= True;
+ action= SetPtrDflt(affect=button,button=1);
+ };
+ interpret F26+AnyOfOrNone(all) {
+ repeat= True;
+ action= SetPtrDflt(affect=button,button=2);
+ };
+ interpret F27+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=-1,y=-1);
+ };
+ interpret F29+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=+1,y=-1);
+ };
+ interpret F31+AnyOfOrNone(all) {
+ repeat= True;
+ action= PtrBtn(button=default);
+ };
+ interpret F33+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=-1,y=+1);
+ };
+ interpret F35+AnyOfOrNone(all) {
+ repeat= True;
+ action= MovePtr(x=+1,y=+1);
+ };
+ interpret Pointer_Button_Dflt+AnyOfOrNone(all) {
+ action= PtrBtn(button=default);
+ };
+ interpret Pointer_Button1+AnyOfOrNone(all) {
+ action= PtrBtn(button=1);
+ };
+ interpret Pointer_Button2+AnyOfOrNone(all) {
+ action= PtrBtn(button=2);
+ };
+ interpret Pointer_Button3+AnyOfOrNone(all) {
+ action= PtrBtn(button=3);
+ };
+ interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {
+ action= PtrBtn(button=default,count=2);
+ };
+ interpret Pointer_DblClick1+AnyOfOrNone(all) {
+ action= PtrBtn(button=1,count=2);
+ };
+ interpret Pointer_DblClick2+AnyOfOrNone(all) {
+ action= PtrBtn(button=2,count=2);
+ };
+ interpret Pointer_DblClick3+AnyOfOrNone(all) {
+ action= PtrBtn(button=3,count=2);
+ };
+ interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {
+ action= LockPtrBtn(button=default,affect=both);
+ };
+ interpret Pointer_Drag1+AnyOfOrNone(all) {
+ action= LockPtrBtn(button=1,affect=both);
+ };
+ interpret Pointer_Drag2+AnyOfOrNone(all) {
+ action= LockPtrBtn(button=2,affect=both);
+ };
+ interpret Pointer_Drag3+AnyOfOrNone(all) {
+ action= LockPtrBtn(button=3,affect=both);
+ };
+ interpret Pointer_EnableKeys+AnyOfOrNone(all) {
+ action= LockControls(controls=MouseKeys);
+ };
+ interpret Pointer_Accelerate+AnyOfOrNone(all) {
+ action= LockControls(controls=MouseKeysAccel);
+ };
+ interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {
+ action= SetPtrDflt(affect=button,button=+1);
+ };
+ interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {
+ action= SetPtrDflt(affect=button,button=-1);
+ };
+ interpret AccessX_Enable+AnyOfOrNone(all) {
+ action= LockControls(controls=AccessXKeys);
+ };
+ interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {
+ action= LockControls(controls=AccessXFeedback);
+ };
+ interpret RepeatKeys_Enable+AnyOfOrNone(all) {
+ action= LockControls(controls=RepeatKeys);
+ };
+ interpret SlowKeys_Enable+AnyOfOrNone(all) {
+ action= LockControls(controls=SlowKeys);
+ };
+ interpret BounceKeys_Enable+AnyOfOrNone(all) {
+ action= LockControls(controls=BounceKeys);
+ };
+ interpret StickyKeys_Enable+AnyOfOrNone(all) {
+ action= LockControls(controls=StickyKeys);
+ };
+ interpret MouseKeys_Enable+AnyOfOrNone(all) {
+ action= LockControls(controls=MouseKeys);
+ };
+ interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {
+ action= LockControls(controls=MouseKeysAccel);
+ };
+ interpret Overlay1_Enable+AnyOfOrNone(all) {
+ action= LockControls(controls=none);
+ };
+ interpret Overlay2_Enable+AnyOfOrNone(all) {
+ action= LockControls(controls=none);
+ };
+ interpret AudibleBell_Enable+AnyOfOrNone(all) {
+ action= LockControls(controls=AudibleBell);
+ };
+ interpret Terminate_Server+AnyOfOrNone(all) {
+ action= Terminate();
+ };
+ interpret Alt_L+AnyOfOrNone(all) {
+ action= SetMods(modifiers=Alt,clearLocks);
+ };
+ interpret Alt_R+AnyOfOrNone(all) {
+ action= SetMods(modifiers=Alt,clearLocks);
+ };
+ interpret Meta_L+AnyOfOrNone(all) {
+ action= SetMods(modifiers=Meta,clearLocks);
+ };
+ interpret Meta_R+AnyOfOrNone(all) {
+ action= SetMods(modifiers=Meta,clearLocks);
+ };
+ interpret Super_L+AnyOfOrNone(all) {
+ action= SetMods(modifiers=Super,clearLocks);
+ };
+ interpret Super_R+AnyOfOrNone(all) {
+ action= SetMods(modifiers=Super,clearLocks);
+ };
+ interpret Hyper_L+AnyOfOrNone(all) {
+ action= SetMods(modifiers=Hyper,clearLocks);
+ };
+ interpret Hyper_R+AnyOfOrNone(all) {
+ action= SetMods(modifiers=Hyper,clearLocks);
+ };
+ interpret Shift_L+AnyOfOrNone(all) {
+ action= SetMods(modifiers=Shift,clearLocks);
+ };
+ interpret XF86Switch_VT_1+AnyOfOrNone(all) {
+ repeat= True;
+ action= SwitchScreen(screen=1,!same);
+ };
+ interpret XF86Switch_VT_2+AnyOfOrNone(all) {
+ repeat= True;
+ action= SwitchScreen(screen=2,!same);
+ };
+ interpret XF86Switch_VT_3+AnyOfOrNone(all) {
+ repeat= True;
+ action= SwitchScreen(screen=3,!same);
+ };
+ interpret XF86Switch_VT_4+AnyOfOrNone(all) {
+ repeat= True;
+ action= SwitchScreen(screen=4,!same);
+ };
+ interpret XF86Switch_VT_5+AnyOfOrNone(all) {
+ repeat= True;
+ action= SwitchScreen(screen=5,!same);
+ };
+ interpret XF86Switch_VT_6+AnyOfOrNone(all) {
+ repeat= True;
+ action= SwitchScreen(screen=6,!same);
+ };
+ interpret XF86Switch_VT_7+AnyOfOrNone(all) {
+ repeat= True;
+ action= SwitchScreen(screen=7,!same);
+ };
+ interpret XF86Switch_VT_8+AnyOfOrNone(all) {
+ repeat= True;
+ action= SwitchScreen(screen=8,!same);
+ };
+ interpret XF86Switch_VT_9+AnyOfOrNone(all) {
+ repeat= True;
+ action= SwitchScreen(screen=9,!same);
+ };
+ interpret XF86Switch_VT_10+AnyOfOrNone(all) {
+ repeat= True;
+ action= SwitchScreen(screen=10,!same);
+ };
+ interpret XF86Switch_VT_11+AnyOfOrNone(all) {
+ repeat= True;
+ action= SwitchScreen(screen=11,!same);
+ };
+ interpret XF86Switch_VT_12+AnyOfOrNone(all) {
+ repeat= True;
+ action= SwitchScreen(screen=12,!same);
+ };
+ interpret XF86LogGrabInfo+AnyOfOrNone(all) {
+ repeat= True;
+ action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00);
+ };
+ interpret XF86LogWindowTree+AnyOfOrNone(all) {
+ repeat= True;
+ action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00);
+ };
+ interpret XF86Next_VMode+AnyOfOrNone(all) {
+ repeat= True;
+ action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);
+ };
+ interpret XF86Prev_VMode+AnyOfOrNone(all) {
+ repeat= True;
+ action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);
+ };
+ interpret ISO_Level5_Shift+AnyOfOrNone(all) {
+ action= SetMods(modifiers=LevelFive,clearLocks);
+ };
+ interpret ISO_Level5_Latch+AnyOfOrNone(all) {
+ action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
+ };
+ interpret ISO_Level5_Lock+AnyOfOrNone(all) {
+ action= LockMods(modifiers=LevelFive);
+ };
+ interpret Caps_Lock+AnyOfOrNone(all) {
+ action= LockMods(modifiers=Lock);
+ };
+ interpret Any+Exactly(Lock) {
+ action= LockMods(modifiers=Lock);
+ };
+ interpret Any+AnyOf(all) {
+ action= SetMods(modifiers=modMapMods,clearLocks);
+ };
+ indicator "Caps Lock" {
+ whichModState= locked;
+ modifiers= Lock;
+ };
+ indicator "Num Lock" {
+ whichModState= locked;
+ modifiers= NumLock;
+ };
+ indicator "Scroll Lock" {
+ whichModState= locked;
+ modifiers= ScrollLock;
+ };
+ indicator "Shift Lock" {
+ whichModState= locked;
+ modifiers= Shift;
+ };
+ indicator "Group 2" {
+ groups= 0xfe;
+ };
+ indicator "Mouse Keys" {
+ controls= mouseKeys;
+ };
+};
+
+xkb_symbols "LX Variant" {
+
+ name[group1]="French (alt.)";
+
+ key <ESC> { [ Escape ] };
+
+ #key <TLDE> {
+ # type= "FOUR_LEVEL",
+ # symbols[Group1]= [ twosuperior, threesuperior, onesuperior, dead_cedilla ]
+ #};
+ key <TLDE> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ asciicircum, bracketleft, twosuperior, threesuperior ]
+ };
+
+ #key <AE01> {
+ # type= "FOUR_LEVEL",
+ # symbols[Group1]= [ ampersand, 1, dead_caron, dead_ogonek ]
+ #};
+ key <AE01> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ braceleft, 1, dead_caron, dead_ogonek ]
+ };
+
+ key <AE02> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ eacute, 2, asciitilde, Eacute ]
+ };
+ key <AE03> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ quotedbl, 3, numbersign, dead_breve ]
+ };
+
+ #key <AE04> {
+ # type= "FOUR_LEVEL",
+ # symbols[Group1]= [ apostrophe, 4, braceleft, U2014 ]
+ #};
+ key <AE04> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ apostrophe, 4, dead_acute, U2014 ]
+ };
+
+ key <AE05> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ parenleft, 5, bracketleft, U2013 ]
+ };
+
+ #key <AE06> {
+ # type= "FOUR_LEVEL",
+ # symbols[Group1]= [ minus, 6, bar, U2011 ]
+ #};
+ key <AE06> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ minus, 6, section, U2011 ]
+ };
+
+ #key <AE07> {
+ # type= "FOUR_LEVEL",
+ # symbols[Group1]= [ egrave, 7, grave, Egrave ]
+ #};
+ key <AE07> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ dead_grave, 7, grave, Egrave ]
+ };
+
+ #key <AE08> {
+ # type= "FOUR_LEVEL",
+ # symbols[Group1]= [ underscore, 8, backslash, trademark ]
+ #};
+ key <AE08> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ underscore, 8, onesuperior, U2014 ]
+ };
+
+ key <AE09> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ ccedilla, 9, asciicircum, Ccedilla ]
+ };
+
+ #key <AE10> {
+ # type= "FOUR_LEVEL",
+ # symbols[Group1]= [ agrave, 0, at, Agrave ]
+ #};
+ key <AE10> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ braceright, 0, at, Agrave ]
+ };
+
+ #key <AE11> {
+ # type= "FOUR_LEVEL",
+ # symbols[Group1]= [ parenright, degree, bracketright, notequal ]
+ #};
+ key <AE11> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ parenright, bracketright, bracketright, degree ]
+ };
+
+ #key <AE12> {
+ # type= "FOUR_LEVEL",
+ # symbols[Group1]= [ equal, plus, braceright, plusminus ]
+ #};
+ key <AE12> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ equal, plus, notequal, plusminus ]
+ };
+
+ key <BKSP> { [ BackSpace, BackSpace ] };
+ key <TAB> { [ Tab, ISO_Left_Tab ] };
+ key <AD01> {
+ type= "FOUR_LEVEL_ALPHABETIC",
+ symbols[Group1]= [ a, A, ae, AE ]
+ };
+ key <AD02> {
+ type= "FOUR_LEVEL_ALPHABETIC",
+ symbols[Group1]= [ z, Z, acircumflex, Acircumflex ]
+ };
+ key <AD03> {
+ type= "FOUR_LEVEL_SEMIALPHABETIC",
+ symbols[Group1]= [ e, E, EuroSign, cent ]
+ };
+ key <AD04> {
+ type= "FOUR_LEVEL_ALPHABETIC",
+ symbols[Group1]= [ r, R, ecircumflex, Ecircumflex ]
+ };
+ key <AD05> {
+ type= "FOUR_LEVEL_ALPHABETIC",
+ symbols[Group1]= [ t, T, thorn, THORN ]
+ };
+ key <AD06> {
+ type= "FOUR_LEVEL_ALPHABETIC",
+ symbols[Group1]= [ y, Y, ydiaeresis, Ydiaeresis ]
+ };
+ key <AD07> {
+ type= "FOUR_LEVEL_ALPHABETIC",
+ symbols[Group1]= [ u, U, ucircumflex, Ucircumflex ]
+ };
+ key <AD08> {
+ type= "FOUR_LEVEL_ALPHABETIC",
+ symbols[Group1]= [ i, I, icircumflex, Icircumflex ]
+ };
+ key <AD09> {
+ type= "FOUR_LEVEL_ALPHABETIC",
+ symbols[Group1]= [ o, O, oe, OE ]
+ };
+ key <AD10> {
+ type= "FOUR_LEVEL_ALPHABETIC",
+ symbols[Group1]= [ p, P, ocircumflex, Ocircumflex ]
+ };
+ key <AD11> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ]
+ };
+
+ #key <AD12> {
+ # type= "FOUR_LEVEL",
+ # symbols[Group1]= [ dollar, sterling, oslash, Oslash ]
+ #};
+ key <AD12> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ dollar, at, oslash, Oslash ]
+ };
+
+ key <RTRN> { [ Return ] };
+ key <LCTL> { [ Control_L ] };
+ key <AC01> {
+ type= "FOUR_LEVEL_ALPHABETIC",
+ symbols[Group1]= [ q, Q, adiaeresis, Adiaeresis ]
+ };
+ key <AC02> {
+ type= "FOUR_LEVEL_SEMIALPHABETIC",
+ symbols[Group1]= [ s, S, ssharp, doublelowquotemark ]
+ };
+ key <AC03> {
+ type= "FOUR_LEVEL_ALPHABETIC",
+ symbols[Group1]= [ d, D, ediaeresis, Ediaeresis ]
+ };
+ key <AC04> {
+ type= "FOUR_LEVEL_SEMIALPHABETIC",
+ symbols[Group1]= [ f, F, leftsinglequotemark, singlelowquotemark ]
+ };
+ key <AC05> {
+ type= "FOUR_LEVEL_SEMIALPHABETIC",
+ symbols[Group1]= [ g, G, rightsinglequotemark, yen ]
+ };
+ key <AC06> {
+ type= "FOUR_LEVEL_ALPHABETIC",
+ symbols[Group1]= [ h, H, eth, ETH ]
+ };
+ key <AC07> {
+ type= "FOUR_LEVEL_ALPHABETIC",
+ symbols[Group1]= [ j, J, udiaeresis, Udiaeresis ]
+ };
+ key <AC08> {
+ type= "FOUR_LEVEL_ALPHABETIC",
+ symbols[Group1]= [ k, K, idiaeresis, Idiaeresis ]
+ };
+ key <AC09> {
+ type= "FOUR_LEVEL_ALPHABETIC",
+ symbols[Group1]= [ l, L, U0140, U013F ]
+ };
+ key <AC10> {
+ type= "FOUR_LEVEL_ALPHABETIC",
+ symbols[Group1]= [ m, M, odiaeresis, Odiaeresis ]
+ };
+
+ #key <AC11> {
+ # type= "FOUR_LEVEL",
+ # symbols[Group1]= [ ugrave, percent, dead_acute, Ugrave ]
+ #};
+ key <AC11> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ backslash, percent, dead_acute, Ugrave ]
+ };
+
+ key <LFSH> { [ Shift_L ] };
+
+ #key <BKSL> {
+ # type= "FOUR_LEVEL",
+ # symbols[Group1]= [ asterisk, mu, dead_grave, dead_macron ]
+ #};
+ key <BKSL> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ asterisk, bar, dead_grave, dead_macron ]
+ };
+
+ key <AB01> {
+ type= "FOUR_LEVEL_SEMIALPHABETIC",
+ symbols[Group1]= [ w, W, guillemotleft, leftdoublequotemark ]
+ };
+ key <AB02> {
+ type= "FOUR_LEVEL_SEMIALPHABETIC",
+ symbols[Group1]= [ x, X, guillemotright, rightdoublequotemark ]
+ };
+ key <AB03> {
+ type= "FOUR_LEVEL_SEMIALPHABETIC",
+ symbols[Group1]= [ c, C, copyright, registered ]
+ };
+ key <AB04> {
+ type= "FOUR_LEVEL_SEMIALPHABETIC",
+ symbols[Group1]= [ v, V, U202F, leftarrow ]
+ };
+ key <AB05> {
+ type= "FOUR_LEVEL_SEMIALPHABETIC",
+ symbols[Group1]= [ b, B, downarrow, uparrow ]
+ };
+ key <AB06> {
+ type= "FOUR_LEVEL_SEMIALPHABETIC",
+ symbols[Group1]= [ n, N, notsign, rightarrow ]
+ };
+
+ #key <AB07> {
+ # type= "FOUR_LEVEL",
+ # symbols[Group1]= [ comma, question, questiondown, U2026 ]
+ #};
+ key <AB07> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ comma, question, dead_cedilla, questiondown ]
+ };
+
+ key <AB08> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ semicolon, period, multiply, U22C5 ]
+ };
+ key <AB09> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ colon, slash, division, U2215 ]
+ };
+
+ #key <AB10> {
+ # type= "FOUR_LEVEL",
+ # symbols[Group1]= [ exclam, section, exclamdown, U2212 ]
+ #};
+ key <AB10> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ exclam, ampersand, exclamdown, U2212 ]
+ };
+
+ key <RTSH> { [ Shift_R ] };
+ key <KPMU> {
+ type= "CTRL+ALT",
+ symbols[Group1]= [ KP_Multiply, U22C5, 0x10000d7, VoidSymbol, XF86ClearGrab ]
+ };
+
+ key <LALT> { [ Alt_L, Meta_L ] };
+ #key <LALT> { [ Super_L ] };
+
+ key <SPCE> {
+ type= "EIGHT_LEVEL",
+ symbols[Group1]= [ space, space, space, nobreakspace, space, U202F, NoSymbol, NoSymbol ]
+ };
+
+ #key <CAPS> { [ Caps_Lock ] };
+ #key <CAPS> { [ Super_L ] };
+ key <CAPS> { [ Escape ] };
+
+ key <FK01> {
+ type= "CTRL+ALT",
+ symbols[Group1]= [ F1, F1, F1, F1, XF86Switch_VT_1 ]
+ };
+ key <FK02> {
+ type= "CTRL+ALT",
+ symbols[Group1]= [ F2, F2, F2, F2, XF86Switch_VT_2 ]
+ };
+ key <FK03> {
+ type= "CTRL+ALT",
+ symbols[Group1]= [ F3, F3, F3, F3, XF86Switch_VT_3 ]
+ };
+ key <FK04> {
+ type= "CTRL+ALT",
+ symbols[Group1]= [ F4, F4, F4, F4, XF86Switch_VT_4 ]
+ };
+ key <FK05> {
+ type= "CTRL+ALT",
+ symbols[Group1]= [ F5, F5, F5, F5, XF86Switch_VT_5 ]
+ };
+ key <FK06> {
+ type= "CTRL+ALT",
+ symbols[Group1]= [ F6, F6, F6, F6, XF86Switch_VT_6 ]
+ };
+ key <FK07> {
+ type= "CTRL+ALT",
+ symbols[Group1]= [ F7, F7, F7, F7, XF86Switch_VT_7 ]
+ };
+ key <FK08> {
+ type= "CTRL+ALT",
+ symbols[Group1]= [ F8, F8, F8, F8, XF86Switch_VT_8 ]
+ };
+ key <FK09> {
+ type= "CTRL+ALT",
+ symbols[Group1]= [ F9, F9, F9, F9, XF86Switch_VT_9 ]
+ };
+ key <FK10> {
+ type= "CTRL+ALT",
+ symbols[Group1]= [ F10, F10, F10, F10, XF86Switch_VT_10 ]
+ };
+ key <NMLK> { [ Num_Lock ] };
+ key <SCLK> { [ Scroll_Lock ] };
+ key <KP7> {
+ type= "FOUR_LEVEL_MIXED_KEYPAD",
+ symbols[Group1]= [ KP_Home, KP_7, U2196, U21D6 ]
+ };
+ key <KP8> {
+ type= "FOUR_LEVEL_MIXED_KEYPAD",
+ symbols[Group1]= [ KP_Up, KP_8, U2191, U21D1 ]
+ };
+ key <KP9> {
+ type= "FOUR_LEVEL_MIXED_KEYPAD",
+ symbols[Group1]= [ KP_Prior, KP_9, U2197, U21D7 ]
+ };
+ key <KPSU> {
+ type= "CTRL+ALT",
+ symbols[Group1]= [ KP_Subtract, U2212, U2212, VoidSymbol, XF86Prev_VMode ]
+ };
+ key <KP4> {
+ type= "FOUR_LEVEL_MIXED_KEYPAD",
+ symbols[Group1]= [ KP_Left, KP_4, U2190, U21D0 ]
+ };
+ key <KP5> {
+ type= "FOUR_LEVEL_MIXED_KEYPAD",
+ symbols[Group1]= [ KP_Begin, KP_5, U2194, U21D4 ]
+ };
+ key <KP6> {
+ type= "FOUR_LEVEL_MIXED_KEYPAD",
+ symbols[Group1]= [ KP_Right, KP_6, U2192, U21D2 ]
+ };
+ key <KPAD> {
+ type= "CTRL+ALT",
+ symbols[Group1]= [ KP_Add, 0x100002b, 0x100002b, VoidSymbol, XF86Next_VMode ]
+ };
+ key <KP1> {
+ type= "FOUR_LEVEL_MIXED_KEYPAD",
+ symbols[Group1]= [ KP_End, KP_1, U2199, U21D9 ]
+ };
+ key <KP2> {
+ type= "FOUR_LEVEL_MIXED_KEYPAD",
+ symbols[Group1]= [ KP_Down, KP_2, U2193, U21D3 ]
+ };
+ key <KP3> {
+ type= "FOUR_LEVEL_MIXED_KEYPAD",
+ symbols[Group1]= [ KP_Next, KP_3, U2198, U21D8 ]
+ };
+ key <KP0> {
+ type= "FOUR_LEVEL_MIXED_KEYPAD",
+ symbols[Group1]= [ KP_Insert, KP_0, U2195, U21D5 ]
+ };
+ key <KPDL> {
+ type= "FOUR_LEVEL_MIXED_KEYPAD",
+ symbols[Group1]= [ KP_Delete, period, comma, U202F ]
+ };
+ key <LVL3> {
+ type= "ONE_LEVEL",
+ symbols[Group1]= [ ISO_Level3_Shift ]
+ };
+ key <LSGT> {
+ type= "FOUR_LEVEL",
+ symbols[Group1]= [ less, greater, lessthanequal, greaterthanequal ]
+ };
+ key <FK11> {
+ type= "CTRL+ALT",
+ symbols[Group1]= [ F11, F11, F11, F11, XF86Switch_VT_11 ]
+ };
+ key <FK12> {
+ type= "CTRL+ALT",
+ symbols[Group1]= [ F12, F12, F12, F12, XF86Switch_VT_12 ]
+ };
+ key <KATA> { [ Katakana ] };
+ key <HIRA> { [ Hiragana ] };
+ key <HENK> { [ Henkan_Mode ] };
+ key <HKTG> { [ Hiragana_Katakana ] };
+ key <MUHE> { [ Muhenkan ] };
+ key <KPEN> { [ KP_Enter ] };
+ key <RCTL> { [ Control_R ] };
+ key <KPDV> {
+ type= "CTRL+ALT",
+ symbols[Group1]= [ KP_Divide, U2215, 0x10000f7, VoidSymbol, XF86Ungrab ]
+ };
+ key <PRSC> {
+ type= "PC_ALT_LEVEL2",
+ symbols[Group1]= [ Print, Sys_Req ]
+ };
+ key <RALT> {
+ type= "ONE_LEVEL",
+ symbols[Group1]= [ ISO_Level3_Shift ]
+ };
+ key <LNFD> { [ Linefeed ] };
+ key <HOME> { [ Home ] };
+ key <UP> { [ Up ] };
+ key <PGUP> { [ Prior ] };
+ key <LEFT> { [ Left ] };
+ key <RGHT> { [ Right ] };
+ key <END> { [ End ] };
+ key <DOWN> { [ Down ] };
+ key <PGDN> { [ Next ] };
+ key <INS> { [ Insert ] };
+ key <DELE> { [ Delete ] };
+ key <MUTE> { [ XF86AudioMute ] };
+ key <VOL-> { [ XF86AudioLowerVolume ] };
+ key <VOL+> { [ XF86AudioRaiseVolume ] };
+ key <POWR> { [ XF86PowerOff ] };
+ key <KPEQ> { [ KP_Equal ] };
+ key <I126> { [ plusminus ] };
+ key <PAUS> {
+ type= "PC_CONTROL_LEVEL2",
+ symbols[Group1]= [ Pause, Break ]
+ };
+ key <I128> { [ XF86LaunchA ] };
+ key <I129> { [ KP_Decimal, KP_Decimal ] };
+ key <HNGL> { [ Hangul ] };
+ key <HJCV> { [ Hangul_Hanja ] };
+
+ key <LWIN> { [ Super_L ] };
+ #key <LWIN> { [ Alt_L, Meta_L ] };
+
+ key <RWIN> { [ Super_R ] };
+ key <COMP> { [ Menu ] };
+ key <STOP> { [ Cancel ] };
+ key <AGAI> { [ Redo ] };
+ key <PROP> { [ SunProps ] };
+ key <UNDO> { [ Undo ] };
+ key <FRNT> { [ SunFront ] };
+ key <COPY> { [ XF86Copy ] };
+ key <OPEN> { [ XF86Open ] };
+ key <PAST> { [ XF86Paste ] };
+ key <FIND> { [ Find ] };
+ key <CUT> { [ XF86Cut ] };
+ key <HELP> { [ Help ] };
+ key <I147> { [ XF86MenuKB ] };
+ key <I148> { [ XF86Calculator ] };
+ key <I150> { [ XF86Sleep ] };
+ key <I151> { [ XF86WakeUp ] };
+ key <I152> { [ XF86Explorer ] };
+ key <I153> { [ XF86Send ] };
+ key <I155> { [ XF86Xfer ] };
+ key <I156> { [ XF86Launch1 ] };
+ key <I157> { [ XF86Launch2 ] };
+ key <I158> { [ XF86WWW ] };
+ key <I159> { [ XF86DOS ] };
+ key <I160> { [ XF86ScreenSaver ] };
+ key <I161> { [ XF86RotateWindows ] };
+ key <I162> { [ XF86TaskPane ] };
+ key <I163> { [ XF86Mail ] };
+ key <I164> { [ XF86Favorites ] };
+ key <I165> { [ XF86MyComputer ] };
+ key <I166> { [ XF86Back ] };
+ key <I167> { [ XF86Forward ] };
+ key <I169> { [ XF86Eject ] };
+ key <I170> { [ XF86Eject, XF86Eject ] };
+ key <I171> { [ XF86AudioNext ] };
+ key <I172> { [ XF86AudioPlay, XF86AudioPause ] };
+ key <I173> { [ XF86AudioPrev ] };
+ key <I174> { [ XF86AudioStop, XF86Eject ] };
+ key <I175> { [ XF86AudioRecord ] };
+ key <I176> { [ XF86AudioRewind ] };
+ key <I177> { [ XF86Phone ] };
+ key <I179> { [ XF86Tools ] };
+ key <I180> { [ XF86HomePage ] };
+ key <I181> { [ XF86Reload ] };
+ key <I182> { [ XF86Close ] };
+ key <I185> { [ XF86ScrollUp ] };
+ key <I186> { [ XF86ScrollDown ] };
+ key <I187> { [ parenleft ] };
+ key <I188> { [ parenright ] };
+ key <I189> { [ XF86New ] };
+ key <I190> { [ Redo ] };
+ key <FK13> { [ XF86Tools ] };
+ key <FK14> { [ XF86Launch5 ] };
+ key <FK15> { [ XF86Launch6 ] };
+ key <FK16> { [ XF86Launch7 ] };
+ key <FK17> { [ XF86Launch8 ] };
+ key <FK18> { [ XF86Launch9 ] };
+ key <FK20> { [ XF86AudioMicMute ] };
+ key <FK21> { [ XF86TouchpadToggle ] };
+ key <FK22> { [ XF86TouchpadOn ] };
+ key <FK23> { [ XF86TouchpadOff ] };
+ key <MDSW> { [ Mode_switch ] };
+ key <ALT> { [ NoSymbol, Alt_L ] };
+ key <META> { [ NoSymbol, Meta_L ] };
+ key <SUPR> { [ NoSymbol, Super_L ] };
+ key <HYPR> { [ NoSymbol, Hyper_L ] };
+ key <I208> { [ XF86AudioPlay ] };
+ key <I209> { [ XF86AudioPause ] };
+ key <I210> { [ XF86Launch3 ] };
+ key <I211> { [ XF86Launch4 ] };
+ key <I212> { [ XF86LaunchB ] };
+ key <I213> { [ XF86Suspend ] };
+ key <I214> { [ XF86Close ] };
+ key <I215> { [ XF86AudioPlay ] };
+ key <I216> { [ XF86AudioForward ] };
+ key <I218> { [ Print ] };
+ key <I220> { [ XF86WebCam ] };
+ key <I221> { [ XF86AudioPreset ] };
+ key <I223> { [ XF86Mail ] };
+ key <I224> { [ XF86Messenger ] };
+ key <I225> { [ XF86Search ] };
+ key <I226> { [ XF86Go ] };
+ key <I227> { [ XF86Finance ] };
+ key <I228> { [ XF86Game ] };
+ key <I229> { [ XF86Shop ] };
+ key <I231> { [ Cancel ] };
+ key <I232> { [ XF86MonBrightnessDown ] };
+ key <I233> { [ XF86MonBrightnessUp ] };
+ key <I234> { [ XF86AudioMedia ] };
+ key <I235> { [ XF86Display ] };
+ key <I236> { [ XF86KbdLightOnOff ] };
+ key <I237> { [ XF86KbdBrightnessDown ] };
+ key <I238> { [ XF86KbdBrightnessUp ] };
+ key <I239> { [ XF86Send ] };
+ key <I240> { [ XF86Reply ] };
+ key <I241> { [ XF86MailForward ] };
+ key <I242> { [ XF86Save ] };
+ key <I243> { [ XF86Documents ] };
+ key <I244> { [ XF86Battery ] };
+ key <I245> { [ XF86Bluetooth ] };
+ key <I246> { [ XF86WLAN ] };
+ key <I251> { [ XF86MonBrightnessCycle ] };
+ key <I254> { [ XF86WWAN ] };
+ key <I255> { [ XF86RFKill ] };
+ modifier_map Control { <LCTL> };
+ modifier_map Shift { <LFSH> };
+ modifier_map Shift { <RTSH> };
+ modifier_map Mod1 { <LALT> };
+ #modifier_map Mod1 { <LWIN> };
+
+ ## COMMENT THIS TO DEACTIVATE
+ #modifier_map Lock { <CAPS> };
+
+ modifier_map Mod2 { <NMLK> };
+ modifier_map Mod5 { <LVL3> };
+ modifier_map Control { <RCTL> };
+ modifier_map Mod4 { <LWIN> };
+ #modifier_map Mod4 { <LALT> };
+ modifier_map Mod4 { <RWIN> };
+ modifier_map Mod5 { <MDSW> };
+ modifier_map Mod1 { <META> };
+ modifier_map Mod4 { <SUPR> };
+ modifier_map Mod4 { <HYPR> };
+};
+
+};