Avid Seeker

My Linux Journey with some desktips

Here is the Linux journey I would’ve set to myself if I started getting into Linux.

Fedora: Sane defaults

I’d start with Fedora KDE Plasma. KDE is the most DE with sane defaults. Fedora has a sane release schedule, and has a sane default for native packages. This is unlike Ubuntu with Snaps and flatpaks everywhere.

Sane post-installation walkthrough for any Linux distro:

  1. Auto-cleaners for pacman and pamac caches.
  2. Mirrors
  3. Input Methods (1st step for non-English speakers)
  4. Firewall
  5. Mouse/touchpad sensitivity a. natural/logical scrolling b. tap to click1 c. Autoscroll: a very sane default from windows that is missing for some reason on Linux.2
  6. File indexing: for quicker searches.
  7. Snapshots/timeshift3
  8. Light/Dark theme3
  9. Theming options. E.g: What if users want text selection highlight to be blue (like Windows) instead of green (theme of Manjaro)

Turn off non-sensical defaults:

Discussion: https://forum.manjaro.org/t/145759

Arch: Desktop from scratch

Gradually, after settling in with KDE and knowing basic PC jobs: sound, microphone, cameras, speakers, bluetooth, scanning, printing, I’d move to building the desktop again from scratch. The motivation for this step is that tiling window managers are awesome and useful tools, that mostly require you to build your desktop right from the beginning.

Start by slowly replacing GUI applications with desktop-agnostic GUIs. Then one by one, look into these topics:

Programs and formats from scratch

Move to futureproof and plaintext format:

Download manager: userspace downloading scripts:

Security hardeninng

Check Security post.

Gentoo: Building from scratch

Linux Wishlist

Even after a fully comfy setup with Linux, I still miss some features back from windows, that I’m surprised they have no equivalent on Linux.

Binding files

There was an old feature in Windows that somehow bind files to each other. Try this on Windows: Ctrl+S to save this page as HTML, then rename the HTML file, you’ll get a dialog like:

If you rename this file, it will no longer blong to the folder ‘Linux - Wikipedia_files’

Dialog showing the prompt

And when the html file is moved to another location, its asset directory is also moved.

The use cases for this are plenty. The most common one is when you have a lot of markdown files with corresponding asset directories (think of static websites generators).

When I switched to Linux, I just accepted this might require a lot of work to get implemented. But I was just looking into Extended attributes and thought it might be way easier. Of course, every file manager (and perhaps CLI utilities) might need to be reworked to respect the attached xattr, but it still simplifies the job.

Shortcut files

See also: [Wikipedia](https://en.wikipedia.org/wiki/Shortcut_(computing)

This is the “shortcuts” feature in Windows, where creating a shortcut of a file, still points to that file even when it’s moved. (and it’s commonly requested).

A shortcut file is different than a symlink in the sense that it just launches. There are many alternatives

Issues:

Hash sum database

The way I thought of to implement this in Linux is to have a .desktop entry as:

[Desktop Entry]
Type=Link
Name=k&r
X-md5=c388f83ebee784d49e981f298713fda2

instead of

[Desktop Entry]
Type=Link
Name=k&r
URL=file:///home/user/books/k&r.pdf

If it’s possible to implement this feature then it’s simple to write script.sh k&r.desktop that looks up this file given its hash sum in the plocate database. This makes it so that k&r.desktop doesn’t have to be edited every time a file is moved.

Type-ahead find

Type-ahead find is such an underrated feature that I don’t think people really paid attention to despite being from the file explorer of WindowsXP.

It lets you select a file by typing its initial characters. So far, the best GUI file managers implementing this are Thunar and Dolphin (I think even Windows Explorer has it). But Dolphin annoyingly added a “filtering” feature that made pressing a space an annoyance. This made me look into terminal file managers that I can set them precisely how I want without being affected by such annoying updates.

I don’t know why terminal file managers insist on vim keybindings. They could be the best for editing text but not for navigating between files. This is like using j,k to move up and down inkscape tools instead of just pressing p for pen or t for text.

Workaround

Ranger almost has this feature, but you need to type f to enter “find” mode. If there is a way to enable “find” mode in Ranger by default, this will solve the problem.

I’m currently using lf, and the current workaround I figured was remapping of all keys

# Nav
map <a-h> updir
map <a-j> down
map <a-k> up
map <a-l> open
map <enter> open
map <space> :toggle
map <c-w> quit
map <f-2> rename

map q push :find<enter>q
map w push :find<enter>w
map e push :find<enter>e
map r push :find<enter>r
map t push :find<enter>t
map y push :find<enter>y

Deflinker

In MediaWiki, you can reference an article just by using its title enclosed by double square brackets: [i][[Arch Install]][/i].

In HTML/Markdown, either an absolute or relative path must be specified.

I’m trying to achieve having MediaWiki reference style in Markdown, and I’m mainly using Vim as an editor. I have two thoughts about how to achieve this.

Universal solution: “deflinker”. Where a script deflates a directory recursively using symlinks. This is similar to how static site generators work. So even if you organize your markdown entries in subdirectories, you still end up with all html files in root directories.

In effect, referencing another markdown file will be something like

[code]
This is a [url](/l/other.md) to another md file.
[/code]

Assuming files are deflinked to /l/


  1. Plasma 6 has this by default ↩︎

  2. See Chromium#Enabling_autoscroll and Firefox#Middle-click_behavior ↩︎

  3. Linux Mint has this in welcome screen. ↩︎ ↩︎

  4. A sane default because it shows you the current progress or percentage of page you’re viewing. What’s ironic is that websites now like Discourse re-invent the wheel by adding a progress line indicating where in the page you are. ↩︎