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

173
flake.nix
View file

@ -10,102 +10,101 @@
stylix.inputs.nixpkgs.follows = "nixpkgs"; stylix.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = inputs@{ outputs = inputs @ {
self, self,
nixpkgs, nixpkgs,
nix, nix,
nixos-hardware, nixos-hardware,
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:
pkgsFor = lib.genAttrs systems (system: import nixpkgs { 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; # templates = import ./templates;
# templates = import ./templates;
# overlays = import ./overlays { inherit inputs outputs; }; # overlays = import ./overlays { inherit inputs outputs; };
# packages = forEachSystem (pkgs: import ./pkgs { inherit pkgs; }); # packages = forEachSystem (pkgs: import ./pkgs { inherit pkgs; });
# devShells = forEachSystem (pkgs: import ./shell.nix { inherit pkgs; }); # devShells = forEachSystem (pkgs: import ./shell.nix { inherit pkgs; });
# formatter = forEachSystem (pkgs: pkgs.nixpkgs-fmt); # formatter = forEachSystem (pkgs: pkgs.nixpkgs-fmt);
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 = {
@ -8,16 +10,15 @@
commands = { commands = {
editor-open = ''$$EDITOR $f''; editor-open = ''$$EDITOR $f'';
mkdir = '' mkdir = ''
''${{ ''${{
printf "Directory Name: " printf "Directory Name: "
read DIR read DIR
mkdir $DIR mkdir $DIR
}} }}
''; '';
}; };
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 = {
@ -34,8 +37,8 @@
Don Harper Don Harper
''; '';
systemd.user = { systemd.user = {
timers.mbsync = { timers.mbsync = {
Timer = { Timer = {
OnUnitActiveSec = "5m"; OnUnitActiveSec = "5m";
AccuracySec = "1m"; AccuracySec = "1m";
@ -46,22 +49,22 @@
}; };
services.mbsync = { services.mbsync = {
Service = { Service = {
ExecStart = "/home/don/bin/mbsync"; ExecStart = "/home/don/bin/mbsync";
Environment = "PATH=/run/current-system/sw/bin"; Environment = "PATH=/run/current-system/sw/bin";
Type = "oneshot"; Type = "oneshot";
}; };
Install = { Install = {
WantedBy = [ "mbsync.timer" ]; WantedBy = ["mbsync.timer"];
}; };
}; };
services."mbsync-all" = { services."mbsync-all" = {
Service = { Service = {
ExecStart = "/home/don/bin/mbsync gmail"; ExecStart = "/home/don/bin/mbsync gmail";
Environment = "PATH=/run/current-system/sw/bin"; Environment = "PATH=/run/current-system/sw/bin";
Type = "oneshot"; Type = "oneshot";
}; };
Install = { Install = {
WantedBy = ["mbsync-all.timer"]; WantedBy = ["mbsync-all.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
@ -39,7 +41,7 @@
CheckAttach CheckAttach
Recover-vim Recover-vim
Shade-nvim # color Shade-nvim # color
SpaceCamp # color SpaceCamp # color
#YouCompleteMe #YouCompleteMe
ale ale
ansible-vim ansible-vim

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,106 +20,103 @@
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-border-contrast true
set -g @dracula-plugins "cpu-usage network battery weather time" set -g @dracula-refresh-rate 10
set -g @dracula-border-contrast true set -g @dracula-show-left-icon session
set -g @dracula-refresh-rate 10 set -g @dracula-border-contrast true
set -g @dracula-show-left-icon session set -g @dracula-show-powerline true
set -g @dracula-border-contrast true set -g @dracula-synchronize-panes-label "Sync"
set -g @dracula-show-powerline true set -g @dracula-show-flags true
set -g @dracula-synchronize-panes-label "Sync" set -g @dracula-show-timezone false
set -g @dracula-show-flags true set -g @dracula-fixed-location "Katy, Texas"
set -g @dracula-show-timezone false set -g @dracula-show-location false
set -g @dracula-fixed-location "Katy, Texas" '';
set -g @dracula-show-location false }
''; ];
} extraConfig = ''
]; bind '~' split-window "exec btop"
extraConfig = bind - split-window -v -c "#{pane_current_path}"
'' bind | split-window -h -c "#{pane_current_path}"
bind '~' split-window "exec btop" bind -n C-1 select-window -t 11
bind - split-window -v -c "#{pane_current_path}" bind -n C-2 select-window -t 12
bind | split-window -h -c "#{pane_current_path}" bind -n C-3 select-window -t 13
bind -n C-1 select-window -t 11 bind -n C-4 select-window -t 14
bind -n C-2 select-window -t 12 bind -n C-left swap-window -t -1
bind -n C-3 select-window -t 13 bind -n C-right swap-window -t +1
bind -n C-4 select-window -t 14 bind -n S-down new-window
bind -n C-left swap-window -t -1 bind -n S-left prev
bind -n C-right swap-window -t +1 bind -n S-right next
bind -n S-down new-window bind 0 select-window -t 10
bind -n S-left prev bind 1 select-window -t 1
bind -n S-right next bind 2 select-window -t 2
bind 0 select-window -t 10 bind 3 select-window -t 3
bind 1 select-window -t 1 bind 4 select-window -t 4
bind 2 select-window -t 2 bind 5 select-window -t 5
bind 3 select-window -t 3 bind 6 select-window -t 6
bind 4 select-window -t 4 bind 7 select-window -t 7
bind 5 select-window -t 5 bind 8 select-window -t 8
bind 6 select-window -t 6 bind 9 select-window -t 9
bind 7 select-window -t 7 bind C-0 select-window -t 20
bind 8 select-window -t 8 bind C-5 select-window -t 15
bind 9 select-window -t 9 bind C-6 select-window -t 16
bind C-0 select-window -t 20 bind C-7 select-window -t 17
bind C-5 select-window -t 15 bind C-8 select-window -t 18
bind C-6 select-window -t 16 bind C-9 select-window -t 19
bind C-7 select-window -t 17 bind C-c run "tmux show-buffer | wl-copy"
bind C-8 select-window -t 18 bind C-t neww -n vit "exec vit"
bind C-9 select-window -t 19 bind C-v run "tmux set-buffer -- \"$(wl-paste)\"; tmux paste-buffer"
bind C-c run "tmux show-buffer | wl-copy" bind F1 select-window -t 11
bind C-t neww -n vit "exec vit" bind F10 select-window -t 20
bind C-v run "tmux set-buffer -- \"$(wl-paste)\"; tmux paste-buffer" bind F2 select-window -t 12
bind F1 select-window -t 11 bind F3 select-window -t 13
bind F10 select-window -t 20 bind F4 select-window -t 14
bind F2 select-window -t 12 bind F5 select-window -t 15
bind F3 select-window -t 13 bind F6 select-window -t 16
bind F4 select-window -t 14 bind F7 select-window -t 17
bind F5 select-window -t 15 bind F8 select-window -t 18
bind F6 select-window -t 16 bind F9 select-window -t 19
bind F7 select-window -t 17 bind I neww -n khal "exec ikhal"
bind F8 select-window -t 18 bind K split-window -h "exec ikhal"
bind F9 select-window -t 19 bind S split-window -v -l 5
bind I neww -n khal "exec ikhal" bind Tab choose-window
bind K split-window -h "exec ikhal" bind ^b last-window
bind S split-window -v -l 5 bind e setw synchronize-panes
bind Tab choose-window bind g select-layout tiled
bind ^b last-window bind o select-pane -t :.-
bind e setw synchronize-panes bind-key u capture-pane \; save-buffer /tmp/tmux-buffer \; new-window -n "urlscan" '$SHELL -c "urlscan -c -d < /tmp/tmux-buffer"'
bind g select-layout tiled set -g bell-action any
bind o select-pane -t :.- set -g buffer-limit 9
bind-key u capture-pane \; save-buffer /tmp/tmux-buffer \; new-window -n "urlscan" '$SHELL -c "urlscan -c -d < /tmp/tmux-buffer"' set -g display-panes-active-colour red
set -g bell-action any set -g display-panes-colour blue
set -g buffer-limit 9 set -g display-panes-time 1000
set -g display-panes-active-colour red set -g display-time 750
set -g display-panes-colour blue set -g focus-events on
set -g display-panes-time 1000 set -g lock-after-time 120
set -g display-time 750 set -g lock-command 'tty | grep -q "^/dev/tty" && vlock'
set -g focus-events on set -g renumber-windows off
set -g lock-after-time 120 set -g set-titles on
set -g lock-command 'tty | grep -q "^/dev/tty" && vlock' set -g set-titles-string "#S:#I:#W - "#T""
set -g renumber-windows off set -g status on
set -g set-titles on set -g status-interval 0
set -g set-titles-string "#S:#I:#W - "#T"" set -g status-interval 15
set -g status on set -g status-justify left
set -g status-interval 0 set -g status-position top
set -g status-interval 15 set -g visual-activity off
set -g status-justify left set -g visual-bell off
set -g status-position top set -sa terminal-features ',tmux-256color:RGB'
set -g visual-activity off set -sa terminal-overrides ",tmux-256color:RGB"
set -g visual-bell off set -sg escape-time 0
set -sa terminal-features ',tmux-256color:RGB' '';
set -sa terminal-overrides ",tmux-256color:RGB" };
set -sg escape-time 0
'';
};
xdg.configFile."tmuxinator" = { xdg.configFile."tmuxinator" = {
recursive = true; recursive = true;
source = ./files/tmuxinator; source = ./files/tmuxinator;
@ -131,20 +127,20 @@
enable = true; enable = true;
target = ".tmux-cssh"; target = ".tmux-cssh";
text = '' text = ''
vps:-sc www -sc nuwww vps:-sc www -sc nuwww
local:-sc harper -sc mini -sc display -sc harper2 -sc pihole -sc fred local:-sc harper -sc mini -sc display -sc harper2 -sc pihole -sc fred
server:-cs vps -cs local server:-cs vps -cs local
laptop:-sc loki -sc dragon laptop:-sc loki -sc dragon
arch:-sc harper -sc pihole -sc nuwww -sc display arch:-sc harper -sc pihole -sc nuwww -sc display
nix:-sc loki -sc eve -sc smaug nix:-sc loki -sc eve -sc smaug
nix-all:-cs nix -sc dragon -sc ace -sc pocket2 -sc fred nix-all:-cs nix -sc dragon -sc ace -sc pocket2 -sc fred
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,11 +1,15 @@
{ 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 =
path = "~/.config/vdirsyncer/storage/calendar/*" /*
date_format = "%Y-%m-%d" python
time_format = "%H:%M" */
default_list = "duckunix@gmail.com" ''
# default_due = 48 path = "~/.config/vdirsyncer/storage/calendar/*"
default_command = "list --startable" date_format = "%Y-%m-%d"
''; time_format = "%H:%M"
default_list = "duckunix@gmail.com"
# default_due = 48
default_command = "list --startable"
'';
} }

View file

@ -1,5 +1,8 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
programs.topgrade = { programs.topgrade = {
enable = true; enable = true;
settings = { settings = {
@ -23,7 +26,7 @@
set_title = false; set_title = false;
cleanup = true; cleanup = true;
#commands = { #commands = {
#"Run garbage collection on Nix store" = "nix-collect-garbage"; #"Run garbage collection on Nix store" = "nix-collect-garbage";
#}; #};
}; };
git = { git = {

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,97 +16,99 @@
./sway.nix ./sway.nix
./terminals.nix ./terminals.nix
]; ];
home.packages = with pkgs; [ home.packages = with pkgs;
anonymousPro [
at-spi2-core anonymousPro
blueberry at-spi2-core
clipman blueberry
cura clipman
darktable cura
dmenu-wayland darktable
element-desktop dmenu-wayland
errands element-desktop
firefox errands
font-awesome firefox
fractal font-awesome
gnome.gnome-tweaks fractal
gnome.simple-scan gnome.gnome-tweaks
gnumeric gnome.simple-scan
headset-charge-indicator gnumeric
ibm-plex headset-charge-indicator
imv ibm-plex
jellyfin-media-player imv
jetbrains-mono jellyfin-media-player
kanshi jetbrains-mono
libappindicator kanshi
libnotify libappindicator
libreoffice-fresh libnotify
libsForQt5.kwallet libreoffice-fresh
neovim-qt libsForQt5.kwallet
nerdfonts neovim-qt
networkmanagerapplet nerdfonts
nextcloud-client networkmanagerapplet
nvd nextcloud-client
obsidian nvd
overpass obsidian
pasystray overpass
pavucontrol pasystray
poweralertd pavucontrol
powerline-fonts poweralertd
prusa-slicer powerline-fonts
pwvucontrol prusa-slicer
qpwgraph pwvucontrol
quickemu qpwgraph
quickgui quickemu
qutebrowser quickgui
rofi qutebrowser
signal-desktop rofi
shikane signal-desktop
shortwave shikane
source-code-pro shortwave
sway-audio-idle-inhibit source-code-pro
syncthingtray sway-audio-idle-inhibit
telegram-desktop syncthingtray
texlive.combined.scheme-medium telegram-desktop
thunderbird texlive.combined.scheme-medium
victor-mono thunderbird
widevine-cdm victor-mono
wofi widevine-cdm
yt-dlp wofi
] ++ lib.optional (pkgs.hostPlatform.system == "x86_64-linux") sonixd; yt-dlp
]
++ 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";
@ -137,25 +142,25 @@
icon = "obsidian"; icon = "obsidian";
exec = "/home/don/bin/cooking-notebook"; exec = "/home/don/bin/cooking-notebook";
}; };
mynotes = { mynotes = {
name = "My Notes"; name = "My Notes";
exec = "/home/don/bin/mynotes"; exec = "/home/don/bin/mynotes";
terminal = false; terminal = false;
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";
exec = "/home/don/bin/newjournal"; exec = "/home/don/bin/newjournal";
terminal = false; terminal = false;
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,23 +174,22 @@
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': { 'vertical': 6,
'vertical': 6, 'horizontal': 8
'horizontal': 8 }
} })
}) c.statusbar.padding = { 'top': 6, 'right': 8, 'bottom': 6, 'left': 8 }
c.statusbar.padding = { 'top': 6, 'right': 8, 'bottom': 6, 'left': 8 } c.tabs.padding = { 'top': 1, 'right': 8, 'bottom': 1, 'left': 8 }
c.tabs.padding = { 'top': 1, 'right': 8, 'bottom': 1, 'left': 8 } #c.bindings = { key_mappings = ['<Ctrl+6>': '<Ctrl+^>' '<Ctrl+Enter>': '<Ctrl+Return>' '<Ctrl+j>': '<Return>' '<Ctrl+m>': '<Return>' '<Ctrl+[>': '<Escape>' '<Enter>': '<Return>' '<Shift+Enter>': '<Return>' '<Shift+Return>': '<Return>']}
#c.bindings = { key_mappings = ['<Ctrl+6>': '<Ctrl+^>' '<Ctrl+Enter>': '<Ctrl+Return>' '<Ctrl+j>': '<Return>' '<Ctrl+m>': '<Return>' '<Ctrl+[>': '<Escape>' '<Enter>': '<Return>' '<Shift+Enter>': '<Return>' '<Shift+Return>': '<Return>']} '';
''; settings = {
settings = { auto_save = {
auto_save = { session = true;
session = true; };
};
#}; #};
colors = { colors = {
webpage = { webpage = {
@ -228,14 +226,14 @@
}; };
fileselect = { fileselect = {
folder = { folder = {
command = ["kitty" "-e" "ranger" "--choosedir={}"]; command = ["kitty" "-e" "ranger" "--choosedir={}"];
}; };
handler = "external"; handler = "external";
multiple_files = { multiple_files = {
command = ["kitty" "-e" "ranger" "--choosefile={}"]; command = ["kitty" "-e" "ranger" "--choosefile={}"];
}; };
single_file = { single_file = {
command = ["kitty" "-e" "ranger" "--choosefile={}"]; command = ["kitty" "-e" "ranger" "--choosefile={}"];
}; };
}; };
qt = { qt = {

View file

@ -1,5 +1,8 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
services.redshift = { services.redshift = {
enable = true; enable = true;
latitude = "29.74"; latitude = "29.74";
@ -13,8 +16,8 @@
brightness-night = "0.7"; brightness-night = "0.7";
# This *should work* # This *should work*
#temperature = { #temperature = {
#day = 6500; #day = 6500;
#night = 3500; #night = 3500;
#}; #};
}; };
}; };

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 {
background: rgba(43, 48, 59, 0.5);
border-bottom: 3px solid rgba(100, 114, 125, 0.5);
color: #ffffff;
}
window#waybar.hidden { opacity: 0.0; }
#workspaces button {
padding: 0 5px;
background: transparent;
color: #ffffff;
border-bottom: 3px solid transparent;
} }
window#waybar { #workspaces button.focused { background: #64727D; border-bottom: 3px solid #ffffff; }
background: rgba(43, 48, 59, 0.5); #workspaces button.urgent { background-color: #eb4d4b; }
border-bottom: 3px solid rgba(100, 114, 125, 0.5); #mode { background: #64727D; border-bottom: 3px solid #ffffff; }
color: #ffffff; #clock, #battery, #cpu, #memory, #temperature, #backlight, #network, #pulseaudio, #custom-mymusic, #tray, #mode, #idle_inhibitor, #bluetooth {
} padding: 0 5px;
window#waybar.hidden { opacity: 0.0; } margin: 0 0px;
#workspaces button { }
padding: 0 5px; #clock { background-color: #64727D; color: #f1fa8c; }
background: transparent; #battery { color: #000000; background-color: #50fa7b; }
color: #ffffff; #battery.warning { color: #000000; background-color: #ff79c6; }
border-bottom: 3px solid transparent; #battery.critical { color: #ffffff; background-color: #ff5555; }
} #battery.charging { color: #44475a; background-color: #50fa7b; }
#workspaces button.focused { background: #64727D; border-bottom: 3px solid #ffffff; } @keyframes blink { to { background-color: #ffffff; color: #000000; } }
#workspaces button.urgent { background-color: #eb4d4b; } #battery.critical:not(.charging) {
#mode { background: #64727D; border-bottom: 3px solid #ffffff; } background: #f53c3c; color: #ffffff;
#clock, #battery, #cpu, #memory, #temperature, #backlight, #network, #pulseaudio, #custom-mymusic, #tray, #mode, #idle_inhibitor, #bluetooth { animation-name: blink; animation-duration: 0.5s;
padding: 0 5px; animation-timing-function: linear;
margin: 0 0px; animation-iteration-count: infinite;
} animation-direction: alternate;
#clock { background-color: #64727D; color: #f1fa8c; } }
#battery { color: #000000; background-color: #50fa7b; } #cpu { background: #2ecc71; color: #000000; }
#battery.warning { color: #000000; background-color: #ff79c6; } #memory { background: #9b59b6; }
#battery.critical { color: #ffffff; background-color: #ff5555; } #backlight { color: #000000; background: #90b1b1; }
#battery.charging { color: #44475a; background-color: #50fa7b; } #bluetooth { background: #ffb86c; color: #000000; }
@keyframes blink { to { background-color: #ffffff; color: #000000; } } #network { background: #bd93f9; color: #000000; }
#battery.critical:not(.charging) { #network.disconnected { background: #ff5555; }
background: #f53c3c; color: #ffffff; #pulseaudio { background: #ffb86c; color: #000000; }
animation-name: blink; animation-duration: 0.5s; #pulseaudio.muted { background: #90b1b1; color: #2a5c45; }
animation-timing-function: linear; #custom-mytimew { background: #bd93f9; color: #000000; }
animation-iteration-count: infinite; #custom-mymusic { background: #8be9fd; color: #000000; }
animation-direction: alternate; #custom-mycal { background: #cccc99; color: #2a5c45; }
} #temperature { background: #f0932b; }
#cpu { background: #2ecc71; color: #000000; } #temperature.critical { background: #eb4d4b; }
#memory { background: #9b59b6; } #tray { background-color: #64727D; }
#backlight { color: #000000; background: #90b1b1; } #idle_inhibitor { background-color: #2d3436; }
#bluetooth { background: #ffb86c; color: #000000; } #idle_inhibitor.activated { background-color: #ecf0f1; color: #2d3436; }
#network { background: #bd93f9; color: #000000; } '';
#network.disconnected { background: #ff5555; } };
#pulseaudio { background: #ffb86c; color: #000000; } };
#pulseaudio.muted { background: #90b1b1; color: #2a5c45; }
#custom-mytimew { background: #bd93f9; color: #000000; }
#custom-mymusic { background: #8be9fd; color: #000000; }
#custom-mycal { background: #cccc99; color: #2a5c45; }
#temperature { background: #f0932b; }
#temperature.critical { background: #eb4d4b; }
#tray { background-color: #64727D; }
#idle_inhibitor { background-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,19 +1,22 @@
{ 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;
desktopEntries = { desktopEntries = {
myzoom = { myzoom = {
name = "My Zoom-Zoom"; name = "My Zoom-Zoom";
exec = "/home/don/bin/myzoom %u"; exec = "/home/don/bin/myzoom %u";
terminal = false; terminal = false;
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,14 +1,18 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
inputs.stylix.nixosModules.stylix lib,
./hardware-configuration.nix config,
# ../disko/mmcblk.nix pkgs,
../workstation ...
../themes.nix }: {
../wm imports = [
]; inputs.stylix.nixosModules.stylix
./hardware-configuration.nix
# ../disko/mmcblk.nix
../workstation
../themes.nix
../wm
];
networking.hostName = "ace"; networking.hostName = "ace";
} }

View file

@ -1,27 +1,31 @@
# 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";
}; };
# swapDevices = # swapDevices =
# [ { device = "/dev/disk/by-uuid/8c445831-23e0-4508-85d0-54ea8cd3f80b"; } # [ { device = "/dev/disk/by-uuid/8c445831-23e0-4508-85d0-54ea8cd3f80b"; }

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,13 +1,17 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
inputs.stylix.nixosModules.stylix lib,
inputs.nixos-hardware.nixosModules.raspberry-pi-4 config,
./hardware-configuration.nix pkgs,
../themes.nix ...
../../server }: {
]; imports = [
inputs.stylix.nixosModules.stylix
inputs.nixos-hardware.nixosModules.raspberry-pi-4
./hardware-configuration.nix
../themes.nix
../../server
];
networking.hostName = "display"; networking.hostName = "display";
} }

View file

@ -1,17 +1,19 @@
{ inputs, config, pkgs, ... }:
{ {
imports = inputs,
[ config,
inputs.stylix.nixosModules.stylix pkgs,
./hardware-configuration.nix ...
inputs.nixos-hardware.nixosModules.common-cpu-intel }: {
inputs.nixos-hardware.nixosModules.common-gpu-intel imports = [
inputs.nixos-hardware.nixosModules.common-pc-laptop inputs.stylix.nixosModules.stylix
inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd ./hardware-configuration.nix
../workstation inputs.nixos-hardware.nixosModules.common-cpu-intel
../themes.nix inputs.nixos-hardware.nixosModules.common-gpu-intel
../wm inputs.nixos-hardware.nixosModules.common-pc-laptop
]; inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd
../workstation
../themes.nix
../wm
];
networking.hostName = "dragon"; networking.hostName = "dragon";
} }

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" "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
# (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,17 +1,21 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
inputs.nixos-hardware.nixosModules.google-pixelbook lib,
inputs.stylix.nixosModules.stylix config,
./hardware-configuration.nix pkgs,
# ../disko/mmcblk.nix ...
../workstation }: {
../workstation/games imports = [
../themes.nix inputs.nixos-hardware.nixosModules.google-pixelbook
../wm inputs.stylix.nixosModules.stylix
../../home/work ./hardware-configuration.nix
]; # ../disko/mmcblk.nix
../workstation
../workstation/games
../themes.nix
../wm
../../home/work
];
networking.hostName = "eve"; networking.hostName = "eve";
} }

