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";
};
outputs = inputs@{
outputs = inputs @ {
self,
nixpkgs,
nix,
nixos-hardware,
home-manager,
stylix,
...
}:
let
inherit (self) outputs;
lib = nixpkgs.lib // home-manager.lib;
systems = [ "x86_64-linux" "aarch64-linux" ];
forEachSystem = f: lib.genAttrs systems (system: f pkgsFor.${system});
pkgsFor = lib.genAttrs systems (system: import nixpkgs {
nixpkgs,
nix,
nixos-hardware,
home-manager,
stylix,
...
}: let
inherit (self) outputs;
lib = nixpkgs.lib // home-manager.lib;
systems = ["x86_64-linux" "aarch64-linux"];
forEachSystem = f: lib.genAttrs systems (system: f pkgsFor.${system});
pkgsFor = lib.genAttrs systems (system:
import nixpkgs {
inherit system;
config.allowUnfree = true;
});
in
{
inherit lib;
# nixosModules = import ./modules/nixos;
# homeManagerModules = import ./modules/home-manager;
# templates = import ./templates;
in {
inherit lib;
# nixosModules = import ./modules/nixos;
# homeManagerModules = import ./modules/home-manager;
# templates = import ./templates;
# overlays = import ./overlays { inherit inputs outputs; };
# overlays = import ./overlays { inherit inputs outputs; };
# packages = forEachSystem (pkgs: import ./pkgs { inherit pkgs; });
# devShells = forEachSystem (pkgs: import ./shell.nix { inherit pkgs; });
# formatter = forEachSystem (pkgs: pkgs.nixpkgs-fmt);
# packages = forEachSystem (pkgs: import ./pkgs { inherit pkgs; });
# devShells = forEachSystem (pkgs: import ./shell.nix { inherit pkgs; });
# formatter = forEachSystem (pkgs: pkgs.nixpkgs-fmt);
nixosConfigurations = {
# clients
ace = lib.nixosSystem {
modules = [ ./hosts/ace ];
specialArgs = { inherit inputs outputs; };
};
dragon = lib.nixosSystem {
modules = [ ./hosts/dragon ];
specialArgs = { inherit inputs outputs; };
};
eve = lib.nixosSystem {
modules = [ ./hosts/eve ];
specialArgs = { inherit inputs outputs; };
};
loki = lib.nixosSystem {
modules = [ ./hosts/loki ];
specialArgs = { inherit inputs outputs; };
};
nixosConfigurations = {
# clients
ace = lib.nixosSystem {
modules = [./hosts/ace];
specialArgs = {inherit inputs outputs;};
};
dragon = lib.nixosSystem {
modules = [./hosts/dragon];
specialArgs = {inherit inputs outputs;};
};
eve = lib.nixosSystem {
modules = [./hosts/eve];
specialArgs = {inherit inputs outputs;};
};
loki = lib.nixosSystem {
modules = [./hosts/loki];
specialArgs = {inherit inputs outputs;};
};
pocket2 = lib.nixosSystem {
modules = [ ./hosts/pocket2 ];
specialArgs = { inherit inputs outputs; };
};
smaug = lib.nixosSystem {
modules = [ ./hosts/smaug ];
specialArgs = { inherit inputs outputs; };
};
t2 = lib.nixosSystem {
modules = [ ./hosts/t2 ];
specialArgs = { inherit inputs outputs; };
};
pocket2 = lib.nixosSystem {
modules = [./hosts/pocket2];
specialArgs = {inherit inputs outputs;};
};
smaug = lib.nixosSystem {
modules = [./hosts/smaug];
specialArgs = {inherit inputs outputs;};
};
t2 = lib.nixosSystem {
modules = [./hosts/t2];
specialArgs = {inherit inputs outputs;};
};
# servers
display = lib.nixosSystem {
modules = [ ./hosts/display ];
specialArgs = { inherit inputs outputs; };
};
fred = lib.nixosSystem {
modules = [ ./hosts/fred ];
specialArgs = { inherit inputs outputs; };
};
vm = lib.nixosSystem {
modules = [ ./hosts/vm ];
specialArgs = { inherit inputs outputs; };
};
harper2 = lib.nixosSystem {
modules = [ ./hosts/harper2 ];
specialArgs = { inherit inputs outputs; };
};
harper = lib.nixosSystem {
modules = [ ./hosts/harper ];
specialArgs = { inherit inputs outputs; };
};
nuwww = lib.nixosSystem {
modules = [ ./hosts/nuwww ];
specialArgs = { inherit inputs outputs; };
};
pihole = lib.nixosSystem {
modules = [ ./hosts/pihole ];
specialArgs = { inherit inputs outputs; };
};
www2 = lib.nixosSystem {
modules = [ ./hosts/www2 ];
specialArgs = { inherit inputs outputs; };
};
# servers
display = lib.nixosSystem {
modules = [./hosts/display];
specialArgs = {inherit inputs outputs;};
};
fred = lib.nixosSystem {
modules = [./hosts/fred];
specialArgs = {inherit inputs outputs;};
};
vm = lib.nixosSystem {
modules = [./hosts/vm];
specialArgs = {inherit inputs outputs;};
};
harper2 = lib.nixosSystem {
modules = [./hosts/harper2];
specialArgs = {inherit inputs outputs;};
};
harper = lib.nixosSystem {
modules = [./hosts/harper];
specialArgs = {inherit inputs outputs;};
};
nuwww = lib.nixosSystem {
modules = [./hosts/nuwww];
specialArgs = {inherit inputs outputs;};
};
pihole = lib.nixosSystem {
modules = [./hosts/pihole];
specialArgs = {inherit inputs outputs;};
};
www2 = lib.nixosSystem {
modules = [./hosts/www2];
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_aliases".source = files/bash/bash_aliases;
home.file.".bash_functions".source = files/bash/bash_functions;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,6 +1,8 @@
{ pkgs, config, ... }:
{
pkgs,
config,
...
}: {
xdg.configFile."lf/icons".source = ./icons;
programs.lf = {
@ -8,16 +10,15 @@
commands = {
editor-open = ''$$EDITOR $f'';
mkdir = ''
''${{
printf "Directory Name: "
read DIR
mkdir $DIR
}}
''${{
printf "Directory Name: "
read DIR
mkdir $DIR
}}
'';
};
keybindings = {
"\\\"" = "";
o = "";
c = "mkdir";
@ -45,10 +46,8 @@
ignorecase = true;
};
extraConfig =
let
previewer =
pkgs.writeShellScriptBin "pv.sh" ''
extraConfig = let
previewer = pkgs.writeShellScriptBin "pv.sh" ''
file=$1
w=$2
h=$3
@ -65,8 +64,7 @@
cleaner = pkgs.writeShellScriptBin "clean.sh" ''
${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 previewer ${previewer}/bin/pv.sh
'';

View file

@ -1,5 +1,5 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ liquidprompt ];
{pkgs, ...}: {
home.packages = with pkgs; [liquidprompt];
xdg.configFile."liquidpromptrc".text = ''
source ~/.config/liquidprompt.theme
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" = {
enable = true;
target = ".listadmin.ini";
@ -18,4 +21,3 @@
'';
};
}

View file

@ -1,5 +1,8 @@
{ config, pkgs, ... }:
{
config,
pkgs,
...
}: {
accounts.email.accounts = {
"don@donharper.org" = {
primary = true;
@ -14,8 +17,8 @@
programs.notmuch = {
enable = true;
new = {
tags = [ "unread" ];
ignore = [ ".mbsyncstate" ".uidvalidity" ".mbsyncstate.journal" ".mbsyncstate.new" ".mbsyncstate.lock" ];
tags = ["unread"];
ignore = [".mbsyncstate" ".uidvalidity" ".mbsyncstate.journal" ".mbsyncstate.new" ".mbsyncstate.lock"];
};
extraConfig = {
database = {
@ -34,8 +37,8 @@
Don Harper
'';
systemd.user = {
timers.mbsync = {
systemd.user = {
timers.mbsync = {
Timer = {
OnUnitActiveSec = "5m";
AccuracySec = "1m";
@ -46,22 +49,22 @@
};
services.mbsync = {
Service = {
ExecStart = "/home/don/bin/mbsync";
Service = {
ExecStart = "/home/don/bin/mbsync";
Environment = "PATH=/run/current-system/sw/bin";
Type = "oneshot";
};
Type = "oneshot";
};
Install = {
WantedBy = [ "mbsync.timer" ];
WantedBy = ["mbsync.timer"];
};
};
services."mbsync-all" = {
Service = {
ExecStart = "/home/don/bin/mbsync gmail";
Service = {
ExecStart = "/home/don/bin/mbsync gmail";
Environment = "PATH=/run/current-system/sw/bin";
Type = "oneshot";
};
Type = "oneshot";
};
Install = {
WantedBy = ["mbsync-all.timer"];
};

View file

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

View file

@ -1,13 +1,15 @@
{ config, pkgs, ... }:
{
config,
pkgs,
...
}: {
programs.neovim = {
enable = true;
defaultEditor = false;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
extraConfig =
''
extraConfig = ''
colorscheme dracula
set backspace="indent,eol,start"
set autoindent
@ -39,7 +41,7 @@
CheckAttach
Recover-vim
Shade-nvim # color
SpaceCamp # color
SpaceCamp # color
#YouCompleteMe
ale
ansible-vim

View file

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

View file

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

View file

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

View file

@ -1,11 +1,15 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ todoman ];
xdg.configFile."todoman/config.py".text = /* python */ ''
path = "~/.config/vdirsyncer/storage/calendar/*"
date_format = "%Y-%m-%d"
time_format = "%H:%M"
default_list = "duckunix@gmail.com"
# default_due = 48
default_command = "list --startable"
'';
{pkgs, ...}: {
home.packages = with pkgs; [todoman];
xdg.configFile."todoman/config.py".text =
/*
python
*/
''
path = "~/.config/vdirsyncer/storage/calendar/*"
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 = {
enable = true;
settings = {
@ -23,7 +26,7 @@
set_title = false;
cleanup = true;
#commands = {
#"Run garbage collection on Nix store" = "nix-collect-garbage";
#"Run garbage collection on Nix store" = "nix-collect-garbage";
#};
};
git = {

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,5 +1,8 @@
{ pkgs, inputs, ... }:
{
pkgs,
inputs,
...
}: {
home-manager.users.don = {
imports = [
./alacritty.nix
@ -13,97 +16,99 @@
./sway.nix
./terminals.nix
];
home.packages = with pkgs; [
anonymousPro
at-spi2-core
blueberry
clipman
cura
darktable
dmenu-wayland
element-desktop
errands
firefox
font-awesome
fractal
gnome.gnome-tweaks
gnome.simple-scan
gnumeric
headset-charge-indicator
ibm-plex
imv
jellyfin-media-player
jetbrains-mono
kanshi
libappindicator
libnotify
libreoffice-fresh
libsForQt5.kwallet
neovim-qt
nerdfonts
networkmanagerapplet
nextcloud-client
nvd
obsidian
overpass
pasystray
pavucontrol
poweralertd
powerline-fonts
prusa-slicer
pwvucontrol
qpwgraph
quickemu
quickgui
qutebrowser
rofi
signal-desktop
shikane
shortwave
source-code-pro
sway-audio-idle-inhibit
syncthingtray
telegram-desktop
texlive.combined.scheme-medium
thunderbird
victor-mono
widevine-cdm
wofi
yt-dlp
] ++ lib.optional (pkgs.hostPlatform.system == "x86_64-linux") sonixd;
home.packages = with pkgs;
[
anonymousPro
at-spi2-core
blueberry
clipman
cura
darktable
dmenu-wayland
element-desktop
errands
firefox
font-awesome
fractal
gnome.gnome-tweaks
gnome.simple-scan
gnumeric
headset-charge-indicator
ibm-plex
imv
jellyfin-media-player
jetbrains-mono
kanshi
libappindicator
libnotify
libreoffice-fresh
libsForQt5.kwallet
neovim-qt
nerdfonts
networkmanagerapplet
nextcloud-client
nvd
obsidian
overpass
pasystray
pavucontrol
poweralertd
powerline-fonts
prusa-slicer
pwvucontrol
qpwgraph
quickemu
quickgui
qutebrowser
rofi
signal-desktop
shikane
shortwave
source-code-pro
sway-audio-idle-inhibit
syncthingtray
telegram-desktop
texlive.combined.scheme-medium
thunderbird
victor-mono
widevine-cdm
wofi
yt-dlp
]
++ lib.optional (pkgs.hostPlatform.system == "x86_64-linux") sonixd;
xdg = {
mimeApps = {
enable = true;
associations.added = {
"application/octet-stream" = [ "gvim.desktop" ];
"application/pdf" = [ "qpdfview.desktop;org.gnome.Evince.desktop;org.pwmt.zathura-pdf-mupdf.desktop" ];
"audio/mpeg" = [ "org.kde.kid3.desktop" ];
"image/jpeg" = [ "darktable.desktop;gimp.desktop;imv.desktop" ];
"image/png" = [ "darktable.desktop;gimp.desktop;imv-folder.desktop;imv.desktop" ];
"image/x-adobe-dng" = [ "imv.desktop" ];
"inode/directory" = [ "thunar.desktop" ];
"text/plain" = [ "gvim.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" ];
"application/octet-stream" = ["gvim.desktop"];
"application/pdf" = ["qpdfview.desktop;org.gnome.Evince.desktop;org.pwmt.zathura-pdf-mupdf.desktop"];
"audio/mpeg" = ["org.kde.kid3.desktop"];
"image/jpeg" = ["darktable.desktop;gimp.desktop;imv.desktop"];
"image/png" = ["darktable.desktop;gimp.desktop;imv-folder.desktop;imv.desktop"];
"image/x-adobe-dng" = ["imv.desktop"];
"inode/directory" = ["thunar.desktop"];
"text/plain" = ["gvim.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"];
};
defaultApplications = {
"inode/directory" = [ "thunar.desktop" ];
"model/3mf" = [ "com.ultimaker.cura.desktop" ];
"model/gltf+json" = [ "com.ultimaker.cura.desktop" ];
"model/gltf-binary" = [ "com.ultimaker.cura.desktop" ];
"model/stl" = [ "com.ultimaker.cura.desktop" ];
"text/html" = [ "org.qutebrowser.qutebrowser.desktop" ];
"x-scheme-handler/about" = [ "org.qutebrowser.qutebrowser.desktop" ];
"x-scheme-handler/etcher" = [ "balena-etcher.desktop" ];
"x-scheme-handler/http" = [ "org.qutebrowser.qutebrowser.desktop" ];
"x-scheme-handler/https" = [ "org.qutebrowser.qutebrowser.desktop" ];
"x-scheme-handler/msteams" = [ "teams-for-linux.desktop" ];
"x-scheme-handler/pdf" = [ "myweb.desktop" ];
"x-scheme-handler/tg" = [ "userapp-Telegram Desktop-LOTG11.desktop" ];
"x-scheme-handler/tootle" = [ "com.github.bleakgrey.tootle.desktop" ];
"x-scheme-handler/unknown" = [ "org.qutebrowser.qutebrowser.desktop" ];
"application/pdf" = [ "org.pwmt.zathura-pdf-mupdf.desktop" ];
"x-scheme-handler/mailto" = [ "neomutt.desktop" ];
"inode/directory" = ["thunar.desktop"];
"model/3mf" = ["com.ultimaker.cura.desktop"];
"model/gltf+json" = ["com.ultimaker.cura.desktop"];
"model/gltf-binary" = ["com.ultimaker.cura.desktop"];
"model/stl" = ["com.ultimaker.cura.desktop"];
"text/html" = ["org.qutebrowser.qutebrowser.desktop"];
"x-scheme-handler/about" = ["org.qutebrowser.qutebrowser.desktop"];
"x-scheme-handler/etcher" = ["balena-etcher.desktop"];
"x-scheme-handler/http" = ["org.qutebrowser.qutebrowser.desktop"];
"x-scheme-handler/https" = ["org.qutebrowser.qutebrowser.desktop"];
"x-scheme-handler/msteams" = ["teams-for-linux.desktop"];
"x-scheme-handler/pdf" = ["myweb.desktop"];
"x-scheme-handler/tg" = ["userapp-Telegram Desktop-LOTG11.desktop"];
"x-scheme-handler/tootle" = ["com.github.bleakgrey.tootle.desktop"];
"x-scheme-handler/unknown" = ["org.qutebrowser.qutebrowser.desktop"];
"application/pdf" = ["org.pwmt.zathura-pdf-mupdf.desktop"];
"x-scheme-handler/mailto" = ["neomutt.desktop"];
};
};
desktopEntries = {
@ -129,7 +134,7 @@
terminal = false;
name = "myweb";
exec = "/home/don/bin/myweb %u";
mimeType = [ "x-scheme-handler/pdf" ];
mimeType = ["x-scheme-handler/pdf"];
};
cooking-notebook = {
type = "Application";
@ -137,25 +142,25 @@
icon = "obsidian";
exec = "/home/don/bin/cooking-notebook";
};
mynotes = {
mynotes = {
name = "My Notes";
exec = "/home/don/bin/mynotes";
terminal = false;
type = "Application";
icon = "obsidian";
comment = "Obsidian";
mimeType = [ "x-scheme-handler/obsidian" ];
categories = [ "Office" ];
mimeType = ["x-scheme-handler/obsidian"];
categories = ["Office"];
};
journal = {
journal = {
name = "Journal";
exec = "/home/don/bin/newjournal";
terminal = false;
type = "Application";
icon = "obsidian";
comment = "Obsidian Journal";
mimeType = [ "x-scheme-handler/obsidian" ];
categories = [ "Office" ];
mimeType = ["x-scheme-handler/obsidian"];
categories = ["Office"];
};
};
configFile = {

View file

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

View file

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

View file

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

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
programs.qutebrowser = {
enable = true;
loadAutoconfig = true;
@ -175,23 +174,22 @@
wikipedia = "https://www.wikipedia.org/";
zoom = "https://zoom.us/";
};
extraConfig =
''
import dracula.draw
dracula.draw.blood(c, {
'spacing': {
'vertical': 6,
'horizontal': 8
}
})
c.statusbar.padding = { 'top': 6, 'right': 8, 'bottom': 6, '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>']}
'';
settings = {
auto_save = {
session = true;
};
extraConfig = ''
import dracula.draw
dracula.draw.blood(c, {
'spacing': {
'vertical': 6,
'horizontal': 8
}
})
c.statusbar.padding = { 'top': 6, 'right': 8, 'bottom': 6, '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>']}
'';
settings = {
auto_save = {
session = true;
};
#};
colors = {
webpage = {
@ -228,14 +226,14 @@
};
fileselect = {
folder = {
command = ["kitty" "-e" "ranger" "--choosedir={}"];
command = ["kitty" "-e" "ranger" "--choosedir={}"];
};
handler = "external";
multiple_files = {
command = ["kitty" "-e" "ranger" "--choosefile={}"];
command = ["kitty" "-e" "ranger" "--choosefile={}"];
};
single_file = {
command = ["kitty" "-e" "ranger" "--choosefile={}"];
command = ["kitty" "-e" "ranger" "--choosefile={}"];
};
};
qt = {

View file

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

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
services = {
gnome-keyring = {
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};
programs = {
@ -130,62 +136,61 @@
};
};
};
style =
''
* {
border: none; border-radius: 0;
font-family: "JetBrains Mono", FontAwesome6Free, SymbolsNerdFont, Roboto, Helvetica, Arial, sans-serif;
font-size: 10px; min-height: 0;
style = ''
* {
border: none; border-radius: 0;
font-family: "JetBrains Mono", FontAwesome6Free, SymbolsNerdFont, Roboto, Helvetica, Arial, sans-serif;
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 {
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;
}
#workspaces button.focused { background: #64727D; border-bottom: 3px solid #ffffff; }
#workspaces button.urgent { background-color: #eb4d4b; }
#mode { background: #64727D; border-bottom: 3px solid #ffffff; }
#clock, #battery, #cpu, #memory, #temperature, #backlight, #network, #pulseaudio, #custom-mymusic, #tray, #mode, #idle_inhibitor, #bluetooth {
padding: 0 5px;
margin: 0 0px;
}
#clock { background-color: #64727D; color: #f1fa8c; }
#battery { color: #000000; background-color: #50fa7b; }
#battery.warning { color: #000000; background-color: #ff79c6; }
#battery.critical { color: #ffffff; background-color: #ff5555; }
#battery.charging { color: #44475a; background-color: #50fa7b; }
@keyframes blink { to { background-color: #ffffff; color: #000000; } }
#battery.critical:not(.charging) {
background: #f53c3c; color: #ffffff;
animation-name: blink; animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#cpu { background: #2ecc71; color: #000000; }
#memory { background: #9b59b6; }
#backlight { color: #000000; background: #90b1b1; }
#bluetooth { background: #ffb86c; color: #000000; }
#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; }
'';
};
};
#workspaces button.focused { background: #64727D; border-bottom: 3px solid #ffffff; }
#workspaces button.urgent { background-color: #eb4d4b; }
#mode { background: #64727D; border-bottom: 3px solid #ffffff; }
#clock, #battery, #cpu, #memory, #temperature, #backlight, #network, #pulseaudio, #custom-mymusic, #tray, #mode, #idle_inhibitor, #bluetooth {
padding: 0 5px;
margin: 0 0px;
}
#clock { background-color: #64727D; color: #f1fa8c; }
#battery { color: #000000; background-color: #50fa7b; }
#battery.warning { color: #000000; background-color: #ff79c6; }
#battery.critical { color: #ffffff; background-color: #ff5555; }
#battery.charging { color: #44475a; background-color: #50fa7b; }
@keyframes blink { to { background-color: #ffffff; color: #000000; } }
#battery.critical:not(.charging) {
background: #f53c3c; color: #ffffff;
animation-name: blink; animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#cpu { background: #2ecc71; color: #000000; }
#memory { background: #9b59b6; }
#backlight { color: #000000; background: #90b1b1; }
#bluetooth { background: #ffb86c; color: #000000; }
#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 = {
enable = true;
settings = {

View file

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

View file

@ -1,5 +1,8 @@
{ pkgs, inputs, ... }:
{
pkgs,
inputs,
...
}: {
home-manager.users.don = {
imports = [
./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 = {
configFile."zoom.conf".source = files/zoom.conf;
configFile."zoomus.conf".source = files/zoomus.conf;
desktopEntries = {
myzoom = {
myzoom = {
name = "My Zoom-Zoom";
exec = "/home/don/bin/myzoom %u";
terminal = false;
type = "Application";
icon = "Zoom";
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" ];
categories = [ "Network" "Application""Application" ];
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"];
};
};
};

View file

@ -1,14 +1,18 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{
imports =
[
inputs.stylix.nixosModules.stylix
./hardware-configuration.nix
# ../disko/mmcblk.nix
../workstation
../themes.nix
../wm
];
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix
./hardware-configuration.nix
# ../disko/mmcblk.nix
../workstation
../themes.nix
../wm
];
networking.hostName = "ace";
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,12 +1,16 @@
{ config, pkgs, lib, ... }:
{
boot.kernelPatches = lib.singleton {
name = "eve-config";
patch = null;
extraStructuredConfig = with lib.kernel; {
CROS_EC_I2C = module;
CROS_KBD_LED_BACKLIGHT = module;
I2C_HID_ACPI = yes;
};
};
config,
pkgs,
lib,
...
}: {
boot.kernelPatches = lib.singleton {
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.stylix.nixosModules.stylix
./hardware-configuration.nix
../server
../themes.nix
./podman.nix
];
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix
./hardware-configuration.nix
../server
../themes.nix
./podman.nix
];
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
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
config,
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.kernelModules = [ "dm-snapshot" ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["xhci_pci" "ehci_pci" "ahci" "usbhid" "ums_realtek" "sd_mod" "sr_mod"];
boot.initrd.kernelModules = ["dm-snapshot"];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/4a1d2915-6964-4479-98c6-d17e333e83e9";
fsType = "ext4";
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/4a1d2915-6964-4479-98c6-d17e333e83e9";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/FAE7-A0C7";
fsType = "vfat";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/FAE7-A0C7";
fsType = "vfat";
};
swapDevices = [ ];
swapDevices = [];
# 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

View file

@ -1,7 +1,9 @@
# Auto-generated using compose2nix v0.1.6.
{ pkgs, lib, ... }:
{
pkgs,
lib,
...
}: {
# Runtime
virtualisation.podman = {
enable = true;
@ -106,7 +108,7 @@
"/dev/net/tun:/dev/net/tun:rw"
"/home/don/docker/tailscale/var_lib:/var/lib:rw"
];
cmd = [ "tailscaled" ];
cmd = ["tailscaled"];
log-driver = "journald";
extraOptions = [
"--cap-add=net_admin"
@ -136,7 +138,7 @@
# Networks
systemd.services."podman-network-tstest-default" = {
path = [ pkgs.podman ];
path = [pkgs.podman];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
@ -145,8 +147,8 @@
script = ''
podman network inspect tstest-default || podman network create tstest-default --opt isolate=true
'';
partOf = [ "podman-compose-tstest-root.target" ];
wantedBy = [ "podman-compose-tstest-root.target" ];
partOf = ["podman-compose-tstest-root.target"];
wantedBy = ["podman-compose-tstest-root.target"];
};
# Root service
@ -156,6 +158,6 @@
unitConfig = {
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.stylix.nixosModules.stylix
./hardware-configuration.nix
../../server
../themes.nix
];
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix
./hardware-configuration.nix
../../server
../themes.nix
];
networking.hostName = "harper";
}

View file

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

View file

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

View file

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

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

View file

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

View file

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

View file

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

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 = {
settings = {
experimental-features = [ "nix-command" "flakes" ];
experimental-features = ["nix-command" "flakes"];
warn-dirty = false;
auto-optimise-store = true;
trusted-users = [ "root" "don" ];
trusted-users = ["root" "don"];
};
gc = {
automatic = true;
@ -24,13 +29,12 @@ in
options = "--delete-older-than 7d";
};
};
imports =
[
../../home
./systemd.nix
./tailscale.nix
./upgrade-diff.nix
];
imports = [
../../home
./systemd.nix
./tailscale.nix
./upgrade-diff.nix
];
# Enable networking
networking.networkmanager.enable = true;
@ -43,7 +47,6 @@ in
hardwareClockInLocalTime = false;
};
# Select internationalisation properties.
i18n.defaultLocale = "en_US.utf8";
i18n.inputMethod = {
@ -57,7 +60,7 @@ in
# Bootloader.
boot = {
kernelPackages = pkgs.linuxPackages_latest;
kernelParams = [ "consoleblank=60" ];
kernelParams = ["consoleblank=60"];
loader = {
systemd-boot = {
enable = true;
@ -71,7 +74,7 @@ in
enable = true;
};
kernel = {
sysctl = { "vm.swappiness" = 10;};
sysctl = {"vm.swappiness" = 10;};
};
};
@ -82,11 +85,13 @@ in
sudo.enable = false;
doas = {
enable = true;
extraRules = [{
users = [ "don" ];
keepEnv = true;
noPass = true;
}];
extraRules = [
{
users = ["don"];
keepEnv = true;
noPass = true;
}
];
};
};
@ -132,7 +137,7 @@ in
isNormalUser = true;
initialPassword = "changeme";
description = "Don Harper";
extraGroups = [ "networkmanager" "wheel" "scanner" "lp" "video" "mlocate" "disk" ];
extraGroups = ["networkmanager" "wheel" "scanner" "lp" "video" "mlocate" "disk"];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINd8AdVbQQ/Fmw+b9mI8EMYqIoRkwmSwAOtmlte3incL don@loki"
];
@ -185,35 +190,53 @@ in
};
};
nixpkgs.overlays = [
(final: super:{ khal = super.khal.overridePythonAttrs (_: { doCheck = false; }); })
(final: super: {khal = super.khal.overridePythonAttrs (_: {doCheck = false;});})
];
# Open ports in the firewall.
networking.firewall = {
enable = true;
# always allow traffic from your Tailscale network
trustedInterfaces = [ "tailscale0" ];
trustedInterfaces = ["tailscale0"];
checkReversePath = "loose";
# allow the Tailscale UDP port through the firewall
allowedUDPPorts = [ config.services.tailscale.port ];
allowedTCPPortRanges = [ { from = 1714 ; to = 1764; } ];
allowedUDPPortRanges = [ { from = 1714 ; to = 1764; } ];
allowedUDPPorts = [config.services.tailscale.port];
allowedTCPPortRanges = [
{
from = 1714;
to = 1764;
}
];
allowedUDPPortRanges = [
{
from = 1714;
to = 1764;
}
];
# allow you to SSH in over the public internet
allowedTCPPorts = [ 22 ];
allowedTCPPorts = [22];
interfaces = {
"tailscale0" = {
allowedTCPPorts = [ 22 8080 8443 ];
allowedTCPPortRanges = [ { from = 1714 ; to = 1764; } ];
allowedUDPPortRanges = [ { from = 1714 ; to = 1764; } ];
allowedTCPPorts = [22 8080 8443];
allowedTCPPortRanges = [
{
from = 1714;
to = 1764;
}
];
allowedUDPPortRanges = [
{
from = 1714;
to = 1764;
}
];
};
};
};
# This value determines the NixOS release from which the default
# 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)

View file

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

Binary file not shown.

View file

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

View file

@ -1,16 +1,20 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{
imports =
[
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x260
inputs.stylix.nixosModules.stylix
./hardware-configuration.nix
# ../disko/sda.nix
../workstation
../wm
../themes.nix
../../home/work
];
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x260
inputs.stylix.nixosModules.stylix
./hardware-configuration.nix
# ../disko/sda.nix
../workstation
../wm
../themes.nix
../../home/work
];
networking.hostName = "smaug";
}

View file

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

View file

@ -1,7 +1,9 @@
# Auto-generated using compose2nix v0.1.6.
{ pkgs, lib, ... }:
{
pkgs,
lib,
...
}: {
# Runtime
virtualisation.podman = {
enable = true;
@ -100,7 +102,7 @@
# Networks
systemd.services."podman-network-speedtest-default" = {
path = [ pkgs.podman ];
path = [pkgs.podman];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
@ -109,8 +111,8 @@
script = ''
podman network inspect speedtest-default || podman network create speedtest-default --opt isolate=true
'';
partOf = [ "podman-compose-speedtest-root.target" ];
wantedBy = [ "podman-compose-speedtest-root.target" ];
partOf = ["podman-compose-speedtest-root.target"];
wantedBy = ["podman-compose-speedtest-root.target"];
};
# Root service
@ -120,6 +122,6 @@
unitConfig = {
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.stylix.nixosModules.stylix
./hardware-configuration.nix
../workstation
../themes.nix
../wm
];
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
imports = [
inputs.stylix.nixosModules.stylix
./hardware-configuration.nix
../workstation
../themes.nix
../wm
];
networking.hostName = "t2";
}

View file

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

View file

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

View file

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

View file

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

View file

@ -1,10 +1,14 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{
imports =
[
./hardware-configuration.nix
../themes.nix
];
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
imports = [
./hardware-configuration.nix
../themes.nix
];
networking.hostName = "vm1";
}

View file

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

View file

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

View file

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

View file

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

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
let
{pkgs, ...}: let
dbus-sway-environment = pkgs.writeTextFile {
name = "dbus-sway-environment";
destination = "/bin/dbus-sway-environment";
@ -18,39 +17,38 @@ let
schema = pkgs.gsettings-desktop-schemas;
datadir = "${schema}/share/gsettings-schemas/${schema.name}";
in ''
export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS
gnome_schema=org.gnome.desktop.interface
gsettings set $gnome_schema gtk-theme 'Dracula'
export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS
gnome_schema=org.gnome.desktop.interface
gsettings set $gnome_schema gtk-theme 'Dracula'
'';
};
in
{
environment.systemPackages = with pkgs; [
alacritty
bemenu
configure-gtk
dbus-sway-environment
dracula-theme # gtk theme
glib
gnome.adwaita-icon-theme
grim
mako
slurp
sway
swayidle
swayimg
swaylock-effects
swaynotificationcenter
waybar
wayland
wl-clipboard
];
services.dbus.enable = true;
programs = {
sway = {
enable = true;
wrapperFeatures.gtk = true;
};
in {
environment.systemPackages = with pkgs; [
alacritty
bemenu
configure-gtk
dbus-sway-environment
dracula-theme # gtk theme
glib
gnome.adwaita-icon-theme
grim
mako
slurp
sway
swayidle
swayimg
swaylock-effects
swaynotificationcenter
waybar
wayland
wl-clipboard
];
services.dbus.enable = true;
programs = {
sway = {
enable = 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 = {
settings = {
experimental-features = [ "nix-command" "flakes" ];
experimental-features = ["nix-command" "flakes"];
warn-dirty = false;
auto-optimise-store = true;
trusted-users = [ "root" "don" ];
trusted-users = ["root" "don"];
};
gc = {
automatic = true;
@ -24,15 +29,14 @@ in
options = "--delete-older-than 7d";
};
};
imports =
[
../../home
../../home/gui
./detect-reboot-needed.nix
./systemd.nix
./tailscale.nix
./upgrade-diff.nix
];
imports = [
../../home
../../home/gui
./detect-reboot-needed.nix
./systemd.nix
./tailscale.nix
./upgrade-diff.nix
];
# Enable networking
networking.networkmanager.enable = true;
@ -46,7 +50,6 @@ in
hardwareClockInLocalTime = false;
};
# Select internationalisation properties.
i18n.defaultLocale = "en_US.utf8";
i18n.inputMethod = {
@ -60,27 +63,27 @@ in
# Bootloader.
boot = {
kernelPackages = pkgs.linuxPackages_latest;
kernelParams = [ "consoleblank=60" ];
loader = if (pkgs.hostPlatform != lib.mkDefault "aarch64-linux") then
{
systemd-boot = {
enable = true;
kernelParams = ["consoleblank=60"];
loader =
if (pkgs.hostPlatform != lib.mkDefault "aarch64-linux")
then {
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 = {
enable = true;
};
kernel = {
sysctl = { "vm.swappiness" = 10;};
sysctl = {"vm.swappiness" = 10;};
};
};
@ -91,11 +94,13 @@ in
sudo.enable = false;
doas = {
enable = true;
extraRules = [{
users = [ "don" ];
keepEnv = true;
noPass = true;
}];
extraRules = [
{
users = ["don"];
keepEnv = true;
noPass = true;
}
];
};
};
@ -173,7 +178,7 @@ in
};
sane = {
enable = true;
extraBackends = [ pkgs.sane-airscan ];
extraBackends = [pkgs.sane-airscan];
};
};
security.rtkit.enable = true;
@ -191,7 +196,7 @@ in
isNormalUser = true;
initialPassword = "changeme";
description = "Don Harper";
extraGroups = [ "networkmanager" "wheel" "scanner" "lp" "video" "mlocate" "disk" ];
extraGroups = ["networkmanager" "wheel" "scanner" "lp" "video" "mlocate" "disk"];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINd8AdVbQQ/Fmw+b9mI8EMYqIoRkwmSwAOtmlte3incL don@loki"
];
@ -205,7 +210,7 @@ in
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
nixpkgs.config.permittedInsecurePackages = [ "electron-25.9.0" ];
nixpkgs.config.permittedInsecurePackages = ["electron-25.9.0"];
environment.systemPackages = with pkgs; [
#(callPackage ../mypackages/kanshi-fix/default.nix {})
@ -267,36 +272,54 @@ in
};
};
nixpkgs.overlays = [
(final: prev: { qutebrowser = prev.qutebrowser.override { enableWideVine = true; }; })
(final: super:{ khal = super.khal.overridePythonAttrs (_: { doCheck = false; }); })
(final: prev: {qutebrowser = prev.qutebrowser.override {enableWideVine = true;};})
(final: super: {khal = super.khal.overridePythonAttrs (_: {doCheck = false;});})
];
# Open ports in the firewall.
networking.firewall = {
enable = true;
# always allow traffic from your Tailscale network
trustedInterfaces = [ "tailscale0" ];
trustedInterfaces = ["tailscale0"];
checkReversePath = "loose";
# allow the Tailscale UDP port through the firewall
allowedUDPPorts = [ config.services.tailscale.port ];
allowedTCPPortRanges = [ { from = 1714 ; to = 1764; } ];
allowedUDPPortRanges = [ { from = 1714 ; to = 1764; } ];
allowedUDPPorts = [config.services.tailscale.port];
allowedTCPPortRanges = [
{
from = 1714;
to = 1764;
}
];
allowedUDPPortRanges = [
{
from = 1714;
to = 1764;
}
];
# allow you to SSH in over the public internet
allowedTCPPorts = [ 22 ];
allowedTCPPorts = [22];
interfaces = {
"tailscale0" = {
allowedTCPPorts = [ 22 8080 8443 ];
allowedTCPPortRanges = [ { from = 1714 ; to = 1764; } ];
allowedUDPPortRanges = [ { from = 1714 ; to = 1764; } ];
allowedTCPPorts = [22 8080 8443];
allowedTCPPortRanges = [
{
from = 1714;
to = 1764;
}
];
allowedUDPPortRanges = [
{
from = 1714;
to = 1764;
}
];
};
};
};
# This value determines the NixOS release from which the default
# 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)

View file

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

View file

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

View file

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

Binary file not shown.

View file

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

View file

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

View file

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

View file

@ -1,7 +1,10 @@
# This module defines a small NixOS installation CD. It does not
# contain any graphical stuff.
{ config, pkgs, ... }:
{
config,
pkgs,
...
}: {
imports = [
<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 {}

View file

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