Coders, what is your workflow on Linux

Hello,

I installed Ubuntu a few months ago on my work laptop and I’ve been running and loving it since.

However, I am used to VsCode, so this is what I am using in Ubuntu as well.

So I am curious, what kind of coding so you do? And what is your workflow.

I am an embedded firware developper and mainly use C. I am cross compiling my code in VsCode for a FPGA from Xilinx (dual core arm + PL)

Never dove into make files and cmake more than what I needed in the past, but I had an opportunity to learn CMake and build a project from it.

So my workflow is :

  1. Code in VsCode
  2. Build in CMake
  3. Transfer the app through scp on the target with a custom script (target is running petalinux, which is yocto + Xilinx recipes)
  4. Use gdb server to debug the code.

It’s a pretty simple workflow, but I’d like to know what you guys are running so that I can maybe upgrade my workflow.

Boopdedoop,

i3wm/sway - lets me navigate windows with vim-like keyboard motions Neovim - best power editor, hands down. But it takes a bit of tweaking. Tmux - lets me have multiple terminals up in one window. Make/CMake/whatever the project uses. I also write scripts for anything that causes friction which can be automated. Vimium/VimiumFF in the browser - lets me navigate most webpages with just the keyboard.

garam,
@garam@lemmy.my.id avatar

Xfce spin Fedora using VS Code with CSharp dotnet omnisharp, sometime vim with coc nvim and omnisharp vim.

PHP intelephense, podman, kvm/qemu, some el clone or rhel cloud image, and windows server 2019 vhd to qcow2.

Other than that, firefox for frontend web debug… For desktop dev, avalonia UI. Other than that, none.

greywolf0x1,

I’m learning C# on my gnome Fedora and I can’t use IlSpy to decompile code on VSCode. How do you do this?

Also, my debug time takes so long, I think microshit intentionally makes it so on linux

garam, (edited )
@garam@lemmy.my.id avatar

I never use IlSpy, sorry

Have you look into their cli? github.com/icsharpcode/…/ICSharpCode.ILSpyCmd

Also there is AvaloniaUI ILSpy github.com/icsharpcode/AvaloniaILSpygithub.com/icsharpcode/ILSpy/discussions/2926

Also seems not all dll can be opened using ilspy github.com/icsharpcode/ILSpy/issues/2689

Debug times shouldn’t be long tbh hmm… How big is your project?-

greywolf0x1,

Thanks for the links. I’ll look into the cli, I couldn’t configure the Avalonia no matter how much I try.

I can’t even call it a project, i’m just doing basic readline, writeline and loops stuff.

garam,
@garam@lemmy.my.id avatar

You can try to download the exe, and run it, but you need to have dotnet 6.0.2 LTS SDK in your machine… It should work as it’s.

Anyway using CLI can dump the dll, I tried it yesterday to any csharp dll, it works, and create a project for it. I think with CLI, it’s enough to see the whole .dll csharp files included.

greywolf0x1,

Thanks, i’ll try out the cli.

ForbiddenRoot,

Rust and C development mainly with a bit of assembly language sometimes:

  • Debian Stable with Xfce
  • distrobox with podman for containers
  • xfce4-terminal with tmux
  • vim with plugins (coc.nvim, delimitMate, NERDTree etc)
garam,
@garam@lemmy.my.id avatar

when you start xfce, it start with tmux?

ForbiddenRoot,

when you start xfce, it start with tmux?

No. I use tmux only inside the distrobox / podman dev container (which is also Debian 12 Stable). I like a more conventional DE for non-dev related usage of the computer. If I wanted a totally tmux-like or terminal-based environment I would go with i3, but that is not something I prefer for my desktop usage for non-coding activities.

Solemn,
  1. Setup my vimrc.
  2. Clone the project, and realize that whatever repo managing system they started using 3 years ago requires setup steps not in the README and breaks everything at the slightest touch.
  3. Build the currently relevant project in whatever build system they started using 3 years ago (CMake is quite nice).
  4. Fix my vimrc to be compliant with whatever tabbing they use.
  5. Realize that for some reason, someone made a commit in the file I’m reading that uses 3 space tabs. And worse, someone approved that PR.
  6. Make changes via vim.
  7. Debug via print because setting up gdb or JTAG on embedded systems is usually more effort than its worth.
  8. Realize it’s a timing issue and reluctantly go find the JTAG debugger.
Croquette,

It’s funny how the JTAG debugger should be the first thing that we use, but just like you, I don’t want to use it until really necessary.

But the moment I setup everything, then I wonder why I’ve waited so long to do the setup haha.

selawdivad,

I mainly use Python, so my workflow is the same on every OS: Neovim and a shell, usually one of each in a vertical split. This transfers nicely to remote SSH sessions too, and even works in Termux on my phone!

Have you investigated whether it’s possible to test your cross-compiled builds in Qemu, rather than copying them to the host?

Croquette,

It’s possible to use QEMU, but since my primary goal is to use the hardware (GPIO, ADCs, SPI, etc.), it isn’t as useful for me in that case since I want to physically interact with the board. There is certainly a point where I will use QEMU more, but for the moment, it’s not practical.

TenTypekMatus,
@TenTypekMatus@lemmy.world avatar

I use IntelliJ IDEA for V and Rust, Neovim for C and VSCodium for Ansible + web development.

wintermute,

I code in C/C++. Work laptop is windows, but the products run on various Linux and Unix flavors, as well as in Windows. So I use Clion on win, that syncs the code changes to a Linux VM for building and testing. The toolchain is in a docker image, so I can change the build and test environments without affecting each other. Since I need to test on different OSs, I have multiple VMs in a server at the office.

the_crab_man,

I mostly program in Rust and my main editor is VSCodium with the NeoVim extension but lately I’ve been experimenting with Alacritty + Tmux + Helix and I’m starting to like it quite a bit.

wgs,
@wgs@lemmy.sdf.org avatar

I use vis to write code, ^Z and make/mk to build the project. Most of the debugging is done with valgrind and eventually gdb though my use is very limited.

When I work on manpages, I use wendy to automatically preview manpages everytime the source file changes.

slembcke,

I do game dev, and I’ve been loving VSCode. I used to use a mishmash of stuff, but VSCode can do kinda everything. Working on retro-dev C/asm for NES or Genesis? Lua projects? Shaders? Debugging a native Linux/SDL game? Doing some math in a Julia notebook? Unity3D development? Working on Windows/Mac? The answer is VSCode to all! I still use vim for some light stuff or working on remote machines, but meh… VSCode has nice defaults for me without having to fiddle.

For my native Linux gamedev, I’ve just been using the MS Cmake and Cpp-tools extensions. They work great, and you can script up the rest with actions. The debugger isn’t great, but it’s convenient and good enough for simple crashes. I switch to GDB when things get interesting though. I suppose I have an extension for shaders too, but it’s just syntax highlighting.

greywolf0x1,

You should look into VSCodium, it’s the same without microshit’s telemetry.

slembcke,

I have, but it doesn’t show the MS extensions like the C or CMake tools which is kind of a dealbreaker. None of the alternatives really work well enough in my experience. I’m fine with opting out of the telemetry.

Gobbel2000,
@Gobbel2000@feddit.de avatar

Neovim for me. There are so many plugins to make the editor behave exactly as you want.

andruid,

I really want to get more into neovim, being able to host the backend service and just point to it from other servers seems super useful for me!

Cornelius,

Yakuake with oh my zsh some plugins and themes and vscode (trying to switch to lapce) in Rust with cargo on Fedora

Gnubyte,

Hi! web dev here. It’s time to change your setup ever so slightly with VSCodium, and electerm too optionally: vscodium.comgithub.com/electerm/electerm

I usually install all my setups in PopOS or a server I’m developing on: github.com/gnubyte/debian-setup/blob/…/setup.sh

Then install Insomnia.rest, VSCodium, and finally electerm.

Basically I’ll program in nodeJS, BunJS, or python.

Then I’ll ask chatGPT via Rubberduck (link below) to generate a docker and docker compose live mount for my dependencies of my frontend and backends. Then I begin to iterate over my work.

github.com/rubberduck-ai/rubberduck-vscode

My latest flow is basically to start with chatGPT, write a four paragraph description of what I want, have it save me about five hours of boiler plate nonsense, and then disconnect from chatGPT to do the advance stuff like handle security, data structure relationships, etc. Sometimes I go back to chatGPT for how an algorithm should be implemented for efficiency inside a short snippet, then apply it again to my code. There was some great bloom filter work it was able to help me with.

Other stuff I’ve been trying is like podman and I’m interested lately in Jenkins to do builds since I realized I have too many projects that build and work a particular way, I can’t Shepard them all by hand. With that will likely come unit testing, both hopefully assisted by AI to cut down on time. I’d like to reinvest that time on hankerrank and frontend masters to start transitioning to something like rust.

Ultra980,

I use helix on NixOS. I have the most basic setup for c(++):

  • edit with helix
  • write custom makefiles with a script I made
  • test the program with the makefile
  • debug with cout or printf
Lalelul,

While I do like custom text editors, I feel like bad debugging is a no go.

Afiefh,

Mainly C++ with a sprinkling of Python and Rust for fun.

Used to code KDevelop, now VSCode. Build in a regular terminal (I prefer Meson over Cmake, both end up producing Ninja files.) Debug with valgrind, gdb and ddd. Push to Gitlab for my personal projects.

I use Docker for my test environments as it’s easy to bring them up and restore them to mint condition, and it ensures that the longer running tests with side effects don’t interfere with one another.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • uselessserver093
  • Food
  • [email protected]
  • aaaaaaacccccccce
  • test
  • CafeMeta
  • testmag
  • MUD
  • RhythmGameZone
  • RSS
  • dabs
  • oklahoma
  • Socialism
  • KbinCafe
  • TheResearchGuardian
  • Ask_kbincafe
  • SuperSentai
  • feritale
  • KamenRider
  • All magazines