try to patch everything with more chances of no errors with:: cat *.diff | patch --verbose --ignore-whitespace --fuzz 3 -p1 I have applied the DistroTube patches and suffered just one error with that command and it was on the latest patch which generated one .ref file that I manually applied that "diff" patch.
Oh hell yeah you are absofuckinlutely awesome, I can't say thank you enough for taking the time to do this video. I've already watched it 4 times to make sure I understood what I'm doing. I don't know if you get enough credit for taking the time to do what you do, but I will say thank you got taking the time to make this happen.....my hat's off to you!!!
Hi dt, I do in a little different way, All the patch will be created from latest master branch of dmenu. We can do all this stuff using git. I mean clone the dmenu repository. You will get a master branch. Create a new branch from master. Apply your patch in it. If you want to apply another, create another branch from master and do the next patch in it. And later create a release branch from master. Merge both the patch branch to release branch. Delete all patch branch keep only release branch. Tomorrow if you get a new update from dmenu. Pull from master remote to local. Repeat again. You can create a simple script if you like it.
I was about to suggest this as well. This is the easiest way I have found to do this, and I have had more success with merging branches like this than running patches individually. The other thing is, if you use git, you can also just use the 'git apply file.patch" to apply a patch file But ya, easiest to just have a branch tracking suckless, and then you can pull updates down and then merge it with your build's branch.
Well the right way to patch is to create a clean branch, then from that create a new branch out to each patch you want to apply. Then after all patches are applied to a clean build. You create a new branch, called E.g develop, then from that you start merging all the patches. Then you will not have as much problem as you had now. Use the power of git and branches to your advantages.
I guess im asking randomly but does anyone know a trick to get back into an Instagram account?? I was dumb lost the password. I appreciate any help you can offer me
I dont know what the best way to patch suckless tools are, but what is better than this is to use branches and rebasing. So instead of manually applying patches on top of each other on the same branch and fixing conflicts yourself, you would offload most of that effort onto git. I wrote a simple script that goes through this process ix.io/2Dic For the script to work, you need to have created a branch named as the user and cd into the project directory. What's great about this is that you can create multiple branches each containing 1 patch then decide to apply whichever combination of patches by rebasing the wanted branches onto the user branch
I recently updated my st build because I threw away nano and started learning vim, which I had trouble using with st. It turns out st earlier this year released an update where they finally make the backspace and delete keys work in a default build so you no longer need to grab a patch for that, and I think that by itself justifies covering st in the near future. So I downloaded that newer version, grabbed my few usual patches (except the aforementioned one with BS/DEL because that's default now) added my few tweaks and now vim is working great.
I have seen your second patching mistake in main as you were making it. It happens to the best of us. Glad to see you doing suckless stuff. Please do review of some dwm and st patches.
Tip for people doing patching like this: try using gui git clients (I use smartgit). It shows exactly what changes you have made and it is easy to see mistakes.
I recommend checking out - github.com/bakkeby He has made using Suckless tools very easy, he has included all the patch that are available for DWM, Dmenu, ST and so on, and made a preprocessor, a header file basically that you can edit to check what patches you wanna include in your build plus he has his own patches too, like a patch that can give you powerline for statusbar, have rules for setting up default different layout for different tags and so on, and then `make` you build with that, and use finalizer tool to cleanup the unneeded code from the source code. I highly encourage you DT and everyone else to check the project out. BTW the real Suckless way to apply a patch is to do it manually. : ]
Why don't any of you (people that make patching suckless software videos) use git? There are a few advantages like easier conflict resolution, less failed hunks (in my experience) + if you feel like you fucked up somewhere along the way you can time travel back to the commit you want and not reapplying patches from scratch. He're is how I do it. I clone the official clean repo (`git clone git.suckless.org/dwm`) and create a branch for each patch. This allows me to test patches individually and/or seeing how some of them interact with each other. When I have a branch for each feature I want, I just create a new branch from master like `my_dwm` and then just merge the feature branches to it. In my experience there are less conflicts when merging with `git` compared to using `patch`, and even when you get a confict you only need to open one file and you'll see the lines in question there directly. You can also experiment with patches and rolling back the merges you don't want. Ability to have 2 builds in one repo (my_dwm_desktop, my_dwm_laptop) is also something you can do if you want to have separete builds for each of your machines. If you anyone reading this has any suggestions for improving this flow, plz let me know.
Hadn't heard of that one. But a lot of the window managers I haven't covered by now are really "obscure" window managers. Sometimes you guys recommend me window managers that I can't even get installed. But hopefully this isn't one of those. Will add it to my "todo list". Thanks.
You repeated the mistake of the center-patch with the fuzzymatch-patch and then later corrected it in the wrong way: You added an additional "fast = 1" where it should have been "fuzzy = 0". Thanks for the video, I am always looking forward to your content. :) I could see myself doing this for dmenu, and maybe one more piece of software, but overall the patching seems too tedious and error-prone to keep more than that up-to-date. Do you do this patching process for other things as well?
It's pretty cool to see the recommendations you have and which patches are worth using. Do you have a similar video already on st? Typically these suckless programs just have so many patches nowadays, and many of the patches kind of have insufficient description.
When doing all this patchwork, think about using quilt to manage the patch stack. BTW: Why are you opening two terminal windows with vim when you might as well use a vsplit in one vim instance?
whats the benefit? I think thats one of the big reasons to use a window manager, doing that on the WM and not within the app(s). Don't get me wrong, I see the advantage of one nvim or emacs process for real development but with the clipboard setup he has, where he can yank/paste over different windows I don't see the advantage for his specific use case. PS: Using quilt for patch management - full ack.
@@zehphquilt was developped for getting a hold on kernel patches, here the main use cases: www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/apas02.html If you ever used mercurial then their patch queues work pretty much the same. It just allows to manage contributions in a non linear way, compared to using a DVCS only.
Yo dt I recently installed dwm and dmenu for the first time and I can't wrap my head around the dmenu-xyw patch, if I try to put some flags dmenu doesn't start
Would you make a video on how to patch suckless software or install software from github on NixOS? I tried NixOs after your last video, but have not found a viable solution yet.
Hey DT are u heard about floatplane. Linus Tech Tips make it. It maybe a good chance on that platform because a lot of tech tuber was there. Just for your info
Floatplane is no different from patreon, only focusing on video iirc, does it have a considerable user base? Since it is one smaller thing and he already pushes lbry, don't think he would invest the time to populate and maintain another platform, especially because it may have a sync function similar to lbry, so he would have to choose which one to use, which is a no brainer here.
Totally agree, there is not a single reason why not to have a config file, other than if you are installing this thing on a 1980’s calculator with magnetic tape cassettes or similar... I mean, what kind of specs do you people have that can not handle properly a config file? Like 144 Hz cpu and 16K RAM?
Perfect, right when I was considering installing DWM.
try to patch everything with more chances of no errors with::
cat *.diff | patch --verbose --ignore-whitespace --fuzz 3 -p1
I have applied the DistroTube patches and suffered just one error with that command and it was on the latest patch which generated one .ref file that I manually applied that "diff" patch.
You contradict yourself, Arch User!
@@MrRenanwill Thanks! It worked for me with no errors.
@@MrRenanwill This is a cool trick! I was going to get into using more suckless stuff - this'll be handy
Oh hell yeah you are absofuckinlutely awesome, I can't say thank you enough for taking the time to do this video. I've already watched it 4 times to make sure I understood what I'm doing. I don't know if you get enough credit for taking the time to do what you do, but I will say thank you got taking the time to make this happen.....my hat's off to you!!!
This is such a cool system for adding functionality to a program. I'm going to seriously look into more of the suckless projects.
Just got dwm yesterday and this is very timely . Thanks DT!
Hi dt, I do in a little different way, All the patch will be created from latest master branch of dmenu. We can do all this stuff using git. I mean clone the dmenu repository. You will get a master branch. Create a new branch from master. Apply your patch in it. If you want to apply another, create another branch from master and do the next patch in it. And later create a release branch from master. Merge both the patch branch to release branch. Delete all patch branch keep only release branch. Tomorrow if you get a new update from dmenu. Pull from master remote to local. Repeat again. You can create a simple script if you like it.
I was about to suggest this as well. This is the easiest way I have found to do this, and I have had more success with merging branches like this than running patches individually.
The other thing is, if you use git, you can also just use the 'git apply file.patch" to apply a patch file
But ya, easiest to just have a branch tracking suckless, and then you can pull updates down and then merge it with your build's branch.
I love compiling software. That's why i use dwm in gentoo.
I find it helpful to do builds for each patch that I apply just so I know which diff I messed up
Well the right way to patch is to create a clean branch, then from that create a new branch out to each patch you want to apply. Then after all patches are applied to a clean build. You create a new branch, called E.g develop, then from that you start merging all the patches. Then you will not have as much problem as you had now. Use the power of git and branches to your advantages.
I guess im asking randomly but does anyone know a trick to get back into an Instagram account??
I was dumb lost the password. I appreciate any help you can offer me
I dont know what the best way to patch suckless tools are, but what is better than this is to use branches and rebasing.
So instead of manually applying patches on top of each other on the same branch and fixing conflicts yourself, you would offload most of that effort onto git.
I wrote a simple script that goes through this process ix.io/2Dic
For the script to work, you need to have created a branch named as the user and cd into the project directory.
What's great about this is that you can create multiple branches each containing 1 patch then decide to apply whichever combination of patches by rebasing the wanted branches onto the user branch
I recently updated my st build because I threw away nano and started learning vim, which I had trouble using with st. It turns out st earlier this year released an update where they finally make the backspace and delete keys work in a default build so you no longer need to grab a patch for that, and I think that by itself justifies covering st in the near future. So I downloaded that newer version, grabbed my few usual patches (except the aforementioned one with BS/DEL because that's default now) added my few tweaks and now vim is working great.
I have seen your second patching mistake in main as you were making it. It happens to the best of us. Glad to see you doing suckless stuff. Please do review of some dwm and st patches.
Tip for people doing patching like this: try using gui git clients (I use smartgit). It shows exactly what changes you have made and it is easy to see mistakes.
I recommend checking out - github.com/bakkeby
He has made using Suckless tools very easy, he has included all the patch that are available for DWM, Dmenu, ST and so on, and made a preprocessor, a header file basically that you can edit to check what patches you wanna include in your build plus he has his own patches too, like a patch that can give you powerline for statusbar, have rules for setting up default different layout for different tags and so on, and then `make` you build with that, and use finalizer tool to cleanup the unneeded code from the source code.
I highly encourage you DT and everyone else to check the project out.
BTW the real Suckless way to apply a patch is to do it manually. : ]
ببخشید سوال شاید خنده اور باشد اما میخاستم بپرسم ایا این ترمینل در linux سرور ميباشد .
يعني شما در linux server dmenu دانلود كرديد.
What about --merge option when patching??
Why don't any of you (people that make patching suckless software videos) use git? There are a few advantages like easier conflict resolution, less failed hunks (in my experience) + if you feel like you fucked up somewhere along the way you can time travel back to the commit you want and not reapplying patches from scratch.
He're is how I do it. I clone the official clean repo (`git clone git.suckless.org/dwm`) and create a branch for each patch. This allows me to test patches individually and/or seeing how some of them interact with each other.
When I have a branch for each feature I want, I just create a new branch from master like `my_dwm` and then just merge the feature branches to it. In my experience there are less conflicts when merging with `git` compared to using `patch`, and even when you get a confict you only need to open one file and you'll see the lines in question there directly.
You can also experiment with patches and rolling back the merges you don't want. Ability to have 2 builds in one repo (my_dwm_desktop, my_dwm_laptop) is also something you can do if you want to have separete builds for each of your machines.
If you anyone reading this has any suggestions for improving this flow, plz let me know.
The blinky light rig on the left makes me think DJ WOPR lol
Hi DT! I was wondering if you plan on covering berrywm? It seems like a pretty cool project
Hadn't heard of that one. But a lot of the window managers I haven't covered by now are really "obscure" window managers. Sometimes you guys recommend me window managers that I can't even get installed. But hopefully this isn't one of those. Will add it to my "todo list". Thanks.
@@DistroTube Haha I've only heard good things about this one over on r/unixporn... Thanks for all the awesome vids :)
Can you cover doing this on NixOS?
It's looks like normal coding in C, with helps of already written code that is in patches. I think using suckless can be very educational.
What patch work application from terminal like ranger?
You repeated the mistake of the center-patch with the fuzzymatch-patch and then later corrected it in the wrong way: You added an additional "fast = 1" where it should have been "fuzzy = 0".
Thanks for the video, I am always looking forward to your content. :) I could see myself doing this for dmenu, and maybe one more piece of software, but overall the patching seems too tedious and error-prone to keep more than that up-to-date. Do you do this patching process for other things as well?
There is almost no documentation on how to do this other than the suckless website, and that is still pretty vague, thank you.
The Suckless guys don't believe in documentation.
documentation = bloat (/s)
@@hisbaan How so?
@@DistroTube I think you need to know C pretty well from my understanding.
@@TheBlueThird it's a joke /s is a signifier for a joke
It's pretty cool to see the recommendations you have and which patches are worth using. Do you have a similar video already on st? Typically these suckless programs just have so many patches nowadays, and many of the patches kind of have insufficient description.
If you want, you can grab luke smith's st build. He has a pretty sensible setup of st.
Can you make a tutorial on how to patch with git branches?
Hey DT, have you ever tried a Wayland WM?
I can't use wayland for the stuff I do. So no.
@@DistroTube I know you can't use Wayland but giving Wayfire a "First Impressions" may be pretty fun though
DT got those saltines in his mug today
DT's official now, he's in the AUR!
We would like to see more of the suckless tools videos
When doing all this patchwork, think about using quilt to manage the patch stack.
BTW: Why are you opening two terminal windows with vim when you might as well use a vsplit in one vim instance?
whats the benefit? I think thats one of the big reasons to use a window manager, doing that on the WM and not within the app(s). Don't get me wrong, I see the advantage of one nvim or emacs process for real development but with the clipboard setup he has, where he can yank/paste over different windows I don't see the advantage for his specific use case.
PS: Using quilt for patch management - full ack.
@@armynyus9123 Never heard of quilt, got me curious with the 'ack' why so?
@@zehphquilt was developped for getting a hold on kernel patches, here the main use cases: www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/apas02.html
If you ever used mercurial then their patch queues work pretty much the same. It just allows to manage contributions in a non linear way, compared to using a DVCS only.
Yo dt I recently installed dwm and dmenu for the first time and I can't wrap my head around the dmenu-xyw patch, if I try to put some flags dmenu doesn't start
Would you make a video on how to patch suckless software or install software from github on NixOS?
I tried NixOs after your last video, but have not found a viable solution yet.
Hey from France !
Pretty much how I patched my suckless build. Thanks for the video.
Hey DT are u heard about floatplane. Linus Tech Tips make it. It maybe a good chance on that platform because a lot of tech tuber was there. Just for your info
Yea, it would be cool to hear his opinion about Floatplane.
I love floatplane but I'm guessing its something DT wouldn't like
Floatplane is no different from patreon, only focusing on video iirc, does it have a considerable user base? Since it is one smaller thing and he already pushes lbry, don't think he would invest the time to populate and maintain another platform, especially because it may have a sync function similar to lbry, so he would have to choose which one to use, which is a no brainer here.
what a coincidence, i was trying to add the trayer patch to your dwm config! did I succeded?
...
tune back on my next attempt to find out
thanks!
Patch Arch next
SUP?
Chillin' chillin'.
If my friends see me patching they think I am hacking lol😂
You still messed up that was ment to be fuzzy not fast under -F
DWM: choose your own bloat adventure??
Pretty awesome, amirite?
Hey DT next make video dwmblocks pls👍
I like that idea!
This seems to suck more...
No views but 2 comments
do an arch linux install speedrun
This software should be called 'suckmore' instead.
why?
Totally agree, there is not a single reason why not to have a config file, other than if you are installing this thing on a 1980’s calculator with magnetic tape cassettes or similar... I mean, what kind of specs do you people have that can not handle properly a config file? Like 144 Hz cpu and 16K RAM?