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