refactor: home-manager directories for each machine

This commit is contained in:
autumn-the-kitty-cat
2025-12-01 18:33:37 -05:00
parent 6696d0a56a
commit 6a6f2fc67f
43 changed files with 9 additions and 2 deletions
+37
View File
@@ -0,0 +1,37 @@
{pkgs, ...}:
{
home.packages = with pkgs; [
clang
];
home.file.".clang-format".text = ''
---
BasedOnStyle: WebKit
AlignAfterOpenBracket: Align
BraceWrapping:
AfterCaseLabel: true
AfterClass: true
AfterControlStatement: Always
AfterEnum: true
AfterFunction: true
AfterNamespace: true
AfterObjCDeclaration: true
AfterStruct: true
AfterUnion: true
AfterExternBlock: true
BeforeCatch: true
BeforeElse: true
BeforeLambdaBody: true
BeforeWhile: true
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBraces: Custom
ColumnLimit: 80
IndentCaseLabels: true
InsertBraces: true
TabWidth: 4
'';
}
+33
View File
@@ -0,0 +1,33 @@
{ inputs, pkgs, ... }:
{
imports = [
inputs.nixvim.homeModules.nixvim
inputs.stylix.homeModules.stylix
inputs.zen-browser.homeModules.default
./programs
./clangd.nix
./hyprland.nix
./packages.nix
./stylix.nix
./xdg.nix
];
home.username = "autumn";
home.homeDirectory = "/home/autumn";
home.stateVersion = "25.05";
nixpkgs.config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
};
home.pointerCursor = {
name = "Adwaita";
package = pkgs.adwaita-icon-theme;
size = 12;
};
programs.home-manager.enable = true;
}
+149
View File
@@ -0,0 +1,149 @@
{ config, pkgs, ... }:
{
home.packages = with pkgs; [
hyprpicker
swww
];
home.file.".config/hypr/hyprland.conf".text = ''
$mainMod=SUPER
$menu=rofi -show drun
$powerMenu=rofi -show power-menu -modi "power-menu:rofi-power-menu --choices lockscreen/suspend/reboot/shutdown"
$screenshot=slurp | grim -g - - | wl-copy
$terminal=foot
animations {
bezier=myBezier, 0.05, 0.9, 0.1, 1.05
animation=windows, 1, 7, myBezier
animation=windowsOut, 1, 7, default, popin 80%
animation=border, 1, 10, default
animation=borderangle, 1, 8, default
animation=fade, 1, 7, default
animation=workspaces, 1, 6, default
enabled=true
}
decoration {
blur {
enabled=yes
ignore_opacity=on
new_optimizations=on
passes=3
size=6
special=true
xray=false
}
# active_opacity=1.000000
# inactive_opacity=1.000000
rounding=10
shadow {
color=rgba(00000099)
enabled=true
range=4
render_power=3
}
}
dwindle {
preserve_split=true
pseudotile=true
}
xwayland {
force_zero_scaling=true
}
general {
allow_tearing=false
border_size=2
col.active_border=rgb(${config.stylix.base16Scheme.palette.base0D})
col.inactive_border=rgba(595959aa)
gaps_in=5
gaps_out=10
layout=dwindle
resize_on_border=false
}
input {
touchpad {
natural_scroll=true
disable_while_typing=0
}
kb_layout=us
}
misc {
disable_hyprland_logo=true
force_default_wallpaper=0
}
monitor = DP-2, 2560x1440@180, 0x0, 1#, bitdepth, 10, cm, hdr
#monitor = DP-2, 1920x1080@180, 0x0, 1#, bitdepth, 10, cm, hdr
monitor = HDMI-A-1, 1920x1080@60, 2560x0, 1
bind=$mainMod, Q, exec, $terminal
bind=$mainMod, C, killactive
bind=$mainMod, M, exit
bind=$mainMod, V, togglefloating
bind=$mainMod, D, exec, $menu
bind=$mainMod, P, pseudo
bind=$mainMod, T, togglesplit
bind=$mainMod, S, exec, $screenshot
bind=$mainMod SHIFT, P, exec, $powerMenu
bind=$mainMod SHIFT, S, exec, $screenshot
bind=$mainMod, F, fullscreen
bind=$mainMod, left, movefocus, l
bind=$mainMod, right, movefocus, r
bind=$mainMod, up, movefocus, u
bind=$mainMod, down, movefocus, d
bind=$mainMod, H, movefocus, l
bind=$mainMod, L, movefocus, r
bind=$mainMod, K, movefocus, u
bind=$mainMod, J, movefocus, d
bind=$mainMod SHIFT, H, movewindow, l
bind=$mainMod SHIFT, L, movewindow, r
bind=$mainMod SHIFT, K, movewindow, u
bind=$mainMod SHIFT, J, movewindow, d
bind=$mainMod SHIFT, left, movewindow, l
bind=$mainMod SHIFT, right, movewindow, r
bind=$mainMod SHIFT, up, movewindow, u
bind=$mainMod SHIFT, down, movewindow, d
bind=$mainMod, 1, workspace, 1
bind=$mainMod, 2, workspace, 2
bind=$mainMod, 3, workspace, 3
bind=$mainMod, 4, workspace, 4
bind=$mainMod, 5, workspace, 5
bind=$mainMod, 6, workspace, 6
bind=$mainMod, 7, workspace, 7
bind=$mainMod, 8, workspace, 8
bind=$mainMod, 9, workspace, 9
bind=$mainMod, 0, workspace, 10
bind=$mainMod SHIFT, 1, movetoworkspace, 1
bind=$mainMod SHIFT, 2, movetoworkspace, 2
bind=$mainMod SHIFT, 3, movetoworkspace, 3
bind=$mainMod SHIFT, 4, movetoworkspace, 4
bind=$mainMod SHIFT, 5, movetoworkspace, 5
bind=$mainMod SHIFT, 6, movetoworkspace, 6
bind=$mainMod SHIFT, 7, movetoworkspace, 7
bind=$mainMod SHIFT, 8, movetoworkspace, 8
bind=$mainMod SHIFT, 9, movetoworkspace, 9
bind=$mainMod SHIFT, 0, movetoworkspace, 10
bind=$mainMod, mouse_down, workspace, e+1
bind=$mainMod, mouse_up, workspace, e-1
bindm=$mainMod, mouse:272, movewindow
bindm=$mainMod, mouse:273, resizewindow
env=XCURSOR_SIZE,24
env=HYPRCURSOR_SIZE,24
exec-once=swww-daemon
exec=swww img ${config.stylix.image}
exec-once=waybar
exec=pkill waybar; waybar
windowrulev2=suppressevent maximize, class:.*
#windowrulev2 = opacity 0.9, class:(com.mitchellh.ghostty)
layerrule = noanim, selection
'';
}
+30
View File
@@ -0,0 +1,30 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
audacity
bitwarden-desktop
cava
cmus
fd
file
ffmpeg
fzf
gimp3-with-plugins
git
grim
killall
lazygit
libresprite
man-pages
man-pages-posix
python3
ripgrep
rusty-man
slurp
tor-browser
unzip
vial
vlc
wl-clipboard
];
}
+9
View File
@@ -0,0 +1,9 @@
{...}: {
programs.btop = {
enable = true;
settings = {
vim_keys = true;
theme_background = false;
};
};
}
+7
View File
@@ -0,0 +1,7 @@
{...}:
{
programs.carapace = {
enable = true;
enableNushellIntegration = true;
};
}
+24
View File
@@ -0,0 +1,24 @@
{
imports = [
./nvim
./rofi
./btop.nix
./carapace.nix
./fastfetch.nix
./foot.nix
./hyfetch.nix
./mako.nix
./ncspot.nix
./nix-search-tv.nix
./nushell.nix
./starship.nix
./tmux.nix
./vesktop.nix
./waybar.nix
./yazi.nix
./zathura.nix
./zoxide.nix
./zen.nix
];
}
+156
View File
@@ -0,0 +1,156 @@
{...}: {
programs.fastfetch = {
enable = true;
settings = {
logo = {
padding = {
top = 2;
};
};
display = {
separator = " -> ";
};
modules = [
{
type = "custom";
format = "";
outputColor = "90";
}
{
type = "title";
keyWidth = 10;
}
{
type = "custom";
format = "";
outputColor = "90";
}
{
type = "custom";
format = " {#90} {#31} {#32} {#33} {#34} {#35} {#36} {#37} {#38} {#39} {#38} {#37} {#36} {#35} {#34} {#33} {#32} {#31} {#90}";
}
{
type = "custom";
format = "";
outputColor = "90";
}
{
type = "os";
key = " OS";
keyColor = "yellow";
format = "{2} {8} {1}";
}
{
type = "kernel";
key = " ";
keyColor = "yellow";
}
{
type = "packages";
key = " 󰏖";
keyColor = "yellow";
}
{
type = "shell";
key = " ";
keyColor = "yellow";
}
{
type = "wm";
key = " DE/WM";
keyColor = "blue";
}
{
type = "lm";
key = " 󰧨";
keyColor = "blue";
}
{
type = "wmtheme";
key = " 󰉼";
keyColor = "blue";
}
{
type = "icons";
key = " 󰀻";
keyColor = "blue";
}
{
type = "terminal";
key = " ";
keyColor = "blue";
}
{
type = "wallpaper";
key = " 󰸉";
keyColor = "blue";
}
{
type = "host";
key = "󰌢 PC";
keyColor = "green";
}
{
type = "cpu";
key = " 󰻠";
keyColor = "green";
}
{
type = "gpu";
key = " 󰍛";
keyColor = "green";
}
{
type = "disk";
key = " ";
keyColor = "green";
}
{
type = "memory";
key = " 󰑭";
keyColor = "green";
}
{
type = "swap";
key = " 󰓡";
keyColor = "green";
}
{
type = "uptime";
key = " 󰅐";
keyColor = "green";
}
{
type = "display";
key = " 󰍹";
keyColor = "green";
}
{
type = "sound";
key = " SND";
keyColor = "cyan";
}
{
type = "player";
key = " 󰥠";
keyColor = "cyan";
}
{
type = "media";
key = " 󰝚";
keyColor = "cyan";
}
{
type = "custom";
format = "";
outputColor = "90";
}
"break"
{
type = "custom";
format = " {#90} {#31} {#32} {#33} {#34} {#35} {#36} {#37} {#38} {#39} {#38} {#37} {#36} {#35} {#34} {#33} {#32} {#31} {#90}";
}
];
};
};
}
+13
View File
@@ -0,0 +1,13 @@
{...}: {
programs.foot = {
enable = true;
settings = {
cursor = {
style = "beam";
};
key-bindings = {
spawn-terminal = "none";
};
};
};
}
+13
View File
@@ -0,0 +1,13 @@
{ ... }:
{
programs.hyfetch = {
enable = true;
settings = {
preset = "transgender";
mode = "rgb";
color_align.mode = "horizontal";
backend = "fastfetch";
pride_month_disable = true;
};
};
}
+9
View File
@@ -0,0 +1,9 @@
{...}: {
services.mako = {
enable = true;
settings = {
default-timeout = 5000;
ignore-timeout = true;
};
};
}
+6
View File
@@ -0,0 +1,6 @@
{...}:
{
programs.ncspot = {
enable = true;
};
}
@@ -0,0 +1,8 @@
{ ... }:
{
programs.television.enable = true;
programs.nix-search-tv = {
enable = true;
enableTelevisionIntegration = true;
};
}
+223
View File
@@ -0,0 +1,223 @@
{ config, pkgs, ... }:
{
home.packages = [ pkgs.nix-your-shell ];
programs.nushell = {
enable = true;
plugins = with pkgs.nushellPlugins; [
formats
polars
gstat
query
];
settings = {
show_banner = false;
edit_mode = "vi";
cursor_shape = {
emacs = "line";
vi_insert = "line";
vi_normal = "block";
};
};
shellAliases = {
c = "clear";
meow = "_meow";
hf = "nix flake update --flake ${config.home.homeDirectory}/.config/home-manager";
hs = "nh home switch ~/.config/home-manager";
hz = "z ~/.config/home-manager";
nsu = "_nsu";
ns = "sudo nixos-rebuild switch";
se = "sudoedit";
v = "nvim";
};
extraConfig = with config.stylix.base16Scheme.palette; ''
def _meow () {
clear
hyfetch
}
def _nsu () {
sudo nix-channel --add https://channels.nixos.org/nixos-unstable nixos
sudo nixos-rebuild switch --upgrade
}
def _nix_your_shell (command: string, args: list<string>) {
if not (which nix-your-shell | is-empty) {
let args = ["--"] ++ $args
run-external nix-your-shell nu $command ...$args
} else {
run-external $command ...$args
}
}
def --wrapped nix-shell (...args) {
_nix_your_shell nix-shell $args
}
def --wrapped nix (...args) {
_nix_your_shell nix $args
}
let theme = {
base00: "#${base00}"
base01: "#${base01}"
base02: "#${base02}"
base03: "#${base03}"
base04: "#${base04}"
base05: "#${base05}"
base06: "#${base06}"
base07: "#${base07}"
base08: "#${base08}"
base09: "#${base09}"
base0A: "#${base0A}"
base0B: "#${base0B}"
base0C: "#${base0C}"
base0D: "#${base0D}"
base0E: "#${base0E}"
base0F: "#${base0F}"
}
let scheme = {
recognized_command: $theme.base0D
unrecognized_command: $theme.base08
constant: $theme.base09
punctuation: $theme.base04
operator: $theme.base0C
string: $theme.base0B
virtual_text: $theme.base04
variable: { fg: $theme.base0F attr: i }
filepath: $theme.base0A
}
$env.config.color_config = {
separator: { fg: $theme.base04 attr: b }
leading_trailing_space_bg: { fg: $theme.base07 attr: u }
header: { fg: $theme.base05 attr: b }
row_index: $scheme.virtual_text
record: $theme.base05
list: $theme.base05
hints: $scheme.virtual_text
search_result: { fg: $theme.base00 bg: $theme.base0A }
shape_closure: $theme.base0C
closure: $theme.base0C
shape_flag: { fg: $theme.base08 attr: i }
shape_matching_brackets: { attr: u }
shape_garbage: $theme.base08
shape_keyword: $theme.base0E
shape_match_pattern: $theme.base0B
shape_signature: $theme.base0C
shape_table: $scheme.punctuation
cell-path: $scheme.punctuation
shape_list: $scheme.punctuation
shape_record: $scheme.punctuation
shape_vardecl: $scheme.variable
shape_variable: $scheme.variable
empty: { attr: n }
filesize: {||
if $in < 1kb {
$theme.base0C
} else if $in < 10kb {
$theme.base0B
} else if $in < 100kb {
$theme.base0A
} else if $in < 10mb {
$theme.base09
} else if $in < 100mb {
$theme.base08
} else if $in < 1gb {
$theme.base08
} else {
$theme.base0E
}
}
duration: {||
if $in < 1day {
$theme.base0C
} else if $in < 1wk {
$theme.base0B
} else if $in < 4wk {
$theme.base0A
} else if $in < 12wk {
$theme.base09
} else if $in < 24wk {
$theme.base08
} else if $in < 52wk {
$theme.base08
} else {
$theme.base0E
}
}
date: {|| (date now) - $in |
if $in < 1day {
$theme.base0C
} else if $in < 1wk {
$theme.base0B
} else if $in < 4wk {
$theme.base0A
} else if $in < 12wk {
$theme.base09
} else if $in < 24wk {
$theme.base08
} else if $in < 52wk {
$theme.base08
} else {
$theme.base0E
}
}
shape_external: $scheme.unrecognized_command
shape_internalcall: $scheme.recognized_command
shape_external_resolved: $scheme.recognized_command
shape_block: $scheme.recognized_command
block: $scheme.recognized_command
shape_custom: $theme.base0F
custom: $theme.base0F
background: $theme.base00
foreground: $theme.base05
cursor: { bg: $theme.base06 fg: $theme.base00 }
shape_range: $scheme.operator
range: $scheme.operator
shape_pipe: $scheme.operator
shape_operator: $scheme.operator
shape_base08irection: $scheme.operator
glob: $scheme.filepath
shape_directory: $scheme.filepath
shape_filepath: $scheme.filepath
shape_glob_interpolation: $scheme.filepath
shape_globpattern: $scheme.filepath
shape_int: $scheme.constant
int: $scheme.constant
bool: $scheme.constant
float: $scheme.constant
nothing: $scheme.constant
binary: $scheme.constant
shape_nothing: $scheme.constant
shape_bool: $scheme.constant
shape_float: $scheme.constant
shape_binary: $scheme.constant
shape_datetime: $scheme.constant
shape_literal: $scheme.constant
string: $scheme.string
shape_string: $scheme.string
shape_string_interpolation: $theme.base0F
shape_raw_string: $scheme.string
shape_externalarg: $scheme.string
}
$env.config.highlight_resolved_externals = true
$env.config.explore = {
status_bar_background: { fg: $theme.base05, bg: $theme.base01 },
command_bar_text: { fg: $theme.base05 },
highlight: { fg: $theme.base00, bg: $theme.base0A },
status: {
error: $theme.base08,
warn: $theme.base0A,
info: $theme.base0D,
},
selected_cell: { bg: $theme.base0D fg: $theme.base00 },
}
'';
};
}
@@ -0,0 +1,6 @@
{...}: {
imports = [
./lsp.nix
./none-ls.nix
];
}
+125
View File
@@ -0,0 +1,125 @@
{ ... }:
{
programs.nixvim.plugins = {
lsp = {
enable = true;
inlayHints = true;
servers = {
asm_lsp.enable = true;
clangd = {
enable = true;
cmd = [
"clangd"
];
};
cssls.enable = true;
eslint.enable = true;
lua_ls = {
enable = true;
settings.telemetry.enable = false;
};
hls = {
enable = true;
installGhc = true;
settings.haskell = {
formattingProvider = "fourmolu";
};
};
html.enable = true;
jsonls.enable = true;
mlir_lsp_server.enable = true;
nil_ls.enable = true;
nixd.enable = true;
nushell.enable = true;
ocamllsp.enable = true;
pyright.enable = true;
ts_ls.enable = true;
zls.enable = true;
};
};
cmp-emoji = {
enable = true;
};
cmp = {
enable = true;
settings = {
autoEnableSources = true;
experimental = {
ghost_text = true;
};
performance = {
debounce = 60;
fetchingTimeout = 200;
};
snippet = {
expand = "luasnip";
};
formatting = {
fields = [
"kind"
"abbr"
"menu"
];
};
sources = [
{ name = "nvim_lsp"; }
{ name = "emoji"; }
{
name = "buffer"; # text within current buffer
option.get_bufnrs.__raw = "vim.api.nvim_list_bufs";
keywordLength = 3;
}
{
name = "path"; # file system paths
keywordLength = 3;
}
{
name = "luasnip"; # snippets
keywordLength = 3;
}
];
window = {
completion.__raw = "cmp.config.window.bordered()";
documentation.__raw = "cmp.config.window.bordered()";
};
mapping = {
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
"<C-e>" = "cmp.mapping.abort()";
"<C-b>" = "cmp.mapping.scroll_docs(-4)";
"<C-f>" = "cmp.mapping.scroll_docs(4)";
"<C-Space>" = "cmp.mapping.complete()";
"<CR>" = "cmp.mapping.confirm({ select = true })";
"<S-CR>" = "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true })";
};
};
};
cmp-nvim-lsp = {
enable = true;
}; # lsp
cmp-buffer = {
enable = true;
};
cmp-path = {
enable = true;
}; # file system paths
cmp_luasnip = {
enable = true;
}; # snippets
cmp-cmdline = {
enable = false;
}; # autocomplete for cmdline
luasnip = {
enable = true;
settings = {
enable_autosnippets = true;
store_selection_keys = "<Tab>";
};
};
};
}
@@ -0,0 +1,10 @@
{ ... }:
{
programs.nixvim.plugins = {
lsp-format.enable = true;
none-ls = {
enable = true;
enableLspFormat = true;
};
};
}
+18
View File
@@ -0,0 +1,18 @@
{ ... }:
{
imports = [
./cmp
./plugins
./keymaps.nix
./options.nix
];
programs.nixvim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
colorschemes.catppuccin.enable = true;
};
}
+94
View File
@@ -0,0 +1,94 @@
{ ... }:
{
programs.nixvim = {
globals.mapleader = " ";
keymaps = [
{
mode = "n";
key = "<leader>n";
action = "<cmd>NvimTreeFindFileToggle<cr>";
}
{
mode = [
"n"
"i"
"v"
"t"
];
key = "<c-\\>";
action = "<cmd>ToggleTerm<cr>";
}
{
mode = [
"n"
"i"
"v"
];
key = "<c-l>";
action = "<cmd>BufferLineCycleNext<cr>";
}
{
mode = [
"n"
"i"
"v"
];
key = "<c-h>";
action = "<cmd>BufferLineCyclePrev<cr>";
}
{
mode = [
"n"
"i"
"v"
];
key = "<c-j>";
action = "<cmd>BufferLineGoToBuffer 1<cr>";
}
{
mode = [
"n"
"i"
"v"
];
key = "<c-k>";
action = "<cmd>BufferLineGoToBuffer -1<cr>";
}
{
mode = "n";
key = "<leader><leader>";
action = "<cmd>Yazi<cr>";
}
{
mode = "n";
key = "<leader>a";
action = "<cmd>AerialToggle<cr>";
}
{
mode = "n";
key = "{";
action = "<cmd>AerialPrev<cr>";
}
{
mode = "n";
key = "}";
action = "<cmd>AerialNext<cr>";
}
{
mode = "n";
key = "<leader>c";
action = ":hori term ";
}
];
};
}
+58
View File
@@ -0,0 +1,58 @@
{ ... }:
{
programs.nixvim = {
autoCmd = [
{
event = [ "VimLeave" ];
command = ":set guicursor=a:ver90-blinkon0";
}
];
diagnostic.settings = {
virtual_lines = {
current_line = true;
};
float = {
border = "rounded";
source = "always";
};
};
opts = {
shell = "nu";
fillchars = "eob: ";
number = true;
relativenumber = true;
tabstop = 4;
softtabstop = 4;
showtabline = 4;
shiftwidth = 4;
expandtab = true;
smartindent = true;
breakindent = true;
hlsearch = true;
incsearch = true;
ignorecase = true;
smartcase = true;
splitbelow = true;
splitright = true;
mouse = "a";
updatetime = 50;
swapfile = false;
backup = false;
undofile = true;
scrolloff = 10;
cursorline = true;
wildmenu = true;
};
};
}
@@ -0,0 +1,11 @@
{ ... }:
{
programs.nixvim.plugins.codesnap = {
enable = true;
settings = {
has_line_number = true;
bg_theme = "grape";
watermark = "";
};
};
}
@@ -0,0 +1,33 @@
{ ... }:
{
imports = [
./codesnap.nix
./emmet.nix
./rustaceanvim.nix
./telescope.nix
./toggleterm.nix
./treesitter.nix
];
programs.nixvim.plugins = {
aerial.enable = true;
bufferline.enable = true;
colorizer.enable = true;
comment.enable = true;
crates.enable = true;
fidget.enable = true;
lazygit.enable = true;
lsp-lines.enable = true;
lualine.enable = true;
nvim-tree.enable = true;
nvim-autopairs.enable = true;
quickmath.enable = true;
rainbow.enable = true;
render-markdown.enable = true;
treesj.enable = true;
ts-autotag.enable = true;
visual-multi.enable = true;
web-devicons.enable = true;
yazi.enable = true;
};
}
@@ -0,0 +1,8 @@
{ ... }:
{
programs.nixvim.plugins.emmet = {
enable = true;
settings.leader = "<C-Y>";
settings.mode = "a";
};
}
@@ -0,0 +1,26 @@
{ ... }:
{
programs.nixvim.plugins.rustaceanvim = {
enable = true;
settings = {
tools.enable_clippy = true;
server = {
default_settings = {
inlayHints = {
lifetimeElisionHints = {
enable = "always";
};
};
rust-analyzer = {
cargo = {
allFeatures = true;
};
check = {
command = "clippy";
};
};
};
};
};
};
}
@@ -0,0 +1,33 @@
{ ... }:
{
programs.nixvim.plugins.telescope = {
enable = true;
extensions = {
# file-browser.enable = true;
fzf-native.enable = true;
# media-files.enable = true;
};
settings = {
pickers.colorscheme.enable_preview = true;
defaults = {
layout_config = {
horizontal = {
prompt_position = "bottom";
};
};
sorting_strategy = "descending";
};
};
keymaps = {
# "<leader><space>" = {
# action = "find_files";
# options.desc = "Find Project Files";
# };
"<leader>f" = {
action = "live_grep";
options.desc = "Find Text";
};
};
};
}
@@ -0,0 +1,13 @@
{ ... }:
{
programs.nixvim.plugins.toggleterm = {
enable = true;
settings = {
direction = "horizontal";
float_opts = {
border = "curved";
};
shell = "nu";
};
};
}
@@ -0,0 +1,10 @@
{ ... }:
{
programs.nixvim.plugins.treesitter = {
enable = true;
settings = {
auto_install = true;
highlight.enable = true;
};
};
}
+25
View File
@@ -0,0 +1,25 @@
{ config, ... }:
{
xdg.configFile."rofi/config.rasi".text = ''
configuration{
modi: "run,drun,window";
lines: 5;
cycle: false;
font: "${config.stylix.fonts.serif.name} 14";
show-icons: true;
icon-theme: "Papirus-dark";
terminal: "foot";
drun-display-format: "{icon} {name}";
location: 0;
disable-history: true;
hide-scrollbar: true;
display-drun: " Apps ";
display-run: " Run ";
display-window: " Window ";
/* display-Network: " Network"; */
sidebar-mode: true;
sorting-method: "fzf";
}
@theme "theme"'';
}
+12
View File
@@ -0,0 +1,12 @@
{ pkgs, ... }:
{
imports = [
./config.nix
./theme.nix
];
home.packages = [
pkgs.rofi-power-menu
pkgs.rofi
];
}
+102
View File
@@ -0,0 +1,102 @@
{ config, ... }:
{
xdg.configFile."rofi/theme.rasi".text = with config.stylix.base16Scheme.palette; ''
* {
bg-col: #${base00};
bg-col-light: #${base01};
border-col: #${base0D};
selected-col: #${base01};
accent: #${base0D};
fg-col: #${base07};
fg-col2: #${base06};
grey: #${base04};
}
element-text, element-icon , mode-switcher {
background-color: inherit;
text-color: inherit;
}
window {
height: 530px;
width: 600px;
border: 2px;
border-color: @border-col;
background-color: @bg-col;
}
mainbox {
background-color: @bg-col;
}
inputbar {
children: [prompt,entry];
background-color: @bg-col-light;
border-radius: 5px;
padding: 0px;
}
prompt {
background-color: @accent;
padding: 4px;
text-color: @bg-col-light;
border-radius: 3px;
margin: 10px 0px 10px 10px;
}
textbox-prompt-colon {
expand: false;
str: ":";
}
entry {
padding: 6px;
margin: 10px 10px 10px 5px;
text-color: @fg-col;
background-color: @bg-col;
border-radius: 3px;
}
listview {
border: 0px 0px 0px;
padding: 6px 0px 0px;
margin: 10px 0px 0px 6px;
columns: 1;
background-color: @bg-col;
cycle: true;
}
element {
padding: 8px;
margin: 0px 10px 4px 4px;
background-color: @bg-col;
text-color: @fg-col;
}
element-icon {
size: 28px;
}
element selected {
background-color: @selected-col ;
text-color: @fg-col2 ;
border-radius: 3px;
}
mode-switcher {
spacing: 0;
}
button {
padding: 10px;
background-color: @bg-col-light;
text-color: @grey;
vertical-align: 0.5;
horizontal-align: 0.5;
}
button selected {
background-color: @bg-col;
text-color: @accent;
}'';
}
+5
View File
@@ -0,0 +1,5 @@
{...}: {
programs.starship = {
enable = true;
};
}
+7
View File
@@ -0,0 +1,7 @@
{...}:
{
programs.tmux = {
enable = true;
keyMode = "vi";
};
}
+257
View File
@@ -0,0 +1,257 @@
{ config, ... }:
{
home.file.".config/vesktop/themes/base16.css".text =
with config.stylix.base16Scheme.palette;
with config.stylix.fonts;
''
@import url('https://refact0r.github.io/midnight-discord/build/midnight.css');
@import url('https://gitea.thekittycat.ca/autumn-the-kitty-cat/no-nitro/raw/branch/main/no-nitro.css');
body {
font-family: '${monospace.name}', '${emoji.name}';
}
:root {
--font-primary: '${monospace.name}', '${emoji.name}';
--font-display: '${monospace.name}', '${emoji.name}';
--font-headline: '${monospace.name}', '${emoji.name}';
--font-code: '${monospace.name}', '${emoji.name}';
--font-clan-body: '${monospace.name}', '${emoji.name}';
--font-clan-signature: '${monospace.name}', '${emoji.name}';
--font-display-marketing: '${monospace.name}', '${emoji.name}';
--font-display-marketing-header: '${monospace.name}', '${emoji.name}';
--online-indicator: #${base0B};
--dnd-indicator: #${base08};
--idle-indicator: #${base08};
--streaming-indicator: #${base0E};
--accent-1: #${base0E}; /* links */
--accent-2: #${base0E}; /* general unread/mention elements */
--accent-3: #${base0E}; /* accent buttons */
--accent-4: #${base0E}; /* accent buttons when hovered */
--accent-5: #${base0E}; /* accent buttons when clicked */
--accent-new: #${base0E}; /* new indicator */
--mention: #${base06}1a; /* mentions & mention messages */
--mention-hover: #${base06}1a; /* mentions & mention messages when hovered */
--text-0: var(--bg-4); /* text on colored elements */
--text-1: #${base05}; /* bright text on colored elements */
--text-2: #${base05}; /* headings and important text */
--text-3: #${base05}; /* normal text */
--text-4: #${base05}; /* icon buttons and channels */
--text-5: #${base05}; /* muted channels/chats and timestamps */
--bg-1: #${base03}; /* dark buttons when clicked */
--bg-2: #${base02}; /* dark buttons */
--bg-3: #${base01}; /* spacing, secondary elements */
--bg-4: #${base00}; /* main background color */
--hover: #${base03}; /* channels and buttons when hovered */
--active: #${base03}; /* channels and buttons when clicked or selected */
--message-hover: #${base01}1a; /* messages when hovered */
/* Unset unthemeable elements*/
--login-bg-filter: none; /* login background artwork */
--green-to-accent-3-filter: none; /* add friend page explore icon */
--blurple-to-accent-3-filter: none; /* add friend page school icon */
}
'';
programs.vesktop = {
enable = true;
vencord.settings = {
autoUpdate = true;
autoUpdateNotification = true;
useQuickCss = true;
themeLinks = [ ];
enabledThemes = [ "base16.css" ];
frameless = false;
transparent = false;
winCtrlQ = false;
disableMinSize = false;
winNativeTitleBar = false;
plugins = {
ChatInputButtonAPI.enabled = true;
CommandsAPI.enabled = true;
DynamicImageModalAPI.enabled = true;
MemberListDecoratorsAPI.enabled = true;
MessageAccessoriesAPI.enabled = true;
MessageDecorationsAPI.enabled = true;
MessageEventsAPI.enabled = true;
MessagePopoverAPI.enabled = true;
MessageUpdaterAPI.enabled = true;
UserSettingsAPI.enabled = true;
AlwaysExpandRoles.enabled = true;
AnonymiseFileNames.enabled = true;
BetterRoleContext.enabled = true;
BetterRoleDot = {
enabled = true;
bothStyles = false;
copyRoleColorInProfilePopout = false;
};
BetterSessions = {
enabled = true;
backgroundCheck = false;
};
BlurNSFW = {
enabled = true;
blurAmount = 10;
};
CallTimer.enabled = true;
ClearURLs.enabled = true;
ConsoleJanitor = {
enabled = true;
disableLoggers = false;
disableSpotifyLogger = true;
whitelistedLoggers = "GatewaySocket; Routing/Utils";
};
CopyEmojiMarkdown.enabled = true;
CopyFileContents.enabled = true;
CopyUserURLs.enabled = true;
CrashHandler.enabled = true;
ExpressionCloner.enabled = true;
FakeNitro.enabled = true;
FavoriteGifSearch.enabled = true;
FixCodeblockGap.enabled = true;
FixImagesQuality.enabled = true;
FixSpotifyEmbeds.enabled = true;
FixYoutubeEmbeds.enabled = true;
ForceOwnerCrown.enabled = true;
FriendsSince.enabled = true;
FullSearchContext.enabled = true;
iLoveSpam.enabled = true;
ImplicitRelationships = {
enabled = true;
sortByAffinity = true;
};
LoadingQuotes = {
enabled = true;
replaceEvents = true;
enableDiscordPresetQuotes = false;
additionalQuotes = "";
additionalQuotesDelimiter = "|";
enablePluginPresetQuotes = true;
};
MemberCount = {
enabled = true;
memberList = true;
toolTip = true;
};
MessageLinkEmbeds.enabled = true;
MessageLogger = {
enabled = true;
deleteStyle = "overlay";
logDeletes = true;
collapseDeleted = false;
logEdits = true;
inlineEdits = true;
ignoreBots = false;
ignoreSelf = false;
ignoreUsers = "";
ignoreChannels = "";
ignoreGuilds = "";
};
MoreCommands.enabled = true;
MutualGroupDMs.enabled = true;
NoDevtoolsWarning.enabled = true;
NoMaskedUrlPaste.enabled = true;
NoOnboardingDelay.enabled = true;
NoProfileThemes.enabled = true;
NormalizeMessageLinks.enabled = true;
OnePingPerDM.enabled = true;
OpenInApp = {
enabled = true;
spotify = true;
};
PermissionsViewer.enabled = true;
petpet.enabled = true;
PlatformIndicators = {
enabled = true;
colorMobileIndicator = true;
list = true;
badges = true;
messages = true;
};
QuickMention.enabled = true;
QuickReply.enabled = true;
RelationshipNotifier.enabled = true;
RevealAllSpoilers.enabled = true;
ReverseImageSearch.enabled = true;
SendTimestamps.enabled = true;
ServerInfo.enabled = true;
ShikiCodeblocks = {
enabled = true;
useDevIcon = "GREYSCALE";
theme = "https =//raw.githubusercontent.com/shikijs/textmate-grammars-themes/2d87559c7601a928b9f7e0f0dda243d2fb6d4499/packages/tm-themes/themes/dark-plus.json";
};
ShowHiddenChannels = {
enabled = true;
showMode = 0;
hideUnreads = true;
};
ShowHiddenThings = {
enabled = true;
showTimeouts = true;
showInvitesPaused = true;
showModView = true;
disableDiscoveryFilters = true;
disableDisallowedDiscoveryFilters = true;
};
SilentMessageToggle.enabled = true;
SpotifyControls = {
enabled = true;
hoverControls = false;
};
Translate = {
enabled = true;
autoTranslate = false;
showChatBarButton = true;
};
TypingIndicator = {
enabled = true;
includeMutedChannels = false;
includeCurrentChannel = true;
};
TypingTweaks = {
enabled = true;
alternativeFormatting = true;
};
UnlockedAvatarZoom.enabled = true;
UserVoiceShow = {
enabled = true;
showInUserProfileModal = true;
showInMemberList = true;
showInMessages = true;
};
ValidReply.enabled = true;
ValidUser.enabled = true;
VoiceChatDoubleClick.enabled = true;
VcNarrator.enabled = true;
ViewIcons.enabled = true;
ViewRaw = {
enabled = true;
clickMethod = "Left";
};
VoiceDownload.enabled = true;
VoiceMessages.enabled = true;
VolumeBooster.enabled = true;
WebKeybinds.enabled = true;
WebScreenShareFixes.enabled = true;
WhoReacted.enabled = true;
YoutubeAdblock.enabled = true;
NoTrack = {
enabled = true;
disableAnalytics = true;
};
WebContextMenus = {
enabled = true;
addBack = true;
};
Settings = {
enabled = true;
settingsLocation = "aboveNitro";
};
SupportHelper.enabled = true;
};
};
};
}
+139
View File
@@ -0,0 +1,139 @@
{ config, ... }:
{
home.file.".config/waybar/config".text = ''
{
"position": "top",
"spacing": 4,
"modules-left": ["custom/icon", "ext/workspaces", "tray"],
"modules-center": ["clock"],
"modules-right": ["pulseaudio", "cpu", "memory", "temperature", "battery"],
"custom/icon": {
"format": " ",
"tooltip": false
},
"tray": {
"spacing": 10
},
"clock": {
"format": "{:L%Y-%m-%d<small>[%a]</small> <tt><small>%p</small></tt>%I:%M}"
},
"cpu": {
"format": " {usage}%",
"tooltip": false
},
"memory": {
"format": " {}%"
},
"temperature": {
"thermal-zone": 2,
"critical-threshold": 80,
"format-critical": "{icon} {temperatureC}°C",
"format": "{icon} {temperatureC}°C",
"format-icons": ["", "", ""]
},
"battery": {
"states": {
"good": 95,
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-charging": " {capacity}%",
"format-plugged": " {capacity}%",
"format-alt": "{icon} {time}",
"format-icons": ["", "", "", "", ""]
},
"pulseaudio": {
"scroll-step": 5, // %, can be a float
"format": "{icon} {volume}% {format_source}",
"format-bluetooth": " {icon} {volume}% {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}",
"format-source": " {volume}%",
"format-source-muted": "",
"format-icons": {
"default": ["", "", ""]
},
"on-click-right": "pavucontrol",
},
}
'';
programs.waybar = {
enable = true;
style = ''
* {
font-family: "${config.stylix.fonts.serif.name}";
font-size: 16px;
min-height: 10px;
}
#custom-icon,
#workspaces,
#tray,
#clock,
#pulseaudio,
#cpu,
#memory,
#temperature,
#battery {
border-width: 2px;
border-style: solid;
border-color: #${config.stylix.base16Scheme.palette.base0D};
border-radius: 10px;
margin-top: 6px;
margin-left: 8px;
padding-left: 10px;
margin-bottom: 0px;
padding-right: 10px;
border-radius: 10px;
transition: none;
color: #${config.stylix.base16Scheme.palette.base05};
background: #${config.stylix.base16Scheme.palette.base00};
}
#custom-icon {
margin-left: 10px;
}
#memory {
margin-right: 10px;
}
window#waybar {
background: transparent;
}
window#waybar.hidden {
opacity: 0.2;
}
#window {
margin-top: 6px;
padding-left: 10px;
padding-right: 10px;
border-radius: 10px;
transition: none;
color: transparent;
background: transparent;
}
#battery.critical:not(.charging) {
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
@keyframes blink {
to {
background-color: #${config.stylix.base16Scheme.palette.base08};
}
}
#workspaces button.active {
color: #${config.stylix.base16Scheme.palette.base0D};
}
'';
};
}
+6
View File
@@ -0,0 +1,6 @@
{...}: {
programs.yazi = {
enable = true;
enableZshIntegration = true;
};
}
+37
View File
@@ -0,0 +1,37 @@
{config, ...}:
{
programs.zathura = {
enable = true;
options = with config.stylix.base16Scheme.palette; {
font = "${config.stylix.fonts.serif.name} 14";
default-fg = "#${base05}";
default-bg = "#${base00}";
completion-bg = "#${base02}";
completion-fg = "#${base05}";
completion-highlight-bg = "#${base04}";
completion-highlight-fg = "#${base05}";
completion-group-bg = "#${base02}";
completion-group-fg = "#${base0E}";
statusbar-fg = "#${base05}";
statusbar-bg = "#${base02}";
notification-bg = "#${base02}";
notification-fg = "#${base05}";
notification-error-bg = "#${base02}";
notification-error-fg = "#${base08}";
notification-warning-bg = "#${base02}";
notification-warning-fg = "#${base09}";
inputbar-fg = "#${base05}";
inputbar-bg = "#${base02}";
index-fg = "#${base05}";
index-bg = "#${base00}";
index-active-fg = "#${base05}";
index-active-bg = "#${base02}";
render-loading-bg = "#${base00}";
render-loading-fg = "#${base05}";
recolor-lightcolor = "#${base00}";
recolor-darkcolor = "#${base05}";
recolor = "true";
};
};
}
+129
View File
@@ -0,0 +1,129 @@
{ config, pkgs, ... }:
let
betterfox = pkgs.fetchFromGitHub {
owner = "yokoffing";
repo = "Betterfox";
rev = "116.1";
hash = "sha256-Ai8Szbrk/4FhGhS4r5gA2DqjALFRfQKo2a/TwWCIA6g=";
};
catppuccinUserChrome = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "zen-browser";
rev = "0893393f721facb884365a318111c4a7fce96b45";
hash = "sha256-+Nf7TUairZBnhYCFVBqiQW9QodV/xWSOnH6X9o6S7rM=";
};
replaceWithStylixColours =
textFile:
with config.stylix.base16Scheme.palette;
builtins.replaceStrings
[
"1e1e2e"
"181825"
"313244"
"45475a"
"585b70"
"cdd6f4"
"f5e0dc"
"b4befe"
"f38ba8"
"fab387"
"f9e2af"
"a6e3a1"
"94e2d5"
"89b4fa"
"cba6f7"
"f2cdcd"
]
[
base00
base01
base02
base03
base04
base05
base06
base07
base08
base09
base0A
base0B
base0C
base0D
base0E
base0F
]
(builtins.readFile textFile);
userChromeText = replaceWithStylixColours "${catppuccinUserChrome}/themes/Mocha/Mauve/userChrome.css";
userContentText = replaceWithStylixColours "${catppuccinUserChrome}/themes/Mocha/Mauve/userContent.css";
installExtension = name: {
inherit name;
value = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/${name}/latest.xpi";
installation_mode = "force_installed";
};
};
in
{
home.file.".zen/default/chrome/userChrome.css".text = userChromeText;
home.file.".zen/default/chrome/userContent.css".text = userContentText;
programs.zen-browser = {
enable = true;
policies = {
DisableTelemtry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxAccounts = true;
DisableAccounts = true;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "never";
DisplayMenuBar = "default-off";
SearchBar = "unified";
ExtensionSettings = builtins.listToAttrs (
builtins.map (name: installExtension name) [
# BitWarden
"{446900e4-71c2-419f-a6a7-df9c091e268b}"
# Catppuccin Mocha Mauve
"{76aabc99-c1a8-4c1e-832b-d4f2941d5a7a}"
# Dark Reader
"addon@darkreader.org"
# Language Tool
"languagetool-webextension@languagetool.org"
# Return dislikes to YouTube
"{762f9885-5a13-4abd-9c77-433dcd38b8fd}"
# SponsorBlocker
"sponsorBlocker@ajay.app"
# uBlock Origin:
"uBlock0@raymondhill.net"
]
);
};
profiles.default = {
id = 0;
isDefault = true;
extraConfig = builtins.concatStringsSep "\n" [
(builtins.readFile "${betterfox}/Securefox.js")
(builtins.readFile "${betterfox}/Fastfox.js")
(builtins.readFile "${betterfox}/Peskyfox.js")
];
};
};
}
+7
View File
@@ -0,0 +1,7 @@
{...}:
{
programs.zoxide = {
enable = true;
enableNushellIntegration = true;
};
}
+82
View File
@@ -0,0 +1,82 @@
{
inputs,
pkgs,
...
}:
{
stylix =
let
palette = {
base00 = "11111a"; # 11111a
base01 = "181825"; # 181825
base02 = "313244"; # 313244
base03 = "45475a"; # 45475a
base04 = "585b70"; # 585b70
base05 = "cdd6f4"; # cdd6f4
base06 = "f5e0dc"; # f5e0dc
base07 = "b4befe"; # b4befe
base08 = "f38ba8"; # f38ba8
base09 = "fab387"; # fab387
base0A = "f9e2af"; # f9e2af
base0B = "a6e3a1"; # a6e3a1
base0C = "94e2d5"; # 94e2d5
base0D = "89b4fa"; # 89b4fa
base0E = "cba6f7"; # cba6f7
base0F = "f2cdcd"; # f2cdcd
#base00 = "1d2021"; #1d2021
#base01 = "3c3836"; #3c3836
#base02 = "504945"; #504945
#base03 = "665c54"; #665c54
#base04 = "bdae93"; #bdae93
#base05 = "d5c4a1"; #d5c4a1
#base06 = "ebdbb2"; #ebdbb2
#base07 = "fbf1c7"; #fbf1c7
#base08 = "fb4934"; #fb4934
#base09 = "fe8019"; #fe8019
#base0A = "fabd2f"; #fabd2f
#base0B = "b8bb26"; #b8bb26
#base0C = "8ec07c"; #8ec07c
#base0D = "83a598"; #83a598
#base0E = "d3869b"; #d3869b
#base0F = "d65d0e"; #d65d0e
};
wallpaper = inputs.nix-wallpaper.packages.${pkgs.stdenv.hostPlatform.system}.default.override {
width = 2560;
height = 1440;
backgroundColor = "#${palette.base00}";
logoColors = {
color0 = "#${palette.base0D}";
color1 = "#${palette.base0D}";
color2 = "#${palette.base0D}";
color3 = "#${palette.base0D}";
color4 = "#${palette.base0D}";
color5 = "#${palette.base0D}";
};
};
in
{
enable = true;
image = "${wallpaper}/share/wallpapers/nixos-wallpaper.png";
polarity = "dark";
targets.waybar.enable = false;
targets.zathura.enable = false;
targets.vesktop.enable = false;
targets.zen-browser.enable = false;
fonts =
let
font = {
package = pkgs.nerd-fonts.caskaydia-cove;
name = "CaskaydiaCove Nerd Font";
};
in
{
monospace = font;
serif = font;
sansSerif = font;
emoji = font;
};
base16Scheme.palette = palette;
};
}
+14
View File
@@ -0,0 +1,14 @@
{...}:
{
xdg.mimeApps = {
enable = true;
defaultApplications = {
"application/pdf" = [ "org.pwmt.zathura.desktop" ];
"application/json" = [ "zen-beta.desktop" ];
"text/html" = [ "zen-beta.desktop" ];
"text/xml" = [ "zen-beta.desktop" ];
"x-scheme-handler/http" = [ "zen-beta.desktop" ];
"x-scheme-handler/https" = [ "zen-beta.desktop" ];
};
};
}