+ New command APPLY in the user bindings
+ Use & to start new processes and support program arguments in the EXEC command + Document APPLY, extend documentation of EXEC
This commit is contained in:
		
							parent
							
								
									d5f792b3d4
								
							
						
					
					
						commit
						d632a308bd
					
				| 
						 | 
				
			
			@ -46,7 +46,7 @@
 | 
			
		|||
    
 | 
			
		||||
 | 
			
		||||
      <h3>root-options</h3>
 | 
			
		||||
      <table>
 | 
			
		||||
      <table valign="top">
 | 
			
		||||
	<tr>
 | 
			
		||||
	  <td><b>name</b></td>
 | 
			
		||||
	  <td><b>type</b></td>
 | 
			
		||||
| 
						 | 
				
			
			@ -126,13 +126,23 @@
 | 
			
		|||
	  <td><code>user-bindings</code></td>
 | 
			
		||||
	  <td><code>binding-list</code></td>
 | 
			
		||||
	  <td><code>'(("F2" exec "xterm"))</code></td>
 | 
			
		||||
	  <td>List of user-defined key bindings.</td>
 | 
			
		||||
 | 
			
		||||
	  <td>List of user-defined key bindings. A binding consists of
 | 
			
		||||
	  the key to bind, a command and command arguments. Orion
 | 
			
		||||
	  currently supports the commands <code>exec</code> and
 | 
			
		||||
	  <code>apply</code>. The arguments of the <code>exec</code>
 | 
			
		||||
	  command should be the name of a program followed by
 | 
			
		||||
	  arguments to the program. Orion will execute this program
 | 
			
		||||
	  with the arguments. The <code>apply</code> command applies a
 | 
			
		||||
	  function, given as first command argument, to the arguments
 | 
			
		||||
	  starting at the second command argument.</td>
 | 
			
		||||
 | 
			
		||||
	</tr>
 | 
			
		||||
	<tr>
 | 
			
		||||
	  <td><code>execute</code></td>
 | 
			
		||||
	  <td><code>keys</code></td>
 | 
			
		||||
	  <td><code>"F3"</code></td>
 | 
			
		||||
	  <td>Shortcut for running a program.</td>
 | 
			
		||||
	  <td><code>execute</code></td> <td><code>keys</code></td>
 | 
			
		||||
	  <td><code>"F3"</code></td> <td>Shortcut for running a
 | 
			
		||||
	  program. A dialog will ask for the program to run. The TAB
 | 
			
		||||
	  key allows completion of the program name.</td>
 | 
			
		||||
	</tr>
 | 
			
		||||
	<tr>
 | 
			
		||||
	  <td><code>execute-question</code></td>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -196,7 +196,7 @@
 | 
			
		|||
;; *** main package **************************************************
 | 
			
		||||
 | 
			
		||||
(define-structure scsh-things
 | 
			
		||||
  (export ((run) :syntax))
 | 
			
		||||
  (export ((run &) :syntax))
 | 
			
		||||
  (open scsh))
 | 
			
		||||
 | 
			
		||||
(define-structure config
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -319,7 +319,7 @@
 | 
			
		|||
			  #f (finite-complete (executables-in-path)))))
 | 
			
		||||
       (and exec
 | 
			
		||||
            (not (string=? exec ""))
 | 
			
		||||
            (run (sh -c ,(string-append exec " &"))))))
 | 
			
		||||
            (& (exec)))))
 | 
			
		||||
    ((attach)
 | 
			
		||||
     (let* ((cm (root-wm:current-manager root-wm))
 | 
			
		||||
	    (windows-above (window-path (wm:dpy cm) (wm:window cm)))
 | 
			
		||||
| 
						 | 
				
			
			@ -363,7 +363,8 @@
 | 
			
		|||
		(time (second msg))
 | 
			
		||||
		(command (cdr binding)))
 | 
			
		||||
	   (case (car command)
 | 
			
		||||
	     ((exec) (run (sh -c ,(string-append (cadr command) " &"))))
 | 
			
		||||
	     ((exec) (& (,@(cdr command))))
 | 
			
		||||
             ((apply) (apply (cadr command) (cddr command)))
 | 
			
		||||
	     (else (warn "unknown binding command" command))))
 | 
			
		||||
	 (warn "unhandled root message" msg)))))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue