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;
@ -8,10 +8,10 @@
{ {
local cur prev words cword split local cur prev words cword split
_init_completion -s || return _init_completion -s || return
local i mode=normal local i mode=normal
[[ ''$1 == *doasedit ]] && mode=edit [[ ''$1 == *doasedit ]] && mode=edit
[[ ''$mode == normal ]] && [[ ''$mode == normal ]] &&
for ((i = 1; i <= cword; i++)); do for ((i = 1; i <= cword; i++)); do
if [[ ''${words[i]} != -* ]]; then if [[ ''${words[i]} != -* ]]; then
@ -23,16 +23,16 @@
[[ ''${words[i]} == -@(!(-*)[uUgCp]) ]] && [[ ''${words[i]} == -@(!(-*)[uUgCp]) ]] &&
((i++)) ((i++))
done done
case "''$prev" in case "''$prev" in
-u) -u)
COMPREPLY=(''$(compgen -u -- "''$cur")) COMPREPLY=(''$(compgen -u -- "''$cur"))
return return
;; ;;
esac esac
''$split && return ''$split && return
if [[ ''$cur == -* ]]; then if [[ ''$cur == -* ]]; then
local opts=''$(_parse_help "''$1") local opts=''$(_parse_help "''$1")
COMPREPLY=(''$(compgen -W ' ''${opts:-''$(_parse_usage "''$1")}' -- "''$cur")) COMPREPLY=(''$(compgen -W ' ''${opts:-''$(_parse_usage "''$1")}' -- "''$cur"))
@ -103,33 +103,33 @@
################################################################################ ################################################################################
#the following variable is substituted for by ../../test/bash_completion.t #the following variable is substituted for by ../../test/bash_completion.t
taskcommand='task rc.verbose:nothing rc.confirmation:no rc.hooks:off' taskcommand='task rc.verbose:nothing rc.confirmation:no rc.hooks:off'
_task_get_tags() { _task_get_tags() {
''$taskcommand _tags ''$taskcommand _tags
} }
_task_get_config() { _task_get_config() {
''$taskcommand _config ''$taskcommand _config
} }
_task_offer_priorities() { _task_offer_priorities() {
COMPREPLY=( ''$(compgen -W "L M H" -- ''${cur/*:/}) ) COMPREPLY=( ''$(compgen -W "L M H" -- ''${cur/*:/}) )
} }
_task_offer_projects() { _task_offer_projects() {
COMPREPLY=( ''$(compgen -W "''$(''$taskcommand _projects)" -- ''${cur/*:/}) ) COMPREPLY=( ''$(compgen -W "''$(''$taskcommand _projects)" -- ''${cur/*:/}) )
} }
_task_offer_contexts() { _task_offer_contexts() {
COMPREPLY=( ''$(compgen -W "''$(''$taskcommand _context) define delete list none show" -- ''$cur) ) COMPREPLY=( ''$(compgen -W "''$(''$taskcommand _context) define delete list none show" -- ''$cur) )
} }
_task_context_alias=''$(''$taskcommand show | grep alias.*context | cut -d' ' -f1 | cut -d. -f2) _task_context_alias=''$(''$taskcommand show | grep alias.*context | cut -d' ' -f1 | cut -d. -f2)
_task() _task()
{ {
local cur prev opts base local cur prev opts base
COMPREPLY=() COMPREPLY=()
cur="''${COMP_WORDS[COMP_CWORD]}" cur="''${COMP_WORDS[COMP_CWORD]}"
prev="''${COMP_WORDS[COMP_CWORD-1]}" prev="''${COMP_WORDS[COMP_CWORD-1]}"
@ -143,11 +143,11 @@
# echo -e "\ncur='''$cur'" # echo -e "\ncur='''$cur'"
# echo "prev='''$prev'" # echo "prev='''$prev'"
# echo "prev2='''$prev2'" # echo "prev2='''$prev2'"
abbrev_min=''$(''$taskcommand show | grep "abbreviation.minimum" | awk {'print ''$2'}) abbrev_min=''$(''$taskcommand show | grep "abbreviation.minimum" | awk {'print ''$2'})
commands_aliases=''$(echo ''$(''$taskcommand _commands; ''$taskcommand _aliases) | tr " " "\n"|sort|tr "\n" " ") commands_aliases=''$(echo ''$(''$taskcommand _commands; ''$taskcommand _aliases) | tr " " "\n"|sort|tr "\n" " ")
opts="''$commands_aliases ''$(''$taskcommand _columns)" opts="''$commands_aliases ''$(''$taskcommand _columns)"
case "''${prev}" in case "''${prev}" in
''$_task_context_alias|cont|conte|contex|context) ''$_task_context_alias|cont|conte|contex|context)
_task_offer_contexts _task_offer_contexts
@ -237,7 +237,7 @@
esac esac
;; ;;
esac esac
COMPREPLY=( ''$(compgen -W "''${opts}" -- ''${cur}) ) COMPREPLY=( ''$(compgen -W "''${opts}" -- ''${cur}) )
return 0 return 0
} }
@ -257,7 +257,7 @@
{ {
echo "annotate cancel config continue day delete diagnostics export extensions gaps get help join lengthen modify month move report resize shorten show split start stop summary tag tags track undo untag week" echo "annotate cancel config continue day delete diagnostics export extensions gaps get help join lengthen modify month move report resize shorten show split start stop summary tag tags track undo untag week"
} }
function __get_subcommands() function __get_subcommands()
{ {
case "''${1}" in case "''${1}" in
@ -269,17 +269,17 @@
;; ;;
esac esac
} }
function __get_help_items() function __get_help_items()
{ {
echo -e "''$( __get_commands ) interval hints date duration dom" echo -e "''$( __get_commands ) interval hints date duration dom"
} }
function __get_options() function __get_options()
{ {
echo -e "--help --verbose --version" echo -e "--help --verbose --version"
} }
function __get_ids() function __get_ids()
{ {
local count local count
@ -290,17 +290,17 @@
seq -f "@%g" 1 "''${count}" seq -f "@%g" 1 "''${count}"
fi fi
} }
function __get_tags() function __get_tags()
{ {
timew tags | tail -n +4 -- | sed -e "s|[[:space:]]*-''$||" timew tags | tail -n +4 -- | sed -e "s|[[:space:]]*-''$||"
} }
function __get_extensions() function __get_extensions()
{ {
timew extensions | awk '{if(NR>6)print ''$1}' timew extensions | awk '{if(NR>6)print ''$1}'
} }
function __has_entered_id() function __has_entered_id()
{ {
for word in "''${COMP_WORDS[@]}" ; do for word in "''${COMP_WORDS[@]}" ; do
@ -308,14 +308,14 @@
return 0 return 0
fi fi
done done
return 1 return 1
} }
function __has_entered_subcommand() function __has_entered_subcommand()
{ {
local subcommands=''$( __get_subcommands "''${1}" ) local subcommands=''$( __get_subcommands "''${1}" )
for word in "''${COMP_WORDS[@]}" ; do for word in "''${COMP_WORDS[@]}" ; do
for cmd in ''${subcommands} ; do for cmd in ''${subcommands} ; do
if [[ "''${word}" == "''${cmd}" ]] ; then if [[ "''${word}" == "''${cmd}" ]] ; then
@ -323,14 +323,14 @@
fi fi
done done
done done
return 1 return 1
} }
function __has_entered_help_item() function __has_entered_help_item()
{ {
local items=''$( __get_help_items ) local items=''$( __get_help_items )
for word in "''${COMP_WORDS[@]:2}" ; do for word in "''${COMP_WORDS[@]:2}" ; do
for item in ''${items} ; do for item in ''${items} ; do
if [[ "''${word}" == "''${item}" ]] ; then if [[ "''${word}" == "''${item}" ]] ; then
@ -338,10 +338,10 @@
fi fi
done done
done done
return 1 return 1
} }
function __is_entering_id() function __is_entering_id()
{ {
if [[ "''${COMP_WORDS[COMP_CWORD]}" =~ @[0-9]* ]] ; then if [[ "''${COMP_WORDS[COMP_CWORD]}" =~ @[0-9]* ]] ; then
@ -350,36 +350,36 @@
return 1 return 1
fi fi
} }
function __complete_tag() function __complete_tag()
{ {
COMPREPLY=() COMPREPLY=()
cur="''${COMP_WORDS[COMP_CWORD]}" cur="''${COMP_WORDS[COMP_CWORD]}"
local line wordlist local line wordlist
declare -a wordlist declare -a wordlist
while IFS=''$'\n' read -r line ; do while IFS=''$'\n' read -r line ; do
wordlist+=( "''${line}" ) wordlist+=( "''${line}" )
done <<< "''$( __get_tags )" done <<< "''$( __get_tags )"
declare -a completions declare -a completions
while read -r line ; do while read -r line ; do
completions+=( "''${line}" ) completions+=( "''${line}" )
done < <( compgen -W "''$(printf '%q ' "''${wordlist[@]}")" -- "''${cur}" 2>/dev/null ) done < <( compgen -W "''$(printf '%q ' "''${wordlist[@]}")" -- "''${cur}" 2>/dev/null )
for completion in "''${completions[@]}" ; do for completion in "''${completions[@]}" ; do
COMPREPLY+=( "''$(printf "%q" "''${completion}")" ) COMPREPLY+=( "''$(printf "%q" "''${completion}")" )
done done
} }
function _timew() function _timew()
{ {
local cur first wordlist local cur first wordlist
COMPREPLY=() COMPREPLY=()
cur="''${COMP_WORDS[COMP_CWORD]}" cur="''${COMP_WORDS[COMP_CWORD]}"
first="''${COMP_WORDS[1]}" first="''${COMP_WORDS[1]}"
case "''${first}" in case "''${first}" in
cancel|config|diagnostics|day|extensions|get|month|show|undo|week) cancel|config|diagnostics|day|extensions|get|month|show|undo|week)
wordlist="" wordlist=""
@ -425,10 +425,10 @@
wordlist=''$( __get_commands ) wordlist=''$( __get_commands )
;; ;;
esac esac
COMPREPLY=(''$( compgen -W "''${wordlist}" -- "''${cur}" )) COMPREPLY=(''$( compgen -W "''${wordlist}" -- "''${cur}" ))
} }
complete -F _timew timew complete -F _timew timew
complete -F _timew tt complete -F _timew tt
''; '';

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; [
{ {
@ -22,12 +21,12 @@
fg = { attribute = "fg", highlight = "TabLine" }, fg = { attribute = "fg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" },
}, },
buffer_visible = { buffer_visible = {
fg = { attribute = "fg", highlight = "TabLine" }, fg = { attribute = "fg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" },
}, },
close_button = { close_button = {
fg = { attribute = "fg", highlight = "TabLine" }, fg = { attribute = "fg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" },
@ -36,7 +35,7 @@
fg = { attribute = "fg", highlight = "TabLine" }, fg = { attribute = "fg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" },
}, },
tab_selected = { tab_selected = {
fg = { attribute = "fg", highlight = "Normal" }, fg = { attribute = "fg", highlight = "Normal" },
bg = { attribute = "bg", highlight = "Normal" }, bg = { attribute = "bg", highlight = "Normal" },
@ -49,7 +48,7 @@
fg = { attribute = "fg", highlight = "TabLineSel" }, fg = { attribute = "fg", highlight = "TabLineSel" },
bg = { attribute = "bg", highlight = "Normal" }, bg = { attribute = "bg", highlight = "Normal" },
}, },
duplicate_selected = { duplicate_selected = {
fg = { attribute = "fg", highlight = "TabLineSel" }, fg = { attribute = "fg", highlight = "TabLineSel" },
bg = { attribute = "bg", highlight = "TabLineSel" }, bg = { attribute = "bg", highlight = "TabLineSel" },
@ -65,7 +64,7 @@
bg = { attribute = "bg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" },
italic = true, italic = true,
}, },
modified = { modified = {
fg = { attribute = "fg", highlight = "TabLine" }, fg = { attribute = "fg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" },
@ -78,7 +77,7 @@
fg = { attribute = "fg", highlight = "TabLine" }, fg = { attribute = "fg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" },
}, },
separator = { separator = {
fg = { attribute = "bg", highlight = "TabLine" }, fg = { attribute = "bg", highlight = "TabLine" },
bg = { attribute = "bg", highlight = "TabLine" }, bg = { attribute = "bg", highlight = "TabLine" },
@ -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";
@ -27,7 +28,7 @@
"<enter>" = "open"; "<enter>" = "open";
"<delete>" = "delete"; "<delete>" = "delete";
"dd" = "delete"; "dd" = "delete";
"g~" = "cd"; "g~" = "cd";
gh = "cd"; gh = "cd";
"g/" = "/"; "g/" = "/";
@ -45,28 +46,25 @@
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
x=$4 x=$4
y=$5 y=$5
if [[ "$( ${pkgs.file}/bin/file -Lb --mime-type "$file")" =~ ^image ]]; then if [[ "$( ${pkgs.file}/bin/file -Lb --mime-type "$file")" =~ ^image ]]; then
${pkgs.kitty}/bin/kitty +kitten icat --silent --stdin no --transfer-mode file --place "''${w}x''${h}@''${x}x''${y}" "$file" < /dev/null > /dev/tty ${pkgs.kitty}/bin/kitty +kitten icat --silent --stdin no --transfer-mode file --place "''${w}x''${h}@''${x}x''${y}" "$file" < /dev/null > /dev/tty
exit 1 exit 1
fi fi
${pkgs.pistol}/bin/pistol "$file" ${pkgs.pistol}/bin/pistol "$file"
''; '';
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 = {
@ -30,12 +33,12 @@
home.file.".signature".text = '' home.file.".signature".text = ''
-- --
Don Harper Don Harper
''; '';
systemd.user = { systemd.user = {
timers.mbsync = { timers.mbsync = {
Timer = { Timer = {
OnUnitActiveSec = "5m"; OnUnitActiveSec = "5m";
AccuracySec = "1m"; AccuracySec = "1m";
@ -46,26 +49,26 @@
}; };
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"];
}; };
}; };
timers."mbsync-all" = { timers."mbsync-all" = {
Timer = { Timer = {
@ -75,6 +78,6 @@
Install = { Install = {
WantedBy = ["timers.target"]; WantedBy = ["timers.target"];
}; };
}; };
}; };
} }

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
@ -29,7 +31,7 @@
"set listchars="eol:,tab:·,trail:,nbsp:" "set listchars="eol:,tab:·,trail:,nbsp:"
set background=dark set background=dark
set laststatus=2 set laststatus=2
set t_Co=256 set t_Co=256
let g:ale_linters = { 'nix': ['statix']} let g:ale_linters = { 'nix': ['statix']}
let g:vimwiki_list = [{'path': '~/org/', 'syntax': 'markdown', 'ext': '.md'}] let g:vimwiki_list = [{'path': '~/org/', 'syntax': 'markdown', 'ext': '.md'}]
let g:vimwiki_global_ext = 0 let g:vimwiki_global_ext = 0
@ -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,20 +1,22 @@
{ 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
bind-key K prev-feed bind-key K prev-feed
bind-key N toggle-article-read bind-key N toggle-article-read
bind-key SPACE open bind-key SPACE open
bind-key a mark-feed-read bind-key a mark-feed-read
bind-key d toggle-article-read bind-key d toggle-article-read
bind-key i quit bind-key i quit
bind-key j next bind-key j next

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
@ -17,7 +17,7 @@
" VIFM COLORS " VIFM COLORS
" dracula " dracula
" based on: https://github.com/istib/dotfiles/blob/master/vifm/vifm-colors " based on: https://github.com/istib/dotfiles/blob/master/vifm/vifm-colors
" Default = -1 = None, can be used for transparency or default color " Default = -1 = None, can be used for transparency or default color
" Black = 0 " Black = 0
" Red = 1 " Red = 1
@ -27,31 +27,31 @@
" Magenta = 5 " Magenta = 5
" Cyan = 6 " Cyan = 6
" White = 7 " White = 7
" STYLES " STYLES
" bold " bold
" underline " underline
" reverse or inverse " reverse or inverse
" standout " standout
" none " none
highlight clear highlight clear
highlight Win cterm=none ctermfg=default ctermbg=none highlight Win cterm=none ctermfg=default ctermbg=none
highlight TopLine cterm=none ctermfg=blue ctermbg=none highlight TopLine cterm=none ctermfg=blue ctermbg=none
highlight TopLineSel cterm=none ctermfg=magenta ctermbg=none highlight TopLineSel cterm=none ctermfg=magenta ctermbg=none
highlight StatusLine cterm=none ctermfg=blue ctermbg=none highlight StatusLine cterm=none ctermfg=blue ctermbg=none
highlight Border cterm=none ctermfg=blue ctermbg=none highlight Border cterm=none ctermfg=blue ctermbg=none
highlight Selected cterm=bold ctermfg=magenta ctermbg=default highlight Selected cterm=bold ctermfg=magenta ctermbg=default
highlight CurrLine cterm=bold ctermfg=236 ctermbg=blue highlight CurrLine cterm=bold ctermfg=236 ctermbg=blue
highlight WildMenu cterm=none,reverse ctermfg=blue ctermbg=236 highlight WildMenu cterm=none,reverse ctermfg=blue ctermbg=236
highlight CmdLine cterm=none ctermfg=255 ctermbg=236 highlight CmdLine cterm=none ctermfg=255 ctermbg=236
highlight ErrorMsg cterm=none ctermfg=red ctermbg=black highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
highlight Directory cterm=none ctermfg=blue ctermbg=default highlight Directory cterm=none ctermfg=blue ctermbg=default
highlight Link cterm=none ctermfg=cyan ctermbg=default highlight Link cterm=none ctermfg=cyan ctermbg=default
highlight BrokenLink cterm=none ctermfg=red ctermbg=default highlight BrokenLink cterm=none ctermfg=red ctermbg=default

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
@ -8,7 +8,7 @@
Loop=false Loop=false
OneInstance=true OneInstance=true
State=0 State=0
[Job1] [Job1]
Command[$e]=$HOME/bin/timeup Command[$e]=$HOME/bin/timeup
Consecutive=false Consecutive=false
@ -16,7 +16,7 @@
Loop=false Loop=false
OneInstance=true OneInstance=true
State=0 State=0
[Job2] [Job2]
Command[$e]=$HOME/bin/timeup Command[$e]=$HOME/bin/timeup
Consecutive=false Consecutive=false
@ -24,7 +24,7 @@
Loop=false Loop=false
OneInstance=true OneInstance=true
State=0 State=0
[Jobs] [Jobs]
Number=3 Number=3
''; '';

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,7 +1,13 @@
{ 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 = {
swaylock = { swaylock = {
enable = true; enable = true;
@ -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,9 +1,8 @@
{ pkgs, ... }: {pkgs, ...}: {
{ environment.systemPackages = with pkgs; [sddm-chili-theme];
environment.systemPackages = with pkgs; [ sddm-chili-theme ];
services.displayManager = { services.displayManager = {
sddm = { sddm = {
enable = true; enable = true;
theme = "chili"; theme = "chili";
wayland = { wayland = {

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