{"id":19855757,"url":"https://github.com/jcs-elpa/better-scroll","last_synced_at":"2025-05-02T01:31:12.050Z","repository":{"id":118602676,"uuid":"281923382","full_name":"jcs-elpa/better-scroll","owner":"jcs-elpa","description":"Improve user experience when scrolling window.","archived":false,"fork":false,"pushed_at":"2025-04-23T00:05:56.000Z","size":4972,"stargazers_count":14,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-23T01:20:03.356Z","etag":null,"topics":["better","emacs","experience","improve","improvement","scroll","scrolling","user-experience"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jcs-elpa.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null},"funding":{"github":["jcs-elpa","jcs090218"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-07-23T10:39:12.000Z","updated_at":"2025-04-23T00:06:00.000Z","dependencies_parsed_at":"2024-02-01T06:23:21.457Z","dependency_job_id":"c97d1880-50a4-4eb6-be62-4584c5a2fa80","html_url":"https://github.com/jcs-elpa/better-scroll","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcs-elpa%2Fbetter-scroll","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcs-elpa%2Fbetter-scroll/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcs-elpa%2Fbetter-scroll/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcs-elpa%2Fbetter-scroll/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jcs-elpa","download_url":"https://codeload.github.com/jcs-elpa/better-scroll/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251969375,"owners_count":21673191,"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":["better","emacs","experience","improve","improvement","scroll","scrolling","user-experience"],"created_at":"2024-11-12T14:13:38.825Z","updated_at":"2025-05-02T01:31:12.045Z","avatar_url":"https://github.com/jcs-elpa.png","language":"Emacs Lisp","funding_links":["https://github.com/sponsors/jcs-elpa","https://github.com/sponsors/jcs090218","https://www.paypal.me/jcs090218","https://www.patreon.com/jcs090218"],"categories":[],"sub_categories":[],"readme":"[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![MELPA](https://melpa.org/packages/better-scroll-badge.svg)](https://melpa.org/#/better-scroll)\n[![MELPA Stable](https://stable.melpa.org/packages/better-scroll-badge.svg)](https://stable.melpa.org/#/better-scroll)\n\n# better-scroll\n\u003e Improve user experience when scrolling window.\n\n[![CI](https://github.com/jcs-elpa/better-scroll/actions/workflows/test.yml/badge.svg)](https://github.com/jcs-elpa/better-scroll/actions/workflows/test.yml)\n\nNormally scroll up/down will move the cursor to the window boundary corresponding to\nthe direction on how the window scrolls. This package provides it's own scrolling\nfunctions that will preserve cursor's position.\n\n| Normal                       | With Better Scroll                  |\n|:----------------------------:|:-----------------------------------:|\n|\u003cimg src=\"./etc/scroll.gif\"/\u003e | \u003cimg src=\"./etc/better-scroll.gif\"/\u003e|\n\n## 🔧 Usage\n\nThere are total 4 interactive functions in this package.\n\n- `better-scroll-down`\n- `better-scroll-up`\n- `better-scroll-down-other-window`\n- `better-scroll-up-other-window`\n\nI will recommend to bind these function to global keys like the snippet below.\n\n```el\n(define-key global-map (kbd \"\u003cprior\u003e\") #better-scroll-down)\n(define-key global-map (kbd \"\u003cnext\u003e\") #better-scroll-up)\n\n(define-key global-map (kbd \"S-\u003cprior\u003e\") #better-scroll-down-other-window)\n(define-key global-map (kbd \"S-\u003cnext\u003e\") #better-scroll-up-other-window)\n```\n\n*P.S. `\u003cprior\u003e` and `\u003cnext\u003e` is corresponds to `page up` and `page down` key.*\n\n### Aligment\n\nYou can set the cursor aligment by tweaking `better-scroll-align-type` variable.\n\n```el\n(setq better-scroll-align-type 'center)  ; 'center or 'relative\n```\n\n## 🛠️ Contribute\n\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)\n[![Elisp styleguide](https://img.shields.io/badge/elisp-style%20guide-purple)](https://github.com/bbatsov/emacs-lisp-style-guide)\n[![Donate on paypal](https://img.shields.io/badge/paypal-donate-1?logo=paypal\u0026color=blue)](https://www.paypal.me/jcs090218)\n[![Become a patron](https://img.shields.io/badge/patreon-become%20a%20patron-orange.svg?logo=patreon)](https://www.patreon.com/jcs090218)\n\nIf you would like to contribute to this project, you may either\nclone and make pull requests to this repository. Or you can\nclone the project and establish your own branch of this tool.\nAny methods are welcome!\n\n### 🔬 Development\n\nTo run the test locally, you will need the following tools:\n\n- [Eask](https://emacs-eask.github.io/)\n- [Make](https://www.gnu.org/software/make/) (optional)\n\nInstall all dependencies and development dependencies:\n\n```sh\neask install-deps --dev\n```\n\nTo test the package's installation:\n\n```sh\neask package\neask install\n```\n\nTo test compilation:\n\n```sh\neask compile\n```\n\n**🪧 The following steps are optional, but we recommend you follow these lint results!**\n\nThe built-in `checkdoc` linter:\n\n```sh\neask lint checkdoc\n```\n\nThe standard `package` linter:\n\n```sh\neask lint package\n```\n\n*📝 P.S. For more information, find the Eask manual at https://emacs-eask.github.io/.*\n\n## ⚜️ License\n\nThis program is free software; you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program.  If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n\nSee [`LICENSE`](./LICENSE.txt) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcs-elpa%2Fbetter-scroll","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjcs-elpa%2Fbetter-scroll","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcs-elpa%2Fbetter-scroll/lists"}