From 186851163199eb0f6c89663471d86197d23c7cc2 Mon Sep 17 00:00:00 2001 From: tristan Date: Tue, 30 Jul 2024 20:50:42 +0100 Subject: [PATCH 1/7] zenix: hyprlock tweaks --- home/desktop/hyprland/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home/desktop/hyprland/default.nix b/home/desktop/hyprland/default.nix index 0c377f0..0471c1c 100644 --- a/home/desktop/hyprland/default.nix +++ b/home/desktop/hyprland/default.nix @@ -55,9 +55,9 @@ in { settings = { # https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/ general = { - disable_loading_bar = true; hide_cursor = true; - no_fade_in = false; + grace = 10; + ignore_empty_input = true; }; background = [ From 55a7e151d4cbb0725cf8f500ca748833ba7ed389 Mon Sep 17 00:00:00 2001 From: Tristan Date: Tue, 30 Jul 2024 13:29:13 +0100 Subject: [PATCH 2/7] nixbook: nixvim nixbook: add more nixvim plugins --- flake.lock | 259 ++++++++++++++++++++++++++++- flake.nix | 135 +++++++++------ home/desktop/hyprland/default.nix | 1 - home/programs/neovim/config.lua | 30 ---- home/programs/neovim/default.nix | 57 +------ home/programs/neovim/lspconfig.lua | 54 ------ lib/mkconf.nix | 11 +- lib/nixvim.nix | 106 ++++++++++++ nixos/default.nix | 10 ++ 9 files changed, 470 insertions(+), 193 deletions(-) delete mode 100644 home/programs/neovim/config.lua delete mode 100644 home/programs/neovim/lspconfig.lua create mode 100644 lib/nixvim.nix diff --git a/flake.lock b/flake.lock index b4aa8e0..8c38799 100644 --- a/flake.lock +++ b/flake.lock @@ -114,6 +114,27 @@ "type": "github" } }, + "devshell": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1722113426, + "narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=", + "owner": "numtide", + "repo": "devshell", + "rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -131,6 +152,20 @@ } }, "flake-compat_2": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "revCount": 57, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, + "flake-compat_3": { "flake": false, "locked": { "lastModified": 1673956053, @@ -146,6 +181,45 @@ "type": "github" } }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719994518, + "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "fromYaml": { "flake": false, "locked": { @@ -162,6 +236,58 @@ "type": "github" } }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "nixvim", + "flake-compat" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ], + "nixpkgs-stable": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1721042469, + "narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "f451c19376071a90d8c58ab1a953c6e9840527fd", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "nixvim", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "gnome-shell": { "flake": false, "locked": { @@ -201,6 +327,27 @@ } }, "home-manager_2": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1722119539, + "narHash": "sha256-2kU90liMle0vKR8exJx1XM4hZh9CdNgZGHCTbeA9yzY=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "d0240a064db3987eb4d5204cf2400bc4452d9922", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_3": { "inputs": { "nixpkgs": [ "stylix", @@ -221,6 +368,27 @@ "type": "github" } }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1722082646, + "narHash": "sha256-od8dBWVP/ngg0cuoyEl/w9D+TCNDj6Kh4tr151Aax7w=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "0413754b3cdb879ba14f6e96915e5fdf06c6aab6", + "type": "github" + }, + "original": { + "owner": "lnl7", + "repo": "nix-darwin", + "type": "github" + } + }, "nixos-cosmic": { "inputs": { "flake-compat": "flake-compat", @@ -322,11 +490,62 @@ "type": "github" } }, + "nixvim": { + "inputs": { + "devshell": "devshell", + "flake-compat": "flake-compat_2", + "flake-parts": "flake-parts", + "git-hooks": "git-hooks", + "home-manager": "home-manager_2", + "nix-darwin": "nix-darwin", + "nixpkgs": [ + "nixpkgs" + ], + "nuschtosSearch": "nuschtosSearch", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1722248209, + "narHash": "sha256-yYoxx5hVrI7JaiPy44sgnr5YIRXWY7ttNoN/l5fJOgI=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "2089eb407d8c5dbd6ca6e93d4988a439ca6446fd", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixvim", + "type": "github" + } + }, + "nuschtosSearch": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1722144272, + "narHash": "sha256-olZbfaEdd+zNPuuyYcYGaRzymA9rOmth8yXOlVm+LUs=", + "owner": "NuschtOS", + "repo": "search", + "rev": "16565307c267ec219c2b5d3494ba66df08e7d403", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "repo": "search", + "type": "github" + } + }, "root": { "inputs": { "home-manager": "home-manager", "nixos-cosmic": "nixos-cosmic", "nixpkgs": "nixpkgs", + "nixvim": "nixvim", "sops-nix": "sops-nix", "stylix": "stylix" } @@ -359,9 +578,9 @@ "base16-kitty": "base16-kitty", "base16-tmux": "base16-tmux", "base16-vim": "base16-vim", - "flake-compat": "flake-compat_2", + "flake-compat": "flake-compat_3", "gnome-shell": "gnome-shell", - "home-manager": "home-manager_2", + "home-manager": "home-manager_3", "nixpkgs": "nixpkgs_3" }, "locked": { @@ -377,6 +596,42 @@ "repo": "stylix", "type": "github" } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1721769617, + "narHash": "sha256-6Pqa0bi5nV74IZcENKYRToRNM5obo1EQ+3ihtunJ014=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "8db8970be1fb8be9c845af7ebec53b699fe7e009", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 87fd1d2..976798f 100644 --- a/flake.nix +++ b/flake.nix @@ -12,9 +12,13 @@ url = "github:lilyinstarlight/nixos-cosmic"; inputs.nixpkgs.follows = "nixpkgs"; }; + nixvim = { + url = "github:nix-community/nixvim"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; - outputs = inputs: let + outputs = {nixvim, ...} @ inputs: let system = "x86_64-linux"; pkgs = import inputs.nixpkgs {inherit system;}; user = "tristan"; @@ -25,14 +29,15 @@ in { formatter.${system} = pkgs.alejandra; nixosConfigurations = { - zenix = - mkConf [ + zenix = mkConf { + nixos-modules = [ ./hardware/zenix.nix (auto-login "Hyprland") ./nixos/programs/gamer.nix ./nixos/programs/personal.nix ./nixos/workstation.nix - ] [ + ]; + home-modules = [ ./home/workstation.nix ./home/desktop/hyprland/. ./home/programs/graphical.nix @@ -40,37 +45,42 @@ ./home/programs/personal/. ./home/programs/xr.nix ]; + }; - FCS-Tristan-Nixbook = - mkConf [ + FCS-Tristan-Nixbook = mkConf { + nixos-modules = [ ./hardware/fcs-tristan-nixbook.nix (auto-login "Hyprland") ./nixos/modules/work.nix ./nixos/workstation.nix - ] [ + ]; + home-modules = [ ./home/workstation.nix ./home/desktop/hyprland/. ./home/programs/work.nix ./home/programs/graphical.nix ]; + }; - alpine = mkConf [ - ./hardware/alpine.nix - ./nixos/services/anki.nix - ./nixos/services/forgejo.nix - ./nixos/services/vaultwarden.nix - ./nixos/services/jellyfin.nix - ./nixos/services/mpd.nix - ./nixos/services/prometheus.nix - ./nixos/services/grafana.nix - ./nixos/services/synapse.nix - ./nixos/services/mautrix/whatsapp.nix - ./nixos/services/mautrix/signal.nix - ./nixos/services/nextcloud.nix - ./nixos/services/ntfy.nix - ./nixos/services/authentik.nix - ./nixos/services/monero.nix - ] []; + alpine = mkConf { + nixos-modules = [ + ./hardware/alpine.nix + ./nixos/services/anki.nix + ./nixos/services/forgejo.nix + ./nixos/services/vaultwarden.nix + ./nixos/services/jellyfin.nix + ./nixos/services/mpd.nix + ./nixos/services/prometheus.nix + ./nixos/services/grafana.nix + ./nixos/services/synapse.nix + ./nixos/services/mautrix/whatsapp.nix + ./nixos/services/mautrix/signal.nix + ./nixos/services/nextcloud.nix + ./nixos/services/ntfy.nix + ./nixos/services/authentik.nix + ./nixos/services/monero.nix + ]; + }; vm-sway = builtins.trace '' @@ -80,24 +90,30 @@ start the vm with '-vga qxl' or '-vga virtio' '' mkConf - [ - ./hardware/vm.nix - (auto-login "sway") - ./nixos/workstation.nix - ] [ - ./home/desktop/sway/. - ./home/workstation.nix - ]; + { + nixos-modules = [ + ./hardware/vm.nix + (auto-login "sway") + ./nixos/workstation.nix + ]; + home-modules = [ + ./home/desktop/sway/. + ./home/workstation.nix + ]; + }; vm-cosmic = mkConf - [ - ./hardware/vm.nix - ./nixos/workstation.nix - ./nixos/programs/cosmic.nix - ] [ - ./home/workstation.nix - ]; + { + nixos-modules = [ + ./hardware/vm.nix + ./nixos/workstation.nix + ./nixos/programs/cosmic.nix + ]; + home-modules = [ + ./home/workstation.nix + ]; + }; vm-hyprland = builtins.trace '' @@ -109,18 +125,37 @@ start with '-vga virtio' '' mkConf - [ - ./hardware/vm.nix - (auto-login "Hyprland") - ./nixos/workstation.nix - ] [ - ./home/desktop/hyprland/. - ./home/workstation.nix - ]; + { + nixos-modules = [ + ./hardware/vm.nix + (auto-login "Hyprland") + ./nixos/workstation.nix + ]; + home-modules = [ + ./home/desktop/hyprland/. + ./home/workstation.nix + ]; + }; - vm-tty = mkConf [ - ./hardware/vm.nix - ] []; + vm-tty = + mkConf + { + nixos-modules = [ + ./hardware/vm.nix + ]; + }; + }; + + packages.${system} = { + nixvim = let + nixvim' = nixvim.legacyPackages.${system}; + nixvimModule = { + inherit pkgs; + module = import ./lib/nixvim.nix; + }; + nvim = nixvim'.makeNixvimWithModule nixvimModule; + in + nvim; }; }; } diff --git a/home/desktop/hyprland/default.nix b/home/desktop/hyprland/default.nix index 0471c1c..2d90459 100644 --- a/home/desktop/hyprland/default.nix +++ b/home/desktop/hyprland/default.nix @@ -14,7 +14,6 @@ text = config.lib.stylix.colors.base05; }; rgb = color: "rgb(${color})"; - in { imports = [ (import ../utils/waybar.nix) diff --git a/home/programs/neovim/config.lua b/home/programs/neovim/config.lua deleted file mode 100644 index 68fc1f4..0000000 --- a/home/programs/neovim/config.lua +++ /dev/null @@ -1,30 +0,0 @@ -vim.g.mapleader = ' ' -vim.g.maplocalleader = ' ' -vim.o.relativenumber = true -vim.o.number = true -vim.o.signcolumn = 'yes' -vim.o.tabstop = 2 -vim.o.shiftwidth = 2 -vim.o.expandtab = true -vim.o.smartindent = true -vim.o.scrolloff = 4 -vim.o.undofile = true -vim.o.undodir = vim.fn.expand("$HOME/.local/share/nvim/undo") - -vim.keymap.set("v", "J", ":m '>+1gv=gv") -vim.keymap.set("v", "K", ":m '<-2gv=gv") - -vim.keymap.set("x", "p", "\"_dP") - -vim.keymap.set("n", "y", "\"+y") -vim.keymap.set("v", "y", "\"+y") - --- Global mappings. --- See `:help vim.diagnostic.*` for documentation on any of the below functions -vim.keymap.set('n', 'e', vim.diagnostic.open_float) -vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) -vim.keymap.set('n', ']d', vim.diagnostic.goto_next) -vim.keymap.set('n', 'q', vim.diagnostic.setloclist) - -vim.keymap.set('v', '', '"+y') -vim.keymap.set('i', '', '"+p') diff --git a/home/programs/neovim/default.nix b/home/programs/neovim/default.nix index fc4d219..dfbee38 100644 --- a/home/programs/neovim/default.nix +++ b/home/programs/neovim/default.nix @@ -1,56 +1,9 @@ {pkgs, ...}: { - programs.neovim = { - enable = true; - defaultEditor = true; - extraLuaConfig = '' - ${builtins.readFile ./config.lua} - ''; - extraPackages = with pkgs; [ - nodePackages_latest.typescript-language-server - vscode-langservers-extracted - gopls - nil - rust-analyzer - ]; - plugins = with pkgs.vimPlugins; [ - { - plugin = nvim-surround; - type = "lua"; - config = '' - require("nvim-surround").setup() - ''; - } - { - plugin = comment-nvim; - type = "lua"; - config = '' - require("Comment").setup() - ''; - } - { - plugin = vimwiki; - config = '' - let g:vimwiki_list = [{'path': '~/Documents/vimwiki/', 'syntax': 'markdown', 'ext': '.md'}] - ''; - } - { - plugin = telescope-nvim; - type = "lua"; - config = '' - local builtin = require('telescope.builtin') - vim.keymap.set('n', 'ff', builtin.find_files, {}) - vim.keymap.set('n', 'fg', builtin.live_grep, {}) - vim.keymap.set('n', 'fb', builtin.buffers, {}) - vim.keymap.set('n', 'fh', builtin.help_tags, {}) - ''; - } - { - plugin = nvim-lspconfig; - type = "lua"; - config = builtins.readFile ./lspconfig.lua; - } - ]; - }; + programs.nixvim = + { + enable = true; + } + // import ../../../lib/nixvim.nix; programs.vscode = { extensions = [pkgs.vscode-extensions.asvetliakov.vscode-neovim]; diff --git a/home/programs/neovim/lspconfig.lua b/home/programs/neovim/lspconfig.lua deleted file mode 100644 index 6d39e7f..0000000 --- a/home/programs/neovim/lspconfig.lua +++ /dev/null @@ -1,54 +0,0 @@ --- Setup language servers. -local lspconfig = require('lspconfig') - -local on_attach = function(client) - require'completion'.on_attach(client) - client.server_capabilities.documentFormattingProvider = false -end - -lspconfig.tsserver.setup { - on_attach = on_attach -} - -lspconfig.eslint.setup { - on_attach = on_attach -} - -lspconfig.rust_analyzer.setup { - on_attach = on_attach -} - -lspconfig.gopls.setup {} -lspconfig.nil_ls.setup {} -lspconfig.rust_analyzer.setup {} - --- Use LspAttach autocommand to only map the following keys --- after the language server attaches to the current buffer -vim.api.nvim_create_autocmd('LspAttach', { - group = vim.api.nvim_create_augroup('UserLspConfig', {}), - callback = function(ev) - -- Enable completion triggered by - vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' - - -- Buffer local mappings. - -- See `:help vim.lsp.*` for documentation on any of the below functions - local opts = { buffer = ev.buf } - vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) - vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) - vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) - vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts) - vim.keymap.set('n', '', vim.lsp.buf.signature_help, opts) - vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, opts) - vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts) - vim.keymap.set('n', 'wl', function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end, opts) - vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, opts) - vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts) - vim.keymap.set({ 'n', 'v' }, 'ca', vim.lsp.buf.code_action, opts) - vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) - vim.keymap.set('n', 'f', function() - vim.lsp.buf.format { async = true } - end, opts) - end, -}) diff --git a/lib/mkconf.nix b/lib/mkconf.nix index f5b3e14..f779cdb 100644 --- a/lib/mkconf.nix +++ b/lib/mkconf.nix @@ -4,8 +4,11 @@ user, userFullname, ... -}: modules: home-modules: let - inherit (inputs) home-manager nixpkgs sops-nix; +}: { + nixos-modules ? [], + home-modules ? [], +}: let + inherit (inputs) home-manager nixpkgs sops-nix nixvim; in nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs;}; @@ -13,9 +16,8 @@ in inherit system; modules = - modules + nixos-modules ++ [ - ../nixos/modules/podman.nix home-manager.nixosModules.home-manager sops-nix.nixosModules.sops { @@ -25,6 +27,7 @@ in users.${user}.imports = home-modules ++ [ + nixvim.homeManagerModules.nixvim ../home/. { options.home.userFullname = nixpkgs.lib.mkOption {default = userFullname;}; diff --git a/lib/nixvim.nix b/lib/nixvim.nix new file mode 100644 index 0000000..f242a04 --- /dev/null +++ b/lib/nixvim.nix @@ -0,0 +1,106 @@ +{ + globals = { + mapleader = " "; + }; + opts = { + number = true; + relativenumber = true; + tabstop = 2; + shiftwidth = 2; + expandtab = true; + smartindent = true; + scrolloff = 4; + + undofile = true; + }; + extraConfigLua = '' + vim.o.undodir = vim.fn.expand("$HOME/.local/share/nvim/undo") + ''; + keymaps = [ + { + key = ""; + action = ''"+y''; + } + { + key = "gl"; + action = "g$"; + } + { + key = "gh"; + action = "g0"; + } + { + key = "ggs"; + action = ":Gitsigns stage_hunk"; + } + { + key = "ggb"; + action = ":Gitsigns blame"; + } + { + key = "ggg"; + action = ":LazyGit"; + } + ]; + + plugins = { + bufferline.enable = true; + surround.enable = true; + comment.enable = true; + + markdown-preview.enable = true; + treesitter.enable = true; + + telescope = { + enable = true; + keymaps = { + "fg" = "live_grep"; + "/" = "live_grep"; + "ff" = "find_files"; + "fb" = "buffers"; + "fh" = "help_tags"; + ":" = "commands"; + }; + }; + + lsp = { + enable = true; + servers = { + tsserver.enable = true; + nixd.enable = true; + }; + keymaps = { + lspBuf = { + "K" = "hover"; + "a" = "code_action"; + "gd" = "definition"; + }; + diagnostic = { + "e" = "open_float"; + }; + }; + }; + + cmp = { + enable = true; + autoEnableSources = true; + }; + + cmp-nvim-lsp.enable = true; + cmp-path.enable = true; + + ts-autotag.enable = true; + + gitsigns.enable = true; + git-worktree = { + enable = true; + enableTelescope = true; + }; + lazygit.enable = true; + which-key.enable = true; + toggleterm = { + enable = true; + settings = {open_mapping = "[[]]";}; + }; + }; +} diff --git a/nixos/default.nix b/nixos/default.nix index 80ce0b5..a4757ad 100644 --- a/nixos/default.nix +++ b/nixos/default.nix @@ -8,6 +8,11 @@ }: let user = config.user; in { + + imports = [ + ./modules/podman.nix + ]; + nix = { settings = { experimental-features = ["nix-command" "flakes"]; @@ -113,10 +118,15 @@ in { bind -n M-+ resize-pane -U 10 bind -n M-u copy-mode bind -n M-p paste-buffer + bind -n M-n next-window set-window-option -g mode-keys vi bind-key -T copy-mode-vi v send-keys -X begin-selection bind-key -T copy-mode-vi y send-keys -X copy-selection + + set -g mouse on + + bind -n "M-`" break-pane -d ''; boot.kernel.sysctl = { From 681c8705048830f14574aa8d20ee8a01cd90289a Mon Sep 17 00:00:00 2001 From: tristan Date: Wed, 31 Jul 2024 17:15:34 +0100 Subject: [PATCH 3/7] zenix: add neovim godot dap --- home/programs/personal/default.nix | 29 ++++++++++++++++++++++++----- lib/nixvim.nix | 5 +++++ 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/home/programs/personal/default.nix b/home/programs/personal/default.nix index d2ff861..5c24f89 100644 --- a/home/programs/personal/default.nix +++ b/home/programs/personal/default.nix @@ -14,20 +14,39 @@ services.nextcloud-client.enable = true; + programs.nixvim.plugins = { + lsp = { + servers.gdscript.enable = true; + }; + godot.enable = true; + dap = { + enable = true; + adapters.servers.godot = { + host = "127.0.0.1"; + port = 6006; + }; + configurations.gdscript = [ + { + type = "godot"; + request = "launch"; + name = "Launch scene"; + project = "\${workspaceFolder}"; + } + ]; + + }; + }; + home.packages = with pkgs; [ godot_4 ardour blender - # musescore + musescore monero-gui - electrum - xmrig transmission-remote-gtk krita organicmaps anki - hugo - libsForQt5.neochat bookworm jellyfin-mpv-shim ]; diff --git a/lib/nixvim.nix b/lib/nixvim.nix index f242a04..ce6025f 100644 --- a/lib/nixvim.nix +++ b/lib/nixvim.nix @@ -102,5 +102,10 @@ enable = true; settings = {open_mapping = "[[]]";}; }; + + dap = { + enable = true; + extensions.dap-ui.enable = true; + }; }; } From 44c0812e94d07ff53348123e83aff5174a3886c1 Mon Sep 17 00:00:00 2001 From: tristan Date: Sat, 3 Aug 2024 18:31:13 +0100 Subject: [PATCH 4/7] zenix: tidy up --- flake.nix | 12 +++------ home/default.nix | 1 + home/desktop/hyprland/default.nix | 1 + home/modules/menu.nix | 3 ++- home/programs/graphical.nix | 1 - home/programs/personal/default.nix | 1 - home/programs/tmux.nix | 43 ++++++++++++++++++++++++++++++ lib/nixvim.nix | 4 --- nixos/default.nix | 39 --------------------------- nixos/programs/hyprland.nix | 13 +++++++++ nixos/programs/pipewire.nix | 15 +++++++++++ nixos/workstation.nix | 22 --------------- 12 files changed, 78 insertions(+), 77 deletions(-) create mode 100644 home/programs/tmux.nix create mode 100644 nixos/programs/hyprland.nix create mode 100644 nixos/programs/pipewire.nix diff --git a/flake.nix b/flake.nix index 976798f..8c2f542 100644 --- a/flake.nix +++ b/flake.nix @@ -33,13 +33,12 @@ nixos-modules = [ ./hardware/zenix.nix (auto-login "Hyprland") + ./nixos/programs/hyprland.nix ./nixos/programs/gamer.nix ./nixos/programs/personal.nix ./nixos/workstation.nix ]; home-modules = [ - ./home/workstation.nix - ./home/desktop/hyprland/. ./home/programs/graphical.nix ./home/programs/gamer.nix ./home/programs/personal/. @@ -51,11 +50,10 @@ nixos-modules = [ ./hardware/fcs-tristan-nixbook.nix (auto-login "Hyprland") + ./nixos/hyprland.nix ./nixos/modules/work.nix - ./nixos/workstation.nix ]; home-modules = [ - ./home/workstation.nix ./home/desktop/hyprland/. ./home/programs/work.nix ./home/programs/graphical.nix @@ -129,11 +127,7 @@ nixos-modules = [ ./hardware/vm.nix (auto-login "Hyprland") - ./nixos/workstation.nix - ]; - home-modules = [ - ./home/desktop/hyprland/. - ./home/workstation.nix + ./nixos/programs/hyprland.nix ]; }; diff --git a/home/default.nix b/home/default.nix index c75a258..7fc5d0d 100644 --- a/home/default.nix +++ b/home/default.nix @@ -10,6 +10,7 @@ ./programs/git.nix ./programs/lf/. ./programs/zsh.nix + ./programs/tmux.nix ]; programs.home-manager.enable = true; diff --git a/home/desktop/hyprland/default.nix b/home/desktop/hyprland/default.nix index 2d90459..33fb7a2 100644 --- a/home/desktop/hyprland/default.nix +++ b/home/desktop/hyprland/default.nix @@ -18,6 +18,7 @@ in { imports = [ (import ../utils/waybar.nix) (import ../utils/display.nix) + ../../workstation.nix ]; xdg.portal = { enable = true; diff --git a/home/modules/menu.nix b/home/modules/menu.nix index 3e7943b..ea30348 100644 --- a/home/modules/menu.nix +++ b/home/modules/menu.nix @@ -8,8 +8,9 @@ terminal = config.programs.terminal; termcmd = "${terminal}/bin/${terminal.pname}"; menucmd = config.programs.menu.drunCommand; + inherit (lib) mkPackageOption mkOption; in { - options.programs = with lib; { + options.programs = { menu = { package = mkPackageOption pkgs "wofi" { example = "pkgs.dmenu-wayland"; diff --git a/home/programs/graphical.nix b/home/programs/graphical.nix index 342376f..70bc7d2 100644 --- a/home/programs/graphical.nix +++ b/home/programs/graphical.nix @@ -37,7 +37,6 @@ brave vieb bitwarden - logseq ]; xdg.mimeApps.defaultApplications = { diff --git a/home/programs/personal/default.nix b/home/programs/personal/default.nix index 5c24f89..a740d23 100644 --- a/home/programs/personal/default.nix +++ b/home/programs/personal/default.nix @@ -33,7 +33,6 @@ project = "\${workspaceFolder}"; } ]; - }; }; diff --git a/home/programs/tmux.nix b/home/programs/tmux.nix new file mode 100644 index 0000000..f2b301d --- /dev/null +++ b/home/programs/tmux.nix @@ -0,0 +1,43 @@ +{ + programs.tmux = { + enable = true; + baseIndex = 1; + escapeTime = 0; + keyMode = "vi"; + mouse = true; + terminal = "screen-256color"; + historyLimit = 5000; + extraConfig = '' + bind -n M-s split-window -v + bind -n M-v split-window -h + bind -n M-Enter split-window -h + bind -n M-h select-pane -L + bind -n M-j select-pane -D + bind -n M-k select-pane -U + bind -n M-l select-pane -R + bind -n M-q kill-pane + bind -n M-< resize-pane -L 10 + bind -n M-> resize-pane -R 10 + bind -n M-- resize-pane -D 10 + bind -n M-+ resize-pane -U 10 + bind -n M-z resize-pane -Z + bind -n M-u copy-mode + bind -n M-p paste-buffer + bind -n M-n next-window + + set-option -g renumber-windows on + ''; + }; + + # programs.kitty = { + # enable = true; + # keybindings = { + # "alt+h" = "neighboring_window left"; + # "alt+l" = "neighboring_window right"; + # "alt+j" = "neighboring_window down"; + # "alt+k" = "neighboring_window up"; + # "alt+enter" = "new_window"; + # }; + # shellIntegration.enableZshIntegration = true; + # }; +} diff --git a/lib/nixvim.nix b/lib/nixvim.nix index 1b0570a..75ef7a0 100644 --- a/lib/nixvim.nix +++ b/lib/nixvim.nix @@ -121,10 +121,6 @@ lazygit.enable = true; which-key.enable = true; - toggleterm = { - enable = true; - settings = {open_mapping = "[[]]";}; - }; dap = { enable = true; diff --git a/nixos/default.nix b/nixos/default.nix index 122f780..68a84c1 100644 --- a/nixos/default.nix +++ b/nixos/default.nix @@ -8,7 +8,6 @@ }: let user = config.user; in { - imports = [ ./modules/podman.nix ]; @@ -99,44 +98,6 @@ in { sops ]; - programs.tmux.enable = true; - programs.tmux.extraConfig = '' - set-option -sa terminal-overrides ",xterm*:Tc" - - set escape-time 0 - - bind -n M-s split-window -v - bind -n M-v split-window -h - bind -n M-Enter split-window -h - bind -n M-h select-pane -L - bind -n M-j select-pane -D - bind -n M-k select-pane -U - bind -n M-l select-pane -R - bind -n M-q kill-pane - bind -n M-< resize-pane -L 10 - bind -n M-> resize-pane -R 10 - bind -n M-- resize-pane -D 10 - bind -n M-+ resize-pane -U 10 - bind -n M-z resize-pane -Z - bind -n M-u copy-mode - bind -n M-p paste-buffer - bind -n M-n next-window - - set-window-option -g mode-keys vi - bind-key -T copy-mode-vi v send-keys -X begin-selection - bind-key -T copy-mode-vi y send-keys -X copy-selection - - set -g mouse on - - set -g base-index 1 - set -g pane-base-index 1 - set-window-option -g pane-base-index 1 - set-option -g renumber-windows on - - bind -n "M-`" break-pane -d - bind -n "M-`" break-pane -d - ''; - boot.kernel.sysctl = { "net.ipv4.ip_unprivileged_port_start" = 53; }; diff --git a/nixos/programs/hyprland.nix b/nixos/programs/hyprland.nix new file mode 100644 index 0000000..0b00516 --- /dev/null +++ b/nixos/programs/hyprland.nix @@ -0,0 +1,13 @@ +{config, ...}: { + programs.hyprland.enable = true; + security.pam.services.hyprlock = {}; + + imports = [ + ./pipewire.nix + ../workstation.nix + ]; + + home-manager.users.${config.user}.imports = [ + ../../home/desktop/hyprland/. + ]; +} diff --git a/nixos/programs/pipewire.nix b/nixos/programs/pipewire.nix new file mode 100644 index 0000000..2610134 --- /dev/null +++ b/nixos/programs/pipewire.nix @@ -0,0 +1,15 @@ +{ + hardware.pulseaudio.enable = false; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; + }; + # pipewire raop + networking.firewall.allowedUDPPorts = [6002 6001]; + # network streaming + networking.firewall.allowedTCPPorts = [4713]; +} diff --git a/nixos/workstation.nix b/nixos/workstation.nix index a616009..dd667e0 100644 --- a/nixos/workstation.nix +++ b/nixos/workstation.nix @@ -7,29 +7,7 @@ imports = [ inputs.stylix.nixosModules.stylix ]; - nixpkgs.config.permittedInsecurePackages = [ - "electron-27.3.11" - ]; - programs.hyprland.enable = true; - - # use pipewire - hardware.pulseaudio.enable = false; - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - jack.enable = true; - }; - # pipewire raop - networking.firewall.allowedUDPPorts = [6002 6001]; - # network streaming - networking.firewall.allowedTCPPorts = [4713]; - - security.pam.services.swaylock = {}; - security.pam.services.hyprlock = {}; security.polkit.enable = true; systemd.user.services.polkit-gnome-authentication-agent-1 = { description = "polkit-gnome-authentication-agent-1"; From 293b770acb92ce5db3cf39aef0540c4a9ffb646e Mon Sep 17 00:00:00 2001 From: tristan Date: Sun, 4 Aug 2024 15:19:07 +0100 Subject: [PATCH 5/7] zenix: update, zoxide, more tidy --- flake.lock | 54 +++++++-------- home/default.nix | 4 +- home/modules/email.nix | 134 ------------------------------------ home/programs/graphical.nix | 4 -- pkgs/mpv-skipsilence.nix | 6 +- 5 files changed, 33 insertions(+), 169 deletions(-) diff --git a/flake.lock b/flake.lock index 8c38799..5a73c77 100644 --- a/flake.lock +++ b/flake.lock @@ -312,11 +312,11 @@ ] }, "locked": { - "lastModified": 1722067813, - "narHash": "sha256-nxpzoKXwn+8RsxpxwD86mtEscOMw64ZD/vGSNWzGMlA=", + "lastModified": 1722630065, + "narHash": "sha256-QfM/9BMRkCmgWzrPDK+KbgJOUlSJnfX4OvsUupEUZvA=", "owner": "nix-community", "repo": "home-manager", - "rev": "975b83ca560d17db51a66cb2b0dc0e44213eab27", + "rev": "afc892db74d65042031a093adb6010c4c3378422", "type": "github" }, "original": { @@ -334,11 +334,11 @@ ] }, "locked": { - "lastModified": 1722119539, - "narHash": "sha256-2kU90liMle0vKR8exJx1XM4hZh9CdNgZGHCTbeA9yzY=", + "lastModified": 1722407237, + "narHash": "sha256-wcpVHUc2nBSSgOM7UJSpcRbyus4duREF31xlzHV5T+A=", "owner": "nix-community", "repo": "home-manager", - "rev": "d0240a064db3987eb4d5204cf2400bc4452d9922", + "rev": "58cef3796271aaeabaed98884d4abaab5d9d162d", "type": "github" }, "original": { @@ -398,11 +398,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1721160462, - "narHash": "sha256-/VxDWswjySr3CUuMRP4OBBP3sFSps7r1Bh/AJkZSdVk=", + "lastModified": 1722648908, + "narHash": "sha256-yBHD6n75iXj8D3YonPf7k32N+m4UOUCW/Yq/+gYvadg=", "owner": "lilyinstarlight", "repo": "nixos-cosmic", - "rev": "b2d62f3b793495c1156cba6a99512cd95ac2c439", + "rev": "5e56434064e3b3c8fb1d553322a0fbd04d2c277a", "type": "github" }, "original": { @@ -413,11 +413,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1721924956, - "narHash": "sha256-Sb1jlyRO+N8jBXEX9Pg9Z1Qb8Bw9QyOgLDNMEpmjZ2M=", + "lastModified": 1722421184, + "narHash": "sha256-/DJBI6trCeVnasdjUo9pbnodCLZcFqnVZiLUfqLH4jA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5ad6a14c6bf098e98800b091668718c336effc95", + "rev": "9f918d616c5321ad374ae6cb5ea89c9e04bf3e58", "type": "github" }, "original": { @@ -428,11 +428,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1720954236, - "narHash": "sha256-1mEKHp4m9brvfQ0rjCca8P1WHpymK3TOr3v34ydv9bs=", + "lastModified": 1722519197, + "narHash": "sha256-VEdJmVU2eLFtLqCjTYJd1J7+Go8idAcZoT11IewFiRg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "53e81e790209e41f0c1efa9ff26ff2fd7ab35e27", + "rev": "05405724efa137a0b899cce5ab4dde463b4fd30b", "type": "github" }, "original": { @@ -505,11 +505,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1722248209, - "narHash": "sha256-yYoxx5hVrI7JaiPy44sgnr5YIRXWY7ttNoN/l5fJOgI=", + "lastModified": 1722605918, + "narHash": "sha256-eWVY6hM2IlxRIVUgKBlPCX4pJ1Nmh3Nvw/Io2LaE0Y4=", "owner": "nix-community", "repo": "nixvim", - "rev": "2089eb407d8c5dbd6ca6e93d4988a439ca6446fd", + "rev": "0bc169903705c94fda7934ecc27dd9038ad5f0e9", "type": "github" }, "original": { @@ -556,11 +556,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1721688883, - "narHash": "sha256-9jsjsRKtJRqNSTXKj9zuDFRf2PGix30nMx9VKyPgD2U=", + "lastModified": 1722114803, + "narHash": "sha256-s6YhI8UHwQvO4cIFLwl1wZ1eS5Cuuw7ld2VzUchdFP0=", "owner": "Mic92", "repo": "sops-nix", - "rev": "aff2f88277dabe695de4773682842c34a0b7fd54", + "rev": "eb34eb588132d653e4c4925d862f1e5a227cc2ab", "type": "github" }, "original": { @@ -584,11 +584,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1721989207, - "narHash": "sha256-APKQeMMdh1O1W3OnxEvNfHNBiE4eRvEN6rosFr2dLHE=", + "lastModified": 1722295291, + "narHash": "sha256-3XpT9GMw50NCGT1Gd2YAwEjrEcFtDqnuQ7sRUcuU/Pc=", "owner": "danth", "repo": "stylix", - "rev": "b9de20c76e8d5c13cf2304d23cf589803c311670", + "rev": "feb2973dfa8232c07efbd2b48f11a5cfa2276570", "type": "github" }, "original": { @@ -620,11 +620,11 @@ ] }, "locked": { - "lastModified": 1721769617, - "narHash": "sha256-6Pqa0bi5nV74IZcENKYRToRNM5obo1EQ+3ihtunJ014=", + "lastModified": 1722330636, + "narHash": "sha256-uru7JzOa33YlSRwf9sfXpJG+UAV+bnBEYMjrzKrQZFw=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "8db8970be1fb8be9c845af7ebec53b699fe7e009", + "rev": "768acdb06968e53aa1ee8de207fd955335c754b7", "type": "github" }, "original": { diff --git a/home/default.nix b/home/default.nix index 7fc5d0d..6b72153 100644 --- a/home/default.nix +++ b/home/default.nix @@ -35,12 +35,14 @@ htop libsixel yt-dlp - ytfzf fastfetch tree ansible + ytfzf ]; + programs.zoxide.enable = true; + programs.rbw = { enable = true; settings = { diff --git a/home/modules/email.nix b/home/modules/email.nix index a4fc403..2cec84f 100644 --- a/home/modules/email.nix +++ b/home/modules/email.nix @@ -73,140 +73,6 @@ in { programs.aerc = { enable = cfg.terminal; - extraBinds = '' - # Binds are of the form = - # To use '=' in a key sequence, substitute it with "Eq": "" - # If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit - = :prev-tab - = :next-tab - = :term - - [messages] - Q = :quit - - T = :toggle-threads - - j = :next - = :next - = :next 50% - = :next 100% - = :next -s 100% - - k = :prev - = :prev - = :prev 50% - = :prev - = :prev -s 100% - gg = :select 0 - G = :select -1 - - J = :next-folder - K = :prev-folder - - v = :mark -t - V = :mark -v - - f = :flag - F = :unflag - - t = :toggle-threads - - = :view - D = :mv Trash - - C = :compose - - Rr = :reply - Rq = :reply -q - rr = :reply -a - rq = :reply -aq - rt = :unflag:reply -a -Tthanks - Rt = :unflag:reply -qa -Tquoted_thanks - - a = :mv Archive - - c = :cf - $ = :term - ! = :term - | = :pipe - - ga = :flag:pipe -mb git am -3 - gp = :term git push - gl = :term git log - - / = :search - \ = :filter - n = :next-result - N = :prev-result - - o = :term mbsync -a - q = :quit - - [view] - / = :toggle-key-passthrough/ - q = :close - | = :pipe -m - S = :save - H = :toggle-headers - D = :mv Trash - = :prev-part - = :next-part - J = :next - K = :prev - - f = :forward - Rr = :reply - Rq = :reply -q - rr = :reply -a - rq = :reply -aq - rt = :reply -Tthanks - - ga = :pipe -b git am -3 - gp = :term git push - gl = :term git log - - [view::passthrough] - $noinherit = true - $ex = - = :toggle-key-passthrough - - [compose] - $ex = - = :prev-field - = :next-field - = :next-field - - [compose::editor] - # Keybindings used when the embedded terminal is selected in the compose view - $noinherit = true - $ex = - = :term - = :prev-field - = :next-field - = :prev-tab - = :next-tab - - [compose::review] - # Keybindings used when reviewing a message to be sent - y = :send - n = :abort - e = :edit - a = :attach - c = :encrypt - s = :sign - V = :header -f X-Sourcehut-Patchset-Update NEEDS_REVISION - A = :header -f X-Sourcehut-Patchset-Update APPLIED - R = :header -f X-Sourcehut-Patchset-Update REJECTED - - [terminal] - $noinherit = true - $ex = - - = :term - = :prev-tab - = :next-tab - ''; - extraConfig = { general = { pgp-provider = "gpg"; diff --git a/home/programs/graphical.nix b/home/programs/graphical.nix index 70bc7d2..0b990fc 100644 --- a/home/programs/graphical.nix +++ b/home/programs/graphical.nix @@ -1,10 +1,8 @@ { pkgs, - lib, ... }: { imports = [ - ./qutebrowser.nix ./pcmanfm.nix ./mpv.nix ./vscode.nix @@ -24,7 +22,6 @@ gimp libreoffice dbeaver-bin - bruno drawio # entertainment @@ -35,7 +32,6 @@ nheko cinny-desktop brave - vieb bitwarden ]; diff --git a/pkgs/mpv-skipsilence.nix b/pkgs/mpv-skipsilence.nix index ffc0881..33d6b1f 100644 --- a/pkgs/mpv-skipsilence.nix +++ b/pkgs/mpv-skipsilence.nix @@ -4,20 +4,20 @@ fetchgit, gitUpdater, }: -buildLua rec { +buildLua { pname = "mpv-skipsilence"; version = "1.0"; src = fetchgit { url = "https://codeberg.org/ferreum/mpv-skipsilence.git"; - hash = "sha256-aAzLegotOUILhpz7GcMJvCY4R3jSZCDIKOwVfM21kdY="; + hash = "sha256-fg8vfeb68nr0bTBIvr0FnRnoB48/kV957pn22tWcz1g="; }; passthru.updateScript = gitUpdater {}; meta = with lib; { description = "Increase playback speed during silence - a revolution in attention-deficit induction technology."; homepage = "https://github.com/ferreum/mpv-skipsilence"; - license = licenses.unlicense; # actually they don't have a license + license = licenses.gpl2; maintainers = []; }; } From c567c5d94a1771b2d7d6b5c07059d6e2dc7ba681 Mon Sep 17 00:00:00 2001 From: tristan Date: Sat, 10 Aug 2024 11:47:22 +0100 Subject: [PATCH 6/7] zenix: fix: std linux, waybar on bottom layer, add aerc binds --- hardware/zenix.nix | 1 - home/desktop/utils/waybar.nix | 2 +- home/modules/aerc/binds.conf | 185 ++++++++++++++++++++++++++++++++++ home/modules/aerc/default.nix | 21 ++++ home/modules/email.nix | 18 +--- 5 files changed, 209 insertions(+), 18 deletions(-) create mode 100644 home/modules/aerc/binds.conf create mode 100644 home/modules/aerc/default.nix diff --git a/hardware/zenix.nix b/hardware/zenix.nix index 0e439f4..8702d8b 100644 --- a/hardware/zenix.nix +++ b/hardware/zenix.nix @@ -17,7 +17,6 @@ in { boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"]; boot.initrd.kernelModules = ["uas" "usbcore" "usb_storage" "vfat" "nls_cp437" "nls_iso8859_1"]; boot.kernelModules = ["kvm-amd"]; - boot.kernelPackages = pkgs.linuxPackages_xanmod_latest; boot.extraModulePackages = []; fileSystems."/" = { diff --git a/home/desktop/utils/waybar.nix b/home/desktop/utils/waybar.nix index 97fa670..f03354f 100644 --- a/home/desktop/utils/waybar.nix +++ b/home/desktop/utils/waybar.nix @@ -4,7 +4,7 @@ systemd.enable = true; settings = { mainBar = { - layer = "top"; + layer = "bottom"; position = "top"; height = 36; modules-right = ["mpris" "idle_inhibitor" "pulseaudio" "clock" "tray" "battery"]; diff --git a/home/modules/aerc/binds.conf b/home/modules/aerc/binds.conf new file mode 100644 index 0000000..8b4c057 --- /dev/null +++ b/home/modules/aerc/binds.conf @@ -0,0 +1,185 @@ +# Binds are of the form = +# To use '=' in a key sequence, substitute it with "Eq": "" +# If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit + = :prev-tab + = :prev-tab + = :next-tab + = :next-tab +\[t = :prev-tab +\]t = :next-tab + = :term +? = :help keys + = :prompt 'Quit?' quit + = :prompt 'Quit?' quit + = :suspend + +[messages] +o = :term mbsync -a +q = :prompt 'Quit?' quit + +j = :next + = :next + = :next 50% + = :next 100% + = :next 100% + +k = :prev + = :prev + = :prev 50% + = :prev 100% + = :prev 100% +g = :select 0 +G = :select -1 + +J = :next-folder + = :next-folder +K = :prev-folder + = :prev-folder +H = :collapse-folder + = :collapse-folder +L = :expand-folder + = :expand-folder + +v = :mark -t + = :mark -t:next +V = :mark -v + +T = :toggle-threads +zc = :fold +zo = :unfold +za = :fold -t +zM = :fold -a +zR = :unfold -a + = :fold -t + +zz = :align center +zt = :align top +zb = :align bottom + + = :view +d = :choose -o y 'Really delete this message' delete-message +D = :delete +a = :archive flat +A = :unmark -a:mark -T:archive flat + +C = :compose +m = :compose + +b = :bounce + +rr = :reply -a +rq = :reply -aq +Rr = :reply +Rq = :reply -q + +c = :cf +$ = :term +! = :term +| = :pipe + +/ = :search +\ = :filter +n = :next-result +N = :prev-result + = :clear + +s = :split +S = :vsplit + +pl = :patch list +pa = :patch apply +pd = :patch drop +pb = :patch rebase +pt = :patch term +ps = :patch switch + +[messages:folder=Drafts] + = :recall + +[view] +/ = :toggle-key-passthrough/ +q = :close +O = :open +o = :open +S = :save +| = :pipe +D = :delete +A = :archive flat + + = :open-link + +f = :forward +rr = :reply -a +rq = :reply -aq +Rr = :reply +Rq = :reply -q + +H = :toggle-headers + = :prev-part + = :prev-part + = :next-part + = :next-part +J = :next + = :next +K = :prev + = :prev + +[view::passthrough] +$noinherit = true +$ex = + = :toggle-key-passthrough + +[compose] +# Keybindings used when the embedded terminal is not selected in the compose +# view +$noinherit = true +$ex = +$complete = + = :prev-field + = :prev-field + = :next-field + = :next-field + = :switch-account -p + = :switch-account -p + = :switch-account -n + = :switch-account -n + = :next-field + = :prev-field + = :prev-tab + = :prev-tab + = :next-tab + = :next-tab + +[compose::editor] +# Keybindings used when the embedded terminal is selected in the compose view +$noinherit = true +$ex = + = :prev-field + = :prev-field + = :next-field + = :next-field + = :prev-tab + = :prev-tab + = :next-tab + = :next-tab + +[compose::review] +# Keybindings used when reviewing a message to be sent +# Inline comments are used as descriptions on the review screen +y = :send # Send +n = :abort # Abort (discard message, no confirmation) +v = :preview # Preview message +p = :postpone # Postpone +q = :choose -o d discard abort -o p postpone postpone # Abort or postpone +e = :edit # Edit +a = :attach # Add attachment +d = :detach # Remove attachment + +[terminal] +$noinherit = true +$ex = + + = :prev-tab + = :next-tab + = :prev-tab + = :next-tab diff --git a/home/modules/aerc/default.nix b/home/modules/aerc/default.nix new file mode 100644 index 0000000..83ad896 --- /dev/null +++ b/home/modules/aerc/default.nix @@ -0,0 +1,21 @@ +{ + programs.aerc = { + extraBinds = builtins.readFile ./binds.conf; # default binds + extraConfig = { + general = { + pgp-provider = "gpg"; + unsafe-accounts-conf = true; + }; + ui = {}; + viewer = {}; + filters = { + "text/plain" = "colorize"; + "text/calendar" = "calendar"; + "message/delivery-status" = "colorize"; + "message/rfc822" = "colorize"; + "image/*" = "img2sixel"; + "text/html" = "html | colorize"; + }; + }; + }; +} diff --git a/home/modules/email.nix b/home/modules/email.nix index 2cec84f..6b491c5 100644 --- a/home/modules/email.nix +++ b/home/modules/email.nix @@ -21,6 +21,8 @@ in { }; }; + imports = [./aerc/.]; + config = lib.mkIf cfg.enable { programs.scripts = [ { @@ -73,22 +75,6 @@ in { programs.aerc = { enable = cfg.terminal; - extraConfig = { - general = { - pgp-provider = "gpg"; - unsafe-accounts-conf = true; - }; - ui = {}; - viewer = {}; - filters = { - "text/plain" = "colorize"; - "text/calendar" = "calendar"; - "message/delivery-status" = "colorize"; - "message/rfc822" = "colorize"; - "image/*" = "img2sixel"; - "text/html" = "html | colorize"; - }; - }; }; }; } From a135410aabdf903044547c5ae1bd0e0d0615fe26 Mon Sep 17 00:00:00 2001 From: tristan Date: Tue, 13 Aug 2024 08:20:20 +0100 Subject: [PATCH 7/7] zenix: setup cosmic but break nixvim --- flake.lock | 96 ++++++++++++++++++++------------ flake.nix | 11 +++- home/programs/neovim/default.nix | 10 ++-- nixos/workstation.nix | 5 ++ 4 files changed, 78 insertions(+), 44 deletions(-) diff --git a/flake.lock b/flake.lock index 5a73c77..062457b 100644 --- a/flake.lock +++ b/flake.lock @@ -189,11 +189,11 @@ ] }, "locked": { - "lastModified": 1719994518, - "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", + "lastModified": 1722555600, + "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", + "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", "type": "github" }, "original": { @@ -253,11 +253,11 @@ ] }, "locked": { - "lastModified": 1721042469, - "narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=", + "lastModified": 1722857853, + "narHash": "sha256-3Zx53oz/MSIyevuWO/SumxABkrIvojnB7g9cimxkhiE=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "f451c19376071a90d8c58ab1a953c6e9840527fd", + "rev": "06939f6b7ec4d4f465bf3132a05367cccbbf64da", "type": "github" }, "original": { @@ -312,11 +312,11 @@ ] }, "locked": { - "lastModified": 1722630065, - "narHash": "sha256-QfM/9BMRkCmgWzrPDK+KbgJOUlSJnfX4OvsUupEUZvA=", + "lastModified": 1723015306, + "narHash": "sha256-jQnFEtH20/OsDPpx71ntZzGdRlpXhUENSQCGTjn//NA=", "owner": "nix-community", "repo": "home-manager", - "rev": "afc892db74d65042031a093adb6010c4c3378422", + "rev": "b3d5ea65d88d67d4ec578ed11d4d2d51e3de525e", "type": "github" }, "original": { @@ -334,11 +334,11 @@ ] }, "locked": { - "lastModified": 1722407237, - "narHash": "sha256-wcpVHUc2nBSSgOM7UJSpcRbyus4duREF31xlzHV5T+A=", + "lastModified": 1722630065, + "narHash": "sha256-QfM/9BMRkCmgWzrPDK+KbgJOUlSJnfX4OvsUupEUZvA=", "owner": "nix-community", "repo": "home-manager", - "rev": "58cef3796271aaeabaed98884d4abaab5d9d162d", + "rev": "afc892db74d65042031a093adb6010c4c3378422", "type": "github" }, "original": { @@ -376,11 +376,11 @@ ] }, "locked": { - "lastModified": 1722082646, - "narHash": "sha256-od8dBWVP/ngg0cuoyEl/w9D+TCNDj6Kh4tr151Aax7w=", + "lastModified": 1722924007, + "narHash": "sha256-+CQDamNwqO33REJLft8c26NbUi2Td083hq6SvAm2xkU=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "0413754b3cdb879ba14f6e96915e5fdf06c6aab6", + "rev": "91010a5613ffd7ee23ee9263213157a1c422b705", "type": "github" }, "original": { @@ -395,14 +395,15 @@ "nixpkgs": [ "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable" + "nixpkgs-stable": "nixpkgs-stable", + "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1722648908, - "narHash": "sha256-yBHD6n75iXj8D3YonPf7k32N+m4UOUCW/Yq/+gYvadg=", + "lastModified": 1723258277, + "narHash": "sha256-2yB/905PCCFwFI20mRU7aAZdp1h7cYmsvlKk+t8+W20=", "owner": "lilyinstarlight", "repo": "nixos-cosmic", - "rev": "5e56434064e3b3c8fb1d553322a0fbd04d2c277a", + "rev": "7f032a71bf9cb77df5610796c70f45e1f69a9a3a", "type": "github" }, "original": { @@ -413,11 +414,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1722421184, - "narHash": "sha256-/DJBI6trCeVnasdjUo9pbnodCLZcFqnVZiLUfqLH4jA=", + "lastModified": 1723175592, + "narHash": "sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9f918d616c5321ad374ae6cb5ea89c9e04bf3e58", + "rev": "5e0ca22929f3342b19569b21b2f3462f053e497b", "type": "github" }, "original": { @@ -428,11 +429,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1722519197, - "narHash": "sha256-VEdJmVU2eLFtLqCjTYJd1J7+Go8idAcZoT11IewFiRg=", + "lastModified": 1722987190, + "narHash": "sha256-68hmex5efCiM2aZlAAEcQgmFI4ZwWt8a80vOeB/5w3A=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "05405724efa137a0b899cce5ab4dde463b4fd30b", + "rev": "21cc704b5e918c5fbf4f9fff22b4ac2681706d90", "type": "github" }, "original": { @@ -505,11 +506,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1722605918, - "narHash": "sha256-eWVY6hM2IlxRIVUgKBlPCX4pJ1Nmh3Nvw/Io2LaE0Y4=", + "lastModified": 1723230145, + "narHash": "sha256-FyjcuYZMqXdiKOXkHaIC2ubag+TPV9Z12urC/sdVI6A=", "owner": "nix-community", "repo": "nixvim", - "rev": "0bc169903705c94fda7934ecc27dd9038ad5f0e9", + "rev": "4852f94f8ccae551514df0092a077014bafb95ca", "type": "github" }, "original": { @@ -527,11 +528,11 @@ ] }, "locked": { - "lastModified": 1722144272, - "narHash": "sha256-olZbfaEdd+zNPuuyYcYGaRzymA9rOmth8yXOlVm+LUs=", + "lastModified": 1722772237, + "narHash": "sha256-3eCYmzeLngX8eutIsTZAG8DIvT/0DWQQxiszTQz8n0s=", "owner": "NuschtOS", "repo": "search", - "rev": "16565307c267ec219c2b5d3494ba66df08e7d403", + "rev": "aa5f6246565cc9b1e697d2c9d6ed2c842b17fff6", "type": "github" }, "original": { @@ -550,17 +551,38 @@ "stylix": "stylix" } }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "nixos-cosmic", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1723170066, + "narHash": "sha256-SFkQfOA+8AIYJsPlQtxNP+z5jRLfz91z/aOrV94pPmw=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "fecfe4d7c96fea2982c7907997b387a6b52c1093", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "sops-nix": { "inputs": { "nixpkgs": "nixpkgs_2", "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1722114803, - "narHash": "sha256-s6YhI8UHwQvO4cIFLwl1wZ1eS5Cuuw7ld2VzUchdFP0=", + "lastModified": 1722897572, + "narHash": "sha256-3m/iyyjCdRBF8xyehf59QlckIcmShyTesymSb+N4Ap4=", "owner": "Mic92", "repo": "sops-nix", - "rev": "eb34eb588132d653e4c4925d862f1e5a227cc2ab", + "rev": "8ae477955dfd9cbf5fa4eb82a8db8ddbb94e79d9", "type": "github" }, "original": { @@ -584,11 +606,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1722295291, - "narHash": "sha256-3XpT9GMw50NCGT1Gd2YAwEjrEcFtDqnuQ7sRUcuU/Pc=", + "lastModified": 1722946882, + "narHash": "sha256-mxtnMye8gs82tdQbVC+g6v3aPOZlH150f9WyntHIkTg=", "owner": "danth", "repo": "stylix", - "rev": "feb2973dfa8232c07efbd2b48f11a5cfa2276570", + "rev": "5853f1a8bd072f2ebabfc3de3973084353cf6f1e", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 8c2f542..0c519ed 100644 --- a/flake.nix +++ b/flake.nix @@ -18,6 +18,11 @@ }; }; + nixConfig = { + substituters = ["https://cosmic.cachix.org/"]; + trusted-public-keys = ["cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="]; + }; + outputs = {nixvim, ...} @ inputs: let system = "x86_64-linux"; pkgs = import inputs.nixpkgs {inherit system;}; @@ -32,13 +37,15 @@ zenix = mkConf { nixos-modules = [ ./hardware/zenix.nix - (auto-login "Hyprland") - ./nixos/programs/hyprland.nix + # (auto-login "Hyprland") + # ./nixos/programs/hyprland.nix + ./nixos/programs/cosmic.nix ./nixos/programs/gamer.nix ./nixos/programs/personal.nix ./nixos/workstation.nix ]; home-modules = [ + ./home/workstation.nix ./home/programs/graphical.nix ./home/programs/gamer.nix ./home/programs/personal/. diff --git a/home/programs/neovim/default.nix b/home/programs/neovim/default.nix index dfbee38..10e37bf 100644 --- a/home/programs/neovim/default.nix +++ b/home/programs/neovim/default.nix @@ -1,9 +1,9 @@ {pkgs, ...}: { - programs.nixvim = - { - enable = true; - } - // import ../../../lib/nixvim.nix; + # programs.nixvim = + # { + # enable = true; + # } + # // import ../../../lib/nixvim.nix; programs.vscode = { extensions = [pkgs.vscode-extensions.asvetliakov.vscode-neovim]; diff --git a/nixos/workstation.nix b/nixos/workstation.nix index dd667e0..1ab3a81 100644 --- a/nixos/workstation.nix +++ b/nixos/workstation.nix @@ -2,6 +2,7 @@ inputs, pkgs, lib, + config, ... }: { imports = [ @@ -70,4 +71,8 @@ nerdfonts interalia ]; + + home-manager.users.${config.user}.imports = [ + ../home/workstation.nix + ]; }