{"id":19733735,"url":"https://github.com/h2337/sysm","last_synced_at":"2025-08-13T06:41:43.361Z","repository":{"id":65267584,"uuid":"589155442","full_name":"h2337/sysm","owner":"h2337","description":"sysm makes your system play custom sounds when any configured system or external event happens","archived":false,"fork":false,"pushed_at":"2025-07-31T21:55:23.000Z","size":995,"stargazers_count":215,"open_issues_count":0,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-08-04T08:58:44.247Z","etag":null,"topics":["audio","linux","music","system-monitor","system-monitoring"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/h2337.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-01-15T08:50:41.000Z","updated_at":"2025-08-01T12:47:54.000Z","dependencies_parsed_at":"2024-12-18T20:43:31.646Z","dependency_job_id":null,"html_url":"https://github.com/h2337/sysm","commit_stats":null,"previous_names":["h2337/sysm","jafarlihi/sysm","hikmat2337/sysm"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/h2337/sysm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h2337%2Fsysm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h2337%2Fsysm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h2337%2Fsysm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h2337%2Fsysm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/h2337","download_url":"https://codeload.github.com/h2337/sysm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h2337%2Fsysm/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270197927,"owners_count":24543466,"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-13T02:00:09.904Z","response_time":66,"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":["audio","linux","music","system-monitor","system-monitoring"],"created_at":"2024-11-12T00:33:18.532Z","updated_at":"2025-08-13T06:41:43.304Z","avatar_url":"https://github.com/h2337.png","language":"C++","readme":"\u003cimg align=\"right\" src=\"https://raw.githubusercontent.com/h2337/sysm/refs/heads/master/logo.svg\" width=\"250\" height=\"250\"\u003e\n\n# sysm\n\nsysm (**sys**tem **m**usic) lets you configure specific sounds to be played on any arbitrary internal system event or an external event. This can give you visibility into your system while you are working (such as CPU/RAM/disk/network usage, audit events, etc.) without taking up space in your screen or notifications about external events such as something changing in some arbitrary website.\n\n## Concepts\n\nRules require you to specify one \"source\" and one \"type\".\n\n\"source\" is basically the information source, where the data will be fetched from, such as \"shell_source\" (runs an arbitrary shell command and returns the output), \"file_column\" (fetches specified column from a file), etc.\n\n\"type\" controls how and when the audio will be played, for example \"on_threshold_cross\" (when value crosses given threshold), \"on_match_when_past_no_match\" (when value matches given regex pattern when it didn't match it last tick), \"while_delta_above_threshold\" (while delta between last tick's value and current value is above given threshold), etc.\n\nNew types and sources can be added by subclassing `Source` and `Type`. Contributions are welcome!\n\n## Installation\n\nInstall the SFML dependency:\n\n- Arch Linux:\n```\nsudo pacman -S sfml\n```\n\n- Ubuntu:\n```\nsudo apt install libsfml-dev\n```\n\nClone, build \u0026 install:\n```\ngit clone https://github.com/h2337/sysm --depth=1 \u0026\u0026 cd sysm \u0026\u0026 make install\n```\n\nRun:\n```\n./sysm.elf \u0026\n```\n\n## Configuration\n\nSample config:\n```\n[high_disk_write_speed]\nenabled = true\ndescription = \"While current disk write speed is above threshold\"\nsleep = 1000\nstart_music = \"~/.config/sysm/audio/processing_1_start.wav\"\ncontent_music = \"~/.config/sysm/audio/processing_1.wav\"\nend_music = \"~/.config/sysm/audio/processing_1_end.wav\"\ncontent_music_volume = 75\nsource = file_column\nfile = \"/sys/block/sda/stat\"\ncolumn = 6\ntype = while_delta_above_threshold\nthreshold = 5000\n\n[high_cpu_usage]\nenabled = true\ndescription = \"When current CPU usage crosses above threshold\"\nsleep = 3000\ncontent_music = \"~/.config/sysm/audio/beeps_1.wav\"\nsource = shell\ncommand = \"awk '{u=$2+$4; t=$2+$4+$5; if (NR==1){u1=u; t1=t;} else print int(($2+$4-u1) * 100 / (t-t1)); }' \u003c(grep 'cpu ' /proc/stat) \u003c(sleep 1;grep 'cpu ' /proc/stat)\"\ntype = on_threshold_cross\nthreshold = 90\n\n[any_conn_estab_for_first_time]\nenabled = true\ndescription = \"When any network connection establishes when no network connection exists\"\nsleep = 1000\ncontent_music = \"~/.config/sysm/audio/connection_established_1.wav\"\ncontent_music_volume = 25\nsource = shell\ncommand = \"ss -atun4 | grep ESTAB\"\ntype = on_match_when_past_not_match\nmatch = \".*\\S.*\"\n\n[specific_ip_conn_estab_for_first_time]\nenabled = true\ndescription = \"When specified IP network connection establishes when it didn't exist before\"\nsleep = 1000\ncontent_music = \"~/.config/sysm/audio/connection_established_1.wav\"\ncontent_music_volume = 25\nsource = shell\ncommand = \"ss -atun4 | grep ESTAB | grep 192.168.23.2\"\ntype = on_match_when_past_not_match\nmatch = \".*\\S.*\"\n\n[github_star_received]\nenabled = false\ndescription = \"When someone stars one of your repositories\"\nsleep = 10000\ncontent_music = \"~/.config/sysm/audio/beeps_2.wav\"\nsource = shell\ncommand = \"TODO\"\ntype = on_value_change\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh2337%2Fsysm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fh2337%2Fsysm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh2337%2Fsysm/lists"}