| author | |
| committer | |
| log | 84993913c26cf3d7ea289d7371e055d591cbcfcd |
| tree | a6858b1cb289b03084ed407b5772f30b925fe40f |
| parent | 492998e1c247353a395cc3db5040d96501e2f9d6 |
| parent | 38a0ff695984d5ff685869202c3892448cf4a0ac |
| signature | Commit is signed but in an unrecognized format. |
35 files changed, 761 insertions(+), 736 deletions(-)
.mailmap created+3| ... | ... | @@ -0,0 +1,3 @@ |
| 1 | # To learn more about git's mailmap: https://ntietz.com/blog/git-mailmap-for-name-changes | |
| 2 | clover caruso <git@paperclover.net> <git@paperclover.net> | |
| 3 | Natalie Marks <nmarks413@gmail.com> <nmarks413@gmail.com> |
flake.nix+8-8| ... | ... | @@ -97,9 +97,9 @@ |
| 97 | 97 | packages = forAllSystems ( |
| 98 | 98 | { system, pkgs, ... }: |
| 99 | 99 | { |
| 100 | nvim-chloe = mkNeovim "chloe" pkgs; | |
| 100 | nvim-clover = mkNeovim "clover" pkgs; | |
| 101 | nvim-fish = mkNeovim "fish" pkgs; | |
| 101 | 102 | nvim-natalie = mkNeovim "natalie" pkgs; |
| 102 | nvim-julia = mkNeovim "julia" pkgs; | |
| 103 | 103 | |
| 104 | 104 | inherit (pkgs) autofmt; |
| 105 | 105 | } |
| ... | ... | @@ -122,22 +122,22 @@ |
| 122 | 122 | system = "aarch64-darwin"; |
| 123 | 123 | }; |
| 124 | 124 | |
| 125 | # chloe's mac studio "sandwich" | |
| 125 | # clover's mac studio "sandwich" | |
| 126 | 126 | darwinConfigurations.sandwich = mkSystem "sandwich" { |
| 127 | user = "chloe"; | |
| 127 | user = "clover"; | |
| 128 | 128 | host = "sandwich"; |
| 129 | 129 | system = "aarch64-darwin"; |
| 130 | 130 | }; |
| 131 | # chloe's macbook air "paperback" | |
| 131 | # clover's macbook air "paperback" | |
| 132 | 132 | darwinConfigurations.paperback = mkSystem "paperback" { |
| 133 | user = "chloe"; | |
| 133 | user = "clover"; | |
| 134 | 134 | host = "paperback"; |
| 135 | 135 | system = "aarch64-darwin"; |
| 136 | 136 | }; |
| 137 | 137 | |
| 138 | # julia's cattop | |
| 138 | # fish's cattop | |
| 139 | 139 | nixosConfigurations.cattop = mkSystem "cattop" { |
| 140 | user = "julia"; | |
| 140 | user = "fish"; | |
| 141 | 141 | host = "cattop"; |
| 142 | 142 | system = "x86_64-linux"; |
| 143 | 143 | }; |
modules/neovim/default.nix+50-90| ... | ... | @@ -6,8 +6,9 @@ |
| 6 | 6 | }: |
| 7 | 7 | { |
| 8 | 8 | imports = [ |
| 9 | ./options.nix | |
| 10 | 9 | ./formatter.nix |
| 10 | ./keybind.nix | |
| 11 | ./options.nix | |
| 11 | 12 | ]; |
| 12 | 13 | # based on default options from upstream: |
| 13 | 14 | # https://github.com/NotAShelf/nvf/blob/main/configuration.nix |
| ... | ... | @@ -18,6 +19,10 @@ |
| 18 | 19 | # override level 999 is used to not conflict with mkDefault as used by nvf. |
| 19 | 20 | # which allows user configurations to disable/override anything here. |
| 20 | 21 | config.vim = lib.mkOverride 999 { |
| 22 | extraLuaFiles = [ | |
| 23 | ./lib.lua | |
| 24 | ]; | |
| 25 | ||
| 21 | 26 | theme = { |
| 22 | 27 | enable = true; |
| 23 | 28 | }; |
| ... | ... | @@ -60,8 +65,8 @@ |
| 60 | 65 | listReferences = "gr"; |
| 61 | 66 | goToType = "gy"; |
| 62 | 67 | hover = "K"; |
| 63 | nextDiagnostic = "<leader>d"; | |
| 64 | openDiagnosticFloat = "<leader>df"; | |
| 68 | nextDiagnostic = null; # ]d | |
| 69 | openDiagnosticFloat = "<leader>d"; | |
| 65 | 70 | renameSymbol = "rn"; |
| 66 | 71 | documentHighlight = null; |
| 67 | 72 | listDocumentSymbols = null; |
| ... | ... | @@ -78,11 +83,9 @@ |
| 78 | 83 | enable = true; |
| 79 | 84 | addDefaultGrammars = true; |
| 80 | 85 | }; |
| 81 | debugger = { | |
| 82 | nvim-dap = { | |
| 83 | enable = true; | |
| 84 | ui.enable = true; | |
| 85 | }; | |
| 86 | debugger.nvim-dap = { | |
| 87 | enable = true; | |
| 88 | ui.enable = true; | |
| 86 | 89 | }; |
| 87 | 90 | languages = { |
| 88 | 91 | enableFormat = true; |
| ... | ... | @@ -96,36 +99,58 @@ |
| 96 | 99 | clang.enable = true; |
| 97 | 100 | css.enable = true; |
| 98 | 101 | html.enable = true; |
| 102 | lua.enable = true; | |
| 99 | 103 | markdown.enable = true; |
| 104 | nix.enable = true; | |
| 100 | 105 | python.enable = true; |
| 101 | 106 | rust.crates.enable = true; |
| 102 | 107 | rust.enable = true; |
| 103 | 108 | ts.enable = true; |
| 104 | 109 | zig.enable = true; |
| 105 | lua.enable = true; | |
| 106 | 110 | # sort-lines: off |
| 107 | ||
| 108 | nix = { | |
| 109 | enable = true; | |
| 110 | format.type = "nixfmt"; # looks so much nicer | |
| 111 | }; | |
| 112 | 111 | }; |
| 113 | filetree = { | |
| 114 | neo-tree = { | |
| 115 | enable = false; | |
| 112 | filetree.neo-tree = { | |
| 113 | enable = true; | |
| 114 | setupOpts = { | |
| 115 | enable_cursor_hijack = true; | |
| 116 | git_status_async = true; | |
| 116 | 117 | }; |
| 117 | 118 | }; |
| 118 | tabline = { | |
| 119 | nvimBufferline.enable = true; | |
| 119 | fzf-lua = { | |
| 120 | enable = true; | |
| 121 | setupOpts = { | |
| 122 | fzf_colors = true; | |
| 123 | }; | |
| 120 | 124 | }; |
| 121 | autocomplete = { | |
| 122 | blink-cmp = { | |
| 123 | enable = true; | |
| 124 | sourcePlugins = { | |
| 125 | ripgrep.enable = true; | |
| 125 | autocomplete.blink-cmp = { | |
| 126 | enable = true; | |
| 127 | mappings = { | |
| 128 | close = null; | |
| 129 | complete = null; | |
| 130 | confirm = null; | |
| 131 | next = null; | |
| 132 | previous = null; | |
| 133 | scrollDocsDown = null; | |
| 134 | scrollDocsUp = null; | |
| 135 | }; | |
| 136 | setupOpts = { | |
| 137 | keymap = { | |
| 138 | preset = "super-tab"; | |
| 126 | 139 | }; |
| 127 | friendly-snippets.enable = true; | |
| 140 | completion = { | |
| 141 | ghost_text.enabled = false; | |
| 142 | list.selection.preselect = true; | |
| 143 | trigger = { | |
| 144 | show_in_snippet = true; | |
| 145 | }; | |
| 146 | accept.auto_brackets.enabled = true; | |
| 147 | }; | |
| 148 | signature.enabled = true; | |
| 128 | 149 | }; |
| 150 | sourcePlugins = { | |
| 151 | ripgrep.enable = true; | |
| 152 | }; | |
| 153 | friendly-snippets.enable = true; | |
| 129 | 154 | }; |
| 130 | 155 | statusline = { |
| 131 | 156 | lualine = { |
| ... | ... | @@ -137,71 +162,6 @@ |
| 137 | 162 | }; |
| 138 | 163 | }; |
| 139 | 164 | }; |
| 140 | ||
| 141 | utility = { | |
| 142 | snacks-nvim = { | |
| 143 | enable = true; | |
| 144 | setupOpts = { | |
| 145 | bigfile.enable = true; | |
| 146 | dashboard = { | |
| 147 | preset.keys = [ | |
| 148 | { | |
| 149 | icon = " "; | |
| 150 | key = "n"; | |
| 151 | desc = "New File"; | |
| 152 | action = ":ene | startinsert"; | |
| 153 | } | |
| 154 | { | |
| 155 | icon = " "; | |
| 156 | key = "r"; | |
| 157 | desc = "Recent Files"; | |
| 158 | action = ":lua Snacks.dashboard.pick('oldfiles')"; | |
| 159 | } | |
| 160 | ]; | |
| 161 | sections = [ | |
| 162 | { section = "header"; } | |
| 163 | { | |
| 164 | section = "keys"; | |
| 165 | indent = 2; | |
| 166 | padding = 1; | |
| 167 | } | |
| 168 | { | |
| 169 | icon = " "; | |
| 170 | title = "Projects"; | |
| 171 | section = "projects"; | |
| 172 | indent = 2; | |
| 173 | padding = 1; | |
| 174 | } | |
| 175 | { | |
| 176 | icon = " "; | |
| 177 | title = "Git"; | |
| 178 | section = "terminal"; | |
| 179 | enabled = lib.options.literalExpression '' | |
| 180 | function() | |
| 181 | return Snacks.git.get_root() ~= nil | |
| 182 | end | |
| 183 | ''; | |
| 184 | cmd = "git status --short --branch --renames"; | |
| 185 | height = 10; | |
| 186 | padding = 1; | |
| 187 | ttl = 5 * 60; | |
| 188 | indent = 3; | |
| 189 | } | |
| 190 | ]; | |
| 191 | }; | |
| 192 | image = { | |
| 193 | enable = true; | |
| 194 | math.enabled = false; | |
| 195 | }; | |
| 196 | notifier.timeout = 3000; | |
| 197 | picker = { | |
| 198 | enable = true; | |
| 199 | sources = { | |
| 200 | }; | |
| 201 | }; | |
| 202 | }; | |
| 203 | }; | |
| 204 | }; | |
| 205 | 165 | binds = { |
| 206 | 166 | whichKey.enable = true; |
| 207 | 167 | cheatsheet.enable = true; |
modules/neovim/keybind.nix created+83| ... | ... | @@ -0,0 +1,83 @@ |
| 1 | # this file implements a keybind system, which is a higher level system | |
| 2 | # to configure vim.keymaps (note the different name bind vs map) | |
| 3 | { | |
| 4 | pkgs, | |
| 5 | lib, | |
| 6 | config, | |
| 7 | ... | |
| 8 | }: | |
| 9 | let | |
| 10 | keyRemap = mode: key: action: { inherit mode key action; }; | |
| 11 | keyCmd = | |
| 12 | mode: key: cmd: | |
| 13 | keyRemap mode key ":${cmd}<Return>"; | |
| 14 | in | |
| 15 | { | |
| 16 | # default binds | |
| 17 | config.vim.keybinds = { | |
| 18 | search-commands = keyCmd "n" "<leader>?" "FzfLua keymaps"; | |
| 19 | ||
| 20 | # user interface | |
| 21 | toggle-explorer = keyCmd "n" "<leader>e" "Neotree toggle"; | |
| 22 | reveal-active-file = keyCmd "n" "<leader>E" "Neotree reveal<CR>:Neotree focus"; | |
| 23 | lazygit = keyCmd "n" "<leader>gg" "FullscreenTerm ${pkgs.lazygit}/bin/lazygit"; | |
| 24 | ||
| 25 | # pickers | |
| 26 | pick-file = keyCmd "n" "<leader><leader>" "FzfLua files"; | |
| 27 | pick-mark = keyCmd "n" "<leader>'" "FzfLua marks"; | |
| 28 | #pick-buffer = keyCmd "n" "<leader>b" "FzfLua buffers"; | |
| 29 | pick-grep = keyCmd "n" "<leader>ff" "FzfLua grep_project"; | |
| 30 | pick-recent-command = keyCmd "n" "<leader>fc" "FzfLua command_history"; | |
| 31 | pick-other = keyCmd "n" "<leader>f?" "FzfLua builtin"; # picker of Fzf pickers | |
| 32 | ||
| 33 | # lsp | |
| 34 | code-action = | |
| 35 | keyCmd "n" "<leader>ca" | |
| 36 | "FzfLua lsp_code_actions winopts.height=15 winopts.backdrop=100 winopts.title=false winopts.preview.title=false winopts.row=1"; | |
| 37 | ||
| 38 | # subtle nice features | |
| 39 | visual-dedent = keyRemap "v" "<" "<gv"; # keep selection | |
| 40 | visual-indent = keyRemap "v" ">" ">gv"; # keep selection | |
| 41 | clear-search-highlights = keyRemap "n" "<esc" ":noh<Return><esc>"; | |
| 42 | }; | |
| 43 | ||
| 44 | # implementation | |
| 45 | options.vim.keybinds = lib.mkOption { | |
| 46 | type = lib.types.attrsOf ( | |
| 47 | lib.types.nullOr ( | |
| 48 | lib.types.submodule { | |
| 49 | options = { | |
| 50 | mode = lib.mkOption { type = lib.types.str; }; | |
| 51 | key = lib.mkOption { type = lib.types.str; }; | |
| 52 | action = lib.mkOption { type = lib.types.str; }; | |
| 53 | }; | |
| 54 | } | |
| 55 | ) | |
| 56 | ); | |
| 57 | default = { }; | |
| 58 | }; | |
| 59 | config.vim.keymaps = | |
| 60 | let | |
| 61 | titleCase = | |
| 62 | str: | |
| 63 | lib.concatStringsSep " " ( | |
| 64 | map ( | |
| 65 | word: | |
| 66 | lib.strings.toUpper (builtins.substring 0 1 word) | |
| 67 | + builtins.substring 1 (builtins.stringLength word) word | |
| 68 | ) (lib.splitString "-" str) | |
| 69 | ); | |
| 70 | in | |
| 71 | builtins.filter (f: f != null) ( | |
| 72 | lib.attrsets.mapAttrsToList ( | |
| 73 | desc: bind: | |
| 74 | if bind != null then | |
| 75 | { | |
| 76 | desc = titleCase desc; | |
| 77 | inherit (bind) mode key action; | |
| 78 | } | |
| 79 | else | |
| 80 | null | |
| 81 | ) config.vim.keybinds | |
| 82 | ); | |
| 83 | } |
modules/neovim/lib.lua created+27| ... | ... | @@ -0,0 +1,27 @@ |
| 1 | -- Ported from https://www.reddit.com/r/neovim/comments/vemydn | |
| 2 | vim.api.nvim_create_user_command("FullscreenTerm", function(opts) | |
| 3 | 	vim.cmd("tab terminal " .. opts.args) | |
| 4 | 	local laststatus = vim.o.laststatus | |
| 5 | 	local showtabline = vim.o.showtabline | |
| 6 | 	local cmdheight = vim.o.cmdheight | |
| 7 | 	vim.o.laststatus = 0 | |
| 8 | 	vim.o.cmdheight = 0 | |
| 9 | 	vim.o.showtabline = 0 | |
| 10 | 	vim.wo.signcolumn = "no" | |
| 11 | 	vim.wo.relativenumber = false | |
| 12 | 	vim.wo.number = false | |
| 13 | 	vim.cmd( | |
| 14 | 		"autocmd! TermClose <buffer=abuf> " | |
| 15 | 			.. "if !v:event.status" | |
| 16 | 			.. " | exec 'bd! '..expand('<abuf>')" | |
| 17 | 			.. " | endif" | |
| 18 | 			.. " | checktime" | |
| 19 | 			.. " | set laststatus=" | |
| 20 | 			.. laststatus | |
| 21 | 			.. " | set cmdheight=" | |
| 22 | 			.. cmdheight | |
| 23 | 			.. " | set showtabline=" | |
| 24 | 			.. showtabline | |
| 25 | 	) | |
| 26 | 	vim.cmd("startinsert") | |
| 27 | end, { nargs = "*" }) |
nvim+2-2| ... | ... | @@ -1,11 +1,11 @@ |
| 1 | 1 | #!/bin/sh |
| 2 | 2 | username="$(id -u -n)" |
| 3 | 3 | if [ "$username" = "clo" ]; then |
| 4 | name="chloe" | |
| 4 | name="clover" | |
| 5 | 5 | elif [ "$username" = "nmarks" ]; then |
| 6 | 6 | name="natalie" |
| 7 | 7 | elif [ "$username" = "fish" ]; then |
| 8 | name="julia" | |
| 8 | name="fish" | |
| 9 | 9 | fi |
| 10 | 10 | if [ -z "$name" ]; then |
| 11 | 11 | echo "Configure this wrapper script with your name." >&2 |
readme.md+3-3| ... | ... | @@ -1,7 +1,7 @@ |
| 1 | 1 | # nix config |
| 2 | 2 | |
| 3 | this setup allows natalie and chloe to share common configuration between their | |
| 4 | machines, but also share useful modules between each other. | |
| 3 | this setup allows natalie, clover, and more to share common configuration | |
| 4 | between their machines, but also share useful modules between each other. | |
| 5 | 5 | |
| 6 | 6 | ``` |
| 7 | 7 | lib/ # reusable functions |
| ... | ... | @@ -12,7 +12,7 @@ modules/ # reusable modules |
| 12 | 12 | +-- nixos/ # linux configurations |
| 13 | 13 | +-- shared/ # shared between nixos-rebuild & darwin-rebuild |
| 14 | 14 | users/ |
| 15 | +-- chloe/ | |
| 15 | +-- clover/ | |
| 16 | 16 | | +-- user.nix # info about her |
| 17 | 17 | | +-- configuration.nix # for all hosts (system) |
| 18 | 18 | | +-- home.nix # for all hosts (userspace) |
users/chloe/configuration.nix deleted-44| ... | ... | @@ -1,44 +0,0 @@ |
| 1 | # Configuration applied to all of chloe's machines | |
| 2 | { pkgs, ... }: | |
| 3 | { | |
| 4 | # packages for all machines | |
| 5 | environment.systemPackages = with pkgs; [ | |
| 6 | git | |
| 7 | ]; | |
| 8 | ||
| 9 | services.tailscale.enable = true; | |
| 10 | ||
| 11 | # configuration for shared modules. | |
| 12 | # all custom options in 'shared' for clarity. | |
| 13 | shared.darwin = { | |
| 14 | macAppStoreApps = [ | |
| 15 | "adguard" | |
| 16 | "magnet" | |
| 17 | ]; | |
| 18 | }; | |
| 19 | ||
| 20 | # system preferences | |
| 21 | system.defaults = { | |
| 22 | NSGlobalDomain = { | |
| 23 | KeyRepeat = 1; | |
| 24 | InitialKeyRepeat = 10; | |
| 25 | }; | |
| 26 | dock = { | |
| 27 | show-recents = false; | |
| 28 | }; | |
| 29 | CustomUserPreferences = { | |
| 30 | NSGlobalDomain = { | |
| 31 | # TODO: how to change system accent color | |
| 32 | AppleHighlightColor = "1.000000 0.874510 0.701961 Orange"; | |
| 33 | ||
| 34 | # control how the fn keys operate | |
| 35 | # 0 = default to media keys, 1 = default to FN1-12 | |
| 36 | "com.apple.keyboard.fnState" = 1; | |
| 37 | ||
| 38 | NSUserKeyEquivalents = { | |
| 39 | Minimize = "@~^\\Uf70f"; # set minimize to a stupidly hard key to press | |
| 40 | }; | |
| 41 | }; | |
| 42 | }; | |
| 43 | }; | |
| 44 | } |
users/chloe/home.nix deleted-104| ... | ... | @@ -1,104 +0,0 @@ |
| 1 | { pkgs, host, ... }: | |
| 2 | let | |
| 3 | hostServer = false; | |
| 4 | in | |
| 5 | { | |
| 6 | home = { | |
| 7 | stateVersion = "23.05"; # Please read the comment before changing. | |
| 8 | packages = | |
| 9 | with pkgs; | |
| 10 | let | |
| 11 | # packages to always install | |
| 12 | all = [ | |
| 13 | (ffmpeg.override { | |
| 14 | withSvtav1 = true; | |
| 15 | }) | |
| 16 | ripgrep | |
| 17 | uv | |
| 18 | nh | |
| 19 | pkgs.autofmt | |
| 20 | ]; | |
| 21 | # packages to install for desktop environments (non-server) | |
| 22 | desktop = [ | |
| 23 | git-town | |
| 24 | ]; | |
| 25 | # packages to install on all servers | |
| 26 | server = [ ]; | |
| 27 | # packages to install on macOS desktops | |
| 28 | darwin = [ | |
| 29 | raycast | |
| 30 | ]; | |
| 31 | # packages to install on linux desktops | |
| 32 | linux = [ | |
| 33 | reaper # TODO: why does this break on macOS | |
| 34 | ]; | |
| 35 | in | |
| 36 | all ++ (if host.darwin then darwin else linux) ++ (if hostServer then server else desktop); | |
| 37 | }; | |
| 38 | programs = { | |
| 39 | # sort-lines:start | |
| 40 | # bat.enable = true; | |
| 41 | btop.enable = true; | |
| 42 | fd.enable = true; | |
| 43 | hyfetch.enable = true; | |
| 44 | # sort-lines:end | |
| 45 | ||
| 46 | ghostty = { | |
| 47 | enable = true; | |
| 48 | shader = "cursor-smear-black.glsl"; | |
| 49 | package = null; | |
| 50 | settings = { | |
| 51 | theme = "light:catppuccin-latte,dark:catppuccin-macchiato"; | |
| 52 | font-family = "AT Name Mono"; | |
| 53 | adjust-cursor-thickness = 1; | |
| 54 | minimum-contrast = 1.1; | |
| 55 | background-opacity = 0.9; | |
| 56 | background-blur = true; | |
| 57 | }; | |
| 58 | }; | |
| 59 | ||
| 60 | # zsh is the shell i use | |
| 61 | zsh = { | |
| 62 | enable = true; | |
| 63 | enableCompletion = true; | |
| 64 | autosuggestion.enable = true; | |
| 65 | syntaxHighlighting.enable = true; | |
| 66 | ||
| 67 | history.size = 10000; | |
| 68 | ||
| 69 | shellAliases = { | |
| 70 | switch = "nh darwin switch ~/config"; | |
| 71 | }; | |
| 72 | profileExtra = '' | |
| 73 | function python() { | |
| 74 | dirname=$(dirname $1 2>/dev/null) | |
| 75 | if [ -z "$dirname" ]; then | |
| 76 | dirname=$(pwd) | |
| 77 | fi | |
| 78 | uv run --project "$dirname" "$@" | |
| 79 | } | |
| 80 | ''; | |
| 81 | }; | |
| 82 | ||
| 83 | # use a git-specific email | |
| 84 | git.userEmail = "git@paperclover.net"; | |
| 85 | ||
| 86 | ssh = { | |
| 87 | enable = true; | |
| 88 | matchBlocks = rec { | |
| 89 | zenith = { | |
| 90 | user = "clo"; | |
| 91 | port = 222; | |
| 92 | }; | |
| 93 | "nas.paperclover.net" = zenith; | |
| 94 | }; | |
| 95 | }; | |
| 96 | neovide = { | |
| 97 | enable = !hostServer; | |
| 98 | settings = { | |
| 99 | font.normal = "AT Name Mono"; | |
| 100 | font.size = 13; | |
| 101 | }; | |
| 102 | }; | |
| 103 | }; | |
| 104 | } |
users/chloe/paperback/configuration.nix deleted-6| ... | ... | @@ -1,6 +0,0 @@ |
| 1 | _: { | |
| 2 | homebrew = { | |
| 3 | enable = true; | |
| 4 | casks = [ "eloston-chromium" ]; | |
| 5 | }; | |
| 6 | } |
users/chloe/paperback/home.nix deleted-28| ... | ... | @@ -1,28 +0,0 @@ |
| 1 | { pkgs, ... }: | |
| 2 | { | |
| 3 | # these programs are not globally installed to reduce distractions. | |
| 4 | # most of these are needed for my work environment. | |
| 5 | programs = { | |
| 6 | bun.enable = true; | |
| 7 | zed-editor.enable = true; | |
| 8 | zsh.profileExtra = '' | |
| 9 | _bun() { | |
| 10 | local context state line | |
| 11 | _arguments -C '*:file:_files' | |
| 12 | } | |
| 13 | ''; | |
| 14 | }; | |
| 15 | home.packages = with pkgs; [ | |
| 16 | doppler | |
| 17 | nodejs_22 | |
| 18 | rustup | |
| 19 | typescript | |
| 20 | pm2 | |
| 21 | pnpm | |
| 22 | yt-dlp | |
| 23 | spotdl | |
| 24 | zig | |
| 25 | ssm-session-manager-plugin | |
| 26 | awscli | |
| 27 | ]; | |
| 28 | } |
users/chloe/sandwich/configuration.nix deleted-10| ... | ... | @@ -1,10 +0,0 @@ |
| 1 | { pkgs, ... }: | |
| 2 | { | |
| 3 | shared.darwin = { | |
| 4 | macAppStoreApps = [ | |
| 5 | "final-cut-pro" | |
| 6 | "logic-pro" | |
| 7 | "motion" | |
| 8 | ]; | |
| 9 | }; | |
| 10 | } |
users/chloe/user.nix deleted-18| ... | ... | @@ -1,18 +0,0 @@ |
| 1 | # This definition is used by modules to customize as needed. | |
| 2 | { | |
| 3 | username = "clo"; # username | |
| 4 | name = "chloe caruso"; | |
| 5 | email = "account@paperclover.net"; | |
| 6 | timeZone = "America/Los_Angeles"; | |
| 7 | ||
| 8 | dotfilesDir = "~/config"; # absolute path of the local repo | |
| 9 | ||
| 10 | # Stylix/Theming | |
| 11 | theme = null; | |
| 12 | #font | |
| 13 | sexuality = "lesbian"; # hyfetch | |
| 14 | ||
| 15 | # Default terminal command. NOTE: ghostty is not installed for you | |
| 16 | term = "ghostty"; # preferred $TERMINAL | |
| 17 | editor = "nvim"; # preferred $EDITOR | |
| 18 | } |
users/chloe/vim.nix deleted-65| ... | ... | @@ -1,65 +0,0 @@ |
| 1 | _: { | |
| 2 | vim = { | |
| 3 | options = { | |
| 4 | linebreak = true; | |
| 5 | }; | |
| 6 | git = { | |
| 7 | gitsigns.setupOpts = { | |
| 8 | current_line_blame = true; | |
| 9 | current_line_blame_opts = { | |
| 10 | virt_text = true; | |
| 11 | virt_text_pos = "right_align"; | |
| 12 | delay = 25; | |
| 13 | ignore_whitespace = true; | |
| 14 | virt_text_priority = 100; | |
| 15 | use_focus = true; | |
| 16 | }; | |
| 17 | }; | |
| 18 | }; | |
| 19 | autocomplete.blink-cmp = { | |
| 20 | enable = true; | |
| 21 | mappings = { | |
| 22 | close = null; | |
| 23 | complete = null; | |
| 24 | confirm = null; | |
| 25 | next = null; | |
| 26 | previous = null; | |
| 27 | scrollDocsDown = null; | |
| 28 | scrollDocsUp = null; | |
| 29 | }; | |
| 30 | ||
| 31 | setupOpts = { | |
| 32 | keymap = { | |
| 33 | preset = "super-tab"; | |
| 34 | }; | |
| 35 | completion = { | |
| 36 | ghost_text.enabled = false; | |
| 37 | list.selection.preselect = true; | |
| 38 | trigger = { | |
| 39 | show_in_snippet = true; | |
| 40 | }; | |
| 41 | accept.auto_brackets.enabled = true; | |
| 42 | }; | |
| 43 | signature = { | |
| 44 | enabled = true; | |
| 45 | }; | |
| 46 | }; | |
| 47 | }; | |
| 48 | ||
| 49 | keymaps = | |
| 50 | let | |
| 51 | mkKeymap = mode: key: action: desc: { | |
| 52 | inherit mode; | |
| 53 | inherit key action desc; | |
| 54 | }; | |
| 55 | n = mkKeymap "n"; # normal mode | |
| 56 | in | |
| 57 | [ | |
| 58 | # UI | |
| 59 | (n "<leader>e" ":lua require('snacks').explorer()<CR>" "File Explorer") | |
| 60 | # Find Files | |
| 61 | (n "<leader><space>" ":lua require('snacks').picker.smart()<CR>" "Smart Find Files") | |
| 62 | (n "<leader>f" ":lua require('snacks').picker.grep()<CR>" "Grep Files") | |
| 63 | ]; | |
| 64 | }; | |
| 65 | } |
users/clover/configuration.nix created+44| ... | ... | @@ -0,0 +1,44 @@ |
| 1 | # Configuration applied to all of clover's machines | |
| 2 | { pkgs, ... }: | |
| 3 | { | |
| 4 | # packages for all machines | |
| 5 | environment.systemPackages = with pkgs; [ | |
| 6 | git | |
| 7 | ]; | |
| 8 | ||
| 9 | services.tailscale.enable = true; | |
| 10 | ||
| 11 | # configuration for shared modules. | |
| 12 | # all custom options in 'shared' for clarity. | |
| 13 | shared.darwin = { | |
| 14 | macAppStoreApps = [ | |
| 15 | "adguard" | |
| 16 | "magnet" | |
| 17 | ]; | |
| 18 | }; | |
| 19 | ||
| 20 | # system preferences | |
| 21 | system.defaults = { | |
| 22 | NSGlobalDomain = { | |
| 23 | KeyRepeat = 1; | |
| 24 | InitialKeyRepeat = 10; | |
| 25 | }; | |
| 26 | dock = { | |
| 27 | show-recents = false; | |
| 28 | }; | |
| 29 | CustomUserPreferences = { | |
| 30 | NSGlobalDomain = { | |
| 31 | # TODO: how to change system accent color | |
| 32 | AppleHighlightColor = "1.000000 0.874510 0.701961 Orange"; | |
| 33 | ||
| 34 | # control how the fn keys operate | |
| 35 | # 0 = default to media keys, 1 = default to FN1-12 | |
| 36 | "com.apple.keyboard.fnState" = 1; | |
| 37 | ||
| 38 | NSUserKeyEquivalents = { | |
| 39 | Minimize = "@~^\\Uf70f"; # set minimize to a stupidly hard key to press | |
| 40 | }; | |
| 41 | }; | |
| 42 | }; | |
| 43 | }; | |
| 44 | } |
users/clover/home.nix created+105| ... | ... | @@ -0,0 +1,105 @@ |
| 1 | { pkgs, host, ... }: | |
| 2 | let | |
| 3 | hostServer = false; | |
| 4 | in | |
| 5 | { | |
| 6 | home = { | |
| 7 | stateVersion = "23.05"; # Please read the comment before changing. | |
| 8 | packages = | |
| 9 | with pkgs; | |
| 10 | let | |
| 11 | # packages to always install | |
| 12 | all = [ | |
| 13 | (ffmpeg.override { | |
| 14 | withSvtav1 = true; | |
| 15 | }) | |
| 16 | ripgrep | |
| 17 | uv | |
| 18 | nh | |
| 19 | pkgs.autofmt | |
| 20 | ]; | |
| 21 | # packages to install for desktop environments (non-server) | |
| 22 | desktop = [ | |
| 23 | git-town | |
| 24 | lazygit | |
| 25 | ]; | |
| 26 | # packages to install on all servers | |
| 27 | server = [ ]; | |
| 28 | # packages to install on macOS desktops | |
| 29 | darwin = [ | |
| 30 | raycast | |
| 31 | ]; | |
| 32 | # packages to install on linux desktops | |
| 33 | linux = [ | |
| 34 | reaper # TODO: why does this break on macOS | |
| 35 | ]; | |
| 36 | in | |
| 37 | all ++ (if host.darwin then darwin else linux) ++ (if hostServer then server else desktop); | |
| 38 | }; | |
| 39 | programs = { | |
| 40 | # sort-lines:start | |
| 41 | # bat.enable = true; | |
| 42 | btop.enable = true; | |
| 43 | fd.enable = true; | |
| 44 | hyfetch.enable = true; | |
| 45 | # sort-lines:end | |
| 46 | ||
| 47 | ghostty = { | |
| 48 | enable = true; | |
| 49 | shader = "cursor-smear-black.glsl"; | |
| 50 | package = null; | |
| 51 | settings = { | |
| 52 | theme = "light:catppuccin-latte,dark:catppuccin-macchiato"; | |
| 53 | font-family = "AT Name Mono"; | |
| 54 | adjust-cursor-thickness = 1; | |
| 55 | minimum-contrast = 1.1; | |
| 56 | background-opacity = 0.9; | |
| 57 | background-blur = true; | |
| 58 | }; | |
| 59 | }; | |
| 60 | ||
| 61 | # zsh is the shell i use | |
| 62 | zsh = { | |
| 63 | enable = true; | |
| 64 | enableCompletion = true; | |
| 65 | autosuggestion.enable = true; | |
| 66 | syntaxHighlighting.enable = true; | |
| 67 | ||
| 68 | history.size = 10000; | |
| 69 | ||
| 70 | shellAliases = { | |
| 71 | switch = "nh darwin switch ~/config"; | |
| 72 | }; | |
| 73 | profileExtra = '' | |
| 74 | function python() { | |
| 75 | dirname=$(dirname $1 2>/dev/null) | |
| 76 | if [ -z "$dirname" ]; then | |
| 77 | dirname=$(pwd) | |
| 78 | fi | |
| 79 | uv run --project "$dirname" "$@" | |
| 80 | } | |
| 81 | ''; | |
| 82 | }; | |
| 83 | ||
| 84 | # use a git-specific email | |
| 85 | git.userEmail = "git@paperclover.net"; | |
| 86 | ||
| 87 | ssh = { | |
| 88 | enable = true; | |
| 89 | matchBlocks = rec { | |
| 90 | zenith = { | |
| 91 | user = "clo"; | |
| 92 | port = 222; | |
| 93 | }; | |
| 94 | "nas.paperclover.net" = zenith; | |
| 95 | }; | |
| 96 | }; | |
| 97 | neovide = { | |
| 98 | enable = !hostServer; | |
| 99 | settings = { | |
| 100 | font.normal = "AT Name Mono"; | |
| 101 | font.size = 13; | |
| 102 | }; | |
| 103 | }; | |
| 104 | }; | |
| 105 | } |
users/clover/paperback/configuration.nix created+9| ... | ... | @@ -0,0 +1,9 @@ |
| 1 | _: { | |
| 2 | homebrew = { | |
| 3 | enable = true; | |
| 4 | casks = [ | |
| 5 | "eloston-chromium" | |
| 6 | "db-browser-for-sqlite" | |
| 7 | ]; | |
| 8 | }; | |
| 9 | } |
users/clover/paperback/home.nix created+28| ... | ... | @@ -0,0 +1,28 @@ |
| 1 | { pkgs, ... }: | |
| 2 | { | |
| 3 | # these programs are not globally installed to reduce distractions. | |
| 4 | # most of these are needed for my work environment. | |
| 5 | programs = { | |
| 6 | bun.enable = true; | |
| 7 | zsh.profileExtra = '' | |
| 8 | _bun() { | |
| 9 | local context state line | |
| 10 | _arguments -C '*:file:_files' | |
| 11 | } | |
| 12 | ''; | |
| 13 | }; | |
| 14 | home.packages = with pkgs; [ | |
| 15 | doppler | |
| 16 | deno | |
| 17 | nodejs_22 | |
| 18 | rustup | |
| 19 | typescript | |
| 20 | pm2 | |
| 21 | pnpm | |
| 22 | yt-dlp | |
| 23 | spotdl | |
| 24 | zig | |
| 25 | ssm-session-manager-plugin | |
| 26 | awscli | |
| 27 | ]; | |
| 28 | } |
users/clover/sandwich/configuration.nix created+10| ... | ... | @@ -0,0 +1,10 @@ |
| 1 | { pkgs, ... }: | |
| 2 | { | |
| 3 | shared.darwin = { | |
| 4 | macAppStoreApps = [ | |
| 5 | "final-cut-pro" | |
| 6 | "logic-pro" | |
| 7 | "motion" | |
| 8 | ]; | |
| 9 | }; | |
| 10 | } |
users/clover/user.nix created+11| ... | ... | @@ -0,0 +1,11 @@ |
| 1 | # This definition is used by modules to customize as needed. | |
| 2 | { | |
| 3 | username = "clo"; # username | |
| 4 | name = "clover caruso"; | |
| 5 | email = "account@paperclover.net"; | |
| 6 | timeZone = "America/Los_Angeles"; | |
| 7 | dotfilesDir = "~/config"; # absolute path of the local repo | |
| 8 | sexuality = "lesbian"; # hyfetch | |
| 9 | term = "ghostty"; # preferred $TERMINAL | |
| 10 | editor = "nvim"; # preferred $EDITOR | |
| 11 | } |
users/clover/vim.nix created+20| ... | ... | @@ -0,0 +1,20 @@ |
| 1 | _: { | |
| 2 | vim = { | |
| 3 | options = { | |
| 4 | linebreak = true; | |
| 5 | }; | |
| 6 | git = { | |
| 7 | gitsigns.setupOpts = { | |
| 8 | current_line_blame = false; | |
| 9 | current_line_blame_opts = { | |
| 10 | virt_text = true; | |
| 11 | virt_text_pos = "right_align"; | |
| 12 | delay = 25; | |
| 13 | ignore_whitespace = true; | |
| 14 | virt_text_priority = 100; | |
| 15 | use_focus = true; | |
| 16 | }; | |
| 17 | }; | |
| 18 | }; | |
| 19 | }; | |
| 20 | } |
users/fish/cattop/configuration.nix created+130| ... | ... | @@ -0,0 +1,130 @@ |
| 1 | # Edit this configuration file to define what should be installed on | |
| 2 | # your system. Help is available in the configuration.nix(5) man page, on | |
| 3 | # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). | |
| 4 | ||
| 5 | { | |
| 6 | config, | |
| 7 | lib, | |
| 8 | pkgs, | |
| 9 | ... | |
| 10 | }: | |
| 11 | ||
| 12 | { | |
| 13 | imports = [ | |
| 14 | # Include the results of the hardware scan. | |
| 15 | ./hardware-configuration.nix | |
| 16 | ]; | |
| 17 | ||
| 18 | # Use the systemd-boot EFI boot loader. | |
| 19 | boot.loader.efi.canTouchEfiVariables = true; | |
| 20 | ||
| 21 | # networking.hostName = "nixos"; # Define your hostname. | |
| 22 | # Pick only one of the below networking options. | |
| 23 | # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. | |
| 24 | # networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. | |
| 25 | ||
| 26 | # Set your time zone. | |
| 27 | # time.timeZone = "Europe/Amsterdam"; | |
| 28 | ||
| 29 | # Configure network proxy if necessary | |
| 30 | # networking.proxy.default = "http://user:password@proxy:port/"; | |
| 31 | # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; | |
| 32 | ||
| 33 | # Select internationalisation properties. | |
| 34 | # i18n.defaultLocale = "en_US.UTF-8"; | |
| 35 | # console = { | |
| 36 | # font = "Lat2-Terminus16"; | |
| 37 | # keyMap = "us"; | |
| 38 | # useXkbConfig = true; # use xkb.options in tty. | |
| 39 | # }; | |
| 40 | ||
| 41 | # Enable the X11 windowing system. | |
| 42 | services.xserver.enable = true; | |
| 43 | ||
| 44 | # Enable the GNOME Desktop Environment. | |
| 45 | services.xserver.displayManager.gdm.enable = true; | |
| 46 | services.xserver.desktopManager.gnome.enable = true; | |
| 47 | ||
| 48 | # Configure keymap in X11 | |
| 49 | # services.xserver.xkb.layout = "us"; | |
| 50 | # services.xserver.xkb.options = "eurosign:e,caps:escape"; | |
| 51 | ||
| 52 | # Enable CUPS to print documents. | |
| 53 | # services.printing.enable = true; | |
| 54 | ||
| 55 | # Enable sound. | |
| 56 | # services.pulseaudio.enable = true; | |
| 57 | # OR | |
| 58 | # services.pipewire = { | |
| 59 | # enable = true; | |
| 60 | # pulse.enable = true; | |
| 61 | # }; | |
| 62 | ||
| 63 | # Enable touchpad support (enabled default in most desktopManager). | |
| 64 | # services.libinput.enable = true; | |
| 65 | ||
| 66 | # Define a user account. Don't forget to set a password with ‘passwd’. | |
| 67 | users.users.fish = { | |
| 68 | isNormalUser = true; | |
| 69 | extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. | |
| 70 | packages = with pkgs; [ | |
| 71 | tree | |
| 72 | git | |
| 73 | nh | |
| 74 | vim | |
| 75 | fish | |
| 76 | ]; | |
| 77 | }; | |
| 78 | ||
| 79 | programs.firefox.enable = true; | |
| 80 | ||
| 81 | # List packages installed in system profile. | |
| 82 | # You can use https://search.nixos.org/ to find more packages (and options). | |
| 83 | environment.systemPackages = with pkgs; [ | |
| 84 | vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. | |
| 85 | wget | |
| 86 | ]; | |
| 87 | ||
| 88 | # Some programs need SUID wrappers, can be configured further or are | |
| 89 | # started in user sessions. | |
| 90 | programs.mtr.enable = true; | |
| 91 | programs.gnupg.agent = { | |
| 92 | enable = true; | |
| 93 | enableSSHSupport = true; | |
| 94 | }; | |
| 95 | ||
| 96 | # List services that you want to enable: | |
| 97 | ||
| 98 | # Enable the OpenSSH daemon. | |
| 99 | # services.openssh.enable = true; | |
| 100 | ||
| 101 | # Open ports in the firewall. | |
| 102 | # networking.firewall.allowedTCPPorts = [ ... ]; | |
| 103 | # networking.firewall.allowedUDPPorts = [ ... ]; | |
| 104 | # Or disable the firewall altogether. | |
| 105 | # networking.firewall.enable = false; | |
| 106 | ||
| 107 | # Copy the NixOS configuration file and link it from the resulting system | |
| 108 | # (/run/current-system/configuration.nix). This is useful in case you | |
| 109 | # accidentally delete configuration.nix. | |
| 110 | # system.copySystemConfiguration = true; | |
| 111 | ||
| 112 | # This option defines the first version of NixOS you have installed on this particular machine, | |
| 113 | # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. | |
| 114 | # | |
| 115 | # Most users should NEVER change this value after the initial install, for any reason, | |
| 116 | # even if you've upgraded your system to a new NixOS release. | |
| 117 | # | |
| 118 | # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, | |
| 119 | # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how | |
| 120 | # to actually do that. | |
| 121 | # | |
| 122 | # This value being lower than the current NixOS release does NOT mean your system is | |
| 123 | # out of date, out of support, or vulnerable. | |
| 124 | # | |
| 125 | # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, | |
| 126 | # and migrated your data accordingly. | |
| 127 | # | |
| 128 | # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . | |
| 129 | system.stateVersion = "25.05"; # Did you read the comment? | |
| 130 | } |
users/fish/cattop/hardware-configuration.nix created+54| ... | ... | @@ -0,0 +1,54 @@ |
| 1 | # Do not modify this file! It was generated by ‘nixos-generate-config’ | |
| 2 | # and may be overwritten by future invocations. Please make changes | |
| 3 | # to /etc/nixos/configuration.nix instead. | |
| 4 | { | |
| 5 | config, | |
| 6 | lib, | |
| 7 | pkgs, | |
| 8 | modulesPath, | |
| 9 | ... | |
| 10 | }: | |
| 11 | ||
| 12 | { | |
| 13 | imports = [ | |
| 14 | (modulesPath + "/installer/scan/not-detected.nix") | |
| 15 | ]; | |
| 16 | ||
| 17 | boot.initrd.availableKernelModules = [ | |
| 18 | "xhci_pci" | |
| 19 | "thunderbolt" | |
| 20 | "vmd" | |
| 21 | "nvme" | |
| 22 | ]; | |
| 23 | boot.initrd.kernelModules = [ ]; | |
| 24 | boot.kernelModules = [ "kvm-intel" ]; | |
| 25 | boot.extraModulePackages = [ ]; | |
| 26 | ||
| 27 | fileSystems."/" = { | |
| 28 | device = "/dev/disk/by-uuid/8eb0d6a2-b8cf-4ef2-ba2a-e25a5555b0bc"; | |
| 29 | fsType = "ext4"; | |
| 30 | }; | |
| 31 | ||
| 32 | fileSystems."/boot/efi" = { | |
| 33 | device = "/dev/disk/by-uuid/3B51-4A1C"; | |
| 34 | fsType = "vfat"; | |
| 35 | options = [ | |
| 36 | "fmask=0077" | |
| 37 | "dmask=0077" | |
| 38 | ]; | |
| 39 | }; | |
| 40 | ||
| 41 | swapDevices = [ | |
| 42 | { device = "/dev/disk/by-uuid/58ee9d19-292f-49b5-9979-341b42e8e09d"; } | |
| 43 | ]; | |
| 44 | ||
| 45 | # Enables DHCP on each ethernet and wireless interface. In case of scripted networking | |
| 46 | # (the default) this is the recommended approach. When using systemd-networkd it's | |
| 47 | # still possible to use this option, but it's recommended to use it in conjunction | |
| 48 | # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. | |
| 49 | networking.useDHCP = lib.mkDefault true; | |
| 50 | # networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true; | |
| 51 | ||
| 52 | nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | |
| 53 | hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; | |
| 54 | } |
users/fish/cattop/home.nix created+77| ... | ... | @@ -0,0 +1,77 @@ |
| 1 | { | |
| 2 | inputs, | |
| 3 | config, | |
| 4 | pkgs, | |
| 5 | lib, | |
| 6 | userSettings, | |
| 7 | systemSettings, | |
| 8 | ... | |
| 9 | }: | |
| 10 | ||
| 11 | { | |
| 12 | home = { | |
| 13 | stateVersion = "23.05"; # Don't change this unless upgrading Home Manager versions | |
| 14 | ||
| 15 | packages = with pkgs; [ | |
| 16 | # General applications | |
| 17 | ghostty | |
| 18 | stremio | |
| 19 | julia | |
| 20 | qbittorrent | |
| 21 | calibre | |
| 22 | mpv | |
| 23 | signal-desktop | |
| 24 | python3 | |
| 25 | gh | |
| 26 | ||
| 27 | # Gaming | |
| 28 | bottles | |
| 29 | lutris | |
| 30 | mangohud | |
| 31 | dxvk_2 | |
| 32 | steam-run | |
| 33 | vulkan-tools | |
| 34 | path-of-building | |
| 35 | wineWowPackages.stable | |
| 36 | winetricks | |
| 37 | (prismlauncher.override { gamemodeSupport = true; }) | |
| 38 | ||
| 39 | # System & desktop tools | |
| 40 | wofi | |
| 41 | xorg.xauth | |
| 42 | kdePackages.dolphin | |
| 43 | xdg-desktop-portal-gtk | |
| 44 | xclip | |
| 45 | pavucontrol | |
| 46 | ethtool | |
| 47 | grub2 | |
| 48 | efibootmgr | |
| 49 | distrobox | |
| 50 | ||
| 51 | # Dev tools | |
| 52 | legcord | |
| 53 | hyfetch | |
| 54 | arduino-cli | |
| 55 | rust-bin.stable.latest.default | |
| 56 | tytools | |
| 57 | inputs.zls.packages.x86_64-linux.zls | |
| 58 | platformio | |
| 59 | usbutils | |
| 60 | teensy-loader-cli | |
| 61 | teensyduino | |
| 62 | ]; | |
| 63 | }; | |
| 64 | ||
| 65 | programs = { | |
| 66 | btop.enable = true; | |
| 67 | hyfetch.enable = true; | |
| 68 | ||
| 69 | gh = { | |
| 70 | enable = true; | |
| 71 | gitCredentialHelper.enable = true; | |
| 72 | }; | |
| 73 | ||
| 74 | # Uncomment if you want to use MangoHud system-wide | |
| 75 | # mangohud.enable = true; | |
| 76 | }; | |
| 77 | } |
users/fish/cattop/home.nix.old created+72| ... | ... | @@ -0,0 +1,72 @@ |
| 1 | { | |
| 2 | inputs, | |
| 3 | config, | |
| 4 | pkgs, | |
| 5 | lib, | |
| 6 | userSettings, | |
| 7 | systemSettings, | |
| 8 | ... | |
| 9 | }: | |
| 10 | { | |
| 11 | home = { | |
| 12 | stateVersion = "23.05"; # Please read the comment before changing. | |
| 13 | ||
| 14 | packages = with pkgs; [ | |
| 15 | #building macos apps hard :( | |
| 16 | ghostty | |
| 17 | stremio | |
| 18 | julia | |
| 19 | qbittorrent | |
| 20 | ||
| 21 | #gaming | |
| 22 | bottles | |
| 23 | lutris | |
| 24 | mangohud | |
| 25 | dxvk_2 | |
| 26 | steam-run | |
| 27 | vulkan-tools | |
| 28 | path-of-building | |
| 29 | wineWowPackages.stable | |
| 30 | winetricks | |
| 31 | (prismlauncher.override { gamemodeSupport = true; }) | |
| 32 | ||
| 33 | #window manager stuff | |
| 34 | wofi | |
| 35 | xorg.xauth | |
| 36 | #linux tools | |
| 37 | legcord | |
| 38 | pavucontrol | |
| 39 | ethtool | |
| 40 | grub2 | |
| 41 | efibootmgr | |
| 42 | distrobox | |
| 43 | xdg-desktop-portal-gtk | |
| 44 | xclip | |
| 45 | kdePackages.dolphin | |
| 46 | hyfetch | |
| 47 | arduino-cli | |
| 48 | python3 | |
| 49 | gh | |
| 50 | #broken on macos | |
| 51 | calibre | |
| 52 | mpv | |
| 53 | wireguard-tools | |
| 54 | signal-desktop | |
| 55 | inputs.zls.packages.x86_64-linux.zls | |
| 56 | rust-bin.stable.latest.default | |
| 57 | ]; | |
| 58 | ||
| 59 | # programs.mangohud.enable = true; | |
| 60 | programs = { | |
| 61 | btop.enable = true; | |
| 62 | hyfetch.enable = true; | |
| 63 | programs.gh = { | |
| 64 | enable = true; | |
| 65 | gitCredentialHelper = { | |
| 66 | enable = true; | |
| 67 | }; | |
| 68 | }; | |
| 69 | }; | |
| 70 | ||
| 71 | }; | |
| 72 | } |
users/fish/configuration.nix created+9| ... | ... | @@ -0,0 +1,9 @@ |
| 1 | # Applied to all systems | |
| 2 | { | |
| 3 | inputs, | |
| 4 | pkgs, | |
| 5 | host, | |
| 6 | ... | |
| 7 | }: | |
| 8 | { | |
| 9 | } |
users/fish/user.nix created+13| ... | ... | @@ -0,0 +1,13 @@ |
| 1 | rec { | |
| 2 | username = "fish"; # username | |
| 3 | name = "Fish"; # name/identifier | |
| 4 | email = "fish@fishcat.fish"; # email (used for certain configurations) | |
| 5 | dotfilesDir = "~/config"; # absolute path of the local repo | |
| 6 | theme = "catppuccin-mocha"; # name of theme that stylix will use | |
| 7 | browser = "firefox"; # Default browser; must select one from ./user/app/browser/ | |
| 8 | term = "ghostty"; # Default terminal command; | |
| 9 | font = "iosevka"; # Selected font | |
| 10 | editor = "neovim"; # Default editor; | |
| 11 | timeZone = "America/Los_Angeles"; | |
| 12 | sexuality = "transgender"; | |
| 13 | } |
users/fish/vim.nix created+3| ... | ... | @@ -0,0 +1,3 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | } |
users/julia/cattop/configuration.nix deleted-130| ... | ... | @@ -1,130 +0,0 @@ |
| 1 | # Edit this configuration file to define what should be installed on | |
| 2 | # your system. Help is available in the configuration.nix(5) man page, on | |
| 3 | # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). | |
| 4 | ||
| 5 | { | |
| 6 | config, | |
| 7 | lib, | |
| 8 | pkgs, | |
| 9 | ... | |
| 10 | }: | |
| 11 | ||
| 12 | { | |
| 13 | imports = [ | |
| 14 | # Include the results of the hardware scan. | |
| 15 | ./hardware-configuration.nix | |
| 16 | ]; | |
| 17 | ||
| 18 | # Use the systemd-boot EFI boot loader. | |
| 19 | boot.loader.efi.canTouchEfiVariables = true; | |
| 20 | ||
| 21 | # networking.hostName = "nixos"; # Define your hostname. | |
| 22 | # Pick only one of the below networking options. | |
| 23 | # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. | |
| 24 | # networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. | |
| 25 | ||
| 26 | # Set your time zone. | |
| 27 | # time.timeZone = "Europe/Amsterdam"; | |
| 28 | ||
| 29 | # Configure network proxy if necessary | |
| 30 | # networking.proxy.default = "http://user:password@proxy:port/"; | |
| 31 | # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; | |
| 32 | ||
| 33 | # Select internationalisation properties. | |
| 34 | # i18n.defaultLocale = "en_US.UTF-8"; | |
| 35 | # console = { | |
| 36 | # font = "Lat2-Terminus16"; | |
| 37 | # keyMap = "us"; | |
| 38 | # useXkbConfig = true; # use xkb.options in tty. | |
| 39 | # }; | |
| 40 | ||
| 41 | # Enable the X11 windowing system. | |
| 42 | services.xserver.enable = true; | |
| 43 | ||
| 44 | # Enable the GNOME Desktop Environment. | |
| 45 | services.xserver.displayManager.gdm.enable = true; | |
| 46 | services.xserver.desktopManager.gnome.enable = true; | |
| 47 | ||
| 48 | # Configure keymap in X11 | |
| 49 | # services.xserver.xkb.layout = "us"; | |
| 50 | # services.xserver.xkb.options = "eurosign:e,caps:escape"; | |
| 51 | ||
| 52 | # Enable CUPS to print documents. | |
| 53 | # services.printing.enable = true; | |
| 54 | ||
| 55 | # Enable sound. | |
| 56 | # services.pulseaudio.enable = true; | |
| 57 | # OR | |
| 58 | # services.pipewire = { | |
| 59 | # enable = true; | |
| 60 | # pulse.enable = true; | |
| 61 | # }; | |
| 62 | ||
| 63 | # Enable touchpad support (enabled default in most desktopManager). | |
| 64 | # services.libinput.enable = true; | |
| 65 | ||
| 66 | # Define a user account. Don't forget to set a password with ‘passwd’. | |
| 67 | users.users.fish = { | |
| 68 | isNormalUser = true; | |
| 69 | extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. | |
| 70 | packages = with pkgs; [ | |
| 71 | tree | |
| 72 | git | |
| 73 | nh | |
| 74 | vim | |
| 75 | fish | |
| 76 | ]; | |
| 77 | }; | |
| 78 | ||
| 79 | programs.firefox.enable = true; | |
| 80 | ||
| 81 | # List packages installed in system profile. | |
| 82 | # You can use https://search.nixos.org/ to find more packages (and options). | |
| 83 | environment.systemPackages = with pkgs; [ | |
| 84 | vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. | |
| 85 | wget | |
| 86 | ]; | |
| 87 | ||
| 88 | # Some programs need SUID wrappers, can be configured further or are | |
| 89 | # started in user sessions. | |
| 90 | programs.mtr.enable = true; | |
| 91 | programs.gnupg.agent = { | |
| 92 | enable = true; | |
| 93 | enableSSHSupport = true; | |
| 94 | }; | |
| 95 | ||
| 96 | # List services that you want to enable: | |
| 97 | ||
| 98 | # Enable the OpenSSH daemon. | |
| 99 | # services.openssh.enable = true; | |
| 100 | ||
| 101 | # Open ports in the firewall. | |
| 102 | # networking.firewall.allowedTCPPorts = [ ... ]; | |
| 103 | # networking.firewall.allowedUDPPorts = [ ... ]; | |
| 104 | # Or disable the firewall altogether. | |
| 105 | # networking.firewall.enable = false; | |
| 106 | ||
| 107 | # Copy the NixOS configuration file and link it from the resulting system | |
| 108 | # (/run/current-system/configuration.nix). This is useful in case you | |
| 109 | # accidentally delete configuration.nix. | |
| 110 | # system.copySystemConfiguration = true; | |
| 111 | ||
| 112 | # This option defines the first version of NixOS you have installed on this particular machine, | |
| 113 | # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. | |
| 114 | # | |
| 115 | # Most users should NEVER change this value after the initial install, for any reason, | |
| 116 | # even if you've upgraded your system to a new NixOS release. | |
| 117 | # | |
| 118 | # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, | |
| 119 | # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how | |
| 120 | # to actually do that. | |
| 121 | # | |
| 122 | # This value being lower than the current NixOS release does NOT mean your system is | |
| 123 | # out of date, out of support, or vulnerable. | |
| 124 | # | |
| 125 | # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, | |
| 126 | # and migrated your data accordingly. | |
| 127 | # | |
| 128 | # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . | |
| 129 | system.stateVersion = "25.05"; # Did you read the comment? | |
| 130 | } |
users/julia/cattop/hardware-configuration.nix deleted-54| ... | ... | @@ -1,54 +0,0 @@ |
| 1 | # Do not modify this file! It was generated by ‘nixos-generate-config’ | |
| 2 | # and may be overwritten by future invocations. Please make changes | |
| 3 | # to /etc/nixos/configuration.nix instead. | |
| 4 | { | |
| 5 | config, | |
| 6 | lib, | |
| 7 | pkgs, | |
| 8 | modulesPath, | |
| 9 | ... | |
| 10 | }: | |
| 11 | ||
| 12 | { | |
| 13 | imports = [ | |
| 14 | (modulesPath + "/installer/scan/not-detected.nix") | |
| 15 | ]; | |
| 16 | ||
| 17 | boot.initrd.availableKernelModules = [ | |
| 18 | "xhci_pci" | |
| 19 | "thunderbolt" | |
| 20 | "vmd" | |
| 21 | "nvme" | |
| 22 | ]; | |
| 23 | boot.initrd.kernelModules = [ ]; | |
| 24 | boot.kernelModules = [ "kvm-intel" ]; | |
| 25 | boot.extraModulePackages = [ ]; | |
| 26 | ||
| 27 | fileSystems."/" = { | |
| 28 | device = "/dev/disk/by-uuid/8eb0d6a2-b8cf-4ef2-ba2a-e25a5555b0bc"; | |
| 29 | fsType = "ext4"; | |
| 30 | }; | |
| 31 | ||
| 32 | fileSystems."/boot/efi" = { | |
| 33 | device = "/dev/disk/by-uuid/3B51-4A1C"; | |
| 34 | fsType = "vfat"; | |
| 35 | options = [ | |
| 36 | "fmask=0077" | |
| 37 | "dmask=0077" | |
| 38 | ]; | |
| 39 | }; | |
| 40 | ||
| 41 | swapDevices = [ | |
| 42 | { device = "/dev/disk/by-uuid/58ee9d19-292f-49b5-9979-341b42e8e09d"; } | |
| 43 | ]; | |
| 44 | ||
| 45 | # Enables DHCP on each ethernet and wireless interface. In case of scripted networking | |
| 46 | # (the default) this is the recommended approach. When using systemd-networkd it's | |
| 47 | # still possible to use this option, but it's recommended to use it in conjunction | |
| 48 | # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. | |
| 49 | networking.useDHCP = lib.mkDefault true; | |
| 50 | # networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true; | |
| 51 | ||
| 52 | nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | |
| 53 | hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; | |
| 54 | } |
users/julia/cattop/home.nix deleted-77| ... | ... | @@ -1,77 +0,0 @@ |
| 1 | { | |
| 2 | inputs, | |
| 3 | config, | |
| 4 | pkgs, | |
| 5 | lib, | |
| 6 | userSettings, | |
| 7 | systemSettings, | |
| 8 | ... | |
| 9 | }: | |
| 10 | ||
| 11 | { | |
| 12 | home = { | |
| 13 | stateVersion = "23.05"; # Don't change this unless upgrading Home Manager versions | |
| 14 | ||
| 15 | packages = with pkgs; [ | |
| 16 | # General applications | |
| 17 | ghostty | |
| 18 | stremio | |
| 19 | julia | |
| 20 | qbittorrent | |
| 21 | calibre | |
| 22 | mpv | |
| 23 | signal-desktop | |
| 24 | python3 | |
| 25 | gh | |
| 26 | ||
| 27 | # Gaming | |
| 28 | bottles | |
| 29 | lutris | |
| 30 | mangohud | |
| 31 | dxvk_2 | |
| 32 | steam-run | |
| 33 | vulkan-tools | |
| 34 | path-of-building | |
| 35 | wineWowPackages.stable | |
| 36 | winetricks | |
| 37 | (prismlauncher.override { gamemodeSupport = true; }) | |
| 38 | ||
| 39 | # System & desktop tools | |
| 40 | wofi | |
| 41 | xorg.xauth | |
| 42 | kdePackages.dolphin | |
| 43 | xdg-desktop-portal-gtk | |
| 44 | xclip | |
| 45 | pavucontrol | |
| 46 | ethtool | |
| 47 | grub2 | |
| 48 | efibootmgr | |
| 49 | distrobox | |
| 50 | ||
| 51 | # Dev tools | |
| 52 | legcord | |
| 53 | hyfetch | |
| 54 | arduino-cli | |
| 55 | rust-bin.stable.latest.default | |
| 56 | tytools | |
| 57 | inputs.zls.packages.x86_64-linux.zls | |
| 58 | platformio | |
| 59 | usbutils | |
| 60 | teensy-loader-cli | |
| 61 | teensyduino | |
| 62 | ]; | |
| 63 | }; | |
| 64 | ||
| 65 | programs = { | |
| 66 | btop.enable = true; | |
| 67 | hyfetch.enable = true; | |
| 68 | ||
| 69 | gh = { | |
| 70 | enable = true; | |
| 71 | gitCredentialHelper.enable = true; | |
| 72 | }; | |
| 73 | ||
| 74 | # Uncomment if you want to use MangoHud system-wide | |
| 75 | # mangohud.enable = true; | |
| 76 | }; | |
| 77 | } |
users/julia/cattop/home.nix.old deleted-72| ... | ... | @@ -1,72 +0,0 @@ |
| 1 | { | |
| 2 | inputs, | |
| 3 | config, | |
| 4 | pkgs, | |
| 5 | lib, | |
| 6 | userSettings, | |
| 7 | systemSettings, | |
| 8 | ... | |
| 9 | }: | |
| 10 | { | |
| 11 | home = { | |
| 12 | stateVersion = "23.05"; # Please read the comment before changing. | |
| 13 | ||
| 14 | packages = with pkgs; [ | |
| 15 | #building macos apps hard :( | |
| 16 | ghostty | |
| 17 | stremio | |
| 18 | julia | |
| 19 | qbittorrent | |
| 20 | ||
| 21 | #gaming | |
| 22 | bottles | |
| 23 | lutris | |
| 24 | mangohud | |
| 25 | dxvk_2 | |
| 26 | steam-run | |
| 27 | vulkan-tools | |
| 28 | path-of-building | |
| 29 | wineWowPackages.stable | |
| 30 | winetricks | |
| 31 | (prismlauncher.override { gamemodeSupport = true; }) | |
| 32 | ||
| 33 | #window manager stuff | |
| 34 | wofi | |
| 35 | xorg.xauth | |
| 36 | #linux tools | |
| 37 | legcord | |
| 38 | pavucontrol | |
| 39 | ethtool | |
| 40 | grub2 | |
| 41 | efibootmgr | |
| 42 | distrobox | |
| 43 | xdg-desktop-portal-gtk | |
| 44 | xclip | |
| 45 | kdePackages.dolphin | |
| 46 | hyfetch | |
| 47 | arduino-cli | |
| 48 | python3 | |
| 49 | gh | |
| 50 | #broken on macos | |
| 51 | calibre | |
| 52 | mpv | |
| 53 | wireguard-tools | |
| 54 | signal-desktop | |
| 55 | inputs.zls.packages.x86_64-linux.zls | |
| 56 | rust-bin.stable.latest.default | |
| 57 | ]; | |
| 58 | ||
| 59 | # programs.mangohud.enable = true; | |
| 60 | programs = { | |
| 61 | btop.enable = true; | |
| 62 | hyfetch.enable = true; | |
| 63 | programs.gh = { | |
| 64 | enable = true; | |
| 65 | gitCredentialHelper = { | |
| 66 | enable = true; | |
| 67 | }; | |
| 68 | }; | |
| 69 | }; | |
| 70 | ||
| 71 | }; | |
| 72 | } |
users/julia/configuration.nix deleted-9| ... | ... | @@ -1,9 +0,0 @@ |
| 1 | # Applied to all systems | |
| 2 | { | |
| 3 | inputs, | |
| 4 | pkgs, | |
| 5 | host, | |
| 6 | ... | |
| 7 | }: | |
| 8 | { | |
| 9 | } |
users/julia/user.nix deleted-13| ... | ... | @@ -1,13 +0,0 @@ |
| 1 | rec { | |
| 2 | username = "fish"; # username | |
| 3 | name = "Julia"; # name/identifier | |
| 4 | email = "fish@fishcat.fish"; # email (used for certain configurations) | |
| 5 | dotfilesDir = "~/config"; # absolute path of the local repo | |
| 6 | theme = "catppuccin-mocha"; # name of theme that stylix will use | |
| 7 | browser = "firefox"; # Default browser; must select one from ./user/app/browser/ | |
| 8 | term = "ghostty"; # Default terminal command; | |
| 9 | font = "iosevka"; # Selected font | |
| 10 | editor = "neovim"; # Default editor; | |
| 11 | timeZone = "America/Los_Angeles"; | |
| 12 | sexuality = "transgender"; | |
| 13 | } |
users/julia/vim.nix deleted-3| ... | ... | @@ -1,3 +0,0 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | } |