formatted
This commit is contained in:
parent
ba1684c8d4
commit
737ca01e49
24 changed files with 468 additions and 411 deletions
|
@ -1,2 +1 @@
|
|||
all systems flakes
|
||||
do overlays properly for syspkgs/homepkgs
|
||||
basically just laptop
|
136
flake.nix
136
flake.nix
|
@ -2,7 +2,6 @@
|
|||
description = "nixos config";
|
||||
|
||||
inputs = {
|
||||
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
flake-parts = {
|
||||
|
@ -11,7 +10,7 @@
|
|||
};
|
||||
|
||||
nur.url = "github:/nix-community/NUR";
|
||||
|
||||
|
||||
eww = {
|
||||
url = "github:elkowar/eww";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
@ -40,80 +39,79 @@
|
|||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
|
||||
declarative-cachix.url = "github:jonascarpay/declarative-cachix";
|
||||
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, nur, eww, helix, hyprland, ... }@inputs:
|
||||
let
|
||||
|
||||
inherit (self) outputs;
|
||||
forAllSystems = nixpkgs.lib.genAttrs [
|
||||
"x86_64-linux"
|
||||
];
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
nur,
|
||||
eww,
|
||||
helix,
|
||||
hyprland,
|
||||
...
|
||||
} @ inputs: let
|
||||
inherit (self) outputs;
|
||||
forAllSystems = nixpkgs.lib.genAttrs [
|
||||
"x86_64-linux"
|
||||
];
|
||||
in rec {
|
||||
# custom packages
|
||||
packages = forAllSystems (
|
||||
system: let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in
|
||||
import ./pkgs {inherit pkgs;}
|
||||
);
|
||||
|
||||
in
|
||||
rec {
|
||||
# homepkgs = forAllSystems (system:
|
||||
# let pkgs = nixpkgs.legacyPackages.${system};
|
||||
# in import ./homepkgs { inherit pkgs; }
|
||||
# );
|
||||
|
||||
# custom packages
|
||||
packages = forAllSystems (system:
|
||||
let pkgs = nixpkgs.legacyPackages.${system};
|
||||
in import ./pkgs { inherit pkgs; }
|
||||
);
|
||||
|
||||
# homepkgs = forAllSystems (system:
|
||||
# let pkgs = nixpkgs.legacyPackages.${system};
|
||||
# in import ./homepkgs { inherit pkgs; }
|
||||
# );
|
||||
|
||||
# any overlays or modules we use
|
||||
overlays = import ./overlay.nix { inherit inputs; };
|
||||
# nixosModules = import ./modules/nixos;
|
||||
# homeModules = import ./modules/home;
|
||||
|
||||
nixosConfigurations = {
|
||||
|
||||
"quiver" = nixpkgs.lib.nixosSystem {
|
||||
# pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs outputs; };
|
||||
modules = [
|
||||
./system/quiver.nix
|
||||
];
|
||||
};
|
||||
|
||||
"adrift" = nixpkgs.lib.nixosSystem {
|
||||
# pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs outputs; };
|
||||
modules = [
|
||||
./system/adrift.nix
|
||||
];
|
||||
};
|
||||
# any overlays or modules we use
|
||||
overlays = import ./overlay.nix {inherit inputs;};
|
||||
# nixosModules = import ./modules/nixos;
|
||||
# homeModules = import ./modules/home;
|
||||
|
||||
nixosConfigurations = {
|
||||
"quiver" = nixpkgs.lib.nixosSystem {
|
||||
# pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {inherit inputs outputs;};
|
||||
modules = [
|
||||
./system/quiver.nix
|
||||
];
|
||||
};
|
||||
|
||||
homeConfigurations = {
|
||||
|
||||
"bolt@quiver" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
extraSpecialArgs = { inherit inputs outputs; };
|
||||
modules = [
|
||||
nur.nixosModules.nur
|
||||
./home/bolt.nix
|
||||
];
|
||||
};
|
||||
|
||||
"plank@adrift" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
extraSpecialArgs = { inherit inputs outputs; };
|
||||
modules = [
|
||||
nur.nixosModules.nur
|
||||
./home/plank.nix
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
"adrift" = nixpkgs.lib.nixosSystem {
|
||||
# pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {inherit inputs outputs;};
|
||||
modules = [
|
||||
./system/adrift.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
homeConfigurations = {
|
||||
"bolt@quiver" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
extraSpecialArgs = {inherit inputs outputs;};
|
||||
modules = [
|
||||
nur.nixosModules.nur
|
||||
./home/bolt.nix
|
||||
];
|
||||
};
|
||||
|
||||
"plank@adrift" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
extraSpecialArgs = {inherit inputs outputs;};
|
||||
modules = [
|
||||
nur.nixosModules.nur
|
||||
./home/plank.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,10 +1,17 @@
|
|||
{ inputs, outputs, lib, config, pkgs, ... }: {
|
||||
imports = [
|
||||
./home.nix
|
||||
];
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./home.nix
|
||||
];
|
||||
|
||||
home = {
|
||||
username = "bolt";
|
||||
homeDirectory = "/home/bolt";
|
||||
};
|
||||
home = {
|
||||
username = "bolt";
|
||||
homeDirectory = "/home/bolt";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,35 +1,37 @@
|
|||
{ inputs, outputs, lib, config, pkgs, ... }:
|
||||
|
||||
let
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
wlogout_style_base = dots/wlogout/style.css;
|
||||
wlogout_style = pkgs.runCommandLocal "wlogout_style_base" {wlogpath = lib.strings.escape ["/"] "${pkgs.wlogout}";} ''
|
||||
cp ${wlogout_style_base} $out
|
||||
sed -i "s/\/usr\/share\/wlogout/$wlogpath\/share\/wlogout/g" $out
|
||||
sed -i "s/\/usr\/share\/wlogout/$wlogpath\/share\/wlogout/g" $out
|
||||
sed -i "s/\/etc\/wlogout/$wlogpath\/etc\/wlogout/g" $out
|
||||
'';
|
||||
in
|
||||
{
|
||||
|
||||
imports = [
|
||||
in {
|
||||
imports = [
|
||||
inputs.hyprland.homeManagerModules.default
|
||||
./programs/eww/default.nix
|
||||
];
|
||||
];
|
||||
|
||||
nixpkgs = {
|
||||
nixpkgs = {
|
||||
overlays = [
|
||||
outputs.overlays.additions
|
||||
outputs.overlays.unstable-pkgs
|
||||
];
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = (_: true);
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = _: true;
|
||||
};
|
||||
};
|
||||
|
||||
home.stateVersion = "22.11";
|
||||
home.stateVersion = "22.11";
|
||||
|
||||
home.packages = with pkgs; [
|
||||
home.packages = with pkgs; [
|
||||
thunderbird
|
||||
clementine
|
||||
inkscape
|
||||
|
@ -42,7 +44,7 @@ in
|
|||
lazygit
|
||||
fzf
|
||||
zoxide
|
||||
zellij
|
||||
zellij
|
||||
glib # for gsettings
|
||||
grim
|
||||
slurp
|
||||
|
@ -60,13 +62,13 @@ in
|
|||
swayosd
|
||||
fuzzel
|
||||
|
||||
kdeconnect
|
||||
kdeconnect
|
||||
syncthing
|
||||
keepassxc
|
||||
git-credential-keepassxc
|
||||
|
||||
direnv
|
||||
|
||||
|
||||
mpv
|
||||
|
||||
meslo-lgs-nf
|
||||
|
@ -74,10 +76,10 @@ in
|
|||
libsForQt5.qtstyleplugin-kvantum
|
||||
|
||||
gtk-engine-murrine
|
||||
];
|
||||
];
|
||||
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
enable = true;
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
|
@ -97,14 +99,14 @@ in
|
|||
colors = builtins.readFile dots/eww/colors.scss;
|
||||
};
|
||||
|
||||
systemd.user.startServices = "sd-switch";
|
||||
systemd.user.startServices = "sd-switch";
|
||||
systemd.user.services."hyprland-system76" = {
|
||||
Unit = {
|
||||
Description = "the hyprland process scheduler hook";
|
||||
Requires = [ "dbus.service" ];
|
||||
Requires = ["dbus.service"];
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "graphical-session.target" "default.target" ];
|
||||
WantedBy = ["graphical-session.target" "default.target"];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = ''${pkgs.hyprland-system76-scheduler-integration}/bin/hyprland-system76-scheduler-hook.sh'';
|
||||
|
@ -114,15 +116,19 @@ in
|
|||
xresources.extraConfig = builtins.readFile ./dots/Xresources;
|
||||
|
||||
xdg.enable = true;
|
||||
xdg.configFile = builtins.mapAttrs (name: value: { enable=true; text=builtins.readFile value; })
|
||||
{
|
||||
"wlogout/layout" = dots/wlogout/layout;
|
||||
"wlogout/style.css" = wlogout_style;
|
||||
"swaync/config.json" = dots/swaync/config.json;
|
||||
"swaync/configSchema.json" = dots/swaync/configSchema.json;
|
||||
"swaync/style.css" = dots/swaync/style.css;
|
||||
"fuzzel/fuzzel.ini" = dots/fuzzel/fuzzel.ini;
|
||||
};
|
||||
xdg.configFile =
|
||||
builtins.mapAttrs (name: value: {
|
||||
enable = true;
|
||||
text = builtins.readFile value;
|
||||
})
|
||||
{
|
||||
"wlogout/layout" = dots/wlogout/layout;
|
||||
"wlogout/style.css" = wlogout_style;
|
||||
"swaync/config.json" = dots/swaync/config.json;
|
||||
"swaync/configSchema.json" = dots/swaync/configSchema.json;
|
||||
"swaync/style.css" = dots/swaync/style.css;
|
||||
"fuzzel/fuzzel.ini" = dots/fuzzel/fuzzel.ini;
|
||||
};
|
||||
|
||||
xdg.systemDirs.data = [
|
||||
"${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}"
|
||||
|
@ -151,9 +157,8 @@ in
|
|||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
programs.firefox =
|
||||
{
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
profiles.default = {
|
||||
id = 0;
|
||||
|
@ -174,7 +179,7 @@ in
|
|||
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
# package = inputs.helix.packages.${pkgs.hostPlatform.system}.default;
|
||||
# package = inputs.helix.packages.${pkgs.hostPlatform.system}.default;
|
||||
settings = {
|
||||
theme = "gruvbox_dark_hard";
|
||||
editor.lsp.display-messages = true;
|
||||
|
@ -288,6 +293,4 @@ in
|
|||
}
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
inputs: _: prev: {
|
||||
hyprland-s76 = prev.callPackage ./hyprland-system76-scheduler-integration.nix {};
|
||||
swayosd = prev.callPackage ./homepkgs/swayosd.nix {};
|
||||
wlogout_style_base = dots/wlogout/style.css;
|
||||
wlogout_style = prev.runCommandLocal "wlogout_style_base" {wlogpath = lib.strings.escape ["/"] "${pkgs.wlogout}";} ''
|
||||
cp ${wlogout_style_base} $out
|
||||
sed -i "s/\/usr\/share\/wlogout/$wlogpath\/share\/wlogout/g" $out
|
||||
sed -i "s/\/etc\/wlogout/$wlogpath\/etc\/wlogout/g" $out
|
||||
'';
|
||||
hyprland-s76 = prev.callPackage ./hyprland-system76-scheduler-integration.nix {};
|
||||
swayosd = prev.callPackage ./homepkgs/swayosd.nix {};
|
||||
wlogout_style_base = dots/wlogout/style.css;
|
||||
wlogout_style = prev.runCommandLocal "wlogout_style_base" {wlogpath = lib.strings.escape ["/"] "${pkgs.wlogout}";} ''
|
||||
cp ${wlogout_style_base} $out
|
||||
sed -i "s/\/usr\/share\/wlogout/$wlogpath\/share\/wlogout/g" $out
|
||||
sed -i "s/\/etc\/wlogout/$wlogpath\/etc\/wlogout/g" $out
|
||||
'';
|
||||
}
|
||||
|
|
18
overlay.nix
18
overlay.nix
|
@ -1,13 +1,13 @@
|
|||
{ inputs, ... }:
|
||||
{
|
||||
additions = final: _prev: import ./pkgs { pkgs = final; };
|
||||
unstable-pkgs = final: _prev: {
|
||||
unstable = import inputs.nixpkgs {
|
||||
system = final.system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
};
|
||||
{inputs, ...}: {
|
||||
additions = final: _prev: import ./pkgs {pkgs = final;};
|
||||
unstable-pkgs = final: _prev: {
|
||||
unstable = import inputs.nixpkgs {
|
||||
system = final.system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
# inputs: _: prev: {
|
||||
# system76-scheduler = prev.callPackage ./syspkgs/system76-scheduler.nix {};
|
||||
# }
|
||||
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
{ lib
|
||||
, mkDerivation
|
||||
, fetchFromGitHub
|
||||
, kcoreaddons
|
||||
, kwindowsystem
|
||||
, plasma-framework
|
||||
, systemsettings
|
||||
, cmake
|
||||
, extra-cmake-modules
|
||||
, esbuild
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
fetchFromGitHub,
|
||||
kcoreaddons,
|
||||
kwindowsystem,
|
||||
plasma-framework,
|
||||
systemsettings,
|
||||
cmake,
|
||||
extra-cmake-modules,
|
||||
esbuild,
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "bismuth";
|
||||
version = "3.1.3";
|
||||
|
@ -42,7 +42,7 @@ mkDerivation rec {
|
|||
meta = with lib; {
|
||||
description = "A dynamic tiling extension for KWin";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ pasqui23 ];
|
||||
maintainers = with maintainers; [pasqui23];
|
||||
homepage = "https://bismuth-forge.github.io/bismuth/";
|
||||
inherit (kwindowsystem.meta) platforms;
|
||||
};
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
{ lib, fetchFromGitea, rustPlatform, libX11, pkg-config }:
|
||||
|
||||
{
|
||||
lib,
|
||||
fetchFromGitea,
|
||||
rustPlatform,
|
||||
libX11,
|
||||
pkg-config,
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "culr";
|
||||
version = "0.1.0";
|
||||
|
@ -12,16 +17,15 @@ rustPlatform.buildRustPackage rec {
|
|||
sha256 = "sha256-Blo1PyhzKU4LzflmeGrvWOQEon2BCTkF3uQR+7D5/kc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ libX11 ];
|
||||
nativeBuildInputs = [pkg-config];
|
||||
buildInputs = [libX11];
|
||||
|
||||
cargoSha256 = "sha256-Vnhni8tckrexlJ85gfSDEAVWhH6oVHn9/z2O2OIVR5o=";
|
||||
|
||||
|
||||
meta = with lib; {
|
||||
description = "colourise piped input";
|
||||
homepage = "https://git.atagen.co/atagen/culr";
|
||||
license = licenses.mit;
|
||||
maintainers = [ ];
|
||||
maintainers = [];
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, ... }: {
|
||||
{pkgs, ...}: {
|
||||
hyprland-system76-scheduler-integration = pkgs.callPackage ./hyprland-system76-scheduler-integration.nix {};
|
||||
system76-scheduler = pkgs.callPackage ./system76-scheduler.nix {};
|
||||
culr = pkgs.callPackage ./culr.nix {};
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.programs.fuzzel;
|
||||
iniFormat = pkgs.formats.ini { };
|
||||
iniFormat = pkgs.formats.ini {};
|
||||
in {
|
||||
options = {
|
||||
programs.fuzzel = {
|
||||
|
@ -19,7 +21,7 @@ in {
|
|||
|
||||
settings = mkOption {
|
||||
type = iniFormat.type;
|
||||
default = { };
|
||||
default = {};
|
||||
example = literalExpression ''
|
||||
{
|
||||
window.dimensions = {
|
||||
|
@ -45,18 +47,17 @@ in {
|
|||
|
||||
config = mkMerge [
|
||||
(mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
home.packages = [cfg.package];
|
||||
|
||||
xdg.configFile."fuzzel/fuzzel.ini" = mkIf (cfg.settings != { }) {
|
||||
xdg.configFile."fuzzel/fuzzel.ini" = mkIf (cfg.settings != {}) {
|
||||
# TODO: Replace by the generate function but need to figure out how to
|
||||
# handle the escaping first.
|
||||
#
|
||||
# source = yamlFormat.generate "alacritty.yml" cfg.settings;
|
||||
|
||||
text =
|
||||
replaceStrings [ "\\\\" ] [ "\\" ] (builtins.toJSON cfg.settings);
|
||||
replaceStrings ["\\\\"] ["\\"] (builtins.toJSON cfg.settings);
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
{ lib, fetchFromGitHub, rustPlatform }:
|
||||
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-credential-keepassxc";
|
||||
version = "0.10.0";
|
||||
|
@ -17,7 +20,6 @@ rustPlatform.buildRustPackage rec {
|
|||
description = "Helper that allows Git (and shell scripts) to use KeePassXC as credential store";
|
||||
homepage = "https://github.com/frederick888/git-credential-keepassxc";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = [ ];
|
||||
maintainers = [];
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,16 @@
|
|||
{ lib, stdenv, fetchFromSourcehut, meson, ninja, pkg-config, wlroots, wayland, wayland-protocols
|
||||
, libX11, libGL }:
|
||||
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromSourcehut,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
wlroots,
|
||||
wayland,
|
||||
wayland-protocols,
|
||||
libX11,
|
||||
libGL,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "glpaper";
|
||||
version = "unstable-latest";
|
||||
|
@ -13,7 +23,7 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-//IKW2BfpqwcR2WAPShs0kzn5nkV/yyABPvOYm3zMPU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkg-config ];
|
||||
nativeBuildInputs = [meson ninja pkg-config];
|
||||
buildInputs = [
|
||||
wayland
|
||||
libX11 # required by libglvnd
|
||||
|
@ -21,11 +31,10 @@ stdenv.mkDerivation rec {
|
|||
];
|
||||
|
||||
meta = with lib; {
|
||||
description =
|
||||
"Wallpaper program for wlroots based Wayland compositors such as sway that allows you to render glsl shaders as your wallpaper";
|
||||
description = "Wallpaper program for wlroots based Wayland compositors such as sway that allows you to render glsl shaders as your wallpaper";
|
||||
homepage = "https://hg.sr.ht/~scoopta/glpaper";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ ccellado ];
|
||||
maintainers = with maintainers; [ccellado];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
{ lib, stdenv, fetchurl, unzip }:
|
||||
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
unzip,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "headscale-ui";
|
||||
version = "2022.12.23.2-beta";
|
||||
|
@ -9,7 +13,7 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-QF10la68Rl2t0K53CH63Qiq54ynkySQACdELorZF/cY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip ];
|
||||
nativeBuildInputs = [unzip];
|
||||
|
||||
unpackCmd = "unzip headscale-ui.zip";
|
||||
|
||||
|
@ -19,5 +23,4 @@ stdenv.mkDerivation rec {
|
|||
mkdir $out/
|
||||
cp -R . $out
|
||||
'';
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,47 +1,52 @@
|
|||
|
||||
{ lib, pkgs, stdenv, hyprland, ripgrep, socat, dbus, ... }:
|
||||
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
stdenv,
|
||||
hyprland,
|
||||
ripgrep,
|
||||
socat,
|
||||
dbus,
|
||||
...
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hyprland-system76-scheduler-integration";
|
||||
version = "0.1.0";
|
||||
|
||||
nativeBuildInputs = [
|
||||
socat
|
||||
socat
|
||||
dbus
|
||||
hyprland
|
||||
ripgrep
|
||||
hyprland
|
||||
ripgrep
|
||||
];
|
||||
|
||||
dontUnpack = "true";
|
||||
dontUnpack = "true";
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
runHook preInstall
|
||||
|
||||
cat <<EOF > $out/bin/hyprland-system76-scheduler-hook.sh
|
||||
#!${pkgs.bash}/bin/bash
|
||||
echo "opening socket.."
|
||||
${pkgs.socat}/bin/socat -u UNIX-CLIENT:/tmp/hypr/\''$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock STDOUT |
|
||||
while read line; do
|
||||
if [[ "\''$line" == activewindow* ]]; then
|
||||
echo "got \''$line."
|
||||
pid="\''$(${pkgs.hyprland}/bin/hyprctl activewindow | ${pkgs.ripgrep}/bin/rg pid | ${pkgs.coreutils}/bin/cut -d' ' -f2)"
|
||||
if [[ -n \''$pid ]]; then
|
||||
echo "sending \''$pid!"
|
||||
${pkgs.dbus}/bin/dbus-send --system --dest=com.system76.Scheduler --type=method_call /com/system76/Scheduler com.system76.Scheduler.SetForegroundProcess uint32:\''$pid
|
||||
fi
|
||||
pid=""
|
||||
fi
|
||||
echo "continuing.."
|
||||
done
|
||||
echo "finished."
|
||||
EOF
|
||||
chmod +x $out/bin/hyprland-system76-scheduler-hook.sh
|
||||
mkdir -p $out/bin
|
||||
|
||||
runHook postInstall
|
||||
cat <<EOF > $out/bin/hyprland-system76-scheduler-hook.sh
|
||||
#!${pkgs.bash}/bin/bash
|
||||
echo "opening socket.."
|
||||
${pkgs.socat}/bin/socat -u UNIX-CLIENT:/tmp/hypr/\''$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock STDOUT |
|
||||
while read line; do
|
||||
if [[ "\''$line" == activewindow* ]]; then
|
||||
echo "got \''$line."
|
||||
pid="\''$(${pkgs.hyprland}/bin/hyprctl activewindow | ${pkgs.ripgrep}/bin/rg pid | ${pkgs.coreutils}/bin/cut -d' ' -f2)"
|
||||
if [[ -n \''$pid ]]; then
|
||||
echo "sending \''$pid!"
|
||||
${pkgs.dbus}/bin/dbus-send --system --dest=com.system76.Scheduler --type=method_call /com/system76/Scheduler com.system76.Scheduler.SetForegroundProcess uint32:\''$pid
|
||||
fi
|
||||
pid=""
|
||||
fi
|
||||
echo "continuing.."
|
||||
done
|
||||
echo "finished."
|
||||
EOF
|
||||
chmod +x $out/bin/hyprland-system76-scheduler-hook.sh
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,9 +1,20 @@
|
|||
{ lib, pkgs, stdenv, fetchFromGitHub, dbus, qt5, qtbase, wrapQtAppsHook, kpackage, kcoreaddons, ... }:
|
||||
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
dbus,
|
||||
qt5,
|
||||
qtbase,
|
||||
wrapQtAppsHook,
|
||||
kpackage,
|
||||
kcoreaddons,
|
||||
...
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kwin-system76-scheduler-integration";
|
||||
version = "0.1";
|
||||
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "maxiberta";
|
||||
repo = pname;
|
||||
|
@ -25,7 +36,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
|
||||
mkdir -p $out/bin
|
||||
kpackagetool5 --type=KWin/Script -i . -p $out/share/kwin/scripts
|
||||
|
||||
|
@ -49,6 +60,4 @@ stdenv.mkDerivation rec {
|
|||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
{ lib, fetchFromGitHub, rustPlatform, linux-pam, pkg-config }:
|
||||
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
linux-pam,
|
||||
pkg-config,
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "lemurs";
|
||||
version = "0.3.1";
|
||||
|
@ -11,16 +16,15 @@ rustPlatform.buildRustPackage rec {
|
|||
sha256 = "sha256-mQXavJULD5iyOnzj72xTV0EQ1HQvj25SHsbDgfRg4lQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ linux-pam ];
|
||||
nativeBuildInputs = [pkg-config];
|
||||
buildInputs = [linux-pam];
|
||||
|
||||
cargoSha256 = "sha256-OCaIeQB8reK0089vbC+4IvQt5pKdZ2SCyyGuQEYWzjo=";
|
||||
|
||||
|
||||
meta = with lib; {
|
||||
description = "A customizable TUI display/login manager written in Rust";
|
||||
homepage = "https://git.atagen.co/coastalwhite/lemurs";
|
||||
license = licenses.mit;
|
||||
maintainers = [ ];
|
||||
maintainers = [];
|
||||
};
|
||||
|
||||
}
|
||||
|
|
18
pkgs/ly.nix
18
pkgs/ly.nix
|
@ -1,5 +1,11 @@
|
|||
{ stdenv, lib, fetchFromGitHub, linux-pam, libxcb, git }:
|
||||
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
linux-pam,
|
||||
libxcb,
|
||||
git,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ly";
|
||||
version = "0.5.0+";
|
||||
|
@ -12,9 +18,9 @@ stdenv.mkDerivation rec {
|
|||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ git ];
|
||||
buildInputs = [ linux-pam libxcb ];
|
||||
makeFlags = [ "FLAGS=-Wno-error=unused-result" ];
|
||||
nativeBuildInputs = [git];
|
||||
buildInputs = [linux-pam libxcb];
|
||||
makeFlags = ["FLAGS=-Wno-error=unused-result"];
|
||||
|
||||
preBuildPhase = ''
|
||||
mkdir -p ./data
|
||||
|
@ -36,6 +42,6 @@ stdenv.mkDerivation rec {
|
|||
description = "TUI display manager";
|
||||
license = licenses.wtfpl;
|
||||
homepage = "https://github.com/fairyglade/ly";
|
||||
maintainers = [ ];
|
||||
maintainers = [];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
{ stdenvNoCC, lib, fetchFromGitea, }:
|
||||
|
||||
{
|
||||
stdenvNoCC,
|
||||
lib,
|
||||
fetchFromGitea,
|
||||
}:
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "Simplewaita";
|
||||
version = "0.1.0";
|
||||
|
@ -26,5 +29,5 @@ stdenvNoCC.mkDerivation rec {
|
|||
homepage = "https://git.disroot.org/eudaimon/Simplewaita";
|
||||
license = licenses.gpl1Only;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
{ lib, fetchFromGitHub, rustPlatform, pkg-config, gtk3, gtk-layer-shell, libpulseaudio }:
|
||||
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
pkg-config,
|
||||
gtk3,
|
||||
gtk-layer-shell,
|
||||
libpulseaudio,
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "SwayOSD";
|
||||
version = "0.1.0";
|
||||
|
@ -11,14 +18,12 @@ rustPlatform.buildRustPackage rec {
|
|||
sha256 = "sha256-3K8LlX4MrG523BwD4nZOcXgSxsnYRxxU5gCOp7rCOCY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ gtk3 gtk-layer-shell libpulseaudio ];
|
||||
nativeBuildInputs = [pkg-config];
|
||||
buildInputs = [gtk3 gtk-layer-shell libpulseaudio];
|
||||
cargoLock.lockFileContents = builtins.readFile ./swayosd.lock;
|
||||
postPatch = ''
|
||||
cp ${./swayosd.lock} Cargo.lock
|
||||
'';
|
||||
|
||||
cargoSha256 = lib.fakeSha256;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
{ pkgs, lib, rustPlatform, fetchFromGitHub, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
...
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
|
||||
pname = "system76-scheduler";
|
||||
version = "1.2.2";
|
||||
|
||||
|
@ -30,5 +35,4 @@ rustPlatform.buildRustPackage rec {
|
|||
# install -Dm0644 data/com.system76.Scheduler.service $out/lib/systemd/system/com.system76.Scheduler.service
|
||||
install -Dm0644 data/com.system76.Scheduler.conf $out/etc/dbus-1/system.d/com.system76.Scheduler.conf
|
||||
'';
|
||||
|
||||
}
|
||||
|
|
119
server-conf.nix
119
server-conf.nix
|
@ -1,11 +1,13 @@
|
|||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{ lib, config, pkgs, ... }:
|
||||
|
||||
let
|
||||
wekan-compose = pkgs.fetchurl {
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
wekan-compose = pkgs.fetchurl {
|
||||
url = "https://github.com/wekan/wekan/raw/v6.68/docker-compose.yml";
|
||||
sha256 = "sha256-gLZ8bZZ8ZMo1NGz3ooIgXRH6JuMoEMp+to7lfqAvc6E=";
|
||||
};
|
||||
|
@ -27,20 +29,19 @@ let
|
|||
url = "https://raw.githubusercontent.com/timlegge/docker-foswiki/master/docker-compose.1-simple.yml";
|
||||
sha256 = "sha256-XqGWGTZ/URKsIdDEEpBQUK7xoIdZ164lRhHEiWdnKpM=";
|
||||
};
|
||||
in
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
# ./cachix.nix
|
||||
# (import (builtins.fetchTarball "https://github.com/jonascarpay/declarative-cachix/archive/master.tar.gz"))
|
||||
];
|
||||
|
||||
in {
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
# ./cachix.nix
|
||||
# (import (builtins.fetchTarball "https://github.com/jonascarpay/declarative-cachix/archive/master.tar.gz"))
|
||||
];
|
||||
|
||||
# cachix = [
|
||||
# "nix-community"
|
||||
# ];
|
||||
|
||||
nix.settings.experimental-features = [ "flakes" "nix-command" ];
|
||||
|
||||
nix.settings.experimental-features = ["flakes" "nix-command"];
|
||||
systemd.services.NetworkManager-wait-online.enable = false;
|
||||
|
||||
# Use the GRUB 2 boot loader.
|
||||
|
@ -49,7 +50,7 @@ in
|
|||
boot.loader.grub.device = "/dev/vda"; # or "nodev" for efi only
|
||||
|
||||
networking.hostName = "reflector"; # Define your hostname.
|
||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Australia/Sydney";
|
||||
|
@ -57,14 +58,13 @@ in
|
|||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.sunshine = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||
extraGroups = ["wheel"]; # Enable ‘sudo’ for the user.
|
||||
packages = with pkgs; [];
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDSQC8VgKLzoU5BSynJJuC8BFqAEN8JlSIzsZ2Vg9rfXHM7T4vbWtnxSCSbNw3CEnZCfrdDQTeRum7Uq+gvrcHWd9Aj+rVmubTdud70ybW7T7SlGv3b5TYBhMNbrAz0JIJjLnFMy3/pWids1v6mKW3i7k6Kbq8fSt7jva5Yg5x1jtkUUwvjSZjPg/E/Zl0hAcnx8fWe4foFTcYYsUbfEpp6bxdN2QuVmb17UKnLrMz6JTj88Jd2uYZkeKxGOwk+uwrd0WArY8JIiRi1NcPA3I42aAQfZKxCUY/xmVyRlF+l6K8caD4CZlysms9aXQzBhmPPDIY87AwyRlVK5JsRbaMEBMsffX2xk8DdV+2+9RbztgeXOoYk7WjJX1/+WcxY3RGn8QsUfrGALmrQTRGXgYRbtM/ZJq1m9aP6IvVQeKE1NOpKguXpmokB7JsyKPcWk/PCMVYyXM/qYspc6hRPJgGWiJsayj7myO6X5Ssl9uQnHpNNyrQNY+cx3/boBu2J1sM= bolt@quiver"
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
|
@ -73,23 +73,23 @@ in
|
|||
helix
|
||||
ripgrep
|
||||
fd
|
||||
curl
|
||||
|
||||
curl
|
||||
|
||||
cachix
|
||||
headscale
|
||||
|
||||
|
||||
comma
|
||||
|
||||
woodpecker-agent
|
||||
woodpecker-server
|
||||
|
||||
|
||||
# podman
|
||||
# podman-compose
|
||||
# shadow
|
||||
|
||||
|
||||
dufs
|
||||
];
|
||||
|
||||
|
||||
virtualisation = {
|
||||
docker.enable = true;
|
||||
# podman = {
|
||||
|
@ -98,13 +98,13 @@ in
|
|||
# defaultNetwork.dnsname.enable = true;
|
||||
# };
|
||||
};
|
||||
|
||||
|
||||
# services.resolved = {
|
||||
# enable = true;
|
||||
# fallbackDns = [ "103.1.206.179" "168.138.8.38" "168.138.12.137" ];
|
||||
# dnssec = "false";
|
||||
# };
|
||||
|
||||
|
||||
services.fail2ban.enable = true;
|
||||
|
||||
services.tailscale.enable = true;
|
||||
|
@ -113,14 +113,14 @@ in
|
|||
enable = true;
|
||||
serverUrl = "https://net.atagen.co";
|
||||
dns = {
|
||||
nameservers = [ "103.1.206.179" "168.138.8.38" "168.138.12.137" ];
|
||||
nameservers = ["103.1.206.179" "168.138.8.38" "168.138.12.137"];
|
||||
magicDns = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
extraOptions = {
|
||||
extraOptions = {
|
||||
gui = {
|
||||
insecureSkipHostcheck = true;
|
||||
};
|
||||
|
@ -140,35 +140,34 @@ in
|
|||
};
|
||||
rootUrl = "https://git.atagen.co";
|
||||
settings.service.DISABLE_REGISTRATION = true;
|
||||
settings.webhook.ALLOWED_HOST_LIST="external,loopback";
|
||||
settings.webhook.ALLOWED_HOST_LIST = "external,loopback";
|
||||
};
|
||||
|
||||
|
||||
|
||||
users.users.ci = {
|
||||
isSystemUser = true;
|
||||
createHome = true;
|
||||
group = "ci";
|
||||
extraGroups = [ "docker" "wheel" ];
|
||||
extraGroups = ["docker" "wheel"];
|
||||
};
|
||||
users.groups.ci = { };
|
||||
users.groups.ci = {};
|
||||
|
||||
users.users.ci-agent = {
|
||||
isSystemUser = true;
|
||||
createHome = true;
|
||||
group = "ci";
|
||||
extraGroups = [ "docker" "wheel" ];
|
||||
extraGroups = ["docker" "wheel"];
|
||||
};
|
||||
users.groups.ci = { };
|
||||
users.groups.ci = {};
|
||||
|
||||
users.users.dufs = {
|
||||
isSystemUser = true;
|
||||
createHome = true;
|
||||
group = "dufs";
|
||||
};
|
||||
users.groups.dufs = { };
|
||||
|
||||
users.groups.dufs = {};
|
||||
|
||||
systemd.services.woodpecker-server = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wantedBy = ["multi-user.target"];
|
||||
description = "woodpecker CI/CD server";
|
||||
serviceConfig = {
|
||||
Environment = [
|
||||
|
@ -190,9 +189,9 @@ in
|
|||
Group = "ci";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
systemd.services.woodpecker-agent = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wantedBy = ["multi-user.target"];
|
||||
description = "woodpecker CI/CD agent";
|
||||
serviceConfig = {
|
||||
Environment = [
|
||||
|
@ -204,7 +203,7 @@ in
|
|||
User = "ci-agent";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
# systemd.services.wekan-private = {
|
||||
# wantedBy = [ "multi-user.target" ];
|
||||
# after = [ "network.target" "docker.service" ];
|
||||
|
@ -219,9 +218,9 @@ in
|
|||
# };
|
||||
|
||||
systemd.services.wekan-rhizome = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" "docker.service" ];
|
||||
requires = [ "docker.service" ];
|
||||
wantedBy = ["multi-user.target"];
|
||||
after = ["network.target" "docker.service"];
|
||||
requires = ["docker.service"];
|
||||
description = "wekan kanban board for rhizomers";
|
||||
serviceConfig = {
|
||||
Restart = "always";
|
||||
|
@ -232,8 +231,8 @@ in
|
|||
};
|
||||
|
||||
systemd.services.dufs = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
wantedBy = ["multi-user.target"];
|
||||
after = ["network.target"];
|
||||
description = "dufs webdav server";
|
||||
serviceConfig = {
|
||||
User = "dufs";
|
||||
|
@ -258,14 +257,13 @@ in
|
|||
services.caddy = {
|
||||
enable = true;
|
||||
virtualHosts = {
|
||||
|
||||
"atagen.co" = {
|
||||
serverAliases = [ "www.atagen.co" ];
|
||||
serverAliases = ["www.atagen.co"];
|
||||
extraConfig = ''
|
||||
respond "i live.. again"
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
"iced-rs.info".extraConfig = ''
|
||||
reverse_proxy http://127.0.0.1:8765
|
||||
'';
|
||||
|
@ -285,15 +283,15 @@ in
|
|||
# "git.rhizome.tf".extraConfig = ''
|
||||
# reverse_proxy http://127.0.0.1:3033
|
||||
# '';
|
||||
|
||||
|
||||
"board.rhizome.tf".extraConfig = ''
|
||||
reverse_proxy http://127.0.0.1:7897
|
||||
'';
|
||||
|
||||
|
||||
"net.atagen.co".extraConfig = ''
|
||||
reverse_proxy http://127.0.0.1:8080
|
||||
'';
|
||||
|
||||
|
||||
"reflector.beam".extraConfig = ''
|
||||
tls /etc/selfsigned/cert.pem /etc/selfsigned/key.pem
|
||||
|
||||
|
@ -307,7 +305,6 @@ in
|
|||
reverse_proxy http://127.0.0.1:8083
|
||||
}
|
||||
'';
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -316,15 +313,15 @@ in
|
|||
enable = true;
|
||||
passwordAuthentication = false;
|
||||
kbdInteractiveAuthentication = false;
|
||||
permitRootLogin = "no";
|
||||
permitRootLogin = "no";
|
||||
};
|
||||
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
trustedInterfaces = [ "tailscale0" ];
|
||||
trustedInterfaces = ["tailscale0"];
|
||||
checkReversePath = "loose";
|
||||
allowedTCPPorts = [ 80 443 6660 ];
|
||||
allowedUDPPorts = [ 80 443 41641 6660 ];
|
||||
allowedTCPPorts = [80 443 6660];
|
||||
allowedUDPPorts = [80 443 41641 6660];
|
||||
};
|
||||
|
||||
# Copy the NixOS configuration file and link it from the resulting system
|
||||
|
@ -339,6 +336,4 @@ in
|
|||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "22.11"; # Did you read the comment?
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,16 @@
|
|||
|
||||
{ inputs, outputs, lib, config, pkgs, ... }:
|
||||
|
||||
# let
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
# let
|
||||
# lemurs = callPackage ./system/syspkgs/lemurs.nix {};
|
||||
# ly = callPackage ./system/syspkgs/ly.nix {};
|
||||
# in
|
||||
{
|
||||
|
||||
nixpkgs = {
|
||||
overlays = [
|
||||
outputs.overlays.additions
|
||||
|
@ -15,50 +19,49 @@
|
|||
};
|
||||
|
||||
nix = {
|
||||
registry = lib.mapAttrs(_: value: { flake = value; }) inputs;
|
||||
registry = lib.mapAttrs (_: value: {flake = value;}) inputs;
|
||||
settings = {
|
||||
experimental-features = "nix-command flakes";
|
||||
};
|
||||
};
|
||||
|
||||
# imports = [
|
||||
# inputs.declarative-cachix
|
||||
# inputs.helix
|
||||
# inputs.declarative-cachix
|
||||
# inputs.helix
|
||||
# ];
|
||||
|
||||
|
||||
# cachix = [
|
||||
# "nix-community"
|
||||
# ];
|
||||
|
||||
|
||||
nix.extraOptions = ''
|
||||
keep-outputs = true
|
||||
keep-derivations = true
|
||||
'';
|
||||
|
||||
|
||||
systemd.services.NetworkManager-wait-online.enable = true;
|
||||
|
||||
environment.pathsToLink = [ "/share/zsh" ];
|
||||
environment.pathsToLink = ["/share/zsh"];
|
||||
|
||||
boot.loader.systemd-boot.consoleMode = "max";
|
||||
boot.loader.timeout = 3;
|
||||
|
||||
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.tmpOnTmpfs = true;
|
||||
|
||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
|
||||
time.timeZone = "Australia/Sydney";
|
||||
time.hardwareClockInLocalTime = true;
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_AU.UTF-8";
|
||||
i18n.supportedLocales = [ "en_AU.UTF-8/UTF-8" ];
|
||||
i18n.supportedLocales = ["en_AU.UTF-8/UTF-8"];
|
||||
console = {
|
||||
font = "Lat2-Terminus16";
|
||||
useXkbConfig = true; # use xkbOptions in tty.
|
||||
font = "Lat2-Terminus16";
|
||||
useXkbConfig = true; # use xkbOptions in tty.
|
||||
};
|
||||
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
hardware.opengl.enable = true;
|
||||
hardware.opengl.driSupport32Bit = true;
|
||||
|
@ -88,10 +91,9 @@
|
|||
|
||||
services.resolved = {
|
||||
enable = true;
|
||||
fallbackDns = [ "103.1.206.179" "168.138.8.38" "168.138.12.137" ];
|
||||
fallbackDns = ["103.1.206.179" "168.138.8.38" "168.138.12.137"];
|
||||
dnssec = "false";
|
||||
};
|
||||
|
||||
|
||||
# Enable sound.
|
||||
security.rtkit.enable = true;
|
||||
|
@ -109,12 +111,10 @@
|
|||
|
||||
programs.zsh.enable = true;
|
||||
users.defaultUserShell = pkgs.zsh;
|
||||
|
||||
|
||||
services.tailscale.enable = true;
|
||||
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
||||
rnix-lsp
|
||||
|
||||
tailscale
|
||||
|
@ -124,9 +124,9 @@
|
|||
|
||||
# helix
|
||||
ark
|
||||
|
||||
|
||||
curl
|
||||
|
||||
|
||||
git
|
||||
|
||||
zsh
|
||||
|
@ -137,53 +137,49 @@
|
|||
cachix
|
||||
|
||||
alejandra
|
||||
|
||||
];
|
||||
|
||||
# services.mullvad-vpn.enable = true;
|
||||
|
||||
networking.wg-quick.interfaces = {
|
||||
mullvad = {
|
||||
address = [ "10.67.227.64/32" ];
|
||||
dns = [ "10.64.0.1" ];
|
||||
address = ["10.67.227.64/32"];
|
||||
dns = ["10.64.0.1"];
|
||||
privateKey = "OOPAlePjy7x2DVpg6d7BoBqpST3lDJSYght185tSUl8=";
|
||||
peers = [
|
||||
{
|
||||
publicKey = "LXuRwa9JRTt2/UtldklKGlj/IVLORITqgET4II4DRkU=";
|
||||
allowedIPs = [ "0.0.0.0/0" ];
|
||||
allowedIPs = ["0.0.0.0/0"];
|
||||
endpoint = "146.70.200.194:51820";
|
||||
persistentKeepalive = 25;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
networking.firewall.enable = true;
|
||||
networking.firewall = {
|
||||
trustedInterfaces = [ "tailscale0" ];
|
||||
trustedInterfaces = ["tailscale0"];
|
||||
checkReversePath = "loose";
|
||||
};
|
||||
|
||||
systemd.services.fixNetworkingForTailscale = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" "mullvad-daemon.service" ];
|
||||
wantedBy = ["multi-user.target"];
|
||||
after = ["network.target" "mullvad-daemon.service"];
|
||||
description = "fix the damn routing table";
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = "root";
|
||||
ExecStart = ''${pkgs.bash}/bin/bash -c 'if [[ "$( ${pkgs.iproute2}/bin/ip rule | grep -e "62:.*52" | wc -l)" -eq 0 ]]; then ${pkgs.iproute2}/bin/ip rule add pref 62 table 52; fi'''';
|
||||
# ExecStop = ''${pkgs.iproute2}/bin/ip rule del pref 62 table 52'';
|
||||
ExecStart = '' ${pkgs.bash}/bin/bash -c 'if [[ "$( ${pkgs.iproute2}/bin/ip rule | grep -e "62:.*52" | wc -l)" -eq 0 ]]; then ${pkgs.iproute2}/bin/ip rule add pref 62 table 52; fi'''';
|
||||
# ExecStop = ''${pkgs.iproute2}/bin/ip rule del pref 62 table 52'';
|
||||
};
|
||||
};
|
||||
|
||||
security.pam.services.waylock = {
|
||||
text =''
|
||||
text = ''
|
||||
auth include login
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
system.stateVersion = "23.05"; # Did you read the comment? # lol no
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{ inputs, ... }:
|
||||
{
|
||||
additions = final: _prev: import ./pkgs { pkgs = final; };
|
||||
unstable-pkgs = final: _prev: {
|
||||
unstable = import inputs.nixpkgs {
|
||||
system = final.system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
};
|
||||
{inputs, ...}: {
|
||||
additions = final: _prev: import ./pkgs {pkgs = final;};
|
||||
unstable-pkgs = final: _prev: {
|
||||
unstable = import inputs.nixpkgs {
|
||||
system = final.system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
# inputs: _: prev: {
|
||||
# system76-scheduler = prev.callPackage ./syspkgs/system76-scheduler.nix {};
|
||||
# }
|
||||
|
||||
|
|
|
@ -1,28 +1,34 @@
|
|||
{ inputs, outputs, config, lib, pkgs, overlays, modulesPath, ... }:
|
||||
|
||||
{
|
||||
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
overlays,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
nix.settings = {
|
||||
substituters = [ "https://hyprland.cachix.org" ];
|
||||
substituters = ["https://hyprland.cachix.org"];
|
||||
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
|
||||
};
|
||||
|
||||
imports = [
|
||||
./configuration.nix
|
||||
inputs.hyprland.nixosModules.default
|
||||
];
|
||||
imports = [
|
||||
./configuration.nix
|
||||
inputs.hyprland.nixosModules.default
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbcore" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" "i2c-dev" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usbcore" "sd_mod"];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = ["kvm-amd" "i2c-dev"];
|
||||
boot.extraModulePackages = [];
|
||||
boot.kernelParams = [
|
||||
"nvidia_drm.modeset=1"
|
||||
"mitigations=off"
|
||||
"acpi_enforce_resources=lax"
|
||||
"preempt=full"
|
||||
"quiet"
|
||||
"loglevel=3"
|
||||
"nvidia_drm.modeset=1"
|
||||
"mitigations=off"
|
||||
"acpi_enforce_resources=lax"
|
||||
"preempt=full"
|
||||
"quiet"
|
||||
"loglevel=3"
|
||||
"systemd.show_status=auto"
|
||||
"rd.udev.log_level=3"
|
||||
"vt.global_cursor_default=0"
|
||||
|
@ -33,8 +39,8 @@
|
|||
boot.loader.systemd-boot.configurationLimit = 5;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
# boot.plymouth.enable = true;
|
||||
|
||||
boot.supportedFilesystems = [ "ntfs" ];
|
||||
|
||||
boot.supportedFilesystems = ["ntfs"];
|
||||
|
||||
security.tpm2.enable = true;
|
||||
|
||||
|
@ -66,7 +72,7 @@
|
|||
settings = {
|
||||
notify_interval = 120;
|
||||
friendly_name = "PC";
|
||||
media_dir = [ "A,/data/Music/Slsk" ];
|
||||
media_dir = ["A,/data/Music/Slsk"];
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -79,14 +85,14 @@
|
|||
nvidiaPatches = true;
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
hardware.nvidia.modesetting.enable = true;
|
||||
hardware.nvidia.powerManagement.enable = true;
|
||||
programs.xwayland.enable = true;
|
||||
|
||||
|
||||
systemd.services.no-rgb = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wantedBy = ["multi-user.target"];
|
||||
description = "rgb led turn-off-er";
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
|
@ -95,7 +101,7 @@
|
|||
};
|
||||
|
||||
systemd.services."com.system76.Scheduler" = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wantedBy = ["multi-user.target"];
|
||||
description = "the system76 process scheduler";
|
||||
serviceConfig = {
|
||||
Type = "dbus";
|
||||
|
@ -121,8 +127,8 @@
|
|||
enable = true;
|
||||
motherboard = "amd";
|
||||
};
|
||||
|
||||
hardware.ckb-next.enable = true;
|
||||
|
||||
hardware.ckb-next.enable = true;
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
|
@ -141,42 +147,40 @@
|
|||
xdg-desktop-portal-gtk
|
||||
];
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs;
|
||||
[
|
||||
ckb-next
|
||||
openrgb
|
||||
wl-clipboard
|
||||
wl-clipboard-x11
|
||||
xclip
|
||||
# system76-scheduler
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
ckb-next
|
||||
openrgb
|
||||
wl-clipboard
|
||||
wl-clipboard-x11
|
||||
xclip
|
||||
# system76-scheduler
|
||||
];
|
||||
|
||||
networking.hostName = "quiver"; # Define your hostname.
|
||||
users.users.bolt = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||
extraGroups = ["wheel"]; # Enable ‘sudo’ for the user.
|
||||
};
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/d227445f-6120-4768-8e1b-011f097505c1";
|
||||
fsType = "ext4";
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/d227445f-6120-4768-8e1b-011f097505c1";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/6B75-AF9F";
|
||||
fsType = "vfat";
|
||||
};
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/6B75-AF9F";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
fileSystems."/data" = {
|
||||
device = "/dev/disk/by-uuid/39D4F78C658E8B56";
|
||||
fsType = "ntfs";
|
||||
options = [ "rw" "uid=1000" "gid=100" ];
|
||||
};
|
||||
|
||||
networking.firewall = {
|
||||
allowedUDPPorts = [ 1900 ];
|
||||
allowedTCPPorts = [ 8200 2234 ];
|
||||
options = ["rw" "uid=1000" "gid=100"];
|
||||
};
|
||||
|
||||
networking.firewall = {
|
||||
allowedUDPPorts = [1900];
|
||||
allowedTCPPorts = [8200 2234];
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue