Compare commits

..

No commits in common. "main" and "Desktop-changes" have entirely different histories.

64 changed files with 1797 additions and 3328 deletions

View file

@ -1,47 +0,0 @@
{
disko = {
devices = {
disk = {
disk1 = {
imageSize = "20G";
type = "disk";
device = "/dev/mmcblk0";
content = {
type = "gpt";
partitions = {
firmware = {
size = "30M";
priority = 1;
type = "0700";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/firmware";
};
};
boot = {
size = "1G";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
root = {
name = "root";
size = "100%";
content = {
type = "filesystem";
extraArgs = [];
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
};
}

1276
flake.lock

File diff suppressed because it is too large Load diff

192
flake.nix
View file

@ -78,8 +78,6 @@
# Add any other flake you might need # Add any other flake you might need
# hardware.url = "github:nixos/nixos-hardware"; # hardware.url = "github:nixos/nixos-hardware";
# Stylix theming engine
stylix.url = "github:danth/stylix";
}; };
outputs = { outputs = {
@ -100,7 +98,6 @@
nixos-hardware, nixos-hardware,
nix-index-database, nix-index-database,
conduwuit, conduwuit,
stylix,
... ...
} @ inputs: let } @ inputs: let
inherit (self) outputs; inherit (self) outputs;
@ -108,7 +105,6 @@
# Supported systems for your flake packages, shell, etc. # Supported systems for your flake packages, shell, etc.
systems = [ systems = [
"x86_64-linux" "x86_64-linux"
"aarch64-linux"
]; ];
# This is a function that generates an attribute by calling a function you # This is a function that generates an attribute by calling a function you
# pass to it, with each system as an argument # pass to it, with each system as an argument
@ -120,33 +116,6 @@
allowUnfreePredicate = _: true; allowUnfreePredicate = _: true;
}; };
}; };
sharedModules = [
./nixos/shared
sops-nix.nixosModules.sops
disko.nixosModules.disko
home-manager.nixosModules.home-manager
catppuccin.nixosModules.catppuccin
stylix.nixosModules.stylix
nix-index-database.nixosModules.nix-index
{
home-manager.sharedModules = [
catppuccin.homeModules.catppuccin
./home-manager/shared
sops-nix.homeManagerModules.sops
];
}
];
desktopModules = [
./nixos/desktop
{
home-manager.sharedModules = [
inputs.plasma-manager.homeManagerModules.plasma-manager
./home-manager/desktop
];
}
];
in { in {
# Your custom packages # Your custom packages
# Accessible through 'nix build', 'nix shell', etc # Accessible through 'nix build', 'nix shell', etc
@ -164,7 +133,7 @@
nixosModules = import ./modules/nixos; nixosModules = import ./modules/nixos;
# Reusable home-manager modules you might want to export # Reusable home-manager modules you might want to export
# These are usually stuff you would upstream into home-manager # These are usually stuff you would upstream into home-manager
# homeManagerModules = import ./modules/home-manager; homeManagerModules = import ./modules/home-manager;
# Your custom packages and modifications, exported as overlays # Your custom packages and modifications, exported as overlays
overlays = import ./overlays {inherit inputs;}; overlays = import ./overlays {inherit inputs;};
@ -175,74 +144,129 @@
EDI = nixpkgs.lib.nixosSystem { EDI = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = {inherit inputs outputs;}; specialArgs = {inherit inputs outputs;};
modules = modules = [
sharedModules
++ desktopModules
++ [
{_module.args = {inherit pkgs-edge;};} {_module.args = {inherit pkgs-edge;};}
nixos-hardware.nixosModules.dell-xps-13-7390 nixos-hardware.nixosModules.dell-xps-13-7390
lanzaboote.nixosModules.lanzaboote
# > Our main nixos configuration file < # > Our main nixos configuration file <
./nixos/hosts/EDI/configuration.nix ./nixos/hosts/EDI/configuration.nix
]; sops-nix.nixosModules.sops
};
GLaDOS = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs outputs;};
modules =
sharedModules
++ desktopModules
++ [
{_module.args = {inherit pkgs-edge;};}
jovian.nixosModules.jovian
# > Our main nixos configuration file <
./nixos/hosts/GLaDOS/configuration.nix
lanzaboote.nixosModules.lanzaboote lanzaboote.nixosModules.lanzaboote
]; disko.nixosModules.disko
}; home-manager.nixosModules.home-manager
nix-index-database.nixosModules.nix-index
queen = nixpkgs.lib.nixosSystem { catppuccin.nixosModules.catppuccin
system = "x86_64-linux";
specialArgs = {inherit inputs outputs;};
modules =
sharedModules
++ [
{_module.args = {inherit pkgs-edge;};}
simple-nixos-mailserver.nixosModule
# > Our main nixos configuration file <
./nixos/hosts/queen/configuration.nix
];
};
shodan = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs outputs;};
modules =
sharedModules
++ [
{_module.args = {inherit pkgs-edge;};}
# > Our main nixos configuration file <
./nixos/hosts/shodan/configuration.nix
lanzaboote.nixosModules.lanzaboote
jovian.nixosModules.jovian
{ {
home-manager.sharedModules = [ home-manager.sharedModules = [
inputs.catppuccin.homeManagerModules.catppuccin
inputs.plasma-manager.homeManagerModules.plasma-manager inputs.plasma-manager.homeManagerModules.plasma-manager
]; ];
} }
]; ];
}; };
wheatley = nixpkgs.lib.nixosSystem { GLaDOS = nixpkgs.lib.nixosSystem {
system = "aarch64-linux"; system = "x86_64-linux";
specialArgs = {inherit inputs outputs;}; specialArgs = {inherit inputs outputs;};
modules = modules = [
sharedModules {_module.args = {inherit pkgs-edge;};}
++ [ # > Our main nixos configuration file <
./nixos/hosts/wheatley/configuration.nix ./nixos/hosts/GLaDOS/configuration.nix
sops-nix.nixosModules.sops
#lanzaboote.nixosModules.lanzaboote
disko.nixosModules.disko
home-manager.nixosModules.home-manager
nix-index-database.nixosModules.nix-index
catppuccin.nixosModules.catppuccin
{
home-manager.sharedModules = [
inputs.catppuccin.homeManagerModules.catppuccin
inputs.plasma-manager.homeManagerModules.plasma-manager
];
}
]; ];
}; };
queen = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs outputs;};
modules = [
{_module.args = {inherit pkgs-edge;};}
# > Our main nixos configuration file <
./nixos/hosts/queen/configuration.nix
sops-nix.nixosModules.sops
disko.nixosModules.disko
simple-nixos-mailserver.nixosModule
catppuccin.nixosModules.catppuccin
{
home-manager.sharedModules = [
inputs.catppuccin.homeManagerModules.catppuccin
];
}
];
};
shodan = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs outputs;};
modules = [
{_module.args = {inherit pkgs-edge;};}
# > Our main nixos configuration file <
./nixos/hosts/shodan/configuration.nix
sops-nix.nixosModules.sops
lanzaboote.nixosModules.lanzaboote
disko.nixosModules.disko
jovian.nixosModules.jovian
home-manager.nixosModules.home-manager
catppuccin.nixosModules.catppuccin
{
home-manager.sharedModules = [
inputs.catppuccin.homeManagerModules.catppuccin
inputs.plasma-manager.homeManagerModules.plasma-manager
];
}
];
};
# ISO = nixpkgs.lib.nixosSystem {
# system = "x86_64-linux";
# specialArgs = {inherit inputs outputs;};
# modules = [
# {_module.args = {inherit pkgs-edge;};}
# "${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-plasma6.nix"
# "${nixpkgs}/nixos/modules/installer/cd-dvd/channel.nix"
# ./nixos/hosts/iso/configuration.nix
# sops-nix.nixosModules.sops
# home-manager.nixosModules.home-manager
# nix-index-database.nixosModules.nix-index
# catppuccin.nixosModules.catppuccin
# {
# home-manager.sharedModules = [
# inputs.plasma-manager.homeManagerModules.plasma-manager
# inputs.catppuccin.homeManagerModules.catppuccin
# ];
# }
# ];
# };
# iso_server = nixpkgs.lib.nixosSystem {
# system = "x86_64-linux";
# specialArgs = {inherit inputs outputs;};
# modules = [
# {_module.args = {inherit pkgs-edge;};}
# "${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"
# "${nixpkgs}/nixos/modules/installer/cd-dvd/channel.nix"
# ./nixos/hosts/iso_server/configuration.nix
# sops-nix.nixosModules.sops
# home-manager.nixosModules.home-manager
# nix-index-database.nixosModules.nix-index
# catppuccin.nixosModules.catppuccin
# {
# home-manager.sharedModules = [
# inputs.catppuccin.homeManagerModules.catppuccin
# ];
# }
# ];
# };
}; };
}; };
} }

View file

@ -1,6 +1,9 @@
{ {
pkgs, inputs,
outputs,
lib,
config, config,
pkgs,
... ...
}: { }: {
# You can import other home-manager modules here # You can import other home-manager modules here
@ -17,10 +20,9 @@
./package-configs/firefox.nix ./package-configs/firefox.nix
./package-configs/konsole ./package-configs/konsole
./package-configs/foot ./package-configs/foot
./package-configs/freetube
./package-configs/vesktop
]; ];
nixpkgs = { nixpkgs = {
config.permittedInsecurePackages = ["cinny-4.2.2" "cinny-unwrapped-4.2.2" "cinny-4.2.1" "cinny-unwrapped-4.2.1"];
# You can add overlays here # You can add overlays here
overlays = [ overlays = [
# You can also add overlays exported from other flakes: # You can also add overlays exported from other flakes:
@ -32,127 +34,64 @@
# patches = [ ./change-hello-to-hi.patch ]; # patches = [ ./change-hello-to-hi.patch ];
# }); # });
# }) # })
# (final: prev: { (final: prev: {
# catppuccin-vsc = final.catppuccin-vsc.overrideAttrs (oldAttrs: { catppuccin-vsc = final.catppuccin-vsc.overrideAttrs (oldAttrs: {
# accent = "mauve"; accent = "mauve";
# boldKeywords = true; boldKeywords = true;
# italicComments = true; italicComments = true;
# italicKeywords = true; italicKeywords = true;
# extraBordersEnabled = false; extraBordersEnabled = false;
# workbenchMode = "default"; workbenchMode = "default";
# bracketMode = "rainbow"; bracketMode = "rainbow";
# colorOverrides = {}; colorOverrides = {};
# customUIColors = {}; customUIColors = {};
# }); });
# }) })
# (final: prev: { (final: prev: {
# catppuccin-vsc = final.catppuccin-vsc.overrideAttrs (oldAttrs: { catppuccin-vsc = final.catppuccin-vsc.overrideAttrs (oldAttrs: {
# accent = "mauve"; accent = "mauve";
# boldKeywords = true; boldKeywords = true;
# italicComments = true; italicComments = true;
# italicKeywords = true; italicKeywords = true;
# extraBordersEnabled = false; extraBordersEnabled = false;
# workbenchMode = "default"; workbenchMode = "default";
# bracketMode = "rainbow"; bracketMode = "rainbow";
# colorOverrides = {}; colorOverrides = {};
# customUIColors = {}; customUIColors = {};
# }); });
# }) })
]; ];
config = {
permittedInsecurePackages = ["cinny-4.2.3" "cinny-unwrapped-4.2.3" "cinny-4.2.2" "cinny-unwrapped-4.2.2"];
# Configure your nixpkgs instance # Configure your nixpkgs instance
config = {
# Disable if you don't want unfree packages # Disable if you don't want unfree packages
allowUnfree = true; allowUnfree = true;
}; };
}; };
systemd.user = {
# services."nextcloud-autosync@" = {
# Unit = {
# Description = "Auto sync Nextcloud";
# After = "network-online.target";
# PartOf = ["nextcloud-autosyncs.target"];
# };
# Service = {
# Type = "simple";
# ExecStart = "${pkgs.nextcloud-client}/bin/nextcloudcmd -h -n --path /%i /home/lillian/%i https://nextcloud.gladtherescake.eu";
# TimeoutStopSec = "180";
# KillMode = "process";
# KillSignal = "SIGINT";
# };
# Install.WantedBy = ["multi-user.target"];
# };
# targets.nextcloud-autosyncs = {
# Unit = {
# Description = "workers";
# Requires = ["nextcloud-autosync@Music" "nextcloud-autosync@Pictures" "nextcloud-autosync@Scripts" "nextcloud-autosync@Videos" "nextcloud-autosync@Documents"];
# PartOf = "nextcloud-autosyncs.target";
# };
# Install.WantedBy = ["multi-user.target"];
# };
# timers.nextcloud-autosyncs = {
# Unit.Description = "Automatic sync files with Nextcloud when booted up after 5 minutes then rerun every 60 minutes";
# Timer.OnBootSec = "5min";
# Timer.OnUnitActiveSec = "60min";
# Install.WantedBy = ["multi-user.target" "timers.target"];
# };
# Nicely reload system units when changing configs
startServices = "sd-switch";
};
home = { home = {
username = "lillian"; username = "lillian";
homeDirectory = "/home/lillian"; homeDirectory = "/home/lillian";
file = {
Music = {
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Music";
target = "Music";
};
Pictures = {
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Pictures";
target = "Pictures";
};
Screenshots = {
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Pictures/Screenshots";
target = "Screenshots";
};
Scripts = {
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Scripts";
target = "Scripts";
};
Videos = {
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Videos";
target = "Videos";
};
Documents = {
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Documents";
target = "Documents";
};
floorp = {
source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/.mozilla/firefox";
target = ".floorp";
};
}; };
# Add stuff for your user as you see fit: # Add stuff for your user as you see fit:
# programs.neovim.enable = true; # programs.neovim.enable = true;
# home.packages = with pkgs; [ steam ]; # home.packages = with pkgs; [ steam ];
qt.style.catppuccin.apply = true;
programs.freetube.catppuccin.flavor = "macchiato";
packages = with pkgs; [ home.packages = with pkgs; [
# Coding: # Coding:
direnv direnv
git git
git-credential-manager git-credential-manager
git-credential-manager git-credential-manager
ruff ruff
kate
# Chat applications: # Chat applications:
signal-desktop signal-desktop
vesktop vesktop
# cinny-desktop cinny-desktop
# Gaming: # Gaming:
prismlauncher prismlauncher
@ -160,9 +99,8 @@
gamescope gamescope
# Multimedia: # Multimedia:
freetube
vlc vlc
fcast-receiver
fcast-client
# Office applications: # Office applications:
onlyoffice-bin onlyoffice-bin
@ -201,38 +139,39 @@
firefoxpwa firefoxpwa
ungoogled-chromium ungoogled-chromium
]; ];
};
programs = {
# vscode = {
# enable = true;
# package = pkgs.vscodium;
# extensions = with pkgs.vscode-extensions; [
# catppuccin.catppuccin-vsc
# catppuccin.catppuccin-vsc-icons
# charliermarsh.ruff
# eamodio.gitlens
# github.vscode-pull-request-github
# jnoortheen.nix-ide
# kamadorueda.alejandra
# mkhl.direnv
# ms-toolsai.jupyter
# ms-pyright.pyright
# oderwat.indent-rainbow
# rust-lang.rust-analyzer
# yzhang.markdown-all-in-one
# ];
# };
obs-studio.enable = true; programs.vscode = {
obs-studio.plugins = with pkgs.obs-studio-plugins; [ enable = true;
package = pkgs.vscodium;
extensions = with pkgs.vscode-extensions; [
catppuccin.catppuccin-vsc
catppuccin.catppuccin-vsc-icons
charliermarsh.ruff
eamodio.gitlens
github.vscode-pull-request-github
jnoortheen.nix-ide
kamadorueda.alejandra
mkhl.direnv
ms-toolsai.jupyter
ms-pyright.pyright
oderwat.indent-rainbow
rust-lang.rust-analyzer
yzhang.markdown-all-in-one
];
};
programs.obs-studio = {
enable = true;
plugins = with pkgs.obs-studio-plugins; [
wlrobs wlrobs
obs-backgroundremoval obs-backgroundremoval
obs-pipewire-audio-capture obs-pipewire-audio-capture
]; ];
};
# Enable home-manager and git # Enable home-manager and git
home-manager.enable = true; programs.home-manager.enable = true;
git = { programs.git = {
enable = true; enable = true;
userEmail = "git@lillianviolet.dev"; userEmail = "git@lillianviolet.dev";
userName = "Lillian-Violet"; userName = "Lillian-Violet";
@ -248,11 +187,10 @@
"venv" "venv"
"venv" "venv"
]; ];
signing.format = "ssh";
}; };
gpg.enable = true; programs.gpg.enable = true;
gpg.settings = { programs.gpg.settings = {
default-key = "0d43 5407 034c 2ad9 2d42 799d 280e 061d ff60 0f0d"; default-key = "0d43 5407 034c 2ad9 2d42 799d 280e 061d ff60 0f0d";
default-recipient-self = true; default-recipient-self = true;
auto-key-locate = "local,wkd,keyserver"; auto-key-locate = "local,wkd,keyserver";
@ -262,9 +200,12 @@
keyserver-options = "honor-keyserver-url"; keyserver-options = "honor-keyserver-url";
no-autostart = true; no-autostart = true;
}; };
services.kdeconnect = {
package = pkgs.kdePackages.kdeconnect-kde;
enable = true;
}; };
services = {
kdeconnect.package = pkgs.kdePackages.kdeconnect-kde; # Nicely reload system units when changing configs
kdeconnect.enable = true; systemd.user.startServices = "sd-switch";
};
} }

View file

@ -24,36 +24,12 @@
"toolkit.legacyUserProfileCustomizations.stylesheets" = true; "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.searchEngines" = "DuckDuckGo"; "browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.searchEngines" = "DuckDuckGo";
}; };
bookmarks = {
force = true;
settings = [
{
name = "DIY HRT";
toolbar = false;
bookmarks = [ bookmarks = [
{ {
name = "estrogen production"; name = "estrogen production";
tags = ["chemistry" "oestrogen" "estrogen" "diy"]; tags = ["chemistry" "oestrogen" "estrogen" "diy"];
url = "https://crimethinc.com/2022/12/15/producing-transdermal-estrogen-a-do-it-yourself-guide"; url = "https://crimethinc.com/2022/12/15/producing-transdermal-estrogen-a-do-it-yourself-guide";
} }
{
name = "DIY HRT info";
tags = ["guides" "wiki" "information" "DIY" "HRT" "estrogen" "testosterone"];
url = "https://diyhrt.info/";
}
];
}
{
name = "repair resources";
toolbar = false;
bookmarks = [
{
name = "manuals library";
tags = ["repair" "manuals" "documentation"];
url = "https://manualslib.com/";
}
];
}
{ {
name = "Nix sites"; name = "Nix sites";
toolbar = false; toolbar = false;
@ -70,24 +46,7 @@
} }
]; ];
} }
{
name = "Games";
toolbar = false;
bookmarks = [
{
name = "PoE2 build sorceres";
tags = ["PoE" "PoE2" "path of exile" "path of exile 2" "games" "guides" "build" "sorcerer" "sorceres"];
url = "https://maxroll.gg/poe2/planner/caeye0hz";
}
{
name = "PoE2 build ranger";
tags = ["PoE" "PoE2" "path of exile" "path of exile 2" "games" "guides" "build" "bow" "ranger"];
url = "https://maxroll.gg/poe2/build-guides/deadeye-gas-arrow-leveling-guide";
}
]; ];
}
];
};
}; };
}; };
} }

View file

@ -1,9 +1,10 @@
{...}: { {...}: {
programs.foot = { programs.foot = {
enable = true; enable = true;
# catppuccin.enable = true; catppuccin.enable = true;
settings = { settings = {
main = { main = {
font = "Fira Code:size=11";
}; };
mouse = { mouse = {

View file

@ -1,7 +0,0 @@
{...}: {
home.file."settings.db" = {
source = ./settings.db;
target = ".config/freetube/settings.db";
force = true;
};
}

View file

@ -1,24 +0,0 @@
{"_id":"allowDashAv1Formats","value":true}
{"_id":"barColor","value":true}
{"_id":"baseTheme","value":"catppuccinMocha"}
{"_id":"bounds","value":{"x":0,"y":66,"width":2560,"height":1374,"maximized":true,"fullScreen":false}}
{"_id":"defaultQuality","value":"1080"}
{"_id":"fetchSubscriptionsAutomatically","value":false}
{"_id":"generalAutoLoadMorePaginatedItemsEnabled","value":true}
{"_id":"hideActiveSubscriptions","value":true}
{"_id":"hidePopularVideos","value":true}
{"_id":"hideRecommendedVideos","value":true}
{"_id":"hideSubscriptionsCommunity","value":true}
{"_id":"hideSubscriptionsLive","value":true}
{"_id":"hideSubscriptionsShorts","value":true}
{"_id":"hideSubscriptionsVideos","value":true}
{"_id":"hideTrendingVideos","value":true}
{"_id":"landingPage","value":"history"}
{"_id":"mainColor","value":"CatppuccinMochaMauve"}
{"_id":"playNextVideo","value":false}
{"_id":"quickBookmarkTargetPlaylistId","value":"favorites"}
{"_id":"secColor","value":"CatppuccinMochaMauve"}
{"_id":"showDistractionFreeTitles","value":true}
{"_id":"useDeArrowThumbnails","value":true}
{"_id":"useDeArrowTitles","value":true}
{"_id":"useSponsorBlock","value":true}

View file

@ -1,45 +1,7 @@
{osConfig, ...}: { {
home.file.".config/kdeconnect/config" = {
text = ''
[General]
keyAlgorithm=EC
name=${osConfig.networking.hostName}
customDevices=10.0.0.2,10.0.0.3,10.0.0.4,10.0.0.5
'';
target = ".config/kdeconnect/config";
force = true;
};
programs.plasma = { programs.plasma = {
enable = true; enable = true;
desktop.mouseActions.verticalScroll = "switchVirtualDesktop"; desktop.mouseActions.verticalScroll = "switchVirtualDesktop";
# kscreenlocker.appearance.wallpaper = "${osConfig.stylix.image}";
# fonts = {
# fixedWidth = {
# pointSize = 11;
# family = "${osConfig.stylix.fonts.monospace.name}";
# };
# general = {
# pointSize = 11;
# family = "${osConfig.stylix.fonts.serif.name}";
# };
# menu = {
# pointSize = 11;
# family = "${osConfig.stylix.fonts.sansSerif.name}";
# };
# small = {
# pointSize = 11;
# family = "${osConfig.stylix.fonts.sansSerif.name}";
# };
# toolbar = {
# pointSize = 11;
# family = "${osConfig.stylix.fonts.sansSerif.name}";
# };
# windowTitle = {
# pointSize = 11;
# family = "${osConfig.stylix.fonts.sansSerif.name}";
# };
# };
panels = [ panels = [
{ {
alignment = "left"; alignment = "left";
@ -122,13 +84,13 @@
"applications:org.kde.dolphin.desktop" "applications:org.kde.dolphin.desktop"
"applications:signal-desktop.desktop" "applications:signal-desktop.desktop"
"applications:vesktop.desktop" "applications:vesktop.desktop"
"applications:thunderbird.desktop"
"applications:cinny.desktop" "applications:cinny.desktop"
"applications:steam.desktop" "applications:steam.desktop"
"applications:noisetorch.desktop" "applications:noisetorch.desktop"
"applications:org.kde.plasma-systemmonitor.desktop" "applications:org.kde.plasma-systemmonitor.desktop"
"applications:foot.desktop" "applications:org.codeberg.dnkl.foot.desktop"
"applications:nitrokey-app.desktop" "applications:nitrokey-app.desktop"
"applications:codium.desktop"
"applications:freetube.desktop" "applications:freetube.desktop"
]; ];
}; };
@ -166,15 +128,24 @@
"ksmserver"."Reboot Without Confirmation" = "none,,Reboot Without Confirmation"; "ksmserver"."Reboot Without Confirmation" = "none,,Reboot Without Confirmation";
"ksmserver"."Shut Down" = "none,,Shut Down"; "ksmserver"."Shut Down" = "none,,Shut Down";
"kwin"."Activate Window Demanding Attention" = "Meta+Ctrl+A"; "kwin"."Activate Window Demanding Attention" = "Meta+Ctrl+A";
"kwin"."Cycle Overview" = [];
"kwin"."Cycle Overview Opposite" = [];
"kwin"."Decrease Opacity" = "none,,Decrease Opacity of Active Window by 5%";
"kwin"."Edit Tiles" = "Meta+T"; "kwin"."Edit Tiles" = "Meta+T";
"kwin"."Expose" = "Ctrl+F9"; "kwin"."Expose" = "Ctrl+F9";
"kwin"."ExposeAll" = ["Ctrl+F10" "Launch (C),Ctrl+F10" "Launch (C),Toggle Present Windows (All desktops)"]; "kwin"."ExposeAll" = ["Ctrl+F10" "Launch (C),Ctrl+F10" "Launch (C),Toggle Present Windows (All desktops)"];
"kwin"."ExposeClass" = "Ctrl+F7"; "kwin"."ExposeClass" = "Ctrl+F7";
"kwin"."ExposeClassCurrentDesktop" = [];
"kwin"."Grid View" = "Meta+G"; "kwin"."Grid View" = "Meta+G";
"kwin"."Increase Opacity" = "none,,Increase Opacity of Active Window by 5%"; "kwin"."Increase Opacity" = "none,,Increase Opacity of Active Window by 5%";
"kwin"."Kill Window" = "Meta+Ctrl+Esc"; "kwin"."Kill Window" = "Meta+Ctrl+Esc";
"kwin"."Move Tablet to Next Output" = [];
"kwin"."MoveMouseToCenter" = "Meta+F6"; "kwin"."MoveMouseToCenter" = "Meta+F6";
"kwin"."MoveMouseToFocus" = "Meta+F5"; "kwin"."MoveMouseToFocus" = "Meta+F5";
"kwin"."MoveZoomDown" = [];
"kwin"."MoveZoomLeft" = [];
"kwin"."MoveZoomRight" = [];
"kwin"."MoveZoomUp" = [];
"kwin"."Overview" = "Meta+W"; "kwin"."Overview" = "Meta+W";
"kwin"."Setup Window Shortcut" = "none,,Setup Window Shortcut"; "kwin"."Setup Window Shortcut" = "none,,Setup Window Shortcut";
"kwin"."Show Desktop" = "Meta+D"; "kwin"."Show Desktop" = "Meta+D";
@ -187,47 +158,151 @@
"kwin"."Switch Window Right" = "Meta+Alt+Right"; "kwin"."Switch Window Right" = "Meta+Alt+Right";
"kwin"."Switch Window Up" = "Meta+Alt+Up"; "kwin"."Switch Window Up" = "Meta+Alt+Up";
"kwin"."Switch to Desktop 1" = "Ctrl+F1"; "kwin"."Switch to Desktop 1" = "Ctrl+F1";
"kwin"."Switch to Desktop 10" = "none,,Switch to Desktop 10";
"kwin"."Switch to Desktop 11" = "none,,Switch to Desktop 11";
"kwin"."Switch to Desktop 12" = "none,,Switch to Desktop 12";
"kwin"."Switch to Desktop 13" = "none,,Switch to Desktop 13";
"kwin"."Switch to Desktop 14" = "none,,Switch to Desktop 14";
"kwin"."Switch to Desktop 15" = "none,,Switch to Desktop 15";
"kwin"."Switch to Desktop 16" = "none,,Switch to Desktop 16";
"kwin"."Switch to Desktop 17" = "none,,Switch to Desktop 17";
"kwin"."Switch to Desktop 18" = "none,,Switch to Desktop 18";
"kwin"."Switch to Desktop 19" = "none,,Switch to Desktop 19";
"kwin"."Switch to Desktop 2" = "Ctrl+F2"; "kwin"."Switch to Desktop 2" = "Ctrl+F2";
"kwin"."Switch to Desktop 20" = "none,,Switch to Desktop 20";
"kwin"."Switch to Desktop 3" = "Ctrl+F3"; "kwin"."Switch to Desktop 3" = "Ctrl+F3";
"kwin"."Switch to Desktop 4" = "Ctrl+F4"; "kwin"."Switch to Desktop 4" = "Ctrl+F4";
"kwin"."Switch to Desktop 5" = "none,,Switch to Desktop 5";
"kwin"."Switch to Desktop 6" = "none,,Switch to Desktop 6";
"kwin"."Switch to Desktop 7" = "none,,Switch to Desktop 7";
"kwin"."Switch to Desktop 8" = "none,,Switch to Desktop 8";
"kwin"."Switch to Desktop 9" = "none,,Switch to Desktop 9";
"kwin"."Switch to Next Desktop" = "none,,Switch to Next Desktop";
"kwin"."Switch to Next Screen" = "none,,Switch to Next Screen";
"kwin"."Switch to Previous Desktop" = "none,,Switch to Previous Desktop";
"kwin"."Switch to Previous Screen" = "none,,Switch to Previous Screen";
"kwin"."Switch to Screen 0" = "none,,Switch to Screen 0";
"kwin"."Switch to Screen 1" = "none,,Switch to Screen 1";
"kwin"."Switch to Screen 2" = "none,,Switch to Screen 2";
"kwin"."Switch to Screen 3" = "none,,Switch to Screen 3";
"kwin"."Switch to Screen 4" = "none,,Switch to Screen 4";
"kwin"."Switch to Screen 5" = "none,,Switch to Screen 5";
"kwin"."Switch to Screen 6" = "none,,Switch to Screen 6";
"kwin"."Switch to Screen 7" = "none,,Switch to Screen 7";
"kwin"."Switch to Screen Above" = "none,,Switch to Screen Above";
"kwin"."Switch to Screen Below" = "none,,Switch to Screen Below";
"kwin"."Switch to Screen to the Left" = "none,,Switch to Screen to the Left";
"kwin"."Switch to Screen to the Right" = "none,,Switch to Screen to the Right";
"kwin"."Toggle Night Color" = [];
"kwin"."Toggle Window Raise/Lower" = "none,,Toggle Window Raise/Lower";
"kwin"."Walk Through Desktop List" = [];
"kwin"."Walk Through Desktop List (Reverse)" = [];
"kwin"."Walk Through Desktops" = [];
"kwin"."Walk Through Desktops (Reverse)" = [];
"kwin"."Walk Through Windows" = "Alt+Tab"; "kwin"."Walk Through Windows" = "Alt+Tab";
"kwin"."Walk Through Windows (Reverse)" = "Alt+Shift+Tab"; "kwin"."Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
"kwin"."Walk Through Windows Alternative" = "none,,Walk Through Windows Alternative";
"kwin"."Walk Through Windows Alternative (Reverse)" = "none,,Walk Through Windows Alternative (Reverse)";
"kwin"."Walk Through Windows of Current Application" = "Alt+`"; "kwin"."Walk Through Windows of Current Application" = "Alt+`";
"kwin"."Walk Through Windows of Current Application (Reverse)" = "Alt+~"; "kwin"."Walk Through Windows of Current Application (Reverse)" = "Alt+~";
"kwin"."Walk Through Windows of Current Application Alternative" = "none,,Walk Through Windows of Current Application Alternative";
"kwin"."Walk Through Windows of Current Application Alternative (Reverse)" = "none,,Walk Through Windows of Current Application Alternative (Reverse)";
"kwin"."Window Above Other Windows" = "none,,Keep Window Above Others";
"kwin"."Window Below Other Windows" = "none,,Keep Window Below Others";
"kwin"."Window Close" = "Alt+F4"; "kwin"."Window Close" = "Alt+F4";
"kwin"."Window Fullscreen" = "none,,Make Window Fullscreen";
"kwin"."Window Grow Horizontal" = "none,,Expand Window Horizontally";
"kwin"."Window Grow Vertical" = "none,,Expand Window Vertically";
"kwin"."Window Lower" = "none,,Lower Window";
"kwin"."Window Maximize" = "Meta+PgUp"; "kwin"."Window Maximize" = "Meta+PgUp";
"kwin"."Window Maximize Horizontal" = "none,,Maximize Window Horizontally";
"kwin"."Window Maximize Vertical" = "none,,Maximize Window Vertically";
"kwin"."Window Minimize" = "Meta+PgDown"; "kwin"."Window Minimize" = "Meta+PgDown";
"kwin"."Window Move" = "none,,Move Window";
"kwin"."Window Move Center" = "none,,Move Window to the Center";
"kwin"."Window No Border" = "none,,Toggle Window Titlebar and Frame";
"kwin"."Window On All Desktops" = "none,,Keep Window on All Desktops";
"kwin"."Window One Desktop Down" = "Meta+Ctrl+Shift+Down"; "kwin"."Window One Desktop Down" = "Meta+Ctrl+Shift+Down";
"kwin"."Window One Desktop Up" = "Meta+Ctrl+Shift+Up"; "kwin"."Window One Desktop Up" = "Meta+Ctrl+Shift+Up";
"kwin"."Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left"; "kwin"."Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left";
"kwin"."Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right"; "kwin"."Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right";
"kwin"."Window One Screen Down" = "none,,Move Window One Screen Down";
"kwin"."Window One Screen Up" = "none,,Move Window One Screen Up";
"kwin"."Window One Screen to the Left" = "none,,Move Window One Screen to the Left";
"kwin"."Window One Screen to the Right" = "none,,Move Window One Screen to the Right";
"kwin"."Window Operations Menu" = "Alt+F3"; "kwin"."Window Operations Menu" = "Alt+F3";
"kwin"."Window Pack Down" = "none,,Move Window Down";
"kwin"."Window Pack Left" = "none,,Move Window Left";
"kwin"."Window Pack Right" = "none,,Move Window Right";
"kwin"."Window Pack Up" = "none,,Move Window Up";
"kwin"."Window Quick Tile Bottom" = "Meta+Down"; "kwin"."Window Quick Tile Bottom" = "Meta+Down";
"kwin"."Window Quick Tile Bottom Left" = "none,,Quick Tile Window to the Bottom Left";
"kwin"."Window Quick Tile Bottom Right" = "none,,Quick Tile Window to the Bottom Right";
"kwin"."Window Quick Tile Left" = "Meta+Left"; "kwin"."Window Quick Tile Left" = "Meta+Left";
"kwin"."Window Quick Tile Right" = "Meta+Right"; "kwin"."Window Quick Tile Right" = "Meta+Right";
"kwin"."Window Quick Tile Top" = "Meta+Up"; "kwin"."Window Quick Tile Top" = "Meta+Up";
"kwin"."Window Quick Tile Top Left" = "none,,Quick Tile Window to the Top Left";
"kwin"."Window Quick Tile Top Right" = "none,,Quick Tile Window to the Top Right";
"kwin"."Window Raise" = "none,,Raise Window";
"kwin"."Window Resize" = "none,,Resize Window";
"kwin"."Window Shade" = "none,,Shade Window";
"kwin"."Window Shrink Horizontal" = "none,,Shrink Window Horizontally";
"kwin"."Window Shrink Vertical" = "none,,Shrink Window Vertically";
"kwin"."Window to Desktop 1" = "none,,Window to Desktop 1";
"kwin"."Window to Desktop 10" = "none,,Window to Desktop 10";
"kwin"."Window to Desktop 11" = "none,,Window to Desktop 11";
"kwin"."Window to Desktop 12" = "none,,Window to Desktop 12";
"kwin"."Window to Desktop 13" = "none,,Window to Desktop 13";
"kwin"."Window to Desktop 14" = "none,,Window to Desktop 14";
"kwin"."Window to Desktop 15" = "none,,Window to Desktop 15";
"kwin"."Window to Desktop 16" = "none,,Window to Desktop 16";
"kwin"."Window to Desktop 17" = "none,,Window to Desktop 17";
"kwin"."Window to Desktop 18" = "none,,Window to Desktop 18";
"kwin"."Window to Desktop 19" = "none,,Window to Desktop 19";
"kwin"."Window to Desktop 2" = "none,,Window to Desktop 2";
"kwin"."Window to Desktop 20" = "none,,Window to Desktop 20";
"kwin"."Window to Desktop 3" = "none,,Window to Desktop 3";
"kwin"."Window to Desktop 4" = "none,,Window to Desktop 4";
"kwin"."Window to Desktop 5" = "none,,Window to Desktop 5";
"kwin"."Window to Desktop 6" = "none,,Window to Desktop 6";
"kwin"."Window to Desktop 7" = "none,,Window to Desktop 7";
"kwin"."Window to Desktop 8" = "none,,Window to Desktop 8";
"kwin"."Window to Desktop 9" = "none,,Window to Desktop 9";
"kwin"."Window to Next Desktop" = "none,,Window to Next Desktop";
"kwin"."Window to Next Screen" = "Meta+Shift+Right"; "kwin"."Window to Next Screen" = "Meta+Shift+Right";
"kwin"."Window to Previous Desktop" = "none,,Window to Previous Desktop"; "kwin"."Window to Previous Desktop" = "none,,Window to Previous Desktop";
"kwin"."Window to Previous Screen" = "Meta+Shift+Left"; "kwin"."Window to Previous Screen" = "Meta+Shift+Left";
"kwin"."Window to Screen 0" = "none,,Move Window to Screen 0";
"kwin"."Window to Screen 1" = "none,,Move Window to Screen 1";
"kwin"."Window to Screen 2" = "none,,Move Window to Screen 2";
"kwin"."Window to Screen 3" = "none,,Move Window to Screen 3";
"kwin"."Window to Screen 4" = "none,,Move Window to Screen 4";
"kwin"."Window to Screen 5" = "none,,Move Window to Screen 5";
"kwin"."Window to Screen 6" = "none,,Move Window to Screen 6";
"kwin"."Window to Screen 7" = "none,,Move Window to Screen 7";
"kwin"."view_actual_size" = "\\, Meta+0\\, ,Meta+0,Zoom to Actual Size"; "kwin"."view_actual_size" = "\\, Meta+0\\, ,Meta+0,Zoom to Actual Size";
"kwin"."view_zoom_in" = ["Meta++" "Meta+=,Meta++" "Meta+=,Zoom In"]; "kwin"."view_zoom_in" = ["Meta++" "Meta+=,Meta++" "Meta+=,Zoom In"];
"kwin"."view_zoom_out" = "Meta+-"; "kwin"."view_zoom_out" = "Meta+-";
"mediacontrol"."mediavolumedown" = [];
"mediacontrol"."mediavolumeup" = "none,,Media volume up";
"mediacontrol"."nextmedia" = "Media Next"; "mediacontrol"."nextmedia" = "Media Next";
"mediacontrol"."pausemedia" = "Media Pause"; "mediacontrol"."pausemedia" = "Media Pause";
"mediacontrol"."playmedia" = "none,,Play media playback";
"mediacontrol"."playpausemedia" = "Media Play"; "mediacontrol"."playpausemedia" = "Media Play";
"mediacontrol"."previousmedia" = "Media Previous"; "mediacontrol"."previousmedia" = "Media Previous";
"mediacontrol"."stopmedia" = "Media Stop"; "mediacontrol"."stopmedia" = "Media Stop";
"org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard Brightness Down"; "org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard Brightness Down";
"org_kde_powerdevil"."Decrease Screen Brightness" = ["Monitor Brightness Down" "Ctrl+Volume Down"]; "org_kde_powerdevil"."Decrease Screen Brightness" = "Monitor Brightness Down";
"org_kde_powerdevil"."Decrease Screen Brightness Small" = ["Monitor Brightness Down" "Ctrl+Shift+Volume Down"]; "org_kde_powerdevil"."Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down";
"org_kde_powerdevil"."Hibernate" = "Hibernate"; "org_kde_powerdevil"."Hibernate" = "Hibernate";
"org_kde_powerdevil"."Increase Keyboard Brightness" = "Keyboard Brightness Up"; "org_kde_powerdevil"."Increase Keyboard Brightness" = "Keyboard Brightness Up";
"org_kde_powerdevil"."Increase Screen Brightness" = ["Monitor Brightness Up" "Ctrl+Volume Up"]; "org_kde_powerdevil"."Increase Screen Brightness" = "Monitor Brightness Up";
"org_kde_powerdevil"."Increase Screen Brightness Small" = ["Shift+Monitor Brightness Up" "Ctrl+Shift+Volume Up"]; "org_kde_powerdevil"."Increase Screen Brightness Small" = "Shift+Monitor Brightness Up";
"org_kde_powerdevil"."PowerDown" = "Power Down"; "org_kde_powerdevil"."PowerDown" = "Power Down";
"org_kde_powerdevil"."PowerOff" = "Power Off"; "org_kde_powerdevil"."PowerOff" = "Power Off";
"org_kde_powerdevil"."Sleep" = "Sleep"; "org_kde_powerdevil"."Sleep" = "Sleep";
"org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off"; "org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off";
"org_kde_powerdevil"."Turn Off Screen" = [];
"org_kde_powerdevil"."powerProfile" = ["Battery" "Meta+B,Battery" "Meta+B,Switch Power Profile"]; "org_kde_powerdevil"."powerProfile" = ["Battery" "Meta+B,Battery" "Meta+B,Switch Power Profile"];
"plasmashell"."activate application launcher" = ["Meta" "Alt+F1,Meta" "Alt+F1,Activate Application Launcher"]; "plasmashell"."activate application launcher" = ["Meta" "Alt+F1,Meta" "Alt+F1,Activate Application Launcher"];
"plasmashell"."activate task manager entry 1" = "Meta+1"; "plasmashell"."activate task manager entry 1" = "Meta+1";
@ -243,18 +318,29 @@
"plasmashell"."clear-history" = "none,,Clear Clipboard History"; "plasmashell"."clear-history" = "none,,Clear Clipboard History";
"plasmashell"."clipboard_action" = "Meta+Ctrl+X"; "plasmashell"."clipboard_action" = "Meta+Ctrl+X";
"plasmashell"."cycle-panels" = "Meta+Alt+P"; "plasmashell"."cycle-panels" = "Meta+Alt+P";
"plasmashell"."cycleNextAction" = "none,,Next History Item";
"plasmashell"."cyclePrevAction" = "none,,Previous History Item";
"plasmashell"."edit_clipboard" = []; "plasmashell"."edit_clipboard" = [];
"plasmashell"."manage activities" = "Meta+Q"; "plasmashell"."manage activities" = "Meta+Q";
"plasmashell"."next activity" = "\\, \\, ,none,Walk through activities";
"plasmashell"."previous activity" = ",none,Walk through activities (Reverse)";
"plasmashell"."repeat_action" = "Meta+Ctrl+R"; "plasmashell"."repeat_action" = "Meta+Ctrl+R";
"plasmashell"."show dashboard" = "Ctrl+F12"; "plasmashell"."show dashboard" = "Ctrl+F12";
"plasmashell"."show-barcode" = "none,,Show Barcode";
"plasmashell"."show-on-mouse-pos" = "Meta+V"; "plasmashell"."show-on-mouse-pos" = "Meta+V";
"plasmashell"."stop current activity" = "Meta+S"; "plasmashell"."stop current activity" = "Meta+S";
"plasmashell"."switch to next activity" = "none,,Switch to Next Activity";
"plasmashell"."switch to previous activity" = "none,,Switch to Previous Activity";
"plasmashell"."toggle do not disturb" = "none,,Toggle do not disturb";
"services/org.kde.krunner.desktop"."_launch" = ["Alt+Space" "Alt+F2" "Ctrl+Shift+Space" "Search"]; "services/org.kde.krunner.desktop"."_launch" = ["Alt+Space" "Alt+F2" "Ctrl+Shift+Space" "Search"];
"services/org.kde.plasma-systemmonitor.desktop"."_launch" = "Ctrl+Esc"; "services/org.kde.plasma-systemmonitor.desktop"."_launch" = "Ctrl+Esc";
"services/org.kde.spectacle.desktop"."ActiveWindowScreenShot" = ["Meta+Print" "Ctrl+!"]; "services/org.kde.spectacle.desktop"."ActiveWindowScreenShot" = ["Meta+Print" "Ctrl+!"];
"services/org.kde.spectacle.desktop"."CurrentMonitorScreenShot" = "Ctrl+#"; "services/org.kde.spectacle.desktop"."CurrentMonitorScreenShot" = "Ctrl+#";
"services/org.kde.spectacle.desktop"."FullScreenScreenShot" = ["Ctrl+$" "Shift+Print"]; "services/org.kde.spectacle.desktop"."FullScreenScreenShot" = ["Ctrl+$" "Shift+Print"];
"services/org.kde.spectacle.desktop"."OpenWithoutScreenshot" = "Ctrl+^"; "services/org.kde.spectacle.desktop"."OpenWithoutScreenshot" = "Ctrl+^";
"services/org.kde.spectacle.desktop"."RecordRegion" = [];
"services/org.kde.spectacle.desktop"."RecordScreen" = [];
"services/org.kde.spectacle.desktop"."RecordWindow" = [];
"services/org.kde.spectacle.desktop"."RectangularRegionScreenShot" = ["Ctrl+@" "Meta+Shift+Print"]; "services/org.kde.spectacle.desktop"."RectangularRegionScreenShot" = ["Ctrl+@" "Meta+Shift+Print"];
"services/org.kde.spectacle.desktop"."WindowUnderCursorScreenShot" = ["Meta+Ctrl+Print" "Ctrl+%"]; "services/org.kde.spectacle.desktop"."WindowUnderCursorScreenShot" = ["Meta+Ctrl+Print" "Ctrl+%"];
"services/org.kde.spectacle.desktop"."_launch" = "Print"; "services/org.kde.spectacle.desktop"."_launch" = "Print";
@ -1025,7 +1111,7 @@
"kwinrc"."NightColor"."LatitudeFixed" = 52.31865273558926; "kwinrc"."NightColor"."LatitudeFixed" = 52.31865273558926;
"kwinrc"."NightColor"."LongitudeFixed" = 5.44; "kwinrc"."NightColor"."LongitudeFixed" = 5.44;
"kwinrc"."NightColor"."Mode" = "Location"; "kwinrc"."NightColor"."Mode" = "Location";
"kwinrc"."NightColor"."NightTemperature" = 2000; "kwinrc"."NightColor"."NightTemperature" = 1400;
"kwinrc"."Plugins"."diminactiveEnabled" = true; "kwinrc"."Plugins"."diminactiveEnabled" = true;
"kwinrc"."Plugins"."dimscreenEnabled" = true; "kwinrc"."Plugins"."dimscreenEnabled" = true;
"kwinrc"."Plugins"."wobblywindowsEnabled" = true; "kwinrc"."Plugins"."wobblywindowsEnabled" = true;

View file

@ -1,7 +0,0 @@
{...}: {
home.file."settings.json" = {
source = ./settings.json;
target = ".config/vesktop/settings/settings.json";
force = true;
};
}

View file

@ -1,602 +0,0 @@
{
"autoUpdate": true,
"autoUpdateNotification": false,
"useQuickCss": true,
"themeLinks": [],
"enabledThemes": [
"stylix.theme.css"
],
"enableReactDevtools": false,
"frameless": false,
"transparent": false,
"winCtrlQ": false,
"disableMinSize": false,
"winNativeTitleBar": false,
"plugins": {
"ChatInputButtonAPI": {
"enabled": true
},
"CommandsAPI": {
"enabled": true
},
"MemberListDecoratorsAPI": {
"enabled": false
},
"MessageAccessoriesAPI": {
"enabled": true
},
"MessageDecorationsAPI": {
"enabled": false
},
"MessageEventsAPI": {
"enabled": true
},
"MessagePopoverAPI": {
"enabled": false
},
"MessageUpdaterAPI": {
"enabled": false
},
"ServerListAPI": {
"enabled": false
},
"UserSettingsAPI": {
"enabled": true
},
"AccountPanelServerProfile": {
"enabled": false
},
"AlwaysAnimate": {
"enabled": false
},
"AlwaysExpandRoles": {
"enabled": false
},
"AlwaysTrust": {
"enabled": true,
"domain": true,
"file": true
},
"AnonymiseFileNames": {
"enabled": true,
"anonymiseByDefault": true,
"method": 0,
"randomisedLength": 7
},
"AppleMusicRichPresence": {
"enabled": false
},
"WebRichPresence (arRPC)": {
"enabled": false
},
"BANger": {
"enabled": false
},
"BetterFolders": {
"enabled": false
},
"BetterGifAltText": {
"enabled": false
},
"BetterGifPicker": {
"enabled": false
},
"BetterNotesBox": {
"enabled": false
},
"BetterRoleContext": {
"enabled": false
},
"BetterRoleDot": {
"enabled": false
},
"BetterSessions": {
"enabled": false
},
"BetterSettings": {
"enabled": false
},
"BetterUploadButton": {
"enabled": false
},
"BiggerStreamPreview": {
"enabled": false
},
"BlurNSFW": {
"enabled": false
},
"CallTimer": {
"enabled": false
},
"ClearURLs": {
"enabled": false
},
"ClientTheme": {
"enabled": false
},
"ColorSighted": {
"enabled": false
},
"ConsoleJanitor": {
"enabled": false
},
"ConsoleShortcuts": {
"enabled": false
},
"CopyEmojiMarkdown": {
"enabled": false
},
"CopyFileContents": {
"enabled": false
},
"CopyUserURLs": {
"enabled": false
},
"CrashHandler": {
"enabled": true
},
"CtrlEnterSend": {
"enabled": false
},
"CustomRPC": {
"enabled": false
},
"CustomIdle": {
"enabled": false
},
"Dearrow": {
"enabled": false
},
"Decor": {
"enabled": false
},
"DisableCallIdle": {
"enabled": false
},
"DontRoundMyTimestamps": {
"enabled": false
},
"EmoteCloner": {
"enabled": false
},
"Experiments": {
"enabled": false
},
"F8Break": {
"enabled": false
},
"FakeNitro": {
"enabled": true,
"enableEmojiBypass": true,
"emojiSize": 48,
"transformEmojis": true,
"enableStickerBypass": true,
"stickerSize": 160,
"transformStickers": true,
"transformCompoundSentence": false,
"enableStreamQualityBypass": true,
"useHyperLinks": true,
"hyperLinkText": "{{NAME}}",
"disableEmbedPermissionCheck": false
},
"FakeProfileThemes": {
"enabled": false
},
"FavoriteEmojiFirst": {
"enabled": false
},
"FavoriteGifSearch": {
"enabled": false
},
"FixCodeblockGap": {
"enabled": false
},
"FixSpotifyEmbeds": {
"enabled": false
},
"FixYoutubeEmbeds": {
"enabled": false
},
"ForceOwnerCrown": {
"enabled": false
},
"FriendInvites": {
"enabled": false
},
"FriendsSince": {
"enabled": false
},
"FullSearchContext": {
"enabled": false
},
"GameActivityToggle": {
"enabled": false
},
"GifPaste": {
"enabled": false
},
"GreetStickerPicker": {
"enabled": false
},
"HideAttachments": {
"enabled": false
},
"iLoveSpam": {
"enabled": false
},
"IgnoreActivities": {
"enabled": false
},
"ImageLink": {
"enabled": false
},
"ImageZoom": {
"enabled": false
},
"ImplicitRelationships": {
"enabled": false
},
"InvisibleChat": {
"enabled": false
},
"KeepCurrentChannel": {
"enabled": false
},
"LastFMRichPresence": {
"enabled": false
},
"LoadingQuotes": {
"enabled": false
},
"MemberCount": {
"enabled": true,
"memberList": true,
"toolTip": true
},
"MentionAvatars": {
"enabled": false
},
"MessageClickActions": {
"enabled": false
},
"MessageLatency": {
"enabled": false
},
"MessageLinkEmbeds": {
"enabled": false
},
"MessageLogger": {
"enabled": false
},
"MessageTags": {
"enabled": false
},
"MoreCommands": {
"enabled": false
},
"MoreKaomoji": {
"enabled": true
},
"MoreUserTags": {
"enabled": false
},
"Moyai": {
"enabled": false
},
"MutualGroupDMs": {
"enabled": false
},
"NewGuildSettings": {
"enabled": false
},
"NoBlockedMessages": {
"enabled": false
},
"NoDevtoolsWarning": {
"enabled": false
},
"NoF1": {
"enabled": false
},
"NoMaskedUrlPaste": {
"enabled": false
},
"NoMosaic": {
"enabled": false
},
"NoOnboardingDelay": {
"enabled": false
},
"NoPendingCount": {
"enabled": false
},
"NoProfileThemes": {
"enabled": false
},
"NoReplyMention": {
"enabled": false
},
"NoScreensharePreview": {
"enabled": false
},
"NoServerEmojis": {
"enabled": false
},
"NoTypingAnimation": {
"enabled": false
},
"NoUnblockToJump": {
"enabled": false
},
"NormalizeMessageLinks": {
"enabled": false
},
"NotificationVolume": {
"enabled": false
},
"NSFWGateBypass": {
"enabled": false
},
"OnePingPerDM": {
"enabled": false
},
"oneko": {
"enabled": false
},
"OpenInApp": {
"enabled": false
},
"OverrideForumDefaults": {
"enabled": false
},
"PartyMode": {
"enabled": false
},
"PauseInvitesForever": {
"enabled": false
},
"PermissionFreeWill": {
"enabled": false
},
"PermissionsViewer": {
"enabled": false
},
"petpet": {
"enabled": true
},
"PictureInPicture": {
"enabled": false
},
"PinDMs": {
"enabled": false
},
"PlainFolderIcon": {
"enabled": false
},
"PlatformIndicators": {
"enabled": false
},
"PreviewMessage": {
"enabled": false
},
"QuickMention": {
"enabled": false
},
"QuickReply": {
"enabled": false
},
"ReactErrorDecoder": {
"enabled": false
},
"ReadAllNotificationsButton": {
"enabled": false
},
"RelationshipNotifier": {
"enabled": false
},
"ReplaceGoogleSearch": {
"enabled": false
},
"ReplyTimestamp": {
"enabled": false
},
"RevealAllSpoilers": {
"enabled": false
},
"ReverseImageSearch": {
"enabled": false
},
"ReviewDB": {
"enabled": false
},
"RoleColorEverywhere": {
"enabled": false
},
"SecretRingToneEnabler": {
"enabled": false
},
"Summaries": {
"enabled": false
},
"SendTimestamps": {
"enabled": true,
"replaceMessageContents": true
},
"ServerInfo": {
"enabled": false
},
"ServerListIndicators": {
"enabled": false
},
"ShikiCodeblocks": {
"enabled": true,
"useDevIcon": "COLOR",
"theme": "https://raw.githubusercontent.com/shikijs/shiki/0b28ad8ccfbf2615f2d9d38ea8255416b8ac3043/packages/shiki/themes/dracula.json",
"tryHljs": "SECONDARY",
"bgOpacity": 100
},
"ShowAllMessageButtons": {
"enabled": false
},
"ShowConnections": {
"enabled": false
},
"ShowHiddenChannels": {
"enabled": false
},
"ShowHiddenThings": {
"enabled": false
},
"ShowMeYourName": {
"enabled": false
},
"ShowTimeoutDuration": {
"enabled": false
},
"SilentMessageToggle": {
"enabled": false
},
"SilentTyping": {
"enabled": false
},
"SortFriendRequests": {
"enabled": false
},
"SpotifyControls": {
"enabled": false
},
"SpotifyCrack": {
"enabled": false
},
"SpotifyShareCommands": {
"enabled": false
},
"StartupTimings": {
"enabled": false
},
"StickerPaste": {
"enabled": false
},
"StreamerModeOnStream": {
"enabled": false
},
"SuperReactionTweaks": {
"enabled": false
},
"TextReplace": {
"enabled": false
},
"ThemeAttributes": {
"enabled": false
},
"Translate": {
"enabled": false
},
"TypingIndicator": {
"enabled": false
},
"TypingTweaks": {
"enabled": false
},
"Unindent": {
"enabled": false
},
"UnlockedAvatarZoom": {
"enabled": false
},
"UnsuppressEmbeds": {
"enabled": false
},
"UserVoiceShow": {
"enabled": false
},
"USRBG": {
"enabled": false
},
"ValidReply": {
"enabled": false
},
"ValidUser": {
"enabled": false
},
"VoiceChatDoubleClick": {
"enabled": false
},
"VcNarrator": {
"enabled": false
},
"VencordToolbox": {
"enabled": false
},
"ViewIcons": {
"enabled": false
},
"ViewRaw": {
"enabled": false
},
"VoiceDownload": {
"enabled": false
},
"VoiceMessages": {
"enabled": false
},
"VolumeBooster": {
"enabled": false
},
"WebKeybinds": {
"enabled": true
},
"WebScreenShareFixes": {
"enabled": true
},
"WhoReacted": {
"enabled": false
},
"XSOverlay": {
"enabled": false
},
"YoutubeAdblock": {
"enabled": true
},
"NoTrack": {
"enabled": true,
"disableAnalytics": true
},
"WebContextMenus": {
"enabled": true,
"addBack": true
},
"Settings": {
"enabled": true,
"settingsLocation": "aboveNitro"
},
"SupportHelper": {
"enabled": true
},
"UserMessagesPronouns": {
"enabled": true,
"showInMessages": true,
"showSelf": true,
"pronounSource": 0,
"pronounsFormat": "LOWERCASE"
},
"DynamicImageModalAPI": {
"enabled": false
},
"FixImagesQuality": {
"enabled": false
}
},
"notifications": {
"timeout": 5000,
"position": "bottom-right",
"useNative": "not-focused",
"logLimit": 50
},
"cloud": {
"authenticated": false,
"url": "https://api.vencord.dev/",
"settingsSync": false,
"settingsSyncVersion": 1734993730812
}
}

View file

@ -1 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILhwA+ZdP2tEBYQNdzLHZzFHxocyeqzhXI6tFpaZA3PZ lillian@EDI

View file

@ -19,5 +19,5 @@
]; ];
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
home.stateVersion = "25.05"; home.stateVersion = "24.11";
} }

View file

@ -1 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH30G2PJOnI6jnAtxOQV0SpLFUva0adarLZLvaoZvjGE lillian@GLaDOS

View file

@ -16,9 +16,8 @@
]; ];
home.packages = with pkgs; [ home.packages = with pkgs; [
heroic
r2modman r2modman
ryujinx
lutris
]; ];
programs.mangohud = { programs.mangohud = {
@ -27,5 +26,5 @@
}; };
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
home.stateVersion = "25.05"; home.stateVersion = "24.11";
} }

View file

@ -19,5 +19,5 @@
]; ];
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
home.stateVersion = "25.05"; home.stateVersion = "24.11";
} }

View file

@ -18,5 +18,5 @@
]; ];
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
home.stateVersion = "25.05"; home.stateVersion = "24.11";
} }

View file

@ -1 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINl+QRyKBYm+sx0hUiD2u6FBdT7aXsZBGUxm4cb7r24k lillian@GLaDOS

View file

@ -35,5 +35,5 @@
}; };
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
home.stateVersion = "25.05"; home.stateVersion = "24.11";
} }

View file

@ -1 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKRT5MqPrYUhhD5rJFp0PQbkTRtGcNaCaTxEkZw9RiVT lillian@GLaDOS

View file

@ -16,8 +16,6 @@
../../desktop/package-configs/firefox.nix ../../desktop/package-configs/firefox.nix
../../desktop/package-configs/konsole ../../desktop/package-configs/konsole
../../desktop/package-configs/foot ../../desktop/package-configs/foot
../../desktop/package-configs/freetube
../../desktop/package-configs/vesktop
../../shared ../../shared
]; ];
nixpkgs = { nixpkgs = {
@ -58,11 +56,10 @@
freetube freetube
obs-studio obs-studio
vlc vlc
fcast-receiver
fcast-client
# System tools: # System tools:
rage rage
discover
flameshot flameshot
fzf fzf
nextcloud-client nextcloud-client
@ -86,7 +83,7 @@
firefox firefox
ungoogled-chromium ungoogled-chromium
]; ];
programs = {
# # Automount services for user # # Automount services for user
# programs.bashmount.enable = true; # programs.bashmount.enable = true;
# services.udiskie = { # services.udiskie = {
@ -97,18 +94,13 @@
# }; # };
# Enable home-manager and git # Enable home-manager and git
home-manager.enable = true; programs.home-manager.enable = true;
git = { programs.git = {
enable = true; enable = true;
userEmail = "git@lillianviolet.dev"; userEmail = "git@lillianviolet.dev";
userName = "Lillian-Violet"; userName = "Lillian-Violet";
signing.format = "ssh";
}; };
};
# Make the kde screenlock not require a password :)
programs.plasma.kscreenlocker.passwordRequired = false;
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
home.stateVersion = "25.05"; home.stateVersion = "24.11";
} }

View file

@ -1 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMrmRjLF2tVkWeV7EOgUiF77Q9t+rBziRAdOPo92pyvF lillian@GLaDOS

View file

@ -11,7 +11,8 @@
# You can also split up your configuration and import pieces of it here: # You can also split up your configuration and import pieces of it here:
# ./nvim.nix # ./nvim.nix
../../shared ../../package-configs/zsh.nix
../../package-configs/helix.nix
]; ];
nixpkgs = { nixpkgs = {
@ -35,5 +36,5 @@
}; };
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
home.stateVersion = "25.05"; home.stateVersion = "24.05";
} }

View file

@ -1,46 +0,0 @@
[
{
"command": "systemctl poweroff",
"name": "shutdown"
},
{
"command": "systemctl reboot",
"name": "reboot"
},
{
"command": "systemctl suspend",
"name": "suspend"
},
{
"command": "systemctl hibernate",
"name": "hibernate"
},
{
"command": "loginctl lock-session",
"name": "lock"
},
{
"command": "loginctl unlock-session",
"name": "unlock"
},
{
"command": "qdbus org.kde.kglobalaccel /component/kmix invokeShortcut \"mute\"",
"name": "mute"
},
{
"command": "qdbus org.kde.kglobalaccel /component/kmix invokeShortcut \"mic_mute\"",
"name": "mute mic"
},
{
"command": "file=/tmp/$(hostname)_$(date \"+%Y%m%d_%H%M%S\").png; spectacle -bo \"${file}\" && while ! [ -f \"${file}\" ]; do sleep 0.5; done && kdeconnect-cli -d $(kdeconnect-cli -a --id-only) --share \"${file}\"",
"name": "screenshot to phone"
},
{
"command": "file=\"$HOME/Images/WebcamImage_$(date \"+%Y%m%d_%H%M%S\").jpg\"; ffmpeg -f video4linux2 -s 1280x720 -i /dev/video0 -ss 0:0:2 -frames 1 \"${file}\" && kdeconnect-cli -d $(kdeconnect-cli -a --id-only) --share \"${file}\"",
"name": "webcam to phone"
},
{
"command": "",
"name": ""
}
]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

View file

@ -1,11 +1,5 @@
{ {pkgs, ...}: {
pkgs,
osConfig,
lib,
...
}: {
imports = [ imports = [
./ssh
./shell/helix ./shell/helix
./shell/zellij ./shell/zellij
./shell/zsh.nix ./shell/zsh.nix
@ -16,20 +10,11 @@
home = { home = {
username = "lillian"; username = "lillian";
homeDirectory = "/home/lillian"; homeDirectory = "/home/lillian";
file."id_ed25519.pub" = {
source = ../hosts/${osConfig.networking.hostName}/id_ed25519.pub;
target = ".ssh/id_ed25519.pub";
force = true;
};
}; };
catppuccin = { catppuccin = {
enable = true;
flavor = "macchiato"; flavor = "macchiato";
btop.enable = true;
cache.enable = true;
chromium.enable = true;
freetube.enable = true;
freetube.flavor = "macchiato";
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [
@ -42,48 +27,8 @@
broot broot
lazygit lazygit
navi navi
yazi
nil nil
gh
]; ];
programs = { programs.navi.enable = true;
navi.enable = true;
yazi = {
enable = true;
# package = pkgs.yazi.override {
# _7zz = pkgs._7zz.override {useUasm = true;};
# };
};
};
# stylix.enable = true;
# qt.platformTheme.name = lib.mkForce "kvantum";
# qt.style.name = lib.mkForce "kvantum";
# stylix = {
# enable = true;
# autoEnable = true;
# base16Scheme = {
# scheme = "Catppuccin Macchiato";
# author = "https://github.com/catppuccin/catppuccin";
# base00 = "24273a";
# base01 = "1e2030";
# base02 = "363a4f";
# base03 = "494d64";
# base04 = "5b6078";
# base05 = "cad3f5";
# base06 = "f4dbd6";
# base07 = "b7bdf8";
# base08 = "ed8796";
# base09 = "f5a97f";
# base0A = "eed49f";
# base0B = "a6da95";
# base0C = "8bd5ca";
# base0D = "8aadf4";
# base0E = "c6a0f6";
# base0F = "f0c6c6";
# };
# image = ./background.jpg;
# cursor.package = pkgs.catppuccin-cursors;
# cursor.name = "catppuccin-macchiato-mauve-cursors";
# cursor.size = 16;
# };
} }

View file

@ -2,6 +2,6 @@
programs.bat = { programs.bat = {
enable = true; enable = true;
extraPackages = with pkgs.bat-extras; [batdiff batman batgrep batwatch]; extraPackages = with pkgs.bat-extras; [batdiff batman batgrep batwatch];
# catppuccin.enable = true; catppuccin.enable = true;
}; };
} }

View file

@ -16,21 +16,24 @@
'' ''
#! ~/.nix-profile/bin/zsh #! ~/.nix-profile/bin/zsh
is_new() { is_new() {
new=1;
touch /tmp/rjh;
while IFS="" read -r p || [ -n "$p" ]; do
if [ $(pwd) = $p ]; then
new=0; new=0;
mkdir -p /tmp/rjh;
if [[ -a "/tmp/rjh/$(pwd | tr \"/\" -).json" ]]; then
new=1
fi fi
done < /tmp/rjh
return $new return $new
} }
is_new && zellij run -f -n "jupyter console" -- direnv exec . jupyter console --kernel="$1" -f="/tmp/rjh/$(pwd | tr \"/\" -).json" --ZMQTerminalInteractiveShell.include_other_output=True --ZMQTerminalInteractiveShell.other_output_prefix=''' && sleep 3 send_to_jupyter() {
rm -f /tmp/pipe-rjh is_new && zellij run -f -n "jupyter console" -- direnv exec . jupyter console --kernel="$1" -f="/tmp/rjh-$(pwd | tr \"/\" -).json" --ZMQTerminalInteractiveShell.include_other_output=True --ZMQTerminalInteractiveShell.other_output_prefix=''' && zellij action write 29 25 && zellij action write 17
mkfifo /tmp/pipe-rjh pwd >> /tmp/rjh
cat > /tmp/pipe-rjh zellij action write 29 25
zellij run -f -n "REPL" -- direnv exec . just send < /tmp/pipe-rjh zellij action write 17
rm /tmp/pipe-rjh cat | just send
}
send_to_jupyter
''; '';
in { in {
programs.helix = { programs.helix = {
@ -48,11 +51,6 @@ in {
j = ":pipe-to just jupyter"; j = ":pipe-to just jupyter";
}; };
editor = { editor = {
auto-save = {
focus-lost = true;
after-delay.enable = true;
after-delay.timeout = 3000;
};
line-number = "relative"; line-number = "relative";
lsp.display-messages = true; lsp.display-messages = true;
lsp.display-inlay-hints = true; lsp.display-inlay-hints = true;

View file

@ -1,46 +0,0 @@
{
fetchzip,
lib,
rustPlatform,
git,
installShellFiles,
}:
rustPlatform.buildRustPackage rec {
pname = "helix";
version = "25.01.1";
# This release tarball includes source code for the tree-sitter grammars,
# which is not ordinarily part of the repository.
src = fetchzip {
url = "https://github.com/helix-editor/helix/releases/download/${version}/helix-${version}-source.tar.xz";
hash = "";
stripRoot = false;
};
useFetchCargoVendor = true;
cargoHash = "";
nativeBuildInputs = [git installShellFiles];
env.HELIX_DEFAULT_RUNTIME = "${placeholder "out"}/lib/runtime";
postInstall = ''
# not needed at runtime
rm -r runtime/grammars/sources
mkdir -p $out/lib
cp -r runtime $out/lib
installShellCompletion contrib/completion/hx.{bash,fish,zsh}
mkdir -p $out/share/{applications,icons/hicolor/256x256/apps}
cp contrib/Helix.desktop $out/share/applications
cp contrib/helix.png $out/share/icons/hicolor/256x256/apps
'';
meta = with lib; {
description = "Post-modern modal text editor";
homepage = "https://helix-editor.com";
license = licenses.mpl20;
mainProgram = "hx";
maintainers = with maintainers; [danth yusdacra zowoq];
};
}

View file

@ -35,6 +35,7 @@
git_branch.style = "bold blue"; git_branch.style = "bold blue";
directory.style = "bold blue"; directory.style = "bold blue";
direnv.disabled = false; direnv.disabled = false;
palette = "catppuccin_${flavor}";
} }
// builtins.fromTOML (builtins.readFile // builtins.fromTOML (builtins.readFile
(pkgs.fetchFromGitHub (pkgs.fetchFromGitHub

View file

@ -174,7 +174,7 @@ in {
enableZshIntegration = true; enableZshIntegration = true;
settings = { settings = {
session_serialization = true; session_serialization = true;
# theme = "catppuccin-macchiato"; theme = "catppuccin-macchiato";
themes = { themes = {
catppuccin-mocha = { catppuccin-mocha = {
@ -206,12 +206,14 @@ in {
}; };
}; };
}; };
home.file = { home.file = {
"layout" = { "layout" = {
source = "${layout}"; source = "${layout}";
target = ".config/zellij/layouts/default.kdl"; target = ".config/zellij/layouts/default.kdl";
}; };
};
home.file = {
"helix_zellij" = { "helix_zellij" = {
source = "${helix_zellij}"; source = "${helix_zellij}";
target = ".config/zellij/layouts/helix.kdl"; target = ".config/zellij/layouts/helix.kdl";

View file

@ -1,9 +1,9 @@
{pkgs, ...}: { {pkgs, ...}: {
programs = { programs.zoxide = {
zoxide = {
enable = true; enable = true;
}; };
zsh = {
programs.zsh = {
enable = true; enable = true;
shellAliases = { shellAliases = {
cd = "z"; cd = "z";
@ -67,5 +67,4 @@
zhx() { command zellij action new-tab --layout $HOME/.config/zellij/layouts/helix.kdl; } zhx() { command zellij action new-tab --layout $HOME/.config/zellij/layouts/helix.kdl; }
''; '';
}; };
};
} }

View file

@ -1,25 +0,0 @@
Host wheatley
HostName 10.0.0.1
User lillian
Port 22
Host GLaDOS
HostName 10.0.0.2
User lillian
Port 22
Host EDI
HostName 10.0.0.3
User lillian
Port 22
Host shodan
HostName 10.0.0.4
User lillian
Port 22
Host queen
HostName gladtherescake.eu
User lillian
Port 22

View file

@ -1,7 +0,0 @@
{...}: {
home.file."sshconfig" = {
source = ./config;
target = ".config/ssh/config";
force = true;
};
}

View file

@ -13,12 +13,3 @@ update:
clean: clean:
sudo nix-collect-garbage sudo nix-collect-garbage
sudo nix-store --optimise sudo nix-store --optimise
setup:
echo "just test" >> ./.git/hooks/pre-commit && chmod +x ./.git/hooks/pre-commit
push:
git pull
git add *
read -p "Commit message: " -r message && git commit -m "$message"
git push

View file

@ -1,5 +1,6 @@
# Add your reusable NixOS modules to this directory, on their own file (https://nixos.wiki/wiki/Module). # Add your reusable NixOS modules to this directory, on their own file (https://nixos.wiki/wiki/Module).
# These should be stuff you would like to share with others, not your personal configurations. # These should be stuff you would like to share with others, not your personal configurations.
{ {
vpn-ip = import ./vpn-ip; # List your module files here
contabo.wan = import ./contabo/wan;
} }

View file

@ -1,18 +0,0 @@
{lib, ...}:
with lib; {
# Declare what settings a user of this "hello.nix" module CAN SET.
options.services.vpn-ip = {
enable = mkOption {
type = types.bool;
default = true;
};
ip = mkOption {
type = types.str;
default = "0";
};
publicKey = mkOption {
type = types.str;
default = "";
};
};
}

View file

@ -29,6 +29,11 @@
}; };
}; };
# Allow executing of anything on the system with a , eg: , python executes python from the nix store even if not in $PATH currently
programs.command-not-found.enable = lib.mkForce false;
programs.nix-index.enable = true;
programs.nix-index-database.comma.enable = true;
environment.systemPackages = environment.systemPackages =
(with pkgs; [ (with pkgs; [
# Custom tools # Custom tools
@ -58,6 +63,7 @@
# waydroid # waydroid
waypipe waypipe
wayland-utils wayland-utils
xwaylandvideobridge
yubikey-personalization yubikey-personalization
zsh zsh
@ -77,10 +83,6 @@
kdePackages.sddm-kcm kdePackages.sddm-kcm
kdePackages.dolphin-plugins kdePackages.dolphin-plugins
kdePackages.qtstyleplugin-kvantum kdePackages.qtstyleplugin-kvantum
kdePackages.krdc
kdePackages.krfb
kdePackages.kate
kdePackages.xwaylandvideobridge
libportal-qt5 libportal-qt5
libportal libportal
@ -91,76 +93,64 @@
#rustdesk #rustdesk
]) ])
++ (with pkgs-edge; [ ++ (with pkgs-edge; [
freetube
# list of latest packages from nixpkgs master # list of latest packages from nixpkgs master
# Can be used to install latest version of some packages # Can be used to install latest version of some packages
]); ]);
sops = {
secrets."nextcloud-password" = {
mode = "0600";
owner = config.users.users.lillian.name;
path = "/home/lillian/.netrc";
};
};
programs = { programs.direnv = {
# Allow executing of anything on the system with a , eg: , python executes python from the nix store even if not in $PATH currently
command-not-found.enable = lib.mkForce false;
nix-index.enable = true;
nix-index-database.comma.enable = true;
direnv = {
enable = true; enable = true;
}; };
steam = { # Enable networking
networking.networkmanager.enable = true;
programs.steam = {
enable = true; enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
extest.enable = true; extest.enable = true;
}; };
kdeconnect.enable = true; hardware.graphics.enable32Bit = true; # Enables support for 32bit libs that steam uses
noisetorch = {
enable = true;
};
};
# Enable networking
networking.networkmanager.enable = true; # Enables support for 32bit libs that steam uses
# Set your time zone. # Set your time zone.
time.timeZone = "Europe/Amsterdam"; time.timeZone = "Europe/Amsterdam";
services = {
# Enable the X11 windowing system. # Enable the X11 windowing system.
xserver.enable = true; services.xserver.enable = true;
# Enable the KDE Plasma Desktop Environment. # Enable the KDE Plasma Desktop Environment.
displayManager.sddm = { services.displayManager.sddm = {
enable = true; enable = true;
wayland.enable = true; wayland.enable = true;
}; };
displayManager.defaultSession = "plasma"; services.displayManager.defaultSession = "plasma";
desktopManager.plasma6.enable = true; services.desktopManager.plasma6.enable = true;
desktopManager.plasma6.notoPackage = pkgs.atkinson-hyperlegible; programs.kdeconnect.enable = true;
# Enable flatpak support # Enable flatpak support
flatpak.enable = true; services.flatpak.enable = true;
packagekit.enable = true; services.packagekit.enable = true;
# Configure keymap in X11 # Configure keymap in X11
xserver.xkb = { services.xserver.xkb = {
layout = "us"; layout = "us";
variant = ""; variant = "";
options = "terminate:ctrl_alt_bksp,compose:caps_toggle"; options = "terminate:ctrl_alt_bksp,compose:caps_toggle";
}; };
# Enable CUPS to print documents. # Enable CUPS to print documents.
printing.enable = true; services.printing.enable = true;
# Enable bluetooth hardware
hardware.bluetooth.enable = true;
# Enable fwupd daemon and user space client # Enable fwupd daemon and user space client
fwupd.enable = true; services.fwupd.enable = true;
pipewire = {
# Enable sound with pipewire.
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true; enable = true;
alsa.enable = true; alsa.enable = true;
alsa.support32Bit = true; alsa.support32Bit = true;
@ -169,59 +159,38 @@
wireplumber.enable = true; wireplumber.enable = true;
}; };
avahi = { programs.noisetorch = {
nssmdns4 = true;
enable = true; enable = true;
ipv4 = true;
ipv6 = true;
publish = {
enable = true;
addresses = true;
workstation = true;
}; };
};
};
hardware = {
graphics.enable32Bit = true;
# Enable bluetooth hardware
bluetooth.enable = true;
};
security.rtkit.enable = true;
services.pulseaudio.enable = false;
virtualisation.podman = { virtualisation.podman = {
enable = true; enable = true;
dockerCompat = true; dockerCompat = true;
}; };
security.tpm2 = {
enable = true; security.tpm2.enable = true;
pkcs11.enable = true; # expose /run/current-system/sw/lib/libtpm2_pkcs11.so security.tpm2.pkcs11.enable = true; # expose /run/current-system/sw/lib/libtpm2_pkcs11.so
tctiEnvironment.enable = true; security.tpm2.tctiEnvironment.enable = true; # TPM2TOOLS_TCTI and TPM2_PKCS11_TCTI env variables
}; # TPM2TOOLS_TCTI and TPM2_PKCS11_TCTI env variables users.users.lillian.extraGroups = ["tss"]; # tss group has access to TPM devices
users.users.lillian.extraGroups = ["tss"];
boot = { # FIXME: re-enable virtual camera loopback when it build again.
# tss group has access to TPM devices boot.bootspec.enable = true;
bootspec.enable = true;
binfmt.emulatedSystems = ["aarch64-linux"];
#boot.kernelPackages = lib.mkForce pkgs.linuxPackages_latest; #boot.kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
#boot.supportedFilesystems = ["bcachefs"]; #boot.supportedFilesystems = ["bcachefs"];
extraModulePackages = with config.boot.kernelPackages; [v4l2loopback.out]; boot.extraModulePackages = with config.boot.kernelPackages; [v4l2loopback.out];
kernelModules = [ boot.kernelModules = [
# Virtual Camera # Virtual Camera
"v4l2loopback" "v4l2loopback"
# Virtual Microphone, built-in # Virtual Microphone, built-in
"snd-aloop" "snd-aloop"
]; ];
# Set initial kernel module settings # Set initial kernel module settings
extraModprobeConfig = '' boot.extraModprobeConfig = ''
# exclusive_caps: Skype, Zoom, Teams etc. will only show device when actually streaming # exclusive_caps: Skype, Zoom, Teams etc. will only show device when actually streaming
# card_label: Name of virtual camera, how it'll show up in Skype, Zoom, Teams # card_label: Name of virtual camera, how it'll show up in Skype, Zoom, Teams
# https://github.com/umlaeute/v4l2loopback # https://github.com/umlaeute/v4l2loopback
options v4l2loopback exclusive_caps=1 card_label="Virtual Camera" options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
''; '';
loader.systemd-boot.configurationLimit = 3; boot.loader.systemd-boot.configurationLimit = 3;
loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
};
} }

View file

@ -118,16 +118,6 @@
install_url = "https://addons.mozilla.org/firefox/downloads/file/4047136/wayback_machine_new-3.2.xpi"; install_url = "https://addons.mozilla.org/firefox/downloads/file/4047136/wayback_machine_new-3.2.xpi";
installation_mode = "force_installed"; installation_mode = "force_installed";
}; };
# Tree Style Tabs
"treestyletab@piro.sakura.ne.jp" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/tree-style-tab/latest.xpi";
installation_mode = "force_installed";
};
# Adaptive Tab Bar Colour
"ATBC@EasonWong" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/Adaptive-Tab-Bar-Colour/latest.xpi";
installation_mode = "force_installed";
};
}; };
FirefoxHome = { FirefoxHome = {
Search = true; Search = true;
@ -160,8 +150,6 @@
"floorp.tabbar.style" = 2; "floorp.tabbar.style" = 2;
"floorp.browser.user.interface" = 8; "floorp.browser.user.interface" = 8;
"signon.rememberSignons" = true; "signon.rememberSignons" = true;
"browser.ml.chat.enabled" = false;
"browser.ml.chat.shortcuts" = false;
}; };
# TODO: switch to ManagedBookmarks as this will be dropped at some point https://mozilla.github.io/policy-templates/#managedbookmarks # TODO: switch to ManagedBookmarks as this will be dropped at some point https://mozilla.github.io/policy-templates/#managedbookmarks
# Bookmarks = [ # Bookmarks = [

View file

@ -1,6 +1,7 @@
# This is your system's configuration file. # This is your system's configuration file.
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix) # Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
{ {
inputs,
outputs, outputs,
lib, lib,
pkgs, pkgs,
@ -8,6 +9,8 @@
}: { }: {
# You can import other NixOS modules here # You can import other NixOS modules here
imports = [ imports = [
# Import home-manager's NixOS module
inputs.home-manager.nixosModules.home-manager
# If you want to use modules your own flake exports (from modules/nixos): # If you want to use modules your own flake exports (from modules/nixos):
# outputs.nixosModules.example # outputs.nixosModules.example
@ -18,44 +21,41 @@
# You can also split up your configuration and import pieces of it here: # You can also split up your configuration and import pieces of it here:
# ./users.nix # ./users.nix
outputs.nixosModules.vpn-ip ../../desktop
../../../disko/EDI ../../../disko/EDI
# Import your generated (nixos-generate-config) hardware configuration
./hardware-configuration.nix
]; ];
sops.defaultSopsFile = ./secrets/sops.yaml;
home-manager = {
extraSpecialArgs = {inherit inputs outputs;};
users = {
# Import your home-manager configuration
lillian = import ../../../home-manager/hosts/EDI;
};
};
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
]; ];
services.vpn-ip = { networking.hostName = "EDI";
ip = "3";
};
networking = {
hostName = "EDI";
networkmanager.enable = true;
};
hardware.enableAllFirmware = true;
hardware.enableRedistributableFirmware = true;
boot = {
# Lanzaboote currently replaces the systemd-boot module. # Lanzaboote currently replaces the systemd-boot module.
# This setting is usually set to true in configuration.nix # This setting is usually set to true in configuration.nix
# generated at installation time. So we force it to false # generated at installation time. So we force it to false
# for now. # for now.
loader.systemd-boot.enable = lib.mkForce false; boot.loader.systemd-boot.enable = lib.mkForce false;
initrd.systemd.enable = true; boot.initrd.systemd.enable = true;
lanzaboote = { boot.lanzaboote = {
enable = true; enable = true;
pkiBundle = "/etc/secureboot"; pkiBundle = "/etc/secureboot";
}; };
kernelModules = [
"iwlmvm"
"iwlwifi"
];
};
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "25.05"; system.stateVersion = "24.11";
} }

View file

@ -1,7 +1,4 @@
lillian-password: ENC[AES256_GCM,data:0mwqnvA+xrDD/m6uQtPbo9MpcFsOoqHE+Cg2gF6xZzNsqM3i/OmvAe7syp+mGBacZ3avoIHowLSWgXUkMcuFPeYa6XRkrX4LhA==,iv:f1kB54k6ZYWKlZ0Zowu8fOD0cf2WvNlX3GSpy1sUMdA=,tag:dsusc45E1BmYsNmiPzNccg==,type:str] lillian-password: ENC[AES256_GCM,data:0mwqnvA+xrDD/m6uQtPbo9MpcFsOoqHE+Cg2gF6xZzNsqM3i/OmvAe7syp+mGBacZ3avoIHowLSWgXUkMcuFPeYa6XRkrX4LhA==,iv:f1kB54k6ZYWKlZ0Zowu8fOD0cf2WvNlX3GSpy1sUMdA=,tag:dsusc45E1BmYsNmiPzNccg==,type:str]
wg-private-key: ENC[AES256_GCM,data:CqXlIN0gKzMrZRJycAf96LUVNw9yCZpHtE8XP+JwV2Ftip46iUksg1uExxQ=,iv:LdcopSz8Hx5hO1M00B8r+C7XViwpjGOpvmoXUHIkFtc=,tag:rbskx98YjcYV1lB8OO2VxQ==,type:str]
nextcloud-password: ENC[AES256_GCM,data:h93FmVY3XZdRZECEzz5ArBPnuRYyp0kJ6UUoxKmWVuVeFVkOzxQ5dGra6R/jZg8ofjhu+WosoDso3S/i,iv:J1K2NMAjv7Y26q91V/f11gNs82/UD6jbrMy0hVh81pw=,tag:/mQFulslQ3Mqabnc0mb1lQ==,type:str]
ssh-private-key: ENC[AES256_GCM,data:AYyOFlqcNrlTnKSewgb8B/XzegkJGB79gUT419n6aYiH0xom+DmxfRqQm46x/fldlSeN8u2mmzisC6xcRt3fnK4+0gN5Ywvr6hQEtKKxu2N6Pj7+tFLvFmbYPFplecyGBs1S092UXL65ozQs8aYbogoXxVTVu6/MuCsks9UO1JQWq5utCAyU8VGc0/Ft4OZN2qUbS+VZ0ONZ0WzBA+s+CFZ1FNKsr4tvltLXf8fgpsiSHLUigS4rojlxm84+w8omE1IwpAOxOa9n9X1EDuPxrQvZ+LvcJcgwqrtU2HVGis1GfytPM6vRAoVdBKX37enXelPBX2z9W7wPtmTxippD7yzcEJOggJ6ETMUessNKm3yBsMzTcojSWYzHo4v3San1I+ZiNxjvykuHmomRhXdzdM/2RsBpev8q2sC9YU4euzjzCQdwfoNqhbqyN/1X2BOkJMceMqw8fD8nLc3mIbczMFNO6ByVocZ+iC9BvaBYeLrFd3gncqGRRCJdBCD5CYiOYcdIAipNGL7NQVhM1tcv,iv:RZKsKCENIKhIWo4aKyDVj9xx0GfdjhYLP0B2Rad2LSM=,tag:XOOxsyGidnKWzgGlUPmvXw==,type:str]
sops: sops:
kms: [] kms: []
gcp_kms: [] gcp_kms: []
@ -17,8 +14,8 @@ sops:
eUZ6b09pYlRVWFBuUm1Ua2l6Z0dacW8KeQdAVsxXsDiDMtFA2koSpDsw7Ib63vA0 eUZ6b09pYlRVWFBuUm1Ua2l6Z0dacW8KeQdAVsxXsDiDMtFA2koSpDsw7Ib63vA0
GE/ubWDwwRc7wMPFGuofIe6TaDSFgtVXza+yo+i4y51+BOpwqxlYYA== GE/ubWDwwRc7wMPFGuofIe6TaDSFgtVXza+yo+i4y51+BOpwqxlYYA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-01-09T23:59:45Z" lastmodified: "2024-02-21T10:15:11Z"
mac: ENC[AES256_GCM,data:DQ8uXsVkbzc1JrMDaTGHb9ijRB//6I6GN4bAU1LWnhyxGA2QjYEk5xwEI1950kroXVf1hDTw5fdh+MXvvEcNUL6BZOc4Ecl5lPliZ4aemjhz+O8FCkSbnW2o5JnV4m/rFe9CP6KaoFdr/tgSBVklzaUE4Qdo1DUWCfF7XssXECw=,iv:gb1b569ar5wlc2XMkLXnYfyVp/ZMsLjh9cXM85GrUz0=,tag:MGFgFcF4jIdJxteiFp2n/Q==,type:str] mac: ENC[AES256_GCM,data:AnQfufrAVvN2f2kr2KLM8toFj4BUxM1xvwH48DE1OcoenBlzQHu76R35cc9q0rJjOBWXYnZPLEHncE46XyXt56HPboH/blIEZwa9aL1pwDOV5UwbaqZTuSy7/Ylnn0ZoZtcD4gFnavWBT9iUgu3VjRso1i6eXm0Lc1mvwRbH63M=,iv:zJW4Bzm+IGzgxsFE7QP+E4RY5UoPWTUeo9RfoLpbSt8=,tag:E29Pnjtp0w05hdEQCmkj7A==,type:str]
pgp: [] pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.9.2 version: 3.8.1

View file

@ -10,8 +10,6 @@
imports = [ imports = [
# Import home-manager's NixOS module # Import home-manager's NixOS module
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
outputs.nixosModules.vpn-ip
inputs.jovian.nixosModules.jovian
# If you want to use modules your own flake exports (from modules/nixos): # If you want to use modules your own flake exports (from modules/nixos):
# outputs.nixosModules.example # outputs.nixosModules.example
@ -30,73 +28,63 @@
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
sops.defaultSopsFile = ./secrets/sops.yaml;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
]; ];
services.vpn-ip = {
ip = "2";
};
networking.hostName = "GLaDOS";
services.xserver.videoDrivers = ["amdgpu"]; services.xserver.videoDrivers = ["amdgpu"];
hardware = {
# Add vulkan support to GPU # Add vulkan support to GPU
graphics.extraPackages = with pkgs; [ hardware.graphics.extraPackages = with pkgs; [
amdvlk amdvlk
]; ];
# For 32 bit applications # For 32 bit applications
graphics.extraPackages32 = with pkgs; [ hardware.graphics.extraPackages32 = with pkgs; [
driversi686Linux.amdvlk driversi686Linux.amdvlk
]; ];
};
programs = {
# gamemode.enable = false;
# gamemode.settings = {
# general = {
# renice = 10;
# };
# # Warning: GPU optimisations have the potential to damage hardware programs.gamemode = {
# # gpu = {
# # apply_gpu_optimisations = "accept-responsibility";
# # gpu_device = 0;
# # amd_performance_level = "high";
# # };
# custom = {
# start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'";
# end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
# };
# };
};
jovian = {
steam = {
enable = true; enable = true;
autoStart = false; settings = {
user = "lillian"; general = {
desktopSession = "plasma"; renice = 10;
};
decky-loader = {
enable = true;
package = pkgs.decky-loader-prerelease;
extraPackages = [pkgs.python3];
};
hardware.has.amd.gpu = true;
}; };
boot = { # Warning: GPU optimisations have the potential to damage hardware
loader.systemd-boot.enable = false; gpu = {
apply_gpu_optimisations = "accept-responsibility";
gpu_device = 0;
amd_performance_level = "high";
}; };
boot.lanzaboote = { custom = {
enable = true; start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'";
pkiBundle = "/var/lib/sbctl"; end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
}; };
};
};
boot.loader.systemd-boot.enable = true;
# boot.lanzaboote = {
# enable = true;
# pkiBundle = "/etc/secureboot";
# };
users.users.lillian.extraGroups = ["gamemode"]; users.users.lillian.extraGroups = ["gamemode"];
home-manager = {
extraSpecialArgs = {inherit inputs outputs;};
users = {
# Import your home-manager configuration
lillian = import ../../../home-manager/hosts/GLaDOS;
};
};
# virtualisation.waydroid.enable = false;
networking.hostName = "GLaDOS";
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "25.05"; system.stateVersion = "24.11";
} }

View file

@ -1,7 +1,4 @@
lillian-password: ENC[AES256_GCM,data:aHJCYmnpGIWJMsNZ8aw51Rquuv4F7kgGvfIxHMELuDlEqgjkg+SAhh+UQEpv16F0WVxrYZ/EwxKFMBpfPv9M2NLZC98bav0D9g==,iv:uzYLfmxG46ubmgeFsfW7aqXZbcL+TQw0VdDcklV0/ZI=,tag:Ozcf5qXC7xh0VcsBzhyo2g==,type:str] lillian-password: ENC[AES256_GCM,data:aHJCYmnpGIWJMsNZ8aw51Rquuv4F7kgGvfIxHMELuDlEqgjkg+SAhh+UQEpv16F0WVxrYZ/EwxKFMBpfPv9M2NLZC98bav0D9g==,iv:uzYLfmxG46ubmgeFsfW7aqXZbcL+TQw0VdDcklV0/ZI=,tag:Ozcf5qXC7xh0VcsBzhyo2g==,type:str]
wg-private-key: ENC[AES256_GCM,data:em6sci3eefw5TJHpzgTaGGuQp8UuvOmkHRsQltg0TKpMb1Lrcxicb23cQxo=,iv:VEeGmzncHyAgP5toTOwDK6qw0OT4/6Etxh8Zr4uYQD4=,tag:nvse11zMhzukzClx5ub4dw==,type:str]
ssh-private-key: ENC[AES256_GCM,data:YM8GTH6EEXLt1ZC1ZdyLWVJyGUykS0DulTL0QgOFCTztRA+5JoA6Af42MIEMm4sMSatOt9pbGE9BXh5T53uNkx87cS8pfb714N8EKrMTYmtWi2M2TatEM6+qMRpP777GalB3v2HnfTfwhx+TfQ+iSCEo45Unsumzr+/9uZ/b4vYBxbd82UKO1tmlTw3R7aEpesJuJe/I3sAg0ZXTWti0e2MYfFawlSXtgQo382bFnV/mi9JkNx62AUFI6Q0a09V2C3FU4e4qP9jeP+COfCuCjRuaf8eu0VYczy4vVkN5NNBhkuLCZl0xANfqM5tDt8q+meYHmYWq1ceyeZ9OdZhKA7lMJi2K1DgTmgbD356itEtjXb7KF7VWIVnR0Gm+vVHx90Bv6eQp4n2I5mWbCVy8wqiIlacxuH8PO6jAPUM1Q8E+SVJb2HcLPdlURHyyK0fLVWaFhtFH4rwyKAv/2yEO2iNfZd9zFqvX5/JdyUPRCpMKkjxQgZN+raVHok0SwvPfXA9wvRpQyYSD4SUqCYsRcs6JugW8a14bZrvg,iv:L9ACOUFtAxkWsXW+tDKGwKn1ZHYNv7WmBty5krayVu8=,tag:hbrgscOczukqLBU/Y+6aLA==,type:str]
nextcloud-password: ENC[AES256_GCM,data:ClQk7M7BTeIhgWTWsgjTFb0Um8qZ901530dI9xnbs63ZGIni4+bWjLPetOmM3+PPsg33vF6r0xiwu0Ff,iv:jDy8miUoPcua3sraRQWOHWrhNacKEgf6nGsi8PVTYaY=,tag:ldGta+DdUmoajtAE6HLtkw==,type:str]
sops: sops:
kms: [] kms: []
gcp_kms: [] gcp_kms: []
@ -17,8 +14,8 @@ sops:
MUZWTVh0dVdMZlRzelJ4WlROUlIyNmcKphNuMN9Wh8h/gvmtUxQWjPKtgjWriLRD MUZWTVh0dVdMZlRzelJ4WlROUlIyNmcKphNuMN9Wh8h/gvmtUxQWjPKtgjWriLRD
+DpEEVGrmu0RJ8/wUqjxGoL4GzLAlZm4EnKlyUyA0tw8sbLZ2Lnl/w== +DpEEVGrmu0RJ8/wUqjxGoL4GzLAlZm4EnKlyUyA0tw8sbLZ2Lnl/w==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-01-01T15:48:15Z" lastmodified: "2024-02-22T11:58:42Z"
mac: ENC[AES256_GCM,data:64DmkqcYlLtzL+9WcgvnSOjF25MiZFkbEsgKP/xLrBBvhqqqm4ev9tk8QGoA5NJPHen+GItX7D3lJgfTyjX6LXn6vLFQWemrEP2+A9hZxnwvtdBjSD5dEl6wHGgY4mvqTJupmpv6Gg8zXP1kh5vsO82Un03TcfyPHVVgmfagpOw=,iv:j/6jJjRoiTUfTW2SJ0Ui6dAVQO9Ij8zN2mrKEhIt7fY=,tag:6r/GNnG/lw42KbWgIBoIzQ==,type:str] mac: ENC[AES256_GCM,data:TuNvE51hpHvOjB3G2y7UCT8BvlI1ulc8aeeBihtnGiGDjwU1Eze1bdA47hZYCZsCYdo3Tow1gY0gCkJACKeWqUXMLT8jxcUfiUWqQicQhBm/TT9m+oqLQiAqJCkh1Ez8XuaftqIg+oJstyy4wZyvMK8Bg+9EsSYiBnMrKfrgLBs=,iv:GXy93l1BBkkeKXJ1ntFI6Rw6QZmSbzDlWClJ16/Csv4=,tag:jBYynl6tLL/xN61ypMwvrw==,type:str]
pgp: [] pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.9.2 version: 3.8.1

View file

@ -13,8 +13,6 @@
# Or modules exported from other flakes (such as nix-colors): # Or modules exported from other flakes (such as nix-colors):
# inputs.nix-colors.homeManagerModules.default # inputs.nix-colors.homeManagerModules.default
outputs.nixosModules.vpn-ip
# You can also split up your configuration and import pieces of it here: # You can also split up your configuration and import pieces of it here:
# ./nvim.nix # ./nvim.nix
./hardware-configuration.nix ./hardware-configuration.nix
@ -28,17 +26,16 @@
# Import disko # Import disko
# ../../../disko/queen # ../../../disko/queen
]; ];
boot.tmp.cleanOnBoot = true;
zramSwap.enable = false; zramSwap.enable = false;
services = { networking.domain = "";
openssh = { services.openssh = {
enable = true; enable = true;
settings = {
# require public key authentication for better security # require public key authentication for better security
PasswordAuthentication = false; settings.PasswordAuthentication = false;
KbdInteractiveAuthentication = false; settings.KbdInteractiveAuthentication = false;
PermitRootLogin = "no"; settings.PermitRootLogin = "no";
};
};
}; };
nixpkgs = { nixpkgs = {
@ -53,6 +50,9 @@
}; };
}; };
#Set up sops config, and configure where the keyfile is, then set the mode for the unencrypted keys
sops.defaultSopsFile = ./secrets/sops.yaml;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
fzf fzf
matrix-conduit matrix-conduit
@ -68,13 +68,14 @@
#jellyfin #jellyfin
#jellyfin-web #jellyfin-web
#jellyfin-ffmpeg #jellyfin-ffmpeg
nextcloud28
nginx nginx
onlyoffice-documentserver onlyoffice-documentserver
openssl openssl
phanpy phanpy
postgresql_16 postgresql_16
python310 python310
# python310Packages.nbconvert python310Packages.nbconvert
jupyter jupyter
rabbitmq-server rabbitmq-server
roundcube roundcube
@ -87,12 +88,6 @@
sqlite sqlite
rocksdb rocksdb
]; ];
services.vpn-ip = {
enable = false;
};
networking = {
domain = "";
# Create an auto-update systemd service that runs every day # Create an auto-update systemd service that runs every day
# system.autoUpgrade = { # system.autoUpgrade = {
@ -107,8 +102,8 @@
# networking.nat.enable = true; # networking.nat.enable = true;
# networking.nat.internalInterfaces = ["ve-+"]; # networking.nat.internalInterfaces = ["ve-+"];
# networking.nat.externalInterface = "ens18"; # networking.nat.externalInterface = "ens18";
enableIPv6 = lib.mkForce true; networking.enableIPv6 = lib.mkForce true;
nameservers = ["2a02:c207::1:53" "2a02:c207::2:53"]; networking.nameservers = ["2a02:c207::1:53" "2a02:c207::2:53"];
# networking.interfaces.ens18.ipv4.addresses = [ # networking.interfaces.ens18.ipv4.addresses = [
# { # {
@ -117,19 +112,19 @@
# } # }
# ]; # ];
interfaces.ens18.ipv6.addresses = [ networking.interfaces.ens18.ipv6.addresses = [
{ {
address = "2a02:c207:2063:2448::1"; address = "2a02:c207:2063:2448::1";
prefixLength = 64; prefixLength = 64;
} }
]; ];
defaultGateway6 = { networking.defaultGateway6 = {
address = "fe80::1"; address = "fe80::1";
interface = "ens18"; interface = "ens18";
}; };
firewall = {
# Open ports in the firewall.
# Open ports in the firewall.
networking.firewall = {
enable = true; enable = true;
allowPing = false; allowPing = false;
allowedTCPPorts = [ allowedTCPPorts = [
@ -147,12 +142,6 @@
]; ];
}; };
hostName = "queen";
# Disable the server going through wireguard vpn for now
wireguard.enable = lib.mkForce false;
};
# networking.useNetworkd = true; # networking.useNetworkd = true;
# networking.useDHCP = false; # networking.useDHCP = false;
@ -183,15 +172,20 @@
# Enable completion of system packages by zsh # Enable completion of system packages by zsh
environment.pathsToLink = ["/share/zsh"]; environment.pathsToLink = ["/share/zsh"];
boot = { home-manager = {
tmp.cleanOnBoot = true; extraSpecialArgs = {inherit inputs outputs;};
loader.grub = { users = {
enable = true; # Import your home-manager configuration
configurationLimit = 3; lillian = import ../../../home-manager/hosts/queen;
}; };
loader.efi.canTouchEfiVariables = true;
}; };
networking.hostName = "queen";
boot.loader.grub.enable = true;
boot.loader.grub.configurationLimit = 3;
boot.loader.efi.canTouchEfiVariables = true;
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "25.05"; system.stateVersion = "24.11";
} }

View file

@ -6,15 +6,13 @@ releaseCookie: ENC[AES256_GCM,data:oG8DcUP+gIm5xPzIJdmjrtX/TdrcS8IgeGJeu0oOmZb0/
mssqlpass: ENC[AES256_GCM,data:XEu4bQC5qM5Cm8UDVX3qAzTuL/t3xbx+qcEbZM4h3Hg=,iv:jgpZ93THYBlUvJDC5+YZiIxu/14e7nFSy76J0vc8Hek=,tag:iKsEDp/KZ5juqzmUgtP8iA==,type:str] mssqlpass: ENC[AES256_GCM,data:XEu4bQC5qM5Cm8UDVX3qAzTuL/t3xbx+qcEbZM4h3Hg=,iv:jgpZ93THYBlUvJDC5+YZiIxu/14e7nFSy76J0vc8Hek=,tag:iKsEDp/KZ5juqzmUgtP8iA==,type:str]
mailpassunhash: ENC[AES256_GCM,data:q/P3nrNLy3hCISDmalw94nzWIFhoCdCTyflj27D2Ltr8,iv:oAFna87l3sL/42ljUF1QsRL0xBrP82uYdKLxK/8HcQE=,tag:liFFGHbNPOpOHyMsjnvMOQ==,type:str] mailpassunhash: ENC[AES256_GCM,data:q/P3nrNLy3hCISDmalw94nzWIFhoCdCTyflj27D2Ltr8,iv:oAFna87l3sL/42ljUF1QsRL0xBrP82uYdKLxK/8HcQE=,tag:liFFGHbNPOpOHyMsjnvMOQ==,type:str]
rpcSecret: ENC[AES256_GCM,data:gOuQSY2RI6rnSnG1,iv:xz1ueq4/UOKYBs5r9Tk4jL0+GyX8uo8I8ZymVgIMKLI=,tag:Fr8rWIttLz7X8Pri6FBJBQ==,type:str] rpcSecret: ENC[AES256_GCM,data:gOuQSY2RI6rnSnG1,iv:xz1ueq4/UOKYBs5r9Tk4jL0+GyX8uo8I8ZymVgIMKLI=,tag:Fr8rWIttLz7X8Pri6FBJBQ==,type:str]
wg-private-key: ENC[AES256_GCM,data:mq8QWoQ4tE4eYaFbwCzQnRREUFI2qrnmDnwurKMu6qdKkDylqc65E7jgGDI=,iv:r5RdcmfW4OaKlbbzUCPahONvpLcfZ7X7KcEEYFIYFDk=,tag:e93C4lByJV75JMHLJ02PfA==,type:str] wg-private: ENC[AES256_GCM,data:6BEuNqqG//p5UhRmQ4RPEze6jZdvzK4PEXxlbX2ANYIhFpacj0aZnCr9o/A=,iv:tPlwYdV4I5oA8qG+bfVi1Dpbf7xedByantqsmylZXKQ=,tag:k1BqKqlayOWz5QW1XiAjqQ==,type:str]
lillian-password: ENC[AES256_GCM,data:tc+Romv2fL+tdqLLmbwqaF4IHrNZ0VEpnECmW/66FW7IUpjHMyS7YP+pmmvDCzM9afIXMxyPFHGNRwiCmxqstiiNeSeLdo6rDw==,iv:sGeu9aNTgdpThv+0Z/nZKIrat1xNgM0t/KTGPaFbsdI=,tag:kZBHF4X0KO9znog61NwU+Q==,type:str] lillian-password: ENC[AES256_GCM,data:tc+Romv2fL+tdqLLmbwqaF4IHrNZ0VEpnECmW/66FW7IUpjHMyS7YP+pmmvDCzM9afIXMxyPFHGNRwiCmxqstiiNeSeLdo6rDw==,iv:sGeu9aNTgdpThv+0Z/nZKIrat1xNgM0t/KTGPaFbsdI=,tag:kZBHF4X0KO9znog61NwU+Q==,type:str]
coturn-auth-secret: ENC[AES256_GCM,data:RYxyATuYIcrGd8h8Gc4CP9ZQ80ekuuwHehnOPYisHejmycgT8a2mWpk+5r3HkFmBNcLDeNlfnhIif5oLHGuHyw==,iv:M2GdNDxP4xpP35FJPTgljbcKpOm6DmEEnIYRItAxDVI=,tag:IiiNXeTi6Yja5PrnKRkhdA==,type:str] coturn-auth-secret: ENC[AES256_GCM,data:RYxyATuYIcrGd8h8Gc4CP9ZQ80ekuuwHehnOPYisHejmycgT8a2mWpk+5r3HkFmBNcLDeNlfnhIif5oLHGuHyw==,iv:M2GdNDxP4xpP35FJPTgljbcKpOm6DmEEnIYRItAxDVI=,tag:IiiNXeTi6Yja5PrnKRkhdA==,type:str]
grafana-telegraf-key: ENC[AES256_GCM,data:agpUzG1/n2NAKDt45IgelmDf0CUlC82fmD4f7JdcszNuUg7uCNA7XeaJ6PZtHQ==,iv:keo3i+qSbtXkA5fyCr2S5z9nJS9bXUn5WDiPgWocPU8=,tag:p/nDff10PRhi9pOszp1PnA==,type:str] grafana-telegraf-key: ENC[AES256_GCM,data:agpUzG1/n2NAKDt45IgelmDf0CUlC82fmD4f7JdcszNuUg7uCNA7XeaJ6PZtHQ==,iv:keo3i+qSbtXkA5fyCr2S5z9nJS9bXUn5WDiPgWocPU8=,tag:p/nDff10PRhi9pOszp1PnA==,type:str]
sync-secrets: ENC[AES256_GCM,data:AwCgqfSXmYVGnCV5PJ5Ql44IiutTS76F1H7Ow7gB4mQQ8PtiAsmArzpAXd7LzsXedm55X04U+GvkcbM9cwPcF+psyb3Zi8EnI/mjnI9MgFyySSEcosJZVAtCpXGIMyYgRXtF5OBh5CzupAG059d1TDAqrSpLXMuSDdypTaOMHxnlq5q1swfpzhhY3PVgUKVFXdjZLX8aF3JTE9ceVxFsB+traLzOQsl+QKty0x0mpuqR97zkMCchX7bTwgUgbl7phzTvmwV8Qw==,iv:gkZs5NB9+CLfz4kfV4ha2llZQPP81uuXRKqUlASgpiA=,tag:DXkiG0ZFHLHlVhwLwtv/XQ==,type:str] sync-secrets: ENC[AES256_GCM,data:AwCgqfSXmYVGnCV5PJ5Ql44IiutTS76F1H7Ow7gB4mQQ8PtiAsmArzpAXd7LzsXedm55X04U+GvkcbM9cwPcF+psyb3Zi8EnI/mjnI9MgFyySSEcosJZVAtCpXGIMyYgRXtF5OBh5CzupAG059d1TDAqrSpLXMuSDdypTaOMHxnlq5q1swfpzhhY3PVgUKVFXdjZLX8aF3JTE9ceVxFsB+traLzOQsl+QKty0x0mpuqR97zkMCchX7bTwgUgbl7phzTvmwV8Qw==,iv:gkZs5NB9+CLfz4kfV4ha2llZQPP81uuXRKqUlASgpiA=,tag:DXkiG0ZFHLHlVhwLwtv/XQ==,type:str]
writefreely: ENC[AES256_GCM,data:QOj5h/rHCxmgpPNhu3IS4eyruhQokHTJxW6yQM9YDgQ=,iv:qAd+/rAAanzL9FTIX22M+2kwI0WI2d3i86cJrn8MFBo=,tag:3zvpqnovDEoJdvK/qcFDuQ==,type:str] writefreely: ENC[AES256_GCM,data:QOj5h/rHCxmgpPNhu3IS4eyruhQokHTJxW6yQM9YDgQ=,iv:qAd+/rAAanzL9FTIX22M+2kwI0WI2d3i86cJrn8MFBo=,tag:3zvpqnovDEoJdvK/qcFDuQ==,type:str]
writefreelymysql: ENC[AES256_GCM,data:1JZwIX04O3DBAo7JvEkeNrFcSdcmk/u4WUf/kkbr2JA=,iv:8H8MR8w1iLfl2r62EbxPnLzs4qWFmwB5gNKEaly8q6c=,tag:K01oKMXkeMOFs3u7frMs0Q==,type:str] writefreelymysql: ENC[AES256_GCM,data:1JZwIX04O3DBAo7JvEkeNrFcSdcmk/u4WUf/kkbr2JA=,iv:8H8MR8w1iLfl2r62EbxPnLzs4qWFmwB5gNKEaly8q6c=,tag:K01oKMXkeMOFs3u7frMs0Q==,type:str]
ssh-private-key: ENC[AES256_GCM,data:DK/ggskAyhvotRkf36oZBoPw3hGvVlXneqaJZRPwX2a3YVMy4zgDE3iN65UeR6mfkp9J3OmLejOHeWFB/bRCHY3oTW6GUuZljTe2rI1/x/d2s4zX5UPPEWcy3cXH25d72DzElQBEMDKuZyDe0OZ0/NkR//vEeXgoA2Nr/NKHlTWrq/t26DMD2Vt+kQ+S9b0hh4tgh3OP1lwRu9/mTJOmInd/86gKB9+aD9V0oFvNbMEmgbwIah+ZjQBHB7GEIwjUc/lLmc+3RSn9J0rICIhnhL7NTzHUDHkYd93Tm0L9UHIyi9Oco2sK8tuV5mTDM1OK8CbDg/5FICTQ0H4sstCrDNZd2wE4E1kaZuwYOyxpzQpWJY8jOxxw5oIE0IccvvptM/9vp+0f1F2RIDrkIdHSLpFbGZGvXNVAWlXyv+0qOYS7BGzD0KAh9f74GcAvULq36vdzBahb5e+CqT3JXESne8qhkpsP0G9Z1I1Fy0xpADx/9cTnAm5RmXTw/KBPmBA5IZYZBRbR/C+N7Xyxr7u9RcwFJdIbSpAeT/ew,iv:pHT7DtX1ab7boPboXRaSg9w/4sMgNraEswtEf2tBPkw=,tag:Fbw2/Evf4ZsLFMBPflf9CA==,type:str]
mollysocket-vapid-key: ENC[AES256_GCM,data:8N2hxY6WN6mCcjMIFsw/Vt1RoGvUbYxkVPOOn4WRjXZtEEkkVCIaNevozF4xCnBUEWIukNg8lZk8ake/pHAq,iv:+NHm3hSotcRPRjrwEe9xKnEeYbnUZqJEB1sd5B+tWIE=,tag:Pd2pnJqj771XqdqBREGzJQ==,type:str]
sops: sops:
kms: [] kms: []
gcp_kms: [] gcp_kms: []
@ -30,8 +28,8 @@ sops:
KzNBMCtUaS9sU21Xc1JUd1FSR29tSkEKyqaDM/WUWjK2l+ahE6sIFYsQ6Qtkf7yz KzNBMCtUaS9sU21Xc1JUd1FSR29tSkEKyqaDM/WUWjK2l+ahE6sIFYsQ6Qtkf7yz
NWFTzsDZBmm9kpSIjchf+PuBuoRHeEKbEH8jnMlYB3J8boEnUnXMlw== NWFTzsDZBmm9kpSIjchf+PuBuoRHeEKbEH8jnMlYB3J8boEnUnXMlw==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-01-14T13:43:37Z" lastmodified: "2024-08-16T13:34:43Z"
mac: ENC[AES256_GCM,data:GK+WcmMgDbZ5xeqMK06CuquR6/ptd2oXzVJ9V74+n6lBx4XsyPu17puKGKgsGsIHeRYdbwtQh8tm42/XJ0tK8qJz1yGvfQxPasd+ibRBHatWWHzQ/czR3NIRWYqGF9/mxi2uHrftaKtku1/huxjzjb69blopMzn2LEH0vCzXCkc=,iv:K6Fbhmz9FAzLd8KcjDSriVre8MhCYrGTVXh+u6oGLaQ=,tag:4Ylrs+Mm54vAKFQyyo8Njg==,type:str] mac: ENC[AES256_GCM,data:IdQmx7/Y2fdQ9gBgKYCUZQuAVRqbP5KWG4EplO6pYqA8b5xzGnmCSCwyYIXU+3NExEZCEKEfX68mdYlWPRTKUdamOBdN+fQrGXwr5lw5dpKe03ccGw7Hayi0B4O8WbLEjw1RU50v2eoK9MpD5FPrUu1AzGz3+txxzV3hoxg6Sp0=,iv:WXvxAvg+sAKYbzjaz1QKDgVrnMraO3EtIgC12zb9Xi0=,tag:FmH84rGBotouvjCOq+xL8w==,type:str]
pgp: [] pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.9.2 version: 3.9.0

View file

@ -14,9 +14,8 @@
# Or modules exported from other flakes (such as nix-colors): # Or modules exported from other flakes (such as nix-colors):
# inputs.nix-colors.homeManagerModules.default # inputs.nix-colors.homeManagerModules.default
outputs.nixosModules.vpn-ip
# Import the shared settings # Import the shared settings
../../shared
../../desktop/package-configs/firefox ../../desktop/package-configs/firefox
# You can also split up your configuration and import pieces of it here: # You can also split up your configuration and import pieces of it here:
@ -25,103 +24,13 @@
../../../disko/shodan ../../../disko/shodan
# ./auto-mount.nix ./auto-mount.nix
]; ];
boot = {
tmp.cleanOnBoot = true;
loader = {
# TPM2TOOLS_TCTI and TPM2_PKCS11_TCTI env variables
# tss group has access to TPM devices
# Lanzaboote currently replaces the systemd-boot module. boot.tmp.cleanOnBoot = true;
# This setting is usually set to true in configuration.nix
# generated at installation time. So we force it to false
# for now.
systemd-boot.enable = lib.mkForce false;
systemd-boot.configurationLimit = 3;
timeout = 0;
efi.canTouchEfiVariables = true;
};
initrd.systemd.enable = true;
lanzaboote = {
enable = true;
pkiBundle = "/etc/secureboot";
};
consoleLogLevel = 0;
kernelParams = ["quiet" "udev.log_priority=0" "fbcon=vc:2-6" "console=tty0"];
plymouth.enable = true;
};
zramSwap.enable = false; zramSwap.enable = false;
networking = { networking.domain = "";
domain = ""; services.openssh.enable = true;
# Enable networking
networkmanager.enable = true;
firewall.enable = true;
firewall.allowedTCPPorts = [22];
hostName = "shodan";
};
services.vpn-ip = {
ip = "4";
};
services = {
openssh.enable = true; # Enables support for 32bit libs that steam uses
# Enable the X11 windowing system.
xserver.enable = true;
# Enable the KDE Plasma Desktop Environment.
desktopManager.plasma6.enable = true;
avahi = {
nssmdns4 = true;
enable = true;
ipv4 = true;
ipv6 = true;
publish = {
enable = true;
addresses = true;
workstation = true;
};
};
displayManager = {
defaultSession = "plasma";
sddm.wayland.enable = lib.mkForce true;
sddm.settings = {
Autologin = {
Session = "plasma.desktop";
User = "lillian";
};
};
};
# Enable flatpak support
flatpak.enable = true;
packagekit.enable = true;
# Configure keymap in X11
xserver = {
xkb.layout = "us";
xkb.variant = "";
};
# Enable CUPS to print documents.
printing.enable = true;
# Enable fwupd daemon and user space client
fwupd.enable = true;
# pipewire = {
# enable = true;
# alsa.enable = true;
# alsa.support32Bit = true;
# pulse.enable = true;
# };
};
nixpkgs = { nixpkgs = {
# You can add overlays here # You can add overlays here
@ -133,6 +42,10 @@
allowUnfree = true; allowUnfree = true;
}; };
}; };
#Set up sops config, and configure where the keyfile is, then set the mode for the unencrypted keys
sops.defaultSopsFile = ./secrets/sops.yaml;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# Custom tools # Custom tools
auto-mount auto-mount
@ -145,9 +58,6 @@
noto-fonts noto-fonts
noto-fonts-emoji-blob-bin noto-fonts-emoji-blob-bin
noto-fonts-emoji noto-fonts-emoji
qjackctl
jellyfin-media-player
#rustdesk #rustdesk
sbctl sbctl
udisks udisks
@ -158,7 +68,7 @@
#KDE: #KDE:
krunner-translator krunner-translator
# kdePackages.discover kdePackages.discover
kdePackages.kcalc kdePackages.kcalc
kdePackages.kdepim-addons kdePackages.kdepim-addons
kdePackages.kirigami kdePackages.kirigami
@ -167,8 +77,6 @@
# kdePackages.krunner-symbols # kdePackages.krunner-symbols
kdePackages.qtvirtualkeyboard kdePackages.qtvirtualkeyboard
kdePackages.packagekit-qt kdePackages.packagekit-qt
kdePackages.krdc
kdePackages.krfb
libportal libportal
#Gaming: #Gaming:
@ -176,30 +84,6 @@
legendary-gl legendary-gl
protontricks protontricks
rare rare
lutris
(kodi.withPackages (kodiPkgs:
with kodiPkgs; [
steam-controller
invidious
youtube
netflix
upnext
sponsorblock
sendtokodi
jellyfin
inputstream-adaptive
inputstreamhelper
inputstream-ffmpegdirect
upnext
sponsorblock
sendtokodi
routing
requests-cache
requests
plugin-cache
a4ksubtitles
]))
]; ];
jovian = { jovian = {
@ -217,30 +101,51 @@
devices.steamdeck = { devices.steamdeck = {
enable = true; enable = true;
autoUpdate = true; autoUpdate = true;
}; enableGyroDsuService = true;
steamos = {
enableAutoMountUdevRules = true;
enableMesaPatches = true;
}; };
}; };
programs = {
steam = lib.mkForce { programs.steam = lib.mkForce {
enable = true; enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
extest.enable = true; extest.enable = true;
}; };
kdeconnect.enable = true; hardware.graphics.enable32Bit = true; # Enables support for 32bit libs that steam uses
noisetorch = { # Enable the X11 windowing system.
enable = true; services.xserver.enable = true;
# Enable the KDE Plasma Desktop Environment.
services.desktopManager.plasma6.enable = true;
programs.kdeconnect.enable = true;
services.displayManager.defaultSession = "plasma";
services.displayManager.sddm.wayland.enable = lib.mkForce true;
services.displayManager.sddm.settings = {
Autologin = {
Session = "plasma.desktop";
User = "lillian";
};
}; };
git = { # Enable flatpak support
enable = true; services.flatpak.enable = true;
}; services.packagekit.enable = true;
# Configure keymap in X11
services.xserver = {
xkb.layout = "us";
xkb.variant = "";
}; };
# Enable networking
networking.networkmanager.enable = true;
networking.firewall.enable = true;
networking.firewall.allowedTCPPorts = [22];
# # Enable automounting of removable media # # Enable automounting of removable media
# services.udisks2.enable = true; # services.udisks2.enable = true;
# services.devmon.enable = true; # services.devmon.enable = true;
@ -249,30 +154,72 @@
# Set your time zone. # Set your time zone.
time.timeZone = "Europe/Amsterdam"; time.timeZone = "Europe/Amsterdam";
hardware = {
graphics.enable32Bit = true; # Enable CUPS to print documents.
services.printing.enable = true;
# Enable bluetooth hardware # Enable bluetooth hardware
bluetooth.enable = true; hardware.bluetooth.enable = true;
# Enable fwupd daemon and user space client
services.fwupd.enable = true;
# Enable sound with pipewire. # Enable sound with pipewire.
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
programs.noisetorch = {
enable = true;
};
programs.git = {
enable = true;
}; };
services.pulseaudio.enable = false;
users.users.lillian.extraGroups = ["decky" "tss" "input"]; users.users.lillian.extraGroups = ["decky" "tss" "input"];
# Enable completion of system packages by zsh # Enable completion of system packages by zsh
environment.pathsToLink = ["/share/zsh"]; environment.pathsToLink = ["/share/zsh"];
security = { home-manager = {
rtkit.enable = true; extraSpecialArgs = {inherit inputs outputs;};
tpm2 = { users = {
enable = true; # Import your home-manager configuration
pkcs11.enable = true; # expose /run/current-system/sw/lib/libtpm2_pkcs11.so lillian = import ../../../home-manager/hosts/shodan;
tctiEnvironment.enable = true;
}; };
}; };
networking.hostName = "shodan";
security.tpm2.enable = true;
security.tpm2.pkcs11.enable = true; # expose /run/current-system/sw/lib/libtpm2_pkcs11.so
security.tpm2.tctiEnvironment.enable = true; # TPM2TOOLS_TCTI and TPM2_PKCS11_TCTI env variables
# tss group has access to TPM devices
# Lanzaboote currently replaces the systemd-boot module.
# This setting is usually set to true in configuration.nix
# generated at installation time. So we force it to false
# for now.
boot.loader.systemd-boot.enable = lib.mkForce false;
boot.initrd.systemd.enable = true;
boot.lanzaboote = {
enable = true;
pkiBundle = "/etc/secureboot";
};
boot.loader.systemd-boot.configurationLimit = 3;
boot.loader.timeout = 0;
boot.loader.efi.canTouchEfiVariables = true;
boot.consoleLogLevel = 0;
boot.kernelParams = ["quiet" "udev.log_priority=0" "fbcon=vc:2-6" "console=tty0"];
boot.plymouth.enable = true;
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "25.05"; system.stateVersion = "24.11";
} }

View file

@ -1,6 +1,4 @@
lillian-password: ENC[AES256_GCM,data:uPNBvMyhkiX3eedduFlsFUIcas/VBVSYrsmGTlgGUOzTQST59CYZRoq0ArphIJ3+Usy6KbR5tA5FCp4PoB3qVYBfjlAq6dhZIw==,iv:TiUIo2lvdL6SiDuW4gWn0TeJXkz5MldzqGxuK3MNPnE=,tag:d3p/h+q50JxygDtk2qxIeQ==,type:str] lillian-password: ENC[AES256_GCM,data:uPNBvMyhkiX3eedduFlsFUIcas/VBVSYrsmGTlgGUOzTQST59CYZRoq0ArphIJ3+Usy6KbR5tA5FCp4PoB3qVYBfjlAq6dhZIw==,iv:TiUIo2lvdL6SiDuW4gWn0TeJXkz5MldzqGxuK3MNPnE=,tag:d3p/h+q50JxygDtk2qxIeQ==,type:str]
wg-private-key: ENC[AES256_GCM,data:PeuKeYRHfOzGlekLI95EH3qq+blntZrrboPKaKC0ghD5zIyaCYrFHYWLkug=,iv:BcugGYW7+i7d04H4EKn+BdJJPqwMVVvlHBETO0x0kQM=,tag:Z/ammSrFpWTIbVfi4VJZ9w==,type:str]
ssh-private-key: ENC[AES256_GCM,data:7K3p6Lu4je2fNmvtKpLY2z7MG5E0gg3486PCLTlm/NzWpiH0FO8KO2yPkPPVurXfUWj7ig3eiP+bc6+kufRQ8+MCHaR+JA056cdMch0MMK92FyPvJjNKzwB4W3BpdvOKipaZvuvSfgdrEdpz6rWRwBb9KaUW5aHBjW5eQNm+q0yP2uZjW6Ncp/zrdevjlRJyXGnNJD8CBDQgLILvqlvziRO4xBnSZOmFpdCKM9jMkxwHIQUND4ic71G6cheN+kIsgsa67DlJjfrngGWxKrlC3Q2DC+30vHtW8f18oa+g7eu9eTz8+bSLxYJf9TADwE+UYe2Hakib1ju67yxBkcomIjBvqgo+zEr0jC2qYmOvlKfqn64gSbAE7zEVCbavz6gA2EMb0g47twtAdgGUyzppGQ4LXjZXv6lyYov2gdXP7bzAcXXfzDh92BuTUOp9HXOTsLh7XC7cPKziowwwT+oUeOaSujMT9tgqkazgcVR3ne+PjxduptV75gxOwxeu6F2Zm+4Y4xJBdJeyP1Baq0yj4HNY/gv3pxEEXgU5,iv:TJ3AsSvXeUmBsKd6xy+Kc1ws+Yc9ZQ5Q4A8UFHI7Wsg=,tag:egCYoe3Mkbvkup0itszm4w==,type:str]
sops: sops:
kms: [] kms: []
gcp_kms: [] gcp_kms: []
@ -16,8 +14,8 @@ sops:
KzNBMCtUaS9sU21Xc1JUd1FSR29tSkEKyqaDM/WUWjK2l+ahE6sIFYsQ6Qtkf7yz KzNBMCtUaS9sU21Xc1JUd1FSR29tSkEKyqaDM/WUWjK2l+ahE6sIFYsQ6Qtkf7yz
NWFTzsDZBmm9kpSIjchf+PuBuoRHeEKbEH8jnMlYB3J8boEnUnXMlw== NWFTzsDZBmm9kpSIjchf+PuBuoRHeEKbEH8jnMlYB3J8boEnUnXMlw==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2024-12-22T22:35:15Z" lastmodified: "2024-03-19T00:42:59Z"
mac: ENC[AES256_GCM,data:olqDdjgOF7MsYXibawEn4bou6LPof25j231+Vwr+pSGCO19Sj44OkZpS0YmNBi+Uym+X6RGM5uV3fg4JYVgThnALI9JFyFuZ41gjPRyNBXJ16RnogKykHK5XNjQEogYho5bgLA8DTDeOvSfFHW2ENM052z6lJyAaPWJLa4ADlEY=,iv:YXGKcHQfqZCnK9Z3Nw/JxcTmZR++0iKUc7PDbLBqahY=,tag:UbHZvFZjaYjrC51Q1f/oyg==,type:str] mac: ENC[AES256_GCM,data:WuwpvgM5WCmtsb9WH6us1dn0+qQuV/6+ooI8K7Wp+VFlMWLA4g509TgOFHG+cxWJeN2cRtilnHM1INv1U6uadjWis0LrjrqbHaMRJ5aAr3/zKoTXWTG4pRNykoYmCkwHLnx0gJi6hm4PbKOIFVM+6V5m9JCLKRVO6eqyW15SVww=,iv:xVR5ZGs2Ww+J57qreIlHSW8A+ADAOjzM7B+KLRFrRLw=,tag:6KTaeX8+Txz4j1UJUWRj+w==,type:str]
pgp: [] pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.9.2 version: 3.8.1

View file

@ -1,356 +1,127 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ {
lib, inputs,
pkgs,
outputs, outputs,
lib,
config, config,
modulesPath, pkgs,
... ...
}: { }: {
imports = [ imports = [
# inputs.nixos-hardware.nixosModules.raspberry-pi-4 inputs.home-manager.nixosModules.home-manager
(modulesPath + "/installer/sd-card/sd-image-aarch64.nix")
outputs.nixosModules.vpn-ip
./armv7l.nix
./hardware-configuration.nix ./hardware-configuration.nix
# Import shared settings # Import shared configurations
../../shared
]; ];
hardware.enableRedistributableFirmware = true; boot.loader.generic-extlinux-compatible.enable = true;
powerManagement.cpuFreqGovernor = "ondemand"; boot.loader.generic-extlinux-compatible.configurationLimit = 5;
hardware.graphics.enable = true; boot.loader.grub.enable = false;
boot.tmp.cleanOnBoot = true;
nixpkgs.overlays = [ # boot.extraModulePackages = [
(final: super: { # (pkgs.callPackage ./rtl8189es.nix {
makeModulesClosure = x: # kernel = config.boot.kernelPackages.kernel;
super.makeModulesClosure (x // {allowMissing = true;}); # })
}) # ];
nixpkgs = {
# You can add overlays here
overlays = [
]; ];
programs = { # Configure your nixpkgs instance
# Allow executing of anything on the system with a , eg: , python executes python from the nix store even if not in $PATH currently config = {
command-not-found.enable = lib.mkForce false; # Disable if you don't want unfree packages
nix-index.enable = true; allowUnfree = true;
nix-index-database.comma.enable = true;
}; };
services = {
automatic-timezoned.enable = true;
# stubby = {
# enable = true;
# settings =
# pkgs.stubby.passthru.settingsExample
# // {
# upstream_recursive_servers = [
# {
# address_data = "94.140.14.49";
# tls_auth_name = "4b921896.d.adguard-dns.com";
# tls_pubkey_pinset = [
# {
# digest = "sha256";
# value = "19HOzAWb2bgl7bo/b4Soag+5luf7bo6vlDN8W812k4U=";
# }
# ];
# }
# {
# address_data = "94.140.14.59";
# tls_auth_name = "4b921896.d.adguard-dns.com";
# tls_pubkey_pinset = [
# {
# digest = "sha256";
# value = "19HOzAWb2bgl7bo/b4Soag+5luf7bo6vlDN8W812k4U=";
# }
# ];
# }
# {
# address_data = "2a10:50c0:0:0:0:0:ded:ff";
# tls_auth_name = "4b921896.d.adguard-dns.com";
# tls_pubkey_pinset = [
# {
# digest = "sha256";
# value = "19HOzAWb2bgl7bo/b4Soag+5luf7bo6vlDN8W812k4U=";
# }
# ];
# }
# {
# address_data = "2a10:50c0:0:0:0:0:dad:ff";
# tls_auth_name = "4b921896.d.adguard-dns.com";
# tls_pubkey_pinset = [
# {
# digest = "sha256";
# value = "19HOzAWb2bgl7bo/b4Soag+5luf7bo6vlDN8W812k4U=";
# }
# ];
# }
# ];
# };
# };
openssh = {
enable = true;
# require public key authentication for better security
settings.PasswordAuthentication = false;
settings.KbdInteractiveAuthentication = false;
settings.PermitRootLogin = "no";
}; };
davfs2.enable = true; sops.defaultSopsFile = ./secrets/sops.yaml;
sops.secrets."wireless.env".mode = "0440";
sops.secrets."wireless.env".owner = config.users.users.root.name;
environment.systemPackages = with pkgs; [
age
git
htop
];
boot.kernelParams = [
"console=ttyS0,115200n8"
];
nix = {
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
# This will add each flake input as a registry
# To make nix3 commands consistent with your flake
registry = lib.mapAttrs (_: value: {flake = value;}) inputs;
# This will additionally add your inputs to the system's legacy channels
# Making legacy nix commands consistent as well, awesome!
nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry;
aria2 = {
enable = true;
settings = { settings = {
dir = "/var/lib/media"; # Enable flakes and new 'nix' command
rpc-listen-port = 6969; experimental-features = "nix-command flakes";
}; # Deduplicate and optimize nix store
rpcSecretFile = config.sops.secrets."rpcSecret".path; auto-optimise-store = true;
};
dnsmasq = {
enable = true;
settings = {
interface = "wg1";
};
};
};
sops = {
# users.users = {
# ombi.extraGroups = ["radarr" "sonarr" "aria2"];
# };
# services.ombi = {
# enable = true;
# port = 2368;
# };
# users.users = {
# radarr.extraGroups = ["aria2"];
# sonarr.extraGroups = ["aria2"];
# };
# services = {
# #uses port 7878
# radarr.enable = true;
# #uses port 8989
# sonarr.enable = true;
# prowlarr.enable = true;
# };
secrets."webdav-secret" = {
mode = "0600";
path = "/etc/davfs2/secrets";
owner = config.users.users.root.name;
};
secrets."rpcSecret".mode = "0440";
secrets."rpcSecret".owner = config.users.users.aria2.name;
secrets."protonvpn-priv-key".mode = "0440";
secrets."protonvpn-priv-key".owner = config.users.users.root.name;
};
boot = {
kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
initrd.kernelModules = ["vc4" "bcm2835_dma" "i2c_bcm2835" "cma=256M" "console=tty0" "reset-raspberrypi"];
kernelParams = ["video=HDMI-A-1:1920x1080@60D"];
kernel.sysctl = {
"net.ipv4.ip_forward" = 1;
"net.ipv6.conf.all.forwarding" = 1;
}; };
}; };
sdImage.compressImage = false; networking.wireless.enable = true;
networking.wireless.environmentFile = config.sops.secrets."wireless.env".path;
services.vpn-ip = { networking.wireless.networks."KPNAA6306" = {
enable = false; hidden = true;
}; auth = ''
key_mgmt=WPA-PSK
networking = { password="@PSK_HOME@"
hostName = "wheatley";
networkmanager.enable = true;
# Disable NetworkManager's internal DNS resolution
networkmanager.dns = "none";
# These options are unnecessary when managing DNS ourselves
useDHCP = false;
dhcpcd.enable = false;
# Configure DNS servers manually (this example uses Cloudflare and Google DNS)
# IPv6 DNS servers can be used here as well.
nameservers = [
# "127.0.0.1"
# "::1"
"94.140.14.49"
"94.140.14.59"
"2a10:50c0:0:0:0:0:ded:ff"
"2a10:50c0:0:0:0:0:ded:ff"
];
wireguard.enable = true;
wg-quick.interfaces = {
# # "wg0" is the network interface name. You can name the interface arbitrarily.
# wg0 = {
# autostart = true;
# # Determines the IP address and subnet of the server's end of the tunnel interface.
# address = ["10.2.0.2/32"];
# # The port that WireGuard listens to. Must be accessible by the client.
# listenPort = 51820;
# dns = ["10.2.0.1"];
# # Path to the private key file.
# #
# # Note: The private key can also be included inline via the privateKey option,
# # but this makes the private key world-readable; thus, using privateKeyFile is
# # recommended.
# privateKeyFile = config.sops.secrets."protonvpn-priv-key".path;
# peers = [
# # List of allowed peers.
# {
# # Feel free to give a meaning full name
# # Public key of the peer (not a file path).
# publicKey = "/i7jCNpcqVBUkY07gVlILN4nFdvZHmxvreAOgLGoZGg=";
# # List of IPs assigned to this peer within the tunnel subnet. Used to configure routing.
# allowedIPs = ["0.0.0.0/0"];
# endpoint = "146.70.86.114:51820";
# }
# ];
# };
# wg public key for host: A02sO7uLdgflhPIRd0cbJONIaPP4z8HTxDkmX4NegFg=
# TODO: generate this dynamically based on other hosts
wg1 = {
# Determines the IP address and subnet of the server's end of the tunnel interface.
address = ["10.0.0.1/24" "fdc9:281f:04d7:9ee9::1/64"];
# The port that WireGuard listens to. Must be accessible by the client.
listenPort = 51821;
# This allows the wireguard server to route your traffic to the internet and hence be like a VPN
postUp = ''
${pkgs.iptables}/bin/iptables -A FORWARD -i wg0 -j ACCEPT
${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -o eth0 -j MASQUERADE
${pkgs.iptables}/bin/ip6tables -A FORWARD -i wg0 -j ACCEPT
${pkgs.iptables}/bin/ip6tables -t nat -A POSTROUTING -s fdc9:281f:04d7:9ee9::1/64 -o eth0 -j MASQUERADE
''; '';
# Undo the above
preDown = ''
${pkgs.iptables}/bin/iptables -D FORWARD -i wg0 -j ACCEPT
${pkgs.iptables}/bin/iptables -t nat -D POSTROUTING -s 10.0.0.1/24 -o eth0 -j MASQUERADE
${pkgs.iptables}/bin/ip6tables -D FORWARD -i wg0 -j ACCEPT
${pkgs.iptables}/bin/ip6tables -t nat -D POSTROUTING -s fdc9:281f:04d7:9ee9::1/64 -o eth0 -j MASQUERADE
'';
privateKeyFile = lib.mkForce config.sops.secrets."wg-private-key".path;
peers = [
{
#GLaDOS public key
publicKey = "yieF2yQptaE3jStoaGytUnN+HLxyVhFBZIUOGUNAV38=";
allowedIPs = ["10.0.0.2/32" "fdc9:281f:04d7:9ee9::2/128"];
}
{
#EDI public key
publicKey = "i4nDZbU+a2k5C20tFJRNPVE1vhYKJwhoqGHEdeC4704=";
allowedIPs = ["10.0.0.3/32" "fdc9:281f:04d7:9ee9::3/128"];
}
{
#Shodan public key
publicKey = "Zah2nZDaHF8jpP5AtMA5bhE7t38fMB2UHzbXAc96/jw=";
allowedIPs = ["10.0.0.4/32" "fdc9:281f:04d7:9ee9::3/128"];
}
{
#ADA public key
publicKey = "SHu7xxRVWuqp4U4uipMoITKrFPWZATGsJevUeqBSzWo=";
allowedIPs = ["10.0.0.5/32" "fdc9:281f:04d7:9ee9::3/128"];
}
#Queen public key: FVTrYM7S2Ev2rGrYrHsG2et1/SU3UjEBQH2AOen4+04=
];
}; };
networking.firewall.enable = true;
networking.firewall = {
allowedTCPPorts = [22 80 443 5335 8080];
allowedUDPPorts = [5335];
}; };
nat = { # Set your time zone.
# enable NAT time.timeZone = "Europe/Amsterdam";
programs.zsh = {
enable = true; enable = true;
externalInterface = "end0";
internalInterfaces = ["wg1"];
}; };
firewall = {
programs.git = {
enable = true; enable = true;
allowPing = false; };
allowedTCPPorts = [
22 # SSH home-manager = {
5349 # STUN tls extraSpecialArgs = {inherit inputs outputs;};
5350 # STUN tls alt users = {
80 # http # Import your home-manager configuration
443 # https lillian = import ../../../home-manager/hosts/wheatley;
51821 # wg
7878
53 # dnsmasq
];
allowedUDPPorts = [
53 #dnsmasq
];
allowedUDPPortRanges = [
{
from = 51820;
to = 51822; # wg
}
{
from = 49152;
to = 49999;
} # TURN relay
];
}; };
}; };
systemd.mounts = [
{
enable = true;
description = "Webdav mount point";
after = ["network-online.target"];
wants = ["network-online.target"];
what = "https://nextcloud.gladtherescake.eu/remote.php/dav/files/GLaDTheresCake"; networking.hostName = "wheatley"; # Define your hostname
where = "/home/kodi/nextcloud";
options = "uid=1002,gid=100,file_mode=0664,dir_mode=2775";
type = "davfs";
}
];
environment.systemPackages = [ networking.wireless.interfaces = ["enu1u1"];
pkgs.mpv-unwrapped
# (pkgs.kodi.withPackages (kodiPkgs:
# with kodiPkgs; [
# steam-controller
# invidious
# youtube
# netflix
# upnext
# sponsorblock
# sendtokodi
# jellyfin
# inputstream-adaptive
# inputstreamhelper
# inputstream-ffmpegdirect
# upnext
# sponsorblock
# sendtokodi
# routing
# requests-cache
# requests
# plugin-cache
# a4ksubtitles
# ]))
pkgs.iptables
];
users.extraUsers.kodi.isNormalUser = true; # powerManagement.cpuFreqGovernor = "powersave";
services.cage.user = "kodi"; powerManagement.cpufreq.max = 648000;
services.cage.program = "${pkgs.kodi-wayland}/bin/kodi-standalone";
services.cage.enable = true;
nixpkgs.config.kodi.enableAdvancedLauncher = true;
system.stateVersion = "25.05"; # This value determines the NixOS release with which your system is to be
nixpkgs.hostPlatform = lib.mkForce "aarch64-linux"; # compatible, in order to avoid breaking some software such as database
# servers. You should change this only after NixOS release notes say you
# should.
system.stateVersion = "unstable"; # Did you read the comment?
} }

View file

@ -10,26 +10,40 @@
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = ["xhci_pci"]; boot.initrd.availableKernelModules = ["usbhid"];
boot.initrd.kernelModules = []; boot.initrd.kernelModules = [];
boot.kernelModules = []; boot.kernelModules = [];
boot.extraModulePackages = []; boot.extraModulePackages = [];
boot.supportedFilesystems = lib.mkForce ["btrfs" "cifs" "f2fs" "jfs" "ntfs" "reiserfs" "vfat" "xfs"];
swapDevices = [ fileSystems = {
{ # Prior to 19.09, the boot partition was hosted on the smaller first partition
device = "/swapfile"; # Starting with 19.09, the /boot folder is on the main bigger partition.
size = 16 * 1024; # The following is to be used only with older images. Note such old images should not be considered supported anymore whatsoever, but if you installed back then, this might be needed
}
]; # "/boot" = {
# device = "/dev/disk/by-label/FIRMWARE";
# fsType = "vfat";
# };
"/" = {
device = "/dev/disk/by-label/NIXOS_SD";
fsType = "ext4";
};
};
swapDevices = [{device = "/dev/disk/by-uuid/b299ad0d-37a0-43d6-9647-5f717aca7b3";}];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction # still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.end0.useDHCP = lib.mkDefault true; # networking.interfaces.enu1u1.useDHCP = lib.mkDefault true;
# networking.interfaces.ip6tnl0.useDHCP = lib.mkDefault true;
# networking.interfaces.sit0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlan0.useDHCP = lib.mkDefault true; # networking.interfaces.wlan0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; nixpkgs.hostPlatform = lib.mkDefault "armv7l-linux";
powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
} }

View file

@ -1,10 +1,5 @@
wireless.env: ENC[AES256_GCM,data:a5sUW0Lc4GRd9aUJwHbmQvzvRB8WaRjMSQ==,iv:+3ncL38E3aqbejoCzzeBtMukLk4n/AQBJELlqhXDqSA=,tag:buY9Mp10DAEEEKqSyHwB3g==,type:str] wireless.env: ENC[AES256_GCM,data:a5sUW0Lc4GRd9aUJwHbmQvzvRB8WaRjMSQ==,iv:+3ncL38E3aqbejoCzzeBtMukLk4n/AQBJELlqhXDqSA=,tag:buY9Mp10DAEEEKqSyHwB3g==,type:str]
lillian-password: ENC[AES256_GCM,data:GY7WyfLRc/q4fecnazWzfoZsruN/F0ar7mJ9RaqTHSb9K6xhEmifmJeqpR5xGIJYW6MYciCsZ9YmRsJbuSHTIlo9PrCTYBGvXg==,iv:bzml3abPox3RdvtKBQiBAcVXHUdGAn0ETMsDpBtT8T0=,tag:2iaBJ4hFFBUbonslTvQH5Q==,type:str] lillian-password: ENC[AES256_GCM,data:GY7WyfLRc/q4fecnazWzfoZsruN/F0ar7mJ9RaqTHSb9K6xhEmifmJeqpR5xGIJYW6MYciCsZ9YmRsJbuSHTIlo9PrCTYBGvXg==,iv:bzml3abPox3RdvtKBQiBAcVXHUdGAn0ETMsDpBtT8T0=,tag:2iaBJ4hFFBUbonslTvQH5Q==,type:str]
protonvpn-priv-key: ENC[AES256_GCM,data:s4LAq1Rqm+jGaK3OKcjIBCQYXPs3oEuTKJMAM+gFxIpZdwcJCIU7uyoCy6c=,iv:zoWv5u0xgJHldwdRGRv3bXI1kasaWQz1YD7wt0J890I=,tag:cFXnayZRq13UqP+XWuHnWw==,type:str]
rpcSecret: ENC[AES256_GCM,data:3tCZk2csB/ofxPc6,iv:NwT6k1hh73moH6eErT23/Dvwgb1wP/qIuoxXnCgNSao=,tag:nh0mFsh9I4R1baCL1oH+AA==,type:str]
webdav-secret: ENC[AES256_GCM,data:SDFyHaE+HprkguOmDfnzwQ/n5OYgbTpxcVl4FGiLcsItefbSDOIQg5l01fqVB8zv+rRGlPcyRrIn7KTPrTpBx7X4RNHfFK4FKKvAANt6z0e5pu1+wnoObWxTShCFjfFoRCLkoh/j/CmLFyFIafrI7rzZUhs=,iv:stygLmNVWXkZL5A0J83CKPefRr7TqXeygQVLszr28eY=,tag:9hss2c77JELSASnwUyAF4w==,type:str]
wg-private-key: ENC[AES256_GCM,data:5WGAAst0qVqn1siX3snkAhsSDhZaS33XHT44BfViWLZqvzw+OhPB/jkSr4U=,iv:yXfN50SM3OWdycINB8iWXtvCSS01NBTrGBs1kxd1j0M=,tag:yhjDY1AM5aQ6DFeFEjo2Mw==,type:str]
ssh-private-key: ENC[AES256_GCM,data:zbCR/+REHSN4BIQIXSOQjSRKYWhaXutdn4AE2zxmN44qHPzMI98c7/aX2KFhHOL+vKpgyhhR6JAGVTF5Jk72lmIHwDvwvwx+gLXgpZH1KEK3nTUdwUVcqBDsVB4Na5rTsHMWmRH+NxV7n+3nSQo/Byi0Jb602IPXRNREL+0toCbHon27/o2uIy4uzbsEWZu6N2hadzQCtXmHJM2dqmbKvpADt04TQ4wAcZ6wB0538g5WdtOSU6T1xcBBSDU7MNEVP7e7dUPKJWK79cI+RrzpGIh/da7cM6exSBRas711oL6woH4Hi3G6Yjd1rPxBPt1+/qq45gm/4UvjQywn/1s7BInCe9/5vJLn3TEzuUd96CsT36vEsxMeOekXf50Ntu6Xr02bnFRwUBm76BVGAggwGf/khRNJuLw0xHsCdeKzHsPD0efe5mHTJw8mB3M6vDhO6e3g6E3uRjjBaDnrPuHuD4NE1kCjQTTJh3NbuT2Ab55lhpSOEK+f0Ik2qZgKzALvJhn+MILjXSfP/hXgiwBeP4dkTY3fOcpmnPyS,iv:ojh2hzVzJFy1kvvo/WvaIpMpGT+b9aSC+L8L0iwhF1o=,tag:bHOj/fxDn/qUmp1eijLPuw==,type:str]
sops: sops:
kms: [] kms: []
gcp_kms: [] gcp_kms: []
@ -20,8 +15,8 @@ sops:
Vm9mWk5JRGtZNVVhN1JQWTBlb2kySkEKoLI1MzS3uGNUbyn7kI5DylKZiPtc1div Vm9mWk5JRGtZNVVhN1JQWTBlb2kySkEKoLI1MzS3uGNUbyn7kI5DylKZiPtc1div
bKIboWoobTfDt0EURfmZ5+JrX6DlZxRyNQyl9dsKmZT6pLdaIppStA== bKIboWoobTfDt0EURfmZ5+JrX6DlZxRyNQyl9dsKmZT6pLdaIppStA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2024-12-22T22:37:02Z" lastmodified: "2024-02-22T11:57:45Z"
mac: ENC[AES256_GCM,data:T31z1/pngI6Wa3HMyOxS5ofb2Y5YqK0v5m96mn7n5dQ0d992ooEpoNyE7r8qHsD+tXiHvLIybWUMiMlDLI7Gq8op9GLEYYnFNDfc24k7lQPPuQK/iraJFUQwiRBbK063Rmfa6q6S3P2YN58+oxUJUiKuAy4yUIJTNaHeCCH8HMc=,iv:uLbAtSNbUcsejWdE1oBvCQVOtuaHL7A3R0sT/ispjhU=,tag:t3D7h0B0dDDZ18qo8G8wiA==,type:str] mac: ENC[AES256_GCM,data:V9vscu55woZjJGFV3aDgdHKqmIopYw6cajdOHG1/45Qel6l5YJkt8VyLMzYlUOlFGatXBlfTB7VC9zhhaY4lduww2XLrARcTk61BT+GSHp5sawND+RIDghY6CJBuoPUbtsfmmlmg+J2DljBlSbrcVmvfjMV12Ql6Zb8PEPM9K68=,iv:TFrDt1XpuIFLUyDN6+8n+0OypBkr1OrZOmXWvnY9ApI=,tag:EfsFhToEGFCZJSXh0WBrIw==,type:str]
pgp: [] pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.9.2 version: 3.8.1

View file

@ -1,56 +0,0 @@
{config, ...}: {
services.phpfpm.pools.nextcloud.settings = {
"listen.owner" = config.services.caddy.user;
"listen.group" = config.services.caddy.group;
};
users.users.caddy.extraGroups = ["nextcloud"];
services.caddy = {
enable = true;
# Setup Nextcloud virtual host to listen on ports
virtualHosts = {
"${config.services.nextcloud.hostName}" = {
useACMEHost = "${config.services.nextcloud.hostName}";
extraConfig = ''
redir /.well-known/carddav /remote.php/dav 301
redir /.well-known/caldav /remote.php/dav 301
redir /.well-known/webfinger /index.php/.well-known/webfinger 301
redir /.well-known/nodeinfo /index.php/.well-known/nodeinfo 301
encode gzip
reverse_proxy localhost:9000
header Strict-Transport-Security max-age=31536000;
@forbidden {
path /.htaccess
path /data/*
path /config/*
path /db_structure
path /.xml
path /README
path /3rdparty/*
path /lib/*
path /templates/*
path /occ
path /console.php
}
handle @forbidden {
respond 404
}
handle {
root * /var/www/html
php_fastcgi 127.0.0.1:9000 {
# Tells nextcloud to remove /index.php from URLs in links
env front_controller_active true
}
file_server
}
'';
};
"onlyoffice.gladtherescake.eu" = {
};
};
};
}

View file

@ -1,7 +1,7 @@
{ {
config, config,
inputs,
pkgs, pkgs,
inputs,
... ...
}: let }: let
# You'll need to edit these values # You'll need to edit these values
@ -30,18 +30,17 @@
''; '';
in { in {
# Configure Conduit itself # Configure Conduit itself
services.conduit = { services.matrix-conduit = {
enable = true; enable = true;
# This causes NixOS to use the flake defined in this repository instead of # This causes NixOS to use the flake defined in this repository instead of
# the build of Conduit built into nixpkgs. # the build of Conduit built into nixpkgs.
package = inputs.conduwuit.packages.${pkgs.system}.default; package = inputs.conduwuit.packages.${pkgs.system}.default;
# package = pkgs.conduwuit;
settings.global = { settings.global = {
inherit server_name; inherit server_name;
database_backend = "rocksdb";
allow_registration = false; allow_registration = false;
# emergency_password = "testpassword";
turn_uris = ["turn:turn.gladtherescake.eu.url?transport=udp" "turn:turn.gladtherescake.eu?transport=tcp"]; turn_uris = ["turn:turn.gladtherescake.eu.url?transport=udp" "turn:turn.gladtherescake.eu?transport=tcp"];
turn_secret = "cPKWEn4Fo5TAJoE7iX3xeVOaMVE4afeRN1iRGWYfbkWbkaZMxTpnmazHyH6c6yXT"; turn_secret = "cPKWEn4Fo5TAJoE7iX3xeVOaMVE4afeRN1iRGWYfbkWbkaZMxTpnmazHyH6c6yXT";
well_known = { well_known = {
@ -117,7 +116,6 @@ in {
locations."=/.well-known/matrix/client" = { locations."=/.well-known/matrix/client" = {
# Use the contents of the derivation built previously # Use the contents of the derivation built previously
alias = "${well_known_client}"; alias = "${well_known_client}";
return = "200 '{\"m.homeserver\": {\"base_url\": \"https://${server_name}\"}, \"org.matrix.msc3575.proxy\": {\"url\": \"https://${server_name}\"}}'";
extraConfig = '' extraConfig = ''
# Set the header since by default NGINX thinks it's just bytes # Set the header since by default NGINX thinks it's just bytes
@ -131,7 +129,6 @@ in {
proxyPass = "http://matrix.gladtherescake.eu/client/unstable/org.matrix.msc3575/sync"; proxyPass = "http://matrix.gladtherescake.eu/client/unstable/org.matrix.msc3575/sync";
proxyWebsockets = true; proxyWebsockets = true;
recommendedProxySettings = false; recommendedProxySettings = false;
return = "200 '{\"contacts\": [{\"matrix_id\": \"@admin:server.name\", \"email_address\": \"admin@server.name\", \"role\": \"m.role.admin\"}]}'";
extraConfig = '' extraConfig = ''
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_buffering off; proxy_buffering off;

View file

@ -18,13 +18,13 @@
url = "http://localhost:${toString config.services.prometheus.port}"; url = "http://localhost:${toString config.services.prometheus.port}";
isDefault = true; isDefault = true;
} }
{ # {
name = "Loki"; # name = "Loki";
type = "loki"; # type = "loki";
access = "proxy"; # access = "proxy";
url = "http://localhost:3100"; # url = "http://localhost:${config.services.loki.port}";
isDefault = true; # isDefault = true;
} # }
]; ];
}; };
}; };

View file

@ -1,4 +1,4 @@
{config, ...}: { {...}: {
services.prometheus = { services.prometheus = {
enable = true; enable = true;
port = 9001; port = 9001;
@ -16,19 +16,19 @@
job_name = "GrafanaService system"; job_name = "GrafanaService system";
static_configs = [ static_configs = [
{ {
targets = ["127.0.0.1:${toString config.services.prometheus.exporters.node.port}"]; targets = ["127.0.0.1:9002"];
} }
]; ];
} }
# Scrape the Loki service # Scrape the Loki service
{ # {
job_name = "Loki service"; # job_name = "Loki service";
static_configs = [ # static_configs = [
{ # {
targets = ["127.0.0.1:3100"]; # targets = ["127.0.0.1:3100"];
} # }
]; # ];
} # }
]; ];
}; };
} }

View file

@ -1,6 +1,6 @@
{...}: { {...}: {
imports = [ imports = [
# ./conduit ./conduit
./forgejo ./forgejo
./gotosocial ./gotosocial
./mail-server ./mail-server
@ -13,6 +13,5 @@
#./cinny #./cinny
#./firefox-sync #./firefox-sync
./writefreely ./writefreely
./mollysocket
]; ];
} }

View file

@ -3,7 +3,7 @@
sops.secrets."mailpass".owner = config.users.users.virtualMail.name; sops.secrets."mailpass".owner = config.users.users.virtualMail.name;
#Fix for the dovecot update #Fix for the dovecot update
# services.dovecot2.sieve.extensions = ["fileinto"]; services.dovecot2.sieve.extensions = ["fileinto"];
mailserver = { mailserver = {
enable = true; enable = true;
@ -14,21 +14,11 @@
"nextcloud.gladtherescake.eu" "nextcloud.gladtherescake.eu"
"akkoma.gladtherescake.eu" "akkoma.gladtherescake.eu"
"social.gladtherescake.eu" "social.gladtherescake.eu"
"gladtherescake.eu"
"lillianviolet.dev" "lillianviolet.dev"
"git.lillianviolet.dev" "git.lillianviolet.dev"
]; ];
loginAccounts = { loginAccounts = {
"me@gladtherescake.eu" = {
hashedPasswordFile = config.sops.secrets."mailpass".path;
aliases = [
"@gladtherescake.eu"
];
catchAll = [
"gladtherescake.eu"
];
};
"no-reply@nextcloud.gladtherescake.eu" = { "no-reply@nextcloud.gladtherescake.eu" = {
hashedPasswordFile = config.sops.secrets."mailpass".path; hashedPasswordFile = config.sops.secrets."mailpass".path;
}; };
@ -84,7 +74,6 @@
"no-reply@akkoma.gladtherescake.eu" "no-reply@akkoma.gladtherescake.eu"
"no-reply@social.gladtherescake.eu" "no-reply@social.gladtherescake.eu"
"no-reply@git.lillianviolet.dev" "no-reply@git.lillianviolet.dev"
"ongebonden@gladtherescake.eu"
]; ];
certificateScheme = "acme-nginx"; certificateScheme = "acme-nginx";
certificateDomains = [ certificateDomains = [
@ -92,7 +81,6 @@
"mail.lillianviolet.dev" "mail.lillianviolet.dev"
"pop3.lillianviolet.dev" "pop3.lillianviolet.dev"
"lillianviolet.dev" "lillianviolet.dev"
"gladtherescake.eu"
"mail.gladtherescake.eu" "mail.gladtherescake.eu"
]; ];
}; };

View file

@ -1,25 +0,0 @@
{config, ...}: {
sops.secrets."mollysocket-vapid-key".mode = "0440";
services.mollysocket = {
enable = true;
environmentFile = config.sops.secrets."mollysocket-vapid-key".path;
settings = {
port = 4381;
allowed_endpoints = ["https://molly.gladtherescake.eu" "https://nextcloud.gladtherescake.eu"];
allowed_uuids = ["db639f29-b7e7-431a-9c75-bcdcb87b6bdf"];
webserver = true;
};
};
services.nginx = {
virtualHosts = {
"molly.gladtherescake.eu" = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://localhost:4381";
};
};
};
};
}

View file

@ -7,14 +7,13 @@
sops.secrets."nextcloudadmin".owner = config.users.users.nextcloud.name; sops.secrets."nextcloudadmin".owner = config.users.users.nextcloud.name;
sops.secrets."nextclouddb".mode = "0440"; sops.secrets."nextclouddb".mode = "0440";
sops.secrets."nextclouddb".owner = config.users.users.nextcloud.name; sops.secrets."nextclouddb".owner = config.users.users.nextcloud.name;
# sops.secrets."local.json".mode = "0440"; sops.secrets."local.json".mode = "0440";
# sops.secrets."local.json".owner = config.users.users.onlyoffice.name; sops.secrets."local.json".owner = config.users.users.onlyoffice.name;
users.users = { users.users = {
# nextcloud.extraGroups = [config.users.groups.keys.name config.users.users.onlyoffice.name]; nextcloud.extraGroups = [config.users.groups.keys.name config.users.users.onlyoffice.name];
nextcloud.extraGroups = [config.users.groups.keys.name];
#aria2.extraGroups = ["nextcloud"]; #aria2.extraGroups = ["nextcloud"];
# onlyoffice.extraGroups = [config.users.users.nextcloud.name]; onlyoffice.extraGroups = [config.users.users.nextcloud.name];
}; };
# Enable Nginx # Enable Nginx
@ -50,7 +49,7 @@
enable = true; enable = true;
hostName = "nextcloud.gladtherescake.eu"; hostName = "nextcloud.gladtherescake.eu";
package = pkgs.nextcloud31; package = pkgs.nextcloud30;
# Use HTTPS for links # Use HTTPS for links
https = true; https = true;
@ -91,15 +90,15 @@
}; };
}; };
# services.onlyoffice = { services.onlyoffice = {
# port = 16783; port = 16783;
# enable = true; enable = true;
# hostname = "onlyoffice.gladtherescake.eu"; hostname = "onlyoffice.gladtherescake.eu";
# #postgresHost = "/run/postgesql"; #postgresHost = "/run/postgesql";
# #postgresUser = "onlyoffice"; #postgresUser = "onlyoffice";
# #postgresName = "onlyoffice"; #postgresName = "onlyoffice";
# #jwtSecretFile = config.sops.secrets."local.json".path; #jwtSecretFile = config.sops.secrets."local.json".path;
# }; };
services.rabbitmq = { services.rabbitmq = {
enable = true; enable = true;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

View file

@ -1,6 +1,5 @@
{ {
inputs, inputs,
outputs,
lib, lib,
config, config,
pkgs, pkgs,
@ -9,29 +8,14 @@
imports = [ imports = [
./locale ./locale
./packages ./packages
inputs.home-manager.nixosModules.home-manager
#../hosts/${config.networking.hostName}/hardware-configuration.nix
]; ];
sops = { sops.age.keyFile = ../../../../../../var/secrets/keys.txt;
age.keyFile = ../../../../../../var/secrets/keys.txt; sops.secrets."lillian-password".neededForUsers = true;
secrets."lillian-password".neededForUsers = true;
defaultSopsFile = ../hosts/${config.networking.hostName}/secrets/sops.yaml;
secrets."wg-private-key".mode = "0440";
secrets."wg-private-key".owner = config.users.users.root.name;
secrets."ssh-private-key" = {
mode = "0600";
owner = config.users.users.lillian.name;
path = "/home/lillian/.ssh/id_ed25519";
};
};
#TODO: remove this when unneeded for freetube #TODO: remove this when unneeded for freetube
nixpkgs.config.permittedInsecurePackages = [ nixpkgs.config.permittedInsecurePackages = [
"python3.12-youtube-dl-2021.12.17" "python3.12-youtube-dl-2021.12.17"
]; ];
nix = { nix = {
package = pkgs.lix; package = pkgs.lix;
gc = { gc = {
@ -48,7 +32,6 @@
nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry; nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry;
settings = { settings = {
trusted-users = ["root" "lillian"];
# Enable flakes and new 'nix' command # Enable flakes and new 'nix' command
experimental-features = "nix-command flakes"; experimental-features = "nix-command flakes";
# Deduplicate and optimize nix store # Deduplicate and optimize nix store
@ -58,142 +41,26 @@
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
"https://nixpkgs-unfree.cachix.org" "https://nixpkgs-unfree.cachix.org"
"https://0uptime.cachix.org" "https://0uptime.cachix.org"
"https://attic.kennel.juneis.dog/conduit"
]; ];
trusted-public-keys = [ trusted-public-keys = [
"cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nixpkgs-unfree.cachix.org-1:hqvoInulhbV4nJ9yJOEr+4wxhDV4xq2d1DK7S6Nj6rs=" "nixpkgs-unfree.cachix.org-1:hqvoInulhbV4nJ9yJOEr+4wxhDV4xq2d1DK7S6Nj6rs="
"0uptime.cachix.org-1:ctw8yknBLg9cZBdqss+5krAem0sHYdISkw/IFdRbYdE=" "0uptime.cachix.org-1:ctw8yknBLg9cZBdqss+5krAem0sHYdISkw/IFdRbYdE="
"conduit:eEKoUwlQGDdYmAI/Q/0slVlegqh/QmAvQd7HBSm21Wk="
]; ];
}; };
}; };
catppuccin = {
flavor = "macchiato";
tty.enable = true;
# sddm.enable = true;
# sddm.flavor = "macchiato";
forgejo.enable = true;
forgejo.flavor = "macchiato";
# plymouth.enable = false;
# grub.enable = false;
};
programs.zsh = { catppuccin.flavor = "macchiato";
enable = true; catppuccin.enable = true;
};
programs.gnupg.agent = { console.catppuccin.enable = true;
enable = true;
enableBrowserSocket = true;
};
# stylix = { home-manager.backupFileExtension = "backup";
# enable = true;
# # targets.qt.platform = "kde6";
# autoEnable = true;
# base16Scheme = {
# scheme = "Catppuccin Macchiato";
# author = "https://github.com/catppuccin/catppuccin";
# base00 = "24273a";
# base01 = "1e2030";
# base02 = "363a4f";
# base03 = "494d64";
# base04 = "5b6078";
# base05 = "cad3f5";
# base06 = "f4dbd6";
# base07 = "b7bdf8";
# base08 = "ed8796";
# base09 = "f5a97f";
# base0A = "eed49f";
# base0B = "a6da95";
# base0C = "8bd5ca";
# base0D = "8aadf4";
# base0E = "c6a0f6";
# base0F = "f0c6c6";
# };
# image = ./background.jpg;
# cursor.package = pkgs.catppuccin-cursors.macchiatoMauve;
# cursor.name = "catppuccin-macchiato-mauve-cursors";
# cursor.size = 16;
# homeManagerIntegration.followSystem = true;
# fonts = {
# serif = {
# package = pkgs.dejavu_fonts;
# name = "DejaVu Serif";
# };
# monospace = { users.users.lillian = {
# package = pkgs.dejavu_fonts;
# name = "DejaVu Sans Mono";
# };
# sansSerif = {
# package = pkgs.dejavu_fonts;
# name = "DejaVu Sans";
# };
# emoji = {
# package = pkgs.noto-fonts-emoji-blob-bin;
# name = "Blobmoji";
# };
# };
# };
fonts.packages = [
pkgs.atkinson-hyperlegible
pkgs.atkinson-monolegible
pkgs.noto-fonts
pkgs.nerd-fonts.fira-mono
];
fonts.fontconfig.defaultFonts = {
emoji = ["Blobmoji"];
monospace = ["Atkinson Monolegible"];
sansSerif = ["Atkinson Hyperlegible"];
};
networking =
if config.services.vpn-ip.enable
then {
wireguard.enable = true;
wg-quick.interfaces = {
wg0 = {
autostart = true;
address = ["10.0.0.${config.services.vpn-ip.ip}/24" "fdc9:281f:04d7:9ee9::${config.services.vpn-ip.ip}/64"];
dns = ["10.0.0.1" "fdc9:281f:04d7:9ee9::1"];
listenPort = 51821;
privateKeyFile = config.sops.secrets."wg-private-key".path;
peers = [
{
publicKey = "A02sO7uLdgflhPIRd0cbJONIaPP4z8HTxDkmX4NegFg=";
endpoint = "84.87.146.85:51821";
allowedIPs = ["0.0.0.0/0" "::/0"];
persistentKeepalive = 25;
}
];
};
};
}
else {};
# Enable completion of system packages by zsh
environment.pathsToLink = ["/share/zsh"];
home-manager = {
backupFileExtension = "backup";
extraSpecialArgs = {
inputs = inputs;
outputs = outputs;
};
users = {
# Import your home-manager configuration
lillian = import ../../home-manager/hosts/${config.networking.hostName};
};
};
users = {
users.lillian = {
isNormalUser = true; isNormalUser = true;
extraGroups = ["sudo" "networkmanager" "wheel" "vboxsf" "docker"]; extraGroups = ["sudo" "networkmanager" "wheel" "vboxsf" "docker"];
shell = pkgs.zsh; shell = pkgs.zsh;
@ -203,10 +70,17 @@
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH30G2PJOnI6jnAtxOQV0SpLFUva0adarLZLvaoZvjGE lillian@GLaDOS" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH30G2PJOnI6jnAtxOQV0SpLFUva0adarLZLvaoZvjGE lillian@GLaDOS"
]; ];
}; };
mutableUsers = false;
users.root = { programs.zsh = {
enable = true;
};
# Enable completion of system packages by zsh
environment.pathsToLink = ["/share/zsh"];
users.mutableUsers = false;
users.users.root = {
hashedPassword = "*"; hashedPassword = "*";
}; };
};
} }

View file

@ -22,7 +22,7 @@
install-nix-no-inhibit install-nix-no-inhibit
update update
upgrade upgrade
simple-completion-language-server # simple-completion-language-server
# System tools # System tools
age age
@ -30,7 +30,6 @@
e2fsprogs e2fsprogs
git git
git-filter-repo git-filter-repo
pre-commit
helix helix
home-manager home-manager
htop htop
@ -50,24 +49,24 @@
# Can be used to install latest version of some packages # Can be used to install latest version of some packages
]); ]);
# fonts = { fonts = {
# packages = with pkgs; [ packages = with pkgs; [
# noto-fonts-emoji-blob-bin noto-fonts-emoji-blob-bin
# cantarell-fonts cantarell-fonts
# dejavu_fonts dejavu_fonts
# fira-code fira-code
# noto-fonts noto-fonts
# noto-fonts-cjk-sans noto-fonts-cjk-sans
# noto-fonts-cjk-serif noto-fonts-cjk-serif
# paratype-pt-sans paratype-pt-sans
# paratype-pt-mono paratype-pt-mono
# paratype-pt-serif paratype-pt-serif
# roboto roboto
# twemoji-color-font twemoji-color-font
# font-awesome font-awesome
# atkinson-hyperlegible atkinson-hyperlegible
# fira-code-nerdfont fira-code-nerdfont
# ]; ];
# enableDefaultPackages = false; enableDefaultPackages = false;
# }; };
} }

202
pkgs/fcast/default.nix Normal file
View file

@ -0,0 +1,202 @@
{
lib,
buildNpmPackage,
cargo,
copyDesktopItems,
dbus,
electron_28,
fetchFromGitLab,
glib,
gnome,
gtk3,
jq,
libsecret,
makeDesktopItem,
makeWrapper,
moreutils,
napi-rs-cli,
nodejs_18,
patchutils_0_4_2,
pkg-config,
python3,
runCommand,
rustc,
rustPlatform,
}: let
description = "A secure and free password manager for all of your devices";
icon = "bitwarden";
electron = electron_28;
in
buildNpmPackage rec {
pname = "bitwarden-desktop";
version = "2024.3.0";
src = fetchFromGitLab {
owner = "videostreaming";
repo = "fcast";
rev = "b13d0f7e8150c279d377a78f89d338b7fc0f5539";
hash = "sha256-XEZB95GnfSy/wtTWpF8KlUQwyephUZmSLtbOwbcvd7g=";
};
patches = [
./electron-builder-package-lock.patch
];
# The nested package-lock.json from upstream is out-of-date, so copy the
# lock metadata from the root package-lock.json.
postPatch = ''
cat {,apps/desktop/src/}package-lock.json \
| ${lib.getExe jq} -s '
.[1].packages."".dependencies.argon2 = .[0].packages."".dependencies.argon2
| .[0].packages."" = .[1].packages.""
| .[1].packages = .[0].packages
| .[1]
' \
| ${moreutils}/bin/sponge apps/desktop/src/package-lock.json
'';
nodejs = nodejs_18;
makeCacheWritable = true;
npmFlags = ["--legacy-peer-deps"];
npmWorkspace = "apps/desktop";
npmDepsHash = "sha256-EpZXA+GkmHl5eqwIPTGHJZqrpr6k8gXneJG+GXumlkc=";
cargoDeps = rustPlatform.fetchCargoTarball {
name = "${pname}-${version}";
inherit src;
patches =
map
(
patch:
runCommand
(builtins.baseNameOf patch)
{nativeBuildInputs = [patchutils_0_4_2];}
''
< ${patch} filterdiff -p1 --include=${lib.escapeShellArg cargoRoot}'/*' > $out
''
)
patches;
patchFlags = ["-p4"];
sourceRoot = "${src.name}/${cargoRoot}";
hash = "sha256-qAqEFlUzT28fw6kLB8d7U8yXWevAU+q03zjN2xWsGyI=";
};
cargoRoot = "apps/desktop/desktop_native";
env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
nativeBuildInputs = [
cargo
copyDesktopItems
jq
makeWrapper
moreutils
napi-rs-cli
pkg-config
python3
rustc
rustPlatform.cargoCheckHook
rustPlatform.cargoSetupHook
];
buildInputs = [
glib
gtk3
libsecret
];
preBuild = ''
if [[ $(jq --raw-output '.devDependencies.electron' < package.json | grep -E --only-matching '^[0-9]+') != ${lib.escapeShellArg (lib.versions.major electron.version)} ]]; then
echo 'ERROR: electron version mismatch'
exit 1
fi
'';
postBuild = ''
pushd apps/desktop
# desktop_native/index.js loads a file of that name regarldess of the libc being used
mv desktop_native/desktop_native.* desktop_native/desktop_native.linux-x64-musl.node
npm exec electron-builder -- \
--dir \
-c.electronDist=${electron}/libexec/electron \
-c.electronVersion=${electron.version}
popd
'';
doCheck = true;
nativeCheckInputs = [
dbus
(gnome.gnome-keyring.override {useWrappedDaemon = false;})
];
checkFlags = [
"--skip=password::password::tests::test"
];
checkPhase = ''
runHook preCheck
pushd ${cargoRoot}
export HOME=$(mktemp -d)
export -f cargoCheckHook runHook _eval _callImplicitHook
export cargoCheckType=release
dbus-run-session \
--config-file=${dbus}/share/dbus-1/session.conf \
-- bash -e -c cargoCheckHook
popd
runHook postCheck
'';
installPhase = ''
runHook preInstall
mkdir $out
pushd apps/desktop/dist/linux-unpacked
mkdir -p $out/opt/Bitwarden
cp -r locales resources{,.pak} $out/opt/Bitwarden
popd
makeWrapper '${electron}/bin/electron' "$out/bin/bitwarden" \
--add-flags $out/opt/Bitwarden/resources/app.asar \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
--set-default ELECTRON_IS_DEV 0 \
--inherit-argv0
pushd apps/desktop/resources/icons
for icon in *.png; do
dir=$out/share/icons/hicolor/"''${icon%.png}"/apps
mkdir -p "$dir"
cp "$icon" "$dir"/${icon}.png
done
popd
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "bitwarden";
exec = "bitwarden %U";
inherit icon;
comment = description;
desktopName = "Bitwarden";
categories = ["Utility"];
})
];
meta = {
changelog = "https://github.com/bitwarden/clients/releases/tag/${src.rev}";
inherit description;
homepage = "https://bitwarden.com";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [amarshall kiwi];
platforms = ["x86_64-linux"];
mainProgram = "bitwarden";
};
}

View file

@ -5,17 +5,16 @@
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "simple-completion-language-server"; pname = "simple-completion-language-server";
version = "6c797949ad5a6e9548b60b5475d1c9977f26c811"; version = "ff9f90bc96c347f284571bc6310bc31f95508d55";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "estin"; owner = "estin";
repo = pname; repo = pname;
rev = version; rev = version;
hash = "sha256-cITZdlDB03i7gOYbahV99wZOQ7tisnqdT/N2Z12oLFM="; hash = "sha256-qybbZXjKzKcc6UXfAjwmkkB+qEUuGQXABRbMj7bNksM=";
}; };
useFetchCargoVendor = true; cargoHash = "sha256-VTz2Fm+PRUPM5+u9D+2TzGGIEQwb1j0Lz0WRaQ5/Yzo=";
cargoHash = "sha256-nannF4BKRLCcsS7VznzEHqrhLHYvN4X22t8jud87XEM=";
meta = with lib; { meta = with lib; {
description = "Language server to enable word completion and snippets for Helix editor"; description = "Language server to enable word completion and snippets for Helix editor";
homepage = "https://github.com/estin/simple-completion-language-server"; homepage = "https://github.com/estin/simple-completion-language-server";

View file

@ -0,0 +1 @@
/nix/store/3l0wgxsvf5sz2q9sgyj0blc1ivzg808b-simple-completion-language-server-ff9f90bc96c347f284571bc6310bc31f95508d55