public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: L A Walsh <cygwin@tlinx.org>
To: "cygwin@cygwin.com" <cygwin@cygwin.com>
Subject: retry: Problem transfering X11 cut/copy buffer to windows and back
Date: Mon, 26 Aug 2019 03:25:00 -0000	[thread overview]
Message-ID: <5D633C75.5020204@tlinx.org> (raw)



-------- Original Message --------
Subject: 	Problem transfering X11 cut/copy buffer to windows and back
Date: 	Sun, 25 Aug 2019 11:51:18 -0700



Starting a few days ago, after an update to cygwin,
I'm finding it impossible to transfer
my xselection from cygwin X to any Win application or vice versa.

I've tried multpile Windows apps (Windows 7 SP1 x64)
and multiple X apps and no go.

I first noticed it in gvim -- which I run on my linux box
and display via 'X' locally.

The only thing I noticed w/X,u has been a checkmarked value about
Clipboard may use primary selection (which is checked, though I tried both
ways).

My cygwin start script is the same as it has been since
Mar23, 2018 and is below.

Having to write things out ot files is royal pain, so any ideas
would be very appreciated.

Thanks much!

Linda

Had my cygcheck.out attached, but if this gets through
perhaps such isn't allowed?


----startxwin.sh---
#!/bin/bash
# (c) LA Walsh 2004-2014, licenced under GPLv2
#export DISPLAY=:0
#export XAPPLRESDIR=/usr/X11R6/lib/X11/app-defaults
#export XCMSDB=/usr/X11R6/lib/X11/Xcms.txt
#export XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
#export XNLSPATH=/usr/X11R6/lib/X11/locale
#unexport XAPPLRESDIR XCMSDB XKEYSYMDB XNLSPATH

# see cygwin Xwin for more option examples
# relevant ops:
# -multiwindow = use windows manage; not w/(-rootless|-fullscreen)
# -clipboard = use built-in version (integrated w/windows)
# -unixkill = Enable Ctrl-Alt-BS as X-server shutdown cmnd
# -nowinkill = Disable Alt+F4 as a server shutdown key combination.
# -trayicon = (default) windows tray icon enabled
#set -x
export LIBGL_USE_WGL=1
mount -c /
export PATH=/bin:$(/bin/cygpath "$USERPROFILE")/bin:$PATH #ensure our
bin is 1st
shopt -s expand_aliases extglob
alias my=declare int=my\ -i  sub=function array=my\ -a
alias xset=$(type -P xset);
alias notify=$(type -P notifu)

my HKLM='HKEY_LOCAL_MACHINE' MsWinNT='SOFTWARE/Microsoft/Windows NT'
my DPI_Px='FontDPI/LogPixels' proc_reg='/proc/registry'
my pixels_key="$HKLM/$MsWinNT/CurrentVersion/$DPI_Px"
my pixels_path="$proc_reg/$pixels_key"

export DISPLAY="${DISPLAY:-":0"}"

sub xup {
  local stat
  read -t .1 stat <<<$(xset q >&/dev/null; echo $?)   &&
        return $stat
  ((-1)) 
}

Xwin_pids() {
  ( cd /proc  && for exe in [0-9]*/exename; do
      read ln<"$exe"
      ((${#ln})) && [[ $ln =~ Xwin ]] && printf "%d %s\n" "${i%/*}" "$ln"
    done
  )
}


Xwin_running() {
  my nam; int pid
  read pid nam< <(Xwin_pids)
  return $((!pid))
}

kill_Xwin() {
  array sigs=(TERM TERM KILL) # try 2 TERMs then KILL upto maxsigs
  int pd; my pg
  int maxsigs=3 lastsig=${#sigs[*]}
  while ((maxsigs)) && read pd pg; do
    ((pd)) && kill -${sigs[--maxsigs>lastsig ? lastsig : maxsigs]} $pd
    sleep 1
  done < <(Xwin_pids)
}

tidy_old_Xwin() {
  rm -fr /tmp/.X11-unix
}

function ord() { printf "%d" "'$1" ; }

sub get_dpi {
  my dw=""; read -d '' dw< <(<"$pixels_path" cat)
  int dpi=$(ord "$dw")
  # check for insane values
  ((dpi<50||dpi>>400)) && dpi=107
  printf ${1:+-v $1} "%d\n" $dpi
}



sub get_fontpath {
  printf "%s"
"/usr/share/fonts/TTF,/usr/share/fonts/Type1,/usr/share/fonts/misc,/usr/share/fonts/100dpi,built-ins,/windows/fonts"
}

sub start_XWin {
  my fontpath=$(get_fontpath)
  int dpi=$(get_dpi)
  cmd="/bin/run /bin/XWin  ${dpi:+-dpi $dpi}   -listen tcp +iglx -wgl
-compositealpha -compositewm -lesspointer -clipboard  -ac -unixkill
-nowinkill -multiwindow -wm -ardelay 150 -arinterval 30 +bs
-nomultimonitors -noreset -fp \"$fontpath\" "
  echo cmd="$cmd"
  $cmd
}

sub start_syslogd {
  cygrunsrv -n -O -S syslogd
}

sub start_cygserver {
  cygrunsrv -n -O -S -d messagebus cygserver
}

sub start_msgbus {
  cygrunsrv -n -O -S -d syslogd messagebus
}

sub start_sess_dbus {
  /bin/run /bin/dbus-launch --exit_with_session ~/.Xsession
}


sub _in {
  local x=${1:?};shift
  for ((;$#>0;)); do [[ $x == $1 ]] && return 0;shift; done
  return 1
}


int tries=3

if Xwin_running && xup; then
  notify /t info /m "Xserver already running and ready" /d 5000
else
  #echo "No Xserver detected"
 
  tidy_old_Xwin

  while ((1)); do
    start_cygserver
    start_XWin
    sleep 1
 
    for ((i=0;i<5;++i)); do
      xup && break 2
      sleep 1
    done

    if ((--tries<=0)); then
      m="^GEXITING: Timeout Waiting for Xserver Startup!!"
      echo "$m"
      notify /t error /m "$m"
      exit 1;
    fi
  done
  start_sess_dbus
  #start_dbus || { m="^GError Starting Dbus"; echo "$m"; notify /t error
/m "$m"; }
fi

# vim: ts=2:sw=2





--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

             reply	other threads:[~2019-08-26  1:57 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-26  3:25 L A Walsh [this message]
2019-09-07 17:27 ` Jon Turney
2019-09-11  0:03   ` Jim Reisert AD1C
2019-09-11 17:11     ` Jon Turney
2019-09-11 22:54       ` Jim Reisert AD1C
2019-09-12  3:59       ` bzs

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5D633C75.5020204@tlinx.org \
    --to=cygwin@tlinx.org \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).