{"id":26232569,"url":"https://github.com/bulletmark/raise-or-run","last_synced_at":"2025-08-03T14:11:06.172Z","repository":{"id":137097903,"uuid":"148101791","full_name":"bulletmark/raise-or-run","owner":"bulletmark","description":"Linux shell script to raise app window, or run app if window not already open","archived":false,"fork":false,"pushed_at":"2022-09-06T00:53:54.000Z","size":5,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-22T10:41:56.868Z","etag":null,"topics":["bash","bash-script","wmctrl"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bulletmark.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2018-09-10T05:06:19.000Z","updated_at":"2024-11-03T00:26:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"2bdce606-9793-4613-986d-0ed003ff5dc6","html_url":"https://github.com/bulletmark/raise-or-run","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/bulletmark/raise-or-run","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulletmark%2Fraise-or-run","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulletmark%2Fraise-or-run/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulletmark%2Fraise-or-run/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulletmark%2Fraise-or-run/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bulletmark","download_url":"https://codeload.github.com/bulletmark/raise-or-run/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulletmark%2Fraise-or-run/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268554909,"owners_count":24269062,"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","status":"online","status_checked_at":"2025-08-03T02:00:12.545Z","response_time":2577,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bash","bash-script","wmctrl"],"created_at":"2025-03-13T00:37:31.377Z","updated_at":"2025-08-03T14:11:06.156Z","avatar_url":"https://github.com/bulletmark.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"## RAISE-OR-RUN\n[![AUR](https://img.shields.io/aur/version/raise-or-run)](https://aur.archlinux.org/packages/raise-or-run/)\n\nThis is is a simple bash script which is called with an argument app and\nfile which you want to open. If there is already a window open with that\napp's window manager class for the specific file you want to open then\nthat window is raised and given focus, otherwise if there is no window\nalready open for that file, then the app is started with that file as\nthe argument. It can be used with multiple independent files, each opened in\nparallel in their own app window. This script uses\n[wmctrl](https://sites.google.com/site/tstyblo/wmctrl) to determine the\nclasses and file names of already open windows, and also to select an\nopen window.\n\nNote that this tool works only for applications running on Xorg. It does\nnot work for Wayland native applications. Of course, it does work for\nXorg applications running on Wayland, via XWayland.\n\nThe latest version and documentation is available at\nhttp://github.com/bulletmark/raise-or-run.\n\n### INSTALLATION\n\nNOTE: Arch users can just install [raise-or-run from the\nAUR](https://aur.archlinux.org/packages/raise-or-run/) and skip to the next\nsection. Otherwise, do the following.\n\nYou require the [bash](https://www.gnu.org/software/bash/) shell and the\n[wmctrl](https://sites.google.com/site/tstyblo/wmctrl)\npackage. Then type:\n\n    git clone http://github.com/bulletmark/raise-or-run\n    cd raise-or-run\n    sudo make install\n\n### USAGE\n\nI use this for the [KMyMoney](https://kmymoney.org/) program which\n[incorrectly handles multiple files](https://bugs.kde.org/show_bug.cgi?id=350850).\nIf you click on a file which is already open the it tries to open the\nfile again and creates an error. So I change the `Exec` line in the\n`/usr/usr/applications/org.kde.kmymoney.desktop` file from:\n\n    Exec=kmymoney %u\n\nto:\n\n    Exec=/usr/bin/raise-or-run kmymoney %u\n\nNow when I click on a [KMyMoney](https://kmymoney.org/) file, it jumps\nto an open window if one exists for that file, or if not then it starts\nthe app to open that file in a new window. This works also when you have\nmultiple but independent KMyMoney files being opened in multiple\nparallel windows.\n\n    Usage: raise-or-run [-options] \u003capp\u003e [file]\n    Options\n    -c \u003cWM class\u003e Use specified class instead of assuming app name as WM class\n\n### UPGRADE\n\n    cd raise-or-run  # Source dir, as above\n    git pull\n    sudo make install\n\n### UNINSTALL\n\n    cd raise-or-run  # Source dir, as above\n    sudo make uninstall\n\n### LICENSE\n\nCopyright (C) 2018 Mark Blakeney. This program is distributed under the\nterms of the GNU General Public License.\n\nThis program is free software: you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation, either version 3 of the License, or any later\nversion.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License at \u003chttp://www.gnu.org/licenses/\u003e for more details.\n\n\u003c!-- vim: se ai syn=markdown: --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbulletmark%2Fraise-or-run","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbulletmark%2Fraise-or-run","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbulletmark%2Fraise-or-run/lists"}