All Projects → darkstego → wakib-emacs

darkstego / wakib-emacs

Licence: other
Emacs Starter Kit based on Wakib keybindings

Programming Languages

emacs lisp
2029 projects

Projects that are alternatives of or similar to wakib-emacs

birthday.py
🎉 A simple discord bot in discord.py that helps you understand the usage of SQL databases
Stars: ✭ 30 (+7.14%)
Mutual labels:  starter-kit, easy-to-use
wordpress-project
Generic project structure for WordPress website industrialisation.
Stars: ✭ 28 (+0%)
Mutual labels:  starter-kit
create-react-app-starter
CRA + typeless starter
Stars: ✭ 21 (-25%)
Mutual labels:  starter-kit
simple-react-native-starter
Simple ReactNative starter with an opinionated folder structure for mobile development.
Stars: ✭ 73 (+160.71%)
Mutual labels:  starter-kit
dynamic-app
Dynamic Forms Builder are reusable and make building large-scale applications easier (Easy Peasy)
Stars: ✭ 15 (-46.43%)
Mutual labels:  easy-to-use
react-native-ultimate-starter
A React Native Ultimate Starter - react-navigation v5 + redux-toolkits + dark and light theme and more.
Stars: ✭ 16 (-42.86%)
Mutual labels:  starter-kit
twitch-extension-starter
Kickstarts your Twitch Extension using React
Stars: ✭ 38 (+35.71%)
Mutual labels:  starter-kit
frontend-starter-kit-with-gulp
Frontend Starter Kit with Gulp for either Themeforest Projects or customizable projects.
Stars: ✭ 34 (+21.43%)
Mutual labels:  starter-kit
gw-starter-kit
PEPELAC - Современный инструментарий для вёрстки и создания статичных сайтов с использованием Webpack
Stars: ✭ 30 (+7.14%)
Mutual labels:  starter-kit
starter-kit-doogie-browser
Statamic Starter Kit: Doogie Browser
Stars: ✭ 39 (+39.29%)
Mutual labels:  starter-kit
laravel-startkit
Laravel Admin Dashboard, Admin Template with Frontend Template, for scalable Laravel projects. It is to save your time when You start with new scalable Laravel projects with many features Bootstrap, cooreui, infyom admin Generator, roles and permissions, translatable models, spatie media and much more
Stars: ✭ 55 (+96.43%)
Mutual labels:  starter-kit
FormToolbar
Simple, movable and powerful toolbar for UITextField and UITextView.
Stars: ✭ 85 (+203.57%)
Mutual labels:  easy-to-use
reason-cookie
A simple way to use cookies in Reason (OCaml) on the frontend. 🍪
Stars: ✭ 18 (-35.71%)
Mutual labels:  easy-to-use
sass-starter-pack
Sass starter files using Gulp v4.0.0 🔥
Stars: ✭ 34 (+21.43%)
Mutual labels:  starter-kit
marmelad
Заготовка фронтенд проекта для продвинутых и начинающих 🤘. Хорошо подходит для поддержания единой структуры проектов в команде и легкого переиспользования готовых блоков между проектами.
Stars: ✭ 15 (-46.43%)
Mutual labels:  starter-kit
browser-extension
Browser Extension Template with ESbuild builds, support for React, Preact, Typescript, Tailwind, Manifest V3/V2 support and multi browser build including Chrome, Firefox, Safari, Edge, Brave.
Stars: ✭ 535 (+1810.71%)
Mutual labels:  starter-kit
Frontend-StarterKit
Frontend StarterKit - [Gulp 4, Pug, SCSS, ES6+]
Stars: ✭ 13 (-53.57%)
Mutual labels:  starter-kit
yamete
Yamete - Hentai downloader in PHP CLI - Easy site downloader PHP system
Stars: ✭ 63 (+125%)
Mutual labels:  easy-to-use
puppeteer-jest-starter
A starter-kit quipped with the minimal requirements for Puppeteer + Jest, making E2E testing a breeze.
Stars: ✭ 17 (-39.29%)
Mutual labels:  starter-kit
react-admin
基于React + ant-design的用作后台管理项目的脚手架
Stars: ✭ 96 (+242.86%)
Mutual labels:  starter-kit

Wakib - Emacs For The Rest Of Us

This is an Emacs starter kit project that aims to bring a modern, user-friendly version of Emacs. This starter kit build off the bindings of the wakib-keys project. While that focused on the changing many of the default keybindings in emacs, this starter kit builds on it by adding changes to the look and behaviour of Emacs, as well as bundling many of the very useful packages.

The purpose of this is to make an Emacs starter kit that "Just Works". If you are interested in all the power of Emacs without the steep learning curve, then this is the startr kit for you. Hopefully, this will make Emacs a viable option even for someone just starting to learn programming.

You can find a video introduction about Wakib here.

Features

Many of the features of Wakib were designed to prioritizes the user experience. These include:

  • Use of Common shortcuts. No need to learn new ways to Open, Save, Copy, Paste...
  • Consistentcy. The shortcuts are displayed correctly in the menu bar and minibuffer.
  • New buffers defaults to Org mode. One of the best things about Emacs should feature front and center.
  • Efficient. Like Vim and Emacs bindings, Wakib was designed to keep your fingers near the homekeys for all common commands.
  • Ergonomic. The most repetitive commands use Alt instead of Ctrl to reduce RSI.
  • Easy to learn. Shortcuts are grouped together logically to enable users to quickly pick up keybindings.

Changelog

  • Company no longer uses return for completion, but rather uses tab to complete part, and tab again to select. This solves the problem of not being able to insert a newline because Company mode opened an autocomplete popup.

Installation

You must, of course, have installed Emacs on your system first.

To install this starter kit, clone this repo to your user emacs directory (typically ~/.emacs.d). If you would like to save your old configuration make sure to back up your user emacs directory by moving or renaming it.

On Linux and MacOS the installation is simply

git clone https://github.com/darkstego/wakib-emacs.git ~/.emacs.d

In the case of Windows OS then you can simply run the following in git bash

git clone https://github.com/darkstego/wakib-emacs.git ~/AppData/Roaming/.emacs.d 

The first time emacs starts after this, it will automatically download all the third-party packages.

Bindings

CTRL

CTRL-KEYS

ALT

ALT-KEYS

Binding Policy (AKA Where are my C-c, C-x keys)

In order to properly implement copy and cut using the standard C-c and C-x keys, the old Emacs prefix keys needed to be moved to another key (C-c became C-d, and C-x became C-e). The keybinding system used in Wakib are as follows

Alt (Nav/Sel/Del)

These shortcuts mainly have to do with navigating and deleting/selecting text. These are more ergonomically friendly than using the Ctrl key, so commands that are commonly repeated or used very frequently should also end up here.

Ctl (Common Shortcuts)

Commands that are very common end up here. Most of these shortcuts are the common shortcuts users have grown accustomed to. This can be also used for commands that need to be fast and concise.

C-e ? (Extended Shortcuts formerly C-x)

This points to the typical C-x map in Emacs. The main purpose in Wakib is to provide room for extra shortcuts. Any of the old Emacs C-x shortcuts that now have equivalent as a common shortcut can be recycled.

C-d C-? (Mode Shortcuts formerly C-c)

This points to the C-c map in Emacs. Major modes typically populate their shortcuts here, and these are untouched in wakib.

C-d ? (User Shortcuts)

As per the Emacs guidlines, keybindings that start with C-d and a single character should be reserved for user, so as a general rule these will not be populated. This allows users to add their own custom shortcuts knowing that they won't be overwritten by future updates to Wakib.

User local changes

In order to add your own changes to the starter kit that won't be overwritten anytime you update the project, create a subdirectory named user in your emacs.d directory, and add your changes to a file called init-user.el. You could just copy or rename the template from the refs/init-user.el.template file that comes with the project. The template file contains extra configuration that while useful, did not make sense as default behaviour for the starter kit.

If you would like to use some of your own keybindings instead of the ones provided by wakib, you have two ways to do so:

  1. If you are overwriting a key to do something totally different from the original, then just overwrite the key in wakib-keys-overriding-map so for example: (define-key wakib-keys-overriding-map (kbd "C-q") 'quoted-insert)

  2. If you are remapping a certain function and have all keys that do that function do something else instead then just apply remaps to the global-map or any active mode, for example: (define-key (current-global-map) [remap undo] 'my-undo)

Contribution

Be it code, bugfixes, or just a suggestion of a behavior or package that should be added to this config. Just open up an issue on github. I am really interested to get other opinions on what is working and what isn't.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].