View file

@ -1,27 +1,31 @@
# 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";
}; };
# swapDevices = # swapDevices =
# [ { device = "/dev/disk/by-uuid/a7ae7629-f44f-4298-bf31-59c51cd95658"; } # [ { device = "/dev/disk/by-uuid/a7ae7629-f44f-4298-bf31-59c51cd95658"; }

View file

@ -1,12 +1,16 @@
{ config, pkgs, lib, ... }:
{ {
boot.kernelPatches = lib.singleton { config,
name = "eve-config"; pkgs,
patch = null; lib,
extraStructuredConfig = with lib.kernel; { ...
CROS_EC_I2C = module; }: {
CROS_KBD_LED_BACKLIGHT = module; boot.kernelPatches = lib.singleton {
I2C_HID_ACPI = yes; name = "eve-config";
}; patch = null;
}; extraStructuredConfig = with lib.kernel; {
CROS_EC_I2C = module;
CROS_KBD_LED_BACKLIGHT = module;
I2C_HID_ACPI = yes;
};
};
} }

View file

@ -1,13 +1,17 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
inputs.stylix.nixosModules.stylix lib,
./hardware-configuration.nix config,
../server pkgs,
../themes.nix ...
./podman.nix }: {
]; imports = [
inputs.stylix.nixosModules.stylix
./hardware-configuration.nix
../server
../themes.nix
./podman.nix
];
networking.hostName = "fred"; networking.hostName = "fred";
} }

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,12 +1,16 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
inputs.stylix.nixosModules.stylix lib,
./hardware-configuration.nix config,
../../server pkgs,
../themes.nix ...
]; }: {
imports = [
inputs.stylix.nixosModules.stylix
./hardware-configuration.nix
../../server
../themes.nix
];
networking.hostName = "harper"; networking.hostName = "harper";
} }

View file

@ -1,12 +1,16 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
inputs.stylix.nixosModules.stylix lib,
./hardware-configuration.nix config,
../../server pkgs,
../themes.nix ...
]; }: {
imports = [
inputs.stylix.nixosModules.stylix
./hardware-configuration.nix
../../server
../themes.nix
];
networking.hostName = "harper2"; networking.hostName = "harper2";
} }

View file

@ -1,18 +1,22 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
inputs.nixos-hardware.nixosModules.dell-xps-13-9310 lib,
inputs.stylix.nixosModules.stylix config,
./hardware-configuration.nix pkgs,
# ../disko/nvme.nix ...
../workstation }: {
../workstation/kvm.nix imports = [
../workstation/games inputs.nixos-hardware.nixosModules.dell-xps-13-9310
../wm inputs.stylix.nixosModules.stylix
../themes.nix ./hardware-configuration.nix
../../home/work # ../disko/nvme.nix
]; ../workstation
../workstation/kvm.nix
../workstation/games
../wm
../themes.nix
../../home/work
];
networking.hostName = "loki"; networking.hostName = "loki";
} }

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,12 +1,16 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
inputs.stylix.nixosModules.stylix lib,
./hardware-configuration.nix config,
../../server pkgs,
../themes.nix ...
]; }: {
imports = [
inputs.stylix.nixosModules.stylix
./hardware-configuration.nix
../../server
../themes.nix
];
networking.hostName = "nuwww"; networking.hostName = "nuwww";
} }

View file

@ -1,12 +1,16 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
inputs.stylix.nixosModules.stylix lib,
./hardware-configuration.nix config,
../../server pkgs,
../themes.nix ...
]; }: {
imports = [
inputs.stylix.nixosModules.stylix
./hardware-configuration.nix
../../server
../themes.nix
];
networking.hostName = "pihole"; networking.hostName = "pihole";
} }

View file

@ -1,17 +1,19 @@
{ inputs, config, pkgs, ... }:
{ {
imports = inputs,
[ config,
inputs.stylix.nixosModules.stylix pkgs,
./hardware-configuration.nix ...
inputs.nixos-hardware.nixosModules.common-cpu-intel }: {
inputs.nixos-hardware.nixosModules.common-gpu-intel imports = [
inputs.nixos-hardware.nixosModules.common-pc-laptop inputs.stylix.nixosModules.stylix
inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd ./hardware-configuration.nix
../workstation inputs.nixos-hardware.nixosModules.common-cpu-intel
../themes.nix inputs.nixos-hardware.nixosModules.common-gpu-intel
../wm inputs.nixos-hardware.nixosModules.common-pc-laptop
]; inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd
../workstation
../themes.nix
../wm
];
networking.hostName = "pocket2"; networking.hostName = "pocket2";
} }

View file

@ -1,27 +1,31 @@
# 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";
}; };
# 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,22 +1,27 @@
{ inputs, outputs, lib, config, pkgs, ... }:
let
my-python-packages = python-packages: with python-packages; [
pip
# pipx
python-dateutil
setuptools
requests
];
python-with-my-packages = pkgs.python3Full.withPackages my-python-packages;
in
{ {
inputs,
outputs,
lib,
config,
pkgs,
...
}: let
my-python-packages = python-packages:
with python-packages; [
pip
# pipx
python-dateutil
setuptools
requests
];
python-with-my-packages = pkgs.python3Full.withPackages my-python-packages;
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,13 +29,12 @@ in
options = "--delete-older-than 7d"; options = "--delete-older-than 7d";
}; };
}; };
imports = imports = [
[ ../../home
../../home ./systemd.nix
./systemd.nix ./tailscale.nix
./tailscale.nix ./upgrade-diff.nix
./upgrade-diff.nix ];
];
# Enable networking # Enable networking
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
@ -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" ]; {
keepEnv = true; users = ["don"];
noPass = true; keepEnv = 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,16 +1,20 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x260 lib,
inputs.stylix.nixosModules.stylix config,
./hardware-configuration.nix pkgs,
# ../disko/sda.nix ...
../workstation }: {
../wm imports = [
../themes.nix inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x260
../../home/work inputs.stylix.nixosModules.stylix
]; ./hardware-configuration.nix
# ../disko/sda.nix
../workstation
../wm
../themes.nix
../../home/work
];
networking.hostName = "smaug"; networking.hostName = "smaug";
} }

View file

@ -1,28 +1,31 @@
# 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."/" = {
device = "/dev/sda2";
fsType = "ext4";
};
fileSystems."/" = fileSystems."/boot" = {
{ device = "/dev/sda2"; device = "/dev/sda1";
fsType = "ext4"; fsType = "vfat";
}; };
fileSystems."/boot" =
{ device = "/dev/sda1";
fsType = "vfat";
};
# swapDevices = # swapDevices =
# [ { device = "/dev/sda3"; } # [ { device = "/dev/sda3"; }

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,13 +1,17 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
inputs.stylix.nixosModules.stylix lib,
./hardware-configuration.nix config,
../workstation pkgs,
../themes.nix ...
../wm }: {
]; imports = [
inputs.stylix.nixosModules.stylix
./hardware-configuration.nix
../workstation
../themes.nix
../wm
];
networking.hostName = "t2"; networking.hostName = "t2";
} }

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,11 +1,15 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
./hardware-configuration.nix lib,
../server config,
../themes.nix pkgs,
]; ...
}: {
imports = [
./hardware-configuration.nix
../server
../themes.nix
];
networking.hostName = "vm"; networking.hostName = "vm";
} }

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 + "/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
# (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,10 +1,14 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
./hardware-configuration.nix lib,
../themes.nix config,
]; pkgs,
...
}: {
imports = [
./hardware-configuration.nix
../themes.nix
];
networking.hostName = "vm1"; networking.hostName = "vm1";
} }

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 + "/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
# (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,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";
@ -18,39 +17,38 @@ let
schema = pkgs.gsettings-desktop-schemas; schema = pkgs.gsettings-desktop-schemas;
datadir = "${schema}/share/gsettings-schemas/${schema.name}"; datadir = "${schema}/share/gsettings-schemas/${schema.name}";
in '' in ''
export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS
gnome_schema=org.gnome.desktop.interface gnome_schema=org.gnome.desktop.interface
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 configure-gtk
configure-gtk dbus-sway-environment
dbus-sway-environment dracula-theme # gtk theme
dracula-theme # gtk theme glib
glib gnome.adwaita-icon-theme
gnome.adwaita-icon-theme grim
grim mako
mako slurp
slurp sway
sway swayidle
swayidle swayimg
swayimg swaylock-effects
swaylock-effects swaynotificationcenter
swaynotificationcenter waybar
waybar wayland
wayland wl-clipboard
wl-clipboard ];
]; services.dbus.enable = true;
services.dbus.enable = true; programs = {
programs = { sway = {
sway = { enable = true;
enable = true; wrapperFeatures.gtk = true;
wrapperFeatures.gtk = true;
};
}; };
services.greetd.package = "greetd.wlgreet"; };
} services.greetd.package = "greetd.wlgreet";
}

View file

@ -1,22 +1,27 @@
{ inputs, outputs, lib, config, pkgs, ... }:
let
my-python-packages = python-packages: with python-packages; [
pip
# pipx
python-dateutil
setuptools
requests
];
python-with-my-packages = pkgs.python3Full.withPackages my-python-packages;
in
{ {
inputs,
outputs,
lib,
config,
pkgs,
...
}: let
my-python-packages = python-packages:
with python-packages; [
pip
# pipx
python-dateutil
setuptools
requests
];
python-with-my-packages = pkgs.python3Full.withPackages my-python-packages;
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,15 +29,14 @@ 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 ./systemd.nix
./systemd.nix ./tailscale.nix
./tailscale.nix ./upgrade-diff.nix
./upgrade-diff.nix ];
];
# Enable networking # Enable networking
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
@ -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,27 +63,27 @@ 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")
systemd-boot = { then {
enable = true; systemd-boot = {
enable = true;
};
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot";
};
}
else {
grub.enable = false;
generic-extlinux-compatible.enable = true;
}; };
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot";
};
}
else
{
grub.enable = false;
generic-extlinux-compatible.enable = true;
};
plymouth = { plymouth = {
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" ]; {
keepEnv = true; users = ["don"];
noPass = true; keepEnv = 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,12 +1,16 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{ {
imports = inputs,
[ outputs,
inputs.stylix.nixosModules.stylix lib,
./hardware-configuration.nix config,
../../server pkgs,
../themes.nix ...
]; }: {
imports = [
inputs.stylix.nixosModules.stylix
./hardware-configuration.nix
../../server
../themes.nix
];
networking.hostName = "www2"; networking.hostName = "www2";
} }

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 = ''