Published at http://tvraman.github.io/emacspeak/blog/x-environment-setup.html * Executive Summary This is a follow-up to [[./stumpwm-setup.html][the article on my Window Manager set-up]] and details the setup of my X environment. This setup is specifically geared around the following use-cases: 1. Emacspeak running in a window to provide a local audio desktop. 2. ChromeVox running in a second window to provide access to JS-powered WebApps. Note that for the content-oriented Web, I use Emacs' built-in EWW browser. 3. SSH running in an XTerm to my remote Linux desktop in a third window. The remote desktop runs Emacspeak and produces auditory feedback through a local speech server. The setup described below is implemented via my personal =.XResources= file --- that file along with my =.xsession= file that loads it are both checked into the GitHub repo under =emacspeak/stumpwm= along with any needed helper files. The remaining sections give a brief descriptive overview of the =.XResources= and =.xsession= files as they exist at the time of writing. * Resulting Functionality: What This Gives Us 1. You can cut-and-paste between the local Chrome and local Emacspeak using standard clipboard copy/paste commands. Make sure Emacs is set up to use the clipboard, and not the primary X selection. 2. Output displayed in the Xterm, e.g., by the remote Emacspeak session, can be brought into the local Emacspeak session by hitting =PrintEverything= bound to =Ctrl-Return= in the XTerm window. 3. Contents of the local clipboard, i.e. Chrome, Emacspeak etc., can be pasted into the remote Emacspeak running in the XTerm using key =Ctrl-Shift-Space=. * Initializing X Session Via File =.xsession= : #!/bin/sh : #Caps Lock is Control : setxkbmap -option ctrl:nocaps : #load in XResources to customize X environment : xrdb -merge $HOME/.Xresources & : #Display locks after 30 minutes of inactivity : xautolock -detectsleep -time 30 -locker "$HOME/bin/xlock" & : # Launch Emacs : emacs -title Emacs & : # XTerm for SSH to remote desktop : xterm -title Retriever & : # StumpWM Setup: Use SBCL : export LISP=sbcl : # Export our X auth environment : ${HOME}/bin/export_x_info & : # Launch StumpWM : exec /usr/local/bin/stumpwm * Customizing X Environment Via File =.XResources= : ! Setup Emacs Visual Look And Feel : Emacs*font: -adobe-Utopia-normal-normal-normal-*-*-*-*-*-*-0-iso10646-1 : Emacs.FontBackend: xft,x : Emacs.menuBar: off : Emacs.toolBar: off : Emacs.verticalScrollBars: off :! Setup XTerm Look And Feel: : XTerm*Background: black : XTerm*Foreground: white : ! Setup XTerm key-bindings to match Emacspeak : XTerm*VT100.translations: #override \n\ : Ctrl <Key>semicolon: string(0x18) string("@h") \n\ : Ctrl <Key>comma: string(0x18) string("@a") \n\ : Ctrl <Key>period: string(0x18) string("@s") \n\ : Ctrl <Key>apostrophe: string(0x18) string("@s") \n\ : Shift <Key>Return: string(0x18) string("@s") string(0x0d)\n\ : Ctrl <Key>Return: print-everything()\n\ : Ctrl Shift <Key>space: insert-selection(CLIPBOARD) :! Configure rest of XTerm : XTerm*eightBitInput: false : XTerm*faceName: xft:Inconsolata:pixelsize=14 : XTerm*metaSendsEscape: true : ! emacs-pipe.pl is under emacspeak/etc in the Emacspeak Git Repository : ! This helps us view XTerm output in a buffer in the locally running Emacspeak : XTerm.*.printerCommand: /usr/local/bin/emacs-pipe.pl : XTerm.*.printAttributes: 0 : !X Font environment : Xft*antialias: true : Xft*dpi: 96 : Xft*hinting: true : Xft*hintstyle: hintfull : Xft*rgba: rgb #+OPTIONS: ':nil *:t -:t ::t <:t H:3 \n:nil ^:t arch:headline #+OPTIONS: author:t c:nil creator:nil d:(not "LOGBOOK") date:t e:t #+OPTIONS: email:nil f:t inline:t num:t p:nil pri:nil prop:nil stat:t #+OPTIONS: tags:t tasks:t tex:t timestamp:t title:t toc:nil todo:t |:t #+TITLE:Setting Up An X Environment For Using With Emacspeak, ChromeVox and StumpWM #+DATE: <2015-09-21 Mon> #+AUTHOR: raman #+EMAIL: raman@xxxxxxxxxxx #+LANGUAGE: en #+SELECT_TAGS: export #+EXCLUDE_TAGS: noexport #+CREATOR: Emacs 25.0.50.1 (Org mode 8.3.1) -- --
|All Past Years |Current Year|
If you have questions about this archive or had problems using it, please contact us.