I’ve just been getting up and running with a minimal distro lately and also discovered user-dirs.dirs, so I’m no longer bound by the standard auto-generated Home folders.

Looking to share and learn how other comrades organise their home directories. Any tips appreciated, and also just seeing how other people like to use and organise ~/ :-)

Here’s how I’ve organised ~/ on my new install so far:

* audio/
    * audiobooks/
    * music/
    * podcasts/
* books/
* documents/
* dotfiles/
* downloads/
* images/
    * photos/
    * screenshots/
    * wallpaper/
* opt/
* planner/
* projects/
* scripts/
* videos/
* workspace/

… plus all the hidden cruft that’s placed in home by various programs. I do my best to enforce the XDG_CONFIG_HOME standard but I’m still in the process of moving stuff into .config/.

Most of these are self-explanatory. opt/ is for software I build from source or otherwise not available in my package manager. planner/ is a git repo full of plain text and markdown files used to manage productivity and take notes. projects/ is my personal git repos containing stuff like my blog, creative writing etc. scripts/ is part of my $PATH and contains executable helper scripts such as setting a random wallpaper, fetching mail, etc. It’s also a git repo. workspace/ is actually the XDG_DESKTOP_DIR but renamed. My window manager doesn’t put files/folders on the actual desktop so I use this space for repos I contribute to for my job as well as transient tasks which require a folder structure for getting something done but which will likely be removed later. Basically stuff that’s not an actual personal “project” and I’m working on at the moment.

Things I’m thinking about:

  • alternative names for downloads/. There are three folders which start do meaning tab-complete only works on the third letter. Not ideal. I’ve seen some people use incoming/ but I keep flip-flopping on whether I like this or not.
  • Possibly renaming dotfiles/ to .dotfiles/ but then, I use it a fair amount at the moment.
  • adding an articles folder for academic articles and HTML blog posts I want to keep locally.
  • @Prologue7642@lemmygrad.ml
    link
    fedilink
    41 year ago

    I basically just use default. Or rather, I don’t store almost anything in ~ except for .config and few local binaries. Almost everything else is organized on my home server. There I have everything I downloaded sorted in media/tv media/anime media/movies media/music. Where it is automatically put by Sonarr/Radarr/Lidarr or in case of music downloaded from soulseek and then imported with beets. Then I just differentiate between work projects and personal projects. Plus some randomly created norg files for organization (I really have to create proper system for them).

    • mrshll1001OP
      link
      fedilink
      11 year ago

      Ah nice. My media (tv, movies) does live on an external drive. I use videos for family videos such as ones we upload from a phone or camera.

  • 🏳️‍⚧️ Elara ☭
    link
    fedilink
    3
    edit-2
    1 year ago

    For some reason, my brain just doesn’t like having folders in my home directory that don’t start with a capital letter.

    My home directories look something like this:

    .
    ├── Applications
    ├── Code
    │   ├── Scripts
    │   └── AUR
    ├── Desktop
    ├── Documents
    │   └── Nextcloud
    ├── Downloads
    ├── Music
    ├── Pictures
    │   └── Wallpapers
    ├── Videos
    └── Workspace
    
    • Applications stores appimages
    • Code contains the git repos of any projects I’m working on
      • Code/AUR contains my AUR packages
    • Desktop is pretty much unused, but it was created automatically so it’s there
    • Documents/Nextcloud is the directory that’s synced to my Nextcloud instance
    • Workspace is where I experiment with random stuff that usually doesn’t last long. If it does, I move it to Code.

    Everything else should be pretty self-explanatory.

    • mrshll1001OP
      link
      fedilink
      31 year ago

      For some reason, my brain just doesn’t like having folders in my home directory that don’t start with a capital letter.

      That’s fair. It never used to bother me at all but as I tend to do most stuff on the terminal these days I’ve wanted to keep everything more consistent. First the spaces bothered me, then the capitals :-P But having home folders with capitals feels like a nice exception as it is a relatively special folder.

      I like how clear Applications is. It’s also cool how you’ve got the Nextcloud folder underneath Documents, very tidy.

    • Jonny
      link
      fedilink
      11 year ago

      What is user-dir.dirs? I only know /etc/skel as template for new user dirs

    • Jonny
      link
      fedilink
      11 year ago

      What is user-dir.dirs? I only know /etc/skel as template for new user dirs

  • Jonny
    link
    fedilink
    English
    2
    edit-2
    1 year ago

    What is user-dirs.dirs? I only know /etc/skel as template for new user dirs

    • mrshll1001OP
      link
      fedilink
      English
      11 year ago

      user-dirs.dirs is a file that lives in $HOME/.config/user-dirs.dirs and contains your user-defined values for the XDG user directories standard. The Arch Wiki Page is a good summary. Basically common directories such as Desktop, Documents, Music etc.

      If you’ve got xdg-user-dirs-update on your system, it’s run on login and creates the directories specified if they don’t exist. Programs can then read this config file to do things such as placing downloaded files in your user-specified equivalent of Downloads. Another use case is file managers drawing special icons for Documents, Music etc.

      Here’s my file, related to my folder structure above:

      XDG_DESKTOP_DIR="$HOME/workspace"
      XDG_DOCUMENTS_DIR="$HOME/documents"
      XDG_DOWNLOAD_DIR="$HOME/downloads"
      XDG_MUSIC_DIR="$HOME/audio"
      XDG_PICTURES_DIR="$HOME/images"
      XDG_PUBLICSHARE_DIR="$HOME/"
      XDG_TEMPLATES_DIR="$HOME/"
      XDG_VIDEOS_DIR="$HOME/videos"
      

      I don’t need the Templates and Public directories, so I just map these directly to $HOME to prevent them being auto-created. There may be a better or cleaner way, but I found that even if I omitted the line or commented them out the default Templates and Public directories would get created.

  • @lxvi@lemmygrad.ml
    link
    fedilink
    11 year ago

    I basically use the default except that I soft-link other file systems to home; ~/hrd/ then soft-link various files where they’re relevant. I don’t use downloads on home but from an HDD which is subdivided based on source and treated as a raw dumpsite. From there I’ll hard-link and rename files to relevant locations.

    • mrshll1001OP
      link
      fedilink
      01 year ago

      Wow that seems like a lot of work with all the linking. Do you have any scripts or use GNU stow to set up your links for if you do a wipe or a fresh install? Or is /home on its own partition?

      • @lxvi@lemmygrad.ml
        link
        fedilink
        11 year ago

        It’s not a lot of work.

        ln -s mnt/hrd hrd

        Now if I want to get to the hard drive I can do it from the home directory.

        If your downloading something you wouldn’t just leave it in a download directory. You’d want to organize it anyway. It doesn’t hurt anything to cp -l or ln rather than mv.

        If it’s a torrent file, it can’t be moved from the directory and still be available to seed.

        If your working on something that are otherwise organized somewhere else, it’s a lot easier to have those files all in one directory. Why not just soft or hard link to a single working directory.

        I use default partitions. You’d set up a script to do the same thing multiple times under the same conditions. I’m not deleting and recreating my filesystem every other week, or at all for that matter.

        • mrshll1001OP
          link
          fedilink
          21 year ago

          ln -s mnt/hrd hrd

          Ok when you put it like that, that’s a lot less work! I might symlink the /media or /mnt mountpoints to home at some point.

          From your previous comment I picked up on “From there I’ll hard-link and rename files to relevant locations.”, which sounded like you did a lot manually. Obviously the ln command is quite easy to just fire off, but I must’ve misinterpreted because it I thought every time you downloaded something you’d symlink it manually.

          • @lxvi@lemmygrad.ml
            link
            fedilink
            2
            edit-2
            1 year ago

            I’d be careful with /media since /media isn’t automatically mounted on boot, and is customarily used for temporary filesys. If you soft-linked to media the link would appear broken if the device was missing, usb, cd, external. If you have a permanent drive in media you should move it to mnt.

            mkdir /mnt/“name”

            lsblk

            # find /dev for /media – dev/sda2 mounted at /media/“user”/“name” –

            unmount /dev/“name” # if mounted

            mount /dev/“name” /mnt/“name”

            # For instance

            mount /dev/sda2 /mnt/“name”

            Alternatively use the gui. Mine is called “disks” and works well.

            If you prefer bash it’s important that you make the directory you intend to mount the device to first, as you can only mount to an existing, empty directory.

            But soft-linking to media will end up with broken links, which, at the very least, will look ugly.

          • @lxvi@lemmygrad.ml
            link
            fedilink
            2
            edit-2
            1 year ago

            I generally will do a lot manually, say I download a movie using transmission. Those torrent files are under ~/hrd/downloads/transmission

            I have to leave that file there exactly as it is for it to seed, but I don’t want it there, I don’t like it’s name, and I don’t like the extra files.

            ls *string*

            ln “name” ../../movies/“new name”

            Now I have two files of the same inode (taking up a single amount of physical space), one readable and one serving the purpose of seeding.

            I wouldn’t do this for everything but for things I want to keep more permanently.

            It also serves another purpose: I can delete the file from the Transmission directory and it will still exist in the Movie directory, since an inode isn’t overwritten unless it has zero files pointing to it, so hard-linking provides an extra level of redundancy to prevent accidental erasure.

            This is also useful for indexing and creating playlists.

            celluloid .cel/unleashthearchers &

            Instead of

            celluloid ~/hrd/music/unleash_the_archers/*/*.{flac,mp3} &

      • @lxvi@lemmygrad.ml
        link
        fedilink
        11 year ago

        Also if you delete or rename major default directors like “downloads” programs will create a new directory under the old name if they default to it.

        If you really don’t want to type the third letter have one uppercase and one lowercase. That would be enough

        • mrshll1001OP
          link
          fedilink
          11 year ago

          Also if you delete or rename major default directors like “downloads” programs will create a new directory under the old name if they default to it.

          Thankfully none of the software I use does this. They either follow the XDG standard or let me set it manually before I downloaded anything (Firefox).

          If you really don’t want to type the third letter have one uppercase and one lowercase. That would be enough

          That’s fair.

  • @BRINGit34@lemmygrad.ml
    link
    fedilink
    English
    19 months ago

    I only add a roms folder and my secondary drive mounted in my home folder. I like a simple and clean home folder with more complex folders the farther I go down a tree