ANNOUNCE: Terminal v0.9.5

View: New views
5 Messages — Rating Filter:   Alert me  

ANNOUNCE: Terminal v0.9.5

by Gregory John Casamento :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.
All,

The GAP project has released version 0.9.5 of Terminal.    This version contains fixes which have been applied to allow the application to properly compile and run on modern versions of GNUstep and also contains changes which allow it to work on additional operating systems such as Solaris and OpenBSD.

Terminal was originally written by Alex Malmberg for the Backbone project. 

Please download the application, and other GAP applications at: http://gap.nongnu.org/

====
Terminal.app - copyright (c) 2002 Alexander Malmberg <alexander@...>

OpenPty and ForkPty replacements written by Riccardo Mottola, 2005-2008

a terminal emulator for GNUstep

This file is a part of Terminal.app. Terminal.app 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; version 2
of the License. See COPYING or main.m for more information.


Installing
----------

You'll need gnustep-base and gnustep-gui (or possibly some other
openstep-like system).
The pty code is known to work on GNU/Linux and FreeBSD and NetBSD.
Pty code replacement is provided and used by default on Solaris, where
it is known to work. On other operating systems you might want to
define USE_FORKPTY_REPLACEMENT in TerminalView.m

Reports
and/or patches for other systems are welcome.

To build, run 'make'.
To install, run 'make install'.

(All the usual gnustep-make options apply.)


Running
-------

Run it just like you'd run any other GNUstep application, eg.:
  openapp Terminal.app

An empty window with a shell will be opened when the program starts, unless
you gave it a command on the command line, in which case that command will
be run in the opened window.


Fonts
-----

You can change the fonts used for normal and bold text in the preferences
panel. Terminal.app will get the metrics for the character cells from the
normal font, so this font really should be a fixed pitch font or things
will look messed up. The bold font should closely match the normal font.

(Terminal.app assumes that all characters, bold and normal, stay inside
the normal font's bounding box. If they don't, there will be visual
glitches. However, it is more common that a non-fixed pitch font's bounding
box is very large (since it needs to enclose _all_ characters in the font),
so that the terminal window will be very wide.)


Keys
----

By default, the command key is used to access key equivalents for menu
entries, and thus can't be used as a meta key in the terminal. If you
have command mapped to the key you want to use as meta, you can enable
'Treat the command key as meta' in the preferences panel. However, this
will disable all key equivalents in Terminal.app. The 'proper' solution
to this problem is to remap the command key (and possibly alternate key).
The alternate key will always be treated as meta.

Often, the escape key can be used to emulate a meta key. This means that
in some programs, you might have to press escape twice to get a 'real'
escape, or there will be a delay before it is handled. The 'Send a double
escape...' option causes Terminal.app to send a double escape when you hit
the escape key (ie. "\e\e"), which should work better (but you can no
longer use the escape key as meta).


Terminal services
-----------------

Terminal.app can provide services for other applications by piping the
selection through arbitrary commands. Services are configured in one of
the preferences panel's tabs. The first time you open this tab, a default
set of services will be loaded. To save these where make_services will
actually find them, press 'Apply and save'. This will also run
make_services to update the services list, but it may take up to 30
seconds for running applications to notice the change.

The 'Add' and 'Remove' buttons add and remove services. Using the 'Export'
button it is possible to save a set of services to a file. These files
can be imported using the 'Import' button, so it is possible for users to
share terminal services definitions. The extension of the file should be
'.svcs'. The default set of services is such a file located in the
application wrapper's resource directory. If you import a service with
the same name as an existing service, and they aren't identical, the new
one will be renamed to avoid a conflict.

Name
  This is the name of the service as it appears in the services menu. By
  default, terminal services will be placed in a 'Terminal' submenu
  of the Services menu, but you can override this by giving the name a
  leading '/'. In this case, you can also use a second '/' to create your
  own submenus. (gnustep-gui doesn't support submenus of submenus, though.)
  Names must be unique.

Key
  The key equivalent for this command, if any. Note that if an application
  uses this key for some other menu entry, the key will activate that menu
  entry, not the service.

Command line
  The command line. It is passed to /bin/sh, so any shell commands will
  work, and arguments may have to be quoted. A '%p' in the command line
  will cause a prompt to be brought up when the service is run. If input
  is to be placed on the command line, you can mark the place to put it
  at with '%s' (otherwise it will be appended to the command line). You
  can use '%%' to get a real '%'.

Run in background/new window/idle window
  If a service is set to run in the background, the command will have to
  complete before the service will return, and the service can return
  output. Otherwise, the command's output will appear in a window. 'new
  window' causes a completely new window to be opened (and it will close
  automatically when the command is completed if that option is set).
  'idle window' causes Terminal.app to try to reuse an existing idle
  window. If there is no such window it will open a new window (and that
  window won't close automatically).

Ignore/return output (only applies to background services)
  If set to ignore, the output of the command will be discarded. Otherwise,
  it will be parsed to a string or a bunch of filenames, depending on the
  acceptable types. The output is assumed to be utf8 encoded.

No input/Input in stdin/Input on command line
  If set to 'No input', the service won't accept any input. Otherwise it
  is necessary to select something to run it, and the selection will be
  either piped to the command ('in stdin') or placed on the service's
  command line (either at the '%s' or at the end, see above). Input will
  be sent to the command utf8 encoded.

Accept types
  Plain text will be sent verbatim to the command. A list of filenames
  (possibly just one) will be sent separated by ' ':s (if on the command
  line), or newlines (if in stdin).


Terminal emulation
------------------

The terminal emulation code is based on Linux's console code, and nearly
all parts of it are handled. Thus, the TERM environment variable is set
to 'linux'. Additionally, 'vt100', 'vt220', 'xterm', and others similar
to these should mostly work. To distinguish Terminal.app from a 'real'
linux console, the environment variable TERM_PROGRAM is set to
'GNUstep_Terminal'.


The xterm extensions for setting the window's title are also supported.
You set the title using:

'\033]'+0, 1, or 2+';'+the title+'\007'

1 sets the miniwindow title, 2 sets the window title, and 0 sets both.

Example (from Jeff Teunissen):
 export PROMPT_COMMAND='echo -ne "\033]2;Terminal - ${HOSTNAME}:${PWD}\007"'


(The terminal emulation code is fairly modular. If you want to write a
terminal emulation class for some other terminal, contact me and I'll
do the remaining cleanups necessary to load terminal emulation classes
from bundles.)
====

Thanks, 
Gregory Casamento -- Principal Consultant - OLC, Inc
# GNUstep Chief Maintainer



_______________________________________________
apps-gnustep mailing list
apps-gnustep@...
http://lists.gnu.org/mailman/listinfo/apps-gnustep

Re: ANNOUNCE: Terminal v0.9.5

by Robson Cardoso dos Santos-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi, when I try to make a package for Arch Linux I got this error message:

------------------
This is gnustep-make 2.0.7. Type 'make print-gnustep-make-help' for help.
*ERROR*: the software is configured to install itself into /opt/GNUstep/System
but you do not have permissions to write in that directory:
Aborting installation.
-------------------

So, whith this patch, the error disappears (at least for a Arch package)

--------------------
--- src-orig/Terminal-0.9.5/GNUmakefile 2009-05-23 11:59:10.000000000 -0300
+++ src/Terminal-0.9.5/GNUmakefile 2009-05-25 21:20:33.000000000 -0300
@@ -63,7 +63,7 @@
MAKE_STRINGS_OPTIONS = --aggressive-match --aggressive-remove


-GNUSTEP_INSTALLATION_DIR=$(GNUSTEP_SYSTEM_ROOT)
+GNUSTEP_INSTALLATION_DOMAIN = SYSTEM


include $(GNUSTEP_MAKEFILES)/application.make
---------------------

Is this Ok? It's working well so far.



2009/5/25 Gregory John Casamento <greg_casamento@...>:

> All,
>
> The GAP project has released version 0.9.5 of Terminal.    This version
> contains fixes which have been applied to allow the application to properly
> compile and run on modern versions of GNUstep and also contains changes
> which allow it to work on additional operating systems such as Solaris and
> OpenBSD.
>
> Terminal was originally written by Alex Malmberg for the Backbone project.
>
> Please download the application, and other GAP applications at:
> http://gap.nongnu.org/
>
> ====
> Terminal.app - copyright (c) 2002 Alexander Malmberg
> <alexander@...>
>
> OpenPty and ForkPty replacements written by Riccardo Mottola, 2005-2008
>
> a terminal emulator for GNUstep
>
> This file is a part of Terminal.app. Terminal.app 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; version 2
> of the License. See COPYING or main.m for more information.
>
>
> Installing
> ----------
>
> You'll need gnustep-base and gnustep-gui (or possibly some other
> openstep-like system).
> The pty code is known to work on GNU/Linux and FreeBSD and NetBSD.
> Pty code replacement is provided and used by default on Solaris, where
> it is known to work. On other operating systems you might want to
> define USE_FORKPTY_REPLACEMENT in TerminalView.m
>
> Reports
> and/or patches for other systems are welcome.
>
> To build, run 'make'.
> To install, run 'make install'.
>
> (All the usual gnustep-make options apply.)
>
>
> Running
> -------
>
> Run it just like you'd run any other GNUstep application, eg.:
>   openapp Terminal.app
>
> An empty window with a shell will be opened when the program starts, unless
> you gave it a command on the command line, in which case that command will
> be run in the opened window.
>
>
> Fonts
> -----
>
> You can change the fonts used for normal and bold text in the preferences
> panel. Terminal.app will get the metrics for the character cells from the
> normal font, so this font really should be a fixed pitch font or things
> will look messed up. The bold font should closely match the normal font.
>
> (Terminal.app assumes that all characters, bold and normal, stay inside
> the normal font's bounding box. If they don't, there will be visual
> glitches. However, it is more common that a non-fixed pitch font's bounding
> box is very large (since it needs to enclose _all_ characters in the font),
> so that the terminal window will be very wide.)
>
>
> Keys
> ----
>
> By default, the command key is used to access key equivalents for menu
> entries, and thus can't be used as a meta key in the terminal. If you
> have command mapped to the key you want to use as meta, you can enable
> 'Treat the command key as meta' in the preferences panel. However, this
> will disable all key equivalents in Terminal.app. The 'proper' solution
> to this problem is to remap the command key (and possibly alternate key).
> The alternate key will always be treated as meta.
>
> Often, the escape key can be used to emulate a meta key. This means that
> in some programs, you might have to press escape twice to get a 'real'
> escape, or there will be a delay before it is handled. The 'Send a double
> escape...' option causes Terminal.app to send a double escape when you hit
> the escape key (ie. "\e\e"), which should work better (but you can no
> longer use the escape key as meta).
>
>
> Terminal services
> -----------------
>
> Terminal.app can provide services for other applications by piping the
> selection through arbitrary commands. Services are configured in one of
> the preferences panel's tabs. The first time you open this tab, a default
> set of services will be loaded. To save these where make_services will
> actually find them, press 'Apply and save'. This will also run
> make_services to update the services list, but it may take up to 30
> seconds for running applications to notice the change.
>
> The 'Add' and 'Remove' buttons add and remove services. Using the 'Export'
> button it is possible to save a set of services to a file. These files
> can be imported using the 'Import' button, so it is possible for users to
> share terminal services definitions. The extension of the file should be
> '.svcs'. The default set of services is such a file located in the
> application wrapper's resource directory. If you import a service with
> the same name as an existing service, and they aren't identical, the new
> one will be renamed to avoid a conflict.
>
> Name
>   This is the name of the service as it appears in the services menu. By
>   default, terminal services will be placed in a 'Terminal' submenu
>   of the Services menu, but you can override this by giving the name a
>   leading '/'. In this case, you can also use a second '/' to create your
>   own submenus. (gnustep-gui doesn't support submenus of submenus, though.)
>   Names must be unique.
>
> Key
>   The key equivalent for this command, if any. Note that if an application
>   uses this key for some other menu entry, the key will activate that menu
>   entry, not the service.
>
> Command line
>   The command line. It is passed to /bin/sh, so any shell commands will
>   work, and arguments may have to be quoted. A '%p' in the command line
>   will cause a prompt to be brought up when the service is run. If input
>   is to be placed on the command line, you can mark the place to put it
>   at with '%s' (otherwise it will be appended to the command line). You
>   can use '%%' to get a real '%'.
>
> Run in background/new window/idle window
>   If a service is set to run in the background, the command will have to
>   complete before the service will return, and the service can return
>   output. Otherwise, the command's output will appear in a window. 'new
>   window' causes a completely new window to be opened (and it will close
>   automatically when the command is completed if that option is set).
>   'idle window' causes Terminal.app to try to reuse an existing idle
>   window. If there is no such window it will open a new window (and that
>   window won't close automatically).
>
> Ignore/return output (only applies to background services)
>   If set to ignore, the output of the command will be discarded. Otherwise,
>   it will be parsed to a string or a bunch of filenames, depending on the
>   acceptable types. The output is assumed to be utf8 encoded.
>
> No input/Input in stdin/Input on command line
>   If set to 'No input', the service won't accept any input. Otherwise it
>   is necessary to select something to run it, and the selection will be
>   either piped to the command ('in stdin') or placed on the service's
>   command line (either at the '%s' or at the end, see above). Input will
>   be sent to the command utf8 encoded.
>
> Accept types
>   Plain text will be sent verbatim to the command. A list of filenames
>   (possibly just one) will be sent separated by ' ':s (if on the command
>   line), or newlines (if in stdin).
>
>
> Terminal emulation
> ------------------
>
> The terminal emulation code is based on Linux's console code, and nearly
> all parts of it are handled. Thus, the TERM environment variable is set
> to 'linux'. Additionally, 'vt100', 'vt220', 'xterm', and others similar
> to these should mostly work. To distinguish Terminal.app from a 'real'
> linux console, the environment variable TERM_PROGRAM is set to
> 'GNUstep_Terminal'.
>
>
> The xterm extensions for setting the window's title are also supported.
> You set the title using:
>
> '\033]'+0, 1, or 2+';'+the title+'\007'
>
> 1 sets the miniwindow title, 2 sets the window title, and 0 sets both.
>
> Example (from Jeff Teunissen):
>  export PROMPT_COMMAND='echo -ne "\033]2;Terminal - ${HOSTNAME}:${PWD}\007"'
>
>
> (The terminal emulation code is fairly modular. If you want to write a
> terminal emulation class for some other terminal, contact me and I'll
> do the remaining cleanups necessary to load terminal emulation classes
> from bundles.)
> ====
>
> Thanks,
> Gregory Casamento -- Principal Consultant - OLC, Inc
> # GNUstep Chief Maintainer
>
>
> _______________________________________________
> Discuss-gnustep mailing list
> Discuss-gnustep@...
> http://lists.gnu.org/mailman/listinfo/discuss-gnustep
>
>


_______________________________________________
apps-gnustep mailing list
apps-gnustep@...
http://lists.gnu.org/mailman/listinfo/apps-gnustep

Re: ANNOUNCE: Terminal v0.9.5

by Stef Bidi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, May 25, 2009 at 7:52 PM, Robson Cardoso dos Santos <cardoso.rcs@...> wrote:
Hi, when I try to make a package for Arch Linux I got this error message:

------------------
This is gnustep-make 2.0.7. Type 'make print-gnustep-make-help' for help.
*ERROR*: the software is configured to install itself into /opt/GNUstep/System
but you do not have permissions to write in that directory:
Aborting installation.
-------------------

So, whith this patch, the error disappears (at least for a Arch package)

--------------------
--- src-orig/Terminal-0.9.5/GNUmakefile 2009-05-23 11:59:10.000000000 -0300
+++ src/Terminal-0.9.5/GNUmakefile 2009-05-25 21:20:33.000000000 -0300
@@ -63,7 +63,7 @@
MAKE_STRINGS_OPTIONS = --aggressive-match --aggressive-remove


-GNUSTEP_INSTALLATION_DIR=$(GNUSTEP_SYSTEM_ROOT)
+GNUSTEP_INSTALLATION_DOMAIN = SYSTEM


include $(GNUSTEP_MAKEFILES)/application.make
---------------------

Is this Ok? It's working well so far.

Actually, as far as I know, the makefile should not be defining GNUSTEP_INSTALLATION_*, and install Terminal.app into the LOCAL domain by default.  To modify that, you'd need to set GNUSTEP_INSTALLATION_DOMAIN=SYSTEM during make install.  My guess is that this is a bug in the makefile, left over from the previous version of Terminal.app.

_______________________________________________
apps-gnustep mailing list
apps-gnustep@...
http://lists.gnu.org/mailman/listinfo/apps-gnustep

Re: ANNOUNCE: Terminal v0.9.5

by Nicola Pero-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> -GNUSTEP_INSTALLATION_DIR=$(GNUSTEP_SYSTEM_ROOT)
> +GNUSTEP_INSTALLATION_DOMAIN = SYSTEM
>
> include $(GNUSTEP_MAKEFILES)/application.make
> ---------------------
>
> Is this Ok? It's working well so far.
>
> Actually, as far as I know, the makefile should not be defining  
> GNUSTEP_INSTALLATION_*, and install Terminal.app into the LOCAL  
> domain by default.  To modify that, you'd need to set  
> GNUSTEP_INSTALLATION_DOMAIN=SYSTEM during make install.  My guess is  
> that this is a bug in the makefile, left over from the previous  
> version of Terminal.app

That's right - the makefile should not define  
GNUSTEP_INSTALLATION_DIR, and should not define  
GNUSTEP_INSTALLATION_DOMAIN.
If it does, it's a bug.  Obviously defining GNUSTEP_INSTALLATION_DIR  
is "particularly" a bug since it won't even really work properly
with all the filesystem domain configurations in gnustep-make v2. ;-)

So I agree that removing both lines is the correct thing to do.

Thanks

PS: For people who compile things from sources and wish to always  
install Terminal (or any other package) always into SYSTEM, they should
create a /etc/GNUstep/installation-domains.conf copying the template  
from core/make/installation-domains.conf.  In there, they can specify
the list of packages that they want to always automatically be  
installed into SYSTEM.  The match is done using the gnustep-make  
variable
PACKAGE_NAME, so all the GNUmakefiles for Terminal.app should include  
the line

  PACKAGE_NAME = Terminal

If it doesn't do it yet, this is a second change that would be good to  
do.


_______________________________________________
apps-gnustep mailing list
apps-gnustep@...
http://lists.gnu.org/mailman/listinfo/apps-gnustep

Re: ANNOUNCE: Terminal v0.9.5

by Riccardo Mottola-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.
Hi,
 

Actually, as far as I know, the makefile should not be defining GNUSTEP_INSTALLATION_*, and install Terminal.app into the LOCAL domain by default.  To modify that, you'd need to set GNUSTEP_INSTALLATION_DOMAIN=SYSTEM during make install.  My guess is that this is a bug in the makefile, left over from the previous version of Terminal.app.
you are correct. The makefile was revisited by Nicola a long time ago, I modified it myself then and it worked with no warnings. But I always install into system so I never noticed. It is indeed a leftover.
 
I already fixed that in CVS Head.
 
Riccardo

_______________________________________________
apps-gnustep mailing list
apps-gnustep@...
http://lists.gnu.org/mailman/listinfo/apps-gnustep