Why is Xmonad So Hard?

  Рет қаралды 9,810

The Linux Cast

The Linux Cast

Күн бұрын

Пікірлер: 96
@TheLinuxCast
@TheLinuxCast 10 ай бұрын
Help me get to 10k followers on Mastodon! fosstodon.org/@thelinuxcast
@terminalvelocity4858
@terminalvelocity4858 10 ай бұрын
Matt: Wayland sucks because key binds & screen capture don't work out of the box. Also Matt: Learns the entire Haskell programming language to continue being an Xorg rebel.
@calloq1035
@calloq1035 10 ай бұрын
I just love how curious and humble you are. Love all the content you make, keep up the great work!
@andrearossato4087
@andrearossato4087 5 ай бұрын
what you are probably missing is the fact that xmonad is actually a Haskell library for writing your own window manager... and what is referred to as the xmonad configuration file is actually *the* WM, which gets compiled whenever you change it. xmonad was intended as a project to show that you could write a WM in Haskell with less lines of code than dwm. It all started as a marketing strategy to give Haskell a larger audience. the problem was that such a WM was barely usable, thus the xmonad contrib library was created. I contributed to document the core code, I coded quite a lot of the contrib library in the early stages of development (till the 0.7 release if I remeber correctly) and the documentation. Then I left -- or was dismissed -- because I was pushing for changes in the core library to make coding the contrib library more efficient -- but I was asking for some more code lines and 1000 loc was the upper limit...;-) I'm not surprised that if you do not know Haskell you feel lost, but this is the way it is. ps: I've also authored xmobar, but that was just for fun and because I wanted an Ion-like status bar -- no propaganda involved ...;-)
@ratfuk9340
@ratfuk9340 10 ай бұрын
Nice looking setup (much nicer looking than mine). I started on i3 which I used for years, then I used dwm for a few months and since switching from it I've been on xmonad. The config is hard for sure but not impossible for a motivated user I think. I would actually recommend manually typing your own config file based on someone else's. That way you get a better idea of what each part is and you can tweak the settings too. That's ofc only for ppl who are unsure about their config which was the case for me when I first started using xmonad. Also Haskell is great, the type system and the fact that it's purely functional makes it so nice to work with. The syntax is different, sure, but I think once one adjusts to it it's really nice an minimal. The many ways of doing things in the xmonad config is more of a feature than a bug although I admit that it makes writing your first config harder than on most wms. But you don't really have to understand Haskell to configure xmonad either, stealing someone else's config and just reading through the wiki to change things is how I still would do it. Depending on your tolerance for "unfinished features" and willingness to read a lot and fail a lot, you can get some pretty nice results I think. And you're totally right, there are "gaps" that you can't figure out on your own in practice but then again that's life when you use "unconvential" software.
@romanmaksimovich5050
@romanmaksimovich5050 7 ай бұрын
I see that no-one mentioned the workspace problem, which is really not a problem at all. In your config, there is a variable called "myWorkspaces" which is set to the list ["1", "2", ... "9"]. What you need to do is simply add more entries to the list, and the workspaces will be automatically created after `xmonad --recompile && xmonad --restart`
@nado911
@nado911 10 ай бұрын
Workspace solution: tmux :-) I think the real question is do you want to use Haskell long term.
@TheLinuxCast
@TheLinuxCast 10 ай бұрын
We're going to see. It's been more than a week now and I can't say I love it. But I haven't run screaming as I have in the past.
@TheDredface
@TheDredface 9 ай бұрын
Unlike Python Haskell is a language in which you need to think before you act in order to solve the problem at hand. That is one of the major things that make the language hard to learn. The other major thing is its mathematical nature. Its built by researchers in computer science. The language is not designed like Python to be easy to learn. It is an experiment in functional programming language design space that turned out to be quite powerful once you put significant time and effort to learn it and its underlying mathematical foundation! And that is one of the reasons most window managers and applications in general do not use general purpose programming languages for configuration, but rely on domain specific language like i3 does.
@ninenine___
@ninenine___ 10 ай бұрын
Ur switching window managers , what else is new? 😭
@TheLinuxCast
@TheLinuxCast 10 ай бұрын
I was in Qtile for awhile
@Finkelfunk
@Finkelfunk 10 ай бұрын
I'm currently learning Haskell as part of my uni courses on higher concepts of programming. Our Professor put it best when he said "You have like 3 lines of code, and then you run it and you can play an entire first person shooter, and when you look at the code you need 6 hours to understand what the hell is going on". The more I start to use it the more it blows my mind. I've shown this to some of my fellow class mates and they are just blasted away by being able to calculate ridiculous stuff like 6000 factorial in less than a millisecond recursively and completely precise. I used XMonad before attending that course so I had some cursory knowledge of Haskell but it's even crazier once you _really_ understand Haskell's typing system and what the devil a monad actually even is (it's a monoid in the category of endofunctors, not that hard to understand).
@anon_y_mousse
@anon_y_mousse 10 ай бұрын
I don't know if anyone else would agree, but I think that configuration files should just be flat text based formats and *not* programming languages. It's fine if a program can extend functionality to have a programming language built-in for plugins and whatnot, but for the configuration file, which is often used by normal users as well as the more pro users, I think it should be something simple like a Win/DOS ini file or a TOML file or something along those lines. I've often felt that if a program has to have a programming language for its configuration that it's an incomplete program anyway. Also, if you're writing a program and you need more structure than an ini file "provides", then just add [section.sub] to your interpretation of the files.
@notimportant7682
@notimportant7682 10 ай бұрын
yeah, jumping into a language blind without getting familiar with its syntax is one way of going about things. I remember trying to do that with C++ once. It did not go terribly well.
@sebnargeurbrok1374
@sebnargeurbrok1374 10 ай бұрын
Thanks for sharing, your videos are really helpful!
@ssg6499
@ssg6499 5 ай бұрын
You're going to be such a great developer, that you don't even know it. Good job man.
@taxaction1
@taxaction1 10 ай бұрын
Enjoying these WM vids. I still haven't made the switch to try one out long-term yet apart from a short spell on regolith.
@VioletJewel1729
@VioletJewel1729 10 ай бұрын
This may sound silly, but: I love configuring things; I love tiling window managers; but I've been using vanilla dwm with the title bar removed for years, and it is just so perfect. simple, fast, elegant. I know I felt myself pulling towards more features and more customization to make things slightly more efficient for a long time. I used i3, xmonad, bspwm, qtile, awesomewm, openbox, etc for many years. I customized the living heck out of all of them. Sometimes the most efficient workflows evolve out of the simplest setups.
@jeffrodrequez
@jeffrodrequez 10 ай бұрын
I didn't care for Xmonad, but I prefer easy switch between floating and non floating (works better with my workflow). My favorite Xorg is Openbox and my favorite Wayland is a tie between Wayfire and Hyprland - been running Wayfire for the last few weeks and I think I like it a bit more than Hyprland although they are similar, I really like the Wayfire's super key zoom out to workspaces implementation. Maybe you can do that on other ones, but I've not seen it.
@skaggi
@skaggi 9 ай бұрын
I work xmonad a little different then dt but I like how he calls his stuff at the beginning 😂 looks like I got some stuff to play with
@terminalvelocity4858
@terminalvelocity4858 10 ай бұрын
FYI, Xmonad has plans to have a Wayland port in the future. I really wish you would consider doing content with Wayland too because there is a huge divide in the Linux community over it, which is silly. I feel like the hate Wayland receives really is not as justified as it is people hopping on the hate train just because bigger voices like yourself express dissent instead of learning and adaptation to alternatives...which is what I thought one of the amazing things Linux is about. Once Redhat stops supporting Xorg, bitrot and being the unsupported display server is inevitable and Wayland IS the future whether we like it or not.
@crism8868
@crism8868 10 ай бұрын
I feel Wayland is the new systemd. People jump into the hate bandwagon to be contrarian, meanwhile all the big corporate distros and corporate sponsored DEs *cough cough Gnome* jump to support it which makes naysayers be even more paranoid about it
@linuxtechgeek
@linuxtechgeek 10 ай бұрын
Matt "when people find something they like, I at least want to understand why they like it" Chris "Will you be willing to try emacs in order to understand the reason why we like it?" Matt "Absolutely not" =)
@TheLinuxCast
@TheLinuxCast 10 ай бұрын
Truth. lol
@TurntableTV
@TurntableTV 10 ай бұрын
DT viewing this video with tears of happiness.
@mjblcmichael
@mjblcmichael 9 ай бұрын
He's happy, true. But if Matt ever tries to use emacs, then we'll see tears of happiness from DT!
@mskiptr
@mskiptr 10 ай бұрын
I love Haskell, yet I've never used Xmonad. Tho nowadays I am more interested in inspired languages (like Idris) that both clean up some idiosyncracies and bring some extremely cool new features (like dependent types, or linear resources).
@mskiptr
@mskiptr 10 ай бұрын
Re your 'twelve ways of doing it', the real problem imo occurs when none of them seems to be 'a proper way'. This is something I think Nix suffers from quite a lot. When I was using it, it often felt like some people have thrown a half-baked hack together to do A and it more or less does the job if you know how to massage it into working for you. Now I'm playing with _censored_ and everything seems way more solid. At least on the tooling level. The packages themselves are still less mature unfortunately.
@mskiptr
@mskiptr 10 ай бұрын
_censored_ = Guix
@darsparx
@darsparx 10 ай бұрын
I feel like this is me trying to setup nickelmenu on my ereader...in my defense until you get to the end its not super obvious how things should be typed so i frequently mess it up. XD
@thelimatheou
@thelimatheou 10 ай бұрын
I know you said no to Wayland, but hyprland is the bees knees... I used xmonad for years, but could never get my head round Haskell
@bobby-and2crows
@bobby-and2crows 10 ай бұрын
First! Am fan from Tegucigalpa Honduras, i see all your videos. Am in arch btw.
@osmodiar16
@osmodiar16 10 ай бұрын
I'm from Honduras, too. And I, too, use arch btw lol love your videos as well
@andbenn
@andbenn 10 ай бұрын
It'd probably be easier to configure spectrwm, frankenwm or dusk as a backup window manager for qtile and easier than setting up xmonad. If one doesn't already have a dwm config they like.
@ex0ja
@ex0ja 10 ай бұрын
Your comment about trying to understand why people like something. I've done that with music, heavy metal and jazz. Some people really like this stuff so I've spent hours on end trying to work it out, long story short I never worked it out 😂
@n1vz3r
@n1vz3r 10 ай бұрын
Never thought I will watch whole video consisting mainly of non-moving screenshot of XMonad config and even enjoy it!
@mjblcmichael
@mjblcmichael 9 ай бұрын
Me, neither! It's the rabbit hole, man! Can't get enough configs.
@albertolondono4148
@albertolondono4148 10 ай бұрын
Excelent, thank you.
@adityagautam4689
@adityagautam4689 10 ай бұрын
goog, you are getting on the right path matt (btw which theme are you using in neovim?) custom catppuccin?
@TheLinuxCast
@TheLinuxCast 10 ай бұрын
Tokyo Night
@Froggie92
@Froggie92 10 ай бұрын
love the DT side-eye
@nerdycatgamer
@nerdycatgamer 10 ай бұрын
thoughts on automatic tilers vs manual tilers? I use DWM and I really enjoy it for the simplicity and manner of configuration, but I've beginning to wonder if I would prefer being able to manually control my tiling (similarly to how i use splits in vim).
@omervandenbelt
@omervandenbelt 10 ай бұрын
My personal thoughts on automatic (dynamic) vs manual tilers. With automatic tilers you know where the next tile (window) will appear. That makes the workflow easy, quicker, because you don't have the aspect of being able to determine its place. But, personally I prefer the manual aspect of the manual tiler. That I can determine where the next tile will appear That is better for my workflow. But even at a manual tiler the next tile also appears automaticly like with a dynamic tiler. The difference is that you have the ability to interrupt that aspect. I us both Herbstluftwm (manual) and I3 (dynamic), btw.
@umka7536
@umka7536 10 ай бұрын
I stick to Xmonad because of its features and its stability. But I agree with you. Learning how to configure it is a pain. :)
@KoopstaKlicca
@KoopstaKlicca 10 ай бұрын
Not related at all but congratulations. I have moved over to open suse tw. I borked my arch install and i decided to switch partially because of you
@TheLinuxCast
@TheLinuxCast 10 ай бұрын
openSUSE FTW!
@PeterJepson123
@PeterJepson123 10 ай бұрын
Good video. You like challenges... May I set a challenge for you! Learn C Programming to a decent level. Yeah, it will take years but you will get loads of good content out of it and when your done, you won't refer to yourself as a "Noob" anymore. Once you know C, things like Haskell and config files seem effortless. The challenge is "Wizardry in two years". Best of luck! All the best Matt.
@TheLinuxCast
@TheLinuxCast 10 ай бұрын
I know a bit of C. I wouldn't say I'm proficient at it or anything but I know more than I know Haskell.
@oYakate
@oYakate 10 ай бұрын
Do a xmonad speedrun video please
@TheLinuxCast
@TheLinuxCast 10 ай бұрын
That could be fun. Wouldn't be very speedy though, lol
@oYakate
@oYakate 10 ай бұрын
Doesn't need to be speedy. I kinda see them as tutorials. I did learn dwm and i3 from your speedruns.
@raxelgrande
@raxelgrande 10 ай бұрын
What about running the plasma 6 alpha?
@TheLinuxCast
@TheLinuxCast 10 ай бұрын
I will try Plasma 6 when it comes out.
@patrickprucha5522
@patrickprucha5522 10 ай бұрын
I thought your favorite was DWM? :(
@TheLinuxCast
@TheLinuxCast 10 ай бұрын
Ages and ages ago.
@0x007A
@0x007A 10 ай бұрын
Surprise. Surprise. Not.
@gingered
@gingered 10 ай бұрын
Looking at DT's config I noticed "antialias=true" 😨 get monitors with a tighter dot pitch, DT.
@BenjaminWheeler0510
@BenjaminWheeler0510 10 ай бұрын
what's wrong with anti-aliasing? are we gatekeeping 1080p monitors now??
@gingered
@gingered 10 ай бұрын
@@BenjaminWheeler0510 artificially smoothing text by blurring the edges is akin to artificially adding frames to video to bring it up to 60fps. Fine if you want it, but gross if you know better.
@mskiptr
@mskiptr 10 ай бұрын
@@gingered But that's how analog cameras and human eyes work tho. The proper way to do rendering would be to use continuous integrals and not some grid sampling.
@gingered
@gingered 10 ай бұрын
@@mskiptr then let the human eye do the work. Antialias is for low res displays with raster fonts, your 23" 1920x1080 display with vector fonts don't need AA.
@itsfish8672
@itsfish8672 10 ай бұрын
Matt do you think Xmonad is more suckless then Dwm is ????, It looks like it to me.
@TheLinuxCast
@TheLinuxCast 10 ай бұрын
Maybe. But they define suckless by lines of code. And I think that xmonad is probably larger.
@Finkelfunk
@Finkelfunk 10 ай бұрын
@@TheLinuxCast Actually, Xmonad is smaller by a factor of 5 in terms of LoC. Dwm has like more than 2000 lines of code, XMonad has less than 400. But that's because Haskell is _INSANE_ at code golfing. You can make things a one liner that would require you to write 40-80 lines of code in C.
@itstoxicqt
@itstoxicqt 10 ай бұрын
Hyprland is life
@spantheslayer
@spantheslayer 4 ай бұрын
It's hard to digest but you are spiting total BS. If you really understand what xmonad is trying to do from it's core, you'd actually appreciate it. I am xmonad for a very long time and it just works in every scenario.
@moneyfr
@moneyfr 10 ай бұрын
00:54 you have sound issues
@TheLinuxCast
@TheLinuxCast 10 ай бұрын
No, that's just me repeating myself
@GinsengNative
@GinsengNative 10 ай бұрын
i3 for life
@terminalvelocity4858
@terminalvelocity4858 10 ай бұрын
SwayFx here :)
@hexisXz
@hexisXz 10 ай бұрын
all you need to do now is actually try to get into emacs.
@TheLinuxCast
@TheLinuxCast 10 ай бұрын
No thanks.
@hexisXz
@hexisXz 10 ай бұрын
lol🤣@@TheLinuxCast
@hexisXz
@hexisXz 10 ай бұрын
it would be a fun video to watch tho @@TheLinuxCast
@darkphotonstudio
@darkphotonstudio 10 ай бұрын
Again?
@barkovurur3043
@barkovurur3043 10 ай бұрын
If a window manager does not have stacking, move on. Stacking is i3's killer feature--it's like extra virtual desktops
@TheLinuxCast
@TheLinuxCast 10 ай бұрын
You mean tabs? Because most of the managers actually have that they just called monocle mode.
@barkovurur3043
@barkovurur3043 10 ай бұрын
From the i3 docs: "stacking Only the focused window in the container is displayed." tabbing is different, the same, but different. I think PopOS recently implemented something similar in their tiling feature
@TheLinuxCast
@TheLinuxCast 10 ай бұрын
@@barkovurur3043 yeah, that still sounds like monocle layout to me.
@ChaiBronz
@ChaiBronz 10 ай бұрын
Tabs/Stacking are more flexible than monocle (at least the monocle mode I remember from bspwm). Monocle shows only one window on the screen. Stacked/Tabs shows one window per container, but still allows you to have multiple containers (hence multiple windows) on the same screen. Maybe monocle acts like that in other window managers tho?
@vitiok78
@vitiok78 10 ай бұрын
Haskel is one of the worst decisions for a config file. It's a programming language for the "elite" with the community more toxic than Arch has. Config files must be simple. I understand this choice but don't accept it. There's no point for me to learn Haskel because there's literally no jobs for Haskel programmers. That's why I will never use this WM.
@ICopiedJohnOswald
@ICopiedJohnOswald 10 ай бұрын
Its spelled Haskell.
@vitiok78
@vitiok78 10 ай бұрын
​@@ICopiedJohnOswaldI'm on my phone and Gboard likes to correct me)
@Finkelfunk
@Finkelfunk 10 ай бұрын
"There's no job for Haskell programmers" You couldn't be more wrong and also the concepts you learn in functional languages directly translate into you becoming a better programmer. Like, even if companies don't have Haskell positions they'd still prefer someone who can code in Haskell because they will just be THAT much better at coding, solving problems from an entirely different angle and especially mathematics.
@ICopiedJohnOswald
@ICopiedJohnOswald 10 ай бұрын
As someone with a Haskell job I wouldn't state the case for Haskell job availability so strongly. I also think when interviewing for non Haskell jobs that enthusiasm for Haskell can be read in both positive and negative ways. Yes it can be super impressive but it can also be perceived (wrongly IMO) as an indicator that the candidate not practically minded. Being good at Haskell does not automatically make you good at math (even if you mean type theory). @@Finkelfunk
@craneology
@craneology 10 ай бұрын
it looks like you are still using vim... good.
You'll Own Nothing and Like it!
14:44
The Linux Cast
Рет қаралды 10 М.
Linux Has Ruined Me
14:46
The Linux Cast
Рет қаралды 20 М.
Real Or Cake For $10,000
00:37
MrBeast
Рет қаралды 60 МЛН
DWM vs Xmonad - Which is Better?
37:57
The Linux Cast
Рет қаралды 15 М.
No really, how does Linux run executables?
8:37
Jacob Pradels
Рет қаралды 180 М.
Why Isn't Functional Programming the Norm? - Richard Feldman
46:09
The 7 Types of Linux Users
14:36
The Linux Cast
Рет қаралды 11 М.
Xargs Explained
8:53
TomNomNom
Рет қаралды 44 М.
openSUSE: Is it Good?
25:15
The Linux Cast
Рет қаралды 30 М.
Why I No Longer Use Flatpak
12:50
The Linux Cast
Рет қаралды 42 М.
I'm Switching to Xmonad...Again
17:24
The Linux Cast
Рет қаралды 7 М.
Why I Use Tiling Window Managers - And Why You Should Too
19:52
The Linux Cast
Рет қаралды 55 М.