Giter Club home page Giter Club logo

plainpasta's Introduction

Plain Pasta's app icon

Plain Pasta

Plain Pasta was a tiny Mac app that makes "Paste and Match Style" the default copy/paste behavior.

⚠️ Plain Pasta is no longer under active development ⚠️

This was a really fun project to work on, but I will no longer be actively developing on the project. I'm leaving it here in case there is any code that could still be useful to others. Check out the release notes for a little more information if you'd like: https://github.com/hisaac/PlainPasta/releases/tag/1.3.0

If you're looking for something like Plain Pasta that is still being developed, I'll direct you to the excellent Pure Paste by @sindresorhus. It does everything I had hoped for Plain Pasta to do someday, and then some.

I was in the process of working on a major update to the app. I've kept that work in a separate branch here for reference purposes: 2.0.0-beta

👋

Demonstration

Plain Pasta sits in your menu bar, and watches your clipboard for text, removes any styling from the text, and puts plaintext back on your clipboard.

I made this app because I rarely want styling to be copied to my clipboard. When I copy text, all I want is the text.

Download the most recent version of Plain Pasta from the Mac App Store.

Without Plain Pasta

A screen recording of text and style being copy/pasted

Copy/Pasting styled text takes both the text and the styling with it

With Plain Pasta

A screen recording of text being copy/pasted without its styling

Copy/Pasting styled text with Plain Pasta enabled only pastes the text itself, no styling

Contributing

PRs are more than welcome!

To get up and running, you'll need to clone this repo, and then initialize the VerifyNoBS submodule using:

git submodule update --init

Attribution

Plain Pasta was inspired by another app called FormatMatch by Robert Wessels.

I've used FormatMatch for many years. I would've happily used it for many more years to come, but the app hasn't been updated for over 6 years, and Robert Wessel's website is no longer live. I've been concerned for the continued life of the app, so I finally decided to take the time to write a new version using modern technologies.

plainpasta's People

Contributors

hisaac avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

plainpasta's Issues

Crashes at Launch

The app crashes instantly when launching it, looks like a code signing issue?

Process:               Plain Pasta [57050]
Path:                  /Applications/Plain Pasta.app/Contents/MacOS/Plain Pasta
Identifier:            software.level.PlainPasta
Version:               ???
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Plain Pasta [57050]
User ID:               501

Date/Time:             2018-10-26 00:11:05.631 -0500
OS Version:            Mac OS X 10.14 (18A391)
Report Version:        12
Anonymous UUID:        C0E61A7F-3E11-408D-9662-7B0EEE2D1736

Sleep/Wake UUID:       D607B0AD-CA20-4C26-90A8-5671AFAA0461

Time Awake Since Boot: 95000 seconds
Time Since Wake:       3400 seconds

System Integrity Protection: enabled

Crashed Thread:        0

Exception Type:        EXC_CRASH (Code Signature Invalid)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    Namespace CODESIGNING, Code 0x1

kernel messages:

VM Regions Near 0 (cr2):
--> 
    __TEXT                 0000000100e04000-0000000100e0a000 [   24K] r-x/rwx SM=COW  

Thread 0 Crashed:
0                                 	0x0000000109615000 _dyld_start + 0

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000000  rbx: 0x0000000000000000  rcx: 0x0000000000000000  rdx: 0x0000000000000000
  rdi: 0x0000000000000000  rsi: 0x0000000000000000  rbp: 0x0000000000000000  rsp: 0x00007ffeeedfbbd8
   r8: 0x0000000000000000   r9: 0x0000000000000000  r10: 0x0000000000000000  r11: 0x0000000000000000
  r12: 0x0000000000000000  r13: 0x0000000000000000  r14: 0x0000000000000000  r15: 0x0000000000000000
  rip: 0x0000000109615000  rfl: 0x0000000000000200  cr2: 0x0000000000000000
  
Logical CPU:     0
Error Code:      0x00000000
Trap Number:     0


