Reformat all using alejandra
This commit is contained in:
parent
6ed7892356
commit
09df446bd7
109
flake.nix
109
flake.nix
|
@ -13,34 +13,50 @@
|
|||
};
|
||||
};
|
||||
|
||||
outputs = { nixpkgs, home-manager, stylix, ... }:
|
||||
let
|
||||
outputs = {
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
stylix,
|
||||
...
|
||||
}: let
|
||||
default = {
|
||||
hostName = "Atlas";
|
||||
user = "xenia";
|
||||
system = "x86_64-linux";
|
||||
group = "users";
|
||||
shell = "fish";
|
||||
systemModules = [ ./system/hyprland.nix ];
|
||||
serviceModules = [ ];
|
||||
homeModules = [ ./home/hyprland/default.nix ];
|
||||
systemModules = [./system/hyprland.nix];
|
||||
serviceModules = [];
|
||||
homeModules = [./home/hyprland/default.nix];
|
||||
stateVersion = "23.05";
|
||||
};
|
||||
systemConfig = { hostName ? default.hostName, user ? default.user
|
||||
, system ? default.system, group ? default.group, shell ? default.shell
|
||||
, systemModules ? default.systemModules
|
||||
, serviceModules ? default.serviceModules
|
||||
, homeModules ? default.homeModules, stateVersion ? default.stateVersion
|
||||
}:
|
||||
let specialArgs = { inherit hostName user; };
|
||||
in nixpkgs.lib.nixosSystem {
|
||||
systemConfig = {
|
||||
hostName ? default.hostName,
|
||||
user ? default.user,
|
||||
system ? default.system,
|
||||
group ? default.group,
|
||||
shell ? default.shell,
|
||||
systemModules ? default.systemModules,
|
||||
serviceModules ? default.serviceModules,
|
||||
homeModules ? default.homeModules,
|
||||
stateVersion ? default.stateVersion,
|
||||
}: let
|
||||
specialArgs = {inherit hostName user;};
|
||||
in
|
||||
nixpkgs.lib.nixosSystem {
|
||||
inherit system specialArgs;
|
||||
modules = [
|
||||
modules =
|
||||
[
|
||||
./hosts/${hostName}/configuration.nix
|
||||
./hosts/${hostName}/hardware-configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
stylix.nixosModules.stylix
|
||||
({ config, lib, pkgs, ... }: {
|
||||
({
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
boot.loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi.canTouchEfiVariables = true;
|
||||
|
@ -61,8 +77,8 @@
|
|||
nix = {
|
||||
enable = true;
|
||||
settings = {
|
||||
trusted-users = [ "root" user ];
|
||||
experimental-features = [ "nix-command" "flakes" ];
|
||||
trusted-users = ["root" user];
|
||||
experimental-features = ["nix-command" "flakes"];
|
||||
auto-optimise-store = true;
|
||||
};
|
||||
channel.enable = true;
|
||||
|
@ -108,7 +124,7 @@
|
|||
"steam-run"
|
||||
"nomachine-client"
|
||||
];
|
||||
system = { inherit stateVersion; };
|
||||
system = {inherit stateVersion;};
|
||||
networking = {
|
||||
inherit hostName;
|
||||
firewall.enable = true;
|
||||
|
@ -121,11 +137,9 @@
|
|||
fish.enable = true;
|
||||
};
|
||||
image = ./wallpapers/space.png;
|
||||
base16Scheme =
|
||||
"${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
||||
override = {
|
||||
scheme =
|
||||
"Catppuccin Mocha, using fg and bg colours from emacs modus-vivdendi-tinted";
|
||||
scheme = "Catppuccin Mocha, using fg and bg colours from emacs modus-vivdendi-tinted";
|
||||
base00 = "0d0e1c";
|
||||
base01 = "1d2235";
|
||||
base04 = "c6daff";
|
||||
|
@ -148,7 +162,7 @@
|
|||
monospace = {
|
||||
name = "Iosevka Nerd Font";
|
||||
package =
|
||||
(pkgs.nerdfonts.override { fonts = [ "Iosevka" ]; });
|
||||
pkgs.nerdfonts.override {fonts = ["Iosevka"];};
|
||||
};
|
||||
emoji = {
|
||||
name = "Noto Color Emoji";
|
||||
|
@ -159,7 +173,7 @@
|
|||
};
|
||||
fonts = {
|
||||
packages = with pkgs; [
|
||||
(nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; })
|
||||
(nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];})
|
||||
emacs-all-the-icons-fonts
|
||||
weather-icons
|
||||
noto-fonts
|
||||
|
@ -176,26 +190,24 @@
|
|||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ/ZSSCN5sqrA+tdoIZr5EUm5DRuBV4dQ7J+QBEtUwUU xenia@Northstar"
|
||||
];
|
||||
in {
|
||||
root.openssh = { inherit authorizedKeys; };
|
||||
root.openssh = {inherit authorizedKeys;};
|
||||
${user} = {
|
||||
inherit group;
|
||||
isNormalUser = true;
|
||||
description = "Evie Litherland-Smith";
|
||||
extraGroups =
|
||||
[ "networkmanager" "wheel" "video" "input" "uinput" ];
|
||||
extraGroups = ["networkmanager" "wheel" "video" "input" "uinput"];
|
||||
shell = pkgs.${shell};
|
||||
initialHashedPassword =
|
||||
"$y$j9T$tHIPQt09Kf3KH2eIRze3g/$2mwSlcq27DTGvHNPJ5EP9/1CfL3bXP0F6oS/Vuffmn3";
|
||||
openssh = { inherit authorizedKeys; };
|
||||
initialHashedPassword = "$y$j9T$tHIPQt09Kf3KH2eIRze3g/$2mwSlcq27DTGvHNPJ5EP9/1CfL3bXP0F6oS/Vuffmn3";
|
||||
openssh = {inherit authorizedKeys;};
|
||||
};
|
||||
};
|
||||
home-manager = {
|
||||
extraSpecialArgs = { inherit hostName; };
|
||||
extraSpecialArgs = {inherit hostName;};
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
users = {
|
||||
root = {
|
||||
imports = [ ./home/default.nix ];
|
||||
imports = [./home/default.nix];
|
||||
home = {
|
||||
inherit stateVersion;
|
||||
username = "root";
|
||||
|
@ -208,9 +220,9 @@
|
|||
homeDirectory = "/home/${user}";
|
||||
in {
|
||||
imports =
|
||||
[ ./hosts/${hostName}/home.nix ./home/default.nix ]
|
||||
[./hosts/${hostName}/home.nix ./home/default.nix]
|
||||
++ homeModules;
|
||||
home = { inherit username homeDirectory stateVersion; };
|
||||
home = {inherit username homeDirectory stateVersion;};
|
||||
programs.home-manager.enable = true;
|
||||
xdg.userDirs = {
|
||||
enable = true;
|
||||
|
@ -223,20 +235,22 @@
|
|||
};
|
||||
};
|
||||
})
|
||||
] ++ systemModules ++ serviceModules;
|
||||
]
|
||||
++ systemModules
|
||||
++ serviceModules;
|
||||
};
|
||||
in {
|
||||
nixosConfigurations = {
|
||||
|
||||
## Server
|
||||
|
||||
Legion = let
|
||||
hostName = "Legion";
|
||||
user = "xenia";
|
||||
system = "x86_64-linux";
|
||||
in systemConfig {
|
||||
in
|
||||
systemConfig {
|
||||
inherit hostName user system;
|
||||
systemModules = [ ./system/default.nix ];
|
||||
systemModules = [./system/default.nix];
|
||||
serviceModules = [
|
||||
./services/adguardhome.nix
|
||||
./services/caddy.nix
|
||||
|
@ -246,7 +260,7 @@
|
|||
./services/sshd.nix
|
||||
./services/syncthing.nix
|
||||
];
|
||||
homeModules = [ ./home/default.nix ];
|
||||
homeModules = [./home/default.nix];
|
||||
};
|
||||
|
||||
## Personal
|
||||
|
@ -255,18 +269,20 @@
|
|||
hostName = "Northstar";
|
||||
user = "xenia";
|
||||
system = "x86_64-linux";
|
||||
in systemConfig {
|
||||
in
|
||||
systemConfig {
|
||||
inherit hostName user system;
|
||||
systemModules = default.systemModules ++ [ ./system/games.nix ];
|
||||
systemModules = default.systemModules ++ [./system/games.nix];
|
||||
};
|
||||
|
||||
Vanguard = let
|
||||
hostName = "Vanguard";
|
||||
user = "xenia";
|
||||
system = "x86_64-linux";
|
||||
in systemConfig {
|
||||
in
|
||||
systemConfig {
|
||||
inherit hostName user system;
|
||||
systemModules = default.systemModules ++ [ ./system/games.nix ];
|
||||
systemModules = default.systemModules ++ [./system/games.nix];
|
||||
};
|
||||
|
||||
## Work
|
||||
|
@ -275,14 +291,15 @@
|
|||
hostName = "Ronin";
|
||||
user = "elitherl";
|
||||
system = "x86_64-linux";
|
||||
in systemConfig { inherit hostName user system; };
|
||||
in
|
||||
systemConfig {inherit hostName user system;};
|
||||
|
||||
Scorch = let
|
||||
hostName = "Scorch";
|
||||
user = "elitherl";
|
||||
system = "x86_64-linux";
|
||||
in systemConfig { inherit hostName user system; };
|
||||
|
||||
in
|
||||
systemConfig {inherit hostName user system;};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1 +1 @@
|
|||
{ ... }: { imports = [ ./pass.nix ./email.nix ]; }
|
||||
{...}: {imports = [./pass.nix ./email.nix];}
|
||||
|
|
|
@ -1,8 +1,15 @@
|
|||
{ config, lib, pkgs, hostName, ... }: {
|
||||
home.packages = with pkgs; [ davmail ];
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
hostName,
|
||||
...
|
||||
}: {
|
||||
home.packages = with pkgs; [davmail];
|
||||
accounts.email = {
|
||||
maildirBasePath = "Mail";
|
||||
accounts = let realName = "Evie Litherland-Smith";
|
||||
accounts = let
|
||||
realName = "Evie Litherland-Smith";
|
||||
in {
|
||||
proton = let
|
||||
host = "127.0.0.1";
|
||||
|
@ -21,17 +28,15 @@
|
|||
port = 1025;
|
||||
};
|
||||
address = "e.litherlandsmith@proton.me";
|
||||
aliases = [ "evie@xenia.me.uk" "evie@litherlandsmith.slmail.me" ];
|
||||
aliases = ["evie@xenia.me.uk" "evie@litherlandsmith.slmail.me"];
|
||||
userName = address;
|
||||
passwordCommand =
|
||||
"${pkgs.pass}/bin/pass show mbsync/${hostName}/proton | head -n1";
|
||||
passwordCommand = "${pkgs.pass}/bin/pass show mbsync/${hostName}/proton | head -n1";
|
||||
mbsync = {
|
||||
enable = lib.mkDefault accountEnabled;
|
||||
create = "both";
|
||||
expunge = "both";
|
||||
remove = "both";
|
||||
patterns =
|
||||
[ "*" "!All Mail" "!Labels*" "!Starred" "!Recovered Messages" ];
|
||||
patterns = ["*" "!All Mail" "!Labels*" "!Starred" "!Recovered Messages"];
|
||||
subFolders = "Verbatim";
|
||||
extraConfig.account.AuthMechs = "LOGIN";
|
||||
};
|
||||
|
@ -44,7 +49,8 @@
|
|||
};
|
||||
mu.enable = lib.mkDefault accountEnabled;
|
||||
};
|
||||
icloud = let accountEnabled = true;
|
||||
icloud = let
|
||||
accountEnabled = true;
|
||||
in rec {
|
||||
inherit realName;
|
||||
primary = lib.mkDefault false;
|
||||
|
@ -53,14 +59,13 @@
|
|||
smtp.host = "smtp.mail.me.com";
|
||||
address = "e.litherlandsmith@icloud.com";
|
||||
userName = address;
|
||||
passwordCommand =
|
||||
"${pkgs.pass}/bin/pass show mbsync/${hostName}/icloud | head -n1";
|
||||
passwordCommand = "${pkgs.pass}/bin/pass show mbsync/${hostName}/icloud | head -n1";
|
||||
mbsync = {
|
||||
enable = lib.mkDefault accountEnabled;
|
||||
create = "both";
|
||||
expunge = "both";
|
||||
remove = "both";
|
||||
patterns = [ "*" "!Notes" ];
|
||||
patterns = ["*" "!Notes"];
|
||||
subFolders = "Verbatim";
|
||||
};
|
||||
msmtp.enable = lib.mkDefault accountEnabled;
|
||||
|
@ -83,10 +88,9 @@
|
|||
port = 1026;
|
||||
};
|
||||
address = "evie.litherland-smith@ukaea.uk";
|
||||
aliases = [ "elitherl@jet.uk" ];
|
||||
aliases = ["elitherl@jet.uk"];
|
||||
userName = address;
|
||||
passwordCommand =
|
||||
"${pkgs.pass}/bin/pass show mbsync/${hostName}/outlook | head -n1";
|
||||
passwordCommand = "${pkgs.pass}/bin/pass show mbsync/${hostName}/outlook | head -n1";
|
||||
mbsync = {
|
||||
enable = lib.mkDefault accountEnabled;
|
||||
create = "both";
|
||||
|
@ -120,25 +124,25 @@
|
|||
mbsync = {
|
||||
enable = true;
|
||||
groups.inboxes = {
|
||||
proton = [ "INBOX" ];
|
||||
icloud = [ "INBOX" ];
|
||||
outlook = [ "INBOX" ];
|
||||
proton = ["INBOX"];
|
||||
icloud = ["INBOX"];
|
||||
outlook = ["INBOX"];
|
||||
};
|
||||
};
|
||||
};
|
||||
systemd.user.services = let emailAccounts = config.accounts.email.accounts;
|
||||
systemd.user.services = let
|
||||
emailAccounts = config.accounts.email.accounts;
|
||||
in {
|
||||
protonmail-bridge = lib.mkIf emailAccounts.proton.mbsync.enable {
|
||||
Unit = {
|
||||
Description = "Podman container-protonmail-bridge.service";
|
||||
Documentation = [ "man:podman-generate-systemd(1)" ];
|
||||
Wants = [ "network-online.target" ];
|
||||
After = [ "network-online.target" ];
|
||||
Documentation = ["man:podman-generate-systemd(1)"];
|
||||
Wants = ["network-online.target"];
|
||||
After = ["network-online.target"];
|
||||
RequiresMountsFor = "%t/containers";
|
||||
};
|
||||
Service = {
|
||||
Environment =
|
||||
[ "PODMAN_SYSTEMD_UNIT=%n" "PATH=/run/wrappers/bin/:$PATH" ];
|
||||
Environment = ["PODMAN_SYSTEMD_UNIT=%n" "PATH=/run/wrappers/bin/:$PATH"];
|
||||
Restart = "always";
|
||||
TimeoutStopSec = 70;
|
||||
ExecStart = ''
|
||||
|
@ -165,26 +169,23 @@
|
|||
Type = "notify";
|
||||
NotifyAccess = "all";
|
||||
};
|
||||
Install.WantedBy = [ "default.target" ];
|
||||
Install.WantedBy = ["default.target"];
|
||||
};
|
||||
davmail = lib.mkIf emailAccounts.outlook.mbsync.enable {
|
||||
Unit = {
|
||||
Description = "Davmail server";
|
||||
Wants = [ "network-online.target" ];
|
||||
After = [ "network-online.target" ];
|
||||
Wants = ["network-online.target"];
|
||||
After = ["network-online.target"];
|
||||
};
|
||||
Service = {
|
||||
Environment = [ "PATH=/run/current-system/sw/bin/:$PATH" ];
|
||||
Environment = ["PATH=/run/current-system/sw/bin/:$PATH"];
|
||||
Restart = "always";
|
||||
ExecStartPre = with config.home; ''
|
||||
/bin/sh -c "if [ ! -f ${homeDirectory}/.davmail.properties ]; then cp ${
|
||||
./.davmail.properties
|
||||
} ${homeDirectory}/.davmail.properties; fi; chmod 644 ${homeDirectory}/.davmail.properties"
|
||||
/bin/sh -c "if [ ! -f ${homeDirectory}/.davmail.properties ]; then cp ${./.davmail.properties} ${homeDirectory}/.davmail.properties; fi; chmod 644 ${homeDirectory}/.davmail.properties"
|
||||
'';
|
||||
ExecStart =
|
||||
"${pkgs.davmail}/bin/davmail -notray ${config.home.homeDirectory}/.davmail.properties";
|
||||
ExecStart = "${pkgs.davmail}/bin/davmail -notray ${config.home.homeDirectory}/.davmail.properties";
|
||||
};
|
||||
Install.WantedBy = [ "default.target" ];
|
||||
Install.WantedBy = ["default.target"];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
{ config, lib, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
xdg.configFile."pass-git-helper/git-pass-mapping.ini".source =
|
||||
./git-pass-mapping.ini;
|
||||
programs = {
|
||||
gpg.enable = true;
|
||||
password-store = {
|
||||
enable = true;
|
||||
package = pkgs.pass-nodmenu.withExtensions
|
||||
(exts: with exts; [ pass-otp pass-update pass-audit pass-import ]);
|
||||
package =
|
||||
pkgs.pass-nodmenu.withExtensions
|
||||
(exts: with exts; [pass-otp pass-update pass-audit pass-import]);
|
||||
settings = {
|
||||
PASSWORD_STORE_DIR = "${config.home.homeDirectory}/.password-store";
|
||||
PASSWORD_STORE_ENABLE_EXTENSIONS = "true";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ ... }: {
|
||||
{...}: {
|
||||
# TODO: ipython config file
|
||||
xdg.configFile = {
|
||||
"bat/themes/Catppuccin-mocha.tmTheme".source = ./Catppuccin-mocha.tmTheme;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ lib, ... }: {
|
||||
imports = [ ./config/default.nix ./scripts/default.nix ];
|
||||
{lib, ...}: {
|
||||
imports = [./config/default.nix ./scripts/default.nix];
|
||||
stylix.targets = {
|
||||
avizo.enable = true;
|
||||
firefox.enable = true;
|
||||
|
@ -22,8 +22,7 @@
|
|||
table_header_color = "#f5e0dc";
|
||||
all_cpu_color = "#f5e0dc";
|
||||
avg_cpu_color = "#eba0ac";
|
||||
cpu_core_colors =
|
||||
[ "#f38ba8" "#fab387" "#f9e2af" "#a6e3a1" "#74c7ec" "#cba6f7" ];
|
||||
cpu_core_colors = ["#f38ba8" "#fab387" "#f9e2af" "#a6e3a1" "#74c7ec" "#cba6f7"];
|
||||
ram_color = "#a6e3a1";
|
||||
swap_color = "#fab387";
|
||||
rx_color = "#a6e3a1";
|
||||
|
@ -39,8 +38,7 @@
|
|||
high_battery_color = "#a6e3a1";
|
||||
medium_battery_color = "#f9e2af";
|
||||
low_battery_color = "#f38ba8";
|
||||
gpu_core_colors =
|
||||
[ "#74c7ec" "#cba6f7" "#f38ba8" "#fab387" "#f9e2af" "#a6e3a1" ];
|
||||
gpu_core_colors = ["#74c7ec" "#cba6f7" "#f38ba8" "#fab387" "#f9e2af" "#a6e3a1"];
|
||||
arc_color = "#89dceb";
|
||||
};
|
||||
};
|
||||
|
@ -49,7 +47,7 @@
|
|||
git = true;
|
||||
icons = true;
|
||||
enableAliases = true;
|
||||
extraOptions = [ "--octal-permissions" ];
|
||||
extraOptions = ["--octal-permissions"];
|
||||
};
|
||||
readline = {
|
||||
enable = true;
|
||||
|
@ -126,9 +124,9 @@
|
|||
enableFishIntegration = true;
|
||||
enableTransience = true;
|
||||
settings = {
|
||||
c = { symbol = " "; };
|
||||
c = {symbol = " ";};
|
||||
command_timeout = 1000;
|
||||
container = { symbol = " "; };
|
||||
container = {symbol = " ";};
|
||||
add_newline = false;
|
||||
character = {
|
||||
success_symbol = "[!](bold green)";
|
||||
|
@ -144,7 +142,7 @@
|
|||
git_branch = {
|
||||
symbol = " ";
|
||||
only_attached = true;
|
||||
ignore_branches = [ "master" "main" ];
|
||||
ignore_branches = ["master" "main"];
|
||||
};
|
||||
git_commit = {
|
||||
format = "[ $hash | $tag]($style) ";
|
||||
|
@ -166,16 +164,16 @@
|
|||
untracked = " ";
|
||||
typechanged = " ";
|
||||
};
|
||||
golang = { symbol = " "; };
|
||||
guix_shell = { symbol = " "; };
|
||||
haskell = { symbol = " "; };
|
||||
golang = {symbol = " ";};
|
||||
guix_shell = {symbol = " ";};
|
||||
haskell = {symbol = " ";};
|
||||
hostname = {
|
||||
ssh_only = true;
|
||||
ssh_symbol = " ";
|
||||
};
|
||||
java = { symbol = " "; };
|
||||
localip = { disabled = false; };
|
||||
lua = { symbol = " "; };
|
||||
java = {symbol = " ";};
|
||||
localip = {disabled = false;};
|
||||
lua = {symbol = " ";};
|
||||
memory_usage = {
|
||||
disabled = false;
|
||||
symbol = " ";
|
||||
|
@ -214,12 +212,12 @@
|
|||
Windows = " ";
|
||||
};
|
||||
};
|
||||
package = { symbol = " "; };
|
||||
package = {symbol = " ";};
|
||||
python = {
|
||||
symbol = " ";
|
||||
python_binary = "python3";
|
||||
};
|
||||
rust = { symbol = " "; };
|
||||
rust = {symbol = " ";};
|
||||
shell = {
|
||||
disabled = false;
|
||||
format = "using [$indicator ]($style)";
|
||||
|
@ -228,7 +226,7 @@
|
|||
powershell_indicator = " ";
|
||||
unknown_indicator = " ";
|
||||
};
|
||||
status = { };
|
||||
status = {};
|
||||
sudo = {
|
||||
disabled = false;
|
||||
symbol = " ";
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
{ config, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.emacs = {
|
||||
# Clone emacs config from https://git.xenia.me.uk/xenia/emacs.git
|
||||
enable = true;
|
||||
|
@ -113,7 +117,7 @@
|
|||
imagemagick
|
||||
languagetool
|
||||
wordnet
|
||||
(aspellWithDicts (ds: with ds; [ en en-computers en-science ]))
|
||||
(aspellWithDicts (ds: with ds; [en en-computers en-science]))
|
||||
|
||||
# For org-plot
|
||||
gnuplot
|
||||
|
@ -131,8 +135,17 @@
|
|||
# Customised LaTeX install
|
||||
# texlive.combined.scheme-full
|
||||
(texlive.combine {
|
||||
inherit (pkgs.texlive)
|
||||
scheme-basic dvisvgm dvipng wrapfig amsmath ulem hyperref capt-of;
|
||||
inherit
|
||||
(pkgs.texlive)
|
||||
scheme-basic
|
||||
dvisvgm
|
||||
dvipng
|
||||
wrapfig
|
||||
amsmath
|
||||
ulem
|
||||
hyperref
|
||||
capt-of
|
||||
;
|
||||
})
|
||||
|
||||
# Linters
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.eww = {
|
||||
enable = true;
|
||||
package = pkgs.eww-wayland;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ pkgs, ... }: {
|
||||
stylix.targets.firefox.profileNames = [ "default" ];
|
||||
{pkgs, ...}: {
|
||||
stylix.targets.firefox.profileNames = ["default"];
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
package = null; # Use system Firefox
|
||||
|
@ -44,14 +44,12 @@
|
|||
search = {
|
||||
default = "DuckDuckGo";
|
||||
force = true;
|
||||
order = [ "DuckDuckGo" ];
|
||||
order = ["DuckDuckGo"];
|
||||
engines = {
|
||||
"MyNixOS" = {
|
||||
urls =
|
||||
[{ template = "https://mynixos.com/search?q={searchTerms}"; }];
|
||||
icon =
|
||||
"${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@mn" ];
|
||||
urls = [{template = "https://mynixos.com/search?q={searchTerms}";}];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = ["@mn"];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
{ config, lib, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../default.nix
|
||||
../accounts/default.nix
|
||||
|
@ -34,7 +39,7 @@
|
|||
urgent = true;
|
||||
notify = true;
|
||||
};
|
||||
mouse = { hide-when-typing = "yes"; };
|
||||
mouse = {hide-when-typing = "yes";};
|
||||
};
|
||||
};
|
||||
gtk = {
|
||||
|
@ -50,7 +55,7 @@
|
|||
};
|
||||
theme = {
|
||||
package = pkgs.catppuccin-gtk.override {
|
||||
accents = [ "lavender" ];
|
||||
accents = ["lavender"];
|
||||
size = "standard";
|
||||
variant = "mocha";
|
||||
};
|
||||
|
@ -58,7 +63,7 @@
|
|||
};
|
||||
};
|
||||
xdg.configFile = {
|
||||
"hypr/extra.conf" = lib.mkDefault { text = ""; };
|
||||
"hypr/extra.conf" = lib.mkDefault {text = "";};
|
||||
"hypr/hyprpaper.conf".text = ''
|
||||
preload = ${config.stylix.image}
|
||||
wallpaper = ,${config.stylix.image}
|
||||
|
@ -69,7 +74,7 @@
|
|||
xwayland.enable = true;
|
||||
systemd.enable = true;
|
||||
settings = {
|
||||
monitor = [ ",preferred,auto,auto" ];
|
||||
monitor = [",preferred,auto,auto"];
|
||||
env = with config; [
|
||||
"XDG_CURRENT_DESKTOP=Hyprland"
|
||||
"XDG_SESSION_TYPE=wayland"
|
||||
|
@ -165,7 +170,8 @@
|
|||
"notifications"
|
||||
"swaync-.*"
|
||||
];
|
||||
in (lib.lists.forEach layers blur)
|
||||
in
|
||||
(lib.lists.forEach layers blur)
|
||||
++ (lib.lists.forEach layers ignorealpha);
|
||||
windowrule = [
|
||||
# Float + move system windows
|
||||
|
@ -213,8 +219,10 @@
|
|||
"SUPER, ${toString w}, workspace, ${toString w}"
|
||||
"SUPER SHIFT, ${toString w}, movetoworkspace, ${toString w}"
|
||||
];
|
||||
in with lib.lists;
|
||||
flatten (forEach (range 1 9) workspace) ++ [
|
||||
in
|
||||
with lib.lists;
|
||||
flatten (forEach (range 1 9) workspace)
|
||||
++ [
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
"SUPER, F1, exec, ${pkgs.swaylock-effects}/bin/swaylock --screenshots --clock --indicator --grace-no-mouse"
|
||||
"SUPER, Q, killactive,"
|
||||
|
@ -234,9 +242,7 @@
|
|||
"SUPER, Return, exec, foot"
|
||||
"SUPER SHIFT, Return, exec, emacsclient -c"
|
||||
"SUPER, S, exec, foot -e btm --group --battery"
|
||||
"SUPER, W, exec, nyxt --no-socket --with-file bookmarks=${
|
||||
../nyxt/bookmarks.lisp
|
||||
}"
|
||||
"SUPER, W, exec, nyxt --no-socket --with-file bookmarks=${../nyxt/bookmarks.lisp}"
|
||||
"SUPER, F, exec, thunar $HOME"
|
||||
|
||||
# Misc useful binds
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = [ pkgs.nyxt ];
|
||||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.nyxt];
|
||||
xdg.configFile."nyxt/config.lisp".source = ./config.lisp;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ pkgs, ... }: {
|
||||
{pkgs, ...}: {
|
||||
xdg.configFile."obs-studio/themes".source = ./themes;
|
||||
home.packages = with pkgs; [ helvum ];
|
||||
home.packages = with pkgs; [helvum];
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
|
|
|
@ -1,4 +1,11 @@
|
|||
{ stdenvNoCC, fetchFromGitHub, gtk3, libsForQt5, gnome, hicolor-icon-theme }:
|
||||
{
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
gtk3,
|
||||
libsForQt5,
|
||||
gnome,
|
||||
hicolor-icon-theme,
|
||||
}:
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "candy-icon-theme";
|
||||
version = "6a35be5cb133c6be8314807f55da3d795e24fb86";
|
||||
|
@ -11,10 +18,9 @@ stdenvNoCC.mkDerivation rec {
|
|||
sha256 = "sha256-M58ts/xyVf+ZDidd4MEp/LlU3vk2imEwOnb0/sVJUYo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ gtk3 ];
|
||||
nativeBuildInputs = [gtk3];
|
||||
|
||||
buildInputs =
|
||||
[ libsForQt5.breeze-icons gnome.adwaita-icon-theme hicolor-icon-theme ];
|
||||
buildInputs = [libsForQt5.breeze-icons gnome.adwaita-icon-theme hicolor-icon-theme];
|
||||
|
||||
dontDropIconThemeCache = true;
|
||||
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
{ stdenvNoCC, fetchFromGitHub, gtk3, candy-icon-theme, gnome-icon-theme
|
||||
, ubuntu-themes, cinnamon, elementary-xfce-icon-theme }:
|
||||
{
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
gtk3,
|
||||
candy-icon-theme,
|
||||
gnome-icon-theme,
|
||||
ubuntu-themes,
|
||||
cinnamon,
|
||||
elementary-xfce-icon-theme,
|
||||
}:
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "sweet-folder-theme";
|
||||
version = "b2192ff1412472f036fdf9778c6b9dbcb6c044ec";
|
||||
|
@ -12,7 +20,7 @@ stdenvNoCC.mkDerivation rec {
|
|||
sha256 = "sha256-QexfqXH5a1IEhKBRjWSMdrEvThvLRzd4M32Xti1DCGE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ gtk3 ];
|
||||
nativeBuildInputs = [gtk3];
|
||||
|
||||
buildInputs = [
|
||||
candy-icon-theme
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
{ config, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
|
@ -11,8 +15,8 @@
|
|||
USERNAME_field='login'
|
||||
'';
|
||||
};
|
||||
extraConfig =
|
||||
let power-menu = "power-menu:${pkgs.rofi-power-menu}/bin/rofi-power-menu";
|
||||
extraConfig = let
|
||||
power-menu = "power-menu:${pkgs.rofi-power-menu}/bin/rofi-power-menu";
|
||||
in {
|
||||
modi = "window,run,drun,ssh,${power-menu},combi";
|
||||
combi-modi = "window,drun,ssh";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, ... }: {
|
||||
{pkgs, ...}: {
|
||||
home.packages = [
|
||||
(pkgs.writeShellScriptBin "nixos-update"
|
||||
(builtins.readFile ./nixos-update.sh))
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
{ config, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.swaylock = {
|
||||
enable = true;
|
||||
package = pkgs.swaylock-effects;
|
||||
|
@ -9,9 +13,7 @@
|
|||
indicator-caps-lock = true;
|
||||
ignore-empty-password = true;
|
||||
show-failed-attempts = true;
|
||||
effect-blur =
|
||||
with config.wayland.windowManager.hyprland.settings.decoration.blur;
|
||||
"${toString size}x${toString passes}";
|
||||
effect-blur = with config.wayland.windowManager.hyprland.settings.decoration.blur; "${toString size}x${toString passes}";
|
||||
effect-vignette = "0.5:0.5";
|
||||
fade-in = 0.2;
|
||||
};
|
||||
|
|
|
@ -1 +1 @@
|
|||
{ ... }: { xdg.configFile."swaync/style.css".source = ./style.css; }
|
||||
{...}: {xdg.configFile."swaync/style.css".source = ./style.css;}
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
{ config, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
systemd.user.targets.tray.Unit = {
|
||||
Description = "Home Manager System Tray";
|
||||
Requires = [ "graphical-session-pre.target" ];
|
||||
Requires = ["graphical-session-pre.target"];
|
||||
};
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
|
@ -14,8 +18,8 @@
|
|||
layer = "top";
|
||||
position = "top";
|
||||
# Layout
|
||||
"modules-left" = [ "hyprland/window" "mpris" ];
|
||||
"modules-center" = [ "hyprland/workspaces" ];
|
||||
"modules-left" = ["hyprland/window" "mpris"];
|
||||
"modules-center" = ["hyprland/workspaces"];
|
||||
"modules-right" = [
|
||||
"custom/notification"
|
||||
"pulseaudio"
|
||||
|
@ -26,7 +30,7 @@
|
|||
"tray"
|
||||
];
|
||||
# Module config
|
||||
"custom/separator" = { format = "|"; };
|
||||
"custom/separator" = {format = "|";};
|
||||
"hyprland/window" = {
|
||||
"format" = "{title}";
|
||||
# TODO workspace rewrites
|
||||
|
@ -54,19 +58,19 @@
|
|||
show-special = false;
|
||||
sort-by = "id";
|
||||
persistent-workspaces = {
|
||||
"1" = [ ];
|
||||
"2" = [ ];
|
||||
"3" = [ ];
|
||||
"4" = [ ];
|
||||
"5" = [ ];
|
||||
"6" = [ ];
|
||||
"1" = [];
|
||||
"2" = [];
|
||||
"3" = [];
|
||||
"4" = [];
|
||||
"5" = [];
|
||||
"6" = [];
|
||||
};
|
||||
};
|
||||
mpris = {
|
||||
"format" = "> {player_icon} {player}";
|
||||
"tooltip-format" = "{player_icon} ({player}) {dynamic}";
|
||||
"interval" = 1;
|
||||
"dynamic-order" = [ "album" "artist" "title" "position" "length" ];
|
||||
"dynamic-order" = ["album" "artist" "title" "position" "length"];
|
||||
"player-icons" = {
|
||||
"default" = " ";
|
||||
"emms" = " ";
|
||||
|
@ -78,7 +82,7 @@
|
|||
"paused" = "";
|
||||
"stopped" = "";
|
||||
};
|
||||
"ignored-players" = [ ];
|
||||
"ignored-players" = [];
|
||||
};
|
||||
pulseaudio = {
|
||||
scroll-step = 5;
|
||||
|
@ -88,7 +92,7 @@
|
|||
format-source-muted = "";
|
||||
format-icons = {
|
||||
car = "";
|
||||
default = [ "" "" "" ];
|
||||
default = ["" "" ""];
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
|
@ -109,11 +113,11 @@
|
|||
format = " {usage}%";
|
||||
tooltip = false;
|
||||
};
|
||||
memory = { format = " {}%"; };
|
||||
memory = {format = " {}%";};
|
||||
temperature = {
|
||||
critical-threshold = 80;
|
||||
format = "{icon} {temperatureC}°C";
|
||||
format-icons = [ "" "" "" ];
|
||||
format-icons = ["" "" ""];
|
||||
};
|
||||
clock = {
|
||||
format = "{: %Y-%m-%d %R}";
|
||||
|
@ -142,7 +146,7 @@
|
|||
backlight = {
|
||||
format = "{icon} ";
|
||||
tooltip-format = "{percent}%";
|
||||
format-icons = [ "" "" "" "" "" "" "" "" "" ];
|
||||
format-icons = ["" "" "" "" "" "" "" "" ""];
|
||||
};
|
||||
battery = {
|
||||
states = {
|
||||
|
@ -153,9 +157,10 @@
|
|||
format-charging = " ";
|
||||
format-plugged = " ";
|
||||
tooltip-format = "{capacity}% {time}";
|
||||
format-icons = [ "" "" "" "" "" "" "" "" "" "" "" ];
|
||||
format-icons = ["" "" "" "" "" "" "" "" "" "" ""];
|
||||
};
|
||||
"custom/notification" = let swaync = pkgs.swaynotificationcenter;
|
||||
"custom/notification" = let
|
||||
swaync = pkgs.swaynotificationcenter;
|
||||
in {
|
||||
"tooltip" = false;
|
||||
"format" = "{icon}{}";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ ... }: {
|
||||
{...}: {
|
||||
users.mutableUsers = false;
|
||||
system.autoUpgrade = {
|
||||
enable = true;
|
||||
|
|
|
@ -1 +1 @@
|
|||
{ }
|
||||
{}
|
||||
|
|
|
@ -1 +1,5 @@
|
|||
{ config, pkgs, ... }: { }
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ ... }: {
|
||||
{...}: {
|
||||
wayland.windowManager.hyprland.settings.monitor = [
|
||||
"eDP-1,preferred,0x0,1.00"
|
||||
"desc:Acer Technologies ED270R TJMEE0043W01,highrr,-192x-1080,1.00"
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
{ pkgs, ... }: {
|
||||
{pkgs, ...}: {
|
||||
# Setup keyfile
|
||||
boot.initrd.secrets = { "/crypto_keyfile.bin" = null; };
|
||||
boot.initrd.secrets = {"/crypto_keyfile.bin" = null;};
|
||||
|
||||
# Enable swap on luks
|
||||
boot.initrd.luks.devices."luks-761eeb11-3091-4142-9232-4fb33165eccd".device =
|
||||
"/dev/disk/by-uuid/761eeb11-3091-4142-9232-4fb33165eccd";
|
||||
boot.initrd.luks.devices."luks-761eeb11-3091-4142-9232-4fb33165eccd".keyFile =
|
||||
"/crypto_keyfile.bin";
|
||||
boot.initrd.luks.devices."luks-761eeb11-3091-4142-9232-4fb33165eccd".device = "/dev/disk/by-uuid/761eeb11-3091-4142-9232-4fb33165eccd";
|
||||
boot.initrd.luks.devices."luks-761eeb11-3091-4142-9232-4fb33165eccd".keyFile = "/crypto_keyfile.bin";
|
||||
|
||||
environment = {
|
||||
etc."ppp/options".text = ''
|
||||
ipcp-accept-remote
|
||||
'';
|
||||
systemPackages = with pkgs; [ openfortivpn samba nomachine-client ];
|
||||
systemPackages = with pkgs; [openfortivpn samba nomachine-client];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ ... }: {
|
||||
{...}: {
|
||||
programs.git.userEmail = "evie.litherland-smith@ukaea.uk";
|
||||
accounts.email.accounts = {
|
||||
proton.primary = false;
|
||||
|
|
|
@ -1,19 +1,17 @@
|
|||
{ pkgs, ... }: {
|
||||
{pkgs, ...}: {
|
||||
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||
|
||||
# Setup keyfile
|
||||
boot.initrd.secrets = { "/crypto_keyfile.bin" = null; };
|
||||
boot.initrd.secrets = {"/crypto_keyfile.bin" = null;};
|
||||
|
||||
# Enable swap on luks
|
||||
boot.initrd.luks.devices."luks-47d34268-5100-4eba-b34d-220f4239c1cb".device =
|
||||
"/dev/disk/by-uuid/47d34268-5100-4eba-b34d-220f4239c1cb";
|
||||
boot.initrd.luks.devices."luks-47d34268-5100-4eba-b34d-220f4239c1cb".keyFile =
|
||||
"/crypto_keyfile.bin";
|
||||
boot.initrd.luks.devices."luks-47d34268-5100-4eba-b34d-220f4239c1cb".device = "/dev/disk/by-uuid/47d34268-5100-4eba-b34d-220f4239c1cb";
|
||||
boot.initrd.luks.devices."luks-47d34268-5100-4eba-b34d-220f4239c1cb".keyFile = "/crypto_keyfile.bin";
|
||||
|
||||
environment = {
|
||||
etc."ppp/options".text = ''
|
||||
ipcp-accept-remote
|
||||
'';
|
||||
systemPackages = with pkgs; [ openfortivpn samba nomachine-client ];
|
||||
systemPackages = with pkgs; [openfortivpn samba nomachine-client];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ ... }: {
|
||||
{...}: {
|
||||
programs.git.userEmail = "evie.litherland-smith@ukaea.uk";
|
||||
accounts.email.accounts = {
|
||||
proton.primary = false;
|
||||
|
@ -6,6 +6,6 @@
|
|||
};
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
misc.force_default_wallpaper = 0;
|
||||
monitor = [ "desc:Dell Inc. DELL P3223QE CCG8YN3,highres,0x0,1.5" ];
|
||||
monitor = ["desc:Dell Inc. DELL P3223QE CCG8YN3,highres,0x0,1.5"];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
{ config, pkgs, ... }: {
|
||||
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
boot.extraModulePackages = with config.boot.kernelPackages; [v4l2loopback];
|
||||
boot.extraModprobeConfig = ''
|
||||
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
||||
'';
|
||||
hardware.opengl.driSupport32Bit = true;
|
||||
hardware.opengl.extraPackages = with pkgs; [ amdvlk rocmPackages.clr.icd ];
|
||||
hardware.opengl.extraPackages32 = [ pkgs.driversi686Linux.amdvlk ];
|
||||
hardware.opengl.extraPackages = with pkgs; [amdvlk rocmPackages.clr.icd];
|
||||
hardware.opengl.extraPackages32 = [pkgs.driversi686Linux.amdvlk];
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ ... }: {
|
||||
{...}: {
|
||||
wayland.windowManager.hyprland.settings.monitor = [
|
||||
"desc:Acer Technologies ED270R TJMEE0043W01,highrr,0x0,1.00,vrr,2"
|
||||
"desc:Ancor Communications Inc VS278 FALMQS032358,preferred,-1920x0,1.00,vrr,0"
|
||||
|
|
|
@ -1,14 +1,17 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
services.adguardhome = {
|
||||
enable = true;
|
||||
mutableSettings = false;
|
||||
settings = rec {
|
||||
http.address = "0.0.0.0:3200";
|
||||
dns = {
|
||||
bind_hosts = [ "127.0.0.1" "192.168.1.230" ];
|
||||
bootstrap_dns = [ "9.9.9.9" "149.112.112.10" ];
|
||||
bind_hosts = ["127.0.0.1" "192.168.1.230"];
|
||||
bootstrap_dns = ["9.9.9.9" "149.112.112.10"];
|
||||
ratelimit = 0;
|
||||
safe_search.enabled = true;
|
||||
rewrites = [
|
||||
|
@ -21,20 +24,20 @@
|
|||
answer = "192.168.1.230";
|
||||
}
|
||||
];
|
||||
blocked_services.ids = [ ];
|
||||
blocked_services.ids = [];
|
||||
};
|
||||
filtering = { inherit (dns) safe_search rewrites blocked_services; };
|
||||
filtering = {inherit (dns) safe_search rewrites blocked_services;};
|
||||
querylog.ignored = [
|
||||
"discovery.syncthing.net"
|
||||
"discovery-v6.syncthing.net"
|
||||
"matrix.tchncs.de"
|
||||
];
|
||||
statistics = { inherit (querylog) ignored; };
|
||||
statistics = {inherit (querylog) ignored;};
|
||||
};
|
||||
openFirewall = true;
|
||||
};
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [ 53 ];
|
||||
allowedUDPPorts = [ 53 ];
|
||||
allowedTCPPorts = [53];
|
||||
allowedUDPPorts = [53];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
{ pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [ steamcmd ];
|
||||
networking.firewall.allowedTCPPorts = [ 8777 ];
|
||||
services.caddy.virtualHosts."astro.xenia.me.uk".extraConfig =
|
||||
"reverse_proxy http://localhost:8777";
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [steamcmd];
|
||||
networking.firewall.allowedTCPPorts = [8777];
|
||||
services.caddy.virtualHosts."astro.xenia.me.uk".extraConfig = "reverse_proxy http://localhost:8777";
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ ... }: {
|
||||
networking.firewall.allowedTCPPorts = [ 80 443 ];
|
||||
{...}: {
|
||||
networking.firewall.allowedTCPPorts = [80 443];
|
||||
services.caddy = {
|
||||
enable = true;
|
||||
email = "evie@xenia.me.uk";
|
||||
|
@ -11,7 +11,7 @@
|
|||
};
|
||||
services.fail2ban = {
|
||||
enable = true;
|
||||
ignoreIP = [ "127.0.0.1/8" "::1" "192.168.1.0/16" ];
|
||||
bantime-increment = { enable = true; };
|
||||
ignoreIP = ["127.0.0.1/8" "::1" "192.168.1.0/16"];
|
||||
bantime-increment = {enable = true;};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ ... }: {
|
||||
imports = [ ./caddy.nix ];
|
||||
{...}: {
|
||||
imports = [./caddy.nix];
|
||||
services.gitea = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
@ -18,6 +18,5 @@
|
|||
};
|
||||
appName = "Gitea";
|
||||
};
|
||||
services.caddy.virtualHosts."git.xenia.me.uk".extraConfig =
|
||||
"reverse_proxy http://localhost:3100";
|
||||
services.caddy.virtualHosts."git.xenia.me.uk".extraConfig = "reverse_proxy http://localhost:3100";
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ ... }: {
|
||||
imports = [ ./caddy.nix ];
|
||||
{...}: {
|
||||
imports = [./caddy.nix];
|
||||
services.grafana = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
@ -16,16 +16,16 @@
|
|||
exporters = {
|
||||
node = {
|
||||
enable = true;
|
||||
enabledCollectors = [ "systemd" ];
|
||||
enabledCollectors = ["systemd"];
|
||||
port = 9002;
|
||||
};
|
||||
};
|
||||
scrapeConfigs = [{
|
||||
scrapeConfigs = [
|
||||
{
|
||||
job_name = "legion";
|
||||
static_configs =
|
||||
[{ targets = [ "127.0.0.1:${toString exporters.node.port}" ]; }];
|
||||
}];
|
||||
static_configs = [{targets = ["127.0.0.1:${toString exporters.node.port}"];}];
|
||||
}
|
||||
];
|
||||
};
|
||||
services.caddy.virtualHosts."grafana.xenia.me.uk".extraConfig =
|
||||
"reverse_proxy http://localhost:3000";
|
||||
services.caddy.virtualHosts."grafana.xenia.me.uk".extraConfig = "reverse_proxy http://localhost:3000";
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ pkgs, ... }: {
|
||||
imports = [ ./caddy.nix ];
|
||||
{pkgs, ...}: {
|
||||
imports = [./caddy.nix];
|
||||
services.postgresql.enable = true;
|
||||
services.postgresql.initialScript = pkgs.writeText "synapse-init.sql" ''
|
||||
CREATE ROLE "matrix-synapse" WITH LOGIN PASSWORD 'synapse';
|
||||
|
@ -13,18 +13,22 @@
|
|||
matrix-synapse = {
|
||||
enable = true;
|
||||
settings.server_name = "xenia.me.uk";
|
||||
settings.listeners = [{
|
||||
bind_addresses = [ "127.0.0.1" ];
|
||||
settings.listeners = [
|
||||
{
|
||||
bind_addresses = ["127.0.0.1"];
|
||||
port = 8008;
|
||||
type = "http";
|
||||
tls = false;
|
||||
x_forwarded = true;
|
||||
resources = [{
|
||||
names = [ "client" "federation" ];
|
||||
resources = [
|
||||
{
|
||||
names = ["client" "federation"];
|
||||
compress = true;
|
||||
}];
|
||||
}];
|
||||
extraConfigFiles = [ "/run/secrets/matrix-shared-secret" ];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
extraConfigFiles = ["/run/secrets/matrix-shared-secret"];
|
||||
};
|
||||
caddy.virtualHosts."xenia.me.uk".extraConfig = ''
|
||||
header /.well-known/matrix/* Content-Type application/json
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ pkgs, ... }: {
|
||||
imports = [ ./caddy.nix ];
|
||||
environment.systemPackages = with pkgs; [ ffmpeg ];
|
||||
{pkgs, ...}: {
|
||||
imports = [./caddy.nix];
|
||||
environment.systemPackages = with pkgs; [ffmpeg];
|
||||
services = {
|
||||
navidrome = {
|
||||
enable = true;
|
||||
|
@ -10,7 +10,6 @@
|
|||
MusicFolder = "/media/music";
|
||||
};
|
||||
};
|
||||
caddy.virtualHosts."music.xenia.me.uk".extraConfig =
|
||||
"reverse_proxy http://localhost:4533";
|
||||
caddy.virtualHosts."music.xenia.me.uk".extraConfig = "reverse_proxy http://localhost:4533";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [ ./caddy.nix ];
|
||||
{...}: {
|
||||
imports = [./caddy.nix];
|
||||
services.ntfy-sh = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
@ -12,6 +10,5 @@
|
|||
enable-metrics = true;
|
||||
};
|
||||
};
|
||||
services.caddy.virtualHosts."ntfy.xenia.me.uk".extraConfig =
|
||||
"reverse_proxy http://localhost:8800";
|
||||
services.caddy.virtualHosts."ntfy.xenia.me.uk".extraConfig = "reverse_proxy http://localhost:8800";
|
||||
}
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
ports = [ 22 ];
|
||||
ports = [22];
|
||||
settings = {
|
||||
UseDns = true;
|
||||
PermitRootLogin = "without-password";
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ ... }:
|
||||
let devices = [ "Ion" "Legion" "Northstar" "Vanguard" ];
|
||||
{...}: let
|
||||
devices = ["Ion" "Legion" "Northstar" "Vanguard"];
|
||||
in {
|
||||
imports = [ ./caddy.nix ];
|
||||
imports = [./caddy.nix];
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
systemService = true;
|
||||
|
@ -10,14 +10,10 @@ in {
|
|||
openDefaultPorts = true;
|
||||
settings = {
|
||||
devices = {
|
||||
"Ion".id =
|
||||
"7DD4NPH-6T2ET5A-4FCLFWW-CS6UR2W-IO5XQXC-DM5B2Q4-6X7DGU2-UKKVEAB";
|
||||
"Legion".id =
|
||||
"3SSNCLP-ZZKNS65-7CKKGFY-KJYQU6S-P5BM7SB-MMW5ZLM-TMND6IV-ZMUO4AQ";
|
||||
"Northstar".id =
|
||||
"DJVVFUX-QRJNEUZ-OVEQ63J-KJIGNY7-O4MEOMH-GDKYHOB-BQES3O4-C3BJHQ2";
|
||||
"Vanguard".id =
|
||||
"NCJBYBK-JRVFAAN-XO4I5AS-B5L7QD2-5PAMWX7-PHD5FQH-Q2EI32H-U3GF5AA";
|
||||
"Ion".id = "7DD4NPH-6T2ET5A-4FCLFWW-CS6UR2W-IO5XQXC-DM5B2Q4-6X7DGU2-UKKVEAB";
|
||||
"Legion".id = "3SSNCLP-ZZKNS65-7CKKGFY-KJYQU6S-P5BM7SB-MMW5ZLM-TMND6IV-ZMUO4AQ";
|
||||
"Northstar".id = "DJVVFUX-QRJNEUZ-OVEQ63J-KJIGNY7-O4MEOMH-GDKYHOB-BQES3O4-C3BJHQ2";
|
||||
"Vanguard".id = "NCJBYBK-JRVFAAN-XO4I5AS-B5L7QD2-5PAMWX7-PHD5FQH-Q2EI32H-U3GF5AA";
|
||||
};
|
||||
folders = {
|
||||
"Music" = {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ pkgs, ... }: {
|
||||
environment.systemPackages = [ pkgs.chromium ];
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = [pkgs.chromium];
|
||||
programs.chromium = rec {
|
||||
enable = true;
|
||||
defaultSearchProviderEnabled = true;
|
||||
|
@ -25,7 +25,7 @@
|
|||
"SyncDisabled" = true;
|
||||
"PasswordManagerEnabled" = false;
|
||||
"SpellcheckEnabled" = true;
|
||||
"SpellcheckLanguage" = [ "en-GB" ];
|
||||
"SpellcheckLanguage" = ["en-GB"];
|
||||
"AllowDinosaurEasterEgg" = true;
|
||||
"AllowSystemNotifications" = true;
|
||||
"AutoFillEnabled" = false;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ pkgs, ... }: {
|
||||
{pkgs, ...}: {
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
nameservers = [ "9.9.9.9" ];
|
||||
nameservers = ["9.9.9.9"];
|
||||
};
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
|
@ -38,7 +38,8 @@
|
|||
};
|
||||
virtualisation.podman.enable = true;
|
||||
time.timeZone = "Europe/London";
|
||||
i18n = let locale = "en_GB.UTF-8";
|
||||
i18n = let
|
||||
locale = "en_GB.UTF-8";
|
||||
in {
|
||||
# Select internationalisation properties.
|
||||
defaultLocale = locale;
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
{ pkgs, user, ... }: {
|
||||
imports = [ ./default.nix ];
|
||||
{
|
||||
pkgs,
|
||||
user,
|
||||
...
|
||||
}: {
|
||||
imports = [./default.nix];
|
||||
environment.systemPackages = with pkgs; [
|
||||
dex
|
||||
libnotify
|
||||
|
@ -15,10 +19,10 @@
|
|||
hardware.bluetooth.enable = true;
|
||||
services = {
|
||||
accounts-daemon.enable = true;
|
||||
dbus.packages = with pkgs; [ gcr ];
|
||||
dbus.packages = with pkgs; [gcr];
|
||||
greetd = {
|
||||
enable = true;
|
||||
settings.initial_session = { inherit user; };
|
||||
settings.initial_session = {inherit user;};
|
||||
};
|
||||
pipewire = {
|
||||
enable = true;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ ... }: {
|
||||
{...}: {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
languagePacks = [ "en-GB" ];
|
||||
languagePacks = ["en-GB"];
|
||||
policies = {
|
||||
Cookies = {
|
||||
Behavior = "reject-tracker-and-partition-foreign";
|
||||
|
@ -26,19 +26,16 @@
|
|||
ExtensionSettings = {
|
||||
"queryamoid@kaply.com" = {
|
||||
installation_mode = "force_installed";
|
||||
install_url =
|
||||
"https://github.com/mkaply/queryamoid/releases/download/v0.1/query_amo_addon_id-0.1-fx.xpi";
|
||||
install_url = "https://github.com/mkaply/queryamoid/releases/download/v0.1/query_amo_addon_id-0.1-fx.xpi";
|
||||
};
|
||||
"uBlock0@raymondhill.net" = {
|
||||
installation_mode = "force_installed";
|
||||
install_url =
|
||||
"https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
||||
};
|
||||
# Catppuccin Mocha (Lavender) theme
|
||||
"{8446b178-c865-4f5c-8ccc-1d7887811ae3}" = {
|
||||
installation_mode = "force_installed";
|
||||
install_url =
|
||||
"https://addons.mozilla.org/firefox/downloads/latest/catppuccin-mocha-lavender-git/latest.xpi";
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/catppuccin-mocha-lavender-git/latest.xpi";
|
||||
};
|
||||
};
|
||||
FirefoxHome = {
|
||||
|
@ -52,7 +49,7 @@
|
|||
Locked = true;
|
||||
};
|
||||
ManagedBookmarks = [
|
||||
{ toplevel_name = "Managed Bookmarks"; }
|
||||
{toplevel_name = "Managed Bookmarks";}
|
||||
{
|
||||
name = "Server";
|
||||
children = [
|
||||
|
@ -120,9 +117,9 @@
|
|||
NoDefaultBookmarks = true;
|
||||
OfferToSaveLogins = false;
|
||||
PasswordManagerEnabled = false;
|
||||
PopupBlocking = { Default = true; };
|
||||
RequestedLocales = [ "en-GB" ];
|
||||
SearchEngines = { Default = "DuckDuckGo"; };
|
||||
PopupBlocking = {Default = true;};
|
||||
RequestedLocales = ["en-GB"];
|
||||
SearchEngines = {Default = "DuckDuckGo";};
|
||||
ShowHomeButton = false;
|
||||
StartDownloadsInTempDirectory = true;
|
||||
};
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{ pkgs, ... }: {
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
prismlauncher
|
||||
(retroarch.override {
|
||||
cores = with libretro; [ dolphin mgba mupen64plus ];
|
||||
cores = with libretro; [dolphin mgba mupen64plus];
|
||||
})
|
||||
];
|
||||
hardware.steam-hardware.enable = true;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ ... }: {
|
||||
imports = [ ./desktop.nix ./games.nix ];
|
||||
{...}: {
|
||||
imports = [./desktop.nix ./games.nix];
|
||||
services = {
|
||||
greetd.settings = let
|
||||
command = ''
|
||||
|
@ -9,8 +9,8 @@
|
|||
--hide-cursor-delay 5 --steam -- steam -gamepadui
|
||||
'';
|
||||
in {
|
||||
default_session = { inherit command; };
|
||||
initial_session = { inherit command; };
|
||||
default_session = {inherit command;};
|
||||
initial_session = {inherit command;};
|
||||
};
|
||||
};
|
||||
programs.steam.gamescopeSession.enable = true;
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{ pkgs, ... }: {
|
||||
imports = [ ./desktop.nix ./chromium.nix ];
|
||||
nixpkgs.config.chromium.commandLineArgs =
|
||||
"--enable-features=UseOzonePlatform --ozone-platform=wayland";
|
||||
{pkgs, ...}: {
|
||||
imports = [./desktop.nix ./chromium.nix];
|
||||
nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland";
|
||||
environment = {
|
||||
sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
|
@ -35,58 +34,44 @@
|
|||
webcord
|
||||
];
|
||||
};
|
||||
security.pam.services.swaylock = { };
|
||||
security.pam.services.swaylock = {};
|
||||
services = {
|
||||
blueman.enable = true;
|
||||
udisks2.enable = true;
|
||||
gvfs.enable = true;
|
||||
tumbler.enable = true;
|
||||
xserver.enable = false;
|
||||
greetd.settings = let command = "Hyprland";
|
||||
greetd.settings = let
|
||||
command = "Hyprland";
|
||||
in {
|
||||
default_session = { inherit command; };
|
||||
initial_session = { inherit command; };
|
||||
default_session = {inherit command;};
|
||||
initial_session = {inherit command;};
|
||||
};
|
||||
};
|
||||
xdg.mime = rec {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"application/pdf" = [ "emacsclient.desktop" "emacs.desktop" ];
|
||||
"application/epub+zip" = [ "emacsclient.desktop" "emacs.desktop" ];
|
||||
"application/oxps" = [ "emacsclient.desktop" "emacs.desktop" ];
|
||||
"image/jpeg" =
|
||||
[ "swayimg.desktop" "emacsclient.desktop" "emacs.desktop" ];
|
||||
"image/png" = [ "swayimg.desktop" "emacsclient.desktop" "emacs.desktop" ];
|
||||
"video/mp4" = [ "mpv.desktop" ];
|
||||
"text/csv" = [ "emacsclient.desktop" "emacs.desktop" ];
|
||||
"text/html" =
|
||||
[ "firefox.desktop" "chromium-browser.desktop" "nyxt.desktop" ];
|
||||
"x-scheme-handler/http" =
|
||||
[ "firefox.desktop" "chromium-browser.desktop" "nyxt.desktop" ];
|
||||
"x-scheme-handler/https" =
|
||||
[ "firefox.desktop" "chromium-browser.desktop" "nyxt.desktop" ];
|
||||
"x-scheme-handler/about" =
|
||||
[ "firefox.desktop" "chromium-browser.desktop" "nyxt.desktop" ];
|
||||
"x-scheme-handler/chrome" =
|
||||
[ "firefox.desktop" "chromium-browser.desktop" "nyxt.desktop" ];
|
||||
"application/x-extension-htm" =
|
||||
[ "firefox.desktop" "chromium-browser.desktop" "nyxt.desktop" ];
|
||||
"application/x-extension-html" =
|
||||
[ "firefox.desktop" "chromium-browser.desktop" "nyxt.desktop" ];
|
||||
"application/x-extension-shtml" =
|
||||
[ "firefox.desktop" "chromium-browser.desktop" "nyxt.desktop" ];
|
||||
"application/xhtml+xml" =
|
||||
[ "firefox.desktop" "chromium-browser.desktop" "nyxt.desktop" ];
|
||||
"application/x-extension-xhtml" =
|
||||
[ "firefox.desktop" "chromium-browser.desktop" "nyxt.desktop" ];
|
||||
"application/x-extension-xht" =
|
||||
[ "firefox.desktop" "chromium-browser.desktop" "nyxt.desktop" ];
|
||||
"application/x-mozilla-bookmarks" =
|
||||
[ "firefox.desktop" "chromium-browser.desktop" ];
|
||||
"x-scheme-handler/msteams" =
|
||||
[ "firefox.desktop" "chromium-browser.desktop" ];
|
||||
"x-scheme-handler/zoomus" =
|
||||
[ "firefox.desktop" "chromium-browser.desktop" ];
|
||||
"application/pdf" = ["emacsclient.desktop" "emacs.desktop"];
|
||||
"application/epub+zip" = ["emacsclient.desktop" "emacs.desktop"];
|
||||
"application/oxps" = ["emacsclient.desktop" "emacs.desktop"];
|
||||
"image/jpeg" = ["swayimg.desktop" "emacsclient.desktop" "emacs.desktop"];
|
||||
"image/png" = ["swayimg.desktop" "emacsclient.desktop" "emacs.desktop"];
|
||||
"video/mp4" = ["mpv.desktop"];
|
||||
"text/csv" = ["emacsclient.desktop" "emacs.desktop"];
|
||||
"text/html" = ["firefox.desktop" "chromium-browser.desktop" "nyxt.desktop"];
|
||||
"x-scheme-handler/http" = ["firefox.desktop" "chromium-browser.desktop" "nyxt.desktop"];
|
||||
"x-scheme-handler/https" = ["firefox.desktop" "chromium-browser.desktop" "nyxt.desktop"];
|
||||
"x-scheme-handler/about" = ["firefox.desktop" "chromium-browser.desktop" "nyxt.desktop"];
|
||||
"x-scheme-handler/chrome" = ["firefox.desktop" "chromium-browser.desktop" "nyxt.desktop"];
|
||||
"application/x-extension-htm" = ["firefox.desktop" "chromium-browser.desktop" "nyxt.desktop"];
|
||||
"application/x-extension-html" = ["firefox.desktop" "chromium-browser.desktop" "nyxt.desktop"];
|
||||
"application/x-extension-shtml" = ["firefox.desktop" "chromium-browser.desktop" "nyxt.desktop"];
|
||||
"application/xhtml+xml" = ["firefox.desktop" "chromium-browser.desktop" "nyxt.desktop"];
|
||||
"application/x-extension-xhtml" = ["firefox.desktop" "chromium-browser.desktop" "nyxt.desktop"];
|
||||
"application/x-extension-xht" = ["firefox.desktop" "chromium-browser.desktop" "nyxt.desktop"];
|
||||
"application/x-mozilla-bookmarks" = ["firefox.desktop" "chromium-browser.desktop"];
|
||||
"x-scheme-handler/msteams" = ["firefox.desktop" "chromium-browser.desktop"];
|
||||
"x-scheme-handler/zoomus" = ["firefox.desktop" "chromium-browser.desktop"];
|
||||
};
|
||||
addedAssociations = defaultApplications;
|
||||
};
|
||||
|
@ -95,7 +80,7 @@
|
|||
light.enable = true;
|
||||
thunar = {
|
||||
enable = true;
|
||||
plugins = with pkgs.xfce; [ thunar-archive-plugin thunar-volman ];
|
||||
plugins = with pkgs.xfce; [thunar-archive-plugin thunar-volman];
|
||||
};
|
||||
hyprland = {
|
||||
enable = true;
|
||||
|
|
Loading…
Reference in a new issue