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