Compare commits

...

8 commits

14 changed files with 275 additions and 155 deletions

View file

@ -42,11 +42,11 @@
]
},
"locked": {
"lastModified": 1667419884,
"narHash": "sha256-oLNw87ZI5NxTMlNQBv1wG2N27CUzo9admaFlnmavpiY=",
"lastModified": 1668784520,
"narHash": "sha256-gGgVAMwYPPmrfnvnoRi6OkEB5KRsNTb9uYzEceLdO/g=",
"owner": "LnL7",
"repo": "nix-darwin",
"rev": "cfc0125eafadc9569d3d6a16ee928375b77e3100",
"rev": "6349b99bc2b96ded34d068a88c7c5ced406b7f7f",
"type": "github"
},
"original": {
@ -85,11 +85,11 @@
"utils": "utils"
},
"locked": {
"lastModified": 1659725433,
"narHash": "sha256-1ZxuK67TL29YLw88vQ18Y2Y6iYg8Jb7I6/HVzmNB6nM=",
"lastModified": 1668797197,
"narHash": "sha256-0w6iD3GSSQbIeSFVDzAAQZB+hDq670ZTms3d9XI+BtM=",
"owner": "serokell",
"repo": "deploy-rs",
"rev": "41f15759dd8b638e7b4f299730d94d5aa46ab7eb",
"rev": "2a3c5f70eee04a465aa534d8bd4fcc9bb3c4a8ce",
"type": "github"
},
"original": {
@ -192,11 +192,11 @@
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1650374568,
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"lastModified": 1668681692,
"narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"rev": "009399224d5e398d03b22badca40a37ac85412a1",
"type": "github"
},
"original": {
@ -289,19 +289,20 @@
"inputs": {
"nixpkgs": [
"nixos"
]
],
"utils": "utils_2"
},
"locked": {
"lastModified": 1667677389,
"narHash": "sha256-y9Zdq8vtsn0T5TO1iTvWA7JndYIAGjzCjbYVi/hOSmA=",
"lastModified": 1669071065,
"narHash": "sha256-KBpgj3JkvlPsJ3duOZqFJe6tgr+wc75t8sFmgRbBSbw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "87d55517f6f36aa1afbd7a4a064869d5a1d405b8",
"rev": "f7641a3ff398ccce952e19a199d775934e518c1d",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-22.05",
"ref": "release-22.11",
"repo": "home-manager",
"type": "github"
}
@ -324,11 +325,11 @@
},
"latest_2": {
"locked": {
"lastModified": 1667629849,
"narHash": "sha256-P+v+nDOFWicM4wziFK9S/ajF2lc0N2Rg9p6Y35uMoZI=",
"lastModified": 1669320964,
"narHash": "sha256-EBFw+ge12Pcr3qCk8If3/eMBAoQLR7ytndXZoRevUtM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "3bacde6273b09a21a8ccfba15586fb165078fb62",
"rev": "27ccd29078f974ddbdd7edc8e38c8c8ae003c877",
"type": "github"
},
"original": {
@ -375,16 +376,16 @@
},
"nixos": {
"locked": {
"lastModified": 1667653703,
"narHash": "sha256-Xow4vx52/g5zkhlgZnMEm/TEXsj+13jTPCc2jIhW1xU=",
"lastModified": 1669379897,
"narHash": "sha256-XM3xBfQD5tOtV4KAhQHyh53cJdqkLwotZa5JJIUjbQc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "f09ad462c5a121d0239fde645aacb2221553a217",
"rev": "8690906c4d80db5d85f52313a8487bf2e7b8d4c5",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-22.05",
"ref": "nixos-22.11",
"repo": "nixpkgs",
"type": "github"
}
@ -395,11 +396,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1666812839,
"narHash": "sha256-0nBDgjPU+iDsvz89W+cDEyhnFGSwCJmwDl/gMGqYiU0=",
"lastModified": 1669065280,
"narHash": "sha256-3+pq1oJWjGDLfd8G/vR3IIFZ+EQ/aglukA0bTiMlf3o=",
"owner": "nix-community",
"repo": "nixos-generators",
"rev": "41f3518bc194389df22a3d198215eae75e6b5ab9",
"rev": "50aeec40f2072d2ab267c8ec8a345573704ec110",
"type": "github"
},
"original": {
@ -410,11 +411,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1667768008,
"narHash": "sha256-PGbX0s2hhXGnZDFVE6UIhPSOf5YegpWs5dUXpT/14F0=",
"lastModified": 1669146234,
"narHash": "sha256-HEby7EG1yaq1oT2Ze6Cvok9CFju1XHkSvVHmkptLW9U=",
"owner": "nixos",
"repo": "nixos-hardware",
"rev": "f6483e0def85efb9c1e884efbaff45a5e7aabb34",
"rev": "0099253ad0b5283f06ffe31cf010af3f9ad7837d",
"type": "github"
},
"original": {
@ -520,6 +521,21 @@
"repo": "flake-utils",
"type": "github"
}
},
"utils_2": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
}
},
"root": "root",

View file

@ -8,7 +8,7 @@
inputs =
{
# Track channels with commits tested and built by hydra
nixos.url = "github:nixos/nixpkgs/nixos-22.05";
nixos.url = "github:nixos/nixpkgs/nixos-22.11";
latest.url = "github:nixos/nixpkgs/nixos-unstable";
flake-compat.url = "github:edolstra/flake-compat";
@ -20,7 +20,7 @@
digga.inputs.home-manager.follows = "home";
digga.inputs.deploy.follows = "deploy";
home.url = "github:nix-community/home-manager/release-22.05";
home.url = "github:nix-community/home-manager/release-22.11";
home.inputs.nixpkgs.follows = "nixos";
darwin.url = "github:LnL7/nix-darwin";

View file

@ -2,5 +2,5 @@
# Both things below are for
# https://github.com/NixOS/nixpkgs/issues/124215
documentation.info.enable = lib.mkForce false;
nix.sandboxPaths = [ "/bin/sh=${pkgs.bash}/bin/sh" ];
nix.settings.extra-sandbox-paths = [ "/bin/sh=${pkgs.bash}/bin/sh" ];
}

View file

@ -1,10 +1,12 @@
{ config, pkgs, lib, ... }:
with lib;
let cfg = config.pub-solar.core;
in
{
config,
pkgs,
lib,
...
}:
with lib; let
cfg = config.pub-solar.core;
in {
options.pub-solar.core = {
enableCaddy = mkOption {
type = types.bool;
@ -17,12 +19,12 @@ in
binaryCaches = mkOption {
type = types.listOf types.str;
default = [ ];
default = [];
description = "Binary caches to use.";
};
publicKeys = mkOption {
type = types.listOf types.str;
default = [ ];
default = [];
description = "Public keys of binary caches.";
};
};
@ -39,15 +41,16 @@ in
networking.firewall.enable = true;
# Customized binary caches list (with fallback to official binary cache)
nix.binaryCaches = cfg.binaryCaches;
nix.binaryCachePublicKeys = cfg.publicKeys;
nix.settings.substituters = cfg.binaryCaches;
nix.settings.trusted-public-keys = cfg.publicKeys;
# These entries get added to /etc/hosts
networking.hosts = {
"127.0.0.1" = [ ]
++ lib.optionals cfg.enableCaddy [ "caddy.local" ]
++ lib.optionals config.pub-solar.printing.enable [ "cups.local" ]
++ lib.optionals cfg.enableHelp [ "help.local" ];
"127.0.0.1" =
[]
++ lib.optionals cfg.enableCaddy ["caddy.local"]
++ lib.optionals config.pub-solar.printing.enable ["cups.local"]
++ lib.optionals cfg.enableHelp ["help.local"];
};
# Caddy reverse proxy for local services like cups

View file

@ -1,19 +1,25 @@
{ config, pkgs, lib, inputs, ... }:
{
config,
pkgs,
lib,
inputs,
...
}: {
nix = {
# Use default version alias for nix package
package = pkgs.nix;
# Improve nix store disk usage
autoOptimiseStore = true;
gc.automatic = true;
optimise.automatic = true;
# Prevents impurities in builds
useSandbox = true;
# give root and @wheel special privileges with nix
trustedUsers = [ "root" "@wheel" ];
# This is just a representation of the nix default
systemFeatures = [ "nixos-test" "benchmark" "big-parallel" "kvm" ];
settings = {
# Improve nix store disk usage
auto-optimise-store = true;
# Prevents impurities in builds
sandbox = true;
# give root and @wheel special privileges with nix
trusted-users = ["root" "@wheel"];
# This is just a representation of the nix default
system-features = ["nixos-test" "benchmark" "big-parallel" "kvm"];
};
# Generally useful nix option defaults
extraOptions = ''
min-free = 536870912

View file

@ -19,7 +19,7 @@ in
ansible-lint
restic
shellcheck
terraform_0_15
terraform
];
};
};

View file

@ -1,19 +1,23 @@
{ lib, config, pkgs, ... }:
with lib;
let
{
lib,
config,
pkgs,
...
}:
with lib; let
psCfg = config.pub-solar;
cfg = config.pub-solar.docker;
in
{
in {
options.pub-solar.docker = {
enable = mkEnableOption "Life in metal boxes";
};
config = mkIf cfg.enable {
virtualisation.docker.enable = true;
users.users = with pkgs; pkgs.lib.setAttrByPath [ psCfg.user.name ] {
extraGroups = [ "docker" ];
};
users.users = with pkgs;
pkgs.lib.setAttrByPath [psCfg.user.name] {
extraGroups = ["docker"];
};
environment.systemPackages = with pkgs; [
docker-compose

View file

@ -66,29 +66,97 @@
x = 0;
y = 0;
};
use_thin_strokes = true;
};
key_bindings = [
{ key = "V"; mods = "Control|Alt"; action = "Paste"; }
{ key = "C"; mods = "Control|Alt"; action = "Copy"; }
{ key = "Paste"; action = "Paste"; }
{ key = "Copy"; action = "Copy"; }
{ key = "Q"; mods = "Command"; action = "Quit"; }
{ key = "W"; mods = "Command"; action = "Quit"; }
{ key = "Insert"; mods = "Shift"; action = "PasteSelection"; }
{ key = "Key0"; mods = "Control"; action = "ResetFontSize"; }
{ key = "Equals"; mods = "Control"; action = "IncreaseFontSize"; }
{ key = "PageUp"; mods = "Shift"; action = "ScrollPageUp"; }
{ key = "PageDown"; mods = "Shift"; action = "ScrollPageDown"; }
{ key = "Minus"; mods = "Control"; action = "DecreaseFontSize"; }
{ key = "H"; mode = "Vi|~Search"; action = "ScrollToBottom"; }
{ key = "H"; mode = "Vi|~Search"; action = "ToggleViMode"; }
{ key = "I"; mode = "Vi|~Search"; action = "Up"; }
{ key = "K"; mode = "Vi|~Search"; action = "Down"; }
{ key = "J"; mode = "Vi|~Search"; action = "Left"; }
{ key = "L"; mode = "Vi|~Search"; action = "Right"; }
{
key = "V";
mods = "Control|Alt";
action = "Paste";
}
{
key = "C";
mods = "Control|Alt";
action = "Copy";
}
{
key = "Paste";
action = "Paste";
}
{
key = "Copy";
action = "Copy";
}
{
key = "Q";
mods = "Command";
action = "Quit";
}
{
key = "W";
mods = "Command";
action = "Quit";
}
{
key = "Insert";
mods = "Shift";
action = "PasteSelection";
}
{
key = "Key0";
mods = "Control";
action = "ResetFontSize";
}
{
key = "Equals";
mods = "Control";
action = "IncreaseFontSize";
}
{
key = "PageUp";
mods = "Shift";
action = "ScrollPageUp";
}
{
key = "PageDown";
mods = "Shift";
action = "ScrollPageDown";
}
{
key = "Minus";
mods = "Control";
action = "DecreaseFontSize";
}
{
key = "H";
mode = "Vi|~Search";
action = "ScrollToBottom";
}
{
key = "H";
mode = "Vi|~Search";
action = "ToggleViMode";
}
{
key = "I";
mode = "Vi|~Search";
action = "Up";
}
{
key = "K";
mode = "Vi|~Search";
action = "Down";
}
{
key = "J";
mode = "Vi|~Search";
action = "Left";
}
{
key = "L";
mode = "Vi|~Search";
action = "Right";
}
];
# Base16 Burn 256 - alacritty color config
@ -164,12 +232,30 @@
};
indexed_colors = [
{ index = 16; color = "0xdf5923"; }
{ index = 17; color = "0xd70000"; }
{ index = 18; color = "0x2d2a2e"; }
{ index = 19; color = "0x303030"; }
{ index = 20; color = "0xd3d1d4"; }
{ index = 21; color = "0x303030"; }
{
index = 16;
color = "0xdf5923";
}
{
index = 17;
color = "0xd70000";
}
{
index = 18;
color = "0x2d2a2e";
}
{
index = 19;
color = "0x303030";
}
{
index = 20;
color = "0xd3d1d4";
}
{
index = 21;
color = "0x303030";
}
];
};
}

View file

@ -1,9 +1,12 @@
{ lib, config, pkgs, ... }:
with lib;
let
psCfg = config.pub-solar;
in
{
lib,
config,
pkgs,
...
}:
with lib; let
psCfg = config.pub-solar;
in {
options.pub-solar.sway = {
enable = mkEnableOption "Life in boxes";
@ -22,14 +25,14 @@ in
config = mkIf psCfg.sway.enable (mkMerge [
(mkIf (psCfg.sway.v4l2loopback.enable) {
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
boot.kernelModules = [ "v4l2loopback" ];
boot.extraModulePackages = with config.boot.kernelPackages; [v4l2loopback];
boot.kernelModules = ["v4l2loopback"];
boot.extraModprobeConfig = ''
options v4l2loopback exclusive_caps=1 devices=3
'';
})
({
{
environment.systemPackages = with pkgs; [
linuxPackages.v4l2loopback
];
@ -48,60 +51,60 @@ in
};
};
};
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
gtkUsePortal = true;
extraPortals = with pkgs; [xdg-desktop-portal-gtk];
};
services.pipewire.enable = true;
home-manager = with pkgs; pkgs.lib.setAttrByPath [ "users" psCfg.user.name ] {
home.packages = with pkgs; [
sway
grim
kanshi
mako
slurp
swayidle
swaylock
swaybg
xwayland
home-manager = with pkgs;
pkgs.lib.setAttrByPath ["users" psCfg.user.name] {
home.packages = with pkgs; [
sway
grim
kanshi
mako
slurp
swayidle
swaylock
swaybg
xwayland
libappindicator-gtk3
libappindicator-gtk3
wl-clipboard
wf-recorder
brightnessctl
gammastep
geoclue2
xsettingsd
ydotool
wl-clipboard
wf-recorder
brightnessctl
gammastep
geoclue2
xsettingsd
ydotool
sway-launcher
record-screen
import-gtk-settings
s
wcwd
];
sway-launcher
record-screen
import-gtk-settings
s
wcwd
];
programs.waybar.enable = true;
#programs.waybar.systemd.enable = true;
programs.waybar.enable = true;
#programs.waybar.systemd.enable = true;
systemd.user.services.mako = import ./mako.service.nix { inherit pkgs psCfg; };
systemd.user.services.sway = import ./sway.service.nix { inherit pkgs psCfg; };
systemd.user.services.swayidle = import ./swayidle.service.nix { inherit pkgs psCfg; };
systemd.user.services.xsettingsd = import ./xsettingsd.service.nix { inherit pkgs psCfg; };
systemd.user.services.waybar = import ./waybar.service.nix { inherit pkgs psCfg; };
systemd.user.targets.sway-session = import ./sway-session.target.nix { inherit pkgs psCfg; };
systemd.user.services.mako = import ./mako.service.nix { inherit pkgs psCfg; };
systemd.user.services.sway = import ./sway.service.nix {inherit pkgs psCfg;};
systemd.user.services.swayidle = import ./swayidle.service.nix {inherit pkgs psCfg;};
systemd.user.services.xsettingsd = import ./xsettingsd.service.nix {inherit pkgs psCfg;};
systemd.user.services.waybar = import ./waybar.service.nix {inherit pkgs psCfg;};
systemd.user.targets.sway-session = import ./sway-session.target.nix {inherit pkgs psCfg;};
xdg.configFile."sway/config".text = import ./config/config.nix { inherit config pkgs; };
xdg.configFile."sway/config.d/colorscheme.conf".source = ./config/config.d/colorscheme.conf;
xdg.configFile."sway/config.d/theme.conf".source = ./config/config.d/theme.conf;
xdg.configFile."sway/config.d/gaps.conf".source = ./config/config.d/gaps.conf;
xdg.configFile."sway/config.d/custom-keybindings.conf".source = ./config/config.d/custom-keybindings.conf;
xdg.configFile."sway/config.d/mode_system.conf".text = import ./config/config.d/mode_system.conf.nix { inherit pkgs psCfg; };
xdg.configFile."sway/config.d/applications.conf".source = ./config/config.d/applications.conf;
xdg.configFile."sway/config.d/systemd.conf".source = ./config/config.d/systemd.conf;
};
})
xdg.configFile."sway/config".text = import ./config/config.nix {inherit config pkgs;};
xdg.configFile."sway/config.d/colorscheme.conf".source = ./config/config.d/colorscheme.conf;
xdg.configFile."sway/config.d/theme.conf".source = ./config/config.d/theme.conf;
xdg.configFile."sway/config.d/gaps.conf".source = ./config/config.d/gaps.conf;
xdg.configFile."sway/config.d/custom-keybindings.conf".source = ./config/config.d/custom-keybindings.conf;
xdg.configFile."sway/config.d/mode_system.conf".text = import ./config/config.d/mode_system.conf.nix {inherit pkgs psCfg;};
xdg.configFile."sway/config.d/applications.conf".source = ./config/config.d/applications.conf;
xdg.configFile."sway/config.d/systemd.conf".source = ./config/config.d/systemd.conf;
};
}
]);
}

View file

@ -13,6 +13,7 @@ set expandtab
set shiftwidth=2
set number
set relativenumber
set mouse=
set undolevels=1000
set undoreload=10000

View file

@ -73,8 +73,7 @@ lua <<EOF
end
-- Add additional capabilities supported by nvim-cmp
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities)
local capabilities = require('cmp_nvim_lsp').default_capabilities()
-- vscode HTML lsp needs this https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#html
capabilities.textDocument.completion.completionItem.snippetSupport = true

View file

@ -1,11 +1,13 @@
{ pkgs, lib, ... }:
let
{
pkgs,
lib,
...
}: let
folder = ./.;
toImport = name: value: folder + ("/" + name);
filterCaches = key: value: value == "regular" && lib.hasSuffix ".nix" key && key != "default.nix";
imports = lib.mapAttrsToList toImport (lib.filterAttrs filterCaches (builtins.readDir folder));
in
{
in {
inherit imports;
nix.binaryCaches = [ "https://cache.nixos.org/" ];
nix.settings.substituters = ["https://cache.nixos.org/"];
}

View file

@ -1,9 +1,9 @@
{
nix = {
binaryCaches = [
nix.settings = {
substituters = [
"https://nix-community.cachix.org"
];
binaryCachePublicKeys = [
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
};

View file

@ -1,9 +1,9 @@
{
nix = {
binaryCaches = [
nix.settings = {
substituters = [
"https://nrdxp.cachix.org"
];
binaryCachePublicKeys = [
trusted-public-keys = [
"nrdxp.cachix.org-1:Fc5PSqY2Jm1TrWfm88l6cvGWwz3s93c6IOifQWnhNW4="
];
};