Implemented custom system for creating and distributing color schemes based on wallpapers, and also cycling through wallpapers.

nixfmt'd the codebase
This commit is contained in:
2026-03-09 22:02:46 -04:00
parent 4308b8eb16
commit 8ee748a997
145 changed files with 2776 additions and 1125 deletions

View File

@@ -1,7 +1,7 @@
{ lib, config, ... }: {
{ lib, config, ... }:
{
options = {
movOpts.programConfigs.autojumpConfig.enable =
lib.mkEnableOption "enables my autojump options";
movOpts.programConfigs.autojumpConfig.enable = lib.mkEnableOption "enables my autojump options";
};
config = lib.mkIf config.movOpts.programConfigs.autojumpConfig.enable {
programs.autojump = {

View File

@@ -1,12 +1,19 @@
{ lib, config, inputs, ... }: {
{
lib,
config,
inputs,
...
}:
{
options = {
movOpts.programConfigs.batConfig.enable =
lib.mkEnableOption "enables my bat options";
movOpts.programConfigs.batConfig.enable = lib.mkEnableOption "enables my bat options";
};
config = lib.mkIf config.movOpts.programConfigs.batConfig.enable {
programs.bat = {
enable = true;
config = { pager = "less -FR"; };
config = {
pager = "less -FR";
};
};
};
}

View File

@@ -1,7 +1,12 @@
{ lib, config, pkgs, ... }: {
{
lib,
config,
pkgs,
...
}:
{
options = {
movOpts.programConfigs.btopConfig.enable =
lib.mkEnableOption "enables my btop config";
movOpts.programConfigs.btopConfig.enable = lib.mkEnableOption "enables my btop config";
};
config = lib.mkIf config.movOpts.programConfigs.btopConfig.enable {
programs.btop = {
@@ -10,8 +15,7 @@
settings = {
update_ms = 500;
vim_keys = true;
color_theme = "nord";
theme_background = true;
color_theme = "TTY";
temp_scale = "fahrenheit";
graph_symbol = "block";
disks_filter = "exclude=/boot /";

View File

@@ -1,9 +1,17 @@
{ lib, config, inputs, pkgs, ... }: {
{
lib,
config,
inputs,
pkgs,
...
}:
{
options = {
movOpts.programConfigs.cavaConfig.enable =
lib.mkEnableOption "enables my cava settings";
movOpts.programConfigs.cavaConfig.enable = lib.mkEnableOption "enables my cava settings";
};
config = lib.mkIf config.movOpts.programConfigs.cavaConfig.enable {
programs.cava = { enable = true; };
programs.cava = {
enable = true;
};
};
}

View File

@@ -1,8 +1,27 @@
{ env, host, nixvim, self, inputs, username, config, home-manager, ... }: {
imports = [ (import ./btop.nix) ] ++ [ (import ./yazi.nix) ]
++ [ (import ./kitty.nix) ] ++ [ (import ./fuzzel.nix) ]
++ [ (import ./eza.nix) ] ++ [ (import ./cava.nix) ]
++ [ (import ./bat.nix) ] ++ [ (import ./fzf.nix) ]
++ [ (import ./git.nix) ] ++ [ (import ./password-store.nix) ]
++ [ (import ./autojump.nix) ] ++ [ (import ./nixvim) ];
{
env,
host,
nixvim,
self,
inputs,
username,
config,
home-manager,
...
}:
{
imports = [
(import ./btop.nix)
]
++ [ (import ./yazi.nix) ]
++ [ (import ./kitty.nix) ]
++ [ (import ./fuzzel.nix) ]
++ [ (import ./eza.nix) ]
++ [ (import ./cava.nix) ]
++ [ (import ./bat.nix) ]
++ [ (import ./fzf.nix) ]
++ [ (import ./git.nix) ]
++ [ (import ./password-store.nix) ]
++ [ (import ./autojump.nix) ]
++ [ (import ./nixvim) ];
}

View File

@@ -1,13 +1,17 @@
{ lib, config, ... }: {
{ lib, config, ... }:
{
options = {
movOpts.programConfigs.ezaConfig.enable =
lib.mkEnableOption "enables my eza options";
movOpts.programConfigs.ezaConfig.enable = lib.mkEnableOption "enables my eza options";
};
config = lib.mkIf config.movOpts.programConfigs.ezaConfig.enable {
programs.eza = {
enable = true;
enableZshIntegration = false;
extraOptions = [ "-1" "-h" "--group-directories-first" ];
extraOptions = [
"-1"
"-h"
"--group-directories-first"
];
icons = "auto";
git = true;
};

View File

@@ -1,7 +1,7 @@
{ config, lib, ... }: {
{ config, lib, ... }:
{
options = {
movOpts.programConfigs.fuzzelConfig.enable =
lib.mkEnableOption "enables my fuzzel configuration";
movOpts.programConfigs.fuzzelConfig.enable = lib.mkEnableOption "enables my fuzzel configuration";
};
config = lib.mkIf config.movOpts.programConfigs.fuzzelConfig.enable {
programs.fuzzel = {

View File

@@ -1,7 +1,7 @@
{ lib, config, ... }: {
{ lib, config, ... }:
{
options = {
movOpts.programConfigs.fzfConfig.enable =
lib.mkEnableOption "enables my fzf options";
movOpts.programConfigs.fzfConfig.enable = lib.mkEnableOption "enables my fzf options";
};
config = lib.mkIf config.movOpts.programConfigs.fzfConfig.enable {
programs.fzf = {

View File

@@ -1,7 +1,13 @@
{ lib, config, username, pkgs, ... }: {
{
lib,
config,
username,
pkgs,
...
}:
{
options = {
movOpts.programConfigs.gitConfig.enable =
lib.mkEnableOption "enables my git configuration";
movOpts.programConfigs.gitConfig.enable = lib.mkEnableOption "enables my git configuration";
};
config = lib.mkIf config.movOpts.programConfigs.gitConfig.enable {
programs.git = {

View File

@@ -1,7 +1,13 @@
{ self, lib, config, pkgs, ... }: {
{
self,
lib,
config,
pkgs,
...
}:
{
options = {
movOpts.programConfigs.kittyConfig.enable =
lib.mkEnableOption "enables my kitty configuration";
movOpts.programConfigs.kittyConfig.enable = lib.mkEnableOption "enables my kitty configuration";
};
config = lib.mkIf config.movOpts.programConfigs.kittyConfig.enable {
programs.kitty = {
@@ -14,7 +20,7 @@
settings = {
confirm_os_window_close = 0;
background_opacity = lib.mkForce 0.5;
background_opacity = lib.mkForce 0.65;
window_padding_width = 4;
scrollback_lines = 10000;
enable_audio_bell = true;
@@ -31,6 +37,8 @@
tab_powerline_style = "round";
};
extraConfig = "include ~/.local/state/sysflake/kitty-colors.conf";
keybindings = {
"ctrl+shift+l" = "next_tab";
"ctrl+shift+h" = "previous_tab";

View File

@@ -1,19 +1,18 @@
{ pkgs, self, ... }: {
{ pkgs, self, ... }:
{
programs.nixvim = {
autoCmd = [
{
command = "silent! mkview";
event = [ "BufWinLeave" ];
pattern = [ "*" ];
desc =
"Save session window settings to be loaded next time the file is opened";
desc = "Save session window settings to be loaded next time the file is opened";
}
{
command = "silent! loadview";
event = [ "BufWinEnter" ];
pattern = [ "*" ];
desc =
"Load previous session window settings for the opened file (folds, cursor pos, etc)";
desc = "Load previous session window settings for the opened file (folds, cursor pos, etc)";
}
{
command = "silent! FloatermNew --name=def_term --width=0.8 --height=0.8 --wintype=topright --silent";

View File

@@ -1,6 +1,19 @@
{ env, config, pkgs, host, self, ... }: {
{
env,
config,
pkgs,
host,
self,
...
}:
{
programs.nixvim = {
nixpkgs.useGlobalPackages = true;
};
imports = [ ./plugins ./options.nix ./keymaps.nix ./autocmd.nix ];
imports = [
./plugins
./options.nix
./keymaps.nix
./autocmd.nix
];
}

View File

@@ -49,7 +49,10 @@
{
action = "<cmd>FloatermToggle def_term<CR>";
key = "<F2>";
mode = [ "n" "t" ];
mode = [
"n"
"t"
];
}
{
action = "<cmd>lua require('treesj').toggle()<CR>";
@@ -64,82 +67,127 @@
{
action = ''"+y'';
key = "<space>y";
mode = [ "n" "x" ];
mode = [
"n"
"x"
];
}
{
action = ''"+p'';
key = "<space>p";
mode = [ "n" "x" ];
mode = [
"n"
"x"
];
}
{
action.__raw = /*lua*/''function() require('opencode').prompt('test', {submit=true}) end'';
action.__raw = /* lua */ "function() require('opencode').prompt('test', {submit=true}) end";
key = "<space>at";
mode = [ "n" "x" ];
mode = [
"n"
"x"
];
}
{
action.__raw = /*lua*/''function() require('opencode').select() end'';
action.__raw = /* lua */ "function() require('opencode').select() end";
key = "<space>as";
mode = [ "n" "x" ];
mode = [
"n"
"x"
];
}
{
action.__raw = /*lua*/''function() require('opencode').prompt('document', {submit=true}) end'';
action.__raw = /* lua */ "function() require('opencode').prompt('document', {submit=true}) end";
key = "<space>ad";
mode = [ "n" "x" ];
mode = [
"n"
"x"
];
}
{
action.__raw = /*lua*/''function() require('opencode').prompt('review', {submit=true}) end'';
action.__raw = /* lua */ "function() require('opencode').prompt('review', {submit=true}) end";
key = "<space>ar";
mode = [ "n" "x" ];
mode = [
"n"
"x"
];
}
{
action.__raw = /*lua*/''function() require('opencode').prompt('fix', {submit=true}) end'';
action.__raw = /* lua */ "function() require('opencode').prompt('fix', {submit=true}) end";
key = "<space>af";
mode = [ "n" "x" ];
mode = [
"n"
"x"
];
}
{
action.__raw = /*lua*/''function() require('opencode').ask("@this ", {submit=true}) end'';
action.__raw = /* lua */ ''function() require('opencode').ask("@this ", {submit=true}) end'';
key = "<space>aa";
mode = [ "n" "x" ];
mode = [
"n"
"x"
];
}
{
action.__raw = /*lua*/''function() require('opencode').explain("@this ") end'';
action.__raw = /* lua */ ''function() require('opencode').explain("@this ") end'';
key = "<space>ae";
mode = [ "n" "x" ];
mode = [
"n"
"x"
];
}
{
action.__raw = /*lua*/''function() require('opencode').command("session.half.page.up") end'';
action.__raw = /* lua */ ''function() require('opencode').command("session.half.page.up") end'';
key = "<C-S-u>";
mode = [ "n" "x" ];
mode = [
"n"
"x"
];
}
{
action.__raw = /*lua*/''function() require('opencode').command("session.half.page.down") end'';
action.__raw = /* lua */ ''function() require('opencode').command("session.half.page.down") end'';
key = "<C-S-d>";
mode = [ "n" "x" ];
mode = [
"n"
"x"
];
}
{
action.__raw = /*lua*/''function() require('opencode').command("prompt.clear") end'';
action.__raw = /* lua */ ''function() require('opencode').command("prompt.clear") end'';
key = "<C-c>";
mode = [ "n" "x" ];
mode = [
"n"
"x"
];
}
{
action.__raw = /*lua*/''function() require('opencode').operator("@this ") end'';
action.__raw = /* lua */ ''function() require('opencode').operator("@this ") end'';
key = "go";
mode = [ "n" "x" ];
mode = [
"n"
"x"
];
}
{
action.__raw = /*lua*/''function() return require('opencode').operator("@this ") .. "_" end'';
action.__raw = /* lua */ ''function() return require('opencode').operator("@this ") .. "_" end'';
key = "goo";
mode = [ "n" ];
}
{
action = "<cmd>lua require('opencode').toggle()<CR>";
key = "<C-.>";
mode = [ "n" "t" ];
mode = [
"n"
"t"
];
}
{
action = "<cmd>lua require('opencode').select()<CR>";
key = "<C-n>";
mode = [ "n" "x" ];
mode = [
"n"
"x"
];
}
];
};

View File

@@ -1,7 +1,9 @@
{ config, ... }:
let scheme = config.lib.stylix.colors;
in {
let
scheme = config.lib.stylix.colors;
in
{
programs.nixvim = {
colorschemes.base16 = {
enable = true;
@@ -31,14 +33,17 @@ in {
signs = false;
};
extraConfigLua = /* lua */ ''
local theme_file = vim.fn.expand("~/.local/state/sysflake/nvim-colors.lua")
if vim.fn.filereadable(theme_file) == 1 then
dofile(theme_file)
end
if vim.g.started_by_firenvim == true then
vim.o.laststatus = 0
end
if vim.g.neovide then
vim.g.neovide_refresh_rate = 144
vim.g.neovide_cursor_animate_in_insert_mode = true
vim.g.neovide_opacity = 0.5;
vim.g.neovide_normal_opacity = 1.0;
end
vim.g.vimwiki_list = {{path = '~/vimwiki/', syntax = 'markdown', ext = '.md'}}

View File

@@ -1,7 +1,7 @@
{
programs.nixvim = {
plugins.airline = {
enable = false;
enable = true;
settings = {
left_sep = "";
right_sep = "";

View File

@@ -2,7 +2,9 @@
programs.nixvim = {
plugins.barbar = {
enable = false;
settings = { auto_hide = 1; };
settings = {
auto_hide = 1;
};
};
};
}

View File

@@ -2,7 +2,9 @@
programs.nixvim = {
plugins.coq-nvim = {
enable = true;
settings = { auto_start = false; };
settings = {
auto_start = false;
};
};
};
}

View File

@@ -1,4 +1,10 @@
{ host, self, pkgs, env, ... }:
{
host,
self,
pkgs,
env,
...
}:
{
imports = [

View File

@@ -1,4 +1,5 @@
{ pkgs, ... }: {
{ pkgs, ... }:
{
programs.nixvim = {
extraPlugins = [
(pkgs.vimUtils.buildVimPlugin {

View File

@@ -4,7 +4,9 @@
settings = {
notification = {
overrideVimNotify = true;
window = { border = "rounded"; };
window = {
border = "rounded";
};
};
};
};

View File

@@ -1,15 +1,16 @@
{ pkgs, ... }: {
{ pkgs, ... }:
{
programs.nixvim = {
#extraPlugins = [
#(pkgs.vimUtils.buildVimPlugin {
#name = "haskell-tools.nvim";
#src = pkgs.fetchFromGitHub {
#owner = "mrcjkb";
#repo = "haskell-tools.nvim";
#rev = "39c4ced6f1bff1abc8d4df5027efd11ac38c6e6c";
#hash = "sha256-f+M35EwAlHwjJ2Xs2u9FLnyH0FJT22D0LLShDXCbEEs=";
#};
#})
#(pkgs.vimUtils.buildVimPlugin {
#name = "haskell-tools.nvim";
#src = pkgs.fetchFromGitHub {
#owner = "mrcjkb";
#repo = "haskell-tools.nvim";
#rev = "39c4ced6f1bff1abc8d4df5027efd11ac38c6e6c";
#hash = "sha256-f+M35EwAlHwjJ2Xs2u9FLnyH0FJT22D0LLShDXCbEEs=";
#};
#})
#];
#plugins = { haskell-scope-highlighting.enable = true; };
};

View File

@@ -3,7 +3,7 @@
plugins.indent-blankline = {
enable = true;
#settings = {
#indent.char = "│";
#indent.char = "│";
#};
};
};

View File

@@ -61,7 +61,9 @@
})
'';
};
window = { completion.border = "rounded"; };
window = {
completion.border = "rounded";
};
};
};
lsp = {
@@ -98,10 +100,8 @@
};
options = {
# uses Xenon config because it has every option exposed to it
nixos.expr = ''
(builtins.getFlake "github:pagedMov/nixos-config").nixosConfigurations.phosphorous.options'';
home.expr = ''
(builtins.getFlake "github:pagedMov/nixos-config").homeConfigurations.phospohorousHome.options'';
nixos.expr = ''(builtins.getFlake "github:pagedMov/nixos-config").nixosConfigurations.phosphorous.options'';
home.expr = ''(builtins.getFlake "github:pagedMov/nixos-config").homeConfigurations.phospohorousHome.options'';
};
};
};

View File

@@ -1,42 +1,100 @@
let
colors = {
blue = "#80a0ff";
cyan = "#79dac8";
black = "#080808";
white = "#c6c6c6";
red = "#ff5189";
violet = "#d183e8";
grey = "#303030";
bg_grey = "#202020";
};
bubbles_theme = {
normal = {
a = {
fg = colors.black;
bg = colors.violet;
gui = "bold";
};
b = {
fg = colors.white;
bg = colors.grey;
};
c = {
fg = colors.white;
bg = colors.bg_grey;
};
};
insert = {
a = {
fg = colors.black;
bg = colors.blue;
};
};
visual = {
a = {
fg = colors.black;
bg = colors.cyan;
};
};
replace = {
a = {
fg = colors.black;
bg = colors.red;
};
};
inactive = {
a = {
fg = colors.white;
bg = colors.grey;
};
b = {
fg = colors.white;
bg = colors.black;
};
c = {
fg = colors.white;
};
z = {
fg = colors.white;
bg = colors.grey;
};
};
};
in
{
programs.nixvim = {
plugins.lualine = {
enable = true;
enable = false;
settings = {
options = {
icons_enabled = true;
theme = "auto";
theme = bubbles_theme;
component_separators = {
left = "";
right = "";
left = "|";
right = "|";
};
section_separators = {
left = "";
right = "";
};
always_divide_middle = true;
globalstatus = true;
refresh = {
statusline = 1000;
tabline = 1000;
winbar = 1000;
};
};
sections = {
lualine_a = [ "mode" ];
lualine_b = [ "buffers" ];
lualine_c = [ ];
lualine_x = [ "searchcount" "fileformat" "filetype" ];
lualine_y = [ "branch" "diff" "diagnostics" ];
lualine_z = [ "location" ];
lualine_a.__raw = "{ { 'mode', separator = { left = '' }, right_padding = 2 } }";
lualine_b.__raw = "{ 'filename', 'branch' }";
lualine_c.__raw = "{}";
lualine_x.__raw = "{}";
lualine_y.__raw = "{ 'filetype', 'progress' }";
lualine_z.__raw = "{ { 'location', separator = { right = '' }, left_padding = 2 } }";
};
inactive_sections = {
lualine_a = [ ];
lualine_b = [ ];
lualine_c = [ "filename" ];
lualine_x = [ "location" ];
lualine_y = [ ];
lualine_z = [ ];
lualine_a.__raw = "{ { 'mode', separator = { left = '' }, right_padding = 2 } }";
lualine_b.__raw = "{ 'filename', 'branch' }";
lualine_c.__raw = "{}";
lualine_x.__raw = "{}";
lualine_y.__raw = "{ 'filetype', 'progress' }";
lualine_z.__raw = "{ { 'location', separator = { right = '' }, left_padding = 2 } }";
};
};
};

View File

@@ -1,8 +1,12 @@
{
programs.nixvim = {
plugins = {
mini-align = { enable = true; };
mini-clue = { enable = true; };
mini-align = {
enable = true;
};
mini-clue = {
enable = true;
};
};
};
}

View File

@@ -2,8 +2,7 @@
programs.nixvim.plugins.neocord = {
enable = true;
settings = {
logo =
"https://styles.redditmedia.com/t5_30kix/styles/communityIcon_n2hvyn96zwk81.png";
logo = "https://styles.redditmedia.com/t5_30kix/styles/communityIcon_n2hvyn96zwk81.png";
logo_tooltip = "Neovim";
buttons = [
{

View File

@@ -2,7 +2,9 @@
programs.nixvim.plugins.nvim-lightbulb = {
enable = true;
settings = {
virtual_text = { enable = true; };
virtual_text = {
enable = true;
};
autocmd.enabled = true;
sign.enabled = false;
};

View File

@@ -15,7 +15,7 @@
markdown-preview.enable = true;
marks.enable = true;
nvim-surround.enable = true;
rainbow-delimiters.enable = true;
# rainbow-delimiters.enable = true;
render-markdown.enable = true;
treesitter.enable = true;
trim.enable = true;

View File

@@ -1 +1,5 @@
{ programs.nixvim.plugins.chatgpt = { enable = true; }; }
{
programs.nixvim.plugins.chatgpt = {
enable = true;
};
}

View File

@@ -8,7 +8,9 @@
motion_enabled = 1;
motion_cursor_end = 1;
matchparen_deferred_hi_surround_always = true;
matchparen_offscreen = { method = "popup"; };
matchparen_offscreen = {
method = "popup";
};
treesitter = {
enable = true;
include_match_words = true;

View File

@@ -1,14 +1,22 @@
{ lib, config, username, ... }:
let home = "/home/${username}";
in {
{
lib,
config,
username,
...
}:
let
home = "/home/${username}";
in
{
options = {
movOpts.programConfigs.passConfig.enable =
lib.mkEnableOption "enables my pass config";
movOpts.programConfigs.passConfig.enable = lib.mkEnableOption "enables my pass config";
};
config = lib.mkIf config.movOpts.programConfigs.passConfig.enable {
programs.password-store = {
enable = true;
settings = { PASSWORD_STORE_DIR = "${home}/.password-store"; };
settings = {
PASSWORD_STORE_DIR = "${home}/.password-store";
};
};
};
}

View File

@@ -1,7 +1,7 @@
{ lib, config, ... }: {
{ lib, config, ... }:
{
options = {
movOpts.programConfigs.yaziConfig.enable =
lib.mkEnableOption "enables my yazi config";
movOpts.programConfigs.yaziConfig.enable = lib.mkEnableOption "enables my yazi config";
};
config = lib.mkIf config.movOpts.programConfigs.yaziConfig.enable {
programs.yazi = {