(use-modules (gschem selection))
; Default offset to move
(define offset 100)
; Get moving vector
(define (move-selection direction)
(let ((selection (page-selection (active-page))))
(if (null? selection)
; default behaviour
(case direction
((left ) (&view-pan-left))
((right) (&view-pan-right))
((down ) (&view-pan-down))
((up ) (&view-pan-up))
(else #f))
; modified behaviour
(apply translate-objects!
(case direction
((left ) (cons (- offset) 0))
((right) (cons (+ offset) 0))
((down ) (cons 0 (- offset)))
((up ) (cons 0 (+ offset)))
(else #f))
(page-selection (active-page))))
))
; Define actions
(define (&move-selection-left ) (move-selection 'left ))
(define (&move-selection-right) (move-selection 'right))
(define (&move-selection-down ) (move-selection 'down ))
(define (&move-selection-up ) (move-selection 'up ))
; Define shortcuts
(global-set-key "Left" '&move-selection-left)
(global-set-key "Right" '&move-selection-right)
(global-set-key "Up" '&move-selection-up)
(global-set-key "Down" '&move-selection-down)