formated using alejandra

This commit is contained in:
Don Harper 2024-06-30 09:47:45 -05:00
parent 88a48b895c
commit 4b1114a616
92 changed files with 1377 additions and 1156 deletions

View file

@ -10,7 +10,7 @@
stylix.inputs.nixpkgs.follows = "nixpkgs"; stylix.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = inputs@{ outputs = inputs @ {
self, self,
nixpkgs, nixpkgs,
nix, nix,
@ -18,18 +18,17 @@
home-manager, home-manager,
stylix, stylix,
... ...
}: }: let
let
inherit (self) outputs; inherit (self) outputs;
lib = nixpkgs.lib // home-manager.lib; lib = nixpkgs.lib // home-manager.lib;
systems = [ "x86_64-linux" "aarch64-linux" ]; systems = ["x86_64-linux" "aarch64-linux"];
forEachSystem = f: lib.genAttrs systems (system: f pkgsFor.${system}); forEachSystem = f: lib.genAttrs systems (system: f pkgsFor.${system});
pkgsFor = lib.genAttrs systems (system: import nixpkgs { pkgsFor = lib.genAttrs systems (system:
import nixpkgs {
inherit system; inherit system;
config.allowUnfree = true; config.allowUnfree = true;
}); });
in in {
{
inherit lib; inherit lib;
# nixosModules = import ./modules/nixos; # nixosModules = import ./modules/nixos;
# homeManagerModules = import ./modules/home-manager; # homeManagerModules = import ./modules/home-manager;
@ -44,67 +43,67 @@
nixosConfigurations = { nixosConfigurations = {
# clients # clients
ace = lib.nixosSystem { ace = lib.nixosSystem {
modules = [ ./hosts/ace ]; modules = [./hosts/ace];
specialArgs = { inherit inputs outputs; }; specialArgs = {inherit inputs outputs;};
}; };
dragon = lib.nixosSystem { dragon = lib.nixosSystem {
modules = [ ./hosts/dragon ]; modules = [./hosts/dragon];
specialArgs = { inherit inputs outputs; }; specialArgs = {inherit inputs outputs;};
}; };
eve = lib.nixosSystem { eve = lib.nixosSystem {
modules = [ ./hosts/eve ]; modules = [./hosts/eve];
specialArgs = { inherit inputs outputs; }; specialArgs = {inherit inputs outputs;};
}; };
loki = lib.nixosSystem { loki = lib.nixosSystem {
modules = [ ./hosts/loki ]; modules = [./hosts/loki];
specialArgs = { inherit inputs outputs; }; specialArgs = {inherit inputs outputs;};
}; };
pocket2 = lib.nixosSystem { pocket2 = lib.nixosSystem {
modules = [ ./hosts/pocket2 ]; modules = [./hosts/pocket2];
specialArgs = { inherit inputs outputs; }; specialArgs = {inherit inputs outputs;};
}; };
smaug = lib.nixosSystem { smaug = lib.nixosSystem {
modules = [ ./hosts/smaug ]; modules = [./hosts/smaug];
specialArgs = { inherit inputs outputs; }; specialArgs = {inherit inputs outputs;};
}; };
t2 = lib.nixosSystem { t2 = lib.nixosSystem {
modules = [ ./hosts/t2 ]; modules = [./hosts/t2];
specialArgs = { inherit inputs outputs; }; specialArgs = {inherit inputs outputs;};
}; };
# servers # servers
display = lib.nixosSystem { display = lib.nixosSystem {
modules = [ ./hosts/display ]; modules = [./hosts/display];
specialArgs = { inherit inputs outputs; }; specialArgs = {inherit inputs outputs;};
}; };
fred = lib.nixosSystem { fred = lib.nixosSystem {
modules = [ ./hosts/fred ]; modules = [./hosts/fred];
specialArgs = { inherit inputs outputs; }; specialArgs = {inherit inputs outputs;};
}; };
vm = lib.nixosSystem { vm = lib.nixosSystem {
modules = [ ./hosts/vm ]; modules = [./hosts/vm];
specialArgs = { inherit inputs outputs; }; specialArgs = {inherit inputs outputs;};
}; };
harper2 = lib.nixosSystem { harper2 = lib.nixosSystem {
modules = [ ./hosts/harper2 ]; modules = [./hosts/harper2];
specialArgs = { inherit inputs outputs; }; specialArgs = {inherit inputs outputs;};
}; };
harper = lib.nixosSystem { harper = lib.nixosSystem {
modules = [ ./hosts/harper ]; modules = [./hosts/harper];
specialArgs = { inherit inputs outputs; }; specialArgs = {inherit inputs outputs;};
}; };
nuwww = lib.nixosSystem { nuwww = lib.nixosSystem {
modules = [ ./hosts/nuwww ]; modules = [./hosts/nuwww];
specialArgs = { inherit inputs outputs; }; specialArgs = {inherit inputs outputs;};
}; };
pihole = lib.nixosSystem { pihole = lib.nixosSystem {
modules = [ ./hosts/pihole ]; modules = [./hosts/pihole];
specialArgs = { inherit inputs outputs; }; specialArgs = {inherit inputs outputs;};
}; };
www2 = lib.nixosSystem { www2 = lib.nixosSystem {
modules = [ ./hosts/www2 ]; modules = [./hosts/www2];
specialArgs = { inherit inputs outputs; }; specialArgs = {inherit inputs outputs;};
}; };
}; };
}; };

View file

@ -1,6 +1,9 @@
{ config, pkgs, ... }:
{ {
imports = [ ./bash_complition.nix ]; config,
pkgs,
...
}: {
imports = [./bash_complition.nix];
home.file.".bash_local".source = files/bash/bash_local; home.file.".bash_local".source = files/bash/bash_local;
home.file.".bash_aliases".source = files/bash/bash_aliases; home.file.".bash_aliases".source = files/bash/bash_aliases;
home.file.".bash_functions".source = files/bash/bash_functions; home.file.".bash_functions".source = files/bash/bash_functions;

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { {pkgs, ...}: {
home.file = { home.file = {
doascomplete = { doascomplete = {
enable = true; enable = true;

View file

@ -1,5 +1,8 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
#home.packages = with pkgs; [ btop ]; #home.packages = with pkgs; [ btop ];
programs.btop = { programs.btop = {
enable = true; enable = true;

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
programs.neovim = { programs.neovim = {
plugins = with pkgs.vimPlugins; [ plugins = with pkgs.vimPlugins; [
{ {
@ -99,3 +98,4 @@
}; };
} }
# vim: shiftwidth=2 tabstop=2 expandtab # vim: shiftwidth=2 tabstop=2 expandtab

View file

@ -1,5 +1,8 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
imports = [ imports = [
./bash.nix ./bash.nix
./btop.nix ./btop.nix

View file

@ -1,6 +1,8 @@
{ pkgs, config, ... }:
{ {
pkgs,
config,
...
}: {
programs.lazygit = { programs.lazygit = {
settings = { settings = {
os.editPreset = "lvim"; os.editPreset = "lvim";

View file

@ -1,5 +1,4 @@
{ ... }: {...}: {
{
programs.gpg = { programs.gpg = {
enable = true; enable = true;
settings = { settings = {

View file

@ -1,5 +1,5 @@
{ pkgs, ... }: { {pkgs, ...}: {
home.packages = with pkgs; [ khal ]; home.packages = with pkgs; [khal];
xdg.configFile."khal/config".text = '' xdg.configFile."khal/config".text = ''
[calendars] [calendars]
[[work]] [[work]]

View file

@ -1,12 +1,15 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
programs.khard = { programs.khard = {
enable = true; enable = true;
settings = { settings = {
general = { general = {
default_action = "list"; default_action = "list";
editor = "${pkgs.neovim}/bin/nvim"; editor = "${pkgs.neovim}/bin/nvim";
merge_editor = [ "${pkgs.neovim}/bin/nvim" "-d" ]; merge_editor = ["${pkgs.neovim}/bin/nvim" "-d"];
}; };
"contact table" = { "contact table" = {
display = "first_name"; display = "first_name";
@ -16,11 +19,11 @@
show_uids = "no"; show_uids = "no";
sort = "last_name"; sort = "last_name";
localize_dates = "yes"; localize_dates = "yes";
preferred_phone_number_type = [ "pref" "cell" "home" ]; preferred_phone_number_type = ["pref" "cell" "home"];
preferred_email_address_type = [ "pref" "work" "home" ]; preferred_email_address_type = ["pref" "work" "home"];
}; };
vcard = { vcard = {
private_objects = [ "Jabber" "Skype" "Twitter" "Mastodon" ]; private_objects = ["Jabber" "Skype" "Twitter" "Mastodon"];
preferred_version = "3.0"; preferred_version = "3.0";
search_in_source_files = "no"; search_in_source_files = "no";
skip_unparsable = "no"; skip_unparsable = "no";

View file

@ -1,6 +1,8 @@
{ pkgs, config, ... }:
{ {
pkgs,
config,
...
}: {
xdg.configFile."lf/icons".source = ./icons; xdg.configFile."lf/icons".source = ./icons;
programs.lf = { programs.lf = {
@ -17,7 +19,6 @@
}; };
keybindings = { keybindings = {
"\\\"" = ""; "\\\"" = "";
o = ""; o = "";
c = "mkdir"; c = "mkdir";
@ -45,10 +46,8 @@
ignorecase = true; ignorecase = true;
}; };
extraConfig = extraConfig = let
let previewer = pkgs.writeShellScriptBin "pv.sh" ''
previewer =
pkgs.writeShellScriptBin "pv.sh" ''
file=$1 file=$1
w=$2 w=$2
h=$3 h=$3
@ -65,8 +64,7 @@
cleaner = pkgs.writeShellScriptBin "clean.sh" '' cleaner = pkgs.writeShellScriptBin "clean.sh" ''
${pkgs.kitty}/bin/kitty +kitten icat --clear --stdin no --silent --transfer-mode file < /dev/null > /dev/tty ${pkgs.kitty}/bin/kitty +kitten icat --clear --stdin no --silent --transfer-mode file < /dev/null > /dev/tty
''; '';
in in ''
''
set cleaner ${cleaner}/bin/clean.sh set cleaner ${cleaner}/bin/clean.sh
set previewer ${previewer}/bin/pv.sh set previewer ${previewer}/bin/pv.sh
''; '';

View file

@ -1,5 +1,5 @@
{ pkgs, ... }: { {pkgs, ...}: {
home.packages = with pkgs; [ liquidprompt ]; home.packages = with pkgs; [liquidprompt];
xdg.configFile."liquidpromptrc".text = '' xdg.configFile."liquidpromptrc".text = ''
source ~/.config/liquidprompt.theme source ~/.config/liquidprompt.theme
LOCAL_RCFILE=$HOME/.config/liquidpromptrc.local LOCAL_RCFILE=$HOME/.config/liquidpromptrc.local

View file

@ -1,6 +1,9 @@
{ config, pkgs, ... }:
{ {
home.packages = with pkgs; [ listadmin ]; config,
pkgs,
...
}: {
home.packages = with pkgs; [listadmin];
home.file."listadmin.ini" = { home.file."listadmin.ini" = {
enable = true; enable = true;
target = ".listadmin.ini"; target = ".listadmin.ini";
@ -18,4 +21,3 @@
''; '';
}; };
} }

View file

@ -1,5 +1,8 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
accounts.email.accounts = { accounts.email.accounts = {
"don@donharper.org" = { "don@donharper.org" = {
primary = true; primary = true;
@ -14,8 +17,8 @@
programs.notmuch = { programs.notmuch = {
enable = true; enable = true;
new = { new = {
tags = [ "unread" ]; tags = ["unread"];
ignore = [ ".mbsyncstate" ".uidvalidity" ".mbsyncstate.journal" ".mbsyncstate.new" ".mbsyncstate.lock" ]; ignore = [".mbsyncstate" ".uidvalidity" ".mbsyncstate.journal" ".mbsyncstate.new" ".mbsyncstate.lock"];
}; };
extraConfig = { extraConfig = {
database = { database = {
@ -52,7 +55,7 @@
Type = "oneshot"; Type = "oneshot";
}; };
Install = { Install = {
WantedBy = [ "mbsync.timer" ]; WantedBy = ["mbsync.timer"];
}; };
}; };

View file

@ -1,6 +1,8 @@
{ pkgs, config, ... }:
{ {
pkgs,
config,
...
}: {
services = { services = {
mopidy = { mopidy = {
enable = true; enable = true;

View file

@ -1,13 +1,15 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
programs.neovim = { programs.neovim = {
enable = true; enable = true;
defaultEditor = false; defaultEditor = false;
viAlias = true; viAlias = true;
vimAlias = true; vimAlias = true;
vimdiffAlias = true; vimdiffAlias = true;
extraConfig = extraConfig = ''
''
colorscheme dracula colorscheme dracula
set backspace="indent,eol,start" set backspace="indent,eol,start"
set autoindent set autoindent

View file

@ -1,13 +1,15 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
programs.newsboat = { programs.newsboat = {
enable = true; enable = true;
autoReload = true; autoReload = true;
browser = "~/bin/myweb"; browser = "~/bin/myweb";
reloadThreads = 4; reloadThreads = 4;
reloadTime = 45; reloadTime = 45;
extraConfig = extraConfig = ''
''
article-sort-order date article-sort-order date
bind-key D mark-feed-read bind-key D mark-feed-read
bind-key J next-feed bind-key J next-feed

View file

@ -1,6 +1,5 @@
{ pkgs, ... }: {pkgs, ...}: {
{ home.packages = with pkgs; [taskwarrior taskwarrior-tui tasksh vit timewarrior];
home.packages = with pkgs; [ taskwarrior taskwarrior-tui tasksh vit timewarrior ];
programs.taskwarrior = { programs.taskwarrior = {
enable = true; enable = true;
colorTheme = "dark-green-256"; colorTheme = "dark-green-256";

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
programs.tmux = { programs.tmux = {
enable = true; enable = true;
aggressiveResize = true; aggressiveResize = true;
@ -21,16 +20,14 @@
pkgs.tmuxPlugins.vim-tmux-navigator pkgs.tmuxPlugins.vim-tmux-navigator
{ {
plugin = pkgs.tmuxPlugins.online-status; plugin = pkgs.tmuxPlugins.online-status;
extraConfig = extraConfig = ''
''
set -g @online_icon "ok" set -g @online_icon "ok"
set -g @offline_icon "offline!" set -g @offline_icon "offline!"
''; '';
} }
{ {
plugin = pkgs.tmuxPlugins.dracula; plugin = pkgs.tmuxPlugins.dracula;
extraConfig = extraConfig = ''
''
set -g @dracula-plugins "cpu-usage network battery weather time" set -g @dracula-plugins "cpu-usage network battery weather time"
set -g @dracula-border-contrast true set -g @dracula-border-contrast true
set -g @dracula-refresh-rate 10 set -g @dracula-refresh-rate 10
@ -45,8 +42,7 @@
''; '';
} }
]; ];
extraConfig = extraConfig = ''
''
bind '~' split-window "exec btop" bind '~' split-window "exec btop"
bind - split-window -v -c "#{pane_current_path}" bind - split-window -v -c "#{pane_current_path}"
bind | split-window -h -c "#{pane_current_path}" bind | split-window -h -c "#{pane_current_path}"
@ -141,8 +137,8 @@
ubuntu:-sc mini -sc www -sc harper2 ubuntu:-sc mini -sc www -sc harper2
vm:-sc vm1 -sc vm2 vm:-sc vm1 -sc vm2
all-laptop:-cs laptop -sc smaug -sc dragon -sc pocket2 -sc ace -sc eve all-laptop:-cs laptop -sc smaug -sc dragon -sc pocket2 -sc ace -sc eve
# -sc pine # -sc pine
#all:-cs server -cs laptop #all:-cs server -cs laptop
all:-cs server -cs all-laptop all:-cs server -cs all-laptop
test:-cs all -cs vm test:-cs all -cs vm
''; '';

View file

@ -1,6 +1,10 @@
{ pkgs, ... }: { {pkgs, ...}: {
home.packages = with pkgs; [ todoman ]; home.packages = with pkgs; [todoman];
xdg.configFile."todoman/config.py".text = /* python */ '' xdg.configFile."todoman/config.py".text =
/*
python
*/
''
path = "~/.config/vdirsyncer/storage/calendar/*" path = "~/.config/vdirsyncer/storage/calendar/*"
date_format = "%Y-%m-%d" date_format = "%Y-%m-%d"
time_format = "%H:%M" time_format = "%H:%M"

View file

@ -1,5 +1,8 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
programs.topgrade = { programs.topgrade = {
enable = true; enable = true;
settings = { settings = {

View file

@ -1,5 +1,5 @@
{ pkgs, ... }: { {pkgs, ...}: {
home.packages = with pkgs; [ vifm-full ]; home.packages = with pkgs; [vifm-full];
xdg.configFile."vifm/vifmrc".text = '' xdg.configFile."vifm/vifmrc".text = ''
" vim: filetype=vifm : " vim: filetype=vifm :
set runexec set runexec

View file

@ -1,8 +1,10 @@
{ inputs, outputs, ... }:
{ {
imports = [ inputs.home-manager.nixosModules.home-manager ]; inputs,
home-manager.extraSpecialArgs = { inherit inputs outputs; }; outputs,
...
}: {
imports = [inputs.home-manager.nixosModules.home-manager];
home-manager.extraSpecialArgs = {inherit inputs outputs;};
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
programs.alacritty = { programs.alacritty = {
enable = true; enable = true;
settings = { settings = {
@ -15,3 +14,4 @@
}; };
} }
# vim: shiftwidth=2 tabstop=2 expandtab # vim: shiftwidth=2 tabstop=2 expandtab

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { {pkgs, ...}: {
xdg.configFile."autostart" = { xdg.configFile."autostart" = {
recursive = true; recursive = true;
source = ./files/autostart; source = ./files/autostart;

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { {pkgs, ...}: {
home.packages = with pkgs; [ home.packages = with pkgs; [
gnome.gnome-boxes gnome.gnome-boxes
libvirt libvirt

View file

@ -1,5 +1,8 @@
{ pkgs, inputs, ... }:
{ {
pkgs,
inputs,
...
}: {
home-manager.users.don = { home-manager.users.don = {
imports = [ imports = [
./alacritty.nix ./alacritty.nix
@ -13,7 +16,8 @@
./sway.nix ./sway.nix
./terminals.nix ./terminals.nix
]; ];
home.packages = with pkgs; [ home.packages = with pkgs;
[
anonymousPro anonymousPro
at-spi2-core at-spi2-core
blueberry blueberry
@ -70,40 +74,41 @@
widevine-cdm widevine-cdm
wofi wofi
yt-dlp yt-dlp
] ++ lib.optional (pkgs.hostPlatform.system == "x86_64-linux") sonixd; ]
++ lib.optional (pkgs.hostPlatform.system == "x86_64-linux") sonixd;
xdg = { xdg = {
mimeApps = { mimeApps = {
enable = true; enable = true;
associations.added = { associations.added = {
"application/octet-stream" = [ "gvim.desktop" ]; "application/octet-stream" = ["gvim.desktop"];
"application/pdf" = [ "qpdfview.desktop;org.gnome.Evince.desktop;org.pwmt.zathura-pdf-mupdf.desktop" ]; "application/pdf" = ["qpdfview.desktop;org.gnome.Evince.desktop;org.pwmt.zathura-pdf-mupdf.desktop"];
"audio/mpeg" = [ "org.kde.kid3.desktop" ]; "audio/mpeg" = ["org.kde.kid3.desktop"];
"image/jpeg" = [ "darktable.desktop;gimp.desktop;imv.desktop" ]; "image/jpeg" = ["darktable.desktop;gimp.desktop;imv.desktop"];
"image/png" = [ "darktable.desktop;gimp.desktop;imv-folder.desktop;imv.desktop" ]; "image/png" = ["darktable.desktop;gimp.desktop;imv-folder.desktop;imv.desktop"];
"image/x-adobe-dng" = [ "imv.desktop" ]; "image/x-adobe-dng" = ["imv.desktop"];
"inode/directory" = [ "thunar.desktop" ]; "inode/directory" = ["thunar.desktop"];
"text/plain" = [ "gvim.desktop" ]; "text/plain" = ["gvim.desktop"];
"x-scheme-handler/pdf" = [ "pdfview.desktop" ]; "x-scheme-handler/pdf" = ["pdfview.desktop"];
"x-scheme-handler/tg" = [ "userapp-Telegram Desktop-9M6O50.desktop;userapp-Telegram Desktop-6IJLW1.desktop;userapp-Telegram Desktop-IQIXX1.desktop;userapp-Telegram Desktop-FK06Y1.desktop;userapp-Telegram Desktop-1SZ7Y1.desktop;userapp-Telegram Desktop-C24MZ1.desktop;userapp-Telegram Desktop-29FD01.desktop;userapp-Telegram Desktop-21P401.desktop;userapp-Telegram Desktop-LOTG11.desktop" ]; "x-scheme-handler/tg" = ["userapp-Telegram Desktop-9M6O50.desktop;userapp-Telegram Desktop-6IJLW1.desktop;userapp-Telegram Desktop-IQIXX1.desktop;userapp-Telegram Desktop-FK06Y1.desktop;userapp-Telegram Desktop-1SZ7Y1.desktop;userapp-Telegram Desktop-C24MZ1.desktop;userapp-Telegram Desktop-29FD01.desktop;userapp-Telegram Desktop-21P401.desktop;userapp-Telegram Desktop-LOTG11.desktop"];
}; };
defaultApplications = { defaultApplications = {
"inode/directory" = [ "thunar.desktop" ]; "inode/directory" = ["thunar.desktop"];
"model/3mf" = [ "com.ultimaker.cura.desktop" ]; "model/3mf" = ["com.ultimaker.cura.desktop"];
"model/gltf+json" = [ "com.ultimaker.cura.desktop" ]; "model/gltf+json" = ["com.ultimaker.cura.desktop"];
"model/gltf-binary" = [ "com.ultimaker.cura.desktop" ]; "model/gltf-binary" = ["com.ultimaker.cura.desktop"];
"model/stl" = [ "com.ultimaker.cura.desktop" ]; "model/stl" = ["com.ultimaker.cura.desktop"];
"text/html" = [ "org.qutebrowser.qutebrowser.desktop" ]; "text/html" = ["org.qutebrowser.qutebrowser.desktop"];
"x-scheme-handler/about" = [ "org.qutebrowser.qutebrowser.desktop" ]; "x-scheme-handler/about" = ["org.qutebrowser.qutebrowser.desktop"];
"x-scheme-handler/etcher" = [ "balena-etcher.desktop" ]; "x-scheme-handler/etcher" = ["balena-etcher.desktop"];
"x-scheme-handler/http" = [ "org.qutebrowser.qutebrowser.desktop" ]; "x-scheme-handler/http" = ["org.qutebrowser.qutebrowser.desktop"];
"x-scheme-handler/https" = [ "org.qutebrowser.qutebrowser.desktop" ]; "x-scheme-handler/https" = ["org.qutebrowser.qutebrowser.desktop"];
"x-scheme-handler/msteams" = [ "teams-for-linux.desktop" ]; "x-scheme-handler/msteams" = ["teams-for-linux.desktop"];
"x-scheme-handler/pdf" = [ "myweb.desktop" ]; "x-scheme-handler/pdf" = ["myweb.desktop"];
"x-scheme-handler/tg" = [ "userapp-Telegram Desktop-LOTG11.desktop" ]; "x-scheme-handler/tg" = ["userapp-Telegram Desktop-LOTG11.desktop"];
"x-scheme-handler/tootle" = [ "com.github.bleakgrey.tootle.desktop" ]; "x-scheme-handler/tootle" = ["com.github.bleakgrey.tootle.desktop"];
"x-scheme-handler/unknown" = [ "org.qutebrowser.qutebrowser.desktop" ]; "x-scheme-handler/unknown" = ["org.qutebrowser.qutebrowser.desktop"];
"application/pdf" = [ "org.pwmt.zathura-pdf-mupdf.desktop" ]; "application/pdf" = ["org.pwmt.zathura-pdf-mupdf.desktop"];
"x-scheme-handler/mailto" = [ "neomutt.desktop" ]; "x-scheme-handler/mailto" = ["neomutt.desktop"];
}; };
}; };
desktopEntries = { desktopEntries = {
@ -129,7 +134,7 @@
terminal = false; terminal = false;
name = "myweb"; name = "myweb";
exec = "/home/don/bin/myweb %u"; exec = "/home/don/bin/myweb %u";
mimeType = [ "x-scheme-handler/pdf" ]; mimeType = ["x-scheme-handler/pdf"];
}; };
cooking-notebook = { cooking-notebook = {
type = "Application"; type = "Application";
@ -144,8 +149,8 @@
type = "Application"; type = "Application";
icon = "obsidian"; icon = "obsidian";
comment = "Obsidian"; comment = "Obsidian";
mimeType = [ "x-scheme-handler/obsidian" ]; mimeType = ["x-scheme-handler/obsidian"];
categories = [ "Office" ]; categories = ["Office"];
}; };
journal = { journal = {
name = "Journal"; name = "Journal";
@ -154,8 +159,8 @@
type = "Application"; type = "Application";
icon = "obsidian"; icon = "obsidian";
comment = "Obsidian Journal"; comment = "Obsidian Journal";
mimeType = [ "x-scheme-handler/obsidian" ]; mimeType = ["x-scheme-handler/obsidian"];
categories = [ "Office" ]; categories = ["Office"];
}; };
}; };
configFile = { configFile = {

View file

@ -1,6 +1,9 @@
{ config, pkgs, ... }:
{ {
home.packages = with pkgs; [ fuzzel ]; config,
pkgs,
...
}: {
home.packages = with pkgs; [fuzzel];
programs.fuzzel = { programs.fuzzel = {
enable = true; enable = true;
settings = { settings = {

View file

@ -1,5 +1,5 @@
{ pkgs, ... }: { {pkgs, ...}: {
home.packages = with pkgs; [ ktimer ]; home.packages = with pkgs; [ktimer];
xdg.configFile."ktimerrc".text = '' xdg.configFile."ktimerrc".text = ''
[Job0] [Job0]
Command[$e]=$HOME/bin/timeup Command[$e]=$HOME/bin/timeup

View file

@ -1,36 +1,35 @@
{ pkgs, ... }: {pkgs, ...}: {
{
programs = { programs = {
mpv = { mpv = {
enable = true; enable = true;
# package = pkgs.wrapMpv (pkgs.mpv-unwrapped.override { vapoursynthSupport = true; }) { youtubeSupport = true; }; # package = pkgs.wrapMpv (pkgs.mpv-unwrapped.override { vapoursynthSupport = true; }) { youtubeSupport = true; };
config = { config = {
cache="yes"; cache = "yes";
cache-on-disk="no"; cache-on-disk = "no";
cache-pause-initial="yes"; cache-pause-initial = "yes";
cache-pause-wait="5"; cache-pause-wait = "5";
cache-secs="3600"; cache-secs = "3600";
demuxer-cache-wait="no"; demuxer-cache-wait = "no";
demuxer-donate-buffer="yes"; demuxer-donate-buffer = "yes";
demuxer-max-back-bytes="244141KiB"; demuxer-max-back-bytes = "244141KiB";
demuxer-max-bytes="732422KiB"; demuxer-max-bytes = "732422KiB";
demuxer-readahead-secs="60"; demuxer-readahead-secs = "60";
demuxer-seekable-cache="auto"; demuxer-seekable-cache = "auto";
demuxer-thread="yes"; demuxer-thread = "yes";
force-seekable="yes"; force-seekable = "yes";
hls-bitrate="max"; hls-bitrate = "max";
hr-seek-framedrop="no"; hr-seek-framedrop = "no";
hr-seek="yes"; hr-seek = "yes";
index="default"; index = "default";
save-position-on-quit="yes"; save-position-on-quit = "yes";
script-opts="ytdl_hook-ytdl_path=/etc/profiles/per-user/don/bin/yt-dlp"; script-opts = "ytdl_hook-ytdl_path=/etc/profiles/per-user/don/bin/yt-dlp";
# scripts=[ pkgs.mpvScripts.autoload ]; # scripts=[ pkgs.mpvScripts.autoload ];
slang="en"; slang = "en";
user-agent="Mozilla/5.0"; user-agent = "Mozilla/5.0";
video-reversal-buffer="488281KiB"; video-reversal-buffer = "488281KiB";
ytdl="yes"; ytdl = "yes";
ytdl-format="bestvideo+bestaudio"; ytdl-format = "bestvideo+bestaudio";
ytdl-raw-options="no-playlist="; ytdl-raw-options = "no-playlist=";
}; };
profiles = { profiles = {
"protocol.https" = { "protocol.https" = {
@ -41,8 +40,7 @@
}; };
yt-dlp = { yt-dlp = {
enable = true; enable = true;
extraConfig = extraConfig = ''
''
--no-mtime --no-mtime
''; '';
settings = { settings = {

View file

@ -1,5 +1,4 @@
{ ... }: {...}: {
{
programs.qutebrowser = { programs.qutebrowser = {
enable = true; enable = true;
loadAutoconfig = true; loadAutoconfig = true;
@ -175,8 +174,7 @@
wikipedia = "https://www.wikipedia.org/"; wikipedia = "https://www.wikipedia.org/";
zoom = "https://zoom.us/"; zoom = "https://zoom.us/";
}; };
extraConfig = extraConfig = ''
''
import dracula.draw import dracula.draw
dracula.draw.blood(c, { dracula.draw.blood(c, {
'spacing': { 'spacing': {

View file

@ -1,5 +1,8 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
services.redshift = { services.redshift = {
enable = true; enable = true;
latitude = "29.74"; latitude = "29.74";

View file

@ -1,5 +1,4 @@
{ ... }: {...}: {
{
services = { services = {
gnome-keyring = { gnome-keyring = {
enable = true; enable = true;

View file

@ -1,5 +1,11 @@
{ inputs, pkgs, hostname, outputs, osConfig, ... }:
{ {
inputs,
pkgs,
hostname,
outputs,
osConfig,
...
}: {
xdg.configFile."sway/config".source = ./files/sway/${osConfig.networking.hostName}; xdg.configFile."sway/config".source = ./files/sway/${osConfig.networking.hostName};
programs = { programs = {
@ -130,62 +136,61 @@
}; };
}; };
}; };
style = style = ''
''
* { * {
border: none; border-radius: 0; border: none; border-radius: 0;
font-family: "JetBrains Mono", FontAwesome6Free, SymbolsNerdFont, Roboto, Helvetica, Arial, sans-serif; font-family: "JetBrains Mono", FontAwesome6Free, SymbolsNerdFont, Roboto, Helvetica, Arial, sans-serif;
font-size: 10px; min-height: 0; font-size: 10px; min-height: 0;
} }
window#waybar { window#waybar {
background: rgba(43, 48, 59, 0.5); background: rgba(43, 48, 59, 0.5);
border-bottom: 3px solid rgba(100, 114, 125, 0.5); border-bottom: 3px solid rgba(100, 114, 125, 0.5);
color: #ffffff; color: #ffffff;
} }
window#waybar.hidden { opacity: 0.0; } window#waybar.hidden { opacity: 0.0; }
#workspaces button { #workspaces button {
padding: 0 5px; padding: 0 5px;
background: transparent; background: transparent;
color: #ffffff; color: #ffffff;
border-bottom: 3px solid transparent; border-bottom: 3px solid transparent;
} }
#workspaces button.focused { background: #64727D; border-bottom: 3px solid #ffffff; } #workspaces button.focused { background: #64727D; border-bottom: 3px solid #ffffff; }
#workspaces button.urgent { background-color: #eb4d4b; } #workspaces button.urgent { background-color: #eb4d4b; }
#mode { background: #64727D; border-bottom: 3px solid #ffffff; } #mode { background: #64727D; border-bottom: 3px solid #ffffff; }
#clock, #battery, #cpu, #memory, #temperature, #backlight, #network, #pulseaudio, #custom-mymusic, #tray, #mode, #idle_inhibitor, #bluetooth { #clock, #battery, #cpu, #memory, #temperature, #backlight, #network, #pulseaudio, #custom-mymusic, #tray, #mode, #idle_inhibitor, #bluetooth {
padding: 0 5px; padding: 0 5px;
margin: 0 0px; margin: 0 0px;
} }
#clock { background-color: #64727D; color: #f1fa8c; } #clock { background-color: #64727D; color: #f1fa8c; }
#battery { color: #000000; background-color: #50fa7b; } #battery { color: #000000; background-color: #50fa7b; }
#battery.warning { color: #000000; background-color: #ff79c6; } #battery.warning { color: #000000; background-color: #ff79c6; }
#battery.critical { color: #ffffff; background-color: #ff5555; } #battery.critical { color: #ffffff; background-color: #ff5555; }
#battery.charging { color: #44475a; background-color: #50fa7b; } #battery.charging { color: #44475a; background-color: #50fa7b; }
@keyframes blink { to { background-color: #ffffff; color: #000000; } } @keyframes blink { to { background-color: #ffffff; color: #000000; } }
#battery.critical:not(.charging) { #battery.critical:not(.charging) {
background: #f53c3c; color: #ffffff; background: #f53c3c; color: #ffffff;
animation-name: blink; animation-duration: 0.5s; animation-name: blink; animation-duration: 0.5s;
animation-timing-function: linear; animation-timing-function: linear;
animation-iteration-count: infinite; animation-iteration-count: infinite;
animation-direction: alternate; animation-direction: alternate;
} }
#cpu { background: #2ecc71; color: #000000; } #cpu { background: #2ecc71; color: #000000; }
#memory { background: #9b59b6; } #memory { background: #9b59b6; }
#backlight { color: #000000; background: #90b1b1; } #backlight { color: #000000; background: #90b1b1; }
#bluetooth { background: #ffb86c; color: #000000; } #bluetooth { background: #ffb86c; color: #000000; }
#network { background: #bd93f9; color: #000000; } #network { background: #bd93f9; color: #000000; }
#network.disconnected { background: #ff5555; } #network.disconnected { background: #ff5555; }
#pulseaudio { background: #ffb86c; color: #000000; } #pulseaudio { background: #ffb86c; color: #000000; }
#pulseaudio.muted { background: #90b1b1; color: #2a5c45; } #pulseaudio.muted { background: #90b1b1; color: #2a5c45; }
#custom-mytimew { background: #bd93f9; color: #000000; } #custom-mytimew { background: #bd93f9; color: #000000; }
#custom-mymusic { background: #8be9fd; color: #000000; } #custom-mymusic { background: #8be9fd; color: #000000; }
#custom-mycal { background: #cccc99; color: #2a5c45; } #custom-mycal { background: #cccc99; color: #2a5c45; }
#temperature { background: #f0932b; } #temperature { background: #f0932b; }
#temperature.critical { background: #eb4d4b; } #temperature.critical { background: #eb4d4b; }
#tray { background-color: #64727D; } #tray { background-color: #64727D; }
#idle_inhibitor { background-color: #2d3436; } #idle_inhibitor { background-color: #2d3436; }
#idle_inhibitor.activated { background-color: #ecf0f1; color: #2d3436; } #idle_inhibitor.activated { background-color: #ecf0f1; color: #2d3436; }
''; '';
}; };
}; };
} }

View file

@ -1,5 +1,8 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
programs.kitty = { programs.kitty = {
enable = true; enable = true;
settings = { settings = {

View file

@ -1,5 +1,9 @@
{ config, pkgs, inputs, ... }:
{ {
config,
pkgs,
inputs,
...
}: {
home.packages = with pkgs; [ home.packages = with pkgs; [
citrix_workspace citrix_workspace
]; ];

View file

@ -1,5 +1,8 @@
{ pkgs, inputs, ... }:
{ {
pkgs,
inputs,
...
}: {
home-manager.users.don = { home-manager.users.don = {
imports = [ imports = [
./citrix.nix ./citrix.nix

View file

@ -1,6 +1,9 @@
{ config, pkgs, ... }:
{ {
home.packages = with pkgs; [ zoom-us ]; config,
pkgs,
...
}: {
home.packages = with pkgs; [zoom-us];
xdg = { xdg = {
configFile."zoom.conf".source = files/zoom.conf; configFile."zoom.conf".source = files/zoom.conf;
configFile."zoomus.conf".source = files/zoomus.conf; configFile."zoomus.conf".source = files/zoomus.conf;
@ -12,8 +15,8 @@
type = "Application"; type = "Application";
icon = "Zoom"; icon = "Zoom";
comment = "Zoom Video"; comment = "Zoom Video";
mimeType = [ "x-scheme-handler/zoommtg" "x-scheme-handler/zoomus" "x-scheme-handler/tel" "x-scheme-handler/callto" "x-scheme-handler/zoomphonecall" "application/x-zoom" ]; mimeType = ["x-scheme-handler/zoommtg" "x-scheme-handler/zoomus" "x-scheme-handler/tel" "x-scheme-handler/callto" "x-scheme-handler/zoomphonecall" "application/x-zoom"];
categories = [ "Network" "Application""Application" ]; categories = ["Network" "Application" "Application"];
}; };
}; };
}; };

View file

@ -1,8 +1,12 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
./hardware-configuration.nix ./hardware-configuration.nix
# ../disko/mmcblk.nix # ../disko/mmcblk.nix

View file

@ -1,25 +1,29 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "uas" "sd_mod" ]; boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "uas" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/mmcblk0p2"; device = "/dev/mmcblk0p2";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/mmcblk0p1"; device = "/dev/mmcblk0p1";
fsType = "vfat"; fsType = "vfat";
}; };

View file

@ -30,4 +30,3 @@
}; };
}; };
} }

View file

@ -1,5 +1,11 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
disko.devices = { disko.devices = {
disk = { disk = {
vdb = { vdb = {
@ -31,4 +37,3 @@
}; };
}; };
} }

View file

@ -30,4 +30,3 @@
}; };
}; };
} }

View file

@ -1,8 +1,12 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
inputs.nixos-hardware.nixosModules.raspberry-pi-4 inputs.nixos-hardware.nixosModules.raspberry-pi-4
./hardware-configuration.nix ./hardware-configuration.nix

View file

@ -1,8 +1,10 @@
{ inputs, config, pkgs, ... }:
{ {
imports = inputs,
[ config,
pkgs,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
./hardware-configuration.nix ./hardware-configuration.nix
inputs.nixos-hardware.nixosModules.common-cpu-intel inputs.nixos-hardware.nixosModules.common-cpu-intel

View file

@ -1,30 +1,34 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.availableKernelModules = ["xhci_pci" "ehci_pci" "ahci" "sd_mod" "rtsx_pci_sdmmc"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/8f55014e-8c1b-475d-8fe6-501977358d97"; device = "/dev/disk/by-uuid/8f55014e-8c1b-475d-8fe6-501977358d97";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/E6F0-40A0"; device = "/dev/disk/by-uuid/E6F0-40A0";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = swapDevices = [
[ { device = "/dev/disk/by-uuid/843421e5-cb74-4c43-b88d-5053e7f7dec4"; } {device = "/dev/disk/by-uuid/843421e5-cb74-4c43-b88d-5053e7f7dec4";}
]; ];
# 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

View file

@ -1,8 +1,12 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.nixos-hardware.nixosModules.google-pixelbook inputs.nixos-hardware.nixosModules.google-pixelbook
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
./hardware-configuration.nix ./hardware-configuration.nix

View file

@ -1,25 +1,29 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "usb_storage" "usbhid" "sd_mod" "sdhci_pci" ]; boot.initrd.availableKernelModules = ["xhci_pci" "usb_storage" "usbhid" "sd_mod" "sdhci_pci"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/mmcblk0p2"; device = "/dev/mmcblk0p2";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/mmcblk0p1"; device = "/dev/mmcblk0p1";
fsType = "vfat"; fsType = "vfat";
}; };

View file

@ -1,5 +1,9 @@
{ config, pkgs, lib, ... }:
{ {
config,
pkgs,
lib,
...
}: {
boot.kernelPatches = lib.singleton { boot.kernelPatches = lib.singleton {
name = "eve-config"; name = "eve-config";
patch = null; patch = null;

View file

@ -1,8 +1,12 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
./hardware-configuration.nix ./hardware-configuration.nix
../server ../server

View file

@ -37,4 +37,3 @@
}; };
}; };
} }

View file

@ -1,29 +1,33 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "ums_realtek" "sd_mod" "sr_mod" ]; boot.initrd.availableKernelModules = ["xhci_pci" "ehci_pci" "ahci" "usbhid" "ums_realtek" "sd_mod" "sr_mod"];
boot.initrd.kernelModules = [ "dm-snapshot" ]; boot.initrd.kernelModules = ["dm-snapshot"];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/4a1d2915-6964-4479-98c6-d17e333e83e9"; device = "/dev/disk/by-uuid/4a1d2915-6964-4479-98c6-d17e333e83e9";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/FAE7-A0C7"; device = "/dev/disk/by-uuid/FAE7-A0C7";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ ]; swapDevices = [];
# 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

View file

@ -1,7 +1,9 @@
# Auto-generated using compose2nix v0.1.6. # Auto-generated using compose2nix v0.1.6.
{ pkgs, lib, ... }:
{ {
pkgs,
lib,
...
}: {
# Runtime # Runtime
virtualisation.podman = { virtualisation.podman = {
enable = true; enable = true;
@ -106,7 +108,7 @@
"/dev/net/tun:/dev/net/tun:rw" "/dev/net/tun:/dev/net/tun:rw"
"/home/don/docker/tailscale/var_lib:/var/lib:rw" "/home/don/docker/tailscale/var_lib:/var/lib:rw"
]; ];
cmd = [ "tailscaled" ]; cmd = ["tailscaled"];
log-driver = "journald"; log-driver = "journald";
extraOptions = [ extraOptions = [
"--cap-add=net_admin" "--cap-add=net_admin"
@ -136,7 +138,7 @@
# Networks # Networks
systemd.services."podman-network-tstest-default" = { systemd.services."podman-network-tstest-default" = {
path = [ pkgs.podman ]; path = [pkgs.podman];
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = true; RemainAfterExit = true;
@ -145,8 +147,8 @@
script = '' script = ''
podman network inspect tstest-default || podman network create tstest-default --opt isolate=true podman network inspect tstest-default || podman network create tstest-default --opt isolate=true
''; '';
partOf = [ "podman-compose-tstest-root.target" ]; partOf = ["podman-compose-tstest-root.target"];
wantedBy = [ "podman-compose-tstest-root.target" ]; wantedBy = ["podman-compose-tstest-root.target"];
}; };
# Root service # Root service
@ -156,6 +158,6 @@
unitConfig = { unitConfig = {
Description = "Root target generated by compose2nix."; Description = "Root target generated by compose2nix.";
}; };
wantedBy = [ "multi-user.target" ]; wantedBy = ["multi-user.target"];
}; };
} }

View file

@ -1,8 +1,12 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
./hardware-configuration.nix ./hardware-configuration.nix
../../server ../../server

View file

@ -1,8 +1,12 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
./hardware-configuration.nix ./hardware-configuration.nix
../../server ../../server

View file

@ -1,8 +1,12 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.nixos-hardware.nixosModules.dell-xps-13-9310 inputs.nixos-hardware.nixosModules.dell-xps-13-9310
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
./hardware-configuration.nix ./hardware-configuration.nix

View file

@ -1,31 +1,35 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "uas" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "uas" "sd_mod" "rtsx_pci_sdmmc"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/nvme0n1p2"; device = "/dev/nvme0n1p2";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/nvme0n1p1"; device = "/dev/nvme0n1p1";
fsType = "vfat"; fsType = "vfat";
}; };
# swapDevices = # swapDevices =
# [ { device = "/dev/disk/by-uuid/cc3e6f81-e0c6-41f7-a02e-49dcaf8b795a"; } # [ { device = "/dev/disk/by-uuid/cc3e6f81-e0c6-41f7-a02e-49dcaf8b795a"; }
# ]; # ];
# 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

View file

@ -1,5 +1,7 @@
{ config, pkgs, ... }:
{ {
boot.kernelModules = [ "axge" "ax88179_178a" ]; config,
pkgs,
...
}: {
boot.kernelModules = ["axge" "ax88179_178a"];
} }

View file

@ -1,8 +1,12 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
./hardware-configuration.nix ./hardware-configuration.nix
../../server ../../server

View file

@ -1,8 +1,12 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
./hardware-configuration.nix ./hardware-configuration.nix
../../server ../../server

View file

@ -1,8 +1,10 @@
{ inputs, config, pkgs, ... }:
{ {
imports = inputs,
[ config,
pkgs,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
./hardware-configuration.nix ./hardware-configuration.nix
inputs.nixos-hardware.nixosModules.common-cpu-intel inputs.nixos-hardware.nixosModules.common-cpu-intel

View file

@ -1,25 +1,29 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "usb_storage" "usbhid" "sd_mod" "sdhci_pci" ]; boot.initrd.availableKernelModules = ["xhci_pci" "usb_storage" "usbhid" "sd_mod" "sdhci_pci"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/90189466-8309-4b46-befe-cf476b8a7dd7"; device = "/dev/disk/by-uuid/90189466-8309-4b46-befe-cf476b8a7dd7";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/A327-E803"; device = "/dev/disk/by-uuid/A327-E803";
fsType = "vfat"; fsType = "vfat";
}; };

View file

@ -1,7 +1,13 @@
{ inputs, outputs, lib, config, pkgs, ... }: {
inputs,
let outputs,
my-python-packages = python-packages: with python-packages; [ lib,
config,
pkgs,
...
}: let
my-python-packages = python-packages:
with python-packages; [
pip pip
# pipx # pipx
python-dateutil python-dateutil
@ -9,14 +15,13 @@ let
requests requests
]; ];
python-with-my-packages = pkgs.python3Full.withPackages my-python-packages; python-with-my-packages = pkgs.python3Full.withPackages my-python-packages;
in in {
{
nix = { nix = {
settings = { settings = {
experimental-features = [ "nix-command" "flakes" ]; experimental-features = ["nix-command" "flakes"];
warn-dirty = false; warn-dirty = false;
auto-optimise-store = true; auto-optimise-store = true;
trusted-users = [ "root" "don" ]; trusted-users = ["root" "don"];
}; };
gc = { gc = {
automatic = true; automatic = true;
@ -24,8 +29,7 @@ in
options = "--delete-older-than 7d"; options = "--delete-older-than 7d";
}; };
}; };
imports = imports = [
[
../../home ../../home
./systemd.nix ./systemd.nix
./tailscale.nix ./tailscale.nix
@ -43,7 +47,6 @@ in
hardwareClockInLocalTime = false; hardwareClockInLocalTime = false;
}; };
# Select internationalisation properties. # Select internationalisation properties.
i18n.defaultLocale = "en_US.utf8"; i18n.defaultLocale = "en_US.utf8";
i18n.inputMethod = { i18n.inputMethod = {
@ -57,7 +60,7 @@ in
# Bootloader. # Bootloader.
boot = { boot = {
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.linuxPackages_latest;
kernelParams = [ "consoleblank=60" ]; kernelParams = ["consoleblank=60"];
loader = { loader = {
systemd-boot = { systemd-boot = {
enable = true; enable = true;
@ -71,7 +74,7 @@ in
enable = true; enable = true;
}; };
kernel = { kernel = {
sysctl = { "vm.swappiness" = 10;}; sysctl = {"vm.swappiness" = 10;};
}; };
}; };
@ -82,11 +85,13 @@ in
sudo.enable = false; sudo.enable = false;
doas = { doas = {
enable = true; enable = true;
extraRules = [{ extraRules = [
users = [ "don" ]; {
users = ["don"];
keepEnv = true; keepEnv = true;
noPass = true; noPass = true;
}]; }
];
}; };
}; };
@ -132,7 +137,7 @@ in
isNormalUser = true; isNormalUser = true;
initialPassword = "changeme"; initialPassword = "changeme";
description = "Don Harper"; description = "Don Harper";
extraGroups = [ "networkmanager" "wheel" "scanner" "lp" "video" "mlocate" "disk" ]; extraGroups = ["networkmanager" "wheel" "scanner" "lp" "video" "mlocate" "disk"];
openssh.authorizedKeys.keys = [ openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINd8AdVbQQ/Fmw+b9mI8EMYqIoRkwmSwAOtmlte3incL don@loki" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINd8AdVbQQ/Fmw+b9mI8EMYqIoRkwmSwAOtmlte3incL don@loki"
]; ];
@ -185,35 +190,53 @@ in
}; };
}; };
nixpkgs.overlays = [ nixpkgs.overlays = [
(final: super:{ khal = super.khal.overridePythonAttrs (_: { doCheck = false; }); }) (final: super: {khal = super.khal.overridePythonAttrs (_: {doCheck = false;});})
]; ];
# Open ports in the firewall. # Open ports in the firewall.
networking.firewall = { networking.firewall = {
enable = true; enable = true;
# always allow traffic from your Tailscale network # always allow traffic from your Tailscale network
trustedInterfaces = [ "tailscale0" ]; trustedInterfaces = ["tailscale0"];
checkReversePath = "loose"; checkReversePath = "loose";
# allow the Tailscale UDP port through the firewall # allow the Tailscale UDP port through the firewall
allowedUDPPorts = [ config.services.tailscale.port ]; allowedUDPPorts = [config.services.tailscale.port];
allowedTCPPortRanges = [ { from = 1714 ; to = 1764; } ]; allowedTCPPortRanges = [
allowedUDPPortRanges = [ { from = 1714 ; to = 1764; } ]; {
from = 1714;
to = 1764;
}
];
allowedUDPPortRanges = [
{
from = 1714;
to = 1764;
}
];
# allow you to SSH in over the public internet # allow you to SSH in over the public internet
allowedTCPPorts = [ 22 ]; allowedTCPPorts = [22];
interfaces = { interfaces = {
"tailscale0" = { "tailscale0" = {
allowedTCPPorts = [ 22 8080 8443 ]; allowedTCPPorts = [22 8080 8443];
allowedTCPPortRanges = [ { from = 1714 ; to = 1764; } ]; allowedTCPPortRanges = [
allowedUDPPortRanges = [ { from = 1714 ; to = 1764; } ]; {
from = 1714;
to = 1764;
}
];
allowedUDPPortRanges = [
{
from = 1714;
to = 1764;
}
];
}; };
}; };
}; };
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. It's perfectly fine and recommended to leavecatenate(variables, "bootdev", bootdev) # on your system were taken. It's perfectly fine and recommended to leavecatenate(variables, "bootdev", bootdev)

View file

@ -1,6 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: let
let
readlink = "${pkgs.coreutils}/bin/readlink"; readlink = "${pkgs.coreutils}/bin/readlink";
notify-send = "${pkgs.libnotify}/bin/notify-send"; notify-send = "${pkgs.libnotify}/bin/notify-send";
in { in {
@ -8,7 +6,7 @@ in {
services = { services = {
clean-keychain = { clean-keychain = {
description = "Clean up .keychain on boot"; description = "Clean up .keychain on boot";
wantedBy = [ "multi-user.target" ]; wantedBy = ["multi-user.target"];
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
ExecStart = "${pkgs.coreutils-full}/bin/rm -rf /home/don/.keychain"; ExecStart = "${pkgs.coreutils-full}/bin/rm -rf /home/don/.keychain";
@ -35,8 +33,8 @@ in {
}; };
timers = { timers = {
detect-reboot-for-upgrade = { detect-reboot-for-upgrade = {
wantedBy = [ "timers.target" ]; wantedBy = ["timers.target"];
partOf = [ "detect-reboot-for-upgrade.service" ]; partOf = ["detect-reboot-for-upgrade.service"];
timerConfig = { timerConfig = {
OnCalendar = "hourly"; OnCalendar = "hourly";
Unit = "detect-reboot-for-upgrade.service"; Unit = "detect-reboot-for-upgrade.service";

Binary file not shown.

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { {pkgs, ...}: {
system.activationScripts.diff = { system.activationScripts.diff = {
supportsDryActivation = true; supportsDryActivation = true;
text = '' text = ''

View file

@ -1,8 +1,12 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x260 inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x260
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
./hardware-configuration.nix ./hardware-configuration.nix

View file

@ -1,26 +1,29 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "uas" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "uas" "sd_mod" "rtsx_pci_sdmmc"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = {
fileSystems."/" = device = "/dev/sda2";
{ device = "/dev/sda2";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/sda1"; device = "/dev/sda1";
fsType = "vfat"; fsType = "vfat";
}; };

View file

@ -1,7 +1,9 @@
# Auto-generated using compose2nix v0.1.6. # Auto-generated using compose2nix v0.1.6.
{ pkgs, lib, ... }:
{ {
pkgs,
lib,
...
}: {
# Runtime # Runtime
virtualisation.podman = { virtualisation.podman = {
enable = true; enable = true;
@ -100,7 +102,7 @@
# Networks # Networks
systemd.services."podman-network-speedtest-default" = { systemd.services."podman-network-speedtest-default" = {
path = [ pkgs.podman ]; path = [pkgs.podman];
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = true; RemainAfterExit = true;
@ -109,8 +111,8 @@
script = '' script = ''
podman network inspect speedtest-default || podman network create speedtest-default --opt isolate=true podman network inspect speedtest-default || podman network create speedtest-default --opt isolate=true
''; '';
partOf = [ "podman-compose-speedtest-root.target" ]; partOf = ["podman-compose-speedtest-root.target"];
wantedBy = [ "podman-compose-speedtest-root.target" ]; wantedBy = ["podman-compose-speedtest-root.target"];
}; };
# Root service # Root service
@ -120,6 +122,6 @@
unitConfig = { unitConfig = {
Description = "Root target generated by compose2nix."; Description = "Root target generated by compose2nix.";
}; };
wantedBy = [ "multi-user.target" ]; wantedBy = ["multi-user.target"];
}; };
} }

View file

@ -1,8 +1,12 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
./hardware-configuration.nix ./hardware-configuration.nix
../workstation ../workstation

View file

@ -1,24 +1,28 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ ]; boot.initrd.availableKernelModules = [];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ ]; boot.kernelModules = [];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/mmcblk0p2"; device = "/dev/mmcblk0p2";
fsType = "ext4"; fsType = "ext4";
}; };
swapDevices = [ ]; swapDevices = [];
# 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

View file

@ -1,6 +1,11 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
stylix = { stylix = {
base16Scheme = "${pkgs.base16-schemes}/share/themes/dracula.yaml"; base16Scheme = "${pkgs.base16-schemes}/share/themes/dracula.yaml";
image = ./feed-me.png; image = ./feed-me.png;

View file

@ -1,8 +1,12 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
lib,
config,
pkgs,
...
}: {
imports = [
./hardware-configuration.nix ./hardware-configuration.nix
../server ../server
../themes.nix ../themes.nix

View file

@ -1,30 +1,34 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/profiles/qemu-guest.nix") lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/profiles/qemu-guest.nix")
]; ];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ]; boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/vda3"; device = "/dev/vda3";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/vda1"; device = "/dev/vda1";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = swapDevices = [
[ { device = "/dev/vda2"; } {device = "/dev/vda2";}
]; ];
# 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

View file

@ -1,8 +1,12 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
lib,
config,
pkgs,
...
}: {
imports = [
./hardware-configuration.nix ./hardware-configuration.nix
../themes.nix ../themes.nix
]; ];

View file

@ -1,30 +1,34 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/profiles/qemu-guest.nix") lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/profiles/qemu-guest.nix")
]; ];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ]; boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/vda3"; device = "/dev/vda3";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/vda1"; device = "/dev/vda1";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = swapDevices = [
[ { device = "/dev/vda2"; } {device = "/dev/vda2";}
]; ];
# 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

View file

@ -1,4 +1,3 @@
{ pkgs, ... }: {pkgs, ...}: {
{ imports = [./sway];
imports = [ ./sway ]; }
}

View file

@ -1,6 +1,9 @@
{ config, pkgs, lib, ... }:
{ {
config,
pkgs,
lib,
...
}: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
alacritty alacritty
bemenu bemenu
@ -22,7 +25,6 @@
wl-clipboard wl-clipboard
]; ];
services.pipewire = { services.pipewire = {
enable = true; enable = true;
alsa.enable = true; alsa.enable = true;
@ -32,5 +34,4 @@
services.enable = true; services.enable = true;
services.displayManager.sddm.enable = true; services.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true; services.desktopManager.plasma6.enable = true;
} }

View file

@ -1,6 +1,5 @@
{ pkgs, ... }: {pkgs, ...}: {
{ environment.systemPackages = with pkgs; [sddm-chili-theme];
environment.systemPackages = with pkgs; [ sddm-chili-theme ];
services.displayManager = { services.displayManager = {
sddm = { sddm = {

View file

@ -1,5 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: let
let
dbus-sway-environment = pkgs.writeTextFile { dbus-sway-environment = pkgs.writeTextFile {
name = "dbus-sway-environment"; name = "dbus-sway-environment";
destination = "/bin/dbus-sway-environment"; destination = "/bin/dbus-sway-environment";
@ -23,8 +22,7 @@ let
gsettings set $gnome_schema gtk-theme 'Dracula' gsettings set $gnome_schema gtk-theme 'Dracula'
''; '';
}; };
in in {
{
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
alacritty alacritty
bemenu bemenu
@ -53,4 +51,4 @@ in
}; };
}; };
services.greetd.package = "greetd.wlgreet"; services.greetd.package = "greetd.wlgreet";
} }

View file

@ -1,7 +1,13 @@
{ inputs, outputs, lib, config, pkgs, ... }: {
inputs,
let outputs,
my-python-packages = python-packages: with python-packages; [ lib,
config,
pkgs,
...
}: let
my-python-packages = python-packages:
with python-packages; [
pip pip
# pipx # pipx
python-dateutil python-dateutil
@ -9,14 +15,13 @@ let
requests requests
]; ];
python-with-my-packages = pkgs.python3Full.withPackages my-python-packages; python-with-my-packages = pkgs.python3Full.withPackages my-python-packages;
in in {
{
nix = { nix = {
settings = { settings = {
experimental-features = [ "nix-command" "flakes" ]; experimental-features = ["nix-command" "flakes"];
warn-dirty = false; warn-dirty = false;
auto-optimise-store = true; auto-optimise-store = true;
trusted-users = [ "root" "don" ]; trusted-users = ["root" "don"];
}; };
gc = { gc = {
automatic = true; automatic = true;
@ -24,8 +29,7 @@ in
options = "--delete-older-than 7d"; options = "--delete-older-than 7d";
}; };
}; };
imports = imports = [
[
../../home ../../home
../../home/gui ../../home/gui
./detect-reboot-needed.nix ./detect-reboot-needed.nix
@ -46,7 +50,6 @@ in
hardwareClockInLocalTime = false; hardwareClockInLocalTime = false;
}; };
# Select internationalisation properties. # Select internationalisation properties.
i18n.defaultLocale = "en_US.utf8"; i18n.defaultLocale = "en_US.utf8";
i18n.inputMethod = { i18n.inputMethod = {
@ -60,9 +63,10 @@ in
# Bootloader. # Bootloader.
boot = { boot = {
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.linuxPackages_latest;
kernelParams = [ "consoleblank=60" ]; kernelParams = ["consoleblank=60"];
loader = if (pkgs.hostPlatform != lib.mkDefault "aarch64-linux") then loader =
{ if (pkgs.hostPlatform != lib.mkDefault "aarch64-linux")
then {
systemd-boot = { systemd-boot = {
enable = true; enable = true;
}; };
@ -71,8 +75,7 @@ in
efiSysMountPoint = "/boot"; efiSysMountPoint = "/boot";
}; };
} }
else else {
{
grub.enable = false; grub.enable = false;
generic-extlinux-compatible.enable = true; generic-extlinux-compatible.enable = true;
}; };
@ -80,7 +83,7 @@ in
enable = true; enable = true;
}; };
kernel = { kernel = {
sysctl = { "vm.swappiness" = 10;}; sysctl = {"vm.swappiness" = 10;};
}; };
}; };
@ -91,11 +94,13 @@ in
sudo.enable = false; sudo.enable = false;
doas = { doas = {
enable = true; enable = true;
extraRules = [{ extraRules = [
users = [ "don" ]; {
users = ["don"];
keepEnv = true; keepEnv = true;
noPass = true; noPass = true;
}]; }
];
}; };
}; };
@ -173,7 +178,7 @@ in
}; };
sane = { sane = {
enable = true; enable = true;
extraBackends = [ pkgs.sane-airscan ]; extraBackends = [pkgs.sane-airscan];
}; };
}; };
security.rtkit.enable = true; security.rtkit.enable = true;
@ -191,7 +196,7 @@ in
isNormalUser = true; isNormalUser = true;
initialPassword = "changeme"; initialPassword = "changeme";
description = "Don Harper"; description = "Don Harper";
extraGroups = [ "networkmanager" "wheel" "scanner" "lp" "video" "mlocate" "disk" ]; extraGroups = ["networkmanager" "wheel" "scanner" "lp" "video" "mlocate" "disk"];
openssh.authorizedKeys.keys = [ openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINd8AdVbQQ/Fmw+b9mI8EMYqIoRkwmSwAOtmlte3incL don@loki" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINd8AdVbQQ/Fmw+b9mI8EMYqIoRkwmSwAOtmlte3incL don@loki"
]; ];
@ -205,7 +210,7 @@ in
# Allow unfree packages # Allow unfree packages
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
nixpkgs.config.permittedInsecurePackages = [ "electron-25.9.0" ]; nixpkgs.config.permittedInsecurePackages = ["electron-25.9.0"];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
#(callPackage ../mypackages/kanshi-fix/default.nix {}) #(callPackage ../mypackages/kanshi-fix/default.nix {})
@ -267,36 +272,54 @@ in
}; };
}; };
nixpkgs.overlays = [ nixpkgs.overlays = [
(final: prev: { qutebrowser = prev.qutebrowser.override { enableWideVine = true; }; }) (final: prev: {qutebrowser = prev.qutebrowser.override {enableWideVine = true;};})
(final: super:{ khal = super.khal.overridePythonAttrs (_: { doCheck = false; }); }) (final: super: {khal = super.khal.overridePythonAttrs (_: {doCheck = false;});})
]; ];
# Open ports in the firewall. # Open ports in the firewall.
networking.firewall = { networking.firewall = {
enable = true; enable = true;
# always allow traffic from your Tailscale network # always allow traffic from your Tailscale network
trustedInterfaces = [ "tailscale0" ]; trustedInterfaces = ["tailscale0"];
checkReversePath = "loose"; checkReversePath = "loose";
# allow the Tailscale UDP port through the firewall # allow the Tailscale UDP port through the firewall
allowedUDPPorts = [ config.services.tailscale.port ]; allowedUDPPorts = [config.services.tailscale.port];
allowedTCPPortRanges = [ { from = 1714 ; to = 1764; } ]; allowedTCPPortRanges = [
allowedUDPPortRanges = [ { from = 1714 ; to = 1764; } ]; {
from = 1714;
to = 1764;
}
];
allowedUDPPortRanges = [
{
from = 1714;
to = 1764;
}
];
# allow you to SSH in over the public internet # allow you to SSH in over the public internet
allowedTCPPorts = [ 22 ]; allowedTCPPorts = [22];
interfaces = { interfaces = {
"tailscale0" = { "tailscale0" = {
allowedTCPPorts = [ 22 8080 8443 ]; allowedTCPPorts = [22 8080 8443];
allowedTCPPortRanges = [ { from = 1714 ; to = 1764; } ]; allowedTCPPortRanges = [
allowedUDPPortRanges = [ { from = 1714 ; to = 1764; } ]; {
from = 1714;
to = 1764;
}
];
allowedUDPPortRanges = [
{
from = 1714;
to = 1764;
}
];
}; };
}; };
}; };
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. It's perfectly fine and recommended to leavecatenate(variables, "bootdev", bootdev) # on your system were taken. It's perfectly fine and recommended to leavecatenate(variables, "bootdev", bootdev)

View file

@ -1,6 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: let
let
readlink = "${pkgs.coreutils}/bin/readlink"; readlink = "${pkgs.coreutils}/bin/readlink";
notify-send = "${pkgs.libnotify}/bin/notify-send"; notify-send = "${pkgs.libnotify}/bin/notify-send";
in { in {
@ -20,8 +18,8 @@ in {
}; };
}; };
systemd.user.timers.detect-reboot-for-upgrade = { systemd.user.timers.detect-reboot-for-upgrade = {
wantedBy = [ "timers.target" ]; wantedBy = ["timers.target"];
partOf = [ "detect-reboot-for-upgrade.service" ]; partOf = ["detect-reboot-for-upgrade.service"];
timerConfig = { timerConfig = {
OnCalendar = "hourly"; OnCalendar = "hourly";
Unit = "detect-reboot-for-upgrade.service"; Unit = "detect-reboot-for-upgrade.service";

View file

@ -1,6 +1,11 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
programs = { programs = {
# GAMES! # GAMES!
steam = { steam = {

View file

@ -1,5 +1,8 @@
{ pkgs, inputs, ... }:
{ {
pkgs,
inputs,
...
}: {
virtualisation.libvirtd.enable = true; virtualisation.libvirtd.enable = true;
environment.systemPackages = with pkgs; [ gnome.gnome-boxes ]; environment.systemPackages = with pkgs; [gnome.gnome-boxes];
} }

View file

@ -1,6 +1,8 @@
{ pkgs, lib, ... }: {
pkgs,
let lib,
...
}: let
readlink = "${pkgs.coreutils}/bin/readlink"; readlink = "${pkgs.coreutils}/bin/readlink";
notify-send = "${pkgs.libnotify}/bin/notify-send"; notify-send = "${pkgs.libnotify}/bin/notify-send";
in { in {
@ -10,7 +12,7 @@ in {
systemd-networkd-wait-online.enable = lib.mkForce false; systemd-networkd-wait-online.enable = lib.mkForce false;
clean-keychain = { clean-keychain = {
description = "Clean up .keychain on boot"; description = "Clean up .keychain on boot";
wantedBy = [ "multi-user.target" ]; wantedBy = ["multi-user.target"];
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
ExecStart = "${pkgs.coreutils-full}/bin/rm -rf /home/don/.keychain"; ExecStart = "${pkgs.coreutils-full}/bin/rm -rf /home/don/.keychain";
@ -37,8 +39,8 @@ in {
}; };
timers = { timers = {
detect-reboot-for-upgrade = { detect-reboot-for-upgrade = {
wantedBy = [ "timers.target" ]; wantedBy = ["timers.target"];
partOf = [ "detect-reboot-for-upgrade.service" ]; partOf = ["detect-reboot-for-upgrade.service"];
timerConfig = { timerConfig = {
OnCalendar = "hourly"; OnCalendar = "hourly";
Unit = "detect-reboot-for-upgrade.service"; Unit = "detect-reboot-for-upgrade.service";

Binary file not shown.

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { {pkgs, ...}: {
system.activationScripts.diff = { system.activationScripts.diff = {
supportsDryActivation = true; supportsDryActivation = true;
text = '' text = ''

View file

@ -1,8 +1,12 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
./hardware-configuration.nix ./hardware-configuration.nix
../../server ../../server

View file

@ -1,29 +1,33 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "ums_realtek" "sd_mod" "sr_mod" ]; boot.initrd.availableKernelModules = ["xhci_pci" "ehci_pci" "ahci" "usbhid" "ums_realtek" "sd_mod" "sr_mod"];
boot.initrd.kernelModules = [ "dm-snapshot" ]; boot.initrd.kernelModules = ["dm-snapshot"];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/4a1d2915-6964-4479-98c6-d17e333e83e9"; device = "/dev/disk/by-uuid/4a1d2915-6964-4479-98c6-d17e333e83e9";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/FAE7-A0C7"; device = "/dev/disk/by-uuid/FAE7-A0C7";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ ]; swapDevices = [];
# 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

View file

@ -1,7 +1,10 @@
# This module defines a small NixOS installation CD. It does not # This module defines a small NixOS installation CD. It does not
# contain any graphical stuff. # contain any graphical stuff.
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
imports = [ imports = [
<nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix> <nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix>

View file

@ -1,2 +1,2 @@
{ pkgs ? import <nixpkgs> {} }: {pkgs ? import <nixpkgs> {}}:
pkgs.callPackage ./derivation.nix {} pkgs.callPackage ./derivation.nix {}

View file

@ -1,12 +1,12 @@
{ stdenv }: {stdenv}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "kanshi-fix-${version}"; name = "kanshi-fix-${version}";
version = "1.4"; version = "1.4";
src = ./.; src = ./.;
nativeBuildInputs = [ ]; nativeBuildInputs = [];
buildInputs = [ ]; buildInputs = [];
dontConfigure = true; dontConfigure = true;
buildPhase = '' buildPhase = ''