Capstone Project - Build a Terminal Multiplexer
Capstone Project: Build a Terminal Multiplexer
A terminal multiplexer is an application that lets you run different terminal
applications simultaneous. The multiplexer typically gives you tools to switch
between different “screens” displaying the output of different
applications. They may also allow you to configure a set of applications to open
automatically at startup. screen
and tmux
are two popular terminal
multiplexers that you can look at for inspiration.
Using everything that you’ve learned in this book, write your own application
that integrates a terminal multiplexer capability. For example, you might want
to re-implement the hcat
project that you built in the middle of this book,
this time allowing users to open multiple files and switch between them, or even
show multiple files side by side. Design your library so that a user writing
their own terminal application can easily use your multiplexer to add their own
layout and contents.
This is a large project. You will need to use most of what you’ve learned in this book, and you’ll need to learn new libraries and dive into areas we haven’t covered in this book, like multi-threaded programming. You can make this project as large, or small as you want. Whatever you decide, have fun with it! Build something for yourself, use it, improve it, and update it with new versions of GHC as they are released. A living project that you can use every day will give you the best possible experience of how to build and maintain effective Haskell code.
Hint 1
Some high level hint text
Hint 2
Some more detailed hint text
Hint 3
Even more detailed hint text
Solution
A complete solution for the exercise