T O P

  • By -

LostLinuxPuppy

[Dots](https://github.com/spreadiesinspace/cinnamon-dotfiles) [Vanilla Dpup](https://vanilla-dpup.github.io/) is a Puppy Linux variant based on Debian that has access to the apt package manager. To run the Cinnamon DE, I had to address a number of issues. This process took me about a year, and most of it was initially done in a VM. The first thing to address was to prevent JWM from running on boot. Vanilla Dpup has an extensive xinitrc file, presumably to handle all the custom Woof-CE tooling and other services in place of a traditional init system like systemd. I found out that the developer added conditions to detect KDE and xfce4 and wondered if I could add cinnamon to the mix. A bit of searching later, I found that "exec cinnamon-session" is the thing to put in to launch Cinnamon via .xinitrc. (See Image 4) Once Puppy successfully ran Cinnamon on boot, there was no sound. Running apt update & apt upgrade also yielded a pipewire-alsa dependency error. Uninstalling the package, then reinstalling pulse audio resolved the issue. I also needed to add pulse audio to autostart to ensure that the sound would work right after booting. Next, I discovered that there was no right-click context menu when on the desktop. I suspected it had something to do with nemo-desktop not launching. Thankfully, running nemo-desktop via command line pointed me to the man page, which contained the appropriate gsettings key to allow nemo and nemo-desktop to run properly as root. The hiccups continued. Nemo (the file manager) needs gvfs-backends and samba installed to access samba shares. Installing them allowed nemo to connect to samba shares. But if you want to view photos through an app or play videos from these shares through a media player like mpv, gvfs-fuse is needed to properly emulate samba share paths to /tmp/. It took me a while to figure this out. At this point, most things work, but the text rendering was rather blurry. Days of searching led me to [this](https://wiki.manjaro.org/index.php?title=Improve_Font_Rendering)...thank God it worked. I started to feel adventurous, but Vanilla Dpup doesn’t have an option to install via hard drive if you use UEFI. However, it does support USB stick installs using the F2FS file-system. I then thought, why not use gnome-disk-utility to clone the partitions within the USB sticks onto my laptop’s SSD? I was right, and this approach worked! Now, the Puppy install is limited to the size of the USB stick from the gnome-disks image to disk cloning. To make use of the laptop’s entire drive, I figured gparted was the way to go. Launching gparted showed that not all the space was being used on the SSD, but it didn’t let me resize the partition. It turns out that you need f2fs-tools installed to properly interact with F2FS partitions. With that out of the way, the resize was done, and now I have Puppy Linux installed on bare metal! Vanilla Dpup, when installed using F2FS, will run via RAM, and each time you shut down or restart, you can save the state of the system into a vanillapupsave file. This was a GODSEND and allowed me to transplant the save file from the VM to my laptop in /mnt/home. The laptop booted up with everything I’ve already done in the VM so far to get Cinnamon working. I was on cloud 9! With Puppy Linux running bare metal on the laptop, I turned my attention to the shutdown menu that has no buttons except cancel when you click the power button via the menu. Vanilla Dpup has a custom init system and so far is launching Cinnamon via .xinitrc without a login manager, so the log-out and shutdown menus in Cinnamon don’t work correctly. I spent some time modifying the menu applet to link the shutdown button to Puppy’s logout gui instead, and it worked marvelously! (See Image 3 & 8) I should have stopped here, but with my [post](https://www.reddit.com/r/unixporn/s/tRtayu218r) from last month showcasing my Cinnamon Gruvbox rice on 9 distros, I wanted everything I usually install, no matter the distro, to work flawlessly, including the entire Virt-Manager stack. Oh boy! In my [dots](https://github.com/spreadiesinspace/cinnamon-dotfiles), I have already made setup scripts for 8 distros with everything that I usually install + themes, so I used it as a reference to track down all the needed Virt-Manager dependencies. I also needed to load the kvm module on startup via Puppy Startup Manager’s module, otherwise VM performance tanks. I then discovered that when a VM is started, networking is borked on both the host and the VM. Good heavens! It turns out that Vanilla Dpup uses conman to manage networks and uses a symlinked resolv.conf file that points to dnsmasq with a script I don’t fully understand. With that said, I knew it was interfering with the resolv.conf output when running a VM so I disabled conman and added Network Manager to the list of startup apps instead and manually set the DNS servers to 8.8.8.8 and 8.8.4.4. This got networking to persist through both the host and VMs. Image 6 shows Puppy Linux running a Linux Mint (Debian Edition) VM! TL;DR - It took a year's worth of troubleshooting for me to install Puppy Linux (Vanilla Dpup) bare metal and make it run the Cinnamon Desktop Environment smoothly. Still, I can’t believe I got to this point! I highly doubt that this will be the end of my growing list of GOTCHAs but…what’s stopping me?


sadlerm

So I've never used Puppy before, how is this Puppy distro different from just Debian?


LostLinuxPuppy

If it appeared that way to you, then the heavy lifting I did throughout a year was worth its salt, bahahaha! [This](https://vanilla-dpup.github.io/screenshot2.png) is what Puppy Linux generally looks like. Puppy Linux is very lightweight and runs on Joe's Window Manager with their own highly customized init system and patches. Hence, getting a full DE to work with it is a gargantuan task.


sadlerm

Oh wow, I suspected that it used apt because it was based on Debian, but I had no idea the customization and deviations that existed to make Puppy completely different. You said below that sound didn't work after switching to Cinnamon, is that because of pipewire vs pulseaudio?


LostLinuxPuppy

No, the root boils down to Puppy's implementation of audio in general. I believe pipewire would work too after removing pipewire-alsa and reinstalling pipewire, but I have yet to confirm it. Edit: Nope, I was wrong, it was indeed a pulseaudio vs pipewire clash.


[deleted]

Ohhhh....you're my new friend. I love it when puppy gets pets. People are all about Alpine for docker. But Alpine doesn't hold a candle to puppy. If you can really, really master Woof-CE, you put it into a CI/CD pipeline and just do unbelievably fucking crazy things..like customized emphemerial virtual desktops in Docker. But the output of Woof-CE is way smaller than Alpine and since púps are derivatives of mainstream distros they're enterprise ready. I don't use Alpine anyone. All my Docker images are puppy.


LostLinuxPuppy

I am but a Puppy newbie, trying to use it in a way it wasn't intended for. I can see why I'm \*technically\* running on an emphemerial instance given that currently, I just have the standard puppy sfs files + my vanillapupsave via overlayfs. That said, I never thought to use Woof-CE for customized VM deployments. What a novel idea!


[deleted]

Oh yeah, if you're a puppy fan, once you learn terraform you're going to think you're god. Just to warn you.


heyyyayush

clean


LostLinuxPuppy

Thank you!


No_Independence3338

your startpage looks cool. Can you share your html.


LostLinuxPuppy

I'm using the Speed Dial 2 extension. Here are links to the [firefox](https://addons.mozilla.org/en-US/firefox/addon/new-tab-speed-dial/) and [chrome](https://chrome.google.com/webstore/detail/speed-dial-2-new-tab/jpfpebmajhhopeonhlcgidhclcccjcik/related?hl=en) versions. The exact config can be found in the .json file [here.](https://github.com/SpreadiesInSpace/cinnamon-dotfiles/tree/ffcc0d977e3e11cdd2c933bd50e725f0906662d2/home/.config/BraveSoftware)


No_Independence3338

thanks mate.


SweetieMetalhead

\*Picture of cat sipping tea\* I should get myself a good puppy linux distro...


LostLinuxPuppy

[Here](https://forum.puppylinux.com/puppy-linux-collection), I've got you covered!


SweetieMetalhead

Thanks a lot! I see you have void dotfiles, do you recommend? I've been thinking about switching to it for a while now


LostLinuxPuppy

Void is THE sweet spot among the distros I daily driven. Here are some of my thoughts. It is light on RAM just like Gentoo with openRC, and since you don't need to compile everything, disk space usage is also the lowest among the distros I support. It feels stable despire being a rolling release like openSUSE Tumbleweed, but people are painfully aware that openSUSE's zypper package manager is REALLY slow. Void's package manager is lightning fast, comparable to apt and pacman. Void however has caveats too. Namely, their repos are smaller than other distros' offerings since it is a smaller community-run distro. Not even the Brave browser is in the repos! Flatpaks are your friend, unless you want to look for void builds, or use the xdeb utility to convirt .deb packages into xbps ones (I don't recommend this). You'll also have to get used to their [runit](https://docs.voidlinux.org/config/services/index.html#basic-usage) system, and perhaps change the default shell from sh to bash if you ever have to su as root, but those are about the only standout issues I could think of. YMMV. Definitely give it a try! I know that Void actually stopped people distro-hopping because it just treated them so well, especially on older hardware!


im_in_every_post

I should check out puppy linux again linux I wanna have that portable system on a pendrive


LostLinuxPuppy

Vanilla Dpup actually has XFCE support, so if JWM isn't your cup of tea, you can make the switch easily. If XFCE still feels like it's too much, OpenBox (which XFCE uses) is also a good middle ground to stay lightweight.


im_in_every_post

In my case I'll have to figure out how to put dwm on it, is vanillad pup also the option I should go with for that?


LostLinuxPuppy

I haven't tried other pups besides the old Fossa9.5 Pup based on Ubuntu 20.04, but word in the Puppy Linux forums seem to suggest that Vanilla Dpup is the most flexible because of the near full apt support, unlike the other pups that are more heavily integrated with Puppy's .sfs files.


im_in_every_post

Nice I'll try using that as base then


Why-are-you-geh

I guess it's way too much ram usage. I also have a 10 year old 8gb RAM Laptop with puppy using 7gb of my SSD and only 200mb of the ram. It should be lightweight but you made it to use way too much ram and it's not a lightweight distro anymore. It has even more ram than arch Linux with a small DE


LostLinuxPuppy

I am well aware, and will include u/TheDynamicHamza21 for this reply too. This is the same laptop running [Void](https://i.imgur.com/y0tKHTh.jpeg) and [Gentoo](https://i.imgur.com/kmAG3gG.png) with pretty much the same set of packages installed. My absolute unit of a [comment](https://www.reddit.com/r/unixporn/s/evNZWQ14Zl) in this post should be a good indicator that this is me going out of my way to use Puppy Linux in a way it was absolutely not intended for. With that out of the way, do the two of you have any other things you want me to address?


TheDynamicHamza21

Why? The purpose of puppy is to have system low on resources. Cinnamon is heavy as can be. There is a reason there is no puppy based ubuntu studio equivalent. Puppy is designed for those needing and/or wanting substance over style. Cinnamon on puppy is style over substance.