hyprland swaync und cliphist & nvim merge + animate
This commit is contained in:
@@ -144,13 +144,14 @@ services.mullvad-vpn.enable = true;
|
|||||||
# sway
|
# sway
|
||||||
networkmanager
|
networkmanager
|
||||||
networkmanagerapplet
|
networkmanagerapplet
|
||||||
wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout
|
# wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout
|
||||||
mako # notification system developed by swaywm maintainer
|
cliphist
|
||||||
|
# mako # notification system developed by swaywm maintainer
|
||||||
waybar # bar
|
waybar # bar
|
||||||
pulseaudio
|
pulseaudio
|
||||||
pavucontrol
|
pavucontrol
|
||||||
brightnessctl # brightness controls
|
brightnessctl # brightness controls
|
||||||
wpaperd # wallpaper manager
|
# wpaperd # wallpaper manager
|
||||||
];
|
];
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
# ./ags
|
# ./ags
|
||||||
./other
|
./other
|
||||||
./sway
|
./sway
|
||||||
|
./swaync
|
||||||
./waybar
|
./waybar
|
||||||
./wpaperd
|
./wpaperd
|
||||||
./nvim
|
./nvim
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ bind = SUPER, BackSpace, killactive,
|
|||||||
bind = SUPER_SHIFT, P, exec, rofi -show power-menu -modi power-menu:rofi-power-menu
|
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 drun
|
||||||
bind = $mainMod, M, exec, rofi -show power-menu -modi power-menu:rofi-power-menurofi -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, E, exec, dolphin
|
||||||
bind = $mainMod, Space, togglefloating,
|
bind = $mainMod, Space, togglefloating,
|
||||||
bind = $mainMod, S, exec, rofi-screenshot,
|
bind = $mainMod, S, exec, rofi-screenshot,
|
||||||
|
|||||||
@@ -1 +1,3 @@
|
|||||||
exec-once=waybar
|
exec-once=waybar
|
||||||
|
exec-once=swaync
|
||||||
|
exec-once=wl-paste --watch cliphist store
|
||||||
|
|||||||
@@ -43,6 +43,14 @@ programs.neovim.plugins = [
|
|||||||
".config/nvim/lua/plugins/blankline.lua".source = ./lua/plugins/blankline.lua;
|
".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/rustaceanvim.lua".source = ./lua/plugins/rustaceanvim.lua;
|
||||||
".config/nvim/lua/plugins/lazygit.lua".source = ./lua/plugins/lazygit.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;
|
||||||
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,14 @@ vim.keymap.set('n', '<C-Right>', ':vertical resize +2<CR>', opts)
|
|||||||
vim.keymap.set('i', 'jk', '<Esc>', opts)
|
vim.keymap.set('i', 'jk', '<Esc>', opts)
|
||||||
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
|
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", "<leader>ca", function()
|
||||||
|
require("tiny-code-action").code_action()
|
||||||
|
end, { noremap = true, silent = true })
|
||||||
|
|
||||||
-- Lazy
|
-- Lazy
|
||||||
require("config.lazy")
|
require("config.lazy")
|
||||||
|
|
||||||
@@ -64,6 +72,9 @@ require('lualine').setup()
|
|||||||
require("dapui").setup()
|
require("dapui").setup()
|
||||||
require("ibl").setup()
|
require("ibl").setup()
|
||||||
require("telescope").load_extension("flutter")
|
require("telescope").load_extension("flutter")
|
||||||
|
require("toggleterm").setup{}
|
||||||
|
require("tabby").setup{}
|
||||||
|
require("mini.animate").setup()
|
||||||
|
|
||||||
-- alternatively you can override the default configs
|
-- alternatively you can override the default configs
|
||||||
require("flutter-tools").setup {
|
require("flutter-tools").setup {
|
||||||
@@ -153,6 +164,7 @@ require("flutter-tools").setup {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
------------- -- Debugger
|
------------- -- Debugger
|
||||||
local dap, dapui = require("dap"), require("dapui")
|
local dap, dapui = require("dap"), require("dapui")
|
||||||
dap.listeners.before.attach.dapui_config = function()
|
dap.listeners.before.attach.dapui_config = function()
|
||||||
@@ -178,15 +190,6 @@ dap.configurations.c = dap.configurations.cpp
|
|||||||
dap.configurations.rust = dap.configurations.cpp
|
dap.configurations.rust = dap.configurations.cpp
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--------------------------------------------
|
--------------------------------------------
|
||||||
local builtin = require('telescope.builtin')
|
local builtin = require('telescope.builtin')
|
||||||
-- Telescope binds
|
-- Telescope binds
|
||||||
@@ -195,15 +198,25 @@ vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = 'Telescope live gr
|
|||||||
vim.keymap.set('n', '<leader>fb', ":Telescope file_browser<CR>", { desc = 'Telescope file_browser' })
|
vim.keymap.set('n', '<leader>fb', ":Telescope file_browser<CR>", { desc = 'Telescope file_browser' })
|
||||||
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' })
|
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' })
|
||||||
vim.keymap.set('n', '<leader>fl', ": Telescope flutter commands<CR>", { desc = "Open Telescope flutter" })
|
vim.keymap.set('n', '<leader>fl', ": Telescope flutter commands<CR>", { desc = "Open Telescope flutter" })
|
||||||
|
vim.keymap.set('n', '<leader>fl', ":Telescope flutter commands<CR>", { desc = "Open Telescope flutter" })
|
||||||
-- Dap binds
|
-- Dap binds
|
||||||
vim.keymap.set('n', '<leader>do', dapui.open, { desc = "Open debug overlay" })
|
vim.keymap.set('n', '<leader>do', dapui.open, { desc = "Open debug overlay" })
|
||||||
vim.keymap.set('n', '<leader>dc', dapui.close, { desc = "Close debug overlay" })
|
vim.keymap.set('n', '<leader>dc', dapui.close, { desc = "Close debug overlay" })
|
||||||
vim.keymap.set('n', '<F5>', dap.toggle_breakpoint, { desc = "Close debug overlay" })
|
vim.keymap.set('n', '<F5>', dap.toggle_breakpoint, { desc = "Toggle breakpoint" })
|
||||||
vim.keymap.set('n', '<F6>', dap.continue, { desc = "Close debug overlay" })
|
vim.keymap.set('n', '<F6>', dap.continue, { desc = "dap Continue" })
|
||||||
vim.keymap.set('n', '<F7>', dap.step_over, { desc = "Close debug overlay" })
|
vim.keymap.set('n', '<F7>', dap.step_over, { desc = "dap step over" })
|
||||||
vim.keymap.set('n', '<F8>', dap.step_into, { desc = "Close debug overlay" })
|
vim.keymap.set('n', '<F8>', dap.step_into, { desc = "dap step into" })
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- toggleterm binds
|
||||||
|
vim.keymap.set('n', '<leader>tf', ':ToggleTerm direction=float <CR>', { desc = "Open floating terminal" })
|
||||||
|
vim.keymap.set('n', '<leader>tt', ':ToggleTerm direction=tab size=50 <CR>', { desc = "Open terminal in new tab" })
|
||||||
|
vim.keymap.set('n', '<leader>tv', ':ToggleTerm direction=vertical <CR>', { desc = "Open terminal vertical" })
|
||||||
|
vim.keymap.set('n', '<leader>ts', ':ToggleTerm direction=vertical <CR>', { desc = "select open terminal" })
|
||||||
|
-- code actions
|
||||||
|
vim.keymap.set("n", "<leader>ca", function()
|
||||||
|
require("tiny-code-action").code_action()
|
||||||
|
end, { desc = "Show code actions", noremap = true, silent = true })
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
7
packages/nvim/lua/plugins/autopair.lua
Normal file
7
packages/nvim/lua/plugins/autopair.lua
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
return {
|
||||||
|
'windwp/nvim-autopairs',
|
||||||
|
event = "InsertEnter",
|
||||||
|
config = true
|
||||||
|
-- use opts = {} for passing setup options
|
||||||
|
-- this is equivalent to setup({}) function
|
||||||
|
}
|
||||||
11
packages/nvim/lua/plugins/code-action.lua
Normal file
11
packages/nvim/lua/plugins/code-action.lua
Normal file
@@ -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
|
||||||
|
}
|
||||||
10
packages/nvim/lua/plugins/love.lua
Normal file
10
packages/nvim/lua/plugins/love.lua
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
return {
|
||||||
|
"S1M0N38/love2d.nvim",
|
||||||
|
cmd = "LoveRun",
|
||||||
|
opts = { },
|
||||||
|
keys = {
|
||||||
|
{ "<leader>v", ft = "lua", desc = "LÖVE" },
|
||||||
|
{ "<leader>vv", "<cmd>LoveRun<cr>", ft = "lua", desc = "Run LÖVE" },
|
||||||
|
{ "<leader>vs", "<cmd>LoveStop<cr>", ft = "lua", desc = "Stop LÖVE" },
|
||||||
|
},
|
||||||
|
}
|
||||||
1
packages/nvim/lua/plugins/mini-animate.lua
Normal file
1
packages/nvim/lua/plugins/mini-animate.lua
Normal file
@@ -0,0 +1 @@
|
|||||||
|
return { 'echasnovski/mini.animate', version = false }
|
||||||
7
packages/nvim/lua/plugins/plugins/autopair.lua
Normal file
7
packages/nvim/lua/plugins/plugins/autopair.lua
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
return {
|
||||||
|
'windwp/nvim-autopairs',
|
||||||
|
event = "InsertEnter",
|
||||||
|
config = true
|
||||||
|
-- use opts = {} for passing setup options
|
||||||
|
-- this is equivalent to setup({}) function
|
||||||
|
}
|
||||||
7
packages/nvim/lua/plugins/plugins/blankline.lua
Normal file
7
packages/nvim/lua/plugins/plugins/blankline.lua
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
return {
|
||||||
|
"lukas-reineke/indent-blankline.nvim",
|
||||||
|
main = "ibl",
|
||||||
|
---@module "ibl"
|
||||||
|
---@type ibl.config
|
||||||
|
opts = {},
|
||||||
|
}
|
||||||
48
packages/nvim/lua/plugins/plugins/blink-cmp.lua
Normal file
48
packages/nvim/lua/plugins/plugins/blink-cmp.lua
Normal file
@@ -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
|
||||||
|
['<S-Tab>'] = { 'select_prev', 'fallback' },
|
||||||
|
['<Tab>'] = { '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" }
|
||||||
|
}
|
||||||
1
packages/nvim/lua/plugins/plugins/catppuccin.lua
Normal file
1
packages/nvim/lua/plugins/plugins/catppuccin.lua
Normal file
@@ -0,0 +1 @@
|
|||||||
|
return { "catppuccin/nvim", name = "catppuccin", priority = 1000 }
|
||||||
6
packages/nvim/lua/plugins/plugins/comment.lua
Normal file
6
packages/nvim/lua/plugins/plugins/comment.lua
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
return {
|
||||||
|
'numToStr/Comment.nvim',
|
||||||
|
opts = {
|
||||||
|
-- add any options here
|
||||||
|
}
|
||||||
|
}
|
||||||
0
packages/nvim/lua/plugins/plugins/comment.lua~
Normal file
0
packages/nvim/lua/plugins/plugins/comment.lua~
Normal file
30
packages/nvim/lua/plugins/plugins/coq.lua
Normal file
30
packages/nvim/lua/plugins/plugins/coq.lua
Normal file
@@ -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,
|
||||||
|
}
|
||||||
1
packages/nvim/lua/plugins/plugins/dap.lua
Normal file
1
packages/nvim/lua/plugins/plugins/dap.lua
Normal file
@@ -0,0 +1 @@
|
|||||||
|
return { "rcarriga/nvim-dap-ui", dependencies = {"mfussenegger/nvim-dap", "nvim-neotest/nvim-nio"} }
|
||||||
10
packages/nvim/lua/plugins/plugins/flutter.lua
Normal file
10
packages/nvim/lua/plugins/plugins/flutter.lua
Normal file
@@ -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,
|
||||||
|
}
|
||||||
1
packages/nvim/lua/plugins/plugins/highlight-colors.lua
Normal file
1
packages/nvim/lua/plugins/plugins/highlight-colors.lua
Normal file
@@ -0,0 +1 @@
|
|||||||
|
return { "brenoprata10/nvim-highlight-colors", name = "highlight-colotrs" }
|
||||||
33
packages/nvim/lua/plugins/plugins/lazydev.lua
Normal file
33
packages/nvim/lua/plugins/plugins/lazydev.lua
Normal file
@@ -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
|
||||||
|
}
|
||||||
0
packages/nvim/lua/plugins/plugins/lazydev.lua~
Normal file
0
packages/nvim/lua/plugins/plugins/lazydev.lua~
Normal file
21
packages/nvim/lua/plugins/plugins/lazygit.lua
Normal file
21
packages/nvim/lua/plugins/plugins/lazygit.lua
Normal file
@@ -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 = {
|
||||||
|
{ "<leader>lg", "<cmd>LazyGit<cr>", desc = "LazyGit" }
|
||||||
|
}
|
||||||
|
}
|
||||||
30
packages/nvim/lua/plugins/plugins/lsp.lua
Normal file
30
packages/nvim/lua/plugins/plugins/lsp.lua
Normal file
@@ -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
|
||||||
|
}
|
||||||
13
packages/nvim/lua/plugins/plugins/lsp.lua~
Normal file
13
packages/nvim/lua/plugins/plugins/lsp.lua~
Normal file
@@ -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", "<cmd>echo 'hello'<cr>" }
|
||||||
|
-- disable a keymap
|
||||||
|
keys[#keys + 1] = { "K", false }
|
||||||
|
-- add a keymap
|
||||||
|
keys[#keys + 1] = { "H", "<cmd>echo 'hello'<cr>" }
|
||||||
|
end,
|
||||||
|
}
|
||||||
5
packages/nvim/lua/plugins/plugins/lualine.lua
Normal file
5
packages/nvim/lua/plugins/plugins/lualine.lua
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
return {
|
||||||
|
'nvim-lualine/lualine.nvim',
|
||||||
|
dependencies = { 'nvim-tree/nvim-web-devicons' }
|
||||||
|
|
||||||
|
}
|
||||||
0
packages/nvim/lua/plugins/plugins/lualine.lua~
Normal file
0
packages/nvim/lua/plugins/plugins/lualine.lua~
Normal file
37
packages/nvim/lua/plugins/plugins/mason.lua
Normal file
37
packages/nvim/lua/plugins/plugins/mason.lua
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
return {
|
||||||
|
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
cmd = "Mason",
|
||||||
|
keys = { { "<leader>cm", "<cmd>Mason<cr>", 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,
|
||||||
|
}
|
||||||
5
packages/nvim/lua/plugins/plugins/rustaceanvim.lua
Normal file
5
packages/nvim/lua/plugins/plugins/rustaceanvim.lua
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
return {
|
||||||
|
'mrcjkb/rustaceanvim',
|
||||||
|
version = '^5', -- Recommended
|
||||||
|
lazy = false, -- This plugin is already lazy
|
||||||
|
}
|
||||||
44
packages/nvim/lua/plugins/plugins/tabout.lua
Normal file
44
packages/nvim/lua/plugins/plugins/tabout.lua
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
'abecodes/tabout.nvim',
|
||||||
|
lazy = false,
|
||||||
|
config = function()
|
||||||
|
require('tabout').setup {
|
||||||
|
tabkey = '<Tab>', -- key to trigger tabout, set to an empty string to disable
|
||||||
|
backwards_tabkey = '<S-Tab>', -- 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 <S-Tab>)
|
||||||
|
default_tab = '<C-t>', -- shift default action (only at the beginning of a line, otherwise <TAB> is used)
|
||||||
|
default_shift_tab = '<C-d>', -- 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,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
4
packages/nvim/lua/plugins/plugins/telescope.lua
Normal file
4
packages/nvim/lua/plugins/plugins/telescope.lua
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
return {
|
||||||
|
"nvim-telescope/telescope-file-browser.nvim",
|
||||||
|
dependencies = { "nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim" }
|
||||||
|
}
|
||||||
15
packages/nvim/lua/plugins/plugins/treesitter.lua
Normal file
15
packages/nvim/lua/plugins/plugins/treesitter.lua
Normal file
@@ -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
|
||||||
|
}
|
||||||
37
packages/nvim/lua/plugins/plugins/trouble.lua
Normal file
37
packages/nvim/lua/plugins/plugins/trouble.lua
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
return {
|
||||||
|
"folke/trouble.nvim",
|
||||||
|
opts = {}, -- for default options, refer to the configuration section for custom setup.
|
||||||
|
cmd = "Trouble",
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader>xx",
|
||||||
|
"<cmd>Trouble diagnostics toggle<cr>",
|
||||||
|
desc = "Diagnostics (Trouble)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>xX",
|
||||||
|
"<cmd>Trouble diagnostics toggle filter.buf=0<cr>",
|
||||||
|
desc = "Buffer Diagnostics (Trouble)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>cs",
|
||||||
|
"<cmd>Trouble symbols toggle focus=false<cr>",
|
||||||
|
desc = "Symbols (Trouble)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>cl",
|
||||||
|
"<cmd>Trouble lsp toggle focus=false win.position=right<cr>",
|
||||||
|
desc = "LSP Definitions / references / ... (Trouble)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>xL",
|
||||||
|
"<cmd>Trouble loclist toggle<cr>",
|
||||||
|
desc = "Location List (Trouble)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<leader>xQ",
|
||||||
|
"<cmd>Trouble qflist toggle<cr>",
|
||||||
|
desc = "Quickfix List (Trouble)",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
18
packages/nvim/lua/plugins/plugins/whichkey.lua
Normal file
18
packages/nvim/lua/plugins/plugins/whichkey.lua
Normal file
@@ -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 = {
|
||||||
|
{
|
||||||
|
"<leader>?",
|
||||||
|
function()
|
||||||
|
require("which-key").show({ global = false })
|
||||||
|
end,
|
||||||
|
desc = "Buffer Local Keymaps (which-key)",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
0
packages/nvim/lua/plugins/plugins/whichkey.lua~
Normal file
0
packages/nvim/lua/plugins/plugins/whichkey.lua~
Normal file
8
packages/nvim/lua/plugins/tabby.lua
Normal file
8
packages/nvim/lua/plugins/tabby.lua
Normal file
@@ -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,
|
||||||
|
}
|
||||||
42
packages/nvim/lua/plugins/tabout.lua
Normal file
42
packages/nvim/lua/plugins/tabout.lua
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
'abecodes/tabout.nvim',
|
||||||
|
lazy = false,
|
||||||
|
config = function()
|
||||||
|
require('tabout').setup {
|
||||||
|
tabkey = '<Tab>', -- key to trigger tabout, set to an empty string to disable
|
||||||
|
backwards_tabkey = '<S-Tab>', -- 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 <S-Tab>)
|
||||||
|
default_tab = '<C-t>', -- shift default action (only at the beginning of a line, otherwise <TAB> is used)
|
||||||
|
default_shift_tab = '<C-d>', -- 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,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
4
packages/nvim/lua/plugins/toggleterm.lua
Normal file
4
packages/nvim/lua/plugins/toggleterm.lua
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
return {
|
||||||
|
-- amongst your other plugins
|
||||||
|
{'akinsho/toggleterm.nvim', version = "*", config = true}
|
||||||
|
}
|
||||||
@@ -6,7 +6,7 @@ return {
|
|||||||
local configs = require("nvim-treesitter.configs")
|
local configs = require("nvim-treesitter.configs")
|
||||||
|
|
||||||
configs.setup({
|
configs.setup({
|
||||||
ensure_installed = { "c", "lua", "html", "dart" },
|
ensure_installed = { "c", "lua", "html", "dart", "nix" },
|
||||||
sync_install = false,
|
sync_install = false,
|
||||||
highlight = { enable = true },
|
highlight = { enable = true },
|
||||||
indent = { enable = true },
|
indent = { enable = true },
|
||||||
|
|||||||
725
packages/swaync/default.nix
Normal file
725
packages/swaync/default.nix
Normal file
@@ -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;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,17 +1,21 @@
|
|||||||
{
|
{
|
||||||
"layer": "bottom",
|
"layer": "bottom",
|
||||||
"position": "top",
|
"position": "top",
|
||||||
"height": 35,
|
"height": 38,
|
||||||
"spacing": 0,
|
"spacing": 0,
|
||||||
"modules-left": ["clock", "hyprland/workspaces", "hyprland/submap"],
|
"modules-left": ["clock", "hyprland/workspaces", "hyprland/submap"],
|
||||||
"modules-center": [ ],
|
"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": {
|
"custom/keyboard-layout": {
|
||||||
"interval": 1,
|
"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": {
|
"cpu": {
|
||||||
"interval": 5,
|
"interval": 5,
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ window#waybar {
|
|||||||
#network,
|
#network,
|
||||||
#pulseaudio,
|
#pulseaudio,
|
||||||
#custom-keyboard-layout,
|
#custom-keyboard-layout,
|
||||||
|
#custom-notification,
|
||||||
|
#tray,
|
||||||
#battery{
|
#battery{
|
||||||
background: rgba(10,10,10,100);
|
background: rgba(10,10,10,100);
|
||||||
opacity: 0.8;
|
opacity: 0.8;
|
||||||
@@ -64,7 +66,7 @@ window#waybar {
|
|||||||
border-radius: 10px 0px 0px 10px;
|
border-radius: 10px 0px 0px 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pulseaudio{
|
#tray{
|
||||||
border-radius: 0px 10px 10px 0px;
|
border-radius: 0px 10px 10px 0px;
|
||||||
margin-right: 5px
|
margin-right: 5px
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{ pkgs, config, lib,... }:
|
{ pkgs, config, lib,... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
wpaperd
|
||||||
];
|
];
|
||||||
|
|
||||||
home.file =
|
home.file =
|
||||||
|
|||||||
Reference in New Issue
Block a user