diff options
| author | 2025-03-03 13:07:17 -0500 | |
|---|---|---|
| committer | 2025-03-03 13:07:17 -0500 | |
| commit | 7c128e197b605ca95b5b72d3b3c613f2103d83ff (patch) | |
| tree | 3b56628d287845be2449d52b3220b7250f0d2867 | |
| parent | 8be9ca2624d39d0bf0931b585507741169ca5f9f (diff) | |
| download | dotfiles-7c128e197b605ca95b5b72d3b3c613f2103d83ff.tar.gz dotfiles-7c128e197b605ca95b5b72d3b3c613f2103d83ff.tar.bz2 dotfiles-7c128e197b605ca95b5b72d3b3c613f2103d83ff.zip | |
Big neovim changes, container tests
28 files changed, 704 insertions, 383 deletions
diff --git a/files/nixpkgs-patches/383432.diff b/files/nixpkgs-patches/383432.diff new file mode 100644 index 0000000..faa7e77 --- /dev/null +++ b/files/nixpkgs-patches/383432.diff @@ -0,0 +1,217 @@ +diff --git a/pkgs/development/libraries/mesa/common.nix b/pkgs/development/libraries/mesa/common.nix +index 8439861cf36c8..db33ea5d30751 100644 +--- a/pkgs/development/libraries/mesa/common.nix ++++ b/pkgs/development/libraries/mesa/common.nix +@@ -5,14 +5,14 @@ + # nix build .#legacyPackages.x86_64-darwin.mesa .#legacyPackages.aarch64-darwin.mesa + rec { + pname = "mesa"; +- version = "24.3.4"; ++ version = "25.0.0"; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "mesa"; + repo = "mesa"; + rev = "mesa-${version}"; +- hash = "sha256-1RUHbTgcCxdDrWjqB0EG4Ny/nwdjQHHpyPauiW/yogU="; ++ hash = "sha256-ut6fB2m850Bx08V43TZ0WNoeDLZov76FtYPz6UFFjvQ="; + }; + + meta = { +diff --git a/pkgs/development/libraries/mesa/cross_clc.patch b/pkgs/development/libraries/mesa/cross_clc.patch +deleted file mode 100644 +index cb29e57ec3493..0000000000000 +--- a/pkgs/development/libraries/mesa/cross_clc.patch ++++ /dev/null +@@ -1,90 +0,0 @@ +-commit f063e9f74b45f34e4ac570a90901253bf8e64efd +-Author: Mary Guillemard <mary.guillemard@collabora.com> +-Date: 2024-12-02 09:11:35 +0100 +- +- meson: Add mesa-clc and install-mesa-clc options +- +- Due to the cross build issues in current meson, we adds new options to +- allow mesa_clc and vtn_bindgen to be installed or searched on the +- system. +- +- Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com> +- Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> +- Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> +- Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32719> +- +-diff --git a/meson.build b/meson.build +-index de9c9af53a1..e37325ec176 100644 +---- a/meson.build +-+++ b/meson.build +-@@ -808,7 +808,7 @@ if with_gallium_rusticl or with_nouveau_vk or with_tools.contains('etnaviv') +- endif +- +- with_clover_spirv = with_gallium_clover and get_option('opencl-spirv') +--with_clc = with_microsoft_clc or with_intel_clc or with_gallium_asahi or with_asahi_vk or with_gallium_rusticl or with_clover_spirv +-+with_clc = get_option('mesa-clc') != 'auto' or with_microsoft_clc or with_intel_clc or with_gallium_asahi or with_asahi_vk or with_gallium_rusticl +- +- dep_clc = null_dep +- if with_gallium_clover or with_clc +-diff --git a/meson_options.txt b/meson_options.txt +-index 79ee65e6094..8f22b36e5fb 100644 +---- a/meson_options.txt +-+++ b/meson_options.txt +-@@ -744,3 +744,20 @@ option( +- 'none', 'dri2' +- ], +- ) +-+ +-+option( +-+ 'mesa-clc', +-+ type : 'combo', +-+ value : 'auto', +-+ choices : [ +-+ 'enabled', 'system', 'auto' +-+ ], +-+ description : 'Build the mesa-clc compiler or use a system version.' +-+) +-+ +-+option( +-+ 'install-mesa-clc', +-+ type : 'boolean', +-+ value : false, +-+ description : 'Install the mesa-clc compiler (if needed for cross builds).' +-+) +-diff --git a/src/compiler/clc/meson.build b/src/compiler/clc/meson.build +-index 74767d08de2..4875d71ca21 100644 +---- a/src/compiler/clc/meson.build +-+++ b/src/compiler/clc/meson.build +-@@ -117,15 +117,20 @@ idep_mesaclc = declare_dependency( +- link_args : _idep_mesaclc_link_args, +- ) +- +--prog_mesa_clc = executable( +-- 'mesa_clc', +-- ['mesa_clc.c'], +-- include_directories : [inc_include, inc_src], +-- c_args : [pre_args, no_override_init_args], +-- link_args : [ld_args_build_id], +-- dependencies : [idep_mesaclc, dep_llvm, dep_spirv_tools, idep_getopt], +-- # If we can run host binaries directly, just build mesa_clc for the host. +-- # Most commonly this happens when doing a cross compile from an x86_64 build +-- # machine to an x86 host +-- native : not meson.can_run_host_binaries(), +--) +-+if get_option('mesa-clc') == 'system' +-+ prog_mesa_clc = find_program('mesa_clc', native : true) +-+else +-+ prog_mesa_clc = executable( +-+ 'mesa_clc', +-+ ['mesa_clc.c'], +-+ include_directories : [inc_include, inc_src], +-+ c_args : [pre_args, no_override_init_args], +-+ link_args : [ld_args_build_id], +-+ dependencies : [idep_mesaclc, dep_llvm, dep_spirv_tools, idep_getopt], +-+ # If we can run host binaries directly, just build mesa_clc for the host. +-+ # Most commonly this happens when doing a cross compile from an x86_64 build +-+ # machine to an x86 host +-+ native : not meson.can_run_host_binaries(), +-+ install : get_option('install-mesa-clc'), +-+ ) +-+endif +diff --git a/pkgs/development/libraries/mesa/darwin.nix b/pkgs/development/libraries/mesa/darwin.nix +index 55392071010a9..1a458523632ec 100644 +--- a/pkgs/development/libraries/mesa/darwin.nix ++++ b/pkgs/development/libraries/mesa/darwin.nix +@@ -27,18 +27,6 @@ stdenv.mkDerivation { + meta + ; + +- # Darwin build fixes. FIXME: remove in 25.1. +- patches = [ +- (fetchpatch { +- url = "https://gitlab.freedesktop.org/mesa/mesa/-/commit/e89eba0796b3469f1d2cdbb600309f6231a8169d.patch"; +- hash = "sha256-0EP0JsYy+UTQ+eGd3sMfoLf1R+2e8n1flmQAHq3rCR4="; +- }) +- (fetchpatch { +- url = "https://gitlab.freedesktop.org/mesa/mesa/-/commit/568a4ca899762fe96fc9b34d2288d07e6656af87.patch"; +- hash = "sha256-uLxa5vA3/cYAIJT9h7eBQ1EBu4MnMg9R5uGAHzTb5Fc="; +- }) +- ]; +- + outputs = [ + "out" + "dev" +diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix +index 633770b6862c8..c1e950c2e5167 100644 +--- a/pkgs/development/libraries/mesa/default.nix ++++ b/pkgs/development/libraries/mesa/default.nix +@@ -138,9 +138,6 @@ in stdenv.mkDerivation { + + patches = [ + ./opencl.patch +- # cherry-picked from https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32719 +- # safe to remove for versions > 24.3.2 +- ./cross_clc.patch + ]; + + postPatch = '' +@@ -206,14 +203,13 @@ in stdenv.mkDerivation { + (lib.mesonOption "freedreno-kmds" "msm,kgsl,virtio,wsl") + + # Enable Intel RT stuff when available +- (lib.mesonBool "install-intel-clc" true) +- (lib.mesonBool "install-mesa-clc" true) + (lib.mesonEnable "intel-rt" stdenv.hostPlatform.isx86_64) ++ ++ # Required for OpenCL + (lib.mesonOption "clang-libdir" "${lib.getLib llvmPackages.clang-unwrapped}/lib") + + # Clover, old OpenCL frontend + (lib.mesonOption "gallium-opencl" "icd") +- (lib.mesonBool "opencl-spirv" true) + + # Rusticl, new OpenCL frontend + (lib.mesonBool "gallium-rusticl" true) +@@ -221,12 +217,18 @@ in stdenv.mkDerivation { + # meson auto_features enables this, but we do not want it + (lib.mesonEnable "android-libbacktrace" false) + (lib.mesonEnable "microsoft-clc" false) # Only relevant on Windows (OpenCL 1.2 API on top of D3D12) ++ ++ # Build and install extra tools for cross ++ (lib.mesonBool "install-mesa-clc" true) ++ (lib.mesonBool "install-precomp-compiler" true) ++ ++ # Disable valgrind on targets where it's not available + (lib.mesonEnable "valgrind" withValgrind) + ] ++ lib.optionals enablePatentEncumberedCodecs [ + (lib.mesonOption "video-codecs" "all") + ] ++ lib.optionals needNativeCLC [ +- (lib.mesonOption "intel-clc" "system") + (lib.mesonOption "mesa-clc" "system") ++ (lib.mesonOption "precomp-compiler" "system") + ]; + + strictDeps = true; +@@ -308,6 +310,7 @@ in stdenv.mkDerivation { + + postInstall = '' + # Move driver-related bits to $drivers ++ moveToOutput "lib/gallium-pipe" $drivers + moveToOutput "lib/gbm" $drivers + moveToOutput "lib/lib*_mesa*" $drivers + moveToOutput "lib/libgallium*" $drivers +@@ -339,7 +342,7 @@ in stdenv.mkDerivation { + + moveToOutput bin/intel_clc $driversdev + moveToOutput bin/mesa_clc $driversdev +- moveToOutput lib/gallium-pipe $opencl ++ moveToOutput bin/vtn_bindgen $driversdev + moveToOutput "lib/lib*OpenCL*" $opencl + moveToOutput "lib/libOSMesa*" $osmesa + moveToOutput bin/spirv2dxil $spirv2dxil +@@ -392,7 +395,7 @@ in stdenv.mkDerivation { + + env.NIX_CFLAGS_COMPILE = toString ([ + "-UPIPE_SEARCH_DIR" +- "-DPIPE_SEARCH_DIR=\"${placeholder "opencl"}/lib/gallium-pipe\"" ++ "-DPIPE_SEARCH_DIR=\"${placeholder "drivers"}/lib/gallium-pipe\"" + ]); + + passthru = { diff --git a/files/nvim/init.vim b/files/nvim/init.vim index e679f4d..f7c4d54 100644 --- a/files/nvim/init.vim +++ b/files/nvim/init.vim @@ -5,6 +5,8 @@ set signcolumn=yes set updatetime=250 set scrolloff=5 +" https://github.com/SmiteshP/nvim-navic + " Change directory based on current file. if !empty($NIX_SHELL) " Attempt to conflict less with plugins. @@ -33,7 +35,9 @@ set autoindent " C syntax preference. let g:c_syntax_for_h=1 -set cinoptions=:0,=4,l1,g2,h2,(4,u4,+4,m1 +let g:c_no_curly_error=1 +let g:c_function_pointers=1 +set cinoptions=:0,=4,l1,g2,h2,(4,u4,+4,m1,j1,J1 set cindent " Set different format for mail and text files. @@ -126,17 +130,6 @@ function! StatuslineGit() return strlen(l:branchname) > 0 ? ' '.l:branchname.' ' : ' ' endfunction -lua << EOF -function get_lsp_name() - local active_clients = vim.lsp.get_active_clients({bufnr = vim.api.nvim_get_current_buf()}) - if next(active_clients) == nil then - return '' - else - return '+'..active_clients[1].name - end -end -EOF - function! StatuslineLsp() abort return luaeval('get_lsp_name()') endfunction @@ -159,7 +152,97 @@ function! Statusline() abort endfunction set statusline=%!Statusline() +" Make shift + nav keys no-ops. +nmap H <nop> +nmap J <nop> +nmap K <nop> +nmap L <nop> +" Normal mode tab no-op. +nmap <Tab> <nop> +" ctrl + c no-op. +nmap <C-c> <nop> +" Disable F1 for help. +nmap <F1> <nop> +" Disable q: for histroy. +nmap q: <nop> +" Simplify split movement. +nmap <silent> <C-h> :wincmd h<CR> +nmap <silent> <C-j> :wincmd j<CR> +nmap <silent> <C-k> :wincmd k<CR> +nmap <silent> <C-l> :wincmd l<CR> +nmap <silent> <C-o> :vsplit<CR> +" Make ctrl + '.' and ',' map to previous buffer. +nmap <C-,> <C-^> +nmap <C-.> <C-^> +" Swap ctrl + f and b. +nnoremap <C-b> <C-f> +nnoremap <C-f> <C-b> +" Toggle colorcolumn. +nmap <silent> C :execute 'set colorcolumn=' . (&colorcolumn == '' ? '101' : '')<CR> +" Personally intuitive pop-up menu binds. +inoremap <expr> <CR> pumvisible() ? '<C-y><CR>' : '<CR>' +inoremap <expr> <Up> pumvisible() ? '<C-p>' : '<Up>' +inoremap <expr> <Down> pumvisible() ? '<C-n>' : '<Down>' +" Lsp Binds. +nmap <C-d> <C-]> +" Fzf binds. +nmap <silent> \ :Buffers<CR> +nmap <silent> <C-i> :GGrep<CR> +nmap <silent> <C-\> :GFiles<CR> +" Only Neogit bind, handle all further operations from this menu. +nmap <silent> Y :Neogit<CR> +" Undotree +nmap <silent> U :UndotreeToggle<CR> + +command Tabify set noexpandtab | %retab! | set expandtab +command Untabify set expandtab | %retab! + +" https://stackoverflow.com/a/37040415 +function! SyntaxGroup() + let l:s = synID(line('.'), col('.'), 1) + echo synIDattr(l:s, 'name') . ' -> ' . synIDattr(synIDtrans(l:s), 'name') +endfun + +" https://github.com/junegunn/fzf.vim?tab=readme-ov-file#example-git-grep-wrapper +command! -bang -nargs=* GGrep + \ call fzf#vim#grep( + \ 'git grep --line-number -- '.fzf#shellescape(<q-args>), + \ fzf#vim#with_preview({'dir': systemlist('git rev-parse --show-toplevel')[0]}), <bang>0) + +" https://vim.fandom.com/wiki/Replace_a_builtin_command_using_cabbrev +function! CommandCabbr(abbreviation, expansion) + execute 'cabbr ' . a:abbreviation . ' <C-R>=getcmdpos() == 1 && getcmdtype() == ":" ? "' . a:expansion . '" : "' . a:abbreviation . '"<CR>' +endfunction +command! -nargs=+ CommandCabbr call CommandCabbr(<f-args>) +CommandCabbr no nohlsearch + +call Juliana#Init() " Custom insert mode tab behavior inherited from Emacs. +inoremap <silent><Tab> <C-R>=Juliana#CompleteTab('START')<CR> + \<C-R>=Juliana#CompleteTab('TAB')<CR> + \<C-R>=Juliana#CompleteTab('ALIGN')<CR> + \<C-R>=Juliana#CompleteTab('NEXT')<CR> +inoremap <silent><S-Tab> <C-R>=Juliana#CompleteSTab('PREV')<CR> + lua << EOF +function get_lsp_name() + local active_clients = vim.lsp.get_active_clients({bufnr = vim.api.nvim_get_current_buf()}) + if next(active_clients) == nil then + return '' + else + return '+'..active_clients[1].name + end +end + +buf_is_big = function(bufnr) + local max_filesize = 100 * 1024 -- 100 KB + local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(bufnr)) + if ok and stats and stats.size > max_filesize then + return true + else + return false + end +end + -- LSP configs. if os.getenv('NIX_SHELL') ~= nil then local lsp = require('lspconfig') @@ -185,21 +268,25 @@ if os.getenv('NIX_SHELL') ~= nil then } }) lsp.ruff.setup({}) + -- https://github.com/neovim/nvim-lspconfig/issues/2626#issuecomment-2117022664 + -- https://github.com/neovim/nvim-lspconfig/issues/2508 + vim.api.nvim_create_autocmd('BufReadPre', { + callback = function(t) + if buf_is_big(t.buf) then + vim.o.eventignore = "FileType" + vim.schedule(function() + vim.o.eventignore = "" + print("Dropped FileType events because the buffer is too big") + end) + end + end + }) require('inc_rename').setup({}) + vim.keymap.set('n', '<C-n>', function() + return ':IncRename ' .. vim.fn.expand('<cword>') + end, { expr = true }) end --- Try to make treesitter suck less. -require('nvim-treesitter.configs').setup({ - highlight = { - enable = true, - additional_vim_regex_highlighting = false - }, - indent = { - enable = true, - disable = { 'c', 'cpp' } - } -}) - -- Set sessions folder and autowrite. require('mini.sessions').setup({ autoread = false, @@ -210,12 +297,6 @@ require('mini.sessions').setup({ -- Completion. require('mini.completion').setup({}) --- Disable icons in diffview. -require('diffview').setup({ - diff_binaries = false, - use_icons = false -}) - -- Don't use tabs in Neogit. require('neogit').setup({ disable_hint = true, @@ -230,91 +311,12 @@ require('neogit').setup({ refs_view = { kind = 'split' }, -- Allow basic movement in Neogit without mapping conflicts. mappings = { - popup = { ['l'] = false, ['L'] = 'LogPopup' }, + popup = { ['l'] = false, ['L'] = 'LogPopup', ['d'] = false }, status = { ['$'] = false, ['#'] = 'CommandHistory' } - } + }, + integrations = {} }) -- Preview colors in #<hex> format. require('ccc').setup({ highlighter = { auto_enable = false, lsp = true } }) - ---require("perfanno").setup({ --- telescope = { --- enabled = false, --- }, ---}) - --- Make shift + nav keys no-ops. -vim.keymap.set('n', 'H', '<nop>', { silent = true }) -vim.keymap.set('n', 'J', '<nop>', { silent = true }) -vim.keymap.set('n', 'K', '<nop>', { silent = true }) -vim.keymap.set('n', 'L', '<nop>', { silent = true }) --- Normal mode tab no-op. -vim.keymap.set('n', '<Tab>', '<nop>', { silent = true }) --- ctrl + c no-op. -vim.keymap.set('n', '<C-c>', '<nop>', { silent = true }) --- Disable F1 for help. -vim.keymap.set('n', '<F1>', '<nop>', { silent = true }) --- Disable q: for histroy. -vim.keymap.set('n', 'q:', '<nop>', { silent = true }) --- Simplify split movement. -vim.keymap.set('n', '<C-h>', [[:wincmd h<CR>]], { silent = true }) -vim.keymap.set('n', '<C-j>', [[:wincmd j<CR>]], { silent = true }) -vim.keymap.set('n', '<C-k>', [[:wincmd k<CR>]], { silent = true }) -vim.keymap.set('n', '<C-l>', [[:wincmd l<CR>]], { silent = true }) -vim.keymap.set('n', '<C-o>', [[:vsplit<CR>]], { silent = true }) --- Make ctrl + '.' and ',' map to previous buffer. -vim.keymap.set('n', '<C-,>', '<C-^>', {}) -vim.keymap.set('n', '<C-.>', '<C-^>', {}) --- Swap ctrl + f and b. -vim.keymap.set('n', '<C-f>', '<C-b>', {}) -vim.keymap.set('n', '<C-b>', '<C-f>', {}) --- Undotree -vim.keymap.set('n', 'U', vim.cmd.UndotreeToggle) --- Toggle colorcolumn. -vim.keymap.set('n', 'C', [[:execute 'set colorcolumn=' . (&colorcolumn == '' ? '101' : '')<CR>]], { silent = true }) --- Personally intuitive pop-up menu binds. -vim.keymap.set('i', '<CR>', [[pumvisible() ? '<C-y><CR>' : '<CR>']], { expr = true }) -vim.keymap.set('i', '<Up>', [[pumvisible() ? '<C-p>' : '<Up>']], { expr = true }) -vim.keymap.set('i', '<Down>', [[pumvisible() ? '<C-n>' : '<Down>']], { expr = true }) --- Lsp Binds. -vim.keymap.set('n', '<C-d>', '<C-]>', {}) -vim.keymap.set('n', '<C-n>', function() - return ':IncRename ' .. vim.fn.expand('<cword>') -end, { expr = true }) --- Fzf binds. -vim.keymap.set('n', '\\', [[:Buffers<CR>]], { silent = true }) -vim.keymap.set('n', '<C-i>', [[:GGrep<CR>]], { silent = true }) -vim.keymap.set('n', '<C-\\>', [[:GFiles<CR>]], { silent = true }) --- Only Neogit bind, handle all further operations from this menu. -vim.keymap.set('n', 'Y', [[:Neogit<CR>]], { silent = true }) EOF - -command Tabify set noexpandtab | %retab! | set expandtab -command Untabify set expandtab | %retab! - -" https://stackoverflow.com/a/37040415 -function! SyntaxGroup() - let l:s = synID(line('.'), col('.'), 1) - echo synIDattr(l:s, 'name') . ' -> ' . synIDattr(synIDtrans(l:s), 'name') -endfun - -" https://github.com/junegunn/fzf.vim?tab=readme-ov-file#example-git-grep-wrapper -command! -bang -nargs=* GGrep - \ call fzf#vim#grep( - \ 'git grep --line-number -- '.fzf#shellescape(<q-args>), - \ fzf#vim#with_preview({'dir': systemlist('git rev-parse --show-toplevel')[0]}), <bang>0) - -" https://vim.fandom.com/wiki/Replace_a_builtin_command_using_cabbrev -function! CommandCabbr(abbreviation, expansion) - execute 'cabbr ' . a:abbreviation . ' <C-R>=getcmdpos() == 1 && getcmdtype() == ":" ? "' . a:expansion . '" : "' . a:abbreviation . '"<CR>' -endfunction -command! -nargs=+ CommandCabbr call CommandCabbr(<f-args>) -CommandCabbr no nohlsearch - -call Juliana#Init() " Custom insert mode tab behavior inherited from Emacs. -inoremap <silent><Tab> <C-R>=Juliana#CompleteTab('START')<CR> - \<C-R>=Juliana#CompleteTab('TAB')<CR> - \<C-R>=Juliana#CompleteTab('ALIGN')<CR> - \<C-R>=Juliana#CompleteTab('NEXT')<CR> -inoremap <silent><S-Tab> <C-R>=Juliana#CompleteSTab('PREV')<CR> diff --git a/files/nvim/mini_starter_picture.diff b/files/nvim/mini_starter_picture.diff index 555009a..7831ca1 100644 --- a/files/nvim/mini_starter_picture.diff +++ b/files/nvim/mini_starter_picture.diff @@ -1,5 +1,5 @@ diff --git a/lua/mini/starter.lua b/lua/mini/starter.lua -index 64939dc..493486b 100644 +index 8520569e..939e16de 100644 --- a/lua/mini/starter.lua +++ b/lua/mini/starter.lua @@ -138,7 +138,7 @@ @@ -11,7 +11,17 @@ index 64939dc..493486b 100644 --- timer:stop() --- return --- end -@@ -249,6 +249,12 @@ MiniStarter.config = { +@@ -239,6 +239,9 @@ MiniStarter.config = { + -- If `nil` (default), default items will be used (see |mini.starter|). + items = nil, + ++ -- Empty lines at the top of the content. ++ top_padding = 0, ++ + -- Header to be displayed before items. Converted to single string via + -- `tostring` (use `\n` to display several lines). If function, it is + -- evaluated first. If `nil` (default), polite greeting will be used. +@@ -249,6 +252,12 @@ MiniStarter.config = { -- evaluated first. If `nil` (default), default usage help will be shown. footer = nil, @@ -24,7 +34,7 @@ index 64939dc..493486b 100644 -- Array of functions to be applied consecutively to initial content. -- Each function should take and return content for Starter buffer (see -- |mini.starter| and |MiniStarter.get_content()| for more details). -@@ -372,7 +378,7 @@ MiniStarter.refresh = function(buf_id) +@@ -372,7 +381,7 @@ MiniStarter.refresh = function(buf_id) data.footer = H.normalize_header_footer(config.footer or H.default_footer) -- Evaluate content @@ -33,7 +43,7 @@ index 64939dc..493486b 100644 local hooks = config.content_hooks or H.default_content_hooks for _, f in ipairs(hooks) do content = f(content, buf_id) -@@ -399,6 +405,12 @@ MiniStarter.refresh = function(buf_id) +@@ -399,6 +408,12 @@ MiniStarter.refresh = function(buf_id) -- Apply current query (clear command line afterwards) H.make_query(buf_id) @@ -46,7 +56,7 @@ index 64939dc..493486b 100644 end --- Close Starter buffer -@@ -730,18 +742,45 @@ MiniStarter.gen_hook.aligning = function(horizontal, vertical) +@@ -730,18 +745,45 @@ MiniStarter.gen_hook.aligning = function(horizontal, vertical) local win_id = vim.fn.bufwinid(buf_id) if win_id < 0 then return end @@ -88,13 +98,13 @@ index 64939dc..493486b 100644 + H.picture_x = left_pad + picture_left_pad + end + if H.picture_x < 0.0 then H.picture_x = 0.0 end -+ H.picture_y = top_pad + config.picture.padding.top ++ H.picture_y = top_pad + config.picture.padding.top + config.top_padding + end + return MiniStarter.gen_hook.padding(left_pad, top_pad)(content) end end -@@ -1004,7 +1043,7 @@ H.default_footer = [[ +@@ -1004,7 +1046,7 @@ H.default_footer = [[ Type query to filter items <BS> deletes latest character from query <Esc> resets current query @@ -103,7 +113,7 @@ index 64939dc..493486b 100644 <CR> executes action of current item <C-c> closes this buffer]] -@@ -1052,8 +1091,54 @@ end +@@ -1048,8 +1090,54 @@ end H.apply_config = function(config) MiniStarter.config = config end @@ -159,7 +169,7 @@ index 64939dc..493486b 100644 if config.autoopen then local on_vimenter = function() -@@ -1065,7 +1150,7 @@ H.create_autocommands = function(config) +@@ -1061,7 +1149,7 @@ H.create_autocommands = function(config) vim.cmd('noautocmd lua MiniStarter.open()') end @@ -168,7 +178,7 @@ index 64939dc..493486b 100644 vim.api.nvim_create_autocmd('VimEnter', au_opts) end -@@ -1111,7 +1196,7 @@ H.normalize_header_footer = function(x) +@@ -1107,9 +1195,11 @@ H.normalize_header_footer = function(x) end -- Work with buffer content --------------------------------------------------- @@ -176,8 +186,12 @@ index 64939dc..493486b 100644 +H.make_initial_content = function(header, items, footer, config) local content = {} ++ H.content_add_empty_lines(content, config.top_padding) ++ -- Add header lines -@@ -1124,7 +1209,7 @@ H.make_initial_content = function(header, items, footer) + for _, l in ipairs(header) do + H.content_add_line(content, { H.content_unit(l, 'header', 'MiniStarterHeader') }) +@@ -1120,7 +1210,7 @@ H.make_initial_content = function(header, items, footer) H.content_add_items(content, items) -- Add footer lines @@ -186,7 +200,7 @@ index 64939dc..493486b 100644 for _, l in ipairs(footer) do H.content_add_line(content, { H.content_unit(l, 'footer', 'MiniStarterFooter') }) end -@@ -1327,11 +1412,22 @@ H.make_buffer_autocmd = function(buf_id) +@@ -1323,11 +1413,22 @@ H.make_buffer_autocmd = function(buf_id) au('VimResized', function() MiniStarter.refresh(buf_id) end, 'Refresh') au('CursorMoved', function() H.position_cursor_on_current_item(buf_id) end, 'Position cursor') @@ -209,7 +223,7 @@ index 64939dc..493486b 100644 end H.apply_buffer_options = function(buf_id) -@@ -1345,17 +1441,11 @@ H.apply_buffer_options = function(buf_id) +@@ -1341,17 +1442,11 @@ H.apply_buffer_options = function(buf_id) -- Set unique buffer name. Prefer "Starter" prefix as more user friendly. H.buffer_number = H.buffer_number + 1 @@ -229,7 +243,7 @@ index 64939dc..493486b 100644 local options = { -- Taken from 'vim-startify' -@@ -1401,12 +1491,8 @@ H.apply_buffer_mappings = function(buf_id) +@@ -1398,12 +1493,8 @@ H.apply_buffer_mappings = function(buf_id) buf_keymap('<CR>', 'MiniStarter.eval_current_item()') @@ -244,7 +258,7 @@ index 64939dc..493486b 100644 -- Make all special symbols to update query for _, key in ipairs(vim.split(H.get_config().query_updaters, '')) do -@@ -1487,7 +1573,7 @@ H.echo = function(msg, is_important) +@@ -1491,7 +1582,7 @@ H.echo = function(msg, is_important) -- Construct message chunks msg = type(msg) == 'string' and { { msg } } or msg @@ -253,7 +267,7 @@ index 64939dc..493486b 100644 -- Avoid hit-enter-prompt local max_width = vim.o.columns * math.max(vim.o.cmdheight - 1, 0) + vim.v.echospace -@@ -1525,7 +1611,7 @@ H.eval_fun_or_string = function(x, string_as_cmd) +@@ -1540,7 +1631,7 @@ H.eval_fun_or_string = function(x, string_as_cmd) if type(x) == 'function' then return x() end if type(x) == 'string' then if string_as_cmd then @@ -14,11 +14,11 @@ ] }, "locked": { - "lastModified": 1738722957, - "narHash": "sha256-rMS8n7eDSSYrcyX37qmkxip8wKnzh7GZAtpWudNpd0Y=", + "lastModified": 1741024836, + "narHash": "sha256-9BRe7EimHaX7EZO0YaRY/OGEYhmzUkeSto8Ldy+uplg=", "ref": "refs/heads/master", - "rev": "b36f022defd8d4ec5a8c29578bb583bea05dfbb6", - "revCount": 95, + "rev": "2f7e7ed84b6dafa0a81dde686b4a8e7cbecfcd94", + "revCount": 101, "type": "git", "url": "https://git.akon.city/camu" }, @@ -88,11 +88,11 @@ ] }, "locked": { - "lastModified": 1738789832, - "narHash": "sha256-HdlMPfObPu5y7oDfH/w3vvlU3UTQ/bQjSULChZARm5M=", + "lastModified": 1740845322, + "narHash": "sha256-AXEgFj3C0YJhu9k1OhbRhiA6FnDr81dQZ65U3DhaWpw=", "owner": "nix-community", "repo": "home-manager", - "rev": "30ea6fed4e4b41693cebc2263373dd810de4de49", + "rev": "fcac3d6d88302a5e64f6cb8014ac785e08874c8d", "type": "github" }, "original": { @@ -124,11 +124,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1738638143, - "narHash": "sha256-ZYMe4c4OCtIUBn5hx15PEGr0+B1cNEpl2dsaLxwY2W0=", + "lastModified": 1740646007, + "narHash": "sha256-dMReDQobS3kqoiUCQIYI9c0imPXRZnBubX20yX/G5LE=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "9bdd53f5908453e4d03f395eb1615c3e9a351f70", + "rev": "009b764ac98a3602d41fc68072eeec5d24fc0e49", "type": "github" }, "original": { @@ -144,11 +144,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1736095716, - "narHash": "sha256-csysw/Szu98QDiA2lhWk9seYOyCebeVEWL89zh1cduM=", + "lastModified": 1740567864, + "narHash": "sha256-eTS2wrC1jKR6PKXC9jZqQy5PwqbIOBLSLF3dwLiFJ8M=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "63c3b4ed1712a3a0621002cd59bfdc80875ecbb0", + "rev": "1f40b43d01626ce994eb47150afa0d7215f396ca", "type": "github" }, "original": { @@ -160,27 +160,27 @@ }, "nixpkgs": { "locked": { - "lastModified": 1733384649, - "narHash": "sha256-K5DJ2LpPqht7K76bsxetI+YHhGGRyVteTPRQaIIKJpw=", + "lastModified": 1740463929, + "narHash": "sha256-4Xhu/3aUdCKeLfdteEHMegx5ooKQvwPHNkOgNCXQrvc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "190c31a89e5eec80dd6604d7f9e5af3802a58a13", + "rev": "5d7db4668d7a0c6cc5fc8cf6ef33b008b2b1ed8b", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-24.05", + "ref": "nixos-24.11", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1738680400, - "narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=", + "lastModified": 1740828860, + "narHash": "sha256-cjbHI+zUzK5CPsQZqMhE3npTyYFt9tJ3+ohcfaOF/WM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "799ba5bffed04ced7067a91798353d360788b30d", + "rev": "303bd8071377433a2d8f76e684ec773d70c5b642", "type": "github" }, "original": { @@ -199,11 +199,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1738804022, - "narHash": "sha256-2oP3MF4w9r4+98nNmg0NCvcaH9yrCuulHLmHkfGvaws=", + "lastModified": 1741023554, + "narHash": "sha256-6VKOyyt4OFe4kkplEMOHKF/KLDsihZasUzBX8f5wNsM=", "owner": "nix-community", "repo": "NUR", - "rev": "b2d6e7199fc41cc3ea2eb07a95d02bafbf1f8ff9", + "rev": "ead8ecbe5be1312af49859f269764421132de223", "type": "github" }, "original": { @@ -52,6 +52,11 @@ baseline = mkOption { type = types.int; }; }; }; + scriptSettings = types.submodule { + options = { + imports = mkOption { type = types.listOf types.str; }; + }; + }; themeSettings = types.submodule { options = { lightness = mkOption { type = types.str; }; # light/dark @@ -87,12 +92,13 @@ }; starterSettings = types.submodule { options = { + top_padding = mkOption { type = types.int; }; picture = mkOption { type = types.path; }; width = mkOption { type = types.int; }; padding = mkOption { type = starterPadSettings; }; position = mkOption { type = types.str; }; footer = mkOption { type = types.str; }; - footer_offset = mkOption { type = types.int; }; + footer-offset = mkOption { type = types.int; }; }; }; monitorSettings = types.submodule { @@ -107,6 +113,7 @@ font = mkOption { type = fontSettings; }; ui-font = mkOption { type = fontSettings; }; emoji-font = mkOption { type = fontSettings; }; + scripts = mkOption { type = scriptSettings; }; scheme = mkOption { type = themeSettings; }; starter = mkOption { type = starterSettings; }; monitors = mkOption { type = monitorSettings; }; @@ -120,6 +127,7 @@ name = "nixpkgs-patched"; src = nixpkgs; patches = [ + ./files/nixpkgs-patches/383432.diff ]; }; nixosSystem = import (nixpkgs-patched + "/nixos/lib/eval-config.nix"); @@ -142,6 +150,16 @@ neovim-unwrapped = (optimizeWithFlags super.neovim-unwrapped "-O3 -march=znver2 -mtune=znver2 -fno-semantic-interposition -flto"); }) (self: super: { + gtkmm4 = super.gtkmm4.overrideAttrs (old: { + doCheck = false; + }); + }) + (self: super: { + ryujinx = super.ryujinx.overrideAttrs (old: { + doCheck = false; + }); + }) + (self: super: { sway-unwrapped = super.sway-unwrapped.overrideAttrs (old: { patches = old.patches ++ [ ./files/sway_background_covered.diff @@ -149,11 +167,6 @@ }); }) (self: super: { - kitty = super.kitty.overrideAttrs (old: { - patches = old.patches ++ []; - }); - }) - (self: super: { python = super.python.override ({ packageOverrides = (python-self: python-super: { }); diff --git a/hosts/sofue/configuration.nix b/hosts/sofue/configuration.nix index ab4e6ef..02c0ce7 100644 --- a/hosts/sofue/configuration.nix +++ b/hosts/sofue/configuration.nix @@ -43,18 +43,19 @@ in rec { size = ui-font.size; baseline = 0; }; - scheme = import ../../themes/miia_new_years_2025/miia.nix; + scheme = import ../../themes/spring_2025/spring_2025.nix; starter = { - picture = ../../themes/miia_new_years_2025/splash.png; - width = 53; + top_padding = 2; + picture = ../../themes/spring_2025/splash2.png; + width = 49; padding = { - top = -6; - left = -11; + top = -2; + left = -8; text = 0; }; position = "left"; footer = ""; - footer_offset = 0; + footer-offset = 0; }; monitors = { monitor1 = "DP-1"; @@ -68,6 +69,16 @@ in rec { boot.isContainer = true; + users.groups.audio.gid = lib.mkForce 18; + users.groups.cdrom.gid = lib.mkForce 19; + users.groups.dialout.gid = lib.mkForce 20; + users.groups.floppy.gid = lib.mkForce 11; + users.groups.input.gid = lib.mkForce 97; + users.groups.lp.gid = lib.mkForce 7; + users.groups.render.gid = lib.mkForce 28; + users.groups.uucp.gid = lib.mkForce 14; + users.groups.video.gid = lib.mkForce 27; + nix.settings.system-features = [ "gccarch-znver2" ]; nixpkgs.hostPlatform = { #gcc.arch = "znver2"; @@ -123,6 +134,8 @@ in rec { export TTY=/dev/tty3 export XDG_VTNR=3 export WLR_RENDERER=vulkan + export PULSE_SERVER=unix:/home/andrew/.pulsewire-native-socket + export PIPEWIRE_REMOTE=/tmp/pipewire-0-manager cd $HOME exec ${pkgs.kbd}/bin/openvt --switch --login --console 3 -f -- ${pkgs.sway}/bin/sway '') @@ -160,7 +173,7 @@ in rec { max_render_time = "off"; adaptive_sync = "on"; render_bit_depth = "10"; - bg = "#${s.scheme.background-alt} solid_color"; + bg = "${../../themes/spring_2025/wallpaper1.png} fit"; }; "${s.monitors.monitor2}" = { mode = "1920x1080@60.000Hz"; @@ -216,7 +229,7 @@ in rec { "${mod4}+r" = "exec swaymsg -- output ${s.monitors.monitor1} transform 90"; "${mod4}+Shift+r" = "exec swaymsg -- output ${s.monitors.monitor1} transform 0"; "${mod4}+F1" = "exec swaymsg -- output ${s.monitors.monitor1} bg \\#${s.scheme.background-alt} solid_color"; - "${mod4}+F2" = "exec swaymsg -- output ${s.monitors.monitor1} bg ${../../themes/miia_new_years_2025/wallpaper.png} fill"; + "${mod4}+F2" = "exec swaymsg -- output ${s.monitors.monitor1} bg ${../../themes/spring_2025/wallpaper1.png} fit"; #"${mod4}+F1" = "exec printf '||' > $HOME/.config/taro/${s.monitors.monitor1}/selection"; #"${mod4}+F2" = "exec printf '||' > $HOME/.config/taro/${s.monitors.monitor1}/selection"; "Pause" = "exec $HOME/c/camu/scripts/cmv_add.sh PAUSE"; diff --git a/hosts/sofue/programs.nix b/hosts/sofue/programs.nix index e9ee186..72bb4e8 100644 --- a/hosts/sofue/programs.nix +++ b/hosts/sofue/programs.nix @@ -1,27 +1,30 @@ { pkgs, ... }: { environment.systemPackages = with pkgs; [ #gftp - dia + #dia cdrtools #ardour - audacity + #audacity krita - olive-editor + #olive-editor yt-dlp #chatterino2 streamlink megatools - wineWowPackages.staging - winetricks - cabextract - looking-glass-client - qbittorrent - ungoogled-chromium + #wineWowPackages.staging + #winetricks + #cabextract + #looking-glass-client + #qbittorrent + #ungoogled-chromium (pkgs.discord.override { withOpenASAR = true; }) - imv - mpv - vlc + #imv + #mpv + #vlc camu mauri ]; + local.scripts.imports = [ + "discord-wayland" + ]; } diff --git a/hosts/yashinoki/configuration.nix b/hosts/yashinoki/configuration.nix index 09656b2..2917994 100644 --- a/hosts/yashinoki/configuration.nix +++ b/hosts/yashinoki/configuration.nix @@ -47,7 +47,7 @@ in { padding = { top = -2; left = -6; text = 0; }; position = "left"; footer = ""; - footer_offset = 0; + footer-offset = 0; }; monitors = { monitor1 = "eDP-1"; @@ -63,16 +63,19 @@ in { boot.binfmt.emulatedSystems = [ "armv7l-linux" "aarch64-linux" ]; boot.kernelPackages = pkgs.linuxPackages_latest; - boot.supportedFilesystems = [ ]; boot.loader.systemd-boot.enable = true; - boot.kernelParams = [ "mitigations=off" "file_caps=1" ]; - #boot.extraModulePackages = [ - # config.boot.kernelPackages.v4l2loopback.out - #]; - #boot.kernelModules = [ "v4l2loopback" ]; - boot.initrd.kernelModules = [ ]; + boot.kernelParams = [ "mitigations=off" "file_caps=1" "i915.enable_guc=2" ]; services.fwupd.enable = true; + virtualisation.kvmgt = { + enable = true; + vgpus = { + "i915-GVTg_V5_4" = { + uuid = [ "2efaf13a-e65a-11ef-84b4-235363f4a8d4" ]; + }; + }; + }; + security.wrappers = { "mount.nfs" = { owner = "root"; @@ -142,7 +145,7 @@ in { linuxPackages_latest.perf linuxPackages_latest.cpupower (pkgs.writeShellScriptBin "run-sway" '' - export WLR_RENDERER=vulkan + export WLR_RENDERER=gles2 export WLR_DRM_DEVICES=/dev/dri/card1 cd $HOME exec ${pkgs.sway}/bin/sway @@ -165,7 +168,8 @@ in { "${s.monitors.monitor1}" = { mode = "3000x2000@59.999Hz"; render_bit_depth = "10"; - adaptive_sync = "on"; + max_render_time = "off"; + allow_tearing = "yes"; scale = "2"; bg = "${../../themes/year_of_snake/wallpaper.png} fit"; }; diff --git a/hosts/yashinoki/programs.nix b/hosts/yashinoki/programs.nix index 30136ef..19742cd 100644 --- a/hosts/yashinoki/programs.nix +++ b/hosts/yashinoki/programs.nix @@ -9,4 +9,8 @@ mpv camu ]; + local.scripts.imports = [ + "battery" + "discord-wayland" + ]; } diff --git a/nix/audio.nix b/nix/audio.nix index 6e4635a..e8a57ff 100644 --- a/nix/audio.nix +++ b/nix/audio.nix @@ -5,10 +5,10 @@ # }; # nixpkgs.config.pulseaudio = true; services.pipewire = { - enable = true; - alsa.enable = true; + enable = false; + pulse.enable = false; + alsa.enable = false; alsa.support32Bit = true; - pulse.enable = true; extraConfig = { # cat /proc/asound/card1/stream0 pipewire = { @@ -104,12 +104,12 @@ }; }; environment.systemPackages = with pkgs; [ - pipewire.jack + pipewire (pavucontrol.override { withLibcanberra = false; }) ]; - security.rtkit.enable = true; environment.etc = { "convolver/Focal_Elegia_minimum_phase_44100Hz.wav".source = ../files/convolver/Focal_Elegia_minimum_phase_44100Hz.wav; "convolver/Focal_Elegia_minimum_phase_48000Hz.wav".source = ../files/convolver/Focal_Elegia_minimum_phase_48000Hz.wav; }; + security.rtkit.enable = true; } diff --git a/nix/gaming.nix b/nix/gaming.nix index 338ed5b..d1e90bf 100644 --- a/nix/gaming.nix +++ b/nix/gaming.nix @@ -13,13 +13,13 @@ in { #legendary-gl prismlauncher jdk21 - retroarch - dolphin-emu - pcsx2 - (ppsspp.override { enableQt = true; }) + #retroarch + #dolphin-emu + #pcsx2 + #(ppsspp.override { enableQt = true; }) #cemu rpcs3 - ryujinx + #ryujinx osu-lazer-bin parsec-bin #r2modman @@ -52,13 +52,15 @@ in { programs.gamemode = { enable = true; settings = { + general.desiredgov = "schedutil"; general.inhibit_screensaver = 0; general.renice = 10; - gpu = { - apply_gpu_optimisations = "accept-responsibility"; - gpu_device = 0; - amd_performance_level = "high"; - }; + # Can't set GPU parameters from an unprivileged container. + #gpu = { + # apply_gpu_optimisations = "accept-responsibility"; + # gpu_device = 0; + # amd_performance_level = "high"; + #}; }; }; programs.steam = { 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; }; diff --git a/nix/scripts.nix b/nix/scripts.nix index 61751e1..97d3ee6 100644 --- a/nix/scripts.nix +++ b/nix/scripts.nix @@ -1,28 +1,7 @@ { config, lib, pkgs, ... }: let s = config.local; - script-files = [ - "dbus-sway-environment" - "dmenu-path" - "dmenu-path0" - "dmenu-emoji" - "cpu-vulns" - "battery" - "spell" - "ts-date" - "screenshot" - "wlsunset-toggle" - "mount-nfs" - "img-fstype" - "gpg-pubkey" - "rewrite-git" - "term-font-size" - "shift-jis-zip" - "moonrune-charset-utf8" - "xbox360-ffmpeg-enc" - "looking-glass" - "discord-wayland" - ]; + inherit (import ./settings.nix) scripts; in { environment.etc = { "emoji.json".source = builtins.fetchurl { @@ -35,12 +14,12 @@ in { bemenu -C --single-instance -B 0 -M 0 --hp 6 \ --fn "${s.font.name} ${toString (s.font.size - 1)}" -H ${toString ((s.font.size - 1) * 2)} \ --cf "#${s.scheme.foreground}" --cb "#${s.scheme.background}" \ - --hf "#${s.scheme.background}" --hb "#${s.scheme.color2}" \ + --hf "#${s.scheme.background}" --hb "#${s.scheme.color4}" \ --nf "#${s.scheme.foreground}" --nb "#${s.scheme.background}" \ --ff "#${s.scheme.foreground}" --fb "#${s.scheme.background}" \ --af "#${s.scheme.foreground}" --ab "#${s.scheme.background}" -p "" '') - ] ++ (lib.lists.forEach script-files (x: pkgs.writeTextFile { + ] ++ (lib.lists.forEach s.scripts.imports (x: pkgs.writeTextFile { name = x; text = (builtins.readFile ../scripts/${x}); executable = true; diff --git a/nix/user.nix b/nix/user.nix index e6b3074..fbfd354 100644 --- a/nix/user.nix +++ b/nix/user.nix @@ -65,7 +65,6 @@ in { python-pkgs.requests python-pkgs.beautifulsoup4 ])) - python3 htop neofetch cmatrix @@ -99,6 +98,7 @@ in { jq when evtest + linuxConsoleTools wev gcr pass @@ -106,6 +106,20 @@ in { zathura ]; + local.scripts.imports = [ + "cpu-vulns" + "spell" + "ts-date" + "term-font-size" + "shift-jis-zip" + "moonrune-charset-utf8" + "gpg-pubkey" + "img-fstype" + "mount-nfs" + "rewrite-git" + "xbox360-ffmpeg-enc" + ]; + programs.screen = { enable = true; screenrc = '' diff --git a/nix/virtualisation.nix b/nix/virtualisation.nix index bd542e9..f8be5b6 100644 --- a/nix/virtualisation.nix +++ b/nix/virtualisation.nix @@ -1,4 +1,7 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +let + inherit (import ./settings.nix) scripts; +in { users.users.andrew.extraGroups = [ "libvirtd" "kvm" ]; virtualisation.libvirtd.enable = true; programs.virt-manager.enable = true; @@ -6,5 +9,9 @@ environment.systemPackages = with pkgs; [ virt-manager spice-gtk + OVMF + ]; + local.scripts.imports = [ + "looking-glass" ]; } diff --git a/scripts/mount-nfs b/scripts/mount-nfs index 7e3b276..a07f4cf 100755 --- a/scripts/mount-nfs +++ b/scripts/mount-nfs @@ -1,2 +1,2 @@ #! /usr/bin/env sh -sudo mount -t nfs4 -o noatime,nodiratime,rw,bg,hard,intr,rsize=65536,wsize=65536,tcp,timeo=600,retrans=2,nfsvers=4.1 moyo:$1 $2 +sudo mount -t nfs4 -o noatime,nodiratime,rw,hard,fsc,proto=tcp,timeo=600,retrans=2,nfsvers=4,minorversion=2 moyo:$1 $2 diff --git a/themes/outline.txt b/themes/outline.txt new file mode 100644 index 0000000..be6e671 --- /dev/null +++ b/themes/outline.txt @@ -0,0 +1,33 @@ +# bright black and white should be different from black and white. +color0 # black +color1 # red +color2 # green +color3 # yellow +color4 # blue +color5 # magenta +color6 # cyan +color7 # white +color8 # bright black +color9 # bright red +color10 # bright green +color11 # bright yellow +color12 # bright blue +color13 # bright magenta +color14 # bright cyan +color15 # bright white + +== htop +Selected Tab = color2 +Inactive Tab = color4 +Highlighted Process, Other Highlights = color6 +Unknow User? = color5 +Top of CPU Bar = color3 + +== neofetch +color4 and color6 used in ascci +color6 for highlighted text +color4 for user@hostname + +== TODO: bash and nvim + +// vim: set syntax=asciidoc: diff --git a/themes/spring_2025/41632913_p0.jpg b/themes/spring_2025/41632913_p0.jpg Binary files differnew file mode 100644 index 0000000..bb05dab --- /dev/null +++ b/themes/spring_2025/41632913_p0.jpg diff --git a/themes/spring_2025/4692826_p0.jpg b/themes/spring_2025/4692826_p0.jpg Binary files differnew file mode 100644 index 0000000..fcc7a50 --- /dev/null +++ b/themes/spring_2025/4692826_p0.jpg diff --git a/themes/spring_2025/sources.txt b/themes/spring_2025/sources.txt new file mode 100644 index 0000000..a1872ca --- /dev/null +++ b/themes/spring_2025/sources.txt @@ -0,0 +1,2 @@ +https://www.pixiv.net/en/artworks/4692826 +https://www.pixiv.net/en/artworks/41632913 diff --git a/themes/spring_2025/splash1.png b/themes/spring_2025/splash1.png Binary files differnew file mode 100644 index 0000000..d34e35f --- /dev/null +++ b/themes/spring_2025/splash1.png diff --git a/themes/spring_2025/splash2.kra b/themes/spring_2025/splash2.kra Binary files differnew file mode 100644 index 0000000..a9958fb --- /dev/null +++ b/themes/spring_2025/splash2.kra diff --git a/themes/spring_2025/splash2.png b/themes/spring_2025/splash2.png Binary files differnew file mode 100644 index 0000000..53e126a --- /dev/null +++ b/themes/spring_2025/splash2.png diff --git a/themes/spring_2025/spring_2025.nix b/themes/spring_2025/spring_2025.nix new file mode 100644 index 0000000..6cbf034 --- /dev/null +++ b/themes/spring_2025/spring_2025.nix @@ -0,0 +1,23 @@ +rec { + lightness = "dark"; + background = "352724"; #352724 + background-alt = "352724"; #352724 + foreground = "ffffe3"; #ffffe3 + color0 = "${background}"; + color1 = "a74c3a"; #a74c3a + color2 = "63717c"; #63717c + color3 = "808c5a"; #808c5a + color4 = "b08d8d"; #b08d8d + color5 = "da9a9b"; #da9a9b + color6 = "ffffa8"; #ffffa8 + color7 = "${foreground}"; + color8 = "${color6}"; + color9 = "${color1}"; + color10 = "${color2}"; + color11 = "${color3}"; + color12 = "${color4}"; + color13 = "${color5}"; + color14 = "${color6}"; + color15 = "${color7}"; + alpha = 0.955; +} diff --git a/themes/spring_2025/wallpaper1.png b/themes/spring_2025/wallpaper1.png Binary files differnew file mode 100644 index 0000000..3e3a7e0 --- /dev/null +++ b/themes/spring_2025/wallpaper1.png |