nchudleigh / vimac

Productive macOS keyboard-driven navigation
https://vimacapp.com
GNU General Public License v3.0
3.43k stars 124 forks source link

Brew vimac? #152

Open molleweide opened 4 years ago

molleweide commented 4 years ago

Is it possible to download vimac via terminal? I’d love to add it to my dotfiles?

I don’t know how hard it is to distr somethinf via brew so my apologies if its a dumb question..

dexterleng commented 4 years ago

I'll put it up on brew as soon as I can automate my deployment process (figuring that out now).

molleweide commented 4 years ago

Awesome!!

NylonDiamond commented 4 years ago

That would be cool

dsernst commented 4 years ago

Related to https://github.com/dexterleng/vimac/issues/123

dexterleng commented 4 years ago

I have been struggling to get it notarized before I put it up on brew. I'll give it another shot this weekend.

dexterleng commented 4 years ago

@molleweide

I am looking into this now. I personally don't get the reason for hosting on brew, as auto-updates are delivered through Sparkle. Perhaps you (or someone else) could enlighten me on why it is needed?

Referring to Acceptable Formulae, it appears "tools that upgrade themselves" are not "acceptable".

tshu-w commented 4 years ago

@dexterleng In my case, I maintain some scripts that make it easy to turn a new macOS into something I'm familiar with. That's why it's important to be able to install vimac through brew.

Referring to Acceptable Formulae, it appears "tools that upgrade themselves" are not "acceptable".

It seems like there are many apps in brew upgrade themselves, or at least we can create vimac own Repositories.

dijit commented 4 years ago

First off, I love the application, well done on crafting something so useful and unique!

For this issue I'd like to say that I prefer a unified update channel, instead of each application having its own- which is why I use brew and disable programs from having self-updaters. This has the bonus effect of preventing a lot of notification spam from Apps that love to notify you of an update. It also assists in lowering random network traffic (as I use little-snitch, which can also be installed via brew despite being very integrated to the OS and having its own update channel).

If there is some scripting needed to help you automate the creation and deployment of a cask for this then let me know, I'm relatively fluent in Ruby/Bash. :)

jsatk commented 4 years ago

I believe you'll want to add this to the list of Casks. For example, I install Chrome via brew cask install google-chrome. Chrome auto-updates itself.

a-b commented 4 years ago

Brew casks have improved a lot lately. They became more version aware, and they support upgrades via the homebrew.

kochalex commented 4 years ago

I took a look at adding a cask, but but the binary downloads links on appcenter are signed URLs that change regularly. There's an open issue about it: https://github.com/microsoft/appcenter/issues/1833

Example brew-cask issue where a cask was removed due to this not working: https://github.com/Homebrew/homebrew-cask/issues/80779

I think a cask with a a stable download link (could be github releases, for example) and an appcast link to the sparkle XML to note that it has automatic updates would work.

TribuneX commented 3 years ago

Why is this issue closed? So there will be no way we see brew cask support in the future?

lougreenwood commented 3 years ago

Really looking forward to being able to install via brew 👍

rjcoelho commented 3 years ago

https://github.com/Homebrew/discussions/discussions/998

@dexterleng in order for this to be accepted to the official cask repo we need a stable release url and a different cask name (since vimac has "mac").

Can you do releases to github (last one was 0.3.6) ? Also what name should we use instead of vimac ?

For ref, this is the cask formula

cask "vimac" do
  version "0.3.6"
  sha256 "e03ed4f0e86082abd7b12210177a3d40ab87a0319bcb326229ed8d3b133fe409"

  url "https://github.com/dexterleng/vimac/releases/download/v#{version}/vimac-v#{version}.zip"
  name "vimac"
  desc "Productive macOS keyboard-driven navigation"
  homepage "https://github.com/dexterleng/vimac"

  livecheck do
    skip "No version information available"
  end

  app "Vimac.app"
end
molleweide commented 3 years ago

Are names incl ’mac’ not allowed?

dexterleng commented 3 years ago

Apologies, I've been busy working on other parts of Vimac.

It seems like there are several things that have to be done to make Vimac work well on Brew:

  1. Host it with stable URLs for its binaries - I'll have to probably distribute the application outside of AppCenter (to GitHub Releases, for example)
  2. Have a different cask name for it (ugh) or rename the product (which I am not against)
  3. (Optional) Store preferences in a serialized format

Recently I realized that Vimac is still in its early stages, and is not a product I can confidently say that people love. I would like to prioritize working on other aspects, such as:

  1. Figuring out who exactly Vimac is for, and what problems they face
  2. Figuring out what I can build that can fulfill that need
  3. Building version 1 based on my findings

Currently, I think the distribution method works for most people, so I would like to focus my time on building a better product. I hope yall can understand.

molleweide commented 3 years ago

after having found out about some new key in scroll mode commands i am starting to love vimac even more!! it feels just so great.

New name suggestion from for brew: "keynav", "keyos", "pimpmykeys" (yeah dude), "keybediboo".

vitorgalvao commented 3 years ago

Homebrew Cask developer here. Clearing up the naming misconception:

in order for this to be accepted to the official cask repo we need (…) a different cask name (since vimac has "mac").

You’re only considering half of the rule:

Remove from the end: strings such as “Mac”, “for Mac”, “for OS X”, “macOS”, “for macOS”. These terms are generally added to ported software such as “MAME OS X.app”. Exception: when the software is not a port, and “Mac” is an inseparable part of the name, without which the name would be inherently nonsensical, as in PlayOnMac.app.

The rule exists so we don’t get a bunch of casks redundantly named -for-mac when casks themselves only work on macOS. Vimac fits into the acceptable exceptions.

Have a different cask name for it (ugh) or rename the product (which I am not against)

Cask names and app names are bound together. Keeping the app’s name but changing the cask’s would not be accepted. But as established above, that’s not necessary.

Host it with stable URLs for its binaries

This one, however, is a must. If you host it on GitHub releases, it will be easier for us to tell when a new version is out. Though sharing the Sparkle URL works too.

Referring to Acceptable Formulae, it appears "tools that upgrade themselves" are not "acceptable".

Formulae and casks are different beats. Formulae are CLI-only open-source tools which (can) compile from source and are supported on macOS and Linux. Casks cannot compile from source, are only supported on macOS, but deal with a truckload of different software such as apps, drivers, fonts, audio plugins, and more.

We’re aware the distinction can be confusing, but Homebrew Cask started as its own thing (a different unofficial project) which later merged into Homebrew.

molleweide commented 3 years ago

Thank you for clarifying! This really cleared things up for me.

bob-ortiz commented 3 years ago

@dexterleng In my case, I maintain some scripts that make it easy to turn a new macOS into something I'm familiar with. That's why it's important to be able to install vimac through brew.

How do you do this? @tshu-w I'm unfamiliar with brew but I love the idea of keeping a method to turn a new OS into a familiar one. Is there any introduction I could use or insight you could give me to understand what you do?

quintrino commented 3 years ago

@bob-ortiz I'm not the original author but brew does include the brew bundle option which lets you install everything listed in a brewfile. example

That way you could just add cask vimac to the file and have it included in all the software you get installed automatically.

In terms of a more comprehensive setup for everything you can have a look at my dotfiles deploy script which does pretty much everything, but it's probably not a good intro, but might give some inspiration.

xj-m commented 3 years ago

@dexterleng In my case, I maintain some scripts that make it easy to turn a new macOS into something I'm familiar with. That's why it's important to be able to install vimac through brew.

How do you do this? @tshu-w I'm unfamiliar with brew but I love the idea of keeping a method to turn a new OS into a familiar one. Is there any introduction I could use or insight you could give me to understand what you do?

https://github.com/lra/mackup is a pretty good tool to sync up your configurations, and brew + mackup covers early everything for me.

tshu-w commented 3 years ago

@bob-ortiz dotfiles is good notion that you need to know. If you only use macOS, a combination of brew (bundle) and mackup is a good choice, with the former saving the software you installed and the latter saving the software configurations. I also use stow as I need to snyc cli tools configs across linux servers, for more details you can refer my dotfiles too.

molleweide commented 3 years ago

Cool! I didnt know about mackup

tshu-w commented 3 years ago

A third party brew tap for vimac with his own api https://github.com/kidonng/homebrew-malt/blob/master/Casks/vimac.rb

adithyabsk commented 3 years ago

I'm not the original author but brew does include the brew bundle option

A third party brew tap for vimac

Those two responses contain the reasons why I use brew to manage my dependencies and applications on my mac.

  1. Using a brew bundle file is super convenient when you want to get up and running on a new machine and want to keep an eye on what dependencies you may have unwittingly installed working on a side project one weekend. It works great with a dotfile setup where you can check it into version control
  2. Brew cask does a great job of cleaning up the libraries folder when you delete an application which otherwise, often grows unboundedly
mayurankv commented 2 years ago

Is this not expected to happen? As far as I'm aware installing Vimac as a cask would be perfectly in line with what is expected for a home-brew cask.