As my time with linux, I created a lot of scripts. Some of them have input parameters and sometimes I just forget this parameters.

So I wonder if there is some way to create autocomplete parameters, like i autocomplete a path by pressing the tab key?

For example a script. ./test.sh can be completed with parameter-one, eg. ./test.sh parameter-one or ./test.sh parameter-two. If i type now ./test.sh followed by tab it should add parameter-one if i press tab again it should change to parameter-two.

How can I do that? I’m on bash…

  • trevor@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    7 hours ago

    It took me a while to get around to this so I could sanitize some of the highly-personal stuff there (mostly just a bunch of URLs because I don’t use browser bookmarks lol), but here’s a condensed version of what I like to use Espanso for.

    The second half is …interesting. I wanted a way to autofill passwords from my password manager in any application, not just a browser. It’s a very homebrewed solution, and it only works on Windows and Linux because macOS blocks tools like Espanso from viewing or modifying login input fields.

    Did you put in a request for this?

    For a Wayland Flatpak or RPM? I haven’t looked in a long time, but I believe there’s an open issue for a Wayland RPM.

    Edit: Found them: Flatpak issue and RPM issue.

    • Flagstaff@programming.dev
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      53 minutes ago

      macOS blocks tools like Espanso from viewing or modifying login input fields.

      I wonder if SikuliX may be of interest to you, then. I just invoke KeePassXC’s built-in autotyper; it’s not too much more painful for me. Anyway, thanks for sharing! We certainly use it for very different things. Here’s a Reddit search URL generation script that I use sporadically:

        - trigger: '`rs'
          replace: '{{output}}'
          vars:
            - name: form
              type: form
              params:
                layout: |
                  [[subdomain]]
                  Subreddit (optional): [[subreddit]]
                  Query:
                  [[query]]
                fields:
                  subdomain:
                    type: choice
                    values:
                      - www
                      - old
                    default: old
            - name: output
              type: script
              params:
                args:
                  - python
                  - -c
                  - |
                    if '{{form.subreddit}}':
                      print(f'https://{{form.subdomain}}.reddit.com/r/{{form.subreddit}}/search?q={{form.query}}&restrict_sr=on&include_over_18=on')
                    else:
                      print(f'https://{{form.subdomain}}.reddit.com/search?q={{form.query}}&include_over_18=on')
      

      I wanna make a Lemmy equivalent of this, eventually…

      Update: Okay, just did for my instance!

        - trigger: "`lemmy"
          propagate_case: true
          replace: "https://programming.dev/search?q=%7B%7Blemmy.query%7D%7D&type=%7B%7Blemmy.search%7D%7D&listingType=All&page=1&sort=%7B%7Blemmy.timeframe%7D%7D"
          vars:
            - name: "lemmy"
              type: form
              params:
                layout: |
                  Query: [[query]]
                  Filter: [[search]]Time Frame: [[timeframe]]
                fields:
                  query:
                  search:
                    type: list
                    values:
                      - All
                      - Comments
                      - Communities
                      - Posts
                      - Users
                      - URL
                    default: All
                  timeframe:
                    type: list
                    values:
                      - TopWeek
                      - TopMonth
                      - TopThreeMonths
                      - TopSixMonths
                      - TopNineMonths
                      - TopYear
                      - TopAll
                    default: TopAll
      

      It’d be nice to be able to improve the layout’s appearance, but I don’t know how to do that…