From d8c099804fb444b17e579901c2a39803a718fc89 Mon Sep 17 00:00:00 2001 From: Jisu Kim Date: Sun, 19 Jul 2020 06:21:35 +0900 Subject: [PATCH] Initial commit --- .gitconfig | 6 + linux/Code/User/settings.json | 82 + linux/alacritty/alacritty.yml | 560 +++++ linux/bakamplayer.ini | 55 + linux/bin/ufetch | 74 + linux/bspwm/bspwmrc | 48 + linux/dconf/user | Bin 0 -> 10573 bytes linux/dunst/dunstrc | 414 +++ linux/fcitx5/conf/cached_layouts | 3465 ++++++++++++++++++++++++++ linux/fcitx5/conf/hangul.conf | 25 + linux/fcitx5/conf/notifications.conf | 3 + linux/fcitx5/config | 59 + linux/fcitx5/profile | 29 + linux/omz/plugins/deno/_deno | 480 ++++ linux/omz/vbalien.zsh-theme | 259 ++ linux/pam_environment | 11 + linux/picom/picom.conf | 418 ++++ linux/polybar/config | 201 ++ linux/rofi/config.rasi | 8 + linux/rofi/numix.rasi | 144 ++ linux/sxhkd/sxhkdrc | 143 ++ linux/xinitrc | 2 + linux/zshrc | 104 + mapping.ts | 43 + scripts/dot.ts | 47 + 25 files changed, 6680 insertions(+) create mode 100644 .gitconfig create mode 100644 linux/Code/User/settings.json create mode 100644 linux/alacritty/alacritty.yml create mode 100644 linux/bakamplayer.ini create mode 100755 linux/bin/ufetch create mode 100755 linux/bspwm/bspwmrc create mode 100644 linux/dconf/user create mode 100644 linux/dunst/dunstrc create mode 100644 linux/fcitx5/conf/cached_layouts create mode 100644 linux/fcitx5/conf/hangul.conf create mode 100644 linux/fcitx5/conf/notifications.conf create mode 100644 linux/fcitx5/config create mode 100644 linux/fcitx5/profile create mode 100644 linux/omz/plugins/deno/_deno create mode 100644 linux/omz/vbalien.zsh-theme create mode 100644 linux/pam_environment create mode 100644 linux/picom/picom.conf create mode 100644 linux/polybar/config create mode 100644 linux/rofi/config.rasi create mode 100644 linux/rofi/numix.rasi create mode 100644 linux/sxhkd/sxhkdrc create mode 100644 linux/xinitrc create mode 100644 linux/zshrc create mode 100755 mapping.ts create mode 100644 scripts/dot.ts diff --git a/.gitconfig b/.gitconfig new file mode 100644 index 0000000..fbe6ef5 --- /dev/null +++ b/.gitconfig @@ -0,0 +1,6 @@ +[user] + signingkey = FD987F8DBE513071 + email = webmaster@alien.moe + name = Jisu Kim +[commit] + gpgsign = true diff --git a/linux/Code/User/settings.json b/linux/Code/User/settings.json new file mode 100644 index 0000000..9f6b053 --- /dev/null +++ b/linux/Code/User/settings.json @@ -0,0 +1,82 @@ +{ + "editor.fontFamily": "'TerminessTTF Nerd Font Mono', 'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'", + "editor.tabSize": 2, + "explorer.confirmDelete": false, + "workbench.sideBar.location": "right", + "vim.neovimPath": "/usr/bin/nvim", + "[typescriptreact]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "vim.useSystemClipboard": true, + "files.autoGuessEncoding": true, + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[json]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[rust]": { + "editor.tabSize": 4 + }, + "[c]": { + "editor.wordBasedSuggestions": false, + "editor.suggest.insertMode": "replace" + }, + "[cpp]": { + "editor.wordBasedSuggestions": false, + "editor.suggest.insertMode": "replace" + }, + "eslint.alwaysShowStatus": true, + "eslint.packageManager": "yarn", + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact" + ], + "typescript.updateImportsOnFileMove.enabled": "always", + "workbench.iconTheme": "material-icon-theme", + "workbench.colorTheme": "Twilight", + "workbench.colorCustomizations": { + "statusBar.noFolderBackground": "#dd5555", + "statusBar.background": "#dd5555", + "list.activeSelectionBackground": "#dd5555", + "badge.background": "#dd5555", + "activityBarBadge.background": "#dd5555", + "menu.background": "#dd5555", + "list.focusBackground": "#dd5555", + "activityBar.activeBorder": "#dd5555", + "activityBar.foreground": "#dd5555", + "activityBar.inactiveForeground": "#fff", + "focusBorder": "#dd5555", + "button.background": "#dd5555", + "textLink.foreground": "#dd5555", + "extensionButton.prominentBackground": "#dd5555", + + "terminal.foreground": "#d0d0d0", + "terminal.background": "#212121", + "terminal.ansiBlack": "#151515", + "terminal.ansiBlue": "#6c99bb", + "terminal.ansiCyan": "#7dd6cf", + "terminal.ansiGreen": "#7e8e50", + "terminal.ansiMagenta": "#9f4e85", + "terminal.ansiRed": "#ac4142", + "terminal.ansiWhite": "#d0d0d0", + "terminal.ansiYellow": "#e5b567", + "terminal.ansiBrightBlack": "#505050", + "terminal.ansiBrightBlue": "#6c99bb", + "terminal.ansiBrightCyan": "#7dd6cf", + "terminal.ansiBrightGreen": "#7e8e50", + "terminal.ansiBrightMagenta": "#9f4e85", + "terminal.ansiBrightRed": "#ac4142", + "terminal.ansiBrightWhite": "#f5f5f5", + "terminal.ansiBrightYellow": "#e5b567" + }, + "editor.formatOnSave": true, + "vim.enableNeovim": true, + "vim.useCtrlKeys": false, + "editor.fontSize": 16 +} diff --git a/linux/alacritty/alacritty.yml b/linux/alacritty/alacritty.yml new file mode 100644 index 0000000..5843e1c --- /dev/null +++ b/linux/alacritty/alacritty.yml @@ -0,0 +1,560 @@ +# 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: alacritty + +#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 + +# Font configuration +font: + # Normal (roman) font face + normal: + # Font family + # + # Default: + # - (macOS) Menlo + # - (Linux/BSD) monospace + # - (Windows) Consolas + family: TerminessTTF Nerd Font + + # The `style` can be specified to pick a specific face. + #style: Regular + + # 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: monospace + + # The `style` can be specified to pick a specific face. + #style: Bold + + # 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: monospace + + # The `style` can be specified to pick a specific face. + #style: Italic + + # 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: 14.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: false + +# Colors (Tomorrow Night Bright) +#colors: + # Default colors + #primary: + # background: '#000000' + # foreground: '#eaeaea' + + # 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: '#9a9a9a' + #bright_foreground: '#ffffff' + + # 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: '#000000' + # cursor: '#ffffff' + + # 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: '#eaeaea' + # background: '#404040' + + # Normal colors + #normal: + # black: '#000000' + # red: '#d54e53' + # green: '#b9ca4a' + # yellow: '#e6c547' + # blue: '#7aa6da' + # magenta: '#c397d8' + # cyan: '#70c0ba' + # white: '#eaeaea' + + # Bright colors + #bright: + # black: '#666666' + # red: '#ff3334' + # green: '#9ec400' + # yellow: '#e7c547' + # blue: '#7aa6da' + # magenta: '#b77ee0' + # cyan: '#54ced6' + # white: '#ffffff' + + # Dim colors + # + # If the dim colors are not set, they will be calculated automatically based + # on the `normal` colors. + #dim: + # black: '#000000' + # red: '#8c3336' + # green: '#7a8530' + # yellow: '#97822e' + # blue: '#506d8f' + # magenta: '#80638e' + # cyan: '#497e7a' + # white: '#9a9a9a' + + # 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: '#ff00ff' }` + # + #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: '#ffffff' + +# 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: 0.7 + +#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 + +#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. +# +# To trigger mouse bindings when an application running within Alacritty captures the mouse, the +# `Shift` modifier is automatically added as a requirement. +# +# 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. +# +# If the same trigger is assigned to multiple actions, all of them are executed +# at once. +#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 } + +#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 diff --git a/linux/bakamplayer.ini b/linux/bakamplayer.ini new file mode 100644 index 0000000..f94d39f --- /dev/null +++ b/linux/bakamplayer.ini @@ -0,0 +1,55 @@ +{ + "autoFit": 100, + "debug": false, + "gestures": false, + "hideAllControls": true, + "hidePopup": false, + "input": { + "Ctrl+S": [ + "screenshot", + "Take screenshot without subtitles" + ], + "Ctrl+Shift+T": [ + "", + "" + ] + }, + "lang": "ko", + "maxRecent": 5, + "mpv": { + "hwdec": "auto-copy", + "input-ipc-server": "/tmp/mpvsocket", + "msg-level": "status", + "screenshot-directory": "/home/vbalien/Pictures", + "screenshot-format": "", + "screenshot-template": "screenshot%#04n", + "speed": 1, + "vo": "", + "volume": 100 + }, + "onTop": "never", + "recent": [ + { + "path": "/run/user/1000/gvfs/afp-volume:host=home.alien.moe,user=vbalien,volume=Animations/[Ohys-Raws] Maou Gakuin no Futekigousha - 03 (AT-X 1280x720 x264 AAC).mp4" + }, + { + "path": "/run/user/1000/gvfs/afp-volume:host=home.alien.moe,user=vbalien,volume=Animations/[Ohys-Raws] Re Zero kara Hajimeru Isekai Seikatsu 2nd Season - 02 (AT-X 1920x1080 x264 AAC).mp4" + }, + { + "path": "/run/user/1000/gvfs/afp-volume:host=home.alien.moe,user=vbalien,volume=Animations/[Ohys-Raws] Yahari Ore no Seishun LoveCome wa Machigatte Iru. Kan - 02 (TBS 1920x1080 x264 AAC).mp4" + }, + { + "path": "/run/user/1000/gvfs/afp-volume:host=home.alien.moe,user=vbalien,volume=Animations/[Moozzi2] Machikado Mazoku - TV + SP/[Moozzi2] Machikado Mazoku - 01 (BD 1920x1080 x.264 Flac).mkv" + }, + { + "path": "/run/user/1000/gvfs/afp-volume:host=home.alien.moe,user=vbalien,volume=Animations/[Ohys-Raws] Bang Dream! Garupa Pico Oomori - 02 (AT-X 1280x720 x264 AAC).mp4" + } + ], + "remaining": true, + "resume": true, + "screenshotDialog": false, + "showAll": true, + "splitter": 313, + "trayIcon": false, + "version": "2.0.3" +} diff --git a/linux/bin/ufetch b/linux/bin/ufetch new file mode 100755 index 0000000..9ff170c --- /dev/null +++ b/linux/bin/ufetch @@ -0,0 +1,74 @@ +#!/bin/sh +# +# ufetch-arch - tiny system info for arch + +## INFO + +# user is already defined +host="$(cat /etc/hostname)" +os='Arch Linux' +kernel="$(uname -sr)" +uptime="$(uptime -p | sed 's/up //')" +packages="$(pacman -Q | wc -l)" +shell="$(basename "$SHELL")" + +## UI DETECTION + +if [ -n "${DE}" ]; then + ui="${DE}" + uitype='DE' +elif [ -n "${WM}" ]; then + ui="${WM}" + uitype='WM' +elif [ -n "${XDG_CURRENT_DESKTOP}" ]; then + ui="${XDG_CURRENT_DESKTOP}" + uitype='DE' +elif [ -n "${DESKTOP_SESSION}" ]; then + ui="${DESKTOP_SESSION}" + uitype='DE' +elif [ -f "${HOME}/.xinitrc" ]; then + ui="$(tail -n 1 "${HOME}/.xinitrc" | cut -d ' ' -f 2)" + uitype='WM' +elif [ -f "${HOME}/.xsession" ]; then + ui="$(tail -n 1 "${HOME}/.xsession" | cut -d ' ' -f 2)" + uitype='WM' +else + ui='unknown' + uitype='UI' +fi + +## DEFINE COLORS + +# probably don't change these +if [ -x "$(command -v tput)" ]; then + bold="$(tput bold)" + black="$(tput setaf 0)" + red="$(tput setaf 1)" + green="$(tput setaf 2)" + yellow="$(tput setaf 3)" + blue="$(tput setaf 4)" + magenta="$(tput setaf 5)" + cyan="$(tput setaf 6)" + white="$(tput setaf 7)" + reset="$(tput sgr0)" +fi + +# you can change these +lc="${reset}${bold}${red}" # labels +nc="${reset}${bold}${red}" # user and hostname +ic="${reset}" # info +c0="${reset}${red}" # first color + +## OUTPUT + +cat <!Geg26?JZso5_{DyfZ2fd;p{&b{OLms+l4fX#iKv)Vr4F48UxG8hgeee!V3iOWhDenLR79)9&_-y2sc=>g&c=Va z%5?M`m{H|CRGbeNz#O;`=D~cp2o}J_RW3y@gGD{K9RD@Aq6drdeQ_1>X0RXuc9k@m z0jJ6}=n}|Q$)SZFT#I+X0}bv{XsxmgT@EX%T!&r{H^7Z>6MO@{1vkU$Dz~6w4crE| z!?%0Tf$zy$-gj{q{!rEt6ZgRV@IVh9!uO<;_mA|!24dpTDvzO$!xQi%JOj_d@|)}5 zlh@on-I!}^Lw^EC|L_}kT}fR2SbAwU`d2un8kbkRW;6;-mkw6f`(E)Nu`twLG4sNO z#O05o{+Z}(DBgY3f==S{LnyxpO~8w*{`Yt4SNR&sXVEtJx6FwHHCN^P6Tc2^hsM{Z z&O4I0{1D=6(Dm@xM{lmxn8+)>5#0>Uf8KR;3vqe1a~t|&_}Wd^Sp(`$L593rps`_a!~ z+E@0t$`$ehh}Rr%7^C5XlRI8jJ@T4wW6<$%?56`}Xnf^0?m;vPd!PB)Z#A#vRsU>s z4m=oZd89~OUh{b&x)?g2oAWhYue|1e1}($#`-c8Zae39h3cVF}-O;?}QsVMQ6YoSf zz>UAHdr5g;elYbvg>Hi}I~&Go{mPG}{BHDPxN&Iyx9U%Mje8B7&`^k8@zc5LPkFU- zG#Y`Xqb8oO_Q-2oW}_Fw!*6FERsYBjr2HbZ8J=j~__^9CuX&q6uY=cL`sLYbkNg(R{+Tex_Z%FB-<{uA^UFyxizPtg7+uXVQz-3|Y^ylUfqfTI5!dYwUMrd!8A4q%*S_`+iuRpK+Bd_^$CK`czFI(`S z;_?HC$IVJ8E-l7*lOJVm!?cwsnDBq0U2iEa5AF4m)2l2Zb(amt$ke#m$ zCN8i3--f;kEt_s$p?;88KkPvFK=|x;?o?b}^L#&g09v2la>TjB<^6FSPn%)mmJcRr z{mQF+9XbVq-@M~7?YZ*mx7p|%_|KO8M|TpJR~~Lglkh?L?-L#3@+#ksc0hWvO{@TUi}|Or^2T1ewx}uTwe2VHaZ{nG_D-iN?cy+u^CN4`S@j9 zG+y$W&qZ`8m{(rDUin8}`Jo-{g#NqVI!XJ8ync5p`W#%fWA$vEbL2HYUqg35|C{c( zMtM(uH0AfApMo)F@m_8G^6H;aRC)|FJb(G`mFMNPerwSQ(6RT$q{_?t*NaYtPj=sU zs>VfL^JF%<5GF5v(AEAfKZ1HvXa)jjKl^9xoAS!fS+o-tMi(~TO z0uK?FS3Pm`TzIy9dq7K5Uh`@`dNF+P%3HtJ{Fm4DHls=S!-k>1Q~mP#-8S^=u>0!A z8#RCAHGejuPr=D!A6lTeyy9=8yWsoVJ|3X{m-o*t=ssw_V8mT2FYnL8TE+qfpL1aH zRmA1BzT)UqxI44@+9u-inm;qq*^sFF!#ItXyvDs5%|d#_FK$ph@>+N8=t`LL&eMSj z#O1ZWtU)^zpWiX`e&X`VtKUI4!}NWx7@D{8ia&*Jg$+-PcuV6eulD=^-3F`v>yfr7 zaru+^-QDOO_~ehXztDMK-p@1W=U`2|Xp;ItUi~oP6vH?Zh7Fqbt9iub)&JAc8Suu` z@-J5sm)E+Ok1mA8f10>e?U7e|n$Zl5y!7KY+lkAof7;QN(AjaqAFd@Xukvfq4*1n8 z`?efMTwd$C6Wsti|G4gH%^!K?;jQQoVc*<8x|*Nzs(%N%6KeNmo>n{M{c%VC0)>`~ z&Qji%*Sgq;?uWq4U8~g(^6H1$Qw^gIP8~RCRSj`@e?FtrVel7`u^Jcofs~((&V?-x zT=2NYSKdG8po^h?!OC5?5tmmx+t3v-rDp%APU7;)pB?Brxb4*y^VJ@CwdV)uYjE7A zqaN3K@jc~t6WaqbUo&5g5tmnc-beSs*5@Y#)lPX`?|!uAG}i3kXI@)PTweV@8l3>A z9=PsbuOu$-=OuJ1Jh?pasM;g1_B5jzxVK@}J9iS7*L-M0+u_9n;jwoSm)Cf8pljhB z`;#}dF60&OL^r|NcYfAi<07wqcmdsWI_IdXf3tiQae3vL{pbN0@Rx9d@}a!0R}Tbg z;D&22xVN3SyxKno9S0A*-8`>AT>dEHL39Ru^^!q1>Kr1k{+Wx;hkb#X+*!osRZlaT zgz-n7`QpRG=ncA)RT+uuLJ_=1;wKYsUJ^nLhn$!R}sqrANKyS?bAFnrVA$!d?h zuD50qzXSJ-F8|OZF0bnyjn=}nKfm-p8b^7>>lA~JhQ0Ev#zlS<@ww=HIA!@8ZG(u* z`}Z~I6|i&aq#Fhhm)G?c(WUT3=d6o#z4Ds>9q3vZTD^~!S9~-2efU%E{g*W^^12_~ zhQ0>Fs^#TXemDA8DE|G0xyldn${R)<*8#(;<>ghr7Byi+H7>9CZ1fTsS&hppUPP~l z%gRHJxq!`^02(}_BQk{FsfR=yy~x+jKYxd zZ!D&`?=>Ilh@AmPRm;n({B-m}NHvB-!FV)f#-k0k8HrjEvoT&DF~i|-G#zS8B_pB6 z0QGH!{@}GbrDVn|70lLxyTmJ6N!wK3oOW@!XuD^}NdlJFSD{7UkxH9iaMQrXRuDJ-w0w8SiB>}p4TwVZQU|9;fTnYlu$ zoYn8D6z`J-`me2IdQPsWxaZnM+bWrUw=U%;lq2Zu|7SoGmF8uvd@4&{(cdfhN-I5A zXr=Zxk70NCn;1@UAmL!a_XAGz@tUAw| z+*Mu4D%pYSD8d(v&EPpHJ7KwItCK2ac>f3(PPM(gW?mw%3$=<|C)cO%>or{eINh`8 zLEf&1qoEltfs|{t(50^JWeVBq7c~bB$8NKeGMtmLR?>A!nmAr-E?|U+C7343%6v%K zS&NT2FR2guZeJo>wsTfK;6I05Nin~h3U11FX@l)0ZGSSVr!sVHX<3mu<#!@w`xyzZ zWYMjx;|$&I_ev$Md0epERDiABe#$QHad4q( z|Ik@@6KMYE{zGRr?e`p?jBFukm00+ijg{F!ezs^f14)alP-t18j&ct{i(SasC3jh< zzCP9#iiE;vgu>y_8TAe7hCXsu)=v9PueN)x-VRghs?L){p|B)pxl7E1Yg(dCwn}Wfn`i7>4VAHHv zQ}kS;#!97_LY^@z(iEH7blxoeKhCF7KFT_lXPnO@YFk!&ZaL-E*2ROfqLYmy9jZ61 za>^-?N8OY$kkn}#=afr@+UgJ27TtpKi)RchmzmeW>dTZK@=w=i#y~&Qh8h~{qoH^- z6qyo^g&U&rxG^wgFLjcP%AlN6vU6;bo@=Cr@z{1Sk?;9yS{sau-l3SKgpVw zXSTSNMV0WAPgmZ_=c-GN{#5_yjA$2H0)x<15Kp8M@kBUkh7mIokJp=VJ03F|tzdmP z84EQ;qV;^$|9i&uXo>`2rVDP)s*Ia!x0JJ$X~W8PDie#rQ*!idx+rD2%giL7EHUl8 zmB=d9_^(7?NrF!j>4tDDYBwazu$`_qBcWv6j0Y1@GaX7t>7~YGI2a48qvTwu?pp_w zLnYrIe%4UGrlMK2^0wb~ep{ITs1dv3tXSgsu)6X$GJ z%E4`j;b(^~IZRnA)oM8CDeIO61+y#?Ln;ZEBfvs#j_pt4f_*!C&7!a;DOr;dn{cw)5J` z{EXCVL=u&*{HLKxc(&zoG+~aju>2!}pZioHxy15HSNGUN*m#{BZS5Lm`ui}0ktmiu z4m`Suo(a$Ly1FV^$dM2HBTDy-TkdeTB-ZNY!TXV5I9*4m0B6U_ z-!wbWbKyjI7<3kmfR`k<)?(0atVAJPKNv7d^j{mbe%xE&!5V`-3KZ^ubDF(H|Zaj`na@2 zch~7eSv}NN`mOtv+g<;mGdAI`w~WKVSB)lLWDBkSq4MA$5Utb~i3jb5bgiiKk2#(0R?9}bz^TBOYSaH277#Uu6U6u(;eoAn|z zS@ud~ogUeMppoc0#s+G6*R|-(em4;9VF#=+7!BWaXV$^$zAELjYReTb28(5 z{yK6jE;SgjV`j|O?v+dg&3HP=T^0!<84cSBHno5;p7LLUJ|+v%gumK3_>uSBzycy& z=}~?70E~v}cl%gzlN{3RSc*-gK5j-5ac4>QVQDZm}OtLBi^C^0)iuXF*@I0B=H-KU03`(xdr#L<6l}HuJ{*2a{$LP>Rb*g<= zJ&LKI&L7!OlN!_%Y|7dB^7O7vWeRJkDcGw-sL4-C)f0a2lA&HD>zj0UTx1Tq%{k-X$ZwOV&5_TEV@`HuNqVZYsL| zz26~KMtc{FG`URErGBDFxz1Aikm9l4#T%NsR&ehhkM}MXZOYpv9j1GiYV2Jq*5nUv z?=qo-!&B+Qc$1$*4k>hSWGaOkn>Y(_4{5oFl&d#R2QiTmw(cEIT$e#Y~sfdBWEuDy4k>MB=%Il_@Rhjtm}6ohb_kqzh2e$H2CHG4T<~WWX3kjMco>vj-I~rD%x|%onP0fj=!h- zFFjYZEj?4bhC0_k23jBv--0rYhmHYLowkztl>z@|`CHfqfSoM1`|9k%j D34CtP literal 0 HcmV?d00001 diff --git a/linux/dunst/dunstrc b/linux/dunst/dunstrc new file mode 100644 index 0000000..4282104 --- /dev/null +++ b/linux/dunst/dunstrc @@ -0,0 +1,414 @@ +[global] + ### Display ### + + # Which monitor should the notifications be displayed on. + monitor = 0 + + # Display notification on focused monitor. Possible modes are: + # mouse: follow mouse pointer + # keyboard: follow window with keyboard focus + # none: don't follow anything + # + # "keyboard" needs a window manager that exports the + # _NET_ACTIVE_WINDOW property. + # This should be the case for almost all modern window managers. + # + # If this option is set to mouse or keyboard, the monitor option + # will be ignored. + follow = mouse + + # The geometry of the window: + # [{width}]x{height}[+/-{x}+/-{y}] + # The geometry of the message window. + # The height is measured in number of notifications everything else + # in pixels. If the width is omitted but the height is given + # ("-geometry x2"), the message window expands over the whole screen + # (dmenu-like). If width is 0, the window expands to the longest + # message displayed. A positive x is measured from the left, a + # negative from the right side of the screen. Y is measured from + # the top and down respectively. + # The width can be negative. In this case the actual width is the + # screen width minus the width defined in within the geometry option. + geometry = "300x5-30+50" + + # Show how many messages are currently hidden (because of geometry). + indicate_hidden = yes + + # Shrink window if it's smaller than the width. Will be ignored if + # width is 0. + shrink = no + + # The transparency of the window. Range: [0; 100]. + # This option will only work if a compositing window manager is + # present (e.g. xcompmgr, compiz, etc.). + transparency = 0 + + # The height of the entire notification. If the height is smaller + # than the font height and padding combined, it will be raised + # to the font height and padding. + notification_height = 0 + + # Draw a line of "separator_height" pixel height between two + # notifications. + # Set to 0 to disable. + separator_height = 2 + + # Padding between text and separator. + padding = 8 + + # Horizontal padding. + horizontal_padding = 8 + + # Defines width in pixels of frame around the notification window. + # Set to 0 to disable. + frame_width = 0 + + # Defines color of the frame around the notification window. + frame_color = "#aaaaaa" + + # Define a color for the separator. + # possible values are: + # * auto: dunst tries to find a color fitting to the background; + # * foreground: use the same color as the foreground; + # * frame: use the same color as the frame; + # * anything else will be interpreted as a X color. + separator_color = frame + + # Sort messages by urgency. + sort = yes + + # Don't remove messages, if the user is idle (no mouse or keyboard input) + # for longer than idle_threshold seconds. + # Set to 0 to disable. + # A client can set the 'transient' hint to bypass this. See the rules + # section for how to disable this if necessary + idle_threshold = 120 + + ### Text ### + + font = Monospace 8 + + # The spacing between lines. If the height is smaller than the + # font height, it will get raised to the font height. + line_height = 0 + + # Possible values are: + # full: Allow a small subset of html markup in notifications: + # bold + # italic + # strikethrough + # underline + # + # For a complete reference see + # . + # + # strip: This setting is provided for compatibility with some broken + # clients that send markup even though it's not enabled on the + # server. Dunst will try to strip the markup but the parsing is + # simplistic so using this option outside of matching rules for + # specific applications *IS GREATLY DISCOURAGED*. + # + # no: Disable markup parsing, incoming notifications will be treated as + # plain text. Dunst will not advertise that it has the body-markup + # capability if this is set as a global setting. + # + # It's important to note that markup inside the format option will be parsed + # regardless of what this is set to. + markup = full + + # The format of the message. Possible variables are: + # %a appname + # %s summary + # %b body + # %i iconname (including its path) + # %I iconname (without its path) + # %p progress value if set ([ 0%] to [100%]) or nothing + # %n progress value if set without any extra characters + # %% Literal % + # Markup is allowed + format = "%s\n%b" + + # Alignment of message text. + # Possible values are "left", "center" and "right". + alignment = left + + # Show age of message if message is older than show_age_threshold + # seconds. + # Set to -1 to disable. + show_age_threshold = 60 + + # Split notifications into multiple lines if they don't fit into + # geometry. + word_wrap = yes + + # When word_wrap is set to no, specify where to make an ellipsis in long lines. + # Possible values are "start", "middle" and "end". + ellipsize = middle + + # Ignore newlines '\n' in notifications. + ignore_newline = no + + # Stack together notifications with the same content + stack_duplicates = true + + # Hide the count of stacked notifications with the same content + hide_duplicate_count = false + + # Display indicators for URLs (U) and actions (A). + show_indicators = yes + + ### Icons ### + + # Align icons left/right/off + icon_position = left + + # Scale larger icons down to this size, set to 0 to disable + max_icon_size = 32 + + # Paths to default icons. + icon_path = /usr/share/icons/Numix/16/status/:/usr/share/icons/Numix/16/devices/ + + ### History ### + + # Should a notification popped up from history be sticky or timeout + # as if it would normally do. + sticky_history = yes + + # Maximum amount of notifications kept in history + history_length = 20 + + ### Misc/Advanced ### + + # dmenu path. + dmenu = /usr/bin/dmenu -p dunst: + + # Browser for opening urls in context menu. + browser = /usr/bin/firefox -new-tab + + # Always run rule-defined scripts, even if the notification is suppressed + always_run_script = true + + # Define the title of the windows spawned by dunst + title = Dunst + + # Define the class of the windows spawned by dunst + class = Dunst + + # Print a notification on startup. + # This is mainly for error detection, since dbus (re-)starts dunst + # automatically after a crash. + startup_notification = false + + # Manage dunst's desire for talking + # Can be one of the following values: + # crit: Critical features. Dunst aborts + # warn: Only non-fatal warnings + # mesg: Important Messages + # info: all unimportant stuff + # debug: all less than unimportant stuff + verbosity = mesg + + # Define the corner radius of the notification window + # in pixel size. If the radius is 0, you have no rounded + # corners. + # The radius will be automatically lowered if it exceeds half of the + # notification height to avoid clipping text and/or icons. + corner_radius = 0 + + ### Legacy + + # Use the Xinerama extension instead of RandR for multi-monitor support. + # This setting is provided for compatibility with older nVidia drivers that + # do not support RandR and using it on systems that support RandR is highly + # discouraged. + # + # By enabling this setting dunst will not be able to detect when a monitor + # is connected or disconnected which might break follow mode if the screen + # layout changes. + force_xinerama = false + + ### mouse + + # Defines action of mouse event + # Possible values are: + # * none: Don't do anything. + # * do_action: If the notification has exactly one action, or one is marked as default, + # invoke it. If there are multiple and no default, open the context menu. + # * close_current: Close current notification. + # * close_all: Close all notifications. + mouse_left_click = close_current + mouse_middle_click = do_action + mouse_right_click = close_all + +# Experimental features that may or may not work correctly. Do not expect them +# to have a consistent behaviour across releases. +[experimental] + # Calculate the dpi to use on a per-monitor basis. + # If this setting is enabled the Xft.dpi value will be ignored and instead + # dunst will attempt to calculate an appropriate dpi value for each monitor + # using the resolution and physical size. This might be useful in setups + # where there are multiple screens with very different dpi values. + per_monitor_dpi = false + +[shortcuts] + + # Shortcuts are specified as [modifier+][modifier+]...key + # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", + # "mod3" and "mod4" (windows-key). + # Xev might be helpful to find names for keys. + + # Close notification. + close = ctrl+space + + # Close all notifications. + close_all = ctrl+shift+space + + # Redisplay last message(s). + # On the US keyboard layout "grave" is normally above TAB and left + # of "1". Make sure this key actually exists on your keyboard layout, + # e.g. check output of 'xmodmap -pke' + history = ctrl+grave + + # Context menu. + context = ctrl+shift+period + +[urgency_low] + # IMPORTANT: colors have to be defined in quotation marks. + # Otherwise the "#" and following would be interpreted as a comment. + background = "#22222266" + foreground = "#ddd" + timeout = 10 + # Icon for notifications with low urgency, uncomment to enable + #icon = /path/to/icon + +[urgency_normal] + background = "#eb564d66" + foreground = "#fff" + timeout = 10 + # Icon for notifications with normal urgency, uncomment to enable + #icon = /path/to/icon + +[urgency_critical] + background = "#90000066" + foreground = "#ffffff" + frame_color = "#ff0000" + timeout = 0 + # Icon for notifications with critical urgency, uncomment to enable + #icon = /path/to/icon + +# Every section that isn't one of the above is interpreted as a rules to +# override settings for certain messages. +# +# Messages can be matched by +# appname (discouraged, see desktop_entry) +# body +# category +# desktop_entry +# icon +# match_transient +# msg_urgency +# stack_tag +# summary +# +# and you can override the +# background +# foreground +# format +# frame_color +# fullscreen +# new_icon +# set_stack_tag +# set_transient +# timeout +# urgency +# +# Shell-like globbing will get expanded. +# +# Instead of the appname filter, it's recommended to use the desktop_entry filter. +# GLib based applications export their desktop-entry name. In comparison to the appname, +# the desktop-entry won't get localized. +# +# SCRIPTING +# You can specify a script that gets run when the rule matches by +# setting the "script" option. +# The script will be called as follows: +# script appname summary body icon urgency +# where urgency can be "LOW", "NORMAL" or "CRITICAL". +# +# NOTE: if you don't want a notification to be displayed, set the format +# to "". +# NOTE: It might be helpful to run dunst -print in a terminal in order +# to find fitting options for rules. + +# Disable the transient hint so that idle_threshold cannot be bypassed from the +# client +#[transient_disable] +# match_transient = yes +# set_transient = no +# +# Make the handling of transient notifications more strict by making them not +# be placed in history. +#[transient_history_ignore] +# match_transient = yes +# history_ignore = yes + +# fullscreen values +# show: show the notifications, regardless if there is a fullscreen window opened +# delay: displays the new notification, if there is no fullscreen window active +# If the notification is already drawn, it won't get undrawn. +# pushback: same as delay, but when switching into fullscreen, the notification will get +# withdrawn from screen again and will get delayed like a new notification +#[fullscreen_delay_everything] +# fullscreen = delay +#[fullscreen_show_critical] +# msg_urgency = critical +# fullscreen = show + +#[espeak] +# summary = "*" +# script = dunst_espeak.sh + +#[script-test] +# summary = "*script*" +# script = dunst_test.sh + +#[ignore] +# # This notification will not be displayed +# summary = "foobar" +# format = "" + +#[history-ignore] +# # This notification will not be saved in history +# summary = "foobar" +# history_ignore = yes + +#[skip-display] +# # This notification will not be displayed, but will be included in the history +# summary = "foobar" +# skip_display = yes + +#[signed_on] +# appname = Pidgin +# summary = "*signed on*" +# urgency = low +# +#[signed_off] +# appname = Pidgin +# summary = *signed off* +# urgency = low +# +#[says] +# appname = Pidgin +# summary = *says* +# urgency = critical +# +#[twitter] +# appname = Pidgin +# summary = *twitter.com* +# urgency = normal +# +#[stack-volumes] +# appname = "some_volume_notifiers" +# set_stack_tag = "volume" +# +# vim: ft=cfg diff --git a/linux/fcitx5/conf/cached_layouts b/linux/fcitx5/conf/cached_layouts new file mode 100644 index 0000000..0063704 --- /dev/null +++ b/linux/fcitx5/conf/cached_layouts @@ -0,0 +1,3465 @@ +[keyboard-trans] +Description="Keyboard - International Phonetic Alphabet" +Language= +Label=trans + +[keyboard-apl] +Description="Keyboard - APL" +Language=en +Label=apl + +[keyboard-apl-dyalog] +Description="Keyboard - APL - APL symbols (Dyalog APL)" +Language=en +Label=apl + +[keyboard-apl-sax] +Description="Keyboard - APL - APL symbols (SAX, Sharp APL for Unix)" +Language=en +Label=apl + +[keyboard-apl-unified] +Description="Keyboard - APL - APL symbols (unified)" +Language=en +Label=apl + +[keyboard-apl-apl2] +Description="Keyboard - APL - APL symbols (IBM APL2)" +Language=en +Label=apl + +[keyboard-apl-aplplusII] +Description="Keyboard - APL - APL symbols (Manugistics APL*PLUS II)" +Language=en +Label=apl + +[keyboard-apl-aplx] +Description="Keyboard - APL - APL symbols (APLX unified)" +Language=en +Label=apl + +[keyboard-jv] +Description="Keyboard - Indonesian (Javanese)" +Language= +Label=jv + +[keyboard-dk] +Description="Keyboard - Danish" +Language=da +Label=dk + +[keyboard-dk-nodeadkeys] +Description="Keyboard - Danish - Danish (no dead keys)" +Language=da +Label=dk + +[keyboard-dk-winkeys] +Description="Keyboard - Danish - Danish (Windows)" +Language=da +Label=dk + +[keyboard-dk-mac] +Description="Keyboard - Danish - Danish (Macintosh)" +Language=da +Label=dk + +[keyboard-dk-mac_nodeadkeys] +Description="Keyboard - Danish - Danish (Macintosh, no dead keys)" +Language=da +Label=dk + +[keyboard-dk-dvorak] +Description="Keyboard - Danish - Danish (Dvorak)" +Language=da +Label=dk + +[keyboard-dk-sun_type6] +Description="Keyboard - Danish - Danish (Sun Type 6/7)" +Language=da +Label=dk + +[keyboard-kg] +Description="Keyboard - Kyrgyz" +Language=ky +Label=kg + +[keyboard-kg-phonetic] +Description="Keyboard - Kyrgyz - Kyrgyz (phonetic)" +Language=ky +Label=kg + +[keyboard-hu] +Description="Keyboard - Hungarian" +Language=hu +Label=hu + +[keyboard-hu-standard] +Description="Keyboard - Hungarian - Hungarian (standard)" +Language=hu +Label=hu + +[keyboard-hu-nodeadkeys] +Description="Keyboard - Hungarian - Hungarian (no dead keys)" +Language=hu +Label=hu + +[keyboard-hu-qwerty] +Description="Keyboard - Hungarian - Hungarian (QWERTY)" +Language=hu +Label=hu + +[keyboard-hu-101_qwertz_comma_dead] +Description="Keyboard - Hungarian - Hungarian (QWERTZ, 101-key, comma, dead keys)" +Language=hu +Label=hu + +[keyboard-hu-101_qwertz_comma_nodead] +Description="Keyboard - Hungarian - Hungarian (QWERTZ, 101-key, comma, no dead keys)" +Language=hu +Label=hu + +[keyboard-hu-101_qwertz_dot_dead] +Description="Keyboard - Hungarian - Hungarian (QWERTZ, 101-key, dot, dead keys)" +Language=hu +Label=hu + +[keyboard-hu-101_qwertz_dot_nodead] +Description="Keyboard - Hungarian - Hungarian (QWERTZ, 101-key, dot, no dead keys)" +Language=hu +Label=hu + +[keyboard-hu-101_qwerty_comma_dead] +Description="Keyboard - Hungarian - Hungarian (QWERTY, 101-key, comma, dead keys)" +Language=hu +Label=hu + +[keyboard-hu-101_qwerty_comma_nodead] +Description="Keyboard - Hungarian - Hungarian (QWERTY, 101-key, comma, no dead keys)" +Language=hu +Label=hu + +[keyboard-hu-101_qwerty_dot_dead] +Description="Keyboard - Hungarian - Hungarian (QWERTY, 101-key, dot, dead keys)" +Language=hu +Label=hu + +[keyboard-hu-101_qwerty_dot_nodead] +Description="Keyboard - Hungarian - Hungarian (QWERTY, 101-key, dot, no dead keys)" +Language=hu +Label=hu + +[keyboard-hu-102_qwertz_comma_dead] +Description="Keyboard - Hungarian - Hungarian (QWERTZ, 102-key, comma, dead keys)" +Language=hu +Label=hu + +[keyboard-hu-102_qwertz_comma_nodead] +Description="Keyboard - Hungarian - Hungarian (QWERTZ, 102-key, comma, no dead keys)" +Language=hu +Label=hu + +[keyboard-hu-102_qwertz_dot_dead] +Description="Keyboard - Hungarian - Hungarian (QWERTZ, 102-key, dot, dead keys)" +Language=hu +Label=hu + +[keyboard-hu-102_qwertz_dot_nodead] +Description="Keyboard - Hungarian - Hungarian (QWERTZ, 102-key, dot, no dead keys)" +Language=hu +Label=hu + +[keyboard-hu-102_qwerty_comma_dead] +Description="Keyboard - Hungarian - Hungarian (QWERTY, 102-key, comma, dead keys)" +Language=hu +Label=hu + +[keyboard-hu-102_qwerty_comma_nodead] +Description="Keyboard - Hungarian - Hungarian (QWERTY, 102-key, comma, no dead keys)" +Language=hu +Label=hu + +[keyboard-hu-102_qwerty_dot_dead] +Description="Keyboard - Hungarian - Hungarian (QWERTY, 102-key, dot, dead keys)" +Language=hu +Label=hu + +[keyboard-hu-102_qwerty_dot_nodead] +Description="Keyboard - Hungarian - Hungarian (QWERTY, 102-key, dot, no dead keys)" +Language=hu +Label=hu + +[keyboard-hu-oldhun] +Description="Keyboard - Hungarian - Old Hungarian" +Language=hu +Label=hu + +[keyboard-hu-ohu_lig] +Description="Keyboard - Hungarian - Old Hungarian (for ligatures)" +Language=hu +Label=hu + +[keyboard-gn] +Description="Keyboard - French (Guinea)" +Language=fr +Label=gn + +[keyboard-gh] +Description="Keyboard - English (Ghana)" +Language=en +Label=gh + +[keyboard-gh-generic] +Description="Keyboard - English (Ghana) - English (Ghana, multilingual)" +Language=en +Label=gh + +[keyboard-gh-akan] +Description="Keyboard - English (Ghana) - Akan" +Language=ak +Label=gh + +[keyboard-gh-ewe] +Description="Keyboard - English (Ghana) - Ewe" +Language=ee +Label=gh + +[keyboard-gh-fula] +Description="Keyboard - English (Ghana) - Fula" +Language=ff +Label=gh + +[keyboard-gh-ga] +Description="Keyboard - English (Ghana) - Ga" +Language=gaa +Label=gh + +[keyboard-gh-hausa] +Description="Keyboard - English (Ghana) - Hausa (Ghana)" +Language=ha +Label=gh + +[keyboard-gh-avn] +Description="Keyboard - English (Ghana) - Avatime" +Language=avn +Label=gh + +[keyboard-gh-gillbt] +Description="Keyboard - English (Ghana) - English (Ghana, GILLBT)" +Language=en +Label=gh + +[keyboard-za] +Description="Keyboard - English (South Africa)" +Language=en +Label=za + +[keyboard-fo] +Description="Keyboard - Faroese" +Language=fo +Label=fo + +[keyboard-fo-nodeadkeys] +Description="Keyboard - Faroese - Faroese (no dead keys)" +Language=fo +Label=fo + +[keyboard-cn] +Description="Keyboard - Chinese" +Language=zh +Label=cn + +[keyboard-cn-mon_trad] +Description="Keyboard - Chinese - Mongolian (Bichig)" +Language=mvf +Label=cn + +[keyboard-cn-mon_trad_todo] +Description="Keyboard - Chinese - Mongolian (Todo)" +Language=mvf +Label=cn + +[keyboard-cn-mon_trad_xibe] +Description="Keyboard - Chinese - Mongolian (Xibe)" +Language=sjo +Label=cn + +[keyboard-cn-mon_trad_manchu] +Description="Keyboard - Chinese - Mongolian (Manchu)" +Language=mnc +Label=cn + +[keyboard-cn-mon_trad_galik] +Description="Keyboard - Chinese - Mongolian (Galik)" +Language=mvf +Label=cn + +[keyboard-cn-mon_todo_galik] +Description="Keyboard - Chinese - Mongolian (Todo Galik)" +Language=mvf +Label=cn + +[keyboard-cn-mon_manchu_galik] +Description="Keyboard - Chinese - Mongolian (Manchu Galik)" +Language=mnc +Label=cn + +[keyboard-cn-tib] +Description="Keyboard - Chinese - Tibetan" +Language=bo +Label=cn + +[keyboard-cn-tib_asciinum] +Description="Keyboard - Chinese - Tibetan (with ASCII numerals)" +Language=bo +Label=cn + +[keyboard-cn-ug] +Description="Keyboard - Chinese - Uyghur" +Language=ug +Label=cn + +[keyboard-cn-altgr-pinyin] +Description="Keyboard - Chinese - Hanyu Pinyin (with AltGr dead keys)" +Language=zh +Label=cn + +[keyboard-rs] +Description="Keyboard - Serbian" +Language=sr +Label=rs + +[keyboard-rs-yz] +Description="Keyboard - Serbian - Serbian (Cyrillic, ZE and ZHE swapped)" +Language=sr +Label=rs + +[keyboard-rs-latin] +Description="Keyboard - Serbian - Serbian (Latin)" +Language=sr +Label=rs + +[keyboard-rs-latinunicode] +Description="Keyboard - Serbian - Serbian (Latin, Unicode)" +Language=sr +Label=rs + +[keyboard-rs-latinyz] +Description="Keyboard - Serbian - Serbian (Latin, QWERTY)" +Language=sr +Label=rs + +[keyboard-rs-latinunicodeyz] +Description="Keyboard - Serbian - Serbian (Latin, Unicode, QWERTY)" +Language=sr +Label=rs + +[keyboard-rs-alternatequotes] +Description="Keyboard - Serbian - Serbian (Cyrillic, with guillemets)" +Language=sr +Label=rs + +[keyboard-rs-latinalternatequotes] +Description="Keyboard - Serbian - Serbian (Latin, with guillemets)" +Language=sr +Label=rs + +[keyboard-rs-rue] +Description="Keyboard - Serbian - Pannonian Rusyn" +Language=rue +Label=rs + +[keyboard-rs-combiningkeys] +Description="Keyboard - Serbian - Serbian (combining accents instead of dead keys)" +Language=sr +Label=rs + +[keyboard-iq] +Description="Keyboard - Iraqi" +Language=ar +Label=iq + +[keyboard-iq-ku] +Description="Keyboard - Iraqi - Kurdish (Iraq, Latin Q)" +Language=ku +Label=iq + +[keyboard-iq-ku_f] +Description="Keyboard - Iraqi - Kurdish (Iraq, F)" +Language=ku +Label=iq + +[keyboard-iq-ku_alt] +Description="Keyboard - Iraqi - Kurdish (Iraq, Latin Alt-Q)" +Language=ku +Label=iq + +[keyboard-iq-ku_ara] +Description="Keyboard - Iraqi - Kurdish (Iraq, Arabic-Latin)" +Language=ku +Label=iq + +[keyboard-ee] +Description="Keyboard - Estonian" +Language=et +Label=ee + +[keyboard-ee-nodeadkeys] +Description="Keyboard - Estonian - Estonian (no dead keys)" +Language=et +Label=ee + +[keyboard-ee-dvorak] +Description="Keyboard - Estonian - Estonian (Dvorak)" +Language=et +Label=ee + +[keyboard-ee-us] +Description="Keyboard - Estonian - Estonian (US)" +Language=et +Label=ee + +[keyboard-ee-sun_type6] +Description="Keyboard - Estonian - Estonian (Sun Type 6/7)" +Language=et +Label=ee + +[keyboard-gr] +Description="Keyboard - Greek" +Language=el +Label=gr + +[keyboard-gr-simple] +Description="Keyboard - Greek - Greek (simple)" +Language=el +Label=gr + +[keyboard-gr-extended] +Description="Keyboard - Greek - Greek (extended)" +Language=el +Label=gr + +[keyboard-gr-nodeadkeys] +Description="Keyboard - Greek - Greek (no dead keys)" +Language=el +Label=gr + +[keyboard-gr-polytonic] +Description="Keyboard - Greek - Greek (polytonic)" +Language=el +Label=gr + +[keyboard-gr-sun_type6] +Description="Keyboard - Greek - Greek (Sun Type 6/7)" +Language=el +Label=gr + +[keyboard-gr-colemak] +Description="Keyboard - Greek - Greek (Colemak)" +Language=el +Label=gr + +[keyboard-ir] +Description="Keyboard - Persian" +Language=fa +Label=ir + +[keyboard-ir-pes_keypad] +Description="Keyboard - Persian - Persian (with Persian keypad)" +Language=fa +Label=ir + +[keyboard-ir-ku] +Description="Keyboard - Persian - Kurdish (Iran, Latin Q)" +Language=ku +Label=ir + +[keyboard-ir-ku_f] +Description="Keyboard - Persian - Kurdish (Iran, F)" +Language=ku +Label=ir + +[keyboard-ir-ku_alt] +Description="Keyboard - Persian - Kurdish (Iran, Latin Alt-Q)" +Language=ku +Label=ir + +[keyboard-ir-ku_ara] +Description="Keyboard - Persian - Kurdish (Iran, Arabic-Latin)" +Language=ku +Label=ir + +[keyboard-ir-ave] +Description="Keyboard - Persian - Avestan" +Language=ae +Label=ir + +[keyboard-bt] +Description="Keyboard - Dzongkha" +Language=dz +Label=bt + +[keyboard-cz] +Description="Keyboard - Czech" +Language=cs +Label=cz + +[keyboard-cz-bksl] +Description="Keyboard - Czech - key)" +Language=cs +Label=cz + +[keyboard-cz-qwerty] +Description="Keyboard - Czech - Czech (QWERTY)" +Language=cs +Label=cz + +[keyboard-cz-qwerty_bksl] +Description="Keyboard - Czech - Czech (QWERTY, extended backslash)" +Language=cs +Label=cz + +[keyboard-cz-qwerty-mac] +Description="Keyboard - Czech - Czech (QWERTY, Macintosh)" +Language=cs +Label=cz + +[keyboard-cz-ucw] +Description="Keyboard - Czech - Czech (UCW, only accented letters)" +Language=cs +Label=cz + +[keyboard-cz-dvorak-ucw] +Description="Keyboard - Czech - Czech (US, Dvorak, UCW support)" +Language=cs +Label=cz + +[keyboard-cz-rus] +Description="Keyboard - Czech - Russian (Czech, phonetic)" +Language=ru +Label=cz + +[keyboard-cz-sun_type6] +Description="Keyboard - Czech - Czech (Sun Type 6/7)" +Language=cs +Label=cz + +[keyboard-cz-prog] +Description="Keyboard - Czech - Czech (programming)" +Language=cs +Label=cz + +[keyboard-cz-typo] +Description="Keyboard - Czech - Czech (typographic)" +Language=cs +Label=cz + +[keyboard-cz-coder] +Description="Keyboard - Czech - Czech (coder)" +Language=cs +Label=cz + +[keyboard-cz-prog_typo] +Description="Keyboard - Czech - Czech (programming, typographic)" +Language=cs +Label=cz + +[keyboard-sy] +Description="Keyboard - Arabic (Syria)" +Language=syr +Label=sy + +[keyboard-sy-syc] +Description="Keyboard - Arabic (Syria) - Syriac" +Language=syr +Label=sy + +[keyboard-sy-syc_phonetic] +Description="Keyboard - Arabic (Syria) - Syriac (phonetic)" +Language=syr +Label=sy + +[keyboard-sy-ku] +Description="Keyboard - Arabic (Syria) - Kurdish (Syria, Latin Q)" +Language=ku +Label=sy + +[keyboard-sy-ku_f] +Description="Keyboard - Arabic (Syria) - Kurdish (Syria, F)" +Language=ku +Label=sy + +[keyboard-sy-ku_alt] +Description="Keyboard - Arabic (Syria) - Kurdish (Syria, Latin Alt-Q)" +Language=ku +Label=sy + +[keyboard-bd] +Description="Keyboard - Bangla" +Language=bn +Label=bd + +[keyboard-bd-probhat] +Description="Keyboard - Bangla - Bangla (Probhat)" +Language=bn +Label=bd + +[keyboard-in] +Description="Keyboard - Indian" +Language= +Label=in + +[keyboard-in-ben] +Description="Keyboard - Indian - Bangla (India)" +Language=bn +Label=in + +[keyboard-in-ben_probhat] +Description="Keyboard - Indian - Bangla (India, Probhat)" +Language=bn +Label=in + +[keyboard-in-ben_baishakhi] +Description="Keyboard - Indian - Bangla (India, Baishakhi)" +Language=bn +Label=in + +[keyboard-in-ben_bornona] +Description="Keyboard - Indian - Bangla (India, Bornona)" +Language=bn +Label=in + +[keyboard-in-ben_gitanjali] +Description="Keyboard - Indian - Bangla (India, Gitanjali)" +Language=bn +Label=in + +[keyboard-in-ben_inscript] +Description="Keyboard - Indian - Bangla (India, Baishakhi Inscript)" +Language=bn +Label=in + +[keyboard-in-eeyek] +Description="Keyboard - Indian - Manipuri (Eeyek)" +Language=mni +Label=in + +[keyboard-in-guj] +Description="Keyboard - Indian - Gujarati" +Language=gu +Label=in + +[keyboard-in-guru] +Description="Keyboard - Indian - Punjabi (Gurmukhi)" +Language=pa +Label=in + +[keyboard-in-jhelum] +Description="Keyboard - Indian - Punjabi (Gurmukhi Jhelum)" +Language=pa +Label=in + +[keyboard-in-kan] +Description="Keyboard - Indian - Kannada" +Language=kn +Label=in + +[keyboard-in-kan-kagapa] +Description="Keyboard - Indian - Kannada (KaGaPa, phonetic)" +Language=kn +Label=in + +[keyboard-in-mal] +Description="Keyboard - Indian - Malayalam" +Language=ml +Label=in + +[keyboard-in-mal_lalitha] +Description="Keyboard - Indian - Malayalam (Lalitha)" +Language=ml +Label=in + +[keyboard-in-mal_enhanced] +Description="Keyboard - Indian - Malayalam (enhanced Inscript, with rupee)" +Language=ml +Label=in + +[keyboard-in-ori] +Description="Keyboard - Indian - Oriya" +Language=or +Label=in + +[keyboard-in-olck] +Description="Keyboard - Indian - Ol Chiki" +Language=sat +Label=in + +[keyboard-in-tam_tamilnet] +Description="Keyboard - Indian - Tamil (TamilNet '99)" +Language=ta +Label=in + +[keyboard-in-tam_tamilnet_with_tam_nums] +Description="Keyboard - Indian - Tamil (TamilNet '99 with Tamil numerals)" +Language=ta +Label=in + +[keyboard-in-tam_tamilnet_TAB] +Description="Keyboard - Indian - Tamil (TamilNet '99, TAB encoding)" +Language=ta +Label=in + +[keyboard-in-tam_tamilnet_TSCII] +Description="Keyboard - Indian - Tamil (TamilNet '99, TSCII encoding)" +Language=ta +Label=in + +[keyboard-in-tam] +Description="Keyboard - Indian - Tamil (Inscript)" +Language=ta +Label=in + +[keyboard-in-tel] +Description="Keyboard - Indian - Telugu" +Language=te +Label=in + +[keyboard-in-tel-kagapa] +Description="Keyboard - Indian - Telugu (KaGaPa, phonetic)" +Language=te +Label=in + +[keyboard-in-tel-sarala] +Description="Keyboard - Indian - Telugu (Sarala)" +Language=te +Label=in + +[keyboard-in-urd-phonetic] +Description="Keyboard - Indian - Urdu (phonetic)" +Language=ur +Label=in + +[keyboard-in-urd-phonetic3] +Description="Keyboard - Indian - Urdu (alt. phonetic)" +Language=ur +Label=in + +[keyboard-in-urd-winkeys] +Description="Keyboard - Indian - Urdu (Windows)" +Language=ur +Label=in + +[keyboard-in-bolnagri] +Description="Keyboard - Indian - Hindi (Bolnagri)" +Language=hi +Label=in + +[keyboard-in-hin-wx] +Description="Keyboard - Indian - Hindi (Wx)" +Language=hi +Label=in + +[keyboard-in-hin-kagapa] +Description="Keyboard - Indian - Hindi (KaGaPa, phonetic)" +Language=hi +Label=in + +[keyboard-in-san-kagapa] +Description="Keyboard - Indian - Sanskrit (KaGaPa, phonetic)" +Language=sa +Label=in + +[keyboard-in-mar-kagapa] +Description="Keyboard - Indian - Marathi (KaGaPa, phonetic)" +Language=mr +Label=in + +[keyboard-in-eng] +Description="Keyboard - Indian - English (India, with rupee)" +Language=en +Label=in + +[keyboard-in-iipa] +Description="Keyboard - Indian - Indic IPA (IIPA)" +Language=en +Label=in + +[keyboard-in-marathi] +Description="Keyboard - Indian - मराठी इन्स्क्रिप्ट" +Language=en +Label=in + +[keyboard-in-modi-kagapa] +Description="Keyboard - Indian - Modi (KaGaPa phonetic)" +Language=mr +Label=in + +[keyboard-lk] +Description="Keyboard - Sinhala (phonetic)" +Language=si +Label=lk + +[keyboard-lk-tam_unicode] +Description="Keyboard - Sinhala (phonetic) - Tamil (Sri Lanka, TamilNet '99)" +Language=ta +Label=lk + +[keyboard-lk-tam_TAB] +Description="Keyboard - Sinhala (phonetic) - Tamil (Sri Lanka, TamilNet '99, TAB encoding)" +Language=ta +Label=lk + +[keyboard-lk-us] +Description="Keyboard - Sinhala (phonetic) - Sinhala (US)" +Language=si +Label=lk + +[keyboard-tz] +Description="Keyboard - Swahili (Tanzania)" +Language=sw +Label=tz + +[keyboard-be] +Description="Keyboard - Belgian" +Language=de +Label=be + +[keyboard-be-oss] +Description="Keyboard - Belgian - Belgian (alt.)" +Language=de +Label=be + +[keyboard-be-oss_latin9] +Description="Keyboard - Belgian - Belgian (Latin-9 only, alt.)" +Language=de +Label=be + +[keyboard-be-oss_sundeadkeys] +Description="Keyboard - Belgian - Belgian (Sun dead keys, alt.)" +Language=de +Label=be + +[keyboard-be-iso-alternate] +Description="Keyboard - Belgian - Belgian (ISO, alt.)" +Language=de +Label=be + +[keyboard-be-nodeadkeys] +Description="Keyboard - Belgian - Belgian (no dead keys)" +Language=de +Label=be + +[keyboard-be-sundeadkeys] +Description="Keyboard - Belgian - Belgian (Sun dead keys)" +Language=de +Label=be + +[keyboard-be-wang] +Description="Keyboard - Belgian - Belgian (Wang 724 AZERTY)" +Language=de +Label=be + +[keyboard-be-sun_type6] +Description="Keyboard - Belgian - Belgian (Sun Type 6/7)" +Language=de +Label=be + +[keyboard-is] +Description="Keyboard - Icelandic" +Language=is +Label=is + +[keyboard-is-Sundeadkeys] +Description="Keyboard - Icelandic - Icelandic (Sun dead keys)" +Language=is +Label=is + +[keyboard-is-nodeadkeys] +Description="Keyboard - Icelandic - Icelandic (no dead keys)" +Language=is +Label=is + +[keyboard-is-mac_legacy] +Description="Keyboard - Icelandic - Icelandic (Macintosh, legacy)" +Language=is +Label=is + +[keyboard-is-mac] +Description="Keyboard - Icelandic - Icelandic (Macintosh)" +Language=is +Label=is + +[keyboard-is-dvorak] +Description="Keyboard - Icelandic - Icelandic (Dvorak)" +Language=is +Label=is + +[keyboard-fr] +Description="Keyboard - French" +Language=fr +Label=fr + +[keyboard-fr-nodeadkeys] +Description="Keyboard - French - French (no dead keys)" +Language=fr +Label=fr + +[keyboard-fr-sundeadkeys] +Description="Keyboard - French - French (Sun dead keys)" +Language=fr +Label=fr + +[keyboard-fr-oss] +Description="Keyboard - French - French (alt.)" +Language=fr +Label=fr + +[keyboard-fr-oss_latin9] +Description="Keyboard - French - French (alt., Latin-9 only)" +Language=fr +Label=fr + +[keyboard-fr-oss_nodeadkeys] +Description="Keyboard - French - French (alt., no dead keys)" +Language=fr +Label=fr + +[keyboard-fr-oss_sundeadkeys] +Description="Keyboard - French - French (alt., Sun dead keys)" +Language=fr +Label=fr + +[keyboard-fr-latin9] +Description="Keyboard - French - French (legacy, alt.)" +Language=fr +Label=fr + +[keyboard-fr-latin9_nodeadkeys] +Description="Keyboard - French - French (legacy, alt., no dead keys)" +Language=fr +Label=fr + +[keyboard-fr-latin9_sundeadkeys] +Description="Keyboard - French - French (legacy, alt., Sun dead keys)" +Language=fr +Label=fr + +[keyboard-fr-bepo] +Description="Keyboard - French - French (BEPO)" +Language=fr +Label=fr + +[keyboard-fr-bepo_latin9] +Description="Keyboard - French - French (BEPO, Latin-9 only)" +Language=fr +Label=fr + +[keyboard-fr-bepo_afnor] +Description="Keyboard - French - French (BEPO, AFNOR)" +Language=fr +Label=fr + +[keyboard-fr-dvorak] +Description="Keyboard - French - French (Dvorak)" +Language=fr +Label=fr + +[keyboard-fr-mac] +Description="Keyboard - French - French (Macintosh)" +Language=fr +Label=fr + +[keyboard-fr-azerty] +Description="Keyboard - French - French (AZERTY)" +Language=fr +Label=fr + +[keyboard-fr-afnor] +Description="Keyboard - French - French (AZERTY, AFNOR)" +Language=fr +Label=fr + +[keyboard-fr-bre] +Description="Keyboard - French - French (Breton)" +Language=fr +Label=fr + +[keyboard-fr-oci] +Description="Keyboard - French - Occitan" +Language=oc +Label=fr + +[keyboard-fr-geo] +Description="Keyboard - French - Georgian (France, AZERTY Tskapo)" +Language=ka +Label=fr + +[keyboard-fr-us] +Description="Keyboard - French - French (US)" +Language=fr +Label=fr + +[keyboard-fr-sun_type6] +Description="Keyboard - French - French (Sun Type 6/7)" +Language=fr +Label=fr + +[keyboard-fr-us-alt] +Description="Keyboard - French - French (US with dead keys, alt.)" +Language=fr +Label=fr + +[keyboard-fr-us-azerty] +Description="Keyboard - French - French (US, AZERTY)" +Language=fr +Label=fr + +[keyboard-id] +Description="Keyboard - Indonesian (Arab Melayu, phonetic)" +Language=id +Label=id + +[keyboard-id-phoneticx] +Description="Keyboard - Indonesian (Arab Melayu, phonetic) - Indonesian (Arab Melayu, extended phonetic)" +Language=id +Label=id + +[keyboard-si] +Description="Keyboard - Slovenian" +Language=sl +Label=si + +[keyboard-si-alternatequotes] +Description="Keyboard - Slovenian - Slovenian (with guillemets)" +Language=sl +Label=si + +[keyboard-si-us] +Description="Keyboard - Slovenian - Slovenian (US)" +Language=sl +Label=si + +[keyboard-uz] +Description="Keyboard - Uzbek" +Language=uz +Label=uz + +[keyboard-uz-latin] +Description="Keyboard - Uzbek - Uzbek (Latin)" +Language=uz +Label=uz + +[keyboard-nl] +Description="Keyboard - Dutch" +Language=nl +Label=nl + +[keyboard-nl-sundeadkeys] +Description="Keyboard - Dutch - Dutch (Sun dead keys)" +Language=nl +Label=nl + +[keyboard-nl-mac] +Description="Keyboard - Dutch - Dutch (Macintosh)" +Language=nl +Label=nl + +[keyboard-nl-std] +Description="Keyboard - Dutch - Dutch (standard)" +Language=nl +Label=nl + +[keyboard-nl-sun_type6] +Description="Keyboard - Dutch - Dutch (Sun Type 6/7)" +Language=nl +Label=nl + +[keyboard-jp] +Description="Keyboard - Japanese" +Language=ja +Label=jp + +[keyboard-jp-kana] +Description="Keyboard - Japanese - Japanese (Kana)" +Language=ja +Label=jp + +[keyboard-jp-kana86] +Description="Keyboard - Japanese - Japanese (Kana 86)" +Language=ja +Label=jp + +[keyboard-jp-OADG109A] +Description="Keyboard - Japanese - Japanese (OADG 109A)" +Language=ja +Label=jp + +[keyboard-jp-mac] +Description="Keyboard - Japanese - Japanese (Macintosh)" +Language=ja +Label=jp + +[keyboard-jp-dvorak] +Description="Keyboard - Japanese - Japanese (Dvorak)" +Language=ja +Label=jp + +[keyboard-jp-sun_type6] +Description="Keyboard - Japanese - Japanese (Sun Type 6)" +Language=ja +Label=jp + +[keyboard-jp-sun_type7] +Description="Keyboard - Japanese - Japanese (Sun Type 7, PC-compatible)" +Language=ja +Label=jp + +[keyboard-jp-sun_type7_suncompat] +Description="Keyboard - Japanese - Japanese (Sun Type 7, Sun-compatible)" +Language=ja +Label=jp + +[keyboard-cm] +Description="Keyboard - English (Cameroon)" +Language=en +Label=cm + +[keyboard-cm-french] +Description="Keyboard - English (Cameroon) - French (Cameroon)" +Language=fr +Label=cm + +[keyboard-cm-qwerty] +Description="Keyboard - English (Cameroon) - Cameroon Multilingual (QWERTY, intl.)" +Language=en +Label=cm + +[keyboard-cm-azerty] +Description="Keyboard - English (Cameroon) - Cameroon (AZERTY, intl.)" +Language=fr +Label=cm + +[keyboard-cm-dvorak] +Description="Keyboard - English (Cameroon) - Cameroon (Dvorak, intl.)" +Language=en +Label=cm + +[keyboard-cm-mmuock] +Description="Keyboard - English (Cameroon) - Mmuock" +Language=en +Label=cm + +[keyboard-pl] +Description="Keyboard - Polish" +Language=pl +Label=pl + +[keyboard-pl-legacy] +Description="Keyboard - Polish - Polish (legacy)" +Language=pl +Label=pl + +[keyboard-pl-qwertz] +Description="Keyboard - Polish - Polish (QWERTZ)" +Language=pl +Label=pl + +[keyboard-pl-dvorak] +Description="Keyboard - Polish - Polish (Dvorak)" +Language=pl +Label=pl + +[keyboard-pl-dvorak_quotes] +Description="Keyboard - Polish - Polish (Dvorak, with Polish quotes on quotemark key)" +Language=pl +Label=pl + +[keyboard-pl-dvorak_altquotes] +Description="Keyboard - Polish - Polish (Dvorak, with Polish quotes on key 1)" +Language=pl +Label=pl + +[keyboard-pl-csb] +Description="Keyboard - Polish - Kashubian" +Language=csb +Label=pl + +[keyboard-pl-szl] +Description="Keyboard - Polish - Silesian" +Language=szl +Label=pl + +[keyboard-pl-ru_phonetic_dvorak] +Description="Keyboard - Polish - Russian (Poland, phonetic Dvorak)" +Language=ru +Label=pl + +[keyboard-pl-dvp] +Description="Keyboard - Polish - Polish (programmer Dvorak)" +Language=pl +Label=pl + +[keyboard-pl-intl] +Description="Keyboard - Polish - Polish (intl., with dead keys)" +Language=pl +Label=pl + +[keyboard-pl-colemak] +Description="Keyboard - Polish - Polish (Colemak)" +Language=pl +Label=pl + +[keyboard-pl-sun_type6] +Description="Keyboard - Polish - Polish (Sun Type 6/7)" +Language=pl +Label=pl + +[keyboard-pl-glagolica] +Description="Keyboard - Polish - Polish (Glagolica)" +Language=pl +Label=pl + +[keyboard-fi] +Description="Keyboard - Finnish" +Language=fi +Label=fi + +[keyboard-fi-winkeys] +Description="Keyboard - Finnish - Finnish (Windows)" +Language=fi +Label=fi + +[keyboard-fi-classic] +Description="Keyboard - Finnish - Finnish (classic)" +Language=fi +Label=fi + +[keyboard-fi-nodeadkeys] +Description="Keyboard - Finnish - Finnish (classic, no dead keys)" +Language=fi +Label=fi + +[keyboard-fi-smi] +Description="Keyboard - Finnish - Northern Saami (Finland)" +Language=se +Label=fi + +[keyboard-fi-mac] +Description="Keyboard - Finnish - Finnish (Macintosh)" +Language=fi +Label=fi + +[keyboard-fi-sun_type6] +Description="Keyboard - Finnish - Finnish (Sun Type 6/7)" +Language=fi +Label=fi + +[keyboard-fi-das] +Description="Keyboard - Finnish - Finnish (DAS)" +Language=fi +Label=fi + +[keyboard-fi-fidvorak] +Description="Keyboard - Finnish - Finnish (Dvorak)" +Language=fi +Label=fi + +[keyboard-sn] +Description="Keyboard - Wolof" +Language=wo +Label=sn + +[keyboard-tg] +Description="Keyboard - French (Togo)" +Language=fr +Label=tg + +[keyboard-az] +Description="Keyboard - Azerbaijani" +Language=az +Label=az + +[keyboard-az-cyrillic] +Description="Keyboard - Azerbaijani - Azerbaijani (Cyrillic)" +Language=az +Label=az + +[keyboard-at] +Description="Keyboard - German (Austria)" +Language=de +Label=at + +[keyboard-at-nodeadkeys] +Description="Keyboard - German (Austria) - German (Austria, no dead keys)" +Language=de +Label=at + +[keyboard-at-sundeadkeys] +Description="Keyboard - German (Austria) - German (Austria, Sun dead keys)" +Language=de +Label=at + +[keyboard-at-mac] +Description="Keyboard - German (Austria) - German (Austria, Macintosh)" +Language=de +Label=at + +[keyboard-cd] +Description="Keyboard - French (Democratic Republic of the Congo)" +Language=fr +Label=cd + +[keyboard-my] +Description="Keyboard - Malay (Jawi, Arabic Keyboard)" +Language=id +Label=my + +[keyboard-my-phonetic] +Description="Keyboard - Malay (Jawi, Arabic Keyboard) - Malay (Jawi, phonetic)" +Language=id +Label=my + +[keyboard-th] +Description="Keyboard - Thai" +Language=th +Label=th + +[keyboard-th-tis] +Description="Keyboard - Thai - Thai (TIS-820.2538)" +Language=th +Label=th + +[keyboard-th-pat] +Description="Keyboard - Thai - Thai (Pattachote)" +Language=th +Label=th + +[keyboard-it] +Description="Keyboard - Italian" +Language=it +Label=it + +[keyboard-it-nodeadkeys] +Description="Keyboard - Italian - Italian (no dead keys)" +Language=it +Label=it + +[keyboard-it-winkeys] +Description="Keyboard - Italian - Italian (Windows)" +Language=it +Label=it + +[keyboard-it-mac] +Description="Keyboard - Italian - Italian (Macintosh)" +Language=it +Label=it + +[keyboard-it-us] +Description="Keyboard - Italian - Italian (US)" +Language=it +Label=it + +[keyboard-it-geo] +Description="Keyboard - Italian - Georgian (Italy)" +Language=ka +Label=it + +[keyboard-it-ibm] +Description="Keyboard - Italian - Italian (IBM 142)" +Language=it +Label=it + +[keyboard-it-intl] +Description="Keyboard - Italian - Italian (intl., with dead keys)" +Language=it +Label=it + +[keyboard-it-scn] +Description="Keyboard - Italian - Sicilian" +Language=it +Label=it + +[keyboard-it-fur] +Description="Keyboard - Italian - Friulian (Italy)" +Language=fur +Label=it + +[keyboard-it-sun_type6] +Description="Keyboard - Italian - Italian (Sun Type 6/7)" +Language=it +Label=it + +[keyboard-it-lld] +Description="Keyboard - Italian - Italian (Ladin)" +Language=lld +Label=it + +[keyboard-hr] +Description="Keyboard - Croatian" +Language=hr +Label=hr + +[keyboard-hr-alternatequotes] +Description="Keyboard - Croatian - Croatian (with guillemets)" +Language=hr +Label=hr + +[keyboard-hr-unicode] +Description="Keyboard - Croatian - Croatian (with Croatian digraphs)" +Language=hr +Label=hr + +[keyboard-hr-unicodeus] +Description="Keyboard - Croatian - Croatian (US, with Croatian digraphs)" +Language=hr +Label=hr + +[keyboard-hr-us] +Description="Keyboard - Croatian - Croatian (US)" +Language=hr +Label=hr + +[keyboard-bg] +Description="Keyboard - Bulgarian" +Language=bg +Label=bg + +[keyboard-bg-phonetic] +Description="Keyboard - Bulgarian - Bulgarian (traditional phonetic)" +Language=bg +Label=bg + +[keyboard-bg-bas_phonetic] +Description="Keyboard - Bulgarian - Bulgarian (new phonetic)" +Language=bg +Label=bg + +[keyboard-ara] +Description="Keyboard - Arabic" +Language=ar +Label=ara + +[keyboard-ara-azerty] +Description="Keyboard - Arabic - Arabic (AZERTY)" +Language=ar +Label=ara + +[keyboard-ara-azerty_digits] +Description="Keyboard - Arabic - Arabic (AZERTY, Eastern Arabic numerals)" +Language=ar +Label=ara + +[keyboard-ara-digits] +Description="Keyboard - Arabic - Arabic (Eastern Arabic numerals)" +Language=ar +Label=ara + +[keyboard-ara-qwerty] +Description="Keyboard - Arabic - Arabic (QWERTY)" +Language=ar +Label=ara + +[keyboard-ara-qwerty_digits] +Description="Keyboard - Arabic - Arabic (QWERTY, Eastern Arabic numerals)" +Language=ar +Label=ara + +[keyboard-ara-buckwalter] +Description="Keyboard - Arabic - Arabic (Buckwalter)" +Language=ar +Label=ara + +[keyboard-ara-olpc] +Description="Keyboard - Arabic - Arabic (OLPC)" +Language=ar +Label=ara + +[keyboard-ara-mac] +Description="Keyboard - Arabic - Arabic (Macintosh)" +Language=ar +Label=ara + +[keyboard-ara-sun_type6] +Description="Keyboard - Arabic - Arabic (Sun Type 6/7)" +Language=ar +Label=ara + +[keyboard-ara-basic_ext] +Description="Keyboard - Arabic - Arabic (Arabic numerals, extensions in the 4th level)" +Language=ar +Label=ara + +[keyboard-ara-basic_ext_digits] +Description="Keyboard - Arabic - Arabic (Eastern Arabic numerals, extensions in the 4th level)" +Language=ar +Label=ara + +[keyboard-ara-uga] +Description="Keyboard - Arabic - Ugaritic instead of Arabic" +Language=ar +Label=ara + +[keyboard-dz] +Description="Keyboard - Kabylian (azerty layout, no dead keys)" +Language= +Label=dz + +[keyboard-dz-azerty-deadkeys] +Description="Keyboard - Kabylian (azerty layout, no dead keys) - Kabylian (azerty layout, with dead keys)" +Language=kab +Label=dz + +[keyboard-dz-qwerty-gb-deadkeys] +Description="Keyboard - Kabylian (azerty layout, no dead keys) - Kabylian (qwerty-gb layout, with dead keys)" +Language=kab +Label=dz + +[keyboard-dz-qwerty-us-deadkeys] +Description="Keyboard - Kabylian (azerty layout, no dead keys) - Kabylian (qwerty-us layout, with dead keys)" +Language=kab +Label=dz + +[keyboard-dz-ber] +Description="Keyboard - Kabylian (azerty layout, no dead keys) - Kabylian (Algeria, Tifinagh)" +Language=kab +Label=dz + +[keyboard-dz-ar] +Description="Keyboard - Kabylian (azerty layout, no dead keys) - Arabic (Algeria)" +Language=ar +Label=dz + +[keyboard-ua] +Description="Keyboard - Ukrainian" +Language=uk +Label=ua + +[keyboard-ua-phonetic] +Description="Keyboard - Ukrainian - Ukrainian (phonetic)" +Language=uk +Label=ua + +[keyboard-ua-typewriter] +Description="Keyboard - Ukrainian - Ukrainian (typewriter)" +Language=uk +Label=ua + +[keyboard-ua-winkeys] +Description="Keyboard - Ukrainian - Ukrainian (Windows)" +Language=uk +Label=ua + +[keyboard-ua-legacy] +Description="Keyboard - Ukrainian - Ukrainian (legacy)" +Language=uk +Label=ua + +[keyboard-ua-rstu] +Description="Keyboard - Ukrainian - Ukrainian (standard RSTU)" +Language=uk +Label=ua + +[keyboard-ua-rstu_ru] +Description="Keyboard - Ukrainian - Russian (Ukraine, standard RSTU)" +Language=uk +Label=ua + +[keyboard-ua-homophonic] +Description="Keyboard - Ukrainian - Ukrainian (homophonic)" +Language=uk +Label=ua + +[keyboard-ua-sun_type6] +Description="Keyboard - Ukrainian - Ukrainian (Sun Type 6/7)" +Language=uk +Label=ua + +[keyboard-ch] +Description="Keyboard - German (Switzerland)" +Language=de +Label=ch + +[keyboard-ch-legacy] +Description="Keyboard - German (Switzerland) - German (Switzerland, legacy)" +Language=de +Label=ch + +[keyboard-ch-de_nodeadkeys] +Description="Keyboard - German (Switzerland) - German (Switzerland, no dead keys)" +Language=de +Label=ch + +[keyboard-ch-de_sundeadkeys] +Description="Keyboard - German (Switzerland) - German (Switzerland, Sun dead keys)" +Language=de +Label=ch + +[keyboard-ch-fr] +Description="Keyboard - German (Switzerland) - French (Switzerland)" +Language=fr +Label=ch + +[keyboard-ch-fr_nodeadkeys] +Description="Keyboard - German (Switzerland) - French (Switzerland, no dead keys)" +Language=fr +Label=ch + +[keyboard-ch-fr_sundeadkeys] +Description="Keyboard - German (Switzerland) - French (Switzerland, Sun dead keys)" +Language=fr +Label=ch + +[keyboard-ch-fr_mac] +Description="Keyboard - German (Switzerland) - French (Switzerland, Macintosh)" +Language=fr +Label=ch + +[keyboard-ch-de_mac] +Description="Keyboard - German (Switzerland) - German (Switzerland, Macintosh)" +Language=de +Label=ch + +[keyboard-ch-sun_type6_de] +Description="Keyboard - German (Switzerland) - German (Switzerland, Sun Type 6/7)" +Language=de +Label=ch + +[keyboard-ch-sun_type6_fr] +Description="Keyboard - German (Switzerland) - French (Switzerland, Sun Type 6/7)" +Language=de +Label=ch + +[keyboard-au] +Description="Keyboard - English (Australian)" +Language=en +Label=au + +[keyboard-kz] +Description="Keyboard - Kazakh" +Language=kk +Label=kz + +[keyboard-kz-ruskaz] +Description="Keyboard - Kazakh - Russian (Kazakhstan, with Kazakh)" +Language=ru +Label=kz + +[keyboard-kz-kazrus] +Description="Keyboard - Kazakh - Kazakh (with Russian)" +Language=kk +Label=kz + +[keyboard-kz-ext] +Description="Keyboard - Kazakh - Kazakh (extended)" +Language=kk +Label=kz + +[keyboard-kz-latin] +Description="Keyboard - Kazakh - Kazakh (Latin)" +Language=kk +Label=kz + +[keyboard-ke] +Description="Keyboard - Swahili (Kenya)" +Language=sw +Label=ke + +[keyboard-ke-kik] +Description="Keyboard - Swahili (Kenya) - Kikuyu" +Language=ki +Label=ke + +[keyboard-br] +Description="Keyboard - Portuguese (Brazil)" +Language=pt +Label=br + +[keyboard-br-nodeadkeys] +Description="Keyboard - Portuguese (Brazil) - Portuguese (Brazil, no dead keys)" +Language=pt +Label=br + +[keyboard-br-dvorak] +Description="Keyboard - Portuguese (Brazil) - Portuguese (Brazil, Dvorak)" +Language=pt +Label=br + +[keyboard-br-nativo] +Description="Keyboard - Portuguese (Brazil) - Portuguese (Brazil, Nativo)" +Language=pt +Label=br + +[keyboard-br-nativo-us] +Description="Keyboard - Portuguese (Brazil) - Portuguese (Brazil, Nativo for US keyboards)" +Language=pt +Label=br + +[keyboard-br-nativo-epo] +Description="Keyboard - Portuguese (Brazil) - Esperanto (Brazil, Nativo)" +Language=eo +Label=br + +[keyboard-br-thinkpad] +Description="Keyboard - Portuguese (Brazil) - Portuguese (Brazil, IBM/Lenovo ThinkPad)" +Language=pt +Label=br + +[keyboard-br-sun_type6] +Description="Keyboard - Portuguese (Brazil) - Portuguese (Brazil, Sun Type 6/7)" +Language=pt +Label=br + +[keyboard-mm] +Description="Keyboard - Burmese" +Language=my +Label=mm + +[keyboard-mm-zawgyi] +Description="Keyboard - Burmese - Burmese Zawgyi" +Language=my +Label=mm + +[keyboard-pk] +Description="Keyboard - Urdu (Pakistan)" +Language=ur +Label=pk + +[keyboard-pk-urd-crulp] +Description="Keyboard - Urdu (Pakistan) - Urdu (Pakistan, CRULP)" +Language=ur +Label=pk + +[keyboard-pk-urd-nla] +Description="Keyboard - Urdu (Pakistan) - Urdu (Pakistan, NLA)" +Language=ur +Label=pk + +[keyboard-pk-ara] +Description="Keyboard - Urdu (Pakistan) - Arabic (Pakistan)" +Language=ar +Label=pk + +[keyboard-pk-snd] +Description="Keyboard - Urdu (Pakistan) - Sindhi" +Language=sd +Label=pk + +[keyboard-ca] +Description="Keyboard - French (Canada)" +Language=fr +Label=ca + +[keyboard-ca-fr-dvorak] +Description="Keyboard - French (Canada) - French (Canada, Dvorak)" +Language=fr +Label=ca + +[keyboard-ca-fr-legacy] +Description="Keyboard - French (Canada) - French (Canada, legacy)" +Language=fr +Label=ca + +[keyboard-ca-multix] +Description="Keyboard - French (Canada) - Canadian (intl.)" +Language=fr +Label=ca + +[keyboard-ca-multi] +Description="Keyboard - French (Canada) - Canadian (intl., 1st part)" +Language=fr +Label=ca + +[keyboard-ca-multi-2gr] +Description="Keyboard - French (Canada) - Canadian (intl., 2nd part)" +Language=fr +Label=ca + +[keyboard-ca-ike] +Description="Keyboard - French (Canada) - Inuktitut" +Language=iu +Label=ca + +[keyboard-ca-eng] +Description="Keyboard - French (Canada) - English (Canada)" +Language=en +Label=ca + +[keyboard-ca-kut] +Description="Keyboard - French (Canada) - Kutenai" +Language=fr +Label=ca + +[keyboard-ca-shs] +Description="Keyboard - French (Canada) - Secwepemctsin" +Language=fr +Label=ca + +[keyboard-ca-sun_type6] +Description="Keyboard - French (Canada) - Multilingual (Canada, Sun Type 6/7)" +Language=fr +Label=ca + +[keyboard-al] +Description="Keyboard - Albanian" +Language=sq +Label=al + +[keyboard-al-plisi] +Description="Keyboard - Albanian - Albanian (Plisi)" +Language=sq +Label=al + +[keyboard-al-veqilharxhi] +Description="Keyboard - Albanian - Albanian (Veqilharxhi)" +Language=sq +Label=al + +[keyboard-latam] +Description="Keyboard - Spanish (Latin American)" +Language=es +Label=latam + +[keyboard-latam-nodeadkeys] +Description="Keyboard - Spanish (Latin American) - Spanish (Latin American, no dead keys)" +Language=es +Label=latam + +[keyboard-latam-deadtilde] +Description="Keyboard - Spanish (Latin American) - Spanish (Latin American, dead tilde)" +Language=es +Label=latam + +[keyboard-latam-sundeadkeys] +Description="Keyboard - Spanish (Latin American) - Spanish (Latin American, Sun dead keys)" +Language=es +Label=latam + +[keyboard-latam-dvorak] +Description="Keyboard - Spanish (Latin American) - Spanish (Latin American, Dvorak)" +Language=es +Label=latam + +[keyboard-latam-colemak] +Description="Keyboard - Spanish (Latin American) - Spanish (Latin American, Colemak)" +Language=es +Label=latam + +[keyboard-latam-colemak-gaming] +Description="Keyboard - Spanish (Latin American) - Spanish (Latin American, Colemak for gaming)" +Language=es +Label=latam + +[keyboard-by] +Description="Keyboard - Belarusian" +Language=be +Label=by + +[keyboard-by-legacy] +Description="Keyboard - Belarusian - Belarusian (legacy)" +Language=be +Label=by + +[keyboard-by-latin] +Description="Keyboard - Belarusian - Belarusian (Latin)" +Language=be +Label=by + +[keyboard-by-ru] +Description="Keyboard - Belarusian - Russian (Belarus)" +Language=be +Label=by + +[keyboard-by-intl] +Description="Keyboard - Belarusian - Belarusian (intl.)" +Language=be +Label=by + +[keyboard-ba] +Description="Keyboard - Bosnian" +Language=bs +Label=ba + +[keyboard-ba-alternatequotes] +Description="Keyboard - Bosnian - Bosnian (with guillemets)" +Language=bs +Label=ba + +[keyboard-ba-unicode] +Description="Keyboard - Bosnian - Bosnian (with Bosnian digraphs)" +Language=bs +Label=ba + +[keyboard-ba-unicodeus] +Description="Keyboard - Bosnian - Bosnian (US, with Bosnian digraphs)" +Language=bs +Label=ba + +[keyboard-ba-us] +Description="Keyboard - Bosnian - Bosnian (US)" +Language=bs +Label=ba + +[keyboard-lt] +Description="Keyboard - Lithuanian" +Language=lt +Label=lt + +[keyboard-lt-std] +Description="Keyboard - Lithuanian - Lithuanian (standard)" +Language=lt +Label=lt + +[keyboard-lt-us] +Description="Keyboard - Lithuanian - Lithuanian (US)" +Language=lt +Label=lt + +[keyboard-lt-ibm] +Description="Keyboard - Lithuanian - Lithuanian (IBM LST 1205-92)" +Language=lt +Label=lt + +[keyboard-lt-lekp] +Description="Keyboard - Lithuanian - Lithuanian (LEKP)" +Language=lt +Label=lt + +[keyboard-lt-lekpa] +Description="Keyboard - Lithuanian - Lithuanian (LEKPa)" +Language=lt +Label=lt + +[keyboard-lt-sgs] +Description="Keyboard - Lithuanian - Samogitian" +Language=sgs +Label=lt + +[keyboard-lt-us_dvorak] +Description="Keyboard - Lithuanian - Lithuanian (Dvorak)" +Language=lt +Label=lt + +[keyboard-lt-sun_type6] +Description="Keyboard - Lithuanian - Lithuanian (Sun Type 6/7)" +Language=lt +Label=lt + +[keyboard-lv] +Description="Keyboard - Latvian" +Language=lv +Label=lv + +[keyboard-lv-apostrophe] +Description="Keyboard - Latvian - Latvian (apostrophe)" +Language=lv +Label=lv + +[keyboard-lv-tilde] +Description="Keyboard - Latvian - Latvian (tilde)" +Language=lv +Label=lv + +[keyboard-lv-fkey] +Description="Keyboard - Latvian - Latvian (F)" +Language=lv +Label=lv + +[keyboard-lv-modern] +Description="Keyboard - Latvian - Latvian (modern)" +Language=lv +Label=lv + +[keyboard-lv-ergonomic] +Description="Keyboard - Latvian - Latvian (ergonomic, ŪGJRMV)" +Language=lv +Label=lv + +[keyboard-lv-adapted] +Description="Keyboard - Latvian - Latvian (adapted)" +Language=lv +Label=lv + +[keyboard-lv-dvorak] +Description="Keyboard - Latvian - Latvian (Dvorak)" +Language=lv +Label=lv + +[keyboard-lv-ykeydvorak] +Description="Keyboard - Latvian - Latvian (Dvorak, with Y)" +Language=lv +Label=lv + +[keyboard-lv-minuskeydvorak] +Description="Keyboard - Latvian - Latvian (Dvorak, with minus)" +Language=lv +Label=lv + +[keyboard-lv-dvorakprogr] +Description="Keyboard - Latvian - Latvian (programmer Dvorak)" +Language=lv +Label=lv + +[keyboard-lv-ykeydvorakprogr] +Description="Keyboard - Latvian - Latvian (programmer Dvorak, with Y)" +Language=lv +Label=lv + +[keyboard-lv-minuskeydvorakprogr] +Description="Keyboard - Latvian - Latvian (programmer Dvorak, with minus)" +Language=lv +Label=lv + +[keyboard-lv-colemak] +Description="Keyboard - Latvian - Latvian (Colemak)" +Language=lv +Label=lv + +[keyboard-lv-apostrophecolemak] +Description="Keyboard - Latvian - Latvian (Colemak, with apostrophe)" +Language=lv +Label=lv + +[keyboard-lv-sun_type6] +Description="Keyboard - Latvian - Latvian (Sun Type 6/7)" +Language=lv +Label=lv + +[keyboard-il] +Description="Keyboard - Hebrew" +Language=he +Label=il + +[keyboard-il-lyx] +Description="Keyboard - Hebrew - Hebrew (lyx)" +Language=he +Label=il + +[keyboard-il-phonetic] +Description="Keyboard - Hebrew - Hebrew (phonetic)" +Language=he +Label=il + +[keyboard-il-biblical] +Description="Keyboard - Hebrew - Hebrew (Biblical, Tiro)" +Language=he +Label=il + +[keyboard-il-biblicalSIL] +Description="Keyboard - Hebrew - Hebrew (Biblical, SIL phonetic)" +Language=he +Label=il + +[keyboard-mao] +Description="Keyboard - Maori" +Language=mi +Label=mao + +[keyboard-am] +Description="Keyboard - Armenian" +Language=hy +Label=am + +[keyboard-am-phonetic] +Description="Keyboard - Armenian - Armenian (phonetic)" +Language=hy +Label=am + +[keyboard-am-phonetic-alt] +Description="Keyboard - Armenian - Armenian (alt. phonetic)" +Language=hy +Label=am + +[keyboard-am-eastern] +Description="Keyboard - Armenian - Armenian (eastern)" +Language=hy +Label=am + +[keyboard-am-western] +Description="Keyboard - Armenian - Armenian (western)" +Language=hy +Label=am + +[keyboard-am-eastern-alt] +Description="Keyboard - Armenian - Armenian (alt. eastern)" +Language=hy +Label=am + +[keyboard-am-olpc-phonetic] +Description="Keyboard - Armenian - Armenian (OLPC, phonetic)" +Language=hy +Label=am + +[keyboard-mk] +Description="Keyboard - Macedonian" +Language=mk +Label=mk + +[keyboard-mk-nodeadkeys] +Description="Keyboard - Macedonian - Macedonian (no dead keys)" +Language=mk +Label=mk + +[keyboard-la] +Description="Keyboard - Lao" +Language=lo +Label=la + +[keyboard-la-stea] +Description="Keyboard - Lao - Lao (STEA)" +Language=lo +Label=la + +[keyboard-mt] +Description="Keyboard - Maltese" +Language=mt +Label=mt + +[keyboard-mt-us] +Description="Keyboard - Maltese - Maltese (US)" +Language=mt +Label=mt + +[keyboard-mt-alt-us] +Description="Keyboard - Maltese - Maltese (US layout with AltGr overrides)" +Language=mt +Label=mt + +[keyboard-mt-alt-gb] +Description="Keyboard - Maltese - Maltese (UK, with AltGr overrides)" +Language=mt +Label=mt + +[keyboard-ie] +Description="Keyboard - Irish" +Language=en +Label=ie + +[keyboard-ie-CloGaelach] +Description="Keyboard - Irish - CloGaelach" +Language=ga +Label=ie + +[keyboard-ie-UnicodeExpert] +Description="Keyboard - Irish - Irish (UnicodeExpert)" +Language=en +Label=ie + +[keyboard-ie-ogam] +Description="Keyboard - Irish - Ogham" +Language=sga +Label=ie + +[keyboard-ie-ogam_is434] +Description="Keyboard - Irish - Ogham (IS434)" +Language=sga +Label=ie + +[keyboard-mn] +Description="Keyboard - Mongolian" +Language=mn +Label=mn + +[keyboard-tw] +Description="Keyboard - Taiwanese" +Language= +Label=tw + +[keyboard-tw-indigenous] +Description="Keyboard - Taiwanese - Taiwanese (indigenous)" +Language=tay +Label=tw + +[keyboard-tw-saisiyat] +Description="Keyboard - Taiwanese - Saisiyat (Taiwan)" +Language=xsy +Label=tw + +[keyboard-no] +Description="Keyboard - Norwegian" +Language=no +Label=no + +[keyboard-no-nodeadkeys] +Description="Keyboard - Norwegian - Norwegian (no dead keys)" +Language=no +Label=no + +[keyboard-no-winkeys] +Description="Keyboard - Norwegian - Norwegian (Windows)" +Language=no +Label=no + +[keyboard-no-dvorak] +Description="Keyboard - Norwegian - Norwegian (Dvorak)" +Language=no +Label=no + +[keyboard-no-smi] +Description="Keyboard - Norwegian - Northern Saami (Norway)" +Language=se +Label=no + +[keyboard-no-smi_nodeadkeys] +Description="Keyboard - Norwegian - Northern Saami (Norway, no dead keys)" +Language=se +Label=no + +[keyboard-no-mac] +Description="Keyboard - Norwegian - Norwegian (Macintosh)" +Language=no +Label=no + +[keyboard-no-mac_nodeadkeys] +Description="Keyboard - Norwegian - Norwegian (Macintosh, no dead keys)" +Language=no +Label=no + +[keyboard-no-colemak] +Description="Keyboard - Norwegian - Norwegian (Colemak)" +Language=no +Label=no + +[keyboard-no-sun_type6] +Description="Keyboard - Norwegian - Norwegian (Sun Type 6/7)" +Language=no +Label=no + +[keyboard-pt] +Description="Keyboard - Portuguese" +Language=pt +Label=pt + +[keyboard-pt-nodeadkeys] +Description="Keyboard - Portuguese - Portuguese (no dead keys)" +Language=pt +Label=pt + +[keyboard-pt-sundeadkeys] +Description="Keyboard - Portuguese - Portuguese (Sun dead keys)" +Language=pt +Label=pt + +[keyboard-pt-mac] +Description="Keyboard - Portuguese - Portuguese (Macintosh)" +Language=pt +Label=pt + +[keyboard-pt-mac_nodeadkeys] +Description="Keyboard - Portuguese - Portuguese (Macintosh, no dead keys)" +Language=pt +Label=pt + +[keyboard-pt-mac_sundeadkeys] +Description="Keyboard - Portuguese - Portuguese (Macintosh, Sun dead keys)" +Language=pt +Label=pt + +[keyboard-pt-nativo] +Description="Keyboard - Portuguese - Portuguese (Nativo)" +Language=pt +Label=pt + +[keyboard-pt-nativo-us] +Description="Keyboard - Portuguese - Portuguese (Nativo for US keyboards)" +Language=pt +Label=pt + +[keyboard-pt-nativo-epo] +Description="Keyboard - Portuguese - Esperanto (Portugal, Nativo)" +Language=eo +Label=pt + +[keyboard-pt-sun_type6] +Description="Keyboard - Portuguese - Portuguese (Sun Type 6/7)" +Language=pt +Label=pt + +[keyboard-pt-colemak] +Description="Keyboard - Portuguese - Portuguese (Colemak)" +Language=pt +Label=pt + +[keyboard-ro] +Description="Keyboard - Romanian" +Language=ro +Label=ro + +[keyboard-ro-cedilla] +Description="Keyboard - Romanian - Romanian (cedilla)" +Language=ro +Label=ro + +[keyboard-ro-std] +Description="Keyboard - Romanian - Romanian (standard)" +Language=ro +Label=ro + +[keyboard-ro-std_cedilla] +Description="Keyboard - Romanian - Romanian (standard cedilla)" +Language=ro +Label=ro + +[keyboard-ro-winkeys] +Description="Keyboard - Romanian - Romanian (Windows)" +Language=ro +Label=ro + +[keyboard-ro-crh_dobruja] +Description="Keyboard - Romanian - Crimean Tatar (Dobruja Q)" +Language=crh +Label=ro + +[keyboard-ro-ergonomic] +Description="Keyboard - Romanian - Romanian (ergonomic Touchtype)" +Language=ro +Label=ro + +[keyboard-ro-sun_type6] +Description="Keyboard - Romanian - Romanian (Sun Type 6/7)" +Language=ro +Label=ro + +[keyboard-ru] +Description="Keyboard - Russian" +Language=ru +Label=ru + +[keyboard-ru-phonetic] +Description="Keyboard - Russian - Russian (phonetic)" +Language=ru +Label=ru + +[keyboard-ru-phonetic_winkeys] +Description="Keyboard - Russian - Russian (phonetic, Windows)" +Language=ru +Label=ru + +[keyboard-ru-phonetic_YAZHERTY] +Description="Keyboard - Russian - Russian (phonetic, YAZHERTY)" +Language=ru +Label=ru + +[keyboard-ru-typewriter] +Description="Keyboard - Russian - Russian (typewriter)" +Language=ru +Label=ru + +[keyboard-ru-legacy] +Description="Keyboard - Russian - Russian (legacy)" +Language=ru +Label=ru + +[keyboard-ru-typewriter-legacy] +Description="Keyboard - Russian - Russian (typewriter, legacy)" +Language=ru +Label=ru + +[keyboard-ru-tt] +Description="Keyboard - Russian - Tatar" +Language=tt +Label=ru + +[keyboard-ru-os_legacy] +Description="Keyboard - Russian - Ossetian (legacy)" +Language=os +Label=ru + +[keyboard-ru-os_winkeys] +Description="Keyboard - Russian - Ossetian (Windows)" +Language=os +Label=ru + +[keyboard-ru-cv] +Description="Keyboard - Russian - Chuvash" +Language=cv +Label=ru + +[keyboard-ru-cv_latin] +Description="Keyboard - Russian - Chuvash (Latin)" +Language=cv +Label=ru + +[keyboard-ru-udm] +Description="Keyboard - Russian - Udmurt" +Language=udm +Label=ru + +[keyboard-ru-kom] +Description="Keyboard - Russian - Komi" +Language=kv +Label=ru + +[keyboard-ru-sah] +Description="Keyboard - Russian - Yakut" +Language=sah +Label=ru + +[keyboard-ru-xal] +Description="Keyboard - Russian - Kalmyk" +Language=xal +Label=ru + +[keyboard-ru-dos] +Description="Keyboard - Russian - Russian (DOS)" +Language=ru +Label=ru + +[keyboard-ru-mac] +Description="Keyboard - Russian - Russian (Macintosh)" +Language=ru +Label=ru + +[keyboard-ru-srp] +Description="Keyboard - Russian - Serbian (Russia)" +Language=ru +Label=ru + +[keyboard-ru-bak] +Description="Keyboard - Russian - Bashkirian" +Language=ba +Label=ru + +[keyboard-ru-chm] +Description="Keyboard - Russian - Mari" +Language=chm +Label=ru + +[keyboard-ru-phonetic_azerty] +Description="Keyboard - Russian - Russian (phonetic, AZERTY)" +Language=ru +Label=ru + +[keyboard-ru-phonetic_dvorak] +Description="Keyboard - Russian - Russian (phonetic, Dvorak)" +Language=ru +Label=ru + +[keyboard-ru-phonetic_fr] +Description="Keyboard - Russian - Russian (phonetic, French)" +Language=ru +Label=ru + +[keyboard-ru-chu] +Description="Keyboard - Russian - Church Slavonic" +Language=cu +Label=ru + +[keyboard-ru-ruu] +Description="Keyboard - Russian - Russian (with Ukrainian-Belorussian layout)" +Language=ru +Label=ru + +[keyboard-ru-rulemak] +Description="Keyboard - Russian - Russian (Rulemak, phonetic Colemak)" +Language=ru +Label=ru + +[keyboard-ru-phonetic_mac] +Description="Keyboard - Russian - Russian (phonetic Macintosh)" +Language=ru +Label=ru + +[keyboard-ru-sun_type6] +Description="Keyboard - Russian - Russian (Sun Type 6/7)" +Language=ru +Label=ru + +[keyboard-ru-unipunct] +Description="Keyboard - Russian - Russian (with US punctuation)" +Language=ru +Label=ru + +[keyboard-ru-prxn] +Description="Keyboard - Russian - Russian (Polyglot and Reactionary)" +Language=ru +Label=ru + +[keyboard-sk] +Description="Keyboard - Slovak" +Language=sk +Label=sk + +[keyboard-sk-bksl] +Description="Keyboard - Slovak - Slovak (extended backslash)" +Language=sk +Label=sk + +[keyboard-sk-qwerty] +Description="Keyboard - Slovak - Slovak (QWERTY)" +Language=sk +Label=sk + +[keyboard-sk-qwerty_bksl] +Description="Keyboard - Slovak - Slovak (QWERTY, extended backslash)" +Language=sk +Label=sk + +[keyboard-sk-acc] +Description="Keyboard - Slovak - Slovak (ACC layout, only accented letters)" +Language=sk +Label=sk + +[keyboard-sk-sun_type6] +Description="Keyboard - Slovak - Slovak (Sun Type 6/7)" +Language=sk +Label=sk + +[keyboard-es] +Description="Keyboard - Spanish" +Language=es +Label=es + +[keyboard-es-nodeadkeys] +Description="Keyboard - Spanish - Spanish (no dead keys)" +Language=es +Label=es + +[keyboard-es-winkeys] +Description="Keyboard - Spanish - Spanish (Windows)" +Language=es +Label=es + +[keyboard-es-deadtilde] +Description="Keyboard - Spanish - Spanish (dead tilde)" +Language=es +Label=es + +[keyboard-es-sundeadkeys] +Description="Keyboard - Spanish - Spanish (Sun dead keys)" +Language=es +Label=es + +[keyboard-es-dvorak] +Description="Keyboard - Spanish - Spanish (Dvorak)" +Language=es +Label=es + +[keyboard-es-ast] +Description="Keyboard - Spanish - Asturian (Spain, with bottom-dot H and L)" +Language=ast +Label=es + +[keyboard-es-cat] +Description="Keyboard - Spanish - Catalan (Spain, with middle-dot L)" +Language=ca +Label=es + +[keyboard-es-mac] +Description="Keyboard - Spanish - Spanish (Macintosh)" +Language=es +Label=es + +[keyboard-es-sun_type6] +Description="Keyboard - Spanish - Spanish (Sun Type 6/7)" +Language=es +Label=es + +[keyboard-se] +Description="Keyboard - Swedish" +Language=sv +Label=se + +[keyboard-se-nodeadkeys] +Description="Keyboard - Swedish - Swedish (no dead keys)" +Language=sv +Label=se + +[keyboard-se-dvorak] +Description="Keyboard - Swedish - Swedish (Dvorak)" +Language=sv +Label=se + +[keyboard-se-rus] +Description="Keyboard - Swedish - Russian (Sweden, phonetic)" +Language=ru +Label=se + +[keyboard-se-rus_nodeadkeys] +Description="Keyboard - Swedish - Russian (Sweden, phonetic, no dead keys)" +Language=ru +Label=se + +[keyboard-se-smi] +Description="Keyboard - Swedish - orthern Saami (Sweden)" +Language=se +Label=se + +[keyboard-se-mac] +Description="Keyboard - Swedish - Swedish (Macintosh)" +Language=sv +Label=se + +[keyboard-se-svdvorak] +Description="Keyboard - Swedish - Swedish (Svdvorak)" +Language=sv +Label=se + +[keyboard-se-us_dvorak] +Description="Keyboard - Swedish - Swedish (Dvorak, intl.)" +Language=sv +Label=se + +[keyboard-se-us] +Description="Keyboard - Swedish - Swedish (US)" +Language=sv +Label=se + +[keyboard-se-swl] +Description="Keyboard - Swedish - Swedish Sign Language" +Language=swl +Label=se + +[keyboard-se-dvorak_a5] +Description="Keyboard - Swedish - Swedish (Dvorak A5)" +Language=sv +Label=se + +[keyboard-se-sun_type6] +Description="Keyboard - Swedish - Swedish (Sun Type 6/7)" +Language=sv +Label=se + +[keyboard-se-ovd] +Description="Keyboard - Swedish - Elfdalian (Swedish, with combining ogonek)" +Language= +Label=se + +[keyboard-tj] +Description="Keyboard - Tajik" +Language=tg +Label=tj + +[keyboard-tj-legacy] +Description="Keyboard - Tajik - Tajik (legacy)" +Language=tg +Label=tj + +[keyboard-af] +Description="Keyboard - Afghani" +Language= +Label=af + +[keyboard-af-ps] +Description="Keyboard - Afghani - Pashto" +Language=ps +Label=af + +[keyboard-af-uz] +Description="Keyboard - Afghani - Uzbek (Afghanistan)" +Language=uz +Label=af + +[keyboard-af-olpc-ps] +Description="Keyboard - Afghani - Pashto (Afghanistan, OLPC)" +Language=ps +Label=af + +[keyboard-af-fa-olpc] +Description="Keyboard - Afghani - Persian (Afghanistan, Dari OLPC)" +Language= +Label=af + +[keyboard-af-uz-olpc] +Description="Keyboard - Afghani - Uzbek (Afghanistan, OLPC)" +Language=uz +Label=af + +[keyboard-ph] +Description="Keyboard - Filipino" +Language=fil +Label=ph + +[keyboard-ph-qwerty-bay] +Description="Keyboard - Filipino - Filipino (QWERTY, Baybayin)" +Language=fil +Label=ph + +[keyboard-ph-capewell-dvorak] +Description="Keyboard - Filipino - Filipino (Capewell-Dvorak, Latin)" +Language=fil +Label=ph + +[keyboard-ph-capewell-dvorak-bay] +Description="Keyboard - Filipino - Filipino (Capewell-Dvorak, Baybayin)" +Language=fil +Label=ph + +[keyboard-ph-capewell-qwerf2k6] +Description="Keyboard - Filipino - Filipino (Capewell-QWERF 2006, Latin)" +Language=fil +Label=ph + +[keyboard-ph-capewell-qwerf2k6-bay] +Description="Keyboard - Filipino - Filipino (Capewell-QWERF 2006, Baybayin)" +Language=fil +Label=ph + +[keyboard-ph-colemak] +Description="Keyboard - Filipino - Filipino (Colemak, Latin)" +Language=fil +Label=ph + +[keyboard-ph-colemak-bay] +Description="Keyboard - Filipino - Filipino (Colemak, Baybayin)" +Language=fil +Label=ph + +[keyboard-ph-dvorak] +Description="Keyboard - Filipino - Filipino (Dvorak, Latin)" +Language=fil +Label=ph + +[keyboard-ph-dvorak-bay] +Description="Keyboard - Filipino - Filipino (Dvorak, Baybayin)" +Language=fil +Label=ph + +[keyboard-eu] +Description="Keyboard - EurKEY (US)" +Language=ca +Label=eu + +[keyboard-tr] +Description="Keyboard - Turkish" +Language=tr +Label=tr + +[keyboard-tr-f] +Description="Keyboard - Turkish - Turkish (F)" +Language=tr +Label=tr + +[keyboard-tr-alt] +Description="Keyboard - Turkish - Turkish (Alt-Q)" +Language=tr +Label=tr + +[keyboard-tr-sundeadkeys] +Description="Keyboard - Turkish - Turkish (Sun dead keys)" +Language=tr +Label=tr + +[keyboard-tr-ku] +Description="Keyboard - Turkish - Kurdish (Turkey, Latin Q)" +Language=ku +Label=tr + +[keyboard-tr-ku_f] +Description="Keyboard - Turkish - Kurdish (Turkey, F)" +Language=ku +Label=tr + +[keyboard-tr-ku_alt] +Description="Keyboard - Turkish - Kurdish (Turkey, Latin Alt-Q)" +Language=ku +Label=tr + +[keyboard-tr-intl] +Description="Keyboard - Turkish - Turkish (intl., with dead keys)" +Language=tr +Label=tr + +[keyboard-tr-crh] +Description="Keyboard - Turkish - Crimean Tatar (Turkish Q)" +Language=crh +Label=tr + +[keyboard-tr-crh_f] +Description="Keyboard - Turkish - Crimean Tatar (Turkish F)" +Language=crh +Label=tr + +[keyboard-tr-crh_alt] +Description="Keyboard - Turkish - Crimean Tatar (Turkish Alt-Q)" +Language=crh +Label=tr + +[keyboard-tr-sun_type6] +Description="Keyboard - Turkish - Turkish (Sun Type 6/7)" +Language=tr +Label=tr + +[keyboard-ge] +Description="Keyboard - Georgian" +Language=ka +Label=ge + +[keyboard-ge-ergonomic] +Description="Keyboard - Georgian - Georgian (ergonomic)" +Language=ka +Label=ge + +[keyboard-ge-mess] +Description="Keyboard - Georgian - Georgian (MESS)" +Language=ka +Label=ge + +[keyboard-ge-ru] +Description="Keyboard - Georgian - Russian (Georgia)" +Language=ru +Label=ge + +[keyboard-ge-os] +Description="Keyboard - Georgian - Ossetian (Georgia)" +Language=os +Label=ge + +[keyboard-gb] +Description="Keyboard - English (UK)" +Language=en +Label=gb + +[keyboard-gb-extd] +Description="Keyboard - English (UK) - English (UK, extended, Windows)" +Language=en +Label=gb + +[keyboard-gb-intl] +Description="Keyboard - English (UK) - English (UK, intl., with dead keys)" +Language=en +Label=gb + +[keyboard-gb-dvorak] +Description="Keyboard - English (UK) - English (UK, Dvorak)" +Language=en +Label=gb + +[keyboard-gb-dvorakukp] +Description="Keyboard - English (UK) - English (UK, Dvorak, with UK punctuation)" +Language=en +Label=gb + +[keyboard-gb-mac] +Description="Keyboard - English (UK) - English (UK, Macintosh)" +Language=en +Label=gb + +[keyboard-gb-mac_intl] +Description="Keyboard - English (UK) - English (UK, Macintosh, intl.)" +Language=en +Label=gb + +[keyboard-gb-colemak] +Description="Keyboard - English (UK) - English (UK, Colemak)" +Language=en +Label=gb + +[keyboard-gb-pl] +Description="Keyboard - English (UK) - Polish (British keyboard)" +Language=pl +Label=gb + +[keyboard-gb-sun_type6] +Description="Keyboard - English (UK) - English (UK, Sun Type 6/7)" +Language=en +Label=gb + +[keyboard-kh] +Description="Keyboard - Khmer (Cambodia)" +Language=km +Label=kh + +[keyboard-vn] +Description="Keyboard - Vietnamese" +Language=vi +Label=vn + +[keyboard-vn-us] +Description="Keyboard - Vietnamese - Vietnamese (US)" +Language=vi +Label=vn + +[keyboard-vn-fr] +Description="Keyboard - Vietnamese - Vietnamese (French)" +Language=vi +Label=vn + +[keyboard-vn-aderty] +Description="Keyboard - Vietnamese - Vietnamese (AÐERTY)" +Language=vi +Label=vn + +[keyboard-vn-qderty] +Description="Keyboard - Vietnamese - Vietnamese (QĐERTY)" +Language=vi +Label=vn + +[keyboard-et] +Description="Keyboard - Amharic" +Language=am +Label=et + +[keyboard-tm] +Description="Keyboard - Turkmen" +Language=tk +Label=tm + +[keyboard-tm-alt] +Description="Keyboard - Turkmen - Turkmen (Alt-Q)" +Language=tk +Label=tm + +[keyboard-kr] +Description="Keyboard - Korean" +Language=ko +Label=kr + +[keyboard-kr-kr104] +Description="Keyboard - Korean - Korean (101/104-key compatible)" +Language=ko +Label=kr + +[keyboard-kr-sun_type6] +Description="Keyboard - Korean - Korean (Sun Type 6/7)" +Language=ko +Label=kr + +[keyboard-nec_vndr/jp] +Description="Keyboard - Japanese (PC-98)" +Language=ja +Label=nec_vndr/jp + +[keyboard-eg] +Description="Keyboard - Coptic" +Language=cop +Label=eg + +[keyboard-bw] +Description="Keyboard - Tswana" +Language=tn +Label=bw + +[keyboard-ma] +Description="Keyboard - Arabic (Morocco)" +Language= +Label=ma + +[keyboard-ma-french] +Description="Keyboard - Arabic (Morocco) - French (Morocco)" +Language=fr +Label=ma + +[keyboard-ma-tifinagh] +Description="Keyboard - Arabic (Morocco) - Berber (Morocco, Tifinagh)" +Language= +Label=ma + +[keyboard-ma-tifinagh-alt] +Description="Keyboard - Arabic (Morocco) - Berber (Morocco, Tifinagh alt.)" +Language= +Label=ma + +[keyboard-ma-tifinagh-alt-phonetic] +Description="Keyboard - Arabic (Morocco) - Berber (Morocco, Tifinagh phonetic, alt.)" +Language= +Label=ma + +[keyboard-ma-tifinagh-extended] +Description="Keyboard - Arabic (Morocco) - Berber (Morocco, Tifinagh extended)" +Language= +Label=ma + +[keyboard-ma-tifinagh-phonetic] +Description="Keyboard - Arabic (Morocco) - Berber (Morocco, Tifinagh phonetic)" +Language= +Label=ma + +[keyboard-ma-tifinagh-extended-phonetic] +Description="Keyboard - Arabic (Morocco) - Berber (Morocco, Tifinagh extended phonetic)" +Language= +Label=ma + +[keyboard-mv] +Description="Keyboard - Dhivehi" +Language=dv +Label=mv + +[keyboard-epo] +Description="Keyboard - Esperanto" +Language=eo +Label=epo + +[keyboard-epo-legacy] +Description="Keyboard - Esperanto - Esperanto (legacy)" +Language=eo +Label=epo + +[keyboard-me] +Description="Keyboard - Montenegrin" +Language=sr +Label=me + +[keyboard-me-cyrillic] +Description="Keyboard - Montenegrin - Montenegrin (Cyrillic)" +Language=sr +Label=me + +[keyboard-me-cyrillicyz] +Description="Keyboard - Montenegrin - Montenegrin (Cyrillic, ZE and ZHE swapped)" +Language=sr +Label=me + +[keyboard-me-latinunicode] +Description="Keyboard - Montenegrin - Montenegrin (Latin, Unicode)" +Language=sr +Label=me + +[keyboard-me-latinyz] +Description="Keyboard - Montenegrin - Montenegrin (Latin, QWERTY)" +Language=sr +Label=me + +[keyboard-me-latinunicodeyz] +Description="Keyboard - Montenegrin - Montenegrin (Latin, Unicode, QWERTY)" +Language=sr +Label=me + +[keyboard-me-cyrillicalternatequotes] +Description="Keyboard - Montenegrin - Montenegrin (Cyrillic, with guillemets)" +Language=sr +Label=me + +[keyboard-me-latinalternatequotes] +Description="Keyboard - Montenegrin - Montenegrin (Latin, with guillemets)" +Language=sr +Label=me + +[keyboard-np] +Description="Keyboard - Nepali" +Language=ne +Label=np + +[keyboard-ng] +Description="Keyboard - English (Nigeria)" +Language=en +Label=ng + +[keyboard-ng-igbo] +Description="Keyboard - English (Nigeria) - Igbo" +Language=ig +Label=ng + +[keyboard-ng-yoruba] +Description="Keyboard - English (Nigeria) - Yoruba" +Language=yo +Label=ng + +[keyboard-ng-hausa] +Description="Keyboard - English (Nigeria) - Hausa (Nigeria)" +Language=ha +Label=ng + +[keyboard-brai] +Description="Keyboard - Braille" +Language= +Label=brai + +[keyboard-brai-left_hand] +Description="Keyboard - Braille - Braille (left-handed)" +Language= +Label=brai + +[keyboard-brai-left_hand_invert] +Description="Keyboard - Braille - Braille (left-handed inverted thumb)" +Language= +Label=brai + +[keyboard-brai-right_hand] +Description="Keyboard - Braille - Braille (right-handed)" +Language= +Label=brai + +[keyboard-brai-right_hand_invert] +Description="Keyboard - Braille - Braille (right-handed inverted thumb)" +Language= +Label=brai + +[keyboard-de] +Description="Keyboard - German" +Language=de +Label=de + +[keyboard-de-deadacute] +Description="Keyboard - German - German (dead acute)" +Language=de +Label=de + +[keyboard-de-deadgraveacute] +Description="Keyboard - German - German (dead grave acute)" +Language=de +Label=de + +[keyboard-de-nodeadkeys] +Description="Keyboard - German - German (no dead keys)" +Language=de +Label=de + +[keyboard-de-T3] +Description="Keyboard - German - German (T3)" +Language=de +Label=de + +[keyboard-de-ro] +Description="Keyboard - German - Romanian (Germany)" +Language=ro +Label=de + +[keyboard-de-ro_nodeadkeys] +Description="Keyboard - German - Romanian (Germany, no dead keys)" +Language=ro +Label=de + +[keyboard-de-dvorak] +Description="Keyboard - German - German (Dvorak)" +Language=de +Label=de + +[keyboard-de-sundeadkeys] +Description="Keyboard - German - German (Sun dead keys)" +Language=de +Label=de + +[keyboard-de-neo] +Description="Keyboard - German - German (Neo 2)" +Language=de +Label=de + +[keyboard-de-mac] +Description="Keyboard - German - German (Macintosh)" +Language=de +Label=de + +[keyboard-de-mac_nodeadkeys] +Description="Keyboard - German - German (Macintosh, no dead keys)" +Language=de +Label=de + +[keyboard-de-dsb] +Description="Keyboard - German - Lower Sorbian" +Language=dsb +Label=de + +[keyboard-de-dsb_qwertz] +Description="Keyboard - German - Lower Sorbian (QWERTZ)" +Language=dsb +Label=de + +[keyboard-de-qwerty] +Description="Keyboard - German - German (QWERTY)" +Language=de +Label=de + +[keyboard-de-tr] +Description="Keyboard - German - Turkish (Germany)" +Language= +Label=de + +[keyboard-de-ru] +Description="Keyboard - German - Russian (Germany, phonetic)" +Language=ru +Label=de + +[keyboard-de-deadtilde] +Description="Keyboard - German - German (dead tilde)" +Language=de +Label=de + +[keyboard-de-us] +Description="Keyboard - German - German (US)" +Language=en +Label=de + +[keyboard-de-hu] +Description="Keyboard - German - German (with Hungarian letters, no dead keys)" +Language=de +Label=de + +[keyboard-de-pl] +Description="Keyboard - German - Polish (Germany, no dead keys)" +Language=de +Label=de + +[keyboard-de-sun_type6] +Description="Keyboard - German - German (Sun Type 6/7)" +Language=de +Label=de + +[keyboard-de-adnw] +Description="Keyboard - German - German (Aus der Neo-Welt)" +Language=de +Label=de + +[keyboard-de-koy] +Description="Keyboard - German - German (KOY)" +Language=de +Label=de + +[keyboard-de-bone] +Description="Keyboard - German - German (Bone)" +Language=de +Label=de + +[keyboard-de-bone_eszett_home] +Description="Keyboard - German - German (Bone, eszett in the home row)" +Language=de +Label=de + +[keyboard-de-neo_qwertz] +Description="Keyboard - German - German (Neo, QWERTZ)" +Language=de +Label=de + +[keyboard-de-neo_qwerty] +Description="Keyboard - German - German (Neo, QWERTY)" +Language=de +Label=de + +[keyboard-de-ru-recom] +Description="Keyboard - German - Russian (Germany, recommended)" +Language=ru +Label=de + +[keyboard-de-ru-translit] +Description="Keyboard - German - Russian (Germany, transliteration)" +Language=ru +Label=de + +[keyboard-de-lld] +Description="Keyboard - German - German (Ladin)" +Language=de +Label=de + +[keyboard-ml] +Description="Keyboard - Bambara" +Language=bm +Label=ml + +[keyboard-ml-fr-oss] +Description="Keyboard - Bambara - French (Mali, alt.)" +Language=fr +Label=ml + +[keyboard-ml-us-mac] +Description="Keyboard - Bambara - English (Mali, US, Macintosh)" +Language=en +Label=ml + +[keyboard-ml-us-intl] +Description="Keyboard - Bambara - English (Mali, US, intl.)" +Language=en +Label=ml + +[keyboard-us] +Description="Keyboard - English (US)" +Language=en +Label=us + +[keyboard-us-chr] +Description="Keyboard - English (US) - Cherokee" +Language=chr +Label=us + +[keyboard-us-haw] +Description="Keyboard - English (US) - Hawaiian" +Language=haw +Label=us + +[keyboard-us-euro] +Description="Keyboard - English (US) - English (US, euro on 5)" +Language=en +Label=us + +[keyboard-us-intl] +Description="Keyboard - English (US) - English (US, intl., with dead keys)" +Language=en +Label=us + +[keyboard-us-alt-intl] +Description="Keyboard - English (US) - English (US, alt. intl.)" +Language=en +Label=us + +[keyboard-us-colemak] +Description="Keyboard - English (US) - English (Colemak)" +Language=en +Label=us + +[keyboard-us-dvorak] +Description="Keyboard - English (US) - English (Dvorak)" +Language=en +Label=us + +[keyboard-us-dvorak-intl] +Description="Keyboard - English (US) - English (Dvorak, intl., with dead keys)" +Language=en +Label=us + +[keyboard-us-dvorak-alt-intl] +Description="Keyboard - English (US) - English (Dvorak, alt. intl.)" +Language=en +Label=us + +[keyboard-us-dvorak-l] +Description="Keyboard - English (US) - English (Dvorak, left-handed)" +Language=en +Label=us + +[keyboard-us-dvorak-r] +Description="Keyboard - English (US) - English (Dvorak, right-handed)" +Language=en +Label=us + +[keyboard-us-dvorak-classic] +Description="Keyboard - English (US) - English (classic Dvorak)" +Language=en +Label=us + +[keyboard-us-dvp] +Description="Keyboard - English (US) - English (programmer Dvorak)" +Language=en +Label=us + +[keyboard-us-rus] +Description="Keyboard - English (US) - Russian (US, phonetic)" +Language=ru +Label=us + +[keyboard-us-mac] +Description="Keyboard - English (US) - English (Macintosh)" +Language=en +Label=us + +[keyboard-us-altgr-intl] +Description="Keyboard - English (US) - English (intl., with AltGr dead keys)" +Language=en +Label=us + +[keyboard-us-olpc2] +Description="Keyboard - English (US) - English (the divide/multiply toggle the layout)" +Language=en +Label=us + +[keyboard-us-hbs] +Description="Keyboard - English (US) - Serbo-Croatian (US)" +Language=en +Label=us + +[keyboard-us-norman] +Description="Keyboard - English (US) - English (Norman)" +Language=en +Label=us + +[keyboard-us-workman] +Description="Keyboard - English (US) - English (Workman)" +Language=en +Label=us + +[keyboard-us-workman-intl] +Description="Keyboard - English (US) - English (Workman, intl., with dead keys)" +Language=en +Label=us + +[keyboard-us-intl-unicode] +Description="Keyboard - English (US) - English (US, intl., AltGr Unicode combining)" +Language=en +Label=us + +[keyboard-us-alt-intl-unicode] +Description="Keyboard - English (US) - English (US, intl., AltGr Unicode combining, alt.)" +Language=en +Label=us + +[keyboard-us-ats] +Description="Keyboard - English (US) - Atsina" +Language=en +Label=us + +[keyboard-us-crd] +Description="Keyboard - English (US) - Coeur d'Alene Salish" +Language=crd +Label=us + +[keyboard-us-cz_sk_de] +Description="Keyboard - English (US) - Czech Slovak and German (US)" +Language=en +Label=us + +[keyboard-us-drix] +Description="Keyboard - English (US) - English (Drix)" +Language=en +Label=us + +[keyboard-us-de_se_fi] +Description="Keyboard - English (US) - German, Swedish and Finnish (US)" +Language=en +Label=us + +[keyboard-us-ibm238l] +Description="Keyboard - English (US) - English (US, IBM Arabic 238_L)" +Language=en +Label=us + +[keyboard-us-sun_type6] +Description="Keyboard - English (US) - English (US, Sun Type 6/7)" +Language=en +Label=us + +[keyboard-us-carpalx] +Description="Keyboard - English (US) - English (Carpalx)" +Language=en +Label=us + +[keyboard-us-carpalx-intl] +Description="Keyboard - English (US) - English (Carpalx, intl., with dead keys)" +Language=en +Label=us + +[keyboard-us-carpalx-altgr-intl] +Description="Keyboard - English (US) - English (Carpalx, intl., with AltGr dead keys)" +Language=en +Label=us + +[keyboard-us-carpalx-full] +Description="Keyboard - English (US) - English (Carpalx, full optimization)" +Language=en +Label=us + +[keyboard-us-carpalx-full-intl] +Description="Keyboard - English (US) - English (Carpalx, full optimization, intl., with dead keys)" +Language=en +Label=us + +[keyboard-us-carpalx-full-altgr-intl] +Description="Keyboard - English (US) - English (Carpalx, full optimization, intl., with AltGr dead keys)" +Language=en +Label=us + +[keyboard-us-3l] +Description="Keyboard - English (US) - English (3l)" +Language=en +Label=us + +[keyboard-us-3l-cros] +Description="Keyboard - English (US) - English (3l, Chromebook)" +Language=en +Label=us + +[keyboard-us-3l-emacs] +Description="Keyboard - English (US) - English (3l, emacs)" +Language=en +Label=us + +[keyboard-us-scn] +Description="Keyboard - English (US) - Sicilian (US keyboard)" +Language=en +Label=us + +[keyboard-md] +Description="Keyboard - Moldavian" +Language=ro +Label=md + +[keyboard-md-gag] +Description="Keyboard - Moldavian - Moldavian (Gagauz)" +Language=gag +Label=md + diff --git a/linux/fcitx5/conf/hangul.conf b/linux/fcitx5/conf/hangul.conf new file mode 100644 index 0000000..0e060d7 --- /dev/null +++ b/linux/fcitx5/conf/hangul.conf @@ -0,0 +1,25 @@ +# Keyboard Layout +Keyboard=Dubeolsik +# Auto Reorder +AutoReorder=True +# Word Commit +WordCommit=False +# Hanja Mode +HanjaMode=False + +[HanjaModeToggleKey] +0=Hangul_Hanja +1=F9 + +[PrevPage] +0=Up + +[NextPage] +0=Down + +[PrevCandidate] +0=Shift+Tab + +[NextCandidate] +0=Tab + diff --git a/linux/fcitx5/conf/notifications.conf b/linux/fcitx5/conf/notifications.conf new file mode 100644 index 0000000..6e7d1b9 --- /dev/null +++ b/linux/fcitx5/conf/notifications.conf @@ -0,0 +1,3 @@ +# Hidden Notifications +HiddenNotifications= + diff --git a/linux/fcitx5/config b/linux/fcitx5/config new file mode 100644 index 0000000..3cd38d1 --- /dev/null +++ b/linux/fcitx5/config @@ -0,0 +1,59 @@ +[Hotkey] +# Enumerate when press trigger key repeatedly +EnumerateWithTriggerKeys=True + +[Hotkey/TriggerKeys] +0=Control+space +1=Zenkaku_Hankaku +2=Hangul +3=Alt+Alt_R + +[Hotkey/AltTriggerKeys] +0=Shift_L + +[Hotkey/EnumerateForwardKeys] +0=Control+Shift_L + +[Hotkey/EnumerateBackwardKeys] +0=Control+Shift_R + +[Hotkey/EnumerateGroupForwardKeys] +0=Super+space + +[Hotkey/EnumerateGroupBackwardKeys] +0=Shift+Super+space + +[Hotkey/ActivateKeys] +0=Hangul_Hanja + +[Hotkey/DeactivateKeys] +0=Hangul_Romaja + +[Hotkey/PrevPage] +0=Up + +[Hotkey/NextPage] +0=Down + +[Hotkey/PrevCandidate] +0=Shift+Tab + +[Hotkey/NextCandidate] +0=Tab + +[Behavior] +# Active By Default +ActiveByDefault=False +# Share Input State +ShareInputState=No +# Show Input Method Information when switch input method +ShowInputMethodInformation=True +# Show Input Method Information when changing focus +showInputMethodInformationWhenFocusIn=False +# Default page size +DefaultPageSize=5 +# Force Enabled Addons +EnabledAddons= +# Force Disabled Addons +DisabledAddons= + diff --git a/linux/fcitx5/profile b/linux/fcitx5/profile new file mode 100644 index 0000000..6d1e95e --- /dev/null +++ b/linux/fcitx5/profile @@ -0,0 +1,29 @@ +[Groups/0] +# Group Name +Name=Default +# Layout +Default Layout=us +# Default Input Method +DefaultIM=hangul + +[Groups/0/Items/0] +# Name +Name=keyboard-us +# Layout +Layout= + +[Groups/0/Items/1] +# Name +Name=hangul +# Layout +Layout= + +[Groups/0/Items/2] +# Name +Name=anthy +# Layout +Layout= + +[GroupOrder] +0=Default + diff --git a/linux/omz/plugins/deno/_deno b/linux/omz/plugins/deno/_deno new file mode 100644 index 0000000..b12c5dc --- /dev/null +++ b/linux/omz/plugins/deno/_deno @@ -0,0 +1,480 @@ +#compdef deno + +autoload -U is-at-least + +_deno() { + typeset -A opt_args + typeset -a _arguments_options + local ret=1 + + if is-at-least 5.2; then + _arguments_options=(-s -S -C) + else + _arguments_options=(-s -C) + fi + + local context curcontext="$curcontext" state line + _arguments "${_arguments_options[@]}" \ +'-L+[Set log level]: :(debug info)' \ +'--log-level=[Set log level]: :(debug info)' \ +'-q[Suppress diagnostic output]' \ +'--quiet[Suppress diagnostic output]' \ +'-h[Prints help information]' \ +'--help[Prints help information]' \ +'-V[Prints version information]' \ +'--version[Prints version information]' \ +":: :_deno_commands" \ +"*::: :->deno" \ +&& ret=0 + case $state in + (deno) + words=($line[1] "${words[@]}") + (( CURRENT += 1 )) + curcontext="${curcontext%:*:*}:deno-command-$line[1]:" + case $line[1] in + (bundle) +_arguments "${_arguments_options[@]}" \ +'--lock=[Check the specified lock file]' \ +'--cert=[Load certificate authority from PEM encoded file]' \ +'--importmap=[UNSTABLE: Load import map file]' \ +'-c+[Load tsconfig.json configuration file]' \ +'--config=[Load tsconfig.json configuration file]' \ +'-L+[Set log level]: :(debug info)' \ +'--log-level=[Set log level]: :(debug info)' \ +'--lock-write[Write lock file. Use with --lock.]' \ +'--unstable[Enable unstable APIs]' \ +'-h[Prints help information]' \ +'--help[Prints help information]' \ +'-V[Prints version information]' \ +'--version[Prints version information]' \ +'-q[Suppress diagnostic output]' \ +'--quiet[Suppress diagnostic output]' \ +':source_file:_files' \ +'::out_file:_files' \ +&& ret=0 +;; +(cache) +_arguments "${_arguments_options[@]}" \ +'-r+[Reload source code cache (recompile TypeScript)]' \ +'--reload=[Reload source code cache (recompile TypeScript)]' \ +'--lock=[Check the specified lock file]' \ +'--importmap=[UNSTABLE: Load import map file]' \ +'-c+[Load tsconfig.json configuration file]' \ +'--config=[Load tsconfig.json configuration file]' \ +'--cert=[Load certificate authority from PEM encoded file]' \ +'-L+[Set log level]: :(debug info)' \ +'--log-level=[Set log level]: :(debug info)' \ +'--lock-write[Write lock file. Use with --lock.]' \ +'--unstable[Enable unstable APIs]' \ +'--no-check[Skip type checking modules]' \ +'--no-remote[Do not resolve remote modules]' \ +'-h[Prints help information]' \ +'--help[Prints help information]' \ +'-V[Prints version information]' \ +'--version[Prints version information]' \ +'-q[Suppress diagnostic output]' \ +'--quiet[Suppress diagnostic output]' \ +':file:_files' \ +&& ret=0 +;; +(completions) +_arguments "${_arguments_options[@]}" \ +'-L+[Set log level]: :(debug info)' \ +'--log-level=[Set log level]: :(debug info)' \ +'-h[Prints help information]' \ +'--help[Prints help information]' \ +'-V[Prints version information]' \ +'--version[Prints version information]' \ +'-q[Suppress diagnostic output]' \ +'--quiet[Suppress diagnostic output]' \ +':shell:(zsh bash fish powershell elvish)' \ +&& ret=0 +;; +(doc) +_arguments "${_arguments_options[@]}" \ +'-r+[Reload source code cache (recompile TypeScript)]' \ +'--reload=[Reload source code cache (recompile TypeScript)]' \ +'-L+[Set log level]: :(debug info)' \ +'--log-level=[Set log level]: :(debug info)' \ +'--unstable[Enable unstable APIs]' \ +'--json[Output documentation in JSON format.]' \ +'--private[Output private documentation]' \ +'-h[Prints help information]' \ +'--help[Prints help information]' \ +'-V[Prints version information]' \ +'--version[Prints version information]' \ +'-q[Suppress diagnostic output]' \ +'--quiet[Suppress diagnostic output]' \ +'::source_file:_files' \ +'::filter -- Dot separated path to symbol.:_files' \ +&& ret=0 +;; +(eval) +_arguments "${_arguments_options[@]}" \ +'--inspect=[activate inspector on host:port (default: 127.0.0.1:9229)]' \ +'--inspect-brk=[activate inspector on host:port and break at start of user script]' \ +'--cert=[Load certificate authority from PEM encoded file]' \ +'--v8-flags=[Set V8 command line options. For help: --v8-flags=--help]' \ +'-L+[Set log level]: :(debug info)' \ +'--log-level=[Set log level]: :(debug info)' \ +'--unstable[Enable unstable APIs]' \ +'-T[Treat eval input as TypeScript]' \ +'--ts[Treat eval input as TypeScript]' \ +'-p[print result to stdout]' \ +'--print[print result to stdout]' \ +'-h[Prints help information]' \ +'--help[Prints help information]' \ +'-V[Prints version information]' \ +'--version[Prints version information]' \ +'-q[Suppress diagnostic output]' \ +'--quiet[Suppress diagnostic output]' \ +':code:_files' \ +&& ret=0 +;; +(fmt) +_arguments "${_arguments_options[@]}" \ +'-L+[Set log level]: :(debug info)' \ +'--log-level=[Set log level]: :(debug info)' \ +'--check[Check if the source files are formatted.]' \ +'-h[Prints help information]' \ +'--help[Prints help information]' \ +'-V[Prints version information]' \ +'--version[Prints version information]' \ +'-q[Suppress diagnostic output]' \ +'--quiet[Suppress diagnostic output]' \ +'::files:_files' \ +&& ret=0 +;; +(info) +_arguments "${_arguments_options[@]}" \ +'--cert=[Load certificate authority from PEM encoded file]' \ +'-L+[Set log level]: :(debug info)' \ +'--log-level=[Set log level]: :(debug info)' \ +'--no-check[Skip type checking modules]' \ +'--unstable[Enable unstable APIs]' \ +'--json[Outputs the information in JSON format]' \ +'-h[Prints help information]' \ +'--help[Prints help information]' \ +'-V[Prints version information]' \ +'--version[Prints version information]' \ +'-q[Suppress diagnostic output]' \ +'--quiet[Suppress diagnostic output]' \ +'::file:_files' \ +&& ret=0 +;; +(install) +_arguments "${_arguments_options[@]}" \ +'--allow-read=[Allow file system read access]' \ +'--allow-write=[Allow file system write access]' \ +'--allow-net=[Allow network access]' \ +'-n+[Executable file name]' \ +'--name=[Executable file name]' \ +'--root=[Installation root]' \ +'--cert=[Load certificate authority from PEM encoded file]' \ +'-c+[Load tsconfig.json configuration file]' \ +'--config=[Load tsconfig.json configuration file]' \ +'-L+[Set log level]: :(debug info)' \ +'--log-level=[Set log level]: :(debug info)' \ +'--allow-env[Allow environment access]' \ +'--allow-run[Allow running subprocesses]' \ +'--allow-plugin[Allow loading plugins]' \ +'--allow-hrtime[Allow high resolution time measurement]' \ +'-A[Allow all permissions]' \ +'--allow-all[Allow all permissions]' \ +'-f[Forcefully overwrite existing installation]' \ +'--force[Forcefully overwrite existing installation]' \ +'--unstable[Enable unstable APIs]' \ +'-h[Prints help information]' \ +'--help[Prints help information]' \ +'-V[Prints version information]' \ +'--version[Prints version information]' \ +'-q[Suppress diagnostic output]' \ +'--quiet[Suppress diagnostic output]' \ +':cmd:_files' \ +&& ret=0 +;; +(lint) +_arguments "${_arguments_options[@]}" \ +'-L+[Set log level]: :(debug info)' \ +'--log-level=[Set log level]: :(debug info)' \ +'--unstable[Enable unstable APIs]' \ +'--rules[List available rules]' \ +'-h[Prints help information]' \ +'--help[Prints help information]' \ +'-V[Prints version information]' \ +'--version[Prints version information]' \ +'-q[Suppress diagnostic output]' \ +'--quiet[Suppress diagnostic output]' \ +'::files:_files' \ +&& ret=0 +;; +(repl) +_arguments "${_arguments_options[@]}" \ +'--inspect=[activate inspector on host:port (default: 127.0.0.1:9229)]' \ +'--inspect-brk=[activate inspector on host:port and break at start of user script]' \ +'--v8-flags=[Set V8 command line options. For help: --v8-flags=--help]' \ +'--cert=[Load certificate authority from PEM encoded file]' \ +'-L+[Set log level]: :(debug info)' \ +'--log-level=[Set log level]: :(debug info)' \ +'--unstable[Enable unstable APIs]' \ +'-h[Prints help information]' \ +'--help[Prints help information]' \ +'-V[Prints version information]' \ +'--version[Prints version information]' \ +'-q[Suppress diagnostic output]' \ +'--quiet[Suppress diagnostic output]' \ +&& ret=0 +;; +(run) +_arguments "${_arguments_options[@]}" \ +'--inspect=[activate inspector on host:port (default: 127.0.0.1:9229)]' \ +'--inspect-brk=[activate inspector on host:port and break at start of user script]' \ +'--allow-read=[Allow file system read access]' \ +'--allow-write=[Allow file system write access]' \ +'--allow-net=[Allow network access]' \ +'--importmap=[UNSTABLE: Load import map file]' \ +'-r+[Reload source code cache (recompile TypeScript)]' \ +'--reload=[Reload source code cache (recompile TypeScript)]' \ +'-c+[Load tsconfig.json configuration file]' \ +'--config=[Load tsconfig.json configuration file]' \ +'--lock=[Check the specified lock file]' \ +'--v8-flags=[Set V8 command line options. For help: --v8-flags=--help]' \ +'--cert=[Load certificate authority from PEM encoded file]' \ +'--seed=[Seed Math.random()]' \ +'-L+[Set log level]: :(debug info)' \ +'--log-level=[Set log level]: :(debug info)' \ +'--allow-env[Allow environment access]' \ +'--allow-run[Allow running subprocesses]' \ +'--allow-plugin[Allow loading plugins]' \ +'--allow-hrtime[Allow high resolution time measurement]' \ +'-A[Allow all permissions]' \ +'--allow-all[Allow all permissions]' \ +'--unstable[Enable unstable APIs]' \ +'--lock-write[Write lock file. Use with --lock.]' \ +'--no-check[Skip type checking modules]' \ +'--no-remote[Do not resolve remote modules]' \ +'--cached-only[Require that remote dependencies are already cached]' \ +'-h[Prints help information]' \ +'--help[Prints help information]' \ +'-V[Prints version information]' \ +'--version[Prints version information]' \ +'-q[Suppress diagnostic output]' \ +'--quiet[Suppress diagnostic output]' \ +':script_arg -- script args:_files' \ +&& ret=0 +;; +(test) +_arguments "${_arguments_options[@]}" \ +'--inspect=[activate inspector on host:port (default: 127.0.0.1:9229)]' \ +'--inspect-brk=[activate inspector on host:port and break at start of user script]' \ +'--allow-read=[Allow file system read access]' \ +'--allow-write=[Allow file system write access]' \ +'--allow-net=[Allow network access]' \ +'--importmap=[UNSTABLE: Load import map file]' \ +'-r+[Reload source code cache (recompile TypeScript)]' \ +'--reload=[Reload source code cache (recompile TypeScript)]' \ +'-c+[Load tsconfig.json configuration file]' \ +'--config=[Load tsconfig.json configuration file]' \ +'--lock=[Check the specified lock file]' \ +'--v8-flags=[Set V8 command line options. For help: --v8-flags=--help]' \ +'--cert=[Load certificate authority from PEM encoded file]' \ +'--seed=[Seed Math.random()]' \ +'--filter=[Run tests with this string or pattern in the test name]' \ +'-L+[Set log level]: :(debug info)' \ +'--log-level=[Set log level]: :(debug info)' \ +'--allow-env[Allow environment access]' \ +'--allow-run[Allow running subprocesses]' \ +'--allow-plugin[Allow loading plugins]' \ +'--allow-hrtime[Allow high resolution time measurement]' \ +'-A[Allow all permissions]' \ +'--allow-all[Allow all permissions]' \ +'--unstable[Enable unstable APIs]' \ +'--lock-write[Write lock file. Use with --lock.]' \ +'--no-check[Skip type checking modules]' \ +'--no-remote[Do not resolve remote modules]' \ +'--cached-only[Require that remote dependencies are already cached]' \ +'--failfast[Stop on first error]' \ +'--allow-none[Don'\''t return error code if no test files are found]' \ +'-h[Prints help information]' \ +'--help[Prints help information]' \ +'-V[Prints version information]' \ +'--version[Prints version information]' \ +'-q[Suppress diagnostic output]' \ +'--quiet[Suppress diagnostic output]' \ +'::files -- List of file names to run:_files' \ +&& ret=0 +;; +(types) +_arguments "${_arguments_options[@]}" \ +'-L+[Set log level]: :(debug info)' \ +'--log-level=[Set log level]: :(debug info)' \ +'--unstable[Enable unstable APIs]' \ +'-h[Prints help information]' \ +'--help[Prints help information]' \ +'-V[Prints version information]' \ +'--version[Prints version information]' \ +'-q[Suppress diagnostic output]' \ +'--quiet[Suppress diagnostic output]' \ +&& ret=0 +;; +(upgrade) +_arguments "${_arguments_options[@]}" \ +'--version=[The version to upgrade to]' \ +'--output=[The path to output the updated version to]' \ +'--cert=[Load certificate authority from PEM encoded file]' \ +'-L+[Set log level]: :(debug info)' \ +'--log-level=[Set log level]: :(debug info)' \ +'--dry-run[Perform all checks without replacing old exe]' \ +'-f[Replace current exe even if not out-of-date]' \ +'--force[Replace current exe even if not out-of-date]' \ +'-h[Prints help information]' \ +'--help[Prints help information]' \ +'-q[Suppress diagnostic output]' \ +'--quiet[Suppress diagnostic output]' \ +&& ret=0 +;; +(help) +_arguments "${_arguments_options[@]}" \ +'-L+[Set log level]: :(debug info)' \ +'--log-level=[Set log level]: :(debug info)' \ +'-h[Prints help information]' \ +'--help[Prints help information]' \ +'-V[Prints version information]' \ +'--version[Prints version information]' \ +'-q[Suppress diagnostic output]' \ +'--quiet[Suppress diagnostic output]' \ +&& ret=0 +;; + esac + ;; +esac +} + +(( $+functions[_deno_commands] )) || +_deno_commands() { + local commands; commands=( + "bundle:Bundle module and dependencies into single file" \ +"cache:Cache the dependencies" \ +"completions:Generate shell completions" \ +"doc:Show documentation for a module" \ +"eval:Eval script" \ +"fmt:Format source files" \ +"info:Show info about cache or info related to source file" \ +"install:Install script as an executable" \ +"lint:Lint source files" \ +"repl:Read Eval Print Loop" \ +"run:Run a program given a filename or url to the module. Use '-' as a filename to read from stdin." \ +"test:Run tests" \ +"types:Print runtime TypeScript declarations" \ +"upgrade:Upgrade deno executable to given version" \ +"help:Prints this message or the help of the given subcommand(s)" \ + ) + _describe -t commands 'deno commands' commands "$@" +} +(( $+functions[_deno__bundle_commands] )) || +_deno__bundle_commands() { + local commands; commands=( + + ) + _describe -t commands 'deno bundle commands' commands "$@" +} +(( $+functions[_deno__cache_commands] )) || +_deno__cache_commands() { + local commands; commands=( + + ) + _describe -t commands 'deno cache commands' commands "$@" +} +(( $+functions[_deno__completions_commands] )) || +_deno__completions_commands() { + local commands; commands=( + + ) + _describe -t commands 'deno completions commands' commands "$@" +} +(( $+functions[_deno__doc_commands] )) || +_deno__doc_commands() { + local commands; commands=( + + ) + _describe -t commands 'deno doc commands' commands "$@" +} +(( $+functions[_deno__eval_commands] )) || +_deno__eval_commands() { + local commands; commands=( + + ) + _describe -t commands 'deno eval commands' commands "$@" +} +(( $+functions[_deno__fmt_commands] )) || +_deno__fmt_commands() { + local commands; commands=( + + ) + _describe -t commands 'deno fmt commands' commands "$@" +} +(( $+functions[_deno__help_commands] )) || +_deno__help_commands() { + local commands; commands=( + + ) + _describe -t commands 'deno help commands' commands "$@" +} +(( $+functions[_deno__info_commands] )) || +_deno__info_commands() { + local commands; commands=( + + ) + _describe -t commands 'deno info commands' commands "$@" +} +(( $+functions[_deno__install_commands] )) || +_deno__install_commands() { + local commands; commands=( + + ) + _describe -t commands 'deno install commands' commands "$@" +} +(( $+functions[_deno__lint_commands] )) || +_deno__lint_commands() { + local commands; commands=( + + ) + _describe -t commands 'deno lint commands' commands "$@" +} +(( $+functions[_deno__repl_commands] )) || +_deno__repl_commands() { + local commands; commands=( + + ) + _describe -t commands 'deno repl commands' commands "$@" +} +(( $+functions[_deno__run_commands] )) || +_deno__run_commands() { + local commands; commands=( + + ) + _describe -t commands 'deno run commands' commands "$@" +} +(( $+functions[_deno__test_commands] )) || +_deno__test_commands() { + local commands; commands=( + + ) + _describe -t commands 'deno test commands' commands "$@" +} +(( $+functions[_deno__types_commands] )) || +_deno__types_commands() { + local commands; commands=( + + ) + _describe -t commands 'deno types commands' commands "$@" +} +(( $+functions[_deno__upgrade_commands] )) || +_deno__upgrade_commands() { + local commands; commands=( + + ) + _describe -t commands 'deno upgrade commands' commands "$@" +} + +_deno "$@" \ No newline at end of file diff --git a/linux/omz/vbalien.zsh-theme b/linux/omz/vbalien.zsh-theme new file mode 100644 index 0000000..f749eee --- /dev/null +++ b/linux/omz/vbalien.zsh-theme @@ -0,0 +1,259 @@ +# vim:ft=zsh ts=2 sw=2 sts=2 +# +# agnoster's Theme - https://gist.github.com/3712874 +# A Powerline-inspired theme for ZSH +# +# # README +# +# In order for this theme to render correctly, you will need a +# [Powerline-patched font](https://github.com/Lokaltog/powerline-fonts). +# Make sure you have a recent version: the code points that Powerline +# uses changed in 2012, and older versions will display incorrectly, +# in confusing ways. +# +# In addition, I recommend the +# [Solarized theme](https://github.com/altercation/solarized/) and, if you're +# using it on Mac OS X, [iTerm 2](https://iterm2.com/) over Terminal.app - +# it has significantly better color fidelity. +# +# If using with "light" variant of the Solarized color schema, set +# SOLARIZED_THEME variable to "light". If you don't specify, we'll assume +# you're using the "dark" variant. +# +# # Goals +# +# The aim of this theme is to only show you *relevant* information. Like most +# prompts, it will only show git information when in a git working directory. +# However, it goes a step further: everything from the current user and +# hostname to whether the last call exited with an error to whether background +# jobs are running in this shell will all be displayed automatically when +# appropriate. + +### Segment drawing +# A few utility functions to make it easy and re-usable to draw segmented prompts + +CURRENT_BG='NONE' + +case ${SOLARIZED_THEME:-dark} in + light) CURRENT_FG='white';; + *) CURRENT_FG='black';; +esac + +# Special Powerline characters + +() { + local LC_ALL="" LC_CTYPE="en_US.UTF-8" + # NOTE: This segment separator character is correct. In 2012, Powerline changed + # the code points they use for their special characters. This is the new code point. + # If this is not working for you, you probably have an old version of the + # Powerline-patched fonts installed. Download and install the new version. + # Do not submit PRs to change this unless you have reviewed the Powerline code point + # history and have new information. + # This is defined using a Unicode escape sequence so it is unambiguously readable, regardless of + # what font the user is viewing this source code in. Do not replace the + # escape sequence with a single literal character. + # Do not change this! Do not make it '\u2b80'; that is the old, wrong code point. + SEGMENT_SEPARATOR=$'' +} + +# Begin a segment +# Takes two arguments, background and foreground. Both can be omitted, +# rendering default background/foreground. +prompt_segment() { + local bg fg + [[ -n $1 ]] && bg="%K{$1}" || bg="%k" + [[ -n $2 ]] && fg="%F{$2}" || fg="%f" + if [[ $CURRENT_BG != 'NONE' && $1 != $CURRENT_BG ]]; then + echo -n " %{$bg%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR%{$fg%} " + else + echo -n "%{$bg%}%{$fg%} " + fi + CURRENT_BG=$1 + [[ -n $3 ]] && echo -n $3 +} + +# End the prompt, closing any open segments +prompt_end() { + if [[ -n $CURRENT_BG ]]; then + echo -n " %{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR" + else + echo -n "%{%k%}" + fi + echo -n "%{%f%}" + CURRENT_BG='' +} + +### Prompt components +# Each component will draw itself, and hide itself if no information needs to be shown + +# Context: user@hostname (who am I and where am I) +prompt_context() { + if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then + prompt_segment black default "%(!.%{%F{yellow}%}.)%n@%m" + fi +} + +# Git: branch/detached head, dirty status +prompt_git() { + (( $+commands[git] )) || return + if [[ "$(git config --get oh-my-zsh.hide-status 2>/dev/null)" = 1 ]]; then + return + fi + local PL_BRANCH_CHAR + () { + local LC_ALL="" LC_CTYPE="en_US.UTF-8" + PL_BRANCH_CHAR=$'\ue0a0' #  + } + local ref dirty mode repo_path + + if [[ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]]; then + repo_path=$(git rev-parse --git-dir 2>/dev/null) + dirty=$(parse_git_dirty) + ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git rev-parse --short HEAD 2> /dev/null)" + if [[ -n $dirty ]]; then + prompt_segment yellow black + else + prompt_segment green $CURRENT_FG + fi + + if [[ -e "${repo_path}/BISECT_LOG" ]]; then + mode=" " + elif [[ -e "${repo_path}/MERGE_HEAD" ]]; then + mode=" >M<" + elif [[ -e "${repo_path}/rebase" || -e "${repo_path}/rebase-apply" || -e "${repo_path}/rebase-merge" || -e "${repo_path}/../.dotest" ]]; then + mode=" >R>" + fi + + setopt promptsubst + autoload -Uz vcs_info + + zstyle ':vcs_info:*' enable git + zstyle ':vcs_info:*' get-revision true + zstyle ':vcs_info:*' check-for-changes true + zstyle ':vcs_info:*' stagedstr '✚' + zstyle ':vcs_info:*' unstagedstr '●' + zstyle ':vcs_info:*' formats ' %u%c' + zstyle ':vcs_info:*' actionformats ' %u%c' + vcs_info + echo -n "${ref/refs\/heads\//$PL_BRANCH_CHAR }${vcs_info_msg_0_%% }${mode}" + fi +} + +prompt_bzr() { + (( $+commands[bzr] )) || return + + # Test if bzr repository in directory hierarchy + local dir="$PWD" + while [[ ! -d "$dir/.bzr" ]]; do + [[ "$dir" = "/" ]] && return + dir="${dir:h}" + done + + local bzr_status status_mod status_all revision + if bzr_status=$(bzr status 2>&1); then + status_mod=$(echo -n "$bzr_status" | head -n1 | grep "modified" | wc -m) + status_all=$(echo -n "$bzr_status" | head -n1 | wc -m) + revision=$(bzr log -r-1 --log-format line | cut -d: -f1) + if [[ $status_mod -gt 0 ]] ; then + prompt_segment yellow black "bzr@$revision ✚" + else + if [[ $status_all -gt 0 ]] ; then + prompt_segment yellow black "bzr@$revision" + else + prompt_segment green black "bzr@$revision" + fi + fi + fi +} + +prompt_hg() { + (( $+commands[hg] )) || return + local rev st branch + if $(hg id >/dev/null 2>&1); then + if $(hg prompt >/dev/null 2>&1); then + if [[ $(hg prompt "{status|unknown}") = "?" ]]; then + # if files are not added + prompt_segment red white + st='±' + elif [[ -n $(hg prompt "{status|modified}") ]]; then + # if any modification + prompt_segment yellow black + st='±' + else + # if working copy is clean + prompt_segment green $CURRENT_FG + fi + echo -n $(hg prompt "☿ {rev}@{branch}") $st + else + st="" + rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g') + branch=$(hg id -b 2>/dev/null) + if `hg st | grep -q "^\?"`; then + prompt_segment red black + st='±' + elif `hg st | grep -q "^[MA]"`; then + prompt_segment yellow black + st='±' + else + prompt_segment green $CURRENT_FG + fi + echo -n "☿ $rev@$branch" $st + fi + fi +} + +# Dir: current working directory +prompt_dir() { + prompt_segment red $CURRENT_FG '%~' +} + +# Virtualenv: current working virtualenv +prompt_virtualenv() { + local virtualenv_path="$VIRTUAL_ENV" + if [[ -n $virtualenv_path && -n $VIRTUAL_ENV_DISABLE_PROMPT ]]; then + prompt_segment blue black "(`basename $virtualenv_path`)" + fi +} + +# Status: +# - was there an error +# - am I root +# - are there background jobs? +prompt_status() { + local -a symbols + + [[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}✘" + [[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡" + [[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}⚙" + + [[ -n "$symbols" ]] && prompt_segment black default "$symbols" +} + +#AWS Profile: +# - display current AWS_PROFILE name +# - displays yellow on red if profile name contains 'production' or +# ends in '-prod' +# - displays black on green otherwise +prompt_aws() { + [[ -z "$AWS_PROFILE" ]] && return + case "$AWS_PROFILE" in + *-prod|*production*) prompt_segment red yellow "AWS: $AWS_PROFILE" ;; + *) prompt_segment green black "AWS: $AWS_PROFILE" ;; + esac +} + +## Main prompt +build_prompt() { + RETVAL=$? + prompt_status + prompt_virtualenv + prompt_aws + prompt_context + prompt_dir + prompt_git + prompt_bzr + prompt_hg + prompt_end +} + +PROMPT='%{%f%b%k%}$(build_prompt) ' diff --git a/linux/pam_environment b/linux/pam_environment new file mode 100644 index 0000000..a956b93 --- /dev/null +++ b/linux/pam_environment @@ -0,0 +1,11 @@ +GTK_IM_MODULE DEFAULT=fcitx +QT_IM_MODULE DEFAULT=fcitx +XMODIFIERS DEFAULT=@im=fcitx + +GTK_THEME DEFAULT=Numix:dark +GTK2_RC_FILES DEFAULT=/usr/share/themes/Numix/gtk-2.0/gtkrc + +BROWSER DEFAULT=google-chrome-stable + +QT_STYLE_OVERRIDE DEFAULT=GTK+ +QT_QPA_PLATFORMTHEME DEFAULT=gtk2 diff --git a/linux/picom/picom.conf b/linux/picom/picom.conf new file mode 100644 index 0000000..622191a --- /dev/null +++ b/linux/picom/picom.conf @@ -0,0 +1,418 @@ +################################# +# Corners # +################################# +# requires: https://github.com/sdhand/compton +corner-radius = 10.0; +rounded-corners-exclude = [ + #"window_type = 'normal'", + #"class_g = 'Rofi'", + "class_g = 'Polybar'", + "name = 'Polybar tray window'", + #"class_g = 'code-oss'", + #"class_g = 'TelegramDesktop'", + #"class_g = 'firefox'", + #"class_g = 'Thunderbird'" +]; +round-borders = 1; +round-borders-exclude = [ + #"class_g = 'TelegramDesktop'", +]; + +################################# +# Shadows # +################################# + +# Enabled client-side shadows on windows. +shadow = false; +# The blur radius for shadows. (default 12) +shadow-radius = 18; +# The left offset for shadows. (default -15) +shadow-offset-x = -15; +# The top offset for shadows. (default -15) +shadow-offset-y = -15; +# The translucency for shadows. (default .75) +shadow-opacity = 0.25; + +shadow-exclude = [ + "name = 'Notification'", + "class_g = 'Conky'", + "class_g ?= 'Notify-osd'", + "class_g = 'Cairo-clock'", + "class_g = 'slop'", + "class_g = 'Polybar'", + "_GTK_FRAME_EXTENTS@:c" +]; + +# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners) +shadow-ignore-shaped = false; + +################################# +# Fading # +################################# + + +# Fade windows in/out when opening/closing and when opacity changes, +# unless no-fading-openclose is used. +# fading = false +fading = true; + +# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) +# fade-in-step = 0.028 +fade-in-step = 0.05; + +# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) +# fade-out-step = 0.03 +fade-out-step = 0.3; + +# The time between steps in fade step, in milliseconds. (> 0, defaults to 10) +# fade-delta = 10 + +# Specify a list of conditions of windows that should not be faded. +# don't need this, we disable fading for all normal windows with wintypes: {} +fade-exclude = [ + "class_g = 'slop'" # maim +] + +# Do not fade on window open/close. +# no-fading-openclose = false + +# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc. +# no-fading-destroyed-argb = false + + +################################# +# Transparency / Opacity # +################################# + + +# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) +# inactive-opacity = 1 +inactive-opacity = 0.8; + +# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) +# frame-opacity = 1.0 +frame-opacity = 1; + +# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0) +# menu-opacity = 1.0 + +# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows. +# inactive-opacity-override = true +inactive-opacity-override = false; + +# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) +active-opacity = 1; + +# Dim inactive windows. (0.0 - 1.0, defaults to 0.0) +# inactive-dim = 0.0 + +# Specify a list of conditions of windows that should always be considered focused. +# focus-exclude = [] +focus-exclude = [ + "class_g = 'Cairo-clock'", + "class_g = 'Bar'", # lemonbar + "class_g = 'slop'" # maim +]; + +# Use fixed inactive dim value, instead of adjusting according to window opacity. +# inactive-dim-fixed = 1.0 + +# Specify a list of opacity rules, in the format `PERCENT:PATTERN`, +# like `50:name *= "Firefox"`. picom-trans is recommended over this. +# Note we don't make any guarantee about possible conflicts with other +# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows. +# example: +# opacity-rule = [ "80:class_g = 'URxvt'" ]; +# +# opacity-rule = [] +opacity-rule = [ + "100:class_g = 'Polybar'", + "96:class_g = 'Rofi'", + "100:name = 'Picture in picture'", + "100:class_g = 'baka-mplayer'", +]; + + +################################# +# Background-Blurring # +################################# + + +# Parameters for background blurring, see the *BLUR* section for more information. +# blur-method = +# blur-size = 12 +# +# blur-deviation = false + +# Blur background of semi-transparent / ARGB windows. +# Bad in performance, with driver-dependent behavior. +# The name of the switch may change without prior notifications. +# +# blur-background = true; +# blur-strength = 12; + +# Blur background of windows when the window frame is not opaque. +# Implies: +# blur-background +# Bad in performance, with driver-dependent behavior. The name may change. +# +# blur-background-frame = false; + + +# Use fixed blur strength rather than adjusting according to window opacity. +# blur-background-fixed = false; + + +# Specify the blur convolution kernel, with the following format: +# example: +# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; +# +# blur-kern = '' +# blur-kern = "5x5box"; +blur: { + method = "kawase"; + strength = 4; + background = false; + background-frame = false; + background-fixed = false; +} + +# Exclude conditions for background blur. +blur-background-exclude = [ + #"window_type = 'dock'", + #"window_type = 'desktop'", + #"class_g = 'URxvt'", + # + # prevents picom from blurring the background + # when taking selection screenshot with `main` + # https://github.com/naelstrof/maim/issues/130 + "class_g = 'slop'", + "_GTK_FRAME_EXTENTS@:c", +]; + + +################################# +# General Settings # +################################# + +# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers. +# daemon = false + +# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. +# `xrender` is the default one. +# +experimental-backends = true; +backend = "glx"; +#backend = "xrender"; + + +# Enable/disable VSync. +# vsync = false +vsync = true + +# Enable remote control via D-Bus. See the *D-BUS API* section below for more details. +# dbus = false + +# Try to detect WM windows (a non-override-redirect window with no +# child that has 'WM_STATE') and mark them as active. +# +# mark-wmwin-focused = false +mark-wmwin-focused = true; + +# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused. +# mark-ovredir-focused = false +mark-ovredir-focused = false; + +# Try to detect windows with rounded corners and don't consider them +# shaped windows. The accuracy is not very high, unfortunately. +# +# detect-rounded-corners = false +detect-rounded-corners = true; + +# Detect '_NET_WM_OPACITY' on client windows, useful for window managers +# not passing '_NET_WM_OPACITY' of client windows to frame windows. +# +# detect-client-opacity = false +detect-client-opacity = true; + +# Specify refresh rate of the screen. If not specified or 0, picom will +# try detecting this with X RandR extension. +# +# refresh-rate = 60 +refresh-rate = 0 + +# Limit picom to repaint at most once every 1 / 'refresh_rate' second to +# boost performance. This should not be used with +# vsync drm/opengl/opengl-oml +# as they essentially does sw-opti's job already, +# unless you wish to specify a lower refresh rate than the actual value. +# +# sw-opti = + +# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, +# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, +# provided that the WM supports it. +# +# use-ewmh-active-win = false + +# Unredirect all windows if a full-screen opaque window is detected, +# to maximize performance for full-screen windows. Known to cause flickering +# when redirecting/unredirecting windows. paint-on-overlay may make the flickering less obvious. +# +# unredir-if-possible = false + +# Delay before unredirecting the window, in milliseconds. Defaults to 0. +# unredir-if-possible-delay = 0 + +# Conditions of windows that shouldn't be considered full-screen for unredirecting screen. +# unredir-if-possible-exclude = [] + +# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows +# in the same group focused at the same time. +# +# detect-transient = false +detect-transient = true + +# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same +# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if +# detect-transient is enabled, too. +# +# detect-client-leader = false +detect-client-leader = true + +# Resize damaged region by a specific number of pixels. +# A positive value enlarges it while a negative one shrinks it. +# If the value is positive, those additional pixels will not be actually painted +# to screen, only used in blur calculation, and such. (Due to technical limitations, +# with use-damage, those pixels will still be incorrectly painted to screen.) +# Primarily used to fix the line corruption issues of blur, +# in which case you should use the blur radius value here +# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, +# with a 5x5 one you use `--resize-damage 2`, and so on). +# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly. +# +# resize-damage = 1 + +# Specify a list of conditions of windows that should be painted with inverted color. +# Resource-hogging, and is not well tested. +# +# invert-color-include = [] + +# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. +# Might cause incorrect opacity when rendering transparent content (but never +# practically happened) and may not work with blur-background. +# My tests show a 15% performance boost. Recommended. +# +# glx-no-stencil = false + +# GLX backend: Avoid rebinding pixmap on window damage. +# Probably could improve performance on rapid window content changes, +# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). +# Recommended if it works. +# +# glx-no-rebind-pixmap = false + +# Disable the use of damage information. +# This cause the whole screen to be redrawn everytime, instead of the part of the screen +# has actually changed. Potentially degrades the performance, but might fix some artifacts. +# The opposing option is use-damage +# +# no-use-damage = false +use-damage = true + +# Use X Sync fence to sync clients' draw calls, to make sure all draw +# calls are finished before picom starts drawing. Needed on nvidia-drivers +# with GLX backend for some users. +# +# xrender-sync-fence = false + +# GLX backend: Use specified GLSL fragment shader for rendering window contents. +# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` +# in the source tree for examples. +# +# glx-fshader-win = '' + +# Force all windows to be painted with blending. Useful if you +# have a glx-fshader-win that could turn opaque pixels transparent. +# +# force-win-blend = false + +# Do not use EWMH to detect fullscreen windows. +# Reverts to checking if a window is fullscreen based only on its size and coordinates. +# +# no-ewmh-fullscreen = false + +# Dimming bright windows so their brightness doesn't exceed this set value. +# Brightness of a window is estimated by averaging all pixels in the window, +# so this could comes with a performance hit. +# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0) +# +# max-brightness = 1.0 + +# Make transparent windows clip other windows like non-transparent windows do, +# instead of blending on top of them. +# +# transparent-clipping = false + +# Set the log level. Possible values are: +# "trace", "debug", "info", "warn", "error" +# in increasing level of importance. Case doesn't matter. +# If using the "TRACE" log level, it's better to log into a file +# using *--log-file*, since it can generate a huge stream of logs. +# +# log-level = "debug" +log-level = "info"; + +# Set the log file. +# If *--log-file* is never specified, logs will be written to stderr. +# Otherwise, logs will to written to the given file, though some of the early +# logs might still be written to the stderr. +# When setting this option from the config file, it is recommended to use an absolute path. +# +# log-file = '/path/to/your/log/file' + +# Show all X errors (for debugging) +# show-all-xerrors = false + +# Write process ID to a file. +# write-pid-path = '/path/to/your/log/file' + +# Window type settings +# +# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: +# "unknown", "desktop", "dock", "toolbar", "menu", "utility", +# "splash", "dialog", "normal", "dropdown_menu", "popup_menu", +# "tooltip", "notification", "combo", and "dnd". +# +# Following per window-type options are available: :: +# +# fade, shadow::: +# Controls window-type-specific shadow and fade settings. +# +# opacity::: +# Controls default opacity of the window type. +# +# focus::: +# Controls whether the window of this type is to be always considered focused. +# (By default, all window types except "normal" and "dialog" has this on.) +# +# full-shadow::: +# Controls whether shadow is drawn under the parts of the window that you +# normally won't be able to see. Useful when the window has parts of it +# transparent, and you want shadows in those areas. +# +# redir-ignore::: +# Controls whether this type of windows should cause screen to become +# redirected again after been unredirected. If you have unredir-if-possible +# set, and doesn't want certain window to cause unnecessary screen redirection, +# you can set this to `true`. +# +wintypes: +{ + normal = { fade = true; } + tooltip = { fade = true; shadow = false; opacity = 0.75; focus = true; full-shadow = false; }; + dock = { shadow = false; } + dnd = { shadow = false; } + popup_menu = { opacity = 0.8; } + dropdown_menu = { opacity = 0.8; } +}; diff --git a/linux/polybar/config b/linux/polybar/config new file mode 100644 index 0000000..9133681 --- /dev/null +++ b/linux/polybar/config @@ -0,0 +1,201 @@ +;========================================================== +; +; +; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗ +; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗ +; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝ +; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗ +; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║ +; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ +; +; +; To learn more about how to configure Polybar +; go to https://github.com/polybar/polybar +; +; The README contains a lot of information +; +;========================================================== + +[colors] +;background = ${xrdb:color0:#222} +background = #77222222 +background-alt = #444 +;foreground = ${xrdb:color7:#222} +foreground = #dfdfdf +foreground-alt = #555 +primary = #ffb52a +secondary = #e60053 +alert = #bd2c40 + +[bar/mybar] +;monitor = ${env:MONITOR:HDMI-1} +width = 100% +height = 27 +offset-x = 0% +offset-y = 0% +radius = 0.0 +fixed-center = false + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 3 +line-color = #f00 + +border-size = 0 +border-color = #00000000 + +padding-left = 0 +padding-right = 0 + +module-margin-left = 1 +module-margin-right = 2 + +font-0 = NanumBarunGothic:pixelsize=10;1 +font-1 = unifont:fontformat=truetype:size=8:antialias=false;0 +font-2 = siji:pixelsize=10;1 + +modules-left = bspwm +modules-center = xwindow +modules-right = pulseaudio wlan eth date + +tray-position = right +tray-padding = 2 +;tray-detached = true +;tray-offset-x = -10 +;tray-background = #0063ff + +;wm-restack = bspwm +;wm-restack = i3 + +;override-redirect = true + +;scroll-up = bspwm-desknext +;scroll-down = bspwm-deskprev + +;scroll-up = i3wm-wsnext +;scroll-down = i3wm-wsprev + +cursor-click = pointer +cursor-scroll = ns-resize + +[module/xwindow] +type = internal/xwindow +label = %title:0:100:...% + +[module/bspwm] +type = internal/bspwm + +label-focused = %index% +label-focused-background = ${colors.background-alt} +label-focused-underline= ${colors.primary} +label-focused-padding = 2 + +label-occupied = %index% +label-occupied-padding = 2 + +label-urgent = %index%! +label-urgent-background = ${colors.alert} +label-urgent-padding = 2 + +label-empty = %index% +label-empty-foreground = ${colors.foreground-alt} +label-empty-padding = 2 + +; Separator in between workspaces +; label-separator = | + +[module/wlan] +type = internal/network +interface = wlp2s0 +interval = 3.0 + +format-connected = +format-connected-underline = #9f78e1 +label-connected = %essid% + +format-disconnected = +;format-disconnected = +;format-disconnected-underline = ${self.format-connected-underline} +;label-disconnected = %ifname% disconnected +;label-disconnected-foreground = ${colors.foreground-alt} + +ramp-signal-0 =  +ramp-signal-1 =  +ramp-signal-2 =  +ramp-signal-3 =  +ramp-signal-4 =  +ramp-signal-foreground = ${colors.foreground-alt} + +[module/eth] +type = internal/network +interface = enp3s0 +interval = 3.0 + +format-connected-underline = #55aa55 +format-connected-prefix = " " +format-connected-prefix-foreground = ${colors.foreground-alt} +label-connected = %local_ip% + +format-disconnected = +;format-disconnected = +;format-disconnected-underline = ${self.format-connected-underline} +;label-disconnected = %ifname% disconnected +;label-disconnected-foreground = ${colors.foreground-alt} + +[module/date] +type = internal/date +interval = 5 + +date = +date-alt = " %Y-%m-%d" + +time = %H:%M +time-alt = %H:%M:%S + +format-prefix =  +format-prefix-foreground = ${colors.foreground-alt} +format-underline = #0a6cf5 + +label = %date% %time% + +[module/pulseaudio] +type = internal/pulseaudio + +format-volume = +label-volume = VOL %percentage%% +label-volume-foreground = ${root.foreground} + +label-muted = 🔇 muted +label-muted-foreground = #666 + +bar-volume-width = 10 +bar-volume-foreground-0 = #55aa55 +bar-volume-foreground-1 = #55aa55 +bar-volume-foreground-2 = #55aa55 +bar-volume-foreground-3 = #55aa55 +bar-volume-foreground-4 = #55aa55 +bar-volume-foreground-5 = #f5a70a +bar-volume-foreground-6 = #ff5555 +bar-volume-gradient = false +bar-volume-indicator = | +bar-volume-indicator-font = 2 +bar-volume-fill = ─ +bar-volume-fill-font = 2 +bar-volume-empty = ─ +bar-volume-empty-font = 2 +bar-volume-empty-foreground = ${colors.foreground-alt} + +[settings] +screenchange-reload = true +;compositing-background = xor +;compositing-background = screen +;compositing-foreground = source +;compositing-border = over +;pseudo-transparency = false + +[global/wm] +margin-top = 5 +margin-bottom = 5 + +; vim:ft=dosini diff --git a/linux/rofi/config.rasi b/linux/rofi/config.rasi new file mode 100644 index 0000000..3e9128d --- /dev/null +++ b/linux/rofi/config.rasi @@ -0,0 +1,8 @@ +configuration { + font: "TerminessTTF Nerd Font 14"; + show-icons: true; + icon-theme: "Numix-Circle"; + combi-modi: "window,drun,ssh"; + theme: "numix"; + lines: 5; +} diff --git a/linux/rofi/numix.rasi b/linux/rofi/numix.rasi new file mode 100644 index 0000000..e349f7b --- /dev/null +++ b/linux/rofi/numix.rasi @@ -0,0 +1,144 @@ +/** + * ROFI Color theme + * User: JT (adpated from lb by Qball) + * Copyright: Dave Davenport + */ + +* { + selected-normal-foreground: @foreground; + foreground: #FFFFFF; + normal-foreground: @foreground; + alternate-normal-background: rgba ( 255, 255, 255, 7 % ); + red: rgba ( 220, 50, 47, 100 % ); + selected-urgent-foreground: rgba ( 51, 51, 51, 100 % ); + blue: rgba ( 38, 139, 210, 100 % ); + urgent-foreground: rgba ( 255, 153, 153, 100 % ); + alternate-urgent-background: rgba ( 255, 255, 255, 7 % ); + active-foreground: @bordercolor; + lightbg: rgba ( 238, 232, 213, 100 % ); + selected-active-foreground: @foreground; + alternate-active-background: rgba ( 255, 255, 255, 7 % ); + background: rgba ( 21, 21, 21, 40 % ); + bordercolor: rgba ( 235, 86, 77, 100 % ); + alternate-normal-foreground: @foreground; + normal-background: rgba ( 0, 0, 0, 0 % ); + lightfg: rgba ( 88, 104, 117, 100 % ); + selected-normal-background: @bordercolor; + border-color: @bordercolor; + spacing: 2; + separatorcolor: @bordercolor; + urgent-background: rgba ( 0, 0, 0, 0 % ); + selected-urgent-background: rgba ( 255, 153, 153, 100 % ); + alternate-urgent-foreground: @urgent-foreground; + background-color: rgba ( 0, 0, 0, 0 % ); + alternate-active-foreground: @active-foreground; + active-background: rgba ( 0, 0, 0, 0 % ); + selected-active-background: @bordercolor; +} +#window { + background-color: @background; + border: 1; + border-radius: 10; + padding: 5; +} +#mainbox { + border: 0; + padding: 0; +} +#message { + border: 1px dash 0px 0px ; + border-color: @separatorcolor; + padding: 1px ; +} +#textbox { + text-color: @foreground; +} +#listview { + fixed-height: 0; + border: 2px solid 0px 0px ; + border-color: @separatorcolor; + spacing: 2px ; + scrollbar: true; + padding: 2px 0px 0px ; +} +#element { + border: 0; + padding: 10px 1px; +} +#element.normal.normal { + background-color: @normal-background; + text-color: @normal-foreground; +} +#element.normal.urgent { + background-color: @urgent-background; + text-color: @urgent-foreground; +} +#element.normal.active { + background-color: @active-background; + text-color: @active-foreground; +} +#element.selected.normal { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +#element.selected.urgent { + background-color: @selected-urgent-background; + text-color: @selected-urgent-foreground; +} +#element.selected.active { + background-color: @selected-active-background; + text-color: @selected-active-foreground; +} +#element.alternate.normal { + background-color: @alternate-normal-background; + text-color: @alternate-normal-foreground; +} +#element.alternate.urgent { + background-color: @alternate-urgent-background; + text-color: @alternate-urgent-foreground; +} +#element.alternate.active { + background-color: @alternate-active-background; + text-color: @alternate-active-foreground; +} +#scrollbar { + width: 4px ; + border: 0; + handle-width: 8px ; + padding: 0; + handle-color: @bordercolor; +} +#sidebar { + border: 2px dash 0px 0px ; + border-color: @separatorcolor; +} +#button.selected { + background-color: @selected-normal-background; + text-color: @selected-normal-foreground; +} +#inputbar { + spacing: 0; + text-color: @normal-foreground; + padding: 1px ; +} +#case-indicator { + spacing: 0; + text-color: @normal-foreground; +} +#entry { + spacing: 0; + text-color: @normal-foreground; +} +#prompt { + spacing: 0; + text-color: @normal-foreground; +} +#inputbar { + children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; +} +#textbox-prompt-colon { + expand: false; + str: ":"; + margin: 0px 0.3em 0em 0em ; + text-color: @normal-foreground; +} diff --git a/linux/sxhkd/sxhkdrc b/linux/sxhkd/sxhkdrc new file mode 100644 index 0000000..4a6d6b1 --- /dev/null +++ b/linux/sxhkd/sxhkdrc @@ -0,0 +1,143 @@ +# +# wm independent hotkeys +# + +# terminal emulator +super + Return + alacritty + +# program launcher +super + @space + rofi -show combi + +# make sxhkd reload its configuration files: +super + Escape + pkill -USR1 -x sxhkd + +# screen capture +super + ctrl + shift + {3,4} + maim -u { ~/Pictures/screenshot.png ,-s | xclip -selection clipboard -t image/png } + +# +# bspwm hotkeys +# + +# quit/restart bspwm +super + alt + {q,r} + bspc {quit,wm -r} + +# close and kill +super + {_,shift + }w + bspc node -{c,k} + +# alternate between the tiled and monocle layout +super + m + bspc desktop -l next + +# send the newest marked node to the newest preselected node +super + y + bspc node newest.marked.local -n newest.!automatic.local + +# swap the current node and the biggest node +super + g + bspc node -s biggest + +# +# state/flags +# + +# set the window state +super + {t,shift + t, f,shift + f} + bspc node -t {tiled,pseudo_tiled,floating,fullscreen} + +super + s + bspc node -g sticky + +super + shift + p + bspc node --state \~pseudo_tiled + +# +# focus/swap +# + +# focus the node in the given direction +super + {_,shift + }{h,j,k,l} + bspc node -{f,s} {west,south,north,east} + +# focus the node for the given path jump +# super + {p,b,comma,period} +# bspc node -f @{parent,brother,first,second} + +# focus the next/previous node in the current desktop +super + {_,shift + }c + bspc node -f {next,prev}.local + +# focus the next/previous desktop in the current monitor +super + bracket{left,right} + bspc desktop -f {prev,next}.local + +# focus the last node/desktop +super + {grave,Tab} + bspc {node,desktop} -f last + +# focus the older or newer node in the focus history +super + {o,i} + bspc wm -h off; \ + bspc node {older,newer} -f; \ + bspc wm -h on + +# focus or send to the given desktop +super + {_,shift + }{1-9,0} + bspc {desktop -f,node -d} '^{1-9,10}' + +# +# preselect +# + +# preselect the direction +super + ctrl + {h,j,k,l} + bspc node -p {west,south,north,east} + +# preselect the ratio +super + ctrl + {1-9} + bspc node -o 0.{1-9} + +# cancel the preselection for the focused node +super + ctrl + space + bspc node -p cancel + +# cancel the preselection for the focused desktop +super + ctrl + shift + space + bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel + +# +# move/resize +# + +# expand a window by moving one of its side outward +super + alt + {h,j,k,l} + bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0} + +# contract a window by moving one of its side inward +super + alt + shift + {h,j,k,l} + bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0} + +# move a floating window +super + {Left,Down,Up,Right} + bspc node -v {-20 0,0 20,0 -20,20 0} + +# toggle pip mode +super + p + bspc node -g sticky; \ + bspc node --state \~floating; \ + xdotool getactivewindow windowsize 640 360 windowmove $(expr 1920 - 640 - 45) $(expr 1080 - 360 - 30) + + +XF86AudioMute + pactl set-sink-mute @DEFAULT_SINK@ toggle + +XF86AudioLowerVolume + pactl set-sink-volume @DEFAULT_SINK@ -5% + +XF86AudioRaiseVolume + pactl set-sink-volume @DEFAULT_SINK@ +5% diff --git a/linux/xinitrc b/linux/xinitrc new file mode 100644 index 0000000..5d4c036 --- /dev/null +++ b/linux/xinitrc @@ -0,0 +1,2 @@ +#!/bin/bash +exec bspwm diff --git a/linux/zshrc b/linux/zshrc new file mode 100644 index 0000000..a3e0397 --- /dev/null +++ b/linux/zshrc @@ -0,0 +1,104 @@ +# If you come from bash you might have to change your $PATH. +export PATH=$HOME/.local/bin:/usr/local/bin:$PATH + +export DENO_INSTALL="/home/vbalien/.deno" +export PATH="$DENO_INSTALL/bin:$PATH" + +# Path to your oh-my-zsh installation. +export ZSH="/home/vbalien/.oh-my-zsh" + +# Set name of the theme to load --- if set to "random", it will +# load a random theme each time oh-my-zsh is loaded, in which case, +# to know which specific one was loaded, run: echo $RANDOM_THEME +# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes +ZSH_THEME="vbalien" + +# Set list of themes to pick from when loading at random +# Setting this variable when ZSH_THEME=random will cause zsh to load +# a theme from this variable instead of looking in $ZSH/themes/ +# If set to an empty array, this variable will have no effect. +# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. +# Case-sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment the following line to disable bi-weekly auto-update checks. +# DISABLE_AUTO_UPDATE="true" + +# Uncomment the following line to automatically update without prompting. +# DISABLE_UPDATE_PROMPT="true" + +# Uncomment the following line to change how often to auto-update (in days). +# export UPDATE_ZSH_DAYS=13 + +# Uncomment the following line if pasting URLs and other text is messed up. +# DISABLE_MAGIC_FUNCTIONS="true" + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# You can set one of the optional three formats: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +ZSH_CUSTOM=$HOME/.config/omz + +# Which plugins would you like to load? +# Standard plugins can be found in $ZSH/plugins/ +# Custom plugins may be added to $ZSH_CUSTOM/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=(git deno) + +source $ZSH/oh-my-zsh.sh + +# User configuration + +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +# if [[ -n $SSH_CONNECTION ]]; then +# export EDITOR='vim' +# else +# export EDITOR='mvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch x86_64" + +# Set personal aliases, overriding those provided by oh-my-zsh libs, +# plugins, and themes. Aliases can be placed here, though oh-my-zsh +# users are encouraged to define aliases within the ZSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias zshconfig="mate ~/.zshrc" +# alias ohmyzsh="mate ~/.oh-my-zsh" +alias vim=nvim +ufetch diff --git a/mapping.ts b/mapping.ts new file mode 100755 index 0000000..617d1f3 --- /dev/null +++ b/mapping.ts @@ -0,0 +1,43 @@ +import { dot, DotOption } from "./scripts/dot.ts"; + +const linux: DotOption = { + hostname: ["MBP", "office2"], + install: [ + "sudo pacman -S git", + `bash -c "cd && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si && rm -rf ."`, + "yay -Syu", + `yay -S --needed + sxhkd bspwm rofi dunst-git visual-studio-code-bin + ttf-nanum polybar-git baka-mplayer-git + picom-ibhagwan-git alacritty zsh maim + xclip xdotool google-chrome pulseaudio + gnome-keyring pasystray polkit-gnome + gnome-settings-daemon nitrogen + fcitx5 fcitx5-qt fcitx5-gtk fcitx5-hangul fcitx5-anthy + kcm-fcitx5 numix-gtk-theme-git numix-circle-icon-theme-git`, + ], + link: [ + ["linux/alacritty", ".config/alacritty"], + ["linux/bin/ufetch", ".local/bin/ufetch"], + ["linux/bspwm", ".config/bspwm"], + ["linux/Code/User/settings.json", ".config/Code/User/settings.json"], + ["linux/dunst", ".config/dunst"], + ["linux/omz", ".config/omz"], + ["linux/picom", ".config/picom"], + ["linux/polybar", ".config/polybar"], + ["linux/rofi", ".config/rofi"], + ["linux/sxhkd", ".config/sxhkd"], + ["linux/fcitx5", ".config/fcitx5"], + ["linux/dconf", ".config/dconf"], + ["linux/bakamplayer.ini", ".config/bakamplayer.ini"], + ["linux/xinitrc", ".xinitrc"], + ["linux/pam_environment", ".pam_environment"], + ["linux/zshrc", ".zshrc"], + ], +}; + +try { + await dot(Deno.args, [linux]); +} catch (err) { + console.log(err.message); +} diff --git a/scripts/dot.ts b/scripts/dot.ts new file mode 100644 index 0000000..f6d9d38 --- /dev/null +++ b/scripts/dot.ts @@ -0,0 +1,47 @@ +import { exec } from "https://raw.githubusercontent.com/vbalien/deno-exec/master/mod.ts"; +import { parse } from "https://deno.land/std/flags/mod.ts"; +import { + existsSync, + moveSync, + ensureSymlink, +} from "https://deno.land/std/fs/mod.ts"; + +export interface DotOption { + hostname?: string | string[]; + install?: string[]; + link?: [string, string][]; +} + +export async function dot(args: string[], options: DotOption[]) { + const flags = parse(args, { alias: { n: "hostname" } }); + const hostname: string = flags.n ?? Deno.hostname(); + const target = options.find((value) => { + if (typeof value.hostname === "string") return value.hostname === hostname; + else return value.hostname?.includes(hostname); + }); + if (!target) throw Error(`${hostname} is not defined.`); + + if (flags._[0] === "install" && target.install) { + for (const command of target.install) { + try { + await exec(command); + } catch (err) { + throw Error(`${err.message}\nerror command: ${command}`); + } + } + } else if (flags._[0] === "link" && target.link) { + for (const link of target.link) { + try { + const path = `${Deno.env.get("HOME")}/${link[1]}`; + if (existsSync(path)) { + console.log(`${path} does exist. move to ${path}.bak`); + moveSync(path, `${path}.bak`); + } + await ensureSymlink(Deno.realPathSync(link[0]), path); + console.log(`Link: ${path}`); + } catch (err) { + throw Error(`${err.message}\nerror link: ${JSON.stringify(link)}`); + } + } + } +}