{"id":15168601,"url":"https://github.com/ciavash/qutebrowser-userscripts","last_synced_at":"2025-10-01T00:32:27.069Z","repository":{"id":147482246,"uuid":"383222461","full_name":"CIAvash/qutebrowser-userscripts","owner":"CIAvash","description":"userscripts for qutebrowser (written in Raku)","archived":true,"fork":false,"pushed_at":"2022-12-06T12:31:07.000Z","size":60,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-09-30T17:37:59.593Z","etag":null,"topics":["feeds","images","links","qutebrowser","qutebrowser-userscripts","raku","rofi"],"latest_commit_sha":null,"homepage":"https://codeberg.org/CIAvash/qutebrowser-userscripts","language":"Raku","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CIAvash.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-05T17:48:41.000Z","updated_at":"2024-03-30T12:42:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"0680b35e-f9d3-4ab9-996b-7ea04508db61","html_url":"https://github.com/CIAvash/qutebrowser-userscripts","commit_stats":{"total_commits":6,"total_committers":2,"mean_commits":3.0,"dds":"0.33333333333333337","last_synced_commit":"64a3bb70192601f5973d617e50f3e29cf6e53bd5"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CIAvash%2Fqutebrowser-userscripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CIAvash%2Fqutebrowser-userscripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CIAvash%2Fqutebrowser-userscripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CIAvash%2Fqutebrowser-userscripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CIAvash","download_url":"https://codeload.github.com/CIAvash/qutebrowser-userscripts/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234803491,"owners_count":18889263,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["feeds","images","links","qutebrowser","qutebrowser-userscripts","raku","rofi"],"created_at":"2024-09-27T06:23:31.649Z","updated_at":"2025-10-01T00:32:21.804Z","avatar_url":"https://github.com/CIAvash.png","language":"Raku","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CIAvash::Qutebrowser::Userscripts\n\nA collection of [userscripts](https://www.qutebrowser.org/doc/userscripts.html) I wrote, and use in [qutebrowser](https://www.qutebrowser.org).\n\n![qutebrowser userscript dig url](screenshots/qutebrowser-userscript-dig-url.jpg)\n\n## Requirements\n\n### Clipboard\n\n- Wayland: [wl-clipboard](https://github.com/bugaevc/wl-clipboard)\n- X: [xclip](https://github.com/astrand/xclip)\n\n### Selection/Completion\n\n[Rofi](https://github.com/davatorium/rofi/): used in `select*` userscripts\n\n### File Selection\n\n[Zenity](https://wiki.gnome.org/Projects/Zenity): only used in `open-file` userscript\n\n### Programming Language\n\n[Raku](https://www.raku-lang.ir/en/) - Right now regex is the slowest part of Raku, so the scripts doing any parsing will be slow\n\n#### Module Manager\n\n[zef](https://github.com/ugexe/zef)\n\n#### Modules\n\n```console\nzef install --deps-only --/test .\n```\n\n## Features\n\n### Example configs to show the features\n\n#### Open\n\n```python\n# Open file with zenity\nconfig.bind(',of', 'spawn --userscript open-file')\n```\n\n#### Hint: Follow\n\n```python\nconfig.bind(',fd', 'hint links userscript open-domain')\n```\n\n#### Copy\n\n```python\n# Copy title and URL of the page separated with newline\nconfig.bind(',ytu', 'spawn --userscript yank title-url')\n# Copy selected text and URL of the page separated with newline\nconfig.bind(',ysu', 'spawn --userscript yank-text-url')\n```\n\n##### Copy: Hint\n\n```python\n# Copy image URL\nconfig.bind(',yiu', 'hint images userscript yank-url')\n# Copy link text\nconfig.bind(',ylt', 'hint links userscript yank-link-text')\nconfig.bind(',rylt', 'hint --rapid links userscript yank-link-text')\n# Copy link URL (pretty)\nconfig.bind(',ylu', 'hint links userscript yank-url')\nconfig.bind(',rylu', 'hint --rapid links userscript yank-url')\n# Copy link's text and URL separated with newline\nconfig.bind(',yla', 'hint links userscript yank-text-url')\n```\n\n#### Select with Rofi\n\nAvailable actions:\n\n- **Enter**: Copy\n- **Alt+1**: Copy Separately (useful if you use a clipboard manager)\n- **Alt+2**: Open\n- **Alt+3**: Download\n- **Shift+Enter**: Select multiple items\n- **Ctrl+Space**: Set selected item as input text \n- Custom entry is allowed\n\n```python\nconfig.bind(',sfu', 'spawn --userscript select Feeds')\nconfig.bind(',sft', 'spawn --userscript select Feeds --with-title')\nconfig.bind(',slu', 'spawn --userscript select Links')\nconfig.bind(',slt', 'spawn --userscript select Links --with-title')\nconfig.bind(',siu', 'spawn --userscript select Images')\nconfig.bind(',sit', 'spawn --userscript select Images --with-title')\nconfig.bind(',smu', 'spawn --userscript select MetaLinks')\nconfig.bind(',smt', 'spawn --userscript select MetaLinks --with-title')\nconfig.bind('\u003cAlt-s\u003e', 'spawn --userscript select', mode='command')\nconfig.bind(',sa', 'spawn --userscript select-scroll-to-anchor')\n```\n\n##### Select: Hint\n\n```python\nnon_containers = ['a', 'button', 'img', 'svg', 'input', 'textarea', 'code', 'pre',\n                  ''.join([f'h{n}' for n in range(1, 6)])]\nc.hints.selectors['containers'] = [\n    'body ' + ''.join([':not('+e+')' for e in non_containers])]\n\nconfig.bind(',seu', 'hint containers userscript select-links')\nconfig.bind(',set', 'hint containers userscript select-links-with-title')\n```\n\n##### Select: Dig (Get the URLs of all the segments a URL has)\n\n```python\nconfig.bind(',sdd', 'spawn --userscript dig --domain')\nconfig.bind(',sdu', 'spawn --userscript dig')\n```\n\n##### Select: Hint: Dig\n\n```python\nconfig.bind(',sdlu', 'hint links userscript dig')\nconfig.bind(',sdld', 'hint links userscript dig-domain')\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fciavash%2Fqutebrowser-userscripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fciavash%2Fqutebrowser-userscripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fciavash%2Fqutebrowser-userscripts/lists"}