(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)