Compare commits
59
Commits
62c7fe82ab
..
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
273e83051c | ||
|
|
76cafd8bc7 | ||
|
|
a7c4dc8407 | ||
|
|
42c44aec68 | ||
|
|
2fd2d691fd | ||
|
|
96d3086885 | ||
|
|
699473d7b5 | ||
|
|
a5686ccee0 | ||
|
|
dcb2b320eb | ||
|
|
dc10b3dfb3 | ||
|
|
79036dce2c | ||
|
|
2dcbd80842 | ||
|
|
e5fb57c279 | ||
|
|
14c53abbf3 | ||
|
|
23718c9477 | ||
|
|
f308f2fe75 | ||
|
|
a945adae10 | ||
|
|
6c156422be | ||
|
|
897bc92c94 | ||
|
|
aa96285da3 | ||
|
|
b9959d2c6f | ||
|
|
b7fccc80db | ||
|
|
7efc69cc34 | ||
|
|
93c1b94387 | ||
|
|
f222bd9b8f | ||
|
|
24979c1872 | ||
|
|
0050404bd9 | ||
|
|
d9375906f0 | ||
|
|
505734efa7 | ||
|
|
a4afa92102 | ||
|
|
e25799c2a1 | ||
|
|
1ac2a8be73 | ||
|
|
6433bb1a07 | ||
|
|
94ddccdf87 | ||
|
|
aae3258c5a | ||
|
|
850248e3f5 | ||
|
|
719d1e09f6 | ||
|
|
551993863a | ||
|
|
bcadb46269 | ||
|
|
1d7fe2bd1c | ||
|
|
695ff3c445 | ||
|
|
70fc63237e | ||
|
|
b2f77ac50a | ||
|
|
5bd080b9f2 | ||
|
|
42c9eca457 | ||
|
|
a09d7b7492 | ||
|
|
72799bf294 | ||
|
|
6d1617b41d | ||
|
|
1b3ff2ad98 | ||
|
|
b9c1ab8ead | ||
|
|
f148347f3c | ||
|
|
47e7f07201 | ||
|
|
09966d3ae6 | ||
|
|
4a8e5bc3fa | ||
|
|
2199599f58 | ||
|
|
03324d92c8 | ||
|
|
0048525dd7 | ||
|
|
053142e4bd | ||
|
|
8d5cd15b5b |
@@ -0,0 +1,101 @@
|
|||||||
|
# Setup after pulling (Arch)
|
||||||
|
|
||||||
|
Everything needed to bring the Cursor Dark theme up on a machine that has just
|
||||||
|
pulled these changes.
|
||||||
|
|
||||||
|
## 1. Packages
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo pacman -S --needed papirus-icon-theme ttf-nerd-fonts-symbols-mono
|
||||||
|
```
|
||||||
|
|
||||||
|
| Package | Why |
|
||||||
|
| --- | --- |
|
||||||
|
| `papirus-icon-theme` | rofi, dunst and the GTK configs all reference `Papirus-Dark` |
|
||||||
|
| `ttf-nerd-fonts-symbols-mono` | the tmux status bar uses powerline separators (U+E0B0–E0B3), and `kitty.conf` maps that range to `Symbols Nerd Font Mono` |
|
||||||
|
|
||||||
|
Not in the repos: **Berkeley Mono** (`kitty.conf`) and **Hack JBM Ligatured**
|
||||||
|
(waybar, rofi, hyprlock) are installed by hand.
|
||||||
|
|
||||||
|
## 2. Deploy
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd ~/.dotfiles
|
||||||
|
stow fish kitty tmux nvim hypr waybar rofi dunst gtktheme
|
||||||
|
```
|
||||||
|
|
||||||
|
> The README suggests `stow *`, which now also picks up `SETUP.md`.
|
||||||
|
> Use `stow */` or an explicit list.
|
||||||
|
|
||||||
|
## 3. Reload
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# fish - close every running fish session BEFORE pulling (see notes)
|
||||||
|
exec fish
|
||||||
|
|
||||||
|
# tmux - plugins now bootstrap themselves, no prefix+I needed
|
||||||
|
tmux kill-server && tmux
|
||||||
|
|
||||||
|
# nvim - installs vscode.nvim, drops everforest
|
||||||
|
nvim --headless "+Lazy! sync" +qa
|
||||||
|
|
||||||
|
# desktop
|
||||||
|
hyprctl reload
|
||||||
|
killall -SIGUSR2 waybar
|
||||||
|
killall dunst # respawns via dbus
|
||||||
|
```
|
||||||
|
|
||||||
|
kitty: `ctrl+shift+F5` to reload, or restart it. rofi has no daemon.
|
||||||
|
|
||||||
|
## 4. GTK theme
|
||||||
|
|
||||||
|
The configs are set to `Orchis-Dark-Compact` (Material Design, accent `#1A73E8`).
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo pacman -S orchis-theme xdg-desktop-portal-gtk
|
||||||
|
```
|
||||||
|
|
||||||
|
libadwaita ignores `gtk-theme-name`, so GTK4 apps also need the portal settings
|
||||||
|
and Orchis' own GTK4 stylesheet linked in:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
|
||||||
|
gsettings set org.gnome.desktop.interface icon-theme 'Papirus-Dark'
|
||||||
|
gsettings set org.gnome.desktop.interface gtk-theme 'Orchis-Dark-Compact'
|
||||||
|
|
||||||
|
mkdir -p ~/.config/gtk-4.0
|
||||||
|
ln -sf /usr/share/themes/Orchis-Dark-Compact/gtk-4.0/gtk.css ~/.config/gtk-4.0/gtk.css
|
||||||
|
ln -sf /usr/share/themes/Orchis-Dark-Compact/gtk-4.0/assets ~/.config/gtk-4.0/assets
|
||||||
|
```
|
||||||
|
|
||||||
|
`nwg-look` can do the symlink step for you — `nwg/.config/nwg-look/config` already
|
||||||
|
has `export-gtk4-symlinks: true`. Set the gsettings values above first, then run
|
||||||
|
`nwg-look` and hit Apply; it writes `.gtkrc-2.0`, both `settings.ini` files and the
|
||||||
|
GTK4 symlinks from those values.
|
||||||
|
|
||||||
|
### Window buttons
|
||||||
|
|
||||||
|
Both `settings.ini` files set `gtk-decoration-layout=close,minimize,maximize:`
|
||||||
|
— everything left of the `:` sits on the **left**, which is macOS placement and
|
||||||
|
order. That is client-side decoration, so it is all Hyprland apps use.
|
||||||
|
|
||||||
|
Orchis' `--tweaks macos` is **not** useful here: it only replaces `xfwm4` and
|
||||||
|
`metacity-1` assets (Xfce / Marco window managers) and touches no GTK CSS, so it
|
||||||
|
would change nothing under Hyprland — and it requires building from source,
|
||||||
|
giving up the packaged theme. Circular red/yellow/green buttons are not
|
||||||
|
available from Orchis for GTK client-side decorations.
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- **fish universal variables.** The colours live in `fish/.config/fish/fish_variables`,
|
||||||
|
which fish rewrites from memory whenever any universal variable changes. Close
|
||||||
|
running fish sessions before pulling so an old session can't write the previous
|
||||||
|
palette back over it.
|
||||||
|
- **`cat` is broken on Arch.** `config.fish` defines `cat` as `batcat …`, which is
|
||||||
|
the Debian binary name. Arch's `bat` package installs `/usr/bin/bat`. Either
|
||||||
|
`sudo pacman -S bat` and rename the call, or add an alias.
|
||||||
|
- **nwg-look overwrites GTK config.** It regenerates `.gtkrc-2.0` and the
|
||||||
|
`settings.ini` files. Run it *before* editing these by hand, or re-apply after.
|
||||||
|
- **`gtktheme/.gtkrc-2.0` line 4** includes `/home/n0x/.gtkrc-2.0.mine`, a stale
|
||||||
|
path from a previous username. Harmless, but dead.
|
||||||
|
- **`~/.tmux/plugins/nord-tmux`** is no longer used or tracked. Safe to delete.
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
require "user.options"
|
||||||
|
require "user.keymaps"
|
||||||
|
require "user.plugins"
|
||||||
|
require "user.colorscheme"
|
||||||
|
require "user.cmp"
|
||||||
|
require "user.lsp"
|
||||||
|
require "user.telescope"
|
||||||
|
require "user.treesitter"
|
||||||
|
require "user.nvim-tree"
|
||||||
|
require "user.bufferline"
|
||||||
|
require "user.statusline"
|
||||||
|
require "user.gitsigns"
|
||||||
|
require "user.rust-tools"
|
||||||
+22
-12
@@ -46,16 +46,22 @@ local kind_icons = {
|
|||||||
-- find more here: https://www.nerdfonts.com/cheat-sheet
|
-- find more here: https://www.nerdfonts.com/cheat-sheet
|
||||||
|
|
||||||
cmp.setup {
|
cmp.setup {
|
||||||
|
--snippet = {
|
||||||
|
-- expand = function(args)
|
||||||
|
-- luasnip.lsp_expand(args.body) -- For `luasnip` users.
|
||||||
|
-- end,
|
||||||
|
--},
|
||||||
|
|
||||||
snippet = {
|
snippet = {
|
||||||
expand = function(args)
|
expand = function(args)
|
||||||
luasnip.lsp_expand(args.body) -- For `luasnip` users.
|
vim.fn["vsnip#anonymous"](args.body)
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
mapping = {
|
mapping = {
|
||||||
["<C-k>"] = cmp.mapping.select_prev_item(),
|
["<C-p>"] = cmp.mapping.select_prev_item(),
|
||||||
["<C-j>"] = cmp.mapping.select_next_item(),
|
["<C-n>"] = cmp.mapping.select_next_item(),
|
||||||
["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }),
|
['<C-S-f>'] = cmp.mapping.scroll_docs(-4),
|
||||||
["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }),
|
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||||
["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
|
["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
|
||||||
["<C-y>"] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
|
["<C-y>"] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
|
||||||
["<C-e>"] = cmp.mapping {
|
["<C-e>"] = cmp.mapping {
|
||||||
@@ -102,19 +108,23 @@ cmp.setup {
|
|||||||
-- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind
|
-- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind
|
||||||
vim_item.menu = ({
|
vim_item.menu = ({
|
||||||
nvim_lsp = "[LSP]",
|
nvim_lsp = "[LSP]",
|
||||||
luasnip = "[Snippet]",
|
luasnip = "[Snip]",
|
||||||
buffer = "[Buffer]",
|
buffer = "[Buff]",
|
||||||
path = "[Path]",
|
path = "[Path]",
|
||||||
|
vsnip = "[VSnip]",
|
||||||
})[entry.source.name]
|
})[entry.source.name]
|
||||||
return vim_item
|
return vim_item
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
sources = {
|
sources = {
|
||||||
{ name = "nvim_lsp" },
|
{ name = 'path' }, -- file paths
|
||||||
{ name = "luasnip" },
|
{ name = 'nvim_lsp', keyword_length = 3 }, -- from language server
|
||||||
{ name = "buffer" },
|
{ name = 'nvim_lsp_signature_help'}, -- display function signatures with current parameter emphasized
|
||||||
{ name = "path" },
|
{ name = 'nvim_lua', keyword_length = 2}, -- complete neovim's Lua runtime API such vim.lsp.*
|
||||||
},
|
{ name = 'buffer', keyword_length = 2 }, -- source current buffer
|
||||||
|
{ name = 'vsnip', keyword_length = 2 }, -- nvim-cmp source for vim-vsnip
|
||||||
|
{ name = 'calc'}, -- source for math calculation
|
||||||
|
},
|
||||||
confirm_opts = {
|
confirm_opts = {
|
||||||
behavior = cmp.ConfirmBehavior.Replace,
|
behavior = cmp.ConfirmBehavior.Replace,
|
||||||
select = false,
|
select = false,
|
||||||
+1
-1
@@ -61,6 +61,7 @@ local function lsp_highlight_document(client)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function lsp_keymaps(bufnr)
|
local function lsp_keymaps(bufnr)
|
||||||
|
vim.cmd [[ command! Format execute 'lua vim.lsp.buf.format()' ]]
|
||||||
local opts = { noremap = true, silent = true }
|
local opts = { noremap = true, silent = true }
|
||||||
vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", opts)
|
vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", opts)
|
||||||
vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", opts)
|
vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", opts)
|
||||||
@@ -81,7 +82,6 @@ local function lsp_keymaps(bufnr)
|
|||||||
-- for german keyboard ...
|
-- for german keyboard ...
|
||||||
vim.api.nvim_buf_set_keymap(bufnr, "n", "*d", '<cmd>lua vim.diagnostic.goto_next({ border = "rounded" })<CR>', opts)
|
vim.api.nvim_buf_set_keymap(bufnr, "n", "*d", '<cmd>lua vim.diagnostic.goto_next({ border = "rounded" })<CR>', opts)
|
||||||
vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>q", "<cmd>lua vim.diagnostic.setloclist()<CR>", opts)
|
vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>q", "<cmd>lua vim.diagnostic.setloclist()<CR>", opts)
|
||||||
vim.cmd [[ command! Format execute 'lua vim.lsp.buf.format()' ]]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
M.on_attach = function(client, bufnr)
|
M.on_attach = function(client, bufnr)
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
local status_ok, _ = pcall(require, "lspconfig")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
require "user.lsp.mason"
|
||||||
|
require("user.lsp.handlers").setup()
|
||||||
|
require "user.lsp.null-ls"
|
||||||
|
|
||||||
|
-- LSP Diagnostics Options Setup
|
||||||
|
local sign = function(opts)
|
||||||
|
vim.fn.sign_define(opts.name, {
|
||||||
|
texthl = opts.name,
|
||||||
|
text = opts.text,
|
||||||
|
numhl = ''
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
sign({name = 'DiagnosticSignError', text = ''})
|
||||||
|
sign({name = 'DiagnosticSignWarn', text = ''})
|
||||||
|
sign({name = 'DiagnosticSignHint', text = ''})
|
||||||
|
sign({name = 'DiagnosticSignInfo', text = ''})
|
||||||
|
|
||||||
|
vim.diagnostic.config({
|
||||||
|
virtual_text = false,
|
||||||
|
signs = true,
|
||||||
|
update_in_insert = true,
|
||||||
|
underline = true,
|
||||||
|
severity_sort = false,
|
||||||
|
float = {
|
||||||
|
border = 'rounded',
|
||||||
|
source = 'always',
|
||||||
|
header = '',
|
||||||
|
prefix = '',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.cmd([[
|
||||||
|
set signcolumn=yes
|
||||||
|
autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })
|
||||||
|
]])
|
||||||
|
|
||||||
-1
@@ -16,6 +16,5 @@ null_ls.setup({
|
|||||||
extra_filetypes = {"inl"},
|
extra_filetypes = {"inl"},
|
||||||
extra_args = {"-style=file:~/.config/nvim/lua/user/lsp/settings/clang-format"},
|
extra_args = {"-style=file:~/.config/nvim/lua/user/lsp/settings/clang-format"},
|
||||||
}),
|
}),
|
||||||
null_ls.builtins.formatting.rustfmt,
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
+25
@@ -51,3 +51,28 @@ vim.cmd "set listchars=tab:\\ \\ ,space:·"
|
|||||||
--vim.cmd "set term=screen-256color"
|
--vim.cmd "set term=screen-256color"
|
||||||
vim.g.vimwiki_list = {{path = '~/Documents/vimwiki', syntax = 'markdown', ext = '.md'}}
|
vim.g.vimwiki_list = {{path = '~/Documents/vimwiki', syntax = 'markdown', ext = '.md'}}
|
||||||
vim.g.nord_disable_background = true
|
vim.g.nord_disable_background = true
|
||||||
|
|
||||||
|
--Set completeopt to have a better completion experience
|
||||||
|
-- :help completeopt
|
||||||
|
-- menuone: popup even when there's only one match
|
||||||
|
-- noinsert: Do not insert text until a selection is made
|
||||||
|
-- noselect: Do not select, force to select one from the menu
|
||||||
|
-- shortness: avoid showing extra messages when using completion
|
||||||
|
-- updatetime: set updatetime for CursorHold
|
||||||
|
vim.opt.completeopt = {'menuone', 'noselect', 'noinsert'}
|
||||||
|
vim.opt.shortmess = vim.opt.shortmess + { c = true}
|
||||||
|
vim.api.nvim_set_option('updatetime', 300)
|
||||||
|
|
||||||
|
-- Fixed column for diagnostics to appear
|
||||||
|
-- Show autodiagnostic popup on cursor hover_range
|
||||||
|
-- Goto previous / next diagnostic warning / error
|
||||||
|
-- Show inlay_hints more frequently
|
||||||
|
vim.cmd([[
|
||||||
|
set signcolumn=yes
|
||||||
|
autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })
|
||||||
|
]])
|
||||||
|
|
||||||
|
|
||||||
|
-- Treesitter folding
|
||||||
|
vim.wo.foldmethod = 'expr'
|
||||||
|
vim.wo.foldexpr = 'nvim_treesitter#foldexpr()'
|
||||||
+11
-2
@@ -47,13 +47,20 @@ return packer.startup(function(use)
|
|||||||
|
|
||||||
-- Colorschemes
|
-- Colorschemes
|
||||||
use "shaunsingh/nord.nvim"
|
use "shaunsingh/nord.nvim"
|
||||||
|
|
||||||
-- cmp plugins
|
-- cmp plugins
|
||||||
use "hrsh7th/nvim-cmp" -- The completion plugin
|
use "hrsh7th/nvim-cmp" -- The completion plugin
|
||||||
use "hrsh7th/cmp-buffer" -- buffer completions
|
use "hrsh7th/cmp-nvim-lsp"
|
||||||
|
|
||||||
|
use 'hrsh7th/cmp-nvim-lua'
|
||||||
|
use 'hrsh7th/cmp-nvim-lsp-signature-help'
|
||||||
|
|
||||||
|
use 'hrsh7th/cmp-vsnip'
|
||||||
use "hrsh7th/cmp-path" -- path completions
|
use "hrsh7th/cmp-path" -- path completions
|
||||||
|
use "hrsh7th/cmp-buffer" -- buffer completions
|
||||||
|
use "hrsh7th/vim-vsnip"
|
||||||
use "hrsh7th/cmp-cmdline" -- cmdline completions
|
use "hrsh7th/cmp-cmdline" -- cmdline completions
|
||||||
use "saadparwaiz1/cmp_luasnip" -- snippet completions
|
use "saadparwaiz1/cmp_luasnip" -- snippet completions
|
||||||
use "hrsh7th/cmp-nvim-lsp"
|
|
||||||
|
|
||||||
-- snippets
|
-- snippets
|
||||||
use "L3MON4D3/LuaSnip" --snippet engine
|
use "L3MON4D3/LuaSnip" --snippet engine
|
||||||
@@ -65,6 +72,8 @@ return packer.startup(function(use)
|
|||||||
use "williamboman/mason-lspconfig.nvim" -- simple to use language server installer
|
use "williamboman/mason-lspconfig.nvim" -- simple to use language server installer
|
||||||
use 'jose-elias-alvarez/null-ls.nvim' -- LSP diagnostics and code actions
|
use 'jose-elias-alvarez/null-ls.nvim' -- LSP diagnostics and code actions
|
||||||
|
|
||||||
|
use 'simrat39/rust-tools.nvim'
|
||||||
|
|
||||||
-- Telescope
|
-- Telescope
|
||||||
use "nvim-telescope/telescope.nvim"
|
use "nvim-telescope/telescope.nvim"
|
||||||
use 'nvim-telescope/telescope-media-files.nvim'
|
use 'nvim-telescope/telescope-media-files.nvim'
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
local rt = require("rust-tools")
|
||||||
|
|
||||||
|
rt.setup({
|
||||||
|
server = {
|
||||||
|
on_attach = function(_, bufnr)
|
||||||
|
-- Hover actions
|
||||||
|
vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr })
|
||||||
|
-- Code action groups
|
||||||
|
vim.keymap.set("n", "<Leader>a", rt.code_action_group.code_action_group, { buffer = bufnr })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
+11
-6
@@ -6,13 +6,18 @@ end
|
|||||||
configs.setup({
|
configs.setup({
|
||||||
ensure_installed = { "bash", "c", "cpp", "javascript", "json", "lua", "python", "typescript", "tsx", "css", "rust", "java", "yaml", "markdown", "markdown_inline" }, -- one of "all" or a list of languages
|
ensure_installed = { "bash", "c", "cpp", "javascript", "json", "lua", "python", "typescript", "tsx", "css", "rust", "java", "yaml", "markdown", "markdown_inline" }, -- one of "all" or a list of languages
|
||||||
ignore_install = { "phpdoc" }, -- List of parsers to ignore installing
|
ignore_install = { "phpdoc" }, -- List of parsers to ignore installing
|
||||||
highlight = {
|
highlight = {
|
||||||
enable = true, -- false will disable the whole extension
|
enable = true,
|
||||||
disable = { "css" }, -- list of language that will be disabled
|
additional_vim_regex_highlighting=false,
|
||||||
},
|
},
|
||||||
|
ident = { enable = true },
|
||||||
|
rainbow = {
|
||||||
|
enable = true,
|
||||||
|
extended_mode = true,
|
||||||
|
max_file_lines = nil,
|
||||||
|
},
|
||||||
autopairs = {
|
autopairs = {
|
||||||
enable = true,
|
enable = true,
|
||||||
},
|
}
|
||||||
indent = { enable = true, disable = { "python", "css" } },
|
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
[Added Associations]
|
[Added Associations]
|
||||||
application/pdf=org.pwmt.zathura.desktop;
|
application/pdf=userapp-librewolf.desktop;
|
||||||
application/x-extension-htm=userapp-librewolf.desktop;
|
application/x-extension-htm=userapp-librewolf.desktop;
|
||||||
application/x-extension-html=userapp-librewolf.desktop;
|
application/x-extension-html=userapp-librewolf.desktop;
|
||||||
application/x-extension-shtml=userapp-librewolf.desktop;
|
application/x-extension-shtml=userapp-librewolf.desktop;
|
||||||
@@ -12,34 +12,62 @@ x-scheme-handler/chrome=userapp-librewolf.desktop;
|
|||||||
x-scheme-handler/ftp=userapp-librewolf.desktop;
|
x-scheme-handler/ftp=userapp-librewolf.desktop;
|
||||||
x-scheme-handler/http=userapp-librewolf.desktop;
|
x-scheme-handler/http=userapp-librewolf.desktop;
|
||||||
x-scheme-handler/https=userapp-librewolf.desktop;
|
x-scheme-handler/https=userapp-librewolf.desktop;
|
||||||
x-scheme-handler/mailto=userapp-Thunderbird-OZQMR0.desktop;userapp-Thunderbird-86ACV1.desktop;
|
x-scheme-handler/mailto=userapp-Thunderbird-OZQMR0.desktop;userapp-Thunderbird-86ACV1.desktop;userapp-Thunderbird-WB8BX2.desktop;userapp-Thunderbird-P5H422.desktop;
|
||||||
x-scheme-handler/tg=userapp-Telegram Desktop-4ZQQX0.desktop;org.telegram.desktop.desktop;
|
x-scheme-handler/tg=userapp-Telegram Desktop-4ZQQX0.desktop;org.telegram.desktop.desktop;
|
||||||
x-scheme-handler/mid=userapp-Thunderbird-86ACV1.desktop;
|
x-scheme-handler/mid=userapp-Thunderbird-86ACV1.desktop;userapp-Thunderbird-WB8BX2.desktop;userapp-Thunderbird-P5H422.desktop;
|
||||||
text/plain=codium.desktop;
|
text/plain=codium.desktop;
|
||||||
|
application/zip=xarchiver.desktop;teamspeak3.desktop;
|
||||||
|
x-scheme-handler/webcal=userapp-Thunderbird-ID7522.desktop;
|
||||||
|
x-scheme-handler/webcals=userapp-Thunderbird-ID7522.desktop;
|
||||||
|
|
||||||
[Default Applications]
|
[Default Applications]
|
||||||
application/pdf=org.pwmt.zathura.desktop
|
application/pdf=librewolf.desktop
|
||||||
application/x-extension-htm=librewolf.desktop
|
application/x-extension-htm=librewolf.desktop
|
||||||
application/x-extension-html=librewolf.desktop
|
application/x-extension-html=librewolf.desktop
|
||||||
application/x-extension-shtml=librewolf.desktop
|
application/x-extension-shtml=librewolf.desktop
|
||||||
application/x-extension-xht=librewolf.desktop
|
application/x-extension-xht=librewolf.desktop
|
||||||
application/x-extension-xhtml=librewolf.desktop
|
application/x-extension-xhtml=librewolf.desktop
|
||||||
application/xhtml+xml=librewolf.desktop
|
application/xhtml+xml=librewolf.desktop
|
||||||
message/rfc822=userapp-Thunderbird-86ACV1.desktop
|
message/rfc822=userapp-Thunderbird-P5H422.desktop
|
||||||
text/html=librewolf.desktop
|
text/html=librewolf.desktop
|
||||||
x-scheme-handler/bitwarden=bitwarden.desktop
|
x-scheme-handler/bitwarden=bitwarden.desktop
|
||||||
x-scheme-handler/chrome=librewolf.desktop
|
x-scheme-handler/chrome=librewolf.desktop
|
||||||
x-scheme-handler/ftp=librewolf.desktop
|
x-scheme-handler/ftp=librewolf.desktop
|
||||||
x-scheme-handler/http=librewolf.desktop
|
x-scheme-handler/http=librewolf.desktop
|
||||||
x-scheme-handler/https=librewolf.desktop
|
x-scheme-handler/https=librewolf.desktop
|
||||||
x-scheme-handler/mailto=userapp-Thunderbird-86ACV1.desktop
|
x-scheme-handler/mailto=userapp-Thunderbird-P5H422.desktop
|
||||||
x-scheme-handler/tg=org.telegram.desktop.desktop
|
x-scheme-handler/tg=org.telegram.desktop.desktop
|
||||||
x-scheme-handler/msteams=teams.desktop
|
x-scheme-handler/mid=userapp-Thunderbird-P5H422.desktop
|
||||||
x-scheme-handler/eclipse+command x-scheme-handler/eclipse+mpc=_usr_lib_eclipse-modeling_.desktop
|
image/png=imv-dir.desktop
|
||||||
x-scheme-handler/mid=userapp-Thunderbird-86ACV1.desktop
|
image/jpg=imv-dir.desktop
|
||||||
image/png=nsxiv.desktop
|
|
||||||
image/jpg=nsxiv.desktop
|
|
||||||
application/json=codium.desktop
|
application/json=codium.desktop
|
||||||
application/xml=codium.desktop
|
application/xml=codium.desktop
|
||||||
inode/directory=file.desktop;pcmanfm.desktop
|
inode/directory=pcmanfm.desktop
|
||||||
text/plain=codium.desktop
|
text/plain=codium.desktop
|
||||||
|
image/jpeg=imv-dir.desktop
|
||||||
|
x-scheme-handler/about=librewolf.desktop
|
||||||
|
x-scheme-handler/unknown=librewolf.desktop
|
||||||
|
x-scheme-handler/discord=vesktop.desktop
|
||||||
|
application/zip=xarchiver.desktop
|
||||||
|
image/gif=imv-dir.desktop
|
||||||
|
image/webp=imv-dir.desktop
|
||||||
|
image/bmp=imv-dir.desktop
|
||||||
|
image/tiff=imv-dir.desktop
|
||||||
|
image/x-icon=imv-dir.desktop
|
||||||
|
image/svg+xml=imv-dir.desktop
|
||||||
|
x-scheme-handler/webcal=userapp-Thunderbird-ID7522.desktop
|
||||||
|
text/calendar=userapp-Thunderbird-ID7522.desktop
|
||||||
|
application/x-extension-ics=userapp-Thunderbird-ID7522.desktop
|
||||||
|
x-scheme-handler/webcals=userapp-Thunderbird-ID7522.desktop
|
||||||
|
application/x-tar=xarchiver.desktop
|
||||||
|
application/x-7z-compressed=xarchiver.desktop
|
||||||
|
application/x-rar=xarchiver.desktop
|
||||||
|
application/x-bzip=xarchiver.desktop
|
||||||
|
application/x-bzip2=xarchiver.desktop
|
||||||
|
application/gzip=xarchiver.desktop
|
||||||
|
application/x-xz=xarchiver.desktop
|
||||||
|
application/x-lzma=xarchiver.desktop
|
||||||
|
application/x-iso9660-image=xarchiver.desktop
|
||||||
|
application/vnd.rar=xarchiver.desktop
|
||||||
|
x-scheme-handler/wootwoot=wootility.desktop
|
||||||
|
x-scheme-handler/web+wootwoot=wootility.desktop
|
||||||
|
|||||||
+16
-11
@@ -33,7 +33,7 @@
|
|||||||
origin = top-right
|
origin = top-right
|
||||||
|
|
||||||
# Offset from the origin
|
# Offset from the origin
|
||||||
offset = 15x48
|
offset = 15x15
|
||||||
|
|
||||||
# Scale factor. It is auto-detected if value is 0.
|
# Scale factor. It is auto-detected if value is 0.
|
||||||
scale = 0
|
scale = 0
|
||||||
@@ -92,10 +92,11 @@
|
|||||||
|
|
||||||
# Defines width in pixels of frame around the notification window.
|
# Defines width in pixels of frame around the notification window.
|
||||||
# Set to 0 to disable.
|
# Set to 0 to disable.
|
||||||
frame_width = 5
|
frame_width = 2
|
||||||
|
|
||||||
# Defines color of the frame around the notification window.
|
# Defines color of the frame around the notification window.
|
||||||
frame_color = "#8FBCBB"
|
# Cursor Dark: neutral by default, overridden per urgency below.
|
||||||
|
frame_color = "#2b2b2b"
|
||||||
|
|
||||||
# Size of gap to display between notifications - requires a compositor.
|
# Size of gap to display between notifications - requires a compositor.
|
||||||
# If value is greater than 0, separator_height will be ignored and a border
|
# If value is greater than 0, separator_height will be ignored and a border
|
||||||
@@ -201,7 +202,7 @@
|
|||||||
enable_recursive_icon_lookup = true
|
enable_recursive_icon_lookup = true
|
||||||
|
|
||||||
# Set icon theme (only used for recursive icon lookup)
|
# Set icon theme (only used for recursive icon lookup)
|
||||||
icon_theme = Nordzy-green-dark
|
icon_theme = Papirus-Dark
|
||||||
# You can also set multiple icon themes, with the leftmost one being used first.
|
# You can also set multiple icon themes, with the leftmost one being used first.
|
||||||
# icon_theme = "Adwaita, breeze"
|
# icon_theme = "Adwaita, breeze"
|
||||||
|
|
||||||
@@ -250,7 +251,7 @@
|
|||||||
# corners.
|
# corners.
|
||||||
# The radius will be automatically lowered if it exceeds half of the
|
# The radius will be automatically lowered if it exceeds half of the
|
||||||
# notification height to avoid clipping text and/or icons.
|
# notification height to avoid clipping text and/or icons.
|
||||||
corner_radius = 0
|
corner_radius = 10
|
||||||
|
|
||||||
# Ignore the dbus closeNotification message.
|
# Ignore the dbus closeNotification message.
|
||||||
# Useful to enforce the timeout set by dunst configuration. Without this
|
# Useful to enforce the timeout set by dunst configuration. Without this
|
||||||
@@ -313,23 +314,27 @@
|
|||||||
[urgency_low]
|
[urgency_low]
|
||||||
# IMPORTANT: colors have to be defined in quotation marks.
|
# IMPORTANT: colors have to be defined in quotation marks.
|
||||||
# Otherwise the "#" and following would be interpreted as a comment.
|
# Otherwise the "#" and following would be interpreted as a comment.
|
||||||
background = "#2E3440"
|
background = "#181818"
|
||||||
foreground = "#888888"
|
foreground = "#9d9d9d"
|
||||||
|
frame_color = "#2b2b2b"
|
||||||
timeout = 10
|
timeout = 10
|
||||||
# Icon for notifications with low urgency, uncomment to enable
|
# Icon for notifications with low urgency, uncomment to enable
|
||||||
#icon = /path/to/icon
|
#icon = /path/to/icon
|
||||||
|
|
||||||
[urgency_normal]
|
[urgency_normal]
|
||||||
background = "#3b4252"
|
background = "#181818"
|
||||||
foreground = "#ffffff"
|
foreground = "#cccccc"
|
||||||
|
frame_color = "#2472c8"
|
||||||
timeout = 10
|
timeout = 10
|
||||||
# Icon for notifications with normal urgency, uncomment to enable
|
# Icon for notifications with normal urgency, uncomment to enable
|
||||||
#icon = /path/to/icon
|
#icon = /path/to/icon
|
||||||
|
|
||||||
[urgency_critical]
|
[urgency_critical]
|
||||||
background = "#900000"
|
# #5a1d1d is VS Code's error-validation background, so it stays in-family
|
||||||
|
# while still reading as alarming.
|
||||||
|
background = "#5a1d1d"
|
||||||
foreground = "#ffffff"
|
foreground = "#ffffff"
|
||||||
frame_color = "#ff0000"
|
frame_color = "#f14c4c"
|
||||||
timeout = 0
|
timeout = 0
|
||||||
# Icon for notifications with critical urgency, uncomment to enable
|
# Icon for notifications with critical urgency, uncomment to enable
|
||||||
#icon = /path/to/icon
|
#icon = /path/to/icon
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
# Cursor Dark colour theme.
|
||||||
|
#
|
||||||
|
# Kept here as globals rather than only in fish_variables: fish's first-run
|
||||||
|
# migration (__fish_config_interactive, __fish_initialized < 3400) runs
|
||||||
|
# `fish_config theme save "fish default"`, which blanks every universal
|
||||||
|
# fish_color_*/fish_pager_color_* variable. Globals are re-applied on every
|
||||||
|
# start, so the theme survives that and travels with the repo.
|
||||||
|
|
||||||
|
set -g fish_color_normal normal
|
||||||
|
set -g fish_color_command 569CD6
|
||||||
|
set -g fish_color_keyword C586C0
|
||||||
|
set -g fish_color_quote CE9178
|
||||||
|
set -g fish_color_redirection 9CDCFE
|
||||||
|
set -g fish_color_end C586C0
|
||||||
|
set -g fish_color_error F14C4C
|
||||||
|
set -g fish_color_param normal
|
||||||
|
set -g fish_color_option 9CDCFE
|
||||||
|
set -g fish_color_comment 6A9955
|
||||||
|
set -g fish_color_selection E5E5E5 --bold --background=264F78
|
||||||
|
set -g fish_color_operator D4D4D4
|
||||||
|
set -g fish_color_escape D7BA7D
|
||||||
|
set -g fish_color_autosuggestion 666666
|
||||||
|
set -g fish_color_cwd 4EC9B0
|
||||||
|
set -g fish_color_cwd_root F14C4C
|
||||||
|
set -g fish_color_user 9CDCFE
|
||||||
|
set -g fish_color_host 569CD6
|
||||||
|
set -g fish_color_host_remote DCDCAA
|
||||||
|
set -g fish_color_cancel -r
|
||||||
|
set -g fish_color_search_match --background=264F78
|
||||||
|
set -g fish_color_match --background=264F78
|
||||||
|
set -g fish_color_history_current --bold
|
||||||
|
set -g fish_color_status F14C4C
|
||||||
|
set -g fish_color_valid_path --underline
|
||||||
|
|
||||||
|
set -g fish_pager_color_progress E5E5E5 --background=264F78
|
||||||
|
set -g fish_pager_color_background
|
||||||
|
set -g fish_pager_color_prefix 569CD6 --bold --underline
|
||||||
|
set -g fish_pager_color_completion normal
|
||||||
|
set -g fish_pager_color_description 9D9D9D
|
||||||
|
set -g fish_pager_color_selected_background --background=264F78
|
||||||
|
set -g fish_pager_color_selected_prefix 569CD6 --bold
|
||||||
|
set -g fish_pager_color_selected_completion E5E5E5
|
||||||
|
set -g fish_pager_color_selected_description 9D9D9D
|
||||||
|
set -g fish_pager_color_secondary_background
|
||||||
|
set -g fish_pager_color_secondary_prefix 569CD6
|
||||||
|
set -g fish_pager_color_secondary_completion normal
|
||||||
|
set -g fish_pager_color_secondary_description 9D9D9D
|
||||||
@@ -1,221 +0,0 @@
|
|||||||
set -Ux LF_ICONS "\
|
|
||||||
*.7z=:\
|
|
||||||
*.aac=:\
|
|
||||||
*.ace=:\
|
|
||||||
*.alz=:\
|
|
||||||
*.arc=:\
|
|
||||||
*.arj=:\
|
|
||||||
*.asf=:\
|
|
||||||
*.atom=:\
|
|
||||||
*.au=:\
|
|
||||||
*.avi=:\
|
|
||||||
*.bash=:\
|
|
||||||
*.bash_history=:\
|
|
||||||
*.bashprofile=:\
|
|
||||||
*.bashrc=:\
|
|
||||||
*.bmp=:\
|
|
||||||
*.bz2=:\
|
|
||||||
*.bz=:\
|
|
||||||
*.c=:\
|
|
||||||
*.cab=:\
|
|
||||||
*.cc=:\
|
|
||||||
*.cfg=:\
|
|
||||||
*.cgm=:\
|
|
||||||
*.clang-format=:\
|
|
||||||
*.clj=:\
|
|
||||||
*.cmd=:\
|
|
||||||
*.coffee=:\
|
|
||||||
*.cpio=:\
|
|
||||||
*.cpp=:\
|
|
||||||
*.css=:\
|
|
||||||
*.d=:\
|
|
||||||
*.dart=:\
|
|
||||||
*.deb=:\
|
|
||||||
*.dl=:\
|
|
||||||
*.DS_Store=:\
|
|
||||||
*.dwm=:\
|
|
||||||
*.dz=:\
|
|
||||||
*.ear=:\
|
|
||||||
*.emf=:\
|
|
||||||
*.env=:\
|
|
||||||
*.erl=:\
|
|
||||||
*.esd=:\
|
|
||||||
*.exs=:\
|
|
||||||
*.fish=:\
|
|
||||||
*.flac=:\
|
|
||||||
*.flc=:\
|
|
||||||
*.fli=:\
|
|
||||||
*.flv=:\
|
|
||||||
*.fs=:\
|
|
||||||
*.gif=:\
|
|
||||||
*.git=:\
|
|
||||||
*.gitattributes=:\
|
|
||||||
*.gitconfig=:\
|
|
||||||
*.github=:\
|
|
||||||
*.gitignore=:\
|
|
||||||
*.gitignore_global=:\
|
|
||||||
*.gitkeep=:\
|
|
||||||
*.gitmodules=:\
|
|
||||||
*.gl=:\
|
|
||||||
*.go=:\
|
|
||||||
*.gz=:\
|
|
||||||
*.h=:\
|
|
||||||
*.hh=:\
|
|
||||||
*.hidden=:\
|
|
||||||
*.hpp=:\
|
|
||||||
*.hs=:\
|
|
||||||
*.html=:\
|
|
||||||
*.hyper.js=:\
|
|
||||||
*.jar=:\
|
|
||||||
*.java=:\
|
|
||||||
*.jl=:\
|
|
||||||
*.jpeg=:\
|
|
||||||
*.jpg=:\
|
|
||||||
*.js=:\
|
|
||||||
*.json=:\
|
|
||||||
*.jsx=:\
|
|
||||||
*.lha=:\
|
|
||||||
*.lrz=:\
|
|
||||||
*.lua=:\
|
|
||||||
*.lz4=:\
|
|
||||||
*.lz=:\
|
|
||||||
*.lzh=:\
|
|
||||||
*.lzma=:\
|
|
||||||
*.lzo=:\
|
|
||||||
*.m2v=:\
|
|
||||||
*.m4a=:\
|
|
||||||
*.m4v=:\
|
|
||||||
*.map=:\
|
|
||||||
*.md=:\
|
|
||||||
*.mdx=:\
|
|
||||||
*.mid=:\
|
|
||||||
*.midi=:\
|
|
||||||
*.mjpeg=:\
|
|
||||||
*.mjpg=:\
|
|
||||||
*.mka=:\
|
|
||||||
*.mkv=:\
|
|
||||||
*.mng=:\
|
|
||||||
*.mov=:\
|
|
||||||
*.mp3=:\
|
|
||||||
*.mp4=:\
|
|
||||||
*.mp4v=:\
|
|
||||||
*.mpc=:\
|
|
||||||
*.mpeg=:\
|
|
||||||
*.mpg=:\
|
|
||||||
*.nix=:\
|
|
||||||
*.npmignore=:\
|
|
||||||
*.npmrc=:\
|
|
||||||
*.nuv=:\
|
|
||||||
*.nvmrc=:\
|
|
||||||
*.oga=:\
|
|
||||||
*.ogg=:\
|
|
||||||
*.ogm=:\
|
|
||||||
*.ogv=:\
|
|
||||||
*.ogx=:\
|
|
||||||
*.opus=:\
|
|
||||||
*.pbm=:\
|
|
||||||
*.pcx=:\
|
|
||||||
*.pdf=:\
|
|
||||||
*.pgm=:\
|
|
||||||
*.php=:\
|
|
||||||
*.pl=:\
|
|
||||||
*.png=:\
|
|
||||||
*.ppm=:\
|
|
||||||
*.pro=:\
|
|
||||||
*.ps1=:\
|
|
||||||
*.py=:\
|
|
||||||
*.qt=:\
|
|
||||||
*.ra=:\
|
|
||||||
*.rar=:\
|
|
||||||
*.rb=:\
|
|
||||||
*.rm=:\
|
|
||||||
*.rmvb=:\
|
|
||||||
*.rpm=:\
|
|
||||||
*.rs=:\
|
|
||||||
*.rvm=:\
|
|
||||||
*.rz=:\
|
|
||||||
*.sar=:\
|
|
||||||
*.scala=:\
|
|
||||||
*.sh=:\
|
|
||||||
*.skhdrc=:\
|
|
||||||
*.sol=ﲹ:\
|
|
||||||
*.spx=:\
|
|
||||||
*.svg=:\
|
|
||||||
*.svgz=:\
|
|
||||||
*.swm=:\
|
|
||||||
*.t7z=:\
|
|
||||||
*.tar=:\
|
|
||||||
*.taz=:\
|
|
||||||
*.tbz2=:\
|
|
||||||
*.tbz=:\
|
|
||||||
*.tga=:\
|
|
||||||
*.tgz=:\
|
|
||||||
*.tif=:\
|
|
||||||
*.tiff=:\
|
|
||||||
*.tlz=:\
|
|
||||||
*.tmux.conf=:\
|
|
||||||
*.trash=:\
|
|
||||||
*.ts=:\
|
|
||||||
*.tsx=:\
|
|
||||||
*.txz=:\
|
|
||||||
*.tz=:\
|
|
||||||
*.tzo=:\
|
|
||||||
*.tzst=:\
|
|
||||||
*.vim=:\
|
|
||||||
*.vimrc=:\
|
|
||||||
*.vob=:\
|
|
||||||
*.vscode=:\
|
|
||||||
*.war=:\
|
|
||||||
*.wav=:\
|
|
||||||
*.webm=:\
|
|
||||||
*.wim=:\
|
|
||||||
*.xbm=:\
|
|
||||||
*.xcf=:\
|
|
||||||
*.xpm=:\
|
|
||||||
*.xspf=:\
|
|
||||||
*.xwd=:\
|
|
||||||
*.xz=:\
|
|
||||||
*.yabairc=:\
|
|
||||||
*.yaml=פּ:\
|
|
||||||
*.yarn-integrity=:\
|
|
||||||
*.yarnrc=:\
|
|
||||||
*.yml=פּ:\
|
|
||||||
*.yuv=:\
|
|
||||||
*.z=:\
|
|
||||||
*.zip=:\
|
|
||||||
*.zoo=:\
|
|
||||||
*.zprofile=:\
|
|
||||||
*.zprofile=:\
|
|
||||||
*.zsh=:\
|
|
||||||
*.zsh_history=:\
|
|
||||||
*.zshrc=:\
|
|
||||||
*.zst=:\
|
|
||||||
*bin=:\
|
|
||||||
*config=:\
|
|
||||||
*docker-compose.yml=:\
|
|
||||||
*dockerfile=:\
|
|
||||||
*gradle=:\
|
|
||||||
*gruntfile.coffee=:\
|
|
||||||
*gruntfile.js=:\
|
|
||||||
*gruntfile.ls=:\
|
|
||||||
*gulpfile.coffee=:\
|
|
||||||
*gulpfile.js=:\
|
|
||||||
*gulpfile.ls=:\
|
|
||||||
*include=:\
|
|
||||||
*lib=:\
|
|
||||||
*localized=:\
|
|
||||||
*node_modules=:\
|
|
||||||
*package.json=:\
|
|
||||||
*rubydoc=:\
|
|
||||||
*tsconfig.json=:\
|
|
||||||
*yarn.lock=:\
|
|
||||||
di=:\
|
|
||||||
dt=:\
|
|
||||||
ex=:\
|
|
||||||
fi=:\
|
|
||||||
ln=:\
|
|
||||||
or=:\
|
|
||||||
ow=:\
|
|
||||||
st=:\
|
|
||||||
tw=:\
|
|
||||||
"
|
|
||||||
@@ -1,25 +1,18 @@
|
|||||||
if [ -z "$DISPLAY" ] && [ (fgconsole) -eq 1 ];
|
if [ -z "$DISPLAY" ] && [ (fgconsole) -eq 1 ];
|
||||||
# startx
|
start-hyprland
|
||||||
end
|
|
||||||
|
|
||||||
# uncomment to automatically start tmux
|
|
||||||
if status is-interactive
|
|
||||||
and not set -q TMUX
|
|
||||||
# exec tmux
|
|
||||||
end
|
end
|
||||||
|
|
||||||
fish_ssh_agent
|
fish_ssh_agent
|
||||||
|
|
||||||
|
umask 0077
|
||||||
|
|
||||||
function q
|
function q
|
||||||
exit
|
exit
|
||||||
end
|
end
|
||||||
|
|
||||||
function ff
|
function ff
|
||||||
fastfetch -l ~/.config/fish/img/ff.png -c neofetch.jsonc
|
#fastfetch -l ~/.config/fish/img/ff.png -c neofetch.jsonc
|
||||||
end
|
fastfetch --logo-type kitty-direct --logo ~/.config/fish/img/ff.png -c neofetch.jsonc
|
||||||
|
|
||||||
function lf
|
|
||||||
command lfub
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function cls
|
function cls
|
||||||
@@ -51,15 +44,7 @@ function tree
|
|||||||
end
|
end
|
||||||
|
|
||||||
function ds
|
function ds
|
||||||
command du -sch * | sort -rh
|
command du -sch (ls -A) | sort -rh
|
||||||
end
|
|
||||||
|
|
||||||
function hv
|
|
||||||
command nmcli --ask connection up "HP VPN"
|
|
||||||
end
|
|
||||||
|
|
||||||
function hvd
|
|
||||||
command nmcli connection down "HP VPN"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function nv
|
function nv
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,20 +1,19 @@
|
|||||||
set fish_prompt_pwd_dir_length 0
|
set fish_prompt_pwd_dir_length 0
|
||||||
set __fish_git_prompt_show_informative_status 1
|
set __fish_git_prompt_show_informative_status 1
|
||||||
|
|
||||||
# Fish command and parameter colors
|
# Command and parameter colors come from fish_variables (Cursor Dark)
|
||||||
set fish_color_command green
|
|
||||||
set fish_color_param $fish_color_normal
|
|
||||||
|
|
||||||
# Git prompt
|
# Git prompt
|
||||||
set __fish_git_prompt_showdirtystate 'yes'
|
set __fish_git_prompt_showdirtystate 'yes'
|
||||||
set __fish_git_prompt_showupstream 'yes'
|
set __fish_git_prompt_showupstream 'yes'
|
||||||
|
|
||||||
set __fish_git_prompt_color_branch brown
|
# Colors mirror Cursor's git decorations
|
||||||
set __fish_git_prompt_color_dirtystate FCBC47
|
set __fish_git_prompt_color_branch 569CD6
|
||||||
set __fish_git_prompt_color_stagedstate yellow
|
set __fish_git_prompt_color_dirtystate E2C08D
|
||||||
set __fish_git_prompt_color_upstream cyan
|
set __fish_git_prompt_color_stagedstate 73C991
|
||||||
set __fish_git_prompt_color_cleanstate green
|
set __fish_git_prompt_color_upstream 4EC9B0
|
||||||
set __fish_git_prompt_color_invalidstate red
|
set __fish_git_prompt_color_cleanstate 73C991
|
||||||
|
set __fish_git_prompt_color_invalidstate E4676B
|
||||||
|
|
||||||
# Git Characters
|
# Git Characters
|
||||||
set __fish_git_prompt_char_dirtystate '*'
|
set __fish_git_prompt_char_dirtystate '*'
|
||||||
@@ -41,9 +40,9 @@ end
|
|||||||
|
|
||||||
function _prompt_color_for_status
|
function _prompt_color_for_status
|
||||||
if test $argv[1] -eq 0
|
if test $argv[1] -eq 0
|
||||||
echo magenta
|
echo C586C0
|
||||||
else
|
else
|
||||||
echo red
|
echo F14C4C
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -51,7 +50,7 @@ function fish_prompt
|
|||||||
set -l last_status $status
|
set -l last_status $status
|
||||||
|
|
||||||
# username and hostname
|
# username and hostname
|
||||||
_print_in_color "┏["$USER"@"(prompt_hostname)"]" blue
|
_print_in_color "┏["$USER"@"(prompt_hostname)"]" 569CD6
|
||||||
|
|
||||||
# current working dir
|
# current working dir
|
||||||
_print_in_color " "(prompt_pwd) $fish_color_cwd
|
_print_in_color " "(prompt_pwd) $fish_color_cwd
|
||||||
@@ -59,10 +58,10 @@ function fish_prompt
|
|||||||
__fish_git_prompt " (%s)"
|
__fish_git_prompt " (%s)"
|
||||||
|
|
||||||
# beginning of new line
|
# beginning of new line
|
||||||
_print_in_color "\n┗" blue
|
_print_in_color "\n┗" 569CD6
|
||||||
|
|
||||||
# time information
|
# time information
|
||||||
_print_in_color " "(date "+%H:%M:%S") green
|
_print_in_color " "(date "+%H:%M:%S") 73C991
|
||||||
|
|
||||||
# little error that indicates the status of the previous command
|
# little error that indicates the status of the previous command
|
||||||
_print_in_color " ❯ " (_prompt_color_for_status $last_status)
|
_print_in_color " ❯ " (_prompt_color_for_status $last_status)
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
857d7eaa-7f62-4984-85b0-3d498590c26c
|
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
# Specify the git user in the .gituser files to keep config the same across work and priv systems
|
||||||
|
[include]
|
||||||
|
path = .gituser
|
||||||
|
|
||||||
|
# global settings to improve git and its behavior
|
||||||
|
# See https://blog.gitbutler.com/how-git-core-devs-configure-git/
|
||||||
|
[column]
|
||||||
|
ui = auto
|
||||||
|
[branch]
|
||||||
|
sort = -committerdate
|
||||||
|
[tag]
|
||||||
|
sort = version:refname
|
||||||
|
[init]
|
||||||
|
defaultBranch = master
|
||||||
|
[diff]
|
||||||
|
algorithm = histogram
|
||||||
|
[push]
|
||||||
|
default = simple
|
||||||
|
autoSetupRemote = true
|
||||||
|
followTags = true
|
||||||
|
[fetch]
|
||||||
|
prune = true
|
||||||
|
pruneTags = true
|
||||||
|
all = true
|
||||||
|
[help]
|
||||||
|
autocorrect = prompt
|
||||||
|
[commit]
|
||||||
|
verbose = true
|
||||||
|
[rebase]
|
||||||
|
autoSquash = true
|
||||||
|
autoStash = true
|
||||||
|
updateRefs = true
|
||||||
|
[pull]
|
||||||
|
rebase = true
|
||||||
|
[merge]
|
||||||
|
conflictstyle = zdiff3
|
||||||
|
[core]
|
||||||
|
fsmonitor = true
|
||||||
|
untrackedCache = true
|
||||||
|
[log]
|
||||||
|
date = iso
|
||||||
|
[apply]
|
||||||
|
# Remove trailing whitespaces
|
||||||
|
whitespace = fix
|
||||||
|
[color "diff"]
|
||||||
|
whitespace = red reverse
|
||||||
|
[alias]
|
||||||
|
ll = !git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(auto)%d%C(reset)' --all
|
||||||
|
s = status
|
||||||
|
unstage = reset HEAD --
|
||||||
|
[advice]
|
||||||
|
addIgnoredFile = false
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
file:///home/n0x/Downloads Downloads
|
||||||
|
file:///home/n0x/Nextcloud Nextcloud
|
||||||
|
file:///home/n0x/Pictures Pictures
|
||||||
|
file:///home/n0x/Workspace Workspace
|
||||||
@@ -1,14 +1,21 @@
|
|||||||
[Settings]
|
[Settings]
|
||||||
gtk-application-prefer-dark-theme=true
|
gtk-theme-name=Orchis-Dark-Compact
|
||||||
gtk-button-images=true
|
gtk-icon-theme-name=Papirus-Dark
|
||||||
gtk-cursor-theme-name=Adwaita
|
gtk-font-name=Noto Sans 11
|
||||||
|
gtk-cursor-theme-name=default
|
||||||
gtk-cursor-theme-size=24
|
gtk-cursor-theme-size=24
|
||||||
gtk-decoration-layout=close,minimize,maximize:
|
|
||||||
gtk-enable-animations=true
|
|
||||||
gtk-font-name=Noto Sans, 10
|
|
||||||
gtk-icon-theme-name=Nordzy-green-dark
|
|
||||||
gtk-menu-images=true
|
|
||||||
gtk-primary-button-warps-slider=false
|
|
||||||
gtk-shell-shows-menubar=1
|
|
||||||
gtk-theme-name=Nordic-darker
|
|
||||||
gtk-toolbar-style=3
|
gtk-toolbar-style=3
|
||||||
|
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||||
|
gtk-button-images=1
|
||||||
|
gtk-menu-images=1
|
||||||
|
gtk-enable-event-sounds=1
|
||||||
|
gtk-enable-input-feedback-sounds=0
|
||||||
|
gtk-xft-antialias=1
|
||||||
|
gtk-xft-hinting=1
|
||||||
|
gtk-xft-hintstyle=hintmedium
|
||||||
|
gtk-xft-rgba=rgb
|
||||||
|
gtk-application-prefer-dark-theme=1
|
||||||
|
gtk-decoration-layout=close,minimize,maximize:
|
||||||
|
gtk-enable-animations=1
|
||||||
|
gtk-primary-button-warps-slider=0
|
||||||
|
gtk-shell-shows-menubar=1
|
||||||
|
|||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
/usr/share/themes/Everforest-Teal-Dark/gtk-4.0/assets
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
@define-color borders_breeze #3b4047;
|
||||||
|
@define-color content_view_bg_breeze #0f1019;
|
||||||
|
@define-color error_color_backdrop_breeze #fd547e;
|
||||||
|
@define-color error_color_breeze #fd547e;
|
||||||
|
@define-color error_color_insensitive_backdrop_breeze #5e263a;
|
||||||
|
@define-color error_color_insensitive_breeze #5e263a;
|
||||||
|
@define-color insensitive_base_color_breeze #0e0f18;
|
||||||
|
@define-color insensitive_base_fg_color_breeze #50575e;
|
||||||
|
@define-color insensitive_bg_color_breeze #0e0f18;
|
||||||
|
@define-color insensitive_borders_breeze #1d1f27;
|
||||||
|
@define-color insensitive_fg_color_breeze #494f56;
|
||||||
|
@define-color insensitive_selected_bg_color_breeze #0e0f18;
|
||||||
|
@define-color insensitive_selected_fg_color_breeze #494f56;
|
||||||
|
@define-color insensitive_unfocused_bg_color_breeze #0e0f18;
|
||||||
|
@define-color insensitive_unfocused_fg_color_breeze #494f56;
|
||||||
|
@define-color insensitive_unfocused_selected_bg_color_breeze #0e0f18;
|
||||||
|
@define-color insensitive_unfocused_selected_fg_color_breeze #494f56;
|
||||||
|
@define-color link_color_breeze #00b8b8;
|
||||||
|
@define-color link_visited_color_breeze #b2c1c3;
|
||||||
|
@define-color success_color_backdrop_breeze #006e28;
|
||||||
|
@define-color success_color_breeze #006e28;
|
||||||
|
@define-color success_color_insensitive_backdrop_breeze #092f1d;
|
||||||
|
@define-color success_color_insensitive_breeze #092f1d;
|
||||||
|
@define-color theme_base_color_breeze #0f1019;
|
||||||
|
@define-color theme_bg_color_breeze #0f1019;
|
||||||
|
@define-color theme_button_background_backdrop_breeze #0f1019;
|
||||||
|
@define-color theme_button_background_backdrop_insensitive_breeze #0e0f18;
|
||||||
|
@define-color theme_button_background_insensitive_breeze #0e0f18;
|
||||||
|
@define-color theme_button_background_normal_breeze #0f1019;
|
||||||
|
@define-color theme_button_decoration_focus_backdrop_breeze #2e8b8b;
|
||||||
|
@define-color theme_button_decoration_focus_backdrop_insensitive_breeze #19383e;
|
||||||
|
@define-color theme_button_decoration_focus_breeze #2e8b8b;
|
||||||
|
@define-color theme_button_decoration_focus_insensitive_breeze #19383e;
|
||||||
|
@define-color theme_button_decoration_hover_backdrop_breeze #009696;
|
||||||
|
@define-color theme_button_decoration_hover_backdrop_insensitive_breeze #093c42;
|
||||||
|
@define-color theme_button_decoration_hover_breeze #009696;
|
||||||
|
@define-color theme_button_decoration_hover_insensitive_breeze #093c42;
|
||||||
|
@define-color theme_button_foreground_active_backdrop_breeze #becfd2;
|
||||||
|
@define-color theme_button_foreground_active_backdrop_insensitive_breeze #494f56;
|
||||||
|
@define-color theme_button_foreground_active_breeze #0f1019;
|
||||||
|
@define-color theme_button_foreground_active_insensitive_breeze #494f56;
|
||||||
|
@define-color theme_button_foreground_backdrop_breeze #becfd2;
|
||||||
|
@define-color theme_button_foreground_backdrop_insensitive_breeze #494f56;
|
||||||
|
@define-color theme_button_foreground_insensitive_breeze #494f56;
|
||||||
|
@define-color theme_button_foreground_normal_breeze #becfd2;
|
||||||
|
@define-color theme_fg_color_breeze #becfd2;
|
||||||
|
@define-color theme_hovering_selected_bg_color_breeze #009696;
|
||||||
|
@define-color theme_selected_bg_color_breeze #009696;
|
||||||
|
@define-color theme_selected_fg_color_breeze #0f1019;
|
||||||
|
@define-color theme_text_color_breeze #d4e7ea;
|
||||||
|
@define-color theme_titlebar_background_backdrop_breeze #0f1019;
|
||||||
|
@define-color theme_titlebar_background_breeze #0f1019;
|
||||||
|
@define-color theme_titlebar_background_light_breeze #0f1019;
|
||||||
|
@define-color theme_titlebar_foreground_backdrop_breeze #a5c8cf;
|
||||||
|
@define-color theme_titlebar_foreground_breeze #a5c8cf;
|
||||||
|
@define-color theme_titlebar_foreground_insensitive_backdrop_breeze #a5c8cf;
|
||||||
|
@define-color theme_titlebar_foreground_insensitive_breeze #a5c8cf;
|
||||||
|
@define-color theme_unfocused_base_color_breeze #0f1019;
|
||||||
|
@define-color theme_unfocused_bg_color_breeze #0f1019;
|
||||||
|
@define-color theme_unfocused_fg_color_breeze #becfd2;
|
||||||
|
@define-color theme_unfocused_selected_bg_color_alt_breeze #033536;
|
||||||
|
@define-color theme_unfocused_selected_bg_color_breeze #033536;
|
||||||
|
@define-color theme_unfocused_selected_fg_color_breeze #becfd2;
|
||||||
|
@define-color theme_unfocused_text_color_breeze #d4e7ea;
|
||||||
|
@define-color theme_unfocused_view_bg_color_breeze #0e0f18;
|
||||||
|
@define-color theme_unfocused_view_text_color_breeze #50575e;
|
||||||
|
@define-color theme_view_active_decoration_color_breeze #009696;
|
||||||
|
@define-color theme_view_hover_decoration_color_breeze #009696;
|
||||||
|
@define-color tooltip_background_breeze #0f1019;
|
||||||
|
@define-color tooltip_border_breeze #3b4047;
|
||||||
|
@define-color tooltip_text_breeze #becfd2;
|
||||||
|
@define-color unfocused_borders_breeze #3b4047;
|
||||||
|
@define-color unfocused_insensitive_borders_breeze #1d1f27;
|
||||||
|
@define-color warning_color_backdrop_breeze #ffaa7f;
|
||||||
|
@define-color warning_color_breeze #ffaa7f;
|
||||||
|
@define-color warning_color_insensitive_backdrop_breeze #5e433a;
|
||||||
|
@define-color warning_color_insensitive_breeze #5e433a;
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
/usr/share/themes/Everforest-Teal-Dark/gtk-4.0/gtk-dark.css
|
||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
/usr/share/themes/Everforest-Teal-Dark/gtk-4.0/gtk.css
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
[Settings]
|
||||||
|
gtk-theme-name=Orchis-Dark-Compact
|
||||||
|
gtk-icon-theme-name=Papirus-Dark
|
||||||
|
gtk-font-name=Noto Sans 11
|
||||||
|
gtk-cursor-theme-name=default
|
||||||
|
gtk-cursor-theme-size=24
|
||||||
|
gtk-application-prefer-dark-theme=1
|
||||||
+16
-9
@@ -1,12 +1,19 @@
|
|||||||
|
# DO NOT EDIT! This file will be overwritten by nwg-look.
|
||||||
|
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
|
||||||
|
|
||||||
|
include "/home/n0x/.gtkrc-2.0.mine"
|
||||||
|
gtk-theme-name="Orchis-Dark-Compact"
|
||||||
|
gtk-icon-theme-name="Papirus-Dark"
|
||||||
|
gtk-font-name="Noto Sans 11"
|
||||||
|
gtk-cursor-theme-name="default"
|
||||||
gtk-cursor-theme-size=24
|
gtk-cursor-theme-size=24
|
||||||
gtk-theme-name="Nordic-darker"
|
|
||||||
gtk-enable-animations=1
|
|
||||||
gtk-primary-button-warps-slider=0
|
|
||||||
gtk-toolbar-style=3
|
gtk-toolbar-style=3
|
||||||
gtk-menu-images=1
|
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||||
gtk-button-images=1
|
gtk-button-images=1
|
||||||
gtk-cursor-theme-name="Adwaita"
|
gtk-menu-images=1
|
||||||
gtk-icon-theme-name="Nordzy-green-dark"
|
gtk-enable-event-sounds=1
|
||||||
gtk-font-name="Noto Sans, 10"
|
gtk-enable-input-feedback-sounds=0
|
||||||
gtk-application-prefer-dark-theme = true
|
gtk-xft-antialias=1
|
||||||
gtk-modules=appmenu-gtk-module
|
gtk-xft-hinting=1
|
||||||
|
gtk-xft-hintstyle="hintmedium"
|
||||||
|
gtk-xft-rgba="rgb"
|
||||||
|
|||||||
@@ -0,0 +1,93 @@
|
|||||||
|
-----------------------
|
||||||
|
---- LOOK AND FEEL ----
|
||||||
|
-----------------------
|
||||||
|
hl.config({
|
||||||
|
general = {
|
||||||
|
gaps_in = 5,
|
||||||
|
gaps_out = 10,
|
||||||
|
border_size = 2,
|
||||||
|
col = {
|
||||||
|
-- Cursor Dark: accent blue gradient, neutral dark inactive
|
||||||
|
active_border = { colors = { "rgba(2472c8ee)", "rgba(3b8eeaee)" }, angle = 45 },
|
||||||
|
inactive_border = "rgba(2b2b2baa)",
|
||||||
|
},
|
||||||
|
resize_on_border = false,
|
||||||
|
allow_tearing = false,
|
||||||
|
layout = "dwindle",
|
||||||
|
},
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = 10,
|
||||||
|
active_opacity = 1.0,
|
||||||
|
inactive_opacity = 1.0,
|
||||||
|
|
||||||
|
shadow = {
|
||||||
|
enabled = true,
|
||||||
|
range = 4,
|
||||||
|
render_power = 3,
|
||||||
|
color = "rgba(1a1a1aee)",
|
||||||
|
},
|
||||||
|
|
||||||
|
blur = {
|
||||||
|
enabled = true,
|
||||||
|
size = 3,
|
||||||
|
passes = 1,
|
||||||
|
vibrancy = 0.1696,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
|
|
||||||
|
dwindle = {
|
||||||
|
-- pseudotile = true,
|
||||||
|
preserve_split = true,
|
||||||
|
},
|
||||||
|
|
||||||
|
master = {
|
||||||
|
new_status = "master",
|
||||||
|
},
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
force_default_wallpaper = -1,
|
||||||
|
disable_hyprland_logo = false,
|
||||||
|
},
|
||||||
|
|
||||||
|
cursor = {
|
||||||
|
no_hardware_cursors = true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
---------------------
|
||||||
|
---- ANIMATIONS -----
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
-- Curves and animation leaves are now top-level hl.curve / hl.animation calls.
|
||||||
|
hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
|
||||||
|
|
||||||
|
hl.animation({ leaf = "windows", enabled = true, speed = 7, bezier = "myBezier" })
|
||||||
|
hl.animation({ leaf = "windowsOut", enabled = true, speed = 7, bezier = "default", style = "popin 80%" })
|
||||||
|
hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" })
|
||||||
|
hl.animation({ leaf = "borderangle", enabled = true, speed = 8, bezier = "default" })
|
||||||
|
hl.animation({ leaf = "fade", enabled = true, speed = 7, bezier = "default" })
|
||||||
|
hl.animation({ leaf = "workspaces", enabled = true, speed = 6, bezier = "default" })
|
||||||
|
|
||||||
|
---------------
|
||||||
|
---- INPUT ----
|
||||||
|
---------------
|
||||||
|
hl.config({
|
||||||
|
input = {
|
||||||
|
kb_layout = "de",
|
||||||
|
kb_variant = "",
|
||||||
|
kb_model = "",
|
||||||
|
kb_options = "",
|
||||||
|
kb_rules = "",
|
||||||
|
follow_mouse = 1,
|
||||||
|
sensitivity = 0,
|
||||||
|
numlock_by_default = true,
|
||||||
|
touchpad = {
|
||||||
|
natural_scroll = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
---------------------
|
||||||
|
---- KEYBINDINGS ----
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
-- Core
|
||||||
|
hl.bind(mainMod .. " + SHIFT + return", hl.dsp.exec_cmd(terminal))
|
||||||
|
hl.bind(mainMod .. " + SHIFT + C", hl.dsp.window.close())
|
||||||
|
hl.bind(mainMod .. " + SHIFT + Q", hl.dsp.exit())
|
||||||
|
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
|
||||||
|
hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
|
||||||
|
hl.bind(mainMod .. " + P", hl.dsp.exec_cmd(menu))
|
||||||
|
hl.bind(mainMod .. " + SHIFT + P", hl.dsp.window.pseudo()) -- dwindle
|
||||||
|
hl.bind(mainMod .. " + J", hl.dsp.layout("togglesplit")) -- dwindle
|
||||||
|
hl.bind(mainMod .. " + SHIFT + S", hl.dsp.exec_cmd(screenshot))
|
||||||
|
hl.bind(mainMod .. " + SHIFT + B", hl.dsp.exec_cmd(pwmanager))
|
||||||
|
hl.bind(mainMod .. " + L", hl.dsp.exec_cmd(lockscreen))
|
||||||
|
hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen())
|
||||||
|
hl.bind(mainMod .. " + ESCAPE", hl.dsp.exec_cmd("nwg-bar"))
|
||||||
|
|
||||||
|
-- Move focus
|
||||||
|
hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "l" }))
|
||||||
|
hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "r" }))
|
||||||
|
hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "u" }))
|
||||||
|
hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "d" }))
|
||||||
|
|
||||||
|
-- Special workspace (scratchpad)
|
||||||
|
hl.bind(mainMod .. " + space", hl.dsp.workspace.toggle_special("magic"))
|
||||||
|
hl.bind(mainMod .. " + SHIFT + space", hl.dsp.window.move({ workspace = "special:magic" }))
|
||||||
|
|
||||||
|
-- Scroll through existing workspaces
|
||||||
|
hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
|
||||||
|
hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
|
||||||
|
|
||||||
|
-- Mouse drag/resize (mouse = true replaces the old `bindm`)
|
||||||
|
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
|
||||||
|
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
||||||
|
|
||||||
|
-- Multimedia (locked = true makes them work while session is locked,
|
||||||
|
-- replacing the bindel flags `e` and `l`)
|
||||||
|
hl.bind(
|
||||||
|
"XF86AudioRaiseVolume",
|
||||||
|
hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"),
|
||||||
|
{ locked = true, repeating = true }
|
||||||
|
)
|
||||||
|
hl.bind(
|
||||||
|
"XF86AudioLowerVolume",
|
||||||
|
hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
|
||||||
|
{ locked = true, repeating = true }
|
||||||
|
)
|
||||||
|
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true })
|
||||||
|
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true })
|
||||||
|
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl s 5%+"), { locked = true, repeating = true })
|
||||||
|
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl s 5%-"), { locked = true, repeating = true })
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
------------------
|
||||||
|
---- MONITORS ----
|
||||||
|
------------------
|
||||||
|
-- Hyprland uses an inverse Y cartesian system: negative y places a monitor
|
||||||
|
-- HIGHER. The original conf had DP-2 at y=1440 (below DP-1). Kept as-is.
|
||||||
|
hl.monitor({ output = "DP-1", mode = "2560x1440@165", position = "0x0", scale = 1 })
|
||||||
|
hl.monitor({ output = "DP-2", mode = "3440x1440@165", position = "-440x1440", scale = 1 })
|
||||||
|
|
||||||
|
-- Persistent workspace 1 on DP-2
|
||||||
|
hl.workspace_rule({
|
||||||
|
workspace = "1",
|
||||||
|
monitor = "DP-2",
|
||||||
|
})
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
hl.config({
|
||||||
|
plugin = {
|
||||||
|
split_monitor_workspaces = {
|
||||||
|
count = 6,
|
||||||
|
keep_focused = 0,
|
||||||
|
enable_notifications = 0,
|
||||||
|
enable_persistent_workspaces = 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
local smw = hl.plugin.split_monitor_workspaces
|
||||||
|
-- Switch workspaces with mainMod + [1-5]
|
||||||
|
for i = 1, 6 do
|
||||||
|
local key = tostring(i)
|
||||||
|
hl.bind(mainMod .. " + " .. key, function()
|
||||||
|
return smw.workspace(i)
|
||||||
|
end)
|
||||||
|
hl.bind(mainMod .. " + SHIFT + " .. key, function()
|
||||||
|
return smw.move_to_workspace_silent(i)
|
||||||
|
end)
|
||||||
|
end
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
general {
|
||||||
|
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
|
||||||
|
before_sleep_cmd = loginctl lock-session # lock before suspend.
|
||||||
|
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
|
||||||
|
}
|
||||||
|
|
||||||
|
listener {
|
||||||
|
timeout = 300 # 5min
|
||||||
|
on-timeout = loginctl lock-session # lock screen when timeout has passed
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,272 +0,0 @@
|
|||||||
|
|
||||||
# #######################################################################################
|
|
||||||
# AUTOGENERATED HYPR CONFIG.
|
|
||||||
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
|
|
||||||
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
|
|
||||||
# #######################################################################################
|
|
||||||
|
|
||||||
# This is an example Hyprland config file.
|
|
||||||
# Refer to the wiki for more information.
|
|
||||||
# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/
|
|
||||||
|
|
||||||
# Please note not all available settings / options are set here.
|
|
||||||
# For a full list, see the wiki
|
|
||||||
|
|
||||||
# You can split this configuration into multiple files
|
|
||||||
# Create your files separately and then link them to this file like this:
|
|
||||||
# source = ~/.config/hypr/myColors.conf
|
|
||||||
|
|
||||||
|
|
||||||
################
|
|
||||||
### MONITORS ###
|
|
||||||
################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
|
||||||
monitor=DP-1,2560x1440@165,0x0,1
|
|
||||||
monitor=DP-2,3440x1440@165,-440x1440,1
|
|
||||||
|
|
||||||
###################
|
|
||||||
### MY PROGRAMS ###
|
|
||||||
###################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
|
||||||
|
|
||||||
# Set programs that you use
|
|
||||||
$terminal = kitty
|
|
||||||
$fileManager = pcmanfm
|
|
||||||
$menu = rofi -show drun
|
|
||||||
$screenshot = slurp | grim -g - ~/Pictures/Screenshots/screenshot_$(date "+%Y-%m-%d_%T").png
|
|
||||||
|
|
||||||
|
|
||||||
#################
|
|
||||||
### AUTOSTART ###
|
|
||||||
#################
|
|
||||||
|
|
||||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
|
||||||
# Or execute your favorite apps at launch like this:
|
|
||||||
|
|
||||||
# exec-once = $terminal
|
|
||||||
# exec-once = nm-applet &
|
|
||||||
exec-once = waybar
|
|
||||||
exec-once = hyprpaper
|
|
||||||
|
|
||||||
|
|
||||||
#############################
|
|
||||||
### ENVIRONMENT VARIABLES ###
|
|
||||||
#############################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
|
||||||
|
|
||||||
env = XCURSOR_SIZE,24
|
|
||||||
env = HYPRCURSOR_SIZE,24
|
|
||||||
|
|
||||||
|
|
||||||
#####################
|
|
||||||
### LOOK AND FEEL ###
|
|
||||||
#####################
|
|
||||||
|
|
||||||
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
|
||||||
general {
|
|
||||||
gaps_in = 5
|
|
||||||
gaps_out = 10
|
|
||||||
|
|
||||||
border_size = 2
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
|
||||||
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
|
||||||
col.inactive_border = rgba(595959aa)
|
|
||||||
|
|
||||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
|
||||||
resize_on_border = false
|
|
||||||
|
|
||||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
|
||||||
allow_tearing = false
|
|
||||||
|
|
||||||
layout = dwindle
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
|
||||||
decoration {
|
|
||||||
rounding = 10
|
|
||||||
|
|
||||||
# Change transparency of focused and unfocused windows
|
|
||||||
active_opacity = 1.0
|
|
||||||
inactive_opacity = 1.0
|
|
||||||
|
|
||||||
drop_shadow = true
|
|
||||||
shadow_range = 4
|
|
||||||
shadow_render_power = 3
|
|
||||||
col.shadow = rgba(1a1a1aee)
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
|
||||||
blur {
|
|
||||||
enabled = true
|
|
||||||
size = 3
|
|
||||||
passes = 1
|
|
||||||
|
|
||||||
vibrancy = 0.1696
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
|
||||||
animations {
|
|
||||||
enabled = true
|
|
||||||
|
|
||||||
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
|
||||||
|
|
||||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
|
||||||
|
|
||||||
animation = windows, 1, 7, myBezier
|
|
||||||
animation = windowsOut, 1, 7, default, popin 80%
|
|
||||||
animation = border, 1, 10, default
|
|
||||||
animation = borderangle, 1, 8, default
|
|
||||||
animation = fade, 1, 7, default
|
|
||||||
animation = workspaces, 1, 6, default
|
|
||||||
}
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
|
||||||
dwindle {
|
|
||||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
|
||||||
preserve_split = true # You probably want this
|
|
||||||
}
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
|
||||||
master {
|
|
||||||
new_status = master
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
|
||||||
misc {
|
|
||||||
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
|
|
||||||
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#############
|
|
||||||
### INPUT ###
|
|
||||||
#############
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
|
||||||
input {
|
|
||||||
kb_layout = de
|
|
||||||
kb_variant =
|
|
||||||
kb_model =
|
|
||||||
kb_options =
|
|
||||||
kb_rules =
|
|
||||||
|
|
||||||
follow_mouse = 1
|
|
||||||
|
|
||||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
|
||||||
|
|
||||||
touchpad {
|
|
||||||
natural_scroll = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
|
||||||
gestures {
|
|
||||||
workspace_swipe = false
|
|
||||||
}
|
|
||||||
|
|
||||||
# Example per-device config
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
|
||||||
device {
|
|
||||||
name = epic-mouse-v1
|
|
||||||
sensitivity = -0.5
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
###################
|
|
||||||
### KEYBINDINGS ###
|
|
||||||
###################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
|
||||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
|
||||||
|
|
||||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
|
||||||
bind = $mainMod SHIFT, return, exec, $terminal
|
|
||||||
bind = $mainMod SHIFT, C, killactive,
|
|
||||||
bind = $mainMod SHIFT, Q, exit,
|
|
||||||
bind = $mainMod, E, exec, $fileManager
|
|
||||||
bind = $mainMod, V, togglefloating,
|
|
||||||
bind = $mainMod, P, exec, $menu
|
|
||||||
bind = $mainMod SHIFT, P, pseudo, # dwindle
|
|
||||||
bind = $mainMod, J, togglesplit, # dwindle
|
|
||||||
bind = $mainMod SHIFT, S, exec, $screenshot
|
|
||||||
|
|
||||||
# Move focus with mainMod + arrow keys
|
|
||||||
bind = $mainMod, left, movefocus, l
|
|
||||||
bind = $mainMod, right, movefocus, r
|
|
||||||
bind = $mainMod, up, movefocus, u
|
|
||||||
bind = $mainMod, down, movefocus, d
|
|
||||||
|
|
||||||
# Switch workspaces with mainMod + [0-9]
|
|
||||||
bind = $mainMod, 1, workspace, 1
|
|
||||||
bind = $mainMod, 2, workspace, 2
|
|
||||||
bind = $mainMod, 3, workspace, 3
|
|
||||||
bind = $mainMod, 4, workspace, 4
|
|
||||||
bind = $mainMod, 5, workspace, 5
|
|
||||||
bind = $mainMod, 6, workspace, 6
|
|
||||||
bind = $mainMod, 7, workspace, 7
|
|
||||||
bind = $mainMod, 8, workspace, 8
|
|
||||||
bind = $mainMod, 9, workspace, 9
|
|
||||||
bind = $mainMod, 0, workspace, 10
|
|
||||||
|
|
||||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
|
||||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
|
||||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
|
||||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
|
||||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
|
||||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
|
||||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
|
||||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
|
||||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
|
||||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
|
||||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
|
||||||
|
|
||||||
# Example special workspace (scratchpad)
|
|
||||||
bind = $mainMod, space, togglespecialworkspace, magic
|
|
||||||
bind = $mainMod SHIFT, space, movetoworkspace, special:magic
|
|
||||||
|
|
||||||
# Scroll through existing workspaces with mainMod + scroll
|
|
||||||
bind = $mainMod, mouse_down, workspace, e+1
|
|
||||||
bind = $mainMod, mouse_up, workspace, e-1
|
|
||||||
|
|
||||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
||||||
bindm = $mainMod, mouse:272, movewindow
|
|
||||||
bindm = $mainMod, mouse:273, resizewindow
|
|
||||||
|
|
||||||
# Laptop multimedia keys for volume and LCD brightness
|
|
||||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
|
||||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
|
||||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
|
||||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
|
||||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
|
|
||||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
|
|
||||||
|
|
||||||
##############################
|
|
||||||
### WINDOWS AND WORKSPACES ###
|
|
||||||
##############################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
|
||||||
|
|
||||||
# Example windowrule v1
|
|
||||||
# windowrule = float, ^(kitty)$
|
|
||||||
|
|
||||||
# Example windowrule v2
|
|
||||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
|
||||||
|
|
||||||
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
|
|
||||||
|
|
||||||
env = LIBVA_DRIVER_NAME,nvidia
|
|
||||||
env = XDG_SESSION_TYPE,wayland
|
|
||||||
env = GBM_BACKEND,nvidia-drm
|
|
||||||
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
|
||||||
env = NVD_BACKEND,direct
|
|
||||||
|
|
||||||
cursor {
|
|
||||||
no_hardware_cursors = true
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
-- ##########################################################################
|
||||||
|
-- Hyprland 0.55+ Lua configuration.
|
||||||
|
-- Migrated from hyprland.conf (hyprlang). Hyprlang is deprecated since 0.55.
|
||||||
|
-- File location: $XDG_CONFIG_HOME/hypr/hyprland.lua (~/.config/hypr/hyprland.lua)
|
||||||
|
-- Wiki: https://wiki.hypr.land/Configuring/Start/
|
||||||
|
-- ##########################################################################
|
||||||
|
|
||||||
|
local configDir = os.getenv("HOME") .. "/.config/hypr/"
|
||||||
|
package.path = configDir .. "?.lua;" .. package.path
|
||||||
|
|
||||||
|
|
||||||
|
----------------------
|
||||||
|
---- GLOBAL BINDS ----
|
||||||
|
----------------------
|
||||||
|
_G.mainMod = "SUPER"
|
||||||
|
|
||||||
|
---------------------
|
||||||
|
---- MY PROGRAMS ----
|
||||||
|
---------------------
|
||||||
|
_G.terminal = "kitty"
|
||||||
|
_G.fileManager = "pcmanfm"
|
||||||
|
_G.menu = "rofi -show drun"
|
||||||
|
_G.screenshot = 'grim -g "$(slurp)" - | swappy -f -'
|
||||||
|
_G.pwmanager = "bitwarden-desktop"
|
||||||
|
_G.lockscreen = "hyprlock"
|
||||||
|
|
||||||
|
require("hyprconf.base")
|
||||||
|
require("hyprconf.monitor")
|
||||||
|
require("hyprconf.keybinds")
|
||||||
|
require("hyprconf.split-workspace")
|
||||||
|
|
||||||
|
-------------------
|
||||||
|
---- AUTOSTART ----
|
||||||
|
-------------------
|
||||||
|
-- exec-once is gone; use hl.on("hyprland.start", ...).
|
||||||
|
hl.on("hyprland.start", function()
|
||||||
|
hl.exec_cmd("hyprpm reload")
|
||||||
|
hl.exec_cmd("waybar")
|
||||||
|
hl.exec_cmd("hyprpaper")
|
||||||
|
hl.exec_cmd("nm-applet")
|
||||||
|
hl.exec_cmd("blueman-applet")
|
||||||
|
hl.exec_cmd("bitwarden-desktop")
|
||||||
|
hl.exec_cmd("udiskie")
|
||||||
|
hl.exec_cmd("dunst")
|
||||||
|
hl.exec_cmd("nextcloud --background")
|
||||||
|
end)
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------------
|
||||||
|
---- ENVIRONMENT VARIABLES ----
|
||||||
|
-------------------------------
|
||||||
|
hl.env("XCURSOR_SIZE", "24")
|
||||||
|
hl.env("HYPRCURSOR_SIZE", "24")
|
||||||
|
|
||||||
|
-- NVIDIA / Wayland environment.
|
||||||
|
hl.env("LIBVA_DRIVER_NAME", "nvidia")
|
||||||
|
hl.env("XDG_SESSION_TYPE", "wayland")
|
||||||
|
hl.env("GBM_BACKEND", "nvidia-drm")
|
||||||
|
hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia")
|
||||||
|
hl.env("NVD_BACKEND", "direct")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------------
|
||||||
|
---- WINDOWS AND WORKSPACES ----
|
||||||
|
--------------------------------
|
||||||
|
-- Float Bitwarden
|
||||||
|
hl.window_rule({
|
||||||
|
name = "bw-float",
|
||||||
|
match = { title = "^(Bitwarden)$" },
|
||||||
|
float = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Suppress maximize events from all clients
|
||||||
|
hl.window_rule({
|
||||||
|
name = "suppress-maximize-events",
|
||||||
|
match = { class = ".*" },
|
||||||
|
suppress_event = "maximize",
|
||||||
|
})
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
background {
|
||||||
|
monitor =
|
||||||
|
path = $HOME/.config/hypr/wp.png
|
||||||
|
color = rgba(24,24,24,1)
|
||||||
|
|
||||||
|
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
|
||||||
|
blur_size = 5
|
||||||
|
blur_passes = 0 # 0 disables blurring
|
||||||
|
noise = 0.0117
|
||||||
|
contrast = 1.3000 # Vibrant!!!
|
||||||
|
brightness = 0.8000
|
||||||
|
vibrancy = 0.2100
|
||||||
|
vibrancy_darkness = 0.0
|
||||||
|
}
|
||||||
|
|
||||||
|
input-field {
|
||||||
|
monitor =
|
||||||
|
size = 450, 50
|
||||||
|
outline_thickness = 3
|
||||||
|
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
||||||
|
dots_spacing = 1.00 # Scale of dots' absolute size, 0.0 - 1.0
|
||||||
|
dots_center = true
|
||||||
|
outer_color = rgba(36,114,200,1)
|
||||||
|
inner_color = rgba(43,43,43,1)
|
||||||
|
font_color = rgba(204,204,204,1)
|
||||||
|
fade_on_empty = true
|
||||||
|
placeholder_text = <i>Password...</i> # Text rendered in the input box when it's empty.
|
||||||
|
hide_input = false
|
||||||
|
position = 0, 60
|
||||||
|
halign = center
|
||||||
|
valign = bottom
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Current time
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = cmd[update:1000] echo "<b><big> $(date +"%H") </big></b>"
|
||||||
|
color =rgb(255,255,255)
|
||||||
|
font_size = 128
|
||||||
|
font_family = HackJBMLigatured-Regular 10
|
||||||
|
position = 0, 140
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = cmd[update:1000] echo "<b><big> $(date +"%M") </big></b>"
|
||||||
|
color =rgb(255,255,255)
|
||||||
|
font_size = 128
|
||||||
|
font_family = HackJBMLigatured-Regular 10
|
||||||
|
position = 0, -20
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = cmd[update:1000] echo "<b><big> $(date +"%d %b") </big></b>"
|
||||||
|
color =rgb(59,142,234)
|
||||||
|
font_size = 16
|
||||||
|
font_family = HackJBMLigatured-Regular 10
|
||||||
|
position = 0, -160
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = cmd[update:1000] echo "<b><big> $(date +"%A") </big></b>"
|
||||||
|
color =rgb(59,142,234)
|
||||||
|
font_size = 16
|
||||||
|
font_family = HackJBMLigatured-Regular 10
|
||||||
|
position = 0, -180
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,2 +1,7 @@
|
|||||||
preload = /home/n0x/Nextcloud/Pictures/Wallpapers/MRR.jpg
|
wallpaper {
|
||||||
wallpaper = , /home/n0x/Nextcloud/Pictures/Wallpapers/MRR.jpg
|
monitor =
|
||||||
|
path = ~/.config/hypr/wp.png
|
||||||
|
fit_mode = cover
|
||||||
|
}
|
||||||
|
splash = false
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 22 MiB |
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
# Font stuff
|
# Font stuff
|
||||||
font_family family="Hack JBM Ligatured"
|
font_family family="Berkeley Mono Regular"
|
||||||
italic_font auto
|
italic_font auto
|
||||||
bold_font auto
|
bold_font auto
|
||||||
bold_italic_font auto
|
bold_italic_font auto
|
||||||
@@ -13,45 +13,65 @@ symbol_map U+e000-U+e00a,U+ea60-U+ebeb,U+e0a0-U+e0c8,U+e0ca,U+e0cc-U+e0d7,U+e200
|
|||||||
# Transparency
|
# Transparency
|
||||||
background_opacity 0.85
|
background_opacity 0.85
|
||||||
|
|
||||||
# The foreground color
|
foreground #cccccc
|
||||||
foreground #d8dee9
|
background #181818
|
||||||
|
selection_foreground none
|
||||||
|
selection_background #264f78
|
||||||
|
|
||||||
# The background color
|
cursor #aeafad
|
||||||
background #2e3440
|
cursor_text_color #181818
|
||||||
|
|
||||||
# The foreground for selections
|
url_color #3b8eea
|
||||||
selection_foreground #81a1c1
|
|
||||||
|
|
||||||
# The background for selections
|
active_border_color #2472c8
|
||||||
selection_background #eceff4
|
inactive_border_color #2b2b2b
|
||||||
|
bell_border_color #e5e510
|
||||||
|
visual_bell_color none
|
||||||
|
|
||||||
# The cursor color
|
wayland_titlebar_color system
|
||||||
cursor #e5e9f0
|
macos_titlebar_color system
|
||||||
|
|
||||||
# Set up term-colors (Nord Theme)
|
active_tab_background #1f1f1f
|
||||||
color0 #3b4252
|
active_tab_foreground #ffffff
|
||||||
color8 #4c566a
|
inactive_tab_background #181818
|
||||||
|
inactive_tab_foreground #9d9d9d
|
||||||
|
tab_bar_background #181818
|
||||||
|
tab_bar_margin_color none
|
||||||
|
|
||||||
color1 #bf616a
|
# Set up term-colors (Cursor Dark)
|
||||||
color9 #bf616a
|
|
||||||
|
|
||||||
color2 #a3be8c
|
#: black
|
||||||
color10 #a3be8c
|
color0 #000000
|
||||||
|
color8 #666666
|
||||||
|
|
||||||
color3 #ebcb8b
|
#: red
|
||||||
color11 #ebcb8b
|
color1 #cd3131
|
||||||
|
color9 #f14c4c
|
||||||
|
|
||||||
color4 #81a1c1
|
#: green
|
||||||
color12 #81a1c1
|
color2 #0dbc79
|
||||||
|
color10 #23d18b
|
||||||
|
|
||||||
color5 #b48ead
|
#: yellow
|
||||||
color13 #b48ead
|
color3 #e5e510
|
||||||
|
color11 #f5f543
|
||||||
|
|
||||||
color6 #88c0d0
|
#: blue
|
||||||
color14 #8fbcbb
|
color4 #2472c8
|
||||||
|
color12 #3b8eea
|
||||||
|
|
||||||
|
#: magenta
|
||||||
|
color5 #bc3fbc
|
||||||
|
color13 #d670d6
|
||||||
|
|
||||||
|
#: cyan
|
||||||
|
color6 #11a8cd
|
||||||
|
color14 #29b8db
|
||||||
|
|
||||||
|
#: white
|
||||||
|
color7 #e5e5e5
|
||||||
|
color15 #e5e5e5
|
||||||
|
|
||||||
color7 #e5e9f0
|
|
||||||
color15 #eceff4
|
|
||||||
|
|
||||||
# The cursor shape can be one of (block, beam, underline)
|
# The cursor shape can be one of (block, beam, underline)
|
||||||
shell_integration no-cursor
|
shell_integration no-cursor
|
||||||
@@ -66,14 +86,7 @@ wheel_scroll_multiplier 5.0
|
|||||||
|
|
||||||
# The width (in pts) of window borders. Will be rounded to the nearest number of pixels based on screen resolution.
|
# The width (in pts) of window borders. Will be rounded to the nearest number of pixels based on screen resolution.
|
||||||
window_border_width 0
|
window_border_width 0
|
||||||
window_margin_width 30
|
window_margin_width 20
|
||||||
|
|
||||||
|
|
||||||
# The color for the border of the active window
|
|
||||||
active_border_color #ffffff
|
|
||||||
|
|
||||||
# The color for the border of inactive windows
|
|
||||||
inactive_border_color #cccccc
|
|
||||||
|
|
||||||
|
|
||||||
# Manage font size
|
# Manage font size
|
||||||
|
|||||||
+36
-12
@@ -1,12 +1,36 @@
|
|||||||
require "user.options"
|
require "keymap"
|
||||||
require "user.keymaps"
|
require "options"
|
||||||
require "user.plugins"
|
require "lazy-setup"
|
||||||
require "user.colorscheme"
|
require "vars"
|
||||||
require "user.cmp"
|
|
||||||
require "user.lsp"
|
-- LSP Diagnostics Options Setup
|
||||||
require "user.telescope"
|
local sign = function(opts)
|
||||||
require "user.treesitter"
|
vim.fn.sign_define(opts.name, {
|
||||||
require "user.nvim-tree"
|
texthl = opts.name,
|
||||||
require "user.bufferline"
|
text = opts.text,
|
||||||
require "user.statusline"
|
numhl = ''
|
||||||
require "user.gitsigns"
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
sign({name = 'DiagnosticSignError', text = ''})
|
||||||
|
sign({name = 'DiagnosticSignWarn', text = ''})
|
||||||
|
sign({name = 'DiagnosticSignHint', text = ''})
|
||||||
|
sign({name = 'DiagnosticSignInfo', text = ''})
|
||||||
|
|
||||||
|
vim.diagnostic.config({
|
||||||
|
virtual_text = false,
|
||||||
|
signs = true,
|
||||||
|
update_in_insert = true,
|
||||||
|
underline = true,
|
||||||
|
severity_sort = false,
|
||||||
|
float = {
|
||||||
|
border = 'rounded',
|
||||||
|
source = 'always',
|
||||||
|
header = '', prefix = '',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.cmd([[
|
||||||
|
set signcolumn=yes
|
||||||
|
autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })
|
||||||
|
]])
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
||||||
|
"cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" },
|
||||||
|
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
||||||
|
"cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "fd3e882e56956675c620898bf1ffcf4fcbe7ec84" },
|
||||||
|
"cmp-nvim-lua": { "branch": "main", "commit": "e3a22cb071eb9d6508a156306b102c45cd2d573d" },
|
||||||
|
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
|
||||||
|
"cmp-vsnip": { "branch": "main", "commit": "989a8a73c44e926199bfd05fa7a516d51f2d2752" },
|
||||||
|
"dashboard-nvim": { "branch": "master", "commit": "f787e3462c2ee2b6117b17c1aa4ddf66cb6f57fe" },
|
||||||
|
"gitsigns.nvim": { "branch": "main", "commit": "31d6fb2d618bca1482b9f274751ead5f03461408" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||||
|
"lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" },
|
||||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "67029ccdac1ef8941e13b826417bc0ffac24cc86" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" },
|
||||||
|
"nvim-cmp": { "branch": "main", "commit": "2ffe79f1f021def8dd1fcd81deb16f1bb0d989f3" },
|
||||||
|
"nvim-tree.lua": { "branch": "master", "commit": "b2aadda94b107480c48e548d6db51c6840b7b33c" },
|
||||||
|
"nvim-treesitter": { "branch": "main", "commit": "7b6cc8949f9999c5ed91436cbe24aa5f99c42025" },
|
||||||
|
"nvim-web-devicons": { "branch": "master", "commit": "2ae6958df7ced50baac5035cec0c15799eedfbf7" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
|
||||||
|
"presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" },
|
||||||
|
"rustaceanvim": { "branch": "master", "commit": "e9c5aaba16fead831379d5f44617547a90b913c7" },
|
||||||
|
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||||
|
"vim-bbye": { "branch": "master", "commit": "25ef93ac5a87526111f43e5110675032dbcacf56" },
|
||||||
|
"vim-floaterm": { "branch": "master", "commit": "bb4ba7952e906408e1f83b215f55ffe57efcade6" },
|
||||||
|
"vim-vsnip": { "branch": "master", "commit": "9bcfabea653abdcdac584283b5097c3f8760abaa" },
|
||||||
|
"vimtex": { "branch": "master", "commit": "154eca8f68a5ad54eb12308bb378e88bdd0dfb3e" },
|
||||||
|
"vimwiki": { "branch": "dev", "commit": "a54a3002e229c4b43d69ced170ff77663a5b2c40" },
|
||||||
|
"vscode.nvim": { "branch": "main", "commit": "aa1102a7e15195c9cca22730b09224a7f7745ba8" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
||||||
|
}
|
||||||
@@ -0,0 +1,134 @@
|
|||||||
|
local opts = { noremap = true, silent = true }
|
||||||
|
|
||||||
|
local term_opts = { silent = true }
|
||||||
|
|
||||||
|
-- Shorten function name
|
||||||
|
local keymap = vim.api.nvim_set_keymap
|
||||||
|
|
||||||
|
--Remap space as leader key
|
||||||
|
keymap("", "<Space>", "<Nop>", opts)
|
||||||
|
vim.g.mapleader = " "
|
||||||
|
vim.g.maplocalleader = " "
|
||||||
|
|
||||||
|
-- Modes
|
||||||
|
-- normal_mode = "n",
|
||||||
|
-- insert_mode = "i",
|
||||||
|
-- visual_mode = "v",
|
||||||
|
-- visual_block_mode = "x",
|
||||||
|
-- term_mode = "t",
|
||||||
|
-- command_mode = "c",
|
||||||
|
|
||||||
|
-- Disable Arrow keys to force myself to the Vim-Way of movement --
|
||||||
|
keymap("i", "<Up>", "<Nop>", opts)
|
||||||
|
keymap("i", "<Down>", "<Nop>", opts)
|
||||||
|
keymap("i", "<Left>", "<Nop>", opts)
|
||||||
|
keymap("i", "<Right>", "<Nop>", opts)
|
||||||
|
|
||||||
|
keymap("n", "<Up>", "<Nop>", opts)
|
||||||
|
keymap("n", "<Down>", "<Nop>", opts)
|
||||||
|
keymap("n", "<Left>", "<Nop>", opts)
|
||||||
|
keymap("n", "<Right>", "<Nop>", opts)
|
||||||
|
|
||||||
|
-- German ISO-DE keyboard friendly mappings --
|
||||||
|
-- On German keyboard, { and } require AltGr+7/0 which is awkward
|
||||||
|
-- These mappings make paragraph navigation much easier
|
||||||
|
keymap("n", "ü", "{", opts)
|
||||||
|
keymap("n", "<C-ü>", "<C-{>", opts)
|
||||||
|
|
||||||
|
keymap("n", "+", "}", opts)
|
||||||
|
keymap("n", "<C-+>", "<C-}>", opts)
|
||||||
|
|
||||||
|
-- Alternative: You could also use ö and ä for other bracket operations
|
||||||
|
-- Uncomment if needed:
|
||||||
|
-- keymap("n", "ö", "[", opts)
|
||||||
|
-- keymap("n", "ä", "]", opts)
|
||||||
|
|
||||||
|
-- Normal --
|
||||||
|
-- Better window navigation
|
||||||
|
keymap("n", "<C-h>", "<C-w>h", opts)
|
||||||
|
keymap("n", "<C-j>", "<C-w>j", opts)
|
||||||
|
keymap("n", "<C-k>", "<C-w>k", opts)
|
||||||
|
keymap("n", "<C-l>", "<C-w>l", opts)
|
||||||
|
|
||||||
|
keymap("n", "<leader>e", ":NvimTreeToggle<cr>", opts)
|
||||||
|
|
||||||
|
-- Resize with hjkl instead of arrows (stay disciplined!)
|
||||||
|
keymap("n", "<C-S-k>", ":resize -2<CR>", opts)
|
||||||
|
keymap("n", "<C-S-j>", ":resize +2<CR>", opts)
|
||||||
|
keymap("n", "<C-S-h>", ":vertical resize -2<CR>", opts)
|
||||||
|
keymap("n", "<C-S-l>", ":vertical resize +2<CR>", opts)
|
||||||
|
|
||||||
|
-- Navigate buffers
|
||||||
|
keymap("n", "<S-l>", ":bnext<CR>", opts)
|
||||||
|
keymap("n", "<S-h>", ":bprevious<CR>", opts)
|
||||||
|
|
||||||
|
-- Move text up and down
|
||||||
|
keymap("n", "<A-j>", "<Esc>:m .+1<CR>==gi", opts)
|
||||||
|
keymap("n", "<A-k>", "<Esc>:m .-2<CR>==gi", opts)
|
||||||
|
|
||||||
|
-- Insert --
|
||||||
|
-- Press jk fast to enter
|
||||||
|
keymap("i", "jk", "<ESC>", opts)
|
||||||
|
|
||||||
|
-- Visual --
|
||||||
|
-- Disable arrow keys in visual mode too
|
||||||
|
keymap("v", "<Up>", "<Nop>", opts)
|
||||||
|
keymap("v", "<Down>", "<Nop>", opts)
|
||||||
|
keymap("v", "<Left>", "<Nop>", opts)
|
||||||
|
keymap("v", "<Right>", "<Nop>", opts)
|
||||||
|
|
||||||
|
-- Stay in indent mode
|
||||||
|
keymap("v", "<", "<gv", opts)
|
||||||
|
keymap("v", ">", ">gv", opts)
|
||||||
|
|
||||||
|
-- Move text up and down
|
||||||
|
keymap("v", "<A-j>", ":m .+1<CR>==", opts)
|
||||||
|
keymap("v", "<A-k>", ":m .-2<CR>==", opts)
|
||||||
|
keymap("v", "p", '"_dP', opts)
|
||||||
|
|
||||||
|
-- Visual Block --
|
||||||
|
-- Disable arrow keys in visual block mode
|
||||||
|
keymap("x", "<Up>", "<Nop>", opts)
|
||||||
|
keymap("x", "<Down>", "<Nop>", opts)
|
||||||
|
keymap("x", "<Left>", "<Nop>", opts)
|
||||||
|
keymap("x", "<Right>", "<Nop>", opts)
|
||||||
|
|
||||||
|
-- Move text up and down
|
||||||
|
keymap("x", "J", ":move '>+1<CR>gv-gv", opts)
|
||||||
|
keymap("x", "K", ":move '<-2<CR>gv-gv", opts)
|
||||||
|
keymap("x", "<A-j>", ":move '>+1<CR>gv-gv", opts)
|
||||||
|
keymap("x", "<A-k>", ":move '<-2<CR>gv-gv", opts)
|
||||||
|
|
||||||
|
-- Terminal --
|
||||||
|
-- Better terminal navigation
|
||||||
|
keymap("t", "<Esc>", "<C-\\><C-n>", term_opts)
|
||||||
|
keymap("t", "<C-h>", "<C-\\><C-N><C-w>h", term_opts)
|
||||||
|
keymap("t", "<C-j>", "<C-\\><C-N><C-w>j", term_opts)
|
||||||
|
keymap("t", "<C-k>", "<C-\\><C-N><C-w>k", term_opts)
|
||||||
|
keymap("t", "<C-l>", "<C-\\><C-N><C-w>l", term_opts)
|
||||||
|
|
||||||
|
-- close buffer --
|
||||||
|
keymap("n", "<leader>q", "<cmd>Bdelete!<cr>", opts)
|
||||||
|
|
||||||
|
-- toggle whitespace --
|
||||||
|
keymap("n", "<leader>w", "<cmd>set list!<cr>", opts)
|
||||||
|
|
||||||
|
-- floaterm
|
||||||
|
keymap("n", "<F7>", ":FloatermNew<cr>", opts)
|
||||||
|
keymap("n", "<F8>", ":FloatermPrev<cr>", opts)
|
||||||
|
keymap("n", "<F9>", ":FloatermNext<cr>", opts)
|
||||||
|
keymap("n", "<F12>", ":FloatermToggle<cr>", opts)
|
||||||
|
|
||||||
|
-- LSP
|
||||||
|
keymap("n", "<leader><leader>f", "<cmd>Format<cr>", opts)
|
||||||
|
keymap("n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", opts)
|
||||||
|
keymap("n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", opts)
|
||||||
|
keymap("n", "K", "<cmd>lua vim.lsp.buf.hover()<CR>", opts)
|
||||||
|
keymap("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts)
|
||||||
|
keymap("n", "<C-k>", "<cmd>lua vim.lsp.buf.signature_help()<CR>", opts)
|
||||||
|
keymap("n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", opts)
|
||||||
|
keymap("n", "<leader>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", opts)
|
||||||
|
|
||||||
|
|
||||||
|
keymap("n", "<leader>f", "<cmd>lua require'telescope.builtin'.find_files(require('telescope.themes').get_dropdown({ previewer = false }))<cr>", opts)
|
||||||
|
keymap("n", "<c-t>", "<cmd>Telescope live_grep<cr>", opts)
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
-- Bootstrap lazy.nvim
|
||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||||
|
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||||
|
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||||
|
if vim.v.shell_error ~= 0 then
|
||||||
|
vim.api.nvim_echo({
|
||||||
|
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||||
|
{ out, "WarningMsg" },
|
||||||
|
{ "\nPress any key to exit..." },
|
||||||
|
}, true, {})
|
||||||
|
vim.fn.getchar()
|
||||||
|
os.exit(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
-- Setup lazy.nvim
|
||||||
|
require("lazy").setup({
|
||||||
|
spec = {
|
||||||
|
-- Import all plugin specs from lua/plugins/
|
||||||
|
{ import = "plugins" },
|
||||||
|
},
|
||||||
|
install = {
|
||||||
|
colorscheme = { "vscode" },
|
||||||
|
},
|
||||||
|
checker = {
|
||||||
|
enabled = true,
|
||||||
|
notify = false,
|
||||||
|
},
|
||||||
|
change_detection = {
|
||||||
|
notify = false,
|
||||||
|
},
|
||||||
|
})
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
local options = {
|
||||||
|
backup = false, -- creates a backup file
|
||||||
|
clipboard = "unnamedplus", -- allows neovim to access the system clipboard
|
||||||
|
cmdheight = 2, -- more space in the neovim command line for displaying messages
|
||||||
|
conceallevel = 0, -- so that `` is visible in markdown files
|
||||||
|
fileencoding = "utf-8", -- the encoding written to a file
|
||||||
|
hlsearch = true, -- highlight all matches on previous search pattern
|
||||||
|
incsearch = true, -- show search matches as you type
|
||||||
|
ignorecase = true, -- ignore case in search patterns
|
||||||
|
mouse = "a", -- allow the mouse to be used in neovim
|
||||||
|
pumheight = 10, -- pop up menu height
|
||||||
|
showmode = false, -- we don't need to see things like -- INSERT -- anymore
|
||||||
|
showtabline = 2, -- always show tabs
|
||||||
|
smartcase = true, -- smart case
|
||||||
|
smartindent = true, -- make indenting smarter again
|
||||||
|
splitbelow = true, -- force all horizontal splits to go below current window
|
||||||
|
splitright = true, -- force all vertical splits to go to the right of current window
|
||||||
|
swapfile = false, -- creates a swapfile
|
||||||
|
termguicolors = true, -- set term gui colors (most terminals support this)
|
||||||
|
timeoutlen = 1000, -- time to wait for a mapped sequence to complete (in milliseconds)
|
||||||
|
undofile = true, -- enable persistent undo
|
||||||
|
updatetime = 300, -- faster completion (4000ms default)
|
||||||
|
writebackup = false, -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited
|
||||||
|
expandtab = true, -- convert tabs to spaces
|
||||||
|
shiftwidth = 4, -- the number of spaces inserted for each indentation
|
||||||
|
tabstop = 4, -- insert 2 spaces for a tab
|
||||||
|
cursorline = true, -- highlight the current line
|
||||||
|
number = true, -- set numbered lines
|
||||||
|
relativenumber = true, -- set relative numbered lines
|
||||||
|
numberwidth = 4, -- set number column width to 2 {default 4}
|
||||||
|
signcolumn = "yes", -- always show the sign column, otherwise it would shift the text each time
|
||||||
|
wrap = false, -- display lines as one long line
|
||||||
|
scrolloff = 8, -- is one of my fav
|
||||||
|
sidescrolloff = 8,
|
||||||
|
guifont = "monospace:h17", -- the font used in graphical neovim applications
|
||||||
|
list = true,
|
||||||
|
foldenable = false,
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.opt.shortmess:append "c"
|
||||||
|
|
||||||
|
for k, v in pairs(options) do
|
||||||
|
vim.opt[k] = v
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.cmd [[ command! Format execute 'lua vim.lsp.buf.format()' ]]
|
||||||
|
|
||||||
|
vim.g.vimwiki_list = {{path = '~/Documents/vimwiki', syntax = 'markdown', ext = '.md'}}
|
||||||
|
vim.g.nord_disable_background = true
|
||||||
|
|
||||||
|
--Set completeopt to have a better completion experience
|
||||||
|
-- :help completeopt
|
||||||
|
-- menuone: popup even when there's only one match
|
||||||
|
-- noinsert: Do not insert text until a selection is made
|
||||||
|
-- noselect: Do not select, force to select one from the menu
|
||||||
|
-- shortness: avoid showing extra messages when using completion
|
||||||
|
-- updatetime: set updatetime for CursorHold
|
||||||
|
vim.opt.completeopt = {'menuone', 'noselect', 'noinsert'}
|
||||||
|
vim.opt.shortmess = vim.opt.shortmess + { c = true}
|
||||||
|
vim.api.nvim_set_option('updatetime', 300)
|
||||||
|
|
||||||
|
-- Fixed column for diagnostics to appear
|
||||||
|
-- Show autodiagnostic popup on cursor hover_range
|
||||||
|
-- Goto previous / next diagnostic warning / error
|
||||||
|
-- Show inlay_hints more frequently
|
||||||
|
vim.cmd([[
|
||||||
|
set signcolumn=yes
|
||||||
|
autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })
|
||||||
|
]])
|
||||||
|
|
||||||
|
-- Treesitter folding
|
||||||
|
vim.wo.foldmethod = 'expr'
|
||||||
|
vim.wo.foldexpr = 'nvim_treesitter#foldexpr()'
|
||||||
|
|
||||||
|
vim.g.dashboard_default_executive ='telescope'
|
||||||
|
vim.g.dashboard_custom_header = {
|
||||||
|
"███████╗██╗ ██╗███████╗██████╗ ███████╗ ██████╗ ██████╗ ███████╗███████╗████████╗",
|
||||||
|
"██╔════╝██║ ██║██╔════╝██╔══██╗██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔════╝╚══██╔══╝",
|
||||||
|
"█████╗ ██║ ██║█████╗ ██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ███████╗ ██║ ",
|
||||||
|
"██╔══╝ ╚██╗ ██╔╝██╔══╝ ██╔══██╗██╔══╝ ██║ ██║██╔══██╗██╔══╝ ╚════██║ ██║ ",
|
||||||
|
"███████╗ ╚████╔╝ ███████╗██║ ██║██║ ╚██████╔╝██║ ██║███████╗███████║ ██║ ",
|
||||||
|
"╚══════╝ ╚═══╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═╝ ",
|
||||||
|
" NEOVIM"
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,132 @@
|
|||||||
|
local fn = vim.fn
|
||||||
|
|
||||||
|
-- Automatically install packer
|
||||||
|
local install_path = fn.stdpath "data" .. "/site/pack/packer/start/packer.nvim"
|
||||||
|
if fn.empty(fn.glob(install_path)) > 0 then
|
||||||
|
PACKER_BOOTSTRAP = fn.system {
|
||||||
|
"git",
|
||||||
|
"clone",
|
||||||
|
"--depth",
|
||||||
|
"1",
|
||||||
|
"https://github.com/wbthomason/packer.nvim", install_path,
|
||||||
|
}
|
||||||
|
print "Installing packer close and reopen Neovim..."
|
||||||
|
vim.cmd [[packadd packer.nvim]]
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Autocommand that reloads neovim whenever you save the plugins.lua file
|
||||||
|
vim.cmd [[
|
||||||
|
augroup packer_user_config
|
||||||
|
autocmd!
|
||||||
|
autocmd BufWritePost plugins.lua source <afile> | PackerSync
|
||||||
|
augroup end
|
||||||
|
]]
|
||||||
|
|
||||||
|
-- Use a protected call so we don't error out on first use
|
||||||
|
local status_ok, packer = pcall(require, "packer")
|
||||||
|
if not status_ok then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Have packer use a popup window
|
||||||
|
packer.init {
|
||||||
|
display = {
|
||||||
|
open_fn = function()
|
||||||
|
return require("packer.util").float { border = "rounded" }
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Install your plugins here
|
||||||
|
return packer.startup(function(use)
|
||||||
|
-- My plugins here
|
||||||
|
use "wbthomason/packer.nvim" -- Have packer manage itself
|
||||||
|
|
||||||
|
-- Colorschemes
|
||||||
|
--use "shaunsingh/nord.nvim"
|
||||||
|
use({
|
||||||
|
"neanias/everforest-nvim",
|
||||||
|
-- Optional; default configuration will be used if setup isn't called.
|
||||||
|
config = function()
|
||||||
|
require("everforest").setup()
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- LSP
|
||||||
|
use "neovim/nvim-lspconfig" -- enable LSP
|
||||||
|
use "mason-org/mason.nvim" -- simple to use language server installer
|
||||||
|
use "mason-org/mason-lspconfig.nvim" -- simple to use language server installer
|
||||||
|
|
||||||
|
use 'mrcjkb/rustaceanvim'
|
||||||
|
|
||||||
|
-- Completion framework:
|
||||||
|
use 'hrsh7th/nvim-cmp'
|
||||||
|
|
||||||
|
-- LSP completion source:
|
||||||
|
use 'hrsh7th/cmp-nvim-lsp'
|
||||||
|
|
||||||
|
-- Useful completion sources:
|
||||||
|
use 'hrsh7th/cmp-nvim-lua'
|
||||||
|
use 'hrsh7th/cmp-nvim-lsp-signature-help'
|
||||||
|
use 'hrsh7th/cmp-vsnip'
|
||||||
|
use 'hrsh7th/cmp-path'
|
||||||
|
use 'hrsh7th/vim-vsnip'
|
||||||
|
use "hrsh7th/cmp-cmdline" -- cmdline completions
|
||||||
|
|
||||||
|
use {
|
||||||
|
'nvim-treesitter/nvim-treesitter',
|
||||||
|
run = ':TSUpdate'
|
||||||
|
}
|
||||||
|
|
||||||
|
use 'nvim-tree/nvim-web-devicons'
|
||||||
|
|
||||||
|
-- lualine (bottom line)
|
||||||
|
use {'nvim-lualine/lualine.nvim', requires = { 'nvim-tree/nvim-web-devicons', opt = true} }
|
||||||
|
|
||||||
|
-- nvim-tree
|
||||||
|
use {'kyazdani42/nvim-tree.lua', requires = 'nvim-tree/nvim-web-devicons'}
|
||||||
|
|
||||||
|
-- Bufferline
|
||||||
|
use {'akinsho/bufferline.nvim', requires = 'nvim-tree/nvim-web-devicons'}
|
||||||
|
use 'moll/vim-bbye'
|
||||||
|
|
||||||
|
-- VimWiki
|
||||||
|
use { 'vimwiki/vimwiki', branch='dev'}
|
||||||
|
|
||||||
|
-- Dashboard
|
||||||
|
use {
|
||||||
|
'nvimdev/dashboard-nvim',
|
||||||
|
event = 'VimEnter',
|
||||||
|
config = function()
|
||||||
|
require('dashboard').setup {
|
||||||
|
-- config
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
requires = {'nvim-tree/nvim-web-devicons'}
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Telescope
|
||||||
|
use "nvim-lua/plenary.nvim"
|
||||||
|
use {
|
||||||
|
'nvim-telescope/telescope.nvim', tag = '0.1.8',
|
||||||
|
requires = { {'nvim-lua/plenary.nvim'} }
|
||||||
|
}
|
||||||
|
|
||||||
|
-- dicord fuckery
|
||||||
|
use 'andweeb/presence.nvim'
|
||||||
|
|
||||||
|
-- floaterm
|
||||||
|
use 'voldikss/vim-floaterm'
|
||||||
|
|
||||||
|
-- git gud
|
||||||
|
use 'lewis6991/gitsigns.nvim'
|
||||||
|
|
||||||
|
-- LaTeX
|
||||||
|
use 'lervag/vimtex'
|
||||||
|
|
||||||
|
-- Automatically set up your configuration after cloning packer.nvim
|
||||||
|
-- Put this at the end after all plugins
|
||||||
|
if PACKER_BOOTSTRAP then
|
||||||
|
require("packer").sync()
|
||||||
|
end
|
||||||
|
end)
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
-- Cursor Dark.
|
||||||
|
--
|
||||||
|
-- Cursor's default theme is VS Code Dark Modern lineage, so vscode.nvim already
|
||||||
|
-- ships the exact token colors (#569CD6 keywords, #CE9178 strings, #6A9955
|
||||||
|
-- comments, #4EC9B0 types). Only the chrome and the :terminal palette need
|
||||||
|
-- pinning so Neovim matches kitty/tmux/fish.
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"Mofiqul/vscode.nvim",
|
||||||
|
lazy = false,
|
||||||
|
priority = 1000,
|
||||||
|
config = function()
|
||||||
|
vim.o.background = "dark"
|
||||||
|
|
||||||
|
require("vscode").setup({
|
||||||
|
-- The editor background is pinned to kitty's #181818 instead of Cursor's
|
||||||
|
-- #1F1F1F: kitty only leaves a cell transparent when it uses the default
|
||||||
|
-- background, so matching it keeps background_opacity working in nvim.
|
||||||
|
color_overrides = {
|
||||||
|
vscBack = "#181818",
|
||||||
|
vscTabCurrent = "#1F1F1F",
|
||||||
|
vscTabOther = "#181818",
|
||||||
|
vscTabOutside = "#181818",
|
||||||
|
vscLeftDark = "#181818",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.cmd.colorscheme("vscode")
|
||||||
|
|
||||||
|
-- :terminal gets the same 16 colors as kitty and tmux. vscode.nvim would
|
||||||
|
-- otherwise map them onto the syntax palette, which makes green the
|
||||||
|
-- comment green (#6A9955) and looks nothing like the shell.
|
||||||
|
local palette = {
|
||||||
|
[0] = "#000000", "#cd3131", "#0dbc79", "#e5e510",
|
||||||
|
"#2472c8", "#bc3fbc", "#11a8cd", "#e5e5e5",
|
||||||
|
"#666666", "#f14c4c", "#23d18b", "#f5f543",
|
||||||
|
"#3b8eea", "#d670d6", "#29b8db", "#e5e5e5",
|
||||||
|
}
|
||||||
|
for i, color in pairs(palette) do
|
||||||
|
vim.g["terminal_color_" .. i] = color
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
return {
|
||||||
|
-- Completion framework
|
||||||
|
{
|
||||||
|
"hrsh7th/nvim-cmp",
|
||||||
|
dependencies = {
|
||||||
|
"hrsh7th/cmp-nvim-lsp",
|
||||||
|
"hrsh7th/cmp-nvim-lua",
|
||||||
|
"hrsh7th/cmp-nvim-lsp-signature-help",
|
||||||
|
"hrsh7th/cmp-vsnip",
|
||||||
|
"hrsh7th/cmp-path",
|
||||||
|
"hrsh7th/vim-vsnip",
|
||||||
|
"hrsh7th/cmp-cmdline",
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
local cmp = require('cmp')
|
||||||
|
cmp.setup({
|
||||||
|
-- Enable LSP snippets
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
vim.fn["vsnip#anonymous"](args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
mapping = {
|
||||||
|
['<C-p>'] = cmp.mapping.select_prev_item(),
|
||||||
|
['<C-n>'] = cmp.mapping.select_next_item(),
|
||||||
|
-- Add tab support
|
||||||
|
['<S-Tab>'] = cmp.mapping.select_prev_item(),
|
||||||
|
['<Tab>'] = cmp.mapping.select_next_item(),
|
||||||
|
['<C-S-f>'] = cmp.mapping.scroll_docs(-4),
|
||||||
|
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||||
|
['<C-Space>'] = cmp.mapping.complete(),
|
||||||
|
['<C-e>'] = cmp.mapping.close(),
|
||||||
|
['<CR>'] = cmp.mapping.confirm({
|
||||||
|
behavior = cmp.ConfirmBehavior.Insert,
|
||||||
|
select = true,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
-- Installed sources:
|
||||||
|
sources = {
|
||||||
|
{ name = 'path' }, -- file paths
|
||||||
|
{ name = 'nvim_lsp', keyword_length = 3 }, -- from language server
|
||||||
|
{ name = 'nvim_lsp_signature_help'}, -- display function signatures with current parameter emphasized
|
||||||
|
{ name = 'nvim_lua', keyword_length = 2}, -- complete neovim's Lua runtime API such vim.lsp.*
|
||||||
|
{ name = 'buffer', keyword_length = 2 }, -- source current buffer
|
||||||
|
{ name = 'vsnip', keyword_length = 2 }, -- nvim-cmp source for vim-vsnip
|
||||||
|
{ name = 'calc'}, -- source for math calculation
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
completion = cmp.config.window.bordered(),
|
||||||
|
documentation = cmp.config.window.bordered(),
|
||||||
|
},
|
||||||
|
formatting = {
|
||||||
|
fields = {'menu', 'abbr', 'kind'},
|
||||||
|
format = function(entry, item)
|
||||||
|
local menu_icon = {
|
||||||
|
nvim_lsp = 'λ',
|
||||||
|
vsnip = '⋗',
|
||||||
|
buffer = 'Ω',
|
||||||
|
path = '🖫',
|
||||||
|
}
|
||||||
|
item.menu = menu_icon[entry.source.name]
|
||||||
|
return item
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
return {
|
||||||
|
-- Fuzzy finder
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
tag = "0.1.8",
|
||||||
|
dependencies = { "nvim-lua/plenary.nvim" },
|
||||||
|
config = function()
|
||||||
|
require('telescope').setup{}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Git signs
|
||||||
|
{
|
||||||
|
"lewis6991/gitsigns.nvim",
|
||||||
|
config = function()
|
||||||
|
require("gitsigns").setup {
|
||||||
|
signs = {
|
||||||
|
add = { text = '┃' },
|
||||||
|
change = { text = '┃' },
|
||||||
|
delete = { text = '_' },
|
||||||
|
topdelete = { text = '‾' },
|
||||||
|
changedelete = { text = '~' },
|
||||||
|
untracked = { text = '┆' },
|
||||||
|
},
|
||||||
|
signcolumn = true,
|
||||||
|
numhl = false,
|
||||||
|
linehl = false,
|
||||||
|
word_diff = false,
|
||||||
|
watch_gitdir = {
|
||||||
|
interval = 1000,
|
||||||
|
follow_files = true
|
||||||
|
},
|
||||||
|
attach_to_untracked = true,
|
||||||
|
current_line_blame = false,
|
||||||
|
current_line_blame_opts = {
|
||||||
|
virt_text = true,
|
||||||
|
virt_text_pos = 'eol',
|
||||||
|
delay = 1000,
|
||||||
|
ignore_whitespace = false,
|
||||||
|
},
|
||||||
|
sign_priority = 6,
|
||||||
|
update_debounce = 100,
|
||||||
|
status_formatter = nil,
|
||||||
|
max_file_length = 40000,
|
||||||
|
preview_config = {
|
||||||
|
border = 'single',
|
||||||
|
style = 'minimal',
|
||||||
|
relative = 'cursor',
|
||||||
|
row = 0,
|
||||||
|
col = 1
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Floating terminal
|
||||||
|
{
|
||||||
|
"voldikss/vim-floaterm",
|
||||||
|
},
|
||||||
|
|
||||||
|
-- VimWiki
|
||||||
|
{
|
||||||
|
"vimwiki/vimwiki",
|
||||||
|
branch = "dev",
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Discord presence
|
||||||
|
{
|
||||||
|
"andweeb/presence.nvim",
|
||||||
|
},
|
||||||
|
|
||||||
|
-- LaTeX support
|
||||||
|
{
|
||||||
|
"lervag/vimtex",
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Better buffer closing
|
||||||
|
{
|
||||||
|
"moll/vim-bbye",
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
return {
|
||||||
|
-- Mason: LSP installer
|
||||||
|
{
|
||||||
|
"mason-org/mason.nvim",
|
||||||
|
config = function()
|
||||||
|
require("mason").setup({
|
||||||
|
ui = {
|
||||||
|
icons = {
|
||||||
|
package_installed = "",
|
||||||
|
package_pending = "",
|
||||||
|
package_uninstalled = "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Mason LSP Config bridge
|
||||||
|
{
|
||||||
|
"mason-org/mason-lspconfig.nvim",
|
||||||
|
dependencies = { "mason-org/mason.nvim" },
|
||||||
|
config = function()
|
||||||
|
require("mason-lspconfig").setup()
|
||||||
|
|
||||||
|
-- Setup LSP servers using vim.lsp.config (new API)
|
||||||
|
vim.lsp.config('clangd', {})
|
||||||
|
vim.lsp.config('pylsp', {})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"mrcjkb/rustaceanvim",
|
||||||
|
version = "^5",
|
||||||
|
lazy = false,
|
||||||
|
ft = { "rust" },
|
||||||
|
config = function()
|
||||||
|
vim.g.rustaceanvim = {
|
||||||
|
server = {
|
||||||
|
on_attach = function(client, bufnr)
|
||||||
|
-- Hover actions
|
||||||
|
vim.keymap.set("n", "<C-space>", function()
|
||||||
|
vim.cmd.RustLsp('hover', 'actions')
|
||||||
|
end, { buffer = bufnr, desc = "Rust hover actions" })
|
||||||
|
-- Code action groups
|
||||||
|
vim.keymap.set("n", "<Leader>a", function()
|
||||||
|
vim.cmd.RustLsp('codeAction')
|
||||||
|
end, { buffer = bufnr, desc = "Rust code actions" })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
branch = "main",
|
||||||
|
lazy = false,
|
||||||
|
build = ":TSUpdate",
|
||||||
|
config = function()
|
||||||
|
local ts = require("nvim-treesitter")
|
||||||
|
ts.setup()
|
||||||
|
|
||||||
|
local ensure = {
|
||||||
|
"bash", "c", "cpp", "javascript", "json", "python",
|
||||||
|
"css", "rust", "lua", "markdown", "markdown_inline",
|
||||||
|
"php", "html", "terraform",
|
||||||
|
}
|
||||||
|
ts.install(ensure)
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
|
pattern = {
|
||||||
|
"bash", "sh", "c", "cpp", "javascript", "json", "python",
|
||||||
|
"css", "rust", "lua", "markdown",
|
||||||
|
"php", "html", "terraform",
|
||||||
|
},
|
||||||
|
callback = function()
|
||||||
|
pcall(vim.treesitter.start)
|
||||||
|
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,228 @@
|
|||||||
|
return {
|
||||||
|
-- File explorer
|
||||||
|
{
|
||||||
|
"nvim-tree/nvim-tree.lua",
|
||||||
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
|
config = function()
|
||||||
|
local nvimtree = require("nvim-tree")
|
||||||
|
nvimtree.setup {
|
||||||
|
on_attach = function(bufnr)
|
||||||
|
local api = require("nvim-tree.api")
|
||||||
|
local function opts(desc)
|
||||||
|
return { desc = "nvim-tree: " .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
|
||||||
|
end
|
||||||
|
api.config.mappings.default_on_attach(bufnr)
|
||||||
|
vim.keymap.set("n", "<space>", api.node.open.edit, opts("Open"))
|
||||||
|
end,
|
||||||
|
renderer = {
|
||||||
|
icons = {
|
||||||
|
webdev_colors = true,
|
||||||
|
git_placement = "before",
|
||||||
|
padding = " ",
|
||||||
|
symlink_arrow = " ➛ ",
|
||||||
|
show = {
|
||||||
|
file = true,
|
||||||
|
folder = true,
|
||||||
|
folder_arrow = true,
|
||||||
|
git = true,
|
||||||
|
},
|
||||||
|
glyphs = {
|
||||||
|
default = "",
|
||||||
|
symlink = "",
|
||||||
|
git = {
|
||||||
|
unstaged = "",
|
||||||
|
staged = "S",
|
||||||
|
unmerged = "",
|
||||||
|
renamed = "➜",
|
||||||
|
deleted = "",
|
||||||
|
untracked = "U",
|
||||||
|
ignored = "◌",
|
||||||
|
},
|
||||||
|
folder = {
|
||||||
|
default = "",
|
||||||
|
open = "",
|
||||||
|
empty = "",
|
||||||
|
empty_open = "",
|
||||||
|
symlink = "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
highlight_git = true,
|
||||||
|
root_folder_modifier = ":t",
|
||||||
|
indent_markers = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
hijack_directories = {
|
||||||
|
enable = true,
|
||||||
|
auto_open = true,
|
||||||
|
},
|
||||||
|
disable_netrw = true,
|
||||||
|
hijack_netrw = true,
|
||||||
|
hijack_cursor = false,
|
||||||
|
update_cwd = true,
|
||||||
|
diagnostics = {
|
||||||
|
enable = true,
|
||||||
|
icons = {
|
||||||
|
hint = "",
|
||||||
|
info = "",
|
||||||
|
warning = "",
|
||||||
|
error = "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
update_focused_file = {
|
||||||
|
enable = true,
|
||||||
|
update_cwd = true,
|
||||||
|
ignore_list = {},
|
||||||
|
},
|
||||||
|
filters = {
|
||||||
|
dotfiles = false,
|
||||||
|
custom = {},
|
||||||
|
},
|
||||||
|
git = {
|
||||||
|
enable = true,
|
||||||
|
ignore = true,
|
||||||
|
timeout = 500,
|
||||||
|
},
|
||||||
|
view = {
|
||||||
|
width = 35,
|
||||||
|
side = "left",
|
||||||
|
float = {
|
||||||
|
quit_on_focus_loss = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
trash = {
|
||||||
|
cmd = "trash",
|
||||||
|
require_confirm = true,
|
||||||
|
},
|
||||||
|
actions = {
|
||||||
|
open_file = {
|
||||||
|
resize_window = true,
|
||||||
|
quit_on_open = false,
|
||||||
|
window_picker = {
|
||||||
|
enable = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Status line
|
||||||
|
{
|
||||||
|
"nvim-lualine/lualine.nvim",
|
||||||
|
dependencies = { "nvim-tree/nvim-web-devicons", "Mofiqul/vscode.nvim" },
|
||||||
|
config = function()
|
||||||
|
-- Cursor Dark, deliberately mirroring the tmux status bar: same #181818
|
||||||
|
-- bar, same #2b2b2b raised segments, mode colour from the shared palette.
|
||||||
|
local bar, raised, text, dim = "#181818", "#2b2b2b", "#cccccc", "#9d9d9d"
|
||||||
|
|
||||||
|
local function mode(bg, fg)
|
||||||
|
return {
|
||||||
|
a = { bg = bg, fg = fg or "#ffffff", gui = "bold" },
|
||||||
|
b = { bg = raised, fg = text },
|
||||||
|
c = { bg = bar, fg = dim },
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
local cursor_dark = {
|
||||||
|
normal = mode("#2472c8"),
|
||||||
|
insert = mode("#0dbc79"),
|
||||||
|
visual = mode("#bc3fbc"),
|
||||||
|
replace = mode("#cd3131"),
|
||||||
|
-- dark text on yellow; white would be unreadable here
|
||||||
|
command = mode("#e5e510", "#181818"),
|
||||||
|
inactive = {
|
||||||
|
a = { bg = bar, fg = "#666666" },
|
||||||
|
b = { bg = bar, fg = "#666666" },
|
||||||
|
c = { bg = bar, fg = "#666666" },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
require('lualine').setup {
|
||||||
|
options = {
|
||||||
|
theme = cursor_dark,
|
||||||
|
component_separators = { left = '', right = '' },
|
||||||
|
section_separators = { left = '', right = '' },
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Buffer line
|
||||||
|
{
|
||||||
|
"akinsho/bufferline.nvim",
|
||||||
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
|
config = function()
|
||||||
|
local bufferline = require("bufferline")
|
||||||
|
bufferline.setup {
|
||||||
|
options = {
|
||||||
|
mode = "buffers",
|
||||||
|
style_preset = bufferline.style_preset.default,
|
||||||
|
themable = true,
|
||||||
|
numbers = "none",
|
||||||
|
close_command = "bdelete! %d",
|
||||||
|
right_mouse_command = "bdelete! %d",
|
||||||
|
left_mouse_command = "buffer %d",
|
||||||
|
middle_mouse_command = nil,
|
||||||
|
indicator = {
|
||||||
|
icon = '▎',
|
||||||
|
style = 'icon',
|
||||||
|
},
|
||||||
|
buffer_close_icon = '',
|
||||||
|
modified_icon = '● ',
|
||||||
|
close_icon = ' ',
|
||||||
|
left_trunc_marker = ' ',
|
||||||
|
right_trunc_marker = ' ',
|
||||||
|
max_name_length = 30,
|
||||||
|
max_prefix_length = 30,
|
||||||
|
truncate_names = true,
|
||||||
|
tab_size = 25,
|
||||||
|
diagnostics = "nvim_lsp",
|
||||||
|
diagnostics_update_in_insert = false,
|
||||||
|
diagnostics_update_on_event = true,
|
||||||
|
offsets = {
|
||||||
|
{
|
||||||
|
filetype = "NvimTree",
|
||||||
|
text = "File Explorer",
|
||||||
|
text_align = "left",
|
||||||
|
separator = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
color_icons = true,
|
||||||
|
show_buffer_icons = true,
|
||||||
|
show_buffer_close_icons = true,
|
||||||
|
show_close_icon = true,
|
||||||
|
show_tab_indicators = true,
|
||||||
|
show_duplicate_prefix = true,
|
||||||
|
duplicates_across_groups = true,
|
||||||
|
persist_buffer_sort = true,
|
||||||
|
move_wraps_at_ends = false,
|
||||||
|
separator_style = "thin",
|
||||||
|
enforce_regular_tabs = true,
|
||||||
|
always_show_bufferline = true,
|
||||||
|
auto_toggle_bufferline = true,
|
||||||
|
hover = {
|
||||||
|
enabled = true,
|
||||||
|
delay = 200,
|
||||||
|
reveal = {'close'}
|
||||||
|
},
|
||||||
|
sort_by = 'insert_after_current',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Dashboard
|
||||||
|
{
|
||||||
|
"nvimdev/dashboard-nvim",
|
||||||
|
event = "VimEnter",
|
||||||
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
|
config = function()
|
||||||
|
require('dashboard').setup {}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Icons
|
||||||
|
{ "nvim-tree/nvim-web-devicons" },
|
||||||
|
}
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
init = function()
|
||||||
|
vim.o.timeout = true
|
||||||
|
vim.o.timeoutlen = 300
|
||||||
|
end,
|
||||||
|
config = function()
|
||||||
|
local wk = require("which-key")
|
||||||
|
|
||||||
|
wk.setup({
|
||||||
|
plugins = {
|
||||||
|
marks = true,
|
||||||
|
registers = true,
|
||||||
|
spelling = {
|
||||||
|
enabled = true,
|
||||||
|
suggestions = 20,
|
||||||
|
},
|
||||||
|
presets = {
|
||||||
|
operators = true,
|
||||||
|
motions = true,
|
||||||
|
text_objects = true,
|
||||||
|
windows = true,
|
||||||
|
nav = true,
|
||||||
|
z = true,
|
||||||
|
g = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
win = {
|
||||||
|
border = "rounded",
|
||||||
|
position = "bottom",
|
||||||
|
margin = { 1, 0, 1, 0 },
|
||||||
|
padding = { 2, 2, 2, 2 },
|
||||||
|
winblend = 0,
|
||||||
|
},
|
||||||
|
layout = {
|
||||||
|
height = { min = 4, max = 25 },
|
||||||
|
width = { min = 20, max = 50 },
|
||||||
|
spacing = 3,
|
||||||
|
align = "left",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Register leader key mappings with descriptions
|
||||||
|
wk.add({
|
||||||
|
{ "<leader>e", desc = "Toggle File Explorer" },
|
||||||
|
{ "<leader>q", desc = "Close Buffer" },
|
||||||
|
{ "<leader>w", desc = "Toggle Whitespace" },
|
||||||
|
{ "<leader>f", desc = "Find Files" },
|
||||||
|
{ "<leader>rn", desc = "LSP Rename" },
|
||||||
|
{ "<leader>a", desc = "Code Actions (Rust)" },
|
||||||
|
{ "<leader><leader>f", desc = "Format Code" },
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Register LSP mappings (global, not buffer-specific)
|
||||||
|
wk.add({
|
||||||
|
{ "gD", desc = "Go to Declaration" },
|
||||||
|
{ "gd", desc = "Go to Definition" },
|
||||||
|
{ "gi", desc = "Go to Implementation" },
|
||||||
|
{ "gr", desc = "Find References" },
|
||||||
|
{ "K", desc = "Hover Documentation" },
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Register German keyboard specific mappings
|
||||||
|
wk.add({
|
||||||
|
{ "ü", desc = "Jump to previous paragraph {" },
|
||||||
|
{ "+", desc = "Jump to next paragraph }" },
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Register buffer navigation
|
||||||
|
wk.add({
|
||||||
|
{ "<S-h>", desc = "Previous Buffer" },
|
||||||
|
{ "<S-l>", desc = "Next Buffer" },
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Register Telescope
|
||||||
|
wk.add({
|
||||||
|
{ "<c-t>", desc = "Live Grep" },
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Register Floaterm
|
||||||
|
wk.add({
|
||||||
|
{ "<F7>", desc = "New Float Terminal" },
|
||||||
|
{ "<F8>", desc = "Previous Float Terminal" },
|
||||||
|
{ "<F9>", desc = "Next Float Terminal" },
|
||||||
|
{ "<F12>", desc = "Toggle Float Terminal" },
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
local status_ok, _ = pcall(require, "lspconfig")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
require "user.lsp.mason"
|
|
||||||
require("user.lsp.handlers").setup()
|
|
||||||
require "user.lsp.null-ls"
|
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"label": "Lock",
|
||||||
|
"exec": "hyprlock",
|
||||||
|
"icon": "/usr/share/nwg-bar/images/system-lock-screen.svg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Logout",
|
||||||
|
"exec": "hyprctl dispatch exit 1",
|
||||||
|
"icon": "/usr/share/nwg-bar/images/system-log-out.svg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Reboot",
|
||||||
|
"exec": "systemctl reboot",
|
||||||
|
"icon": "/usr/share/nwg-bar/images/system-reboot.svg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Shutdown",
|
||||||
|
"exec": "systemctl -i poweroff",
|
||||||
|
"icon": "/usr/share/nwg-bar/images/system-shutdown.svg"
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
window {
|
||||||
|
background-color: rgba (0, 0, 0, 00)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Outer bar container, takes all the window width/height */
|
||||||
|
#outer-box {
|
||||||
|
margin: 0px
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inner bar container, surrounds buttons */
|
||||||
|
/* Cursor Dark: #181818 panel, #cccccc outline */
|
||||||
|
#inner-box {
|
||||||
|
background-color: rgba (24, 24, 24, 1);
|
||||||
|
border-radius: 10px;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 2px;
|
||||||
|
border-color: rgba (204, 204, 204, 0.7);
|
||||||
|
padding: 10px;
|
||||||
|
margin: 10px
|
||||||
|
}
|
||||||
|
|
||||||
|
button, image {
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
|
box-shadow: none
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
margin: 5px
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
background-color: rgba (204, 204, 204, 0.1)
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"export-settings-ini": true,
|
||||||
|
"export-gtkrc-20": true,
|
||||||
|
"export-index-theme": true,
|
||||||
|
"export-xsettingsd": true,
|
||||||
|
"export-gtk4-symlinks": true,
|
||||||
|
"flatpak-export-gtk-theme-override": false,
|
||||||
|
"flatpak-export-icon-theme-override": false,
|
||||||
|
"flatpak-install-current-gtk-theme": false
|
||||||
|
}
|
||||||
@@ -1 +1,118 @@
|
|||||||
@theme "/usr/share/rofi/themes/android_notification.rasi"
|
configuration {
|
||||||
|
|
||||||
|
display-drun: "Apps";
|
||||||
|
display-window: "Windows";
|
||||||
|
font: "HackJBMLigatured-Regular 11";
|
||||||
|
modi: "combi,run,drun";
|
||||||
|
|
||||||
|
show-icons: true;
|
||||||
|
icon-theme: "Papirus-Dark";
|
||||||
|
}
|
||||||
|
|
||||||
|
@theme "/dev/null"
|
||||||
|
|
||||||
|
/* Cursor Dark */
|
||||||
|
* {
|
||||||
|
bgdark: #181818;
|
||||||
|
bgalt: #2b2b2b;
|
||||||
|
bgraised: #313131;
|
||||||
|
fg0: #cccccc;
|
||||||
|
fgalt: #6e6e6e;
|
||||||
|
|
||||||
|
accent-color: #2472c8;
|
||||||
|
urgent-color: #e2c08d;
|
||||||
|
|
||||||
|
font: "Roboto 12";
|
||||||
|
|
||||||
|
background-color: transparent;
|
||||||
|
text-color: @fg0;
|
||||||
|
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
spacing: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
element selected {
|
||||||
|
text-color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
window {
|
||||||
|
location: center;
|
||||||
|
width: 720px;
|
||||||
|
border-radius: 10px;
|
||||||
|
|
||||||
|
background-color: @bgdark;
|
||||||
|
}
|
||||||
|
|
||||||
|
mainbox {
|
||||||
|
padding: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
inputbar {
|
||||||
|
background-color: @bgalt;
|
||||||
|
border-color: @bgraised;
|
||||||
|
|
||||||
|
border: 2px;
|
||||||
|
border-radius: 8px;
|
||||||
|
|
||||||
|
padding: 8px 16px;
|
||||||
|
spacing: 8px;
|
||||||
|
children: [ prompt, entry ];
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt {
|
||||||
|
text-color: @accent-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
entry {
|
||||||
|
placeholder: "Search";
|
||||||
|
placeholder-color: @fgalt;
|
||||||
|
}
|
||||||
|
|
||||||
|
message {
|
||||||
|
margin: 12px 0 0;
|
||||||
|
border-radius: 8px;
|
||||||
|
border-color: @bgraised;
|
||||||
|
background-color: @bgraised;
|
||||||
|
}
|
||||||
|
|
||||||
|
textbox {
|
||||||
|
padding: 8px 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
listview {
|
||||||
|
background-color: transparent;
|
||||||
|
|
||||||
|
margin: 12px 0 0;
|
||||||
|
lines: 8;
|
||||||
|
columns: 1;
|
||||||
|
|
||||||
|
fixed-height: true;
|
||||||
|
}
|
||||||
|
|
||||||
|
element {
|
||||||
|
padding: 8px 16px;
|
||||||
|
spacing: 8px;
|
||||||
|
border-radius: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
element normal active {
|
||||||
|
text-color: @accent-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
element alternate active {
|
||||||
|
text-color: @accent-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
element selected normal, element selected active {
|
||||||
|
background-color: @accent-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
element-icon {
|
||||||
|
size: 1em;
|
||||||
|
vertical-align: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
element-text {
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
[Default]
|
||||||
|
save_dir=$HOME/Pictures/Screenshots
|
||||||
|
save_filename_format=swappy-%Y%m%d-%H%M%S.png
|
||||||
|
show_panel=false
|
||||||
|
line_size=5
|
||||||
|
text_size=20
|
||||||
|
text_font=sans-serif
|
||||||
|
paint_mode=brush
|
||||||
|
early_exit=true
|
||||||
|
fill_shape=false
|
||||||
|
auto_save=true
|
||||||
|
custom_color=rgba(193,125,17,1)
|
||||||
+62
-3
@@ -22,6 +22,48 @@ set -g mouse on
|
|||||||
set-option -g status-position bottom
|
set-option -g status-position bottom
|
||||||
set-option -g renumber-windows on
|
set-option -g renumber-windows on
|
||||||
|
|
||||||
|
# ==========================
|
||||||
|
# === Cursor Dark theme ===
|
||||||
|
# ==========================
|
||||||
|
# Powerline status bar, ported from nordtheme/tmux with Cursor Dark colors.
|
||||||
|
# Requires a patched (Nerd) font for the U+E0B0-E0B3 separators.
|
||||||
|
#
|
||||||
|
# bar bg #181818 raised segment #2b2b2b text #cccccc
|
||||||
|
# session #2472c8 current window / host #11a8cd
|
||||||
|
|
||||||
|
set -g status on
|
||||||
|
set -g status-interval 1
|
||||||
|
set -g status-justify left
|
||||||
|
set -g status-style "bg=#181818,fg=#cccccc"
|
||||||
|
set -g status-left-length 40
|
||||||
|
set -g status-right-length 80
|
||||||
|
|
||||||
|
#+--- Bars ---+
|
||||||
|
set -g status-left "#[fg=#ffffff,bg=#2472c8,bold] #S #[fg=#2472c8,bg=#181818,nobold,noitalics,nounderscore]"
|
||||||
|
set -g status-right "#[fg=#2b2b2b,bg=#181818,nobold,noitalics,nounderscore]#[fg=#cccccc,bg=#2b2b2b] %Y-%m-%d #[fg=#cccccc,bg=#2b2b2b,nobold,noitalics,nounderscore]#[fg=#cccccc,bg=#2b2b2b] %H:%M #[fg=#11a8cd,bg=#2b2b2b,nobold,noitalics,nounderscore]#[fg=#181818,bg=#11a8cd,bold] #H "
|
||||||
|
|
||||||
|
#+--- Windows ---+
|
||||||
|
set -g window-status-format "#[fg=#181818,bg=#2b2b2b,nobold,noitalics,nounderscore] #[fg=#cccccc,bg=#2b2b2b]#I #[fg=#cccccc,bg=#2b2b2b,nobold,noitalics,nounderscore] #[fg=#cccccc,bg=#2b2b2b]#W #F #[fg=#2b2b2b,bg=#181818,nobold,noitalics,nounderscore]"
|
||||||
|
set -g window-status-current-format "#[fg=#181818,bg=#11a8cd,nobold,noitalics,nounderscore] #[fg=#181818,bg=#11a8cd]#I #[fg=#181818,bg=#11a8cd,nobold,noitalics,nounderscore] #[fg=#181818,bg=#11a8cd]#W #F #[fg=#11a8cd,bg=#181818,nobold,noitalics,nounderscore]"
|
||||||
|
set -g window-status-separator ""
|
||||||
|
# Let the formats above own the colors; activity/bell still show via the #F flag
|
||||||
|
setw -g window-status-activity-style "none"
|
||||||
|
setw -g window-status-bell-style "none"
|
||||||
|
|
||||||
|
#+--- Panes ---+
|
||||||
|
set -g pane-border-style "bg=default,fg=#2b2b2b"
|
||||||
|
set -g pane-active-border-style "bg=default,fg=#2472c8"
|
||||||
|
set -g display-panes-colour "#666666"
|
||||||
|
set -g display-panes-active-colour "#2472c8"
|
||||||
|
|
||||||
|
#+--- Messages ---+
|
||||||
|
set -g message-style "bg=#2b2b2b,fg=#11a8cd"
|
||||||
|
set -g message-command-style "bg=#2b2b2b,fg=#11a8cd"
|
||||||
|
setw -g mode-style "bg=#264f78,fg=#e5e5e5"
|
||||||
|
|
||||||
|
#+--- Clock ---+
|
||||||
|
setw -g clock-mode-colour "#11a8cd"
|
||||||
|
|
||||||
# ================================================
|
# ================================================
|
||||||
# === Copy mode, scroll and clipboard ===
|
# === Copy mode, scroll and clipboard ===
|
||||||
# ================================================
|
# ================================================
|
||||||
@@ -92,12 +134,29 @@ bind -T copy-mode-vi MouseDown1Pane select-pane \;\
|
|||||||
# tmux show-options -g -s set-clipboard
|
# tmux show-options -g -s set-clipboard
|
||||||
# set-clipboard on|external
|
# set-clipboard on|external
|
||||||
|
|
||||||
# List of plugins
|
# ==========================
|
||||||
set -g @plugin 'tmux-plugins/tpm'
|
# === Plugins ===
|
||||||
|
# ==========================
|
||||||
|
# Nothing under ~/.tmux/plugins is tracked in git - tpm owns that directory and
|
||||||
|
# clones everything listed below itself. Do not commit the plugin folders: they
|
||||||
|
# would be checked out as empty dirs, and tpm would then skip installing them.
|
||||||
|
|
||||||
|
set -g @plugin 'tmux-plugins/tpm'
|
||||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||||
set -g @plugin "arcticicestudio/nord-tmux"
|
|
||||||
|
# tpm and its installer both resolve the plugin dir from this tmux environment
|
||||||
|
# variable, and only the tpm script itself sets it. Pin it up-front so the
|
||||||
|
# installer below already works on the very first run.
|
||||||
|
run 'tmux set-environment -g TMUX_PLUGIN_MANAGER_PATH "$HOME/.tmux/plugins/"'
|
||||||
|
|
||||||
|
# Bootstrap tpm itself on a machine that has never run it
|
||||||
|
if "test ! -d ~/.tmux/plugins/tpm" \
|
||||||
|
"run 'git clone -q --single-branch https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm'"
|
||||||
|
|
||||||
|
# Clone any declared plugin that is missing. Deliberately in the foreground, so
|
||||||
|
# plugins installed here are already on disk when tpm sources them below.
|
||||||
|
run '~/.tmux/plugins/tpm/bin/install_plugins'
|
||||||
|
|
||||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||||
run '~/.tmux/plugins/tpm/tpm'
|
run '~/.tmux/plugins/tpm/tpm'
|
||||||
|
|||||||
Submodule tmux/.tmux/plugins/nord-tmux deleted from f7b6da07ab
Submodule tmux/.tmux/plugins/tmux-sensible deleted from 25cb91f42d
Submodule tmux/.tmux/plugins/tmux-yank deleted from acfd36e4fc
Submodule tmux/.tmux/plugins/tpm deleted from 99469c4a9b
@@ -1,33 +1,45 @@
|
|||||||
{
|
{
|
||||||
"layer": "top", // Waybar at top layer
|
"layer": "top",
|
||||||
"position": "top", // Waybar position (top|bottom|left|right)
|
"position": "top",
|
||||||
"height": 34, // Waybar height (to be removed for auto height)
|
"height": 35,
|
||||||
// "width": 1280, // Waybar width
|
"spacing": 4,
|
||||||
"spacing": 4, // Gaps between modules (4px)
|
"margin-left": 10,
|
||||||
|
"margin-right": 10,
|
||||||
|
"margin-top": 10,
|
||||||
|
|
||||||
// Choose the order of the modules
|
// Choose the order of the modules
|
||||||
"modules-left": ["hyprland/workspaces"],
|
"modules-left": ["hyprland/workspaces","hyprland/window"],
|
||||||
"modules-center": ["hyprland/window"],
|
"modules-center": ["clock"],
|
||||||
"modules-right": ["idle_inhibitor", "pulseaudio", "backlight", "network", "custom/updates", "hyprland/submap", "hyprland/language", "cpu", "memory", "temperature", "battery", "tray", "clock"],
|
"modules-right": ["pulseaudio", "network", "cpu", "memory", "tray"],
|
||||||
|
|
||||||
// Modules configuration
|
// Modules configuration
|
||||||
"hyprland/workspaces": {
|
|
||||||
"disable-scroll": true,
|
"hyprland/workspaces": {
|
||||||
"on-click": "activate",
|
"disable-scroll": true,
|
||||||
// "all-outputs": false,
|
//"all-outputs": true,
|
||||||
// "format": "{name}: {icon}",
|
"on-click": "activate",
|
||||||
"format": "{name}",
|
"format": "{icon}",
|
||||||
"on-scroll-up": "hyprctl dispatch workspace m-1 > /dev/null",
|
"format-icons": {
|
||||||
"on-scroll-down": "hyprctl dispatch workspace m+1 > /dev/null",
|
"empty": "",
|
||||||
"format-icons": {
|
//"default": "",
|
||||||
"1": "",
|
"default": "",
|
||||||
"2": "",
|
"active": "",
|
||||||
"3": "",
|
}
|
||||||
"4": "",
|
},
|
||||||
"5": "",
|
|
||||||
"urgent": "",
|
// "hyprland/workspaces": {
|
||||||
"focused": "",
|
// "format": "{name}",
|
||||||
"default": ""
|
// "persistent_workspaces": {
|
||||||
}
|
// "1": [],
|
||||||
},
|
// "2": [],
|
||||||
|
// "3": [],
|
||||||
|
// "4": [],
|
||||||
|
// "5": []
|
||||||
|
// },
|
||||||
|
// "all-outputs": true,
|
||||||
|
// "active-only": false,
|
||||||
|
// "sort-by-number": true
|
||||||
|
// },
|
||||||
"keyboard-state": {
|
"keyboard-state": {
|
||||||
"numlock": false,
|
"numlock": false,
|
||||||
"capslock": false,
|
"capslock": false,
|
||||||
@@ -38,56 +50,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hyprland/window": {
|
"hyprland/window": {
|
||||||
"max-length": 50,
|
"max-length": 64,
|
||||||
"separate-outputs": true
|
"separate-outputs": true
|
||||||
},
|
},
|
||||||
"hyprland/language": {
|
|
||||||
"format": "{}",
|
|
||||||
"max-length": 18
|
|
||||||
},
|
|
||||||
"sway/mode": {
|
|
||||||
"format": "<span style=\"italic\">{}</span>"
|
|
||||||
},
|
|
||||||
"sway/scratchpad": {
|
|
||||||
"format": "{icon} {count}",
|
|
||||||
"show-empty": false,
|
|
||||||
"format-icons": ["", ""],
|
|
||||||
"tooltip": true,
|
|
||||||
"tooltip-format": "{app}: {title}"
|
|
||||||
},
|
|
||||||
"mpd": {
|
|
||||||
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
|
|
||||||
"format-disconnected": "Disconnected ",
|
|
||||||
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
|
|
||||||
"unknown-tag": "N/A",
|
|
||||||
"interval": 2,
|
|
||||||
"consume-icons": {
|
|
||||||
"on": " "
|
|
||||||
},
|
|
||||||
"random-icons": {
|
|
||||||
"off": "<span color=\"#f53c3c\"></span> ",
|
|
||||||
"on": " "
|
|
||||||
},
|
|
||||||
"repeat-icons": {
|
|
||||||
"on": " "
|
|
||||||
},
|
|
||||||
"single-icons": {
|
|
||||||
"on": "1 "
|
|
||||||
},
|
|
||||||
"state-icons": {
|
|
||||||
"paused": "",
|
|
||||||
"playing": ""
|
|
||||||
},
|
|
||||||
"tooltip-format": "MPD (connected)",
|
|
||||||
"tooltip-format-disconnected": "MPD (disconnected)"
|
|
||||||
},
|
|
||||||
"idle_inhibitor": {
|
|
||||||
"format": "{icon}",
|
|
||||||
"format-icons": {
|
|
||||||
"activated": "",
|
|
||||||
"deactivated": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tray": {
|
"tray": {
|
||||||
// "icon-size": 21,
|
// "icon-size": 21,
|
||||||
"spacing": 0
|
"spacing": 0
|
||||||
@@ -104,14 +70,6 @@
|
|||||||
"memory": {
|
"memory": {
|
||||||
"format": "{}% "
|
"format": "{}% "
|
||||||
},
|
},
|
||||||
"temperature": {
|
|
||||||
// "thermal-zone": 2,
|
|
||||||
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
|
|
||||||
"critical-threshold": 80,
|
|
||||||
// "format-critical": "{temperatureC}°C {icon}",
|
|
||||||
"format": "{temperatureC}°C {icon}",
|
|
||||||
"format-icons": ["", "", ""]
|
|
||||||
},
|
|
||||||
"backlight": {
|
"backlight": {
|
||||||
// "device": "acpi_video1",
|
// "device": "acpi_video1",
|
||||||
"format": "{percent}% {icon}",
|
"format": "{percent}% {icon}",
|
||||||
@@ -135,7 +93,6 @@
|
|||||||
"bat": "BAT2"
|
"bat": "BAT2"
|
||||||
},
|
},
|
||||||
"network": {
|
"network": {
|
||||||
"interface": "enp4s0", // (Optional) To force the use of this interface
|
|
||||||
"format-wifi": "{essid} ",
|
"format-wifi": "{essid} ",
|
||||||
"format-ethernet": "{ipaddr}/{cidr} ",
|
"format-ethernet": "{ipaddr}/{cidr} ",
|
||||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||||
@@ -144,21 +101,21 @@
|
|||||||
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||||
},
|
},
|
||||||
"pulseaudio": {
|
"pulseaudio": {
|
||||||
// "scroll-step": 10, // %, can be a float
|
// "scroll-step": 1, // %, can be a float
|
||||||
"format": "{volume}%{icon} {format_source}",
|
"format": "{volume}% {icon}",
|
||||||
"format-bluetooth": "{volume}% {icon} {format_source}",
|
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||||
"format-bluetooth-muted": " {icon} {format_source}",
|
"format-bluetooth-muted": " {icon} {format_source}",
|
||||||
"format-muted": " {format_source}",
|
"format-muted": " {format_source}",
|
||||||
"format-source": "{volume}% ",
|
"format-source": "{volume}% ",
|
||||||
"format-source-muted": "",
|
"format-source-muted": "",
|
||||||
"format-icons": {
|
"format-icons": {
|
||||||
"headphone": "",
|
"headphone": "",
|
||||||
"hands-free": "",
|
"hands-free": "",
|
||||||
"headset": "",
|
"headset": "",
|
||||||
"phone": "",
|
"phone": "",
|
||||||
"portable": "",
|
"portable": "",
|
||||||
"car": "",
|
"car": "",
|
||||||
"default": ["", "", ""]
|
"default": ["", "", ""]
|
||||||
},
|
},
|
||||||
"on-click": "pavucontrol"
|
"on-click": "pavucontrol"
|
||||||
},
|
},
|
||||||
@@ -166,13 +123,13 @@
|
|||||||
"tooltip": false,
|
"tooltip": false,
|
||||||
"format": "{} {icon}",
|
"format": "{} {icon}",
|
||||||
"format-icons": {
|
"format-icons": {
|
||||||
"notification": "<span foreground='red'><sup></sup></span> ",
|
"notification": "<span foreground='#f14c4c'><sup></sup></span> ",
|
||||||
"none": "",
|
"none": "",
|
||||||
"dnd-notification": "<span foreground='red'><sup></sup></span> ",
|
"dnd-notification": "<span foreground='#f14c4c'><sup></sup></span> ",
|
||||||
"dnd-none": "",
|
"dnd-none": "",
|
||||||
"inhibited-notification": "<span foreground='red'><sup></sup></span> ",
|
"inhibited-notification": "<span foreground='#f14c4c'><sup></sup></span> ",
|
||||||
"inhibited-none": "",
|
"inhibited-none": "",
|
||||||
"dnd-inhibited-notification": "<span foreground='red'><sup></sup></span> ",
|
"dnd-inhibited-notification": "<span foreground='#f14c4c'><sup></sup></span> ",
|
||||||
"dnd-inhibited-none": ""
|
"dnd-inhibited-none": ""
|
||||||
},
|
},
|
||||||
"return-type": "json",
|
"return-type": "json",
|
||||||
@@ -189,8 +146,15 @@
|
|||||||
"has-updates": "",
|
"has-updates": "",
|
||||||
"updated": ""
|
"updated": ""
|
||||||
},
|
},
|
||||||
"exec-if": "which waybar-module-pacman-updates",
|
"exec-if": "which waybar-updates",
|
||||||
"exec": "waybar-module-pacman-updates --interval-seconds 5 --network-interval-seconds 300"
|
"exec": "waybar-updates --interval-seconds 5 --network-interval-seconds 300"
|
||||||
|
},
|
||||||
|
"idle_inhibitor": {
|
||||||
|
"format": "{icon}",
|
||||||
|
"format-icons": {
|
||||||
|
"activated": "",
|
||||||
|
"deactivated": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,100 +1,95 @@
|
|||||||
@define-color base00 #181818;
|
/* Cursor Dark */
|
||||||
@define-color base01 #2b2e37;
|
@define-color bg_dim #141414;
|
||||||
@define-color base02 #3b3e47;
|
@define-color bg0 #181818;
|
||||||
@define-color base03 #585858;
|
@define-color bg2 #2b2b2b;
|
||||||
@define-color base04 #b8b8b8;
|
@define-color fg #cccccc;
|
||||||
@define-color base05 #d8d8d8;
|
@define-color red #f14c4c;
|
||||||
@define-color base06 #e8e8e8;
|
@define-color blue #3b8eea;
|
||||||
@define-color base07 #f8f8f8;
|
@define-color orange #e2c08d;
|
||||||
@define-color base08 #ab4642;
|
@define-color bg4 #2472c8;
|
||||||
@define-color base09 #dc9656;
|
|
||||||
@define-color base0A #f7ca88;
|
|
||||||
@define-color base0B #a1b56c;
|
|
||||||
@define-color base0C #86c1b9;
|
|
||||||
@define-color base0D #7cafc2;
|
|
||||||
@define-color base0E #ba8baf;
|
|
||||||
@define-color base0F #a16946;
|
|
||||||
|
|
||||||
* {
|
* {
|
||||||
transition: none;
|
transition: none;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
#waybar {
|
#waybar {
|
||||||
font-family: 'Source Code Pro', sans-serif;
|
font-family: 'Hack JBM Ligatured', "Font Awesome 6 Free";
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: @base04;
|
color: @fg;
|
||||||
background: @base01;
|
border-radius: 10px;
|
||||||
|
background: @bg0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces {
|
#workspaces {
|
||||||
margin: 0 4px;
|
margin: 0 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button {
|
#workspaces button {
|
||||||
margin: 4px 0;
|
margin: 4px 0;
|
||||||
padding: 0 4px;
|
padding: 0 4px;
|
||||||
color: @base05;
|
color: @fg;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.visible {
|
#workspaces button.visible {
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.active {
|
#workspaces button.active {
|
||||||
border-radius: 4px;
|
border-radius: 10px;
|
||||||
background-color: @base02;
|
background-color: @bg4;
|
||||||
|
/* @fg on the accent blue is too low-contrast to read */
|
||||||
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.urgent {
|
#workspaces button.urgent {
|
||||||
color: rgba(238, 46, 36, 1);
|
color: @red;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tray {
|
#tray {
|
||||||
margin: 4px 4px 4px 4px;
|
margin: 4px 4px 4px 4px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
background-color: @base02;
|
background-color: @bg2;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tray * {
|
#tray * {
|
||||||
padding: 0 6px;
|
padding: 0 6px;
|
||||||
border-left: 1px solid @base00;
|
border-left: 1px solid @bg_dim;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tray *:first-child {
|
#tray *:first-child {
|
||||||
border-left: none;
|
border-left: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
#mode, #battery, #cpu, #memory, #network, #pulseaudio, #idle_inhibitor, #backlight, #custom-storage, #custom-updates, #custom-weather, #custom-mail, #clock, #temperature, #language{
|
#mode, #battery, #cpu, #memory, #network, #pulseaudio, #idle_inhibitor, #backlight, #custom-storage, #custom-updates, #custom-weather, #custom-mail, #clock, #temperature, #language{
|
||||||
margin: 4px 2px;
|
margin: 4px 2px;
|
||||||
padding: 0 6px;
|
padding: 0 6px;
|
||||||
background-color: @base02;
|
background-color: @bg2;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
min-width: 20px;
|
min-width: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pulseaudio.muted {
|
#pulseaudio.muted {
|
||||||
color: @base0F;
|
color: @orange;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pulseaudio.bluetooth {
|
#pulseaudio.bluetooth {
|
||||||
color: @base0C;
|
color: @blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
#clock {
|
#clock {
|
||||||
margin-left: 0px;
|
margin-left: 0px;
|
||||||
margin-right: 4px;
|
margin-right: 4px;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
#temperature.critical {
|
#temperature.critical {
|
||||||
color: @base0F;
|
color: @orange;
|
||||||
}
|
}
|
||||||
|
|
||||||
#window {
|
#window {
|
||||||
font-size: 0.9em;
|
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-family: sans-serif;
|
margin-left:20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#language {
|
#language {
|
||||||
|
|||||||
@@ -13,3 +13,53 @@ map J zoom out
|
|||||||
map i recolor
|
map i recolor
|
||||||
map p print
|
map p print
|
||||||
map g goto top
|
map g goto top
|
||||||
|
|
||||||
|
# ==========================
|
||||||
|
# === Cursor Dark ===
|
||||||
|
# ==========================
|
||||||
|
# bg #181818 | raised #2b2b2b | popup #202020 | text #cccccc
|
||||||
|
# accent #2472c8 | selection #264f78
|
||||||
|
|
||||||
|
# Chrome
|
||||||
|
set default-bg "#181818"
|
||||||
|
set default-fg "#cccccc"
|
||||||
|
set statusbar-bg "#2b2b2b"
|
||||||
|
set statusbar-fg "#cccccc"
|
||||||
|
set inputbar-bg "#181818"
|
||||||
|
set inputbar-fg "#cccccc"
|
||||||
|
set render-loading-bg "#181818"
|
||||||
|
set render-loading-fg "#9d9d9d"
|
||||||
|
|
||||||
|
# Notifications. Error/warning backgrounds are VS Code's input-validation
|
||||||
|
# colors, so the error tint matches dunst's critical notifications.
|
||||||
|
set notification-bg "#2b2b2b"
|
||||||
|
set notification-fg "#cccccc"
|
||||||
|
set notification-error-bg "#5a1d1d"
|
||||||
|
set notification-error-fg "#ffffff"
|
||||||
|
set notification-warning-bg "#352a05"
|
||||||
|
set notification-warning-fg "#ffffff"
|
||||||
|
|
||||||
|
# Completion and index reuse the popup/selection colors from nvim
|
||||||
|
set completion-bg "#202020"
|
||||||
|
set completion-fg "#cccccc"
|
||||||
|
set completion-group-bg "#181818"
|
||||||
|
set completion-group-fg "#9d9d9d"
|
||||||
|
set completion-highlight-bg "#264f78"
|
||||||
|
set completion-highlight-fg "#ffffff"
|
||||||
|
set index-bg "#181818"
|
||||||
|
set index-fg "#cccccc"
|
||||||
|
set index-active-bg "#264f78"
|
||||||
|
set index-active-fg "#ffffff"
|
||||||
|
|
||||||
|
# Search: every match subtle, the current one in the accent blue
|
||||||
|
set highlight-color "#264f78"
|
||||||
|
set highlight-active-color "#2472c8"
|
||||||
|
|
||||||
|
# Render the document itself dark; 'i' (mapped above) toggles it back off.
|
||||||
|
# Despite the names, lightcolor is what LIGHT areas become (the page
|
||||||
|
# background) and darkcolor is what DARK areas become (the text).
|
||||||
|
set recolor true
|
||||||
|
set recolor-lightcolor "#181818"
|
||||||
|
set recolor-darkcolor "#cccccc"
|
||||||
|
# Keep colored figures and links recognisable instead of crushing them to mono
|
||||||
|
set recolor-keephue true
|
||||||
|
|||||||
Reference in New Issue
Block a user