[Sawfish] Cabinet keybindings patch |
[ Thread Index | Date Index | More lists.tuxfamily.org/sawfish Archives ]
Hi, Patch for cabinet to make broken keybindings work. Add file heads.jl for multihead stuff. Add send-to-next-head and send-to-previous-head to sawfish. What have you do with the german translation? Many translation/strings (keybindings and other) are remove. Have you use the script in sawfish for the strings? The script is broken, missing many strings. I have add the missing strings by hand and it was a lot of work. The german po file was complete translated. -- Regards, Fuchur GPG Fingerprint: CA3B 8204 5B3E 6D48 6D53 C116 E5BC 70D5 B8D7 B2B0
diff -urNad /usr/share/sawfish.orgi/lisp/sawfish/wm/autoload.jl /usr/share/sawfish/lisp/sawfish/wm/autoload.jl --- /usr/share/sawfish.orgi/lisp/sawfish/wm/autoload.jl +++ /usr/share/sawfish/lisp/sawfish/wm/autoload.jl @@ -176,6 +176,8 @@ (autoload-placement-mode 'top-left 'sawfish.wm.placement.top-left #:for-normal t) (autoload-placement-mode 'stagger 'sawfish.wm.placement.stagger #:for-normal t) (autoload-placement-mode 'off-center 'sawfish.wm.placement.off-center #:for-normal t) +(autoload-command 'send-to-next-head 'sawfish.wm.heads) +(autoload-command 'send-to-previous-head 'sawfish.wm.heads) (autoload-command 'move-viewport-right 'sawfish.wm.viewport) (autoload-command 'move-viewport-up 'sawfish.wm.viewport) (autoload-command 'move-viewport-down 'sawfish.wm.viewport) diff -urNad /usr/share/sawfish.orgi/lisp/sawfish/wm/ext/cabinet.jl /usr/share/sawfish/lisp/sawfish/wm/ext/cabinet.jl --- /usr/share/sawfish.orgi/lisp/sawfish/wm/ext/cabinet.jl +++ /usr/share/sawfish/lisp/sawfish/wm/ext/cabinet.jl @@ -18,6 +18,21 @@ ;; along with this program. If not, see `http://www.gnu.org/licenses/'. +;; XXX Without this, this key-commands not run in cabinet, but i have no idea why. +;; XXX +;; XXX maximize-window-toggle maximize-window-fullscreen-toggle +;; XXX maximize-window-horizontally-toggle maximize-window-vertically-toggle +;; XXX maximize-window-fullxinerama-toggle maximize-fill-window +;; XXX maximize-fill-window-horizontally maximize-fill-window-vertically +;; XXX tab-release-window tab-move-to-end tab-move-to-beginning +;; XXX tab-move-to-right tab-move-to-left +;; XXX window-history-save-position window-history-save-dimensions +;; XXX window-history-save-attributes window-history-forget +(require 'sawfish.wm.heads) +(require 'sawfish.wm.state.maximize) +(require 'sawfish.wm.tabs.tabgroup) +(require 'sawfish.wm.ext.window-history) + (define-structure sawfish.wm.ext.cabinet (export cabinet-switch @@ -251,8 +266,7 @@ :type* `(alist (event ,(_ "Key:")) ((h-and (symbol delete-window maximize-window-toggle toggle-window-iconified toggle-window-shaded toggle-window-sticky - maximize-window-fullscreen-toggle maximize-window-horizontally-toggle maximize-window-vertically-toggle - maximize-window-fullxinerama-toggle maximize-full-vertical-left-toggle maximize-full-vertical-right-toggle + maximize-window-fullscreen-toggle maximize-window-horizontally-toggle maximize-window-vertically-toggle maximize-window-fullxinerama-toggle tab-add-maked-windows tab-release-window tab-move-to-end tab-move-to-beginning tab-move-to-right tab-move-to-left move-window-to-center move-window-to-top-left move-window-to-next-workspace move-window-to-previous-workspace toggle-fixed-postion toggle-window-never-focus toggle-window-ignored toggle-task-list-skip toggle-window-cycle-skip diff -urNad /usr/share/sawfish.orgi/lisp/sawfish/wm/heads.jl /usr/share/sawfish/lisp/sawfish/wm/heads.jl --- /usr/share/sawfish.orgi/lisp/sawfish/wm/heads.jl +++ /usr/share/sawfish/lisp/sawfish/wm/heads.jl @@ -0,0 +1,92 @@ +;; heads.jl -- Multihead support + +;; Copyright (C) 2014 fuchur <flohtransporter@xxxxxxxxx> + +;; This file is part of sawfish. + +;; This program 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 3 of the License, or (at +;; your option) any later version. + +;; This program 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 this program. If not, see `http://www.gnu.org/licenses/'. + + +(define-structure sawfish.wm.heads + + (export send-to-next-head + send-to-previous-head) + + (open rep + rep.data + rep.system + sawfish.wm.misc + sawfish.wm.windows + sawfish.wm.commands + sawfish.wm.state.maximize + sawfish.wm.tabs.tabgroup) + + + (define (move-win-to-head w head) + "Move window to head" + (let ((maximized-fullscreen (window-get w 'maximized-fullscreen)) + (maximized-vertically (window-get w 'maximized-vertically)) + (maximized-horizontally (window-get w 'maximized-horizontally)) + is-maximized) + + (when (window-maximized-p w) + (unmaximize-window w) + (setq is-maximized t)) + + (let ((dim-x (car (window-position w))) + (dim-y (cdr (window-position w))) + (head-dim-x (car (current-head-dimensions w))) + (head-dim-y (cdr (current-head-dimensions w))) + (head-offset-x (car (current-head-offset w))) + (head-offset-y (cdr (current-head-offset w))) + (wins (tab-group-windows w)) + (new-head head) + new-dim-x new-dim-y new-head-dim-x new-head-dim-y) + + (setq new-head-dim-x (car (head-dimensions new-head))) + (setq new-head-dim-y (cdr (head-dimensions new-head))) + (setq new-dim-x (+ (* (/ new-head-dim-x head-dim-x) (- dim-x head-offset-x)) (car (head-offset new-head)))) + (setq new-dim-y (+ (* (/ new-head-dim-y head-dim-y) (- dim-y head-offset-y)) (cdr (head-offset new-head)))) + + (if (eq is-maximized t) + (progn + (move-window-to w new-dim-x new-dim-y) + (if maximized-fullscreen + (maximize-window-fullscreen w 't) + (if maximized-horizontally + (maximize-window-horizontally w)) + (if maximized-vertically + (maximize-window-vertically w))) + (setq is-maximized nil)) + (mapcar (lambda (w) (move-window-to w new-dim-x new-dim-y)) wins))))) + + (define (send-to-next-head w) + "Send window to the next head." + (interactive "%W") + (when (> (head-count) 1) + (if (< (current-head w) (- (head-count) 1)) + (move-win-to-head w (+ (current-head w) 1)) + (move-win-to-head w 0)))) + + (define (send-to-previous-head w) + "Send window to the previous head." + (interactive "%W") + (when (> (head-count) 1) + (if (> (current-head w) 0) + (move-win-to-head w (- (current-head w) 1)) + (move-win-to-head w (- (head-count) 1))))) + + (define-command 'send-to-next-head send-to-next-head #:spec "%W") + (define-command 'send-to-previous-head send-to-previous-head #:spec "%W") + )
Attachment:
signature.asc
Description: PGP signature
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |