From 05429407db79e172e71f0aed3e580ac3dffdc51c Mon Sep 17 00:00:00 2001 From: Nico Date: Fri, 19 Dec 2025 15:22:07 +0100 Subject: [PATCH] tmux + catppuccin mostly --- flake.lock | 212 ++- flake.nix | 4 +- home-nico.nix | 9 +- packages/default.nix | 2 +- packages/niri/config.kdl | 2 +- packages/nvim/default.nix | 6 +- packages/nvim/init.lua | 19 +- packages/nvim/lua/plugins/catppuccin.lua | 6 +- packages/nvim/lua/plugins/nvim-tree.lua | 5 + packages/nvim/lua/plugins/rest.lua | 10 + packages/nvim/lua/plugins/telescope.lua | 16 +- .../nvim/lua/plugins/vim-tmux-navigator.lua | 18 + packages/nvim/lua/plugins/workspaces.lua | 16 + packages/rofi/default.nix | 1 + packages/swaync/default.nix | 1214 ++++++++--------- packages/terminal/default.nix | 24 +- packages/terminal/ghostty-config | 50 +- packages/tmux/default.nix | 115 +- packages/zed-editor/default.nix | 1 + 19 files changed, 962 insertions(+), 768 deletions(-) create mode 100644 packages/nvim/lua/plugins/rest.lua create mode 100644 packages/nvim/lua/plugins/vim-tmux-navigator.lua create mode 100644 packages/nvim/lua/plugins/workspaces.lua diff --git a/flake.lock b/flake.lock index eebcab7..5e82d7d 100644 --- a/flake.lock +++ b/flake.lock @@ -6,11 +6,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1763165251, - "narHash": "sha256-HqprJ5e5+tLVbk3EuWnyiBkVfKTA149eHh+u2VzUrY0=", + "lastModified": 1764289441, + "narHash": "sha256-ak+lgFiYE5PHByN1/BRkO5JP498hno6Ix24C1Qf/vec=", "owner": "Aylur", "repo": "ags", - "rev": "0cbca42b11d23aad8c0689fc7385e517bde94c61", + "rev": "e169694390548dfd38ff40f1ef2163d6c3ffe3ea", "type": "github" }, "original": { @@ -27,11 +27,11 @@ ] }, "locked": { - "lastModified": 1762012522, - "narHash": "sha256-ncEN4OVFM5M9VFc4oR3gOI5K8r99GcYxtU+Cf4Z8pbs=", + "lastModified": 1764173295, + "narHash": "sha256-Jh4VtPcK2Ov+RTcV9FtyQRsxiJmXFQGfqX6jjM7/mgc=", "owner": "aylur", "repo": "astal", - "rev": "671d4229c798834190a50fb8b8d8addd19b529e9", + "rev": "7d1fac8a4b2a14954843a978d2ddde86168c75ef", "type": "github" }, "original": { @@ -40,13 +40,31 @@ "type": "github" } }, + "catppuccin": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1765990358, + "narHash": "sha256-l8x0gU8mnYaGMl+gWrsSHKBJlZWD8KXJfHTkRlFiPI0=", + "owner": "catppuccin", + "repo": "nix", + "rev": "de1b60ca45a578f59f7d84c8d338b346017b2161", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "nix", + "type": "github" + } + }, "crane": { "locked": { - "lastModified": 1762538466, - "narHash": "sha256-8zrIPl6J+wLm9MH5ksHcW7BUHo7jSNOu0/hA0ohOOaM=", + "lastModified": 1765145449, + "narHash": "sha256-aBVHGWWRzSpfL++LubA0CwOOQ64WNLegrYHwsVuVN7A=", "owner": "ipetkov", "repo": "crane", - "rev": "0cea393fffb39575c46b7a0318386467272182fe", + "rev": "69f538cdce5955fcd47abfed4395dc6d5194c1c5", "type": "github" }, "original": { @@ -73,11 +91,11 @@ }, "flake-compat_2": { "locked": { - "lastModified": 1761588595, - "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", + "lastModified": 1765121682, + "narHash": "sha256-4VBOP18BFeiPkyhy9o4ssBNQEvfvv1kXkasAYd0+rrA=", "owner": "edolstra", "repo": "flake-compat", - "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", + "rev": "65f23138d8d09a92e30f1e5c87611b23ef451bf3", "type": "github" }, "original": { @@ -114,11 +132,11 @@ ] }, "locked": { - "lastModified": 1763416652, - "narHash": "sha256-8EBEEvtzQ11LCxpQHMNEBQAGtQiCu/pqP9zSovDSbNM=", + "lastModified": 1765980955, + "narHash": "sha256-rB45jv4uwC90vM9UZ70plfvY/2Kdygs+zlQ07dGQFk4=", "owner": "nix-community", "repo": "home-manager", - "rev": "ea164b7c9ccdc2321379c2ff78fd4317b4c41312", + "rev": "89c9508bbe9b40d36b3dc206c2483ef176f15173", "type": "github" }, "original": { @@ -135,11 +153,11 @@ ] }, "locked": { - "lastModified": 1762964643, - "narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=", + "lastModified": 1765682243, + "narHash": "sha256-yeCxFV/905Wr91yKt5zrVvK6O2CVXWRMSrxqlAZnLp0=", "owner": "nix-community", "repo": "home-manager", - "rev": "827f2a23373a774a8805f84ca5344654c31f354b", + "rev": "58bf3ecb2d0bba7bdf363fc8a6c4d49b4d509d03", "type": "github" }, "original": { @@ -163,13 +181,31 @@ "type": "github" } }, + "ndg": { + "inputs": { + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1765720983, + "narHash": "sha256-tWtukpABmux6EC/FuCJEgA1kmRjcRPtED44N+GGPq+4=", + "owner": "feel-co", + "repo": "ndg", + "rev": "f399ace8bb8e1f705dd8942b24d207aa4d75c936", + "type": "github" + }, + "original": { + "owner": "feel-co", + "repo": "ndg", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1761907660, - "narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=", + "lastModified": 1763966396, + "narHash": "sha256-6eeL1YPcY1MV3DDStIDIdy/zZCDKgHdkCmsrLJFiZf0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15", + "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", "type": "github" }, "original": { @@ -181,11 +217,27 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1763421233, - "narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=", + "lastModified": 1763966396, + "narHash": "sha256-6eeL1YPcY1MV3DDStIDIdy/zZCDKgHdkCmsrLJFiZf0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1765779637, + "narHash": "sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648", + "rev": "1306659b587dc277866c7b69eb97e5f07864d8c4", "type": "github" }, "original": { @@ -195,29 +247,13 @@ "type": "github" } }, - "nixpkgs_3": { - "locked": { - "lastModified": 1761880412, - "narHash": "sha256-QoJjGd4NstnyOG4mm4KXF+weBzA2AH/7gn1Pmpfcb0A=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "a7fc11be66bdfb5cdde611ee5ce381c183da8386", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_4": { "locked": { - "lastModified": 1762977756, - "narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=", + "lastModified": 1764242076, + "narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55", + "rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4", "type": "github" }, "original": { @@ -229,24 +265,56 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 315532800, - "narHash": "sha256-5CwQ80ucRHiqVbMEEbTFnjz70/axSJ0aliyzSaFSkmY=", - "rev": "f6b44b2401525650256b977063dbcf830f762369", + "lastModified": 1764081664, + "narHash": "sha256-sUoHmPr/EwXzRMpv1u/kH+dXuvJEyyF2Q7muE+t0EU4=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "dc205f7b4fdb04c8b7877b43edb7b73be7730081", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1765472234, + "narHash": "sha256-9VvC20PJPsleGMewwcWYKGzDIyjckEz8uWmT0vCDYK0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2fbfb1d73d239d2402a8fe03963e37aab15abe8b", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1765772535, + "narHash": "sha256-I715zWsdVZ+CipmLtoCAeNG0etQywiWRE5PaWntnaYk=", + "rev": "09b8fda8959d761445f12b55f380d90375a1d6bb", "type": "tarball", - "url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre891648.f6b44b240152/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre911985.09b8fda8959d/nixexprs.tar.xz" }, "original": { "type": "tarball", "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz" } }, - "nixpkgs_6": { + "nixpkgs_8": { "locked": { - "lastModified": 1762977756, - "narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=", + "lastModified": 1765472234, + "narHash": "sha256-9VvC20PJPsleGMewwcWYKGzDIyjckEz8uWmT0vCDYK0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55", + "rev": "2fbfb1d73d239d2402a8fe03963e37aab15abe8b", "type": "github" }, "original": { @@ -261,15 +329,16 @@ "flake-compat": "flake-compat", "flake-parts": "flake-parts", "mnw": "mnw", - "nixpkgs": "nixpkgs_3", + "ndg": "ndg", + "nixpkgs": "nixpkgs_5", "systems": "systems" }, "locked": { - "lastModified": 1762622004, - "narHash": "sha256-NpzzgaoMK8aRHnndHWbYNKLcZN0r1y6icCoJvGoBsoE=", + "lastModified": 1765894398, + "narHash": "sha256-vZmKngMAaZ38mUjWeXavagrCE5f4h4s9yIShf2q75I4=", "owner": "notashelf", "repo": "nvf", - "rev": "09470524a214ed26633ddc2b6ec0c9bf31a8b909", + "rev": "cd81bbb904571b538397d72a29e4c84b98480ee1", "type": "github" }, "original": { @@ -281,8 +350,9 @@ "root": { "inputs": { "ags": "ags", + "catppuccin": "catppuccin", "home-manager": "home-manager", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs_3", "nvf": "nvf", "spicetify-nix": "spicetify-nix", "zed": "zed", @@ -297,11 +367,11 @@ ] }, "locked": { - "lastModified": 1762915112, - "narHash": "sha256-d9j1g8nKmYDHy+/bIOPQTh9IwjRliqaTM0QLHMV92Ic=", + "lastModified": 1765465581, + "narHash": "sha256-fCXT0aZXmTalM3NPCTedVs9xb0egBG5BOZkcrYo5PGE=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "aa1e85921cfa04de7b6914982a94621fbec5cc02", + "rev": "99cc5667eece98bb35dcf35f7e511031a8b7a125", "type": "github" }, "original": { @@ -312,15 +382,15 @@ }, "spicetify-nix": { "inputs": { - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_6", "systems": "systems_2" }, "locked": { - "lastModified": 1763267524, - "narHash": "sha256-CywB4iCpGr4CYZAD+WboFwBQ7Wnc7LdfSemFWuH/1Ro=", + "lastModified": 1765687197, + "narHash": "sha256-5aJgT+lEC7ypuAGE3DQLj3LzYDQ+kRG6MnkVr3ZF9RU=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "cf33e39bd1a21993a28ffee8be433e212ecf346a", + "rev": "fa6a5dde9d95bf7b8f075ff5aceeb1d97fa9043a", "type": "github" }, "original": { @@ -363,15 +433,15 @@ "inputs": { "crane": "crane", "flake-compat": "flake-compat_2", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_7", "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1763568568, - "narHash": "sha256-PP4h13/BhOnqagvJUtILvnGIylQFm9EmIKeW6vzpWhY=", + "lastModified": 1765998037, + "narHash": "sha256-nTqanCMNTE+SRYW1IHY/7BoGUEQbqmNN+zWCk6ANkR0=", "owner": "zed-industries", "repo": "zed", - "rev": "f05eef58c46be2d6617847494b444ac442780367", + "rev": "fa529b2ad272881aa45c66242ad02934cb22d624", "type": "github" }, "original": { @@ -383,14 +453,14 @@ "zen-browser": { "inputs": { "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_8" }, "locked": { - "lastModified": 1763521945, - "narHash": "sha256-Zcrafbe4niRJMbzaVOwg7+iedJhwBFttre2DpyCC6qA=", + "lastModified": 1765946036, + "narHash": "sha256-R/qaIkzqm00qBMr8onM6ZZFX49lvsQLZ79adVubqjts=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "24d7381b9231c23daceec5d372cc28e877f7785d", + "rev": "7db019a64483743a8d92319baafbbe71b687d0a1", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 401a23e..23fe483 100644 --- a/flake.nix +++ b/flake.nix @@ -19,9 +19,10 @@ zed.url = "github:zed-industries/zed"; + catppuccin.url = "github:catppuccin/nix"; }; - outputs = { self, nixpkgs, nvf, zen-browser, spicetify-nix, zed, ... }@inputs: + outputs = { self, nixpkgs, nvf, zen-browser, spicetify-nix, zed, catppuccin, ... }@inputs: let system = "x86_64-linux"; in { nixosConfigurations.nixos = nixpkgs.lib.nixosSystem { @@ -34,6 +35,7 @@ # inputs.zen-browser.packages."${system}".default # nvf.homeManagerModules.default # inputs.zed.packages."${system}".default + catppuccin.nixosModules.catppuccin inputs.home-manager.nixosModules.default ]; }; diff --git a/home-nico.nix b/home-nico.nix index baa1bae..a9ee384 100644 --- a/home-nico.nix +++ b/home-nico.nix @@ -8,6 +8,7 @@ ./packages inputs.spicetify-nix.homeManagerModules.default inputs.zen-browser.homeModules.default + inputs.catppuccin.homeModules.catppuccin ]; nixpkgs = { @@ -23,7 +24,11 @@ programs.zen-browser.enable = true; - + catppuccin = { + enable = true; + accent = "mauve"; + flavor = "mocha"; + }; home.pointerCursor = let @@ -57,7 +62,7 @@ spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; in { - enable = true; + enable = false; theme = spicePkgs.themes.catppuccin; colorScheme = "mocha"; diff --git a/packages/default.nix b/packages/default.nix index 0a8d281..60bc6bb 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -16,7 +16,7 @@ ./niri ./hyprland ./zed-editor - # ./tmux + ./tmux # ./vscode ]; } diff --git a/packages/niri/config.kdl b/packages/niri/config.kdl index e9a9e74..adee9cb 100644 --- a/packages/niri/config.kdl +++ b/packages/niri/config.kdl @@ -277,7 +277,7 @@ environment { // Additionally, clients will be informed that they are tiled, removing some client-side rounded corners. // This option will also fix border/focus ring drawing behind some semitransparent windows. // After enabling or disabling this, you need to restart the apps for this to take effect. -// prefer-no-csd +prefer-no-csd // You can change the path where screenshots are saved. // A ~ at the front will be expanded to the home directory. diff --git a/packages/nvim/default.nix b/packages/nvim/default.nix index ba6e32f..6741ccf 100644 --- a/packages/nvim/default.nix +++ b/packages/nvim/default.nix @@ -17,7 +17,7 @@ programs.neovim = { enable = true; vimAlias = true; }; - +catppuccin.nvim.enable = false; programs.neovim.plugins = [ pkgs.vimPlugins.lazy-nvim @@ -59,6 +59,10 @@ programs.neovim.plugins = [ ".config/nvim/lua/plugins/conform.lua".source = ./lua/plugins/conform.lua; ".config/nvim/lua/plugins/nvim-tree.lua".source = ./lua/plugins/nvim-tree.lua; ".config/nvim/lua/plugins/notify.lua".source = ./lua/plugins/notify.lua; + # ".config/nvim/lua/plugins/rest.lua".source = ./lua/plugins/rest.lua; + ".config/nvim/lua/plugins/neominimap.lua".source = ./lua/plugins/neominimap.lua; + ".config/nvim/lua/plugins/vim-tmux-navigator.lua".source = ./lua/plugins/vim-tmux-navigator.lua; + # ".config/nvim/lua/plugins/workspaces.lua".source = ./lua/plugins/workspaces.lua; # ".config/nvim/lua/plugins/go.lua".source = ./lua/plugins/go.lua; # ".config/nvim/lua/plugins/typst.lua".source = ./lua/plugins/typst.lua; diff --git a/packages/nvim/init.lua b/packages/nvim/init.lua index 47d58cb..3b9f6ce 100644 --- a/packages/nvim/init.lua +++ b/packages/nvim/init.lua @@ -46,8 +46,8 @@ end, { noremap = true, silent = true }) -- Lazy require("config.lazy") -require("catppuccin").setup({}) -vim.cmd.colorscheme("catppuccin") +-- require("catppuccin").setup({}) +-- vim.cmd.colorscheme("catppuccin") -- css colors vim.opt.termguicolors = true @@ -57,7 +57,6 @@ require("nvim-highlight-colors").setup({}) require("lualine").setup() require("dapui").setup() require("ibl").setup() -require("telescope").load_extension("flutter") require("toggleterm").setup({}) require("mini.animate").setup() require('nvim-autopairs').enable() @@ -110,17 +109,17 @@ dap.configurations.cpp = dap.configurations.gdb dap.configurations.rust = dap.configurations.gdb -------------------------------------------- -local builtin = require("telescope.builtin") +-- local builtin = require("telescope.builtin") local conform = require("conform") -- Love binds vim.keymap.set("n", "lr", ":LoveRun", { desc = "Love run" }) -- Telescope binds -vim.keymap.set("n", "ff", builtin.find_files, { desc = "Telescope find files" }) -vim.keymap.set("n", "fg", builtin.live_grep, { desc = "Telescope live grep" }) -vim.keymap.set("n", "fb", ":Telescope file_browser", { desc = "Telescope file_browser" }) -vim.keymap.set("n", "fh", builtin.help_tags, { desc = "Telescope help tags" }) -vim.keymap.set("n", "fl", ": Telescope flutter commands", { desc = "Open Telescope flutter" }) -vim.keymap.set("n", "fl", ":Telescope flutter commands", { desc = "Open Telescope flutter" }) +-- vim.keymap.set("n", "ff", builtin.find_files, { desc = "Telescope find files" }) +-- vim.keymap.set("n", "fg", builtin.live_grep, { desc = "Telescope live grep" }) +-- vim.keymap.set("n", "fb", ":Telescope file_browser", { desc = "Telescope file_browser" }) +-- vim.keymap.set("n", "fh", builtin.help_tags, { desc = "Telescope help tags" }) +-- vim.keymap.set("n", "fl", ": Telescope flutter commands", { desc = "Open Telescope flutter" }) +-- vim.keymap.set("n", "fl", ":Telescope flutter commands", { desc = "Open Telescope flutter" }) -- Dap binds vim.keymap.set("n", "do", dapui.open, { desc = "Open debug overlay" }) vim.keymap.set("n", "dc", dapui.close, { desc = "Close debug overlay" }) diff --git a/packages/nvim/lua/plugins/catppuccin.lua b/packages/nvim/lua/plugins/catppuccin.lua index a76f8dd..13bf4bb 100644 --- a/packages/nvim/lua/plugins/catppuccin.lua +++ b/packages/nvim/lua/plugins/catppuccin.lua @@ -14,5 +14,9 @@ return { indentscope_color = "", }, } - } + }, + config = function() + require("catppuccin").setup({}) + vim.cmd.colorscheme("catppuccin") + end } diff --git a/packages/nvim/lua/plugins/nvim-tree.lua b/packages/nvim/lua/plugins/nvim-tree.lua index 9493a11..0e51185 100644 --- a/packages/nvim/lua/plugins/nvim-tree.lua +++ b/packages/nvim/lua/plugins/nvim-tree.lua @@ -10,6 +10,11 @@ return { view = { width = 30, }, + renderer = { + indent_markers = { + enable = true; + } + } }) end, } diff --git a/packages/nvim/lua/plugins/rest.lua b/packages/nvim/lua/plugins/rest.lua new file mode 100644 index 0000000..e518cef --- /dev/null +++ b/packages/nvim/lua/plugins/rest.lua @@ -0,0 +1,10 @@ +return { + "rest-nvim/rest.nvim", + dependencies = { + "nvim-treesitter/nvim-treesitter", + opts = function (_, opts) + opts.ensure_installed = opts.ensure_installed or {} + table.insert(opts.ensure_installed, "http") + end, + } +} diff --git a/packages/nvim/lua/plugins/telescope.lua b/packages/nvim/lua/plugins/telescope.lua index ed8cc88..44591b2 100644 --- a/packages/nvim/lua/plugins/telescope.lua +++ b/packages/nvim/lua/plugins/telescope.lua @@ -1,4 +1,16 @@ return { - "nvim-telescope/telescope-file-browser.nvim", - dependencies = { "nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim" } + "nvim-telescope/telescope-file-browser.nvim", + dependencies = { "nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim" }, + + config = function() + local telescope = require("telescope") + telescope.load_extension("flutter") + local builtin = require("telescope.builtin") + vim.keymap.set("n", "ff", builtin.find_files, { desc = "Telescope find files" }) + vim.keymap.set("n", "fg", builtin.live_grep, { desc = "Telescope live grep" }) + vim.keymap.set("n", "fb", ":Telescope file_browser", { desc = "Telescope file_browser" }) + vim.keymap.set("n", "fh", builtin.help_tags, { desc = "Telescope help tags" }) + vim.keymap.set("n", "fl", ": Telescope flutter commands", { desc = "Open Telescope flutter" }) + vim.keymap.set("n", "fl", ":Telescope flutter commands", { desc = "Open Telescope flutter" }) + end, } diff --git a/packages/nvim/lua/plugins/vim-tmux-navigator.lua b/packages/nvim/lua/plugins/vim-tmux-navigator.lua new file mode 100644 index 0000000..11c99cd --- /dev/null +++ b/packages/nvim/lua/plugins/vim-tmux-navigator.lua @@ -0,0 +1,18 @@ +return { + "christoomey/vim-tmux-navigator", + cmd = { + "TmuxNavigateLeft", + "TmuxNavigateDown", + "TmuxNavigateUp", + "TmuxNavigateRight", + "TmuxNavigatePrevious", + "TmuxNavigatorProcessList", + }, + keys = { + { "", "TmuxNavigateLeft" }, + { "", "TmuxNavigateDown" }, + { "", "TmuxNavigateUp" }, + { "", "TmuxNavigateRight" }, + { "", "TmuxNavigatePrevious" }, + }, +} diff --git a/packages/nvim/lua/plugins/workspaces.lua b/packages/nvim/lua/plugins/workspaces.lua new file mode 100644 index 0000000..4f915e2 --- /dev/null +++ b/packages/nvim/lua/plugins/workspaces.lua @@ -0,0 +1,16 @@ +return { + "natecraddock/workspaces.nvim", + dependencies = { + "nvim-telescope/telescope.nvim", + }, + + config = function () + require("workspaces").setup() + require("telescope").load_extension("workspaces"); + + vim.keymap.set("n", "w", "", { desc = "Open telescope workspaces" }) + vim.keymap.set("n", "wa", ":WorkspacesAdd ", { desc = "Add workspace" }) + vim.keymap.set("n", "wo", ":Telescope workspaces", { desc = "Show workspaces" }) + vim.keymap.set("n", "wd", ":WorkspacesRemove ", { desc = "Remove workspace" }) + end +} diff --git a/packages/rofi/default.nix b/packages/rofi/default.nix index cd41a02..048d2be 100644 --- a/packages/rofi/default.nix +++ b/packages/rofi/default.nix @@ -5,6 +5,7 @@ rofi-power-menu ]; +catppuccin.rofi.enable = false; programs.rofi = { enable = true; diff --git a/packages/swaync/default.nix b/packages/swaync/default.nix index ad85b31..9d28e11 100644 --- a/packages/swaync/default.nix +++ b/packages/swaync/default.nix @@ -114,612 +114,612 @@ }; }; }; - style = '' - @define-color shadow rgba(0, 0, 0, 0.25); - /* - * - * Catppuccin Mocha palette - * Maintainer: rubyowo - * - */ - - @define-color base #1E1D2E; - @define-color mantle #181825; - @define-color crust #11111b; - - @define-color text #cdd6f4; - @define-color subtext0 #a6adc8; - @define-color subtext1 #bac2de; - - @define-color surface0 #313244; - @define-color surface1 #45475a; - @define-color surface2 #585b70; - - @define-color overlay0 #6c7086; - @define-color overlay1 #7f849c; - @define-color overlay2 #9399b2; - - @define-color blue #89b4fa; - @define-color lavender #b4befe; - @define-color sapphire #74c7ec; - @define-color sky #89dceb; - @define-color teal #94e2d5; - @define-color green #a6e3a1; - @define-color yellow #f9e2af; - @define-color peach #fab387; - @define-color maroon #eba0ac; - @define-color red #f38ba8; - @define-color mauve #cba6f7; - @define-color pink #f5c2e7; - @define-color flamingo #f2cdcd; - @define-color rosewater #f5e0dc; - - @define-color base_lighter #1e1e2e; - @define-color mauve_lighter #caa6f7; - - * { - font-family: "Product Sans"; - background-clip: border-box; - } - - /* #notifications_box { */ - /* border: solid 4px red; */ - /* } */ - - label { -color: @text; - } - - .notification { -border: none; - box-shadow: none; - /* margin: 0px; */ - /* margin: -15px -10px -15px -10px; */ - border-radius: 4px; -background: inherit; - /* background: @theme_bg_color; */ - /* background: shade(alpha(@borders, 2.55), 0.25); */ - } - - .notification button { -background: transparent; - border-radius: 0px; -border: none; -margin: 0px; -padding: 0px; - } - - .notification button:hover { - /* background: @surface0; */ -background: @insensitive_bg_color; - } - - .notification-content { - min-height: 64px; -margin: 10px; -padding: 0px; - border-radius: 0px; - } - - .close-button { -background: transparent; -color: transparent; - } - - .notification-default-action, - .notification-action { -background: transparent; -border: none; - } - - - .notification-default-action { - border-radius: 4px; - } - - /* When alternative actions are visible */ - .notification-default-action:not(:only-child) { - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - } - - .notification-action { - border-radius: 0px; -padding: 2px; -color: @text; - /* color: @theme_text_color; */ - } - - /* add bottom border radius to eliminate clipping */ - .notification-action:first-child { - border-bottom-left-radius: 4px; - } - - .notification-action:last-child { - border-bottom-right-radius: 4px; - } - - /*** Notification ***/ - /* Notification header */ - .summary { -color: @text; - /* color: @theme_text_color; */ - font-size: 14px; -padding: 0px; - } - - .time { -color: @subtext0; - /* color: alpha(@theme_text_color, 0.9); */ - font-size: 12px; - text-shadow: none; -margin: 0px 0px 0px 0px; -padding: 2px 0px; - } - - .body { - font-size: 14px; - font-weight: 500; -color: @subtext1; - /* color: alpha(@text, 0.9); */ - /* color: alpha(@theme_text_color, 0.9); */ - text-shadow: none; -margin: 0px 0px 0px 0px; - } - - .body-image { - border-radius: 4px; - } - - /* The "Notifications" and "Do Not Disturb" text widget */ - .top-action-title { -color: @text; - /* color: @theme_text_color; */ - text-shadow: none; - } - - /* Control center */ - - .control-center { -background: alpha(@crust, .80); - border-radius: 15px; -border: 0px solid @selected; - box-shadow: 0 0 10px 0 rgba(0,0,0,.80); -margin: 10px; -padding: 4px; - } - - /* .right.overlay-indicator { */ - /* border: solid 5px red; */ - /* } */ - - .control-center-list { - /* background: @base; */ -background: alpha(@crust, .80); - min-height: 5px; - /* border: 1px solid @surface1; */ - border-top: none; - border-radius: 0px 0px 4px 4px; - } - - .control-center-list-placeholder, - .notification-group-icon, - .notification-group { - /* opacity: 1.0; */ - /* opacity: 0; */ -color: alpha(@theme_text_color, 0.50); - } - - .notification-group { - /* unset the annoying focus thingie */ -opacity: 0; - box-shadow: none; - /* selectable: no; */ - } - - .notification-group > box { -all: unset; -background: transparent; - /* background: alpha(currentColor, 0.072); */ -padding: 4px; -margin: 0px; - /* margin: 0px -5px; */ -border: none; - border-radius: 4px; - box-shadow: none; - } - - .notification-row { -outline: none; -transition: all 1s ease; -background: alpha(@mantle, .80); - /* background: @theme_bg_color; */ -border: 0px solid @crust; -margin: 10px 5px 0px 5px; - border-radius: 14px; - /* box-shadow: 0px 0px 4px black; */ - /* background: alpha(currentColor, 0.05); */ - } - - .notification-row:focus, - .notification-row:hover { - box-shadow: none; - } - - .control-center-list > row, - .control-center-list > row:focus, - .control-center-list > row:hover { -background: transparent; -border: none; -margin: 0px; -padding: 5px 10px 5px 10px; - box-shadow: none; - } - - .control-center-list > row:last-child { -padding: 5px 10px 10px 10px; - } - - - /* Window behind control center and on all other monitors */ - .blank-window { -background: transparent; - } - - /*** Widgets ***/ - - /* Title widget */ - .widget-title { -margin: 0px; -background: transparent; - /* background: @theme_bg_color; */ - border-radius: 4px 4px 0px 0px; - /* border: 1px solid @surface1; */ - border-bottom: none; - } - - .widget-title > label { -margin: 18px 10px; - font-size: 20px; - font-weight: 500; - } - - .widget-title > button { - font-weight: 700; -padding: 7px 3px; - margin-right: 10px; -background: transparent; -color: @text; - /* color: @theme_text_color; */ -border: none; - border-radius: 4px; - } - .widget-title > button:hover { -background: @base; - /* background: alpha(currentColor, 0.1); */ - } - - /* Label widget */ - .widget-label { -margin: 0px; -padding: 0px; - min-height: 5px; -background: alpha(@mantle, .80); - /* background: @theme_bg_color; */ - border-radius: 0px 0px 4px 4px; - /* border: 1px solid @surface1; */ - border-top: none; - } - .widget-label > label { - font-size: 15px; - font-weight: 400; - } - - /* Menubar */ - .widget-menubar { -background: transparent; - /* background: @theme_bg_color; */ - /* border: 1px solid @surface1; */ - border-top: none; - border-bottom: none; - } - .widget-menubar > box > box { -margin: 5px 10px 5px 10px; - min-height: 40px; - border-radius: 4px; -background: transparent; - } - .widget-menubar > box > box > button { -background: alpha(@mantle, .80); - /* background: alpha(currentColor, 0.05); */ - min-width: 185px; - min-height: 50px; - margin-right: 10px; - font-size: 14px; -padding: 0px; - } - .widget-menubar > box > box > button:nth-child(2) { - margin-right: 0px; - } - .widget-menubar button:focus { - box-shadow: none; - } - .widget-menubar button:focus:hover { -background: @base; - /* background: alpha(currentColor,0.1); */ - box-shadow: none; - } - - .widget-menubar > box > revealer > box { -margin: 5px 10px 5px 10px; -background: alpha(@mantle, .80); - /* background: alpha(currentColor, 0.05); */ - border-radius: 4px; - } - .widget-menubar > box > revealer > box > button { -background: transparent; - min-height: 50px; -padding: 0px; -margin: 5px; - } - - /* Buttons grid */ - .widget-buttons-grid { - /* background-color: @theme_bg_color; */ -background: transparent; - /* border: 1px solid @surface1; */ - border-top: none; - border-bottom: none; - font-size: 14px; - font-weight: 500; -margin: 0px; -padding: 5px; - border-radius: 0px; - } - - .widget-buttons-grid > flowbox > flowboxchild { -background: alpha(@mantle, .80); - /* background: alpha(currentColor, 0.05); */ - border-radius: 4px; - min-height: 50px; - min-width: 85px; -margin: 5px; -padding: 0px; - } - - .widget-buttons-grid > flowbox > flowboxchild > button { -background: transparent; - border-radius: 4px; -margin: 0px; -border: none; - box-shadow: none; - } - - - .widget-buttons-grid > flowbox > flowboxchild > button:hover { -background: alpha(@mantle, .80); - /* background: alpha(currentColor, 0.1); */ - } - - /* Mpris widget */ - .widget-mpris { -padding: 8px; - padding-bottom: 15px; - margin-bottom: -33px; - } - .widget-mpris > box { -padding: 0px; -margin: -5px 0px -10px 0px; -padding: 0px; - border-radius: 4px; - /* background: alpha(currentColor, 0.05); */ -background: alpha(@mantle, .80); - } - .widget-mpris > box > button:nth-child(1), - .widget-mpris > box > button:nth-child(3) { - margin-bottom: 0px; - } - .widget-mpris > box > button:nth-child(1) { - margin-left: -25px; - margin-right: -25px; -opacity: 0; - } - .widget-mpris > box > button:nth-child(3) { - margin-left: -25px; - margin-right: -25px; -opacity: 0; - } - - .widget-mpris-album-art { -all: unset; - } - - /* Player button box */ - .widget-mpris > box > carousel > widget > box > box:nth-child(2) { -margin: 5px 0px -5px 90px; - } - - /* Player buttons */ - .widget-mpris > box > carousel > widget > box > box:nth-child(2) > button { - border-radius: 4px; - } - .widget-mpris > box > carousel > widget > box > box:nth-child(2) > button:hover { -background: alpha(currentColor, 0.1); - } - carouselindicatordots { -opacity: 0; - } - - .widget-mpris-title { -color: #eeeeee; - font-weight: bold; - font-size: 1.25rem; - text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5); - } - .widget-mpris-subtitle { -color: #eeeeee; - font-size: 1rem; - text-shadow: 0px 0px 3px rgba(0, 0, 0, 1); - } - - .widget-mpris-player { - border-radius: 0px; -margin: 0px; - } - .widget-mpris-player > box > image { -margin: 0px 0px -48px 0px; - } - - .notification-group > box.vertical { - /* border: solid 5px red; */ - margin-top: 3px - } - - /* Backlight and volume widgets */ - .widget-backlight, - .widget-volume { -background: transparent; - /* background-color: @crust; */ - /* background-color: @theme_bg_color; */ - /* border: 1px solid @surface1; */ - border-top: none; - border-bottom: none; font-size: 13px; - font-weight: 600; - border-radius: 0px; -margin: 0px; -padding: 0px; - } - .widget-volume > box { -background: alpha(@mantle, .80); - /* background: alpha(currentColor, 0.05); */ - border-radius: 4px; -margin: 5px 10px 5px 10px; - min-height: 50px; - } - .widget-volume > box > label { - min-width: 50px; -padding: 0px; - } - .widget-volume > box > button { - min-width: 50px; - box-shadow: none; -padding: 0px; - } - .widget-volume > box > button:hover { - /* background: alpha(currentColor, 0.05); */ -background: @surface0; - } - .widget-volume > revealer > list { -background: alpha(@mantle, .80); - /* background: alpha(currentColor, 0.05); */ - border-radius: 4px; - margin-top: 5px; -padding: 0px; - } - .widget-volume > revealer > list > row { - padding-left: 10px; - min-height: 40px; -background: transparent; - } - .widget-volume > revealer > list > row:hover { -background: transparent; - box-shadow: none; - border-radius: 4px; - } - .widget-backlight > scale { -background: alpha(@mantle, .80); - /* background: alpha(currentColor, 0.05); */ - border-radius: 0px 4px 4px 0px; -margin: 5px 10px 5px 0px; -padding: 0px 10px 0px 0px; - min-height: 50px; - } - .widget-backlight > label { -background: @surface0; - /* background: alpha(currentColor, 0.05); */ -margin: 5px 0px 5px 10px; - border-radius: 4px 0px 0px 4px; -padding: 0px; - min-height: 50px; - min-width: 50px; - } - - /* DND widget */ - .widget-dnd { -margin: 6px; - font-size: 1.2rem; - } - - .widget-dnd > switch { -background: alpha(@mantle, .80); - font-size: initial; - border-radius: 8px; - box-shadow: none; -padding: 2px; - } - - .widget-dnd > switch:hover { -background: alpha(@mauve_lighter, .80); - } - - .widget-dnd > switch:checked { -background: @mauve; - } - - .widget-dnd > switch:checked:hover { -background: alpha(@mauve_lighter, .80); - } - - .widget-dnd > switch slider { -background: alpha(@mauve_lighter, .80); - border-radius: 6px; - } - - /* Toggles */ - .toggle:checked { -background: @surface1; - /* background: @theme_selected_bg_color; */ - } - /*.toggle:not(:checked) { -color: rgba(128, 128, 128, 0.5); -}*/ -.toggle:checked:hover { -background: @surface2; - /* background: alpha(@theme_selected_bg_color, 0.75); */ -} - -/* Sliders */ -scale { -padding: 0px; -margin: 0px 10px 0px 10px; -} - -scale trough { - border-radius: 4px; -background: @surface0; - /* background: alpha(currentColor, 0.1); */ -} - -scale highlight { - border-radius: 5px; - min-height: 10px; - margin-right: -5px; -} - -scale slider { -margin: -10px; - min-width: 10px; - min-height: 10px; -background: transparent; - box-shadow: none; -padding: 0px; -} -scale slider:hover { -} - -.right.overlay-indicator { -all: unset; -} -''; +# style = '' +# @define-color shadow rgba(0, 0, 0, 0.25); +# /* +# * +# * Catppuccin Mocha palette +# * Maintainer: rubyowo +# * +# */ +# +# @define-color base #1E1D2E; +# @define-color mantle #181825; +# @define-color crust #11111b; +# +# @define-color text #cdd6f4; +# @define-color subtext0 #a6adc8; +# @define-color subtext1 #bac2de; +# +# @define-color surface0 #313244; +# @define-color surface1 #45475a; +# @define-color surface2 #585b70; +# +# @define-color overlay0 #6c7086; +# @define-color overlay1 #7f849c; +# @define-color overlay2 #9399b2; +# +# @define-color blue #89b4fa; +# @define-color lavender #b4befe; +# @define-color sapphire #74c7ec; +# @define-color sky #89dceb; +# @define-color teal #94e2d5; +# @define-color green #a6e3a1; +# @define-color yellow #f9e2af; +# @define-color peach #fab387; +# @define-color maroon #eba0ac; +# @define-color red #f38ba8; +# @define-color mauve #cba6f7; +# @define-color pink #f5c2e7; +# @define-color flamingo #f2cdcd; +# @define-color rosewater #f5e0dc; +# +# @define-color base_lighter #1e1e2e; +# @define-color mauve_lighter #caa6f7; +# +# * { +# font-family: "Product Sans"; +# background-clip: border-box; +# } +# +# /* #notifications_box { */ +# /* border: solid 4px red; */ +# /* } */ +# +# label { +# color: @text; +# } +# +# .notification { +# border: none; +# box-shadow: none; +# /* margin: 0px; */ +# /* margin: -15px -10px -15px -10px; */ +# border-radius: 4px; +# background: inherit; +# /* background: @theme_bg_color; */ +# /* background: shade(alpha(@borders, 2.55), 0.25); */ +# } +# +# .notification button { +# background: transparent; +# border-radius: 0px; +# border: none; +# margin: 0px; +# padding: 0px; +# } +# +# .notification button:hover { +# /* background: @surface0; */ +# background: @insensitive_bg_color; +# } +# +# .notification-content { +# min-height: 64px; +# margin: 10px; +# padding: 0px; +# border-radius: 0px; +# } +# +# .close-button { +# background: transparent; +# color: transparent; +# } +# +# .notification-default-action, +# .notification-action { +# background: transparent; +# border: none; +# } +# +# +# .notification-default-action { +# border-radius: 4px; +# } +# +# /* When alternative actions are visible */ +# .notification-default-action:not(:only-child) { +# border-bottom-left-radius: 0px; +# border-bottom-right-radius: 0px; +# } +# +# .notification-action { +# border-radius: 0px; +# padding: 2px; +# color: @text; +# /* color: @theme_text_color; */ +# } +# +# /* add bottom border radius to eliminate clipping */ +# .notification-action:first-child { +# border-bottom-left-radius: 4px; +# } +# +# .notification-action:last-child { +# border-bottom-right-radius: 4px; +# } +# +# /*** Notification ***/ +# /* Notification header */ +# .summary { +# color: @text; +# /* color: @theme_text_color; */ +# font-size: 14px; +# padding: 0px; +# } +# +# .time { +# color: @subtext0; +# /* color: alpha(@theme_text_color, 0.9); */ +# font-size: 12px; +# text-shadow: none; +# margin: 0px 0px 0px 0px; +# padding: 2px 0px; +# } +# +# .body { +# font-size: 14px; +# font-weight: 500; +# color: @subtext1; +# /* color: alpha(@text, 0.9); */ +# /* color: alpha(@theme_text_color, 0.9); */ +# text-shadow: none; +# margin: 0px 0px 0px 0px; +# } +# +# .body-image { +# border-radius: 4px; +# } +# +# /* The "Notifications" and "Do Not Disturb" text widget */ +# .top-action-title { +# color: @text; +# /* color: @theme_text_color; */ +# text-shadow: none; +# } +# +# /* Control center */ +# +# .control-center { +# background: alpha(@crust, .80); +# border-radius: 15px; +# border: 0px solid @selected; +# box-shadow: 0 0 10px 0 rgba(0,0,0,.80); +# margin: 10px; +# padding: 4px; +# } +# +# /* .right.overlay-indicator { */ +# /* border: solid 5px red; */ +# /* } */ +# +# .control-center-list { +# /* background: @base; */ +# background: alpha(@crust, .80); +# min-height: 5px; +# /* border: 1px solid @surface1; */ +# border-top: none; +# border-radius: 0px 0px 4px 4px; +# } +# +# .control-center-list-placeholder, +# .notification-group-icon, +# .notification-group { +# /* opacity: 1.0; */ +# /* opacity: 0; */ +# color: alpha(@theme_text_color, 0.50); +# } +# +# .notification-group { +# /* unset the annoying focus thingie */ +# opacity: 0; +# box-shadow: none; +# /* selectable: no; */ +# } +# +# .notification-group > box { +# all: unset; +# background: transparent; +# /* background: alpha(currentColor, 0.072); */ +# padding: 4px; +# margin: 0px; +# /* margin: 0px -5px; */ +# border: none; +# border-radius: 4px; +# box-shadow: none; +# } +# +# .notification-row { +# outline: none; +# transition: all 1s ease; +# background: alpha(@mantle, .80); +# /* background: @theme_bg_color; */ +# border: 0px solid @crust; +# margin: 10px 5px 0px 5px; +# border-radius: 14px; +# /* box-shadow: 0px 0px 4px black; */ +# /* background: alpha(currentColor, 0.05); */ +# } +# +# .notification-row:focus, +# .notification-row:hover { +# box-shadow: none; +# } +# +# .control-center-list > row, +# .control-center-list > row:focus, +# .control-center-list > row:hover { +# background: transparent; +# border: none; +# margin: 0px; +# padding: 5px 10px 5px 10px; +# box-shadow: none; +# } +# +# .control-center-list > row:last-child { +# padding: 5px 10px 10px 10px; +# } +# +# +# /* Window behind control center and on all other monitors */ +# .blank-window { +# background: transparent; +# } +# +# /*** Widgets ***/ +# +# /* Title widget */ +# .widget-title { +# margin: 0px; +# background: transparent; +# /* background: @theme_bg_color; */ +# border-radius: 4px 4px 0px 0px; +# /* border: 1px solid @surface1; */ +# border-bottom: none; +# } +# +# .widget-title > label { +# margin: 18px 10px; +# font-size: 20px; +# font-weight: 500; +# } +# +# .widget-title > button { +# font-weight: 700; +# padding: 7px 3px; +# margin-right: 10px; +# background: transparent; +# color: @text; +# /* color: @theme_text_color; */ +# border: none; +# border-radius: 4px; +# } +# .widget-title > button:hover { +# background: @base; +# /* background: alpha(currentColor, 0.1); */ +# } +# +# /* Label widget */ +# .widget-label { +# margin: 0px; +# padding: 0px; +# min-height: 5px; +# background: alpha(@mantle, .80); +# /* background: @theme_bg_color; */ +# border-radius: 0px 0px 4px 4px; +# /* border: 1px solid @surface1; */ +# border-top: none; +# } +# .widget-label > label { +# font-size: 15px; +# font-weight: 400; +# } +# +# /* Menubar */ +# .widget-menubar { +# background: transparent; +# /* background: @theme_bg_color; */ +# /* border: 1px solid @surface1; */ +# border-top: none; +# border-bottom: none; +# } +# .widget-menubar > box > box { +# margin: 5px 10px 5px 10px; +# min-height: 40px; +# border-radius: 4px; +# background: transparent; +# } +# .widget-menubar > box > box > button { +# background: alpha(@mantle, .80); +# /* background: alpha(currentColor, 0.05); */ +# min-width: 185px; +# min-height: 50px; +# margin-right: 10px; +# font-size: 14px; +# padding: 0px; +# } +# .widget-menubar > box > box > button:nth-child(2) { +# margin-right: 0px; +# } +# .widget-menubar button:focus { +# box-shadow: none; +# } +# .widget-menubar button:focus:hover { +# background: @base; +# /* background: alpha(currentColor,0.1); */ +# box-shadow: none; +# } +# +# .widget-menubar > box > revealer > box { +# margin: 5px 10px 5px 10px; +# background: alpha(@mantle, .80); +# /* background: alpha(currentColor, 0.05); */ +# border-radius: 4px; +# } +# .widget-menubar > box > revealer > box > button { +# background: transparent; +# min-height: 50px; +# padding: 0px; +# margin: 5px; +# } +# +# /* Buttons grid */ +# .widget-buttons-grid { +# /* background-color: @theme_bg_color; */ +# background: transparent; +# /* border: 1px solid @surface1; */ +# border-top: none; +# border-bottom: none; +# font-size: 14px; +# font-weight: 500; +# margin: 0px; +# padding: 5px; +# border-radius: 0px; +# } +# +# .widget-buttons-grid > flowbox > flowboxchild { +# background: alpha(@mantle, .80); +# /* background: alpha(currentColor, 0.05); */ +# border-radius: 4px; +# min-height: 50px; +# min-width: 85px; +# margin: 5px; +# padding: 0px; +# } +# +# .widget-buttons-grid > flowbox > flowboxchild > button { +# background: transparent; +# border-radius: 4px; +# margin: 0px; +# border: none; +# box-shadow: none; +# } +# +# +# .widget-buttons-grid > flowbox > flowboxchild > button:hover { +# background: alpha(@mantle, .80); +# /* background: alpha(currentColor, 0.1); */ +# } +# +# /* Mpris widget */ +# .widget-mpris { +# padding: 8px; +# padding-bottom: 15px; +# margin-bottom: -33px; +# } +# .widget-mpris > box { +# padding: 0px; +# margin: -5px 0px -10px 0px; +# padding: 0px; +# border-radius: 4px; +# /* background: alpha(currentColor, 0.05); */ +# background: alpha(@mantle, .80); +# } +# .widget-mpris > box > button:nth-child(1), +# .widget-mpris > box > button:nth-child(3) { +# margin-bottom: 0px; +# } +# .widget-mpris > box > button:nth-child(1) { +# margin-left: -25px; +# margin-right: -25px; +# opacity: 0; +# } +# .widget-mpris > box > button:nth-child(3) { +# margin-left: -25px; +# margin-right: -25px; +# opacity: 0; +# } +# +# .widget-mpris-album-art { +# all: unset; +# } +# +# /* Player button box */ +# .widget-mpris > box > carousel > widget > box > box:nth-child(2) { +# margin: 5px 0px -5px 90px; +# } +# +# /* Player buttons */ +# .widget-mpris > box > carousel > widget > box > box:nth-child(2) > button { +# border-radius: 4px; +# } +# .widget-mpris > box > carousel > widget > box > box:nth-child(2) > button:hover { +# background: alpha(currentColor, 0.1); +# } +# carouselindicatordots { +# opacity: 0; +# } +# +# .widget-mpris-title { +# color: #eeeeee; +# font-weight: bold; +# font-size: 1.25rem; +# text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5); +# } +# .widget-mpris-subtitle { +# color: #eeeeee; +# font-size: 1rem; +# text-shadow: 0px 0px 3px rgba(0, 0, 0, 1); +# } +# +# .widget-mpris-player { +# border-radius: 0px; +# margin: 0px; +# } +# .widget-mpris-player > box > image { +# margin: 0px 0px -48px 0px; +# } +# +# .notification-group > box.vertical { +# /* border: solid 5px red; */ +# margin-top: 3px +# } +# +# /* Backlight and volume widgets */ +# .widget-backlight, +# .widget-volume { +# background: transparent; +# /* background-color: @crust; */ +# /* background-color: @theme_bg_color; */ +# /* border: 1px solid @surface1; */ +# border-top: none; +# border-bottom: none; font-size: 13px; +# font-weight: 600; +# border-radius: 0px; +# margin: 0px; +# padding: 0px; +# } +# .widget-volume > box { +# background: alpha(@mantle, .80); +# /* background: alpha(currentColor, 0.05); */ +# border-radius: 4px; +# margin: 5px 10px 5px 10px; +# min-height: 50px; +# } +# .widget-volume > box > label { +# min-width: 50px; +# padding: 0px; +# } +# .widget-volume > box > button { +# min-width: 50px; +# box-shadow: none; +# padding: 0px; +# } +# .widget-volume > box > button:hover { +# /* background: alpha(currentColor, 0.05); */ +# background: @surface0; +# } +# .widget-volume > revealer > list { +# background: alpha(@mantle, .80); +# /* background: alpha(currentColor, 0.05); */ +# border-radius: 4px; +# margin-top: 5px; +# padding: 0px; +# } +# .widget-volume > revealer > list > row { +# padding-left: 10px; +# min-height: 40px; +# background: transparent; +# } +# .widget-volume > revealer > list > row:hover { +# background: transparent; +# box-shadow: none; +# border-radius: 4px; +# } +# .widget-backlight > scale { +# background: alpha(@mantle, .80); +# /* background: alpha(currentColor, 0.05); */ +# border-radius: 0px 4px 4px 0px; +# margin: 5px 10px 5px 0px; +# padding: 0px 10px 0px 0px; +# min-height: 50px; +# } +# .widget-backlight > label { +# background: @surface0; +# /* background: alpha(currentColor, 0.05); */ +# margin: 5px 0px 5px 10px; +# border-radius: 4px 0px 0px 4px; +# padding: 0px; +# min-height: 50px; +# min-width: 50px; +# } +# +# /* DND widget */ +# .widget-dnd { +# margin: 6px; +# font-size: 1.2rem; +# } +# +# .widget-dnd > switch { +# background: alpha(@mantle, .80); +# font-size: initial; +# border-radius: 8px; +# box-shadow: none; +# padding: 2px; +# } +# +# .widget-dnd > switch:hover { +# background: alpha(@mauve_lighter, .80); +# } +# +# .widget-dnd > switch:checked { +# background: @mauve; +# } +# +# .widget-dnd > switch:checked:hover { +# background: alpha(@mauve_lighter, .80); +# } +# +# .widget-dnd > switch slider { +# background: alpha(@mauve_lighter, .80); +# border-radius: 6px; +# } +# +# /* Toggles */ +# .toggle:checked { +# background: @surface1; +# /* background: @theme_selected_bg_color; */ +# } +# /*.toggle:not(:checked) { +# color: rgba(128, 128, 128, 0.5); +# }*/ +# .toggle:checked:hover { +# background: @surface2; +# /* background: alpha(@theme_selected_bg_color, 0.75); */ +# } +# +# /* Sliders */ +# scale { +# padding: 0px; +# margin: 0px 10px 0px 10px; +# } +# +# scale trough { +# border-radius: 4px; +# background: @surface0; +# /* background: alpha(currentColor, 0.1); */ +# } +# +# scale highlight { +# border-radius: 5px; +# min-height: 10px; +# margin-right: -5px; +# } +# +# scale slider { +# margin: -10px; +# min-width: 10px; +# min-height: 10px; +# background: transparent; +# box-shadow: none; +# padding: 0px; +# } +# scale slider:hover { +# } +# +# .right.overlay-indicator { +# all: unset; +# } +# ''; }; } diff --git a/packages/terminal/default.nix b/packages/terminal/default.nix index edcc149..747abd6 100644 --- a/packages/terminal/default.nix +++ b/packages/terminal/default.nix @@ -47,24 +47,40 @@ programs.zsh = { }; initContent = '' + if [ "$TMUX" = "" ]; then exec tmux; fi + eval "$(starship init zsh)" export NIX_LD=$(nix eval --impure --raw --expr 'let pkgs = import {}; NIX_LD = pkgs.lib.fileContents "${pkgs.stdenv.cc}/nix-support/dynamic-linker"; in NIX_LD') + + export ZVM_VI_INSERT_ESCAPE_BINDKEY=jk + function zvm_after_init() { + bindkey "^[[1;5C" forward-word && bindkey "^[[1;5D" backward-word + } + + autoload -U select-word-style + select-word-style bash ''; zplug = { enable = false; plugins = [ - { name = "zsh-users/zsh-autosuggestions"; } # Simple plugin installation + { name = "jeffreytse/zsh-vi-mode"; } ]; }; - oh-my-zsh = { - enable = true; + enable = false; # plugins = [ "thefuck" ]; # theme = ""; }; + plugins = [ + { + name = "vi-mode"; + src = pkgs.zsh-vi-mode; + file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh"; + } +]; }; @@ -73,6 +89,8 @@ programs.ghostty = { enable = true; }; +catppuccin.ghostty.enable = false; + home.file."/home/nico/.config/ghostty/config" = { source = ./ghostty-config; }; diff --git a/packages/terminal/ghostty-config b/packages/terminal/ghostty-config index d42e7f6..116482e 100644 --- a/packages/terminal/ghostty-config +++ b/packages/terminal/ghostty-config @@ -1,24 +1,30 @@ -palette = 0=#45475a -palette = 1=#f38ba8 -palette = 2=#a6e3a1 -palette = 3=#f9e2af -palette = 4=#89b4fa -palette = 5=#f5c2e7 -palette = 6=#94e2d5 -palette = 7=#bac2de -palette = 8=#585b70 -palette = 9=#f38ba8 -palette = 10=#a6e3a1 -palette = 11=#f9e2af -palette = 12=#89b4fa -palette = 13=#f5c2e7 -palette = 14=#94e2d5 -palette = 15=#a6adc8 -background = 1e1e2e -foreground = cdd6f4 -cursor-color = f5e0dc -cursor-text = 1e1e2e -selection-background = 353749 -selection-foreground = cdd6f4 +# palette = 0=#45475a +# palette = 1=#f38ba8 +# palette = 2=#a6e3a1 +# palette = 3=#f9e2af +# palette = 4=#89b4fa +# palette = 5=#f5c2e7 +# palette = 6=#94e2d5 +# palette = 7=#bac2de +# palette = 8=#585b70 +# palette = 9=#f38ba8 +# palette = 10=#a6e3a1 +# palette = 11=#f9e2af +# palette = 12=#89b4fa +# palette = 13=#f5c2e7 +# palette = 14=#94e2d5 +# palette = 15=#a6adc8 +# background = 1e1e2e +# foreground = cdd6f4 +# cursor-color = f5e0dc +# cursor-text = 1e1e2e +# selection-background = 353749 +# selection-foreground = cdd6f4 + +background-opacity = 0.8 +background-opacity-cells = true +# background-blur = true +theme = Catppuccin Mocha gtk-titlebar = false + diff --git a/packages/tmux/default.nix b/packages/tmux/default.nix index 8f8207d..90fdd2a 100644 --- a/packages/tmux/default.nix +++ b/packages/tmux/default.nix @@ -1,30 +1,66 @@ -{ pkgs, config, lib,... }: +{ pkgs, config, lib, inputs, ... }: { home.packages = with pkgs; [ ]; + catppuccin.tmux = { + enable = true; + extraConfig = '' + set -g @catppuccin_window_status_style "rounded" + ''; + flavor = "mocha"; + }; + programs.tmux = { enable = true; terminal = "tmux-256color"; disableConfirmationPrompt = true; + keyMode = "vi"; + # newSession = true; extraConfig = '' -# set-option -sa terminal-overrides ",xterm*:Tc" -# set -g @catppuccin_flavor 'mocha' -# set -g @catppuccin_window_status_style "rounded" -# set -g default-terminal "xterm-256color" -# set -ga terminal-overrides ",*256col*:Tc" -# set -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[ q' -# set-environment -g COLORTERM "truecolor" -# -# run-shell ${pkgs.tmuxPlugins.catppuccin}/share/tmux-plugins/catppuccin/catppuccin.tmux + +unbind C-b +set -g prefix C-Space +bind C-Space send-prefix + +# vim-like pane resizing +bind -r C-k resize-pane -U +bind -r C-j resize-pane -D +bind -r C-h resize-pane -L +bind -r C-l resize-pane -R + +unbind k +unbind j +unbind h +unbind l + +# vim-like pane switching +bind -r k select-pane -U +bind -r j select-pane -D +bind -r h select-pane -L +bind -r l select-pane -R + +# and now unbind keys +unbind Up +unbind Down +unbind Left +unbind Right + + +unbind C-Up +unbind C-Down +unbind C-Left +unbind C-Right 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 '"' split-window -v -c "#{pane_current_path}" -bind % split-window -h -c "#{pane_current_path}" +unbind s +bind s split-window -v -c "#{pane_current_path}" +unbind x +bind x split-window -h -c "#{pane_current_path}" set -g mouse on @@ -32,45 +68,32 @@ bind -n M-H previous-window bind -n M-L next-window +# set vi-mode +set-window-option -g mode-keys vi +# keybindings +bind-key -T copy-mode-vi v send-keys -X begin-selection +bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle +bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel -# Smart pane switching with awareness of Vim splits. -# See: https://github.com/christoomey/vim-tmux-navigator -# decide whether we're in a Vim process -is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ - | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" -bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L' -bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D' -bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U' -bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R' - -tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")' - -if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \ - "bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'" -if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \ - "bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'" - -bind-key -n 'C-Space' if-shell "$is_vim" 'send-keys C-Space' 'select-pane -t:.+' - -bind-key -T copy-mode-vi 'C-h' select-pane -L -bind-key -T copy-mode-vi 'C-j' select-pane -D -bind-key -T copy-mode-vi 'C-k' select-pane -U -bind-key -T copy-mode-vi 'C-l' select-pane -R -bind-key -T copy-mode-vi 'C-\' select-pane -l -bind-key -T copy-mode-vi 'C-Space' select-pane -t:.+ - ''; +''; plugins = with pkgs.tmuxPlugins; [ - catppuccin { - plugin = catppuccin; - extraConfig = '' - set -g @plugin 'catppuccin/tmux#2.1.3' - set -g @catppuccin_window_status_style "rounded" - set -g @catppuccin_flavor 'mocha' - ''; - } + # vim-tmux-navigator { + # plugin = vim-tmux-navigator; + # } + # tmux-which-key { + # plugin = tmux-which-key; + # } + # catppuccin { + # plugin = catppuccin; + # extraConfig = '' + # set -g @plugin 'catppuccin/tmux#2.1.3' + # set -g @catppuccin_window_status_style "rounded" + # set -g @catppuccin_flavor 'mocha' + # ''; + # } # pkgs.tmuxPlugins.vim-tmux-navigator ]; }; diff --git a/packages/zed-editor/default.nix b/packages/zed-editor/default.nix index fb6c7f7..f9ee7a4 100644 --- a/packages/zed-editor/default.nix +++ b/packages/zed-editor/default.nix @@ -4,6 +4,7 @@ home.file."/home/nico/.config/zed/settings.json" = { source = ./settings.json; }; + catppuccin.zed.enable = false; programs.zed-editor = { enable = true; };