Skip to content

meowrch/nemo-tags

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Nemo Tags Logo

๐Ÿท๏ธ Nemo Tags

A powerful tagging system for Nemo File Manager

Issues Stars License

RU-LANGUAGE EN-LANGUAGE

Features โ€ข Installation โ€ข Usage โ€ข Configuration



preview

โœจ Features

๐ŸŽจ Color-Coded Tags

Create unlimited tags with custom names and colors. Organize your files visually with a palette that matches your workflow.

๐Ÿ–ฑ๏ธ Context Menu Integration

Right-click any file or folder to quickly assign or remove tags. Multi-select support makes batch tagging effortless.

๐Ÿ” Virtual Tag Folders

Click on any tag to open a dedicated view showing all tagged files in one place. Files appear as symbolic links, keeping your original directory structure intact.

๐ŸŽฏ Visual Emblems

Tagged files display color-coded emblems directly on their icons. Multiple tags? No problem โ€” emblems combine elegantly to show up to three tag colors at once.

๐Ÿš€ Tag Bar Widget

A sleek horizontal bar beneath Nemo's address bar displays all your tags. Left-click to browse, right-click to manage.

๐Ÿ“ฆ Lightweight & Private

All tag data is stored in a simple JSON file in your home directory. No database servers, no cloud sync, no extended attributes on your filesystem.


๐ŸŽฏ Use Cases

๐Ÿ“ธ Photography

Tag photos by project, client, or editing status. Find all "favorites" or "needs-edit" files instantly.

๐Ÿ“š Research

Organize papers by topic, priority, or reading status across multiple directories.

๐Ÿ’ผ Projects

Mark files as "urgent", "in-progress", or "archived" without moving them from project folders.

๐Ÿ“ฆ Installation

Method 1: AUR (Arch Linux)

yay -S nemo-tags
# or
paru -S nemo-tags

Method 2: Manual Installation

Prerequisites

Ensure you have the following packages installed:

# Debian/Ubuntu
sudo apt install nemo-python python3-gi python3-cairo

# Arch Linux
sudo pacman -S nemo-python python-gobject python-cairo

# Fedora
sudo dnf install nemo-python python3-gobject python3-cairo

Installation Steps

  1. Clone the repository:
git clone https://github.com/meowrch/nemo-tags.git
cd nemo-tags
  1. Install the extension:
mkdir -p ~/.local/share/nemo-python/extensions
ln -s "$(pwd)/nemo-extension/nemo-tags.py" ~/.local/share/nemo-python/extensions/nemo-tags.py
  1. Restart Nemo:
nemo -q

The extension will load automatically when you open Nemo again.


๐ŸŽฎ Usage

Creating Your First Tag

  1. Right-click any file or folder
  2. Select "Assign Tag" โ†’ "Create Tag"
  3. Enter a name and choose a color
  4. Click OK

The tag is automatically assigned to the selected files!

Assigning Tags

Right-click on the file(s) to open the context menu โ†’ โ€œAssign Tagโ€ โ†’ Select the tag name

Tags that have already been assigned are displayed with a check mark (โœ“)

Browsing Tagged Files

Click any tag button in the tag bar to open a virtual folder containing all files with that tag. These folders use symbolic links, so:

  • Original files remain in their locations
  • Changes to files are reflected everywhere
  • No disk space is duplicated

Managing Tags

Edit or Delete:

  • Right-click a tag button in the tag bar
  • Select "Rename tag" to change the name
  • Select "Change color" to change the color
  • Select "Delete Tag" to remove it entirely

Reorder:

  • Click on the button at the top right to open the window for changing the order of tags.

โš™๏ธ Configuration

Data Storage

All tag data is stored in:

~/.local/share/nemo-tags/
โ”œโ”€โ”€ tags.json          # Tag database
โ”œโ”€โ”€ emblems/           # Generated emblem icons
โ””โ”€โ”€ views/             # Virtual tag folders
    โ””โ”€โ”€ tag-<id>/      # Symbolic links to tagged files

Database Format

The tags.json file uses a simple structure:

{
  "tags": [
    {
      "id": "a3f9c2e7",
      "name": "Important",
      "color": "#FF5252"
    }
  ],
  "index": {
    "a3f9c2e7": [
      "/home/user/Documents/report.pdf",
      "/home/user/Photos/vacation.jpg"
    ]
  }
}

Backup

To backup your tags, simply copy the directory:

cp -r ~/.local/share/nemo-tags ~/nemo-tags-backup

๐Ÿ› ๏ธ Technical Details

Architecture

  • Extension Type: Nemo Python extension
  • UI Framework: GTK 3 via PyGObject
  • Database: JSON-based flat file
  • Virtual Folders: Symbolic links

Components

Module Purpose
database.py Tag storage and indexing
manager.py Business logic and file operations
extension.py Nemo integration (menus, emblems, info)
ui.py Tag bar widget and dialogs
icons.py Dynamic icon and emblem generation

Performance

  • Startup Time: < 200ms for 1000+ tags
  • Emblem Rendering: Async generation with icon cache
  • Virtual Folders: Generated on-demand, cached

๐ŸŽจ Built With

Developed on

Meowrch Linux

Meowrch โ€” A Linux distribution built for creators and developers


๐Ÿค Contributing

Contributions are welcome! Here's how you can help:

  • ๐Ÿ› Report bugs and request features via Issues
  • ๐Ÿ”ง Submit pull requests with improvements
  • ๐Ÿ“– Improve documentation
  • ๐ŸŒ Add translations

๐Ÿ“ License

This project is licensed under the GPL-3.0 License - see the LICENSE file for details.


๐Ÿ™ Acknowledgments

  • Nemo File Manager โ€” The extensible file manager from Linux Mint
  • PyGObject โ€” Python bindings for GTK
  • Meowrch โ€” For providing an excellent development environment

Made with โค๏ธ for the Linux community

โญ Star this repo โ€ข ๐Ÿ› Report Bug โ€ข โœจ Request Feature