From b9e3afef79afaeb1ccda552e02da0c0288c6c561 Mon Sep 17 00:00:00 2001 From: Nico Date: Wed, 9 Apr 2025 23:40:11 +0200 Subject: [PATCH] hyprland swaync und cliphist & nvim merge + animate --- configuration.nix | 7 +- packages/default.nix | 1 + packages/hyprland/keybinds.conf | 1 + packages/hyprland/startup.conf | 2 + packages/nvim/default.nix | 8 + packages/nvim/init.lua | 39 +- packages/nvim/lua/plugins/autopair.lua | 7 + packages/nvim/lua/plugins/code-action.lua | 11 + packages/nvim/lua/plugins/love.lua | 10 + packages/nvim/lua/plugins/mini-animate.lua | 1 + .../nvim/lua/plugins/plugins/autopair.lua | 7 + .../nvim/lua/plugins/plugins/blankline.lua | 7 + .../nvim/lua/plugins/plugins/blink-cmp.lua | 48 ++ .../nvim/lua/plugins/plugins/catppuccin.lua | 1 + packages/nvim/lua/plugins/plugins/comment.lua | 6 + .../nvim/lua/plugins/plugins/comment.lua~ | 0 packages/nvim/lua/plugins/plugins/coq.lua | 30 + packages/nvim/lua/plugins/plugins/dap.lua | 1 + packages/nvim/lua/plugins/plugins/flutter.lua | 10 + .../lua/plugins/plugins/highlight-colors.lua | 1 + packages/nvim/lua/plugins/plugins/lazydev.lua | 33 + .../nvim/lua/plugins/plugins/lazydev.lua~ | 0 packages/nvim/lua/plugins/plugins/lazygit.lua | 21 + packages/nvim/lua/plugins/plugins/lsp.lua | 30 + packages/nvim/lua/plugins/plugins/lsp.lua~ | 13 + packages/nvim/lua/plugins/plugins/lualine.lua | 5 + .../nvim/lua/plugins/plugins/lualine.lua~ | 0 packages/nvim/lua/plugins/plugins/mason.lua | 37 + .../nvim/lua/plugins/plugins/rustaceanvim.lua | 5 + packages/nvim/lua/plugins/plugins/tabout.lua | 44 ++ .../nvim/lua/plugins/plugins/telescope.lua | 4 + .../nvim/lua/plugins/plugins/treesitter.lua | 15 + packages/nvim/lua/plugins/plugins/trouble.lua | 37 + .../nvim/lua/plugins/plugins/whichkey.lua | 18 + .../nvim/lua/plugins/plugins/whichkey.lua~ | 0 packages/nvim/lua/plugins/tabby.lua | 8 + packages/nvim/lua/plugins/tabout.lua | 42 + packages/nvim/lua/plugins/toggleterm.lua | 4 + packages/nvim/lua/plugins/treesitter.lua | 2 +- packages/swaync/default.nix | 725 ++++++++++++++++++ packages/waybar/config | 10 +- packages/waybar/style.css | 4 +- packages/wpaperd/default.nix | 1 + 43 files changed, 1235 insertions(+), 21 deletions(-) create mode 100644 packages/nvim/lua/plugins/autopair.lua create mode 100644 packages/nvim/lua/plugins/code-action.lua create mode 100644 packages/nvim/lua/plugins/love.lua create mode 100644 packages/nvim/lua/plugins/mini-animate.lua create mode 100644 packages/nvim/lua/plugins/plugins/autopair.lua create mode 100644 packages/nvim/lua/plugins/plugins/blankline.lua create mode 100644 packages/nvim/lua/plugins/plugins/blink-cmp.lua create mode 100644 packages/nvim/lua/plugins/plugins/catppuccin.lua create mode 100644 packages/nvim/lua/plugins/plugins/comment.lua create mode 100644 packages/nvim/lua/plugins/plugins/comment.lua~ create mode 100644 packages/nvim/lua/plugins/plugins/coq.lua create mode 100644 packages/nvim/lua/plugins/plugins/dap.lua create mode 100644 packages/nvim/lua/plugins/plugins/flutter.lua create mode 100644 packages/nvim/lua/plugins/plugins/highlight-colors.lua create mode 100644 packages/nvim/lua/plugins/plugins/lazydev.lua create mode 100644 packages/nvim/lua/plugins/plugins/lazydev.lua~ create mode 100644 packages/nvim/lua/plugins/plugins/lazygit.lua create mode 100644 packages/nvim/lua/plugins/plugins/lsp.lua create mode 100644 packages/nvim/lua/plugins/plugins/lsp.lua~ create mode 100644 packages/nvim/lua/plugins/plugins/lualine.lua create mode 100644 packages/nvim/lua/plugins/plugins/lualine.lua~ create mode 100644 packages/nvim/lua/plugins/plugins/mason.lua create mode 100644 packages/nvim/lua/plugins/plugins/rustaceanvim.lua create mode 100644 packages/nvim/lua/plugins/plugins/tabout.lua create mode 100644 packages/nvim/lua/plugins/plugins/telescope.lua create mode 100644 packages/nvim/lua/plugins/plugins/treesitter.lua create mode 100644 packages/nvim/lua/plugins/plugins/trouble.lua create mode 100644 packages/nvim/lua/plugins/plugins/whichkey.lua create mode 100644 packages/nvim/lua/plugins/plugins/whichkey.lua~ create mode 100644 packages/nvim/lua/plugins/tabby.lua create mode 100644 packages/nvim/lua/plugins/tabout.lua create mode 100644 packages/nvim/lua/plugins/toggleterm.lua create mode 100644 packages/swaync/default.nix diff --git a/configuration.nix b/configuration.nix index f0fdc7c..587a6f1 100644 --- a/configuration.nix +++ b/configuration.nix @@ -144,13 +144,14 @@ services.mullvad-vpn.enable = true; # sway networkmanager networkmanagerapplet - wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout - mako # notification system developed by swaywm maintainer + # wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout + cliphist +# mako # notification system developed by swaywm maintainer waybar # bar pulseaudio pavucontrol brightnessctl # brightness controls - wpaperd # wallpaper manager + # wpaperd # wallpaper manager ]; fonts.packages = with pkgs; [ diff --git a/packages/default.nix b/packages/default.nix index e1b28b9..e16c58f 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -4,6 +4,7 @@ # ./ags ./other ./sway + ./swaync ./waybar ./wpaperd ./nvim diff --git a/packages/hyprland/keybinds.conf b/packages/hyprland/keybinds.conf index 39405a2..6d8543e 100644 --- a/packages/hyprland/keybinds.conf +++ b/packages/hyprland/keybinds.conf @@ -7,6 +7,7 @@ bind = SUPER, BackSpace, killactive, bind = SUPER_SHIFT, P, exec, rofi -show power-menu -modi power-menu:rofi-power-menu bind = $mainMod, M, exec, rofi -show drun bind = $mainMod, M, exec, rofi -show power-menu -modi power-menu:rofi-power-menurofi -show drun +bind = $mainMod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy #bind = $mainMod, E, exec, dolphin bind = $mainMod, Space, togglefloating, bind = $mainMod, S, exec, rofi-screenshot, diff --git a/packages/hyprland/startup.conf b/packages/hyprland/startup.conf index 269bd23..cbe6268 100644 --- a/packages/hyprland/startup.conf +++ b/packages/hyprland/startup.conf @@ -1 +1,3 @@ exec-once=waybar +exec-once=swaync +exec-once=wl-paste --watch cliphist store diff --git a/packages/nvim/default.nix b/packages/nvim/default.nix index 7b55cce..49c6055 100644 --- a/packages/nvim/default.nix +++ b/packages/nvim/default.nix @@ -43,6 +43,14 @@ programs.neovim.plugins = [ ".config/nvim/lua/plugins/blankline.lua".source = ./lua/plugins/blankline.lua; ".config/nvim/lua/plugins/rustaceanvim.lua".source = ./lua/plugins/rustaceanvim.lua; ".config/nvim/lua/plugins/lazygit.lua".source = ./lua/plugins/lazygit.lua; + ".config/nvim/lua/plugins/toggleterm.lua".source = ./lua/plugins/toggleterm.lua; + ".config/nvim/lua/plugins/love.lua".source = ./lua/plugins/love.lua; + ".config/nvim/lua/plugins/code-action.lua".source = ./lua/plugins/code-action.lua; + ".config/nvim/lua/plugins/tabby.lua".source = ./lua/plugins/tabby.lua; + ".config/nvim/lua/plugins/tabout.lua".source = ./lua/plugins/tabout.lua; + ".config/nvim/lua/plugins/autopair.lua".source = ./lua/plugins/autopair.lua; + ".config/nvim/lua/plugins/mini-animate.lua".source = ./lua/plugins/mini-animate.lua; + } ]; } diff --git a/packages/nvim/init.lua b/packages/nvim/init.lua index aae78f2..577a390 100644 --- a/packages/nvim/init.lua +++ b/packages/nvim/init.lua @@ -34,6 +34,14 @@ vim.keymap.set('n', '', ':vertical resize +2', opts) vim.keymap.set('i', 'jk', '', opts) vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) +-- jump to definition +vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) + +-- code actions +vim.keymap.set("n", "ca", function() + require("tiny-code-action").code_action() +end, { noremap = true, silent = true }) + -- Lazy require("config.lazy") @@ -64,6 +72,9 @@ require('lualine').setup() require("dapui").setup() require("ibl").setup() require("telescope").load_extension("flutter") +require("toggleterm").setup{} +require("tabby").setup{} +require("mini.animate").setup() -- alternatively you can override the default configs require("flutter-tools").setup { @@ -153,6 +164,7 @@ require("flutter-tools").setup { } } + ------------- -- Debugger local dap, dapui = require("dap"), require("dapui") dap.listeners.before.attach.dapui_config = function() @@ -178,15 +190,6 @@ dap.configurations.c = dap.configurations.cpp dap.configurations.rust = dap.configurations.cpp - - - - - - - - - -------------------------------------------- local builtin = require('telescope.builtin') -- Telescope binds @@ -195,15 +198,25 @@ vim.keymap.set('n', 'fg', builtin.live_grep, { desc = 'Telescope live gr 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" }) -vim.keymap.set('n', '', dap.toggle_breakpoint, { desc = "Close debug overlay" }) -vim.keymap.set('n', '', dap.continue, { desc = "Close debug overlay" }) -vim.keymap.set('n', '', dap.step_over, { desc = "Close debug overlay" }) -vim.keymap.set('n', '', dap.step_into, { desc = "Close debug overlay" }) +vim.keymap.set('n', '', dap.toggle_breakpoint, { desc = "Toggle breakpoint" }) +vim.keymap.set('n', '', dap.continue, { desc = "dap Continue" }) +vim.keymap.set('n', '', dap.step_over, { desc = "dap step over" }) +vim.keymap.set('n', '', dap.step_into, { desc = "dap step into" }) +-- toggleterm binds +vim.keymap.set('n', 'tf', ':ToggleTerm direction=float ', { desc = "Open floating terminal" }) +vim.keymap.set('n', 'tt', ':ToggleTerm direction=tab size=50 ', { desc = "Open terminal in new tab" }) +vim.keymap.set('n', 'tv', ':ToggleTerm direction=vertical ', { desc = "Open terminal vertical" }) +vim.keymap.set('n', 'ts', ':ToggleTerm direction=vertical ', { desc = "select open terminal" }) +-- code actions +vim.keymap.set("n", "ca", function() + require("tiny-code-action").code_action() +end, { desc = "Show code actions", noremap = true, silent = true }) diff --git a/packages/nvim/lua/plugins/autopair.lua b/packages/nvim/lua/plugins/autopair.lua new file mode 100644 index 0000000..2db00d8 --- /dev/null +++ b/packages/nvim/lua/plugins/autopair.lua @@ -0,0 +1,7 @@ +return { + 'windwp/nvim-autopairs', + event = "InsertEnter", + config = true + -- use opts = {} for passing setup options + -- this is equivalent to setup({}) function +} diff --git a/packages/nvim/lua/plugins/code-action.lua b/packages/nvim/lua/plugins/code-action.lua new file mode 100644 index 0000000..b4e3416 --- /dev/null +++ b/packages/nvim/lua/plugins/code-action.lua @@ -0,0 +1,11 @@ +return { + "rachartier/tiny-code-action.nvim", + dependencies = { + {"nvim-lua/plenary.nvim"}, + {"nvim-telescope/telescope.nvim"}, + }, + event = "LspAttach", + config = function() + require('tiny-code-action').setup() + end +} diff --git a/packages/nvim/lua/plugins/love.lua b/packages/nvim/lua/plugins/love.lua new file mode 100644 index 0000000..38d1e05 --- /dev/null +++ b/packages/nvim/lua/plugins/love.lua @@ -0,0 +1,10 @@ +return { + "S1M0N38/love2d.nvim", + cmd = "LoveRun", + opts = { }, + keys = { + { "v", ft = "lua", desc = "LÖVE" }, + { "vv", "LoveRun", ft = "lua", desc = "Run LÖVE" }, + { "vs", "LoveStop", ft = "lua", desc = "Stop LÖVE" }, + }, +} diff --git a/packages/nvim/lua/plugins/mini-animate.lua b/packages/nvim/lua/plugins/mini-animate.lua new file mode 100644 index 0000000..f7e1d28 --- /dev/null +++ b/packages/nvim/lua/plugins/mini-animate.lua @@ -0,0 +1 @@ +return { 'echasnovski/mini.animate', version = false } diff --git a/packages/nvim/lua/plugins/plugins/autopair.lua b/packages/nvim/lua/plugins/plugins/autopair.lua new file mode 100644 index 0000000..2db00d8 --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/autopair.lua @@ -0,0 +1,7 @@ +return { + 'windwp/nvim-autopairs', + event = "InsertEnter", + config = true + -- use opts = {} for passing setup options + -- this is equivalent to setup({}) function +} diff --git a/packages/nvim/lua/plugins/plugins/blankline.lua b/packages/nvim/lua/plugins/plugins/blankline.lua new file mode 100644 index 0000000..a1e1bc9 --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/blankline.lua @@ -0,0 +1,7 @@ +return { + "lukas-reineke/indent-blankline.nvim", + main = "ibl", + ---@module "ibl" + ---@type ibl.config + opts = {}, +} diff --git a/packages/nvim/lua/plugins/plugins/blink-cmp.lua b/packages/nvim/lua/plugins/plugins/blink-cmp.lua new file mode 100644 index 0000000..3399a47 --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/blink-cmp.lua @@ -0,0 +1,48 @@ +return { + 'saghen/blink.cmp', + -- optional: provides snippets for the snippet source + dependencies = { 'rafamadriz/friendly-snippets' }, + + -- use a release tag to download pre-built binaries + version = '1.*', + -- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust + -- build = 'cargo build --release', + -- If you use nix, you can build from source using latest nightly rust with: + -- build = 'nix run .#build-plugin', + + ---@module 'blink.cmp' + ---@type blink.cmp.Config + opts = { + -- See :h blink-cmp-config-keymap for defining your own keymap + keymap = { + preset = 'enter', + -- map tap to cycle through + [''] = { 'select_prev', 'fallback' }, + [''] = { 'select_next', 'fallback' }, + }, + + + appearance = { + -- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font' + -- Adjusts spacing to ensure icons are aligned + nerd_font_variant = 'mono' + }, + + -- (Default) Only show the documentation popup when manually triggered + completion = { documentation = { auto_show = false } }, + + -- Default list of enabled providers defined so that you can extend it + -- elsewhere in your config, without redefining it, due to `opts_extend` + sources = { + default = { 'lsp', 'path', 'snippets', 'buffer' }, + }, + + -- (Default) Rust fuzzy matcher for typo resistance and significantly better performance + -- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation, + -- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"` + -- + -- See the fuzzy documentation for more information + fuzzy = { implementation = "prefer_rust_with_warning" } + }, + opts_extend = { "sources.default" } +} diff --git a/packages/nvim/lua/plugins/plugins/catppuccin.lua b/packages/nvim/lua/plugins/plugins/catppuccin.lua new file mode 100644 index 0000000..19df104 --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/catppuccin.lua @@ -0,0 +1 @@ +return { "catppuccin/nvim", name = "catppuccin", priority = 1000 } diff --git a/packages/nvim/lua/plugins/plugins/comment.lua b/packages/nvim/lua/plugins/plugins/comment.lua new file mode 100644 index 0000000..1871cef --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/comment.lua @@ -0,0 +1,6 @@ +return { + 'numToStr/Comment.nvim', + opts = { + -- add any options here + } +} diff --git a/packages/nvim/lua/plugins/plugins/comment.lua~ b/packages/nvim/lua/plugins/plugins/comment.lua~ new file mode 100644 index 0000000..e69de29 diff --git a/packages/nvim/lua/plugins/plugins/coq.lua b/packages/nvim/lua/plugins/plugins/coq.lua new file mode 100644 index 0000000..0ec3a3e --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/coq.lua @@ -0,0 +1,30 @@ + + return { + "neovim/nvim-lspconfig", -- REQUIRED: for native Neovim LSP integration + lazy = false, -- REQUIRED: tell lazy.nvim to start this plugin at startup + dependencies = { + -- main one + { "ms-jpq/coq_nvim", branch = "coq" }, + + -- 9000+ Snippets + { "ms-jpq/coq.artifacts", branch = "artifacts" }, + + -- lua & third party sources -- See https://github.com/ms-jpq/coq.thirdparty + -- Need to **configure separately** + { 'ms-jpq/coq.thirdparty', branch = "3p" } + -- - shell repl + -- - nvim lua api + -- - scientific calculator + -- - comment banner + -- - etc + }, + init = function() + vim.g.coq_settings = { + auto_start = true, -- if you want to start COQ at startup + -- Your COQ settings here + } + end, + config = function() + -- Your LSP settings here + end, +} diff --git a/packages/nvim/lua/plugins/plugins/dap.lua b/packages/nvim/lua/plugins/plugins/dap.lua new file mode 100644 index 0000000..4be4d3f --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/dap.lua @@ -0,0 +1 @@ +return { "rcarriga/nvim-dap-ui", dependencies = {"mfussenegger/nvim-dap", "nvim-neotest/nvim-nio"} } diff --git a/packages/nvim/lua/plugins/plugins/flutter.lua b/packages/nvim/lua/plugins/plugins/flutter.lua new file mode 100644 index 0000000..97dac7c --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/flutter.lua @@ -0,0 +1,10 @@ +return { + + 'nvim-flutter/flutter-tools.nvim', + lazy = false, + dependencies = { + 'nvim-lua/plenary.nvim', + 'stevearc/dressing.nvim', -- optional for vim.ui.select + }, + config = true, +} diff --git a/packages/nvim/lua/plugins/plugins/highlight-colors.lua b/packages/nvim/lua/plugins/plugins/highlight-colors.lua new file mode 100644 index 0000000..9bf29ee --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/highlight-colors.lua @@ -0,0 +1 @@ +return { "brenoprata10/nvim-highlight-colors", name = "highlight-colotrs" } diff --git a/packages/nvim/lua/plugins/plugins/lazydev.lua b/packages/nvim/lua/plugins/plugins/lazydev.lua new file mode 100644 index 0000000..efa06f2 --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/lazydev.lua @@ -0,0 +1,33 @@ +return { + { + "folke/lazydev.nvim", + ft = "lua", -- only load on lua files + opts = { + library = { + -- See the configuration section for more details + -- Load luvit types when the `vim.uv` word is found + { path = "${3rd}/luv/library", words = { "vim%.uv" } }, + }, + }, + }, + { -- optional blink completion source for require statements and module annotations + "saghen/blink.cmp", + build = 'cargo +nightly build --release', + + opts = { + sources = { + -- add lazydev to your completion providers + default = { "lazydev", "lsp", "path", "snippets", "buffer" }, + providers = { + lazydev = { + name = "LazyDev", + module = "lazydev.integrations.blink", + -- make lazydev completions top priority (see `:h blink.cmp`) + score_offset = 100, + }, + }, + }, + }, + } + -- { "folke/neodev.nvim", enabled = false }, -- make sure to uninstall or disable neodev.nvim +} \ No newline at end of file diff --git a/packages/nvim/lua/plugins/plugins/lazydev.lua~ b/packages/nvim/lua/plugins/plugins/lazydev.lua~ new file mode 100644 index 0000000..e69de29 diff --git a/packages/nvim/lua/plugins/plugins/lazygit.lua b/packages/nvim/lua/plugins/plugins/lazygit.lua new file mode 100644 index 0000000..c7cb122 --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/lazygit.lua @@ -0,0 +1,21 @@ +-- nvim v0.8.0 +return { + "kdheepak/lazygit.nvim", + lazy = true, + cmd = { + "LazyGit", + "LazyGitConfig", + "LazyGitCurrentFile", + "LazyGitFilter", + "LazyGitFilterCurrentFile", + }, + -- optional for floating window border decoration + dependencies = { + "nvim-lua/plenary.nvim", + }, + -- setting the keybinding for LazyGit with 'keys' is recommended in + -- order to load the plugin when the command is run for the first time + keys = { + { "lg", "LazyGit", desc = "LazyGit" } + } +} diff --git a/packages/nvim/lua/plugins/plugins/lsp.lua b/packages/nvim/lua/plugins/plugins/lsp.lua new file mode 100644 index 0000000..2892e5d --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/lsp.lua @@ -0,0 +1,30 @@ +return { + 'neovim/nvim-lspconfig', + dependencies = { 'saghen/blink.cmp' }, + + -- example using `opts` for defining servers + opts = { + servers = { + lua_ls = {}, + nil_ls = {}, +-- rust_analyzer = {} + } + }, + config = function(_, opts) + local lspconfig = require('lspconfig') + for server, config in pairs(opts.servers) do + -- passing config.capabilities to blink.cmp merges with the capabilities in your + -- `opts[server].capabilities, if you've defined it + config.capabilities = require('blink.cmp').get_lsp_capabilities(config.capabilities) + lspconfig[server].setup(config) + end + end + + -- -- example calling setup directly for each LSP + -- config = function() + -- local capabilities = require('blink.cmp').get_lsp_capabilities() + -- local lspconfig = require('lspconfig') + -- + -- lspconfig['lua_ls'].setup({ capabilities = capabilities }) + -- end +} diff --git a/packages/nvim/lua/plugins/plugins/lsp.lua~ b/packages/nvim/lua/plugins/plugins/lsp.lua~ new file mode 100644 index 0000000..287bf50 --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/lsp.lua~ @@ -0,0 +1,13 @@ +return +{ + "neovim/nvim-lspconfig", + opts = function() + local keys = require("lazyvim.plugins.lsp.keymaps").get() + -- change a keymap + keys[#keys + 1] = { "K", "echo 'hello'" } + -- disable a keymap + keys[#keys + 1] = { "K", false } + -- add a keymap + keys[#keys + 1] = { "H", "echo 'hello'" } + end, +} \ No newline at end of file diff --git a/packages/nvim/lua/plugins/plugins/lualine.lua b/packages/nvim/lua/plugins/plugins/lualine.lua new file mode 100644 index 0000000..58ecd08 --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/lualine.lua @@ -0,0 +1,5 @@ +return { + 'nvim-lualine/lualine.nvim', + dependencies = { 'nvim-tree/nvim-web-devicons' } + +} diff --git a/packages/nvim/lua/plugins/plugins/lualine.lua~ b/packages/nvim/lua/plugins/plugins/lualine.lua~ new file mode 100644 index 0000000..e69de29 diff --git a/packages/nvim/lua/plugins/plugins/mason.lua b/packages/nvim/lua/plugins/plugins/mason.lua new file mode 100644 index 0000000..73457d4 --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/mason.lua @@ -0,0 +1,37 @@ +return { + + "williamboman/mason.nvim", + cmd = "Mason", + keys = { { "cm", "Mason", desc = "Mason" } }, + build = ":MasonUpdate", + opts_extend = { "ensure_installed" }, + opts = { + ensure_installed = { + "stylua", + "shfmt", + }, + }, + ---@param opts MasonSettings | {ensure_installed: string[]} + config = function(_, opts) + require("mason").setup(opts) + local mr = require("mason-registry") + mr:on("package:install:success", function() + vim.defer_fn(function() + -- trigger FileType event to possibly load this newly installed LSP server + require("lazy.core.handler.event").trigger({ + event = "FileType", + buf = vim.api.nvim_get_current_buf(), + }) + end, 100) + end) + + mr.refresh(function() + for _, tool in ipairs(opts.ensure_installed) do + local p = mr.get_package(tool) + if not p:is_installed() then + p:install() + end + end + end) + end, +} diff --git a/packages/nvim/lua/plugins/plugins/rustaceanvim.lua b/packages/nvim/lua/plugins/plugins/rustaceanvim.lua new file mode 100644 index 0000000..46c4c82 --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/rustaceanvim.lua @@ -0,0 +1,5 @@ +return { + 'mrcjkb/rustaceanvim', + version = '^5', -- Recommended + lazy = false, -- This plugin is already lazy +} diff --git a/packages/nvim/lua/plugins/plugins/tabout.lua b/packages/nvim/lua/plugins/plugins/tabout.lua new file mode 100644 index 0000000..158b587 --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/tabout.lua @@ -0,0 +1,44 @@ +return { + { + 'abecodes/tabout.nvim', + lazy = false, + config = function() + require('tabout').setup { + tabkey = '', -- key to trigger tabout, set to an empty string to disable + backwards_tabkey = '', -- key to trigger backwards tabout, set to an empty string to disable + act_as_tab = true, -- shift content if tab out is not possible + act_as_shift_tab = false, -- reverse shift content if tab out is not possible (if your keyboard/terminal supports ) + default_tab = '', -- shift default action (only at the beginning of a line, otherwise is used) + default_shift_tab = '', -- reverse shift default action, + enable_backwards = true, -- well ... + completion = false, -- if the tabkey is used in a completion pum + tabouts = { + { open = "'", close = "'" }, + { open = '"', close = '"' }, + { open = '`', close = '`' }, + { open = '(', close = ')' }, + { open = '[', close = ']' }, + { open = '{', close = '}' } + }, + ignore_beginning = true, --[[ if the cursor is at the beginning of a filled element it will rather tab out than shift the content ]] + exclude = {} -- tabout will ignore these filetypes + } + end, + dependencies = { -- These are optional + "nvim-treesitter/nvim-treesitter", + "L3MON4D3/LuaSnip", + "hrsh7th/nvim-cmp" + }, + opt = true, -- Set this to true if the plugin is optional + event = 'InsertCharPre', -- Set the event to 'InsertCharPre' for better compatibility + priority = 1000, + }, + { + "L3MON4D3/LuaSnip", + keys = function() + -- Disable default tab keybinding in LuaSnip + return {} + end, + }, +} + diff --git a/packages/nvim/lua/plugins/plugins/telescope.lua b/packages/nvim/lua/plugins/plugins/telescope.lua new file mode 100644 index 0000000..ed8cc88 --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/telescope.lua @@ -0,0 +1,4 @@ +return { + "nvim-telescope/telescope-file-browser.nvim", + dependencies = { "nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim" } +} diff --git a/packages/nvim/lua/plugins/plugins/treesitter.lua b/packages/nvim/lua/plugins/plugins/treesitter.lua new file mode 100644 index 0000000..ab7482b --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/treesitter.lua @@ -0,0 +1,15 @@ + +return { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + config = function () + local configs = require("nvim-treesitter.configs") + + configs.setup({ + ensure_installed = { "c", "lua", "html", "dart", "rust" }, + sync_install = false, + highlight = { enable = true }, + indent = { enable = true }, + }) + end + } diff --git a/packages/nvim/lua/plugins/plugins/trouble.lua b/packages/nvim/lua/plugins/plugins/trouble.lua new file mode 100644 index 0000000..3741f30 --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/trouble.lua @@ -0,0 +1,37 @@ +return { + "folke/trouble.nvim", + opts = {}, -- for default options, refer to the configuration section for custom setup. + cmd = "Trouble", + keys = { + { + "xx", + "Trouble diagnostics toggle", + desc = "Diagnostics (Trouble)", + }, + { + "xX", + "Trouble diagnostics toggle filter.buf=0", + desc = "Buffer Diagnostics (Trouble)", + }, + { + "cs", + "Trouble symbols toggle focus=false", + desc = "Symbols (Trouble)", + }, + { + "cl", + "Trouble lsp toggle focus=false win.position=right", + desc = "LSP Definitions / references / ... (Trouble)", + }, + { + "xL", + "Trouble loclist toggle", + desc = "Location List (Trouble)", + }, + { + "xQ", + "Trouble qflist toggle", + desc = "Quickfix List (Trouble)", + }, + }, +} diff --git a/packages/nvim/lua/plugins/plugins/whichkey.lua b/packages/nvim/lua/plugins/plugins/whichkey.lua new file mode 100644 index 0000000..d62b7b7 --- /dev/null +++ b/packages/nvim/lua/plugins/plugins/whichkey.lua @@ -0,0 +1,18 @@ +return { + "folke/which-key.nvim", + event = "VeryLazy", + opts = { + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + }, + keys = { + { + "?", + function() + require("which-key").show({ global = false }) + end, + desc = "Buffer Local Keymaps (which-key)", + }, + }, +} \ No newline at end of file diff --git a/packages/nvim/lua/plugins/plugins/whichkey.lua~ b/packages/nvim/lua/plugins/plugins/whichkey.lua~ new file mode 100644 index 0000000..e69de29 diff --git a/packages/nvim/lua/plugins/tabby.lua b/packages/nvim/lua/plugins/tabby.lua new file mode 100644 index 0000000..b3a0981 --- /dev/null +++ b/packages/nvim/lua/plugins/tabby.lua @@ -0,0 +1,8 @@ +return { + 'nanozuki/tabby.nvim', + -- event = 'VimEnter', -- if you want lazy load, see below + dependencies = 'nvim-tree/nvim-web-devicons', + config = function() + -- configs... + end, +} diff --git a/packages/nvim/lua/plugins/tabout.lua b/packages/nvim/lua/plugins/tabout.lua new file mode 100644 index 0000000..79571a1 --- /dev/null +++ b/packages/nvim/lua/plugins/tabout.lua @@ -0,0 +1,42 @@ +return { + { + 'abecodes/tabout.nvim', + lazy = false, + config = function() + require('tabout').setup { + tabkey = '', -- key to trigger tabout, set to an empty string to disable + backwards_tabkey = '', -- key to trigger backwards tabout, set to an empty string to disable + act_as_tab = true, -- shift content if tab out is not possible + act_as_shift_tab = false, -- reverse shift content if tab out is not possible (if your keyboard/terminal supports ) + default_tab = '', -- shift default action (only at the beginning of a line, otherwise is used) + default_shift_tab = '', -- reverse shift default action, + enable_backwards = true, -- well ... + completion = false, -- if the tabkey is used in a completion pum + tabouts = { + { open = "'", close = "'" }, + { open = '"', close = '"' }, + { open = '`', close = '`' }, + { open = '(', close = ')' }, + { open = '[', close = ']' }, + { open = '{', close = '}' } + }, + ignore_beginning = true, --[[ if the cursor is at the beginning of a filled element it will rather tab out than shift the content ]] + exclude = {} -- tabout will ignore these filetypes + } + end, + dependencies = { -- These are optional + "L3MON4D3/LuaSnip", + }, + opt = true, -- Set this to true if the plugin is optional + event = 'InsertCharPre', -- Set the event to 'InsertCharPre' for better compatibility + priority = 1000, + }, + { + "L3MON4D3/LuaSnip", + keys = function() + -- Disable default tab keybinding in LuaSnip + return {} + end, + }, +} + diff --git a/packages/nvim/lua/plugins/toggleterm.lua b/packages/nvim/lua/plugins/toggleterm.lua new file mode 100644 index 0000000..698b229 --- /dev/null +++ b/packages/nvim/lua/plugins/toggleterm.lua @@ -0,0 +1,4 @@ +return { + -- amongst your other plugins + {'akinsho/toggleterm.nvim', version = "*", config = true} +} diff --git a/packages/nvim/lua/plugins/treesitter.lua b/packages/nvim/lua/plugins/treesitter.lua index a2f9998..37d04fa 100644 --- a/packages/nvim/lua/plugins/treesitter.lua +++ b/packages/nvim/lua/plugins/treesitter.lua @@ -6,7 +6,7 @@ return { local configs = require("nvim-treesitter.configs") configs.setup({ - ensure_installed = { "c", "lua", "html", "dart" }, + ensure_installed = { "c", "lua", "html", "dart", "nix" }, sync_install = false, highlight = { enable = true }, indent = { enable = true }, diff --git a/packages/swaync/default.nix b/packages/swaync/default.nix new file mode 100644 index 0000000..ad85b31 --- /dev/null +++ b/packages/swaync/default.nix @@ -0,0 +1,725 @@ +{...}: { +#  use later + services.swaync = { + enable = true; + settings = { + "$schema" = "/etc/xdg/swaync/configSchema.json"; + positionX = "right"; + positionY = "top"; + cssPriority = "user"; + control-center-margin-top = 22; + control-center-margin-bottom = 2; + control-center-margin-right = 1; + control-center-margin-left = 0; + notification-icon-size = 64; + notification-body-image-height = 128; + notification-body-image-width = 200; + timeout = 6; + timeout-low = 3; + timeout-critical = 0; + fit-to-screen = false; + control-center-width = 400; + control-center-height = 915; + notification-window-width = 375; + keyboard-shortcuts = true; + image-visibility = "when-available"; + transition-time = 200; + hide-on-clear = false; + hide-on-action = true; + script-fail-notify = true; + widgets = [ + "title" + "dnd" + "menubar#desktop" + "volume" + "mpris" + "notifications" + ]; + widget-config = { + title = { + text = " Quick settings"; + clear-all-button = true; + button-text = ""; + }; + "menubar#desktop" = { + "menu#screenshot" = { + label = "\t󰄀 Screenshot\t"; + position = "left"; + actions = [ + { + label = "Whole screen"; + command = "sh -c 'swaync-client -cp; sleep 1; grimblast copysave output \"/tmp/screenshot.png\"; swappy -f \"/tmp/screenshot.png\"'"; + } + { + label = "Whole window / Select region"; + command = "sh -c 'swaync-client -cp; grimblast copysave area \"/tmp/screenshot.png\"; swappy -f \"/tmp/screenshot.png\"'"; + } + ]; + }; + "menu#power" = { + label = "\t Power Menu\t "; + position = "left"; + actions = [ + { + label = " Logout"; + command = "hyprctl dispatch exit 0"; + } + { + label = " Shut down"; + command = "systemctl poweroff"; + } + { + label = "󰤄 Suspend"; + command = "systemctl suspend"; + } + { + label = " Reboot"; + command = "systemctl reboot"; + } + ]; + }; + }; + volume = { + label = ""; + expand-button-label = ""; + collapse-button-label = ""; + show-per-app = true; + show-per-app-icon = true; + show-per-app-label = true; + }; + dnd = { + text = " Do Not Disturb"; + }; + mpris = { + image-size = 96; + image-radius = 4; + }; + label = { + text = "Notifications"; + clear-all-button = true; + button-text = ""; + }; + }; + scripts = { + example-script = { + exec = "echo 'Do something...'"; + urgency = "Normal"; + }; + }; + notification-visibility = { + spotify = { + state = "enabled"; + urgency = "Low"; + app-name = "Spotify"; + }; + }; + }; + 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/waybar/config b/packages/waybar/config index 4e1aafa..d69c45b 100644 --- a/packages/waybar/config +++ b/packages/waybar/config @@ -1,17 +1,21 @@ { "layer": "bottom", "position": "top", - "height": 35, + "height": 38, "spacing": 0, "modules-left": ["clock", "hyprland/workspaces", "hyprland/submap"], "modules-center": [ ], - "modules-right": ["network", "cpu", "memory", "custom/keyboard-layout", "pulseaudio", "tray"], + "modules-right": ["network", "cpu", "memory", "custom/keyboard-layout", "custom/notification", "pulseaudio", "tray"], "custom/keyboard-layout": { "interval": 1, - "exec": "hyprctl devices -j | jq -r '.keyboards[] | .active_keymap' | head -n1 | cut -c1-2 | tr 'a-z' 'A-Z" + "exec": "hyprctl devices -j | jq -r '.keyboards[] | .active_keymap' | head -n1 | cut -c1-2 | tr 'a-z' 'A-Z'" }, +"custom/notification": { + "on-click": "swaync-client -t", + "format": "♥" +}, "cpu": { "interval": 5, diff --git a/packages/waybar/style.css b/packages/waybar/style.css index 5916673..eedb129 100644 --- a/packages/waybar/style.css +++ b/packages/waybar/style.css @@ -22,6 +22,8 @@ window#waybar { #network, #pulseaudio, #custom-keyboard-layout, +#custom-notification, +#tray, #battery{ background: rgba(10,10,10,100); opacity: 0.8; @@ -64,7 +66,7 @@ window#waybar { border-radius: 10px 0px 0px 10px; } -#pulseaudio{ +#tray{ border-radius: 0px 10px 10px 0px; margin-right: 5px } diff --git a/packages/wpaperd/default.nix b/packages/wpaperd/default.nix index bda3240..f59e3ae 100644 --- a/packages/wpaperd/default.nix +++ b/packages/wpaperd/default.nix @@ -1,6 +1,7 @@ { pkgs, config, lib,... }: { home.packages = with pkgs; [ + wpaperd ]; home.file =