{"id":33251358,"url":"https://github.com/barnabycolby/MMM-Carousel","last_synced_at":"2025-11-21T17:02:05.628Z","repository":{"id":50526787,"uuid":"65851385","full_name":"barnabycolby/MMM-Carousel","owner":"barnabycolby","description":"Displays a single magic mirror module at a time, rotating through the list of configured modules in a carousel-like fashion.","archived":false,"fork":false,"pushed_at":"2024-03-25T23:37:56.000Z","size":13,"stargazers_count":98,"open_issues_count":19,"forks_count":33,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-06-29T10:33:38.973Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/barnabycolby.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}},"created_at":"2016-08-16T20:28:36.000Z","updated_at":"2024-03-14T05:42:04.000Z","dependencies_parsed_at":"2024-01-15T17:39:15.608Z","dependency_job_id":"87ab67d2-f7f4-4ae5-8a7f-d71e19db7349","html_url":"https://github.com/barnabycolby/MMM-Carousel","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/barnabycolby/MMM-Carousel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barnabycolby%2FMMM-Carousel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barnabycolby%2FMMM-Carousel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barnabycolby%2FMMM-Carousel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barnabycolby%2FMMM-Carousel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/barnabycolby","download_url":"https://codeload.github.com/barnabycolby/MMM-Carousel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barnabycolby%2FMMM-Carousel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285655011,"owners_count":27209077,"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-11-21T02:00:06.175Z","response_time":61,"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":[],"created_at":"2025-11-17T00:00:30.828Z","updated_at":"2025-11-21T17:02:05.617Z","avatar_url":"https://github.com/barnabycolby.png","language":"JavaScript","funding_links":[],"categories":["Mirror Utilities"],"sub_categories":[],"readme":"# MMM-Carousel\n\u003e This is an extension to the [MagicMirror](https://github.com/MichMich/MagicMirror) project, allowing the modules to be displayed in a rotating carousel instead of displaying all of them at once. There are three modes available:\n* `'global'` - All modules not cited in the `ignoreModules` config are rotated, displaying only one at a time for the duration of `transitionInterval`.  This is particularly useful on small screens where there may not be enough space to display several components at once. \n* `'positional'` - Modules are grouped by `position` setting and rotated within a position except for modules listed in that position's `ignoreModules`, an `overrideTransitionInterval` can also be set to rotated different position at different speeds.\n* `'slides'` - groups of modules can be assigned to be displayed at the same time (regardless of `position`), an unlimited number of these \"slide\" groups can be set up.\n\n[![Build Status](https://travis-ci.org/barnabycolby/MMM-Carousel.svg?branch=master)](https://travis-ci.org/barnabycolby/MMM-Carousel)\n\n## Installation\nRun these commands at the root of your magic mirror install.\n\n```shell\ncd modules\ngit clone https://github.com/barnabycolby/MMM-Carousel\n```\n\n## Using the module\nTo use this module, add the following configuration block to the modules array in the `config/config.js` file:\n```js\nvar config = {\n    modules: [\n        {\n            module: 'MMM-Carousel',\n            config: {\n                // See below for configurable options\n            }\n        }\n    ]\n}\n```\n\nNote that a `position` setting is not required.\n\n### Configuration options\nThe following properties can be configured:\n\n\u003ctable width=\"100%\"\u003e\n\t\u003c!-- why, markdown... --\u003e\n\t\u003cthead\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003cth\u003eOption\u003c/th\u003e\n\t\t\t\u003cth width=\"100%\"\u003eDescription\u003c/th\u003e\n\t\t\u003c/tr\u003e\n\t\u003cthead\u003e\n\t\u003ctbody\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003emode\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003cul\u003e\u003cli\u003e\u003ccode\u003e'global'\u003c/code\u003e - All modules not cited in the \u003ccode\u003eignoreModules\u003c/code\u003e config are rotated, displaying only one at a time for the duration of \u003ccode\u003etransitionInterval\u003c/code\u003e.  This is particularly useful on small screens where there may not be enough space to display several components at once. \n                \u003c/li\u003e\u003cli\u003e\u003ccode\u003e'positional'\u003c/code\u003e - Modules are grouped by \u003ccode\u003eposition\u003c/code\u003e setting and rotated within a position except for modules listed in that position's \u003ccode\u003eignoreModules\u003c/code\u003e, an \u003ccode\u003eoverrideTransitionInterval\u003c/code\u003e can also be set to rotated different position at different speeds.\n                \u003c/li\u003e\u003cli\u003e\u003ccode\u003e'slides'\u003c/code\u003e - groups of modules can be assigned to be displayed at the same time (regardless of \u003ccode\u003eposition\u003c/code\u003e), an unlimited number of these \"slide\" groups can be set up.\u003c/li\u003e\u003c/ul\u003e\n\t\t\t\t\u003cbr\u003e \u003cbr\u003e This value is \u003cb\u003eOPTIONAL\u003c/b\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003ePossible values:\u003c/b\u003e \u003ccode\u003e'global'\u003c/code\u003e or \u003ccode\u003e'positional'\u003c/code\u003e or \u003ccode\u003e'slides'\u003c/code\u003e\n                \u003cbr\u003e\u003cb\u003eDefault value:\u003c/b\u003e \u003ccode\u003e'global'\u003c/code\u003e\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003etransitionInterval\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003eThe number of milliseconds to display each module for.\n\t\t\t\t\u003cbr\u003e \u003cbr\u003e This value is \u003cb\u003eOPTIONAL\u003c/b\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003ePossible values:\u003c/b\u003e Any valid \u003ccode\u003eint\u003c/code\u003e\n                \u003cbr\u003e\u003cb\u003eDefault value:\u003c/b\u003e \u003ccode\u003e10000\u003c/code\u003e\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\u003ccode\u003eignoreModules\u003c/code\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003eA list of module names whom should not be considered as part of the carousel. For example, the `alert` module should be able to display a notification at any time, by ignoring it we can prevent the plugin from hiding any notifications. \u003cb\u003e NOTE: is only used in \u003ccode\u003e'global'\u003c/code\u003e and \u003ccode\u003e'slides'\u003c/code\u003e modes.  Ignored modules in \u003ccode\u003e'slides'\u003c/code\u003e mode are shown on every slide.\u003c/b\u003e.\n\t\t\t\t\u003cbr\u003e \u003cbr\u003e This value is \u003cb\u003eOPTIONAL\u003c/b\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003ePossible values:\u003c/b\u003e \u003ccode\u003eString array\u003c/code\u003e\n                \u003cbr\u003e\u003cb\u003eDefault value:\u003c/b\u003e \u003ccode\u003e[]\u003c/code\u003e\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e\n\t\t\t    \u003ccode\u003etop_bar\u003c/code\u003e\n\t\t\t    \u003cbr\u003e\u003ccode\u003etop_left\u003c/code\u003e\n\t\t\t    \u003cbr\u003e\u003ccode\u003etop_center\u003c/code\u003e\n\t\t\t    \u003cbr\u003e\u003ccode\u003etop_right\u003c/code\u003e\n\t\t\t    \u003cbr\u003e\u003ccode\u003eupper_third\u003c/code\u003e\n\t\t\t    \u003cbr\u003e\u003ccode\u003emiddle_center\u003c/code\u003e\n\t\t\t    \u003cbr\u003e\u003ccode\u003elower_third\u003c/code\u003e\n\t\t\t    \u003cbr\u003e\u003ccode\u003ebottom_left\u003c/code\u003e\n\t\t\t    \u003cbr\u003e\u003ccode\u003ebottom_center\u003c/code\u003e\n\t\t\t    \u003cbr\u003e\u003ccode\u003ebottom_right\u003c/code\u003e\n\t\t\t    \u003cbr\u003e\u003ccode\u003ebottom_bar\u003c/code\u003e\n\t\t\t\u003c/td\u003e\n\t\t\t\u003ctd\u003eDetermines if this position should be rotated and which modules in this position should be ignored.  \u003cb\u003eNOTE: is only used when \u003ccode\u003emode\u003c/code\u003e is \u003ccode\u003e'positional'\u003c/code\u003e otherwise ignored\u003c/b\u003e.\n\t\t\t\t\u003cbr\u003e \u003cbr\u003e This value is \u003cb\u003eOPTIONAL\u003c/b\u003e\n\t\t\t\t\u003cbr\u003e\u003cb\u003ePossible values:\u003c/b\u003e Object with keys;\n\t\t\t\t\u003cbr\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; \u003ccode\u003eenabled\u003c/code\u003e, a boolean to rotate this position or not,\n\t\t\t\t\u003cbr\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; \u003ccode\u003eignoredModules\u003c/code\u003e, a \u003ccode\u003eString array\u003c/code\u003e of modules names to ignore.\n\t\t\t\t\u003cbr\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; \u003ccode\u003eoverrideTransitionInterval\u003c/code\u003e, a \u003ccode\u003eint\u003c/code\u003e a transition time for this position only.\n                \u003cbr\u003e\u003cb\u003eDefault value:\u003c/b\u003e \u003ccode\u003e{enabled: false, ignoreModules: [], overrideTransitionInterval: 10000}\u003c/code\u003e\n\t\t\t\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n        \t\t\t\u003ctd\u003e\u003ccode\u003eslides\u003c/code\u003e\u003c/td\u003e\n        \t\t\t\u003ctd\u003eAn array of string arrays.  Each string array is a list of content for an individual slide.  The slides will be rotated as a complete set using the \u003ccode\u003etransitionInterval\u003c/code\u003e setting.  Ingnored modules (\u003ccode\u003eignoreModules\u003c/code\u003e) will be diplayed on all slides.\n        \t\t\t\t\u003cbr\u003e \u003cbr\u003e This value is \u003cb\u003eOPTIONAL\u003c/b\u003e\n        \t\t\t\t\u003cbr\u003e\u003cb\u003ePossible values:\u003c/b\u003e \u003ccode\u003earray of String array\u003c/code\u003e\n                        \u003cbr\u003e\u003cb\u003eDefault value:\u003c/b\u003e \u003ccode\u003e[[]]\u003c/code\u003e\n        \t\t\t\u003c/td\u003e\n        \t\t\u003c/tr\u003e\n\t\u003c/tbody\u003e\n\u003c/table\u003e\n\n#### Example - Global Carousel\n```javascript\nvar config = {\n    modules: [\n        {\n            module: 'MMM-Carousel',\n            config: {\n                transitionInterval: 10000,\n                ignoreModules: ['clock'],\n                mode: 'global'\n            }\n        }\n    ]\n}\n```\n#### Example - Positional Carousel\n```javascript\nvar config = {\n    modules: [\n        {\n            module: 'MMM-Carousel',\n            config: {\n                transitionInterval: 10000,\n                ignoreModules: [],\n                mode: 'positional',\n                top_left: {enabled: true, ignoreModules: [], overrideTransitionInterval: 15000},\n                top_right: {enabled: true, ignoreModules: ['currentweather']}\n            }\n        }\n    ]\n}\n```\n#### Example - Slides Carousel\n```javascript\nvar config = {\n    modules: [\n        {\n            module: 'MMM-Carousel',\n            config: {\n                transitionInterval: 10000,\n                ignoreModules: ['clock', 'alert'],\n                mode: 'slides',\n                slides: [\n                    ['calendar', 'compliments', 'currentweather'],\n                    ['weatherforecast', 'MMM-Trello', 'planetrise', 'newsfeed'],\n                    ['MMM-fitbit']\n                ]\n            }\n        }\n    ]\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarnabycolby%2FMMM-Carousel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbarnabycolby%2FMMM-Carousel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarnabycolby%2FMMM-Carousel/lists"}