Compare commits

56 Commits
Author SHA1 Message Date
_N0x a7c4dc8407 fish/.config/fish/fish_variables aktualisiert 2026-08-06 10:35:30 +02:00
_N0x 42c44aec68 Fixes after testing new theme 2026-08-05 18:13:46 +02:00
_N0x 96d3086885 Updated zathura colors to match cursor dark setup 2026-08-05 16:16:09 +02:00
_N0x 699473d7b5 More theming 2026-08-05 16:02:19 +02:00
_N0x a5686ccee0 Updated gtk theme, added SETUP.md 2026-08-05 13:26:10 +02:00
_N0x dcb2b320eb updated broken wallpaper 2026-08-05 11:45:21 +02:00
_N0x dc10b3dfb3 Updated gitconfig 2026-08-05 11:38:13 +02:00
_N0x 79036dce2c Updated hypr, rofi and waybar theme 2026-08-05 10:56:12 +02:00
_N0x 2dcbd80842 Updated nvim theme 2026-08-05 10:36:35 +02:00
_N0x e5fb57c279 First iteration of cursor dark theme for kitty, tmux, fish 2026-08-05 10:13:57 +02:00
_N0x 14c53abbf3 Updated fish to use start-hyprland dispatcher 2026-05-17 16:51:39 +02:00
_N0x 23718c9477 Updated hyprland to use lua to be compatible 0.55 2026-05-17 16:49:33 +02:00
_N0x f308f2fe75 Updated nvim config to work on latest versions 2026-05-17 16:03:56 +02:00
_N0x a945adae10 Fix: fixed broken keymap for closing buffers 2025-11-17 23:00:17 +01:00
_N0x 6c156422be Feat: updated nvim config to use lazy vim and fixed dependencies 2025-11-17 22:54:35 +01:00
_N0x 897bc92c94 new wallpaper 2025-11-09 21:53:45 +01:00
_N0x aa96285da3 FEAT: Updated gtk settings to be similar across gtk versions 2025-09-06 16:20:30 +02:00
_N0x b9959d2c6f FEAT: Updated init.lua 2025-09-06 16:17:50 +02:00
_N0x b7fccc80db FEAT: Updated mimelist 2025-09-06 16:17:01 +02:00
_N0x 7efc69cc34 Updates to nvim stuff 2025-05-20 14:18:28 +02:00
_N0x 93c1b94387 Updated dunstrc with everforest and hyprland tweaks 2025-05-19 22:07:41 +02:00
_N0x f222bd9b8f Moved theming to Everforest theme 2025-05-19 22:01:28 +02:00
_N0x 24979c1872 laptop config to transfer to new laptop 2025-05-01 02:09:09 +02:00
_N0x 0050404bd9 FEAT: updated theme stuff and nwg-bar 2025-03-29 20:29:36 +01:00
_N0x d9375906f0 FEAT: added nwg dotfiles 2025-03-29 19:37:00 +01:00
_N0x 505734efa7 FEAT: updated mimeapps 2025-03-21 15:18:32 +01:00
_N0x a4afa92102 FEAT: updated fish config 2025-03-21 15:15:17 +01:00
_N0x e25799c2a1 FEAT: cleanup of fish config 2025-02-25 16:19:18 +01:00
_N0x 1ac2a8be73 FEAT: Exdented funny git config 2025-02-25 16:18:59 +01:00
_N0x 6433bb1a07 FEAT: Exdented funny git config 2025-02-25 14:35:27 +01:00
_N0x 94ddccdf87 FEAT: Added extended git config 2025-02-25 13:50:44 +01:00
_N0x aae3258c5a FEAT: added fish rustup integration 2025-02-15 19:04:59 +01:00
_N0x 850248e3f5 FIX: Added missing colors.css file to waybar 2025-02-15 19:03:56 +01:00
_N0x 719d1e09f6 FEAT: Added swappy config 2025-02-15 19:03:04 +01:00
_N0x 551993863a FEAT: fixes to hyperland as well as integration for swappy 2025-02-15 19:01:56 +01:00
_N0x bcadb46269 FIX: Removed random .uuid file from fonts folder 2025-02-15 19:01:33 +01:00
_N0x 1d7fe2bd1c FIX: Tinkering with GTK settings to fix theming 2025-02-15 19:00:21 +01:00
_N0x 695ff3c445 FEAT: Added back vim-tex to nvim 2025-02-15 18:56:53 +01:00
_N0x 70fc63237e FIX: Hyprland starts on login, fastfetch command fixed for kitty integration 2025-02-15 18:55:38 +01:00
_N0x b2f77ac50a FEAT: Changed up hyprpaper to use local wallpaper file 2025-02-15 18:54:38 +01:00
_N0x 5bd080b9f2 FEAT: added imv/imv-dir as default image application 2025-02-15 15:24:35 +01:00
_N0x 42c9eca457 FEAT: Added split-monitor-workspaces hyprland plugin and set up workspaces 2024-11-30 12:50:06 +01:00
_N0x a09d7b7492 FIX: Fixed broken mimetype for jpeg 2024-11-30 12:46:42 +01:00
_N0x 72799bf294 FEAT: Updated waybar to look better and more custom 2024-11-30 12:46:14 +01:00
_N0x 6d1617b41d Updated hypridle, hyprlock config 2024-11-06 00:15:24 +01:00
_N0x 1b3ff2ad98 Updated hyprland config, added hypridle, hyprlock 2024-11-06 00:11:49 +01:00
_N0x b9c1ab8ead More nvim tinkering 2024-10-31 22:58:23 +01:00
_N0x f148347f3c Added nvim keymaps for vim lsp (rename etc) 2024-10-31 22:31:56 +01:00
_N0x 47e7f07201 More fixes and pluins to nvim 2024-10-31 21:58:41 +01:00
_N0x 09966d3ae6 Fixed bufferline bullshit 2024-10-30 23:37:45 +01:00
_N0x 4a8e5bc3fa Nvim chaos...............: 2024-10-30 23:24:26 +01:00
_N0x 2199599f58 Added missing nvim rust tools config 2024-10-28 23:30:49 +01:00
_N0x 03324d92c8 Added better rust handling to nvim 2024-10-28 11:01:59 +01:00
_N0x 0048525dd7 Fixed kitty and rofi settings 2024-10-24 19:39:51 +02:00
_N0x 053142e4bd Added rofi theming for nord 2024-10-21 21:50:55 +02:00
_N0x 8d5cd15b5b Updated gtk configs for dark mode 2024-10-20 21:36:00 +02:00
79 changed files with 2381 additions and 831 deletions
+101
View File
@@ -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+E0B0E0B3), 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.
+13
View File
@@ -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"
@@ -46,16 +46,22 @@ local kind_icons = {
-- find more here: https://www.nerdfonts.com/cheat-sheet -- find more here: https://www.nerdfonts.com/cheat-sheet
cmp.setup { cmp.setup {
--snippet = {
-- expand = function(args)
-- luasnip.lsp_expand(args.body) -- For `luasnip` users.
-- end,
--},
snippet = { snippet = {
expand = function(args) expand = function(args)
luasnip.lsp_expand(args.body) -- For `luasnip` users. vim.fn["vsnip#anonymous"](args.body)
end, end,
}, },
mapping = { mapping = {
["<C-k>"] = cmp.mapping.select_prev_item(), ["<C-p>"] = cmp.mapping.select_prev_item(),
["<C-j>"] = cmp.mapping.select_next_item(), ["<C-n>"] = cmp.mapping.select_next_item(),
["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }), ['<C-S-f>'] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }), ['<C-f>'] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }), ["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
["<C-y>"] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping. ["<C-y>"] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
["<C-e>"] = cmp.mapping { ["<C-e>"] = cmp.mapping {
@@ -102,19 +108,23 @@ cmp.setup {
-- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind -- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind
vim_item.menu = ({ vim_item.menu = ({
nvim_lsp = "[LSP]", nvim_lsp = "[LSP]",
luasnip = "[Snippet]", luasnip = "[Snip]",
buffer = "[Buffer]", buffer = "[Buff]",
path = "[Path]", path = "[Path]",
vsnip = "[VSnip]",
})[entry.source.name] })[entry.source.name]
return vim_item return vim_item
end, end,
}, },
sources = { sources = {
{ name = "nvim_lsp" }, { name = 'path' }, -- file paths
{ name = "luasnip" }, { name = 'nvim_lsp', keyword_length = 3 }, -- from language server
{ name = "buffer" }, { name = 'nvim_lsp_signature_help'}, -- display function signatures with current parameter emphasized
{ name = "path" }, { name = 'nvim_lua', keyword_length = 2}, -- complete neovim's Lua runtime API such vim.lsp.*
}, { name = 'buffer', keyword_length = 2 }, -- source current buffer
{ name = 'vsnip', keyword_length = 2 }, -- nvim-cmp source for vim-vsnip
{ name = 'calc'}, -- source for math calculation
},
confirm_opts = { confirm_opts = {
behavior = cmp.ConfirmBehavior.Replace, behavior = cmp.ConfirmBehavior.Replace,
select = false, select = false,
@@ -61,6 +61,7 @@ local function lsp_highlight_document(client)
end end
local function lsp_keymaps(bufnr) local function lsp_keymaps(bufnr)
vim.cmd [[ command! Format execute 'lua vim.lsp.buf.format()' ]]
local opts = { noremap = true, silent = true } local opts = { noremap = true, silent = true }
vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", opts)
vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", opts)
@@ -81,7 +82,6 @@ local function lsp_keymaps(bufnr)
-- for german keyboard ... -- for german keyboard ...
vim.api.nvim_buf_set_keymap(bufnr, "n", "*d", '<cmd>lua vim.diagnostic.goto_next({ border = "rounded" })<CR>', opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "*d", '<cmd>lua vim.diagnostic.goto_next({ border = "rounded" })<CR>', opts)
vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>q", "<cmd>lua vim.diagnostic.setloclist()<CR>", opts) vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>q", "<cmd>lua vim.diagnostic.setloclist()<CR>", opts)
vim.cmd [[ command! Format execute 'lua vim.lsp.buf.format()' ]]
end end
M.on_attach = function(client, bufnr) M.on_attach = function(client, bufnr)
@@ -0,0 +1,42 @@
local status_ok, _ = pcall(require, "lspconfig")
if not status_ok then
return
end
require "user.lsp.mason"
require("user.lsp.handlers").setup()
require "user.lsp.null-ls"
-- LSP Diagnostics Options Setup
local sign = function(opts)
vim.fn.sign_define(opts.name, {
texthl = opts.name,
text = opts.text,
numhl = ''
})
end
sign({name = 'DiagnosticSignError', text = ''})
sign({name = 'DiagnosticSignWarn', text = ''})
sign({name = 'DiagnosticSignHint', text = ''})
sign({name = 'DiagnosticSignInfo', text = ''})
vim.diagnostic.config({
virtual_text = false,
signs = true,
update_in_insert = true,
underline = true,
severity_sort = false,
float = {
border = 'rounded',
source = 'always',
header = '',
prefix = '',
},
})
vim.cmd([[
set signcolumn=yes
autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })
]])
@@ -16,6 +16,5 @@ null_ls.setup({
extra_filetypes = {"inl"}, extra_filetypes = {"inl"},
extra_args = {"-style=file:~/.config/nvim/lua/user/lsp/settings/clang-format"}, extra_args = {"-style=file:~/.config/nvim/lua/user/lsp/settings/clang-format"},
}), }),
null_ls.builtins.formatting.rustfmt,
}, },
}) })
@@ -51,3 +51,28 @@ vim.cmd "set listchars=tab:\\ \\ ,space:·"
--vim.cmd "set term=screen-256color" --vim.cmd "set term=screen-256color"
vim.g.vimwiki_list = {{path = '~/Documents/vimwiki', syntax = 'markdown', ext = '.md'}} vim.g.vimwiki_list = {{path = '~/Documents/vimwiki', syntax = 'markdown', ext = '.md'}}
vim.g.nord_disable_background = true vim.g.nord_disable_background = true
--Set completeopt to have a better completion experience
-- :help completeopt
-- menuone: popup even when there's only one match
-- noinsert: Do not insert text until a selection is made
-- noselect: Do not select, force to select one from the menu
-- shortness: avoid showing extra messages when using completion
-- updatetime: set updatetime for CursorHold
vim.opt.completeopt = {'menuone', 'noselect', 'noinsert'}
vim.opt.shortmess = vim.opt.shortmess + { c = true}
vim.api.nvim_set_option('updatetime', 300)
-- Fixed column for diagnostics to appear
-- Show autodiagnostic popup on cursor hover_range
-- Goto previous / next diagnostic warning / error
-- Show inlay_hints more frequently
vim.cmd([[
set signcolumn=yes
autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })
]])
-- Treesitter folding
vim.wo.foldmethod = 'expr'
vim.wo.foldexpr = 'nvim_treesitter#foldexpr()'
@@ -47,13 +47,20 @@ return packer.startup(function(use)
-- Colorschemes -- Colorschemes
use "shaunsingh/nord.nvim" use "shaunsingh/nord.nvim"
-- cmp plugins -- cmp plugins
use "hrsh7th/nvim-cmp" -- The completion plugin use "hrsh7th/nvim-cmp" -- The completion plugin
use "hrsh7th/cmp-buffer" -- buffer completions use "hrsh7th/cmp-nvim-lsp"
use 'hrsh7th/cmp-nvim-lua'
use 'hrsh7th/cmp-nvim-lsp-signature-help'
use 'hrsh7th/cmp-vsnip'
use "hrsh7th/cmp-path" -- path completions use "hrsh7th/cmp-path" -- path completions
use "hrsh7th/cmp-buffer" -- buffer completions
use "hrsh7th/vim-vsnip"
use "hrsh7th/cmp-cmdline" -- cmdline completions use "hrsh7th/cmp-cmdline" -- cmdline completions
use "saadparwaiz1/cmp_luasnip" -- snippet completions use "saadparwaiz1/cmp_luasnip" -- snippet completions
use "hrsh7th/cmp-nvim-lsp"
-- snippets -- snippets
use "L3MON4D3/LuaSnip" --snippet engine use "L3MON4D3/LuaSnip" --snippet engine
@@ -65,6 +72,8 @@ return packer.startup(function(use)
use "williamboman/mason-lspconfig.nvim" -- simple to use language server installer use "williamboman/mason-lspconfig.nvim" -- simple to use language server installer
use 'jose-elias-alvarez/null-ls.nvim' -- LSP diagnostics and code actions use 'jose-elias-alvarez/null-ls.nvim' -- LSP diagnostics and code actions
use 'simrat39/rust-tools.nvim'
-- Telescope -- Telescope
use "nvim-telescope/telescope.nvim" use "nvim-telescope/telescope.nvim"
use 'nvim-telescope/telescope-media-files.nvim' use 'nvim-telescope/telescope-media-files.nvim'
@@ -0,0 +1,12 @@
local rt = require("rust-tools")
rt.setup({
server = {
on_attach = function(_, bufnr)
-- Hover actions
vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr })
-- Code action groups
vim.keymap.set("n", "<Leader>a", rt.code_action_group.code_action_group, { buffer = bufnr })
end,
},
})
@@ -6,13 +6,18 @@ end
configs.setup({ configs.setup({
ensure_installed = { "bash", "c", "cpp", "javascript", "json", "lua", "python", "typescript", "tsx", "css", "rust", "java", "yaml", "markdown", "markdown_inline" }, -- one of "all" or a list of languages ensure_installed = { "bash", "c", "cpp", "javascript", "json", "lua", "python", "typescript", "tsx", "css", "rust", "java", "yaml", "markdown", "markdown_inline" }, -- one of "all" or a list of languages
ignore_install = { "phpdoc" }, -- List of parsers to ignore installing ignore_install = { "phpdoc" }, -- List of parsers to ignore installing
highlight = { highlight = {
enable = true, -- false will disable the whole extension enable = true,
disable = { "css" }, -- list of language that will be disabled additional_vim_regex_highlighting=false,
}, },
ident = { enable = true },
rainbow = {
enable = true,
extended_mode = true,
max_file_lines = nil,
},
autopairs = { autopairs = {
enable = true, enable = true,
}, }
indent = { enable = true, disable = { "python", "css" } },
}) })
+38 -12
View File
@@ -1,5 +1,5 @@
[Added Associations] [Added Associations]
application/pdf=org.pwmt.zathura.desktop; application/pdf=userapp-librewolf.desktop;
application/x-extension-htm=userapp-librewolf.desktop; application/x-extension-htm=userapp-librewolf.desktop;
application/x-extension-html=userapp-librewolf.desktop; application/x-extension-html=userapp-librewolf.desktop;
application/x-extension-shtml=userapp-librewolf.desktop; application/x-extension-shtml=userapp-librewolf.desktop;
@@ -12,34 +12,60 @@ x-scheme-handler/chrome=userapp-librewolf.desktop;
x-scheme-handler/ftp=userapp-librewolf.desktop; x-scheme-handler/ftp=userapp-librewolf.desktop;
x-scheme-handler/http=userapp-librewolf.desktop; x-scheme-handler/http=userapp-librewolf.desktop;
x-scheme-handler/https=userapp-librewolf.desktop; x-scheme-handler/https=userapp-librewolf.desktop;
x-scheme-handler/mailto=userapp-Thunderbird-OZQMR0.desktop;userapp-Thunderbird-86ACV1.desktop; x-scheme-handler/mailto=userapp-Thunderbird-OZQMR0.desktop;userapp-Thunderbird-86ACV1.desktop;userapp-Thunderbird-WB8BX2.desktop;userapp-Thunderbird-P5H422.desktop;
x-scheme-handler/tg=userapp-Telegram Desktop-4ZQQX0.desktop;org.telegram.desktop.desktop; x-scheme-handler/tg=userapp-Telegram Desktop-4ZQQX0.desktop;org.telegram.desktop.desktop;
x-scheme-handler/mid=userapp-Thunderbird-86ACV1.desktop; x-scheme-handler/mid=userapp-Thunderbird-86ACV1.desktop;userapp-Thunderbird-WB8BX2.desktop;userapp-Thunderbird-P5H422.desktop;
text/plain=codium.desktop; text/plain=codium.desktop;
application/zip=xarchiver.desktop;teamspeak3.desktop;
x-scheme-handler/webcal=userapp-Thunderbird-ID7522.desktop;
x-scheme-handler/webcals=userapp-Thunderbird-ID7522.desktop;
[Default Applications] [Default Applications]
application/pdf=org.pwmt.zathura.desktop application/pdf=librewolf.desktop
application/x-extension-htm=librewolf.desktop application/x-extension-htm=librewolf.desktop
application/x-extension-html=librewolf.desktop application/x-extension-html=librewolf.desktop
application/x-extension-shtml=librewolf.desktop application/x-extension-shtml=librewolf.desktop
application/x-extension-xht=librewolf.desktop application/x-extension-xht=librewolf.desktop
application/x-extension-xhtml=librewolf.desktop application/x-extension-xhtml=librewolf.desktop
application/xhtml+xml=librewolf.desktop application/xhtml+xml=librewolf.desktop
message/rfc822=userapp-Thunderbird-86ACV1.desktop message/rfc822=userapp-Thunderbird-P5H422.desktop
text/html=librewolf.desktop text/html=librewolf.desktop
x-scheme-handler/bitwarden=bitwarden.desktop x-scheme-handler/bitwarden=bitwarden.desktop
x-scheme-handler/chrome=librewolf.desktop x-scheme-handler/chrome=librewolf.desktop
x-scheme-handler/ftp=librewolf.desktop x-scheme-handler/ftp=librewolf.desktop
x-scheme-handler/http=librewolf.desktop x-scheme-handler/http=librewolf.desktop
x-scheme-handler/https=librewolf.desktop x-scheme-handler/https=librewolf.desktop
x-scheme-handler/mailto=userapp-Thunderbird-86ACV1.desktop x-scheme-handler/mailto=userapp-Thunderbird-P5H422.desktop
x-scheme-handler/tg=org.telegram.desktop.desktop x-scheme-handler/tg=org.telegram.desktop.desktop
x-scheme-handler/msteams=teams.desktop x-scheme-handler/mid=userapp-Thunderbird-P5H422.desktop
x-scheme-handler/eclipse+command x-scheme-handler/eclipse+mpc=_usr_lib_eclipse-modeling_.desktop image/png=imv-dir.desktop
x-scheme-handler/mid=userapp-Thunderbird-86ACV1.desktop image/jpg=imv-dir.desktop
image/png=nsxiv.desktop
image/jpg=nsxiv.desktop
application/json=codium.desktop application/json=codium.desktop
application/xml=codium.desktop application/xml=codium.desktop
inode/directory=file.desktop;pcmanfm.desktop inode/directory=pcmanfm.desktop
text/plain=codium.desktop text/plain=codium.desktop
image/jpeg=imv-dir.desktop
x-scheme-handler/about=librewolf.desktop
x-scheme-handler/unknown=librewolf.desktop
x-scheme-handler/discord=vesktop.desktop
application/zip=xarchiver.desktop
image/gif=imv-dir.desktop
image/webp=imv-dir.desktop
image/bmp=imv-dir.desktop
image/tiff=imv-dir.desktop
image/x-icon=imv-dir.desktop
image/svg+xml=imv-dir.desktop
x-scheme-handler/webcal=userapp-Thunderbird-ID7522.desktop
text/calendar=userapp-Thunderbird-ID7522.desktop
application/x-extension-ics=userapp-Thunderbird-ID7522.desktop
x-scheme-handler/webcals=userapp-Thunderbird-ID7522.desktop
application/x-tar=xarchiver.desktop
application/x-7z-compressed=xarchiver.desktop
application/x-rar=xarchiver.desktop
application/x-bzip=xarchiver.desktop
application/x-bzip2=xarchiver.desktop
application/gzip=xarchiver.desktop
application/x-xz=xarchiver.desktop
application/x-lzma=xarchiver.desktop
application/x-iso9660-image=xarchiver.desktop
application/vnd.rar=xarchiver.desktop
+16 -11
View File
@@ -33,7 +33,7 @@
origin = top-right origin = top-right
# Offset from the origin # Offset from the origin
offset = 15x48 offset = 15x15
# Scale factor. It is auto-detected if value is 0. # Scale factor. It is auto-detected if value is 0.
scale = 0 scale = 0
@@ -92,10 +92,11 @@
# Defines width in pixels of frame around the notification window. # Defines width in pixels of frame around the notification window.
# Set to 0 to disable. # Set to 0 to disable.
frame_width = 5 frame_width = 2
# Defines color of the frame around the notification window. # Defines color of the frame around the notification window.
frame_color = "#8FBCBB" # Cursor Dark: neutral by default, overridden per urgency below.
frame_color = "#2b2b2b"
# Size of gap to display between notifications - requires a compositor. # Size of gap to display between notifications - requires a compositor.
# If value is greater than 0, separator_height will be ignored and a border # If value is greater than 0, separator_height will be ignored and a border
@@ -201,7 +202,7 @@
enable_recursive_icon_lookup = true enable_recursive_icon_lookup = true
# Set icon theme (only used for recursive icon lookup) # Set icon theme (only used for recursive icon lookup)
icon_theme = Nordzy-green-dark icon_theme = Papirus-Dark
# You can also set multiple icon themes, with the leftmost one being used first. # You can also set multiple icon themes, with the leftmost one being used first.
# icon_theme = "Adwaita, breeze" # icon_theme = "Adwaita, breeze"
@@ -250,7 +251,7 @@
# corners. # corners.
# The radius will be automatically lowered if it exceeds half of the # The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons. # notification height to avoid clipping text and/or icons.
corner_radius = 0 corner_radius = 10
# Ignore the dbus closeNotification message. # Ignore the dbus closeNotification message.
# Useful to enforce the timeout set by dunst configuration. Without this # Useful to enforce the timeout set by dunst configuration. Without this
@@ -313,23 +314,27 @@
[urgency_low] [urgency_low]
# IMPORTANT: colors have to be defined in quotation marks. # IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment. # Otherwise the "#" and following would be interpreted as a comment.
background = "#2E3440" background = "#181818"
foreground = "#888888" foreground = "#9d9d9d"
frame_color = "#2b2b2b"
timeout = 10 timeout = 10
# Icon for notifications with low urgency, uncomment to enable # Icon for notifications with low urgency, uncomment to enable
#icon = /path/to/icon #icon = /path/to/icon
[urgency_normal] [urgency_normal]
background = "#3b4252" background = "#181818"
foreground = "#ffffff" foreground = "#cccccc"
frame_color = "#2472c8"
timeout = 10 timeout = 10
# Icon for notifications with normal urgency, uncomment to enable # Icon for notifications with normal urgency, uncomment to enable
#icon = /path/to/icon #icon = /path/to/icon
[urgency_critical] [urgency_critical]
background = "#900000" # #5a1d1d is VS Code's error-validation background, so it stays in-family
# while still reading as alarming.
background = "#5a1d1d"
foreground = "#ffffff" foreground = "#ffffff"
frame_color = "#ff0000" frame_color = "#f14c4c"
timeout = 0 timeout = 0
# Icon for notifications with critical urgency, uncomment to enable # Icon for notifications with critical urgency, uncomment to enable
#icon = /path/to/icon #icon = /path/to/icon
-221
View File
@@ -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=:\
"
+6 -21
View File
@@ -1,25 +1,18 @@
if [ -z "$DISPLAY" ] && [ (fgconsole) -eq 1 ]; if [ -z "$DISPLAY" ] && [ (fgconsole) -eq 1 ];
# startx start-hyprland
end
# uncomment to automatically start tmux
if status is-interactive
and not set -q TMUX
# exec tmux
end end
fish_ssh_agent fish_ssh_agent
umask 0077
function q function q
exit exit
end end
function ff function ff
fastfetch -l ~/.config/fish/img/ff.png -c neofetch.jsonc #fastfetch -l ~/.config/fish/img/ff.png -c neofetch.jsonc
end fastfetch --logo-type kitty-direct --logo ~/.config/fish/img/ff.png -c neofetch.jsonc
function lf
command lfub
end end
function cls function cls
@@ -51,15 +44,7 @@ function tree
end end
function ds function ds
command du -sch * | sort -rh command du -sch (ls -A) | sort -rh
end
function hv
command nmcli --ask connection up "HP VPN"
end
function hvd
command nmcli connection down "HP VPN"
end end
function nv function nv
File diff suppressed because one or more lines are too long
+13 -14
View File
@@ -1,20 +1,19 @@
set fish_prompt_pwd_dir_length 0 set fish_prompt_pwd_dir_length 0
set __fish_git_prompt_show_informative_status 1 set __fish_git_prompt_show_informative_status 1
# Fish command and parameter colors # Command and parameter colors come from fish_variables (Cursor Dark)
set fish_color_command green
set fish_color_param $fish_color_normal
# Git prompt # Git prompt
set __fish_git_prompt_showdirtystate 'yes' set __fish_git_prompt_showdirtystate 'yes'
set __fish_git_prompt_showupstream 'yes' set __fish_git_prompt_showupstream 'yes'
set __fish_git_prompt_color_branch brown # Colors mirror Cursor's git decorations
set __fish_git_prompt_color_dirtystate FCBC47 set __fish_git_prompt_color_branch 569CD6
set __fish_git_prompt_color_stagedstate yellow set __fish_git_prompt_color_dirtystate E2C08D
set __fish_git_prompt_color_upstream cyan set __fish_git_prompt_color_stagedstate 73C991
set __fish_git_prompt_color_cleanstate green set __fish_git_prompt_color_upstream 4EC9B0
set __fish_git_prompt_color_invalidstate red set __fish_git_prompt_color_cleanstate 73C991
set __fish_git_prompt_color_invalidstate E4676B
# Git Characters # Git Characters
set __fish_git_prompt_char_dirtystate '*' set __fish_git_prompt_char_dirtystate '*'
@@ -41,9 +40,9 @@ end
function _prompt_color_for_status function _prompt_color_for_status
if test $argv[1] -eq 0 if test $argv[1] -eq 0
echo magenta echo C586C0
else else
echo red echo F14C4C
end end
end end
@@ -51,7 +50,7 @@ function fish_prompt
set -l last_status $status set -l last_status $status
# username and hostname # username and hostname
_print_in_color "┏["$USER"@"(prompt_hostname)"]" blue _print_in_color "┏["$USER"@"(prompt_hostname)"]" 569CD6
# current working dir # current working dir
_print_in_color " "(prompt_pwd) $fish_color_cwd _print_in_color " "(prompt_pwd) $fish_color_cwd
@@ -59,10 +58,10 @@ function fish_prompt
__fish_git_prompt " (%s)" __fish_git_prompt " (%s)"
# beginning of new line # beginning of new line
_print_in_color "\n┗" blue _print_in_color "\n┗" 569CD6
# time information # time information
_print_in_color " "(date "+%H:%M:%S") green _print_in_color " "(date "+%H:%M:%S") 73C991
# little error that indicates the status of the previous command # little error that indicates the status of the previous command
_print_in_color " " (_prompt_color_for_status $last_status) _print_in_color " " (_prompt_color_for_status $last_status)
-1
View File
@@ -1 +0,0 @@
857d7eaa-7f62-4984-85b0-3d498590c26c
+52
View File
@@ -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
+4
View File
@@ -0,0 +1,4 @@
file:///home/n0x/Downloads Downloads
file:///home/n0x/Nextcloud Nextcloud
file:///home/n0x/Pictures Pictures
file:///home/n0x/Workspace Workspace
+18 -11
View File
@@ -1,14 +1,21 @@
[Settings] [Settings]
gtk-application-prefer-dark-theme=true gtk-theme-name=Orchis-Dark-Compact
gtk-button-images=true gtk-icon-theme-name=Papirus-Dark
gtk-cursor-theme-name=Adwaita gtk-font-name=Noto Sans 11
gtk-cursor-theme-name=default
gtk-cursor-theme-size=24 gtk-cursor-theme-size=24
gtk-decoration-layout=close,minimize,maximize:
gtk-enable-animations=true
gtk-font-name=Noto Sans, 10
gtk-icon-theme-name=Nordzy-green-dark
gtk-menu-images=true
gtk-primary-button-warps-slider=false
gtk-shell-shows-menubar=1
gtk-theme-name=Nordic-darker
gtk-toolbar-style=3 gtk-toolbar-style=3
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1
gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=0
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintmedium
gtk-xft-rgba=rgb
gtk-application-prefer-dark-theme=1
gtk-decoration-layout=close,minimize,maximize:
gtk-enable-animations=1
gtk-primary-button-warps-slider=0
gtk-shell-shows-menubar=1
+1
View File
@@ -0,0 +1 @@
/usr/share/themes/Everforest-Teal-Dark/gtk-4.0/assets
+77
View File
@@ -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
View File
@@ -0,0 +1 @@
/usr/share/themes/Everforest-Teal-Dark/gtk-4.0/gtk-dark.css
+1
View File
@@ -0,0 +1 @@
/usr/share/themes/Everforest-Teal-Dark/gtk-4.0/gtk.css
+7
View File
@@ -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
View File
@@ -1,12 +1,19 @@
# DO NOT EDIT! This file will be overwritten by nwg-look.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
include "/home/n0x/.gtkrc-2.0.mine"
gtk-theme-name="Orchis-Dark-Compact"
gtk-icon-theme-name="Papirus-Dark"
gtk-font-name="Noto Sans 11"
gtk-cursor-theme-name="default"
gtk-cursor-theme-size=24 gtk-cursor-theme-size=24
gtk-theme-name="Nordic-darker"
gtk-enable-animations=1
gtk-primary-button-warps-slider=0
gtk-toolbar-style=3 gtk-toolbar-style=3
gtk-menu-images=1 gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1 gtk-button-images=1
gtk-cursor-theme-name="Adwaita" gtk-menu-images=1
gtk-icon-theme-name="Nordzy-green-dark" gtk-enable-event-sounds=1
gtk-font-name="Noto Sans, 10" gtk-enable-input-feedback-sounds=0
gtk-application-prefer-dark-theme = true gtk-xft-antialias=1
gtk-modules=appmenu-gtk-module gtk-xft-hinting=1
gtk-xft-hintstyle="hintmedium"
gtk-xft-rgba="rgb"
+93
View File
@@ -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,
},
},
})
+53
View File
@@ -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 })
+13
View File
@@ -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
+11
View File
@@ -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
}
-272
View File
@@ -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
}
+79
View File
@@ -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",
})
+76
View File
@@ -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
}
+7 -2
View File
@@ -1,2 +1,7 @@
preload = /home/n0x/Nextcloud/Pictures/Wallpapers/MRR.jpg wallpaper {
wallpaper = , /home/n0x/Nextcloud/Pictures/Wallpapers/MRR.jpg monitor =
path = ~/.config/hypr/wp.png
fit_mode = cover
}
splash = false
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 MiB

+49 -36
View File
@@ -1,6 +1,6 @@
# Font stuff # Font stuff
font_family family="Hack JBM Ligatured" font_family family="Berkeley Mono Regular"
italic_font auto italic_font auto
bold_font auto bold_font auto
bold_italic_font auto bold_italic_font auto
@@ -13,45 +13,65 @@ symbol_map U+e000-U+e00a,U+ea60-U+ebeb,U+e0a0-U+e0c8,U+e0ca,U+e0cc-U+e0d7,U+e200
# Transparency # Transparency
background_opacity 0.85 background_opacity 0.85
# The foreground color foreground #cccccc
foreground #d8dee9 background #181818
selection_foreground none
selection_background #264f78
# The background color cursor #aeafad
background #2e3440 cursor_text_color #181818
# The foreground for selections url_color #3b8eea
selection_foreground #81a1c1
# The background for selections active_border_color #2472c8
selection_background #eceff4 inactive_border_color #2b2b2b
bell_border_color #e5e510
visual_bell_color none
# The cursor color wayland_titlebar_color system
cursor #e5e9f0 macos_titlebar_color system
# Set up term-colors (Nord Theme) active_tab_background #1f1f1f
color0 #3b4252 active_tab_foreground #ffffff
color8 #4c566a inactive_tab_background #181818
inactive_tab_foreground #9d9d9d
tab_bar_background #181818
tab_bar_margin_color none
color1 #bf616a # Set up term-colors (Cursor Dark)
color9 #bf616a
color2 #a3be8c #: black
color10 #a3be8c color0 #000000
color8 #666666
color3 #ebcb8b #: red
color11 #ebcb8b color1 #cd3131
color9 #f14c4c
color4 #81a1c1 #: green
color12 #81a1c1 color2 #0dbc79
color10 #23d18b
color5 #b48ead #: yellow
color13 #b48ead color3 #e5e510
color11 #f5f543
color6 #88c0d0 #: blue
color14 #8fbcbb color4 #2472c8
color12 #3b8eea
#: magenta
color5 #bc3fbc
color13 #d670d6
#: cyan
color6 #11a8cd
color14 #29b8db
#: white
color7 #e5e5e5
color15 #e5e5e5
color7 #e5e9f0
color15 #eceff4
# The cursor shape can be one of (block, beam, underline) # The cursor shape can be one of (block, beam, underline)
shell_integration no-cursor shell_integration no-cursor
@@ -66,14 +86,7 @@ wheel_scroll_multiplier 5.0
# The width (in pts) of window borders. Will be rounded to the nearest number of pixels based on screen resolution. # The width (in pts) of window borders. Will be rounded to the nearest number of pixels based on screen resolution.
window_border_width 0 window_border_width 0
window_margin_width 30 window_margin_width 20
# The color for the border of the active window
active_border_color #ffffff
# The color for the border of inactive windows
inactive_border_color #cccccc
# Manage font size # Manage font size
+36 -12
View File
@@ -1,12 +1,36 @@
require "user.options" require "keymap"
require "user.keymaps" require "options"
require "user.plugins" require "lazy-setup"
require "user.colorscheme" require "vars"
require "user.cmp"
require "user.lsp" -- LSP Diagnostics Options Setup
require "user.telescope" local sign = function(opts)
require "user.treesitter" vim.fn.sign_define(opts.name, {
require "user.nvim-tree" texthl = opts.name,
require "user.bufferline" text = opts.text,
require "user.statusline" numhl = ''
require "user.gitsigns" })
end
sign({name = 'DiagnosticSignError', text = ''})
sign({name = 'DiagnosticSignWarn', text = ''})
sign({name = 'DiagnosticSignHint', text = ''})
sign({name = 'DiagnosticSignInfo', text = ''})
vim.diagnostic.config({
virtual_text = false,
signs = true,
update_in_insert = true,
underline = true,
severity_sort = false,
float = {
border = 'rounded',
source = 'always',
header = '', prefix = '',
},
})
vim.cmd([[
set signcolumn=yes
autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })
]])
+30
View File
@@ -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" }
}
+134
View File
@@ -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)
+34
View File
@@ -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,
},
})
+85
View File
@@ -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"
}
+132
View File
@@ -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,
},
}
+81
View File
@@ -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",
},
}
+30
View File
@@ -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,
},
}
+24
View File
@@ -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,
},
}
+228
View File
@@ -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,
},
}
-8
View File
@@ -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"
View File
+22
View File
@@ -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"
}
]
+36
View File
@@ -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)
}
+10
View File
@@ -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
}
+118 -1
View File
@@ -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;
}
+12
View File
@@ -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
View File
@@ -22,6 +22,48 @@ set -g mouse on
set-option -g status-position bottom set-option -g status-position bottom
set-option -g renumber-windows on set-option -g renumber-windows on
# ==========================
# === Cursor Dark theme ===
# ==========================
# Powerline status bar, ported from nordtheme/tmux with Cursor Dark colors.
# Requires a patched (Nerd) font for the U+E0B0-E0B3 separators.
#
# bar bg #181818 raised segment #2b2b2b text #cccccc
# session #2472c8 current window / host #11a8cd
set -g status on
set -g status-interval 1
set -g status-justify left
set -g status-style "bg=#181818,fg=#cccccc"
set -g status-left-length 40
set -g status-right-length 80
#+--- Bars ---+
set -g status-left "#[fg=#ffffff,bg=#2472c8,bold] #S #[fg=#2472c8,bg=#181818,nobold,noitalics,nounderscore]"
set -g status-right "#[fg=#2b2b2b,bg=#181818,nobold,noitalics,nounderscore]#[fg=#cccccc,bg=#2b2b2b] %Y-%m-%d #[fg=#cccccc,bg=#2b2b2b,nobold,noitalics,nounderscore]#[fg=#cccccc,bg=#2b2b2b] %H:%M #[fg=#11a8cd,bg=#2b2b2b,nobold,noitalics,nounderscore]#[fg=#181818,bg=#11a8cd,bold] #H "
#+--- Windows ---+
set -g window-status-format "#[fg=#181818,bg=#2b2b2b,nobold,noitalics,nounderscore] #[fg=#cccccc,bg=#2b2b2b]#I #[fg=#cccccc,bg=#2b2b2b,nobold,noitalics,nounderscore] #[fg=#cccccc,bg=#2b2b2b]#W #F #[fg=#2b2b2b,bg=#181818,nobold,noitalics,nounderscore]"
set -g window-status-current-format "#[fg=#181818,bg=#11a8cd,nobold,noitalics,nounderscore] #[fg=#181818,bg=#11a8cd]#I #[fg=#181818,bg=#11a8cd,nobold,noitalics,nounderscore] #[fg=#181818,bg=#11a8cd]#W #F #[fg=#11a8cd,bg=#181818,nobold,noitalics,nounderscore]"
set -g window-status-separator ""
# Let the formats above own the colors; activity/bell still show via the #F flag
setw -g window-status-activity-style "none"
setw -g window-status-bell-style "none"
#+--- Panes ---+
set -g pane-border-style "bg=default,fg=#2b2b2b"
set -g pane-active-border-style "bg=default,fg=#2472c8"
set -g display-panes-colour "#666666"
set -g display-panes-active-colour "#2472c8"
#+--- Messages ---+
set -g message-style "bg=#2b2b2b,fg=#11a8cd"
set -g message-command-style "bg=#2b2b2b,fg=#11a8cd"
setw -g mode-style "bg=#264f78,fg=#e5e5e5"
#+--- Clock ---+
setw -g clock-mode-colour "#11a8cd"
# ================================================ # ================================================
# === Copy mode, scroll and clipboard === # === Copy mode, scroll and clipboard ===
# ================================================ # ================================================
@@ -92,12 +134,29 @@ bind -T copy-mode-vi MouseDown1Pane select-pane \;\
# tmux show-options -g -s set-clipboard # tmux show-options -g -s set-clipboard
# set-clipboard on|external # set-clipboard on|external
# List of plugins # ==========================
set -g @plugin 'tmux-plugins/tpm' # === Plugins ===
# ==========================
# Nothing under ~/.tmux/plugins is tracked in git - tpm owns that directory and
# clones everything listed below itself. Do not commit the plugin folders: they
# would be checked out as empty dirs, and tpm would then skip installing them.
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible' set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-yank' set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin "arcticicestudio/nord-tmux"
# tpm and its installer both resolve the plugin dir from this tmux environment
# variable, and only the tpm script itself sets it. Pin it up-front so the
# installer below already works on the very first run.
run 'tmux set-environment -g TMUX_PLUGIN_MANAGER_PATH "$HOME/.tmux/plugins/"'
# Bootstrap tpm itself on a machine that has never run it
if "test ! -d ~/.tmux/plugins/tpm" \
"run 'git clone -q --single-branch https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm'"
# Clone any declared plugin that is missing. Deliberately in the foreground, so
# plugins installed here are already on disk when tpm sources them below.
run '~/.tmux/plugins/tpm/bin/install_plugins'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm' run '~/.tmux/plugins/tpm/tpm'
Submodule tmux/.tmux/plugins/nord-tmux deleted from f7b6da07ab
Submodule tmux/.tmux/plugins/tmux-sensible deleted from 25cb91f42d
Submodule tmux/.tmux/plugins/tmux-yank deleted from acfd36e4fc
Submodule tmux/.tmux/plugins/tpm deleted from 99469c4a9b
+60 -96
View File
@@ -1,33 +1,45 @@
{ {
"layer": "top", // Waybar at top layer "layer": "top",
"position": "top", // Waybar position (top|bottom|left|right) "position": "top",
"height": 34, // Waybar height (to be removed for auto height) "height": 35,
// "width": 1280, // Waybar width "spacing": 4,
"spacing": 4, // Gaps between modules (4px) "margin-left": 10,
"margin-right": 10,
"margin-top": 10,
// Choose the order of the modules // Choose the order of the modules
"modules-left": ["hyprland/workspaces"], "modules-left": ["hyprland/workspaces","hyprland/window"],
"modules-center": ["hyprland/window"], "modules-center": ["clock"],
"modules-right": ["idle_inhibitor", "pulseaudio", "backlight", "network", "custom/updates", "hyprland/submap", "hyprland/language", "cpu", "memory", "temperature", "battery", "tray", "clock"], "modules-right": ["pulseaudio", "network", "cpu", "memory", "tray"],
// Modules configuration // Modules configuration
"hyprland/workspaces": {
"disable-scroll": true, "hyprland/workspaces": {
"on-click": "activate", "disable-scroll": true,
// "all-outputs": false, //"all-outputs": true,
// "format": "{name}: {icon}", "on-click": "activate",
"format": "{name}", "format": "{icon}",
"on-scroll-up": "hyprctl dispatch workspace m-1 > /dev/null", "format-icons": {
"on-scroll-down": "hyprctl dispatch workspace m+1 > /dev/null", "empty": "",
"format-icons": { //"default": "",
"1": "", "default": "",
"2": "", "active": "",
"3": "", }
"4": "", },
"5": "",
"urgent": "", // "hyprland/workspaces": {
"focused": "", // "format": "{name}",
"default": "" // "persistent_workspaces": {
} // "1": [],
}, // "2": [],
// "3": [],
// "4": [],
// "5": []
// },
// "all-outputs": true,
// "active-only": false,
// "sort-by-number": true
// },
"keyboard-state": { "keyboard-state": {
"numlock": false, "numlock": false,
"capslock": false, "capslock": false,
@@ -38,56 +50,10 @@
} }
}, },
"hyprland/window": { "hyprland/window": {
"max-length": 50, "max-length": 64,
"separate-outputs": true "separate-outputs": true
}, },
"hyprland/language": {
"format": "{}",
"max-length": 18
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"sway/scratchpad": {
"format": "{icon} {count}",
"show-empty": false,
"format-icons": ["", ""],
"tooltip": true,
"tooltip-format": "{app}: {title}"
},
"mpd": {
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
"format-disconnected": "Disconnected ",
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
"unknown-tag": "N/A",
"interval": 2,
"consume-icons": {
"on": " "
},
"random-icons": {
"off": "<span color=\"#f53c3c\"></span> ",
"on": " "
},
"repeat-icons": {
"on": " "
},
"single-icons": {
"on": "1 "
},
"state-icons": {
"paused": "",
"playing": ""
},
"tooltip-format": "MPD (connected)",
"tooltip-format-disconnected": "MPD (disconnected)"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"tray": { "tray": {
// "icon-size": 21, // "icon-size": 21,
"spacing": 0 "spacing": 0
@@ -104,14 +70,6 @@
"memory": { "memory": {
"format": "{}% " "format": "{}% "
}, },
"temperature": {
// "thermal-zone": 2,
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80,
// "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}",
"format-icons": ["", "", ""]
},
"backlight": { "backlight": {
// "device": "acpi_video1", // "device": "acpi_video1",
"format": "{percent}% {icon}", "format": "{percent}% {icon}",
@@ -135,7 +93,6 @@
"bat": "BAT2" "bat": "BAT2"
}, },
"network": { "network": {
"interface": "enp4s0", // (Optional) To force the use of this interface
"format-wifi": "{essid} ", "format-wifi": "{essid} ",
"format-ethernet": "{ipaddr}/{cidr} ", "format-ethernet": "{ipaddr}/{cidr} ",
"tooltip-format": "{ifname} via {gwaddr} ", "tooltip-format": "{ifname} via {gwaddr} ",
@@ -144,21 +101,21 @@
"format-alt": "{ifname}: {ipaddr}/{cidr}" "format-alt": "{ifname}: {ipaddr}/{cidr}"
}, },
"pulseaudio": { "pulseaudio": {
// "scroll-step": 10, // %, can be a float // "scroll-step": 1, // %, can be a float
"format": "{volume}%{icon} {format_source}", "format": "{volume}% {icon}",
"format-bluetooth": "{volume}% {icon} {format_source}", "format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": " {icon} {format_source}", "format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}", "format-muted": " {format_source}",
"format-source": "{volume}% ", "format-source": "{volume}% ",
"format-source-muted": "", "format-source-muted": "",
"format-icons": { "format-icons": {
"headphone": "", "headphone": "",
"hands-free": "", "hands-free": "",
"headset": "", "headset": "",
"phone": "", "phone": "",
"portable": "", "portable": "",
"car": "", "car": "",
"default": ["", "", ""] "default": ["", "", ""]
}, },
"on-click": "pavucontrol" "on-click": "pavucontrol"
}, },
@@ -166,13 +123,13 @@
"tooltip": false, "tooltip": false,
"format": "{} {icon}", "format": "{} {icon}",
"format-icons": { "format-icons": {
"notification": "<span foreground='red'><sup></sup></span> ", "notification": "<span foreground='#f14c4c'><sup></sup></span> ",
"none": "", "none": "",
"dnd-notification": "<span foreground='red'><sup></sup></span> ", "dnd-notification": "<span foreground='#f14c4c'><sup></sup></span> ",
"dnd-none": "", "dnd-none": "",
"inhibited-notification": "<span foreground='red'><sup></sup></span> ", "inhibited-notification": "<span foreground='#f14c4c'><sup></sup></span> ",
"inhibited-none": "", "inhibited-none": "",
"dnd-inhibited-notification": "<span foreground='red'><sup></sup></span> ", "dnd-inhibited-notification": "<span foreground='#f14c4c'><sup></sup></span> ",
"dnd-inhibited-none": "" "dnd-inhibited-none": ""
}, },
"return-type": "json", "return-type": "json",
@@ -189,8 +146,15 @@
"has-updates": "󱍷", "has-updates": "󱍷",
"updated": "󰂪" "updated": "󰂪"
}, },
"exec-if": "which waybar-module-pacman-updates", "exec-if": "which waybar-updates",
"exec": "waybar-module-pacman-updates --interval-seconds 5 --network-interval-seconds 300" "exec": "waybar-updates --interval-seconds 5 --network-interval-seconds 300"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
} }
} }
+44 -49
View File
@@ -1,100 +1,95 @@
@define-color base00 #181818; /* Cursor Dark */
@define-color base01 #2b2e37; @define-color bg_dim #141414;
@define-color base02 #3b3e47; @define-color bg0 #181818;
@define-color base03 #585858; @define-color bg2 #2b2b2b;
@define-color base04 #b8b8b8; @define-color fg #cccccc;
@define-color base05 #d8d8d8; @define-color red #f14c4c;
@define-color base06 #e8e8e8; @define-color blue #3b8eea;
@define-color base07 #f8f8f8; @define-color orange #e2c08d;
@define-color base08 #ab4642; @define-color bg4 #2472c8;
@define-color base09 #dc9656;
@define-color base0A #f7ca88;
@define-color base0B #a1b56c;
@define-color base0C #86c1b9;
@define-color base0D #7cafc2;
@define-color base0E #ba8baf;
@define-color base0F #a16946;
* { * {
transition: none; transition: none;
box-shadow: none; box-shadow: none;
} }
#waybar { #waybar {
font-family: 'Source Code Pro', sans-serif; font-family: 'Hack JBM Ligatured', "Font Awesome 6 Free";
font-size: 1.2em; font-size: 1.2em;
font-weight: 400; font-weight: 400;
color: @base04; color: @fg;
background: @base01; border-radius: 10px;
background: @bg0;
} }
#workspaces { #workspaces {
margin: 0 4px; margin: 0 4px;
} }
#workspaces button { #workspaces button {
margin: 4px 0; margin: 4px 0;
padding: 0 4px; padding: 0 4px;
color: @base05; color: @fg;
} }
#workspaces button.visible { #workspaces button.visible {
} }
#workspaces button.active { #workspaces button.active {
border-radius: 4px; border-radius: 10px;
background-color: @base02; background-color: @bg4;
/* @fg on the accent blue is too low-contrast to read */
color: #ffffff;
} }
#workspaces button.urgent { #workspaces button.urgent {
color: rgba(238, 46, 36, 1); color: @red;
} }
#tray { #tray {
margin: 4px 4px 4px 4px; margin: 4px 4px 4px 4px;
border-radius: 4px; border-radius: 4px;
background-color: @base02; background-color: @bg2;
} }
#tray * { #tray * {
padding: 0 6px; padding: 0 6px;
border-left: 1px solid @base00; border-left: 1px solid @bg_dim;
} }
#tray *:first-child { #tray *:first-child {
border-left: none; border-left: none;
} }
#mode, #battery, #cpu, #memory, #network, #pulseaudio, #idle_inhibitor, #backlight, #custom-storage, #custom-updates, #custom-weather, #custom-mail, #clock, #temperature, #language{ #mode, #battery, #cpu, #memory, #network, #pulseaudio, #idle_inhibitor, #backlight, #custom-storage, #custom-updates, #custom-weather, #custom-mail, #clock, #temperature, #language{
margin: 4px 2px; margin: 4px 2px;
padding: 0 6px; padding: 0 6px;
background-color: @base02; background-color: @bg2;
border-radius: 4px; border-radius: 4px;
min-width: 20px; min-width: 20px;
} }
#pulseaudio.muted { #pulseaudio.muted {
color: @base0F; color: @orange;
} }
#pulseaudio.bluetooth { #pulseaudio.bluetooth {
color: @base0C; color: @blue;
} }
#clock { #clock {
margin-left: 0px; margin-left: 0px;
margin-right: 4px; margin-right: 4px;
background-color: transparent; background-color: transparent;
} }
#temperature.critical { #temperature.critical {
color: @base0F; color: @orange;
} }
#window { #window {
font-size: 0.9em;
font-weight: 400; font-weight: 400;
font-family: sans-serif; margin-left:20px;
} }
#language { #language {
+50
View File
@@ -13,3 +13,53 @@ map J zoom out
map i recolor map i recolor
map p print map p print
map g goto top map g goto top
# ==========================
# === Cursor Dark ===
# ==========================
# bg #181818 | raised #2b2b2b | popup #202020 | text #cccccc
# accent #2472c8 | selection #264f78
# Chrome
set default-bg "#181818"
set default-fg "#cccccc"
set statusbar-bg "#2b2b2b"
set statusbar-fg "#cccccc"
set inputbar-bg "#181818"
set inputbar-fg "#cccccc"
set render-loading-bg "#181818"
set render-loading-fg "#9d9d9d"
# Notifications. Error/warning backgrounds are VS Code's input-validation
# colors, so the error tint matches dunst's critical notifications.
set notification-bg "#2b2b2b"
set notification-fg "#cccccc"
set notification-error-bg "#5a1d1d"
set notification-error-fg "#ffffff"
set notification-warning-bg "#352a05"
set notification-warning-fg "#ffffff"
# Completion and index reuse the popup/selection colors from nvim
set completion-bg "#202020"
set completion-fg "#cccccc"
set completion-group-bg "#181818"
set completion-group-fg "#9d9d9d"
set completion-highlight-bg "#264f78"
set completion-highlight-fg "#ffffff"
set index-bg "#181818"
set index-fg "#cccccc"
set index-active-bg "#264f78"
set index-active-fg "#ffffff"
# Search: every match subtle, the current one in the accent blue
set highlight-color "#264f78"
set highlight-active-color "#2472c8"
# Render the document itself dark; 'i' (mapped above) toggles it back off.
# Despite the names, lightcolor is what LIGHT areas become (the page
# background) and darkcolor is what DARK areas become (the text).
set recolor true
set recolor-lightcolor "#181818"
set recolor-darkcolor "#cccccc"
# Keep colored figures and links recognisable instead of crushing them to mono
set recolor-keephue true