this post was submitted on 11 Aug 2024
30 points (96.9% liked)

Linux

5381 readers
26 users here now

A community for everything relating to the linux operating system

Also check out [email protected]

Original icon base courtesy of [email protected] and The GIMP

founded 1 year ago
MODERATORS
all 12 comments
sorted by: hot top controversial new old
[–] [email protected] 5 points 3 months ago (1 children)
[–] [email protected] 4 points 3 months ago* (last edited 3 months ago) (1 children)

[/j] that is not a question. banned, blocked, ICBM en route to your position

[–] [email protected] 4 points 3 months ago
[–] [email protected] 4 points 3 months ago (2 children)

i was wondering if there was any program akin to autohotkey for linux, i found one that does text replacement and it's fine but i really liked the stuff you could do with autohotkey, i had an entire popup menu of little tools on windows

[–] Fijxu 4 points 3 months ago (1 children)

I don't remember the name but there is one alternative that is made on Python and you can write the rules on Python.

I don't know if it works on Wayland tho.

[–] [email protected] 2 points 3 months ago

autokey-gtk probably, it's the one i already use

[–] anzo 2 points 3 months ago (2 children)

Perhaps xdotool (assumming X11 and not wayland, there might be a fork? idk). Random self-reference trivia fact: I never used AHK, heard many great things about it and regretted a lot being on Linux by then. This was ~11 years ago. Then, some years later, at a gig I needed to type pre-formatted emails (like every 2 weeks, answering the same) and for that I used xdotool and assigned the commands as custom shortcuts under KDE :) it was one of my proudest moments towards Open Source Software.

[–] [email protected] 2 points 3 months ago* (last edited 3 months ago)

also have that lmao, yea it's useful but it doesn't come with a ui so no custom menus. ig i should just bite the bullet and learn bash to use with yad

[–] [email protected] 1 points 3 months ago* (last edited 3 months ago)

assumming X11 and not wayland, there might be a fork? idk

ydotool

[–] [email protected] 1 points 3 months ago* (last edited 3 months ago) (1 children)

can anyone help me figure out, why the following shell script does not work:

#!/bin/bash
while IFS= read -d $'\0' -r "dir" ; do 
      dir=${dir:2};
      echo "${dir}"\#;
      cd "'""${dir}""'" ;
      ls;
      ##doing something else
     # cd  ..;
done < <(find ./  -mindepth 1 -maxdepth 1 -type d -print0)

I am running it in a location with a lots of folders containing spaces (think of it like this:

/location containing spaces# ls
'foo ba' 'baa foo ' 'tee pot'

I get errors of the following form:

script.sh: line 5: cd: 'baa foo ': No such file or directory

but when I manually enter cd 'baa foo' it works fine. Why could that be? (the echo retuns something like "foo baa #" .) It really confuses me that the cd with the exact same string works when I enter it manually. I have allready tried leaving out the quotes in the cd command and escaping the spaces using dir=$(printf %q "${dir}"); before the cd but that did not work either.

tbh I am new to shell scripts so maybe there is something obvious I overlooked.

[–] anzo 1 points 3 months ago

You're probably over-complicating things. Have you heard about the find -print0 | xargs -0 idiom? all that variable interpolation (dir=${dir:2}) and quoting "'""${dir}""'" is better to be dealt by the built-in shell tools. Or you could write a script for the whole body of that while loop, and then call find . -exec ./action.sh {} \;. Same script could be used with the previously mentioned idiom too, you'd need to use bash -c ./action.sh though. One advantage of "find | xargs" is that you can run these concurrently, paralellizing the action to all your dirs, in groups, of say 4 of them... and so on... it's cool and simple.