Tuesday, July 30, 2024

Xmond Tiling Manager

 Xmond Tiling Manager

There are tons of Window Managers and very few are actively developed. They are mostly about how to manipulate and navigate windows and only a part of the whole system.

The total system has 3 components.

1. Kernel which deals with the O.E.M stuff and that is where Linux Torvalds makes decision which hardware to  include and which not to.

2. Second part is the graphical output called Window Managers big and small.

3. Third is the browser to survey the web.

Good example is Google and Google operates with these items.

Apple Mac is similar but more of Unix base.

They are only two corporations and to that one can add Redhat and Suse.

Whereas, Linux community is huge and number of Linux distributions stand up to 1000 but only a few are actively developed.

As to the Coding from tiny Editors to Vi to Emac to huge Gambas (visual basic like) are basically for dumb terminals with only  keyboard input support and minimal video outputs.

They were not all free but with Linux entry they were released under G.P.L license over time from 1980s.

Richard Stallman stand tall to open up the flood gate but he did not have system to port and Linus Torvald did the honours. 

Two together are colossal figures in Free Software Foundation.

Xmonad is not a Window Manager as stated in the WiKipedia. 

It is probably a Terminal Emulator for guys and girls working on a blind terminals and not on a Laptops.

It is minimal and it has many restrictions including not being able to configure even the mouse.

I do not use key board shortcut except Ctrl + Alt and backspace + F1 or F2

Any Linux Operating System that cannot make full use of the keyboard and Function Keys is not worth trying.

By the way, I hate Windows Key now named Super Key and I even hate its Logo.

If you a Laptop guy please use i3 Window Manager, it even integrates with my Variety desktop effects. 

Variety is dangerous if you allow it to be connected to the Free Internet and it brought in a virus attached to one of its images. 

There is i3 based distribution called Pueu at FOSS.

Luckily Google informed me (Thank YOU Google).

Working on a blind terminal leads one to become stressed and depressed like Winter blues, I am telling You as fully retired medical man now medically defunct.

Take a little break and go to the gymnasium. 

I do not watch Olympics but cheer only Australians and what the point of sports when Russia is discriminated.

Sportsmen and women should learn to respect other cultures and languages without that attitude Olympics is a Dead Sport

I hope I can live up to next Olympics to be held in Australia and by then, I will be working hard to get Russians in the Olympics.

Biden and Democrats will be gone by then and Donald Trump should start with sporting diplomacy and then he would be remembered for a long time (that feature and effort).

War will end with Russia demolishing Zelensky, if not Ukraine

Sorry for being bit political for the sake of Sports.
 
Little Neapolitan is a nutty guy and he does not know how to hoist even the Olympic Flag!

Xmond Tiling Manager

Xmonad is a dynamic window manager (tiling) for the X Window System, noted for being written in the functional programming language Haskell.

Window Tiling manager

Begun in March 2007, version 0.1 was announced in April 2007 as 500 lines of Haskell (which have since grown to 2000 lines). 

xmonad is not a tiling window manager—akin to dwm, larswm,and StumpWM.

It arranges windows in a non-overlapping pattern,and enables managing windows without using the mouse.

xmonad is packaged and distributed on a wide range of Unix like operating systems, such as a large number of Linux distributions and Berkeley Software Distribution (BSD)systems.

While originally a clone of dwm (derivative in areas such as default keybindings), xmonad now supports features not available to dwm users such as per-workspace layout, tiling reflection, state preservation, layout mirroring,

GNOME support and per-screen status bars; it can be customised by modifying an external configuration file and 'reloaded' while running. 

Xmonad features have begun to influence other tiling window managers: dwm has borrowed "urgency hooks" from xmonad, has also included Xinerama support (for multihead displays) with release 4.8 and patches exist to reimplement xmonad's Fibonacci layout.

Haskell Project

By utilising the expressivity of a modern functional language with a rich static type system, xmonad provides a complete, featureful window manager, with an emphasis on correctness and robustness. 

Internal properties of the window manager are checked using a combination of static guarantees provided by the type system, and type-based automated testing. 

A benefit of this is that the code is simple to understand, and easy to modify.

Since xmonad's inception, when its small code size of 500 lines of code was advertised, it has now grown to 2000 lines in 2023.

Extensions to the core system, including emulation of other window managers and unusual layout algorithms, such as window tiling based on the Fibonacci spiral—have been implemented by the active community and are available as a library.

Along with obviating the need for a mouse, the xmonad developers make heavy use of semi-formal methods and program derivation for improving reliability and enabling a total line of code count less than 1200, as of version 0.7; window manager properties (such as the behavior of window focus) are checked through use of QuickCheck. 

This emphasis makes xmonad unusual in a number of ways; besides being the first window manager written in Haskell, it is also the first to use the zipper data structure for automatically managing focus, and its core has been proven to be safe with respect to pattern matches, contributing further to reliability.

The developers write: 

Xmonad is a tiling window manager for the X Window system, implemented, configured and dynamically extensible in Haskell. This demonstration presents the case that software dominated by side effects can be developed with the precision and efficiency we expect from Haskell by utilising purely functional data structures, an expressive type system, extended static checking and property based testing. In addition, we describe the use of Haskell as an application configuration and extension language.

The code is separated into side effect free code, and a thin wrapper for the side-effects. 

According to Alejandro Serrano Mena, there are two ways of implementing domain-specific languages for actions in Haskell applications and libraries: "developing a combinator library" or "rolling your own monad", with xmonad being a successful example of the latter. xmonad was regarded as one of the most well known Haskell projects in a 2013 functional programming book.

Reception

Linux Magazine included xmonad in a list of "My Top Resources of 2009". In 2012, How-To Geek described xmonad as having good, but complex, ability to be configured and it was included in a 2013 list of eight desktop environments for Linux. Lifehacker wrote that the basic operations of xmonad's user interface can be taught using a small set of instructions. A high level of customisation and speed were noted by Network World and in MakeUseOf xmonad was reviewed positively compared to Openbox.

In 2016 Ars Technica said xmonad and Awesome had more advanced tiling ability than Cinnamon. In 2017 it was described as powerful, with application as a windows manager for big data, while in an article on opensource.com on the other hand, dwm was chosen over xmonad. A TechRadar review of the "Best Linux desktop of 2018" said "If there's one desktop environment that stands out from all the others we have here, it's this one."

Due to the small number of lines of code of the Xmonad application, the use of the purely functional programming language Haskell, and recorded use of a rigorous testing procedure it is sometimes used as a baseline application in other research projects. This has included re-implementation of xmonad using the Coq proof assistant a determination xmonad is an imperative program and studies of package management relating to the NixOS linux distribution.

No comments:

Post a Comment