Giter Club home page Giter Club logo

Comments (4)

mrzor avatar mrzor commented on August 18, 2024 3

I do not mind the discussion at all, but I'll admit the broad scope of your questions put me off answering for longer that I would have thought.

You ask several fair questions.

I think that once a package is on Elpa/Melpa following all the guidelines then it's the distribution responsibility to make it compatible don't you think?

I do not. Distribution authors and maintainers are free to do as they please with the code, which is clearly stated in the license. The responsibility to make anything work always rests on the end user. Most Emacs distributions have a set of packages they rely on, and maybe some opt-ins they support. Anything beyond that and I would assume you're on your own. Which doesn't imply you will get no help to make xxx.el work, but in the end, it's your problem.

Sounds a good idea to adapt a package to a big distro if that's means that more people would be able to know and use nano! And nano isn't on a package repository like Elpa or Melpa, but just sounds a little strange to me to see a package maintainer changing the package for it to fit other people (distros) standards.

Using nano as a library inside another Emacs distro, or inside a user-authored conf, is still very much supported. When that's the case, feel free to not care about nano.el at all - as things stand, if you are using nano as a library, nano.el is a tutorial for how you can integrate nano modules into your conf.

On the other hand, if you want to use nano as a minimal distribution of sorts, then having support for personal/ based configuration makes sense. This way you can install nano directly into .emacs.d and get started right away.

The purpose of this proposal is not to fit nano to other people standards, but to smooth up the "nano as a distribution" use case. You don't have to use it yourself, but some people - including myself - may find it handy.

You talk about people that wouldn't need to deal with elisp to begin with, but then said that they could add elisp snippets to the personal/ directory. Isn't that to deal with elisp?

My phrasing was probably weird on this. Emphasis on to begin with. Coming back to "nano as a distribution", you don't have to jump into elisp right away. Follow the instructions, start Emacs, and get stuff done. You can jump into elisp whenever you're ready. Contrast with "use nano as a library", and then knowing elisp is suddenly a pre-requisite for using nano. It doesn't have to be this way.

Maybe would be the case to clarify a little more what's nano purpose, is it to be a "library" or is it to be a "framework" as you've said? Is it to be a theme/package or a distro?

Why not both ? It's small enough to support both use cases.

from nano-emacs.

jacksonbenete avatar jacksonbenete commented on August 18, 2024 1

Thanks for taking your time to answer, and sorry for the long questions.
I end up deleting the post a few hours after because I thought it was not a contribution to the issue.
Hopefully Github Discussions will thrive some day for talkative people like me. :P

from nano-emacs.

jacksonbenete avatar jacksonbenete commented on August 18, 2024

I'm not familiar with prelude, but I don't see how the actual implementation doesn't allow personal configuration, both for this and issue #18 . Maybe I just don't understand correctly what you need.

In my initi.el I have:

;;; Nano Emacs
(add-to-list 'load-path "~/.emacs.d/nano-emacs")
(require 'nano-layout)
(require 'nano-theme-light)
(require 'nano-modeline)

;;; Custom Style
;; "Correct" nano-emacs design
(add-to-list 'load-path "~/.emacs.d/personal/")
(load-library "custom-style")

In this custom-style.el I can change anything I want, like the font size, fringe, faces... Since I use Emacs for daily code I had to change the font-faces for my preferences and some other minor details for compatibility with some minor-modes.

You can just put a if/when detecting if emacs is as gui or terminal to load or not nano-emacs or any customization you want, you could even create a personal-gui, and personal-terminal files for different customization. There is no need to change nano code for this. But that's just my opinion.

(if (display-graphic-p)
    (progn
    ;; if graphic
      (your)
      (code))
    ;; else (optional)
    (your)
    (code))

from nano-emacs.

mrzor avatar mrzor commented on August 18, 2024

Prelude, Doom and other Emacs distributions claim the emacs.d folder so to speak.

In your examples, you are maintaining your own emacs.d, from which you use nano and whatever else you fancy. This is fine, and it's probably the best way to go about it for persons who don't mind doing some casual emacs-lisp. It is also the only way to go about it if you are already using another Emacs distribution.
To paraphrase, this is 'using nano as a library'; a leaf in your configuration tree.

OTOH, other people do not want to deal with elisp to begin with. To them, we could say git checkout https://github.com/rougier/nano-emacs ~/.emacs.d && ln -s ~/.emacs.d/nano.el ~/.emacs.d/init.el then start Emacs. You can git pull whenever to update. You can add elisp snippets to your personal/ directory as needs arise. This mode of operation is 'using nano as a framework'; the trunk of your configuration tree.

In the "checked out" mode of operation, editing nano files means re-merging your edits on updates. Having a personal directory enables the user to add whatever without conflicting with nano-emacs.

On the subject of issue 18, since you brought it up, I meant customization through the use of custom mode. In current form, Custom will not allow you to customize the faces, which is the point of the issue there. Customizing the faces programmatically using (set-face-attribute .. is indeed possible, but it is not what the issue is bout.

from nano-emacs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.