Use dark-mode-notify to tell fish+kitty to update
parent
e83576a183
commit
e4359f5245
17
flake.lock
17
flake.lock
|
@ -1,5 +1,21 @@
|
|||
{
|
||||
"nodes": {
|
||||
"dark-mode-notify-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1657531789,
|
||||
"narHash": "sha256-m/VTRz0lu+BMETRVY+6tESDNhKwlpNwfwMZ45BMwYzk=",
|
||||
"owner": "bouk",
|
||||
"repo": "dark-mode-notify",
|
||||
"rev": "5ac81063f442ea72dab457c777d1860754cfaede",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "bouk",
|
||||
"repo": "dark-mode-notify",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
@ -123,6 +139,7 @@
|
|||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"dark-mode-notify-src": "dark-mode-notify-src",
|
||||
"darwin": "darwin",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-utils": "flake-utils",
|
||||
|
|
20
flake.nix
20
flake.nix
|
@ -16,6 +16,11 @@
|
|||
# Other sources
|
||||
flake-compat = { url = github:edolstra/flake-compat; flake = false; };
|
||||
flake-utils.url = github:numtide/flake-utils;
|
||||
|
||||
dark-mode-notify-src = {
|
||||
url = github:bouk/dark-mode-notify;
|
||||
flake = false;
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, darwin, nixpkgs, home-manager, flake-utils, ... }@inputs:
|
||||
|
@ -28,12 +33,17 @@
|
|||
nixpkgsConfig = {
|
||||
config = { allowUnfree = true; };
|
||||
overlays = attrValues self.overlays ++ singleton (
|
||||
final: prev: optionalAttrs
|
||||
(prev.stdenv.system == "aarch64-darwin")
|
||||
final: prev:
|
||||
{
|
||||
# Sub in x86 version of packages that don't build on Apple Silicon yet
|
||||
inherit (final.pkgs-x86);
|
||||
} // final.patched
|
||||
dark-mode-notify = final.callPackage ./pkgs/dark-mode-notify.nix { inherit (inputs) dark-mode-notify-src; };
|
||||
} // optionalAttrs
|
||||
(prev.stdenv.system == "aarch64-darwin")
|
||||
{
|
||||
# Sub in x86 version of packages that don't build on Apple Silicon yet
|
||||
inherit (final.pkgs-x86);
|
||||
# Sub in one off patches
|
||||
inherit (final.patched);
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
|
|
|
@ -6,7 +6,9 @@
|
|||
programs.fish.enable = true;
|
||||
|
||||
# Add Fish plugins
|
||||
home.packages = with pkgs.fishPlugins; [ done ];
|
||||
home.packages = with pkgs.fishPlugins; [
|
||||
done
|
||||
];
|
||||
|
||||
programs.fish.plugins = [
|
||||
{
|
||||
|
@ -68,16 +70,26 @@
|
|||
# Set `$term_background` based on whether macOS is light or dark mode. Other Fish functions
|
||||
# trigger when this variable changes. We use a universal variable so that all instances of Fish
|
||||
# have the same value for the variable.
|
||||
set-background-to-macOS = {
|
||||
set-background-to-macOS.body = ''
|
||||
# Returns 'Dark' if in dark mode fails otherwise.
|
||||
if defaults read -g AppleInterfaceStyle &>/dev/null
|
||||
set -U term_background dark
|
||||
else
|
||||
set -U term_background light
|
||||
end
|
||||
'';
|
||||
|
||||
# Set `$term_background` based on an env var.
|
||||
set-background-to-env = {
|
||||
argumentNames = [ "env_var" ];
|
||||
body = ''
|
||||
# Returns 'Dark' if in dark mode fails otherwise.
|
||||
if defaults read -g AppleInterfaceStyle &>/dev/null
|
||||
switch $$env_var
|
||||
case 1
|
||||
set -U term_background dark
|
||||
else
|
||||
case 0
|
||||
set -U term_background light
|
||||
end
|
||||
'';
|
||||
onVariable = "PWD";
|
||||
};
|
||||
|
||||
# Sets Fish Shell to light or dark colorscheme based on `$term_background`.
|
||||
|
@ -211,4 +223,24 @@
|
|||
# username.style_user = "bold blue"; # don't like the default
|
||||
};
|
||||
# }}}
|
||||
|
||||
# dark-mode-notify configuration
|
||||
# {{{
|
||||
launchd.enable = true;
|
||||
launchd.agents.dark-mode-notify = {
|
||||
enable = true;
|
||||
config = {
|
||||
Label = "ke.bou.dark-mode-notify";
|
||||
KeepAlive = true;
|
||||
StandardErrorPath = null;
|
||||
StandardOutPath = null;
|
||||
ProgramArguments = [
|
||||
"${pkgs.dark-mode-notify}/bin/dark-mode-notify"
|
||||
"${pkgs.fish}/bin/fish"
|
||||
"-c"
|
||||
"set-background-to-env DARKMODE"
|
||||
];
|
||||
};
|
||||
};
|
||||
# }}}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, xcodeenv
|
||||
, dark-mode-notify-src
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
sdkVersion = "13.4.1";
|
||||
xcode = xcodeenv.composeXcodeWrapper {
|
||||
version = sdkVersion;
|
||||
xcodeBaseDir = "/Applications/Xcode.app";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "dark-mode-notify";
|
||||
src = dark-mode-notify-src;
|
||||
buildPhase = ''
|
||||
${xcode}/bin/xcrun swiftc dark-mode-notify.swift -o dark-mode-notify
|
||||
'';
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp dark-mode-notify $out/bin
|
||||
'';
|
||||
meta.platforms = lib.platforms.darwin;
|
||||
}
|
||||
|
Loading…
Reference in New Issue