 For those of you who have been following the channel for any amount of time You'll know that I've been trying my damnedest to use x-mode ad full-time for the last couple weeks and I've had some problems. This is my third video on the window manager that everybody else seems to like and I've been waiting for the moment where I have that Eureka moment like yes, I like this thing because it's good and You know it has really cool features and It's easy to use those moments haven't happened just not even close and I'm just done with it So I've been using it off and on for the last two weeks now It's not has not been full-time because there have been moments where I just had to get something done and X-mode ad was distracting me because I was always attempting to make it better So I was tweaking it stuff. So I had to go back to DWM a couple times or Usually a couple times a day to actually get work done So I I have some thoughts on these two weeks. So I so I just thought I would Lay out my thoughts and explain Why I'm giving up. So let's go ahead and jump in Okay, so this is what my x-mode ad looks like right now So the first thing I had problems with and this is the this was the topic of my first video was the bar so I could not for the life of me get x-mobar to work and I Tried other people's configs. I tried doing my own thing. I tried going to the documentation and Doing exactly what the documentation said to do and I still couldn't get to work I did finally get x-mobar to work using the Arco Linux x-mobar package in the AUR By the time I actually did get to work I Come to realize the x-mobar is Not easy to configure. It's not necessarily the hardest thing I've ever seen to configure But it's not necessarily something that I even wanted to spend time learning about so I Almost immediately switched back to that to poly bar Despite the fact that I'd spent at that point like almost a week trying to get x-mobar to work So I'm on poly bar and there's nothing wrong with poly bar at all It works well in x-mone add for the most part if you have certain packages actually Imported into your x-mone.hs file. It works fine So the bar thing I've gotten situated to the point where it's completely usable I know I I know poly bar very well. I can configure as much as I want to So the bar problem has been solved. I Don't know what I was doing wrong with the x-mobar thing. I Still have no clue until I used that arco linux package Whatever I was doing wrong was being done wrong across multiple configuration files because I use DT's configuration files I use somebody else's on reddits. I used my own I Used the default configuration files the like the one you download from the x-mone ad can you know website? I use that And still I couldn't get to work so I have no clue what I was doing wrong. All I know is the arco linux one worked So I didn't actually learn anything from that experience outside of a little bit of Haskell and I'm gonna be talking about Haskell all quite a bit, you know more later, but The bar thing was the biggest turnoff to begin with and eventually once I've got onto poly bar I was able to you know be okay with it So moving on from the bar My next task was to try to get scratch pads working So I use the crap out of scratch pads in DWM. I just use them all the time I have my music player in a scratch pad. I have pulse mixer in a scratch pad I have ranger in a scratch pad. I have a couple terminal scratch pads. I have like five scratch pads in DWM I use scratch pads in I3 all the time ever since I found out about them scratch pads have been Probably the best thing I use in Linux all the time because they're just a complete game changer. So X-mone ad has named scratch pads capabilities it does according to the documentation It's actually fairly easy to implement. You just import one library Put in your name scratch pads and what you want them to be and then add in your Keybindings and then add something towards the end here in my manage hook or whatever it is I tried to do it the way the documentation said to do it. That didn't work. I got errors So I deleted that and then I did it the way DT did it in his configuration files. I got errors I found a couple of the tutorials online and I thought I understood what I was doing I really did and I still got errors So I don't know what I was doing wrong there. So I scrapped this configuration file because this is the Arco Linux configuration file for their X-mone ad ISO. So I scrapped this thinking that because They go through and they import a ton of stuff, right? They just import a ton of libraries So I figured well, maybe there's some conflicting stuff there because that has something to do with the way Haskell works and you really can't Have conflicting libraries or something. I don't know. I really don't understand it, but I do know that Arco Linux imports a lot of stuff. So I figured I'll just go through and I'll really build up the configuration file from scratch using the X-mone ad tutorial, which is on their GitHub page So I did that and then I added the scratchpad stuff directly from the X-mone ad Documentation I did it precisely the way it said Still got errors By this point I've been using it for two weeks and I've been working on on Name scratchpads or scratchpads for two or three days at this point. I'm just I'm done I don't understand Haskell. I think that this this entire fiasco comes down to the point Or comes down to the fact that I cannot understand Haskell worth a damn. I can't There are certain things that just don't make any sense today. So I've had some things explained to me I've read some of the Haskell documentation. I'll admit I haven't read all of it That's just beyond me. I'm not that interested in it. I guess I I've tried to get my head around it. So like when I switched to DWM, I didn't know a lick of C I My only experience was C was a brief time in college when I was a computer science major And that lasted for like a semester I realized that wasn't a good coder. So I moved on to history So I'm I'm not a coder. I've never been a coder. But when I switched to DWM I was able to learn C Well enough that I can go through and do anything I want to do In DWM I can patch things to the high heavens I can go through and make changes to key bindings and make changes to the patches and all the stuff I can do it just fine and understand what I'm doing That's the key thing here is I understand when I make a change in in DWM's configuration files I understand Why the change needs to be made what the change is going to do And all this stuff that goes along with making a change in DWM and everything that it's going to affect, right? That's a big thing when you're learning something new Actually being able to understand what you're doing Even if you're following a direction even if you're following directions from a Tutorial online Being able to understand is a big hurdle to get past and I passed that in DWM With Haskell even working through this for the last two weeks I understand very little about Haskell. I understand Very little about what Haskell does. So I understand that it imports libraries from other things So I get that part, but I don't understand The differences between import and import qualified even though I've looked it up. They've explained it to me I just don't understand what the difference is um, and I don't understand For example Why you'd use one or the other? I don't know I just know that this came from the Oracle Linux config and some of them have import some of them have import qualified What what's it mean? I don't know again. I didn't understand the explanation again. This is My small brain so Don't Don't in the comments try to explain it to me. I don't I'm done. Okay I'm not learning anymore. I'm not even try to learn anymore Um, I'm just pointing out that I don't understand the other thing. I don't understand is apparently if you Don't import things a certain way or you import things that conflict with each other You're going to get errors Or an even better example is if you import something and then you don't use it For something later on in the config you'll get errors. I don't understand that at all I mean that just seems like poor programming design to me like Who cares if you import a library and it doesn't get used. It doesn't make any sense to me at all I mean, it what is it hurt it? It doesn't hurt anything if you import it It doesn't seem like it would hurt anything if you import something then just not use it So, uh, that's another thing about the libraries that I just didn't understand And they seem to have a lot of libraries that just overlap. So for example, they have two scratch pad libraries one of them is called scratch pad, which is kind of like a generic thing It just does a terminal and they have name scratch pad which allows you to go through and actually create a whole bunch of scratch pads that have names I couldn't get either of them to work But the fact that they're both exists and you obviously can't use both of them or it doesn't seem like you can use both of them They just kind of roll out now You can't I can't really complain about that because if you look at dwms patches They have a ton of patches in dwm that overlap and if you combine them they oftentimes is very much conflict So it's kind of the same thing. So if you look at importing libraries, it's kind of being Xmon adds versions of patches it makes sense why you can't have overlapping libraries, so that's a that's one thing of x of haskell that I just Had a hard time getting my mind around so if we go to the bottom here of my config And we look at some of the syntax This right here confused the hell out of me and I still don't know what it means and One of the things you have to do so as far as I can tell A lot of this stuff is setting variables. So Up here you have something where it says my manage hook Equals or whatever, you know a way up here And then down here, these are all the things that the xmon add system Starts or uses to run itself It's very confusing and I don't I just can't really Get my head around it. So like mod mask is What the key bindings use? But it's equating itself to my mod mask, which is set to the super key, which I think I can understand But it seems redundant to me. Why not just use mod mask? It doesn't it's really weird the manage the manage hook stuff Is The most confusing part of this whole thing I don't know what it means I tried to get my head around it and I watched some videos and I what I read some of the Documentation I just could not get my head around it add into the fact I don't understand how some of this stuff is combined. So for example This stuff here is all combined into something in some kind of layout some kind of form And in order to get this name scratch pad stuff to work you have to add something to this And one of the errors that I kept getting is that it couldn't for whatever reason pull It didn't understand what I was trying to add And even though I was going through and following the directions And I added it literally copy and paste right to this the way it said to add it I was getting errors and I don't understand why I was getting errors. So it's somehow Some way whatever way these things are combining themselves adding anything on top of it Didn't work and I didn't understand why And finding out why is a mess. So here's my biggest problem is Haskell seems to have several ways of doing any one thing so I found three or four tutorials. I'm using named scratch pads Every single one of them was different Whether any of them work. I don't know. I'm assuming DT's configuration works, right? Because he uses it all the time and he you know talks about x-mone ad stuff I'm assuming the person on reddit who who posted their rice of x-mone ad. I'm assuming their configuration files work So obviously the way they did it and the way DT did it and the way other people have done it All those ways work, but none of them work for me And I don't understand why And again because there's three different ways of doing This thing apparently or even more or whatever Finding out what you're doing wrong is very hard. It's very difficult because You don't know where to look for answers like You would assume you'd go on to the x-mone ad documentation, which supposedly is very good Uh, I don't think it's all that good because it's doesn't seem like it's correct like For like I keep coming back to the name scratch pad thing. I First when I wanted to add the name scratch pads, I went to the documentation. I followed the directions specifically And I like word for word I followed and I read them and everything which is you know, it's unusual for me Like you reading the documentation first is is very rare for me. Usually I wing it and Find the errors and try to learn myself before I go hunting for the documentation But this time I knew I was gonna have problems. So I was like, you know, I'll go to the documentation first And I followed the directions and I still got errors. So either the documentation is wrong Or because there are multiple ways of doing things the configuration file that I'm using is set up in such a way that the documentation Uh, doesn't apply to me So that's a possibility or it's possibility that because of the way this configuration file set up Uh, that method just doesn't work and there's another way that I'd have to go through and do it And again, it comes back to which libraries you have imported and stuff like that. So That's the reason why I scrapped this configuration file And followed the tutorial again and created a configuration file By scratch from the tutorial and then tried to add the The namescatch pads from the documentation still didn't work It's coming up with errors. It was Something about parsing and stuff. Okay. So usually when you get the parse error, it means you have Uh, something in the wrong place. So I did eventually get that one figured out but I got another error dealing with this manage hook thing where it Didn't like the way I was combining something or the other and even in the Configuration file of the one that I created from scratch. It wasn't the article one. Even that didn't work. So it's a mess and Look, it's been two weeks off and on And like I said, I've been waiting for that moment where even getting past the fact where I can't Get namescatch pads to work even getting past the fact just using X monad because the configuration file I'm using is you know something that I can use and I've been using it and I've been waiting for that moment to that to pop into my head to make me understand why This is better Or why X monad is good and I haven't had that moment and I don't think the X monad is bad I just want to put that out there. I don't think that there's anything wrong with X monad Personally, it's not for me. I can't get my head around Haskell even a little bit I mean, I suppose that's not true. I understand a little bit of Haskell, but it's Release more now than I did before but it's still most of it just leaves me behind So X monad for other people seems to be perfectly fine for me When I use a window manager, I need to be able to understand What the configuration file is doing when I'm using i3 I can understand Every single line in that configuration file and I can tweak it. I can change it I can move them around and I can completely understand I could go through right now and write my own i3 configuration file from scratch without looking at the documentation I could almost do that for dwm. I would miss a few lines obviously, but there's a lot of the dwm configuration file that I understand and I could go through and recreate that from scratch almost completely without looking at the documentation now dwm has crap documentation so That wouldn't be anything I'd have an option to do anyways, but The the point is is I understand what dwm is doing There are parts of c or whatever that I still have trouble with but I'm Confident that if I needed to go through and find About what something did I could go through and find out what it did very easily online somewhere Whether it's something with c or something with the way dwm works I could go through and find out with haskell or with xmonad I have no confidence in being able to fix any problem if something goes wrong I have no clue what i'm doing and there doesn't seem to be an A one-stop shop out there anywhere where I can figure out what I'm doing wrong And even like I said, even the documentation Failed me in this part because like I said the documentation seems to only apply Sometimes and that's not that's not a great feeling I like having the confidence that I know what my window manager is doing In the background what it's the configuration is doing and I don't have that confidence with xmonad so I'm done That's the whole Point of this video is that I'm done with xmonad. I've tried it now two or three times I've gotten farther this time than I have ever before Usually I got stuck with the bar and then I gave up like after a couple days this time I still got stuck with the bar, but I managed to get poly bar working. So it's not a big deal And I definitely learned more about haskell this time than I did last time because I used it for longer Could I learn more could I put more effort into it probably but I the thing is about this This is supposed to be fun for me And the first two days were fun like yeah, I was having problems. Yes. I was frustrated But I was still having fun tweaking and learning and discovering new sources of information on the internet That point has passed it's no longer fun for me and that's the reason why I'm done So I'm going to be going back to dwm. I'm going my next Window manager that I'm going to try or switch to is going to be awesome And now I used awesome in a live stream a few weeks ago and I wasn't impressed with lua But I didn't really give it a good, you know a good try So I'm going to install awesome probably tomorrow And use it for a little while and I'll create a video about it But that's the next one I'm going to try because I like trying new things and I like learning new stuff but For whatever reason there's a block between my brain and everything that has to do with haskell and That means xmoid ad is Done for me. So Thank you for watching. You can follow me on twitter at the next cast You can follow me on facebook at the next cast and you can support us on patreon patreon.com Slash the linux cast Tears two three four and five get early access to Many of our videos So if that's something you're interested in make sure you follow us on patreon patreon.com slash linux cast again Uh, I'd like to take a moment to thank our current patrons Devon marcus maiglin donnie's ven merit camp and michael. Thanks everybody for your support. Thank you for watching I'll see you next time