This file is indexed.

/usr/share/gEDA/scheme/default-attrib-positions.scm is in geda-gschem 1:1.8.2-5.

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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
(define default-position-of-text-attributes
   ; Specifies the default position of text attributes.
   ; Each list entry is a list specifying the position of a text attribute.
   ; Dividing each list entry in two lines:
   ;   - the first line is the attribute matching. It specifies the properties
   ;     of the object and the attribute that should match in order to use
   ;     that entry (all the specified properties should match). 
   ;     It has the following items:
   ;       - attrib_name: the attribute's name for this entry.
   ;       - direction: direction of the pin(s) (the arrow points to the inside
   ;         of the symbol. The direction is specified by one character of
   ;         v, ^, < or >. This item is a string with one or several direction
   ;         characters. Including several directions here means that the 
   ;         object should have pins in all those directions if using this 
   ;         entry.
   ;
   ;       - list of object attribute matching properties. It's a list with 
   ;         attribute_name, attribute_value pairs. A regular expression can be
   ;         used in the attribute_values field.
   ;         There is a special attribute name: "OBJ_TYPE" if you want to check
   ;         the object type. However, the attribute_value field should be
   ;         one of the already defined variables: 
   ;         OBJ_LINE, OBJ_BOX, OBJ_PICTURE, OBJ_CIRCLE, OBJ_NET, OBJ_BUS,
   ;         OBJ_COMPLEX, OBJ_TEXT, OBJ_PIN, OBJ_ARC, OBJ_PLACEHOLDER
   ;         converted into strings (for example using the function char2str).
   ;
   ;    - the second line defines where and how the attribute will be placed.
   ;      The attribute is going to be placed at a position of the
   ;      component, given by the "reference" item.
   ;      It has the following items:
   ;        - x_offset, y_offset: the position offset to the reference point.
   ;          The attribute position is offset by these amounts from the
   ;          reference point. They can be positive or negative integers.
   ;        - reference: the component's reference point where to place 
   ;          the attribute. The reference point is calculated using 
   ;          component's bounds, so pin's line width, for example, matter.
   ;          Example: Pin from (100,50) to (400,50), pin's line width is 10.
   ;            Pin bounds:
   ;              top: 55
   ;              bottom: 45
   ;              left: 95
   ;              right: 405
   ;            "Lower left": (95,45)
   ;          It is a string with the format "horizontal vertical", where:
   ;            - "horizontal" is one of: "Left",  "Middle", "Right".
   ;            - "vertical"   is one of: "Lower", "Middle", "Upper".
   ;          Example: "Lower Right".
   ;        - alignment: the attribute text's alignment.
   ;        - angle: the attribute's angle.
   ;
   ;       As a special case, the attributes can be automaticaly moved if 
   ;       they overlap with the pins or the pin connection direction, in
   ;       order to avoid cluttering the schematic. Note that pinnames are
   ;       also included when calculing the new position.
   ;       By pin connection direction I mean the space in front of a pin
   ;       where a net connecting to that pin is supposed to be drawn 
   ;       afterwards.
   ; 
   ;       For this purpose, two more items are added:
   ;         - mov_dir: specify the movement directions, or where can the 
   ;           attribute be moved if overlapping.
   ;           It is an empty string if no movement is allowed, or a string
   ;           containing one or several horizontal/vertical directions.
   ;           Each direction is specified with one character of v,^,< or >.
   ;
   ;           When overlapping with vertical pins, the attribute will be
   ;           moved horizontally (< or > characters).
   ;           When overlapping with horizontal pins, the attribute will be
   ;           moved vertically (v or ^ characters).
   ;
   ;           Example: "<^" means that the attribute will be moved to the 
   ;           left if overlapping with vertical pins, or to the top if
   ;           overlapping horizontal pins.
   ;
   ;         - spacing: minimum spacing between the attributes and the pins.
   ;           It sould be a positive integer number.
   ;
   ;Attrib_name Direct. Attribute_match  <--- first line of each entry.
   ;X_offset Y_offset Reference       Alignment    Angle Mov_dir  Spacing (>0)
   ;
  (list 
   (list 
    "pinlabel"  ">"  (list "OBJ_TYPE" (char2str OBJ_PIN))
      50      0       "Lower Right"   "Lower Left"     0      ""   0)
   (list
    "pinlabel"  "<"  (list "OBJ_TYPE" (char2str OBJ_PIN))
     -50      0       "Lower Left"    "Lower Right"    0      ""   0)
   (list
    "pinlabel"  "^"  (list "OBJ_TYPE" (char2str OBJ_PIN))
       0     50       "Upper Middle"  "Lower Left"    90      ""   0)
   (list
    "pinlabel"  "v"  (list "OBJ_TYPE" (char2str OBJ_PIN))
       0    -50       "Lower Middle"  "Lower Right"   90      ""   0)
   (list
    "pinnumber" ">"  (list "OBJ_TYPE" (char2str OBJ_PIN))
    -100     50       "Lower Right"   "Lower Right"    0      ""   0)
   (list
    "pinnumber" "<"  (list "OBJ_TYPE" (char2str OBJ_PIN))
     100     50       "Lower Left"    "Lower Left"     0      ""   0)
   (list
    "pinnumber" "^"  (list "OBJ_TYPE" (char2str OBJ_PIN))
     -50   -100       "Upper Middle"  "Lower Right"   90      ""   0)
   (list 
    "pinnumber" "v"  (list "OBJ_TYPE" (char2str OBJ_PIN))
     -50    100       "Lower Middle"  "Lower Left"    90      ""   0)
   
     ; Component attributes
     ;   One direction
   (list 
    "refdes"    "<"  (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
       0     50       "Upper Middle"  "Lower Middle"   0      ""   0)
   (list 
    "value"     "<"  (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
       0    -50       "Lower Middle"  "Upper Middle"   0      ""   0)
   (list 
    "device"    "<"  (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
       0    -50       "Lower Middle"  "Upper Middle"   0      ""   0)
   (list 
    "refdes"    ">" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
       0     50       "Upper Middle"  "Lower Middle"   0      ""   0)
   (list 
    "value"     ">" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
       0    -50       "Lower Middle"  "Upper Middle"   0      ""   0)
   (list 
    "device"    ">" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
       0    -50       "Lower Middle"  "Upper Middle"   0      ""   0)
   (list 
    "refdes"    "^" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
       0    100       "Middle Left"   "Lower Right"    0      ""   0)
   (list 
    "value"     "^" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
       0   -100       "Middle Left"   "Lower Right"    0      ""   0)
   (list 
    "device"    "^" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
       0   -100       "Middle Left"   "Lower Right"    0      ""   0)
   (list 
    "refdes"    "v" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
       0    100       "Middle Left"   "Lower Right"    0      ""   0)
   (list 
    "value"     "v" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
       0   -100       "Middle Left"   "Lower Right"    0      ""   0)
   (list 
    "device"    "v" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
       0   -100       "Middle Left"   "Lower Right"    0      ""   0)
	;   Two directions
   (list 
    "refdes"   "<>" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
       0     50       "Upper Middle"  "Lower Middle"   0      ""   0)
   (list 
    "value"    "<>" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
       0    -50       "Lower Middle"  "Upper Middle"   0      ""   0)
   (list 
    "device"   "<>" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
       0    -50       "Lower Middle"  "Upper Middle"   0      ""   0)
   (list 
    "refdes"   "^v" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
      50    100       "Middle Right"  "Lower Left"     0      ""   0)
   (list 
    "value"    "^v" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
      50   -100       "Middle Right"  "Lower Left"     0      ""   0)
   (list 
    "device"   "^v" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
      50   -100       "Middle Right"  "Lower Left"     0      ""   0)
	;   Three directions
   (list 
    "refdes"  "<^v" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
     -50    100       "Middle Left"   "Lower Right"    0      ""   0)
   (list 
    "value"   "<^v" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
     -50   -100       "Middle Left"   "Lower Right"    0      ""   0)
   (list 
    "device"  "<^v" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
     -50   -100       "Middle Left"   "Lower Right"    0      ""   0)
   (list 
    "refdes"  ">^v" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
      50    100       "Middle Right"  "Lower Left"     0      ""   0)
   (list 
    "value"   ">^v" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
      50   -100       "Middle Right"  "Lower Left"     0      ""   0)
   (list 
    "device"  ">^v" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
      50   -100       "Middle Right"  "Lower Left"     0      ""   0)
   (list 
    "refdes"  "<>v" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
     -50    -50       "Lower Middle"  "Upper Right"    0      ""   0)
   (list 
    "value"   "<>v" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
      50    -50       "Lower Middle"  "Upper Left"     0      ""   0)
   (list 
    "device"  "<>v" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
      50    -50       "Lower Middle"  "Upper Left"     0      ""   0)
   (list 
    "refdes"  "<>^" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
     -50     50       "Upper Middle"  "Lower Right"    0      ""   0)
   (list 
    "value"   "<>^" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
      50     50       "Upper Middle"  "Lower Left"     0      ""   0)
   (list 
    "device"  "<>^" (list "OBJ_TYPE" (char2str OBJ_COMPLEX))
      50     50       "Upper Middle"  "Lower Left"     0      ""   0)
	;   Four directions
   (list 
    "refdes" "<>^v"(list "OBJ_TYPE" (char2str OBJ_COMPLEX))
      50     50      "Upper Left"    "Lower Left"     0      "^<" 50)
   (list 
    "value"  "<>^v"(list "OBJ_TYPE" (char2str OBJ_COMPLEX))
      50    -50      "Lower Right"   "Upper Right"    0      "v>" 50)
   (list 
    "device" "<>^v"(list "OBJ_TYPE" (char2str OBJ_COMPLEX))
      50    -50      "Lower Right"   "Upper Right"    0      "v>" 50)
   
     ; Net attributes
     ;   Two directions
   (list 
    "netname" "<>" (list "OBJ_TYPE" (char2str OBJ_NET))
       0     50       "Upper Middle"  "Lower Middle"   0      ""   0)
   (list 
    "netname" "^v" (list "OBJ_TYPE" (char2str OBJ_NET))
     -50      0       "Middle Middle" "Lower Middle"  90      ""   0)
     ; Bus attributes
     ;   Two directions
   (list 
    "netname" "<>" (list "OBJ_TYPE" (char2str OBJ_BUS))
       0     50       "Upper Middle"  "Lower Middle"   0      ""   0)
   (list 
    "netname" "^v" (list "OBJ_TYPE" (char2str OBJ_BUS))
     -50      0       "Middle Middle" "Lower Middle"  90      ""   0)
   ))

; Position of parameters inside default-position-of-text-attributes
(define def-attrib-name-pos   0)
(define def-direction-pos     1)
(define def-attrib-match      2)
(define def-x-offset-pos      3)
(define def-y-offset-pos      4)
(define def-reference-pos     5)
(define def-alignment-pos     6)
(define def-angle-pos         7)
(define def-move-pos 	      8)
(define def-spacing-pos       9)