{"action":"created","comment":{"url":"https://api.github.com/repos/ulfalizer/Kconfiglib/pulls/comments/216010412","pull_request_review_id":153407582,"id":216010412,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxNjAxMDQxMg==","diff_hunk":"@@ -48,13 +48,61 @@\n Color schemes\n =============\n \n-Setting the environment variable MENUCONFIG_THEME to 'aquatic' will enable an\n+It is possible to customize the color scheme by setting the MENUCONFIG_STYLE\n+environment variable. For example, setting it to 'aquatic' will enable an\n alternative, less yellow, more 'make menuconfig'-like color scheme, contributed\n by Mitja Horvat (pinkfluid).\n \n-See the _init_styles() function if you want to add additional themes. I'm happy\n-to take them in upstream.\n-\n+This is the current list of built-in styles:\n+    - default       classic Kconfiglib theme with a yellow accent\n+    - monochrome    colorless theme (uses only bold and standout) attributes,\n+                    this style is used if the terminal doesn't support colors\n+    - aquatic       blue titnted style loosely resembling the lxdialog theme\n+\n+It is possible to customize the current style by changing colors of UI\n+elements on the screen. This is the list of elements that can be stylized:\n+\n+    - path          Top row in the main display, with the menu path\n+    - separator     Separator lines between windows. Also used for the top line\n+                    in the symbol\n+    - list          List of items, e.g. the main display\n+    - selection     Style for the selected item\n+    - inv-list:     Like list, but for invisible items. Used in show-all mode.\n+    - inv-selection Like selection, but for invisible items. Used in show-all\n+                    mode.\n+    - help          Help text windows at the bottom of various fullscreen\n+                    dialogs\n+    - frame         Frame around dialog boxes\n+    - body          Body of dialog boxes\n+    - edit          Edit box in pop-up dialogs\n+    - jump-edit     Edit box in jump-to dialog\n+    - text          Symbol information text\n+\n+The color definition is a comma separated list of attributes:\n+\n+    - fg:COLOR      Set the foreground/background colors. COLOR can be one of\n+      * or *        the basic 16 colors (black, red, green, yellow, blue,\n+    - bg:COLOR      magenta,cyan, white and brighter versions, for example,\n+                    brightred). On terminals that support 256 color mode, you\n+                    can use the colorNN keyword, where NN is a number between 1\n+                    and 255.\n+\n+                    Note: On some terminals a bright version of the color implies\n+                    bold.\n+    - bold          Use bold text\n+    - underline     Use underline text\n+    - standout      Standout text attribute (reverse color)\n+\n+A keyword without the '=' is assumed to be a style template. The template name\n+is looked up in the built-in styles list and the style definition is expanded\n+in-place. With this, built-in stlyes can be used as basis for new styles.","path":"menuconfig.py","position":55,"original_position":55,"commit_id":"8b6cdde9ee4d866deae38bc74e57462c4b4975af","original_commit_id":"8b6cdde9ee4d866deae38bc74e57462c4b4975af","user":{"login":"ulfalizer","id":154768,"node_id":"MDQ6VXNlcjE1NDc2OA==","avatar_url":"https://avatars2.githubusercontent.com/u/154768?v=4","gravatar_id":"","url":"https://api.github.com/users/ulfalizer","html_url":"https://github.com/ulfalizer","followers_url":"https://api.github.com/users/ulfalizer/followers","following_url":"https://api.github.com/users/ulfalizer/following{/other_user}","gists_url":"https://api.github.com/users/ulfalizer/gists{/gist_id}","starred_url":"https://api.github.com/users/ulfalizer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ulfalizer/subscriptions","organizations_url":"https://api.github.com/users/ulfalizer/orgs","repos_url":"https://api.github.com/users/ulfalizer/repos","events_url":"https://api.github.com/users/ulfalizer/events{/privacy}","received_events_url":"https://api.github.com/users/ulfalizer/received_events","type":"User","site_admin":false},"body":"*styles","created_at":"2018-09-07T16:08:11Z","updated_at":"2018-09-07T16:12:42Z","html_url":"https://github.com/ulfalizer/Kconfiglib/pull/53#discussion_r216010412","pull_request_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/pulls/53","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/ulfalizer/Kconfiglib/pulls/comments/216010412"},"html":{"href":"https://github.com/ulfalizer/Kconfiglib/pull/53#discussion_r216010412"},"pull_request":{"href":"https://api.github.com/repos/ulfalizer/Kconfiglib/pulls/53"}}},"pull_request":{"url":"https://api.github.com/repos/ulfalizer/Kconfiglib/pulls/53","id":211887843,"node_id":"MDExOlB1bGxSZXF1ZXN0MjExODg3ODQz","html_url":"https://github.com/ulfalizer/Kconfiglib/pull/53","diff_url":"https://github.com/ulfalizer/Kconfiglib/pull/53.diff","patch_url":"https://github.com/ulfalizer/Kconfiglib/pull/53.patch","issue_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/issues/53","number":53,"state":"open","locked":false,"title":"menuconfig: Add support for custom color schemes (aka styles)","user":{"login":"pinkfluid","id":1593069,"node_id":"MDQ6VXNlcjE1OTMwNjk=","avatar_url":"https://avatars3.githubusercontent.com/u/1593069?v=4","gravatar_id":"","url":"https://api.github.com/users/pinkfluid","html_url":"https://github.com/pinkfluid","followers_url":"https://api.github.com/users/pinkfluid/followers","following_url":"https://api.github.com/users/pinkfluid/following{/other_user}","gists_url":"https://api.github.com/users/pinkfluid/gists{/gist_id}","starred_url":"https://api.github.com/users/pinkfluid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pinkfluid/subscriptions","organizations_url":"https://api.github.com/users/pinkfluid/orgs","repos_url":"https://api.github.com/users/pinkfluid/repos","events_url":"https://api.github.com/users/pinkfluid/events{/privacy}","received_events_url":"https://api.github.com/users/pinkfluid/received_events","type":"User","site_admin":false},"body":"I've added experimental basic themeing (styling) support to menuconfig.\r\n\r\nThe code is probably not the greatest, but might be a source of few ideas. I'm sending a pull request just so its easier to view the diff. Please close it at your leisure.\r\n\r\nThere are two sources of styles:\r\n- Kconfig files by using the '# $style: ....' keyword\r\n- The MENUCONFIG_STYLE environment variable\r\n\r\nBy default menuconfig starts off with the default theme. The default\r\ntheme can be changed by using the following keywords:\r\n\r\n        path, separator, list, selection, inv_list, inv_selection, help,\r\n        frame, body, edit, jump_to_edit, text\r\n\r\nColors can be define symbolically, for example: \"bold_bright_yellow_on_blue\"\r\n\r\nor using the 256-color scheme:\r\n\r\n\"underline_color226_on_color33\"\r\n\r\nA special keyword \"style=\" is used to use a builtin theme instead of the\r\ndefault.\r\n\r\nExamples:\r\n\r\nUse aquatic theme:\r\n\r\nMENUCONFIG_STYLE=\"style=aquatic\"\r\n\r\nUse a theme with a purple accent instead of yellow:\r\n\r\nMENUCONFIG_STYLE=\"selection=underline_bold_white_on_purple separator=white_on_purple\"\r\n\r\nAquatic theme with purple accent:\r\n\r\nMENUCONFIG_STYLE=\"style=aquatic selection=underline_bold_white_on_purple separator=white_on_purple\"\r\n\r\nKconfig example of the above:\r\n\r\n        # $style: style=aquatic\r\n        # $style: selection=underline_bold_white_on_purple\r\n        # $style: separator=white_on_purple\r\n\r\nThe style is parsed from all soruce Kconfig files, so the theme can\r\nreside in its own file and can be sourced at the beginning.\r\n\r\nIn the future, support for JSON files are something similar can be\r\nadded.","created_at":"2018-08-29T21:08:03Z","updated_at":"2018-09-07T16:12:42Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f8b91556fa0573ef1be0eab954ad18b4f0e229b9","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/pulls/53/commits","review_comments_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/pulls/53/comments","review_comment_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/issues/53/comments","statuses_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/statuses/8b6cdde9ee4d866deae38bc74e57462c4b4975af","head":{"label":"pinkfluid:menuconfig_style","ref":"menuconfig_style","sha":"8b6cdde9ee4d866deae38bc74e57462c4b4975af","user":{"login":"pinkfluid","id":1593069,"node_id":"MDQ6VXNlcjE1OTMwNjk=","avatar_url":"https://avatars3.githubusercontent.com/u/1593069?v=4","gravatar_id":"","url":"https://api.github.com/users/pinkfluid","html_url":"https://github.com/pinkfluid","followers_url":"https://api.github.com/users/pinkfluid/followers","following_url":"https://api.github.com/users/pinkfluid/following{/other_user}","gists_url":"https://api.github.com/users/pinkfluid/gists{/gist_id}","starred_url":"https://api.github.com/users/pinkfluid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pinkfluid/subscriptions","organizations_url":"https://api.github.com/users/pinkfluid/orgs","repos_url":"https://api.github.com/users/pinkfluid/repos","events_url":"https://api.github.com/users/pinkfluid/events{/privacy}","received_events_url":"https://api.github.com/users/pinkfluid/received_events","type":"User","site_admin":false},"repo":{"id":145525183,"node_id":"MDEwOlJlcG9zaXRvcnkxNDU1MjUxODM=","name":"Kconfiglib","full_name":"pinkfluid/Kconfiglib","owner":{"login":"pinkfluid","id":1593069,"node_id":"MDQ6VXNlcjE1OTMwNjk=","avatar_url":"https://avatars3.githubusercontent.com/u/1593069?v=4","gravatar_id":"","url":"https://api.github.com/users/pinkfluid","html_url":"https://github.com/pinkfluid","followers_url":"https://api.github.com/users/pinkfluid/followers","following_url":"https://api.github.com/users/pinkfluid/following{/other_user}","gists_url":"https://api.github.com/users/pinkfluid/gists{/gist_id}","starred_url":"https://api.github.com/users/pinkfluid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pinkfluid/subscriptions","organizations_url":"https://api.github.com/users/pinkfluid/orgs","repos_url":"https://api.github.com/users/pinkfluid/repos","events_url":"https://api.github.com/users/pinkfluid/events{/privacy}","received_events_url":"https://api.github.com/users/pinkfluid/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/pinkfluid/Kconfiglib","description":"A flexible Python 2/3 Kconfig implementation and library","fork":true,"url":"https://api.github.com/repos/pinkfluid/Kconfiglib","forks_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/forks","keys_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/teams","hooks_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/hooks","issue_events_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/issues/events{/number}","events_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/events","assignees_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/assignees{/user}","branches_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/branches{/branch}","tags_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/tags","blobs_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/git/refs{/sha}","trees_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/statuses/{sha}","languages_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/languages","stargazers_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/stargazers","contributors_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/contributors","subscribers_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/subscribers","subscription_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/subscription","commits_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/commits{/sha}","git_commits_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/git/commits{/sha}","comments_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/comments{/number}","issue_comment_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/issues/comments{/number}","contents_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/contents/{+path}","compare_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/merges","archive_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/downloads","issues_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/issues{/number}","pulls_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/pulls{/number}","milestones_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/milestones{/number}","notifications_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/labels{/name}","releases_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/releases{/id}","deployments_url":"https://api.github.com/repos/pinkfluid/Kconfiglib/deployments","created_at":"2018-08-21T07:36:12Z","updated_at":"2018-08-29T19:30:26Z","pushed_at":"2018-09-07T08:50:37Z","git_url":"git://github.com/pinkfluid/Kconfiglib.git","ssh_url":"git@github.com:pinkfluid/Kconfiglib.git","clone_url":"https://github.com/pinkfluid/Kconfiglib.git","svn_url":"https://github.com/pinkfluid/Kconfiglib","homepage":"","size":2912,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"isc","name":"ISC License","spdx_id":"ISC","url":"https://api.github.com/licenses/isc","node_id":"MDc6TGljZW5zZTEw"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ulfalizer:master","ref":"master","sha":"2be02fac785272e3bcea2cef619954535dc9abe0","user":{"login":"ulfalizer","id":154768,"node_id":"MDQ6VXNlcjE1NDc2OA==","avatar_url":"https://avatars2.githubusercontent.com/u/154768?v=4","gravatar_id":"","url":"https://api.github.com/users/ulfalizer","html_url":"https://github.com/ulfalizer","followers_url":"https://api.github.com/users/ulfalizer/followers","following_url":"https://api.github.com/users/ulfalizer/following{/other_user}","gists_url":"https://api.github.com/users/ulfalizer/gists{/gist_id}","starred_url":"https://api.github.com/users/ulfalizer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ulfalizer/subscriptions","organizations_url":"https://api.github.com/users/ulfalizer/orgs","repos_url":"https://api.github.com/users/ulfalizer/repos","events_url":"https://api.github.com/users/ulfalizer/events{/privacy}","received_events_url":"https://api.github.com/users/ulfalizer/received_events","type":"User","site_admin":false},"repo":{"id":4978835,"node_id":"MDEwOlJlcG9zaXRvcnk0OTc4ODM1","name":"Kconfiglib","full_name":"ulfalizer/Kconfiglib","owner":{"login":"ulfalizer","id":154768,"node_id":"MDQ6VXNlcjE1NDc2OA==","avatar_url":"https://avatars2.githubusercontent.com/u/154768?v=4","gravatar_id":"","url":"https://api.github.com/users/ulfalizer","html_url":"https://github.com/ulfalizer","followers_url":"https://api.github.com/users/ulfalizer/followers","following_url":"https://api.github.com/users/ulfalizer/following{/other_user}","gists_url":"https://api.github.com/users/ulfalizer/gists{/gist_id}","starred_url":"https://api.github.com/users/ulfalizer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ulfalizer/subscriptions","organizations_url":"https://api.github.com/users/ulfalizer/orgs","repos_url":"https://api.github.com/users/ulfalizer/repos","events_url":"https://api.github.com/users/ulfalizer/events{/privacy}","received_events_url":"https://api.github.com/users/ulfalizer/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ulfalizer/Kconfiglib","description":"A flexible Python 2/3 Kconfig implementation and library","fork":false,"url":"https://api.github.com/repos/ulfalizer/Kconfiglib","forks_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/forks","keys_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/teams","hooks_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/hooks","issue_events_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/issues/events{/number}","events_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/events","assignees_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/assignees{/user}","branches_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/branches{/branch}","tags_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/tags","blobs_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/git/refs{/sha}","trees_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/statuses/{sha}","languages_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/languages","stargazers_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/stargazers","contributors_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/contributors","subscribers_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/subscribers","subscription_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/subscription","commits_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/commits{/sha}","git_commits_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/git/commits{/sha}","comments_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/comments{/number}","issue_comment_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/issues/comments{/number}","contents_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/contents/{+path}","compare_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/merges","archive_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/downloads","issues_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/issues{/number}","pulls_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/pulls{/number}","milestones_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/milestones{/number}","notifications_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/labels{/name}","releases_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/releases{/id}","deployments_url":"https://api.github.com/repos/ulfalizer/Kconfiglib/deployments","created_at":"2012-07-10T18:59:17Z","updated_at":"2018-09-05T10:22:36Z","pushed_at":"2018-09-07T08:50:39Z","git_url":"git://github.com/ulfalizer/Kconfiglib.git","ssh_url":"git@github.com:ulfalizer/Kconfiglib.git","clone_url":"https://github.com/ulfalizer/Kconfiglib.git","svn_url":"https://github.com/ulfalizer/Kconfiglib","homepage":"","size":3079,"stargazers_count":81,"watchers_count":81,"language":"Python","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":36,"mirror_url":null,"archived":false,"open_issues_count":1,"license":{"key":"isc","name":"ISC License","spdx_id":"ISC","url":"https://api.github.com/licenses/isc","node_id":"MDc6TGljZW5zZTEw"},"forks":36,"open_issues":1,"watchers":81,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ulfalizer/Kconfiglib/pulls/53"},"html":{"href":"https://github.com/ulfalizer/Kconfiglib/pull/53"},"issue":{"href":"https://api.github.com/repos/ulfalizer/Kconfiglib/issues/53"},"comments":{"href":"https://api.github.com/repos/ulfalizer/Kconfiglib/issues/53/comments"},"review_comments":{"href":"https://api.github.com/repos/ulfalizer/Kconfiglib/pulls/53/comments"},"review_comment":{"href":"https://api.github.com/repos/ulfalizer/Kconfiglib/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ulfalizer/Kconfiglib/pulls/53/commits"},"statuses":{"href":"https://api.github.com/repos/ulfalizer/Kconfiglib/statuses/8b6cdde9ee4d866deae38bc74e57462c4b4975af"}},"author_association":"NONE"}}
{"actor":{"display_login":"ulfalizer"}}