Coder Social home page Coder Social logo

rednekol / propertree-plisteditor Goto Github PK

View Code? Open in Web Editor NEW

This project forked from corpnewt/propertree

0.0 0.0 0.0 1.78 MB

Cross platform GUI plist editor written in python.

License: BSD 3-Clause "New" or "Revised" License

Shell 5.86% Python 89.55% Batchfile 4.59%

propertree-plisteditor's Introduction

What is it?

ProperTree is a cross-platform GUI plist editor written using Python (compatible with both 2.x and 3.x) and Tkinter.

Features

  • Cross-platform - should work anywhere python and tkinter do
  • Document-based to support multiple windows
  • Node drag and drop to reorder
  • Copy and paste
  • Find/Replace - allows searching keys or values
  • Ordered - or unordered - dictionary support
  • Full undo-redo stack
  • Backported support for binary property lists and unicode in python 2
  • Expanded integer casting to allow for hex integers (eg. 0xFFFF) in xml <integer> tags
  • Context-aware right-click menu that includes template info to OpenCore or Clover config.plist files
  • OC (Clean) Snapshot to walk the contents of ACPI, Drivers, Kexts, and Tools for OpenCore config.plist files
  • Value converter that supports Base64, Hex, Ascii, and Decimal

Getting ProperTree

Downloading The Repo As A ZIP File

On any system you can choose the green Code button, followed by the Download ZIP button (or click here) to download the entire repo as a zip file (note, this does not allow you to update via git pull - any updates would require you to download the repo again in the same fashion).

Cloning The Repo Via Git

On *nix systems:

git clone https://github.com/corpnewt/ProperTree
python ./ProperTree/ProperTree.py
- or -
python3 ./ProperTree/ProperTree.py

* On macOS, you can simply double-click the ProperTree.command after cloning to launch.

On Windows:

git clone https://github.com/corpnewt/ProperTree
./ProperTree/ProperTree.bat

FAQ

  • ProperTree opens a black window on macOS Monterey (12.x)

    It appears the default tk implementation that ships with macOS Monterey doesn't display correctly. A workaround is to download and install the latest build of python 3 from python.org (found here) which has a compatible tk bundled, then use the buildapp-select.command located in ProperTree's Scripts directory to build an application bundle targeting the installed python's path. You can then leverage the ProperTree.app bundle it creates.

  • ProperTree cannot open or save plist files on macOS Monterey (12.x)

    This appears to be an issue with the built-in tk, and the earlier "universal" installers from python.org. With at least python 3.10.2, this issue has been resolved in the universal builds. You can get the latest python 3 installer here. After installing, use the buildapp-select.command located in ProperTree's Scripts directory to build an application bundle targeting the installed python's path. You can then leverage the ProperTree.app bundle it creates.

  • How can I have ProperTree open when I double-click a .plist file?

    On macOS you can run buildapp-select.command located in ProperTree's Scripts directory to build an application bundle which can be associated with .plist files.

    On Windows, you can run AssociatePlistFiles.bat located in ProperTree's Scripts directory to associate .plist files with ProperTree.bat, and also to add an Open with ProperTree option to the contextual menu when right-clicking .plist files. This approach is location-dependent, and moving your copy of ProperTree will require you re-run AssociatePlistFiles.bat.

  • When I try to run ProperTree, I get [ModuleNotFoundError: No module name 'tkinter']

    That is because the graphical interface library that ProperTree depends on isn't present or cannot be detected, you need to install tkinter from your package manager.

    To install it on Ubuntu (and Ubuntu-based distros), you can run sudo apt-get install python3-tk -y

  • ProperTree doesn't run because it doesn't have permissions, what gives?

    This shouldn't happen and it is recommended that you download only from the official ProperTree repository, but if you are confident about your source, then running chmod +x ProperTree.command should sort it out

  • I use an international keyboard layout on macOS and some keys crash ProperTree with NSRangeException', reason: '-[__NSCFConstantString characterAtIndex:]: Range or index out of bounds

    This is a bug in the Cocoa implementation of Tcl/Tk on macOS (discussed here). The latest python 2 installer from python.org ships with, and uses Tcl/Tk 8.6.8 which has this issue fixed. Given that the shebang in ProperTree.command leverages #!/usr/bin/env python - the first python 2 binary found should be used. buildapp-select.command from ProperTree's Scripts directory can be used to hardcode a specific python install's path into the .app bundle's executable shebang.

  • ProperTree crashes on Big Sur (macOS 11)

    As of macOS 11.2 (20D5029f), the system's tk installation appears to be fixed, and works correctly. As such, it should not require an external python version to function.

    This is due to the default python installs on macOS leveraging an older tk version - which lacks support for macOS 11. To solve this, you can download and install the latest python 3 version from https://www.python.org/downloads/mac-osx/ (note: Currently the "universal" 3.9.1 installer causes theme issues and should not be used) then leverage the buildapp-select.command from ProperTree's Scripts directory to build a .app bundle that will leverage that python version.

    If you already have python 3 installed via brew or another package manager - it is likely still linking to the system tk version, which will still have issues unless linked against a newer version.

  • buildapp-select.command Usage

    An example of the output of buildapp-select.command is shown below. It will walk the output of which python and which python3, then attempt to load the tk interface while keeping track of which work and which fail. The example below is from macOS 11.2 (20D4029f) with the system versions of python 2 and 3, as well as python 3.9.1 installed from python.org. If there's an existing ProperTree.app in the directory above the Scripts folder, the shebang of that app will be located and served up as the C. Current option. At the following menu, I would select option 3 or C to use the non-system python install.

 - Currently Available Python Versions -

1. /usr/bin/python 2.7.16 - tk 8.5 (8.6+ recommended)
2. /usr/bin/python3 3.8.2 - tk 8.5 (8.6+ recommended)
3. /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 3.9.1 - tk 8.6
4. /usr/bin/env python
5. /usr/bin/env python3

C. Current (/Library/Frameworks/Python.framework/Versions/3.9/bin/python3)
Q. Quit

Please select the python version to use:  

propertree-plisteditor's People

Contributors

cclauss avatar cheesycod avatar cktse avatar corpnewt avatar denisps avatar dids avatar hchargois avatar kernel-dev avatar khronokernel avatar kwvg avatar lucio97 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.