summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--files/nixpkgs-patches/383432.diff217
-rw-r--r--files/nvim/init.vim226
-rw-r--r--files/nvim/mini_starter_picture.diff46
-rw-r--r--flake.lock46
-rw-r--r--flake.nix25
-rw-r--r--hosts/sofue/configuration.nix29
-rw-r--r--hosts/sofue/programs.nix27
-rw-r--r--hosts/yashinoki/configuration.nix24
-rw-r--r--hosts/yashinoki/programs.nix4
-rw-r--r--nix/audio.nix10
-rw-r--r--nix/gaming.nix22
-rw-r--r--nix/programs/bash.nix9
-rw-r--r--nix/programs/firefox.nix78
-rw-r--r--nix/programs/nvim.nix191
-rw-r--r--nix/programs/sway.nix21
-rw-r--r--nix/scripts.nix27
-rw-r--r--nix/user.nix16
-rw-r--r--nix/virtualisation.nix9
-rwxr-xr-xscripts/mount-nfs2
-rw-r--r--themes/outline.txt33
-rw-r--r--themes/spring_2025/41632913_p0.jpgbin0 -> 491673 bytes
-rw-r--r--themes/spring_2025/4692826_p0.jpgbin0 -> 3114561 bytes
-rw-r--r--themes/spring_2025/sources.txt2
-rw-r--r--themes/spring_2025/splash1.pngbin0 -> 751587 bytes
-rw-r--r--themes/spring_2025/splash2.krabin0 -> 1993754 bytes
-rw-r--r--themes/spring_2025/splash2.pngbin0 -> 754520 bytes
-rw-r--r--themes/spring_2025/spring_2025.nix23
-rw-r--r--themes/spring_2025/wallpaper1.pngbin0 -> 5560068 bytes
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
diff --git a/flake.lock b/flake.lock
index d2f876f..c4d144c 100644
--- a/flake.lock
+++ b/flake.lock
@@ -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": {
diff --git a/flake.nix b/flake.nix
index 54ad07a..ab68f57 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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
new file mode 100644
index 0000000..bb05dab
--- /dev/null
+++ b/themes/spring_2025/41632913_p0.jpg
Binary files differ
diff --git a/themes/spring_2025/4692826_p0.jpg b/themes/spring_2025/4692826_p0.jpg
new file mode 100644
index 0000000..fcc7a50
--- /dev/null
+++ b/themes/spring_2025/4692826_p0.jpg
Binary files differ
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
new file mode 100644
index 0000000..d34e35f
--- /dev/null
+++ b/themes/spring_2025/splash1.png
Binary files differ
diff --git a/themes/spring_2025/splash2.kra b/themes/spring_2025/splash2.kra
new file mode 100644
index 0000000..a9958fb
--- /dev/null
+++ b/themes/spring_2025/splash2.kra
Binary files differ
diff --git a/themes/spring_2025/splash2.png b/themes/spring_2025/splash2.png
new file mode 100644
index 0000000..53e126a
--- /dev/null
+++ b/themes/spring_2025/splash2.png
Binary files differ
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
new file mode 100644
index 0000000..3e3a7e0
--- /dev/null
+++ b/themes/spring_2025/wallpaper1.png
Binary files differ