Linux sans OS graphique mais avec des ressources graphiques

23

Ma première expérience informatique a été avec un Commodore. J'aimerais que l'ordinateur fonctionne sous Linux de la même manière. Je me demandais s'il était possible d'avoir quelque chose de similaire en utilisant Linux.

Ce que j'aimerais voir, c'est quand je démarre ma machine sur la ligne de commande, et non dans une interface graphique mais que j'ai des ressources graphiques disponibles. Donc quand je tape dis: Firefox, le programme et son interface graphique seront disponibles. Lorsque je quitte Firefox, il revient à la ligne de commande. Si j'ai besoin de parcourir le système de fichiers, disons que j'ai tapé: XFE ou tout autre gestionnaire utilisé et qu'il s'affiche et me permet de parcourir le dossier, et lorsque je quitte, il revient à la ligne de commande. Ainsi, la possibilité d'exécuter, de gérer et d'utiliser des programmes sans avoir à utiliser une interface graphique mais avec des graphiques disponibles.

Ce serait bien d'avoir tout cela orienté vers la programmation. Ainsi, sur la ligne de commande BASH, vous avez la possibilité d'appeler un IDE d'environnement de compilateur et de commencer à écrire des programmes sans être distrait par un environnement de bureau.

Et si plus d'un programme graphique fonctionne, alors je suppose que j'ai un gestionnaire de fenêtres à onglets. Est-ce faisable ou je rêve?

Linuxuser00
la source
22
Vous cherchez juste un konsole / gnome-terminal / xterm maximisé?
user253751
mais cela n'a alors rien à voir avec Ubuntu ;-) Mieux vaut demander ceci sur U&L unix.stackexchange.com
Rinzwind
11
Je vous invite à appuyer sur Ctrl + Alt + F1 à Ctrl + Alt + F7 respectivement.
Michael Hampton
1
Une autre option consiste à utiliser xterm comme gestionnaire de fenêtres. Je ne peux pas tester ceci pour le moment mais il devrait éditer ~ / .Xsession et définir la dernière ligne sur / usr / bin / xterm sans a & donc ce processus est celui qui ne se termine pas en gardant X en vie. Lorsque ce xterm se termine, la session est terminée et X se ferme. Peut nécessiter des paramètres de géométrie.
Criggie
1
Xterm seul ne résout pas le problème. J'ai créé une installation très minimale. J'ai ensuite installé Firefox. Il indique une erreur: GDK_BACKEND ne correspond pas aux affichages disponibles. Qu'est-ce que je rate?
Linuxuser00

Réponses:

43

Je pense que vous pouvez obtenir ce que vous voulez en utilisant un gestionnaire de fenêtres en mosaïque , comme i3 ou xmonad . Il existe d'autres gestionnaires de fenêtres minimalistes avec des fonctionnalités similaires. i3 et xmonad sont tous deux dans les référentiels Ubuntu, ils sont donc faciles à installer, puis vous pouvez les sélectionner dans votre écran de connexion.

Eduar
la source
C'est soigné et intéressant mais ce n'est pas exactement ce que je recherche. Je voudrais voir chaque programme s'exécuter dans son propre espace de travail en utilisant l'écran entier pour lui-même.
Linuxuser00
12
@ Linuxuser00: Je pense que ce n'est qu'une question de configuration. La plupart des utilisateurs de gestionnaires de fenêtres en mosaïque aiment utiliser leurs grands écrans pour afficher les informations côte à côte, mais ils prennent tous en charge le basculement entre plusieurs applications en plein écran.
ojdo
Après avoir lu cette réponse, j'ai essayé i3. Il se sent un peu plus réactif que compiz. Mais il faut un certain temps pour s'y habituer. Je n'ai toujours pas compris comment faire pour que les fenêtres dans i3 aient les tailles exactes, je veux qu'elles aient.
kasperd
@kasperd tu veux dire mod + R puis jouer avec des flèches? puis après avoir fini de t'échapper?
vimdude
24

Je crains que vous ne manquiez la principale différence entre les environnements informatiques modernes et ceux de l'ère C-64. Les ordinateurs personnels de l'ère C-64 étaient des systèmes à utilisateur unique et à processus unique et ne partageaient pas les ressources informatiques avec d'autres processus. Cela signifie tout simplement que lorsque vous exécutez un programme sur votre C-64 qui était un programme graphique, il reconfigure le matériel de votre ordinateur pour qu'il soit en mode «graphique», puis votre programme en cours d'exécution gère toutes les sorties graphiques et l'utilisateur. entrée de la souris et du clavier lui-même.

Les ordinateurs modernes et leurs logiciels, en revanche, sont multi-utilisateurs, multi-processus, mais pas seulement, les logiciels modernes dépendent de bibliothèques partagées, par exemple Firefox s'appuie sur la bibliothèque de fenêtrage GTK, et qui à son tour s'appuie sur d'autres bibliothèques de niveau inférieur. Donc, pour que Firefox fonctionne, cela dépend de toute une pile de logiciels et de configurations.

Parce qu'il y a tellement de logiciels sous-jacents, cela rend plus efficace de rester dans un environnement graphique une fois qu'il démarre, plutôt que de charger l'environnement graphique pour Firefox, puis de l'arrêter, puis de démarrer l'environnement graphique pour un autre programme, et ainsi de suite.

Vous pouvez tout simplement démarrer et exécuter n'importe quel programme GUI Linux à partir d'une fenêtre de terminal (console), je vous conseille donc de choisir vous-même un environnement de bureau graphique simple, peut-être Enlightenment ou Openbox , et tout simplement exécuter à partir d'une fenêtre de terminal / xterm.

David
la source
11

Je suis d'accord avec Eduar, vous voulez probablement un Tiling / Dynamic Window Manager (WM). Mais personne ne s'adresse directement:

Ce que j'aimerais voir, c'est quand je démarre ma machine sur la ligne de commande

Actuellement, vous devez démarrer dans un gestionnaire d'affichage (DM) où vous vous connectez. Vous avez donc deux options, démarrer dans un shell ou une console DM.

Si vous n'avez pas de DM configuré, vous vous connecterez par défaut à un shell, cela vous donnera une invite de connexion de nom d'utilisateur puis de mot de passe, si vous entrez les informations d'identification correctes, vous vous connecterez à votre shell par défaut. J'utilise ceci et ce qui suit est à peu près mon «processus» de démarrage moyen:

Arch Linux 4.1.5-1-ARCH (tty1)

localhost login: Joe
Password: 
$ startx

Si vous voulez avoir un DM, mais une console, alors vous devrez l'installer et le configurer. Le wiki d'Arch indique actuellement qu'il existe trois DM de console: CDM, TDM de console et nodm .

Ubuntu utilise LightDM par défaut , vous devrez donc peut-être le supprimer.
Mais en tant que personne qui n'a actuellement pas de DM, je recommanderais de garder votre DM actuel et de simplement changer votre WM. Il est fastidieux d'avoir à taper startxet à partir de la mémoire, le faire s'exécuter automatiquement correctement était ennuyeux à configurer.

