mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 09:07:21 +01:00
feat: jenkins + darwin (and linting)
This commit is contained in:
parent
d2c8805e5b
commit
6338497d5f
42 changed files with 841 additions and 602 deletions
File diff suppressed because it is too large
Load diff
21
flake.lock
generated
21
flake.lock
generated
|
|
@ -534,6 +534,26 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1729579044,
|
||||||
|
"narHash": "sha256-0kEUVl5s8LHbK4/xEePflsdYVwG+RRFSIofSvITYmIU=",
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "64d9d1ae25215c274c37e3e4016977a6779cf0d3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-filter": {
|
"nix-filter": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710156097,
|
"lastModified": 1710156097,
|
||||||
|
|
@ -1069,6 +1089,7 @@
|
||||||
"impermanence": "impermanence",
|
"impermanence": "impermanence",
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
"nix-alien": "nix-alien",
|
"nix-alien": "nix-alien",
|
||||||
|
"nix-darwin": "nix-darwin",
|
||||||
"nix-index-database": "nix-index-database_2",
|
"nix-index-database": "nix-index-database_2",
|
||||||
"nix-on-droid": "nix-on-droid",
|
"nix-on-droid": "nix-on-droid",
|
||||||
"nixgl": "nixgl",
|
"nixgl": "nixgl",
|
||||||
|
|
|
||||||
110
flake.nix
110
flake.nix
|
|
@ -14,90 +14,96 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
|
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.05";
|
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.05";
|
||||||
|
|
||||||
systems.url = "github:nix-systems/default-linux";
|
systems.url = "github:nix-systems/default-linux";
|
||||||
|
|
||||||
# user-level configuration
|
# user-level configuration
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
# overlay to access bleeding edge emacs
|
# overlay to access bleeding edge emacs
|
||||||
emacs-overlay = {
|
emacs-overlay = {
|
||||||
url = "github:nix-community/emacs-overlay";
|
url = "github:nix-community/emacs-overlay";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
# nix user repository
|
# nix user repository
|
||||||
# i use this mainly to not have to build all firefox extensions
|
# i use this mainly to not have to build all firefox extensions
|
||||||
# myself as well as for the emacs-init package (tbd)
|
# myself as well as for the emacs-init package (tbd)
|
||||||
nur.url = "github:nix-community/NUR";
|
nur.url = "github:nix-community/NUR";
|
||||||
|
|
||||||
# provides GL to non-NixOS hosts
|
# provides GL to non-NixOS hosts
|
||||||
nixgl.url = "github:guibou/nixGL";
|
nixgl.url = "github:guibou/nixGL";
|
||||||
|
|
||||||
# manages all theming using Home-Manager
|
# manages all theming using Home-Manager
|
||||||
stylix.url = "github:danth/stylix";
|
stylix.url = "github:danth/stylix";
|
||||||
|
|
||||||
# nix secrets management
|
# nix secrets management
|
||||||
sops-nix.url = "github:Mic92/sops-nix";
|
sops-nix.url = "github:Mic92/sops-nix";
|
||||||
|
|
||||||
# enable secure boot on NixOS
|
# enable secure boot on NixOS
|
||||||
lanzaboote.url = "github:nix-community/lanzaboote";
|
lanzaboote.url = "github:nix-community/lanzaboote";
|
||||||
|
|
||||||
# nix for android
|
# nix for android
|
||||||
nix-on-droid = {
|
nix-on-droid = {
|
||||||
url = "github:nix-community/nix-on-droid/release-24.05";
|
url = "github:nix-community/nix-on-droid/release-24.05";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
# generate NixOS images
|
# generate NixOS images
|
||||||
nixos-generators = {
|
nixos-generators = {
|
||||||
url = "github:nix-community/nixos-generators";
|
url = "github:nix-community/nixos-generators";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
# hardware quirks on nix
|
# hardware quirks on nix
|
||||||
nixos-hardware = {
|
nixos-hardware = {
|
||||||
url = "github:NixOS/nixos-hardware/master";
|
url = "github:NixOS/nixos-hardware/master";
|
||||||
};
|
};
|
||||||
|
|
||||||
# dynamic library loading
|
# dynamic library loading
|
||||||
nix-alien = {
|
nix-alien = {
|
||||||
url = "github:thiagokokada/nix-alien";
|
url = "github:thiagokokada/nix-alien";
|
||||||
};
|
};
|
||||||
|
|
||||||
# automatic nintendo switch payload injection
|
# automatic nintendo switch payload injection
|
||||||
nswitch-rcm-nix = {
|
nswitch-rcm-nix = {
|
||||||
url = "github:Swarsel/nswitch-rcm-nix";
|
url = "github:Swarsel/nswitch-rcm-nix";
|
||||||
};
|
};
|
||||||
|
|
||||||
# weekly updated nix-index database
|
# weekly updated nix-index database
|
||||||
nix-index-database = {
|
nix-index-database = {
|
||||||
url = "github:nix-community/nix-index-database";
|
url = "github:nix-community/nix-index-database";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
disko = {
|
disko = {
|
||||||
url = "github:nix-community/disko";
|
url = "github:nix-community/disko";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
impermanence.url = "github:nix-community/impermanence";
|
impermanence.url = "github:nix-community/impermanence";
|
||||||
|
|
||||||
zjstatus = {
|
zjstatus = {
|
||||||
url = "github:dj95/zjstatus";
|
url = "github:dj95/zjstatus";
|
||||||
};
|
};
|
||||||
|
|
||||||
fw-fanctrl = {
|
fw-fanctrl = {
|
||||||
url = "github:TamtamHero/fw-fanctrl/packaging/nix";
|
url = "github:TamtamHero/fw-fanctrl/packaging/nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nix-darwin = {
|
||||||
|
url = "github:lnl7/nix-darwin";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
|
|
@ -105,13 +111,14 @@
|
||||||
, nixpkgs
|
, nixpkgs
|
||||||
, nixpkgs-stable
|
, nixpkgs-stable
|
||||||
, home-manager
|
, home-manager
|
||||||
|
, nix-darwin
|
||||||
, systems
|
, systems
|
||||||
, ...
|
, ...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (self) outputs;
|
inherit (self) outputs;
|
||||||
lib = nixpkgs.lib // home-manager.lib;
|
lib = nixpkgs.lib // home-manager.lib;
|
||||||
|
|
||||||
forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system});
|
forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system});
|
||||||
pkgsFor = lib.genAttrs (import systems) (
|
pkgsFor = lib.genAttrs (import systems) (
|
||||||
system:
|
system:
|
||||||
|
|
@ -120,7 +127,7 @@
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
# NixOS modules that can only be used on NixOS systems
|
# NixOS modules that can only be used on NixOS systems
|
||||||
nixModules = [
|
nixModules = [
|
||||||
inputs.stylix.nixosModules.stylix
|
inputs.stylix.nixosModules.stylix
|
||||||
|
|
@ -131,27 +138,27 @@
|
||||||
inputs.nswitch-rcm-nix.nixosModules.nswitch-rcm
|
inputs.nswitch-rcm-nix.nixosModules.nswitch-rcm
|
||||||
./profiles/common/nixos
|
./profiles/common/nixos
|
||||||
];
|
];
|
||||||
|
|
||||||
# Home-Manager modules wanted on non-NixOS systems
|
# Home-Manager modules wanted on non-NixOS systems
|
||||||
homeModules = [
|
homeModules = [
|
||||||
inputs.stylix.homeManagerModules.stylix
|
inputs.stylix.homeManagerModules.stylix
|
||||||
];
|
];
|
||||||
|
|
||||||
# Home-Manager modules wanted on both NixOS and non-NixOS systems
|
# Home-Manager modules wanted on both NixOS and non-NixOS systems
|
||||||
mixedModules = [
|
mixedModules = [
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
inputs.nix-index-database.hmModules.nix-index
|
inputs.nix-index-database.hmModules.nix-index
|
||||||
./profiles/common/home
|
./profiles/common/home
|
||||||
];
|
];
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
inherit lib;
|
inherit lib;
|
||||||
inherit mixedModules;
|
inherit mixedModules;
|
||||||
nixosModules = import ./modules/nixos;
|
nixosModules = import ./modules/nixos;
|
||||||
homeManagerModules = import ./modules/home;
|
homeManagerModules = import ./modules/home;
|
||||||
|
|
||||||
packages = forEachSystem (pkgs: import ./pkgs { inherit pkgs; });
|
packages = forEachSystem (pkgs: import ./pkgs { inherit pkgs; });
|
||||||
devShells = forEachSystem
|
devShells = forEachSystem
|
||||||
(pkgs:
|
(pkgs:
|
||||||
|
|
@ -171,7 +178,7 @@
|
||||||
inputs.emacs-overlay.overlay
|
inputs.emacs-overlay.overlay
|
||||||
inputs.nixgl.overlay
|
inputs.nixgl.overlay
|
||||||
];
|
];
|
||||||
|
|
||||||
# NixOS setups - run home-manager as a NixOS module for better compatibility
|
# NixOS setups - run home-manager as a NixOS module for better compatibility
|
||||||
# another benefit - full rebuild on nixos-rebuild switch
|
# another benefit - full rebuild on nixos-rebuild switch
|
||||||
# run rebuild using `nswitch`
|
# run rebuild using `nswitch`
|
||||||
|
|
@ -180,8 +187,8 @@
|
||||||
# Make sure to move hardware-configuration to the appropriate location, by default it is found in /etc/nixos/.
|
# Make sure to move hardware-configuration to the appropriate location, by default it is found in /etc/nixos/.
|
||||||
|
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
|
|
||||||
|
|
||||||
sandbox = nixpkgs.lib.nixosSystem {
|
sandbox = nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = { inherit inputs; };
|
specialArgs = { inherit inputs; };
|
||||||
modules = [
|
modules = [
|
||||||
|
|
@ -191,7 +198,7 @@
|
||||||
./profiles/sandbox/nixos.nix
|
./profiles/sandbox/nixos.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
threed = nixpkgs.lib.nixosSystem {
|
threed = nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = { inherit inputs; };
|
specialArgs = { inherit inputs; };
|
||||||
modules = nixModules ++ [
|
modules = nixModules ++ [
|
||||||
|
|
@ -205,28 +212,28 @@
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
fourside = lib.nixosSystem {
|
fourside = lib.nixosSystem {
|
||||||
specialArgs = { inherit inputs outputs; };
|
specialArgs = { inherit inputs outputs; };
|
||||||
modules = nixModules ++ [
|
modules = nixModules ++ [
|
||||||
./profiles/fourside
|
./profiles/fourside
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
nbl-imba-2 = lib.nixosSystem {
|
nbl-imba-2 = lib.nixosSystem {
|
||||||
specialArgs = { inherit inputs outputs; };
|
specialArgs = { inherit inputs outputs; };
|
||||||
modules = nixModules ++ [
|
modules = nixModules ++ [
|
||||||
./profiles/nbl-imba-2
|
./profiles/nbl-imba-2
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
winters = lib.nixosSystem {
|
winters = lib.nixosSystem {
|
||||||
specialArgs = { inherit inputs outputs; };
|
specialArgs = { inherit inputs outputs; };
|
||||||
modules = [
|
modules = [
|
||||||
./profiles/server/winters
|
./profiles/server/winters
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
#ovm swarsel
|
#ovm swarsel
|
||||||
sync = nixpkgs.lib.nixosSystem {
|
sync = nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = { inherit inputs; };
|
specialArgs = { inherit inputs; };
|
||||||
|
|
@ -235,7 +242,7 @@
|
||||||
./profiles/remote/oracle/sync/nixos.nix
|
./profiles/remote/oracle/sync/nixos.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
#ovm swarsel
|
#ovm swarsel
|
||||||
swatrix = nixpkgs.lib.nixosSystem {
|
swatrix = nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = { inherit inputs; };
|
specialArgs = { inherit inputs; };
|
||||||
|
|
@ -250,26 +257,37 @@
|
||||||
# run rebuild using `hmswitch`
|
# run rebuild using `hmswitch`
|
||||||
|
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
|
|
||||||
"swarsel@home-manager" = inputs.home-manager.lib.homeManagerConfiguration {
|
"swarsel@home-manager" = inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
pkgs = pkgsFor.x86_64-linux;
|
pkgs = pkgsFor.x86_64-linux;
|
||||||
extraSpecialArgs = { inherit inputs outputs; };
|
extraSpecialArgs = { inherit inputs outputs; };
|
||||||
modules = homeModules ++ mixedModules ++ [
|
modules = homeModules ++ mixedModules ++ [
|
||||||
./profiles/home-manager
|
./profiles/home-manager
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
darwinConfigurations = {
|
||||||
|
|
||||||
|
"nbm-imba-166" = inputs.nix-darwin.lib.darwinSystem {
|
||||||
|
specialArgs = { inherit inputs outputs; };
|
||||||
|
modules = [
|
||||||
|
./profiles/nbm-imba-166
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nixOnDroidConfigurations = {
|
nixOnDroidConfigurations = {
|
||||||
|
|
||||||
mysticant = inputs.nix-on-droid.lib.nixOnDroidConfiguration {
|
mysticant = inputs.nix-on-droid.lib.nixOnDroidConfiguration {
|
||||||
pkgs = pkgsFor.aarch64-linux;
|
pkgs = pkgsFor.aarch64-linux;
|
||||||
modules = [
|
modules = [
|
||||||
./profiles/mysticant
|
./profiles/mysticant
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
4
modules/home/darwin.nix
Normal file
4
modules/home/darwin.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
{ lib, config, ... }:
|
||||||
|
{
|
||||||
|
options.swarselsystems.isDarwin = lib.mkEnableOption "darwin host";
|
||||||
|
}
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
monitors = import ./monitors.nix;
|
monitors = import ./monitors.nix;
|
||||||
input = import ./input.nix;
|
input = import ./input.nix;
|
||||||
nixos = import ./nixos.nix;
|
nixos = import ./nixos.nix;
|
||||||
|
darwin = import ./darwin.nix;
|
||||||
waybar = import ./waybar.nix;
|
waybar = import ./waybar.nix;
|
||||||
startup = import ./startup.nix;
|
startup = import ./startup.nix;
|
||||||
wallpaper = import ./wallpaper.nix;
|
wallpaper = import ./wallpaper.nix;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, config, ... }:
|
{ lib, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) mkOption types;
|
inherit (lib) mkOption types;
|
||||||
in
|
in
|
||||||
|
|
|
||||||
|
|
@ -23,4 +23,5 @@ in
|
||||||
options.swarselsystems.server.syncthing = lib.mkEnableOption "enable syncthing on server";
|
options.swarselsystems.server.syncthing = lib.mkEnableOption "enable syncthing on server";
|
||||||
options.swarselsystems.server.restic = lib.mkEnableOption "enable restic backups on server";
|
options.swarselsystems.server.restic = lib.mkEnableOption "enable restic backups on server";
|
||||||
options.swarselsystems.server.monitoring = lib.mkEnableOption "enable monitoring on server";
|
options.swarselsystems.server.monitoring = lib.mkEnableOption "enable monitoring on server";
|
||||||
|
options.swarselsystems.server.jenkins = lib.mkEnableOption "enable jenkins on server";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{ inputs, ... }: {
|
{ inputs, ... }: {
|
||||||
additions = final: _prev: import ../pkgs { pkgs = final; };
|
additions = final: _prev: import ../pkgs { pkgs = final; };
|
||||||
modifications = final: _prev: {
|
modifications = _: _prev: {
|
||||||
vesktop = _prev.vesktop.override {
|
vesktop = _prev.vesktop.override {
|
||||||
withSystemVencord = true;
|
withSystemVencord = true;
|
||||||
};
|
};
|
||||||
|
|
@ -41,7 +41,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
zjstatus = final: _prev: {
|
zjstatus = _: _prev: {
|
||||||
zjstatus = inputs.zjstatus.packages.${_prev.system}.default;
|
zjstatus = inputs.zjstatus.packages.${_prev.system}.default;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
{ writeShellApplication, kitty, element-desktop-wayland, discord, spotify-player, sway, jq }:
|
|
||||||
|
|
||||||
writeShellApplication {
|
|
||||||
name = "swarselcheck";
|
|
||||||
runtimeInputs = [ jq ];
|
|
||||||
text = builtins.readFile ../../scripts/check.sh;
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ writeShellApplication, sway }:
|
{ writeShellApplication }:
|
||||||
|
|
||||||
writeShellApplication {
|
writeShellApplication {
|
||||||
name = "fs-diff";
|
name = "fs-diff";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
{ writeShellApplication, libnotify, pass, fuzzel, wtype }:
|
|
||||||
|
|
||||||
writeShellApplication {
|
|
||||||
name = "pass-fuzzel-otp";
|
|
||||||
runtimeInputs = [ fuzzel (pass.withExtensions (exts: [ exts.pass-otp ])) ];
|
|
||||||
text = builtins.readFile ../../scripts/pass-fuzzel-otp.sh;
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ writeShellApplication, kitty, element-desktop-wayland, vesktop, spotify-player, sway, jq }:
|
{ writeShellApplication, kitty, element-desktop-wayland, vesktop, spotify-player, jq }:
|
||||||
|
|
||||||
writeShellApplication {
|
writeShellApplication {
|
||||||
name = "swarselcheck";
|
name = "swarselcheck";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
stylix = lib.mkIf (!config.swarselsystems.isNixos) {
|
stylix = lib.mkIf (!config.swarselsystems.isNixos) {
|
||||||
|
|
||||||
enable = true;
|
enable = true;
|
||||||
base16Scheme = ../../../wallpaper/swarsel.yaml;
|
base16Scheme = ../../../wallpaper/swarsel.yaml;
|
||||||
# base16Scheme = "${pkgs.base16-schemes}/share/themes/shapeshifter.yaml";
|
# base16Scheme = "${pkgs.base16-schemes}/share/themes/shapeshifter.yaml";
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
# name = "FiraCode Nerd Font Propo";
|
# name = "FiraCode Nerd Font Propo";
|
||||||
# name = "Montserrat";
|
# name = "Montserrat";
|
||||||
};
|
};
|
||||||
|
|
||||||
sansSerif = {
|
sansSerif = {
|
||||||
# package = (pkgs.nerdfonts.override { fonts = [ "FiraMono" "FiraCode"]; });
|
# package = (pkgs.nerdfonts.override { fonts = [ "FiraMono" "FiraCode"]; });
|
||||||
package = pkgs.cantarell-fonts;
|
package = pkgs.cantarell-fonts;
|
||||||
|
|
@ -34,18 +34,18 @@
|
||||||
# name = "FiraCode Nerd Font Propo";
|
# name = "FiraCode Nerd Font Propo";
|
||||||
# name = "Montserrat";
|
# name = "Montserrat";
|
||||||
};
|
};
|
||||||
|
|
||||||
monospace = {
|
monospace = {
|
||||||
package = pkgs.nerdfonts; # has overrides
|
package = pkgs.nerdfonts; # has overrides
|
||||||
name = "FiraCode Nerd Font Mono";
|
name = "FiraCode Nerd Font Mono";
|
||||||
};
|
};
|
||||||
|
|
||||||
emoji = {
|
emoji = {
|
||||||
package = pkgs.noto-fonts-emoji;
|
package = pkgs.noto-fonts-emoji;
|
||||||
name = "Noto Color Emoji";
|
name = "Noto Color Emoji";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
image = config.swarselsystems.wallpaper;
|
image = config.swarselsystems.wallpaper;
|
||||||
targets = {
|
targets = {
|
||||||
emacs.enable = false;
|
emacs.enable = false;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{ config, lib, ... }:
|
||||||
let
|
let
|
||||||
inherit (config.swarselsystems) monitors;
|
inherit (config.swarselsystems) monitors;
|
||||||
eachMonitor = _name: monitor: {
|
eachMonitor = _name: monitor: {
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ _:
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile = {
|
xdg.configFile = {
|
||||||
"tridactyl/tridactylrc".source = ../../../programs/firefox/tridactyl/tridactylrc;
|
"tridactyl/tridactylrc".source = ../../../programs/firefox/tridactyl/tridactylrc;
|
||||||
"tridactyl/themes/base16-codeschool.css".source = ../../../programs/firefox/tridactyl/themes/base16-codeschool.css;
|
"tridactyl/themes/base16-codeschool.css".source = ../../../programs/firefox/tridactyl/themes/base16-codeschool.css;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,36 +1,37 @@
|
||||||
{ pkgs, config, ... }:
|
_:
|
||||||
let
|
# { pkgs, config, ... }:
|
||||||
inherit (config.lib.stylix) colors;
|
# let
|
||||||
sesh = pkgs.writeScriptBin "sesh" ''
|
# inherit (config.lib.stylix) colors;
|
||||||
#! /usr/bin/env sh
|
# sesh = pkgs.writeScriptBin "sesh" ''
|
||||||
|
# #! /usr/bin/env sh
|
||||||
|
|
||||||
# Taken from https://github.com/zellij-org/zellij/issues/884#issuecomment-1851136980
|
# # Taken from https://github.com/zellij-org/zellij/issues/884#issuecomment-1851136980
|
||||||
# select a directory using zoxide
|
# # select a directory using zoxide
|
||||||
ZOXIDE_RESULT=$(zoxide query --interactive)
|
# ZOXIDE_RESULT=$(zoxide query --interactive)
|
||||||
# checks whether a directory has been selected
|
# # checks whether a directory has been selected
|
||||||
if [[ -z "$ZOXIDE_RESULT" ]]; then
|
# if [[ -z "$ZOXIDE_RESULT" ]]; then
|
||||||
# if there was no directory, select returns without executing
|
# # if there was no directory, select returns without executing
|
||||||
exit 0
|
# exit 0
|
||||||
fi
|
# fi
|
||||||
# extracts the directory name from the absolute path
|
# # extracts the directory name from the absolute path
|
||||||
SESSION_TITLE=$(echo "$ZOXIDE_RESULT" | sed 's#.*/##')
|
# SESSION_TITLE=$(echo "$ZOXIDE_RESULT" | sed 's#.*/##')
|
||||||
|
|
||||||
# get the list of sessions
|
# # get the list of sessions
|
||||||
SESSION_LIST=$(zellij list-sessions -n | awk '{print $1}')
|
# SESSION_LIST=$(zellij list-sessions -n | awk '{print $1}')
|
||||||
|
|
||||||
# checks if SESSION_TITLE is in the session list
|
# # checks if SESSION_TITLE is in the session list
|
||||||
if echo "$SESSION_LIST" | grep -q "^$SESSION_TITLE$"; then
|
# if echo "$SESSION_LIST" | grep -q "^$SESSION_TITLE$"; then
|
||||||
# if so, attach to existing session
|
# # if so, attach to existing session
|
||||||
zellij attach "$SESSION_TITLE"
|
# zellij attach "$SESSION_TITLE"
|
||||||
else
|
# else
|
||||||
# if not, create a new session
|
# # if not, create a new session
|
||||||
echo "Creating new session $SESSION_TITLE and CD $ZOXIDE_RESULT"
|
# echo "Creating new session $SESSION_TITLE and CD $ZOXIDE_RESULT"
|
||||||
cd $ZOXIDE_RESULT
|
# cd $ZOXIDE_RESULT
|
||||||
zellij attach -c "$SESSION_TITLE"
|
# zellij attach -c "$SESSION_TITLE"
|
||||||
fi
|
# fi
|
||||||
'';
|
# '';
|
||||||
|
|
||||||
in
|
# in
|
||||||
{
|
{
|
||||||
programs.zellij = {
|
programs.zellij = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, ... }:
|
_:
|
||||||
{
|
{
|
||||||
services.logind = {
|
services.logind = {
|
||||||
lidSwitch = "suspend";
|
lidSwitch = "suspend";
|
||||||
|
|
|
||||||
|
|
@ -6,25 +6,25 @@
|
||||||
extraBackends = [ pkgs.sane-airscan ];
|
extraBackends = [ pkgs.sane-airscan ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# enable discovery and usage of network devices (esp. printers)
|
# enable discovery and usage of network devices (esp. printers)
|
||||||
services.printing = {
|
services.printing = {
|
||||||
enable = true;
|
enable = true;
|
||||||
drivers = [
|
drivers = [
|
||||||
pkgs.gutenprint
|
pkgs.gutenprint
|
||||||
pkgs.gutenprintBin
|
pkgs.gutenprintBin
|
||||||
];
|
];
|
||||||
browsedConf = ''
|
browsedConf = ''
|
||||||
BrowseDNSSDSubTypes _cups,_print
|
BrowseDNSSDSubTypes _cups,_print
|
||||||
BrowseLocalProtocols all
|
BrowseLocalProtocols all
|
||||||
BrowseRemoteProtocols all
|
BrowseRemoteProtocols all
|
||||||
CreateIPPPrinterQueues All
|
CreateIPPPrinterQueues All
|
||||||
BrowseProtocols all
|
BrowseProtocols all
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
services.avahi = {
|
services.avahi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nssmdns4 = true;
|
nssmdns4 = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ pkgs, home-manager, config, ... }:
|
{ pkgs, home-manager, config, ... }:
|
||||||
{
|
{
|
||||||
stylix = {
|
stylix = {
|
||||||
|
|
||||||
enable = true;
|
enable = true;
|
||||||
base16Scheme = ../../../wallpaper/swarsel.yaml;
|
base16Scheme = ../../../wallpaper/swarsel.yaml;
|
||||||
# base16Scheme = "${pkgs.base16-schemes}/share/themes/shapeshifter.yaml";
|
# base16Scheme = "${pkgs.base16-schemes}/share/themes/shapeshifter.yaml";
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
# name = "FiraCode Nerd Font Propo";
|
# name = "FiraCode Nerd Font Propo";
|
||||||
# name = "Montserrat";
|
# name = "Montserrat";
|
||||||
};
|
};
|
||||||
|
|
||||||
sansSerif = {
|
sansSerif = {
|
||||||
# package = (pkgs.nerdfonts.override { fonts = [ "FiraMono" "FiraCode"]; });
|
# package = (pkgs.nerdfonts.override { fonts = [ "FiraMono" "FiraCode"]; });
|
||||||
package = pkgs.cantarell-fonts;
|
package = pkgs.cantarell-fonts;
|
||||||
|
|
@ -34,18 +34,18 @@
|
||||||
# name = "FiraCode Nerd Font Propo";
|
# name = "FiraCode Nerd Font Propo";
|
||||||
# name = "Montserrat";
|
# name = "Montserrat";
|
||||||
};
|
};
|
||||||
|
|
||||||
monospace = {
|
monospace = {
|
||||||
package = pkgs.nerdfonts; # has overrides
|
package = pkgs.nerdfonts; # has overrides
|
||||||
name = "FiraCode Nerd Font Mono";
|
name = "FiraCode Nerd Font Mono";
|
||||||
};
|
};
|
||||||
|
|
||||||
emoji = {
|
emoji = {
|
||||||
package = pkgs.noto-fonts-emoji;
|
package = pkgs.noto-fonts-emoji;
|
||||||
name = "Noto Color Emoji";
|
name = "Noto Color Emoji";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
targets.grub.enable = false; # the styling makes grub more ugly
|
targets.grub.enable = false; # the styling makes grub more ugly
|
||||||
image = config.swarselsystems.wallpaper;
|
image = config.swarselsystems.wallpaper;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
programs.zsh.enable = true;
|
programs.zsh.enable = true;
|
||||||
users.defaultUserShell = pkgs.zsh;
|
users.defaultUserShell = pkgs.zsh;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{ config, lib, modulesPath, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
|
|
|
||||||
37
profiles/nbm-imba-166/default.nix
Normal file
37
profiles/nbm-imba-166/default.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
{ inputs, outputs, config, pkgs, lib, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
inputs.home-manager.darwinModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.users."leon.schwarzaeugl".imports = [
|
||||||
|
] ++ (builtins.attrValues outputs.homeManagerModules);
|
||||||
|
}
|
||||||
|
] ++ (builtins.attrValues outputs.nixosModules);
|
||||||
|
|
||||||
|
nix.settings.experimental-features = "nix-command flakes";
|
||||||
|
nixpkgs = {
|
||||||
|
hostPlatform = "x86_64-darwin";
|
||||||
|
inherit (outputs) overlays;
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Auto upgrade nix package and the daemon service.
|
||||||
|
services.nix-daemon.enable = true;
|
||||||
|
services.karabiner-elements.enable = true;
|
||||||
|
|
||||||
|
home-manager.users."leon.schwarzaeugl".home.stateVersion = "23.05";
|
||||||
|
home-manager.users."leon.schwarzaeugl".swarselsystems = {
|
||||||
|
isDarwin = true;
|
||||||
|
isLaptop = true;
|
||||||
|
isNixos = false;
|
||||||
|
isBtrfs = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = 4;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -54,7 +54,7 @@
|
||||||
profiles = {
|
profiles = {
|
||||||
dc_adm = {
|
dc_adm = {
|
||||||
id = 1;
|
id = 1;
|
||||||
|
|
||||||
isDefault = false;
|
isDefault = false;
|
||||||
userChrome = builtins.readFile ../../../programs/firefox/chrome/userChrome.css;
|
userChrome = builtins.readFile ../../../programs/firefox/chrome/userChrome.css;
|
||||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
|
|
@ -77,7 +77,7 @@
|
||||||
don-t-fuck-with-paste
|
don-t-fuck-with-paste
|
||||||
plasma-integration
|
plasma-integration
|
||||||
];
|
];
|
||||||
|
|
||||||
search.engines = {
|
search.engines = {
|
||||||
"Nix Packages" = {
|
"Nix Packages" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
|
|
@ -90,7 +90,7 @@
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = [ "@np" ];
|
definedAliases = [ "@np" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"NixOS Wiki" = {
|
"NixOS Wiki" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
template = "https://nixos.wiki/index.php?search={searchTerms}";
|
template = "https://nixos.wiki/index.php?search={searchTerms}";
|
||||||
|
|
@ -99,7 +99,7 @@
|
||||||
updateInterval = 24 * 60 * 60 * 1000; # every day
|
updateInterval = 24 * 60 * 60 * 1000; # every day
|
||||||
definedAliases = [ "@nw" ];
|
definedAliases = [ "@nw" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"NixOS Options" = {
|
"NixOS Options" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
template = "https://search.nixos.org/options";
|
template = "https://search.nixos.org/options";
|
||||||
|
|
@ -107,11 +107,11 @@
|
||||||
{ name = "query"; value = "{searchTerms}"; }
|
{ name = "query"; value = "{searchTerms}"; }
|
||||||
];
|
];
|
||||||
}];
|
}];
|
||||||
|
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = [ "@no" ];
|
definedAliases = [ "@no" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Home Manager Options" = {
|
"Home Manager Options" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
template = "https://home-manager-options.extranix.com/";
|
template = "https://home-manager-options.extranix.com/";
|
||||||
|
|
@ -119,19 +119,19 @@
|
||||||
{ name = "query"; value = "{searchTerms}"; }
|
{ name = "query"; value = "{searchTerms}"; }
|
||||||
];
|
];
|
||||||
}];
|
}];
|
||||||
|
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = [ "@hm" "@ho" "@hmo" ];
|
definedAliases = [ "@hm" "@ho" "@hmo" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Google".metaData.alias = "@g";
|
"Google".metaData.alias = "@g";
|
||||||
};
|
};
|
||||||
search.force = true; # this is required because otherwise the search.json.mozlz4 symlink gets replaced on every firefox restart
|
search.force = true; # this is required because otherwise the search.json.mozlz4 symlink gets replaced on every firefox restart
|
||||||
|
|
||||||
};
|
};
|
||||||
cl_adm = {
|
cl_adm = {
|
||||||
id = 2;
|
id = 2;
|
||||||
|
|
||||||
isDefault = false;
|
isDefault = false;
|
||||||
userChrome = builtins.readFile ../../../programs/firefox/chrome/userChrome.css;
|
userChrome = builtins.readFile ../../../programs/firefox/chrome/userChrome.css;
|
||||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
|
|
@ -154,7 +154,7 @@
|
||||||
don-t-fuck-with-paste
|
don-t-fuck-with-paste
|
||||||
plasma-integration
|
plasma-integration
|
||||||
];
|
];
|
||||||
|
|
||||||
search.engines = {
|
search.engines = {
|
||||||
"Nix Packages" = {
|
"Nix Packages" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
|
|
@ -167,7 +167,7 @@
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = [ "@np" ];
|
definedAliases = [ "@np" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"NixOS Wiki" = {
|
"NixOS Wiki" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
template = "https://nixos.wiki/index.php?search={searchTerms}";
|
template = "https://nixos.wiki/index.php?search={searchTerms}";
|
||||||
|
|
@ -176,7 +176,7 @@
|
||||||
updateInterval = 24 * 60 * 60 * 1000; # every day
|
updateInterval = 24 * 60 * 60 * 1000; # every day
|
||||||
definedAliases = [ "@nw" ];
|
definedAliases = [ "@nw" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"NixOS Options" = {
|
"NixOS Options" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
template = "https://search.nixos.org/options";
|
template = "https://search.nixos.org/options";
|
||||||
|
|
@ -184,11 +184,11 @@
|
||||||
{ name = "query"; value = "{searchTerms}"; }
|
{ name = "query"; value = "{searchTerms}"; }
|
||||||
];
|
];
|
||||||
}];
|
}];
|
||||||
|
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = [ "@no" ];
|
definedAliases = [ "@no" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Home Manager Options" = {
|
"Home Manager Options" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
template = "https://home-manager-options.extranix.com/";
|
template = "https://home-manager-options.extranix.com/";
|
||||||
|
|
@ -196,19 +196,19 @@
|
||||||
{ name = "query"; value = "{searchTerms}"; }
|
{ name = "query"; value = "{searchTerms}"; }
|
||||||
];
|
];
|
||||||
}];
|
}];
|
||||||
|
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = [ "@hm" "@ho" "@hmo" ];
|
definedAliases = [ "@hm" "@ho" "@hmo" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Google".metaData.alias = "@g";
|
"Google".metaData.alias = "@g";
|
||||||
};
|
};
|
||||||
search.force = true; # this is required because otherwise the search.json.mozlz4 symlink gets replaced on every firefox restart
|
search.force = true; # this is required because otherwise the search.json.mozlz4 symlink gets replaced on every firefox restart
|
||||||
|
|
||||||
};
|
};
|
||||||
ws_adm = {
|
ws_adm = {
|
||||||
id = 3;
|
id = 3;
|
||||||
|
|
||||||
isDefault = false;
|
isDefault = false;
|
||||||
userChrome = builtins.readFile ../../../programs/firefox/chrome/userChrome.css;
|
userChrome = builtins.readFile ../../../programs/firefox/chrome/userChrome.css;
|
||||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
|
|
@ -231,7 +231,7 @@
|
||||||
don-t-fuck-with-paste
|
don-t-fuck-with-paste
|
||||||
plasma-integration
|
plasma-integration
|
||||||
];
|
];
|
||||||
|
|
||||||
search.engines = {
|
search.engines = {
|
||||||
"Nix Packages" = {
|
"Nix Packages" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
|
|
@ -244,7 +244,7 @@
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = [ "@np" ];
|
definedAliases = [ "@np" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"NixOS Wiki" = {
|
"NixOS Wiki" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
template = "https://nixos.wiki/index.php?search={searchTerms}";
|
template = "https://nixos.wiki/index.php?search={searchTerms}";
|
||||||
|
|
@ -253,7 +253,7 @@
|
||||||
updateInterval = 24 * 60 * 60 * 1000; # every day
|
updateInterval = 24 * 60 * 60 * 1000; # every day
|
||||||
definedAliases = [ "@nw" ];
|
definedAliases = [ "@nw" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"NixOS Options" = {
|
"NixOS Options" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
template = "https://search.nixos.org/options";
|
template = "https://search.nixos.org/options";
|
||||||
|
|
@ -261,11 +261,11 @@
|
||||||
{ name = "query"; value = "{searchTerms}"; }
|
{ name = "query"; value = "{searchTerms}"; }
|
||||||
];
|
];
|
||||||
}];
|
}];
|
||||||
|
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = [ "@no" ];
|
definedAliases = [ "@no" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Home Manager Options" = {
|
"Home Manager Options" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
template = "https://home-manager-options.extranix.com/";
|
template = "https://home-manager-options.extranix.com/";
|
||||||
|
|
@ -273,20 +273,20 @@
|
||||||
{ name = "query"; value = "{searchTerms}"; }
|
{ name = "query"; value = "{searchTerms}"; }
|
||||||
];
|
];
|
||||||
}];
|
}];
|
||||||
|
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = [ "@hm" "@ho" "@hmo" ];
|
definedAliases = [ "@hm" "@ho" "@hmo" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Google".metaData.alias = "@g";
|
"Google".metaData.alias = "@g";
|
||||||
};
|
};
|
||||||
search.force = true; # this is required because otherwise the search.json.mozlz4 symlink gets replaced on every firefox restart
|
search.force = true; # this is required because otherwise the search.json.mozlz4 symlink gets replaced on every firefox restart
|
||||||
|
|
||||||
};
|
};
|
||||||
# i need this profile because xdg-open uses cl_adm profile no matter what i do
|
# i need this profile because xdg-open uses cl_adm profile no matter what i do
|
||||||
cl_adm_real = {
|
cl_adm_real = {
|
||||||
id = 4;
|
id = 4;
|
||||||
|
|
||||||
isDefault = false;
|
isDefault = false;
|
||||||
userChrome = builtins.readFile ../../../programs/firefox/chrome/userChrome.css;
|
userChrome = builtins.readFile ../../../programs/firefox/chrome/userChrome.css;
|
||||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
|
|
@ -309,7 +309,7 @@
|
||||||
don-t-fuck-with-paste
|
don-t-fuck-with-paste
|
||||||
plasma-integration
|
plasma-integration
|
||||||
];
|
];
|
||||||
|
|
||||||
search.engines = {
|
search.engines = {
|
||||||
"Nix Packages" = {
|
"Nix Packages" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
|
|
@ -322,7 +322,7 @@
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = [ "@np" ];
|
definedAliases = [ "@np" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"NixOS Wiki" = {
|
"NixOS Wiki" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
template = "https://nixos.wiki/index.php?search={searchTerms}";
|
template = "https://nixos.wiki/index.php?search={searchTerms}";
|
||||||
|
|
@ -331,7 +331,7 @@
|
||||||
updateInterval = 24 * 60 * 60 * 1000; # every day
|
updateInterval = 24 * 60 * 60 * 1000; # every day
|
||||||
definedAliases = [ "@nw" ];
|
definedAliases = [ "@nw" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"NixOS Options" = {
|
"NixOS Options" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
template = "https://search.nixos.org/options";
|
template = "https://search.nixos.org/options";
|
||||||
|
|
@ -339,11 +339,11 @@
|
||||||
{ name = "query"; value = "{searchTerms}"; }
|
{ name = "query"; value = "{searchTerms}"; }
|
||||||
];
|
];
|
||||||
}];
|
}];
|
||||||
|
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = [ "@no" ];
|
definedAliases = [ "@no" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Home Manager Options" = {
|
"Home Manager Options" = {
|
||||||
urls = [{
|
urls = [{
|
||||||
template = "https://home-manager-options.extranix.com/";
|
template = "https://home-manager-options.extranix.com/";
|
||||||
|
|
@ -351,15 +351,15 @@
|
||||||
{ name = "query"; value = "{searchTerms}"; }
|
{ name = "query"; value = "{searchTerms}"; }
|
||||||
];
|
];
|
||||||
}];
|
}];
|
||||||
|
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = [ "@hm" "@ho" "@hmo" ];
|
definedAliases = [ "@hm" "@ho" "@hmo" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Google".metaData.alias = "@g";
|
"Google".metaData.alias = "@g";
|
||||||
};
|
};
|
||||||
search.force = true; # this is required because otherwise the search.json.mozlz4 symlink gets replaced on every firefox restart
|
search.force = true; # this is required because otherwise the search.json.mozlz4 symlink gets replaced on every firefox restart
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -26,10 +26,12 @@
|
||||||
zsh.shellInit = ''
|
zsh.shellInit = ''
|
||||||
export CLAD="$(cat ${config.sops.secrets.clad.path})"
|
export CLAD="$(cat ${config.sops.secrets.clad.path})"
|
||||||
export DCAD="$(cat ${config.sops.secrets.dcad.path})"
|
export DCAD="$(cat ${config.sops.secrets.dcad.path})"
|
||||||
|
export GOVC_PASSWORD="$(cat ${config.sops.secrets.dcad.path})"
|
||||||
export WSAD="$(cat ${config.sops.secrets.wsad.path})"
|
export WSAD="$(cat ${config.sops.secrets.wsad.path})"
|
||||||
export IMBAD="$(cat ${config.sops.secrets.imbad.path})"
|
export IMBAD="$(cat ${config.sops.secrets.imbad.path})"
|
||||||
export DCUSER="dc_adm_schwarzaeugl@IMP.UNIVIE.AC.AT"
|
export DCUSER="dc_adm_schwarzaeugl@IMP.UNIVIE.AC.AT"
|
||||||
export PACKER_SSH_EXTRA_ARGS='"--scp-extra-args"',"\"'-O'\""
|
export GOVC_USERNAME="dc_adm_schwarzaeugl@IMP.UNIVIE.AC.AT"
|
||||||
|
export PACKER_SSH_EXTRA_ARGS='"--scp-extra-args","'-O'"'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
browserpass.enable = true;
|
browserpass.enable = true;
|
||||||
|
|
@ -53,6 +55,7 @@
|
||||||
gnumake
|
gnumake
|
||||||
libisoburn
|
libisoburn
|
||||||
govc
|
govc
|
||||||
|
terraform
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -60,7 +63,7 @@
|
||||||
openssh = {
|
openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
syncthing = {
|
syncthing = {
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@
|
||||||
./syncthing.nix
|
./syncthing.nix
|
||||||
./restic.nix
|
./restic.nix
|
||||||
./monitoring.nix
|
./monitoring.nix
|
||||||
|
./jenkins.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
nix =
|
nix =
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
config = lib.mkIf config.swarselsystems.server.immich {
|
config = lib.mkIf config.swarselsystems.server.immich {
|
||||||
|
|
||||||
|
|
|
||||||
35
profiles/server/common/jenkins.nix
Normal file
35
profiles/server/common/jenkins.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.swarselsystems.server.jenkins {
|
||||||
|
|
||||||
|
services.jenkins = {
|
||||||
|
enable = true;
|
||||||
|
withCLI = true;
|
||||||
|
port = 8088;
|
||||||
|
packages = [ pkgs.stdenv pkgs.git pkgs.jdk17 config.programs.ssh.package pkgs.nix ];
|
||||||
|
listenAddress = "127.0.0.1";
|
||||||
|
home = "/Vault/apps/jenkins";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
services.nginx = {
|
||||||
|
virtualHosts = {
|
||||||
|
"servant.swarsel.win" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
acmeRoot = null;
|
||||||
|
locations = {
|
||||||
|
"/" = {
|
||||||
|
proxyPass = "http://localhost:8088";
|
||||||
|
extraConfig = ''
|
||||||
|
client_max_body_size 0;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, modulesPath, sops, ... }:
|
{ config, lib, pkgs, sops, ... }:
|
||||||
let
|
let
|
||||||
matrixDomain = "swatrix.swarsel.win";
|
matrixDomain = "swatrix.swarsel.win";
|
||||||
baseUrl = "https://${matrixDomain}";
|
baseUrl = "https://${matrixDomain}";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
config = lib.mkIf config.swarselsystems.server.monitoring {
|
config = lib.mkIf config.swarselsystems.server.monitoring {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
services = {
|
services = {
|
||||||
# add a user with sudo smbpasswd -a <user>
|
# add a user with sudo smbpasswd -a <user>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
config = lib.mkIf config.swarselsystems.server.immich {
|
config = lib.mkIf config.swarselsystems.server.paperless {
|
||||||
|
|
||||||
users.users.paperless = {
|
users.users.paperless = {
|
||||||
extraGroups = [ "users" ];
|
extraGroups = [ "users" ];
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
config = lib.mkIf config.swarselsystems.server.restic {
|
config = lib.mkIf config.swarselsystems.server.restic {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
{ pkgs, lib, config, ... }:
|
|
||||||
{
|
|
||||||
|
|
||||||
# Network shares
|
|
||||||
# add a user with sudo smbpasswd -a <user>
|
|
||||||
samba = {
|
|
||||||
package = pkgs.samba4Full;
|
|
||||||
extraConfig = ''
|
|
||||||
workgroup = WORKGROUP
|
|
||||||
server role = standalone server
|
|
||||||
dns proxy = no
|
|
||||||
|
|
||||||
pam password change = yes
|
|
||||||
map to guest = bad user
|
|
||||||
create mask = 0664
|
|
||||||
force create mode = 0664
|
|
||||||
directory mask = 0775
|
|
||||||
force directory mode = 0775
|
|
||||||
follow symlinks = yes
|
|
||||||
'';
|
|
||||||
|
|
||||||
# ^^ `samba4Full` is compiled with avahi, ldap, AD etc support compared to the default package, `samba`
|
|
||||||
# Required for samba to register mDNS records for auto discovery
|
|
||||||
# See https://github.com/NixOS/nixpkgs/blob/592047fc9e4f7b74a4dc85d1b9f5243dfe4899e3/pkgs/top-level/all-packages.nix#L27268
|
|
||||||
enable = true;
|
|
||||||
# openFirewall = true;
|
|
||||||
shares.Eternor = {
|
|
||||||
browseable = "yes";
|
|
||||||
"read only" = "no";
|
|
||||||
"guest ok" = "no";
|
|
||||||
path = "/Vault/Eternor";
|
|
||||||
writable = "true";
|
|
||||||
comment = "Eternor";
|
|
||||||
"valid users" = "@Swarsel";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
avahi = {
|
|
||||||
publish.enable = true;
|
|
||||||
publish.userServices = true;
|
|
||||||
# ^^ Needed to allow samba to automatically register mDNS records without the need for an `extraServiceFile`
|
|
||||||
nssmdns4 = true;
|
|
||||||
# ^^ Not one hundred percent sure if this is needed- if it aint broke, don't fix it
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
samba-wsdd = {
|
|
||||||
# This enables autodiscovery on windows since SMB1 (and thus netbios) support was discontinued
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, config, ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
sops = {
|
sops = {
|
||||||
age.sshKeyPaths = [ "/etc/ssh/sops" ];
|
age.sshKeyPaths = [ "/etc/ssh/sops" ];
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
config = lib.mkIf config.swarselsystems.server.spotifyd {
|
config = lib.mkIf config.swarselsystems.server.spotifyd {
|
||||||
users.groups.spotifyd = {
|
users.groups.spotifyd = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{ lib, config, ... }:
|
||||||
{
|
{
|
||||||
config = lib.mkIf config.swarselsystems.server.syncthing {
|
config = lib.mkIf config.swarselsystems.server.syncthing {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
{ pkgs, lib, config, ... }:
|
|
||||||
{ }
|
|
||||||
36
profiles/server/nbm-imba-166/default.nix
Normal file
36
profiles/server/nbm-imba-166/default.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
{ inputs, outputs, config, pkgs, lib, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
inputs.home-manager.darwinModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.users."leon.schwarzaeugl".imports = [
|
||||||
|
../../common/home/emacs.nix
|
||||||
|
] ++ (builtins.attrValues outputs.homeManagerModules);
|
||||||
|
}
|
||||||
|
] ++ (builtins.attrValues outputs.nixosModules);
|
||||||
|
|
||||||
|
nix.settings.experimental-features = "nix-command flakes";
|
||||||
|
nixpkgs = {
|
||||||
|
inherit (outputs) overlays;
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Auto upgrade nix package and the daemon service.
|
||||||
|
services.nix-daemon.enable = true;
|
||||||
|
services.karabiner-elements.enable = true;
|
||||||
|
|
||||||
|
home-manager.users."leon.schwarzaeugl".swarselsystems = {
|
||||||
|
isDarwin = true;
|
||||||
|
isLaptop = true;
|
||||||
|
isNixos = false;
|
||||||
|
isBtrfs = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = 4;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ inputs, outputs, config, pkgs, lib, ... }:
|
{ inputs, outputs, config, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
|
|
@ -54,6 +54,7 @@
|
||||||
transmission = true;
|
transmission = true;
|
||||||
syncthing = true;
|
syncthing = true;
|
||||||
monitoring = true;
|
monitoring = true;
|
||||||
|
jenkins = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{ config, lib, modulesPath, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
|
|
|
||||||
|
|
@ -179,17 +179,19 @@ create a new one."
|
||||||
(shell-command "nixpkgs-fmt . > /dev/null")))
|
(shell-command "nixpkgs-fmt . > /dev/null")))
|
||||||
|
|
||||||
(defun swarsel/org-babel-tangle-config ()
|
(defun swarsel/org-babel-tangle-config ()
|
||||||
|
(interactive)
|
||||||
(when (string-equal (buffer-file-name)
|
(when (string-equal (buffer-file-name)
|
||||||
swarsel-swarsel-org-filepath)
|
swarsel-swarsel-org-filepath)
|
||||||
;; Dynamic scoping to the rescue
|
;; Dynamic scoping to the rescue
|
||||||
(let ((org-confirm-babel-evaluate nil))
|
(let ((org-confirm-babel-evaluate nil))
|
||||||
;; (org-html-export-to-html)
|
;; (org-html-export-to-html)
|
||||||
(org-babel-tangle)
|
(org-babel-tangle)
|
||||||
(swarsel/run-formatting))))
|
;; (swarsel/run-formatting)
|
||||||
|
)))
|
||||||
|
|
||||||
(setq org-html-htmlize-output-type nil)
|
(setq org-html-htmlize-output-type nil)
|
||||||
|
|
||||||
(add-hook 'org-mode-hook (lambda () (add-hook 'after-save-hook #'swarsel/org-babel-tangle-config)))
|
;; (add-hook 'org-mode-hook (lambda () (add-hook 'after-save-hook #'swarsel/org-babel-tangle-config)))
|
||||||
|
|
||||||
(defun org-fold-outer ()
|
(defun org-fold-outer ()
|
||||||
(interactive)
|
(interactive)
|
||||||
|
|
@ -976,17 +978,19 @@ create a new one."
|
||||||
|
|
||||||
(setq org-fold-core-style 'overlays)
|
(setq org-fold-core-style 'overlays)
|
||||||
|
|
||||||
(org-babel-do-load-languages
|
(setq org-src-preserve-indentation nil)
|
||||||
'org-babel-load-languages
|
|
||||||
'((emacs-lisp . t)
|
|
||||||
(python . t)
|
|
||||||
(js . t)
|
|
||||||
(shell . t)
|
|
||||||
))
|
|
||||||
|
|
||||||
(push '("conf-unix" . conf-unix) org-src-lang-modes)
|
(org-babel-do-load-languages
|
||||||
|
'org-babel-load-languages
|
||||||
|
'((emacs-lisp . t)
|
||||||
|
(python . t)
|
||||||
|
(js . t)
|
||||||
|
(shell . t)
|
||||||
|
))
|
||||||
|
|
||||||
(setq org-export-with-broken-links 'mark)
|
(push '("conf-unix" . conf-unix) org-src-lang-modes)
|
||||||
|
|
||||||
|
(setq org-export-with-broken-links 'mark)
|
||||||
|
|
||||||
(require 'org-tempo)
|
(require 'org-tempo)
|
||||||
(add-to-list 'org-structure-template-alist '("sh" . "src shell"))
|
(add-to-list 'org-structure-template-alist '("sh" . "src shell"))
|
||||||
|
|
@ -1526,6 +1530,13 @@ create a new one."
|
||||||
|
|
||||||
(defalias 'start-lsp-server #'eglot)
|
(defalias 'start-lsp-server #'eglot)
|
||||||
|
|
||||||
|
(use-package sideline-flymake
|
||||||
|
:hook (flymake-mode . sideline-mode)
|
||||||
|
:init
|
||||||
|
(setq sideline-flymake-display-mode 'point) ; 'point to show errors only on point
|
||||||
|
; 'line to show errors on the current line
|
||||||
|
(setq sideline-backends-right '(sideline-flymake)))
|
||||||
|
|
||||||
(use-package breadcrumb
|
(use-package breadcrumb
|
||||||
;; :config (breadcrumb-mode)
|
;; :config (breadcrumb-mode)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue