Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-

check it out

Name: Anonymous 2014-08-29 0:31

(shadow 'char-width)
(use-package :xlib)
(defparameter *mods* '(:mod-1))
(defparameter *move* 1)
(defparameter *resize* 3)
(defparameter *lower* 4)
(defparameter *raise* 5)
(defparameter *display* nil) ; set this to an integer to do testing with xnest

(defun open-default-display (&optional display-name)
"Open a connection to DISPLAY-NAME if supplied, or to the appropriate
default display as given by GET-DEFAULT-DISPLAY otherwise.

OPEN-DISPLAY-NAME always attempts to do display authorization. The
hostname is resolved to an address, then authorization data for the
(protocol, host-address, displaynumber) triple is looked up in the
file given by AUTHORITY_PATHNAME (typically $HOME/.Xauthority). If
the protocol is :local, or if the hostname resolves to the local host,
authority data for the local machine's actual hostname - as returned by
gethostname(3) - is used instead."
(destructuring-bind (host display screen protocol)
(get-default-display display-name)
(declare (ignore screen))
(open-display host :display display :protocol protocol)))

(defun main ()
(let* ((display (if *display*
(open-display "" :display *display*)
(open-default-display)))
(screen (first (display-roots display)))
(root (screen-root screen)))

(dolist (button (list *move* *resize* *lower* *raise*))
(grab-button root button '(:button-press) :modifiers *mods*))

(unwind-protect
(let (last-button last-x last-y)
(do () (nil) ; infinite loop
(event-case (display :discard-p t)
;; for key-press and key-release, code is the keycode
;; for button-press and button-release, code is the button number
(:button-press (code child event-window)
(cond ((= code *raise*)
(circulate-window-up root))
((= code *lower*)
(circulate-window-down root))
((or (= code *move*)
(= code *resize*))
(when child ; do nothing if we're not over a window
(setf last-button code)
(grab-pointer child '(:pointer-motion :button-release))
(let ((lst (multiple-value-list (query-pointer root))))
(setf last-x (sixth lst)
last-y (seventh lst)))))))
(:motion-notify
(event-window root-x root-y)
;; while(XCheckTypedEvent(display, MotionNotify, &ev));
(let ((delta-x (- root-x last-x))
(delta-y (- root-y last-y)))
(cond ((= last-button *move*)
;; (incf (drawable-x event-window) delta-x)
;; (incf (drawable-y event-window) delta-y)
(setf (drawable-x event-window) root-x
(drawable-y event-window) root-y))
((= last-button *resize*)
;; (incf (drawable-width event-window) delta-x)
;; (incf (drawable-height event-window) delta-y)
(setf (drawable-width event-window)
(max 1 (- root-x (drawable-x event-window)))
(drawable-height event-window)
(max 1 (- root-y (drawable-y event-window))))))))
(:button-release ()
(ungrab-pointer display)))))
(dolist (button (list *move* *resize* *lower* *raise*))
(ungrab-button root button :modifiers *mods*))
(close-display display))))

Name: Anonymous 2014-08-29 1:15

accessing Xshitter directly
retarded aint you?

Name: Anonymous 2014-08-29 1:38

>>2
Explain yourself.

Name: Anonymous 2014-08-29 1:53

>>1
Looks cool, but X sucks. Fortunately, progress in recent years has almost made X no longer mandatory, except for the fact that AMD, nVidia, and Intel are stuck in the stone age with their binary blob crap that still requires X and would probably cost them each a couple of million dollars in programmer salaries to migrate away from. Eventually, it'll happen, but not currently.

All of the cool kids only care care about OpenGL ES 2.0 (and soon ES 3.0 which is in testing), and you can get decent performance with the open source drivers based around libGL-mesa. For fullscreen graphics that works from a terminal without a window manager, use udev + libdrm + EGL + OpenGL ES 2.0 directly. For Windowed graphics, build and install Wayland and then use Wayland + EGL + OpenGL ES 2.0.

https://upload.wikimedia.org/wikipedia/commons/2/2d/The_Linux_Graphics_Stack_and_glamor.svg

Name: Anonymous 2014-08-29 9:30

>>4
Intel does not use binary blobs for their iGPUs

Name: Anonymous 2014-08-30 5:42

>>4,5
Intel employs some of the top Wayland developers. The only "legacy" graphics technology Intel has any interest in perpetuating is Mesa/DRI (their developers have stated many times that migrating to Gallium would be too costly).

If there's anyone who wants X11 to persist, it's nVidia. nVidia has a lot invested in their current GLX infrastructure and would need to make serious efforts to support EGL and KMS for Wayland.

Name: Anonymous 2014-08-30 10:27

Who gives a shit? Let me know when this wayland thing gets incorporated into a real Unix or VMS, not some toy OS like linux.

Name: Anonymous 2014-08-30 10:48

>>4
But it will go slow as shit if I don't have a GPU

Name: Anonymous 2014-08-30 19:30

>>8

Even Android devices have GPUs today.

Name: Anonymous 2014-08-30 19:39

>>9
I do not

Name: Anonymous 2014-08-30 20:07

>>10

you're not an android device, dolt.

Name: Anonymous 2014-08-30 21:18

>>10
Are you you running on 15 year old hardware?

Name: Anonymous 2014-08-30 22:29

>>11
I am, though I'm thinking about becoming transbsd.

Name: Anonymous 2014-08-31 1:37

X is garbage. When you have to deliberately break the build just to make sure no one is running your program on a Super Nintendo, you've supported to many platforms. Gut the garbage and let anyone still running a Commodore 64 hack X to fit it, don't put in tons of hacks and workaround. Sure, you've bumps support from 95% of all systems to 99%, but now it is unmaintainable and you're holding everyone else back to the constraints of machines that should have been in landfills ages ago.

Name: Anonymous 2014-08-31 1:39

>>12
Is GUI and tetris only for computers made 2 years ago?

Name: Anonymous 2014-08-31 2:57

>>15
Expecting people who want the latest version to have a computer made in the last 10 years. Africans with donated i386 systems with 16MB's of memory can be content to run a few versions behind. There is no need to keep pulling all that baggage behind you.

Same with OpenSSL. They wanted to support every platform know to man and chimp, and they had to write their own malloc() wrapper to do it. Who cares if OpenSSL wouldn't compile under VS2005 or on VMS or whatever without stuff like that? Fuck 'em. Get with the fucking program and update your fucking compiler or system already. It is not their job to support every cheap faggot who wants to waste their time.

Name: Anonymous 2014-08-31 4:23

>>16

Africans with donated i386 systems with 16MB's
AFAIK Africans use modern PCs, because of logistic costs and high demand on older PC components, due to people still running legacy DOS systems as part of business critical solutions, like factory equipment.

Don't change these.
Name: Email:
Entire Thread Thread List