-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
macOS support #131
Comments
Closed
This was referenced Sep 15, 2018
This was referenced Sep 15, 2018
Closed
arcticicestudio
added a commit
that referenced
this issue
Sep 15, 2018
> Changed the default socket file paths. There was a problem where the `gpg-agent` was not able to create the socket files within the `~/.gnupg` folder that is symlinked to the gocryptfs (1) container to securely (encrypted) store the GPG keys: ``` gpg: can’t connect to the agent: IPC connect call failed ``` This might be caused by either the macOS filesystem (APFS) that doesn't support the creation of sockets (it works fine on other Arch Linux hosts like `igloo`) or by restrictions due to read/write permissions that are not passed through. This solution/workaround is to change the default absolute file paths of the socket files: 1. Created a `S.gpg-agent` and `S.gpg-agent.ssh` file manually in the `$GNUPGPHOME` folder (defaults to `~/.gnupg`). 2. Added the `extra-socket` and `browser-socket` options in the `gpg-agent.conf` file with the desired paths. The created `S.gpg-agent` and `S.gpg-agent.ssh` files allow to use values of environment variables via string interpolation (2), e.g. `${HOME}`. NOTE: It is important to make sure that the target folder exists and the permissions are set to 700! > macOS pinentry tool Set the `pinentry-programm` option in the `gpg-agent.conf` file to use pinentry-mac (3). Note that this requires the Homebrew formula pinentry-mac (4) to be installed! ```conf pinentry-program /usr/local/bin/pinentry-mac ``` > More references * „gpg: can’t connect to the agent: IPC connect call failed“ (5) * GNUPG bugtracker - “gpg-agent 2.1 socket and nfs /home“ (6) * „How to configure GnuPG's S.gpg-agent socket location?“ (7) References: (1) https://github.com/rfjakob/gocryptfs (2) https://en.wikipedia.org/wiki/String_interpolation (3) https://github.com/GPGTools/pinentry-mac (4) https://formulae.brew.sh/formula/pinentry-mac (5) https://michaelheap.com/gpg-cant-connect-to-the-agent-ipc-connect-call-failed (6) https://dev.gnupg.org/T1752 (7) https://askubuntu.com/a/1053594 Epic: GH-131 Closes GH-132
arcticicestudio
added a commit
that referenced
this issue
Sep 15, 2018
Created a new snowblock for launchd (1) snowblock includes a user agent defining a job to auto-mount the `sync` gocryptfs (2) volume located in the Dropbox (3) folder receiving the password stored in the macOS Keychain (4) via the macOS builtin system CLI tool `security`. It also includes a documentation to describe the requirements for the `com.arcticicestudio.igloo.launchd.igloosync` agent. It consists of information about dependencies and how to create the required `gocryptfs` password stored- and received via the macOS builtin system CLI tool `security`. Note that this is a macOS specific snowblock and therefore the `com.arcticicestudio.igloo.launchd.igloosync-dropbox.plist` agent and script file will only be linked for the `iceowl` host. References: (1) https://wiki.freebsd.org/launchd (2) https://github.com/rfjakob/gocryptfs (3) https://www.dropbox.com (4) https://support.apple.com/guide/keychain-access/welcome/mac * http://www.launchd.info * launchd(1) * launchd.plist(5) * security(1) Epic: GH-131 Related to GH-58 Closes GH-133
arcticicestudio
added a commit
that referenced
this issue
Sep 15, 2018
The management of installed Perl modules (1) on macOS is not as simple and well thought through like with package managers on Linux systems, e.g. via pacman (2) on Arch Linux (3). There are problems when is comes to configuring the runtime path the modules have been installed to even when using the most popular module manager called cpanminus (4). This causes the Taskwarrior (5) plugin taskopen (6) fail to load because the Perl core module `JSON` can't be found and loaded. As a workaround a custom script has been implemented to create and open a attached note of an task: 1. Used the `_get` (7) function of the Taskwarrior DOM API (8) to extract any stored piece of information of an task. This allows to receive the UUID of an task (9). 2. Created a custom `on` (open note) Taskwarrior alias (10) to run the implemented custom script via the `execute` command. The logic of the script follows the same like taskopen uses for default notes: * Using the UUID of an task (TODO) as the note filename. * Simply passing the file to an editor (in this case Atom (11)) which will… * …creates a new file if it doesn't exist yet. * …opens the file if it already exists. Note that this script is not limited to macOS but can also be used for any other Linux hosts! References: (1) http://www.cpan.org/modules (2) https://wiki.archlinux.org/index.php/Pacman (3) https://archlinux.org (4) https://github.com/miyagawa/cpanminus (5) https://taskwarrior.org (6) https://github.com/ValiValpas/taskopen (7) https://taskwarrior.org/docs/commands/_get.html (8) https://taskwarrior.org/docs/dom.html (9) https://taskwarrior.org/docs/ids.html (10) https://taskwarrior.org/docs/terminology.html#alias (11) https://atom.io Epic: #131 Related to #110 Closes GH-134
arcticicestudio
added a commit
that referenced
this issue
Sep 15, 2018
Since Tilix (1) is designed for Linux the most popular macOS terminal emulator iTerm2 (2) will be used as replacement. This snowflake should includes the exported JSON file of the created `igloo` profile. References: (1) https://github.com/gnunn1/tilix (2) https://www.iterm2.com Epic: GH-131 Related to GH-70 Closes GH-135
arcticicestudio
added a commit
that referenced
this issue
Sep 15, 2018
Created a new snowblock for pip (1) containing the * `requirements.iceowl.txt` file (2) to track installed packages (3) and their versions of the `iceowl` host and . See the requirements.txt file format documentation (4) for details. * `pip.conf` file (5) for user specific configurations. References: (1) https://pypi.org/project/pip (2) https://pip.pypa.io/en/latest/user_guide/#requirements-files (3) https://packaging.python.org/tutorials/installing-packages/#requirements-files (4) https://pip.pypa.io/en/latest/reference/pip_install/#requirements-file-format (5) https://pip.pypa.io/en/stable/user_guide/#config-file Related to epic GH-131 Closes GH-141
arcticicestudio
added a commit
that referenced
this issue
Sep 17, 2018
> Epic: #131 This new snowflake for Homebrew (1) adds a `Brewfile` and a documentation to bootstrap the `Brewfile` with Homebrew Bundle (2). References: (1) https://brew.sh (2) https://github.com/Homebrew/homebrew-bundle Bound to epic #131 Closes GH-140
arcticicestudio
added a commit
that referenced
this issue
Sep 19, 2018
There are various snowblock/snowflake configurations that contain the `archbook` host (1) which doesn't exist anymore and can be replaced in most cases with the new `iceowl` host. In cases where the snowblock/snowflake is only targeted for Linux the `archbook` host should be removed to make it host independently. These can be updated when a new Linux host is introduced. References: (1) https://github.com/search?l=&q=archbook+repo%3Aarcticicestudio%2Figloo+created%3A%3E2018-09-18&type=Code Epic: GH-131 Closes GH-143
arcticicestudio
added a commit
that referenced
this issue
Sep 19, 2018
This commit adds a configuration for the new `iceowl` host. Due to the usage of absolute paths in the config files of Timewarrior (1) e.g. for the color theme, there must be an config per host. References: (1) https://timewarrior.net Epic: GH-131 Closes GH-144
arcticicestudio
added a commit
that referenced
this issue
Sep 19, 2018
This commit adds a new environment configuration (1) for the new `iceowl` host. The auto-completion scripts bundled with the Homebrew git (2) and bash (3) forumlas should also be imported. References: (1) https://github.com/arcticicestudio/igloo/tree/83bbc2530dbb21f7e734aaa9e33898d7c4c67d50/snowblocks/bash/config/env (2) https://formulae.brew.sh/formula/git (3) https://formulae.brew.sh/formula/bash Epic: GH-131 Closes GH-146
arcticicestudio
added a commit
that referenced
this issue
Apr 15, 2020
Both snowblocks for Taskwarrior [1] and Timewarrior [2] are not required anymore since they have been replaced with my own custom 💙 Go [3] application that is currently private/closed source, but planned to be open sourced later on. Both tools are great and provide a lot of features, but are also kind of overloaded with unused and unnecessary functions. I also missed the possibility to integrate the data and API into my other Go applications as well as web-based projects with a quite more modern techstack (Protocol Buffers [4], NATS [5] Messaging, React SPA [6] etc.). Therefore the snowblocks have been removed while the data is still available through the Git repository history/logs [7]. [7]: https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History [3]: https://go.dev [1]: https://taskwarrior.org [2]: https://timewarrior.net [5]: https://nats.io [4]: https://developers.google.com/protocol-buffers [6]: https://reactjs.org GH-253 Related to GH-248, GH-253, GH-131 Co-authored-by: Sven Greb <[email protected]>
arcticicestudio
added a commit
that referenced
this issue
Apr 15, 2020
Both snowblocks for Taskwarrior [1] and Timewarrior [2] are not required anymore since they have been replaced with my own custom 💙 Go [3] application that is currently private/closed source, but planned to be open sourced later on. Both tools are great and provide a lot of features, but are also kind of overloaded with unused and unnecessary functions. I also missed the possibility to integrate the data and API into my other Go applications as well as web-based projects with a quite more modern techstack (Protocol Buffers [4], NATS [5] Messaging, React SPA [6] etc.). Therefore the snowblocks have been removed while the data is still available through the Git repository history/logs [7]. [7]: https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History [3]: https://go.dev [1]: https://taskwarrior.org [2]: https://timewarrior.net [5]: https://nats.io [4]: https://developers.google.com/protocol-buffers [6]: https://reactjs.org Closes GH-253 Related to GH-248, GH-253, GH-131 Co-authored-by: Sven Greb <[email protected]>
arcticicestudio
added a commit
that referenced
this issue
Apr 16, 2020
The pip [1] snowblock was only added in GH-141 in order to track installed packages [2] and their versions through a `requirements.txt` [3] file. The only tracked package was `taskw` [4] which was required for the taskwarrior snowblock [5] to allow to use custom hooks to interact with Taskwarrior API (the package is not available via Homebrew). Anyway, since both the taskwarrior [5] and timewarrior [6] snowblocks have also been decommissioned in GH-253 the "pip" snowblock is now also not required anymore and has therefore been removed while the data is still available through the Git repository history/logs [7]. [1]: https://pypi.org/project/pip [2]: https://packaging.python.org/tutorials/installing-packages/#requirements-files [3]: https://pip.pypa.io/en/latest/user_guide/#requirements-files [4]: https://pypi.org/project/taskw [5]: https://github.com/arcticicestudio/igloo/tree/master/snowblocks/taskwarrior [6]: https://github.com/arcticicestudio/igloo/tree/master/snowblocks/timewarrior [7]: https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History GH-255 Related to GH-248, GH-253, GH-131 Co-authored-by: Sven Greb <[email protected]>
arcticicestudio
added a commit
that referenced
this issue
Apr 16, 2020
The pip [1] snowblock was only added in GH-141 in order to track installed packages [2] and their versions through a `requirements.txt` [3] file. The only tracked package was `taskw` [4] which was required for the taskwarrior snowblock [5] to allow to use custom hooks to interact with Taskwarrior API (the package is not available via Homebrew). Anyway, since both the taskwarrior [5] and timewarrior [6] snowblocks have also been decommissioned in GH-253 the "pip" snowblock is now also not required anymore and has therefore been removed while the data is still available through the Git repository history/logs [7]. [1]: https://pypi.org/project/pip [2]: https://packaging.python.org/tutorials/installing-packages/#requirements-files [3]: https://pip.pypa.io/en/latest/user_guide/#requirements-files [4]: https://pypi.org/project/taskw [5]: https://github.com/arcticicestudio/igloo/tree/master/snowblocks/taskwarrior [6]: https://github.com/arcticicestudio/igloo/tree/master/snowblocks/timewarrior [7]: https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History Closes GH-255 Related to GH-248, GH-253, GH-131 Co-authored-by: Sven Greb <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Goodybe
archbook
Because of the regularly/periodically exchanged hardware at my workplace the MacBook Pro 11,2 (2016) got exchanged for one of the latest MacBook's Pro 15,2 (2018) with the touch bar.
I'm a really long time Arch Linux user and all of my systems are designed for it. Based on the information gathered by the community about the state of Linux on the MacBook Pro 2016 & 2017 almost everything works fine out-of-the-kernel (box) even on a MacBook Pro 14,1/2. Unfortunately Apple changed a lot of the internal hardware architecture again for the latest 15,1/2 models so that it is currently not possible to natively install Linux.
I've posted a detailed description in the original Gist about how I was able to create an ext4 filesystem partition anyway and copying a complete Arch Linux installation (full
/
filesystem structure) to it, but know I know it won't boot (partition is not found regardless of whether using LABEL, UUID or PARTUUID) because the SSD is not recognized by Linux due to these new creepy NVMe controller. See Dunedan/mbp-2016-linux#71 for details and more information.The previous host
archbook
will be removed from the whole repository and replaced by the new host callediceowl
that currently runs on an MacBook Pro 15,1 (15-inch, 2018) with macOS High Sierra version 10.13.6 (2,2 GHz Intel Core i7, 16 GB 2400 MHz DDR4, Radeon Pro 560X 4096 MB and Intel UHD Graphics 630 1536 MB).The further proceed
I will switch to macOS for my daily job business as the host named
iceowl
. Maybe I'll try to use Parallels Desktop Lite (free for Linux) that uses native macOS API's (GPU pass-through) for better performance than VirtualBox/QEMU etc. which allows to use Arch Linux in full-screen with multiple monitor support, but this is just experimental to gather some info about the performance and usability.The goal and issue progress tracking
This regularly updated epic documents the process and issue's progress to reach the goal of fully customizing macOS to fit my needs and
linuxify
/unixify
it as close as possible.Homebrew
To keep control over the required and installed software the Homebrew package manager will be used including a
Brewfile
handled by Homebrew Bundle.macOS Defaults
To manipulate many hidden features and
plist
files of stock macOS and other third-party apps the system CLI tool defaults will be used. See default-write.com as reference.iTerm2
Since Tilix is designed for Linux the most popular macOS terminal emulator iTerm2 will be used as replacement.
launchd
As equivalent to systemd the builtin service manager launchd will be used to create user-specific jobs provided via user agents and daemons.
Other issues bound to this epic
The text was updated successfully, but these errors were encountered: