Could we have a non X windows system core for console and server, for debian based?
Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Could we have a non X windows system core for console and server, for debian based?
Hello,
If you like SSH, and do often remote, sometimes you dreamt about a window system core for the non X. To move your windows of apps running, resize, bit like a WM, but under no X.
I don't know, for text based stuff I prefer straight console, I can't think of a way you can run a window manager without X-windows, but you could use the multiple session of the console by Alt-function keying through them using Alt F1- AltF6 I know you can add more, don't know how off the top of my head, but right ther six console session you can run at once out of the box.
Last edited by scheidel21; 09-11-2009 at 08:41 AM.
Reason: Typed wrong thing
You could write your own X server equivalent and WM, but that would be a lot of work. If you want to be able to use a GUI, use X. If you don't need a GUI, use SSH.
You could write your own X server equivalent and WM, but that would be a lot of work. If you want to be able to use a GUI, use X. If you don't need a GUI, use SSH.
I'm tempted to say that you give the screen utility an extended tryout. It is far more efficient than twin, and you can disconnect from a session to resume it later on.
I'm tempted to say that you give the screen utility an extended tryout. It is far more efficient than twin, and you can disconnect from a session to resume it later on.
I like pc dos, or I dont know the name of it.
I think we do need a sort of fast environment
I would like to play with windows, for chat hotmail, and skype no X (ohphone).
I think it can be useful since you have the time too, you can configure it
and it is far
It work from kenya, from australia, turbo quick, anywhere on earth (no X)
Screen is too much keyboard sometime, we need to relax the fingers
Twin
Le premier sujet du mois est Twin [5], un environnement texte multi-applications et multi-fenêtres écrit par Massimiliano Ghilardi. C'est pourquoi Twin est un acronyme de "Text WINdows" ou (encore mieux) de "textmode window environment" (environnement fenêtré en mode texte).
Le projet s'adresse à ceux qui cherchent à disposer d'un environnement multi-fenêtres sans recourir à X11, riche en fonctionnalités mais grand consommateur de ressources.
La combinaison de Twin et de Links, un navigateur web en mode texte, n'utilise que 5% des ressources nécessaires à X11 et au navigateur graphique Konqueror. Toutes les applications qui peuvent être utilisées dans une console ou une fenêtre terminal peuvent aussi être utilisées sous Twin.
Alors que les cartes graphiques rivalisent constamment en nouvelles fonctionnalités et où ce qu'il était impossible d'avoir hier est disponible le lendemain, ce projet semble complètement anachronique. Mais comme je l'ai déjà expliqué avec le projet RULE dans le numéro précédent [6], cela n'est vrai que pour une petite partie de l'humanité.
Dans beaucoup d'endroits les gens continuent d'utiliser longtemps un matériel déjà obsolète, y compris dans les écoles de pays plus à l'aise financièrement.
Mais il y a un autre groupe qui tire aussi bénéfice de Twin et à qui les nouveaux logiciels ne s'adressent pas habituellement: les personnes aveugles et malvoyantes. Comme elles doivent utiliser des terminaux Braille, les interfaces utilisateurs graphiques ont peu d'intérêt pour elles.
Grâce à Twin, elles peuvent maintenant utiliser un environnement complet avec de multiples fenêtres et applications. En fait Massimiliano dit qu'il reçoit vraiment beaucoup de réponses de ce groupe d'utilisateurs, ce qui l'a surpris au début.
Techniquement parlant, le projet consiste en un serveur, appelé "twin" comme le projet. Ce serveur accepte les connexions des clients et crée ou modifie des fenêtres d'après leurs requêtes. Le serveur gère aussi dynamiquement les différents affichages et périphériques.
Twin supporte actuellement la console avec le support de la souris via gpm et tout terminal compatible termcap ou ncurses avec le support de la souris à travers le protocole de souris "xterm", si disponible. Mais il est aussi possible d'utiliser X11 au moyen d'un simple pilote X11 ou d'un pilote gfx graphiquement amélioré en sortie, de même qu'un autre serveur Twin sur une autre machine.
L'Interface Graphique Générale (GGI) est aussi supportée, mais comme elle ne gère toujours pas le clavier, elle ne convient sans doute pas à la plupart des applications.
Parmi les autres composants, la bibliothèque libTw, qui effectue la communication avec le serveur, ainsi que la libTT, qui fournit, en tant que bibliothèque d'outils, une abstraction entre les fonctions purement graphiques du serveur et les fonctions plus orientées fenêtre/objet que préfère le client. La troisième bibliothèque est libTutf, une bibliothèque Unicode qui permet de transformer du texte en unicode et vice-versa. Cette bibliothèque sera sans doute rendue obsolète par l'utilisation de bibliothèques standards à l'avenir lorsque les derniers points ouverts auront été traités.
Viennent enfin les clients. Ils sont actuellement peu nombreux, et deux d'entre eux sont inclus dans le serveur. Le gestionnaire de fenêtres, qui peut être configuré par un fichier "~/.twinrc", ainsi que le simple terminal émulant la console ont été intégrés dans le serveur pour des raisons techniques.
Les autres clients sont un émulateur de terminal supplémentaire (twterm), une invite de connexion similaire à xdm/gdm/kdm (twdm), un moniteur système (twsysmon), des outils pour (dés)enregistrer des affichages sur le serveur ainsi que d'autres petits clients qui sont plus adaptés au test qu'au vrai travail.
Le projet commença sous forme de programme DOS en 1993, mais les problèmes de multi-tâches le stoppèrent très vite. Il ne reprit de la vitesse que lorsque Massimiliano passa à GNU/Linux en 1999 et porta le projet sur sa nouvelle plate-forme.
Le projet est écrit entièrement en C, ce qui explique sa faible occupation mémoire (un serveur Twin nécessite habituellement moins de mémoire que le shell Bash). Et bien sûr Twin est un Logiciel Libre; ses licences sont la Licence Publique Générale de GNU (GPL) pour le serveur et les clients, et la Licence Publique Générale Moindre (LGPL) pour les bibliothèques.
Pendant son temps libre (plutôt rare), Massimiliano continue le développement, et il a toujours de nombreuses idées. Il souhaite en premier compléter la bibliothèque d'outils et sa documentation; puis, d'autres éditeurs, barres d'outils, gestionnaires de fichiers, navigateurs web, programmes de courrier électronique et programmes de terminal devront être adaptés pour l'utiliser.
Pour ces tâches, Massimiliano demande explicitement de relayer sa demande d'aide, parce qu'il y a encore beaucoup à faire. Il cherche par exemple des volontaires pour documenter la bibliothèque de communication, créer un économiseur d'écran libTW, compléter twdialog, l'équivalent Twin de Dialog, ou travailler sur twclip, un outil pour copier et coller les contenus d'un presse-papier.
Que ceux qui sont intéressés à participer consultent la liste de diffusion. Les utilisateurs trouveront Twin déjà présent par exemple dans la branche stable de la distribution Debian.
they say that TWIN is very nice for people that have difficulties to see.They like the program.
#
# This file contains the configuration for twin look-n-feel.
# By default, it is installed as ${libdir}/twin/system.twinrc
# and, provided twin is compiled with RC parser support,
# it is used as fallback configuration in case the user does not
# have his own ${HOME}/.twinrc
#
# to customize twin user interface, just copy this file in your
# home directory as `.twinrc' and edit it to your tastes.
#
# file syntax:
#
# a hash sign '#' at the beginning of a line means the line
# is a comment (you are already reading such a comment!)
#
# Many different commands are recognized, and are listed below.
# A quick summary of all keywords can be found at the end of this file.
# First command:
#
# set screen background
Background 1 High Black On Blue (
"\xb1"
)
# the screen `1' is created by twin at startup,
# so we do not need to `AddScreen 1',
# and `High Black On Blue' means `high intensity black' (i.e. gray) foreground
# on `blue' background.
#
# the complete list of colors is:
# Black Blue Green Cyan Red Magenta Yellow White
#
# and `High' can be applied both to foreground and background.
# depending on the display you use, `High' background may actually blink.
#
# the strings inside ( ) are just the screen background,
# each string representing a line.
#
# every time you must write a string, you can use hexadecimal codes like "\xb1"
# or octal codes like "\261", and double quotes surrounding the string
# are only needed to protect special characters (i.e. parentheses,
# non-alphanumerical chars, etc.). Sequences like "\?" where ? is a character
# have the same meaning as in C language:
# "\"" is a string containing a double quote,
# "\n" is a newline, and so on.
#
# create the common part of all menus
#
# you need quotes to protect reserved names
# or strings containing non-alphanumerical chars.
# again, parenthesis '(' and ')' are used to group together a list
#
# this creates the menuitem " Window ", shared by all applications,
# with the contents you see below.
#
# the command `Nop' is a do-nothing command used to insert a linebreak.
# `_Next' is a user function (all other ones are predefined by twin) and
# is defined below.
#
AddToMenu " Window " (
" Move " Interactive Move
" Resize " Interactive Resize
" Scroll " Interactive Scroll
" Center " Center
" Maximize " Maximize
" Full Screen " FullScreen
" Roll Up " Roll Toggle
"" Nop
" Raise/Lower " RaiseLower
" UnFocus " Focus Off
" Next " _Next
" List... " WindowList
"" Nop
" Refresh " Refresh
" Send Pause " SyntheticKey Pause
#
# this is a user contributed idea: ALT-TAB to cycle through windows.
# feel free to uncomment this line and the `Key Alt Tab _Next' far below
#
# " Send Alt-Tab " SyntheticKey Alt Tab
#
"" Nop
" Close " Close
"" Nop
" Kill Client " Kill
)
#
# define the user function `_Next' :
# group commands in '(' ')' and put either a newline or a ';'
# after each command. `Window 1' means first window, while
# `Window 0' is the currently focused window.
#
AddToFunc _Next ( Lower; Window 1; Focus; )
# this would be exactly the same
#
# AddToFunc _Next (
# Lower
# Window 1
# Focus
# )
#
# or you can even split the function definition:
#
# AddToFunc _Next ( Lower; Window 1; )
# AddToFunc _Next (
# Focus
# )
#
#
# These are not needed... and they override
# the borders defined by Alternate Font
#
# Border "*" Inactive (
# "ÚÄ¿"
# "³ ³"
# "ÀÄÙ"
# )
#
# Border "*" Active (
# "ÉÍ»"
# "º º"
# "Èͼ"
# )
#
# But maybe you feel funky and want different borders
# for different windows:
#
# Border "*Term*" Inactive (
# " ß "
# "Ý Þ"
# " Ü "
# )
#
# Border "Clock" Active (
# " "
# " "
# " "
# )
#
# Border "Tw*" Active (
# "ÖÍ·"
# "³ ³"
# "Óͽ"
# )
#
# menu windows have no name... and are always considered Inactive
#
# Border "" Inactive (
# "ÛßÛ"
# "Û Û"
# "ÛÜÛ"
# )
#
# create the buttons on window top border.
# allowed buttons range from 0 to 9.
#
# syntax:
# Button <number> "shape" {Left|Right} [[+|-]<position>]
#
# creates button <number> with given "shape", either on Left or Right
# of window title. Optionally, you can control where exactly to place it:
#
# `Left +<n>' or `Right +<n>' leaves <n> free spaces between this button
# and the last one on the same side.
#
# `Left <n>' or `Right <n>' specifies exact distance between button and
# window Left (Right) edge.
#
# `Left -<n>' or `Right -<n>' says to place the button <n> characters nearer
# to the border than just `Left' or `Right', possibly intersecting
# other buttons.
#
# WARNING: Button 0 must ALWAYS be the close button...
#
Button 0 "[]" Left
Button 1 "\x12\x12" Right
Button 2 "><" Right
#
# a maximize/fullscreen button. feel free to uncomment :-)
# Button 3 "+-" Right +1
#
# override the Options specified at compile time
#
# set shadows to 3x2 and enable them
GlobalFlags Shadows 3 2 +Shadows
#
# enable blink/high background
GlobalFlags +Blink
#
# do not force cursor always visible
GlobalFlags -CursorAlways
#
# disable edge screen scrolling
GlobalFlags -ScreenScroll
#
# do not hide the menu
GlobalFlags -MenuHide
#
# enable menu information row
GlobalFlags +MenuInfo
#
# don't relax menu navigation
GlobalFlags -MenuRelax
#
#
# choose the mouse button used for click-to-focus,
# for text selection and to activate window gadgets.
# 1 means Left, 2 means Middle, 3 means Right.
# this also implies a 'Focus' action when clicking in a non-focused window.
#
GlobalFlags ButtonSelection 1
#
# choose the mouse button used to paste text selection
#
GlobalFlags ButtonPaste 2
#
# keyboard bindings syntax:
#
# Key <flags> <name> <function>
#
# <flags> is optional and can be one or more of
# Shift
# Ctrl
# Alt
# remember anyway that except on X11 display twin can detect these flags
# only deducing them from the ASCII sequences it receives from the keyboard,
# so Shift is almost useless and not all keys combined with Ctrl and Alt
# make sense (i.e. they must produce a unique, identificable ASCII sequence)
#
# <name> is the name of the key as in libTwkeys.h, without the TW_ prefix.
# some examples:
# Tab Return Escape BackSpace
# Left Up Right Down
# Prior (Page_Up) Next (Page_Down)
# Home End Insert Delete
# Pause Num_Lock
# F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
# or any ASCII character in double quotes:
# "A" "[" "\xFF" and so on
#
# Pause pops up the menu
Key Pause Interactive Menu
# this is a user contributed idea: ALT-TAB to cycle through windows.
# feel free to uncomment this line and the one far above saying this
# same comment.
#
# Key Alt Tab _Next
#
# mouse bindings syntax:
#
# Mouse <buttons-list> <context> <function>
#
#
# context is a string consisting of one or more of the following:
# 0..9 corresponding button in window title
# C window resize corner
# T window title bar
# S window sides
# B window scroll bars
# W one of T,S,B (i.e. window border except buttons and corner)
# I window inside
# M menu
# R root (screen background)
# A any of the above
#
#
# mouse bindings: left click on button 0 graciously closes the window
#
Mouse 1 0 Close
# this is subtle: doing
# Mouse H1 0 Close
# instead of
# Mouse 1 0 Close
# would close the window when you PRESS mouse left button on window close button,
# NOT when you CLICK (i.e. PRESS, then RELEASE) on it!
#
# (note: `H' means `hold'. there is also `C' which means `click',
# but it's the default and can be omitted, unless you want you want to use
# them together, meaning to execute on PRESS and again on CLICK,
# by specifying `HC' )
#
# any mouse click on button 1 does RaiseLower
Mouse 123 1 RaiseLower
# any mouse click on button 2 does Roll / UnRoll
Mouse 123 2 Roll Toggle
# these are do-nothing if Button 3 above is commented out
#
# mouse left click on button 3 does Maximize
Mouse 1 3 Maximize
# mouse middle click on button 3 does FullScreen
Mouse 2 3 FullScreen
# holding mouse left button on window title or sides does interactive move
Mouse H1 TS Interactive Move
# mouse left on window resize corner does interactive resize
# mouse-based window resize works "as expected" only on window resize corner
# (try yourself to bind some window button to Interactive Resize and see...)
#
Mouse H1 C Interactive Resize
# mouse left on window bars does interactive scroll
# unluckily, mouse-based window scrolling works properly ONLY
# on window bars...
#
Mouse H1 B Interactive Scroll
# mouse left on root unfocuses currently focused window
#
# you can create functions as complex as you like and use them
# just like built-in functions...
AddToFunc _UnFocus ( Window 0; Focus Off; )
Mouse H1 R _UnFocus
# middle button on root opens window list
Mouse H2 R WindowList
# Choose your favorite setup... for twin-classic menus, which appear only
# after you press right mouse button, use this:
#
GlobalFlags +MenuInfo
# right button always opens the menu
Mouse H3 A Interactive Menu
# mouse left on menu-bar does screen resize
Mouse H1 M Interactive Screen
# # Otherwise you can use turbovision style menus:
# # they always stay visible and are selected with left button
# # _on_menu_bar_
# #
# GlobalFlags -MenuInfo
# # left button on menu-bar opens the menu
# Mouse H1 M Interactive Menu
# # in this case, use mouse right button on menu-bar for screen resize
# Mouse H3 M Interactive Screen
# # Or better yet, create your personal style!
# #
# now you may want some initial client...
# uncomment to pop-up a terminal and maximize it.
# `;' is the same as a newline...
#
# ExecTty "" ; Wait "Twin Term" ; Maximize
#
# for all users too lazy to manually load the socket server from the menu:
#
# Module "socket" On
#
# you may also want:
# Module "term" On
#
# list of all RC commands available for ~/.twinrc
#
# AddScreen <screen name>
# # create a new virtual screen
#
# AddToMenu <name> (
# "entry" <function>
# ...
# )
# # add entries to the common part of all menus
#
#
# AddToFunc <name> (
# <function>
# ...
# )
#
# Background <screen> <color> (
# "string"
# ...
# )
# # set screen background
#
# Beep
#
# Border <wildcard-pattern> {Active|Inactive} (
# "ÉÍ»"
# "º º"
# "Èͼ"
# )
#
# Button <n> "<shape>" [+|-[<numeric pos>|Left|Right]]
#
# Center
# # center window
#
# Close
# # politely ask the client to close the window
#
# DeleteFunc <name>
#
# DeleteMenu <name>
#
# DeleteButton <number>
#
# DeleteScreen <screen>
#
# Exec <shell command>
#
# ExecTty <shell command>
#
# Focus [On|Off|Toggle]
#
# GlobalFlags [+|-][AltFont] [+|-][AlwaysCursor] [+|-][Blink] [+|-][EdgeScroll] [+|-][HideMenu] [+|-][MenuInfo] [+|-][MenuRelax] [+|-][Shadows <x> <y>]
#
# Interactive <kind>
# # choose one of: Scroll, Move, Resize, Screen, Menu
#
# Key <flags> <keyname> <context> <function>
# # <flags> is optional and can be one or more of
# # Shift Ctrl Alt
#
# Kill
# # brutally kill the client's connection
#
# Lower
#
# Maximize
#
# FullScreen
#
# Menu
# # pop-up the menu of the currently focused window
#
# Mouse <button> <where> <function>
#
# Module <name> [On|Off]
# load/unload given module
#
# Move [+|-]<x> [+|-]<y>
# # move window
#
# MoveScreen [+|-]<x> [+|-]<y>
# # move screen
#
# Next
# # same as Window +1
#
# Nop
# # do-nothing; used in a menu inserts a linebreak
#
# Prev
# # same as Window -1
#
# Quit
# # unconditionally quit twin!
#
# Read <file>
# # open another file and parse it, then continue with current file
# # (like #include in C files)
#
# Refresh
# # redraw all displays
#
# Restart ""|<window manager name>
# # restart the WM or load another window manager
#
# Resize [+|-]<x> [+|-]<y>
# # resize window
#
# ResizeScreen [+|-]<x> [+|-]<y>
#
# Raise
#
# RaiseLower
# # raise-and-focus or lower-and-unfocus
#
# Roll [On|Off|Toggle]
#
# Scroll [+|-]<x> [+|-]<y>
# # scrolls window contents
#
# SendToScreen <screen>
# # sends window to given screen
#
# Sleep <n>
# # sleeps <n> milliseconds
#
# Stderr <string> ...
# # send message to stderr
#
# SyntheticKey <flags> <key>
# # send the specified key event to window
#
# Wait <window name>
# # wait for specified window to be mapped
#
# Window {[+|-]<n>|<window name>}
# # sets default window to operate on
# # Window <n> :
# # n = 0 : re-get current focused window
# # n > 0 : 1 = First Window, 2 = Second, etc.
# #
# # Window {+|-}<n> :
# # n = 0 : no-op
# # n < 0 : -1 : Prev Window, -2 Prev Prev, etc.
# # n > 0 : +1 : Next Window, +2 Next Next, etc.
#
# WindowList
#
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.