Final commit (hopefully)
- I'll be switching over to a more organized tree ASAP
- This will fix several problems this config has
- I'll keep you posted :wave:
diff --git a/.sops.yaml b/.sops.yaml
new file mode 100644
index 0000000..99051e3
--- /dev/null
+++ b/.sops.yaml
@@ -0,0 +1,9 @@
+keys:
+ - &skyler D520 AC8D 7C96 9212 5B2B BD3A 1AFD 1025 6B3C 714D
+ - &python_laptop 2a81f40686eccb845b763c438a8cf3c0fff331b6
+creation_rules:
+ - path_regex: secrets/.*
+ key_groups:
+ - pgp:
+ - *skyler
+ - *python_laptop
diff --git a/flake.lock b/flake.lock
index c067a83..4b20649 100644
--- a/flake.lock
+++ b/flake.lock
@@ -144,6 +144,37 @@
"type": "github"
}
},
+ "nixpkgs-22_05": {
+ "locked": {
+ "lastModified": 1660410996,
+ "narHash": "sha256-arkfX1YYFmwMyDTCguzoOI4epABC41FGQU4J1/G3/9M=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "70b6236f3cbc815f2cae8d597418c714cf83d1c8",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "release-22.05",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs-minion": {
+ "locked": {
+ "lastModified": 1654036137,
+ "narHash": "sha256-9qB2rqwRRTWF6QESxhJA9Xs+f9F91CjAddbOS19Khv8=",
+ "owner": "minion3665",
+ "repo": "nixpkgs",
+ "rev": "44aa79022d197f21d1b584a2b445065e5c08fecd",
+ "type": "github"
+ },
+ "original": {
+ "owner": "minion3665",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"nixpkgs-unstable": {
"locked": {
"lastModified": 1658290795,
@@ -215,9 +246,33 @@
"home-manager": "home-manager",
"nixpkgs": "nixpkgs_2",
"nixpkgs-21-11": "nixpkgs-21-11",
+ "nixpkgs-minion": "nixpkgs-minion",
"nixpkgs-unstable": "nixpkgs-unstable",
"nurpkgs": "nurpkgs",
- "registry": "registry"
+ "registry": "registry",
+ "sops-nix": "sops-nix",
+ "vim-ctrlspace": "vim-ctrlspace"
+ }
+ },
+ "sops-nix": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "nixpkgs-22_05": "nixpkgs-22_05"
+ },
+ "locked": {
+ "lastModified": 1660540143,
+ "narHash": "sha256-oqeOdJH0ey/UyG1G31BV6Lk8qjI+VKboTpTJB317OhM=",
+ "owner": "Mic92",
+ "repo": "sops-nix",
+ "rev": "773365016f5202a199f5aff72cac75c64add4528",
+ "type": "github"
+ },
+ "original": {
+ "owner": "Mic92",
+ "repo": "sops-nix",
+ "type": "github"
}
},
"utils": {
@@ -234,6 +289,22 @@
"repo": "flake-utils",
"type": "github"
}
+ },
+ "vim-ctrlspace": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1649840914,
+ "narHash": "sha256-wQuQTNmU1qujQJ3oU2pSTQaVDa4ZChr1fkjFbILLt+w=",
+ "owner": "vim-ctrlspace",
+ "repo": "vim-ctrlspace",
+ "rev": "05b58e916cea62577462d36bbb88933e8454f2d3",
+ "type": "github"
+ },
+ "original": {
+ "owner": "vim-ctrlspace",
+ "repo": "vim-ctrlspace",
+ "type": "github"
+ }
}
},
"root": "root",
diff --git a/flake.nix b/flake.nix
index c3936cb..9542af5 100644
--- a/flake.nix
+++ b/flake.nix
@@ -12,6 +12,7 @@
home-manager.url = "github:nix-community/home-manager/release-22.05";
nurpkgs.url = "github:nix-community/NUR";
comma.url = "github:nix-community/comma";
+ nixpkgs-minion.url = "github:minion3665/nixpkgs";
fzf-tab = {
url = "github:Aloxaf/fzf-tab";
flake = false;
@@ -20,12 +21,18 @@
url = "github:pimterry/git-confirm";
flake = false;
};
+ vim-ctrlspace = {
+ url = "github:vim-ctrlspace/vim-ctrlspace";
+ flake = false;
+ };
+ sops-nix.url = "github:Mic92/sops-nix";
# Make sure flakes we depend on use the same version of nixpkgs as we do
home-manager.inputs.nixpkgs.follows = "nixpkgs";
+ sops-nix.inputs.nixpkgs.follows = "nixpkgs";
};
- outputs = extraInputs@{ self, nixpkgs, nixpkgs-unstable, nixpkgs-21-11, home-manager, ... }:
+ outputs = extraInputs@{ self, nixpkgs, nixpkgs-unstable, nixpkgs-21-11, nixpkgs-minion, home-manager, ... }:
let
system = "x86_64-linux"; # TOOD: Add options for MacOS
@@ -50,6 +57,12 @@
config = { allowUnfree = true; };
};
+ pkgs-minion = import nixpkgs-minion {
+ inherit system;
+
+ config = { allowUnfree = true; };
+ };
+
variables = import ./src/common/variables.nix;
in {
nixosConfigurations = {
@@ -57,11 +70,12 @@
inherit system;
specialArgs = extraInputs // {
- inherit nixpkgs nixpkgs-unstable home-manager pkgs-unstable pkgs-21-11 system;
+ inherit nixpkgs nixpkgs-unstable home-manager pkgs-unstable pkgs-21-11 pkgs-minion system;
};
modules = [
src/system.nix
+ extraInputs.sops-nix.nixosModules.sops
];
};
};
@@ -70,7 +84,7 @@
"${variables.username}" = home-manager.lib.homeManagerConfiguration rec {
inherit system pkgs;
- extraSpecialArgs = extraInputs // { inherit nixpkgs nixpkgs-unstable home-manager pkgs-unstable pkgs-21-11 system; };
+ extraSpecialArgs = extraInputs // { inherit nixpkgs nixpkgs-unstable home-manager pkgs-unstable pkgs-21-11 pkgs-minion system; };
username = variables.username;
homeDirectory = "/home/${username}";
diff --git a/secrets/secrets.json b/secrets/secrets.json
new file mode 100644
index 0000000..863ed81
--- /dev/null
+++ b/secrets/secrets.json
@@ -0,0 +1,26 @@
+{
+ "collabora-password": "ENC[AES256_GCM,data:/pQqX2DJutNwWVUo6aCq6SRc/0lEfvEj,iv:LZ3RMxzCpY8dsSlmj/G+0yFG3Blp7aJ4vWF0eQi7I2Y=,tag:CR6E2nDcLg3rz88lE5Zj3A==,type:str]",
+ "sops": {
+ "kms": null,
+ "gcp_kms": null,
+ "azure_kv": null,
+ "hc_vault": null,
+ "age": null,
+ "lastmodified": "2022-08-18T22:24:12Z",
+ "mac": "ENC[AES256_GCM,data:xvRUMD0q0W5uerh27WtSitlUc2E0b0T0gCzMTI6eMTZKf0flzgA6WChFyN6xeglHgqKzom2uIgFghuuJJM2pvXxZQcUf7LnUxsfC+kLdm1HlnwxNMwT+Hg/xKVKnyXveljzMVfTX+wps3TSxwyirq0lnBsWXZd9meABKuP1v6og=,iv:I8PXJ5jlQg7ig4StOKWPwWC/x9m0dlvsTYB01s+l6Qc=,tag:BUBAHx0O2zlWZxZGsK9p+A==,type:str]",
+ "pgp": [
+ {
+ "created_at": "2022-08-18T21:04:35Z",
+ "enc": "-----BEGIN PGP MESSAGE-----\n\nwcFMA4vnwRU2nlKhARAAk4QGBf3JjCRs17Z2WncVGOeRa44oZvJmK6QHMk6ltBCD\najoFU4rQAto9fVv638tmdALZ8Mpw23QQismjNS2+rha3IHDZmnDDOUPfLzMfSD2h\nkJUCCISTWPUJhecJNaTpfjyBUyNcG2rkFPvRp64jXHVg6dF/HrjjU8bdd4HTH8FE\nL19E/Dz968K8AzDyUvEdhaDxOP9vBRdIYWqbV7p3vdseH2HAhmL+o2yla1HclK9g\nNA40J+Z288rApnUkkiZJxVaEjZtCq/1FIfZWrWgiGT4KmgsoFDblTYWBMag8P3cf\na76RhGyvRqH8AiWkbTp3l1iSezDjRfqUViAt3RoPFX5FTCDP5igrlJQddc621EhW\n4kSs9Aj2QfqZNfkixgE61b5W9HmS4l2i+PiwsyxJo5zZHM7SbP9YU2mn2yD2BlUj\nM1d5Ql9ZTDG2jYv8W715Mv7aKwc9jP7H/WUsxN2u+ZvmpYHITBBLnlK6WqrNeBOo\nODWfJQNY1OxLNkjGtpEgnqdYazuHYb9BWgDovgqb/EpO1gdjiCp80Sd9VygrB2Xy\nbQGKrvvMiip1eEXg2UEH3cZNSFQe/rKVSuRow4slQfCH1erLygqrJM7lNy/qptmJ\nzUPGqJyip1WJiJBeVO9UP7wL1k5PCLXowFwdo6/st83y3foS3x6cxBR7KvW9DKvS\nUQHWOO5EKJtU9uT3YWlpsFPlqaf9xuGf/Aes5cb0eW8TZT+J/7NAQdhUzGueDdOR\n+wMI6en3DfZBGMQEYw4rTcUdD/OG8bP0JVkJ3Mvg7qR5Sw==\n=ekop\n-----END PGP MESSAGE-----",
+ "fp": "D520AC8D7C9692125B2BBD3A1AFD10256B3C714D"
+ },
+ {
+ "created_at": "2022-08-18T21:04:35Z",
+ "enc": "-----BEGIN PGP MESSAGE-----\n\nhQIMA4qM88D/8zG2AQ//Qh0uzPOOzgfrz6Ub/XN6MxyNOaNUev3KVL18U8fQa9hT\nHosL6ah2+6dUpohVTfEuQmjuGM4qchUoGpGS9oo2cyEAzhGk6WX1jnL9czghWU+k\n2WZChsxyIU3w7oFBSek3GNcAID2QXooQONuiiq4MVrovkiXlcT3K1L78EOdMCj5T\npv4gXrNOIwz4A28m2keYU7rHkSSYdxhrH38NUsEcAnihFMWLaZzyup2FCvGMbbkP\n/00U/QBUSZYYusrG0whiMszsuLnk889bLo7mtF6OeH/eubHIQgotYmdimHWNbGI6\nz1kNYnMKIpNyWLmn4yj2MiVKa2cEa8w8SWBUXw3k55oJC6XDOV/uMXkDD7Ik/kJD\nTkLYhnWzQd85wyv0MWBrxVoPEZ24GBSJcWk0FJFexpPE1wT0r83PPamoegFPtUYZ\n9Tex3YNu6qm4G78hJZxyU69PS4kPFc0gb0bpUyIHjJR+bRGHkFFk1NgRIdeMGA/O\nnZQOgNHWvA39cVY9rAbbnmtPQ/2G2zS7+87R+1ygPvJyf+mWdOsKAz+dkZBcdWAR\nuP8EoLizPFLO6jrbNgteprsKO/n1cc9/1A+nqP4KJjepHOg+B4w2H9V7kagKixo+\n22PTZaPpPDVTy+FUGnkVH7Fxl371SvQSUaMYAebNNuDUyg/AAdqGYARp9y/ebLHS\nWAHKxS2V0kZ3jiGPS4yKM3JTBHUbGX6e6w2ePNNRc2v6NNZuKIpwcll4wrnbCffS\ngP7bEfhDXndAubsj9dMH8BUej2mnJJeARHBka/q3gPOCP7JFA6P9BMI=\n=DM4A\n-----END PGP MESSAGE-----\n",
+ "fp": "2a81f40686eccb845b763c438a8cf3c0fff331b6"
+ }
+ ],
+ "unencrypted_suffix": "_unencrypted",
+ "version": "3.7.3"
+ }
+}
\ No newline at end of file
diff --git a/src/apps/personal/element.nix b/src/apps/personal/element.nix
index 9278df0..ced87ce 100644
--- a/src/apps/personal/element.nix
+++ b/src/apps/personal/element.nix
@@ -1,5 +1,6 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
element-desktop-wayland
+ cinny
];
}
diff --git a/src/apps/personal/email.nix b/src/apps/personal/email.nix
new file mode 100644
index 0000000..45c2d5f
--- /dev/null
+++ b/src/apps/personal/email.nix
@@ -0,0 +1,66 @@
+{ pkgs, ... }: {
+ accounts.email.accounts = {
+ collabora = {
+ astroid = {
+ enable = true;
+ sendMailCommand = "${pkgs.msmtp}/bin/msmtpq --read-envelope-from --read-recipients";
+ };
+ msmtp.enable = true;
+ himalaya.enable = true;
+ neomutt.enable = true;
+ mbsync = {
+ enable = true;
+ create = "maildir";
+ };
+ notmuch.enable = true;
+ address = "skyler.grey@collabora.com";
+ imap = {
+ host = "mail.collabora.com";
+ port = 143;
+ tls.useStartTls = true;
+ };
+ smtp = {
+ host = "mail.collabora.com";
+ port = 587;
+ tls.useStartTls = true;
+ };
+ userName = "skyler";
+ realName = "Skyler Grey";
+ primary = true;
+ signature = {
+ showSignature = "append";
+ text = ''
+ Miss Skyler Grey
+ Intern
+
+ Collabora Ltd.
+ Platinum Building, St John's Innovation Park, Cambridge CB4 0DS, UK
+ Registered in England & Wales, no. 5513718'';
+ };
+ passwordCommand = "${pkgs.coreutils}/bin/cat /run/secrets/collabora-password";
+ };
+ };
+ programs.astroid.enable = true;
+ programs.msmtp.enable = true;
+ services.mbsync = {
+ enable = true;
+ postExec = "${pkgs.notmuch}/bin/notmuch new";
+ };
+ programs.mbsync.enable = true;
+ programs.himalaya.enable = true;
+ programs.neomutt = {
+ enable = true;
+ sidebar.enable = true;
+ settings = {
+ preferred_languages = "en";
+ };
+ extraConfig = ''
+ auto_view text/html
+ '';
+ };
+ programs.notmuch.enable = true;
+ home.packages = [ pkgs.lynx ];
+ home.file.".mailcap".text = ''
+ text/html; ${pkgs.lynx}/bin/lynx -force_html -dump %s; copiousoutput
+ '';
+}
diff --git a/src/apps/personal/gpg.nix b/src/apps/personal/gpg.nix
index 58d57ca..9c8f74f 100644
--- a/src/apps/personal/gpg.nix
+++ b/src/apps/personal/gpg.nix
@@ -1,6 +1,6 @@
{ pkgs, ... }: let
pinentry-multiplexed = pkgs.writeScriptBin "pinentry-multiplexed" ''
- case $PINENTRY_USER_DATA in
+ case "$${PINENTRY_USER_DATA-}" in
tty)
exec ${pkgs.pinentry.tty}/bin/pinentry "$@"
;;
diff --git a/src/apps/personal/grep.nix b/src/apps/personal/grep.nix
index 4fc02a1..fe29812 100644
--- a/src/apps/personal/grep.nix
+++ b/src/apps/personal/grep.nix
@@ -1,11 +1,12 @@
{ pkgs, ... }: {
- home.packages = [
- pkgs.ripgrep
- pkgs.gnugrep
- ];
+ home.packages = [
+ pkgs.ripgrep
+ pkgs.gnugrep
+ ];
- home.shellAliases = {
- "git-todo" = "${pkgs.git}/bin/git log | ${pkgs.gnugrep}/bin/grep 'TODO\|DONE'";
- todo = "${pkgs.ripgrep}/bin/rg TODO:";
- };
+ home.shellAliases = {
+ "git-todo" = "${pkgs.git}/bin/git log | ${pkgs.gnugrep}/bin/grep 'TODO\|DONE'";
+ todo = "${pkgs.ripgrep}/bin/rg TODO:";
+ rg = "${pkgs.ripgrep}/bin/rg -S";
+ };
}
diff --git a/src/apps/personal/ssh.nix b/src/apps/personal/ssh.nix
index 3ab03fc..a912f0f 100644
--- a/src/apps/personal/ssh.nix
+++ b/src/apps/personal/ssh.nix
@@ -8,6 +8,10 @@
port = 29418;
user = "Minion3665";
};
+ transplace = {
+ hostname = "95.217.87.112";
+ identityFile = "~/.ssh/id_transplace";
+ };
};
};
diff --git a/src/apps/personal/timetracking.nix b/src/apps/personal/timetracking.nix
index b7d0f2f..52220e3 100644
--- a/src/apps/personal/timetracking.nix
+++ b/src/apps/personal/timetracking.nix
@@ -1,6 +1,11 @@
{ pkgs, ... }: {
home.packages = [
pkgs.gtimelog
+# pkgs.gtimelog.overrideAttrs(prev: {
+ # src = fetchGit {
+ # url = "git@gitlab.collabora.com:
+ # };
+ # })
pkgs.haskellPackages.arbtt
];
}
diff --git a/src/apps/personal/vim.nix b/src/apps/personal/vim.nix
index ccd3434..145b8c7 100644
--- a/src/apps/personal/vim.nix
+++ b/src/apps/personal/vim.nix
@@ -1,4 +1,4 @@
-{ pkgs, ... }: {
+{ pkgs, vim-ctrlspace, ... }: {
home.file.".config/nvim/autoload/airline/themes/onehalf.vim".text = ''
let g:airline#themes#onehalf#palette = {}
function! airline#themes#onehalf#refresh()
@@ -31,21 +31,24 @@
let g:airline#themes#onehalf#palette.visual = s:generateAirlinePalette(s:purple)
let g:airline#themes#onehalf#palette.select = s:generateAirlinePalette(s:purple)
let g:airline#themes#onehalf#palette.multi = s:generateAirlinePalette(s:purple)
- let g:airline#themes#onehalf#palette.insert = s:generateAirlinePalette(s:blue)
+ let g:airline#themes#onehalf#palette.insert = s:generateAirlinePalette(s:yellow)
let g:airline#themes#onehalf#palette.commandline = s:generateAirlinePalette(s:red)
let g:airline#themes#onehalf#palette.terminal = s:generateAirlinePalette(s:cyan)
- let g:airline#themes#onehalf#palette.replace = s:generateAirlinePalette(s:yellow)
- let g:airline#themes#onehalf#palette.ctrlp = s:generateAirlinePalette(s:white)
- let g:airline#themes#onehalf#palette.inactive = s:generateAirlinePalette(s:lightgrey)
+ let g:airline#themes#onehalf#palette.replace = s:generateAirlinePalette(s:blue)
+ let g:airline#themes#onehalf#palette.inactive = s:generateAirlinePalette(s:white)
let g:airline#themes#onehalf#palette.normal_modified = s:generateAirlinePalette(s:green)
let g:airline#themes#onehalf#palette.visual_modified = s:generateAirlinePalette(s:purple)
let g:airline#themes#onehalf#palette.select_modified = s:generateAirlinePalette(s:purple)
let g:airline#themes#onehalf#palette.multi_modified = s:generateAirlinePalette(s:purple)
- let g:airline#themes#onehalf#palette.insert_modified = s:generateAirlinePalette(s:blue)
+ let g:airline#themes#onehalf#palette.insert_modified = s:generateAirlinePalette(s:yellow)
let g:airline#themes#onehalf#palette.commandline_modified = s:generateAirlinePalette(s:red)
let g:airline#themes#onehalf#palette.terminal_modified = s:generateAirlinePalette(s:cyan)
- let g:airline#themes#onehalf#palette.replace_modified = s:generateAirlinePalette(s:yellow)
- let g:airline#themes#onehalf#palette.ctrlp_modified = s:generateAirlinePalette(s:white)
+ let g:airline#themes#onehalf#palette.replace_modified = s:generateAirlinePalette(s:blue)
+
+
+ let g:airline#themes#onehalf#palette.tabline = {
+ \ 'airline_tabtype' : [s:white.gui, s:lightgrey.gui, s:white.cterm, s:lightgrey.cterm]}
+
endfunction
call airline#themes#onehalf#refresh()
@@ -57,7 +60,9 @@
settings = {
"suggest.noselect" = false;
"cSpell.checkOnlyEnabledFileTypes" = false;
+ "rust-analyzer.serverPath" = "${pkgs.rust-analyzer}/bin/rust-analyzer";
};
+
};
viAlias = true;
vimAlias = true;
@@ -80,10 +85,14 @@
set nocompatible
set hidden
set encoding=utf-8
- set scrolloff=5
+ set scrolloff=3
set signcolumn=yes
+ set guicursor=v-r-cr:hor50,i:ver50
colorscheme onehalfdark
+ hi clear SpellBad
+ hi SpellBad cterm=undercurl gui=undercurl
+
command W w
command Wq wq
@@ -138,8 +147,12 @@
nmap <leader>+ <Plug>AirlineSelectNextTab
let g:airline_skip_empty_sections = 1
- let g:ctrlp_map = '<c-p>'
- let g:ctrlp_cmd = 'CtrlP'
+ let g:CtrlSpaceDefaultMappingKey = "<C-space> "
+ let g:CtrlSpaceGlobCommand = 'rg --color=never --files'
+ let g:CtrlSpaceSearchTiming = 500
+ let g:CtrlSpaceLoadLastWorkspaceOnStart = 1
+ let g:CtrlSpaceSaveWorkspaceOnSwitch = 1
+ let g:CtrlSpaceSaveWorkspaceOnExit = 1
nmap <silent> ]c :call CocAction('diagnosticNext')<cr>
nmap <silent> [c :call CocAction('diagnosticPrevious')<cr>
@@ -179,7 +192,25 @@
nnoremap <silent> K :call <SID>show_documentation()<CR>
- autocmd BufWritePre * Neoformat
+ function FormatChangedHunks()
+ let formattedLines = 0
+ let formattedHunks = 0
+
+ for hunk in gitgutter#hunk#hunks(bufnr(""))
+ let line1 = hunk[2] - 1
+ let line2 = hunk[2] + hunk[3]
+ let formattedLines = formattedLines + line2 - line1
+ let formattedHunks = formattedHunks + 1
+ silent call neoformat#Neoformat(0, "", line1, line2)
+ endfor
+
+ echomsg "Reformatted " . string(formattedLines) . " changed lines in " . string(formattedHunks) . " hunks"
+ endfunction
+
+ autocmd BufWritePre * undojoin | try | undojoin | Neoformat | catch /^Vim\%((\a\+)\)\=:E790/ | finally | silent Neoformat | endtry
+ " call FormatChangedHunks()
+ autocmd CursorHoldI,CursorHold,BufLeave ?* silent! update
+ let g:cursorhold_updatetime = 1000
let g:neoformat_try_node_exe = 1
@@ -191,7 +222,42 @@
endif
endfunction
+ let s:darkred = { "gui": "#844C55", "cterm": "167" }
+ let s:darkyellow = { "gui": "#877658", "cterm": "136" }
+ let s:darkgreen = { "gui": "#607857", "cterm": "71" }
+ let s:darkcyan = { "gui": "#3F717B", "cterm": "31" }
+ let s:darkblue = { "gui": "#456E92", "cterm": "31" }
+ let s:darkpurple = { "gui": "#775289", "cterm": "127" }
+ let s:white = { "gui": "#dcdfe4", "cterm": "188" }
+
+ exec "highlight IndentBlanklineContextChar ctermfg=" . s:white.cterm . " guifg=" . s:white.gui . " ctermbg=NONE guibg=NONE"
+ exec "highlight IndentBlanklineContextStart ctermfg=NONE guifg=NONE guisp=white ctermbg=NONE guibg=NONE gui=underline term=underline"
+ exec "highlight IndentBlanklineIndent1 ctermfg=" . s:darkred.cterm . " guifg=" . s:darkred.gui . " ctermbg=NONE guibg=NONE"
+ exec "highlight IndentBlanklineIndent2 ctermfg=" . s:darkyellow.cterm . " guifg=" . s:darkyellow.gui . " ctermbg=NONE guibg=NONE"
+ exec "highlight IndentBlanklineIndent3 ctermfg=" . s:darkgreen.cterm . " guifg=" . s:darkgreen.gui . " ctermbg=NONE guibg=NONE"
+ exec "highlight IndentBlanklineIndent4 ctermfg=" . s:darkcyan.cterm . " guifg=" . s:darkcyan.gui . " ctermbg=NONE guibg=NONE"
+ exec "highlight IndentBlanklineIndent5 ctermfg=" . s:darkblue.cterm . " guifg=" . s:darkblue.gui . " ctermbg=NONE guibg=NONE"
+ exec "highlight IndentBlanklineIndent6 ctermfg=" . s:darkpurple.cterm . " guifg=" . s:darkpurple.gui . " ctermbg=NONE guibg=NONE"
+
lua << EOF
+ vim.opt.list = true
+ vim.opt.listchars:append "space:⋅"
+ vim.opt.listchars:append "eol:↴"
+
+ require("indent_blankline").setup {
+ space_char_blankline = " ",
+ show_current_context = true,
+ show_current_context_start = true,
+ char_highlight_list = {
+ "IndentBlanklineIndent1",
+ "IndentBlanklineIndent2",
+ "IndentBlanklineIndent3",
+ "IndentBlanklineIndent4",
+ "IndentBlanklineIndent5",
+ "IndentBlanklineIndent6",
+ },
+ }
+
require('neorg').setup {
load = {
["core.defaults"] = {}
@@ -209,6 +275,23 @@
enable = true,
extended_mode = true,
max_file_lines = nil,
+ colors = {
+ "#e06c75",
+ "#e5c07b",
+ "#98c379",
+ "#56b6c2",
+ "#61afef",
+ "#c678dd",
+
+ },
+ termcolors = {
+ "168",
+ "180",
+ "114",
+ "73",
+ "75",
+ "176",
+ },
},
incremental_selection = {
enable = true,
@@ -231,8 +314,7 @@
set foldexpr=nvim_treesitter#foldexpr()
set viewoptions-=options
- autocmd BufWinLeave ?* mkview!
- autocmd BufWinEnter ?* normal zR
+ autocmd BufWinLeave ?* silent! mkview!
function! s:loadViewOrUnfold()
try
@@ -244,10 +326,41 @@
autocmd BufWinEnter ?* call s:loadViewOrUnfold()
-
let g:airline_highlighting_cache = 1
let g:airline_theme = "onehalf"
autocmd VimEnter * call vista#RunForNearestMethodOrFunction()
+
+ let g:list_of_disabled_keys = ["<UP>", "<DOWN>", "<LEFT>", "<RIGHT>"]
+
+ let g:hardtime_default_on = 1
+ let g:hardtime_allow_different_key = 1
+ let g:hardtime_motion_with_count_resets = 1
+
+ let g:himalaya_mailbox_picker = 'telescope'
+
+ nnoremap <leader>tf <cmd>Telescope find_files<cr>
+ nnoremap <leader>tc <cmd>Telescope coc<cr>
+ nnoremap <leader>ts <cmd>Telescope ultisnips<cr>
+ nnoremap <leader>tg <cmd>Telescope live_grep<cr>
+ nnoremap <leader>tb <cmd>Telescope buffers<cr>
+ nnoremap <leader>th <cmd>Telescope help_tags<cr>
+
+ lua << EOF
+ require("telescope").setup({
+
+ });
+
+ require("telescope").load_extension("coc");
+ require("telescope").load_extension("ui-select");
+ require("telescope").load_extension("ultisnips");
+ require("telescope").load_extension("zoxide");
+ require("telescope").load_extension("fzf");
+ require("telescope").load_extension("file_browser");
+ EOF
+
+ lua << EOF
+ require("colorizer").setup();
+ EOF
'';
plugins = with pkgs.vimPlugins; [
@@ -257,7 +370,7 @@
coc-tsserver
coc-eslint
coc-rust-analyzer
- coc-spell-checker
+ # pkgs-minion.coc-spell-checker
coc-json
coc-jest
coc-css
@@ -279,16 +392,41 @@
airline
vista-vim
vim-gitgutter
- ctrlp-vim
vim-airline-clock
lazygit-nvim
+ FixCursorHold-nvim
+ indent-blankline-nvim
+ vim-hardtime
+ vim-commentary
+ coc-snippets
+ ultisnips
+ vim-surround
+ himalaya-vim
+ telescope-ui-select-nvim
+ telescope-ultisnips-nvim
+ telescope-symbols-nvim
+ telescope-zoxide
+ telescope-fzf-native-nvim
+ telescope-coc-nvim
+ telescope-file-browser-nvim
+ telescope-nvim
+ nvim-colorizer-lua
+ (pkgs.vimUtils.buildVimPlugin {
+ name = "vim-ctrlspace";
+ src = vim-ctrlspace;
+ })
(nvim-treesitter.withPlugins (plugins: pkgs.tree-sitter.allGrammars))
];
+
+ extraPackages = with pkgs; [
+ rust-analyzer
+ ];
};
home.packages = with pkgs; [
universal-ctags
nodePackages.cspell
+ fd
];
home.sessionVariables.EDITOR = "${pkgs.neovim}/bin/nvim";
diff --git a/src/apps/personal/waybar.nix b/src/apps/personal/waybar.nix
index c67beea..db1d7f2 100644
--- a/src/apps/personal/waybar.nix
+++ b/src/apps/personal/waybar.nix
@@ -22,9 +22,9 @@
tooltip = false;
format = "{icon}";
format-icons = {
- notification = "<span foreground='red'><sup></sup></span>";
+ notification = "<span foreground='red'><sup>*</sup></span>";
none = "";
- dnd-notification = "<span foreground='red'><sup></sup></span>";
+ dnd-notification = "<span foreground='red'><sup>*</sup></span>";
dnd-none = "";
};
"return-type" = "json";
diff --git a/src/apps/personal/zsh.nix b/src/apps/personal/zsh.nix
index ad970ab..ef2eaaa 100644
--- a/src/apps/personal/zsh.nix
+++ b/src/apps/personal/zsh.nix
@@ -14,40 +14,74 @@
extended = true;
};
initExtra = ''
- bindkey -v
- bindkey "\'\'$\{key[Up]}" up-line-or-search
+ bindkey -v
+ bindkey "\'\'$\{key[Up]}" up-line-or-search
- command_not_found_handler ()
- {
- local p='/nix/store/ycclzpk99snlrk8sg9n4j8pm1927gavw-command-not-found/bin/command-not-found';
- if [ -x "$p" ] && [ -f '/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite' ]; then
- "$p" "$@" 2>&1 | sed -r 's/nix-shell -p (\S+)/nix shell nixpkgs#\1/g' 1>&2;
- if [ $? = 126 ]; then
- "$@";
- else
- return 127;
- fi;
- else
- echo "$1: command not found" 1>&2;
- return 127;
- fi
- }
+ command_not_found_handler ()
+ {
+ local p='/nix/store/ycclzpk99snlrk8sg9n4j8pm1927gavw-command-not-found/bin/command-not-found';
+ if [ -x "$p" ] && [ -f '/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite' ]; then
+ "$p" "$@" 2>&1 | sed -r 's/nix-shell -p (\S+)/nix shell nixpkgs#\1/g' 1>&2;
+ if [ $? = 126 ]; then
+ "$@";
+ else
+ return 127;
+ fi;
+ else
+ echo "$1: command not found" 1>&2;
+ return 127;
+ fi
+ }
- ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=243';
- ZSH_HIGHLIGHT_STYLES[comment]='fg=248';
+ ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=243';
+ ZSH_HIGHLIGHT_STYLES[comment]='fg=248';
- if [[ $SHLVL != "1" ]]; then
- export RPS1=$'%{\033[38;5;248m%}(%{$fg[red]%}L$SHLVL%{\033[38;5;248m%})%{\033[39m\033[49m%}'
- fi
- function TRAPINT {
- print -n "$fg_bold[red]^C$fg_no_bold[default]"
- return $(( 128 + $1 ))
- }
+ function task_indicator {
+ if [ `task +READY +OVERDUE count 2> /dev/null` -gt "0" ] ; then
+ printf "%%{\\033[38;5;248m%%}(%%{$fg[magenta]%%}$(task +READY +OVERDUE count) OVERDUE%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+ elif [ `task +READY +DUETODAY count 2> /dev/null` -gt "0" ] ; then
+ printf "%%{\\033[38;5;248m%%}(%%{$fg[red]%%}$(task +READY +DUETODAY count) DUE TODAY%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+ elif [ `task +READY +DUETomorrow count 2> /dev/null` -gt "0" ] ; then
+ printf "%%{\\033[38;5;248m%%}(%%{$fg[yellow]%%}$(task +READY +DUETomorrow count) DUE TOMORROW%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+ elif [ `task +READY urgency \> 10 count 2> /dev/null` -gt "0" ] ; then
+ printf "%%{\\033[38;5;248m%%}(%%{$fg[red]%%}$(task +READY urgency \\\> 10 count) URGENT%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+ elif [ `task +READY count 2> /dev/null` -gt "0" ] ; then
+ printf "%%{\\033[38;5;248m%%}(%%{$fg[cyan]%%}$(task +READY count) TASKS%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+ else
+ printf "%%{\\033[38;5;248m%%}(%%{$fg[green]%%}NO TASKS%%{\033[38;5;248m%%})%%{$fg[default]%%}"
+ fi
+ }
- function tempd {
- cd "$(mktemp -d)"
- }
+ if [[ $SHLVL != "1" ]]; then
+ export RPS1=$'%{\033[38;5;248m%}(%{$fg[red]%}L$SHLVL%{\033[38;5;248m%})%{\033[39m\033[49m%} '
+ fi
+
+ RPS1+='$(task_indicator)'
+
+ function TRAPINT {
+ print -n "$fg_bold[red]^C$fg_no_bold[default]"
+ return $(( 128 + $1 ))
+ }
+
+ # function zle-line-init {
+ # if [[ -n $ZLE_LINE_ABORTED ]]; then
+ # MY_LINE_ABORTED="$ZLE_LINE_ABORTED"
+ # fi
+
+ # if [[ -n $MY_LINE_ABORTED ]]; then
+ # local savebuf="$BUFFER" savecur="$CURSOR"
+ # BUFFER="$MY_LINE_ABORTED"
+ # CURSOR="$#BUFFER"
+ # zle split-undo
+ # BUFFER="$savebuf" CURSOR="$savecur"
+ # fi
+ # }
+ # zle -N zle-line-init
+
+ function tempd {
+ cd "$(mktemp -d)"
+ }
# disable sort when completing `git checkout`
zstyle ':completion:*:git-checkout:*' sort false
@@ -63,14 +97,18 @@
alias compinit="true"
source ${./zsh/completions}/*
- '';
- enableSyntaxHighlighting = true;
- enableAutosuggestions = true;
- autocd = true;
- dotDir = ".local/share/zsh";
- };
+ '';
+ enableSyntaxHighlighting = true;
+ enableAutosuggestions = true;
+ autocd = true;
+ dotDir = ".local/share/zsh";
+ };
- home.packages = [
- pkgs.fzf
- ];
-}
+ home.packages = [
+ pkgs.fzf
+ ];
+
+ home.shellAliases = {
+ ":q" = "exit";
+ };
+ }
diff --git a/src/apps/system/grocy.nix b/src/apps/system/grocy.nix
index 44c92a2..e705967 100644
--- a/src/apps/system/grocy.nix
+++ b/src/apps/system/grocy.nix
@@ -17,4 +17,7 @@
};
networking.firewall.allowedTCPPorts = [ 80 ];
+ networking.hosts = {
+ "127.0.0.1" = [ "grocy.services.local" ];
+ };
}
diff --git a/src/overlays/electron-screenshare.nix b/src/overlays/electron-screenshare.nix
index 41a288b..158400a 100644
--- a/src/overlays/electron-screenshare.nix
+++ b/src/overlays/electron-screenshare.nix
@@ -25,7 +25,7 @@
*/
# Therefore, this file is also copyable under MIT as it represents a "substantial portion" of the original code
-final: prev: {}
+final: prev: {
/*
discord = final.makeDesktopItem {
name = "Discord";
@@ -48,5 +48,17 @@
type = "Application";
categories = [ "Network" "InstantMessaging" ];
terminal = false;
- };
-}*/
+ };
+ */
+
+ cinny = final.makeDesktopItem {
+ name = "Cinny";
+ desktopName = "Cinny";
+ genericName = "An alternative matrix client to Element";
+ exec="sh -c \"${final.chromium}/bin/chromium --app=\\\"file://${prev.cinny}/index.html\\\" --autoplay-policy=no-user-gesture-required --enable-features=WebUIDarkMode --force-dark-mode --allow-file-access-from-files --user-data-dir=\\\${XDG_CONFIG_HOME:-\\\$HOME/.config}/cinny\"";
+ icon = "${prev.cinny}/assets/favicon-48x48.png";
+ type = "Application";
+ categories = [ "Network" "InstantMessaging" ];
+ terminal = false;
+ };
+}
diff --git a/src/system.nix b/src/system.nix
index 29781ee..ac743fb 100644
--- a/src/system.nix
+++ b/src/system.nix
@@ -10,22 +10,22 @@
# Prepare nix flakes
nix = {
- package = pkgs-unstable.nixFlakes;
- settings = {
- experimental-features = [ "nix-command" "flakes" ];
- auto-optimise-store = true;
- keep-outputs = true;
- flake-registry = "${registry}/flake-registry.json";
- extra-sandbox-paths = [ "/homeless-shelter/.ccache" ];
- };
- gc.automatic = true;
- gc.options = "--delete-older-than 7d";
+ package = pkgs-unstable.nixFlakes;
+ settings = {
+ experimental-features = [ "nix-command" "flakes" ];
+ auto-optimise-store = true;
+ keep-outputs = true;
+ flake-registry = "${registry}/flake-registry.json";
+ extra-sandbox-paths = [ "/homeless-shelter/.ccache" ];
+ };
+ gc.automatic = true;
+ gc.options = "--delete-older-than 7d";
};
programs.ccache = {
- enable = true;
+ enable = true;
# packageNames = [ "nix" ];
- cacheDir = "/homeless-shelter/.ccache";
+cacheDir = "/homeless-shelter/.ccache";
};
# Use the systemd-boot EFI boot loader.
@@ -48,70 +48,70 @@
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
console = {
- font = "Lat2-Terminus16";
- keyMap = "uk";
+ font = "Lat2-Terminus16";
+ keyMap = "uk";
};
# Enable the X11 windowing system.
services.xserver = {
- enable = true;
- desktopManager = {
- xterm.enable = false;
+ enable = true;
+ desktopManager = {
+ xterm.enable = false;
# xfce.enable = true;
- };
- displayManager.startx.enable = true;
- # displayManager.sddm.enable = true;
};
+ displayManager.startx.enable = true;
+ # displayManager.sddm.enable = true;
+};
- services.zeronet.enable = true;
- services.zeronet.package = pkgs.zeronet-conservancy;
+services.zeronet.enable = true;
+services.zeronet.package = pkgs.zeronet-conservancy;
- services.arbtt = {
+services.arbtt = {
enable = true;
sampleRate = 30;
- };
+};
- services = {
+services = {
syncthing = {
enable = true;
user = "minion";
dataDir = "/home/minion/Documents"; # Default folder for new synced folders
configDir = "/home/minion/.config/syncthing"; # Folder for Syncthing's settings and keys
};
- };
+};
# And wayland
-/* programs.sway = {
- enable = true;
- wrapperFeatures.gtk = true; # so that gtk works properly
- extraPackages = with pkgs; [
- swaylock
- swayidle
- wl-clipboard
- mako # notification daemon
- alacritty # Alacritty is the default terminal in the config
- ];
+ /* programs.sway = {
+ enable = true;
+ wrapperFeatures.gtk = true; # so that gtk works properly
+ extraPackages = with pkgs; [
+ swaylock
+ swayidle
+ wl-clipboard
+ mako # notification daemon
+ alacritty # Alacritty is the default terminal in the config
+ ];
};*/
programs.light.enable = true; # Needs udev rules to properly work
programs.qt5ct = {
- enable = true;
+ enable = true;
};
# programs.waybar.enable = false; # true;
# Get screensharing to work
xdg = {
- portal = {
- enable = true;
- wlr.enable = true;
- };
+ portal = {
+ enable = true;
+ wlr.enable = true;
+ };
};
systemd.user.services.xdg-desktop-portal = {
- unitConfig = {
- After = "graphical-session.target";
- };
+ unitConfig = {
+ After = "graphical-session.target";
+ };
};
# Configure keymap in X11
@@ -121,12 +121,12 @@
# Permit and install steam
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
- "steam"
- "steam-original"
- "steam-runtime"
- "mongodb"
- "nvidia-x11"
- "nvidia-settings"
+ "steam"
+ "steam-original"
+ "steam-runtime"
+ "mongodb"
+ "nvidia-x11"
+ "nvidia-settings"
];
programs.steam.enable = true;
@@ -139,21 +139,21 @@
sound.enable = true;
hardware.pulseaudio.enable = false;
services.pipewire = {
- enable = true;
- alsa = {
enable = true;
- support32Bit = true;
- };
- pulse.enable = true;
- /*config.pipewire = {
- "context.modules" = [
- {
- name = "libpipewire-module-filter-chain";
- args = {
- "node.name" = "effect_output.virtual-surround-7.1-hesuvi";
- "node.description" = "Virtual Surround Sink";
- "media.name" = "Virtual Surround Sink";
- nodes = [
+ alsa = {
+ enable = true;
+ support32Bit = true;
+ };
+ pulse.enable = true;
+ /*config.pipewire = {
+ "context.modules" = [
+ {
+ name = "libpipewire-module-filter-chain";
+ args = {
+ "node.name" = "effect_output.virtual-surround-7.1-hesuvi";
+ "node.description" = "Virtual Surround Sink";
+ "media.name" = "Virtual Surround Sink";
+ nodes = [
# duplicate inputs
{ type = "builtin"; label = "copy"; name = "copyFL"; }
{ type = "builtin"; label = "copy"; name = "copyFR"; }
@@ -187,8 +187,8 @@
# stereo output
{ type = "builtin"; label = "mixer"; name = "mixR"; }
{ type = "builtin"; label = "mixer"; name = "mixL"; }
- ];
- links = [
+ ];
+ links = [
# input
{ output = "copyFL:Out"; input="convFL_L:In"; }
{ output = "copyFL:Out"; input="convFL_R:In"; }
@@ -224,23 +224,23 @@
{ output = "convRR_L:Out"; input="mixL:In 7"; }
{ output = "convLFE_R:Out"; input="mixR:In 8"; }
{ output = "convLFE_L:Out"; input="mixL:In 8"; }
- ];
- inputs = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
- outputs = [ "mixL:Out" "mixR:Out" ];
- };
- "capture.props" = {
- "media.class" = "Audio/Sink";
- "audio.channels" = 8;
- "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
- };
- "playback.props" = {
- "node.passive" = true;
- "audio.channels" = 2;
- "audio.position" = [ "FL" "FR" ];
- };
- }
+ ];
+ inputs = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In" "copySL:In" "copySR:In" ];
+ outputs = [ "mixL:Out" "mixR:Out" ];
+ };
+ "capture.props" = {
+ "media.class" = "Audio/Sink";
+ "audio.channels" = 8;
+ "audio.position" = [ "FL" "FR" "FC" "LFE" "RL" "RR" "SL" "SR" ];
+ };
+ "playback.props" = {
+ "node.passive" = true;
+ "audio.channels" = 2;
+ "audio.position" = [ "FL" "FR" ];
+ };
+ }
];
- };*/
+ };*/
};
environment.etc."pipewire/7.1-surround-sound.conf".source = ./pipewire/7.1-surround-sound.conf;
@@ -256,102 +256,107 @@
# Define a user account. Don't forget to set a password with ‘passwd’.
users.users.minion = {
- isNormalUser = true;
- extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" "libvirtd" "video" ]; # Enable ‘sudo’ for the user.
- shell = pkgs.zsh;
+ isNormalUser = true;
+ extraGroups = [ "wheel" "kvm" "docker" "containerd" "dialout" "libvirtd" "video" config.users.groups.keys.name ]; # Enable ‘sudo’ for the user.
+ shell = pkgs.zsh;
};
programs.zsh.enable = true;
environment.variables = {
- EDITOR = "${pkgs.vim}/bin/vim";
+ EDITOR = "${pkgs.vim}/bin/vim";
};
environment.defaultPackages = [
- pkgs.perl
- pkgs.rsync
- pkgs.strace
- pkgs.vim # I'm installing vim here even though it isn't normally a default package, as I've removed nano
+ pkgs.perl
+ pkgs.rsync
+ pkgs.strace
+ pkgs.vim # I'm installing vim here even though it isn't normally a default package, as I've removed nano
]; # The basic default packages, although without nano
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
- vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
- ((emacsPackagesFor emacs).emacsWithPackages (epkgs: [
- epkgs.vterm
- epkgs.emacsql-sqlite
- ])) # Emacs + vterm-module (needed for vterm)
- wget
- firefox
- chromium # Install chromium if needed
- texlive.combined.scheme-full
- keybase-gui
- bluez
- macchanger
- comic-relief
- qemu_kvm
- gtk-engine-murrine
- gtk_engines
- gsettings-desktop-schemas
- lxappearance
- libsForQt5.qt5.qtwayland
- qt6.qtwayland
- texworks
- wlogout
- wob
- wlsunset
- cni-plugins
- ccache
+ vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
+ ((emacsPackagesFor emacs).emacsWithPackages (epkgs: [
+ epkgs.vterm
+ epkgs.emacsql-sqlite
+ ])) # Emacs + vterm-module (needed for vterm)
+ wget
+ firefox
+ chromium # Install chromium if needed
+ texlive.combined.scheme-full
+ keybase-gui
+ bluez
+ macchanger
+ comic-relief
+ qemu_kvm
+ gtk-engine-murrine
+ gtk_engines
+ gsettings-desktop-schemas
+ lxappearance
+ libsForQt5.qt5.qtwayland
+ qt6.qtwayland
+ texworks
+ wlogout
+ wob
+ wlsunset
+ cni-plugins
+ ccache
+ sops
];
# environment.systemPackages = [
# import /scripts/jetbrains.rider.nix
# ];
- nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-features=WebUIDarkMode --force-dark-mode --enable-features=WebRTCPipeWireCapturer"; # --enable-gpu";
+nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-features=WebUIDarkMode --force-dark-mode --enable-features=WebRTCPipeWireCapturer"; # --enable-gpu";
- fonts = {
+fonts = {
fonts = with pkgs; [
- nerdfonts
- noto-fonts
- noto-fonts-cjk
- noto-fonts-emoji
- liberation_ttf
- fira-code
- fira-code-symbols
- mplus-outline-fonts.githubRelease
- dina-font
- proggyfonts
- roboto
- roboto-mono
- roboto-slab
- twitter-color-emoji
- twemoji-color-font
- ubuntu_font_family
- powerline-symbols
+ font-awesome
+ line-awesome
+ material-design-icons
+ weather-icons
+ emacs-all-the-icons-fonts
+ powerline-symbols
+ noto-fonts
+ noto-fonts-cjk
+ noto-fonts-emoji
+ liberation_ttf
+ fira-code
+ fira-code-symbols
+ mplus-outline-fonts.githubRelease
+ dina-font
+ proggyfonts
+ roboto
+ roboto-mono
+ roboto-slab
+ twitter-color-emoji
+ twemoji-color-font
+ ubuntu_font_family
];
enableDefaultFonts = true;
fontDir.enable = true;
fontconfig = {
- defaultFonts = {
- serif = [ "Roboto Slab" ];
- sansSerif = [ "Roboto" "Ubuntu" ];
- monospace = [ "Roboto Mono" "Ubuntu Mono" ];
- emoji = [ "Twitter Color Emoji" ];
- };
+ defaultFonts = {
+ serif = [ "Roboto Slab" ];
+ sansSerif = [ "Roboto" "Ubuntu" ];
+ monospace = [ "Roboto Mono" "Ubuntu Mono" ];
+ emoji = [ "Twitter Color Emoji" ];
+ };
};
- };
+};
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
programs.mtr.enable = true;
programs.kdeconnect.enable = true;
programs.gnupg.agent = {
- enable = true;
- enableSSHSupport = true;
+ enable = true;
+ enableSSHSupport = true;
};
# List services that you want to enable:
@@ -377,26 +382,26 @@
virtualisation.kvmgt.enable = true;
services.openvpn.servers = {
- clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; autoStart = false; };
+ clicks = { config = '' config /home/minion/Nix/secrets/clicks/client.ovpn ''; autoStart = false; };
};
environment.etc = {
- "pam.d/swaylock" = {
- mode = "0644";
- text = ''
- auth include login
- '';
- };
+ "pam.d/swaylock" = {
+ mode = "0644";
+ text = ''
+ auth include login
+ '';
+ };
};
nixpkgs.overlays = [
- (self: super: {
- steam = super.steam.override {
- extraPkgs = pkgs: with pkgs; [
- cups
- libxml2
- ];
- };
+ (self: super: {
+ steam = super.steam.override {
+ extraPkgs = pkgs: with pkgs; [
+ cups
+ libxml2
+ ];
+ };
# polkit = super.polkit.overrideAttrs (oldAttrs: {
# patches = oldAttrs.patches ++ [
# (super.fetchpatch {
@@ -405,23 +410,23 @@
# })];
# });
})
- ] ++ map (f: import f) overlays ++ [
+] ++ map (f: import f) overlays ++ [
(self: (super: builtins.listToAttrs (
- map (f: {
- name = builtins.elemAt (builtins.match "^(.*/)*(.*)\\.nix$" (toString f)) 1;
- value = super.lib.callPackageWith (self) (import f) {};
- }) packages
- )))
- nurpkgs.overlay
- ];
+ map (f: {
+ name = builtins.elemAt (builtins.match "^(.*/)*(.*)\\.nix$" (toString f)) 1;
+ value = super.lib.callPackageWith (self) (import f) {};
+ }) packages
+ )))
+ nurpkgs.overlay
+ ];
- xdg.mime.defaultApplications = {
- "text/html" = "chromium-browser.desktop";
- "x-scheme-handler/http" = "chromium-browser.desktop";
- "x-scheme-handler/https" = "chromium-browser.desktop";
- "x-scheme-handler/about" = "chromium-browser.desktop";
- "x-scheme-handler/unknown" = "chromium-browser.desktop";
- };
+ xdg.mime.defaultApplications = {
+ "text/html" = "chromium-browser.desktop";
+ "x-scheme-handler/http" = "chromium-browser.desktop";
+ "x-scheme-handler/https" = "chromium-browser.desktop";
+ "x-scheme-handler/about" = "chromium-browser.desktop";
+ "x-scheme-handler/unknown" = "chromium-browser.desktop";
+ };
# environment.sessionsVariables.DEFAULT_BROWSER = "${pkgs.chromium}/bin/chromium";
@@ -436,55 +441,65 @@
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "21.11"; # Did you read the comment?
- boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "sd_mod" ];
+ boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" "usbcore" ];
# boot.extraModulePackages = [ config.boot.kernelPackages.exfat-nofuse ]; # Broken in nixpkgs; seems to be mountable and usable anyway
- boot.extraModprobeConfig = ''
- options usbcore use_both_schemes=y
- '';
+boot.extraModprobeConfig = ''
+options usbcore use_both_schemes=y
+'';
- fileSystems."/" =
+fileSystems."/" =
{ device = "/dev/disk/by-label/nixos";
- fsType = "ext4";
- };
+ fsType = "ext4";
+};
- fileSystems."/boot" =
+fileSystems."/boot" =
{ device = "/dev/disk/by-label/boot";
- fsType = "vfat";
- };
+ fsType = "vfat";
+};
- swapDevices =
+swapDevices =
[ { device = "/dev/disk/by-label/swap"; }
- ];
+];
- powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
- hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
+hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
# hardware.nvidia.modesetting.enable = true;
# services.xserver.videoDrivers = [ "nvidia" ];
# hardware.opentabletdriver.enable = true;
- virtualisation.containerd.enable = true;
+virtualisation.containerd.enable = true;
- virtualisation.containerd.settings = {
+virtualisation.containerd.settings = {
version = 2;
# grpc = {
# uid = 1000;
# };
};
+ sops.defaultSopsFile = ../secrets/secrets.json;
+
+ sops.secrets = {
+ collabora-password = {
+ mode = "0400";
+ owner = config.users.users.minion.name;
+ group = config.users.users.nobody.group;
+ };
+ };
+
networking.hostName = "python";
networking.wireless.iwd.enable = true;
networking.wireless.iwd.settings = {
- Settings = {
- AutoConnect = true;
- AlwaysRandomizeAddress = true;
- };
+ Settings = {
+ AutoConnect = true;
+ AlwaysRandomizeAddress = true;
+ };
};
networking.search = [
- "python.local"
+ "python.local"
];
}