lots of shit
This commit is contained in:
parent
b55175a527
commit
5d10961778
17 changed files with 475 additions and 256 deletions
49
flake.lock
generated
49
flake.lock
generated
|
|
@ -100,6 +100,24 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"catppuccin": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759572023,
|
||||
"narHash": "sha256-2fzYq/m2PXie5WZO5LhyiZrTIUdUFp1SCLZAwvPL5xo=",
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"rev": "eeada12912d80d04733383d231a9d66172858718",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
|
@ -455,7 +473,7 @@
|
|||
"hyprlang": "hyprlang",
|
||||
"hyprutils": "hyprutils",
|
||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"pre-commit-hooks": "pre-commit-hooks",
|
||||
"systems": "systems",
|
||||
"xdph": "xdph"
|
||||
|
|
@ -673,7 +691,7 @@
|
|||
"git-hooks": "git-hooks",
|
||||
"hercules-ci-effects": "hercules-ci-effects",
|
||||
"neovim-src": "neovim-src",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
|
|
@ -707,6 +725,22 @@
|
|||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1759381078,
|
||||
"narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1757487488,
|
||||
"narHash": "sha256-zwE/e7CuPJUWKdvvTCB7iunV4E/+G0lKfv4kk/5Izdg=",
|
||||
|
|
@ -722,7 +756,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1758029226,
|
||||
"narHash": "sha256-TjqVmbpoCqWywY9xIZLTf6ANFvDCXdctCjoYuYPYdMI=",
|
||||
|
|
@ -738,7 +772,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1758035966,
|
||||
"narHash": "sha256-qqIJ3yxPiB0ZQTT9//nFGQYn8X/PBoJbofA7hRKZnmE=",
|
||||
|
|
@ -754,7 +788,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1744536153,
|
||||
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
||||
|
|
@ -820,11 +854,12 @@
|
|||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"catppuccin": "catppuccin",
|
||||
"home-manager": "home-manager",
|
||||
"hyprland": "hyprland",
|
||||
"minimal-tmux": "minimal-tmux",
|
||||
"neovim-nightly-overlay": "neovim-nightly-overlay",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"sops-nix": "sops-nix",
|
||||
"stylix": "stylix",
|
||||
"typsite": "typsite"
|
||||
|
|
@ -832,7 +867,7 @@
|
|||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749004659,
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
catppuccin.url = "github:catppuccin/nix";
|
||||
|
||||
# Neovim
|
||||
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
|
||||
|
||||
|
|
@ -39,7 +41,7 @@
|
|||
home-manager,
|
||||
stylix,
|
||||
sops-nix,
|
||||
typsite,
|
||||
catppuccin,
|
||||
...
|
||||
}@inputs:
|
||||
let
|
||||
|
|
@ -81,6 +83,7 @@
|
|||
stylix.nixosModules.stylix
|
||||
home-manager.nixosModules.home-manager
|
||||
sops-nix.nixosModules.sops
|
||||
catppuccin.nixosModules.catppuccin
|
||||
];
|
||||
};
|
||||
archive = nixpkgs.lib.nixosSystem {
|
||||
|
|
|
|||
17
machines/test/hardware-configuration.nix
Normal file
17
machines/test/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
}
|
||||
|
|
@ -35,12 +35,26 @@
|
|||
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
users.users.root.openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDALsdpwvC0w/Aj+1fWtzJyyWoUrGkdh8o2thVHeQQBNo0D7cmVberYmi4Cv9gWGX6PaElrnOl0KRdGyro2wxOYokSxgk2VgWW67BFITAQAbKyG2NhXXPbhb4jccDo7WH7TtOG8IofuJTPRu1Duda6k4RN0I0CkyAN6LGX+zy49cq0qKf9ijXYhCDYNih3+Fu/ig0aW/SYmsVoUl2VFTWdI5x5/wLvIjTEZhmAtYIeYADaLnom356cFrUysZa++FUujQAz3Ow236BvP95XZdTsqvfWNZFNIpC9VYF72JeIDCs5wDIr0GFmanF2On1nar+jJpoOE8SdHt357p5g/PqXV5TisN2xQRkqVwO9tWtMl4sF84jA4ULnY2gQWv9jErMxymUQ1IwuPUzDDlbRHCtfexAtkBy7wv6xslKAzG1QahvF/btNs5Caj3LN31rgAuxyooCbKGKTeBP3kHPKcz1iupgidfbO/QqVXBRQJTEdGyAKa8hVmLQZZPC/XUhxESAk= fw@fw-nix"
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8ku8iCb7tXd/tfxYDW+Tj8K9kpfrYZciYUZ6tBpO80inm4EImtfyEeJTuqDWMKov2BftUKs8brNeTBCXUEvU1P0+cpOP9RtYA5tfBXf3su+iVSswJJStIxNboXHrEGKdJJRNsTv/9agshDSUBy6G5TI1cXhv/updornfA4fwOMqOmtlYEn6XCRnsrO6NBLc/uLckdbF75HOsoLvezRvuqTLjpapjaUKGVPrgNXiclIKHmuOx71kgD4FX3rSz9FgKjnfu3a7DBbrHsf/g+N9PjNF1muN9UOV6nK3WwiO9BMWi7NpAWfzJOeZg9chqzI+U6CcsqYVeESgL41so+dnv3 fw@laptop"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP34dnsZSnWdDvd+3BXDwcw7wP0PjPEx2eCdBQJyGD6O fw@laptop"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII60tdNsG0z9q2jHmoTKvkeLQE6OF0bmTsDX1bpqpoG7 fw@jobb"
|
||||
];
|
||||
|
||||
# Restic
|
||||
users.users.restic = {
|
||||
isNormalUser = true;
|
||||
createHome = true;
|
||||
home = "/home/restic";
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP34dnsZSnWdDvd+3BXDwcw7wP0PjPEx2eCdBQJyGD6O fw@laptop"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII60tdNsG0z9q2jHmoTKvkeLQE6OF0bmTsDX1bpqpoG7 fw@jobb"
|
||||
];
|
||||
};
|
||||
|
||||
# Where repos will live (you can choose a different path/disk)
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /srv/restic 0750 restic restic -"
|
||||
];
|
||||
|
||||
networking.firewall.allowedUDPPorts = [
|
||||
22000
|
||||
21027
|
||||
|
|
@ -49,6 +63,7 @@
|
|||
services = {
|
||||
openssh = {
|
||||
enable = true;
|
||||
allowSFTP = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
...
|
||||
}:
|
||||
let
|
||||
btusb = pkgs.callPackage ../../moduler/btusb.nix { inherit (config.boot.kernelPackages) kernel; };
|
||||
# btusb = pkgs.callPackage ../../moduler/btusb.nix { inherit (config.boot.kernelPackages) kernel; };
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
|
|
@ -34,7 +34,7 @@ in
|
|||
|
||||
stylix = {
|
||||
enable = true;
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-latte.yaml";
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
||||
};
|
||||
|
||||
programs.ssh.knownHosts = {
|
||||
|
|
@ -51,7 +51,16 @@ in
|
|||
home-manager.users.fw = {
|
||||
imports = [
|
||||
./../../moduler/home.nix
|
||||
./../../moduler/programs/waybar
|
||||
inputs.catppuccin.homeModules.catppuccin
|
||||
];
|
||||
catppuccin = {
|
||||
librewolf = {
|
||||
enable = true;
|
||||
flavor = "latte";
|
||||
accent = "peach";
|
||||
};
|
||||
};
|
||||
programs.ranger.enable = true;
|
||||
stylix.targets = {
|
||||
lazygit.enable = false;
|
||||
|
|
@ -64,11 +73,11 @@ in
|
|||
};
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.extraModulePackages = [
|
||||
(btusb.overrideAttrs (_: {
|
||||
patches = [ ../../moduler/btusb-add-mt7925.patch ];
|
||||
}))
|
||||
];
|
||||
# boot.extraModulePackages = [
|
||||
# (btusb.overrideAttrs (_: {
|
||||
# patches = [ ../../moduler/btusb-add-mt7925.patch ];
|
||||
# }))
|
||||
# ];
|
||||
|
||||
networking.hostName = myhostname;
|
||||
|
||||
|
|
|
|||
|
|
@ -8,24 +8,27 @@
|
|||
myhostname,
|
||||
...
|
||||
}:
|
||||
let
|
||||
modulesDirectory = ../../moduler;
|
||||
in
|
||||
{
|
||||
# You can import other NixOS modules here
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../moduler/base.nix
|
||||
../../moduler/users.nix
|
||||
../../moduler/kitchenowl.nix
|
||||
../../moduler/radicale.nix
|
||||
../../moduler/vaultwarden.nix
|
||||
../../moduler/signal.nix
|
||||
../../moduler/uptime-kuma.nix
|
||||
../../moduler/services/monitoring
|
||||
../../moduler/services/headscale
|
||||
../../moduler/services/mpd
|
||||
../../moduler/services/actual
|
||||
../../moduler/services/forgejo
|
||||
# ../../moduler/wastring.nix
|
||||
../../moduler/wedding.nix
|
||||
( modulesDirectory + /base.nix )
|
||||
( modulesDirectory + /users.nix )
|
||||
( modulesDirectory + /kitchenowl.nix )
|
||||
( modulesDirectory + /radicale.nix )
|
||||
( modulesDirectory + /vaultwarden.nix )
|
||||
( modulesDirectory + /signal.nix )
|
||||
( modulesDirectory + /uptime-kuma.nix )
|
||||
( modulesDirectory + /wedding.nix )
|
||||
|
||||
( modulesDirectory + /services/monitoring )
|
||||
( modulesDirectory + /services/headscale )
|
||||
( modulesDirectory + /services/mpd )
|
||||
( modulesDirectory + /services/actual )
|
||||
( modulesDirectory + /services/forgejo )
|
||||
];
|
||||
|
||||
sops.defaultSopsFile = ../../secrets/sops.yaml;
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ in
|
|||
# Nix
|
||||
devenv
|
||||
nixfmt-rfc-style
|
||||
opentofu
|
||||
|
||||
# Docker
|
||||
dive
|
||||
|
|
|
|||
|
|
@ -12,11 +12,9 @@ in
|
|||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
swww
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
swappy
|
||||
ydotool
|
||||
wl-clipboard
|
||||
hyprpolkitagent
|
||||
hyprland-qtutils
|
||||
waypipe
|
||||
|
|
@ -28,7 +26,7 @@ in
|
|||
enable = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd hyprland";
|
||||
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd hyprland";
|
||||
user = "greeter";
|
||||
};
|
||||
};
|
||||
|
|
@ -57,138 +55,6 @@ in
|
|||
enable = true;
|
||||
font = lib.mkForce "ComicShannsMono Nerd Font 18";
|
||||
};
|
||||
waybar = {
|
||||
enable = true;
|
||||
systemd = {
|
||||
enable = true;
|
||||
};
|
||||
settings = {
|
||||
mainBar = {
|
||||
modules-left = [
|
||||
"hyprland/workspaces"
|
||||
];
|
||||
modules-right = [
|
||||
"tray"
|
||||
"clock"
|
||||
];
|
||||
"custom/arrow1" = {
|
||||
format = "";
|
||||
|
||||
};
|
||||
tray = {
|
||||
format = "<span>{icon}</span>";
|
||||
"icon-size" = 14;
|
||||
spacing = 5;
|
||||
};
|
||||
|
||||
clock = {
|
||||
format = "<span> </span><span>{:%c}</span>";
|
||||
};
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
@define-color bg #eff1f5;
|
||||
@define-color fg #4c4f69;
|
||||
@define-color lbg #e6e9ef;
|
||||
@define-color yellow #df8e1d;
|
||||
@define-color lavender #7287fd;
|
||||
@define-color peach #fe640b;
|
||||
@define-color red #d20f39;
|
||||
@define-color green #40a02b;
|
||||
@define-color blue #1e66f5;
|
||||
@define-color border #dce0e8;
|
||||
|
||||
* {
|
||||
min-height: 0;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0;
|
||||
border-radius: 7px;
|
||||
font-family: "ComicShannsMono Nerd Font";
|
||||
font-size: 14pt;
|
||||
font-weight: 700;
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: @bg;
|
||||
border-radius: 7px;
|
||||
border: 2px solid @border;
|
||||
}
|
||||
|
||||
#window {
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding-left: 10px;
|
||||
padding-right: 7px;
|
||||
border-radius: 3px;
|
||||
border-color: @lbg;
|
||||
background-color: @yellow;
|
||||
color: @bg;
|
||||
}
|
||||
|
||||
window#waybar.empty #window {
|
||||
background-color: @bg;
|
||||
border-bottom: none;
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: @bg;
|
||||
color: @lavender;
|
||||
}
|
||||
|
||||
/* Workspaces */
|
||||
@keyframes button_activate {
|
||||
from { opacity: .3 }
|
||||
to { opacity: 1.; }
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
margin: 0px 0px 0px 0px;
|
||||
border-radius: 3px;
|
||||
padding: 1px;
|
||||
background-color: @bg;
|
||||
color: @bg;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
margin: 0px 0px 0px 0px;
|
||||
border-radius: 3px;
|
||||
padding-left: 3px;
|
||||
padding-right: 9px;
|
||||
background-color: @bg;
|
||||
color: @fg;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background-color:@blue;
|
||||
color: @bg;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
color: #F38BA8;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
border: solid transparent;
|
||||
}
|
||||
#tray {
|
||||
margin: 0px 0px 0px 0px;
|
||||
border-radius: 3px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
background-color: @bg;
|
||||
color: @fg;
|
||||
}
|
||||
#clock {
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
border-radius: 3px;
|
||||
color: @bg;
|
||||
background-color: @green;
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
services = {
|
||||
cliphist = {
|
||||
|
|
@ -244,7 +110,7 @@ in
|
|||
"$mod" = "ALT";
|
||||
|
||||
monitor = [
|
||||
"desc: ASUSTek COMPUTER INC ASUS PA279CV S4LMTF159462 (DP-1), 3840x2160@60, 0x0, 1.5"
|
||||
"desc: ASUSTek COMPUTER INC ASUS PA279CV S4LMTF159462 (DP-1), 3840x2160@60, 0x0, 1.5, transform, 1"
|
||||
"desc: ASUSTek COMPUTER INC VG279 JBLMQS021792 (DP-1), 1920x1080@144, 0x0, 1"
|
||||
"eDP-1, 1920x1080@60, 0x0, 1, transform, 2"
|
||||
",prefered,auto,1"
|
||||
|
|
@ -299,35 +165,31 @@ in
|
|||
};
|
||||
|
||||
animations = {
|
||||
enabled = false;
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"easeOutQuint,0.23,1,0.32,1"
|
||||
"easeInOutCubic,0.65,0.05,0.36,1"
|
||||
"linear,0,0,1,1"
|
||||
"md3_standard, 0.2, 0, 0, 1"
|
||||
"md3_decel, 0.05, 0.7, 0.1, 1"
|
||||
"md3_accel, 0.3, 0, 0.8, 0.15"
|
||||
"overshot, 0.05, 0.9, 0.1, 1.1"
|
||||
"crazyshot, 0.1, 1.5, 0.76, 0.92"
|
||||
"hyprnostretch, 0.05, 0.9, 0.1, 1.0"
|
||||
"menu_decel, 0.1, 1, 0, 1"
|
||||
"menu_accel, 0.38, 0.04, 1, 0.07"
|
||||
"easeInOutCirc, 0.85, 0, 0.15, 1"
|
||||
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||
"easeOutExpo, 0.16, 1, 0.3, 1"
|
||||
"softAcDecel, 0.26, 0.26, 0.15, 1"
|
||||
"md2, 0.4, 0, 0.2, 1"
|
||||
"almostLinear,0.5,0.5,0.75,1.0#fffff"
|
||||
"quick,0.15,0,0.1,1"
|
||||
];
|
||||
animation = [
|
||||
"windows, 1, 1.2, md3_decel, popin 60%"
|
||||
"windowsIn, 1, 1.2, md3_decel, popin 60%"
|
||||
"windowsOut, 1, 1.2, md3_accel, popin 60%"
|
||||
"border, 1, 2, default"
|
||||
"fade, 1, 1.2, md3_decel"
|
||||
"layersIn, 1, 1.2, menu_decel, slide"
|
||||
"layersOut, 1, 1.2, menu_accel"
|
||||
"fadeLayersIn, 1, 1.2, menu_decel"
|
||||
"fadeLayersOut, 1, 1.2, menu_accel"
|
||||
"workspaces, 1, 2, menu_decel, slide"
|
||||
"specialWorkspace, 1, 1.2, md3_decel, slidevert"
|
||||
"global, 1, 10, default"
|
||||
"border, 1, 5.39, easeOutQuint"
|
||||
"windows, 1, 4.79, easeOutQuint"
|
||||
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
|
||||
"windowsOut, 1, 1.49, linear, popin 87%"
|
||||
"fadeIn, 1, 1.73, almostLinear"
|
||||
"fadeOut, 1, 1.46, almostLinear"
|
||||
"fade, 1, 3.03, quick"
|
||||
"layers, 1, 3.81, easeOutQuint"
|
||||
"layersIn, 1, 4, easeOutQuint, fade"
|
||||
"layersOut, 1, 1.5, linear, fade"
|
||||
"fadeLayersIn, 1, 1.79, almostLinear"
|
||||
"fadeLayersOut, 1, 1.39, almostLinear"
|
||||
"workspaces, 1, 1.94, almostLinear, fade"
|
||||
"workspacesIn, 1, 1.21, almostLinear, fade"
|
||||
"workspacesOut, 1, 1.94, almostLinear, fade"
|
||||
];
|
||||
};
|
||||
|
||||
|
|
@ -405,8 +267,7 @@ in
|
|||
"$mod, d, exec, ${pkgs.rofi}/bin/rofi -show drun -p 'Run: '"
|
||||
|
||||
# Screencapture
|
||||
"$mod, S, exec, ${pkgs.grim}/bin/grim | wl-copy"
|
||||
"$mod SHIFT+ALT, S, exec, ${pkgs.grim}/bin/grim -g \"$(slurp)\" ~/$(date +%Y-%m-%d-%H%M%S).png"
|
||||
"$mod SHIFT, s, exec, ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" - | ${pkgs.wl-clipboard}/bin/wl-copy -t image/png"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
programs.kitty = {
|
||||
enable = true;
|
||||
font = {
|
||||
name = "ComicShannsMono Nerd Font";
|
||||
# name = "ComicShannsMono Nerd Font";
|
||||
name = "FiraCode Nerd Font Mono";
|
||||
size = 14;
|
||||
};
|
||||
shellIntegration = {
|
||||
|
|
|
|||
|
|
@ -28,5 +28,6 @@
|
|||
lua-language-server
|
||||
marksman
|
||||
typstfmt
|
||||
tofu-ls
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,9 +4,11 @@
|
|||
inputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs, myhostname,
|
||||
pkgs,
|
||||
myhostname,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
services.udev = {
|
||||
extraRules = ''
|
||||
KERNEL=="ttyACM0", MODE:="666"
|
||||
|
|
@ -19,6 +21,7 @@
|
|||
];
|
||||
};
|
||||
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# GUI
|
||||
feishin
|
||||
|
|
@ -38,6 +41,7 @@
|
|||
|
||||
# TUI
|
||||
mpc
|
||||
codex
|
||||
|
||||
# Browsers
|
||||
librewolf
|
||||
|
|
|
|||
25
moduler/programs/waybar/default.nix
Normal file
25
moduler/programs/waybar/default.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
in
|
||||
{
|
||||
programs = {
|
||||
waybar = {
|
||||
enable = true;
|
||||
systemd = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
xdg.configFile."waybar/config.jsonc".source = ./waybar.jsonc;
|
||||
xdg.configFile."waybar/style.css".source = ./waybar.css;
|
||||
# catppuccin.waybar = {
|
||||
# enable = true;
|
||||
# flavor = "latte";
|
||||
# };
|
||||
}
|
||||
107
moduler/programs/waybar/waybar.css
Normal file
107
moduler/programs/waybar/waybar.css
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
* {
|
||||
/* `otf-font-awesome` is required to be installed for icons */
|
||||
font-family: FiraCode Nerd Font Bold, sans-serif;
|
||||
font-size: 16px;
|
||||
color: #4C4F69; /* Default text color */
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: #EFF1F5; /* Catppuccin Base */
|
||||
border-bottom: 3px solid #B2BCC8; /* Catppuccin Crust */
|
||||
color: #4C4F69; /* Default text color */
|
||||
transition-property: background-color;
|
||||
transition-duration: 0.5s;
|
||||
}
|
||||
|
||||
window#waybar.hidden {
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
window#waybar.termite {
|
||||
background-color: #D7DBE6; /* Catppuccin Mantle */
|
||||
}
|
||||
|
||||
window#waybar.chromium {
|
||||
background-color: #B2BCC8; /* Catppuccin Crust */
|
||||
border: none;
|
||||
}
|
||||
|
||||
button {
|
||||
/* Use box-shadow instead of border so the text isn't offset */
|
||||
box-shadow: inset 0 -3px transparent;
|
||||
/* Avoid rounded borders under each button name */
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
color: #4C4F69; /* Default text color */
|
||||
transition: background-color 0.3s ease, box-shadow 0.3s ease;
|
||||
}
|
||||
|
||||
/* Hover effect for buttons */
|
||||
button:hover {
|
||||
background: inherit;
|
||||
box-shadow: inset 0 -3px #F9E2AF; /* Catppuccin Yellow for hover effect */
|
||||
}
|
||||
|
||||
/* Workspace button styles */
|
||||
#workspaces button {
|
||||
padding: 0 5px;
|
||||
background-color: transparent;
|
||||
color: #4C4F69; /* Default text color */
|
||||
transition: background-color 0.3s ease, box-shadow 0.3s ease;
|
||||
}
|
||||
|
||||
/* Hover effect for workspace buttons */
|
||||
#workspaces button:hover {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
/* Focused or active workspace styles */
|
||||
#workspaces button.focused, #workspaces button.active {
|
||||
background-color: #A6E3A1; /* Catppuccin Green for active workspace */
|
||||
box-shadow: inset 0 -3px #76C7E3; /* Catppuccin Sky for focus highlight */
|
||||
color: #4C4F69; /* Default text color */
|
||||
}
|
||||
|
||||
/* Urgent workspace styles */
|
||||
#workspaces button.urgent {
|
||||
background-color: #F28A8C; /* Catppuccin Rose for urgent workspace */
|
||||
}
|
||||
|
||||
/* Mode (e.g., dark/light mode indicator) */
|
||||
#mode {
|
||||
background-color: #A6E3A1; /* Catppuccin Green */
|
||||
box-shadow: inset 0 -3px #F9E2AF; /* Catppuccin Yellow for highlight */
|
||||
}
|
||||
|
||||
/* Spacing for workspaces and other modules */
|
||||
#clock,
|
||||
#window,
|
||||
#workspaces {
|
||||
margin: 0 4px;
|
||||
}
|
||||
|
||||
/* If workspaces is the leftmost module, omit left margin */
|
||||
.modules-left > widget:first-child > #workspaces {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
/* If workspaces is the rightmost module, omit right margin */
|
||||
.modules-right > widget:last-child > #workspaces {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
#clock {
|
||||
background-color: #F9E2AF; /* Catppuccin Yellow for clock */
|
||||
color: #4C4F69; /* Default text color */
|
||||
font-family: FiraCode Nerd Font Bold, sans-serif;
|
||||
font-size: 16px;
|
||||
color: #4C4F69; /* Default text color */
|
||||
}
|
||||
|
||||
/* Keyframes for blinking effect (e.g., battery critical) */
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: #F9E2AF; /* Catppuccin Yellow */
|
||||
color: #4C4F69; /* Default text color */
|
||||
}
|
||||
}
|
||||
4
moduler/programs/waybar/waybar.jsonc
Normal file
4
moduler/programs/waybar/waybar.jsonc
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"modules-left": ["hyprland/workspaces"],
|
||||
"modules-right": ["clock"]
|
||||
}
|
||||
79
moduler/services/adguardhome/default.nix
Normal file
79
moduler/services/adguardhome/default.nix
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.adguardhome;
|
||||
in
|
||||
with lib;
|
||||
{
|
||||
options = {
|
||||
adguardhome = {
|
||||
enable = mkEnableOption "enables AdGuardHome";
|
||||
port = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 3000;
|
||||
description = "The port that AdGuardHome is served on.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkMerge [
|
||||
(mkIf cfg.enable {
|
||||
networking.firewall.allowedTCPPorts = [ 53 cfg.port ];
|
||||
networking.firewall.allowedUDPPorts = [ 53 ];
|
||||
services.adguardhome = {
|
||||
enable = true;
|
||||
settings = {
|
||||
http = {
|
||||
# You can select any ip and port, just make sure to open firewalls where needed
|
||||
address = "0.0.0.0:${cfg.port toString}";
|
||||
};
|
||||
dns = {
|
||||
upstream_dns = [
|
||||
# Example config with quad9
|
||||
"9.9.9.9#dns.quad9.net"
|
||||
"149.112.112.112#dns.quad9.net"
|
||||
# Uncomment the following to use a local DNS service (e.g. Unbound)
|
||||
# Additionally replace the address & port as needed
|
||||
# "127.0.0.1:5335"
|
||||
];
|
||||
rewrites = [
|
||||
{
|
||||
domain = "macmini.local";
|
||||
answer = "192.168.1.100";
|
||||
}
|
||||
{
|
||||
domain = "centre.local";
|
||||
answer = "192.168.1.227";
|
||||
}
|
||||
];
|
||||
};
|
||||
filtering = {
|
||||
protection_enabled = true;
|
||||
filtering_enabled = true;
|
||||
|
||||
parental_enabled = false; # Parental control-based DNS requests filtering.
|
||||
safe_search = {
|
||||
enabled = false; # Enforcing "Safe search" option for search engines, when possible.
|
||||
};
|
||||
};
|
||||
# The following notation uses map
|
||||
# to not have to manually create {enabled = true; url = "";} for every filter
|
||||
# This is, however, fully optional
|
||||
# filters =
|
||||
# map
|
||||
# (url: {
|
||||
# enabled = true;
|
||||
# url = url;
|
||||
# })
|
||||
# [
|
||||
# "https://adguardteam.github.io/HostlistsRegistry/assets/filter_9.txt" # The Big List of Hacked Malware Web Sites
|
||||
# "https://adguardteam.github.io/HostlistsRegistry/assets/filter_11.txt" # malicious url blocklist
|
||||
# ];
|
||||
};
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
||||
54
moduler/services/github-runners/default.nix
Normal file
54
moduler/services/github-runners/default.nix
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
{
|
||||
options = {
|
||||
mpd = {
|
||||
enable = mkEnableOption "enables MPD";
|
||||
port = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 6600;
|
||||
description = "The port that MPD is served on.";
|
||||
};
|
||||
httpPort = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 8006;
|
||||
description = "The port that MPD is served on.";
|
||||
};
|
||||
musicDir = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "/home/fw/Music";
|
||||
description = "the path to the Music";
|
||||
};
|
||||
};
|
||||
};
|
||||
config = mkMerge [
|
||||
(mkIf config.mpd.enable {
|
||||
services.mpd = {
|
||||
enable = true;
|
||||
user = "fw";
|
||||
group = "users";
|
||||
network = {
|
||||
port = config.mpd.port;
|
||||
listenAddress = "any";
|
||||
};
|
||||
musicDirectory = config.mpd.musicDir;
|
||||
extraConfig = ''
|
||||
audio_output {
|
||||
type "httpd"
|
||||
name "My HTTP Stream"
|
||||
encoder "vorbis" # or "mp3" if you have lame installed
|
||||
port "${toString config.mpd.httpPort}" # default HTTP port
|
||||
bind_to_address "0.0.0.0" # listen on all network interfaces
|
||||
quality "5.0" # Ogg Vorbis quality
|
||||
}
|
||||
'';
|
||||
};
|
||||
})
|
||||
];
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue