r_emacs | Unsorted

Telegram-канал r_emacs - /r/emacs

-

This channel is a feed for r/emacs. @r_channels @reddit2telegram

Subscribe to a channel

/r/emacs

tips to getting started?

hi,
im new into IT stuff and a freshman in uni and I worked only w vim till now. I decided to switch to emacs (doom) but im so clueless. Idrk which configs I should do, don't know wich packages exist and which I should install, so a little instruction would really help me. im so lost and I don't even know what I don't know if you get what I mean? for now I only work w java, html, css and I can navigate through terminals, currently using wezterm but emacs is a completely new world to discover but it looks very promising but im obviously overwhelmed. Appreciate every help from u guys!

https://redd.it/1at064u
@r_emacs

Читать полностью…

/r/emacs

Email rules: send email at specified time if no response (complex delay send rule)

This question is not emacs-specific, but I have a feeling that this technical crowd might know a path forward given how customizable emacs is.

My new work role requires me to spend even more time in email. We use Office 365 / Exchange for our work email, so the Outlook desktop client and the webmail interface is my default interface. Often times, I send an email to a recipient, and wait for their response. The chance that they respond is low, so I always have to send a follow up note. Take this and multiply by 100 threads, which takes up a lot of my time to stay on top of things.

What I would like to do is set up my follow-up email, and have the note sent out on a certain date if I haven't heard back yet. If the person responds before the date, the pre-written note should never be sent and could be discarded. Outlook email rules and delay send feature does not allow for such a complex scenario.

I am aware of the Boomerang app for Gmail and Outlook, but I don't think the cost is worth it; and I don't think corporate would allow me to install that add-in in Outlook.

I looked into Thunderbird as it has a "send later" plugin that appears to have a scripting component, which could probably work. However, I'm unable to get my work mail account to work with Thunderbird. I could probably try some more to figure out why it isn't working.

Question for the folks in this subreddit: is there a way to achieve the email rules I described using an email client in Emacs? Or some other open source tool?

I know this is a long shot. Thanks in advance for any insight you might provide.

https://redd.it/1asn8j8
@r_emacs

Читать полностью…

/r/emacs

Anything In-Built for Dealing with Language Code (ISO-639)?

Namely, I want to do look-up (give a code such as ang and get back the human-readable name for it) and, potentially, some sort of reverse lookup (if feasible).

I'd've expected, since, Emacs traffics in text, there'd've been something in-built but, beyond references to ISO-639-1 for setting the style of fonts (https://www.gnu.org/software/emacs/manual/html\_node/emacs/Fonts.html), I can't seem to find much of anything.

Plus, any language-related stuff I find (such as the Melpa package Guess Language and https://www.emacswiki.org/emacs/GuessBufferLanguage) seem to roll their own (scaled down) version rather than relying on anything within Emacs or, even, a third-party library.

Figured someone here might know of something, if there is anything.

https://redd.it/1asn1j7
@r_emacs

Читать полностью…

/r/emacs

LSP typescript slow or unresponsive

Please help. I have recently upgraded emacs and tried to adopt LSP & treesitter. I'm primarily working in Typescript at the moment so I'm using LSP typescript and tsx-ts-mode. Also using lsp-ui, LSP eslint, flycheck and company-mode.

The result has become extremely frustrating as I've started to use it beyond trivial use cases. When working quickly, with many files/projects open, the following often happens:

make an edit quickly
no update from language server and any stale errors remain
tsserver process spins and spins at max CPU for about a minute
CPU drops and the buffer finally updates... maybe?

It can take minutes to respond, and sometimes seems to stall indefinitely. I end up forced to `lsp-restart-server` repeatedly throughout the day. I don't think this is necessarily specifically an LSP issue, but probably some combination of things, like maybe LSP is getting confused and issuing too many requests? I have already gone through all the recommendations in `lsp-doctor` and I'm a little uncertain where to even look to diagnose further (the `*lsp-log*` doesn't contain anything illuminating) and the problem seems to get worse and worse.

Is this a common experience? How can I see better what's going on? Any packages I should maybe look for and jettison?

https://redd.it/1asgqb6
@r_emacs

Читать полностью…

/r/emacs

Configuring clangd on a project basis, is it possible

Hello,

I use eglot with clangd which I configure as follows:

(add-to-list 'eglot-server-programs
'((c-ts-mode c++-ts-mode c-mode c++-mode)
. ("clangd"
"-j=8"
"--log=error"
"--malloc-trim"
"--background-index"
"--clang-tidy"
"--all-scopes-completion"
"--completion-style=detailed"
"--pch-storage=memory"
"--header-insertion=never"
"--header-insertion-decorators=0"))))


Recently I have to work inside some docker containers that use different toolchains, things mostly work on Emacs 29 native support for docker in Tramp, except that I now need to pass the --query-driver option to clangd to effectively index my project, somehting like this:

(add-to-list 'eglot-server-programs
'((c-ts-mode c++-ts-mode c-mode c++-mode)
. ("clangd"
"-j=8"
"--query-driver=/path/to/gcc,/path/to/g++"
"--log=error"
"--malloc-trim"
"--background-index"
"--clang-tidy"
"--all-scopes-completion"
"--completion-style=detailed"
"--pch-storage=memory"
"--header-insertion=never"
"--header-insertion-decorators=0"))))


Is there a way to set eglot-server-programs per project? Maybe as dir-local variable?

https://redd.it/1ascb93
@r_emacs

Читать полностью…

/r/emacs

How do I use emacsclient to call a command which creates new frames, without first creating a new frame

Sorry for that difficult title, if it didn't give you a stroke, I'll give you an example of what I mean.

So for instance, the command calendar normally reuses the current frame/window. However, with the variable calendar-setup set to two-frames, it creates two new frames, one for the calendar and one for the diary.

This isn't the only command like this, it's just an example, and it's not even the only one I might like to solve, since I face a similar problems with some gnus workflows I want to build, so please, no specific hacks to get this particular thing to work such as suggesting I not use calendar-setup set to two-frames, I really need a generalisable solution to this.

So the issue is, if I launch emacsclient -e '(calendar)' from a shortcut or the command-line in order to bring up my calendar, this doesn't work unless there is a pre-existing emacsclient frame.

The solution then would seem to be to issue either emacsclient -c -e '(calendar)' or emacsclient -r -e '(calendar)' in order to create a frame first.

The problem is this creates a totally useless frame that is both annoying, but also problematic, because you can't close it if the calendar and diary frames aren't already closed.

What I'd like is to be able to run (calendar) and have it create its frames without the need for a pre-existing frame. Or else in a really bad pinch, have the dummy frame created but totally hidden, and have it quit the moment I close the diary and calendar frames.

Does anybody have any ideas? I've been pulling my hair out here, I dunno if I'm missing something obvious.

https://redd.it/1as3clv
@r_emacs

Читать полностью…

/r/emacs

How to save current file with a slightly different name

Hi everyone 👋

When using package vertico and orderless, everytime I want to save a current file with slightly different name using C-x C-w, I can only choose the current one.

For example, I want to wirte-file from .zprofile to .profile, I hit C-x C-W, and type in .profile, but I can only choose .zprofile.

How can I write the file to .profile?

https://redd.it/1arxbi8
@r_emacs

Читать полностью…

/r/emacs

Has anyone tried to reimplement Helm with marginalia+embark+etc? Listing completions in window rather than minibuffer?



https://redd.it/1arsu9q
@r_emacs

Читать полностью…

/r/emacs

What is your Golang Workflow for Emacs ?

I've been using emacs for golang for about a month or 2.

This is my current list of packages/Worflow:

SyntaxHighlighting --> lsp-mode ( go ), go-mode

CodeCompletion --> company

Checker --> FlyCheck, Flycheck-golangci-lint

Go Debugging --> dap-mode (go-dlv)

GolangTags --> Emacs go-tag

magit/Forge --> version control

​

What packages are you using for Go? Are there any packages that do similar things or are outdated?

​

https://redd.it/1arj2nm
@r_emacs

Читать полностью…

/r/emacs

Close all refile targets in ibuffer after refiling

Hi everyone 👋

Okay, so I have this problem where I always had a few hundred buffers open in ibuffer, and I couldn’t figure out what was doing it - since YEARS. Well, I finally figured it out the other day! Org refiling was the culprit. See, I didn’t know this but whenever you refile, when it says getting all targets, it’s opening them up (at least it did in my ibuffer behind the scenes).

To counter this, I asked an AI to help me, and it did. It wrote the code but it couldn’t get the last part right about not opening ibuffer to kill everything. I fixed that up myself. So this is a collaboration between an AI and me, but the code works.

The only “issue” now is that if you have a lot of targets, it will take a few seconds each time to do the gathering part. For me, that’s not a big deal, but maybe it is for you. And if you’re on here, there is a high likelihood of you being able to fix it so this becomes even better and faster. So here is my code. Please use it as you want. And if you can make it better, or faster somehow for repeated steps, then let me know (the closing part isn’t an issue - that takes a second on my machine, or less).

(Note that the comment says that it’s bound to C-z o r but that isn’t shown in the code. It’s at the bottom of my config in custom key binds).

;; This function uses C-z o r (listed at the end of config) to refile. It opens all the refile targets, and then closes them after refiling, so it keeps ibuffer clean.
(defun my/org-refile-and-close-buffers ()
"Refile using org-refile and close related buffers in ibuffer."
(interactive)
;; Get the list of open buffers before the refile
(let ((before-buffers (buffer-list))
(org-refile-use-outline-path nil)) ; Disable outline path
(call-interactively 'org-refile) ; Call org-refile interactively

;; Get the list of open buffers after the refile
(let ((after-buffers (buffer-list)))
;; Close only the buffers opened during the refile
(dolist (buffer before-buffers)
(setq after-buffers (delete buffer after-buffers)))
(mapc 'kill-buffer after-buffers))))

​

​

I hope this helps! Now you can keep your ibuffer clean when you refile!

(Originally posted earlier today on the System Crafters Forums

​

https://redd.it/1arjlzz
@r_emacs

Читать полностью…

/r/emacs

Greedy dog org-mode, bad dog org-mode, get down org-mode!

org-mode defines a serious number of keys in org-mode-map, some of which I want to use for my own nefarious purposes. There's org-disputed-keys which is supposed to stop org-mode from squatting on them. The trouble is, it doesn't always seem to work.

For example, I want to use C-M-<left/right/up/down> globally to move the point to the window in those directions (with windmove) and I want to use C-M-S-<left/right/up/down> globally to move the window itself in those directions (using my own defun).

org-mode squats on those shifted C-M-S- keys, and you would think that this would fix it:

(setq org-replace-disputed-keys t)
;; restart emacs after changing any of these:
(setq org-disputed-keys '(((kbd "C-M-S-<right>") . ( nil ))
((kbd "C-M-S-<left>") . ( nil ))
((kbd "C-M-S-<up>") . ( nil ))
((kbd "C-M-S-<down>") . ( nil ))
<plus many other keys that I want to use and for which org-disputed-keys works fine eg>
((kbd "C-,") . ( nil ))

This works fine on other keys that org-mode would otherwise occupy, such as C-' but not on C-M-S-<left/right> so I have to resort (in org-mode-hook) to a heavy-handed:

(define-key org-mode-map (kbd "C-M-S-<left>") nil)
(define-key org-mode-map (kbd "C-M-S-<right>") nil)

Any ideas what I'm doing wrong? Or is it a bug in org-mode?

I don't use org-mode very much (mainly for elfeed-dashboard) preferring the much simpler outline-minor-mode (plus a few hacks) but I do want org-mode buffers/windows to behave themselves with my window moving global keys.

https://redd.it/1ar9uwk
@r_emacs

Читать полностью…

/r/emacs

Loading Data into Emacs Widgets

\# TLDR

Loading data into widgets and saving widget data to a file


\# Background

Hi team,

I'm looking to create a handy little tool for some specific tabletop RPG games (DND-like, Call of Cthulu, Deadlands) and I would like to know if anyone has any ideas for how to get data from a markdown language (such as a .yaml file) into a widget screen and then save from the widget screen back into the file again.

My current idea is that I could use an emacs form after running a program to parse the data from the .yaml file, but that eliminates my ability to use the fun widget library in emacs (which has the nice features of checkboxes and buttons). So I would like to be able to have my widget 'UI', and load the data from the yaml file interactively, so that I can save back to it as well.

I've been trying to find the source code for the customize buffer in emacs, which does essentially what I want to do, but my grepping has been to no avail.

https://redd.it/1aqoe8z
@r_emacs

Читать полностью…

/r/emacs

Emacs can't find lsp server binary

I'm using Emacs 29.2 and it can't find the haskell language server. The binary is in \~/.ghcup/bin and the directory is also present when I run M-x getenv PATH. How do i make emacs detect the binary?

https://redd.it/1aqlbcq
@r_emacs

Читать полностью…

/r/emacs

What's the state of nongnu and melpa these days? In emacs 29.2, should I be adding melpa to the package archive? No matter how I seem to set the package-archive-priorities, melpa packages seem to override nongnu

I have an init.el pretty much unchanged since 2010 or so. So I've declared emacs init bankruptcy and am starting over.

I've installed the latest stable version of emacs (29.2) and am using an init.el generated by https://emacs.amodernist.com/

I am not sure this is the latest and greatest kind of init, I notice it does not use any use-package

One big change between then and now is the introduction of the nongnu repository and I see that it's automatically listed in the package-archives of emacs 29.2.

What's it state?

Do I need melpa at all?

If I do need melpa for packages not yet in gnu or nongnu, how do I add melpa in so that it's priority is last on the list?

Right now I have:

(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)

(setq package-archive-priorities
'((gnu . 10)
(nongnu . 5)
(melpa . 1)))

But even so, when I m-x list-packages I can see that emacs wants to upgrade the nongnu packages to the ones in melpa.

As an example

the version of the avy package in melpa is 20230420.404

but in nongnu the version is 0.5.0

> When installing packages, the package with the highest version
number from the archive with the highest priority is
selected. When higher versions are available from archives with
lower priorities, the user has to select those manually.

> Archives not in this list have the priority 0, as have packages
that are already installed. If you use negative priorities for
the archives, they will not be upgraded automatically.


Since the version numbers of nongnu and melpa differ so widely, it seems as if there is no way to just set package archive priority such that it will default to nongnu

Any advice?

Suggestions on using melpa or not?

Suggestions if using melpa how to get it to be used only when packages are not found in gnu or nongnu?

https://redd.it/1aqgc3h
@r_emacs

Читать полностью…

/r/emacs

Elpaca on Windows?

I'm trying to figure out how to set up elpaca on Windows, but the only stipulation is setting up symlinks. My question is, what do I set the symlink as? And what do I link? They also give me the option to enable elpaca-no-symlink-mode but they don't give me a file to place the piece of code they give us.

;; Uncomment for systems which cannot create symlinks:
;; (elpaca-no-symlink-mode)


Any help is appreciated

https://redd.it/1aqhimv
@r_emacs

Читать полностью…

/r/emacs

Anyway to have the highlighted parts follow dark mode on Windows 10?
https://redd.it/1asw561
@r_emacs

Читать полностью…

/r/emacs

How to use predictive mode for latex w/ auctex

I'm basically brand new to emacs and I'm trying to use it primarily for latex. I've gotten most things to work alright but I am disappointed with the lack of autocompletion options to far. In particular, TeX-electric-escape seems to do a very poor job in my opinion. It seems like predictive-mode is the solution but I am unsure how to install it. All the links on this page https://www.emacswiki.org/emacs/PredictiveMode#h5o-2 seem dead and I'm unsure how else to access it. I would appreciate any help with this specific problem or advice on a potentially better way to handle autocomplete in latex.

https://redd.it/1ass1yn
@r_emacs

Читать полностью…

/r/emacs

Better Syntax Highlighting: treesit vs tree-sitter discrepancy

Hello everyone, I have been having trouble with my config for the past day or so. I have been messing with tree sitter because wanted the highlighting to look like doom emacs' tree-sitter highlights.

# treesit

When I started I was using the built-in treesit package, however I quickly realized the highlighting was fairly subpar even when the font-lock was at level 4. I looked at the doom source code and saw that they were using the old 3rd party tree-sitter package.

# tree-sitter

Using this package seems to bring a lot more options into scope and it immediately made the highlighting better. However, I am still having trouble making it look as good as doom's highlighting (particularly in python files).

# Images

In the images you will see:

* Doom emacs' look that uses 3rd party tree-sitter
* My config's look that uses 3rd party tree-sitter
* My config's look that uses built-in tree-sit

There is some c code and some python code for both. You will notice that the built-in tree-sit package looks the worst for both C and Python. You will also notice that doom emacs has the nicest highlighting for python, with my own use of tree-sitter just a bit worse. Then you can see that my C highlighting looks just like doom's. Strangely, mine looks worse for python though.

&#x200B;

[C - Doom's 3rd party tree-sitter look](https://preview.redd.it/09hdul3omzic1.png?width=636&amp;format=png&amp;auto=webp&amp;s=0aac9e8c4ef5fcb8abe5f5bf26c0e4359ab76596)

[C - My 3rd party tree-sitter look](https://preview.redd.it/8ndpyk3omzic1.png?width=633&amp;format=png&amp;auto=webp&amp;s=b342c0823a7ab5a13bffc39bb8a73cd251a0115a)

[C - built in treesit look \(c-ts-mode\)](https://preview.redd.it/qw036w3omzic1.png?width=622&amp;format=png&amp;auto=webp&amp;s=0eb024d6dd87c8be4020f8661e58d3593c513651)

[Python - Doom's 3rd party tree-sitter look](https://preview.redd.it/hogmew3omzic1.png?width=286&amp;format=png&amp;auto=webp&amp;s=515ce96644843d0094b47904402836ea91613bb9)

[Python - My 3rd party tree-sitter look](https://preview.redd.it/ou5t1w3omzic1.png?width=267&amp;format=png&amp;auto=webp&amp;s=802abd55a971a94a0f999d188fba0b5a97203c2e)

[Python - built in treesit look \(python-ts-mode\)](https://preview.redd.it/246f5m3omzic1.png?width=267&amp;format=png&amp;auto=webp&amp;s=1ba1e85f2c074652cd383673df5812bb9881a7f9)

# Context

All built in treesit highlighting was provided with the special -ts- major mode, whereas the 3rd party tree-sitter highlighting was provided by tree-sitter-hl-mode (minor mode).

# Discussion

Doom's setup is nothing special, they essentially just use 3rd party tree-sitter like I started to, but their highlighting looks better, how could this be? Also, why is the built-in treesit package seemingly much worse than the 3rd party option that it supposedly integrates?

https://redd.it/1asfgh7
@r_emacs

Читать полностью…

/r/emacs

Pushing the lmits
https://redd.it/1asfzfm
@r_emacs

Читать полностью…

/r/emacs

Any way to make the scroll up and down functions jump an exact number of lines? Because the cursor drifts away. Is completely replacing them feasible?

I'd like the cursor to move as predictably as possible when I scroll. I want it to get back to the original position when I scroll up and down back and forth a few screens.

There are a couple of issues with the scroll up and down functions. First, the beginning and the end of buffer are an edge case. But I can work with that. The scroll-up-command and scroll-down-command work better than scroll-up and scroll-down. I can write a wrapper that remembers the last good position and jumps there when I move in the opposite direction from the beginning or end. I know about all the options for these commands, including scroll-preserve-screen-position, and the issue remains, but the wrapper is not hard to write.

The second issue is much bigger: the scrolling is affected by differences in line heights. So, it's not noticeable in code buffers, but when I scroll in org-mode files, where I have headers and images, the cursor drifts away no matter how hard I'm trying to set the scroll-preserve-screen-position option to t. And the wrapper can't know if the cursor drifted. Well, on second thought, I could use a stack of last scroll positions in a wrapper.

But, the question is: can the scroll up and down commands be completely replaced? Is changing the scroll position by multiples of window-body-height with set-window-start a good option for the base of an alternative that jumps an exact number of lines? Or maybe there's something more suitable?

https://redd.it/1as52mf
@r_emacs

Читать полностью…

/r/emacs

Looking for some help with setting up haskell-ts-mode in emacs 29.

I am on emacs 29.2.

I tried to setup haskell-ts-mode following the instructions here

While I was able to successfully setup the treesit mode for python and c++, for haskell I keep getting
File mode specification error: (void-function haskell-ts-mode)

The relevant lines in my dot-file are:

(use-package haskell-mode
:ensure t
:defer t
;; :mode (("\\.hs\\'" . haskell-mode))
:init)

(setq major-mode-remap-alist
'((latex-mode . latex-ts-mode)
(haskell-mode . haskell-ts-mode)
(cc-mode . cc-ts-mode)
(c++-mode . c++-ts-mode)
(yaml-mode . yaml-ts-mode)
(bash-mode . bash-ts-mode)
(js2-mode . js-ts-mode)
(typescript-mode . typescript-ts-mode)
(json-mode . json-ts-mode)
(css-mode . css-ts-mode)
(python-mode . python-ts-mode)))

and I have installed the haskell library from here.

https://redd.it/1as1vy1
@r_emacs

Читать полностью…

/r/emacs

WIP/RFC Reorg: reorganize your life

Hello.

My last real attempt at an Emacs package was El Gantt which generates gantt charts from orgmode files. I written a couple other buggy things (e.g., https://github.com/legalnonsense/org-visual-outline). I am a lawyer and Emacs helps keep me sane at work. Elisp is the only language I know and only one ever want to know.

For the last couple years I have worked on something new. I have been using it for awhile now and think it is good enough to share: https://github.com/legalnonsense/reorg.

It is like taxy.el, org-ql, org-sidebar except that it’s not limited to org files and it’s messier shotgun of ideas.

It allows clones of outline nodes as featured in Leo Editor. This also means it can at least give the appearance of real transclusion.

I’ve written a readme that explains everything in a way that I hope makes sense.

I make no guarantee that you can clone and run this error free.

https://redd.it/1ary91e
@r_emacs

Читать полностью…

/r/emacs

Lsp problem

Lsp shows error message only when I move cursor on line where error is.

Especially in rust files, it shows a small arrow opposite the line where there is an error however the error itself (message) shows only when I move my cursor to this line. Or maybe its not even lsp, maybe this is flycheck?

https://redd.it/1artvpx
@r_emacs

Читать полностью…

/r/emacs

i have a problem opening doom emacs, can someone help me fix this?
https://redd.it/1arlkst
@r_emacs

Читать полностью…

/r/emacs

how can i remove/reduce the thick border of lsp documentation hover thingy
https://redd.it/1aretev
@r_emacs

Читать полностью…

/r/emacs

Emacs + remote development

Hello there!
I have a server that I access through ssh, open emacs in the terminal and use it. very happy so far,
but I do want to test to use my local emacs GUI and make the same things. open files, run process there, etc.

I tested to open tramp like `/ssh:matt@192.168.1.10:/home/matt/code/` and it open the dir, but I can't for example seek project files. Also I use devenv (nix) to load the needed tools, but even if I open vterm and execute it, the main process doesn't have it. so I can't run things like tests.

Is there other way to use it ? or any tutorial in how to configure?

&#x200B;

Thanks in advance!

&#x200B;

https://redd.it/1ar1785
@r_emacs

Читать полностью…

/r/emacs

Doesn't it feel kinda weird, that Emacs isn't the first choice for Java, while James Goslin (the creator of Java) wrote his own Emacs editor and spent probably most of his time in Emacs?

And that he even claims that Stallman has stolen his code and just got rid of all the copyright comments?

https://redd.it/1aqm0s5
@r_emacs

Читать полностью…

/r/emacs

Org Agenda Sync to iCal for MacOS?

I'm trying to get my org agenda/TODOs to sync with my Apple Calendar (iCal, I think).

I've seen about half a dozen pages explain this in various ways, but none are very easy to set up, and they don't get too much into specifics about whether it is two-way syncing (which is what I wish for) or not.

In short: Does anyone have a solution that is fairly easy to set up?

EDIT: I have tried org-caldav with my NextCloud setup, but it's not working entirely correctly and I'm not certain why. It syncs from the calendar on the server, but not to it. Also, NextCloud appears to be a bit buggy at times as I found it difficult to delete the test calendars at times.

https://redd.it/1aqi3jn
@r_emacs

Читать полностью…

/r/emacs

Weekly Tips, Tricks, &c. Thread

This is a thread for smaller, miscellaneous items that might not warrant a full post on their own.

See this search for previous "Weekly Tips, Tricks, &c." Threads.

Don't feel constrained in regards to what you post, just keep your post vaguely, generally on the topic of emacs.

https://redd.it/1aqhyay
@r_emacs

Читать полностью…

/r/emacs

How to make orderless search marginalia text also?

Hi

&#x200B;

I am using https://github.com/minad/marginalia/ and https://github.com/oantolin/orderless

&#x200B;

Is it possible for orderless to search though the "marginalia" text also?

&#x200B;

TIA

https://redd.it/1aqg7kc
@r_emacs

Читать полностью…
Subscribe to a channel