This file is indexed.

/usr/share/sawfish/site-lisp/merlin/placement.jl is in sawfish-merlin-ugliness 1.3.1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
;; merlin/placement.jl -- opaque placement and with resize

;; version 0.4.1

;; Copyright (C) 2000-2001 merlin <merlin@merlin.org>

;; http://merlin.org/sawfish/

;; this 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, or (at your option)
;; any later version.

;; this 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 sawfish; see the file COPYING.  If not, write to
;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

;;;;;;;;;;;;;;;;;;
;; INSTALLATION ;;
;;;;;;;;;;;;;;;;;;

;; Create a directory ~/.sawfish/lisp/merlin and then put this file there:
;;   mkdir -p ~/.sawfish/lisp/merlin
;;   mv placement.jl ~/.sawfish/lisp/merlin

;; Then add to your .sawfishrc:
;;   (require 'merlin.placement)

;; Then restart sawfish and go to Customize->Placement and select
;; (opaque-)interactively(-with-resize)
;;     - Henceforth, windows will be placed opaquely if you so choose.
;;     - If you select -with-resize then if you place
;;       a window with a mouse button and hold it down,
;;       you can drag-resize the window (twm-style).

; BUGS: Sometimes windows get messed up by this. I don't know
; when or why so I don't know what to do about it.

; TODO: do I fire the after-place / before-resize hooks on go-resize
; TODO: do i set the cursor - resize-cursor-shape on go-resize

(define-structure merlin.placement

  (export)

  (open
   rep
   rep.system
   sawfish.wm.placement
   sawfish.wm.commands
   sawfish.wm.commands.move-resize
   sawfish.wm.events
   sawfish.wm.misc
   sawfish.wm.windows)

  (define (merlin-placement-go-resize) ;; hackalicious
    (setq move-resize-function 'resize)
    (setq move-resize-old-x move-resize-x)
    (setq move-resize-old-y move-resize-y))

  (define (merlin-place-window w opaque resize)
    (accept-x-input)
    (when (window-id w)
      (let
	  ((move-outline-mode (if opaque 'opaque 'box))
	   (resize-edge-mode 'border-grab)
	   (ptr (query-pointer))
	   (siz (window-dimensions w))
	   (dims (window-frame-dimensions w)))
	(move-window-to w (- (car ptr) (quotient (car dims) 2))
			(- (cdr ptr) (quotient (cdr dims) 2)))
	(when opaque
	  (hide-window w) (show-window w)) ;; hackalicious
	(when resize
	  (bind-keys move-resize-map "Any-Click1" 'merlin-placement-go-resize))
	(move-window-interactively w)
	(when resize
	  (unbind-keys move-resize-map "Any-Click1")))))

  (define (place-window-opaque-interactively w)
    (merlin-place-window w t nil))

  (define (place-window-opaque-interactively-with-resize w)
    (merlin-place-window w t t))

  (define (place-window-interactively-with-resize w)
    (merlin-place-window w nil t))

  (define-placement-mode 'opaque-interactively
    place-window-opaque-interactively
    #:for-normal t)

  (define-placement-mode 'opaque-interactively-with-resize
    place-window-opaque-interactively-with-resize
    #:for-normal t)

  (define-placement-mode 'interactively-with-resize
    place-window-interactively-with-resize
    #:for-normal t)

  (define-command 'merlin-placement-go-resize
    merlin-placement-go-resize))