feat: daedalus brew
This commit is contained in:
parent
b744693f0e
commit
c39f8252f7
8 changed files with 159 additions and 38 deletions
41
flake.lock
generated
41
flake.lock
generated
|
|
@ -145,11 +145,11 @@
|
||||||
},
|
},
|
||||||
"impermanence": {
|
"impermanence": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1644791231,
|
"lastModified": 1646131459,
|
||||||
"narHash": "sha256-iDihsF1fUMK4xXiUudPnDM3veH1LXbbxfP9Lzekw9iU=",
|
"narHash": "sha256-GPmgxvUFvQ1GmsGfWHy9+rcxWrczeDhS9XnAIPHi9XQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "impermanence",
|
"repo": "impermanence",
|
||||||
"rev": "635bcd2d88739197a0b584aa9fadaa53c717a853",
|
"rev": "2f39baeb7d039fda5fc8225111bb79474138e6f4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -189,11 +189,11 @@
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "contrib",
|
"dir": "contrib",
|
||||||
"lastModified": 1646012280,
|
"lastModified": 1646122061,
|
||||||
"narHash": "sha256-rgx3+Xkqm6E9oR1hXKmipyTmMQb8kyXEklDuHHplD/I=",
|
"narHash": "sha256-VD+GkXqZ/n0l2pKdol7Pg6/s0QiJfWG18tBLroodRO0=",
|
||||||
"owner": "neovim",
|
"owner": "neovim",
|
||||||
"repo": "neovim",
|
"repo": "neovim",
|
||||||
"rev": "e383543342db8e9dcf40f7d5237edeab29638880",
|
"rev": "37a86a2f964b5d6f9dbfae8b78acaa3a71f981bb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -212,11 +212,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1646036082,
|
"lastModified": 1646122501,
|
||||||
"narHash": "sha256-dRTzOZszaNupxRUkEX11K4hzRCzcB2apNsyGx0WsmbU=",
|
"narHash": "sha256-nszY7wfiAi/U8BRbIiEiAH7ycaWPLbzUd32Jzm60leM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "neovim-nightly-overlay",
|
"repo": "neovim-nightly-overlay",
|
||||||
"rev": "c5d3b328cfe9c7414363f70d583dce6584a72251",
|
"rev": "359449438c8c6e435cf0d4bc16a79433bca46c8a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -259,11 +259,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-master": {
|
"nixpkgs-master": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1646109749,
|
"lastModified": 1646175689,
|
||||||
"narHash": "sha256-09nJZGDSoy+1LWX3AqjjQUJPpx9pYYhwOOI32sx7+Fg=",
|
"narHash": "sha256-2iqYd0KBc5n9J5vTx7QbB2XxZnJEnIIED0khKdvKI8o=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "13e74fc7ff2f691da0791db67fe65930403b391d",
|
"rev": "bc52b6406e1eefd9fa35cd88ab1a36916a84b389",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -289,6 +289,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"pandoc-latex-template": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1639934947,
|
||||||
|
"narHash": "sha256-AXVwBC/dZ7H9naXlvKfHoJFvG1x7G3MMAtdSRwKf+n4=",
|
||||||
|
"owner": "Wandmalfarbe",
|
||||||
|
"repo": "pandoc-latex-template",
|
||||||
|
"rev": "30cfc57a0c64fad1202aa1422e2ed3a77535bf02",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Wandmalfarbe",
|
||||||
|
"repo": "pandoc-latex-template",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"rnix-lsp": {
|
"rnix-lsp": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"naersk": "naersk",
|
"naersk": "naersk",
|
||||||
|
|
@ -325,6 +341,7 @@
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-master": "nixpkgs-master",
|
"nixpkgs-master": "nixpkgs-master",
|
||||||
"nnn-vim": "nnn-vim",
|
"nnn-vim": "nnn-vim",
|
||||||
|
"pandoc-latex-template": "pandoc-latex-template",
|
||||||
"rnix-lsp": "rnix-lsp",
|
"rnix-lsp": "rnix-lsp",
|
||||||
"utils": "utils_2",
|
"utils": "utils_2",
|
||||||
"zsh-completions": "zsh-completions",
|
"zsh-completions": "zsh-completions",
|
||||||
|
|
|
||||||
20
flake.nix
20
flake.nix
|
|
@ -24,6 +24,8 @@
|
||||||
dart-vim.flake = false;
|
dart-vim.flake = false;
|
||||||
rnix-lsp.url = "github:nix-community/rnix-lsp";
|
rnix-lsp.url = "github:nix-community/rnix-lsp";
|
||||||
rnix-lsp.inputs.nixpkgs.follows = "nixpkgs";
|
rnix-lsp.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
pandoc-latex-template.url = "github:Wandmalfarbe/pandoc-latex-template";
|
||||||
|
pandoc-latex-template.flake = false;
|
||||||
## zsh
|
## zsh
|
||||||
zsh-completions.url = "github:zsh-users/zsh-completions";
|
zsh-completions.url = "github:zsh-users/zsh-completions";
|
||||||
zsh-completions.flake = false;
|
zsh-completions.flake = false;
|
||||||
|
|
@ -55,6 +57,8 @@
|
||||||
imports = lib.my.mapModulesRec' ./hm-imports (x: x);
|
imports = lib.my.mapModulesRec' ./hm-imports (x: x);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
rev = if (lib.hasAttrByPath [ "rev" ] self.sourceInfo) then self.sourceInfo.rev else "Dirty Build";
|
||||||
|
|
||||||
nixosSystem = system: extraModules: let
|
nixosSystem = system: extraModules: let
|
||||||
pkgs = genPkgs system;
|
pkgs = genPkgs system;
|
||||||
in nixpkgs.lib.nixosSystem
|
in nixpkgs.lib.nixosSystem
|
||||||
|
|
@ -66,12 +70,12 @@
|
||||||
impermanence.nixosModules.impermanence
|
impermanence.nixosModules.impermanence
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
({ config, ...}: lib.mkMerge [{
|
({ config, ...}: lib.mkMerge [{
|
||||||
system.configurationRevision = self.sourceInfo.rev;
|
system.configurationRevision = rev;
|
||||||
services.getty.greetingLine =
|
services.getty.greetingLine =
|
||||||
"<<< Welcome to NixOS ${config.system.nixos.label} @ ${self.sourceInfo.rev} - \\l >>>";
|
"<<< Welcome to ${config.system.nixos.label} @ ${rev} - Please leave\\l >>>";
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
home-manager.extraSpecialArgs = { inherit inputs lib; };
|
||||||
}
|
}
|
||||||
|
|
||||||
(lib.mkIf (config.users.extraUsers.ragon != null) { # import hm stuff if enabled
|
(lib.mkIf (config.users.extraUsers.ragon != null) { # import hm stuff if enabled
|
||||||
|
|
@ -90,16 +94,14 @@
|
||||||
specialArgs = { inherit darwin lib pkgs inputs self; };
|
specialArgs = { inherit darwin lib pkgs inputs self; };
|
||||||
modules = [
|
modules = [
|
||||||
home-manager.darwinModules.home-manager
|
home-manager.darwinModules.home-manager
|
||||||
({ config, inputs, self, ...}: lib.mkMerge [{
|
({ config, inputs, self, ...}: { config = {
|
||||||
system.configurationRevision = (lib.traceVal (self.sourceInfo)).rev;
|
#system.darwinLabel = "${config.system.darwinLabel}@${rev}";
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||||
}
|
|
||||||
(lib.mkIf (config.users.extraUsers.ragon != null) { # import hm stuff if enabled
|
|
||||||
home-manager.users.ragon = hmConfig;
|
home-manager.users.ragon = hmConfig;
|
||||||
})
|
};
|
||||||
])
|
})
|
||||||
./darwin-common.nix
|
./darwin-common.nix
|
||||||
] ++ extraModules;
|
] ++ extraModules;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
yt-dlp
|
yt-dlp
|
||||||
aria2
|
aria2
|
||||||
libqalculate
|
libqalculate
|
||||||
]
|
];
|
||||||
home.shellAliases = {
|
home.shellAliases = {
|
||||||
v = "nvim";
|
v = "nvim";
|
||||||
vim = "nvim";
|
vim = "nvim";
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
{pkgs, config, inputs, lib, ...}:
|
{pkgs, config, inputs, ...}:
|
||||||
with lib;
|
|
||||||
with lib.my;
|
|
||||||
{
|
{
|
||||||
home.packages = [
|
home.packages = with pkgs;[
|
||||||
python3 # ultisnips
|
python3 # ultisnips
|
||||||
lazygit
|
lazygit
|
||||||
nodejs
|
nodejs
|
||||||
|
|
@ -41,15 +39,6 @@ with lib.my;
|
||||||
name = "dart-vim";
|
name = "dart-vim";
|
||||||
src = inputs.dart-vim;
|
src = inputs.dart-vim;
|
||||||
};
|
};
|
||||||
vim-pandoc-live-preview = pkgs.vimUtils.buildVimPlugin {
|
|
||||||
name = "vim-pandoc-live-preview";
|
|
||||||
src = inputs.vim-pandoc-live-preview;
|
|
||||||
};
|
|
||||||
orgmode-nvim = pkgs.vimUtils.buildVimPlugin {
|
|
||||||
name = "orgmode-nvim";
|
|
||||||
src = inputs.orgmode-nvim;
|
|
||||||
dontBuild = true;
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
map (x: { plugin = x; }) (with pkgs.vimPlugins; [
|
map (x: { plugin = x; }) (with pkgs.vimPlugins; [
|
||||||
vim-tmux-navigator
|
vim-tmux-navigator
|
||||||
|
|
@ -74,7 +63,6 @@ with lib.my;
|
||||||
toggleterm-nvim
|
toggleterm-nvim
|
||||||
undotree
|
undotree
|
||||||
vim-pandoc
|
vim-pandoc
|
||||||
vim-pandoc-live-preview
|
|
||||||
vim-pandoc-syntax
|
vim-pandoc-syntax
|
||||||
ultisnips
|
ultisnips
|
||||||
coc-nvim
|
coc-nvim
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ in
|
||||||
{
|
{
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
histSize = 10000;
|
|
||||||
enableCompletion = true;
|
enableCompletion = true;
|
||||||
initExtra =
|
initExtra =
|
||||||
let
|
let
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,33 @@
|
||||||
with lib;
|
with lib;
|
||||||
with lib.my;
|
with lib.my;
|
||||||
{
|
{
|
||||||
|
networking.hostName = "daedalus";
|
||||||
|
|
||||||
users.users.ragon = {
|
users.users.ragon = {
|
||||||
name = "ragon";
|
name = "ragon";
|
||||||
home = "/Users/ragon";
|
home = "/Users/ragon";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
homebrew = {
|
||||||
|
enable = true;
|
||||||
|
autoUpdate = true;
|
||||||
|
casks = [ "hammerspoon" "amethyst" "android-platform-tools" "alfred" "ukelele" "homebrew/cask-drivers/zsa-wally" ];
|
||||||
|
masApps = { # Install Mac App Store apps (install them manually and then do `mas list` to get the id)
|
||||||
|
"AdGuard for Safari" = 1440147259;
|
||||||
|
"Xcode" = 497799835;
|
||||||
|
"Home Assistant" = 1099568401;
|
||||||
|
"WireGuard" = 1451685025;
|
||||||
|
"UTM" = 1538878817;
|
||||||
|
"Bitwarden" = 1352778147;
|
||||||
|
"Shareful" = 1522267256;
|
||||||
|
"Tailscale" = 1475387142;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
programs.gnupg.agent.enable = true;
|
programs.gnupg.agent.enable = true;
|
||||||
home-manager.users.ragon = { pkgs, lib, inputs, config, ... }: {
|
home-manager.users.ragon = { pkgs, lib, inputs, config, ... }: {
|
||||||
|
home.file.".hammerspoon/init.lua".source = ./hammerspoon.lua;
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
home.stateVersion = "21.11";
|
home.stateVersion = "21.11";
|
||||||
|
|
||||||
|
|
|
||||||
95
hosts/daedalus/hammerspoon.lua
Normal file
95
hosts/daedalus/hammerspoon.lua
Normal file
|
|
@ -0,0 +1,95 @@
|
||||||
|
----------------------------------------------------------------------------------------------------
|
||||||
|
-- Settings
|
||||||
|
----------------------------------------------------------------------------------------------------
|
||||||
|
hs.autoLaunch(true)
|
||||||
|
hs.automaticallyCheckForUpdates(true)
|
||||||
|
hs.consoleOnTop(true)
|
||||||
|
hs.dockIcon(false)
|
||||||
|
hs.menuIcon(false)
|
||||||
|
hs.uploadCrashData(false)
|
||||||
|
|
||||||
|
hs.window.animationDuration = 0
|
||||||
|
|
||||||
|
local log = hs.logger.new('init', 'debug')
|
||||||
|
|
||||||
|
configWatcher = hs.pathwatcher.new(hs.configdir, hs.reload):start()
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------------------------------
|
||||||
|
-- Moonlander Detection
|
||||||
|
----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function isDeviceMoonlander(device)
|
||||||
|
return device.productName == "Moonlander Mark I"
|
||||||
|
end
|
||||||
|
|
||||||
|
function moonlanderDetected(connected)
|
||||||
|
if connected then
|
||||||
|
hs.keycodes.setLayout("EurKEY v1.2")
|
||||||
|
else
|
||||||
|
hs.keycodes.setLayout("Colemak DH ISO copy")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function searchMoonlander()
|
||||||
|
local usbDevices = hs.usb.attachedDevices()
|
||||||
|
local moonlanderConnected = hs.fnutils.find(usbDevices, isDeviceMoonlander) ~= nil
|
||||||
|
|
||||||
|
moonlanderDetected(moonlanderConnected)
|
||||||
|
end
|
||||||
|
|
||||||
|
searchMoonlander()
|
||||||
|
|
||||||
|
usbWatcher = hs.usb.watcher.new(function(event)
|
||||||
|
if event.productName == "Moonlander Mark I" then
|
||||||
|
moonlanderDetected(event.eventType == "added")
|
||||||
|
end
|
||||||
|
end):start()
|
||||||
|
|
||||||
|
caffeinateWatcher = hs.caffeinate.watcher.new(function(event)
|
||||||
|
if event == hs.caffeinate.watcher.systemDidWake then
|
||||||
|
searchMoonlander()
|
||||||
|
end
|
||||||
|
end):start()
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------------------------------
|
||||||
|
-- mount ds9 via tailscale
|
||||||
|
----------------------------------------------------------------------------------------------------
|
||||||
|
function mountDS9()
|
||||||
|
local ssid = hs.wifi.currentNetwork()
|
||||||
|
if ssid ~= nil and ssid ~= 'vim' then -- not at home
|
||||||
|
if os.execute("mount | grep //ragon@ds9._smb._tcp.local/data") == nil then -- check if mounted via mdns
|
||||||
|
os.execute("diskutil umount /Volumes/data") -- umount share if it exists
|
||||||
|
hs.osascript.applescript('mount volume "smb://ragon@ds9.ragon000.github.beta.tailscale.net/data"') -- mount share via tailscale
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
mountDS9()
|
||||||
|
|
||||||
|
hs.wifi.watcher.new(function(watcher, message, interface)
|
||||||
|
mountDS9()
|
||||||
|
end):start()
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------------------------------
|
||||||
|
-- Scratchpad
|
||||||
|
----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function showHideBundleId(bundleId)
|
||||||
|
local focusedWindow = hs.window.focusedWindow()
|
||||||
|
if focusedWindow ~= nil and focusedWindow:application():bundleID() == bundleId then -- window is focused
|
||||||
|
focusedWindow:close() -- hide
|
||||||
|
else
|
||||||
|
hs.application.launchOrFocusByBundleID(bundleId)
|
||||||
|
hs.window.focusedWindow():centerOnScreen(hs.mouse.getCurrentScreen())
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local hyperModifier = {"cmd", "shift", "ctrl", "alt"}
|
||||||
|
hs.hotkey.bind(hyperModifier, "b", function() showHideBundleId("com.bitwarden.desktop") end)
|
||||||
|
hs.hotkey.bind(hyperModifier, "p", function() showHideBundleId("com.timeular.zei") end)
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------------------------------
|
||||||
|
-- Tiling
|
||||||
|
----------------------------------------------------------------------------------------------------
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ darwin, inputs, lib, pkgsBySystem, ... }:
|
{ inputs, lib, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (lib) makeExtensible attrValues foldr;
|
inherit (lib) makeExtensible attrValues foldr;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue