{"id":26878870,"url":"https://github.com/logicify/xrandr-conf","last_synced_at":"2025-03-31T12:30:04.661Z","repository":{"id":25001690,"uuid":"28420663","full_name":"Logicify/xrandr-conf","owner":"Logicify","description":"Simple utility for managing managing different xrandr configurations with ease ","archived":false,"fork":false,"pushed_at":"2015-01-02T16:48:52.000Z","size":320,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-15T03:17:55.064Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Logicify.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}},"created_at":"2014-12-23T21:31:46.000Z","updated_at":"2015-01-02T16:48:52.000Z","dependencies_parsed_at":"2022-08-20T20:40:53.771Z","dependency_job_id":null,"html_url":"https://github.com/Logicify/xrandr-conf","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Logicify%2Fxrandr-conf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Logicify%2Fxrandr-conf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Logicify%2Fxrandr-conf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Logicify%2Fxrandr-conf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Logicify","download_url":"https://codeload.github.com/Logicify/xrandr-conf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246468620,"owners_count":20782538,"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":[],"created_at":"2025-03-31T12:30:02.417Z","updated_at":"2025-03-31T12:30:04.652Z","avatar_url":"https://github.com/Logicify.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"profile-conf\n===========\n\nSimple DE independent utility for managing managing different system configurations depending on conditions.\n\nTypical use case\n----------------\n\nLet's imagine you have a few different monitor configurations in various locations:\n\n 1. At home you have one monitor connected to HDMI port of your laptop\n 1. At the office you have dock station with 2 monitors connected\n 1. Also you often need to disconnect all external displays and use just laptop's screen\n  \nReconfiguring with ```xrandr``` each time you change location can be really annoying especially if you have more \nthen 3 options.\n\nThe Idea\n--------\n\nBasically all you need is to define how exactly you would like to configure your devices depending on \n_current system state_.\nLet's call this **Profile**. Profile contains of 2 parts: conditions which must be satisfied to activate this profile \nand actual system configuration which should be applied when profile is activated. \nprofile-conf will find suitable profiles for current system state and apply configuration for each one.\n\nLet's look on the profile-conf configuration file which defines profiles for examples from previous section.\n\n```yaml\nprofiles:\n  SingleExternalMonitor:\n    name: \"External monitor\"\n    when:\n      connected: \"$only(eDP1, HDMI1)\"\n    then:\n      - configure-displays:\n          \"*\":\n            state: \"off\"\n          HDMI1:\n            mode: '$preferredResolution'\n  InternalDisplayOnly:\n    when:\n      connected: \"$only(eDP1)\"\n    then:\n      - configure-displays:\n          \"*\":\n            state: \"off\"\n          eDP1:\n            mode: \"$preferredResolution\"\n            position: '0x0'\n            primary: true\n  2Monitors:\n    when:\n      connected: \"HDMI1, HDMI2\"\n    then:\n      - configure-displays:\n          \"*\":\n            state: \"off\"\n          HDMI1:\n            mode: \"$preferredResolution\"\n            position: '0x0'\n            primary: true\n          HDMI2:\n            mode: \"$preferredResolution\"\n            position: 'right-of HDMI1'\n            primary: true\n```\n\nUsage\n-----\n\n1. The first thing you need is config file describing your profiles (Documentation is not available yet, sorry)\n2. Run ```profile-conf``` each time you need to change profile or add _udev_ rule to call it automatically.\n3. Optionally bind some global keyboard hotkey to run ```profile-conf``` executable. This can be pretty handy.\n\nDisclaimer\n----------\n\nThis software is in very early stage. Documentation is not ready yet as well as many of the features which should be ready.\nHowever any feedback is more than appreciated.\n\nCredits\n-------\nDmitry Berezovsky, Logicify (http://logicify.com/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogicify%2Fxrandr-conf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flogicify%2Fxrandr-conf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogicify%2Fxrandr-conf/lists"}