A complete reformatting to match nixpkgs-fmt

This commit is contained in:
Greg Hellings
2024-10-03 11:26:39 -05:00
parent e2f0856102
commit 78c802d32c
114 changed files with 5246 additions and 5089 deletions
+21 -21
View File
@@ -1,26 +1,26 @@
{
inputs,
overlays,
...
{ inputs
, overlays
, ...
}:
rec {
greghellings =
let
system = "x86_64-linux";
pkgs = (import inputs.nixunstable { inherit system overlays; });
in inputs.hmunstable.lib.homeManagerConfiguration {
inherit pkgs;
modules = [ ./home.nix ];
extraSpecialArgs = {
inherit inputs;
nixvim = inputs.nixvimunstable;
gui = false;
gnome = false;
host = "ivr";
username = "gregory.hellings";
};
};
greghellings =
let
system = "x86_64-linux";
pkgs = (import inputs.nixunstable { inherit system overlays; });
in
inputs.hmunstable.lib.homeManagerConfiguration {
inherit pkgs;
modules = [ ./home.nix ];
extraSpecialArgs = {
inherit inputs;
nixvim = inputs.nixvimunstable;
gui = false;
gnome = false;
host = "ivr";
username = "gregory.hellings";
};
};
"gregory.hellings" = greghellings;
"gregory.hellings" = greghellings;
}
+44 -42
View File
@@ -1,48 +1,50 @@
{ pkgs, lib,
host ? "most",
nixvim,
...}:
{ pkgs
, lib
, host ? "most"
, nixvim
, ...
}:
{
nixpkgs.config.allowUnfreePredicate = (_: true);
imports = [
nixvim.homeManagerModules.default
./modules
] ++ lib.optionals (builtins.pathExists ./hosts/${host}) [ ./hosts/${host} ];
nixpkgs.config.allowUnfreePredicate = (_: true);
imports = [
nixvim.homeManagerModules.default
./modules
] ++ lib.optionals (builtins.pathExists ./hosts/${host}) [ ./hosts/${host} ];
programs.tmux = {
enable = true;
keyMode = "vi";
terminal = "xterm-256color";
customPaneNavigationAndResize = true;
extraConfig = (lib.strings.concatStringsSep "\n" [
"bind P paste-buffer"
]);
};
programs.tmux = {
enable = true;
keyMode = "vi";
terminal = "xterm-256color";
customPaneNavigationAndResize = true;
extraConfig = (lib.strings.concatStringsSep "\n" [
"bind P paste-buffer"
]);
};
home.stateVersion = "23.05";
home.packages = with pkgs; [
bitwarden-cli
copier
diffutils
findutils
gh
git
gnupatch
hms
htop
inetutils
jq
nano
nix-prefetch
nmap
openssl
setup-ssh
tmux
tree
unzip
wget
zip
];
home.stateVersion = "23.05";
home.packages = with pkgs; [
bitwarden-cli
copier
diffutils
findutils
gh
git
gnupatch
hms
htop
inetutils
jq
nano
nix-prefetch
nmap
openssl
setup-ssh
tmux
tree
unzip
wget
zip
];
}
+11 -11
View File
@@ -1,15 +1,15 @@
{ pkgs, config, ... }:
{
greg = {
vscodium = true;
development = true;
gnome = true;
gui = true;
};
home.packages = with pkgs; [
cargo
freeciv
#freeciv_qt
];
greg = {
vscodium = true;
development = true;
gnome = true;
gui = true;
};
home.packages = with pkgs; [
cargo
freeciv
#freeciv_qt
];
}
+1 -3
View File
@@ -1,5 +1,3 @@
{ ... }:
{
}
{ }
+62 -61
View File
@@ -1,65 +1,66 @@
{ pkgs, lib, inputs, ...}:
{ pkgs, lib, inputs, ... }:
let
nix23 = import inputs.nix23_05 {
inherit (pkgs.stdenv) system;
overlays = [ inputs.self.overlays.default ];
};
py = nix23.python311.withPackages ( p: with p; [
django
djangorestframework
django-rapyd-modernauth
environs
mysqlclient
pyyaml
ruamel-yaml
tox
]);
x = pkgs.xonsh.override {
extraPackages = (ps: [
pkgs.nur.repos.xonsh-xontribs.xonsh-direnv
pkgs.nur.repos.xonsh-xontribs.xontrib-vox
ps.xonsh-apipenv
pkgs.pipenv-ivr
]);
};
in {
greg = {
development = true;
gui = true;
pypackage = py;
vscodium = true;
};
nix23 = import inputs.nix23_05 {
inherit (pkgs.stdenv) system;
overlays = [ inputs.self.overlays.default ];
};
py = nix23.python311.withPackages (p: with p; [
django
djangorestframework
django-rapyd-modernauth
environs
mysqlclient
pyyaml
ruamel-yaml
tox
]);
x = pkgs.xonsh.override {
extraPackages = (ps: [
pkgs.nur.repos.xonsh-xontribs.xonsh-direnv
pkgs.nur.repos.xonsh-xontribs.xontrib-vox
ps.xonsh-apipenv
pkgs.pipenv-ivr
]);
};
in
{
greg = {
development = true;
gui = true;
pypackage = py;
vscodium = true;
};
nixpkgs.config = {
allowUnfree = true;
permittedInsecurePackages = [
"jitsi-meet-1.0.8043"
];
};
nixpkgs.config = {
allowUnfree = true;
permittedInsecurePackages = [
"jitsi-meet-1.0.8043"
];
};
home = {
packages = with pkgs; [
aacs
ansible
bitwarden-cli
direnv
home-manager
mysql-workbench
pipenv-ivr
poetry
robo3t
x
];
file.".pip/pip.conf".text = (lib.strings.concatStringsSep "\n" [
"[global]"
"retries = 1"
"index-url = https://pypi.python.org/simple"
"extra-index-url ="
" https://pypi.ivrtechnology.com/simple/"
" https://pypidev.ivrtechnology.com/simple/"
]);
username = "gregory.hellings";
homeDirectory = lib.mkForce "/home/gregory.hellings";
};
programs.tmux.shell = (lib.getExe x);
home = {
packages = with pkgs; [
aacs
ansible
bitwarden-cli
direnv
home-manager
mysql-workbench
pipenv-ivr
poetry
robo3t
x
];
file.".pip/pip.conf".text = (lib.strings.concatStringsSep "\n" [
"[global]"
"retries = 1"
"index-url = https://pypi.python.org/simple"
"extra-index-url ="
" https://pypi.ivrtechnology.com/simple/"
" https://pypidev.ivrtechnology.com/simple/"
]);
username = "gregory.hellings";
homeDirectory = lib.mkForce "/home/gregory.hellings";
};
programs.tmux.shell = (lib.getExe x);
}
+12 -12
View File
@@ -1,17 +1,17 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
(mumble.override { pulseSupport = true; })
#logseq
];
greg = {
development = true;
gui = true;
sway = false;
gnome = true;
vscodium = true;
};
home.packages = with pkgs; [
(mumble.override { pulseSupport = true; })
#logseq
];
greg = {
development = true;
gui = true;
sway = false;
gnome = true;
vscodium = true;
};
programs.xonsh.sessionVariables.EFI_DIR = "${pkgs.OVMF.fd}/FV/";
programs.xonsh.sessionVariables.EFI_DIR = "${pkgs.OVMF.fd}/FV/";
}
+4 -4
View File
@@ -1,9 +1,9 @@
{ pkgs, ... }:
{
greg.vscodium.enable = true;
greg.vscodium.enable = true;
home.packages = with pkgs; [
brew
];
home.packages = with pkgs; [
brew
];
}
+21 -21
View File
@@ -1,28 +1,28 @@
{ ... }:
{
home.file.".ansible.cfg".text = ''
[defaults]
forks=10
host_key_checking=False
# Also available: profile_roles
callback_enabled=timer,profile_tasks
stdout_callback=yaml
nocows=1
cow_selection=tux
collections_path=~/src
home.file.".ansible.cfg".text = ''
[defaults]
forks=10
host_key_checking=False
# Also available: profile_roles
callback_enabled=timer,profile_tasks
stdout_callback=yaml
nocows=1
cow_selection=tux
collections_path=~/src
[ssh_connection]
pipelining=True
ssh_args = -o ControlMaster=auto -o ControlPersist=600s -o IdentitiesOnly=yes -o GSSAPIAuthentication=no -o StrictHostKeyChecking=no
control_path=%(directory)s/%%h-%%r
control_path_dir=/tmp
[ssh_connection]
pipelining=True
ssh_args = -o ControlMaster=auto -o ControlPersist=600s -o IdentitiesOnly=yes -o GSSAPIAuthentication=no -o StrictHostKeyChecking=no
control_path=%(directory)s/%%h-%%r
control_path_dir=/tmp
[callback_profile_tasks]
sort_order=descending
[callback_profile_tasks]
sort_order=descending
[galaxy]
role_skeleton_ignore = ^.git$,^.*/.git_keep$,\..*.swp
role_skeleton = ~/src/ansible_collections/meta_ansible_templates/role
'';
[galaxy]
role_skeleton_ignore = ^.git$,^.*/.git_keep$,\..*.swp
role_skeleton = ~/src/ansible_collections/meta_ansible_templates/role
'';
}
+83 -83
View File
@@ -1,93 +1,93 @@
{ pkgs, ... }:
{
programs.bash = {
enable = true;
shellAliases = {
acp = "rsync --progress -ah";
agbuild = "ansible-galaxy collection build";
apub = "ansible-galaxy collection publish --api-key \${GALAXY_API_KEY}";
calc = "bc";
d = "deactivate";
devroles = "cd ~/src/ansible_collections/devroles";
gohome = "ssh greg@dns.greg-hellings.gmail.com.beta.tailscale.net -D localhost:10080";
ll = "ls -l";
molcol = "molecule -c ../../tests/molecule.yml";
packaging = "cd ~/src/packaging";
vdown = "vagrant destroy";
vhalt = "vagrant halt";
vos = "vagrant up --provision --provider openstack";
vprov = "vagrant provision";
vssh = "vagrant ssh";
vup = "vagrant up --provision --provider libvirt";
yaml2js = "python -c 'import sys, yaml, json; json.dump(yaml.load(sys.stdin), sys.stdout, indent=4)";
};
sessionVariables = {
ANSIBLE_COLLECTIONS_PATH="\${HOME}/src/";
CLICOLOR = "1";
EDITOR = "${pkgs.vim}/bin/vim";
GIT_SSL_NO_VERIFY = "True";
LSCOLORS = "ExGxBxDxCxEgEdxbxgxcxd";
MAVEN_OPTS = " -Dmaven.wagon.http.ssl.insecure=true ";
OS_CLOUD = "default";
SWORD_PATH = "\${HOME}/.sword";
TIMEFORMAT = "%3Uu %3Ss %3lR %P%%";
};
profileExtra = ''
if [ -e /etc/profile ]; then
. /etc/profile
fi
'';
bashrcExtra = ''
function swordtag {
if [ x"$1" == "x" ]; then
echo "Please provide tag version"
return
fi
svn cp http://crosswire.org/svn/sword/branches/sword-1-8-x/ http://crosswire.org/svn/sword/tags/sword-$1/
}
programs.bash = {
enable = true;
shellAliases = {
acp = "rsync --progress -ah";
agbuild = "ansible-galaxy collection build";
apub = "ansible-galaxy collection publish --api-key \${GALAXY_API_KEY}";
calc = "bc";
d = "deactivate";
devroles = "cd ~/src/ansible_collections/devroles";
gohome = "ssh greg@dns.greg-hellings.gmail.com.beta.tailscale.net -D localhost:10080";
ll = "ls -l";
molcol = "molecule -c ../../tests/molecule.yml";
packaging = "cd ~/src/packaging";
vdown = "vagrant destroy";
vhalt = "vagrant halt";
vos = "vagrant up --provision --provider openstack";
vprov = "vagrant provision";
vssh = "vagrant ssh";
vup = "vagrant up --provision --provider libvirt";
yaml2js = "python -c 'import sys, yaml, json; json.dump(yaml.load(sys.stdin), sys.stdout, indent=4)";
};
sessionVariables = {
ANSIBLE_COLLECTIONS_PATH = "\${HOME}/src/";
CLICOLOR = "1";
EDITOR = "${pkgs.vim}/bin/vim";
GIT_SSL_NO_VERIFY = "True";
LSCOLORS = "ExGxBxDxCxEgEdxbxgxcxd";
MAVEN_OPTS = " -Dmaven.wagon.http.ssl.insecure=true ";
OS_CLOUD = "default";
SWORD_PATH = "\${HOME}/.sword";
TIMEFORMAT = "%3Uu %3Ss %3lR %P%%";
};
profileExtra = ''
if [ -e /etc/profile ]; then
. /etc/profile
fi
'';
bashrcExtra = ''
function swordtag {
if [ x"$1" == "x" ]; then
echo "Please provide tag version"
return
fi
svn cp http://crosswire.org/svn/sword/branches/sword-1-8-x/ http://crosswire.org/svn/sword/tags/sword-$1/
}
function newdock {
if [ x"$1" == "x" -o x"$2" == "x" ]; then
echo "expected arguments [name] [source]"
return
fi
podman run -P --privileged=true -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v "$(pwd):/dmnt" -t -i --name="$1" "$2" /bin/bash
}
function newdock {
if [ x"$1" == "x" -o x"$2" == "x" ]; then
echo "expected arguments [name] [source]"
return
fi
podman run -P --privileged=true -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v "$(pwd):/dmnt" -t -i --name="$1" "$2" /bin/bash
}
function rundock {
podman start -a -i "$1"
}
function rundock {
podman start -a -i "$1"
}
function ac {
source ~/venv/''${1}/bin/activate
}
function ac {
source ~/venv/''${1}/bin/activate
}
function py2env {
/usr/bin/virtualenv -p /usr/bin/python2 "''${HOME}/venv/''${1}"
"''${HOME}/venv/''${1}/bin/pip" install -U pip
}
function py2env {
/usr/bin/virtualenv -p /usr/bin/python2 "''${HOME}/venv/''${1}"
"''${HOME}/venv/''${1}/bin/pip" install -U pip
}
function py3env {
VENV_NAME="''${1}"
#PYVERSION="$(python3 -c "import sys;print(sys.version[:sys.version.find('.',2)])")"
#SITE_PACKAGES_PATH="/usr/lib64/python''${PYVERSION}/site-packages/"
#VENV_SITE_PACKAGES="''${HOME}/venv/''${VENV_NAME}/lib64/python''${PYVERSION}/site-packages/"
# Create the virtualenv and update pip to latest
/usr/bin/python3 -m venv --clear "''${HOME}/venv/''${VENV_NAME}" --system-site-packages
"''${HOME}/venv/''${1}/bin/python3" -m pip install -U pip
# Link SELinux into the environment if necessary
#if [ -d "''${SITE_PACKAGES_PATH}" ]; then
# ln -s "''${SITE_PACKAGES_PATH}/selinux" "''${VENV_SITE_PACKAGES}"
# ln -s ''${SITE_PACKAGES_PATH}/_selinux*.so "''${VENV_SITE_PACKAGES}"
#else
# echo "ERROR: LibSELinux not found for Python ''${PYVERSION}. Install system package to enable."
#fi
}
function py3env {
VENV_NAME="''${1}"
#PYVERSION="$(python3 -c "import sys;print(sys.version[:sys.version.find('.',2)])")"
#SITE_PACKAGES_PATH="/usr/lib64/python''${PYVERSION}/site-packages/"
#VENV_SITE_PACKAGES="''${HOME}/venv/''${VENV_NAME}/lib64/python''${PYVERSION}/site-packages/"
# Create the virtualenv and update pip to latest
/usr/bin/python3 -m venv --clear "''${HOME}/venv/''${VENV_NAME}" --system-site-packages
"''${HOME}/venv/''${1}/bin/python3" -m pip install -U pip
# Link SELinux into the environment if necessary
#if [ -d "''${SITE_PACKAGES_PATH}" ]; then
# ln -s "''${SITE_PACKAGES_PATH}/selinux" "''${VENV_SITE_PACKAGES}"
# ln -s ''${SITE_PACKAGES_PATH}/_selinux*.so "''${VENV_SITE_PACKAGES}"
#else
# echo "ERROR: LibSELinux not found for Python ''${PYVERSION}. Install system package to enable."
#fi
}
function unknown_host {
sed -i -e ''${1}d ~/.ssh/known_hosts
}
'';
};
function unknown_host {
sed -i -e ''${1}d ~/.ssh/known_hosts
}
'';
};
}
+9 -9
View File
@@ -1,13 +1,13 @@
{ ... }:
{
imports = [
./ansible.nix
./bash.nix
./direnv.nix
./git.nix
./ssh.nix
./vim.nix
./xonsh.nix
];
imports = [
./ansible.nix
./bash.nix
./direnv.nix
./git.nix
./ssh.nix
./vim.nix
./xonsh.nix
];
}
+4 -4
View File
@@ -1,8 +1,8 @@
{ pkgs, ... }:
{
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
}
+29 -27
View File
@@ -1,31 +1,33 @@
{ ... }:
{
programs.git = {
enable = true;
userName = "Greg Hellings";
userEmail = "greg.hellings@gmail.com";
aliases = {
st = "status";
ci = "commit";
co = "checkout";
ups = "push -u origin HEAD";
amend = "commit --amend";
};
ignores = [
".*.swp" ".*.swo" ".*.swn" # vim
".idea" # IntelliJ
".DS_Store" # Macs
"Thumbs.db" # Windows
".tox" # Tox temp directory
".eclipse" # These next two are created by VSCodium plugins
".bazelproject"
];
extraConfig = {
init.defaultBranch = "main";
push.default = "upstream";
pull.rebase = "false";
tag.sort = "version:refname";
};
};
programs.git = {
enable = true;
userName = "Greg Hellings";
userEmail = "greg.hellings@gmail.com";
aliases = {
st = "status";
ci = "commit";
co = "checkout";
ups = "push -u origin HEAD";
amend = "commit --amend";
};
ignores = [
".*.swp"
".*.swo"
".*.swn" # vim
".idea" # IntelliJ
".DS_Store" # Macs
"Thumbs.db" # Windows
".tox" # Tox temp directory
".eclipse" # These next two are created by VSCodium plugins
".bazelproject"
];
extraConfig = {
init.defaultBranch = "main";
push.default = "upstream";
pull.rebase = "false";
tag.sort = "version:refname";
};
};
}
+51 -50
View File
@@ -1,64 +1,65 @@
{ lib, ... }:
{
# Workaround to set the config value to user read-only
# This allows things like SSH in distrobox to read the config file just fine
home.file.".ssh/config" = {
target = ".ssh/config_source";
onChange = ''cat ~/.ssh/config_source > ~/.ssh/config && chmod 600 ~/.ssh/config'';
};
programs.ssh = {
enable = true;
serverAliveInterval = 60;
# Workaround to set the config value to user read-only
# This allows things like SSH in distrobox to read the config file just fine
home.file.".ssh/config" = {
target = ".ssh/config_source";
onChange = ''cat ~/.ssh/config_source > ~/.ssh/config && chmod 600 ~/.ssh/config'';
};
programs.ssh = {
enable = true;
serverAliveInterval = 60;
includes = ["config.local"];
includes = [ "config.local" ];
matchBlocks =
let
nas = { user = "admin"; };
owned = { user = "greg"; };
in {
inherit nas;
matchBlocks =
let
nas = { user = "admin"; };
owned = { user = "greg"; };
in
{
inherit nas;
"*" = {
dynamicForwards = [ {
port = 10240;
} ];
};
"*" = {
dynamicForwards = [{
port = 10240;
}];
};
"10.42.1.4" = lib.hm.dag.entryBefore ["10.42.*"] nas;
"nas.thehellings.lan" = nas;
"nas.greg-hellings.gmail.com.beta.tailscale.net" = nas;
chronicles = nas;
"chronicles.thehellings.lan" = lib.hm.dag.entryBefore [ "*.thehellings.lan"] nas;
"10.42.1.4" = lib.hm.dag.entryBefore [ "10.42.*" ] nas;
"nas.thehellings.lan" = nas;
"nas.greg-hellings.gmail.com.beta.tailscale.net" = nas;
chronicles = nas;
"chronicles.thehellings.lan" = lib.hm.dag.entryBefore [ "*.thehellings.lan" ] nas;
gh = { user = "git"; hostname = "github.com"; };
"src" = {
user = "gitlab";
hostname = "git.thehellings.lan";
};
gh = { user = "git"; hostname = "github.com"; };
"src" = {
user = "gitlab";
hostname = "git.thehellings.lan";
};
"*.thehellings.lan" = owned;
"10.42.*" = owned;
"*.thehellings.lan" = owned;
"10.42.*" = owned;
"host.crosswire.org crosswire" = {
hostname = "host.crosswire.org";
user = "ghellings";
};
"host.crosswire.org crosswire" = {
hostname = "host.crosswire.org";
user = "ghellings";
};
fedpeople = {
hostname = "fedorapeople.org";
user = "greghellings";
};
fedpeople = {
hostname = "fedorapeople.org";
user = "greghellings";
};
"src.fedoraproject.org pkgs.fedoraproject.org" = {
user = "greghellings";
};
"src.fedoraproject.org pkgs.fedoraproject.org" = {
user = "greghellings";
};
"127.*".extraOptions = {
PubkeyAcceptedAlgorithms = "+ssh-rsa";
HostkeyAlgorithms = "+ssh-rsa";
};
};
};
"127.*".extraOptions = {
PubkeyAcceptedAlgorithms = "+ssh-rsa";
HostkeyAlgorithms = "+ssh-rsa";
};
};
};
}
+138 -135
View File
@@ -1,142 +1,145 @@
{ lib, pkgs, config, ... }:
let
vim-xonsh = pkgs.vimUtils.buildVimPlugin {
name = "vim-xonsh";
src = pkgs.fetchFromGitHub {
owner = "meatballs";
repo = "vim-xonsh";
rev = "929f35e";
hash = "sha256-ugHLu2Z9bTtQsIp4FQPKxgjVe9oZNjfQYrP+aHu+/uU=";
};
};
vim-xonsh = pkgs.vimUtils.buildVimPlugin {
name = "vim-xonsh";
src = pkgs.fetchFromGitHub {
owner = "meatballs";
repo = "vim-xonsh";
rev = "929f35e";
hash = "sha256-ugHLu2Z9bTtQsIp4FQPKxgjVe9oZNjfQYrP+aHu+/uU=";
};
};
in
{
fonts.fontconfig.enable = true;
home.packages = [ (pkgs.nerdfonts.override { fonts = [ "Hack" ]; }) ];
programs.nixvim = {
enable = true;
colorschemes.gruvbox.enable = true;
globals = {
indent_guides_enable_on_vim_startup = 1;
nix_recommended_style = 0;
};
opts = {
background = "dark";
backup = false;
copyindent = true;
cursorline = true;
expandtab = false;
hidden = true;
hlsearch = true;
ignorecase = true;
lazyredraw = true;
list = true;
listchars = "tab: ,extends:,precedes:,trail:·,eol:¬";
mouse = "a";
number = true;
preserveindent = true;
relativenumber = true;
shiftwidth = 4;
showcmd = true;
showmatch = true;
signcolumn = "yes";
smartcase = true;
softtabstop = 4;
tabstop = 4;
# Setting for CtrlP
wildignore = "*.swp,*.pyc,*.class,.tox";
wrap = false;
writebackup = false;
};
keymaps = let
winMove = key: { mode = "n"; key = "<C-${key}>"; action = "<C-w>${key}<C-w><CR>"; };
in [ {
mode = "n";
key = "<C-e>";
action = "<Esc>:BufExplorer<CR>";
} {
mode = "n";
key = "<C-t>";
#action = "<Esc>:NERDTreeToggle<CR>";
action = "<Esc>:Neotree toggle<CR>";
} {
mode = "n";
key = "<C-g>";
action = "<Esc>:Neotree float git_status toggle<CR>";
}
(winMove "h")
(winMove "j")
(winMove "k")
(winMove "l")
];
plugins = {
airline.enable = true;
cmp = {
enable = true;
autoEnableSources = true;
settings.sources = [
{ name = "nvim_lsp"; }
{ name = "buffer"; group_index = 2; }
{ name = "path"; gruop_index = 3; }
];
};
direnv.enable = true;
gitgutter.enable = true;
fugitive.enable = true;
fzf-lua = {
enable = true;
keymaps = {
"<C-o>" = {
action = "files";
settings = {
previewers.cat.cmd = "${pkgs.coreutils}/bin/cat";
winopts.height = 0.5;
};
};
"<C-p>" = {
action = "git_files";
settings = {
previewers.cat.cmd = "${pkgs.coreutils}/bin/cat";
winopts.height = 0.5;
};
};
};
profile = "fzf-vim";
};
lsp = {
enable = true;
servers = {
ansiblels.enable = true;
cmake.enable = true;
gopls.enable = true;
html.enable = true;
nixd.enable = true;
pylsp.enable = true;
pyright.enable = true;
rust-analyzer = {
# No need to have these installed on every one of my systems
installCargo = false;
installRustc = false;
enable = true;
};
terraformls.enable = true;
};
};
neo-tree.enable = true;
notify.enable = true;
web-devicons.enable = true;
} // (lib.mkIf (lib.versionAtLeast config.system.nixos.release "24.11") {});
extraConfigLua = builtins.replaceStrings [ "@git@" ] [ "${pkgs.git}/bin/git" ] (builtins.readFile ./vim/extra.lua);
extraConfigVim = builtins.readFile ./vim/extra.vimrc;
extraPlugins = with pkgs.vimPlugins; [
bufexplorer
fonts.fontconfig.enable = true;
home.packages = [ (pkgs.nerdfonts.override { fonts = [ "Hack" ]; }) ];
programs.nixvim = {
enable = true;
colorschemes.gruvbox.enable = true;
globals = {
indent_guides_enable_on_vim_startup = 1;
nix_recommended_style = 0;
};
opts = {
background = "dark";
backup = false;
copyindent = true;
cursorline = true;
expandtab = false;
hidden = true;
hlsearch = true;
ignorecase = true;
lazyredraw = true;
list = true;
listchars = "tab: ,extends:,precedes:,trail:·,eol:¬";
mouse = "a";
number = true;
preserveindent = true;
relativenumber = true;
shiftwidth = 4;
showcmd = true;
showmatch = true;
signcolumn = "yes";
smartcase = true;
softtabstop = 4;
tabstop = 4;
# Setting for CtrlP
wildignore = "*.swp,*.pyc,*.class,.tox";
wrap = false;
writebackup = false;
};
keymaps =
let
winMove = key: { mode = "n"; key = "<C-${key}>"; action = "<C-w>${key}<C-w><CR>"; };
in
[{
mode = "n";
key = "<C-e>";
action = "<Esc>:BufExplorer<CR>";
}
{
mode = "n";
key = "<C-t>";
#action = "<Esc>:NERDTreeToggle<CR>";
action = "<Esc>:Neotree toggle<CR>";
}
{
mode = "n";
key = "<C-g>";
action = "<Esc>:Neotree float git_status toggle<CR>";
}
(winMove "h")
(winMove "j")
(winMove "k")
(winMove "l")];
plugins = {
airline.enable = true;
cmp = {
enable = true;
autoEnableSources = true;
settings.sources = [
{ name = "nvim_lsp"; }
{ name = "buffer"; group_index = 2; }
{ name = "path"; gruop_index = 3; }
];
};
direnv.enable = true;
gitgutter.enable = true;
fugitive.enable = true;
fzf-lua = {
enable = true;
keymaps = {
"<C-o>" = {
action = "files";
settings = {
previewers.cat.cmd = "${pkgs.coreutils}/bin/cat";
winopts.height = 0.5;
};
};
"<C-p>" = {
action = "git_files";
settings = {
previewers.cat.cmd = "${pkgs.coreutils}/bin/cat";
winopts.height = 0.5;
};
};
};
profile = "fzf-vim";
};
lsp = {
enable = true;
servers = {
ansiblels.enable = true;
cmake.enable = true;
gopls.enable = true;
html.enable = true;
nixd.enable = true;
pylsp.enable = true;
pyright.enable = true;
rust-analyzer = {
# No need to have these installed on every one of my systems
installCargo = false;
installRustc = false;
enable = true;
};
terraformls.enable = true;
};
};
neo-tree.enable = true;
notify.enable = true;
web-devicons.enable = true;
} // (lib.mkIf (lib.versionAtLeast config.system.nixos.release "24.11") { });
extraConfigLua = builtins.replaceStrings [ "@git@" ] [ "${pkgs.git}/bin/git" ] (builtins.readFile ./vim/extra.lua);
extraConfigVim = builtins.readFile ./vim/extra.vimrc;
extraPlugins = with pkgs.vimPlugins; [
bufexplorer
context-vim
vim-indent-guides
vim-xonsh
];
viAlias = true;
vimAlias = true;
};
context-vim
vim-indent-guides
vim-xonsh
];
viAlias = true;
vimAlias = true;
};
}
+63 -63
View File
@@ -1,75 +1,75 @@
{ pkgs, config, lib, ... }:
{
programs.xonsh = {
enable = true;
programs.xonsh = {
enable = true;
sessionVariables = {
CLICOLOR = 1;
EDITOR = "nvim";
# vte_new_tab_cwd causes new Terminal tabs to open in the
# same CWD as the current tab
LESS_TERMCAP_mb = "\\033[01;31m"; # begin blinking
LESS_TERMCAP_md = "\\033[01;31m"; # begin bold
LESS_TERMCAP_me = "\\033[0m"; # end mode
LESS_TERMCAP_so = "\\033[01;44;36m"; # begin standout-mode (bottom of screen)
LESS_TERMCAP_se = "\\033[0m"; # end standout-mode
LESS_TERMCAP_us = "\\033[00;36m"; # begin underline
LESS_TERMCAP_ue = "\\033[0m"; # end underline
LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN = "1";
LSCOLORS = "ExGxBxDxCxEgEdxbxgxcxd";
MAVEN_OPTS = " -Dmaven.wagon.http.ssl.insecure=true";
OS_CLOUD = "default";
PROMPT = "{vte_new_tab_cwd}{env_name}{BOLD_GREEN}{user}@{hostname}{BOLD_BLUE} {short_cwd}{branch_color}{curr_branch: {}}{RESET} {BOLD_BLUE}{prompt_end}{RESET} ";
SWORD_PATH = "${config.home.homeDirectory}/.sword/";
TIMEFORMAT = "%3Uu %3Ss %3lR %P%%";
# Tells vox where to find virtualenvs
VIRTUALENV_HOME = "${config.home.homeDirectory}/venv/";
XONSH_COLOR_STYLE = "default";
sessionVariables = {
CLICOLOR = 1;
EDITOR = "nvim";
# vte_new_tab_cwd causes new Terminal tabs to open in the
# same CWD as the current tab
LESS_TERMCAP_mb = "\\033[01;31m"; # begin blinking
LESS_TERMCAP_md = "\\033[01;31m"; # begin bold
LESS_TERMCAP_me = "\\033[0m"; # end mode
LESS_TERMCAP_so = "\\033[01;44;36m"; # begin standout-mode (bottom of screen)
LESS_TERMCAP_se = "\\033[0m"; # end standout-mode
LESS_TERMCAP_us = "\\033[00;36m"; # begin underline
LESS_TERMCAP_ue = "\\033[0m"; # end underline
LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN = "1";
LSCOLORS = "ExGxBxDxCxEgEdxbxgxcxd";
MAVEN_OPTS = " -Dmaven.wagon.http.ssl.insecure=true";
OS_CLOUD = "default";
PROMPT = "{vte_new_tab_cwd}{env_name}{BOLD_GREEN}{user}@{hostname}{BOLD_BLUE} {short_cwd}{branch_color}{curr_branch: {}}{RESET} {BOLD_BLUE}{prompt_end}{RESET} ";
SWORD_PATH = "${config.home.homeDirectory}/.sword/";
TIMEFORMAT = "%3Uu %3Ss %3lR %P%%";
# Tells vox where to find virtualenvs
VIRTUALENV_HOME = "${config.home.homeDirectory}/venv/";
XONSH_COLOR_STYLE = "default";
GOPATH = "${config.home.homeDirectory}/src/go";
GOBIN = "${config.home.homeDirectory}/src/bin";
};
GOPATH = "${config.home.homeDirectory}/src/go";
GOBIN = "${config.home.homeDirectory}/src/bin";
};
aliases = {
# Python related ones
ac = "vox activate";
d = "vox deactivate";
aliases = {
# Python related ones
ac = "vox activate";
d = "vox deactivate";
# Nix related ones
gl-nging = "sudo nixos-container run gitlab -- systemctl restart nginx";
nb = "nix build -L";
nixdu = "sudo nix-store --gc --print-roots | egrep -v r\"^(/nix/var|/run/\\w+-system|\\{memory|/proc)\"";
nixtest = "nixpkgs-review rev HEAD";
nixup = "nix flake update";
stable = "nix flake update nixpkgs hm nixvimstable";
unstable = "nix flake update nixunstable hmunstable nixvimunstable nurpkgs vsext wsl";
# Nix related ones
gl-nging = "sudo nixos-container run gitlab -- systemctl restart nginx";
nb = "nix build -L";
nixdu = "sudo nix-store --gc --print-roots | egrep -v r\"^(/nix/var|/run/\\w+-system|\\{memory|/proc)\"";
nixtest = "nixpkgs-review rev HEAD";
nixup = "nix flake update";
stable = "nix flake update nixpkgs hm nixvimstable";
unstable = "nix flake update nixunstable hmunstable nixvimunstable nurpkgs vsext wsl";
# General
gh-personal = "$GH_CONFIG_DIR=\"${config.home.homeDirectory}/.config/gh/personal\" gh";
ls = "ls --color";
ll = "ls -l --color";
tf = "terraform";
# General
gh-personal = "$GH_CONFIG_DIR=\"${config.home.homeDirectory}/.config/gh/personal\" gh";
ls = "ls --color";
ll = "ls -l --color";
tf = "terraform";
# Tailscale related ones
tsup = "sudo tailscale up";
tspub = "sudo tailscale up --exit-node=linode";
tshome = "sudo tailscale up --exit-node=2maccabees";
tsclear = "sudo tailscale up --exit-node=''";
# Tailscale related ones
tsup = "sudo tailscale up";
tspub = "sudo tailscale up --exit-node=linode";
tshome = "sudo tailscale up --exit-node=2maccabees";
tsclear = "sudo tailscale up --exit-node=''";
# Vagrant related
vdown = "vagrant destroy";
vhalt = "vagrant halt";
vos = "vagrant up --provision --provider openstack";
vprov = "vagrant provision";
vup = "vagrant up --provision --provider libvirt";
vssh = "vagrant ssh";
};
# Vagrant related
vdown = "vagrant destroy";
vhalt = "vagrant halt";
vos = "vagrant up --provision --provider openstack";
vprov = "vagrant provision";
vup = "vagrant up --provision --provider libvirt";
vssh = "vagrant ssh";
};
configHeader = builtins.readFile ./xonsh_header.xsh;
configFooter = (builtins.readFile ./xonsh_footer.xsh) + (builtins.concatStringsSep "\n" [
"with open('${pkgs.stdenv.cc}/nix-support/dynamic-linker', 'r') as fp:"
" $NIX_LD = fp.read().strip()"
]);
};
configHeader = builtins.readFile ./xonsh_header.xsh;
configFooter = (builtins.readFile ./xonsh_footer.xsh) + (builtins.concatStringsSep "\n" [
"with open('${pkgs.stdenv.cc}/nix-support/dynamic-linker', 'r') as fp:"
" $NIX_LD = fp.read().strip()"
]);
};
}
+10 -10
View File
@@ -1,14 +1,14 @@
{ ... }:
{
imports = [
./baseline
./development.nix
./gnome.nix
./gui.nix
./python.nix
./sway.nix
./vscodium.nix
./xonsh.nix
];
imports = [
./baseline
./development.nix
./gnome.nix
./gui.nix
./python.nix
./sway.nix
./vscodium.nix
./xonsh.nix
];
}
+21 -20
View File
@@ -1,24 +1,25 @@
{ config, pkgs, lib, ... }:
let
packages = with pkgs; [
bruno # but let's not talk about it
cargo
gh-copilot
mariadb
nix-eval-jobs
nix-fast-build
nix-output-monitor
nix-update
nixfmt-rfc-style
nixpkgs-review
nodejs
process-compose
zed-editor
];
in with lib; {
options.greg.development = mkEnableOption "Setup necessary development packages";
packages = with pkgs; [
bruno # but let's not talk about it
cargo
gh-copilot
mariadb
nix-eval-jobs
nix-fast-build
nix-output-monitor
nix-update
nixfmt-rfc-style
nixpkgs-review
nodejs
process-compose
zed-editor
];
in
with lib; {
options.greg.development = mkEnableOption "Setup necessary development packages";
config = mkIf config.greg.development {
home.packages = packages;
};
config = mkIf config.greg.development {
home.packages = packages;
};
}
+115 -114
View File
@@ -1,121 +1,122 @@
{ config, pkgs, lib, ... }:
let
gv = lib.hm.gvariant;
cfg = config.greg.gnome;
gv = lib.hm.gvariant;
cfg = config.greg.gnome;
in {
options.greg.gnome = lib.mkEnableOption "Enable Gnome support and settings";
in
{
options.greg.gnome = lib.mkEnableOption "Enable Gnome support and settings";
config = (lib.mkIf cfg {
programs.gnome-terminal = lib.mkIf ( pkgs.system != "x86_64-darwin") {
enable = true;
showMenubar = true;
themeVariant = "dark";
profile."95f3c68e-82f3-4f44-ac85-6e075fed80b0" = {
default = true;
customCommand = "xonsh -st best";
loginShell = true;
scrollbackLines = 65535;
transparencyPercent = 50;
visibleName = "greg";
};
};
config = (lib.mkIf cfg {
programs.gnome-terminal = lib.mkIf (pkgs.system != "x86_64-darwin") {
enable = true;
showMenubar = true;
themeVariant = "dark";
profile."95f3c68e-82f3-4f44-ac85-6e075fed80b0" = {
default = true;
customCommand = "xonsh -st best";
loginShell = true;
scrollbackLines = 65535;
transparencyPercent = 50;
visibleName = "greg";
};
};
dconf.settings = {
"org/gnome/Disks" = {
image-dir-uri = "file:///home/greg/Downloads";
};
"org/gnome/desktop/interface" = {
clock-show-weekday = true;
color-scheme = "default";
cursor-size = 24;
toolbar-style = "text";
};
"org/gnome/desktop/screensaver" = {
lock-delay = "uint32 0";
lock-enabled = false;
};
"org/gnome/desktop/wm/keybindings" = {
switch-applications = [];
switch-applications-backward = [];
switch-windows = ["<Alt>Tab"];
switch-windows-backward = [ "<Shift><Alt>Tab" ];
};
"org/gnome/desktop/wm/preferences" = {
button-layout="icon:minimize,maximize,close";
};
"org/gnome/file-roller/listing" = {
list-mode = "as-folder";
name-coloumn-width = 302;
show-path = true;
sort-method = "name";
sort-type = "ascending";
};
"org/gnome/nautilus/preferences" = {
default-folder-viewer = "icon-view";
search-filter-time-type = "last_modified";
search-view = "list-view";
};
"org/gnome/shell" = {
enabled-extensions = [
"appindicatorsupport@rgcjonas.gmail.com"
"Vitals@CoreCoding.com"
"window-list@gnome-shell-extensions.gcampax.github.com"
"gsconnect@andyholmes.github.io"
];
favorite-apps = [
"org.gnome.Calendar.desktop"
"org.gnome.Nautilus.desktop"
"org.gnome.Terminal.desktop"
"firefox.desktop"
"vlc.desktop"
];
remember-mount-password = true;
};
"org/gnome/shell/extensions/vitals" = {
hot-sensors = [
"_memory_usage_"
"_system_load_1m_"
"__network-rx_max__"
"_temperature_k10temp_tccd1_"
"_temperature_k10temp_tctl_"
];
};
"org/gnome/shell/overrides" = {
attach-modal-dialogs = true;
dynamic-workspaces = true;
edge-tiling = true;
focus-change-on-pointer-rest = true;
workspaces-only-on-primary = true;
};
"org/gnome/shell/weather" = {
automation-location = true;
locations = "[<(uint32 2, <('Midlothian / Waxahachie, Mid-Way Regional Airport', 'KJWY', false, [(0.5664611473274288, -1.691437359323684)], @a(dd) [])>)>]";
};
"org/gnome/shell/window-switcher" = {
app-icon-mode = "both";
current-workspace-only = true;
};
"org/gtk/settings/file-chooser" = {
location-mode = "path-bar";
show-hidden = false;
show-size-column = true;
sort-column = "modified";
sort-directories-first = false;
sort-order = "descending";
};
"org/virt-manager/virt-manager/confirm" = {
delete-storage = true;
forcepoweroff = false;
};
"org/virt-manager/virt-manager/details" = {
show-toolbar = true;
};
"org/virt-manager/virt-manager/connections" = {
autoconnect = [ "qemu:///session" "qemu:///system" ];
uris = [ "qemu:///session" "qemu:///system" ];
};
};
});
dconf.settings = {
"org/gnome/Disks" = {
image-dir-uri = "file:///home/greg/Downloads";
};
"org/gnome/desktop/interface" = {
clock-show-weekday = true;
color-scheme = "default";
cursor-size = 24;
toolbar-style = "text";
};
"org/gnome/desktop/screensaver" = {
lock-delay = "uint32 0";
lock-enabled = false;
};
"org/gnome/desktop/wm/keybindings" = {
switch-applications = [ ];
switch-applications-backward = [ ];
switch-windows = [ "<Alt>Tab" ];
switch-windows-backward = [ "<Shift><Alt>Tab" ];
};
"org/gnome/desktop/wm/preferences" = {
button-layout = "icon:minimize,maximize,close";
};
"org/gnome/file-roller/listing" = {
list-mode = "as-folder";
name-coloumn-width = 302;
show-path = true;
sort-method = "name";
sort-type = "ascending";
};
"org/gnome/nautilus/preferences" = {
default-folder-viewer = "icon-view";
search-filter-time-type = "last_modified";
search-view = "list-view";
};
"org/gnome/shell" = {
enabled-extensions = [
"appindicatorsupport@rgcjonas.gmail.com"
"Vitals@CoreCoding.com"
"window-list@gnome-shell-extensions.gcampax.github.com"
"gsconnect@andyholmes.github.io"
];
favorite-apps = [
"org.gnome.Calendar.desktop"
"org.gnome.Nautilus.desktop"
"org.gnome.Terminal.desktop"
"firefox.desktop"
"vlc.desktop"
];
remember-mount-password = true;
};
"org/gnome/shell/extensions/vitals" = {
hot-sensors = [
"_memory_usage_"
"_system_load_1m_"
"__network-rx_max__"
"_temperature_k10temp_tccd1_"
"_temperature_k10temp_tctl_"
];
};
"org/gnome/shell/overrides" = {
attach-modal-dialogs = true;
dynamic-workspaces = true;
edge-tiling = true;
focus-change-on-pointer-rest = true;
workspaces-only-on-primary = true;
};
"org/gnome/shell/weather" = {
automation-location = true;
locations = "[<(uint32 2, <('Midlothian / Waxahachie, Mid-Way Regional Airport', 'KJWY', false, [(0.5664611473274288, -1.691437359323684)], @a(dd) [])>)>]";
};
"org/gnome/shell/window-switcher" = {
app-icon-mode = "both";
current-workspace-only = true;
};
"org/gtk/settings/file-chooser" = {
location-mode = "path-bar";
show-hidden = false;
show-size-column = true;
sort-column = "modified";
sort-directories-first = false;
sort-order = "descending";
};
"org/virt-manager/virt-manager/confirm" = {
delete-storage = true;
forcepoweroff = false;
};
"org/virt-manager/virt-manager/details" = {
show-toolbar = true;
};
"org/virt-manager/virt-manager/connections" = {
autoconnect = [ "qemu:///session" "qemu:///system" ];
uris = [ "qemu:///session" "qemu:///system" ];
};
};
});
}
+109 -108
View File
@@ -1,120 +1,121 @@
{ config, pkgs, lib, ... }:
let
cfg = config.greg.gui;
cfg = config.greg.gui;
excludes = systems: opts: (
if ( builtins.all (x: pkgs.system != x) systems ) then opts else []
);
excludes = systems: opts: (
if (builtins.all (x: pkgs.system != x) systems) then opts else [ ]
);
# For now, we ignore this and don't install it
ffPkgs = pkgs.firefox.override { cfg.enableGnomeExtensions = true; };
# For now, we ignore this and don't install it
ffPkgs = pkgs.firefox.override { cfg.enableGnomeExtensions = true; };
vars = {
XDG_CURRENT_DESKTOP = "GNOME";
};
in {
options.greg.gui = lib.mkEnableOption "Enable GUI programs";
vars = {
XDG_CURRENT_DESKTOP = "GNOME";
};
in
{
options.greg.gui = lib.mkEnableOption "Enable GUI programs";
config = (lib.mkIf cfg {
# These packages are Linux only
home.packages = with pkgs; ( excludes ["x86_64-darwin" "aarch64-darwin"]
[
cdrtools
element-desktop
freetube
qpwgraph
vlc
x265
]) ++
config = (lib.mkIf cfg {
# These packages are Linux only
home.packages = with pkgs; (excludes [ "x86_64-darwin" "aarch64-darwin" ]
[
cdrtools
element-desktop
freetube
qpwgraph
vlc
x265
]) ++
# x86_64-linux only
( excludes ["x86_64-darwin" "aarch64-darwin" "aarch64-linux"]
[
bitwarden
discord
endeavour
gnucash
jellyfin-media-player
#logseq
nextcloud-client
slack
]) ++
# x86_64-linux only
(excludes [ "x86_64-darwin" "aarch64-darwin" "aarch64-linux" ]
[
bitwarden
discord
endeavour
gnucash
jellyfin-media-player
#logseq
nextcloud-client
slack
]) ++
# Items that are not supported on ARM/Linux
( excludes ["aarch64-linux"]
[
onlyoffice-bin
synology-drive-client
zoom-us
]);
# Items that are not supported on ARM/Linux
(excludes [ "aarch64-linux" ]
[
onlyoffice-bin
synology-drive-client
zoom-us
]);
programs.firefox = {
enable = (! pkgs.stdenv.hostPlatform.isDarwin);
package = ffPkgs;
policies = {
DisableAppUpdate = true;
};
profiles = {
default = {
bookmarks = import ./gui/bookmarks.nix;
id = 0;
isDefault = true;
search = {
default = "DuckDuckGo";
force = true;
engines = {
Google.metaData.alias = "@g";
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
"Nix Options" = {
urls = [{
template = "https://search.nixos.org/options";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@no" ];
};
};
};
settings = {
"app.update.auto" = false;
"browser.ctrlTab.sortByRecentlyUsed" = true;
"browser.startup.page" = 3;
"browser.startup.homepage" = "https://thehellings.com";
"doh-rollout.doorhanger-decision" = "UIDisabled";
"doh-rollout.doneFirstRun" = true;
"signon.rememberSignons" = false;
};
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
bitwarden
gsconnect
foxyproxy-standard
multi-account-containers
octotree
okta-browser-plugin
refined-github
tree-style-tab
ublock-origin
];
};
};
};
programs.firefox = {
enable = (! pkgs.stdenv.hostPlatform.isDarwin);
package = ffPkgs;
policies = {
DisableAppUpdate = true;
};
profiles = {
default = {
bookmarks = import ./gui/bookmarks.nix;
id = 0;
isDefault = true;
search = {
default = "DuckDuckGo";
force = true;
engines = {
Google.metaData.alias = "@g";
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
"Nix Options" = {
urls = [{
template = "https://search.nixos.org/options";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@no" ];
};
};
};
settings = {
"app.update.auto" = false;
"browser.ctrlTab.sortByRecentlyUsed" = true;
"browser.startup.page" = 3;
"browser.startup.homepage" = "https://thehellings.com";
"doh-rollout.doorhanger-decision" = "UIDisabled";
"doh-rollout.doneFirstRun" = true;
"signon.rememberSignons" = false;
};
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
bitwarden
gsconnect
foxyproxy-standard
multi-account-containers
octotree
okta-browser-plugin
refined-github
tree-style-tab
ublock-origin
];
};
};
};
# This is supposed to be in support of Firefox, but I dunno...
programs.bash.sessionVariables = vars;
programs.xonsh.sessionVariables = vars;
});
# This is supposed to be in support of Firefox, but I dunno...
programs.bash.sessionVariables = vars;
programs.xonsh.sessionVariables = vars;
});
}
+167 -137
View File
@@ -1,137 +1,167 @@
[ {
name = "Toolbar";
toolbar = true;
bookmarks = [ {
name = "Ansible";
bookmarks = [ {
name = "Collection Index";
url = "https://docs.ansible.com/ansible/latest/collections/index.html";
} ];
} {
name = "Church";
bookmarks = [ {
name = "DC4K";
url = "https://www.dc4k.org/leaderzone/articles";
} ];
} {
name = "IVR";
bookmarks = [ {
name = "Dev";
bookmarks = [ {
name = "Core Survey";
url = "https://webdev5.ivrtechnology.com/coreservices/survey/admin/";
} {
name = "Audio";
url = "https://apidev1.ivrtechnology.com/coreservices/audio/admin/";
} ];
} {
name = "HC";
bookmarks = [ {
name = "Audio";
url = "https://hcweb3.ivrtechnology.com/coreservices/audio/admin/";
} {
name = "Survey";
url = "https://hcweb2.ivrtechnology.com/coreservices/survey/admin/";
} ];
} {
name = "PCI";
bookmarks = [ {
name = "Audio";
url = "https://pciweb3.ivrtechnology.com/coreservices/audio/admin/";
} ];
} {
name = "Processes";
bookmarks = [ {
name = "Change Management";
url = "https://ivrtg.atlassian.net/wiki/spaces/ITS/pages/13094842/Executing+Change+Management";
} {
name = "Okta";
url = "https://engagesmart.okta.com/";
} {
name = "DB Request";
url = "https://ivrtg.aha.io/develop/features/INFR-1073";
} ];
} ];
} {
name = "Katie";
bookmarks = [ {
name = "Sports Forms";
url = "https://midlothianisd.rankone.com/New/NewStudentList.aspx";
} {
name = "Skyward";
url = "https://skyward.iscorp.com/MidlothianISDTXStuSTS/Session/Signin?area=Home&controller=Home&action=Index&logoutreason=TimedOut";
} ];
} {
name = "Nix";
bookmarks = [ {
name = "Package Versions";
url = "https://lazamar.co.uk/nix-versions/?channel=nixpkgs-unstable&package=python3";
} {
name = "Channel status";
url = "https://status.nixos.org/";
} {
name = "Home Manager options";
url = "https://nix-community.github.io/home-manager/options.xhtml";
} {
name = "Flake Parts";
url = "https://community.flake.parts/";
} {
name = "Language ref";
url = "https://nix.dev/manual/nix/latest/language/index.html";
} {
name = "Builtin functions";
url = "https://nix.dev/manual/nix/latest/language/builtins.html";
} {
name = "Nixpkgs functions";
url = "https://ryantm.github.io/nixpkgs/functions/library/strings/#sec-functions-library-strings";
} {
name = "NUR search";
url = "https://nur.nix-community.org/";
} ];
} {
name = "Rust";
bookmarks = [ {
name = "Learn Rust";
url = "https://www.rust-lang.org/learn";
} {
name = "Rust by Example";
url = "https://doc.rust-lang.org/rust-by-example/hello.html";
} {
name = "Iced";
url = "https://docs.rs/iced/latest/iced/";
} ];
} {
name = "Shopping";
bookmarks = [ {
name = "Cables";
url = "https://www.pchcables.com";
} ];
} {
name = "SubTo";
bookmarks = [ {
name = "Kajabi";
url = "https://www.subtocourse.com/login";
} {
name = "SubTo Fund";
url = "https://frontend.koreconx.com/auth/login";
} {
name = "Creive Title";
url = "https://getcreativetitle.com/";
} {
name = "REI Scripts";
url = "https://reiconveyorbelt.com/no-excuses/";
} ];
} {
name = "Tools";
bookmarks = [ {
name = "Password Hash";
url = "https://unix4lyfe.org/crypt/";
} {
name = "Keymap editor";
url = "https://nickcoutsos.github.io/keymap-editor/";
} {
name = "Bitcoin dashboard";
url = "http://hosea.home:60845";
} ];
} ];
} ]
[{
name = "Toolbar";
toolbar = true;
bookmarks = [{
name = "Ansible";
bookmarks = [{
name = "Collection Index";
url = "https://docs.ansible.com/ansible/latest/collections/index.html";
}];
}
{
name = "Church";
bookmarks = [{
name = "DC4K";
url = "https://www.dc4k.org/leaderzone/articles";
}];
}
{
name = "IVR";
bookmarks = [{
name = "Dev";
bookmarks = [{
name = "Core Survey";
url = "https://webdev5.ivrtechnology.com/coreservices/survey/admin/";
}
{
name = "Audio";
url = "https://apidev1.ivrtechnology.com/coreservices/audio/admin/";
}];
}
{
name = "HC";
bookmarks = [{
name = "Audio";
url = "https://hcweb3.ivrtechnology.com/coreservices/audio/admin/";
}
{
name = "Survey";
url = "https://hcweb2.ivrtechnology.com/coreservices/survey/admin/";
}];
}
{
name = "PCI";
bookmarks = [{
name = "Audio";
url = "https://pciweb3.ivrtechnology.com/coreservices/audio/admin/";
}];
}
{
name = "Processes";
bookmarks = [{
name = "Change Management";
url = "https://ivrtg.atlassian.net/wiki/spaces/ITS/pages/13094842/Executing+Change+Management";
}
{
name = "Okta";
url = "https://engagesmart.okta.com/";
}
{
name = "DB Request";
url = "https://ivrtg.aha.io/develop/features/INFR-1073";
}];
}];
}
{
name = "Katie";
bookmarks = [{
name = "Sports Forms";
url = "https://midlothianisd.rankone.com/New/NewStudentList.aspx";
}
{
name = "Skyward";
url = "https://skyward.iscorp.com/MidlothianISDTXStuSTS/Session/Signin?area=Home&controller=Home&action=Index&logoutreason=TimedOut";
}];
}
{
name = "Nix";
bookmarks = [{
name = "Package Versions";
url = "https://lazamar.co.uk/nix-versions/?channel=nixpkgs-unstable&package=python3";
}
{
name = "Channel status";
url = "https://status.nixos.org/";
}
{
name = "Home Manager options";
url = "https://nix-community.github.io/home-manager/options.xhtml";
}
{
name = "Flake Parts";
url = "https://community.flake.parts/";
}
{
name = "Language ref";
url = "https://nix.dev/manual/nix/latest/language/index.html";
}
{
name = "Builtin functions";
url = "https://nix.dev/manual/nix/latest/language/builtins.html";
}
{
name = "Nixpkgs functions";
url = "https://ryantm.github.io/nixpkgs/functions/library/strings/#sec-functions-library-strings";
}
{
name = "NUR search";
url = "https://nur.nix-community.org/";
}];
}
{
name = "Rust";
bookmarks = [{
name = "Learn Rust";
url = "https://www.rust-lang.org/learn";
}
{
name = "Rust by Example";
url = "https://doc.rust-lang.org/rust-by-example/hello.html";
}
{
name = "Iced";
url = "https://docs.rs/iced/latest/iced/";
}];
}
{
name = "Shopping";
bookmarks = [{
name = "Cables";
url = "https://www.pchcables.com";
}];
}
{
name = "SubTo";
bookmarks = [{
name = "Kajabi";
url = "https://www.subtocourse.com/login";
}
{
name = "SubTo Fund";
url = "https://frontend.koreconx.com/auth/login";
}
{
name = "Creive Title";
url = "https://getcreativetitle.com/";
}
{
name = "REI Scripts";
url = "https://reiconveyorbelt.com/no-excuses/";
}];
}
{
name = "Tools";
bookmarks = [{
name = "Password Hash";
url = "https://unix4lyfe.org/crypt/";
}
{
name = "Keymap editor";
url = "https://nickcoutsos.github.io/keymap-editor/";
}
{
name = "Bitcoin dashboard";
url = "http://hosea.home:60845";
}];
}];
}]
+6 -6
View File
@@ -1,10 +1,10 @@
{ config, pkgs, lib, ... }:
{
options.greg.pypackage = lib.mkOption {
description = "Enable Gnome support and settings";
type = lib.types.package;
default = pkgs.gregpy;
};
options.greg.pypackage = lib.mkOption {
description = "Enable Gnome support and settings";
type = lib.types.package;
default = pkgs.gregpy;
};
config.home.packages = [ config.greg.pypackage ];
config.home.packages = [ config.greg.pypackage ];
}
+98 -95
View File
@@ -1,103 +1,106 @@
{ config, pkgs, lib, ... }:
let
cfg = config.greg.sway;
file_browser = {
pkg = pkgs.krusader;
path = "${pkgs.krusader}/bin/krusader";
};
term = "${pkgs.alacritty}/bin/alacritty";
msg = "${pkgs.sway}/bin/swaymsg";
sleep = "${pkgs.coreutils}/bin/sleep";
workstation1 = pkgs.writeScriptBin "workstation1" (builtins.concatStringsSep "\n" [
"${msg} \"workspace 1 ; exec ${pkgs.firefox}/bin/firefox ; split horizontal ; exec ${pkgs.element-desktop}/bin/element-desktop \""
"${sleep} 1"
"${msg} '[app_id=\"firefox\"]' move left"
"${msg} '[instance=\"element\"]' \"layout tabbed ; exec ${term} \""
"${msg} '[app_id=\"firefox\"]' move left"
"${sleep} 0.3"
"${msg} '[app_id=\"Alacritty\" workspace=\"1\"]' move right"
"${msg} '[app_id=\"firefox\"]' resize grow width 300 px"
]);
workstation2 = pkgs.writeScriptBin "workstation2" (builtins.concatStringsSep "\n" [
"${sleep} 5"
"${msg} \"workspace 2 ; exec ${term} ; layout tabbed\""
]);
in {
options.greg.sway = lib.mkEnableOption "Enable Sway support and settings";
cfg = config.greg.sway;
file_browser = {
pkg = pkgs.krusader;
path = "${pkgs.krusader}/bin/krusader";
};
term = "${pkgs.alacritty}/bin/alacritty";
msg = "${pkgs.sway}/bin/swaymsg";
sleep = "${pkgs.coreutils}/bin/sleep";
workstation1 = pkgs.writeScriptBin "workstation1" (builtins.concatStringsSep "\n" [
"${msg} \"workspace 1 ; exec ${pkgs.firefox}/bin/firefox ; split horizontal ; exec ${pkgs.element-desktop}/bin/element-desktop \""
"${sleep} 1"
"${msg} '[app_id=\"firefox\"]' move left"
"${msg} '[instance=\"element\"]' \"layout tabbed ; exec ${term} \""
"${msg} '[app_id=\"firefox\"]' move left"
"${sleep} 0.3"
"${msg} '[app_id=\"Alacritty\" workspace=\"1\"]' move right"
"${msg} '[app_id=\"firefox\"]' resize grow width 300 px"
]);
workstation2 = pkgs.writeScriptBin "workstation2" (builtins.concatStringsSep "\n" [
"${sleep} 5"
"${msg} \"workspace 2 ; exec ${term} ; layout tabbed\""
]);
in
{
options.greg.sway = lib.mkEnableOption "Enable Sway support and settings";
config = (lib.mkIf cfg {
programs.swaylock.enable = true;
config = (lib.mkIf cfg {
programs.swaylock.enable = true;
wayland.windowManager.sway = let
mod = config.wayland.windowManager.sway.config.modifier;
in {
enable = true;
config = rec {
#fonts.size = 10.0;
keybindings = lib.mkOptionDefault {
"Mod4+l" = "exec ${pkgs.swaylock}/bin/swaylock -c 000000";
"Mod4+h" = "exec ${pkgs.qpwgraph}/bin/qpwgraph -x /home/greg/sound/headphones.qpwgraph -m";
"Mod4+m" = "exec ${pkgs.qpwgraph}/bin/qpwgraph -x /home/greg/sound/monitor.qpwgraph -m";
"Mod4+b" = "exec ${pkgs.qpwgraph}/bin/qpwgraph -x /home/greg/sound/both.qpwgraph -m";
wayland.windowManager.sway =
let
mod = config.wayland.windowManager.sway.config.modifier;
in
{
enable = true;
config = rec {
#fonts.size = 10.0;
keybindings = lib.mkOptionDefault {
"Mod4+l" = "exec ${pkgs.swaylock}/bin/swaylock -c 000000";
"Mod4+h" = "exec ${pkgs.qpwgraph}/bin/qpwgraph -x /home/greg/sound/headphones.qpwgraph -m";
"Mod4+m" = "exec ${pkgs.qpwgraph}/bin/qpwgraph -x /home/greg/sound/monitor.qpwgraph -m";
"Mod4+b" = "exec ${pkgs.qpwgraph}/bin/qpwgraph -x /home/greg/sound/both.qpwgraph -m";
"${mod}+Shift+Return" = file_browser.path;
};
modifier = "Mod1";
output = {
"Samsung Electric Company S24E650 H4ZN600985" = {
mode = "1920x1200";
transform = "90";
pos = "0 0";
};
"ViewSonic Corporation VA2252 Series VMT201800925" = {
mode = "1920x1080";
pos = "200 1920";
};
};
terminal = term;
startup = [
{ command = "${workstation1}/bin/workstation1"; }
{ command = "${workstation2}/bin/workstation2"; }
];
};
extraOptions = [
"--unsupported-gpu"
];
extraSessionCommands = ''
export WLR_NO_HARDWARE_CURSORS=1
'';
systemd.enable = true;
wrapperFeatures = {
base = true;
gtk = true;
};
};
home.pointerCursor = {
name = "Adwaita";
package = pkgs.gnome.adwaita-icon-theme;
size = 12;
x11 = {
enable = true;
defaultCursor = "Adwaita";
};
};
"${mod}+Shift+Return" = file_browser.path;
};
modifier = "Mod1";
output = {
"Samsung Electric Company S24E650 H4ZN600985" = {
mode = "1920x1200";
transform = "90";
pos = "0 0";
};
"ViewSonic Corporation VA2252 Series VMT201800925" = {
mode = "1920x1080";
pos = "200 1920";
};
};
terminal = term;
startup = [
{ command = "${workstation1}/bin/workstation1"; }
{ command = "${workstation2}/bin/workstation2"; }
];
};
extraOptions = [
"--unsupported-gpu"
];
extraSessionCommands = ''
export WLR_NO_HARDWARE_CURSORS=1
'';
systemd.enable = true;
wrapperFeatures = {
base = true;
gtk = true;
};
};
home.packages = with pkgs; [
arj
dpkg
kate
kget
krename
file_browser.pkg
p7zip
plocate
rpm
qpwgraph
xorg.xev
xorg.xmodmap
xxdiff
];
});
home.pointerCursor = {
name = "Adwaita";
package = pkgs.gnome.adwaita-icon-theme;
size = 12;
x11 = {
enable = true;
defaultCursor = "Adwaita";
};
};
home.packages = with pkgs; [
arj
dpkg
kate
kget
krename
file_browser.pkg
p7zip
plocate
rpm
qpwgraph
xorg.xev
xorg.xmodmap
xxdiff
];
});
}
+52 -51
View File
@@ -1,57 +1,58 @@
{ pkgs, config, lib, inputs, ... }:
let
cfg = config.greg.vscodium;
in {
options.greg.vscodium = lib.mkEnableOption "Enable installation of VSCodium on the host";
cfg = config.greg.vscodium;
in
{
options.greg.vscodium = lib.mkEnableOption "Enable installation of VSCodium on the host";
config = lib.mkIf cfg {
home.packages = with pkgs; [
buildifier
gopls
nixd # nix language server
];
config = lib.mkIf cfg {
home.packages = with pkgs; [
buildifier
gopls
nixd # nix language server
];
# An alternative editor to vim, when I need it for some things
programs.vscode = {
enable = true;
package = pkgs.vscodium;
extensions = with inputs.vsext.extensions."${pkgs.stdenv.system}".vscode-marketplace; [
arrterian.nix-env-selector
asvetliakov.vscode-neovim
batisteo.vscode-django
bungcip.better-toml
donjayamanne.python-environment-manager
golang.go
kevinrose.vsc-python-indent
jnoortheen.nix-ide
mkhl.direnv
ms-python.python
njpwerner.autodocstring
rust-lang.rust-analyzer
vscjava.vscode-java-test
vscjava.vscode-java-dependency
vscjava.vscode-java-debug
wholroyd.jinja
];
userSettings = {
"direnv.restart.automatic" = true;
"direnv.path.executable" = "/home/gregory.hellings/.nix-profile/bin/direnv";
"extensions.autoUpdate" = false;
"extensions.experimental.affinity" = {
"asvetliakov.vscode-neovim" = 1;
};
"git.openRepositoryInParentFolders" = "always";
"search.exclude" = {
"**/.tox" = true;
};
"terminal.integrated.defaultProfile.linux" = "tmux";
"vscode-neovim.neovimInitVimPaths.darwin" = "~/.config/nvim/init.lua";
"vscode-neovim.neovimInitVimPaths.linux" = "~/.config/nvim/init.lua";
"workbench.settings.applyToAllProfiles" = [
"direnv.path.executable"
];
};
};
};
# An alternative editor to vim, when I need it for some things
programs.vscode = {
enable = true;
package = pkgs.vscodium;
extensions = with inputs.vsext.extensions."${pkgs.stdenv.system}".vscode-marketplace; [
arrterian.nix-env-selector
asvetliakov.vscode-neovim
batisteo.vscode-django
bungcip.better-toml
donjayamanne.python-environment-manager
golang.go
kevinrose.vsc-python-indent
jnoortheen.nix-ide
mkhl.direnv
ms-python.python
njpwerner.autodocstring
rust-lang.rust-analyzer
vscjava.vscode-java-test
vscjava.vscode-java-dependency
vscjava.vscode-java-debug
wholroyd.jinja
];
userSettings = {
"direnv.restart.automatic" = true;
"direnv.path.executable" = "/home/gregory.hellings/.nix-profile/bin/direnv";
"extensions.autoUpdate" = false;
"extensions.experimental.affinity" = {
"asvetliakov.vscode-neovim" = 1;
};
"git.openRepositoryInParentFolders" = "always";
"search.exclude" = {
"**/.tox" = true;
};
"terminal.integrated.defaultProfile.linux" = "tmux";
"vscode-neovim.neovimInitVimPaths.darwin" = "~/.config/nvim/init.lua";
"vscode-neovim.neovimInitVimPaths.linux" = "~/.config/nvim/init.lua";
"workbench.settings.applyToAllProfiles" = [
"direnv.path.executable"
];
};
};
};
}
+83 -77
View File
@@ -1,94 +1,100 @@
{ config, pkgs, lib, ... }:
let
cfg = config.programs.xonsh;
cfg = config.programs.xonsh;
in with lib; {
options = {
programs.xonsh = {
enable = mkEnableOption "Enable the xonsh program";
in
with lib; {
options = {
programs.xonsh = {
enable = mkEnableOption "Enable the xonsh program";
sessionVariables = mkOption {
type = types.attrs;
default = {};
example = { XONSH_TRACE_SUBPROC = true; };
description = ''
Environment variables that will be set for the Xonsh session.
'';
};
sessionVariables = mkOption {
type = types.attrs;
default = { };
example = { XONSH_TRACE_SUBPROC = true; };
description = ''
Environment variables that will be set for the Xonsh session.
'';
};
aliases = mkOption {
type = types.attrsOf types.str;
default = {};
example = literalExpression ''
{
ll = "ls -l";
la = "ls -a";
}
'';
description = ''
An attribute set that maps aliases (the top level attribute names in
this option) to command strings or directly to build outputs.
'';
};
aliases = mkOption {
type = types.attrsOf types.str;
default = { };
example = literalExpression ''
{
ll = "ls -l";
la = "ls -a";
}
'';
description = ''
An attribute set that maps aliases (the top level attribute names in
this option) to command strings or directly to build outputs.
'';
};
configHeader = mkOption {
type = types.lines;
default = "";
example = literalExpression ''
import os
import sys
'';
description = "An arbitrary string to put at the top of the config file";
};
configHeader = mkOption {
type = types.lines;
default = "";
example = literalExpression ''
import os
import sys
'';
description = "An arbitrary string to put at the top of the config file";
};
configFooter = mkOption {
type = types.lines;
default = "";
example = literalExpression ''
def _some_method(args):
do_command()
some_other_thing()
aliases['some_method'] = _some_method
'';
description = "An arbitrary string to put at the end of the config file";
};
};
};
configFooter = mkOption {
type = types.lines;
default = "";
example = literalExpression ''
def _some_method(args):
do_command()
some_other_thing()
aliases['some_method'] = _some_method
'';
description = "An arbitrary string to put at the end of the config file";
};
};
};
config =
let
shortAliases = concatStringsSep "\n" (
mapAttrsToList (k: v: "aliases['${k}']=r'${v}'") cfg.aliases
);
config =
let
shortAliases = concatStringsSep "\n" (
mapAttrsToList (k: v: "aliases['${k}']=r'${v}'") cfg.aliases
);
listToPythonList = let
listInternals = args:
concatStringsSep "\n" (map (v: "'${v}'") args);
in list: "[${listInternals list}]";
listToPythonList =
let
listInternals = args:
concatStringsSep "\n" (map (v: "'${v}'") args);
in
list: "[${listInternals list}]";
sessionVars = concatStringsSep "\n" (
mapAttrsToList (k: v:
if builtins.typeOf v == "string" then
"\$${k} = '${v}'"
else if builtins.typeOf v == "list" then
"\$${k} = ${listToPythonList}"
else if builtins.typeOf v == "int" then
"\$${k} = ${toString v}"
else ""
) cfg.sessionVariables
);
sessionVars = concatStringsSep "\n" (
mapAttrsToList
(k: v:
if builtins.typeOf v == "string" then
"\$${k} = '${v}'"
else if builtins.typeOf v == "list" then
"\$${k} = ${listToPythonList}"
else if builtins.typeOf v == "int" then
"\$${k} = ${toString v}"
else ""
)
cfg.sessionVariables
);
in mkIf cfg.enable {
in
mkIf cfg.enable {
home.file.".xonshrc".text = ''
${cfg.configHeader}
home.file.".xonshrc".text = ''
${cfg.configHeader}
${sessionVars}
${sessionVars}
${shortAliases}
${shortAliases}
${cfg.configFooter}
'';
};
${cfg.configFooter}
'';
};
}