DT, this is one of the most useful videos you have done. Videos like this, describing simple tools that have far-reaching uses is something we need more of. Please.
@TheLinuxCast3 жыл бұрын
IDK if this is for everyone, but in dmconf to get this to work outside of emacs, I had to change the DMEDITOR to 'st -e nvim' (also worked with termite) that way it would open up the terminal and then launch nvim.
@daveshouldaine25203 жыл бұрын
hello and thx for an advice
@peterkruskopfs36263 жыл бұрын
@@daveshouldaine2520 thanks as I ran into the same issue. This fixes it.
@smeqwack73373 жыл бұрын
goddam, ever since i learned about dmenu, rofi, shell scripting and other stuff i dont really have to open teriminals to do everyday stuff like changing the wallpapers or changing the color theme on pywal, is so nice. Specially when u can alias it or add it as a keyboar shortcut
@zvezdan9563 жыл бұрын
what about system updates?
@Mathias-bz2kr3 жыл бұрын
@@zvezdan956 i just use "alias uu="sudo apt update && sudo apt upgrade ""
@smeqwack73373 жыл бұрын
@@zvezdan956 what's a system update?
@skye15963 жыл бұрын
Is that you in your wallpaper?
@raushonmunni26333 жыл бұрын
i thought the same thing
@GodIsTheReason3 жыл бұрын
I made a simple script to search songs from my music folder by filename pattern, select with dmenu, and queue it to my playlist. It's the best thing since sliced bread.
@DistroTube3 жыл бұрын
I've been playing with a similar idea. A dmenu script that controls the deadbeef player, gets tracks info, or loads playlists.
@rafinhodivino58773 жыл бұрын
pls share the code
@coffeedude3 жыл бұрын
That second script is actually a great idea!! I'm going to write a version of it myself to practice :)
@ricardopinho6303 жыл бұрын
That's incredible. I'm going to steal the code. I'm getting into Linux for the past year or so and I've been learning much in this channel. Nice as well been joining this Linux community as an escape from the madness all over the mainstream web platforms.
@primorock81413 жыл бұрын
Played around with dmenu yesterday and there are so many possibilities; exaclty what I'd expect from suckless
@redgeoblaze37522 жыл бұрын
I'm actually having a lot of fun just trying to shell script my way into getting the perfect Desktop environment out of my Window Manager. Just earlier today, I made a script that reads your steam game folder, then generates a Rofi menu to choose between these games. I came up with a script that sets some certain color configs to constantly be cycling in a rainbow style. I'm not even going to use that, but it was fun to make. I've got a ton of these ideas just to mess around with, and this video gave me a few more. It really is a good way to learn shell scripting.
@zebbleganubi7233 жыл бұрын
ive been meaning to make up some rofi/dmenu scripts for a while now. things like selecting multiple files and then choosing in the menu which scripts to send the file list to. like renaming or removing certain characters, resizing images, converting videos etc, there really is tons of things you can do. and the beauty of it all is that you only have to write each script one, then give it a descriptive name. beats having to remember all of the commands off the top of your head and having to type them out
@ipws133 жыл бұрын
you save my time, already using your scripts, and edit it a little for my machine
@williammckeever47902 ай бұрын
I know this is an older vid but I just discovered dmenu and this has helped me immensely. Thanks for sharing.
@StrikerEureka853 жыл бұрын
Dmenu: "do you have time to talk about our lord and savior, DT?"
@SubhadityaMukherjee3 жыл бұрын
So I threw a small shell script together to edit my configs. Its relatively easier to understand. All you have to do is dump your paths in one file line by line. (Replace nvim/nnn and the path with whatever you want). Thought it would be helpful. PS. DT. Love your channel so much! I learnt a lot from it. Thank you for your content :) #!/usr/bin/bash choice=$(cat "/home/eragon/Documents/scripts/listofscripts.txt" |dmenu -l 10) echo $choice if [ -d $choice ] then echo "Directory" nnn $choice else echo "File" nvim $choice fi
@MarcelRobitaille3 жыл бұрын
I recently made my first rofi script, which replaces "Open with NVIM" in the right click menu with a script that finds all your open NVIM sessions and opens the file in the one you pick with nvim-remote. I usually navigate files in the terminal of course, but this can be useful when downloading files from the browser. I live in tmux and usually have a lot of sessions open. If I'm working on something I don't want it to open a new terminal, the file is probably related to something I'm already working on.
@leviticus89303 жыл бұрын
Dmenu has informed us that you have not extended your car's warranty
@drishalballaney3 жыл бұрын
lool nice one
@toastybowl2 жыл бұрын
This is very sick. I have looked for this kind of thing many times and this version seems to be very simple + useful. Very nice examples as well - this is in the top 5 most useful ideas of computer use I think & definitely want others to learn this
@temudjin11553 жыл бұрын
Love this channel. Simple. Straightforward.
@othernicksweretaken3 жыл бұрын
What is the purpose of the hyphen in the 2nd field of your array's elements? Assuming the hyphen isn't a kind of placeholder for a field value to be populated later you could have used a "declare -A" instead declaring an associative array (or hash as called in Perl, or dictionary as called in Python) which would have saved you the pipe into awk to parse the value field of your array elements.
@othernicksweretaken3 жыл бұрын
@Learn Linux Me too. Although in a script like this it doesn't really matter, I often imagine nested loops where command pipes in the inner loop could be executed many thousand times and where you want to avoid unnecessary forks of subshells. Have you heard of Randal Schwartz's _Useless Use of Cat Award_ ? This dates back three decades when dynamic content of many websites in the WWW was generated by often _Idiotic Perl_ scripts.
@Mach7RadioIntercepts3 жыл бұрын
I was also wondering about that dash. My fzf / rofi radio bookmarks only use two fields. Luke Smith showed a nice way to break up those variables with # or % and using the dash may be more handy than splitting fields on the spaces.
@othernicksweretaken3 жыл бұрын
@@Mach7RadioIntercepts Yes, I think what you mean is called parameter expansion. There should be a section in man bash explaining all sorts of variable expansions and pattern substitutions. This is by far the most efficient way of parsing because it is a shell built-in functionality and avoids invocation of any external commands to accomplish the task, as one usually does by piping into e.g. grep, sed, tr, awk, perl etc. e.g. If the value of an array element of DT's example was stored in ENTRY one could expand all after the hyphen referring to ${ENTRY#*-\ } likewise to expand all up to the hyphen by referring to ${ENTRY%\ -*}
@adriancostin91383 жыл бұрын
good stuff. going to start writing scripts for my dmenu. thank you for showcasing this
@myownbasement3 жыл бұрын
@DistroTube Do you use any lockscreen?I have been through your dotfiles but didn't anything that mentioned slock, xscreensaver etc? Do you mind making a video on it?
@DistroTube3 жыл бұрын
I don't use screenlockers much on my on machines. And slock is a simple program. Not much to it. Install it. Run 'slock' to lock the screen. Start typing your password...if the screen is blue and unlocks, you typed your pass word correctly. If the screen turns red, then you entered the wrong password, try again.
@myownbasement3 жыл бұрын
@@DistroTube Oh is it? Thanks a lot for the reply. Love your content.
@starrwulfe3 жыл бұрын
I’m so about to fork one of these scripts and make a crypto checker script now.
@marcello42583 жыл бұрын
may I suggest using exit 0 instead of exit 1 when it is not an error?
@albynoson3 жыл бұрын
You should check out how sxmo (simple X11 mobile) uses dmenu on the PinePhone. I originally typed a comment with some examples, but I clicked something that took me away from this video which then erased my two paragraphs of text, so look at their scripts yourself. Their dmenu scripts that are run based on the X window title are cool and remind me of Microsoft's UWP menuing system. Although I believe for that system to work, developers had to code their application to use their proprietary menu system API, but these dmenu scripts are implemented in an extensible unix fashion: all selecting the options presented by dmenu does is send key combinations to your applications, so I could rewrite the script to list whatever entries with whatever keystrokes I want.
@piotrzieniewicz90453 жыл бұрын
Hey DT, do you use dmenu as your launcher? If so, do you use the path version or do you have a script that's working with .desktop files?
@DistroTube3 жыл бұрын
My dmenu doesn't search the .desktop files. Usually this isn't a problem for me....except with appimages.
@kanashimi62093 жыл бұрын
Very useful, thank you Derek. Keep it coming!
@kartikeykushwaha36223 жыл бұрын
Hey DT, can you make a video on dmenu-flexipatch, dwm-flexipatch, st-flexipatch, etc?
@anzar41423 жыл бұрын
Hey DT can you talk about ZFS.
@Adam-yf2ux3 жыл бұрын
Awesome ! Thanks for this video. I will play around with dmenu :)
@albynoson3 жыл бұрын
Cool video. Lately I've been thinking about writing a dmenu scripts that launches Steam games without the need to open the Steam library window. Maybe with this tutorial I'll try it soon. I wish there were a way for the script to update itself, but I don't think there's a Steam file I can easily parse to automatically find games installed via Steam. On another note, do you recommend a good dmenu script that can parse .desktop files but unlike i3-dmenu-desktop works with any window manager like, oh I don't know dwm, the actual tiling window manager made by the same suckless guys as dmenu itself? (what were the i3 guys thinking hard coding i3-dmenu-desktop to integrate with i3)
@JopiesausGaming3 жыл бұрын
You might be able to use SteamCMD to create a list of installed games which gets read out by the dmenu script.
@albynoson3 жыл бұрын
@@JopiesausGaming It later occured to me I don't need the executables or paths to the games, just their IDs and names. In the steamapps folder, there isn't one big repository, but rather, a file for each installed game called "appmanifest_(id).acf". They each contain an "appid" field and a "name" field. Any idea how I go about parsing these files one at a time whilst still making sure the names and IDs go together?
@JopiesausGaming3 жыл бұрын
@@albynoson If you use "grep '\"appid\"\|\"name\"' $STEAMDIR/appmanifest_*" it should give a workable output, i am however not that competent in string manipulation in bash, so i wouldn't immediately know how to proceed from there.
@anantgupta79163 жыл бұрын
What's your opinion on rofi run launcher
@vaibhavppandey3 жыл бұрын
Bhai maine tere latest video me comment kiya hai dekhle. Aur haa rofi jyada customisable hota hai
@artificialcode2 жыл бұрын
Feel so sorry for the first script man, I mean I could do that in a loooott less, just using la on .config or anything else, greppping things I want , output that to a file, and use sed and tr and cut maybe to just format it. (I know it sounds complicated but in essence this will take like 2 or 3 lines max Edit: the second script is similar to the first but makes much more sense in the second, the first would be much easier
@drishalballaney3 жыл бұрын
hmm, what do you think of xmonad prompt compared to dmenu?
@DistroTube3 жыл бұрын
They are not really the same thing. The Xmonad prompt is part of Xmonad. It is not a standalone program like dmenu that you can incorporate into scripting.
@georgesomeone77253 жыл бұрын
Hey DT, nice content, thanks. Where can I get the wallpaper you're using in this vid?
@DistroTube3 жыл бұрын
Check the 'wallpapers' repo on my GitLab. (0213.jpg)
@nathbarbosa833 жыл бұрын
while using sxhkd the script open, but when I press enter on dmenu, it doesn't open the config file
@joecool1693 жыл бұрын
What would I use to have vim open in the terminal for editing config files? DMEDITOR="What?"
@blank0013 жыл бұрын
Thanks DT for this I need to move some of my configs to dmenu, right now I have 7~8 aliases for config edits like vi_zsh // for zsh config vi_vi // vim config vi_(etc)
@sumnerd693 жыл бұрын
Nice seeing this type of videos again
@sebastienhebert64573 жыл бұрын
Qutebrowser stores bookmarks in a text file, its easy to pipe in dmenu.
@andrewcarpin28503 жыл бұрын
What is it that you put in your Xmonad config to launch these scripts? I've tried creating a few of these and they always launch kind of buggy
@DistroTube3 жыл бұрын
I was in dwm in this video. But in xmonad, just create a keybinding like: ("M-p s", spawn "bash /path/to/script") The above example assumes you use EZ keybindings. The keybinding in this example is a keychord, SUPER+p followed by 's'.
@andrewcarpin28503 жыл бұрын
@@DistroTube Much appreciated! I really love EZ Keys. I really wouldn't want to go back to standard keybindings after seeing how easy EZ can be! I'm going to try my dmenu scripts again later like this amd see what happens. Thanks again!
@Ohmygodzilla3 жыл бұрын
Well done, will try it out later! Thank you very much for this information
@stumbling3 жыл бұрын
I wish dmenu had an option to specify a separate output list, so for DT's dmconf script he could just display "alacritty awesome bash..." but selecting one of them would return the file path. Here is my scrappy solution: grep "$(echo -e "[1] first [2] second [3] third" | dmenu | cut -d' ' -f1)"
@davidh.49443 жыл бұрын
Try using an associative array. Print and select just the index name, and use the string returned to recall the desired path: ===== declare -A options options[bash]=$HOME/.bashrc options[vim]=$HOME/.vimrc ...etc... choice=$( printf '%s ' "${!options[@]}" | sort | dmenu .... ) echo "${options[$choice]}" ===== [Edit: I almost forgot, associative arrays do not *sort* naturally, so it's best to include your own, to be sure you see them in alphabetical (or other desired) order.]
@marioschroers73183 жыл бұрын
This is brilliant!
@sunriseleatherco.65873 жыл бұрын
That is some great stuff right there!
@raynei3 жыл бұрын
any scripting guides?
@davidh.49443 жыл бұрын
There's the venerable old _Bash Advanced Scripting Guide_ , always a staple, but it's a bit obscure for newbies, and perhaps a bit outdated. The _Bash Guide For Beginners_ may be better for beginners. There are certainly a lot of other good newer ones out there now, findable with just a flick of the DuckDuckGo. And while they aren't "guides", per se, I highly recommend _Greg's Wiki_ and the _Bash Hacker's Wiki_ . They are both indispensable for learning how to code _properly_ and to avoid common pitfalls. If you do nothing else, read Greg's BashFAQ and Bash Pitfall pages before you dive too deep into your coding.
@raynei3 жыл бұрын
@@davidh.4944 thank you!
@shubhamdwivedi77663 жыл бұрын
I automate tasks with shell scripting nice handy feature 😉
@darkarie3 жыл бұрын
DT can I make this on Rofi too rigth?? 🧐
@DistroTube3 жыл бұрын
Sure. Where I pipe things into dmenu, just change it to pipe into rofi.
@darkarie3 жыл бұрын
@@DistroTube cool!! thanks
@TrueWordsOfEternity3 жыл бұрын
I'm gonna have to look at your kill script and use instamenu / imenu with it maybe I'll let you know how it works out
@rizkyadiyanto79223 жыл бұрын
pls let me know
@Johan.Molenberghs3 жыл бұрын
Why do you exit 1 on quit? Is quitting an error?
@DistroTube3 жыл бұрын
No, it should be exit 0. Probably just me being lazy and copying exit 1 from another place. Will correct those on the next push.
@gabemurray53653 жыл бұрын
I figured out what DT stands for ... Donald trump DT real name is donald trump
@Gabifuertes3 жыл бұрын
Derek Taylor is just his fake internet name.
@tonythai59912 жыл бұрын
Nop, DT is a strong password.
@n0kodoko1433 жыл бұрын
I watched your wallpaper vid already, this is the first time I've experienced visceral wallpaper envy. /sexy
@mesientomuchomejor20273 жыл бұрын
Just as I was wondering how to make a nice menu to read books with zathura, what timing lol
@areg71823 жыл бұрын
rofi also does the same thing, but dmenu is lighter
@fabioramatis23733 жыл бұрын
Rofi is prettier
@TrueWordsOfEternity3 жыл бұрын
@@fabioramatis2373 instamenu is nicer then rofi too and backwards compatible with dmenu
@gradientO3 жыл бұрын
rofi can use dmenu scripts
@LordOfWizardurl3 жыл бұрын
Hello DT you are the best❤️
@DistroTube3 жыл бұрын
Hey, thanks!
@vorrnth87343 жыл бұрын
Why "exit 1"? That should be a zero imo.
@DistroTube3 жыл бұрын
Yep.
@daviddupoise64433 жыл бұрын
Making dinner.
@brknglss77413 жыл бұрын
@8:20 free julian assange
@karthickb19733 жыл бұрын
shame on americans. they leave a solider alone in the battle field. all they care is themselves. democracy fails.
@svenkarlsen27023 жыл бұрын
I use YAD in much the same way
@svenkarlsen27023 жыл бұрын
@Learn Linux For simple things it's great... For more advanced stuff I'd use C++ and GTK instead of fighting with pipes and redirection...
@kevinwood50483 жыл бұрын
Excellent! 👏👏👏
@librereader3 жыл бұрын
the best thing is to use fzf with dmenu
@charlessmith54653 жыл бұрын
I have a version of dmenu_run which only shows a subset of the commands, instead of all executables in PATH. For example I never want to launch "true", "false", "dd", or "[" from the desktop (without args) 🙃 instead it just shows things I tend to launch.
@cam02273 жыл бұрын
Why gitlab instead of github? Can someone explain edit: got it so github belongs to micro$hit now
@wikingagresor3 жыл бұрын
recently github was swallowed by microsoft, so the more weary folk migrated into new foss site.
@brknglss77413 жыл бұрын
github belongs to microsoft
@nykal15103 жыл бұрын
@Learn Linux I prefer Codeberg
@cam02273 жыл бұрын
@@wikingagresor So why is kernel development still on github?
@vorrnth87343 жыл бұрын
@@cam0227 Why not? Before git it used proprietary tool too.
@ronaldomessi61613 жыл бұрын
One doubt any BEST free resources to learn shell scripting from the entry level to high level in the field of CYBERSEC OR HACKING LINE??? CAN YOU HELP ME ON THIS ???
@ahmedabd22593 жыл бұрын
That’s great
@falx9663 жыл бұрын
I think learning a POSIX shell is way better then Bash. Why? Simple. That script can be runned on different OS's like BSD, Solaris, AIX, HP-UX, etc., not just on GNU/Linux where bash is the default shell. Beside Bourne Shell code is more elegant the bash. I have scripts which run on FreeBSD, OpenBSD, Solaris, HP-UX and GNU/Linux without the need of modification. They just run. #!/bin/sh. This is the way! :)
@randomuser52373 жыл бұрын
What's the point of the first script? You're using emacs for editing all config files. Just use named bookmarks that is available in vanilla emacs (use a namespace format like config/bookmarkname to easily find config files). With Helm and other fancy stuff it's trivial to setup a better menu.
@DistroTube3 жыл бұрын
Who says you have to use Emacs with this script?
@v1ntee3 жыл бұрын
Shell scripting with Dmenu? are you friend of that guy named Luke? 🤣
@OctaviusPelagius3 жыл бұрын
No witty message at the end? I feel like waiting for a post-credits scene on a movie only to be yelled at to get out of the theater...
2 жыл бұрын
If I have my dm-record (copy of yours) in my ~/.dotfiles/bin how can I call it from dmenu?