Initial commit: HPR Knowledge Base MCP Server
- MCP server with stdio transport for local use - Search episodes, transcripts, hosts, and series - 4,511 episodes with metadata and transcripts - Data loader with in-memory JSON storage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
133
hpr_transcripts/hpr1814.txt
Normal file
133
hpr_transcripts/hpr1814.txt
Normal file
@@ -0,0 +1,133 @@
|
||||
Episode: 1814
|
||||
Title: HPR1814: Custom Context Menus in GNU/Linux GUI File Managers
|
||||
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr1814/hpr1814.mp3
|
||||
Transcribed: 2025-10-18 09:38:42
|
||||
|
||||
---
|
||||
|
||||
This is HPR episode 1,814 entitled Custom Context Menu in GNU Sashlinux GUI File Manager.
|
||||
It is hosted by John Culp and is about 13 minutes long.
|
||||
The summary is, I describe how to add Custom Context Menu items in the Nautilus and the
|
||||
file manager.
|
||||
This episode of HPR is brought to you by an honesthost.com.
|
||||
At 15% discount on all shared hosting with the offer code HPR15, that's HPR15.
|
||||
Better web hosting that's honest and fair at An Honesthost.com.
|
||||
Hey everybody, this is John Culp and Lafayette Louisiana and today I'm going to do a fairly
|
||||
quick episode about how to add custom actions and run custom scripts and so forth from Linux
|
||||
GUI File Managers.
|
||||
This is something I don't remember exactly when I discovered this but I remember it was
|
||||
one of those aha moments where I thought, wow, this is one of the great things about
|
||||
running on a GNU Linux system.
|
||||
What I'm talking about here is when you're looking around in a GUI File Manager but the
|
||||
one I use by default is Thunar.
|
||||
I run a Debian system with OpenBox Window Manager and Thunar is the default File Manager
|
||||
on here.
|
||||
What you can do is set up a context menu where you can right click on one of your files and
|
||||
run a custom action on it.
|
||||
In other words, you don't have to be limited to what the default context menu items are.
|
||||
And you can do, actually, I had never even tried this on Nautilus which is the default
|
||||
Nome Desktop File Manager until this morning but I thought if I were going to do this episode
|
||||
I should probably at least give the basics on how to do it on those two File Managers
|
||||
which I think are the most commonly used File Managers on the GNU Linux Desktop.
|
||||
On Nautilus it seems to me it's not quite as elegant and you don't have quite as much
|
||||
power but it is possible to do what you need to do.
|
||||
What you have to do is go into a special Nautilus Script folder which on my system is located
|
||||
in the home directory in the .local slash share slash Nautilus slash scripts directory.
|
||||
And you can either put your scripts in there or you can do like I prefer to do and that
|
||||
is to make symbolic links to your scripts in there.
|
||||
Otherwise if you just put copies of your scripts in there then if you change the script I'm
|
||||
assuming if you are somebody who writes a lot of scripts then you probably put them in
|
||||
your slash home slash bin directory so that they will be in your path and I do not really
|
||||
want to move the scripts out there or have duplicate copies anywhere because if you edit
|
||||
the script and you forget to copy it over into your Nautilus scripts folder then when
|
||||
you run that script from the context menu on your File Manager you won't have the latest
|
||||
version of the script so for me it seems like a better practice to put a Simlink to your
|
||||
only have one copy of the script I don't like having duplicate files around on the system.
|
||||
So anyway once you have put the Simlinks or scripts in the Nautilus Scripts directory
|
||||
then when you right click on a file in the Nautilus File Manager you go down to where it says
|
||||
scripts and then that opens out to a side menu and you just choose whichever script it
|
||||
is that you want to run on that file and that works okay I tried it on a couple of things
|
||||
this morning and it worked just fine. On a Thuner you don't have to put your scripts anywhere
|
||||
special you actually can put a full path to the script when you're setting up the custom
|
||||
action I actually like it much much better on Thuner the way it handles this whole thing.
|
||||
What you do is from inside the Thuner File Manager you go to the Edit menu and then
|
||||
choose to configure custom actions and then you'll see some actions there already that were set
|
||||
up by default and if you want to add your own custom action you click on the plus button which
|
||||
if you hover over it it says add a new custom action and then you'll have a dialog box with two
|
||||
tabs on it the first tab is called Basic and that is where you can give your custom action a name
|
||||
then you can give it a description and I think I normally just leave that blank and then in
|
||||
the third line you can set the command that is to be run when this thing is chosen from the
|
||||
context menu. They give you a little tip there at the bottom that says the following command parameters
|
||||
will be substituted when launching the action. If you want the script to be run on the first selected
|
||||
file which is I don't think I have any of them that do anything besides that but you use a
|
||||
percent sign F that will so you put the command followed by a space followed by percent F and
|
||||
that will make it so that when you choose that action when right clicking on a file it will run
|
||||
your script on that file with that file as the first command line argument. Other options are
|
||||
to use a capital F instead of the lowercase F and that is supposed to run it on all of the selected
|
||||
files and it seems like I tried that once and was not successful and I don't know why and didn't
|
||||
really feel like digging any deeper to figure out what was wrong. You can also run a script on an
|
||||
entire directory or multiple directories and so forth. So on the second tab that is the appearance
|
||||
conditions and to me this is where it gets a little bit more powerful than what you get on
|
||||
Nautilus where you have to see essentially all of the scripts that you want to be able to run on
|
||||
any files up here every time you right click on something Nautilus whereas here you can set up
|
||||
appearance conditions. So for example a couple of my scripts have to do with manipulation of images
|
||||
like I want to take the selected image and reduce its width to 300 pixels and so I will check
|
||||
the little box here that says appears if selection contains image files. I'll check the image files
|
||||
and I'll uncheck the text file so that anytime I right click on an image file this custom script is
|
||||
one of my options whereas whereas if I right click on a text file that script does not appear because
|
||||
it's not appropriate to try to run an image conversion script on a text file. You can also instead
|
||||
of checking these rather general category boxes here you can give a file pattern and so sometimes I
|
||||
will do something like a asterisk.ly if I want this option to appear only when I right click on a
|
||||
lilypon source file. So it's it's pretty cool. The the kinds of scripts that I have here I want to say
|
||||
I've got let's see one two three four five I've got about 10 of these custom actions one of them
|
||||
I don't know if I've used in a while it says post photo to pump.io that would be my one of my social
|
||||
networks and so if I right click on an image and choose to post it to pump.io it runs a script that
|
||||
will post that image to my timeline there. That's kind of cool I remember using it for a while but
|
||||
I think it might have been one of those things where I was just trying it to see whether it would work or
|
||||
not. I have another one that I call markdown this and if I right click on a markdown source file
|
||||
and choose this it will run the markdown command on it to create an HTML file from it. I have
|
||||
another one that says fix audio with Alphonic. Alphonic is a it's a web-based audio cleanup tool it
|
||||
does various you know it will apply various filters to your audio things like compression and
|
||||
amplification and whatnot to try to make it sound as good as possible and it actually works
|
||||
pretty well if you are an HPR contributor and would like for your audio to sound better like it
|
||||
not to be so quiet or something and you're not really sure how to do this in audacity then you
|
||||
might consider trying Alphonic I think it's Alphonic.com I'll I'll put a link in the show notes just
|
||||
for the heck of it but you can just upload a file and tell it in general terms what you want
|
||||
done and it'll run a conversion script and actually it works pretty well then I have a few
|
||||
image conversion scripts that I have custom actions configured for if I want to make an image
|
||||
600 pixels wide 300 to 50 I use these a lot when I was developing the School of Music website because
|
||||
I wanted the images all to have certain widths then I have another one to build a web page for
|
||||
my website I have my I have a certain build script that I run on a source file for a web page and
|
||||
I can right click on that file and it'll build the page then I have a couple of things related to
|
||||
my counterpoint book and I actually added one called Gimpit and I did this because it seemed like I
|
||||
was tired of going to levels deep to choose Gimp to open up an image but I didn't necessarily want
|
||||
to make Gimp the default thing for opening up an image most of the time I just want to view the
|
||||
image and on my system that would open up VUNY or which is just a little image viewer but I added
|
||||
a custom command to run Gimp on an image so that it would be available on the first level of my
|
||||
context menu and one thing that I used on this that I didn't on did not on any of the others
|
||||
is I put an underscore on the like before the G in the word Gimp this is something that you do
|
||||
in the name the hang on let me look again the name on the first tab on the create action thing
|
||||
under name if you put underscore GIMP then when you right click on an image file the G will be
|
||||
a hotkey and then you can just press the G key and it will select that item it'll have like a
|
||||
little underscore under the G let's see I had two more one is to remove spaces in a file name
|
||||
and I think when I right click so if I download a file that one of my colleagues
|
||||
sends me I never have any spaces in my own file names but people who send me stuff almost always
|
||||
have spaces and if I have to do any kind of work with the file then I want to remove those spaces
|
||||
so I can right click on the file in my file manager choose this and it will replace all the spaces
|
||||
with underscores and then the last one that I have configured is add to caliber library and if I
|
||||
right click on an e-pub file or an easy w3 file it will run one of those command line caliber
|
||||
Python things and add it to my caliber library so anyway that's that's about it I if you use
|
||||
Thunar especially I definitely encourage you to try this out especially if you write a lot of
|
||||
your own scripts and are frequently running them on files a lot of times you'll just want to run
|
||||
them from the command line but it can be handy to be able to do it by just right clicking inside
|
||||
a graphical file manager as well right I think that's it I will talk to you all later bye
|
||||
you've been listening to Hacker Public Radio at Hacker Public Radio dot org
|
||||
we are a community podcast network that releases shows every weekday Monday through Friday
|
||||
today's show like all our shows was contributed by an hbr listener like yourself if you ever
|
||||
thought of recording a podcast and click on our contributing to find out how easy it really is
|
||||
Hacker Public Radio was founded by the digital dog pound and the infonomicon computer club
|
||||
and it's part of the binary revolution at binrev.com if you have comments on today's show
|
||||
please email the host directly leave a comment on the website or record a follow up episode yourself
|
||||
unless otherwise stated today's show is released on the creative comments attribution share
|
||||
shout out
|
||||
you
|
||||
Reference in New Issue
Block a user