├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .readthedocs.yml ├── CHANGES ├── CONTRIBUTING.rst ├── LICENSE ├── README.md ├── doc ├── Makefile └── source │ ├── bench.rst │ ├── commandline.rst │ ├── conf.py │ ├── contributing.rst │ ├── davcontroller.rst │ ├── examples │ └── khard.conf.example │ ├── index.rst │ ├── indices.rst │ ├── man.rst │ ├── man │ ├── khard-subcommands.rst │ ├── khard.conf.rst │ └── khard.rst │ └── scripting.rst ├── flake.lock ├── flake.nix ├── khard ├── __init__.py ├── __main__.py ├── actions.py ├── address_book.py ├── cli.py ├── config.py ├── contacts.py ├── data │ ├── config.spec │ └── template.yaml ├── exceptions.py ├── formatter.py ├── helpers │ ├── __init__.py │ ├── interactive.py │ └── typing.py ├── khard.py └── query.py ├── misc ├── davcontroller │ └── davcontroller.py ├── sdiff │ └── sdiff_khard_wrapper.sh ├── twinkle │ ├── scripts │ │ ├── config.py │ │ ├── incoming_call.py │ │ ├── incoming_call_ended.py │ │ └── incoming_call_failed.py │ └── sounds │ │ ├── incoming_call.ogg │ │ ├── outgoing_call.ogg │ │ └── ringtone_segment.ogg └── zsh │ ├── _email-khard │ └── _khard ├── pyproject.toml ├── test ├── __init__.py ├── fixture │ ├── broken.abook │ │ └── unparsable.vcf │ ├── discover.conf │ ├── minimal.abook │ │ └── minimal.vcf │ ├── minimal.conf │ ├── multiple_values.yaml │ ├── nick.abook │ │ ├── joe.vcf │ │ └── nickname.vcf │ ├── nick.conf │ ├── single_values.yaml │ ├── test.abook │ │ ├── contact1.vcf │ │ ├── contact2.vcf │ │ └── text-bday.vcf │ └── vcards │ │ ├── altid.vcf │ │ ├── category.vcf │ │ ├── contact1.vcf │ │ ├── contact2.vcf │ │ ├── individual.vcf │ │ ├── issue249.vcf │ │ ├── joe.vcf │ │ ├── korean-c.vcf │ │ ├── korean-j.vcf │ │ ├── labels.vcf │ │ ├── minimal.vcf │ │ ├── nickname.vcf │ │ ├── no-nickname.vcf │ │ ├── org.vcf │ │ ├── photov3.vcf │ │ ├── photov4.vcf │ │ ├── post.vcf │ │ ├── tel-value-uri.vcf │ │ ├── text-bday.vcf │ │ └── unparsable.vcf ├── helpers.py ├── test_actions.py ├── test_address_book.py ├── test_cli.py ├── test_command_line_interface.py ├── test_config.py ├── test_contacts.py ├── test_editor.py ├── test_formatter.py ├── test_helpers.py ├── test_helpers_interactive.py ├── test_helpers_typing.py ├── test_khard.py ├── test_query.py ├── test_vcard_wrapper.py ├── test_yaml.py └── test_yaml_editable.py └── todo.txt /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/.gitignore -------------------------------------------------------------------------------- /.readthedocs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/.readthedocs.yml -------------------------------------------------------------------------------- /CHANGES: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/CHANGES -------------------------------------------------------------------------------- /CONTRIBUTING.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/CONTRIBUTING.rst -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/README.md -------------------------------------------------------------------------------- /doc/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/doc/Makefile -------------------------------------------------------------------------------- /doc/source/bench.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/doc/source/bench.rst -------------------------------------------------------------------------------- /doc/source/commandline.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/doc/source/commandline.rst -------------------------------------------------------------------------------- /doc/source/conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/doc/source/conf.py -------------------------------------------------------------------------------- /doc/source/contributing.rst: -------------------------------------------------------------------------------- 1 | ../../CONTRIBUTING.rst -------------------------------------------------------------------------------- /doc/source/davcontroller.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/doc/source/davcontroller.rst -------------------------------------------------------------------------------- /doc/source/examples/khard.conf.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/doc/source/examples/khard.conf.example -------------------------------------------------------------------------------- /doc/source/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/doc/source/index.rst -------------------------------------------------------------------------------- /doc/source/indices.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/doc/source/indices.rst -------------------------------------------------------------------------------- /doc/source/man.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/doc/source/man.rst -------------------------------------------------------------------------------- /doc/source/man/khard-subcommands.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/doc/source/man/khard-subcommands.rst -------------------------------------------------------------------------------- /doc/source/man/khard.conf.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/doc/source/man/khard.conf.rst -------------------------------------------------------------------------------- /doc/source/man/khard.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/doc/source/man/khard.rst -------------------------------------------------------------------------------- /doc/source/scripting.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/doc/source/scripting.rst -------------------------------------------------------------------------------- /flake.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/flake.lock -------------------------------------------------------------------------------- /flake.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/flake.nix -------------------------------------------------------------------------------- /khard/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /khard/__main__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/khard/__main__.py -------------------------------------------------------------------------------- /khard/actions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/khard/actions.py -------------------------------------------------------------------------------- /khard/address_book.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/khard/address_book.py -------------------------------------------------------------------------------- /khard/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/khard/cli.py -------------------------------------------------------------------------------- /khard/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/khard/config.py -------------------------------------------------------------------------------- /khard/contacts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/khard/contacts.py -------------------------------------------------------------------------------- /khard/data/config.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/khard/data/config.spec -------------------------------------------------------------------------------- /khard/data/template.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/khard/data/template.yaml -------------------------------------------------------------------------------- /khard/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/khard/exceptions.py -------------------------------------------------------------------------------- /khard/formatter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/khard/formatter.py -------------------------------------------------------------------------------- /khard/helpers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/khard/helpers/__init__.py -------------------------------------------------------------------------------- /khard/helpers/interactive.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/khard/helpers/interactive.py -------------------------------------------------------------------------------- /khard/helpers/typing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/khard/helpers/typing.py -------------------------------------------------------------------------------- /khard/khard.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/khard/khard.py -------------------------------------------------------------------------------- /khard/query.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/khard/query.py -------------------------------------------------------------------------------- /misc/davcontroller/davcontroller.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/misc/davcontroller/davcontroller.py -------------------------------------------------------------------------------- /misc/sdiff/sdiff_khard_wrapper.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/misc/sdiff/sdiff_khard_wrapper.sh -------------------------------------------------------------------------------- /misc/twinkle/scripts/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/misc/twinkle/scripts/config.py -------------------------------------------------------------------------------- /misc/twinkle/scripts/incoming_call.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/misc/twinkle/scripts/incoming_call.py -------------------------------------------------------------------------------- /misc/twinkle/scripts/incoming_call_ended.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/misc/twinkle/scripts/incoming_call_ended.py -------------------------------------------------------------------------------- /misc/twinkle/scripts/incoming_call_failed.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/misc/twinkle/scripts/incoming_call_failed.py -------------------------------------------------------------------------------- /misc/twinkle/sounds/incoming_call.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/misc/twinkle/sounds/incoming_call.ogg -------------------------------------------------------------------------------- /misc/twinkle/sounds/outgoing_call.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/misc/twinkle/sounds/outgoing_call.ogg -------------------------------------------------------------------------------- /misc/twinkle/sounds/ringtone_segment.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/misc/twinkle/sounds/ringtone_segment.ogg -------------------------------------------------------------------------------- /misc/zsh/_email-khard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/misc/zsh/_email-khard -------------------------------------------------------------------------------- /misc/zsh/_khard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/misc/zsh/_khard -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/pyproject.toml -------------------------------------------------------------------------------- /test/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/__init__.py -------------------------------------------------------------------------------- /test/fixture/broken.abook/unparsable.vcf: -------------------------------------------------------------------------------- 1 | ../vcards/unparsable.vcf -------------------------------------------------------------------------------- /test/fixture/discover.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/discover.conf -------------------------------------------------------------------------------- /test/fixture/minimal.abook/minimal.vcf: -------------------------------------------------------------------------------- 1 | ../vcards/minimal.vcf -------------------------------------------------------------------------------- /test/fixture/minimal.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/minimal.conf -------------------------------------------------------------------------------- /test/fixture/multiple_values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/multiple_values.yaml -------------------------------------------------------------------------------- /test/fixture/nick.abook/joe.vcf: -------------------------------------------------------------------------------- 1 | ../vcards/joe.vcf -------------------------------------------------------------------------------- /test/fixture/nick.abook/nickname.vcf: -------------------------------------------------------------------------------- 1 | ../vcards/nickname.vcf -------------------------------------------------------------------------------- /test/fixture/nick.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/nick.conf -------------------------------------------------------------------------------- /test/fixture/single_values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/single_values.yaml -------------------------------------------------------------------------------- /test/fixture/test.abook/contact1.vcf: -------------------------------------------------------------------------------- 1 | ../vcards/contact1.vcf -------------------------------------------------------------------------------- /test/fixture/test.abook/contact2.vcf: -------------------------------------------------------------------------------- 1 | ../vcards/contact2.vcf -------------------------------------------------------------------------------- /test/fixture/test.abook/text-bday.vcf: -------------------------------------------------------------------------------- 1 | ../vcards/text-bday.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/altid.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/altid.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/category.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/category.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/contact1.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/contact1.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/contact2.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/contact2.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/individual.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/individual.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/issue249.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/issue249.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/joe.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/joe.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/korean-c.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/korean-c.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/korean-j.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/korean-j.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/labels.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/labels.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/minimal.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/minimal.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/nickname.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/nickname.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/no-nickname.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/no-nickname.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/org.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/org.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/photov3.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/photov3.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/photov4.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/photov4.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/post.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/post.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/tel-value-uri.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/tel-value-uri.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/text-bday.vcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/fixture/vcards/text-bday.vcf -------------------------------------------------------------------------------- /test/fixture/vcards/unparsable.vcf: -------------------------------------------------------------------------------- 1 | BEGIN:VCARD 2 | VERSION:4.0 3 | FN:second contact with minimal Vcard 4 | -------------------------------------------------------------------------------- /test/helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/helpers.py -------------------------------------------------------------------------------- /test/test_actions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/test_actions.py -------------------------------------------------------------------------------- /test/test_address_book.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/test_address_book.py -------------------------------------------------------------------------------- /test/test_cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/test_cli.py -------------------------------------------------------------------------------- /test/test_command_line_interface.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/test_command_line_interface.py -------------------------------------------------------------------------------- /test/test_config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/test_config.py -------------------------------------------------------------------------------- /test/test_contacts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/test_contacts.py -------------------------------------------------------------------------------- /test/test_editor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/test_editor.py -------------------------------------------------------------------------------- /test/test_formatter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/test_formatter.py -------------------------------------------------------------------------------- /test/test_helpers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/test_helpers.py -------------------------------------------------------------------------------- /test/test_helpers_interactive.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/test_helpers_interactive.py -------------------------------------------------------------------------------- /test/test_helpers_typing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/test_helpers_typing.py -------------------------------------------------------------------------------- /test/test_khard.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/test_khard.py -------------------------------------------------------------------------------- /test/test_query.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/test_query.py -------------------------------------------------------------------------------- /test/test_vcard_wrapper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/test_vcard_wrapper.py -------------------------------------------------------------------------------- /test/test_yaml.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/test_yaml.py -------------------------------------------------------------------------------- /test/test_yaml_editable.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/test/test_yaml_editable.py -------------------------------------------------------------------------------- /todo.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lucc/khard/HEAD/todo.txt --------------------------------------------------------------------------------