diff options
| author | 2025-03-03 13:07:17 -0500 | |
|---|---|---|
| committer | 2025-03-03 13:07:17 -0500 | |
| commit | 7c128e197b605ca95b5b72d3b3c613f2103d83ff (patch) | |
| tree | 3b56628d287845be2449d52b3220b7250f0d2867 /nix/programs | |
| parent | 8be9ca2624d39d0bf0931b585507741169ca5f9f (diff) | |
| download | dotfiles-7c128e197b605ca95b5b72d3b3c613f2103d83ff.tar.gz dotfiles-7c128e197b605ca95b5b72d3b3c613f2103d83ff.tar.bz2 dotfiles-7c128e197b605ca95b5b72d3b3c613f2103d83ff.zip | |
Big neovim changes, container tests
Diffstat (limited to 'nix/programs')
| -rw-r--r-- | nix/programs/bash.nix | 9 | ||||
| -rw-r--r-- | nix/programs/firefox.nix | 78 | ||||
| -rw-r--r-- | nix/programs/nvim.nix | 191 | ||||
| -rw-r--r-- | nix/programs/sway.nix | 21 |
4 files changed, 145 insertions, 154 deletions
diff --git a/nix/programs/bash.nix b/nix/programs/bash.nix index 1329922..ca6b7d9 100644 --- a/nix/programs/bash.nix +++ b/nix/programs/bash.nix @@ -45,18 +45,19 @@ bind '"\e[Z": menu-complete-backward' RESET="\001\017\002" NORMAL="\001\033[0m\002" - RED="\001\033[0;31m\002" YELLOW="\001\033[0;33m\002" + BLUE="\001\033[0;34m\002" CYAN="\001\033[0;36m\002" + RED="\001\033[0;31m\002" exit_code_guy() { - if [[ $? == 0 ]]; then + if [ $? -eq 0 ]; then printf "(・_・) >" else - printf "(″ロ゛) > $RED$?" + printf "(″ロ゛) >" fi } - export PS1="$RESET$CYAN\u@$YELLOW\H$CYAN:\w\$(exit_code_guy)$NORMAL " + export PS1="$RESET$BLUE\u@$CYAN\H$BLUE:\w\$(exit_code_guy)$NORMAL " ''; }; }; diff --git a/nix/programs/firefox.nix b/nix/programs/firefox.nix index 69bf0c6..6259301 100644 --- a/nix/programs/firefox.nix +++ b/nix/programs/firefox.nix @@ -1,6 +1,6 @@ { config, pkgs, ... }: let - s = config.local; + colo = config.local.scheme; in { environment.systemPackages = with pkgs; [ firefox-wayland @@ -19,8 +19,8 @@ in { source = (pkgs.fetchFromGitHub { owner = "rafaelmardojai"; repo = "firefox-gnome-theme"; - rev = "91ca1f82d717b02ceb03a3f423cbe8082ebbb26d"; - hash = "sha256-S79Hqn2EtSxU4kp99t8tRschSifWD4p/51++0xNWUxw="; + rev = "a89108e6272426f4eddd93ba17d0ea101c34fb21"; + hash = "sha256-vAxN2f3rvl5q62gQQjZGVSvF93nAsOxntuFz+e/655w="; }); }; home.file."customChrome.css" = { @@ -28,40 +28,40 @@ in { source = pkgs.writeText "customChrome.css" '' @namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); - @media (prefers-color-scheme: ${s.scheme.lightness}) { + @media (prefers-color-scheme: ${colo.lightness}) { :root { /* Accent */ - --gnome-accent-bg: #${s.scheme.color3}; - --gnome-accent: #${s.scheme.color2}; + --gnome-accent-bg: #${colo.color3}; + --gnome-accent: #${colo.color4}; - --gnome-toolbar-star-button: #${s.scheme.color2}; + --gnome-toolbar-star-button: #${colo.color4}; /* Window */ - --gnome-window-background: #${s.scheme.background}; - --gnome-window-color: #${s.scheme.foreground}; - --gnome-view-background: #${s.scheme.background}; - --gnome-sidebar-background: #${s.scheme.color1}; - --gnome-secondary-sidebar-background: #${s.scheme.color2}; + --gnome-window-background: #${colo.background}; + --gnome-window-color: #${colo.foreground}; + --gnome-view-background: #${colo.background}; + --gnome-sidebar-background: #${colo.color5}; + --gnome-secondary-sidebar-background: #${colo.color4}; /* Card */ - --gnome-card-background: #${s.scheme.background}; - --gnome-card-shade-color: #${s.scheme.color2}; + --gnome-card-background: #${colo.background}; + --gnome-card-shade-color: #${colo.color4}; /* Menu */ - --gnome-menu-background: #${s.scheme.background}; + --gnome-menu-background: #${colo.background}; /* Header bar */ - --gnome-headerbar-background: #${s.scheme.background}; - --gnome-headerbar-shade-color: #${s.scheme.background}; + --gnome-headerbar-background: #${colo.background}; + --gnome-headerbar-shade-color: #${colo.background}; /* Toolbars */ - --gnome-toolbar-icon-fill: #${s.scheme.foreground}; + --gnome-toolbar-icon-fill: #${colo.foreground}; /* Tabs */ - --gnome-tabbar-tab-hover-background: #${s.scheme.color6}; - --gnome-tabbar-tab-active-background: #${s.scheme.color2}; - --gnome-tabbar-tab-active-background-contrast: #${s.scheme.color2}; - --gnome-tabbar-tab-active-hover-background: #${s.scheme.color1}; + --gnome-tabbar-tab-hover-background: #${colo.color5}; + --gnome-tabbar-tab-active-background: #${colo.color4}; + --gnome-tabbar-tab-active-background-contrast: #${colo.color4}; + --gnome-tabbar-tab-active-hover-background: #${colo.color5}; --gnome-tabbar-identity-color-green: var(--gnome-palette-green-1); --gnome-tabbar-identity-color-yellow: var(--gnome-palette-yellow-2); @@ -70,36 +70,36 @@ in { --gnome-tabbar-identity-color-purple: var(--gnome-palette-purple-1); /* Text color for Firefox Logo in new private tab */ - --gnome-private-wordmark: #${s.scheme.background}; + --gnome-private-wordmark: #${colo.background}; /* New private tab background */ - --gnome-private-in-content-page-background: #${s.scheme.background}; + --gnome-private-in-content-page-background: #${colo.background}; /* Private browsing info box */ - --gnome-private-text-primary-color: #${s.scheme.background}; + --gnome-private-text-primary-color: #${colo.background}; } /* Backdrop colors */ :root:-moz-window-inactive { - --gnome-tabbar-tab-hover-background: #${s.scheme.background}; - --gnome-tabbar-tab-active-background: #${s.scheme.background}; + --gnome-tabbar-tab-hover-background: #${colo.background}; + --gnome-tabbar-tab-active-background: #${colo.background}; } /* Private colors */ :root[privatebrowsingmode="temporary"] { - --gnome-accent-fg: #${s.scheme.color2}; + --gnome-accent-fg: #${colo.color4}; /* Headerbar */ - --gnome-headerbar-background: #${s.scheme.color1} !important; + --gnome-headerbar-background: #${colo.color5} !important; /* Tabs */ - --gnome-tabbar-tab-hover-background: #${s.scheme.color6}; - --gnome-tabbar-tab-active-background: #${s.scheme.background}; - --gnome-tabbar-tab-active-background-contrast: #${s.scheme.background}; - --gnome-tabbar-tab-active-hover-background: #${s.scheme.color1}; + --gnome-tabbar-tab-hover-background: #${colo.color5}; + --gnome-tabbar-tab-active-background: #${colo.background}; + --gnome-tabbar-tab-active-background-contrast: #${colo.background}; + --gnome-tabbar-tab-active-hover-background: #${colo.color5}; } /* Private and backdrop colors */ :root[privatebrowsingmode="temporary"]:-moz-window-inactive { - --gnome-headerbar-background: #${s.scheme.color1} !important; - --gnome-tabbar-tab-hover-background: #${s.scheme.color1}; - --gnome-tabbar-tab-active-background: #${s.scheme.color1}; + --gnome-headerbar-background: #${colo.color5} !important; + --gnome-tabbar-tab-hover-background: #${colo.color5}; + --gnome-tabbar-tab-active-background: #${colo.color5}; } } ''; @@ -112,7 +112,7 @@ in { programs.firefox = { enable = true; profiles.default = { - extensions = with pkgs.nur.repos.rycee.firefox-addons; [ + extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [ ublock-origin skip-redirect cookies-txt @@ -130,13 +130,13 @@ in { display: none !important; } #tabbrowser-tabpanels{ - background-color: #${s.scheme.background} !important; + background-color: #${colo.background} !important; } ''; userContent = '' @import "firefox-gnome-theme/userContent.css"; @-moz-document url("about:home"),url("about:blank"),url("about:newtab"),url("about:privatebrowsing") { - body{ background-color: #${s.scheme.background} !important } + body{ background-color: #${colo.background} !important } } ''; }; diff --git a/nix/programs/nvim.nix b/nix/programs/nvim.nix index fcffe02..de554e4 100644 --- a/nix/programs/nvim.nix +++ b/nix/programs/nvim.nix @@ -1,69 +1,71 @@ { config, pkgs, ... }: let - s = config.local; - colo = s.scheme; - local = pkgs.vimUtils.buildVimPlugin { + colo = config.local.scheme; + local-nvim = pkgs.vimUtils.buildVimPlugin { pname = "local"; version = "0.2"; src = ../../files/nvim/local; }; wal = pkgs.vimUtils.buildVimPlugin { - # https://github.com/neovim/neovim/blob/909b18d05a8d472b12c156e1663282bf6f5ce307/src/nvim/highlight_group.c#L425 - # s/NvimLightGrey2/#${colo.foreground}/g - # s/NvimDarkGrey2/#${colo.background}/g - # s/NvimLightGreen/#${colo.color4}/g - # s/NvimLightCyan/#${colo.color2}/g - # s/NvimDarkGrey4/#${colo.color6}/g - # s/NvimDarkGrey1/#${colo.color0}/g - # s/NvimLightYellow/#${colo.color4}/g - # s/NvimDarkGrey3/#${colo.color6}/g - # s/NvimLightGrey1/#${colo.color4}/g - # s/NvimDarkGreen/#${colo.background}/g - # s/NvimLightRed/#${colo.color3}/g - # s/NvimDarkCyan/#${colo.background}/g - # s/NvimDarkYellow/#${colo.color2}/g - # s/NvimDarkRed/#${colo.color3}/g - # s/NvimLightGrey3/#${colo.background}/g - # s/NvimLightBlue/#${colo.foreground}/g - # s/NvimLightGrey4/#${colo.color5}/g - # Then edited as needed. + # https://github.com/neovim/neovim/blob/ec8922978eb14fe62671628bb25215743712eac0/src/nvim/highlight_group.c#L432 + # ...neovim-unwrapped-0.10.4/share/nvim/runtime/syntax/c.vim pname = "wal"; - version = "3.2"; + version = "3.3"; src = pkgs.writeTextDir "colors/wal-gui.vim" '' let g:colors_name = "wal-gui" set background=${colo.lightness} set pumblend=10 + " Lag Fix + hi! link CurSearch Search + + " Plugins + hi MiniStarterInactive guifg=#${colo.foreground} + hi MiniStarterQuery guifg=#${colo.color5} gui=bold + hi MiniStarterItemPrefix guifg=#${colo.color4} + + " https://github.com/NeogitOrg/neogit/blob/nightly/lua/neogit/lib/hl.lua + hi link NeogitDiffContext Normal + hi link NeogitDiffContextHighlight Normal + hi link NeogitDiffContextCursor Normal + hi link NeogitHunkHeader NeogitHunkHeaderHighlight + + " Custom + hi ExtraWhitespace guibg=#${colo.color4} + hi Normal guifg=#${colo.foreground} guibg=#${colo.background} + " Necessary even without tree-sitter. + hi @variable guifg=#${colo.foreground} + " UI - hi Added guifg=#${colo.color2} - hi Changed guifg=#${colo.color4} + hi Added guifg=#${colo.color4} + hi Changed guifg=#${colo.color2} hi ColorColumn guibg=#${colo.color6} hi Conceal guifg=#${colo.color6} - hi CurSearch guifg=#${colo.color0} guibg=#${colo.color4} - hi CursorColumn guibg=#${colo.color6} - hi CursorLine guibg=#${colo.color6} - hi DiffAdd guifg=#${colo.color2} guibg=#${colo.background} - hi DiffChange guifg=#${colo.color4} guibg=#${colo.background} - hi DiffDelete guifg=#${colo.color3} guibg=#${colo.background} gui=bold - hi DiffText guifg=#${colo.color6} guibg=#${colo.background} + hi CurSearch guifg=#${colo.background} guibg=#${colo.color4} + hi CursorColumn guibg=#${colo.background} + hi CursorLine guibg=#${colo.color4} + hi DiffAdd guifg=#${colo.color4} guibg=#${colo.background} + hi DiffChange guifg=#${colo.color3} guibg=#${colo.background} + hi DiffDelete guifg=#${colo.color1} guibg=#${colo.background} gui=bold + hi DiffText guifg=#${colo.color4} guibg=#${colo.background} hi Directory guifg=#${colo.color2} - hi ErrorMsg guifg=#${colo.color3} - hi FloatShadow guibg=#${colo.color6} - hi FloatShadowThrough guibg=#${colo.color6} - hi Folded guifg=#${colo.color5} guibg=#${colo.color6} + hi ErrorMsg guifg=#${colo.color1} + hi FloatShadow guibg=#${colo.color6} blend=80 + hi FloatShadowThrough guibg=#${colo.color6} blend=100 + hi Folded guifg=#${colo.color5} guibg=#${colo.background} hi LineNr guifg=#${colo.color6} hi MatchParen guibg=#${colo.color6} gui=bold hi ModeMsg guifg=#${colo.color4} hi MoreMsg guifg=#${colo.color2} hi NonText guifg=#${colo.color6} - hi NormalFloat guibg=#${colo.color1} - hi Pmenu guibg=#${colo.color1} + hi NormalFloat guibg=#${colo.background} + hi Pmenu guibg=#${colo.color4} + hi PmenuThumb guibg=#${colo.color5} hi PmenuSel guibg=#${colo.color2} - hi PmenuSbar guibg=#${colo.color1} - hi PmenuThumb guibg=#${colo.color1} + hi PmenuSbar guibg=#${colo.color4} hi Question guifg=#${colo.color2} hi QuickFixLine guifg=#${colo.color2} hi RedrawDebugClear guibg=#${colo.color2} @@ -77,13 +79,13 @@ let hi SpellCap guisp=#${colo.color4} gui=undercurl hi SpellLocal guisp=#${colo.color4} gui=undercurl hi SpellRare guisp=#${colo.color2} gui=undercurl - hi StatusLine guifg=#${colo.color4} guibg=#${colo.background} - hi StatusLineNC guifg=#${colo.color6} guibg=#${colo.background} + hi StatusLine guifg=#${colo.background} guibg=#${colo.color5} + hi StatusLineNC guifg=#${colo.background} guibg=#${colo.color4} hi Title guifg=#${colo.foreground} gui=bold hi Visual guibg=#${colo.color6} - hi WarningMsg guifg=#${colo.color4} - hi WinBar guifg=#${colo.color5} guibg=#${colo.color0} gui=bold - hi WinBarNC guifg=#${colo.color5} guibg=#${colo.color0} + hi WarningMsg guifg=#${colo.color3} + hi WinBar guifg=#${colo.color5} guibg=#${colo.background} gui=bold + hi WinBarNC guifg=#${colo.color5} guibg=#${colo.background} " // Syntax " "default link Character Constant", @@ -108,53 +110,44 @@ let " "default link Debug Special", " "default link Ignore Normal", + " Syntax Overrides + hi Structure guifg=#${colo.color4} gui=bold + hi StorageClass guifg=#${colo.color4} gui=bold + hi Number guifg=#${colo.foreground} + " ----- + hi link Boolean Number + hi link Character Number + hi link Character String + hi link SpecialChar Character + " Syntax - hi Constant guifg=#${colo.foreground} " Use only `Normal` foreground to be usable on different background + hi Constant guifg=#${colo.foreground} hi Operator guifg=#${colo.foreground} hi PreProc guifg=#${colo.foreground} - hi Type guifg=#${colo.foreground} + hi Type guifg=#${colo.foreground} gui=bold hi Delimiter guifg=#${colo.foreground} - hi Comment guifg=#${colo.color5} gui=italic - hi String guifg=#${colo.color2} + hi Comment guifg=#${colo.color3} + hi String guifg=#${colo.color3} hi Identifier guifg=#${colo.foreground} - hi Function guifg=#${colo.color4} - hi Statement guifg=#${colo.foreground} gui=bold - hi Special guifg=#${colo.color4} - hi Error guifg=#${colo.foreground} guibg=#${colo.color4} - hi Todo guifg=#${colo.foreground} gui=bold + hi Function guifg=#${colo.foreground} + hi Statement guifg=#${colo.foreground} gui=bold + hi Special guifg=#${colo.color6} + hi Error guifg=#${colo.color1} guibg=#${colo.foreground} " Used for Neogit delete. + hi Todo guifg=#${colo.foreground} gui=bold " Diagnostic - hi DiagnosticError guifg=#${colo.color3} - hi DiagnosticWarn guifg=#${colo.color4} + hi DiagnosticError guifg=#${colo.color1} + hi DiagnosticWarn guifg=#${colo.color3} hi DiagnosticInfo guifg=#${colo.color2} hi DiagnosticHint guifg=#${colo.foreground} hi DiagnosticOk guifg=#${colo.color4} - hi DiagnosticUnderlineError guisp=#${colo.color3} gui=underline - hi DiagnosticUnderlineWarn guisp=#${colo.color4} gui=underline + hi DiagnosticUnderlineError guisp=#${colo.color1} gui=underline + hi DiagnosticUnderlineWarn guisp=#${colo.color3} gui=underline hi DiagnosticUnderlineInfo guisp=#${colo.color2} gui=underline hi DiagnosticUnderlineHint guisp=#${colo.foreground} gui=underline hi DiagnosticUnderlineOk guisp=#${colo.color4} gui=underline hi DiagnosticDeprecated guisp=#${colo.color3} gui=strikethrough - - hi @variable guifg=#${colo.foreground} - - " Plugins - hi MiniStarterInactive guifg=#${colo.foreground} - hi MiniStarterQuery guifg=#${colo.color3} - hi MiniStarterItemPrefix guifg=#${colo.color4} - - " https://github.com/NeogitOrg/neogit/blob/nightly/lua/neogit/lib/hl.lua - hi link NeogitDiffContext Normal - hi link NeogitDiffContextHighlight Normal - hi link NeogitDiffContextCursor Normal - hi link NeogitHunkHeader NeogitHunkHeaderHighlight - - " Custom - hi ExtraWhitespace guibg=#${colo.color4} - - " Lag Fix - hi! link CurSearch Search ''; }; in { @@ -162,7 +155,9 @@ in { EDITOR = "nvim"; }; home-manager.users.andrew = { - programs.neovim = { + programs.neovim = let + s = config.local.starter; + in { enable = true; viAlias = true; vimAlias = true; @@ -186,24 +181,24 @@ in { starter.gen_hook.adding_bullet(), starter.gen_hook.aligning('center', 'center') }, - footer = '${s.starter.footer}', - footer_offset = ${toString s.starter.footer_offset}, + top_padding = ${toString s.top_padding}, + footer = '${s.footer}', + footer_offset = ${toString s.footer-offset}, picture = { - path = '${s.starter.picture}', + path = '${s.picture}', kitty = true, - width = ${toString s.starter.width}, - position = '${s.starter.position}', + width = ${toString s.width}, + position = '${s.position}', padding = { - top = ${toString s.starter.padding.top}, - left = ${toString s.starter.padding.left}, - text = ${toString s.starter.padding.text} + top = ${toString s.padding.top}, + left = ${toString s.padding.left}, + text = ${toString s.padding.text} } } }) EOF '' + builtins.readFile(../../files/nvim/init.vim); extraPackages = with pkgs; [ - tree-sitter fzf chafa ripgrep @@ -221,33 +216,19 @@ in { # meta.homepage = ""; #}) plugins = with pkgs.vimPlugins; [ - local + local-nvim wal - ccc-nvim undotree + fzfWrapper + fzf-vim vim-gitbranch vim-signify nvim-lspconfig - lsp-status-nvim inc-rename-nvim - (nvim-treesitter.withPlugins (plugins: with plugins; [ c cpp bash python lua nix ])) - fzfWrapper - fzf-vim mini-nvim neogit plenary-nvim - diffview-nvim - (pkgs.vimUtils.buildVimPlugin { - pname = "perfanno.nvim"; - version = "git-8640d66"; - src = pkgs.fetchFromGitHub { - owner = "t-troebst"; - repo = "perfanno.nvim"; - rev = "8640d6655f17a79af8de3153af2ce90c03f65e86"; - hash = "sha256-AfmmeLeUwYY9c3ISwt6/EHwCE4uhzKCvVoFwze7VJ4E="; - }; - meta.homepage = "https://github.com/t-troebst/perfanno.nvim/"; - }) + ccc-nvim ]; }; }; diff --git a/nix/programs/sway.nix b/nix/programs/sway.nix index 8206031..0a16744 100644 --- a/nix/programs/sway.nix +++ b/nix/programs/sway.nix @@ -22,6 +22,14 @@ in { xorg.xrandr ]; }; + local.scripts.imports = [ + "dbus-sway-environment" + "dmenu-path" + "dmenu-path0" + "dmenu-emoji" + "wlsunset-toggle" + "screenshot" + ]; services.dbus.enable = true; security.polkit.enable = true; programs.dconf.enable = true; @@ -262,7 +270,7 @@ in { commands = [ { command = "move to scratchpad"; criteria.app_id = "kitty-server"; } { command = "max_render_time 1"; criteria.app_id = "kitty"; } - { command = "inhibit_idle fullscreen; floating enable; max_render_time 1"; criteria.app_id = "cmv"; } + { command = "inhibit_idle fullscreen; floating enable; max_render_time 1; allow_tearing yes"; criteria.app_id = "cmv"; } { command = "floating enable"; criteria.class = "cmv.exe"; } { command = "floating enable"; criteria.app_id = "mauri"; } { command = "inhibit_idle fullscreen"; criteria.title = "Parsec"; } @@ -272,7 +280,8 @@ in { { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.app_id = "osu!"; } { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = "cs2"; } { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = "Minecraft*"; } - #{ command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.title = "Overwatch"; } + { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.title = "Overwatch"; } + { command = "allow_tearing yes"; criteria.title = "vkcube"; } { command = "inhibit_idle fullscreen"; criteria.class = "Ryujinx"; } { command = "inhibit_idle fullscreen"; criteria.app_id = "org.yuzu_emu.yuzu"; } { command = "inhibit_idle fullscreen"; criteria.class = "dolphin-emu"; } @@ -283,12 +292,12 @@ in { colors = let bg = "#${s.scheme.background}"; fg = "#${s.scheme.foreground}"; - c2 = "#${s.scheme.color6}"; - urgent = "#${s.scheme.color2}"; + ch = "#${s.scheme.color4}"; + urgent = "#${s.scheme.color1}"; in { background = bg; - focused = { background = bg; border = c2; childBorder = c2; indicator = c2; text = fg; }; - focusedInactive = { background = bg; border = c2; childBorder = c2; indicator = c2; text = fg; }; + focused = { background = bg; border = ch; childBorder = ch; indicator = ch; text = fg; }; + focusedInactive = { background = bg; border = ch; childBorder = ch; indicator = ch; text = fg; }; unfocused = { background = bg; border = bg; childBorder = bg; indicator = bg; text = fg; }; urgent = { background = urgent; border = urgent; childBorder = urgent; indicator = urgent; text = fg; }; placeholder = { background = bg; border = bg; childBorder = bg; indicator = bg; text = fg; }; |