• Stars
    star
    741
  • Rank 61,180 (Top 2 %)
  • Language
    Swift
  • Created about 5 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐Ÿ“Ž๐Ÿ’ฌ๐ŸŽ‰ Clippy from Microsoft Office is back and runs on macOS! Written in Swift.

Clippy

Yes, Clippy from Microsoft Office is back โ€” on macOS!


Clippy can be moved around (drag with mouse) and be animated (right-click).

The SpriteKit-Framework is used to animate through Clippy's sprite map.


First start

  1. Download Clippy for macOS or build from source.
  2. Run
  3. Click ๐Ÿ“Ž โ†’ Show in Finder in the menu bar
  4. Unzip all files
  5. Click ๐Ÿ“Ž โ†’ Reload
  6. Pick an Agent under ๐Ÿ“Ž โ†’ Agents โ†’ โ€ฆ

Todos

  • Animations (Right-Click โ†’ Animate! or press the Space bar)
  • Always on top
  • Sounds
    • Mute / Unmute
  • Transparent when out of focus
  • Support for other agents
  • Agent picker
  • Menu bar Item
  • Original size / Zoom
  • Actions
    • Hide
    • Show
    • MoveTo x y
    • GestureAt x y
    • Play animation
  • Clean up
    • Rewrite the ugly parts (many references and force unwraps)
    • Extract the Agent reader into its own libary
    • Test!
  • HitTest on transparent regions
  • Support branching and probability
  • Idle animations
  • Languages
  • Control via command line

Demo

Demo

Build

git clone https://github.com/Cosmo/Clippy.git
  • Open project with Xcode
  • Build and run the macOS target

Add other Agents (optional)

An *.acs file includes all required resources (bitmaps, sounds, definitions, etc.) of an agent. Unfortunately, this project does not support *.acs files, yet. But hopefully in the future โ€” pull-requests are welcome.

Until then, you can convert *.acs files with the "MSAgent Decompiler" by Lebeau Software. This software extracts all resources that we need, from an *.acs. There are a few steps involved.

Requirements

brew install imagemagick

Will be used to merge single *.bmp sprites into a single 32 bit PNG-file.

brew install ffmpeg

Will be used to convert *.wav-files in RIFF format to MP3 files.

Conversion

Included in this project is a converter called agent-converter.sh. This tool takes opaque BMP sprites, removes background colors, puts them together to one big transparent PNG file and converts all sounds to MP3.

./agent-convert.sh PATH_TO_AGENT NEW_NAME

AGENT_PATH path to decompiled agent directory. NEW_NAME should only include lowercase letters.

Example

./agent-convert agents/CLIPPIT clippy

Final step

After the conversion step, you will get a new folder called NEW_NAME.agent.

  1. Click ๐Ÿ“Ž โ†’ Show in Finder in the menu bar.
  2. Move it to the Agents directory.
  3. Click ๐Ÿ“Ž โ†’ Reload
  4. Select new Agent under ๐Ÿ“Ž โ†’ Agents โ†’ โ€ฆ

Attributions

Inspiration was taken from:

Graphics were created by Microsoft.

Clippy: The Unauthorized Biography

Watch the Unauthorized Biography with Steven Sinofsky, if you're interested in Clippy's history!

Clippy: The Unauthorized Biography

Contact

More Repositories

1

TinyConsole

๐Ÿ“ฑ๐Ÿ’ฌ๐Ÿšฆ TinyConsole is a micro-console that can help you log and display information inside an iOS application, where having a connection to a development computer is not possible.
Swift
1,955
star
2

OpenSwiftUI

WIP โ€” OpenSwiftUI is an OpenSource implementation of Apple's SwiftUI DSL.
Swift
1,382
star
3

HackMan

๐Ÿค–๐Ÿ”œ๐Ÿคฏ Stop writing boilerplate code yourself. Let hackman do it for you via the command line.
Swift
292
star
4

SwiftUIEmbedded

WIP โ€” SwiftUIEmbedded is an implementation of SwiftUI (based on OpenSwiftUI) for embedded and Linux devices.
Swift
111
star
5

BinaryKit

๐Ÿ’พ๐Ÿ”๐Ÿงฎ BinaryKit helps you to break down binary data into bits and bytes, easily access specific parts and write data to binary.
Swift
110
star
6

awesome-embedded-swift

โšก๏ธ๐Ÿ› ๐Ÿงฐ A curated list for Embedded and Low-Level development in the Swift programming language.
Swift
69
star
7

GrammaticalNumber

1๏ธโƒฃ๐Ÿ”œ๐Ÿ”ข Turns singular words to the plural and vice-versa in Swift.
Swift
35
star
8

SwiftUIEmbedded-Demo

WIP โ€” SwiftUIEmbedded โ€” Demo for Linux
Swift
31
star
9

ISO8859

๐ŸŒโฉ๐Ÿ“„ Convert ISO8859 1-16 Encoded Text to String in Swift. Supports iOS, tvOS, watchOS and macOS.
Swift
18
star
10

Nodes

๐ŸŒฒ๐ŸŒฟ๐ŸŒณ Nodes is a class protocol for tree data structures with multiple children. Written in Swift.
Swift
17
star
11

StringCase

๐Ÿ‘‡๐Ÿ‘†๐Ÿ Converts String to lowerCamelCase, UpperCamelCase and snake_case. Tested and written in Swift.
Swift
16
star
12

ShotPlan

A command line tool that calls your Xcode Test Plan and creates screenshots of your app automatically.
Swift
11
star
13

TransportStream

๐ŸŽฌ๐Ÿ“บ๐ŸŽž MPEG-TS (Transport Stream) Tools: Demultiplexer, CRC32, Program Specific Information (PMT PAT, NIT, CAT). Written in Swift.
Swift
10
star
14

bashtv

Hackathon Project โ€” Watch public television in your terminal. No browser needed.
Swift
8
star
15

awesome-swift-platforms

A curated list of Swift on different platforms.
Swift
4
star
16

Pixels

WIP โ€” Pixels is a low level graphics library written in Swift.
Swift
4
star
17

News-Sightseeing

Sophisticated-location-aware-news.
C#
3
star
18

bashtv-service

C#
2
star
19

PSVR_api

C#
2
star
20

ToThePoint

Hackathon Project โ€” Jump right to the interesting parts of a video. Project at mediahackday.
JavaScript
2
star
21

JSKit

A quick and dirty attempt to recreate UIKit in JavaScript
JavaScript
2
star
22

Isometric

JavaScript
1
star
23

SpriteMap

SpriteMap helps you to extract sprites out of a sprite map. Written in Swift.
Swift
1
star
24

spotify-places

Spotify places enables social playlists for bars based on the users favorite songs.
C#
1
star
25

FeedCollectionViewLayout

[WIP] ๐Ÿ“ฑ๐Ÿ“ Customizable UICollectionLayout for single and multi-column feeds.
Swift
1
star
26

Note

This is for debugging and reference only. Document Based + ReferenceFileDocument + UndoManager + Commands Example
Swift
1
star