Compare commits
12
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f923fb7717 | ||
|
|
969e5e5dd3 | ||
|
|
3e6a7391df | ||
|
|
1fdb0cdc3e | ||
|
|
c0392c8366 | ||
|
|
e782f238ed | ||
|
|
cac3b86098 | ||
|
|
56b4fd88c0 | ||
|
|
b4a0a55a3a | ||
|
|
9ffa766ed9 | ||
|
|
f21017f708 | ||
|
|
43d4ede188 |
+2
-1
@@ -4,4 +4,5 @@ result
|
|||||||
dump.txt
|
dump.txt
|
||||||
flake.lock
|
flake.lock
|
||||||
*~
|
*~
|
||||||
|
Platformio - NixOS Wiki*
|
||||||
|
.platformio/
|
||||||
|
|||||||
@@ -1,25 +1,44 @@
|
|||||||
{
|
{
|
||||||
description = "Starter configuration for macOS with nix-darwin";
|
description = "Starter configuration for macOS with nix-darwin";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs = {
|
nixpkgsAarch64 = {
|
||||||
|
url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgsX86 = {
|
||||||
url = "github:nixos/nixpkgs//nixpkgs-26.05-darwin";
|
url = "github:nixos/nixpkgs//nixpkgs-26.05-darwin";
|
||||||
# url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
|
||||||
};
|
};
|
||||||
home-manager = {
|
|
||||||
|
homeManagerAarch64 = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgsAarch64";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
homeManagerX86 = {
|
||||||
|
url = "github:nix-community/home-manager/release-26.05";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgsX86";
|
||||||
|
};
|
||||||
|
|
||||||
nixd = {
|
nixd = {
|
||||||
url = "github:nix-community/nixd";
|
url = "github:nix-community/nixd";
|
||||||
};
|
};
|
||||||
darwin = {
|
|
||||||
# url = "github:nix-darwin/nix-darwin";
|
darwinAarch64 = {
|
||||||
url = "github:nix-darwin/nix-darwin/nix-darwin-26.05";
|
url = "github:nix-darwin/nix-darwin";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgsAarch64";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
darwinX86 = {
|
||||||
|
url = "github:nix-darwin/nix-darwin/nix-darwin-26.05";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgsX86";
|
||||||
|
};
|
||||||
|
|
||||||
brew-src = {
|
brew-src = {
|
||||||
url = "github:Homebrew/brew/master";
|
url = "github:Homebrew/brew/main";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
nix-homebrew = {
|
nix-homebrew = {
|
||||||
url = "github:zhaofengli-wip/nix-homebrew";
|
url = "github:zhaofengli-wip/nix-homebrew";
|
||||||
inputs.brew-src.follows = "brew-src";
|
inputs.brew-src.follows = "brew-src";
|
||||||
@@ -29,20 +48,25 @@
|
|||||||
url = "github:homebrew/homebrew-core";
|
url = "github:homebrew/homebrew-core";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
homebrew-cask = {
|
homebrew-cask = {
|
||||||
url = "github:homebrew/homebrew-cask";
|
url = "github:homebrew/homebrew-cask";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
sops-nix = {
|
sops-nix = {
|
||||||
url = "github:Mic92/sops-nix";
|
url = "github:Mic92/sops-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgsAarch64";
|
||||||
};
|
};
|
||||||
|
|
||||||
nix-vscode-extensions = {
|
nix-vscode-extensions = {
|
||||||
url = "github:nix-community/nix-vscode-extensions";
|
url = "github:nix-community/nix-vscode-extensions";
|
||||||
};
|
};
|
||||||
|
|
||||||
catppuccin = {
|
catppuccin = {
|
||||||
url = "github:catppuccin/nix";
|
url = "github:catppuccin/nix";
|
||||||
};
|
};
|
||||||
|
|
||||||
llm-agents = {
|
llm-agents = {
|
||||||
url = "github:numtide/llm-agents.nix";
|
url = "github:numtide/llm-agents.nix";
|
||||||
};
|
};
|
||||||
@@ -52,15 +76,19 @@
|
|||||||
# url = "github:hraban/mac-app-util";
|
# url = "github:hraban/mac-app-util";
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
{
|
{
|
||||||
self,
|
self,
|
||||||
darwin,
|
darwinAarch64,
|
||||||
|
darwinX86,
|
||||||
nix-homebrew,
|
nix-homebrew,
|
||||||
homebrew-core,
|
homebrew-core,
|
||||||
homebrew-cask,
|
homebrew-cask,
|
||||||
home-manager,
|
homeManagerAarch64,
|
||||||
nixpkgs,
|
homeManagerX86,
|
||||||
|
nixpkgsAarch64,
|
||||||
|
nixpkgsX86,
|
||||||
nixd,
|
nixd,
|
||||||
sops-nix,
|
sops-nix,
|
||||||
nix-vscode-extensions,
|
nix-vscode-extensions,
|
||||||
@@ -70,15 +98,33 @@
|
|||||||
}@inputs:
|
}@inputs:
|
||||||
let
|
let
|
||||||
user = "olaf";
|
user = "olaf";
|
||||||
|
lib = nixpkgsAarch64.lib;
|
||||||
darwinSystems = [
|
darwinSystems = [
|
||||||
"aarch64-darwin"
|
"aarch64-darwin"
|
||||||
"x86_64-darwin"
|
"x86_64-darwin"
|
||||||
];
|
];
|
||||||
forAllSystems = f: nixpkgs.lib.genAttrs darwinSystems f;
|
|
||||||
|
perSystem = {
|
||||||
|
aarch64-darwin = {
|
||||||
|
nixpkgs = nixpkgsAarch64;
|
||||||
|
darwin = darwinAarch64;
|
||||||
|
home-manager = homeManagerAarch64;
|
||||||
|
pkgs = nixpkgsAarch64.legacyPackages.aarch64-darwin;
|
||||||
|
};
|
||||||
|
x86_64-darwin = {
|
||||||
|
nixpkgs = nixpkgsX86;
|
||||||
|
darwin = darwinX86;
|
||||||
|
home-manager = homeManagerX86;
|
||||||
|
pkgs = nixpkgsX86.legacyPackages.x86_64-darwin;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
forAllSystems = f: lib.genAttrs darwinSystems f;
|
||||||
|
|
||||||
devShell =
|
devShell =
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = perSystem.${system}.pkgs;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
default =
|
default =
|
||||||
@@ -87,27 +133,48 @@
|
|||||||
nativeBuildInputs = with pkgs; [
|
nativeBuildInputs = with pkgs; [
|
||||||
bashInteractive
|
bashInteractive
|
||||||
git
|
git
|
||||||
|
pkgs.nixd
|
||||||
];
|
];
|
||||||
shellHook = with pkgs; ''
|
|
||||||
|
packages = with pkgs; [
|
||||||
|
platformio-core
|
||||||
|
(writeShellScriptBin "python" ''
|
||||||
|
if [ "$1" = "-m" ] && [ "$2" = "platformio" ]; then
|
||||||
|
shift 2
|
||||||
|
exec ${platformio-core}/bin/platformio "$@"
|
||||||
|
fi
|
||||||
|
exec ${python3}/bin/python3 "$@"
|
||||||
|
'')
|
||||||
|
openocd
|
||||||
|
avrdude
|
||||||
|
];
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
export EDITOR=vim
|
export EDITOR=vim
|
||||||
|
export PLATFORMIO_CORE_DIR="$PWD/.platformio"
|
||||||
'';
|
'';
|
||||||
buildInputs = with pkgs; [
|
|
||||||
rnix-lsp
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
mkApp = scriptName: system: {
|
|
||||||
|
mkApp =
|
||||||
|
scriptName: system:
|
||||||
|
let
|
||||||
|
pkgs = perSystem.${system}.pkgs;
|
||||||
|
in
|
||||||
|
{
|
||||||
type = "app";
|
type = "app";
|
||||||
program = "${
|
program = "${
|
||||||
(nixpkgs.legacyPackages.${system}.writeScriptBin scriptName ''
|
(pkgs.writeScriptBin scriptName ''
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
PATH=${nixpkgs.legacyPackages.${system}.git}/bin:$PATH
|
PATH=${pkgs.git}/bin:$PATH
|
||||||
echo "Running ${scriptName} for ${system}"
|
echo "Running ${scriptName} for ${system}"
|
||||||
sudo chmod +x ${self}/apps/${system}/${scriptName}
|
sudo chmod +x ${self}/apps/${system}/${scriptName}
|
||||||
exec ${self}/apps/${system}/${scriptName}
|
exec ${self}/apps/${system}/${scriptName}
|
||||||
'')
|
'')
|
||||||
}/bin/${scriptName}";
|
}/bin/${scriptName}";
|
||||||
};
|
};
|
||||||
|
|
||||||
mkDarwinApps = system: {
|
mkDarwinApps = system: {
|
||||||
"apply" = mkApp "apply" system;
|
"apply" = mkApp "apply" system;
|
||||||
"build" = mkApp "build" system;
|
"build" = mkApp "build" system;
|
||||||
@@ -117,17 +184,24 @@
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
devShells = forAllSystems devShell;
|
devShells = forAllSystems devShell;
|
||||||
apps = nixpkgs.lib.genAttrs darwinSystems mkDarwinApps;
|
apps = lib.genAttrs darwinSystems mkDarwinApps;
|
||||||
|
|
||||||
darwinConfigurations = nixpkgs.lib.genAttrs darwinSystems (
|
darwinConfigurations = lib.genAttrs darwinSystems (
|
||||||
system:
|
system:
|
||||||
darwin.lib.darwinSystem {
|
let
|
||||||
|
systemConfig = perSystem.${system};
|
||||||
|
in
|
||||||
|
systemConfig.darwin.lib.darwinSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = inputs;
|
specialArgs = inputs // {
|
||||||
|
inherit system;
|
||||||
|
nixpkgs = systemConfig.nixpkgs;
|
||||||
|
darwin = systemConfig.darwin;
|
||||||
|
home-manager = systemConfig.home-manager;
|
||||||
|
};
|
||||||
modules = [
|
modules = [
|
||||||
home-manager.darwinModules.home-manager
|
systemConfig.home-manager.darwinModules.home-manager
|
||||||
nix-homebrew.darwinModules.nix-homebrew
|
nix-homebrew.darwinModules.nix-homebrew
|
||||||
# mac-app-util.darwinModules.default
|
|
||||||
{
|
{
|
||||||
nix-homebrew = {
|
nix-homebrew = {
|
||||||
inherit user;
|
inherit user;
|
||||||
@@ -139,12 +213,13 @@
|
|||||||
mutableTaps = false;
|
mutableTaps = false;
|
||||||
autoMigrate = true;
|
autoMigrate = true;
|
||||||
};
|
};
|
||||||
home-manager.sharedModules = [
|
|
||||||
# mac-app-util.homeManagerModules.default
|
|
||||||
catppuccin.homeModules.catppuccin
|
|
||||||
|
|
||||||
|
home-manager.sharedModules =
|
||||||
|
lib.optionals (system != "x86_64-darwin") [
|
||||||
|
catppuccin.homeModules.catppuccin
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
./hosts/darwin
|
./hosts/darwin
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,9 +13,7 @@ _:
|
|||||||
"gimp"
|
"gimp"
|
||||||
"inkscape"
|
"inkscape"
|
||||||
"vcv-rack"
|
"vcv-rack"
|
||||||
#"affinity-designer"
|
"affinity"
|
||||||
#"affinity-photo"
|
|
||||||
#"affinity-publisher"
|
|
||||||
|
|
||||||
# Communication Tools
|
# Communication Tools
|
||||||
"adium"
|
"adium"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
emacsOverlaySha256 = "0pqnl05j86pyvrlqh5kk4sximi749xqgiffq47grw7v98nqd2yin";
|
emacsOverlaySha256 = "0h15850dpx3p2jr5g4nv0gir0w9dgml1mqzc5yq8686y246r33br";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
home-manager.backupFileExtension = "nix-backup";
|
home-manager.backupFileExtension = "nix-backup";
|
||||||
|
|||||||
+233
-12
@@ -4,6 +4,7 @@
|
|||||||
lib,
|
lib,
|
||||||
home-manager,
|
home-manager,
|
||||||
llm-agents,
|
llm-agents,
|
||||||
|
system,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@@ -61,13 +62,12 @@ in
|
|||||||
"Affinity Publisher 2" = 1606941598;
|
"Affinity Publisher 2" = 1606941598;
|
||||||
# "DaisyDisk" = 409907375; # (4.32) # Don't use this, we need the official version that is not sandboxed
|
# "DaisyDisk" = 409907375; # (4.32) # Don't use this, we need the official version that is not sandboxed
|
||||||
"Fantastical - Calendar" = 975937182;
|
"Fantastical - Calendar" = 975937182;
|
||||||
" Fedistar" = 6445863996; # (1.13.1)
|
"Fedistar" = 6445863996; # (1.13.1)
|
||||||
"Home Assistant" = 1099568401; # (2025.7.1)
|
"Home Assistant" = 1099568401; # (2025.7.1)
|
||||||
"Ice Cubes for Mastodon" = 6444915884; # (1.11.3)
|
"Ice Cubes for Mastodon" = 6444915884; # (1.11.3)
|
||||||
"LibreOffice" = 1630474372;
|
"LibreOffice" = 1630474372;
|
||||||
"Monal - XMPP Chatting " = 1637078500;
|
"Monal - XMPP Chatting " = 1637078500;
|
||||||
"MQTT Explorer" = 1455214828; # (0.3.5)
|
"MQTT Explorer" = 1455214828; # (0.3.5)
|
||||||
"Night Sky" = 475772902; # 475772902
|
|
||||||
"Native SQLite Manager" = 1416282836; # (1.31.0)
|
"Native SQLite Manager" = 1416282836; # (1.31.0)
|
||||||
"Remarkable Desktop" = 1276493162; # (3.19.0)
|
"Remarkable Desktop" = 1276493162; # (3.19.0)
|
||||||
"Slack for Desktop" = 803453959; # (4.45.60)
|
"Slack for Desktop" = 803453959; # (4.45.60)
|
||||||
@@ -75,6 +75,9 @@ in
|
|||||||
"Windows App Installer" = 1295203466; # (1.0.16)
|
"Windows App Installer" = 1295203466; # (1.0.16)
|
||||||
"Wireguard" = 1451685025; # (1.0.16)
|
"Wireguard" = 1451685025; # (1.0.16)
|
||||||
### "1Password: Password Manager" = 1511601750; # (8.11.0) Does not seem to insta
|
### "1Password: Password Manager" = 1511601750; # (8.11.0) Does not seem to insta
|
||||||
|
}
|
||||||
|
// lib.optionalAttrs (system != "x86_64-darwin") {
|
||||||
|
"Night Sky" = 475772902; # 475772902
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -93,12 +96,129 @@ in
|
|||||||
home = {
|
home = {
|
||||||
enableNixpkgsReleaseCheck = false;
|
enableNixpkgsReleaseCheck = false;
|
||||||
packages = pkgs.callPackage ./packages.nix { inherit llm-agents; };
|
packages = pkgs.callPackage ./packages.nix { inherit llm-agents; };
|
||||||
file = additionalFiles // { "emacs-launcher.command".source = myEmacsLauncher; };
|
file = additionalFiles // {
|
||||||
|
"emacs-launcher.command".source = myEmacsLauncher;
|
||||||
|
};
|
||||||
stateVersion = "23.11";
|
stateVersion = "23.11";
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
// lib.optionalAttrs (system != "x86_64-darwin") {
|
||||||
|
catppuccin = {
|
||||||
|
autoEnable = true;
|
||||||
|
enable = true;
|
||||||
|
flavor = "mocha";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// {
|
||||||
programs = {
|
programs = {
|
||||||
gpg.enable = true;
|
alacritty = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
cursor = {
|
||||||
|
style = "Block";
|
||||||
|
};
|
||||||
|
|
||||||
|
window = {
|
||||||
|
opacity = 1.0;
|
||||||
|
padding = {
|
||||||
|
x = 24;
|
||||||
|
y = 24;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
font = {
|
||||||
|
normal = {
|
||||||
|
family = "MesloLGS NF";
|
||||||
|
style = "Regular";
|
||||||
|
};
|
||||||
|
size = lib.mkMerge [
|
||||||
|
(lib.mkIf pkgs.stdenv.hostPlatform.isLinux 10)
|
||||||
|
(lib.mkIf pkgs.stdenv.hostPlatform.isDarwin 14)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
dynamic_padding = true;
|
||||||
|
decorations = "full";
|
||||||
|
title = "Terminal";
|
||||||
|
class = {
|
||||||
|
instance = "Alacritty";
|
||||||
|
general = "Alacritty";
|
||||||
|
};
|
||||||
|
|
||||||
|
colors = {
|
||||||
|
primary = {
|
||||||
|
background = "0x1f2528";
|
||||||
|
foreground = "0xc0c5ce";
|
||||||
|
};
|
||||||
|
|
||||||
|
normal = {
|
||||||
|
black = "0x1f2528";
|
||||||
|
red = "0xec5f67";
|
||||||
|
green = "0x99c794";
|
||||||
|
yellow = "0xfac863";
|
||||||
|
blue = "0x6699cc";
|
||||||
|
magenta = "0xc594c5";
|
||||||
|
cyan = "0x5fb3b3";
|
||||||
|
white = "0xc0c5ce";
|
||||||
|
};
|
||||||
|
|
||||||
|
bright = {
|
||||||
|
black = "0x65737e";
|
||||||
|
red = "0xec5f67";
|
||||||
|
green = "0x99c794";
|
||||||
|
yellow = "0xfac863";
|
||||||
|
blue = "0x6699cc";
|
||||||
|
magenta = "0xc594c5";
|
||||||
|
cyan = "0x5fb3b3";
|
||||||
|
white = "0xd8dee9";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ssh = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
enableDefaultConfig = false;
|
||||||
|
settings = {
|
||||||
|
"*" = {
|
||||||
|
forwardAgent = false;
|
||||||
|
addKeysToAgent = "no";
|
||||||
|
compression = false;
|
||||||
|
serverAliveInterval = 0;
|
||||||
|
serverAliveCountMax = 3;
|
||||||
|
hashKnownHosts = false;
|
||||||
|
userKnownHostsFile = "~/.ssh/known_hosts";
|
||||||
|
controlMaster = "no";
|
||||||
|
controlPath = "~/.ssh/master-%r@%n:%p";
|
||||||
|
controlPersist = "no";
|
||||||
|
};
|
||||||
|
"moonunit.kolkman.org" = {
|
||||||
|
hostname = "moonunit.kolkman.org";
|
||||||
|
user = "root";
|
||||||
|
port = 2222;
|
||||||
|
};
|
||||||
|
"proxy.kolkman.org".forwardAgent = true;
|
||||||
|
"NUC25".forwardAgent = true;
|
||||||
|
"NUC".forwardAgent = true;
|
||||||
|
"vps3.evangineer.net".forwardAgent = true;
|
||||||
|
"vps2.evangineer.net".forwardAgent = true;
|
||||||
|
};
|
||||||
|
includes = [
|
||||||
|
(lib.mkIf pkgs.stdenv.hostPlatform.isLinux "/home/${user}/.ssh/config_external")
|
||||||
|
(lib.mkIf pkgs.stdenv.hostPlatform.isDarwin "/Users/${user}/.ssh/config_external")
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
gpg = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
default-key = "01B157D574FEDBB2";
|
||||||
|
no-emit-version = true;
|
||||||
|
auto-key-retrieve = true;
|
||||||
|
personal-digest-preferences = "SHA512 SHA384 SHA256 SHA224";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
zsh = {
|
zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -289,16 +409,116 @@ in
|
|||||||
nnoremap <C-j> <C-w>j
|
nnoremap <C-j> <C-w>j
|
||||||
nnoremap <C-k> <C-w>k
|
nnoremap <C-k> <C-w>k
|
||||||
nnoremap <C-l> <C-w>l
|
nnoremap <C-l> <C-w>l
|
||||||
|
|
||||||
|
"" Easier to yank entire line
|
||||||
|
nnoremap Y y$
|
||||||
|
|
||||||
|
"" Move buffers
|
||||||
|
nnoremap <tab> :bnext<cr>
|
||||||
|
nnoremap <S-tab> :bprev<cr>
|
||||||
|
|
||||||
|
"" Like a boss, sudo AFTER opening the file to write
|
||||||
|
cmap w!! w !sudo tee % >/dev/null
|
||||||
|
|
||||||
|
let g:startify_lists = [
|
||||||
|
\ { 'type': 'dir', 'header': [' Current Directory '. getcwd()] },
|
||||||
|
\ { 'type': 'sessions', 'header': [' Sessions'] },
|
||||||
|
\ { 'type': 'bookmarks', 'header': [' Bookmarks'] }
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
let g:startify_bookmarks = [
|
||||||
|
\ '~/.local/share/src',
|
||||||
|
\ ]
|
||||||
|
|
||||||
|
let g:airline_theme='bubblegum'
|
||||||
|
let g:airline_powerline_fonts = 1
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
tmux = {
|
||||||
|
enable = true;
|
||||||
|
plugins = with pkgs.tmuxPlugins; [
|
||||||
|
vim-tmux-navigator
|
||||||
|
sensible
|
||||||
|
yank
|
||||||
|
prefix-highlight
|
||||||
|
{
|
||||||
|
plugin = power-theme;
|
||||||
|
extraConfig = ''
|
||||||
|
set -g @tmux_power_theme 'gold'
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = resurrect; # Used by tmux-continuum
|
||||||
|
|
||||||
|
# Use XDG data directory
|
||||||
|
# https://github.com/tmux-plugins/tmux-resurrect/issues/348
|
||||||
|
extraConfig = ''
|
||||||
|
set -g @resurrect-dir '$HOME/.cache/tmux/resurrect'
|
||||||
|
set -g @resurrect-capture-pane-contents 'on'
|
||||||
|
set -g @resurrect-pane-contents-area 'visible'
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
{
|
||||||
|
plugin = continuum;
|
||||||
|
extraConfig = ''
|
||||||
|
set -g @continuum-restore 'on'
|
||||||
|
set -g @continuum-save-interval '5' # minutes
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
terminal = "screen-256color";
|
||||||
|
prefix = "C-x";
|
||||||
|
escapeTime = 10;
|
||||||
|
historyLimit = 50000;
|
||||||
|
extraConfig = ''
|
||||||
|
# Remove Vim mode delays
|
||||||
|
set -g focus-events on
|
||||||
|
|
||||||
|
# Enable full mouse support
|
||||||
|
set -g mouse on
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Key bindings
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Unbind default keys
|
||||||
|
unbind C-b
|
||||||
|
unbind '"'
|
||||||
|
unbind %
|
||||||
|
|
||||||
|
# Split panes, vertical or horizontal
|
||||||
|
bind-key x split-window -v
|
||||||
|
bind-key v split-window -h
|
||||||
|
|
||||||
|
# Move around panes with vim-like bindings (h,j,k,l)
|
||||||
|
bind-key -n M-k select-pane -U
|
||||||
|
bind-key -n M-h select-pane -L
|
||||||
|
bind-key -n M-j select-pane -D
|
||||||
|
bind-key -n M-l select-pane -R
|
||||||
|
|
||||||
|
# Smart pane switching with awareness of Vim splits.
|
||||||
|
# This is copy paste from https://github.com/christoomey/vim-tmux-navigator
|
||||||
|
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
|
||||||
|
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
||||||
|
bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
|
||||||
|
bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
|
||||||
|
bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
|
||||||
|
bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R'
|
||||||
|
tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")'
|
||||||
|
if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \
|
||||||
|
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'"
|
||||||
|
if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \
|
||||||
|
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'"
|
||||||
|
|
||||||
|
bind-key -T copy-mode-vi 'C-h' select-pane -L
|
||||||
|
bind-key -T copy-mode-vi 'C-j' select-pane -D
|
||||||
|
bind-key -T copy-mode-vi 'C-k' select-pane -U
|
||||||
|
bind-key -T copy-mode-vi 'C-l' select-pane -R
|
||||||
|
bind-key -T copy-mode-vi 'C-\' select-pane -l
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
catppuccin = {
|
|
||||||
autoEnable = true;
|
|
||||||
enable = true;
|
|
||||||
flavor = "mocha";
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
gpg-agent = {
|
gpg-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -365,6 +585,7 @@ in
|
|||||||
{ path = "/Applications/Microsoft Word.app/"; }
|
{ path = "/Applications/Microsoft Word.app/"; }
|
||||||
{ path = "/Applications/Microsoft PowerPoint.app/"; }
|
{ path = "/Applications/Microsoft PowerPoint.app/"; }
|
||||||
{ path = "/Applications/Microsoft Teams.app/"; }
|
{ path = "/Applications/Microsoft Teams.app/"; }
|
||||||
|
{ path = "/Applications/Affinity.app/"; }
|
||||||
{ path = "/Applications/Monal.app/"; }
|
{ path = "/Applications/Monal.app/"; }
|
||||||
{ path = "/System/Applications/Utilities/Screen Sharing.app/"; }
|
{ path = "/System/Applications/Utilities/Screen Sharing.app/"; }
|
||||||
{ path = "/run/current-system/Applications/Emacs.app/"; }
|
{ path = "/run/current-system/Applications/Emacs.app/"; }
|
||||||
|
|||||||
@@ -76,9 +76,11 @@ with pkgs;
|
|||||||
docker-compose
|
docker-compose
|
||||||
|
|
||||||
# Media-related packages
|
# Media-related packages
|
||||||
|
darktable
|
||||||
fd
|
fd
|
||||||
ffmpeg
|
ffmpeg
|
||||||
imagemagick
|
imagemagick
|
||||||
|
scour
|
||||||
|
|
||||||
# Text and terminal utilities
|
# Text and terminal utilities
|
||||||
hunspell
|
hunspell
|
||||||
@@ -109,7 +111,6 @@ with pkgs;
|
|||||||
jinja2
|
jinja2
|
||||||
markupsafe
|
markupsafe
|
||||||
mercantile
|
mercantile
|
||||||
mlx-lm
|
|
||||||
numpy
|
numpy
|
||||||
pandas
|
pandas
|
||||||
pillow
|
pillow
|
||||||
@@ -125,6 +126,9 @@ with pkgs;
|
|||||||
wsproto
|
wsproto
|
||||||
zipp
|
zipp
|
||||||
]
|
]
|
||||||
|
++ lib.optionals pkgs.stdenv.hostPlatform.isAarch64 [
|
||||||
|
mlx-lm
|
||||||
|
]
|
||||||
))
|
))
|
||||||
|
|
||||||
# LLM
|
# LLM
|
||||||
|
|||||||
Reference in New Issue
Block a user