Binary Images:
       0x100e04000 -        0x100e09fff + (0) <F53ADF3D-EDB0-3CBC-95EC-B12FBC9EE914> 
       0x109614000 -        0x1096926a7 + (625.13) <D6387150-2FB8-3066-868D-72E1B1C43982> 

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 66948
    thread_create: 0
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=728K resident=0K(0%) swapped_out_or_unallocated=728K(100%)
Writable regions: Total=8404K written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=8404K(100%)
 
                                VIRTUAL   REGION 
REGION TYPE                        SIZE    COUNT (non-coalesced) 
===========                     =======  ======= 
STACK GUARD                       56.0M        2 
Stack                             8192K        2 
__DATA                             240K        5 
__LINKEDIT                         196K        3 
__TEXT                             532K        3 
shared memory                        8K        3 
===========                     =======  ======= 
TOTAL                             65.0M       12 

Copying an application then creating a new document in Preview does not retain the icon as expected

Submitted via email by Bernard:

In order to illustrate the magazine, I need icons of applications.
To get them, I use the classical [cmd] [c] on the application, then open Preview (Aperçu in French) then press [cmd] [n] to create a new document from the pasteboard…
When Plain Pasta is active, I get nothing in that new Preview window !
When Plain Pasta is not running, everything works normally.

I am able to reproduce the issue. Strangely, the issue does not occur when running the app through Xcode. It only happens when running the release version. More investigation is needed.

Add the ability to bind plain pasta to a unique key chord

Consider adding a feature that allows folks to invoke copying with plain pasta from a special keyboard shortcut, this way the normal keyboard shortcut and copying behaviour could remain intact, and the awesome power of plain pasta can be reserved for only those special occasions when it is truly necessary.

Ability to disable for certain apps

Sublime Text has a feature where if you have no text selected and press command-C it will copy the full line (including trailing newline). If you then press command-V (without moving the cursor or selecting anything) it will insert the line but will first create a new blank line. The effect of this is to have two identical consecutive lines at this point.

This behavior is broken with PlainPasta enabled which is probably not surprising. Would it be possible to exclude certain apps from PlainPasta altogether? Sublime really doesn't need it as it is plain text in all cases anyway, and working around this in some other way is probably not worth it.

Thank you. This is a great app overall.

Fix compatibility with Craft.app

Plain Pasta is stripping the contents of content copied from Craft.app for some reason. It must be copied as a content type that the app is not currently setup to handle.

Add Option to Ignore TextExpander Snippets

@cstout1 reported that Plain Pasta strips styling from TextExpander snippets, and that they'd like the option to ignore those if possible.

I'm not sure if I will implement this feature yet, but I'm adding it here to remind myself that there's interest in the feature.

Allow to hide the menu bar icon

Menu items are cluttering space in the menu bar. Plain Pasta appears in the menu bar for two purposes only: to show it is currently running, and to quit the app. I do not need the app to tell me it is active; and to quit the app I could kill it in Activity Monitor. So please add the option to hide the menu bar item for power users, perhaps with a warning discouraging newbies to do so.

When Copying an Image from a Webpage, the Image is Lost

When Plain Pasta isn't running, I can right-click on an image in a web browser and select "Copy Image" and paste that image into another program.

When Plain Pasta is running, I right-click on an image in a web browser and select "Copy Image":

  • The first attempt results in only the URL in the clipboard
  • The second attempt results in both the URL and the image in the clipboard

Safari + macOS 10.14.6.

When Copying from Excel, "Copy" Selection is Reset

When Plain Pasta is not running and I copy or cut a cell in Excel, the chasing "marquee" border around the cell remains and copy and cut operations act as expected.

When Plain Pasta is running and I copy or cut a cell in Excel, the chasing "marquee" border reverts to a plain border in about a second. This is similar to the effect if I had pressed the "Escape" key after the copy/cut action when Plain Pasta isn't running. When performing a "copy" the issue isn't as great, but in the case of a "cut" the selected cell is not cleared upon the "paste" action.

Notably Excel may be doing some strange things here because the "cut" operation in Excel leaves the cell contents static until the the cell is "pasted" into another cell.

macOS 10.14.6, Excel 16.40 with a 365 license.

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.