Theresa Lane
la source
Ubuntu utilise lightdm par défaut, au moins sur la variante Unity.
Léo Lam
En termes de fonctionnement startxautomatique, je crois que chaque compte a un script bash qui est exécuté lors de la connexion (ou équivalent pour d'autres shells)
Nick Mertin
Veuillez me pardonner si c'est complètement incorrect, mais comme .bash_profilec'est un script bash ordinaire, ne pourriez-vous pas simplement le mettre startx?
Nick Mertin
@ MagikM18 Que faire si vous souhaitez exécuter un shell bash interactif après le démarrage de X? Sans aucun contrôle, .bash_profilej'essaierais de startxrecommencer.
joeytwiddle
@joeytwiddle vrai, je n'y ai pas pensé
Nick Mertin
10

startx et xinit peuvent tous deux recevoir un client initial pour commencer. La commande suivante:

startx /usr/bin/firefox

fera tourner un xserver sur le TTY sur lequel vous travaillez actuellement et démarrera une seule instance de firefox en quelque chose comme le plein écran. Vous pouvez passer à d'autres tty pour éviter d'avoir à arrêter la session firefox juste pour revenir à la console, ou pour y amener d'autres clients. Vous devrez peut-être spécifier de nombreuses options pour rendre cela agréable pour votre moniteur, car vous n'aurez pas l'environnement de bureau faisant une partie de cette configuration pour vous.

Vous devez savoir que certains xclients ne fonctionnent pas bien en dehors des gestionnaires de fenêtres ou des environnements de bureau. Il n'y a pas de DE fournissant des décorations de fenêtre et pas de WM écoutant les combinaisons de touches MOD, donc si elles ne fournissent pas un moyen graphique de quitter, vous devrez tuer le processus (ou X) d'un autre ATS.

Normalement, le client initial utilisé par X est un environnement de bureau ou un gestionnaire de fenêtres qui n'est qu'un type spécial de client qui lance et intègre d'autres clients en plus d'afficher sa propre fenêtre.

Steve Cox
la source
10

Alternatives

Mode Framebuffer

Certains programmes sont capables de fonctionner en mode framebuffer. Le mode Framebuffer permet à une application d'avoir l'écran tout seul, permettant à l'application de dessiner pixel par pixel tout ce qu'elle veut sur l'écran. Tous les programmes ne le supportent pas, mais il y en a quelques-uns qui le font.

Le mode Framebuffer ne nécessite pas de serveur X (comme X.orgdans le cas des versions actuelles d'Ubuntu, ou dans un proche avenir peut Mir- être ou Waylandselon celui qui devient plus populaire), ni aucun gestionnaire de fenêtre / environnement de bureau pour démarrer. Cela devrait vous donner un texte plus rapide pour le changement de mode graphique (et vice-versa), surtout que sur (la plupart?) Les distributions Linux modernes et les pilotes graphiques, les Alt-F[1-6]consoles sont rendues en utilisant le mode framebuffer de toute façon.

"Interface utilisateur texte" (TUI)

Certains programmes qui prennent normalement en charge uniquement la ligne de commande utilisent une souris via gpm. Sur Ubuntu, il vous suffit d'installer le package gpmet il devrait fonctionner immédiatement sans aucune configuration ni même redémarrage nécessaire (IIRC). Une fois gpminstallé, le pointeur de votre souris sera affiché comme un curseur de texte de style bloc et vous pouvez utiliser la souris comme d'habitude pour cliquer sur les éléments de l'interface utilisateur. Vous pouvez également mettre en surbrillance du texte et utiliser le copier-coller.

Si vous voulez aller plus loin, il existe même un "gestionnaire de fenêtres" qui vous permet d'exécuter plusieurs applications de terminal sur le même mode texte "bureau".


Liste non exhaustive des programmes prenant en charge le mode framebuffer

  • mc (Midnight Commander) - gestionnaire de fichiers
  • Links / Links 2, Netsurf - navigateurs Web
  • fbi - visionneuse d'images
  • fbgs (lié à fbi, partie de la même suite), fbpdf - visionneur PDF
  • mplayer, fbff (basé sur ffmpeg) - lecture audio / vidéo
Pabru
la source
Cela semble vraiment sympa, si seulement ce n'était pas si limité, merci.
Linuxuser00
Salut @ Linuxuser00. Il y a quelques autres programmes, je n'ai tout simplement pas eu le temps d'en énumérer plus :)
Pabru
Hé @ Linuxuser00, j'en ai ajouté quelques autres si vous êtes toujours intéressé
Pabru
5

Cherchez à utiliser un gestionnaire de fenêtres comme FVWM2, plutôt qu'un "bureau". Vous pouvez le configurer pour n'ouvrir qu'un (ou plusieurs) xterms au démarrage, pouvez exécuter n'importe quelle application graphique comme un navigateur Web à partir de la ligne de commande, ne soyez pas gêné par des choses de bureau comme la «barre d'état système» ou des icônes pour tout, mais pouvez ajouter tout ce que vous pourriez trouver utile. (Dans mon cas, il s'agit d'une fenêtre de pageur pour plusieurs écrans et d'un moniteur de charge Conky.)

jamesqf
la source
Je joue actuellement avec celui-ci. Peut-être que je ne l'ai pas configuré pour le moment, mais semble être instable et s'est écrasé sur moi.
Linuxuser00
Humm ... Je le gère depuis - oh, à la fin du 20e siècle - et je n'ai pas eu de problèmes. Mais j'utilise OpenSuSE plutôt qu'Ubuntu car (entre autres raisons) il semble plus simple d'utiliser des gestionnaires de fenêtres plutôt que le «bureau» par défaut. Si vous voulez aller plus loin, FVWM a un forum de support: fvwmforums.org/phpBB3 L'astuce pour vous inscrire est qu'ils vous posent une question sur une " composition ". La réponse est les membres des Beatles, un groupe pop des années 60. (J'ai dû Google pour la réponse même si j'étais dans les années 60.)
jamesqf
4

C'est très possible.

Vous devez d'abord désactiver le démarrage graphique. Ensuite, vous voulez le "mode mono-utilisateur" (avertissement, il y a des risques de sécurité assez extrêmes avec cela), enfin vous devez déterminer ce qu'il faut faire lorsque vous souhaitez exécuter une interface graphique.

Voir Comment puis-je démarrer en mode mono-utilisateur à partir de GRUB?

Essentiellement, vous ajoutez l'option singleà votre configuration de démarrage GRUB. Vous pouvez le faire dans votre fichier / etc / default / grub pour rendre les modifications permanentes.

Voir Comment désactiver X au démarrage pour que le système démarre en mode texte?

Essentiellement, vous ajoutez textà vos options dans/etc/default/grub

Cela vous donnera un seul utilisateur, un environnement texte uniquement. La prochaine étape consiste à utiliser l'interface graphique. Le programme que vous souhaitez exécuter eststartx

Tu courrais

startx /path/to/executable

Le problème est que vous voulez probablement un gestionnaire de fenêtres quelconque. Je suggérerais twmvos vos besoins.

sudo apt-get install twm

Ensuite, pour exécuter des commandes, je dirais exécuter, startxpuis revenez à votre console (CTRL + ALT + F1) et faites quelque chose comme export DISPLAY=:0. Maintenant, lorsque vous utilisez une interface graphique à partir de la ligne de commande, elle se lance dans le "côté graphique" auquel vous pouvez accéder avec Ctrl + Alt + F7 (généralement).

Si vous aimez cette configuration, vous pouvez même automatiser sa configuration avec un script.

Ça, c'est aussi proche que vous allez le faire, sans beaucoup de travail.

coteyr
la source
Pourquoi avez-vous besoin du mode mono-utilisateur?
MSalters
"Ce que j'aimerais voir, c'est quand je démarre ma machine sur la ligne de commande, ...". Les anciens ordinateurs "Commodore" n'étaient pas multi-utilisateurs. Ils n'étaient pas du tout "utilisateurs". Vous les avez activés et avez obtenu un curseur clignotant pour taper des commandes. Toutes les commandes étaient des essais et il n'y avait aucune sécurité à proprement parler. La chose la plus proche de cela à ce jour est le "mode mono-utilisateur", qui vous permet de vous connecter en tant que root, en contournant la plupart, sinon la totalité, de la sécurité.
coteyr
Aha, je soupçonnais déjà que tu étais confus. Il n'y a aucune bonne raison pour laquelle vous voulez le mode mono-utilisateur ici. Sous Linux, le mode mono-utilisateur par rapport au mode multi-utilisateur est indépendant du choix de l'interface graphique ou de la CLI.
MSalters
Non, je ne suis pas confus. Le PO a demandé un environnement aussi proche que possible d'un commodore. Cela signifie aucune sécurité, aucun multi-utilisateur et aucune connexion. Le meilleur moyen de s'en approcher est le mode mono-utilisateur. Les deux objectifs ne sont pas liés l'un à l'autre, vous pouvez avoir un accès à la console avec plusieurs utilisateurs, vous pouvez avoir une interface graphique avec un seul utilisateur. C'est deux parties de l'objectif global plus large.
coteyr
Non, je ne veux pas d'un environnement aussi proche que possible du Commodore. Je veux une simplicité similaire au Commodore (pas d'OS graphique). Bash seul est génial, mais j'aimerais entrer dans un environnement de codage si je veux coder ou entrer dans un environnement de navigateur si je veux surfer sur le net et ainsi de suite. Et une fois ces programmes terminés, fermez-les et revenez à BASH. ou peut-être avoir plusieurs programmes en cours d'exécution dans leur propre espace de travail. J'ai été occupé et je n'ai pas pu mettre en œuvre certaines de ces méthodes discutées jusqu'à présent.
Linuxuser00
3

J'aime ratpoison pour ce que vous essayez de faire. Je ne posterai pas de capture d'écran car vous ne pouvez pas faire la différence avec une capture d'écran de xterm (ou de n'importe quelle application que vous exécutez). Dans sa configuration standard, il affiche une fenêtre en plein écran. Vous pouvez le diviser pour afficher plusieurs fenêtres, mais pour la plupart de mon utilisation quotidienne, je ne le fais pas. Si vous démarrez un émulateur de terminal à partir de votre fichier .ratpoisionrc, vous obtenez une invite presque dès que vous vous connectez. Il est inspiré par l'écran gnu, et le seul concept qu'ils ont manqué était les sessions détachables et partagées (mais vnc remplit bien cette lacune) .

hildred
la source
2

Je pense que vous pouvez obtenir ce que vous voulez sans jeter le bureau. Comme d'autres réponses ont couvert, vous obtiendrez probablement de meilleures performances avec le bureau fonctionnant de toute façon et il y a des raisons techniques d'utiliser Linux comme un ancien système d'exploitation ne fonctionnerait pas vraiment.

Je vais utiliser gnome comme exemple de flux de travail car c'est ce que je sais, mais je suppose que d'autres environnements de bureau prendraient également en charge des fonctionnalités similaires. Dans gnome 3, vous pouvez avoir un espace de travail (ou plusieurs) avec un terminal plein écran qui a le même aspect que la course en mode ligne de commande uniquement. Le fait que le bureau gnome fonctionne en arrière-plan n'a pas d'importance.

Ensuite, en utilisant un gestionnaire de fenêtres (tel que celui discuté dans cette question SO ) pour contrôler sur quel espace de travail de nouvelles fenêtres sont créées, vous pouvez forcer chaque nouvelle fenêtre à être placée sur son propre espace de travail. Si vous souhaitez déplacer vous-même les fenêtres lors de leur création, vous n'avez besoin d'aucun logiciel au-delà de gnome. Gnome 3 prend en charge les espaces de travail automatiques, de sorte que lorsque vous ouvrez / fermez des fenêtres sur l'espace de travail le plus bas, de nouveaux espaces de travail seront automatiquement créés / supprimés pour eux. Ensuite, vous pouvez simplement utiliser ctrl + alt + arrowpour vous déplacer rapidement entre eux. Lorsque vous fermez une fenêtre, l'espace de travail sur lequel elle se trouvait est automatiquement supprimé et les deux espaces de travail de chaque côté se déplacent ensemble. Tout ce que vous voyez, ce sont les fenêtres que vous avez ouvertes et le terminal.

Godric Seer
la source
Cela semble juste. Peut-être qu'Openbox et Gnome me donneraient ce que je veux?
Linuxuser00
Je n'ai pas utilisé openbox (ou tout autre gestionnaire de fenêtres), vous devrez donc les évaluer vous-même), mais j'exécute gnome 3 sur mon ordinateur portable et j'utilise le flux de travail décrit dans cette réponse (déplacement manuel des fenêtres). J'en suis assez satisfait, bien que réorganiser les fenêtres dans l'ordre que je veux après leur création soit un peu plus pénible que cela devrait être.
Godric Seer
2

Installez Xvfb:

apt-get install xvfb

Courir:

/usr/bin/Xvfb :1 &
export DISPLAY=:1

puis exécutez tout logiciel graphique que vous aimez sans tête.

Ian Ellis
la source
1

Vous pouvez rapidement passer à une interface de ligne de commande en utilisant [ctrl] [alt] [F1] (fonctionne avec [F1] - [F12] je pense). L'un d'eux reviendra également à votre interface graphique lorsque vous en aurez besoin; Je pense que c'est [ctrl] [alt] [F8] sur Mint, donc vous voudrez peut-être essayer celui-là. Je vais cependant me lancer dans le camp «utiliser un gestionnaire de fenêtres de carrelage»; i3 est vraiment un excellent outil.

Johnathan Andersen
la source
Oui, mais le problème que j'ai avec ceci est qu'il y a une interface graphique fonctionnant en arrière-plan en utilisant mes ressources, donc je devrais simplement utiliser l'interface graphique au lieu de prétendre qu'elle n'est pas là.
Linuxuser00
Très vrai! Une façon de contourner ce problème serait de configurer le système d'exploitation pour échanger cette session entière lorsqu'elle n'est pas active. Je ne serais pas trop surpris si cela se faisait automatiquement, mais c'est probablement quelque chose que vous auriez besoin de beaucoup de mal à régler.
Johnathan Andersen