Compare commits
56
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a7c4dc8407 | ||
|
|
42c44aec68 | ||
|
|
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
|
||||
|
||||
cmp.setup {
|
||||
--snippet = {
|
||||
-- expand = function(args)
|
||||
-- luasnip.lsp_expand(args.body) -- For `luasnip` users.
|
||||
-- end,
|
||||
--},
|
||||
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body) -- For `luasnip` users.
|
||||
vim.fn["vsnip#anonymous"](args.body)
|
||||
end,
|
||||
},
|
||||
mapping = {
|
||||
["<C-k>"] = cmp.mapping.select_prev_item(),
|
||||
["<C-j>"] = cmp.mapping.select_next_item(),
|
||||
["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }),
|
||||
["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }),
|
||||
["<C-p>"] = cmp.mapping.select_prev_item(),
|
||||
["<C-n>"] = cmp.mapping.select_next_item(),
|
||||
['<C-S-f>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
["<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-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.menu = ({
|
||||
nvim_lsp = "[LSP]",
|
||||
luasnip = "[Snippet]",
|
||||
buffer = "[Buffer]",
|
||||
luasnip = "[Snip]",
|
||||
buffer = "[Buff]",
|
||||
path = "[Path]",
|
||||
vsnip = "[VSnip]",
|
||||
})[entry.source.name]
|
||||
return vim_item
|
||||
end,
|
||||
},
|
||||
sources = {
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "luasnip" },
|
||||
{ name = "buffer" },
|
||||
{ name = "path" },
|
||||
},
|
||||
{ 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
|
||||
},
|
||||
confirm_opts = {
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = false,
|
||||
+1
-1
@@ -61,6 +61,7 @@ local function lsp_highlight_document(client)
|
||||
end
|
||||
|
||||
local function lsp_keymaps(bufnr)
|
||||
vim.cmd [[ command! Format execute 'lua vim.lsp.buf.format()' ]]
|
||||
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.definition()<CR>", opts)
|
||||
@@ -81,7 +82,6 @@ local function lsp_keymaps(bufnr)
|
||||
-- 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", "<leader>q", "<cmd>lua vim.diagnostic.setloclist()<CR>", opts)
|
||||
vim.cmd [[ command! Format execute 'lua vim.lsp.buf.format()' ]]
|
||||
end
|
||||
|
||||
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_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.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()'
|
||||
+11
-2
@@ -47,13 +47,20 @@ return packer.startup(function(use)
|
||||
|
||||
-- Colorschemes
|
||||
use "shaunsingh/nord.nvim"
|
||||
|
||||
-- cmp plugins
|
||||
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-buffer" -- buffer completions
|
||||
use "hrsh7th/vim-vsnip"
|
||||
use "hrsh7th/cmp-cmdline" -- cmdline completions
|
||||
use "saadparwaiz1/cmp_luasnip" -- snippet completions
|
||||
use "hrsh7th/cmp-nvim-lsp"
|
||||
|
||||
-- snippets
|
||||
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 'jose-elias-alvarez/null-ls.nvim' -- LSP diagnostics and code actions
|
||||
|
||||
use 'simrat39/rust-tools.nvim'
|
||||
|
||||
-- Telescope
|
||||
use "nvim-telescope/telescope.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({
|
||||
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
|
||||
highlight = {
|
||||
enable = true, -- false will disable the whole extension
|
||||
disable = { "css" }, -- list of language that will be disabled
|
||||
},
|
||||
highlight = {
|
||||
enable = true,
|
||||
additional_vim_regex_highlighting=false,
|
||||
},
|
||||
ident = { enable = true },
|
||||
rainbow = {
|
||||
enable = true,
|
||||
extended_mode = true,
|
||||
max_file_lines = nil,
|
||||
},
|
||||
autopairs = {
|
||||
enable = true,
|
||||
},
|
||||
indent = { enable = true, disable = { "python", "css" } },
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[Added Associations]
|
||||
application/pdf=org.pwmt.zathura.desktop;
|
||||
application/pdf=userapp-librewolf.desktop;
|
||||
application/x-extension-htm=userapp-librewolf.desktop;
|
||||
application/x-extension-html=userapp-librewolf.desktop;
|
||||
application/x-extension-shtml=userapp-librewolf.desktop;
|
||||
@@ -12,34 +12,60 @@ x-scheme-handler/chrome=userapp-librewolf.desktop;
|
||||
x-scheme-handler/ftp=userapp-librewolf.desktop;
|
||||
x-scheme-handler/http=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/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;
|
||||
application/zip=xarchiver.desktop;teamspeak3.desktop;
|
||||
x-scheme-handler/webcal=userapp-Thunderbird-ID7522.desktop;
|
||||
x-scheme-handler/webcals=userapp-Thunderbird-ID7522.desktop;
|
||||
|
||||
[Default Applications]
|
||||
application/pdf=org.pwmt.zathura.desktop
|
||||
application/pdf=librewolf.desktop
|
||||
application/x-extension-htm=librewolf.desktop
|
||||
application/x-extension-html=librewolf.desktop
|
||||
application/x-extension-shtml=librewolf.desktop
|
||||
application/x-extension-xht=librewolf.desktop
|
||||
application/x-extension-xhtml=librewolf.desktop
|
||||
application/xhtml+xml=librewolf.desktop
|
||||
message/rfc822=userapp-Thunderbird-86ACV1.desktop
|
||||
message/rfc822=userapp-Thunderbird-P5H422.desktop
|
||||
text/html=librewolf.desktop
|
||||
x-scheme-handler/bitwarden=bitwarden.desktop
|
||||
x-scheme-handler/chrome=librewolf.desktop
|
||||
x-scheme-handler/ftp=librewolf.desktop
|
||||
x-scheme-handler/http=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/msteams=teams.desktop
|
||||
x-scheme-handler/eclipse+command x-scheme-handler/eclipse+mpc=_usr_lib_eclipse-modeling_.desktop
|
||||
x-scheme-handler/mid=userapp-Thunderbird-86ACV1.desktop
|
||||
image/png=nsxiv.desktop
|
||||
image/jpg=nsxiv.desktop
|
||||
x-scheme-handler/mid=userapp-Thunderbird-P5H422.desktop
|
||||
image/png=imv-dir.desktop
|
||||
image/jpg=imv-dir.desktop
|
||||
application/json=codium.desktop
|
||||
application/xml=codium.desktop
|
||||
inode/directory=file.desktop;pcmanfm.desktop
|
||||
inode/directory=pcmanfm.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
|
||||
|
||||
+16
-11
@@ -33,7 +33,7 @@
|
||||
origin = top-right
|
||||
|
||||
# Offset from the origin
|
||||
offset = 15x48
|
||||
offset = 15x15
|
||||
|
||||
# Scale factor. It is auto-detected if value is 0.
|
||||
scale = 0
|
||||
@@ -92,10 +92,11 @@
|
||||
|
||||
# Defines width in pixels of frame around the notification window.
|
||||
# Set to 0 to disable.
|
||||
frame_width = 5
|
||||
frame_width = 2
|
||||
|
||||
# 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.
|
||||
# If value is greater than 0, separator_height will be ignored and a border
|
||||
@@ -201,7 +202,7 @@
|
||||
enable_recursive_icon_lookup = true
|
||||
|
||||
# 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.
|
||||
# icon_theme = "Adwaita, breeze"
|
||||
|
||||
@@ -250,7 +251,7 @@
|
||||
# corners.
|
||||
# The radius will be automatically lowered if it exceeds half of the
|
||||
# notification height to avoid clipping text and/or icons.
|
||||
corner_radius = 0
|
||||
corner_radius = 10
|
||||
|
||||
# Ignore the dbus closeNotification message.
|
||||
# Useful to enforce the timeout set by dunst configuration. Without this
|
||||
@@ -313,23 +314,27 @@
|
||||
[urgency_low]
|
||||
# IMPORTANT: colors have to be defined in quotation marks.
|
||||
# Otherwise the "#" and following would be interpreted as a comment.
|
||||
background = "#2E3440"
|
||||
foreground = "#888888"
|
||||
background = "#181818"
|
||||
foreground = "#9d9d9d"
|
||||
frame_color = "#2b2b2b"
|
||||
timeout = 10
|
||||
# Icon for notifications with low urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_normal]
|
||||
background = "#3b4252"
|
||||
foreground = "#ffffff"
|
||||
background = "#181818"
|
||||
foreground = "#cccccc"
|
||||
frame_color = "#2472c8"
|
||||
timeout = 10
|
||||
# Icon for notifications with normal urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[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"
|
||||
frame_color = "#ff0000"
|
||||
frame_color = "#f14c4c"
|
||||
timeout = 0
|
||||
# Icon for notifications with critical urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
@@ -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 ];
|
||||
# startx
|
||||
end
|
||||
|
||||
# uncomment to automatically start tmux
|
||||
if status is-interactive
|
||||
and not set -q TMUX
|
||||
# exec tmux
|
||||
start-hyprland
|
||||
end
|
||||
|
||||
fish_ssh_agent
|
||||
|
||||
umask 0077
|
||||
|
||||
function q
|
||||
exit
|
||||
end
|
||||
|
||||
function ff
|
||||
fastfetch -l ~/.config/fish/img/ff.png -c neofetch.jsonc
|
||||
end
|
||||
|
||||
function lf
|
||||
command lfub
|
||||
#fastfetch -l ~/.config/fish/img/ff.png -c neofetch.jsonc
|
||||
fastfetch --logo-type kitty-direct --logo ~/.config/fish/img/ff.png -c neofetch.jsonc
|
||||
end
|
||||
|
||||
function cls
|
||||
@@ -51,15 +44,7 @@ function tree
|
||||
end
|
||||
|
||||
function ds
|
||||
command du -sch * | sort -rh
|
||||
end
|
||||
|
||||
function hv
|
||||
command nmcli --ask connection up "HP VPN"
|
||||
end
|
||||
|
||||
function hvd
|
||||
command nmcli connection down "HP VPN"
|
||||
command du -sch (ls -A) | sort -rh
|
||||
end
|
||||
|
||||
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_git_prompt_show_informative_status 1
|
||||
|
||||
# Fish command and parameter colors
|
||||
set fish_color_command green
|
||||
set fish_color_param $fish_color_normal
|
||||
# Command and parameter colors come from fish_variables (Cursor Dark)
|
||||
|
||||
# Git prompt
|
||||
set __fish_git_prompt_showdirtystate 'yes'
|
||||
set __fish_git_prompt_showupstream 'yes'
|
||||
|
||||
set __fish_git_prompt_color_branch brown
|
||||
set __fish_git_prompt_color_dirtystate FCBC47
|
||||
set __fish_git_prompt_color_stagedstate yellow
|
||||
set __fish_git_prompt_color_upstream cyan
|
||||
set __fish_git_prompt_color_cleanstate green
|
||||
set __fish_git_prompt_color_invalidstate red
|
||||
# Colors mirror Cursor's git decorations
|
||||
set __fish_git_prompt_color_branch 569CD6
|
||||
set __fish_git_prompt_color_dirtystate E2C08D
|
||||
set __fish_git_prompt_color_stagedstate 73C991
|
||||
set __fish_git_prompt_color_upstream 4EC9B0
|
||||
set __fish_git_prompt_color_cleanstate 73C991
|
||||
set __fish_git_prompt_color_invalidstate E4676B
|
||||
|
||||
# Git Characters
|
||||
set __fish_git_prompt_char_dirtystate '*'
|
||||
@@ -41,9 +40,9 @@ end
|
||||
|
||||
function _prompt_color_for_status
|
||||
if test $argv[1] -eq 0
|
||||
echo magenta
|
||||
echo C586C0
|
||||
else
|
||||
echo red
|
||||
echo F14C4C
|
||||
end
|
||||
end
|
||||
|
||||
@@ -51,7 +50,7 @@ function fish_prompt
|
||||
set -l last_status $status
|
||||
|
||||
# username and hostname
|
||||
_print_in_color "┏["$USER"@"(prompt_hostname)"]" blue
|
||||
_print_in_color "┏["$USER"@"(prompt_hostname)"]" 569CD6
|
||||
|
||||
# current working dir
|
||||
_print_in_color " "(prompt_pwd) $fish_color_cwd
|
||||
@@ -59,10 +58,10 @@ function fish_prompt
|
||||
__fish_git_prompt " (%s)"
|
||||
|
||||
# beginning of new line
|
||||
_print_in_color "\n┗" blue
|
||||
_print_in_color "\n┗" 569CD6
|
||||
|
||||
# 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
|
||||
_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]
|
||||
gtk-application-prefer-dark-theme=true
|
||||
gtk-button-images=true
|
||||
gtk-cursor-theme-name=Adwaita
|
||||
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-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-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-theme-name="Nordic-darker"
|
||||
gtk-enable-animations=1
|
||||
gtk-primary-button-warps-slider=0
|
||||
gtk-toolbar-style=3
|
||||
gtk-menu-images=1
|
||||
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||
gtk-button-images=1
|
||||
gtk-cursor-theme-name="Adwaita"
|
||||
gtk-icon-theme-name="Nordzy-green-dark"
|
||||
gtk-font-name="Noto Sans, 10"
|
||||
gtk-application-prefer-dark-theme = true
|
||||
gtk-modules=appmenu-gtk-module
|
||||
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"
|
||||
|
||||
@@ -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 = , /home/n0x/Nextcloud/Pictures/Wallpapers/MRR.jpg
|
||||
wallpaper {
|
||||
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_family family="Hack JBM Ligatured"
|
||||
font_family family="Berkeley Mono Regular"
|
||||
italic_font auto
|
||||
bold_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
|
||||
background_opacity 0.85
|
||||
|
||||
# The foreground color
|
||||
foreground #d8dee9
|
||||
foreground #cccccc
|
||||
background #181818
|
||||
selection_foreground none
|
||||
selection_background #264f78
|
||||
|
||||
# The background color
|
||||
background #2e3440
|
||||
cursor #aeafad
|
||||
cursor_text_color #181818
|
||||
|
||||
# The foreground for selections
|
||||
selection_foreground #81a1c1
|
||||
url_color #3b8eea
|
||||
|
||||
# The background for selections
|
||||
selection_background #eceff4
|
||||
active_border_color #2472c8
|
||||
inactive_border_color #2b2b2b
|
||||
bell_border_color #e5e510
|
||||
visual_bell_color none
|
||||
|
||||
# The cursor color
|
||||
cursor #e5e9f0
|
||||
wayland_titlebar_color system
|
||||
macos_titlebar_color system
|
||||
|
||||
# Set up term-colors (Nord Theme)
|
||||
color0 #3b4252
|
||||
color8 #4c566a
|
||||
active_tab_background #1f1f1f
|
||||
active_tab_foreground #ffffff
|
||||
inactive_tab_background #181818
|
||||
inactive_tab_foreground #9d9d9d
|
||||
tab_bar_background #181818
|
||||
tab_bar_margin_color none
|
||||
|
||||
color1 #bf616a
|
||||
color9 #bf616a
|
||||
# Set up term-colors (Cursor Dark)
|
||||
|
||||
color2 #a3be8c
|
||||
color10 #a3be8c
|
||||
#: black
|
||||
color0 #000000
|
||||
color8 #666666
|
||||
|
||||
color3 #ebcb8b
|
||||
color11 #ebcb8b
|
||||
#: red
|
||||
color1 #cd3131
|
||||
color9 #f14c4c
|
||||
|
||||
color4 #81a1c1
|
||||
color12 #81a1c1
|
||||
#: green
|
||||
color2 #0dbc79
|
||||
color10 #23d18b
|
||||
|
||||
color5 #b48ead
|
||||
color13 #b48ead
|
||||
#: yellow
|
||||
color3 #e5e510
|
||||
color11 #f5f543
|
||||
|
||||
color6 #88c0d0
|
||||
color14 #8fbcbb
|
||||
#: blue
|
||||
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)
|
||||
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.
|
||||
window_border_width 0
|
||||
window_margin_width 30
|
||||
|
||||
|
||||
# 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
|
||||
window_margin_width 20
|
||||
|
||||
|
||||
# Manage font size
|
||||
|
||||
+36
-12
@@ -1,12 +1,36 @@
|
||||
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 "keymap"
|
||||
require "options"
|
||||
require "lazy-setup"
|
||||
require "vars"
|
||||
|
||||
-- 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 })
|
||||
]])
|
||||
|
||||
@@ -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 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 ===
|
||||
# ================================================
|
||||
@@ -92,12 +134,29 @@ bind -T copy-mode-vi MouseDown1Pane select-pane \;\
|
||||
# tmux show-options -g -s set-clipboard
|
||||
# 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-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)
|
||||
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
|
||||
"position": "top", // Waybar position (top|bottom|left|right)
|
||||
"height": 34, // Waybar height (to be removed for auto height)
|
||||
// "width": 1280, // Waybar width
|
||||
"spacing": 4, // Gaps between modules (4px)
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"height": 35,
|
||||
"spacing": 4,
|
||||
"margin-left": 10,
|
||||
"margin-right": 10,
|
||||
"margin-top": 10,
|
||||
|
||||
// Choose the order of the modules
|
||||
"modules-left": ["hyprland/workspaces"],
|
||||
"modules-center": ["hyprland/window"],
|
||||
"modules-right": ["idle_inhibitor", "pulseaudio", "backlight", "network", "custom/updates", "hyprland/submap", "hyprland/language", "cpu", "memory", "temperature", "battery", "tray", "clock"],
|
||||
"modules-left": ["hyprland/workspaces","hyprland/window"],
|
||||
"modules-center": ["clock"],
|
||||
"modules-right": ["pulseaudio", "network", "cpu", "memory", "tray"],
|
||||
|
||||
// Modules configuration
|
||||
"hyprland/workspaces": {
|
||||
"disable-scroll": true,
|
||||
"on-click": "activate",
|
||||
// "all-outputs": false,
|
||||
// "format": "{name}: {icon}",
|
||||
"format": "{name}",
|
||||
"on-scroll-up": "hyprctl dispatch workspace m-1 > /dev/null",
|
||||
"on-scroll-down": "hyprctl dispatch workspace m+1 > /dev/null",
|
||||
"format-icons": {
|
||||
"1": "",
|
||||
"2": "",
|
||||
"3": "",
|
||||
"4": "",
|
||||
"5": "",
|
||||
"urgent": "",
|
||||
"focused": "",
|
||||
"default": ""
|
||||
}
|
||||
},
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"disable-scroll": true,
|
||||
//"all-outputs": true,
|
||||
"on-click": "activate",
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"empty": "",
|
||||
//"default": "",
|
||||
"default": "",
|
||||
"active": "",
|
||||
}
|
||||
},
|
||||
|
||||
// "hyprland/workspaces": {
|
||||
// "format": "{name}",
|
||||
// "persistent_workspaces": {
|
||||
// "1": [],
|
||||
// "2": [],
|
||||
// "3": [],
|
||||
// "4": [],
|
||||
// "5": []
|
||||
// },
|
||||
// "all-outputs": true,
|
||||
// "active-only": false,
|
||||
// "sort-by-number": true
|
||||
// },
|
||||
"keyboard-state": {
|
||||
"numlock": false,
|
||||
"capslock": false,
|
||||
@@ -38,56 +50,10 @@
|
||||
}
|
||||
},
|
||||
"hyprland/window": {
|
||||
"max-length": 50,
|
||||
"max-length": 64,
|
||||
"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": {
|
||||
// "icon-size": 21,
|
||||
"spacing": 0
|
||||
@@ -104,14 +70,6 @@
|
||||
"memory": {
|
||||
"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": {
|
||||
// "device": "acpi_video1",
|
||||
"format": "{percent}% {icon}",
|
||||
@@ -135,7 +93,6 @@
|
||||
"bat": "BAT2"
|
||||
},
|
||||
"network": {
|
||||
"interface": "enp4s0", // (Optional) To force the use of this interface
|
||||
"format-wifi": "{essid} ",
|
||||
"format-ethernet": "{ipaddr}/{cidr} ",
|
||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||
@@ -144,21 +101,21 @@
|
||||
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||
},
|
||||
"pulseaudio": {
|
||||
// "scroll-step": 10, // %, can be a float
|
||||
"format": "{volume}%{icon} {format_source}",
|
||||
// "scroll-step": 1, // %, can be a float
|
||||
"format": "{volume}% {icon}",
|
||||
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth-muted": " {icon} {format_source}",
|
||||
"format-muted": " {format_source}",
|
||||
"format-source": "{volume}% ",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""]
|
||||
"default": ["", "", ""]
|
||||
},
|
||||
"on-click": "pavucontrol"
|
||||
},
|
||||
@@ -166,13 +123,13 @@
|
||||
"tooltip": false,
|
||||
"format": "{} {icon}",
|
||||
"format-icons": {
|
||||
"notification": "<span foreground='red'><sup></sup></span> ",
|
||||
"notification": "<span foreground='#f14c4c'><sup></sup></span> ",
|
||||
"none": "",
|
||||
"dnd-notification": "<span foreground='red'><sup></sup></span> ",
|
||||
"dnd-notification": "<span foreground='#f14c4c'><sup></sup></span> ",
|
||||
"dnd-none": "",
|
||||
"inhibited-notification": "<span foreground='red'><sup></sup></span> ",
|
||||
"inhibited-notification": "<span foreground='#f14c4c'><sup></sup></span> ",
|
||||
"inhibited-none": "",
|
||||
"dnd-inhibited-notification": "<span foreground='red'><sup></sup></span> ",
|
||||
"dnd-inhibited-notification": "<span foreground='#f14c4c'><sup></sup></span> ",
|
||||
"dnd-inhibited-none": ""
|
||||
},
|
||||
"return-type": "json",
|
||||
@@ -189,8 +146,15 @@
|
||||
"has-updates": "",
|
||||
"updated": ""
|
||||
},
|
||||
"exec-if": "which waybar-module-pacman-updates",
|
||||
"exec": "waybar-module-pacman-updates --interval-seconds 5 --network-interval-seconds 300"
|
||||
"exec-if": "which waybar-updates",
|
||||
"exec": "waybar-updates --interval-seconds 5 --network-interval-seconds 300"
|
||||
},
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,104 +1,99 @@
|
||||
@define-color base00 #181818;
|
||||
@define-color base01 #2b2e37;
|
||||
@define-color base02 #3b3e47;
|
||||
@define-color base03 #585858;
|
||||
@define-color base04 #b8b8b8;
|
||||
@define-color base05 #d8d8d8;
|
||||
@define-color base06 #e8e8e8;
|
||||
@define-color base07 #f8f8f8;
|
||||
@define-color base08 #ab4642;
|
||||
@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;
|
||||
/* Cursor Dark */
|
||||
@define-color bg_dim #141414;
|
||||
@define-color bg0 #181818;
|
||||
@define-color bg2 #2b2b2b;
|
||||
@define-color fg #cccccc;
|
||||
@define-color red #f14c4c;
|
||||
@define-color blue #3b8eea;
|
||||
@define-color orange #e2c08d;
|
||||
@define-color bg4 #2472c8;
|
||||
|
||||
* {
|
||||
transition: none;
|
||||
box-shadow: none;
|
||||
transition: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
#waybar {
|
||||
font-family: 'Source Code Pro', sans-serif;
|
||||
font-size: 1.2em;
|
||||
font-weight: 400;
|
||||
color: @base04;
|
||||
background: @base01;
|
||||
font-family: 'Hack JBM Ligatured', "Font Awesome 6 Free";
|
||||
font-size: 1.2em;
|
||||
font-weight: 400;
|
||||
color: @fg;
|
||||
border-radius: 10px;
|
||||
background: @bg0;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
margin: 0 4px;
|
||||
margin: 0 4px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
margin: 4px 0;
|
||||
padding: 0 4px;
|
||||
color: @base05;
|
||||
margin: 4px 0;
|
||||
padding: 0 4px;
|
||||
color: @fg;
|
||||
}
|
||||
|
||||
#workspaces button.visible {
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
border-radius: 4px;
|
||||
background-color: @base02;
|
||||
border-radius: 10px;
|
||||
background-color: @bg4;
|
||||
/* @fg on the accent blue is too low-contrast to read */
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
color: rgba(238, 46, 36, 1);
|
||||
color: @red;
|
||||
}
|
||||
|
||||
#tray {
|
||||
margin: 4px 4px 4px 4px;
|
||||
border-radius: 4px;
|
||||
background-color: @base02;
|
||||
margin: 4px 4px 4px 4px;
|
||||
border-radius: 4px;
|
||||
background-color: @bg2;
|
||||
}
|
||||
|
||||
#tray * {
|
||||
padding: 0 6px;
|
||||
border-left: 1px solid @base00;
|
||||
padding: 0 6px;
|
||||
border-left: 1px solid @bg_dim;
|
||||
}
|
||||
|
||||
#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{
|
||||
margin: 4px 2px;
|
||||
padding: 0 6px;
|
||||
background-color: @base02;
|
||||
border-radius: 4px;
|
||||
min-width: 20px;
|
||||
margin: 4px 2px;
|
||||
padding: 0 6px;
|
||||
background-color: @bg2;
|
||||
border-radius: 4px;
|
||||
min-width: 20px;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
color: @base0F;
|
||||
color: @orange;
|
||||
}
|
||||
|
||||
#pulseaudio.bluetooth {
|
||||
color: @base0C;
|
||||
color: @blue;
|
||||
}
|
||||
|
||||
#clock {
|
||||
margin-left: 0px;
|
||||
margin-right: 4px;
|
||||
background-color: transparent;
|
||||
margin-left: 0px;
|
||||
margin-right: 4px;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
color: @base0F;
|
||||
color: @orange;
|
||||
}
|
||||
|
||||
#window {
|
||||
font-size: 0.9em;
|
||||
font-weight: 400;
|
||||
font-family: sans-serif;
|
||||
margin-left:20px;
|
||||
}
|
||||
|
||||
#language {
|
||||
font-size: 0.9em;
|
||||
font-weight: 500;
|
||||
letter-spacing: -1px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,3 +13,53 @@ map J zoom out
|
||||
map i recolor
|
||||
map p print
|
||||
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