Hello everyone, welcome to another one of my blogs. Today, the post will be about... customizing emacs! Cuz thats the only thing I can do propertly. So, you want to start in your init.el file of course, which is the file that executes when your emacs starts. Everything in emacs is interpreted by default, so you dont have to worry about compilation. So, your init.el might eighter be in ~/init.el or in ~/.emacs.d/init.el, mine was in the latter. So, first of all you want to configure your package managment, and these days we will use something called melpa. Melpa is an open source emacs package archive, and we can simply include it using the e-lisp code they provide on their website. After we have our melpa configured, its time to configure other things, like tab width, and all of our packages that need configuring. One important thing about emacs to note is that the data in emacs does not persist between sessions most of the time. So if you set something trough emacs lisp and it wasnt a package that saved the config, you propably need to set it the next time. However if you want it to be on toggle, you can set a keyboard shortcut! So lets do that. I set a few of my shortcuts, such as Control Y for redo, Control C + v to show line numbers, etc. Like this! (define-key global-map (kbd "C-y") 'undo-redo) (define-key global-map (kbd "C-c v") 'display-line-numbers-mode) Now, that we have our keyboard shortcuts, we never have to touch our mouse agin. Atleast not while editing code. But you commonly dont even need to set custom shortcuts, because for most things everything preety much already setup. For example, to split the window horizontaly to see 2 buffers next to each other, you can do C-x 3 and to close the currently selected buffer, you can do C-x 0. Why am I doing the x in C-x small? Because C-X would actually be taken as Control + Shift + X. Its quite smart, isnt it? Now, what if we want soemthing to happen without doing a keyboard shortcut, but triggered by something else? For that, we can use something called hooks. For example, my resolution is so large that every file I open is not quite visible easily on the monitor, so I need to zoom every file that I open 2 times. Now how do I do that automatically? I set a hook like so: (add-hook 'find-file-hook 'my-custom-settings-for-file) This tells emacs to execute my-custom-settings-for-file function each time I open a file, now lets write the function. (defun my-custom-settings-for-file () (interactive) (text-scale-set 2)) And just like that, we have done it. We define a function, and we define it as interactive which makes everything work for some reason, don't really worry about that. Now, how do you not feel like having to leave your keyboard ever agin? First, you need to get a high quality keyboard. For your hands to not hurt you will propably want a wristwrest or a low profile, depends on you. Then, get rid of your mouse. The easiest way to do that is to lose your wireless dongle. If your mouse is wired, solder the wire to some electronics you're making and consider it unusable. Then, its time to migrate to i3-wm. Move from your bloated windows 11 piece of crap os to something more amazing. Gentoo with i3-wm, or just tty should do the trick. And you're done, enjoy your emacs coding! See you next time