Skip to content

chg-hou/DawnlightSearch

Repository files navigation

DawnlightSearch

A Linux version of Everything Search Engine. Support NTFS indexing. Show instant results as you type.

The app is still under development and not stable. Comments and pull requests are very appreciated.

Build Status Translation status

Translation status

Table of Contents

  1. Translation Contributors
  2. Similar Everything-like Search Engine in Linux
  3. Highlights
  4. Interface
  5. Search Syntax
  6. Installation
  7. TODO

Translation Contributors:

(As I accidently modified the settings in weblate, history logs were deteled. Sorry for that.)

Language Contributors
German (de) Andreas Kleinert ( andyk)
CurlingTongs ( CurlingTongs)
ssantos ( ssantos)
Spanish (es) M.Veamonte ( mavese)
French (fr) Deleted User ( deleted-16022)
Estébastien Robespi ( Estebastien)
Indonesian (id) yusuf afandi ( afandiyusuf)
Norwegian Bokmål (nb_NO) Allan Nordhøy ( kingu)
Polish (pl) DamN ( DamN)
Portuguese (pt) Rui Mendes ( tonela)
ssantos ( ssantos)
Portuguese (Brazil) (pt_BR) Rui Mendes ( tonela)
Russian (ru) Pavel Levchuk ( lev4uk_pavel2)
Schwonder Reismus ( schw0reismus)
Ukrainian (uk) uievawkejf ( uievawkejf)
Chinese (Simplified) (zh_Hans) Allan Nordhøy ( kingu)

Similar Everything-like Search Engine in Linux:

(Ordered by first commit date)

Name Language GUI Database
ANGRYsearch Python3 PyQt5 SQLite3
fsearch C GTK+3 (built-in)
DawnlightSearch (old) Python3 PyQt5 SQLite3
DawnlightSearch (this) C++ Qt5 SQLite3

Test environment:

  • Ubuntu 16.04 / 18.04

Highlights:

  • Instant search.
  • Support wildcards and regular expressions.
  • Support filter on multi fileds: file name, folder, full path, size, mtime, ctime, and atime.
  • Quick file indexing for NTFS partition by parsing master file table (MFT).
  • Customizable dock widget design.
  • Multi-threaded search.
  • Drag&drop search results. (v0.1.2.2)

Video demo:

https://youtu.be/949Jm9j4sP4


Interface:

Database:

Partitions of differenct UUIDs will be stored seperatedly in the database. In circumstances where duplicate UUIDs exist, they will be treated as a single one and records will be overwritten.

  1. Whether search this partition. You need to check it to search the corresponding partition. Icon indicates the mount state.

  2. Can be changed into any name you want. Will display in front of the path when partition unmounted.

  3. Whether update this partition when “Update DB” clicked. You can always update a partition using the context menu, regardless of the checked state.

Menubar:

  1. Edit excluded paths when indexing. Only full path is supported right now. Note: MFT parser will disregard this option.

  2. Check this option to use MFT parser to speed up building index on an NTFS partition (like other MFT based searcher).

  3. Check to use the C++ MFT parser instead of the Python one. The C++ one is supposed to be much faster.

Search Syntax:

Logical Operators Description
  space AND
| vertical bar OR
! exclamation mark NOT
Wildcards Description
  space AND
| vertical bar OR
! exclamation mark NOT

Note: global "nocase" settings DOES have effect on regular expression.
Examples:

reg:"a" will match "123abcd". Will also match "123Abcd" if case-insensitive.

Installation:

From Source https://github.com/chg-hou/DawnlightSearch/wiki/Build-from-source
AppImage (https://github.com/chg-hou/DawnlightSearch/releases)
Snaps (fail to access lsblk)
Flatpak (fail to work)
  • Qt5

  • kio-dev

  • libsqlite3-dev

  • util-linux

TODO:

  • Auto indexing.
  • Monitor file system changes.
  • Index files in archives.
  • More language options.
  • Support Windows.

FIXME: