Rust 1.77 Released!
17:21
7 ай бұрын
Status of rwm
4:32
9 ай бұрын
Fix rust-mode panic links in Emacs
5:43
Advent of Code 2023 Day 02
9:45
11 ай бұрын
Advent of Code 2023 Day 01
15:27
11 ай бұрын
Advent o' Caml Day 01 Recap
17:24
Жыл бұрын
Advent o' Caml Day 02
19:32
Жыл бұрын
Advent o' Caml Day 01
32:39
Жыл бұрын
Teaching Rust | Part 5
1:18:00
Жыл бұрын
Teaching Rust | Part 4
1:45:49
Жыл бұрын
Teaching Rust | Part 3
2:10:36
Жыл бұрын
Python Configuration for Emacs 29
18:59
Teaching Rust | Part 2
59:32
Жыл бұрын
I HATE Python
7:30
Жыл бұрын
Emacs 29 released!
12:29
Жыл бұрын
Пікірлер
@6pakAL
@6pakAL 16 күн бұрын
As a new Emacs user, this video has been one of the most helpful in setting up my config. Thanks for making this!
@Wadedd77
@Wadedd77 23 күн бұрын
I've been searching for how to get a status bar for the past 2 hours and you came to light. This is the only video that actually helped rather than other videos where they just expect you to know everything from the start.
@謙虛的學仔
@謙虛的學仔 Ай бұрын
hving searched for videos of emacs for a month. finally a gem :D
@bwestbro
@bwestbro Ай бұрын
Thank you so much for the kind words!
@binux5592
@binux5592 Ай бұрын
Dude, you've gotten a lot older since the first episod.
@bwestbro
@bwestbro Ай бұрын
unsafe code will do that to you
@sridhard7204
@sridhard7204 Ай бұрын
Spectro software plz. Explain sir.c20 cage structure. Carbon doped with Boran and Nitrogen.
@amidamarurookie
@amidamarurookie Ай бұрын
I'd like to see more projects with OCaml
@sridhard7204
@sridhard7204 2 ай бұрын
Very useful video.❤
@sridhard7204
@sridhard7204 2 ай бұрын
Superb.
@kRySt4LGaMeR
@kRySt4LGaMeR 3 ай бұрын
congratulations! have you thought about having version parity with dwm, instead of having your own?
@bwestbro
@bwestbro 3 ай бұрын
Thank you! Do you mean calling this rwm 6.5? I think I considered that, but I'm going to start making changes that will move it away from dwm and make the separate version numbering more relevant.
@AlexNon-hh4pk
@AlexNon-hh4pk 3 ай бұрын
white theme, do you want to kill my eyes?
@bwestbro
@bwestbro 3 ай бұрын
Yes
@juddhorton9157
@juddhorton9157 3 ай бұрын
Congrats! Huge accomplishment, looking forward to the future!
@TheTmLev
@TheTmLev 3 ай бұрын
Congratulations on your hard work!
@null11q
@null11q 3 ай бұрын
Great work, man. I use dwm. I am also learning rust. I have something to tinker with now.😅
@johanngambolputty5351
@johanngambolputty5351 3 ай бұрын
null pointer exception because of emojis... ☠
@Beryesa.
@Beryesa. 3 ай бұрын
Nice but is it effective to make new things for a dying platform and not Wayland 🤔
@bwestbro
@bwestbro 3 ай бұрын
I was waiting for the Wayland comments. I'm happy with X and plan to stick with it for the foreseeable future, so it doesn't look dying to me. I'm glad other people are working on Wayland, though, because I'll switch eventually if it becomes compelling enough.
@Beryesa.
@Beryesa. 3 ай бұрын
@@bwestbro sure, I was just wondering
@bwestbro
@bwestbro 3 ай бұрын
⁠@@Beryesa.for sure, it’s a fair question! Honestly, I should probably look more into Wayland, but I’ve been so happy with dwm that I haven’t gotten too curious
@iiisaac1312
@iiisaac1312 3 ай бұрын
Writing DWM for wayland would be way beyond DWM's original scope. A wayland WM also has to be a compositor and needs to dedicate itself to a compositor library, like wl-r🤢🤮ts or aquamarine (or write your own, which could easily be 10 times bigger than the WM itself).
@bwestbro
@bwestbro 3 ай бұрын
Someone on GitHub brought my attention to the dwl project, which is basically a port of dwm to Wayland. From the quick peek I took at the source code, the names are similar but the implementation is completely different, as I kind of expected without knowing that much about Wayland. It also depends on wlroots (is that the same as wl-r?), so it sounds like you're exactly right.
@cnicolas
@cnicolas 3 ай бұрын
Does it have a stacking mode?
@bwestbro
@bwestbro 3 ай бұрын
The main mode in dwm (and thus rwm) is a master and stack tiling layout. Is that what you mean by stacking?
@cnicolas
@cnicolas 3 ай бұрын
@@bwestbro I just don't like tiling windows, that's all
@bwestbro
@bwestbro 3 ай бұрын
@@cnicolas ah fair enough! I think dwm possibly calls stacking “floating,” in which case it does have that mode, but it’s probably not as good as a dedicated floating/stacking WM.
@romanstingler435
@romanstingler435 3 ай бұрын
I cloned your repo, I want to take a look at the commit history, I am interested in the paths you took. I am super impressed, even though I wouldn't probably use it as my daily driver, I prefer hyprland dwindle layout. But I love that more and more rust WM are being created. Niri, LeftWm, WayCooler, ....
@bwestbro
@bwestbro 3 ай бұрын
Thanks for the kind words! This was mostly a learning experience to figure out how dwm really works, but I think I'm going to try to make this my daily driver now.
@scubather
@scubather 3 ай бұрын
he is back
@ArthurSchoppenweghauer
@ArthurSchoppenweghauer 3 ай бұрын
What I also hate about Python is that you can't produce a compiled executable. Shipping applications written in Python is a nightmare, because everything has to be installed in a docker image and this has to then be shipped to an environment with a container runtime. Not only does this feel clunky because the base image is already bloated to shit, but it also requires the whole container ecosystem (runtime, container registry, image scanners, etc.). The complexification of deploying python apps this way leads to entire jobs (laughingly called "DevOps") whose sole purpose it is to manage the added complexity owed to everyone and their mother writing their applications in interpreted languages.
@ArthurSchoppenweghauer
@ArthurSchoppenweghauer 3 ай бұрын
Most of your suffering probably could've been avoided by reading the documentation for whatever the type of result is. Also writing the results to disk once and then loading them each time (instead of re-running the computation with each attempt) would probably save you some time. Yes, Python is slow but this can be mitigated by calling faster libraries like numpy. But then you enter the world of depdenceny management and will also suffer, just differently.
@bwestbro
@bwestbro 3 ай бұрын
Good points here. The example isn't totally perfect in this case since it wasn't really `some_expensive_computation` but rather retrieving data from a server. And I was trying to write the results to disk as JSON to avoid repeating that! I'd usually agree that reading the docs would have helped me, but in this case, the result object actually had a `json` method but it threw an exception. So this is basically a bug in the library I was using, I guess. As a slight tangent, I don't generally find Python documentation very readable or helpful, but I've probably been spoiled by Rust and Go docs and prefer their formats too. For me, though, it's always useful to have the types of arguments and return values, and most Python documentation does not have those. To your other comment, I totally feel the pain of Python packaging. We use conda at work, which works well in some cases but feels like such a mess in many other ways. I'm always glad to get back to my personal Rust projects where I can compile everything to a single, portable binary.
@VorpalForceField
@VorpalForceField 3 ай бұрын
Cool Deal .. Thank You for sharing .. Cheers :)
@BorisNVM
@BorisNVM 3 ай бұрын
good, thanks ! p.s.: i've been having some problems with the signature key. But this was still helpful
@mendelovitch
@mendelovitch 3 ай бұрын
Good stuff.
@ZachPalmer-OleMiss
@ZachPalmer-OleMiss 4 ай бұрын
Can confirm, I do know this 0:50
@bwestbro
@bwestbro 4 ай бұрын
The legend himself
@TravisAIT
@TravisAIT 4 ай бұрын
This was useful. Thanks.
@nightly_builds
@nightly_builds 4 ай бұрын
up up up!
@Breakcaft
@Breakcaft 5 ай бұрын
After C-c C-m I get en error: No TeX trees available; configure "TeX-tree-roots" I am running on Windows 11 Home. The Mode is LaTeX/P. I did move the file i am working on into a specific folder, did that change anything? I am so lost XD
@bwestbro
@bwestbro 5 ай бұрын
I have run into this before and in setups that previously worked. I'm not sure what causes it, but I think it can be fixed by following the suggestion there of "configure TeX-tree-roots". That should point to the directories/folders containing your LaTeX installation. The value of my TeX-tree-roots on Linux is ("/usr/share/texmf-dist/" "/usr/share/texmf/"), and I think I could set that by running something like (setq TeX-tree-roots '("/usr/share/texmf-dist/" "/usr/share/texmf/")). The entries in your list will definitely be different on Windows unless you're running this inside of WSL.
@Breakcaft
@Breakcaft 5 ай бұрын
@@bwestbro Thanks for your answer, as I am quite the beginner I didn't understand at first that -- Emacs +auctex wasn't an absolute list of installs i needed. I havent had TexLive installed yet (thought LaTeX came with auctex) so yeah, there is that. :D works now that emacs actually has some place to execute what I wrote.
@deedend
@deedend 5 ай бұрын
This video is really what I was looking for... Thank you very much!!
@kRySt4LGaMeR
@kRySt4LGaMeR 5 ай бұрын
did you finish rwm already? :D
@bwestbro
@bwestbro 5 ай бұрын
Sadly no... I need to get back to it!
@amidamarurookie
@amidamarurookie 5 ай бұрын
Interesting! Weight-watcher 😂
@vedantmatanhelia1016
@vedantmatanhelia1016 6 ай бұрын
ur mod t was also set to 2 commands btw
@bwestbro
@bwestbro 6 ай бұрын
Yes.
@francescojamesfanti6430
@francescojamesfanti6430 6 ай бұрын
i cannot achieve to activate the type inlay hints right at side of var or method to be inferred. like when declaring an implicit i32 id like to shee the ghost hint of that i32
@bwestbro
@bwestbro 5 ай бұрын
Hmm, I'm not sure why that would be. I actually don't like the inlay hints, but they seem to work by default with eglot for me.
@hspadim
@hspadim 6 ай бұрын
One thing that may improve the performance of your project is using “&” instead of “&&” and “|” instead of “||”. This way you are saying that you want to evaluate the whole thing and doesn’t want to short circuit it. It sometimes helped me improve the performance on some benchmarks
@hspadim
@hspadim 6 ай бұрын
Another thing that helped me before: use some plain linear algebra before writing the algorithm. I’ve got under 1 microsecond on linear regressions given that I know that the x axis is symmetrical. There are some basis/algorithms that let you compute on compile time and let you get a nice matrix and a nice system of equations
@bwestbro
@bwestbro 5 ай бұрын
Interesting suggestions! I thought short-circuiting would usually speed things up, but as always, I guess you have to measure to be sure!
@lycomedes
@lycomedes 6 ай бұрын
We use the same stuff! Arch, dwm, Brave, and Emacs!
@ItsukiMoroshima
@ItsukiMoroshima 7 ай бұрын
Thanks for your video, the 'tree-sitter-install-language-grammar' is not mentioned in the documentation for either rust-mode or emacs-tree-sitter!
@bwestbro
@bwestbro 7 ай бұрын
Glad it was helpful! To defend these packages a little bit, `treesit-install-language-grammar` is part of the built-in tree-sitter support in Emacs 29 and later (in the treesit package), and it works with the also built-in rust-ts-mode. emacs-tree-sitter and rust-mode are earlier, third-party versions of these packages, so it's not really surprising that they don't mention this new function.
@batuurdor
@batuurdor 7 ай бұрын
Hey brent, how did you get your company work out-of-box with python ?
@bwestbro
@bwestbro 7 ай бұрын
I'm not totally sure what you mean, but a few things you will need are: 1. company-mode active in python-mode (or python-ts-mode if you're following the video; I usually check this with C-h m) 2. A company backend that provides completions (I think eglot or lsp-mode should provide this automatically) 3. An LSP server for eglot or lsp-mode to connect to For point 1, it looks like I add a hook to python-ts-mode to activate company-mode at 5:28, and I install pylsp around 4:37 for point 3. Like I said, I think either of the main LSP packages will handle point 2 for you, but I used to have to mess with the company-backends variable before LSP servers were common. I hope this helps!
@SerobZeromintis
@SerobZeromintis 7 ай бұрын
I'm trying to migrate from using Overleaf to write LaTeX documents to Emacs' AUCTeX, but I'm very accustomed to typing "\begin{" "enter" "writing the name of the environment" then getting the "}" + "\end{<environment>}" completion and my cursor being placed inside the environment. Do I need to manually write all of this behavior with yassnipets?
@bwestbro
@bwestbro 7 ай бұрын
You can definitely use snippets (and I do for some environments like figures), but auctex also has key bindings for inserting environments (C-c C-e) and macros (C-c C-m) and probably other stuff that even I don't know about! A general tip here is the C-h b binding, which opens a help page on the available bindings in a given mode. If you do that in a LaTeX buffer and search for latex-mode, you should find pretty much everything auctex can do. Some of my other favorites are C-c . for LaTeX-mark-environment, C-c ] for closing an environment if I did open it manually, and C-u C-c C-e, which lets you change the surrounding environment to something else. There is also a TeX language server that I've used for completions called texlab. I generally prefer just using the auctex bindings, but you could check that out too if you already use eglot or lsp-mode in Emacs.
@scubather
@scubather 7 ай бұрын
aaaaaaaand the name is... TheBindgen ps lfstream!
@SerobZeromintis
@SerobZeromintis 9 ай бұрын
damn I didn't know you had to actually get the name given by xprop for the st terminal lol thank you
@avgeekboy
@avgeekboy 9 ай бұрын
Great video, thanks! When I try C-c C-c, and use default, it states my tex engine is nil. I can compile and view in terminal fine. Any ideas? I tried a fresh install of Auctex and texlive-science on a Debian machine.
@bwestbro
@bwestbro 9 ай бұрын
Ah man, that sounds so familiar, but I can't find myself debugging it in any of my LaTeX videos. Are you sure you're in auctex mode (usually LaTeX/P in the modeline)? I think I ran into this when I was having trouble getting auctex to load and kept ending up in a different TeX mode. This link came up when I was searching, maybe it will be relevant if you're using an older version of Emacs: emacs.stackexchange.com/a/80390/26944
@avgeekboy
@avgeekboy 9 ай бұрын
@bwestbro Thanks for the reply mate. I've been looking all afternoon and I think that is the correct answer. I'm running Emacs 27.1 (Debian 11 old-stable as 12 update broke my R Studio last year and I'm scared to commit to the upgrade again!) and Auctex 14.0.2. I really need to bite the bullet and update Debian which will give me Emacs 28-something. I'm keen to use Emacs to write my masters thesis rather than convert from MD. Cheers from New Zealand 🇳🇿 😀
@bwestbro
@bwestbro 9 ай бұрын
No problem, I totally understand! I used to be a big proponent of updating all the time, but I've had a couple of painful breaking updates recently and am now much more reluctant! You should also be able to build Emacs from source without too much trouble if you wanted to go that route instead of updating Debian. I do that with the Emacs master branch, but they also have the more stable 29 branch if you wanted to be a little more stable. I know a lot of people don't like snaps, but I installed Emacs 29.1 as a snap on one of my ubuntu VMs instead of the older version available in the main repos. Maybe that would work on Debian too. Good luck on your thesis!
@jorgegomezabrante8780
@jorgegomezabrante8780 9 ай бұрын
Hi, great vid! Can you post the config as a gist?
@bwestbro
@bwestbro 9 ай бұрын
Great suggestion, I had been delaying creating a repo. Here it is! github.com/ntBre/.emacs
@jorgegomezabrante8780
@jorgegomezabrante8780 9 ай бұрын
Thanks! How do you use clippy with your setup? @@bwestbro
@bwestbro
@bwestbro 9 ай бұрын
Ah, that's a good question. For the most part I just run `cargo clippy` using the compilation interface. However, if you mean run it continuously with eglot, I'm pretty sure that's what sent me back to lsp-mode last time because I could not figure out how to tell eglot to use clippy for the cargo watch command (at least that's what lsp-mode calls it: lsp-rust-analyzer-cargo-watch-command). I tried using this code (add-hook 'rust-mode-hook (defun my/eglot-rust-hook () (setq-local eglot-workspace-configuration '(:rust-analyzer (:checkOnSave (:command "clippy"))))))) and I think another variant that I can't find in my commit history, but I don't think it ever actually worked. Most of the eglot configuration seems to be geared toward dir-local variables or something, but I definitely prefer to have a central configuration in my init file. If I switch my main config to eglot, I plan to read through the info page to see if I've missed anything or if it has been updated since eglot got included in Emacs itself. If that's what you were asking about and you find an answer, please let me know!
@kRySt4LGaMeR
@kRySt4LGaMeR 9 ай бұрын
it's never too much bindgen::
@DJjambon001
@DJjambon001 10 ай бұрын
lol legend
@ianmortimer891
@ianmortimer891 10 ай бұрын
Thanks for the useful videos. Good to see "real world" usage and often forgotten tips and tricks 👍
@sad0n3
@sad0n3 10 ай бұрын
Great Content. I was thinking about writing my own window manager. This will help me a lot.
@yurisich
@yurisich 10 ай бұрын
If those are rack servers or asic miners screeching in the background you've earned my deepest respect. Legend.
@Firstorder66
@Firstorder66 10 ай бұрын
2:19 what did you do here? Not sure what hotkey you used
@bwestbro
@bwestbro 10 ай бұрын
Do you mean when I deleted all of the custom stuff? You can barely see it with the default color scheme, but I set the mark with C-space and then just went down to the end of the file with C-n and hit backspace. That's nearly the limit of my default Emacs binding knowledge besides navigating within a line!
@Firstorder66
@Firstorder66 10 ай бұрын
​@@bwestbroactuzlly right before the deletion, you wrote some code, hit some keys, and then that red text appeared
@bwestbro
@bwestbro 10 ай бұрын
Ah, I think that was just C-x C-e for `eval-last-sexp`. When you change some settings, Emacs saves them into your config file (or custom-file as I set a bit later). So that text won't be inserted every time you evaluate the last s-expression.
@Firstorder66
@Firstorder66 10 ай бұрын
@@bwestbro thanks. To be honest emacs is just way to much of a pain. Its not practical at all. For latex i found obsidian which you can set up in 5 minutes. Setting it up for coding is even worse. Emacs is cool but i just dont have the hours to put into learning it
@bwestbro
@bwestbro 10 ай бұрын
It's not for everyone. It took me three tries before I liked it enough to keep using it. If you ever feel overly constrained by your current tools and want the flexibility Emacs gives you (forces upon you?) give it another try! And if/when you are still interested, check out some of my more recent videos. Emacs 28 and 29 especially have made getting started much easier than I show in this video.
@jazzyBit
@jazzyBit 10 ай бұрын
love it, but I have only one problem with eglot. when I activate it and try to write a function like "printf" it shows me a window or mini eldoc buffer. Is there a way to disable it?
@bwestbro
@bwestbro 10 ай бұрын
I looked back through my commit history to when I tried out eglot in my main config (September 2022!) and I set eldoc-echo-area-use-multiline-p to 3 in a :custom block of my (use-package eglot). I think if you set that to nil, it will display only a single line and should stay in the echo area. I also set eldoc-echo-area-display-truncation-message to nil so that it would stop trying to tell me how to see the full docs. Hopefully that helps!
@jazzyBit
@jazzyBit 10 ай бұрын
@@bwestbro thanks man
@jazzyBit
@jazzyBit 10 ай бұрын
Great video, i learned a lot
@vincentpicaud5664
@vincentpicaud5664 10 ай бұрын
Useful, thanks