XKBIND(1)

πŸ’… XKBIND πŸ’… β€” the General Commands Manual one, section 1

okay so picture this: it's xkbind(1) and it's literally the most low-key iconic little X utility you've never met. let's get into it 🫢


✨ NAME ✨

xkbind β€” X Keyboard Extension Indicator for the X Window System πŸŽ€


🌸 SYNOPSIS 🌸

xkbind -help
xkbind -version
xkbind [-display displayname] [-force] [-nodetach] [-defgrp group]
[-deflbl label] [-label0 label] [-label1 label] [-label2 label] [-label3
label] [-iname <name list>] [-iclass <class list>] [-ireverse]
[-inowild]

like, that's the whole vibe check right there πŸ’–


πŸ¦‹ DESCRIPTION πŸ¦‹

so xkbind (the X Keyboard Extension Indicator, if you're being formal) is a small and light indicator of your keyboard layout β€” that's your XKB group β€” for the X Window System. it shows the current keyboard layout in the titles of top-level windows. slay.

and here's the part that's giving main character energy: xkbind lets you simulate a separate keyboard layout for each handled window, and it plays nice with most window managers. no cap. πŸ‘‘

xkbind exits 0 on success, and greater than 0 if an error occurs. periodt.


πŸ’– OPTIONS πŸ’–

okay bestie, xkbind accepts a bunch of options, and most of them can be dropped either on the command line, in the user's $HOME/.xkbindrc, $HOME/.Xdefaults (or $HOME/.Xresources), or in the system-wide configuration file. full rundown below, no skips 🫢

the command line option is listed first, with the corresponding X resource name (if any) in parentheses afterward. and listen β€” options specified on the command line have the highest priority. also very important: the -version and -help options are interpreted even if xkbind can not open the display. they're built different.

  • -help β€” print a short help message to stderr and exit.
  • -version β€” print a version number of xkbind to stderr and exit.
  • -force β€” do not allow xkbind to automatically check for the existence of its own copy already running on the specified X server.
  • -nodetach β€” do not detach as a background process.
  • -display displayname (display) β€” the X server to use. this option overrides the contents of the DISPLAY environment variable.
  • -defgrp group (defgroup) β€” group number that xkbind initially binds to each handled window.
  • -deflbl label (label.default) β€” the default value for options label.group[0-3].
  • -label[0-3] label (label.group[0-3]) β€” a label string for the specified keyboard group.
  • -iname <name list> (ignore.name) β€” space- or tab-separated list of window names (WM_CLASS(res_name) property) that should be ignored by xkbind.
  • -iclass <class list> (ignore.class) β€” space- or tab-separated list of window classes (WM_CLASS(res_class) property) that should be ignored by xkbind.
  • -reverse (ignore.reverse) β€” indicates that the "ignore list" in options ignore.name and ignore.class should be interpreted as an "accept list".
  • -nowild (ignore.usewild) β€” disable pattern matching while searching in window lists.

🌈 RESOURCES 🌈

the format of the option in the X resources files is "Xkbind.option: value", where the option name is the one specified below. iykyk πŸ’…

  • display β€” the X server to use. the default is the contents of environment variable DISPLAY.
  • defgroup β€” group number that xkbind initially binds to each handled window. the default is the current group when the program starts.
  • label.default β€” the default value for options label.group[0-3]. it defaults itself to the empty string.
  • label.group[0-3] β€” a label string for the specified keyboard group. the default is the value of the label.default option.
  • ignore.name β€” space- or tab-separated list of window names (WM_CLASS(res_name) property) that should be ignored by xkbind.
  • ignore.class β€” space- or tab-separated list of window classes (WM_CLASS(res_class) property) that should be ignored by xkbind.
  • ignore.reverse β€” specifies whether or not an "ignore list" in options ignore.name and ignore.class should be interpreted as an "accept list". the default is "False".
  • ignore.usewild β€” specifies whether or not symbols '*', '?' and '\' in the name and class lists should be interpreted in the special way (like in the shell pattern matching). the default is "True".

πŸŽ€ SIGNALS πŸŽ€

  • SIGALRM
  • SIGVTALRM
  • SIGHUP
  • SIGPROF
xkbind ignores these signals. like, it literally does not care. πŸ’€
  • SIGINT
  • SIGTERM
  • SIGABRT
xkbind performs cleanup and normal exit. very demure, very mindful. 🧚

πŸ’œ ENVIRONMENT πŸ’œ

  • DISPLAY β€” default host and display number.

⭐ FILES ⭐

xkbind reads configuration options from the following files in the order of priority:

  1. $HOME/.xkbindrc β€” user's private configuration file.
  2. $HOME/.Xresources or $HOME/.Xdefaults β€” user's X defaults file.
  3. /etc/local/lib/xkbind/app-defaults/Xkbind β€” system-wide X defaults file. the actual pathname may differ on your system.

πŸ™ˆ BUGS πŸ™ˆ

Compount text encoding of international characters in label strings is not implemented. (yes, that's the real wording, i'm not touching it πŸ“)


πŸ‘‘ AUTHORS πŸ‘‘

Copyright (C) 2004 CHG

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA


okay that's the whole page bestie, and for the cute little sign-off: this is Version 2010.05.20, dated Feb 2011, filed under XKBIND(1) in the General Commands Manual. obsessed with her, honestly πŸ’…πŸ’–βœ¨