Excellent video once again Derek. Real-world demonstrations are a great teaching tool. Thank you for sharing your knowledge and experience. Very much appreciated.
DT, you gave me the courage to install ArcoLinux, however, with the MATE desktop. Your command line videos are a great educational tool to help those of us who are not that comfortable in the command line environment. I used to mess around with old DOS and OS/2 command line, but have not really felt that competent in the Linux CLI . I am working on trying out a CLI on one of my older Thinkpads just to follow along with your videos. Keep up the good work!
Nice rice, I riced my dmenu with almost 10 patches, and then created a number of bash scripts to launched different things, like PDFs in Zathura, and different files in gvim, with this scripts it's possible to use dmenu in a DE like Plasma, and run much faster than krunner.
just fyi, the reason why you had so many troubles was because suckless patches generally only patch conf.def.h and don't touch conf.h at all. Since conf.h gets automatically generated upon compilation the easiest fix for all your patches would have been to just delete conf.h and let it regenerate. Otherwise you have to manually add the patches to config.h as well like you did or modify the patch file to target conf.h instead which isn't hard either. Another easy way to transfer the new patches if you already have some custom config in your config.h would be to run a vim diff between config.h and config.def.h to conveniently apply the changes as needed. Personally I tend to just apply all my changes to config.def.h and then just delete config.h and let it regenerate upon compilation. However this then ofc adds another step.
Looks like that is xmonad. But resizing a floating window is the same in pretty much all tiling window managers. Hold the right click mouse button and adjust the size accordingly. Left click on the mouse allows you to move the window.
If you want to run a command in your favorite terminal using dmenu assign the below to your keyboard shortcut (NO patch required) urxvtc -e $(dmenu -l 10 < listOfMyFavoriteCommands.txt) You can replace "urxvtc" with your favorite terminal, your terminal might use a different "-e" flag "listOfMyFavoriteCommands.txt" can be any text file with a custom list of your favorite commands, even .bash_history file Why use dmenu instead of bash_history with Ctrl+R/S ? It's easier to search & navigate for commands using dmenu
I don't know if this isn't well know or if this is just obfuscated but the suckless team has a guide on how to track patches with git under dwm - customization. With the method they describe you're able to merge changes between the upstream master branch and your own custom branch to preserve patches.
Yea, that line could have been written out as multiple lines and it would save people some work, because obviously I had more than one patch alter that line...which basically ruins any chance of the automatic patching ever working.
I haven't built surf in more than year. Not sure if there is a more recent version or not. EDIT: Checking suckless.org, there isn't a more recent version.
@@DistroTube I didn't mean if it was up to date as in up to date with the latest from suckless. I meant is the build on your gitlab synced up with what your running in this video, with the transparent style sheet etc.
Wow love the wallpaper! I do like some flat wallpapers and that one is great! Your going to keep at it until I try Dmenu, aren't you? Lol Ok while I am using the terminal more and more these days, I still am a clicky guy at heart... :D Who know, it could happen..... Lol LLAP
Hi DT, I have a question. I would really like to use exa as a replacement for ls (and I mean aliasing ls to exa) but I fear I may run into incompatible options that are absent from exa. I'm a bit on the fence on aliasing out programs from coreutils. Do you ever run into any such issues?
Yeah - I know it's late.. but those patches were applied to the config.def.h, while you were using the config.h file. I haven't viewed the source code yet, but I guess you have to reconfigure the package in order to have the config.h being recreated from the config.def.h. Just my guess. I'm out. Great video 🙂👌
I really like this type of video paying attention to detail, they come along every so often|Good stuff , I like this flow freestylin , plus it was just more natural then a standard tutorial and I actually learned a few things about dmenu I didn't know . I would push for more video's like this and do the things you want because whoever is here likely shares similar interests , like dmenu_blingdout.. Squares and letters 😪 , good tip ☝🏻@Klaus-Dieter Schmatz
Ricing could be helpful in many cases it can save you plenty of time, but i think if you are gonna use a compositor like compton then the 3d gaming performance will probably not be as good ,this is the only reason i don't have window managers like these.
You'll have to edit the file /bin/dmenu_run Change the first line to #!/bin/bash Immediately after that add the following line LANG="en_US.UTF-8" Change the third line to dmenu_path | dmenu "$@" | ${SHELL:-"/bin/bash"} & You will probably have to restart your system or logout then log back in (I'm not quite sure)
Being a happy user of i3 here. Lately been trying to rice my i3 bar. But dmenu I think it's great. Have been thinking of installing rofi, but why, if dmenu is great? Let's see how you rice dmenu ☺️
@Learn Linux I try that occasionally and just kill the i3bar task. However, I seem to be too used to having that bar (yet). I also don't think that it takes that much screen real estate. I think its height is barely 13 pixels or something.
@Learn Linux Well, two bars would be too much for me as well. Though I think one bar is at least a good indicator of workspaces. I like that i3bar will only indicate workspaces that are actually in use. I think I remember DT once stated he finds this odd compared to xmobar or something. But that's the great thing, being able to configure the desktop all to one's liking. I once considered polybar, but didn't like it much.
@Learn Linux I do remember workspaces for the most part, but not always. On a 2-screen setup, I typically have odd workspaces to the right, and even workspaces to the left. Super convenient for me. I'm trying to reduce info to a minimum, though memory and CPU load is always nice to know, and on a laptop specifically, the quality of Wi-Fi signal is critical to know. And a bar just serves this purpose very well.
Hey! I usually remove the config.h file, which is generated when you do a build, before I do make install, and that really help avoid many of the patching errors. I just added it to my .gitignore (and some .o and other stuffs) then I do after/before each build: $ git clean -f
Oh, and I am not sure if that is a best practice hahaha, I just got it from noticing the config.h was not necessary for the build and it was holding cached configs
Could you do an up to date install of vanilla Debian with non free. Like from download if finished setup. This would be extremely helpful for me. Btw love your videos man.
i'm a simple man. i bind this to my dmenu hot key: dmenu_run -f -l 10 -i -fn ":size=16" -nb "gray" -nf "white" -sb "black" -sf "gray" -p "Applications: "
What kinda bothers me is that most of the patches are sooooo small. Just a few lines of codes added/deleted/modified. Why not just ship with all this included? Are a few extra lines of code really "bloat"?
You can patch on top of patches??? I thought you really had to make copies of the original file, patch them and then put them together into the final file.
You can apply patches on top of other patches although from time-to-time you'll have to manually patch using the reject (*.rej) file(s) as a guide. I prefer separate git branches for each patch and patch against config.def.h and then generate config.h by running 'make' before 'sudo make clean install' and 'make clean; rm -f config.h *.orig *.rej' and finally merging the changes into the master branch using git. Prior to the initial compilation on the master branch, I copy config.def.h to config.def.h.original in case I want/need to revert to the default configuration and start from scratch.
came here because i thought that someone had a tip for merging patches, then i realized "branches" git checkout -b mybuild git checkout master git checkout -b patch git apply < /path/to/patch git commit -am "describe patch" git checkout mybuild git cherry-pick patch git branch -D patch hmm i wonder how scriptable that is
You inspired me to make my own rice of dmenu, created some custom "patches", like dimming of the background. You can check it out on my github if your interested ^^ ( github.com/Czaplicki/dmenu )
Why do you patch manually? Tedious and error prone. This is what git is designed for. Each patch tells exactly which git commit it is based on, why you can't just apply it on the appropriate commit? The workflow looks like this: git branch ; git reset --hard ; git am ; (or, depending on the patch format: git apply ; git commit -m "applied the patch";) git rebase master; git checkout master; git merge ; (best to merge them on a separate branch once all patches has been applied on their own branches).
3 years later but this vid helped me a lot , thank you
Excellent video once again Derek. Real-world demonstrations are a great teaching tool. Thank you for sharing your knowledge and experience. Very much appreciated.
DT, you gave me the courage to install ArcoLinux, however, with the MATE desktop. Your command line videos are a great educational tool to help those of us who are not that comfortable in the command line environment. I used to mess around with old DOS and OS/2 command line, but have not really felt that competent in the Linux CLI . I am working on trying out a CLI on one of my older Thinkpads just to follow along with your videos. Keep up the good work!
Perfect timing. Was looking into how I could rice dmenu.
And i was about to look into ricing dmenu.
This came at the perfect time, thank you
Wow we think alike. Few days ago I riced my desktop, and built it around that same wallpaper that recently popped up on unixporn.
Nice rice, I riced my dmenu with almost 10 patches, and then created a number of bash scripts to launched different things, like PDFs in Zathura, and different files in gvim, with this scripts it's possible to use dmenu in a DE like Plasma, and run much faster than krunner.
This was a super cool video dt! i would lovee to see more like this!
I have learned so much watching this, thanks for sharing
Thanks for all of the great work you do!! I appreciate your efforts.
The air quotes were so intentional it reminded me of Dr. Evil haha!
just fyi, the reason why you had so many troubles was because suckless patches generally only patch conf.def.h and don't touch conf.h at all. Since conf.h gets automatically generated upon compilation the easiest fix for all your patches would have been to just delete conf.h and let it regenerate.
Otherwise you have to manually add the patches to config.h as well like you did or modify the patch file to target conf.h instead which isn't hard either.
Another easy way to transfer the new patches if you already have some custom config in your config.h would be to run a vim diff between config.h and config.def.h to conveniently apply the changes as needed. Personally I tend to just apply all my changes to config.def.h and then just delete config.h and let it regenerate upon compilation. However this then ofc adds another step.
Yea, that would have solved most of my issues, except that one patch that failed doing the "patch" command.
Yep, that one was indeed an issue of patches conflicting
Cool stuff. The only patch i did with dmenu is changing the arrow key into Ctrl+Vim(key)
I definitely prefer Rofi as a launcher, but I like dmenu for other things, like making Polybar modules more useful.
meanwhile i use dmenu like a interface for my terminal :3
@@fuseteam Hey I remember you from Brodie's video! Small world :)
@@clocked0 it's a small world after all~🎵
What is your window manager in this video? And how could you resize windows like in 1:54? Thanks.
Looks like that is xmonad. But resizing a floating window is the same in pretty much all tiling window managers. Hold the right click mouse button and adjust the size accordingly. Left click on the mouse allows you to move the window.
@@DistroTube Thank you for your quick answer :)
That is an excellent video Derek.
Making one video about taskwarrior
" Make Dmenu Great Again" *2016 election flashbacks intensifies*
Love the title of the video.
I literally clicked the video just for the definition of ricing at the beginning.
I switched to Linux. I was tired of windows.
Same I found it so cluttered and awful, and haven't looked back since
@@andersonevitt8523 reboot and turn off is much faster than windows and no force updates
@@k033as9how are u doing now?
I wish in the future to do something similar with polybar ...
thanks for this im gonna try and take this but add the json patch to it and see how that goes :)
If you want to run a command in your favorite terminal using dmenu
assign the below to your keyboard shortcut (NO patch required)
urxvtc -e $(dmenu -l 10 < listOfMyFavoriteCommands.txt)
You can replace "urxvtc" with your favorite terminal, your terminal might use a different "-e" flag
"listOfMyFavoriteCommands.txt" can be any text file with a custom list of your favorite commands, even .bash_history file
Why use dmenu instead of bash_history with Ctrl+R/S ?
It's easier to search & navigate for commands using dmenu
How do I make it 20 lines by default?
DT, you're awesome! Thank you!
I don't know if this isn't well know or if this is just obfuscated but the suckless team has a guide on how to track patches with git under dwm - customization. With the method they describe you're able to merge changes between the upstream master branch and your own custom branch to preserve patches.
Great video, Thank you!
The problem was not patch. You need to rename config.h.def to config.h before recompiling
LMAO
I couldn't get the fuzzymatch patch to compile, it isn't that big of a deal for me to get it running. Maybe if I am bored.
Thank you sir for the information 👍🙂👍
15:30 JFC why would you write out an enum on a single line, when you're fully expecting people to be doing line-by-line patching?
Yea, that line could have been written out as multiple lines and it would save people some work, because obviously I had more than one patch alter that line...which basically ruins any chance of the automatic patching ever working.
Hi, how do you get different colours in ls output? Such as the permissions and such?
weird... I'm pretty sure I applied the patch correctly but I'm not seeing a border anywhere. Maybe because I'm on a VM?
your surf build looks pretty good. Is the build in your gitlab up to date?
I haven't built surf in more than year. Not sure if there is a more recent version or not.
EDIT: Checking suckless.org, there isn't a more recent version.
@@DistroTube
I didn't mean if it was up to date as in up to date with the latest from suckless.
I meant is the build on your gitlab synced up with what your running in this video, with the transparent style sheet etc.
Yes, it's exactly what you saw on this video...including the custom CSS styling for suckless.org.
I wanna see dt libre booting a Thinkpad
Wow love the wallpaper! I do like some flat wallpapers and that one is great!
Your going to keep at it until I try Dmenu, aren't you? Lol
Ok while I am using the terminal more and more these days, I still am a clicky guy at heart... :D
Who know, it could happen..... Lol
LLAP
10:05 I do see a warning.
He's over there? :-)
What font is he using?
Mononoki Nerd Font
Anyone have a link for the wallpaper
Is there any patch to only display those application with .desktop files like in rofi's drun mode?
How make super + p run dmerun -c -l 20?
Anyone else having the issue of not getting the bottom part of the border?
Hi DT, I have a question. I would really like to use exa as a replacement for ls (and I mean aliasing ls to exa) but I fear I may run into incompatible options that are absent from exa.
I'm a bit on the fence on aliasing out programs from coreutils. Do you ever run into any such issues?
No issues.
Beard is lookin good ! :D
How did you setup dmenu to launch from key bind versus manually running from terminal?
For me it does that automatically from dwm
@@co9681 yeah it's setup by default, didn't know the keybind at the time.
DT can you tell me your dmenu shortcut key!! I'm using your dmenu with your dwm windows manager :)
SUPER+SHIFT+RETURN
Just like Trumb made America Great Again :D
cool stuff 👍
Where i can get that amazing wallpaper please .
Check the description.
Yeah - I know it's late.. but those patches were applied to the config.def.h, while you were using the config.h file. I haven't viewed the source code yet, but I guess you have to reconfigure the package in order to have the config.h being recreated from the config.def.h. Just my guess. I'm out. Great video 🙂👌
I really like this type of video paying attention to detail, they come along every so often|Good stuff , I like this flow freestylin , plus it was just more natural then a standard tutorial and I actually learned a few things about dmenu I didn't know . I would push for more video's like this and do the things you want because whoever is here likely shares similar interests , like dmenu_blingdout.. Squares and letters 😪 , good tip ☝🏻@Klaus-Dieter Schmatz
Ricing could be helpful in many cases it can save you plenty of time, but i think if you are gonna use a compositor like compton then the 3d gaming performance will probably not be as good ,this is the only reason i don't have window managers like these.
I know this is an old comment, but you could make a quick script to disable compton when playing.
Great vid!
When I begin to type in Dmenu, it closes.
You'll have to edit the file /bin/dmenu_run
Change the first line to
#!/bin/bash
Immediately after that add the following line
LANG="en_US.UTF-8"
Change the third line to
dmenu_path | dmenu "$@" | ${SHELL:-"/bin/bash"} &
You will probably have to restart your system or logout then log back in (I'm not quite sure)
@@DejiAdegbite thank you for the tip!
@@paulJkiely You're welcome.
Did it work?
@@DejiAdegbite just saw your message, I’ll give it a try tomorrow and let you know the outcome. Thanks again!
@@paulJkiely ok, cool.
i like your transparency!
i wish i knew why the transparency patch for dwm doesn't work :/
Do you have a compositor such as compton/picom running?
@@killermonkey1392 i do now lol, i completely forgot i post that here
Why not use dmenu as your file manager XD
I am preparing to do a dmenubib software, using dmenu to manage latex bibliography.
Check out: ua-cam.com/video/EyW6pRlWv6Q/v-deo.html
@@DistroTube Thx!
Being a happy user of i3 here. Lately been trying to rice my i3 bar. But dmenu I think it's great. Have been thinking of installing rofi, but why, if dmenu is great?
Let's see how you rice dmenu ☺️
@Learn Linux I try that occasionally and just kill the i3bar task. However, I seem to be too used to having that bar (yet).
I also don't think that it takes that much screen real estate. I think its height is barely 13 pixels or something.
@Learn Linux Well, two bars would be too much for me as well. Though I think one bar is at least a good indicator of workspaces. I like that i3bar will only indicate workspaces that are actually in use.
I think I remember DT once stated he finds this odd compared to xmobar or something. But that's the great thing, being able to configure the desktop all to one's liking.
I once considered polybar, but didn't like it much.
@Learn Linux I do remember workspaces for the most part, but not always. On a 2-screen setup, I typically have odd workspaces to the right, and even workspaces to the left. Super convenient for me.
I'm trying to reduce info to a minimum, though memory and CPU load is always nice to know, and on a laptop specifically, the quality of Wi-Fi signal is critical to know. And a bar just serves this purpose very well.
Hey! I usually remove the config.h file, which is generated when you do a build, before I do make install, and that really help avoid many of the patching errors.
I just added it to my .gitignore (and some .o and other stuffs) then I do after/before each build:
$ git clean -f
Oh, and I am not sure if that is a best practice hahaha, I just got it from noticing the config.h was not necessary for the build and it was holding cached configs
Could you do an up to date install of vanilla Debian with non free. Like from download if finished setup. This would be extremely helpful for me. Btw love your videos man.
i'm a simple man. i bind this to my dmenu hot key:
dmenu_run -f -l 10 -i -fn ":size=16" -nb "gray" -nf "white" -sb "black" -sf "gray" -p "Applications: "
Suckless really publishes patches but doesn't keep the diff-base synced with the latest release? That's not gonna scale.
What kinda bothers me is that most of the patches are sooooo small. Just a few lines of codes added/deleted/modified. Why not just ship with all this included? Are a few extra lines of code really "bloat"?
@@DistroTube Because of the suckless philosophy and most of the patches are made by users and not by the suckless team.
You can patch on top of patches??? I thought you really had to make copies of the original file, patch them and then put them together into the final file.
You can apply patches on top of other patches although from time-to-time you'll have to manually patch using the reject (*.rej) file(s) as a guide. I prefer separate git branches for each patch and patch against config.def.h and then generate config.h by running 'make' before 'sudo make clean install' and 'make clean; rm -f config.h *.orig *.rej' and finally merging the changes into the master branch using git. Prior to the initial compilation on the master branch, I copy config.def.h to config.def.h.original in case I want/need to revert to the default configuration and start from scratch.
and i thought learning kde was hard lol
Well, to be fair.....nothing in this video was "hard." Maybe a bit tedious.
I have an alias for recompiling:
alias i="sudo make clean install; make clean"
came here because i thought that someone had a tip for merging patches, then i realized "branches"
git checkout -b mybuild
git checkout master
git checkout -b patch
git apply < /path/to/patch
git commit -am "describe patch"
git checkout mybuild
git cherry-pick patch
git branch -D patch
hmm i wonder how scriptable that is
tfw you dont pick up the fuzzy patch
You inspired me to make my own rice of dmenu, created some custom "patches", like dimming of the background.
You can check it out on my github if your interested ^^ ( github.com/Czaplicki/dmenu )
nice wallpaper, mind sharing it? Cheers from argentina
Why do you patch manually? Tedious and error prone. This is what git is designed for. Each patch tells exactly which git commit it is based on, why you can't just apply it on the appropriate commit? The workflow looks like this: git branch ; git reset --hard ; git am ; (or, depending on the patch format: git apply ; git commit -m "applied the patch";) git rebase master; git checkout master; git merge ; (best to merge them on a separate branch once all patches has been applied on their own branches).
He could've just 'rm config.h' and everything patch would work fine
2137
first
It certainly seems so.
dont use surf use firefox with costum css and vimium.
haha, thank you