Compare commits
No commits in common. "mainline" and "darwin-patch-nodejs_20" have entirely different histories.
mainline
...
darwin-pat
18 changed files with 384 additions and 428 deletions
|
@ -1 +0,0 @@
|
||||||
ce54be9aac846c7798307d6d6fcee3346c01f601
|
|
|
@ -28,6 +28,7 @@ in
|
||||||
|
|
||||||
# configure console
|
# configure console
|
||||||
console = {
|
console = {
|
||||||
|
font = "Lat2-Terminus16";
|
||||||
keyMap = "de";
|
keyMap = "de";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -180,7 +181,7 @@ in
|
||||||
|
|
||||||
# Flatpak support
|
# Flatpak support
|
||||||
services.flatpak.enable = true;
|
services.flatpak.enable = true;
|
||||||
xdg.portal.extraPortals = [ pkgs.kdePackages.xdg-desktop-portal-kde ];
|
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-kde ];
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with `passwd`.
|
# Define a user account. Don't forget to set a password with `passwd`.
|
||||||
users.users.spiollinux = {
|
users.users.spiollinux = {
|
||||||
|
@ -268,5 +269,4 @@ in
|
||||||
networking.networkmanager.unmanaged = [ "interface-name:ve-*" ];
|
networking.networkmanager.unmanaged = [ "interface-name:ve-*" ];
|
||||||
|
|
||||||
services.dbus.implementation = "broker";
|
services.dbus.implementation = "broker";
|
||||||
system.rebuild.enableNg = true;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
exfat
|
exfat
|
||||||
iotop
|
iotop
|
||||||
cifs-utils
|
cifs-utils
|
||||||
dool
|
dstat
|
||||||
lsof
|
lsof
|
||||||
macchanger
|
macchanger
|
||||||
borgbackup
|
borgbackup
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
# Enable sound.
|
# Enable sound.
|
||||||
services.pulseaudio = {
|
hardware.pulseaudio = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.pulseaudioFull;
|
package = pkgs.pulseaudioFull;
|
||||||
# decouple pulseaudio application and sink volumes
|
# decouple pulseaudio application and sink volumes
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
imports = [ ../common/nix-settings.nix ];
|
imports = [ ../common/nix-settings.nix ];
|
||||||
nix = {
|
nix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = pkgs.nixVersions.nix_2_25;
|
||||||
settings = {
|
settings = {
|
||||||
trusted-users = [
|
trusted-users = [
|
||||||
"os"
|
"os"
|
||||||
|
@ -20,6 +21,9 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Auto upgrade nix package and the daemon service.
|
||||||
|
services.nix-daemon.enable = true;
|
||||||
|
|
||||||
# List packages installed in system profile. To search by name, run:
|
# List packages installed in system profile. To search by name, run:
|
||||||
# $ nix-env -qaP | grep wget
|
# $ nix-env -qaP | grep wget
|
||||||
environment.systemPackages = [ pkgs.vim ];
|
environment.systemPackages = [ pkgs.vim ];
|
||||||
|
@ -34,7 +38,6 @@
|
||||||
# system-wide SSH configuration, used by nix-daemon for remote builders
|
# system-wide SSH configuration, used by nix-daemon for remote builders
|
||||||
|
|
||||||
# show hidden files
|
# show hidden files
|
||||||
system.primaryUser = "os";
|
|
||||||
system.defaults.NSGlobalDomain.AppleShowAllFiles = true;
|
system.defaults.NSGlobalDomain.AppleShowAllFiles = true;
|
||||||
|
|
||||||
# Used for backwards compatibility, please read the changelog before changing.
|
# Used for backwards compatibility, please read the changelog before changing.
|
||||||
|
|
80
flake.lock
generated
80
flake.lock
generated
|
@ -102,16 +102,16 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1753592768,
|
"lastModified": 1747020534,
|
||||||
"narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=",
|
"narHash": "sha256-D/6rkiC6w2p+4SwRiVKrWIeYzun8FBg7NlMKMwQMxO0=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "fc3add429f21450359369af74c2375cb34a2d204",
|
"rev": "b4bbdc6fde16fc2051fcde232f6e288cd22007ca",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-25.05",
|
"ref": "release-24.11",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -163,27 +163,27 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749744770,
|
"lastModified": 1743127615,
|
||||||
"narHash": "sha256-MEM9XXHgBF/Cyv1RES1t6gqAX7/tvayBC1r/KPyK1ls=",
|
"narHash": "sha256-+sMGqywrSr50BGMLMeY789mSrzjkoxZiu61eWjYS/8o=",
|
||||||
"owner": "LnL7",
|
"owner": "LnL7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "536f951efb1ccda9b968e3c9dee39fbeb6d3fdeb",
|
"rev": "fc843893cecc1838a59713ee3e50e9e7edc6207c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "LnL7",
|
"owner": "LnL7",
|
||||||
"ref": "nix-darwin-25.05",
|
"ref": "nix-darwin-24.11",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754564048,
|
"lastModified": 1747129300,
|
||||||
"narHash": "sha256-dz303vGuzWjzOPOaYkS9xSW+B93PSAJxvBd6CambXVA=",
|
"narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "26ed7a0d4b8741fe1ef1ee6fa64453ca056ce113",
|
"rev": "e81fd167b33121269149c57806599045fd33eeed",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -195,11 +195,11 @@
|
||||||
},
|
},
|
||||||
"nixos-unstable": {
|
"nixos-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754725699,
|
"lastModified": 1746904237,
|
||||||
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
|
"narHash": "sha256-3e+AVBczosP5dCLQmMoMEogM57gmZ2qrVSrmq9aResQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
|
"rev": "d89fc19e405cb2d55ce7cc114356846a0ee5e956",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -243,27 +243,27 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754937576,
|
"lastModified": 1746957726,
|
||||||
"narHash": "sha256-3sWA5WJybUE16kIMZ3+uxcxKZY/JRR4DFBqLdSLBo7w=",
|
"narHash": "sha256-k9ut1LSfHCr0AW82ttEQzXVCqmyWVA5+SHJkS5ID/Jo=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ddae11e58c0c345bf66efbddbf2192ed0e58f896",
|
"rev": "a39ed32a651fdee6842ec930761e31d1f242cb94",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-25.05",
|
"ref": "nixos-24.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754725699,
|
"lastModified": 1746904237,
|
||||||
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
|
"narHash": "sha256-3e+AVBczosP5dCLQmMoMEogM57gmZ2qrVSrmq9aResQ=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
|
"rev": "d89fc19e405cb2d55ce7cc114356846a0ee5e956",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -276,14 +276,15 @@
|
||||||
"nur": {
|
"nur": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_2",
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_3",
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755080806,
|
"lastModified": 1747261242,
|
||||||
"narHash": "sha256-P94SMIPWhpSX5tvX4ccFDEC1pm0SsddKNouM49Dz5Oo=",
|
"narHash": "sha256-6p8kO62jbk+LUrDrLT23XbClNRyosnlfh/KCbE5fwnQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "3a675e8f6015cb8ea14138b0c69722b2a0e09dee",
|
"rev": "e29c558fa4174da179e2e7f9a41c34466a200fda",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -329,7 +330,7 @@
|
||||||
"nixos-unstable": "nixos-unstable",
|
"nixos-unstable": "nixos-unstable",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"treefmt-nix": "treefmt-nix",
|
"treefmt-nix": "treefmt-nix_2",
|
||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -372,15 +373,36 @@
|
||||||
"treefmt-nix": {
|
"treefmt-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
"nur",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748243702,
|
"lastModified": 1733222881,
|
||||||
"narHash": "sha256-9YzfeN8CB6SzNPyPm2XjRRqSixDopTapaRsnTpXUEY8=",
|
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "1f3f7b784643d488ba4bf315638b2b0a4c5fb007",
|
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1746216483,
|
||||||
|
"narHash": "sha256-4h3s1L/kKqt3gMDcVfN8/4v2jqHrgLIe4qok4ApH5x4=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "29ec5026372e0dec56f890e50dbe4f45930320fd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
description = "NixOS system flake";
|
description = "NixOS system flake";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
||||||
nixos-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixos-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-25.05";
|
url = "github:nix-community/home-manager/release-24.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
lanzaboote = {
|
lanzaboote = {
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
nix-darwin = {
|
nix-darwin = {
|
||||||
url = "github:LnL7/nix-darwin/nix-darwin-25.05";
|
url = "github:LnL7/nix-darwin/nix-darwin-24.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
(import nixpkgs { inherit system; }).applyPatches {
|
(import nixpkgs { inherit system; }).applyPatches {
|
||||||
name = "nixpkgs-patched";
|
name = "nixpkgs-patched";
|
||||||
src = nixpkgs;
|
src = nixpkgs;
|
||||||
patches = [ ];
|
patches = [ ./patches/nixos-nixpkgs-362c2bc76d359b908ad1389ee28c23ee0e862324.patch ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# necessary to make the top-level inputs available to system configuration
|
# necessary to make the top-level inputs available to system configuration
|
||||||
|
@ -166,7 +166,6 @@
|
||||||
# inspired by https://github.com/Mic92/dotfiles/blob/main/home-manager/flake-module.nix
|
# inspired by https://github.com/Mic92/dotfiles/blob/main/home-manager/flake-module.nix
|
||||||
# run like: `nix run .#hm -- <action>`
|
# run like: `nix run .#hm -- <action>`
|
||||||
apps.hm = {
|
apps.hm = {
|
||||||
meta.description = "Wrapper around home-manager with automatic profile selection";
|
|
||||||
type = "app";
|
type = "app";
|
||||||
program = "${pkgs.writeShellScriptBin "hm" ''
|
program = "${pkgs.writeShellScriptBin "hm" ''
|
||||||
set -x
|
set -x
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
./modules/packages.nix
|
./modules/packages.nix
|
||||||
./modules/vscodium.nix
|
./modules/vscodium.nix
|
||||||
./modules/fonts.nix
|
./modules/fonts.nix
|
||||||
./modules/captive-browser.nix
|
|
||||||
];
|
];
|
||||||
home.homeDirectory =
|
home.homeDirectory =
|
||||||
if pkgs.stdenv.isDarwin then "/Users/${config.home.username}" else "/home/${config.home.username}";
|
if pkgs.stdenv.isDarwin then "/Users/${config.home.username}" else "/home/${config.home.username}";
|
||||||
|
@ -52,7 +51,9 @@
|
||||||
merge.tool = "vimdiff";
|
merge.tool = "vimdiff";
|
||||||
# provide `git mergetool -t nixfmt`
|
# provide `git mergetool -t nixfmt`
|
||||||
mergetool.nixfmt = {
|
mergetool.nixfmt = {
|
||||||
cmd = "${lib.getExe pkgs.nixfmt-rfc-style} --mergetool \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"";
|
cmd = "${
|
||||||
|
lib.getExe inputs.nixos-unstable.legacyPackages.${system}.nixfmt-rfc-style
|
||||||
|
} --mergetool \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"";
|
||||||
trustExitCode = true;
|
trustExitCode = true;
|
||||||
};
|
};
|
||||||
core.excludesfile = toString (
|
core.excludesfile = toString (
|
||||||
|
@ -104,7 +105,7 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
syntaxHighlighting.enable = true;
|
syntaxHighlighting.enable = true;
|
||||||
history.ignoreSpace = true;
|
history.ignoreSpace = true;
|
||||||
initContent = ''
|
initExtra = ''
|
||||||
# Uncomment following line if you want red dots to be displayed while waiting for completion
|
# Uncomment following line if you want red dots to be displayed while waiting for completion
|
||||||
COMPLETION_WAITING_DOTS="true"
|
COMPLETION_WAITING_DOTS="true"
|
||||||
### Fix slowness of pastes with zsh-syntax-highlighting.zsh
|
### Fix slowness of pastes with zsh-syntax-highlighting.zsh
|
||||||
|
|
|
@ -33,45 +33,46 @@
|
||||||
contacts = import "${inputs.mysecrets}/contacts.nix" { inherit lib; };
|
contacts = import "${inputs.mysecrets}/contacts.nix" { inherit lib; };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
includes = [
|
includes =
|
||||||
{
|
[
|
||||||
condition = "gitdir:~/Seafile/Studium/";
|
{
|
||||||
contents = {
|
condition = "gitdir:~/Seafile/Studium/";
|
||||||
user.name = contacts.personal.name;
|
|
||||||
user.email = contacts.uni.email;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
condition = "gitdir:~/src/nixpkgs/";
|
|
||||||
contents = {
|
|
||||||
user.name = "Trolli Schmittlauch";
|
|
||||||
user.email = contacts.nixOs.email;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
]
|
|
||||||
# set default name for several other common locations
|
|
||||||
++
|
|
||||||
map
|
|
||||||
(dir: {
|
|
||||||
condition = "gitdir:${dir}";
|
|
||||||
contents = {
|
contents = {
|
||||||
user = {
|
user.name = contacts.personal.name;
|
||||||
inherit (contacts.schmittlauch) email name;
|
user.email = contacts.uni.email;
|
||||||
};
|
|
||||||
};
|
};
|
||||||
})
|
}
|
||||||
[
|
{
|
||||||
"~/src/"
|
condition = "gitdir:~/src/nixpkgs/";
|
||||||
"~/bin/"
|
contents = {
|
||||||
"~/tmp/"
|
user.name = "Trolli Schmittlauch";
|
||||||
"~/nixconfigs/"
|
user.email = contacts.nixOs.email;
|
||||||
];
|
};
|
||||||
|
}
|
||||||
|
]
|
||||||
|
# set default name for several other common locations
|
||||||
|
++
|
||||||
|
map
|
||||||
|
(dir: {
|
||||||
|
condition = "gitdir:${dir}";
|
||||||
|
contents = {
|
||||||
|
user = {
|
||||||
|
inherit (contacts.schmittlauch) email name;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
[
|
||||||
|
"~/src/"
|
||||||
|
"~/bin/"
|
||||||
|
"~/tmp/"
|
||||||
|
"~/nixconfigs/"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.gpg-agent = {
|
services.gpg-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
#enableSshSupport = true;
|
#enableSshSupport = true;
|
||||||
pinentry.package = pkgs.pinentry-qt;
|
pinentryPackage = pkgs.pinentry-qt;
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
|
|
|
@ -1,81 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
tomlFormat = pkgs.formats.toml { };
|
|
||||||
cfg = config.programs.captive-browser;
|
|
||||||
inherit (pkgs.stdenv.hostPlatform) isDarwin;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.programs.captive-browser = {
|
|
||||||
enable = lib.mkEnableOption "Enable custom captive-browser in user PATH";
|
|
||||||
package = lib.mkPackageOption pkgs "captive-browser" { nullable = true; };
|
|
||||||
settings = lib.mkOption {
|
|
||||||
type = lib.types.submodule {
|
|
||||||
freeformType = tomlFormat.type;
|
|
||||||
|
|
||||||
options = {
|
|
||||||
browser = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
description = "command to invoke the browser with";
|
|
||||||
|
|
||||||
# browser is the shell (/bin/sh) command executed once the proxy starts.
|
|
||||||
# When browser exits, the proxy exits. An extra env var PROXY is available.
|
|
||||||
#
|
|
||||||
# Here, we use a separate Chrome instance in Incognito mode, so that
|
|
||||||
# it can run (and be waited for) alongside the default one, and that
|
|
||||||
# it maintains no state across runs. To configure this browser open a
|
|
||||||
# normal window in it, settings will be preserved.
|
|
||||||
default = ''
|
|
||||||
${cfg.browserCommand} \
|
|
||||||
--user-data-dir="$HOME/Library/Application Support/Google/Captive" \
|
|
||||||
--proxy-server="socks5://$PROXY" \
|
|
||||||
--host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE localhost" \
|
|
||||||
--no-first-run --new-window --incognito \
|
|
||||||
http://example.com
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
interface = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
description = "WLAN interface to use";
|
|
||||||
};
|
|
||||||
browserCommand = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
default = if isDarwin then "open -n -W -a \"Google Chrome\" --args" else (lib.getExe pkgs.chromium);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home.packages = [ cfg.package ];
|
|
||||||
|
|
||||||
programs.captive-browser.settings = builtins.mapAttrs (_: lib.mkOptionDefault) {
|
|
||||||
# dhcp-dns is the shell (/bin/sh) command executed to obtain the DHCP
|
|
||||||
# DNS server address. The first match of an IPv4 regex is used.
|
|
||||||
# IPv4 only, because let's be real, it's a captive portal.
|
|
||||||
dhcp-dns =
|
|
||||||
if isDarwin then
|
|
||||||
"ipconfig getoption ${cfg.interface} domain_name_server"
|
|
||||||
else
|
|
||||||
"${lib.getExe pkgs.dhcpcd} -U ${cfg.interface} | grep domain_name_servers";
|
|
||||||
|
|
||||||
# socks5-addr is the listen address for the SOCKS5 proxy server.
|
|
||||||
socks5-addr = "localhost:1666";
|
|
||||||
};
|
|
||||||
home.file.".config/captive-browser.toml" = lib.mkIf (isDarwin && !config.xdg.enable) {
|
|
||||||
source = tomlFormat.generate "captive-browser-config" cfg.settings;
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."captive-browser.toml" = lib.mkIf (!(isDarwin && !config.xdg.enable)) {
|
|
||||||
source = tomlFormat.generate "captive-browser-config" cfg.settings;
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -43,6 +43,5 @@ in
|
||||||
koma-script
|
koma-script
|
||||||
;
|
;
|
||||||
})
|
})
|
||||||
]
|
] ++ lib.optionals config.schmittlauch.latex.guiTools latexGuiTools;
|
||||||
++ lib.optionals config.schmittlauch.latex.guiTools latexGuiTools;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,85 +12,83 @@ let
|
||||||
unstable = inputs.nixos-unstable.legacyPackages.${system};
|
unstable = inputs.nixos-unstable.legacyPackages.${system};
|
||||||
nur = inputs.nur.legacyPackages.${system};
|
nur = inputs.nur.legacyPackages.${system};
|
||||||
|
|
||||||
graphicsApps = [
|
graphicsApps =
|
||||||
inkscape
|
[
|
||||||
darktable
|
inkscape
|
||||||
exiftool
|
darktable
|
||||||
]
|
exiftool
|
||||||
++ (with gimp3Plugins; [
|
gimp
|
||||||
#fourier # broken
|
]
|
||||||
#lqrPlugin # broken
|
++ (with gimpPlugins; [
|
||||||
])
|
fourier
|
||||||
++ lib.optionals pkgs.stdenv.isLinux [
|
lqrPlugin
|
||||||
gimp3
|
])
|
||||||
hugin
|
++ lib.optionals pkgs.stdenv.isLinux [
|
||||||
#luminanceHDR # FIXME, build failure
|
hugin
|
||||||
xournalpp
|
luminanceHDR
|
||||||
]
|
xournal
|
||||||
++ lib.optionals pkgs.stdenv.isDarwin [
|
];
|
||||||
gimp
|
|
||||||
];
|
|
||||||
|
|
||||||
multimediaApps = [
|
multimediaApps =
|
||||||
mpv
|
[
|
||||||
yt-dlp
|
mpv
|
||||||
]
|
yt-dlp
|
||||||
++ lib.optionals pkgs.stdenv.isDarwin [ vlc-bin ]
|
]
|
||||||
++ lib.optionals pkgs.stdenv.isLinux [
|
++ lib.optionals pkgs.stdenv.isLinux [
|
||||||
vlc
|
vlc
|
||||||
amarok
|
amarok
|
||||||
clementine
|
clementine
|
||||||
kdePackages.elisa
|
elisa
|
||||||
musescore
|
musescore
|
||||||
tenacity
|
tenacity
|
||||||
soundkonverter
|
soundkonverter
|
||||||
#nur.repos.fooker.studio-link
|
#nur.repos.fooker.studio-link
|
||||||
];
|
];
|
||||||
|
|
||||||
cliApps = [
|
cliApps =
|
||||||
coreutils
|
[
|
||||||
myVim
|
coreutils
|
||||||
htop
|
myVim
|
||||||
tmux
|
htop
|
||||||
httpie
|
tmux
|
||||||
rsync
|
httpie
|
||||||
ponysay
|
ponysay
|
||||||
gti
|
gti
|
||||||
tree
|
tree
|
||||||
lsof
|
lsof
|
||||||
mosh
|
mosh
|
||||||
openssh
|
openssh
|
||||||
sshfs-fuse
|
sshfs-fuse
|
||||||
sshuttle
|
sshuttle
|
||||||
cryfs
|
cryfs
|
||||||
thefuck
|
thefuck
|
||||||
gnupg
|
gnupg
|
||||||
unar
|
unar
|
||||||
lzop
|
lzop
|
||||||
p7zip
|
p7zip
|
||||||
pwgen
|
pwgen
|
||||||
pandoc
|
pandoc
|
||||||
pdfgrep
|
pdfgrep
|
||||||
# zig dependency breaks occasionally, stay on C version for now
|
# zig dependency breaks occasionally, stay on C version for now
|
||||||
ncdu_1
|
ncdu_1
|
||||||
dos2unix
|
dos2unix
|
||||||
unzip
|
unzip
|
||||||
fswatch
|
fswatch
|
||||||
jq
|
jq
|
||||||
age
|
age
|
||||||
lnav
|
lnav
|
||||||
spacer
|
spacer
|
||||||
|
|
||||||
nix-output-monitor # putting this here as a plain `nix` alternative
|
nix-output-monitor # putting this here as a plain `nix` alternative
|
||||||
]
|
]
|
||||||
++ lib.optionals pkgs.stdenv.isLinux [
|
++ lib.optionals pkgs.stdenv.isLinux [
|
||||||
xclip
|
xclip
|
||||||
smbnetfs # for FUSE smb mounting
|
smbnetfs # for FUSE smb mounting
|
||||||
psmisc # for killall
|
psmisc # for killall
|
||||||
torsocks
|
torsocks
|
||||||
agrep
|
agrep
|
||||||
reptyr # re-bind running program to other tty
|
reptyr # re-bind running program to other tty
|
||||||
];
|
];
|
||||||
|
|
||||||
nixHelpers = [
|
nixHelpers = [
|
||||||
nixpkgs-review
|
nixpkgs-review
|
||||||
|
@ -98,32 +96,33 @@ let
|
||||||
nix-top
|
nix-top
|
||||||
statix
|
statix
|
||||||
];
|
];
|
||||||
devTools = [
|
devTools =
|
||||||
curl
|
[
|
||||||
httpie
|
curl
|
||||||
gcc
|
httpie
|
||||||
shellcheck
|
gcc
|
||||||
mtr
|
shellcheck
|
||||||
ripgrep
|
mtr
|
||||||
fd
|
ripgrep
|
||||||
gitui
|
fd
|
||||||
pre-commit
|
gitui
|
||||||
scriv
|
pre-commit
|
||||||
|
scriv
|
||||||
|
|
||||||
# Haskell
|
# Haskell
|
||||||
ghc
|
ghc
|
||||||
cabal2nix
|
cabal2nix
|
||||||
]
|
]
|
||||||
++ lib.optionals pkgs.stdenv.isLinux [
|
++ lib.optionals pkgs.stdenv.isLinux [
|
||||||
gdb
|
gdb
|
||||||
strace
|
strace
|
||||||
ltrace
|
ltrace
|
||||||
valgrind
|
valgrind
|
||||||
zeal
|
zeal
|
||||||
];
|
];
|
||||||
|
|
||||||
pythonTools = with python3Packages; [
|
pythonTools = with python3Packages; [
|
||||||
python # to shadow old macOS python
|
python3 # to shadow old macOS python
|
||||||
ipython
|
ipython
|
||||||
uv
|
uv
|
||||||
pip
|
pip
|
||||||
|
@ -143,12 +142,13 @@ let
|
||||||
|
|
||||||
desktopCommon = [
|
desktopCommon = [
|
||||||
keepassxc
|
keepassxc
|
||||||
|
tigervnc
|
||||||
];
|
];
|
||||||
|
|
||||||
desktopLinux = [
|
desktopLinux = [
|
||||||
firefox
|
firefox
|
||||||
chromium
|
chromium
|
||||||
kdePackages.falkon
|
falkon
|
||||||
thunderbird
|
thunderbird
|
||||||
calibre
|
calibre
|
||||||
dino
|
dino
|
||||||
|
@ -164,15 +164,15 @@ let
|
||||||
seafile-client
|
seafile-client
|
||||||
alacritty
|
alacritty
|
||||||
libreoffice-qt6 # still with KDE integration
|
libreoffice-qt6 # still with KDE integration
|
||||||
|
backintime-common
|
||||||
anki
|
anki
|
||||||
signal-desktop
|
signal-desktop
|
||||||
(tor-browser-bundle-bin.override {
|
(tor-browser-bundle-bin.override {
|
||||||
mediaSupport = true;
|
mediaSupport = true;
|
||||||
pulseaudioSupport = pkgs.stdenv.isLinux;
|
pulseaudioSupport = pkgs.stdenv.isLinux;
|
||||||
})
|
})
|
||||||
tigervnc
|
|
||||||
rustdesk-flutter
|
|
||||||
pdfpc
|
pdfpc
|
||||||
|
quaternion
|
||||||
nheko
|
nheko
|
||||||
gpxsee
|
gpxsee
|
||||||
subsurface
|
subsurface
|
||||||
|
@ -183,7 +183,7 @@ let
|
||||||
#(pkgs.pidgin-with-plugins.override {
|
#(pkgs.pidgin-with-plugins.override {
|
||||||
# plugins = [ pkgs.pidginotr ];})
|
# plugins = [ pkgs.pidginotr ];})
|
||||||
|
|
||||||
logseq
|
unstable.logseq
|
||||||
|
|
||||||
# for Hibiscus banking software
|
# for Hibiscus banking software
|
||||||
jameica
|
jameica
|
||||||
|
@ -192,32 +192,33 @@ let
|
||||||
chromedriver
|
chromedriver
|
||||||
];
|
];
|
||||||
|
|
||||||
kdeTools = [
|
kdeTools =
|
||||||
okteta
|
[
|
||||||
plasma5Packages.kdeconnect-kde
|
okteta
|
||||||
]
|
plasma5Packages.kdeconnect-kde
|
||||||
++ (with kdePackages; [
|
]
|
||||||
okular
|
++ (with kdePackages; [
|
||||||
gwenview
|
okular
|
||||||
yakuake
|
gwenview
|
||||||
dolphin
|
yakuake
|
||||||
spectacle
|
dolphin
|
||||||
kate
|
spectacle
|
||||||
kleopatra
|
kate
|
||||||
qdirstat
|
kleopatra
|
||||||
ark
|
qdirstat
|
||||||
kwalletmanager
|
ark
|
||||||
#ktouch # TODO: unbreak
|
kwalletmanager
|
||||||
kcharselect
|
#ktouch # TODO: unbreak
|
||||||
konversation
|
kcharselect
|
||||||
krdc
|
konversation
|
||||||
skanlite
|
krdc
|
||||||
akonadiconsole
|
skanlite
|
||||||
tokodon # mastodon client
|
akonadiconsole
|
||||||
networkmanager-qt
|
tokodon # mastodon client
|
||||||
kcrash
|
networkmanager-qt
|
||||||
breeze-gtk
|
kcrash
|
||||||
]);
|
breeze-gtk
|
||||||
|
]);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.schmittlauch.packages = {
|
options.schmittlauch.packages = {
|
||||||
|
|
|
@ -11,110 +11,112 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.vscodium;
|
package = pkgs.vscodium;
|
||||||
mutableExtensionsDir = true;
|
mutableExtensionsDir = true;
|
||||||
profiles.default = {
|
extensions =
|
||||||
extensions =
|
with pkgs.vscode-extensions;
|
||||||
with pkgs.vscode-extensions;
|
[
|
||||||
[
|
ms-python.python
|
||||||
ms-python.python
|
vscodevim.vim
|
||||||
charliermarsh.ruff
|
yzhang.markdown-all-in-one
|
||||||
vscodevim.vim
|
bungcip.better-toml
|
||||||
yzhang.markdown-all-in-one
|
eamodio.gitlens
|
||||||
bungcip.better-toml
|
jnoortheen.nix-ide
|
||||||
eamodio.gitlens
|
mkhl.direnv
|
||||||
jnoortheen.nix-ide
|
editorconfig.editorconfig
|
||||||
mkhl.direnv
|
]
|
||||||
editorconfig.editorconfig
|
++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||||
]
|
|
||||||
++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
|
||||||
{
|
|
||||||
name = "Sync-Rsync";
|
|
||||||
publisher = "vscode-ext";
|
|
||||||
version = "0.36.0";
|
|
||||||
sha256 = "sha256-0b/OHLZfXo0NAVAVkzZSqMGDzF0uvPRoiqsZtW1iOdA";
|
|
||||||
}
|
|
||||||
# TODO: probably available in nixpkgs soonish?
|
|
||||||
{
|
|
||||||
name = "mypy-type-checker";
|
|
||||||
publisher = "ms-python";
|
|
||||||
version = "2023.3.12681020";
|
|
||||||
sha256 = "sha256-rhed7CQlvxksVCGc9nPU2oYQWtXcAV5TzuG63e8Y3zM=";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "vscode-pets";
|
|
||||||
publisher = "tonybaloney";
|
|
||||||
version = "1.25.1";
|
|
||||||
sha256 = "sha256-as3e2LzKBSsiGs/UGIZ06XqbLh37irDUaCzslqITEJQ=";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
userSettings =
|
|
||||||
let
|
|
||||||
defaultPython = pkgs.python3.withPackages (ps: [
|
|
||||||
ps.jedi
|
|
||||||
ps.jedi-language-server
|
|
||||||
ps.pip
|
|
||||||
ps.setuptools # for pkg_resources
|
|
||||||
ps.black
|
|
||||||
ps.mypy
|
|
||||||
]);
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
"editor.fontLigatures" = true;
|
name = "Sync-Rsync";
|
||||||
"editor.accessibilitySupport" = false; # prevent asking
|
publisher = "vscode-ext";
|
||||||
"editor.cursorBlinking" = "phase";
|
version = "0.36.0";
|
||||||
"editor.stickyScroll.enabled" = true;
|
sha256 = "sha256-0b/OHLZfXo0NAVAVkzZSqMGDzF0uvPRoiqsZtW1iOdA";
|
||||||
"workbench.editor.highlightModifiedTabs" = true;
|
}
|
||||||
"window.autoDetectColorScheme" = true;
|
# TODO: probably available in nixpkgs soonish?
|
||||||
"workbench.preferredDarkColorTheme" = "Default Dark Modern";
|
{
|
||||||
"workbench.preferredLightColorTheme" = "Default Light Modern";
|
name = "mypy-type-checker";
|
||||||
"[nix]" = {
|
publisher = "ms-python";
|
||||||
"editor.insertSpaces" = true;
|
version = "2023.3.12681020";
|
||||||
"editor.tabSize" = 2;
|
sha256 = "sha256-rhed7CQlvxksVCGc9nPU2oYQWtXcAV5TzuG63e8Y3zM=";
|
||||||
# for now, disable automatic formatting to prevent disruption of existing code bases
|
}
|
||||||
"editor.formatOnPaste" = false;
|
{
|
||||||
"editor.formatOnSave" = false;
|
name = "black-formatter";
|
||||||
"editor.formatOnType" = false;
|
publisher = "ms-python";
|
||||||
};
|
version = "2023.5.12771008";
|
||||||
"nix.formatterPath" = lib.getExe pkgs.nixfmt-rfc-style;
|
sha256 = "sha256-lJG0RRUUMhQGs2a6oBtoqt+uY1kSJ0+cbmaP07hNh2o=";
|
||||||
"nix.enableLanguageServer" = true;
|
}
|
||||||
"nix.serverPath" = lib.getExe pkgs.nixd;
|
{
|
||||||
"nix.serverSettings" = { };
|
name = "vscode-pets";
|
||||||
"editor.fontSize" = 13;
|
publisher = "tonybaloney";
|
||||||
"editor.fontWeight" = "normal";
|
version = "1.25.1";
|
||||||
"git.detectSubmodulesLimit" = 30;
|
sha256 = "sha256-as3e2LzKBSsiGs/UGIZ06XqbLh37irDUaCzslqITEJQ=";
|
||||||
"[python]" = {
|
}
|
||||||
"breadcrumbs.showClasses" = true;
|
];
|
||||||
"breadcrumbs.showFunctions" = true;
|
userSettings =
|
||||||
"gitlens.codeLens.symbolScopes" = [ "!Module" ];
|
let
|
||||||
"editor.defaultFormatter" = "charliermarsh.ruff";
|
defaultPython = pkgs.python3.withPackages (ps: [
|
||||||
"editor.formatOnSave" = true;
|
ps.jedi
|
||||||
};
|
ps.jedi-language-server
|
||||||
"python.experiments.enabled" = false;
|
ps.pip
|
||||||
"python.languageServer" = "Jedi"; # don't use proprietary pylance server
|
ps.setuptools # for pkg_resources
|
||||||
"python.defaultInterpreterPath" = "${defaultPython}/bin/python";
|
ps.black
|
||||||
"mypy-type-checker.path" = [ "${pkgs.python3Packages.mypy}/bin/mypy" ];
|
ps.mypy
|
||||||
"mypy-type-checker.importStrategy" = "fromEnvironment";
|
]);
|
||||||
"mypy-type-checker.args" = [ "--ignore-missing-imports" ];
|
in
|
||||||
"ruff.path" = [ (lib.getExe pkgs.ruff) ];
|
{
|
||||||
"ruff.importStrategy" = "fromEnvironment";
|
"editor.fontLigatures" = true;
|
||||||
"gitlens.telemetry.enabled" = false;
|
"editor.accessibilitySupport" = false; # prevent asking
|
||||||
"vim.highlightedyank.enable" = true;
|
"editor.cursorBlinking" = "phase";
|
||||||
"vim.history" = 500;
|
"editor.stickyScroll.enabled" = true;
|
||||||
"vim.neovimUseConfigFile" = true;
|
"workbench.editor.highlightModifiedTabs" = true;
|
||||||
"vim.enableNeovim" = true;
|
"window.autoDetectColorScheme" = true;
|
||||||
"git.suggestSmartCommit" = false;
|
"workbench.preferredDarkColorTheme" = "Default Dark Modern";
|
||||||
"editor.rulers" = [ 79 ];
|
"workbench.preferredLightColorTheme" = "Default Light Modern";
|
||||||
"vim.useSystemClipboard" = true;
|
"[nix]" = {
|
||||||
"vim.smartRelativeLine" = true;
|
"editor.insertSpaces" = true;
|
||||||
"diffEditor.ignoreTrimWhitespace" = false;
|
"editor.tabSize" = 2;
|
||||||
"files.associations" = {
|
# for now, disable automatic formatting to prevent disruption of existing code bases
|
||||||
"*.py" = "python";
|
"editor.formatOnPaste" = false;
|
||||||
};
|
"editor.formatOnSave" = false;
|
||||||
"editor.renderWhitespace" = "all";
|
"editor.formatOnType" = false;
|
||||||
"editor.fontFamily" = "Iosevka Curly Slab, Menlo, Monaco, 'Courier New', monospace";
|
|
||||||
"vim.neovimPath" = lib.getExe pkgs.myVim;
|
|
||||||
"sync-rsync.options" = [ ];
|
|
||||||
"direnv.path.executable" = lib.getExe pkgs.direnv;
|
|
||||||
};
|
};
|
||||||
};
|
"nix.formatterPath" = lib.getExe pkgs.nixfmt-rfc-style;
|
||||||
|
"nix.enableLanguageServer" = true;
|
||||||
|
"nix.serverPath" = lib.getExe pkgs.nixd;
|
||||||
|
"nix.serverSettings" = { };
|
||||||
|
"editor.fontSize" = 13;
|
||||||
|
"editor.fontWeight" = "normal";
|
||||||
|
"git.detectSubmodulesLimit" = 30;
|
||||||
|
"[python]" = {
|
||||||
|
"breadcrumbs.showClasses" = true;
|
||||||
|
"breadcrumbs.showFunctions" = true;
|
||||||
|
"gitlens.codeLens.symbolScopes" = [ "!Module" ];
|
||||||
|
"editor.defaultFormatter" = "ms-python.black-formatter";
|
||||||
|
"editor.formatOnSave" = true;
|
||||||
|
};
|
||||||
|
"python.languageServer" = "Jedi"; # don't use proprietary pylance server
|
||||||
|
"python.defaultInterpreterPath" = "${defaultPython}/bin/python";
|
||||||
|
"black-formatter.path" = [ "${pkgs.python3Packages.black}/bin/black" ];
|
||||||
|
"black-formatter.importStrategy" = "fromEnvironment";
|
||||||
|
"mypy-type-checker.path" = [ "${pkgs.python3Packages.mypy}/bin/mypy" ];
|
||||||
|
"mypy-type-checker.importStrategy" = "fromEnvironment";
|
||||||
|
"mypy-type-checker.args" = [ "--ignore-missing-imports" ];
|
||||||
|
"gitlens.telemetry.enabled" = false;
|
||||||
|
"vim.highlightedyank.enable" = true;
|
||||||
|
"vim.history" = 500;
|
||||||
|
"vim.neovimUseConfigFile" = true;
|
||||||
|
"vim.enableNeovim" = true;
|
||||||
|
"git.suggestSmartCommit" = false;
|
||||||
|
"editor.rulers" = [ 79 ];
|
||||||
|
"vim.useSystemClipboard" = true;
|
||||||
|
"vim.smartRelativeLine" = true;
|
||||||
|
"diffEditor.ignoreTrimWhitespace" = false;
|
||||||
|
"files.associations" = {
|
||||||
|
"*.py" = "python";
|
||||||
|
};
|
||||||
|
"editor.renderWhitespace" = "all";
|
||||||
|
"editor.fontFamily" = "Iosevka Curly Slab, Menlo, Monaco, 'Courier New', monospace";
|
||||||
|
"vim.neovimPath" = lib.getExe pkgs.myVim;
|
||||||
|
"sync-rsync.options" = [ ];
|
||||||
|
"direnv.path.executable" = lib.getExe pkgs.direnv;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,11 +35,9 @@ in
|
||||||
# defaults in bottom match block "*"
|
# defaults in bottom match block "*"
|
||||||
# TODO: common config for desktop as well
|
# TODO: common config for desktop as well
|
||||||
# multiplexer, e.g. to avoid rate limiting on jumphost usage
|
# multiplexer, e.g. to avoid rate limiting on jumphost usage
|
||||||
serverAliveInterval = 10;
|
serverAliveInterval = 60;
|
||||||
serverAliveCountMax = 2; # 2 strikes and you're out
|
|
||||||
controlMaster = "auto";
|
controlMaster = "auto";
|
||||||
# not too long, due to the frequent keepalives
|
controlPersist = "4h";
|
||||||
controlPersist = "1h";
|
|
||||||
# ssh host config
|
# ssh host config
|
||||||
matchBlocks = {
|
matchBlocks = {
|
||||||
|
|
||||||
|
@ -47,6 +45,7 @@ in
|
||||||
"*" = {
|
"*" = {
|
||||||
extraOptions = {
|
extraOptions = {
|
||||||
IdentityAgent = "\"~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock\"";
|
IdentityAgent = "\"~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock\"";
|
||||||
|
#ControlPath = "/tmp/ssh_mux_%h_%p_%r";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -67,38 +66,34 @@ in
|
||||||
contacts = import "${inputs.mysecrets}/contacts.nix" { inherit lib; };
|
contacts = import "${inputs.mysecrets}/contacts.nix" { inherit lib; };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
includes = [
|
includes =
|
||||||
{
|
[
|
||||||
condition = "gitdir:~/src/schmittlauch/";
|
{
|
||||||
|
condition = "gitdir:~/src/schmittlauch/";
|
||||||
|
contents = {
|
||||||
|
user = {
|
||||||
|
inherit (contacts.schmittlauch) name email;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
]
|
||||||
|
# set default name for several other common locations
|
||||||
|
++ map (dir: {
|
||||||
|
condition = "gitdir:${dir}";
|
||||||
contents = {
|
contents = {
|
||||||
user = {
|
user = {
|
||||||
inherit (contacts.schmittlauch) name email;
|
inherit (contacts.work) name email;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}) [ "~/" ];
|
||||||
]
|
|
||||||
# set default name for several other common locations
|
|
||||||
++ map (dir: {
|
|
||||||
condition = "gitdir:${dir}";
|
|
||||||
contents = {
|
|
||||||
user = {
|
|
||||||
inherit (contacts.work) name email;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}) [ "~/" ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# some extra shell scripts
|
# some extra shell scripts
|
||||||
programs.zsh.initContent = lib.mkAfter (
|
programs.zsh.initExtra = lib.mkAfter (
|
||||||
import ./scripts/reporsync.nix { inherit pkgs lib; }
|
import ./scripts/reporsync.nix { inherit pkgs lib; }
|
||||||
+ import ./scripts/ssh-loop-fc.nix { inherit pkgs lib; }
|
+ import ./scripts/ssh-loop-fc.nix { inherit pkgs lib; }
|
||||||
);
|
);
|
||||||
|
|
||||||
# separate proxied browser using the DHCP-supplied DNS for accessing captive portals
|
|
||||||
programs.captive-browser = {
|
|
||||||
enable = true;
|
|
||||||
interface = "en0";
|
|
||||||
};
|
|
||||||
launchd.agents.hydra_proxy = {
|
launchd.agents.hydra_proxy = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
config = {
|
||||||
|
@ -108,7 +103,7 @@ in
|
||||||
"0"
|
"0"
|
||||||
"-D"
|
"-D"
|
||||||
"1080"
|
"1080"
|
||||||
"-oServerAliveInterval=30"
|
"-oServerAliveInterval=60"
|
||||||
"-oControlMaster=no"
|
"-oControlMaster=no"
|
||||||
"-N"
|
"-N"
|
||||||
"vpn-whq.services.fcio.net"
|
"vpn-whq.services.fcio.net"
|
||||||
|
|
|
@ -39,17 +39,6 @@ in
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "discard" ];
|
options = [ "discard" ];
|
||||||
};
|
};
|
||||||
# nix/ lix build directory
|
|
||||||
# lix:
|
|
||||||
# > If you plan to use a tmpfs, we **strongly recommend** to set `mode=0755` as a mount option for that `tmpfs`, otherwise you are effectively reverting this mitigation.
|
|
||||||
"/nix/var/nix/builds" = {
|
|
||||||
device = "tmpfs";
|
|
||||||
fsType = "tmpfs";
|
|
||||||
options = [
|
|
||||||
"mode=0755"
|
|
||||||
"size=75%"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.fstrim.enable = true;
|
services.fstrim.enable = true;
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
nix.settings.max-jobs = lib.mkDefault 4;
|
nix.settings.max-jobs = lib.mkDefault 4;
|
||||||
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
|
|
||||||
# modesetting is always better than intel (legacy)
|
# modesetting is always better than intel (legacy)
|
||||||
services.xserver.videoDrivers = [ "modesetting" ];
|
services.xserver.videoDrivers = [ "modesetting" ];
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
ssh-ng://schmittlauch@build01.nix-community.org x86_64-linux /root/.ssh/remote_builder_key 64 1 big-parallel,kvm,nixos-test -
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
From 362c2bc76d359b908ad1389ee28c23ee0e862324 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
|
||||||
|
Date: Mon, 7 Apr 2025 21:03:09 -0400
|
||||||
|
Subject: [PATCH] nodejs_20: fix test failure on darwin on latest MacOS 15.4
|
||||||
|
|
||||||
|
Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
|
||||||
|
(cherry picked from commit 9674c1f688d12b99fbde26e6068ab62609fef3b1)
|
||||||
|
---
|
||||||
|
pkgs/development/web/nodejs/v20.nix | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/pkgs/development/web/nodejs/v20.nix b/pkgs/development/web/nodejs/v20.nix
|
||||||
|
index b9c9345c441afa..20cceb5b5d1cda 100644
|
||||||
|
--- a/pkgs/development/web/nodejs/v20.nix
|
||||||
|
+++ b/pkgs/development/web/nodejs/v20.nix
|
||||||
|
@@ -50,5 +50,10 @@ buildNodejs {
|
||||||
|
stripLen = 1;
|
||||||
|
hash = "sha256-6y3aEqxNC4iTQEv1oewodJrhOHxjp5xZMq1P1QL94Rg=";
|
||||||
|
})
|
||||||
|
+ # fix test failure on macos 15.4
|
||||||
|
+ (fetchpatch2 {
|
||||||
|
+ url = "https://github.com/nodejs/node/commit/33f6e1ea296cd20366ab94e666b03899a081af94.patch?full_index=1";
|
||||||
|
+ hash = "sha256-aVBMcQlhQeviUQpMIfC988jjDB2BgYzlMYsq+w16mzU=";
|
||||||
|
+ })
|
||||||
|
] ++ gypPatches;
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue