1
0
Fork 0
mirror of https://git.sr.ht/~azikx/wyswort synced 2024-10-30 03:16:20 +00:00

update 

This commit is contained in:
azikx 2024-10-12 18:43:57 +09:00
commit 2a9b9b5fb7
145 changed files with 10238 additions and 0 deletions

21
LICENSE Normal file
View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2021 Parasrah
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

67
README.md Normal file
View file

@ -0,0 +1,67 @@
<div align="center">
<h1>❄️【 NIXOS DOTFILES 】❄️</h1>
</div>
<details>
<summary>Software</summary>
| Name | Desciption |
| ------------- | ------------- |
| Desktop utilites |
| [hyprland](https://github.com/hyprwm/hyprland) | Best window manager |
| [kitty](https://github.com/kovidgoyal/kitty) | Very good terminal with image preview |
| [foot](https://codeberg.org/dnkl/foot) | Simplest terminal |
| [grimblast](https://github.com/hyprwm/contrib/tree/main/grimblast) | Screenshoter |
| [nwg-drawer](https://github.com/nwg-piotr/nwg-drawer) | Gnome-like launcher |
| [waybar](https://github.com/Alexays/Waybar) | Bar for waylands |
| CLI utilites |
| [fish](https://github.com/fish-shell/fish-shell) | Just working shell |
| [fastfetch](https://github.com/fastfetch-cli/fastfetch) | Fetch for be cool rices |
| [yazi](https://github.com/sxyazi/yazi) | Rusted file-manager great!!! |
| [joshuto](https://github.com/kamiyaa/joshuto) | Rusted file-manager |
| [helix](https://github.com/helix-editor/helix) | Best text editor with vi-like keys |
| [micro](https://github.com/zyedidia/micro) | Simplest fucking text editor |
| [cava](https://github.com/karlstav/cava) | Sound visualizer |
| [eza](https://github.com/eza-community/eza) | Rusted ls with icons |
| [lutgen](https://github.com/ozwaldorf/lutgen-rs) | Rusted lut |
| [nvtop](https://github.com/Syllo/nvtop) | Top for GPU |
| [btop](https://github.com/aristocratos/btop) | Very informated top |
| [doas](https://wiki.archlinux.org/title/Doas) | sudo from bsd systems |
| GUI utilites |
| [firefox](https://github.com/mozilla) | Customizable browser |
| [bottles](https://github.com/bottlesdevs/Bottles) | Wine launcher |
| [nemo](https://github.com/linuxmint/nemo) | File manager from Cinnamon |
| [obsidian](https://obsidian.md) | Markdown |
| [onlyoffice](https://github.com/ONLYOFFICE/DesktopEditors) | Office suite |
| [prismlauncher](https://github.com/PrismLauncher/PrismLauncher) | Fuckm all my homies plays this shit man |
| [vesktop](https://github.com/Vencord/Vesktop) | Wayland Discord client |
| [qbittorrent](https://github.com/qbittorrent/qBittorrent) | Torrents))))) hahah)))) |
| [ayugram](https://github.com/AyuGram/AyuGramDesktop) | Telegram client with ghost mode |
| [file-Roller](https://gitlab.gnome.org/GNOME/file-roller) | Archiver |
| [mpv](https://github.com/mpv-player/mpv) | Simplest video player |
| [anime4k](https://github.com/bloc97/Anime4K) | Anime upscaler |
| [swayimg](https://github.com/artemsen/swayimg) | Simple image viewer |
| Misc |
| [nix-tree](https://github.com/utdemir/nix-tree) | Tree for your generations&derivations |
| [prefetch-github](https://github.com/seppeljordan/nix-prefetch-github) | Tool for fetching github repo |
| [tenki](https://github.com/ckaznable/tenki) | TUI clock with effects |
| [confetty](https://github.com/maaslalani/confetty) | Confetty and fireworks in terminal |
| [jetbrains](https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/JetBrainsMono) | Nerded JetBrains |
- IDK WHAT ALSO DUDES
</details>
## [WALLPAPERS](https://git.sr.ht/~azikx/wallpapers) & [USERSTYLES](https://git.sr.ht/~azikx/userstyles)
![aye](https://git.sr.ht/~azikx/wallpapers/blob/main/dotfiles/fetch.png)
![ауе](https://git.sr.ht/~azikx/wallpapers/blob/main/dotfiles/furryfox.png)
![ауе](https://git.sr.ht/~azikx/wallpapers/blob/main/dotfiles/top.png)
![ауе](https://git.sr.ht/~azikx/wallpapers/blob/main/dotfiles/yazi.png)
#### ENGLISH OR SPANISH??? WHOEVER MOVES IS GAY)))))))
#### THANKS FOR [hezaki](https://codeberg.org/Hezaki/Touka/), HONORED BROTHER, FOR THE EMPEROR

1362
flake.lock Normal file

File diff suppressed because it is too large Load diff

85
flake.nix Normal file
View file

@ -0,0 +1,85 @@
{
outputs = { self, nixpkgs, home-manager, ... }@inputs:
let system = "x86_64-linux"; in
{
nixosConfigurations = {
wysvort = nixpkgs.lib.nixosSystem {
specialArgs = { inherit system inputs; };
modules = [ ./host ];
};
};
homeConfigurations = {
megamozg = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = { inherit inputs; };
modules = [ ./home ];
};
};
};
inputs = {
# REPOSITORIES NIXPKGS
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
nur.url = "github:nix-community/NUR";
# ONE LINE SOFTWARE
ayugram-desktop.url = "github:kaeeraa/ayugram-desktop/release?submodules=1";
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
flake-parts.url = "github:hercules-ci/flake-parts";
stylix.url = "github:danth/stylix";
yazi.url = "github:sxyazi/yazi";
# TWO LINE SOFTWARE
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
anyrun = {
url = "github:anyrun-org/anyrun";
inputs.nixpkgs.follows = "nixpkgs";
};
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
spicetify-nix = {
url = "github:Gerg-L/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
firefox-addons = {
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs";
};
auto-cpufreq = {
url = "github:AdnanHodzic/auto-cpufreq";
inputs.nixpkgs.follows = "nixpkgs";
};
# HYPRlAND
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
};
Hyprspace = {
url = "github:KZDKM/Hyprspace";
inputs.hyprland.follows = "hyprland";
};
hyprgrass = {
url = "github:horriblename/hyprgrass";
inputs.hyprland.follows = "hyprland";
};
hyprfocus = {
url = "github:pyt0xic/hyprfocus";
inputs.hyprland.follows = "hyprland";
};
nix-wallpapers = {
type = "github";
owner = "axax-loll";
repo = "nix-wallpapers";
flake = false;
};
};
}

18
home/default.nix Normal file
View file

@ -0,0 +1,18 @@
{
imports = [
./window-managers
./programs
./themes
];
home = {
username = "megamozg";
homeDirectory = "/home/megamozg";
stateVersion = "24.05";
};
manual = {
html.enable = false;
json.enable = false;
manpages.enable = false;
};
}

View file

@ -0,0 +1,12 @@
{ ... }:
{
programs.btop = {
enable = true;
settings = {
color_theme = "TTY";
theme_background = true;
vim_keys = true;
rounded_corners = true;
};
};
}

View file

@ -0,0 +1,23 @@
{ config, ... }:
{
programs.cava = {
enable = true;
settings = {
general = {
# framerate = 24;
# bars = 0;
# bar_width = 1;
# bar_spacing = 1;
};
color = with config.lib.stylix.colors; {
gradient = 1;
gradient_color_1 = "'#${base0E}'";
gradient_color_2 = "'#${base0D}'";
gradient_color_3 = "'#${base0C}'";
gradient_color_4 = "'#${base0B}'";
gradient_color_5 = "'#${base0A}'";
gradient_color_6 = "'#${base09}'";
};
};
};
}

View file

@ -0,0 +1,17 @@
{
imports = [
./pkgs.nix
./eza
./fzf
./fastfetch
./zoxide
./cava
./btop
./micro
./git
./helix
./yazi
./joshuto
];
}

View file

@ -0,0 +1,10 @@
{ ... }:
{
programs.eza = {
enable = true;
icons = true;
extraOptions = [
"--group-directories-first"
];
};
}

View file

@ -0,0 +1,69 @@
{
programs.fastfetch = {
enable = true;
settings = {
logo = {
type = "builtin";
source = "nixos_small";
padding = {
left = 1;
right = 2;
top = 1;
};
color = {
"1" = "cyan";
"2" = "blue";
};
};
display = {
separator = ": ";
color = {
keys = "cyan";
title = "blue";
};
size = {
ndigits = 2;
maxPrefix = "GB";
};
};
modules = [
{
type = "title";
color = {
user = "cyan";
at = "cyan";
host = "cyan";
};
}
{
type = "uptime";
key = "UPT ";
format = "{2} hours, {3} mins";
}
{
type = "packages";
key = "PKG ";
}
{
type = "shell";
key = "SHL ";
format = "{6} {4}";
}
{
type = "wm";
key = "DWM ";
format = "{2} / {3}";
}
{
type = "memory";
key = "MEM ";
format = "{} / {}";
}
{ type = "break"; }
{
type = "colors";
}
];
};
};
}

View file

@ -0,0 +1,10 @@
{ ... }:
{
programs.fzf = {
enable = true;
enableFishIntegration = true;
# defaultOptions = [
# "--margin 1"
# ];
};
}

View file

@ -0,0 +1,13 @@
{ ... }:
{
programs.git = {
enable = true;
userName = "azikx";
userEmail = "irongidra@gmail.com";
extraConfig = {
color.ui = true;
init.defaultBranch = "main";
safe.directory = "/etc/nixos";
};
};
}

View file

@ -0,0 +1,49 @@
{ ... }:
{
imports = [ ./theme.nix ./health.nix ];
programs.helix = {
enable = true;
defaultEditor = true;
settings = {
theme = "themo";
editor = {
line-number = "relative";
mouse = true;
cursorline = true;
auto-completion = true;
completion-replace = true;
auto-info = true;
auto-pairs = true;
true-color = true;
color-modes = true;
bufferline = "multiple";
indent-guides = {
render = true;
character = "»";
};
cursor-shape = {
insert = "bar";
normal = "block";
select = "underline";
};
soft-wrap = {
enable = true;
max-wrap = 25;
wrap-indicator = " ";
};
statusline = {
left = ["mode" "spinner" "file-name" "read-only-indicator"];
center = [];
right = ["file-type" "separator" "spacer" "position-percentage" "position" "separator" "total-line-numbers"];
separator = "|";
mode.normal = "NORMAL";
mode.insert = "INSERT";
mode.select = "SELECT";
};
file-picker = {
hidden = false;
};
};
};
};
}

View file

@ -0,0 +1,15 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
nil
marksman
markdown-oxide
yaml-language-server
vscode-langservers-extracted
# bash-language-server
rust-analyzer
python312Packages.python-lsp-server
lua-language-server
taplo
];
}

View file

@ -0,0 +1,96 @@
{ config, lib, ... }:
{
programs.helix.themes = with config.lib.stylix.colors; lib.mkForce {
themo = let
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}";
in {
"attributes" = BASE09;
"comment" = { fg = BASE03; modifiers = [ "italic" ]; };
"constant" = BASE09;
"constant.character.escape" = BASE0C;
"constant.numeric" = BASE09;
"constructor" = BASE0D;
"debug" = BASE03;
"diagnostic" = { modifiers = [ "underlined" ]; };
"diff.delta" = BASE09;
"diff.minus" = BASE08;
"diff.plus" = BASE0B;
"error" = BASE08;
"function" = BASE0D;
"hint" = BASE03;
"info" = BASE0D;
"keyword" = BASE0E;
"label" = BASE0E;
"namespace" = BASE0E;
"operator" = BASE05;
"special" = BASE0D;
"string" = BASE0B;
"type" = BASE0A;
"variable" = BASE08;
"variable.other.member" = BASE0B;
"warning" = BASE09;
"markup.bold" = { fg = BASE0A; modifiers = [ "bold" ]; };
"markup.heading" = BASE0D;
"markup.italic" = { fg = BASE0E; modifiers = [ "italic" ]; };
"markup.link.text" = BASE08;
"markup.link.url" = { fg = BASE09; modifiers = [ "underlined" "italic" ]; };
"markup.list" = BASE08;
"markup.quote" = BASE0C;
"markup.raw" = BASE0B;
"markup.strikethrough" = { modifiers = [ "crossed_out" ]; };
"diagnostic.hint" = { underline = { style = "curl"; }; };
"diagnostic.info" = { underline = { style = "curl"; }; };
"diagnostic.warning" = { underline = { style = "curl"; }; };
"diagnostic.error" = { underline = { style = "curl"; }; };
"ui.background" = { bg = BASE00; };
"ui.bufferline.active" = { fg = BASE00; bg = BASE03; modifiers = [ "bold" ]; };
"ui.bufferline" = { fg = BASE04; bg = BASE00; };
"ui.cursor" = { fg = BASE0A; modifiers = [ "reversed" ]; };
"ui.cursor.insert" = { fg = BASE0A; modifiers = [ "reversed" ]; };
"ui.cursorline.primary" = { fg = BASE05; bg = BASE01; };
"ui.cursor.match" = { fg = BASE0A; modifiers = [ "reversed" ]; };
"ui.cursor.select" = { fg = BASE0A; modifiers = [ "reversed" ]; };
"ui.gutter" = { bg = BASE00; };
"ui.help" = { fg = BASE06; bg = BASE01; };
"ui.linenr" = { fg = BASE03; bg = BASE00; };
"ui.linenr.selected" = { fg = BASE04; bg = BASE01; modifiers = [ "bold" ]; };
"ui.menu" = { fg = BASE05; bg = BASE01; };
"ui.menu.scroll" = { fg = BASE03; bg = BASE01; };
"ui.menu.selected" = { fg = BASE01; bg = BASE04; };
"ui.popup" = { bg = BASE01; };
"ui.selection" = { bg = BASE02; };
"ui.selection.primary" = { bg = BASE02; };
"ui.statusline" = { fg = BASE04; bg = BASE01; };
"ui.statusline.inactive" = { bg = BASE01; fg = BASE03; modifiers = [ "bold" ]; };
"ui.statusline.insert" = { fg = BASE00; bg = BASE0B; modifiers = [ "bold" ]; };
"ui.statusline.normal" = { fg = BASE00; bg = BASE0D; modifiers = [ "bold" ]; };
"ui.statusline.select" = { fg = BASE00; bg = BASE0F; modifiers = [ "bold" ]; };
"ui.text" = BASE05;
"ui.text.focus" = BASE05;
"ui.virtual.indent-guide" = { fg = BASE03; };
"ui.virtual.wrap" = { fg = BASE03; };
"ui.virtual.inlay-hint" = { fg = BASE03; };
"ui.virtual.ruler" = { bg = BASE01; };
"ui.virtual.jump-label" = { fg = BASE0A; modifiers = [ "bold" ]; };
"ui.window" = { bg = BASE01; };
};
};
}

View file

@ -0,0 +1,150 @@
{ ... }:
{
programs.joshuto.keymap = {
default_view = {
keymap = [
{ keys = ["escape"]; commands = ["escape"] };
{ keys = ["t"; "a"]; commands = ["new_tab"] };
{ keys = ["t"; "c"]; commands = ["new_tab --cursor"] };
{ keys = ["t"; "A"]; commands = ["new_tab --current"] };
{ keys = ["t"; "q"]; commands = ["close_tab"] };
{ keys = ["q"]; commands = ["close_tab"] };
{ keys = ["ctrl+c"]; commands = ["quit"] };
{ keys = ["Q"]; commands = ["quit --output-current-directory"] };
{ keys = ["R"]; commands = ["reload_dirlist"] };
{ keys = ["z"; "r"]; commands = ["reload_dirlist"] };
{ keys = ["z"; "z"]; commands = ["zi"] };
{ keys = ["z"; "h"]; commands = ["toggle_hidden"] };
{ keys = ["z"; "f"]; commands = ["flat 2"] };
{ keys = ["z"; "F"]; commands = ["flat 0"] };
{ keys = ["backspace"]; commands = ["toggle_hidden"] };
{ keys = ["t"; "s"]; commands = ["tab_switch 1"] };
{ keys = ["t"; "S"]; commands = ["tab_switch -1"] };
{ keys = ["\t"]; commands = ["tab_switch 1"] };
{ keys = ["backtab"]; commands = ["tab_switch -1"] };
{ keys = ["alt+1"]; commands = ["tab_switch_index 1"] };
{ keys = ["alt+2"]; commands = ["tab_switch_index 2"] };
{ keys = ["alt+3"]; commands = ["tab_switch_index 3"] };
{ keys = ["alt+4"]; commands = ["tab_switch_index 4"] };
{ keys = ["alt+5"]; commands = ["tab_switch_index 5"] };
{ keys = ["1"]; commands = ["numbered_command 1"] };
{ keys = ["2"]; commands = ["numbered_command 2"] };
{ keys = ["3"]; commands = ["numbered_command 3"] };
{ keys = ["4"]; commands = ["numbered_command 4"] };
{ keys = ["5"]; commands = ["numbered_command 5"] };
{ keys = ["6"]; commands = ["numbered_command 6"] };
{ keys = ["7"]; commands = ["numbered_command 7"] };
{ keys = ["8"]; commands = ["numbered_command 8"] };
{ keys = ["9"]; commands = ["numbered_command 9"] };
# arrow keys
{ keys = ["arrow_up"]; commands = ["cursor_move_up"] };
{ keys = ["arrow_down"]; commands = ["cursor_move_down"] };
{ keys = ["arrow_left"]; commands = ["cd .."] };
{ keys = ["arrow_right"]; commands = ["open"] };
{ keys = ["\n"]; commands = ["open"] };
{ keys = ["home"]; commands = ["cursor_move_home"] };
{ keys = ["end"]; commands = ["cursor_move_end"] };
{ keys = ["page_up"]; commands = ["cursor_move_page_up"] };
{ keys = ["page_down"]; commands = ["cursor_move_page_down"] };
{ keys = ["ctrl+u"]; commands = ["cursor_move_page_up 0.5"] };
{ keys = ["ctrl+d"]; commands = ["cursor_move_page_down 0.5"] };
{ keys = ["ctrl+b"]; commands = ["cursor_move_page_up"] };
{ keys = ["ctrl+f"]; commands = ["cursor_move_page_down"] };
# vim-like keybindings
{ keys = ["j"]; commands = ["cursor_move_down"] };
{ keys = ["k"]; commands = ["cursor_move_up"] };
{ keys = ["h"]; commands = ["z"] };
{ keys = ["l"]; commands = ["open"] };
{ keys = ["g"; "g"]; commands = ["cursor_move_home"] };
{ keys = ["G"]; commands = ["cursor_move_end"] };
{ keys = ["e"]; commands = ["open_with"] };
{ keys = ["H"]; commands = ["cursor_move_page_home"] };
{ keys = ["L"]; commands = ["cursor_move_page_middle"] };
{ keys = ["M"]; commands = ["cursor_move_page_end"] };
{ keys = ["["]; commands = ["parent_cursor_move_up"] };
{ keys = ["]"]; commands = ["parent_cursor_move_down"] };
{ keys = ["c"; "d"]; commands = [":cd "] };
{ keys = ["x"; "x"]; commands = ["cut_files"] };
{ keys = ["c"; "c"]; commands = ["copy_files"] };
{ keys = ["c"; "n"]; commands = ["copy_filename"] };
{ keys = ["c"; "e"]; commands = ["copy_filename_without_extension"] };
{ keys = ["c"; "f"]; commands = ["copy_filepath"] };
{ keys = ["c"; "F"]; commands = ["copy_filepath --all-selected=true"] };
{ keys = ["c"; "p"]; commands = ["copy_dirpath"] };
{ keys = ["p"; "l"]; commands = ["symlink_files --relative=false"] };
{ keys = ["p"; "L"]; commands = ["symlink_files --relative=true"] };
{ keys = ["delete"]; commands = ["delete_files"] };
{ keys = ["d"; "d"]; commands = ["delete_files --noconfirm"] };
{ keys = ["d"; "D"]; commands = ["delete_files --noconfirm --permanently"] };
{ keys = ["v"; "v"]; commands = ["paste_files"] };
{ keys = ["v"; "V"]; commands = ["paste_files --overwrite=true"] };
{ keys = ["r"; "r"]; commands = ["rename_append"] };
{ keys = ["r"; "R"]; commands = ["rename_prepend"] };
{ keys = ["r"; "c"]; commands = [":rename "] };
{ keys = ["m"; "f"]; commands = [":touch "] };
{ keys = ["m"; "d"]; commands = [":mkdir "] };
{ keys = [" "]; commands = ["select --toggle=true"] };
{ keys = ["v"; "a"]; commands = ["select --all=true --toggle=true"] };
{ keys = ["v"; "i"]; commands = ["toggle_visual"] };
{ keys = ["w"]; commands = ["show_tasks --exit-key=w"] };
{ keys = ["r"; "b"]; commands = ["bulk_rename"] };
{ keys = ["="]; commands = ["set_mode"] };
{ keys = [":"]; commands = [":"] };
{ keys = [";"]; commands = [":"] };
{ keys = ["'"]; commands = [":shell "] };
{ keys = ["/"]; commands = [":search "] };
{ keys = ["|"]; commands = [":search_inc "] };
{ keys = ["\\"]; commands = [":search_glob "] };
{ keys = ["f"; "s"]; commands = ["search_fzf"] };
{ keys = ["f"; "d"]; commands = ["subdir_fzf"] };
{ keys = ["n"]; commands = ["search_next"] };
{ keys = ["N"]; commands = ["search_prev"] };
{ keys = ["s"; "r"]; commands = ["sort reverse"] };
{ keys = ["s"; "l"]; commands = ["sort lexical"] };
{ keys = ["s"; "L"]; commands = ["sort lexical --reverse=true"] };
{ keys = ["s"; "m"]; commands = ["sort mtime"] };
{ keys = ["s"; "M"]; commands = ["sort mtime --reverse=true"] };
{ keys = ["s"; "n"]; commands = ["sort natural"] };
{ keys = ["s"; "N"]; commands = ["sort natural --reverse=true"] };
{ keys = ["s"; "s"]; commands = ["sort size"] };
{ keys = ["s"; "S"]; commands = ["sort size --reverse=true"] };
{ keys = ["s"; "e"]; commands = ["sort ext"] };
{ keys = ["s"; "E"]; commands = ["sort ext --reverse=true"] };
{ keys = ["m"; "s"]; commands = ["linemode size"] };
{ keys = ["m"; "m"]; commands = ["linemode mtime"] };
{ keys = ["m"; "M"]; commands = ["linemode size | mtime"] };
{ keys = ["m"; "u"]; commands = ["linemode user"] };
{ keys = ["m"; "U"]; commands = ["linemode user | group"] };
{ keys = ["m"; "p"]; commands = ["linemode perm"] };
{ keys = ["g"; "r"]; commands = ["cd /"] };
{ keys = ["g"; "c"]; commands = ["cd ~/.config"] };
{ keys = ["g"; "w"]; commands = ["cd ~/.walls"] };
{ keys = ["g"; "d"]; commands = ["cd ~/Загрузки"] };
{ keys = ["g"; "h"]; commands = ["cd ~/"] };
{ keys = ["?"]; commands = ["help"] };
];
};
};
}

View file

@ -0,0 +1,43 @@
{ pkgs, ... }:
{
imports = [ ./mime.nix ./theme.nix ./binds.nix ];
programs.joshuto = {
enable = true;
settings = {
numbered_command = false;
mouse_support = true;
focus_on_create = true;
use_trash = true;
watch_files = true;
xdg_open = true;
xdg_open_fork = true;
# case_insensitive_ext = false;
zoxide_update = true;
display = {
mode = "default";
automatically_count_files = true;
collapse_preview = true;
column_ratio = [1 4 4];
scroll_offset = 6;
show_borders = false;
show_hidden = false;
show_icons = true;
# line_number_style = "relative";
tilde_in_titlebar = false;
linemode = "size";
sort = {
sort_method = "natural";
case_sensitive = false;
directories_first = true;
reverse = false;
};
};
preview = {
max_preview_size = 100000000;
use_xdg_thumbs = true;
xdg_thumb_size = "xlarge";
};
tab.home_page = "inherit";
};
};
}

View file

@ -0,0 +1,265 @@
{ ... }:
{
programs.joshuto.mimetype = {
class = {
audio_default = [
{ command = "mpv"; args = [ "--" ]; }
{ command = "mediainfo"; confirm_exit = true; }
];
image_default = [
{ command = "swayimg"; args = [ "-f" ]; fork = true; silent = true; }
];
video_default = [
{ command = "mpv"; args = [ "--" ]; fork = true; silent = true; }
{ command = "mediainfo"; confirm_exit = true; }
];
text_default = [
{ command = "hx"; }
{ command = "bat"; args = [ "--paging=always" ]; }
];
blender_default = [
{ command = "blender"; fork = true; silent = true; }
];
reader_default = [
{ command = "libreoffice"; fork = true; silent = true; }
];
libreoffice_default = [
{ command = "libreoffice"; fork = true; silent = true; }
];
};
extension = {
## image formats
avif."inherit" = "image_default";
bmp."inherit" = "image_default";
gif."inherit" = "image_default";
heic."inherit" = "image_default";
jpeg."inherit" = "image_default";
jpe."inherit" = "image_default";
jpg."inherit" = "image_default";
jxl."inherit" = "image_default";
pgm."inherit" = "image_default";
png."inherit" = "image_default";
ppm."inherit" = "image_default";
webp."inherit" = "image_default";
eps.app_list = [
{ command = "inkview"; fork = true; silent = true; }
{ command = "inkscape"; fork = true; silent = true; }
];
svg.app_list = [
{ command = "inkview"; fork = true; silent = true; }
{ command = "inkscape"; fork = true; silent = true; }
];
tiff.app_list = [
{ command = "qimgv"; fork = true; silent = true; }
{ command = "krita"; fork = true; silent = true; }
];
## audio formats
aac."inherit" = "audio_default";
ac3."inherit" = "audio_default";
aiff."inherit" = "audio_default";
ape."inherit" = "audio_default";
dts."inherit" = "audio_default";
flac."inherit" = "audio_default";
m4a."inherit" = "audio_default";
mp3."inherit" = "audio_default";
oga."inherit" = "audio_default";
ogg."inherit" = "audio_default";
opus."inherit" = "audio_default";
wav."inherit" = "audio_default";
wv."inherit" = "audio_default";
## video formats
avi."inherit" = "video_default";
av1."inherit" = "video_default";
flv."inherit" = "video_default";
mkv."inherit" = "video_default";
m4v."inherit" = "video_default";
mov."inherit" = "video_default";
mp4."inherit" = "video_default";
ts."inherit" = "video_default";
webm."inherit" = "video_default";
wmv."inherit" = "video_default";
## text formats
bib."inherit" = "text_default";
build."inherit" = "text_default";
c."inherit" = "text_default";
cfg."inherit" = "text_default";
cmake."inherit" = "text_default";
conf."inherit" = "text_default";
cpp."inherit" = "text_default";
css."inherit" = "text_default";
csv."inherit" = "text_default";
cu."inherit" = "text_default";
desktop."inherit" = "text_default";
ebuild."inherit" = "text_default";
eex."inherit" = "text_default";
env."inherit" = "text_default";
ex."inherit" = "text_default";
exs."inherit" = "text_default";
go."inherit" = "text_default";
gpl."inherit" = "text_default";
h."inherit" = "text_default";
hpp."inherit" = "text_default";
hs."inherit" = "text_default";
ini."inherit" = "text_default";
ipynb."inherit" = "text_default";
java."inherit" = "text_default";
jl."inherit" = "text_default";
js."inherit" = "text_default";
json."inherit" = "text_default";
jsonc."inherit" = "text_default";
kdl."inherit" = "text_default";
kt."inherit" = "text_default";
kvconfig."inherit" = "text_default";
lock."inherit" = "text_default";
log."inherit" = "text_default";
lua."inherit" = "text_default";
md."inherit" = "text_default";
micro."inherit" = "text_default";
ninja."inherit" = "text_default";
nix."inherit" = "text_default";
norg."inherit" = "text_default";
org."inherit" = "text_default";
po."inherit" = "text_default";
pot."inherit" = "text_default";
py."inherit" = "text_default";
qmd."inherit" = "text_default";
rasi."inherit" = "text_default";
rkt."inherit" = "text_default";
rktd."inherit" = "text_default";
rproj."inherit" = "text_default";
rs."inherit" = "text_default";
rstheme."inherit" = "text_default";
scm."inherit" = "text_default";
scss."inherit" = "text_default";
service."inherit" = "text_default";
sh."inherit" = "text_default";
socket."inherit" = "text_default";
sql."inherit" = "text_default";
srt."inherit" = "text_default";
svelte."inherit" = "text_default";
toml."inherit" = "text_default";
tsx."inherit" = "text_default";
txt."inherit" = "text_default";
vim."inherit" = "text_default";
xml."inherit" = "text_default";
yaml."inherit" = "text_default";
yml."inherit" = "text_default";
## web formats
html.app_list = [
{ command = "qutebrowser"; fork = true; silent = true; }
{ command = "hx"; }
{ command = "bat"; args = [ "--paging=always" ]; }
];
## archive formats
"7z".app_list = [
{ command = "7z"; args = [ "x" ]; confirm_exit = true; }
{ command = "file-roller"; fork = true; silent = true; }
];
bz2.app_list = [
{ command = "tar"; args = [ "-xvjf" ]; confirm_exit = true; }
{ command = "file-roller"; fork = true; silent = true; }
];
gz.app_list = [
{ command = "tar"; args = [ "-xvzf" ]; confirm_exit = true; }
{ command = "file-roller"; fork = true; silent = true; }
];
tar.app_list = [
{ command = "tar"; args = [ "-xvf" ]; confirm_exit = true; }
{ command = "file-roller"; fork = true; silent = true; }
];
tgz.app_list = [
{ command = "tar"; args = [ "-xvzf" ]; confirm_exit = true; }
{ command = "file-roller"; fork = true; silent = true; }
];
rar.app_list = [
{ command = "unrar"; args = [ "x" ]; confirm_exit = true; }
{ command = "file-roller"; fork = true; silent = true; }
];
xz.app_list = [
{ command = "tar"; args = [ "-xvJf" ]; confirm_exit = true; }
{ command = "file-roller"; fork = true; silent = true; }
];
zip.app_list = [
{ command = "unzip"; confirm_exit = true; }
{ command = "file-roller"; fork = true; silent = true; }
];
## misc formats
aup.app_list = [
{ command = "audacity"; fork = true; silent = true; }
];
m3u.app_list = [
{ command = "hx"; }
{ command = "mpv"; silent = true; }
{ command = "bat"; confirm_exit = true; }
];
## document
odt."inherit" = "libreoffice_default";
odf."inherit" = "libreoffice_default";
ods."inherit" = "libreoffice_default";
odp."inherit" = "libreoffice_default";
doc."inherit" = "libreoffice_default";
docx."inherit" = "libreoffice_default";
xls."inherit" = "libreoffice_default";
xlsx."inherit" = "libreoffice_default";
ppt."inherit" = "libreoffice_default";
pptx."inherit" = "libreoffice_default";
epub."inherit" = "reader_default";
pdf."inherit" = "reader_default";
## 3d files
blend."inherit" = "blender_default";
fbx."inherit" = "blender_default";
glb."inherit" = "blender_default";
gltf."inherit" = "blender_default";
obj."inherit" = "blender_default";
stl."inherit" = "blender_default";
kra.app_list = [
{ command = "krita"; fork = true; silent = true; }
];
kdenlive.app_list = [
{ command = "kdenlive"; fork = true; silent = true; }
];
tex.app_list = [
{ command = "hx"; }
{ command = "bat"; confirm_exit = true; }
{ command = "pdflatex"; silent = true; }
];
torrent.app_list = [
{ command = "transmission-gtk"; fork = true; silent = true; }
];
};
## application/octet-stream
application.subtype.octet-stream = {
"inherit" = "video_default";
};
## text/*
text = {
"inherit" = "text_default";
};
video = {
"inherit" = "video_default";
};
};
}

View file

@ -0,0 +1,76 @@
{ ... }:
{
programs.joshuto.theme = {
tabs.styles = {
active = {
bg = "none";
fg = "blue";
bold = true;
};
inactive = {
bg = "none";
fg = "gray";
bold = true;
};
scroll_front = {
fg = "yellow";
bold = true;
};
scroll_back = {
fg = "yellow";
bold = true;
};
};
selection = {
fg = "yellow";
bold = true;
prefix = " ";
};
visual_mode_selection = {
fg = "light_red";
bold = true;
prefix = "v ";
};
regular = {
fg = "white";
};
directory = {
fg = "light_blue";
bold = true;
};
link = {
fg = "cyan";
bold = true;
};
socket = {
fg = "light_magenta";
bold = true;
};
executable = {
fg = "light_green";
bold = true;
};
link_invalid = {
fg = "red";
bold = true;
};
tabs.chars = {
active_prefix = "[";
active_postfix = "]";
inactive_prefix = " ";
inactive_postfix = "";
divider = " | ";
scroll_front_prefix = "";
scroll_front_postfix = "";
scroll_front_prestring = "« ";
scroll_front_poststring = " ";
scroll_back_prefix = "";
scroll_back_postfix = "";
scroll_back_prestring = " ";
scroll_back_poststring = " »";
padding_prefix = " ";
padding_postfix = " ";
padding_fill = " ";
};
};
}

View file

@ -0,0 +1,150 @@
{ ... }:
{
programs.joshuto.keymap = {
default_view = {
keymap = [
{ keys = ["escape"]; commands = ["escape"] };
{ keys = ["t"; "a"]; commands = ["new_tab"] };
{ keys = ["t"; "c"]; commands = ["new_tab --cursor"] };
{ keys = ["t"; "A"]; commands = ["new_tab --current"] };
{ keys = ["t"; "q"]; commands = ["close_tab"] };
{ keys = ["q"]; commands = ["close_tab"] };
{ keys = ["ctrl+c"]; commands = ["quit"] };
{ keys = ["Q"]; commands = ["quit --output-current-directory"] };
{ keys = ["R"]; commands = ["reload_dirlist"] };
{ keys = ["z"; "r"]; commands = ["reload_dirlist"] };
{ keys = ["z"; "z"]; commands = ["zi"] };
{ keys = ["z"; "h"]; commands = ["toggle_hidden"] };
{ keys = ["z"; "f"]; commands = ["flat 2"] };
{ keys = ["z"; "F"]; commands = ["flat 0"] };
{ keys = ["backspace"]; commands = ["toggle_hidden"] };
{ keys = ["t"; "s"]; commands = ["tab_switch 1"] };
{ keys = ["t"; "S"]; commands = ["tab_switch -1"] };
{ keys = ["\t"]; commands = ["tab_switch 1"] };
{ keys = ["backtab"]; commands = ["tab_switch -1"] };
{ keys = ["alt+1"]; commands = ["tab_switch_index 1"] };
{ keys = ["alt+2"]; commands = ["tab_switch_index 2"] };
{ keys = ["alt+3"]; commands = ["tab_switch_index 3"] };
{ keys = ["alt+4"]; commands = ["tab_switch_index 4"] };
{ keys = ["alt+5"]; commands = ["tab_switch_index 5"] };
{ keys = ["1"]; commands = ["numbered_command 1"] };
{ keys = ["2"]; commands = ["numbered_command 2"] };
{ keys = ["3"]; commands = ["numbered_command 3"] };
{ keys = ["4"]; commands = ["numbered_command 4"] };
{ keys = ["5"]; commands = ["numbered_command 5"] };
{ keys = ["6"]; commands = ["numbered_command 6"] };
{ keys = ["7"]; commands = ["numbered_command 7"] };
{ keys = ["8"]; commands = ["numbered_command 8"] };
{ keys = ["9"]; commands = ["numbered_command 9"] };
# arrow keys
{ keys = ["arrow_up"]; commands = ["cursor_move_up"] };
{ keys = ["arrow_down"]; commands = ["cursor_move_down"] };
{ keys = ["arrow_left"]; commands = ["cd .."] };
{ keys = ["arrow_right"]; commands = ["open"] };
{ keys = ["\n"]; commands = ["open"] };
{ keys = ["home"]; commands = ["cursor_move_home"] };
{ keys = ["end"]; commands = ["cursor_move_end"] };
{ keys = ["page_up"]; commands = ["cursor_move_page_up"] };
{ keys = ["page_down"]; commands = ["cursor_move_page_down"] };
{ keys = ["ctrl+u"]; commands = ["cursor_move_page_up 0.5"] };
{ keys = ["ctrl+d"]; commands = ["cursor_move_page_down 0.5"] };
{ keys = ["ctrl+b"]; commands = ["cursor_move_page_up"] };
{ keys = ["ctrl+f"]; commands = ["cursor_move_page_down"] };
# vim-like keybindings
{ keys = ["j"]; commands = ["cursor_move_down"] };
{ keys = ["k"]; commands = ["cursor_move_up"] };
{ keys = ["h"]; commands = ["z"] };
{ keys = ["l"]; commands = ["open"] };
{ keys = ["g"; "g"]; commands = ["cursor_move_home"] };
{ keys = ["G"]; commands = ["cursor_move_end"] };
{ keys = ["e"]; commands = ["open_with"] };
{ keys = ["H"]; commands = ["cursor_move_page_home"] };
{ keys = ["L"]; commands = ["cursor_move_page_middle"] };
{ keys = ["M"]; commands = ["cursor_move_page_end"] };
{ keys = ["["]; commands = ["parent_cursor_move_up"] };
{ keys = ["]"]; commands = ["parent_cursor_move_down"] };
{ keys = ["c"; "d"]; commands = [":cd "] };
{ keys = ["x"; "x"]; commands = ["cut_files"] };
{ keys = ["c"; "c"]; commands = ["copy_files"] };
{ keys = ["c"; "n"]; commands = ["copy_filename"] };
{ keys = ["c"; "e"]; commands = ["copy_filename_without_extension"] };
{ keys = ["c"; "f"]; commands = ["copy_filepath"] };
{ keys = ["c"; "F"]; commands = ["copy_filepath --all-selected=true"] };
{ keys = ["c"; "p"]; commands = ["copy_dirpath"] };
{ keys = ["p"; "l"]; commands = ["symlink_files --relative=false"] };
{ keys = ["p"; "L"]; commands = ["symlink_files --relative=true"] };
{ keys = ["delete"]; commands = ["delete_files"] };
{ keys = ["d"; "d"]; commands = ["delete_files --noconfirm"] };
{ keys = ["d"; "D"]; commands = ["delete_files --noconfirm --permanently"] };
{ keys = ["v"; "v"]; commands = ["paste_files"] };
{ keys = ["v"; "V"]; commands = ["paste_files --overwrite=true"] };
{ keys = ["r"; "r"]; commands = ["rename_append"] };
{ keys = ["r"; "R"]; commands = ["rename_prepend"] };
{ keys = ["r"; "c"]; commands = [":rename "] };
{ keys = ["m"; "f"]; commands = [":touch "] };
{ keys = ["m"; "d"]; commands = [":mkdir "] };
{ keys = [" "]; commands = ["select --toggle=true"] };
{ keys = ["v"; "a"]; commands = ["select --all=true --toggle=true"] };
{ keys = ["v"; "i"]; commands = ["toggle_visual"] };
{ keys = ["w"]; commands = ["show_tasks --exit-key=w"] };
{ keys = ["r"; "b"]; commands = ["bulk_rename"] };
{ keys = ["="]; commands = ["set_mode"] };
{ keys = [":"]; commands = [":"] };
{ keys = [";"]; commands = [":"] };
{ keys = ["'"]; commands = [":shell "] };
{ keys = ["/"]; commands = [":search "] };
{ keys = ["|"]; commands = [":search_inc "] };
{ keys = ["\\"]; commands = [":search_glob "] };
{ keys = ["f"; "s"]; commands = ["search_fzf"] };
{ keys = ["f"; "d"]; commands = ["subdir_fzf"] };
{ keys = ["n"]; commands = ["search_next"] };
{ keys = ["N"]; commands = ["search_prev"] };
{ keys = ["s"; "r"]; commands = ["sort reverse"] };
{ keys = ["s"; "l"]; commands = ["sort lexical"] };
{ keys = ["s"; "L"]; commands = ["sort lexical --reverse=true"] };
{ keys = ["s"; "m"]; commands = ["sort mtime"] };
{ keys = ["s"; "M"]; commands = ["sort mtime --reverse=true"] };
{ keys = ["s"; "n"]; commands = ["sort natural"] };
{ keys = ["s"; "N"]; commands = ["sort natural --reverse=true"] };
{ keys = ["s"; "s"]; commands = ["sort size"] };
{ keys = ["s"; "S"]; commands = ["sort size --reverse=true"] };
{ keys = ["s"; "e"]; commands = ["sort ext"] };
{ keys = ["s"; "E"]; commands = ["sort ext --reverse=true"] };
{ keys = ["m"; "s"]; commands = ["linemode size"] };
{ keys = ["m"; "m"]; commands = ["linemode mtime"] };
{ keys = ["m"; "M"]; commands = ["linemode size | mtime"] };
{ keys = ["m"; "u"]; commands = ["linemode user"] };
{ keys = ["m"; "U"]; commands = ["linemode user | group"] };
{ keys = ["m"; "p"]; commands = ["linemode perm"] };
{ keys = ["g"; "r"]; commands = ["cd /"] };
{ keys = ["g"; "c"]; commands = ["cd ~/.config"] };
{ keys = ["g"; "w"]; commands = ["cd ~/.walls"] };
{ keys = ["g"; "d"]; commands = ["cd ~/Загрузки"] };
{ keys = ["g"; "h"]; commands = ["cd ~/"] };
{ keys = ["?"]; commands = ["help"] };
];
};
};
}

View file

@ -0,0 +1,48 @@
{ pkgs, ... }:
{
imports = [
./theme.nix
./mime.nix
./previewer.nix
];
programs.joshuto = {
enable = true;
settings = {
numbered_command = false;
mouse_support = true;
focus_on_create = true;
use_trash = true;
watch_files = true;
xdg_open = true;
xdg_open_fork = true;
# case_insensitive_ext = false;
zoxide_update = true;
display = {
mode = "default";
automatically_count_files = false;
collapse_preview = true;
column_ratio = [1 4 4];
scroll_offset = 6;
show_borders = false;
show_hidden = false;
show_icons = true;
# line_number_style = "relative";
tilde_in_titlebar = false;
linemode = "size";
sort = {
sort_method = "natural";
case_sensitive = false;
directories_first = true;
reverse = false;
};
};
preview = {
max_preview_size = 100000000;
use_xdg_thumbs = true;
xdg_thumb_size = "xlarge";
preview_script = "~/.config/joshuto/preview_file.sh";
};
tab.home_page = "inherit";
};
};
}

View file

@ -0,0 +1,172 @@
{ ... }:
{
programs.joshuto.mimetype = {
class = {
audio_default = [
{ command = "mpv"; args = [ "--" ]; }
];
image_default = [
{ command = "swayimg"; args = [ "-f --" ]; }
];
text_default = [
{ command = "hx"; }
{ command = "bat"; args = [ "--paging=always" ]; }
];
libreoffice_default = [
{ command = "libreoffice"; fork = true; silent = true; }
];
};
text = { "inherit" = "text_default"; };
extensions = {
# OFFICE
odt."inherit" = "libreoffice_default";
odf."inherit" = "libreoffice_default";
ods."inherit" = "libreoffice_default";
odp."inherit" = "libreoffice_default";
doc."inherit" = "libreoffice_default";
docx."inherit" = "libreoffice_default";
xls."inherit" = "libreoffice_default";
xlsx."inherit" = "libreoffice_default";
ppt."inherit" = "libreoffice_default";
pptx."inherit" = "libreoffice_default";
pdf."inherit" = "libreoffice_default";
"vnd.efi.iso.inherit" = [ # ISO
{ command = "popsicle-gtk"; fork = true; silent = true; }
];
x-bittorrent."inherit" = [ # TORRENT
{ command = "transmission-gtk"; fork = true; silent = true; }
];
# ARCHIVES
"7z".app_list = [
{ command = "7z"; args = [ "x" ]; }
{ command = "file-roller"; fork = true; silent = true; }
];
bz2.app_list = [
{ command = "tar"; args = [ "-xvjf" ]; }
{ command = "file-roller"; fork = true; silent = true; }
];
gz.app_list = [
{ command = "tar"; args = [ "-xvzf" ]; }
{ command = "file-roller"; fork = true; silent = true; }
];
tar.app_list = [
{ command = "tar"; args = [ "-xvf" ]; }
{ command = "file-roller"; fork = true; silent = true; }
];
tgz.app_list = [
{ command = "tar"; args = [ "-xvzf" ]; }
{ command = "file-roller"; fork = true; silent = true; }
];
rar.app_list = [
{ command = "unrar"; args = [ "x" ]; }
{ command = "file-roller"; fork = true; silent = true; }
];
xz.app_list = [
{ command = "tar"; args = [ "-xvJf" ]; }
{ command = "file-roller"; fork = true; silent = true; }
];
zip.app_list = [
{ command = "unzip"; }
{ command = "file-roller"; fork = true; silent = true; }
];
## audio formats
aac."inherit" = "audio_default";
ac3."inherit" = "audio_default";
aiff."inherit" = "audio_default";
ape."inherit" = "audio_default";
dts."inherit" = "audio_default";
flac."inherit" = "audio_default";
m4a."inherit" = "audio_default";
mp3."inherit" = "audio_default";
oga."inherit" = "audio_default";
ogg."inherit" = "audio_default";
opus."inherit" = "audio_default";
wav."inherit" = "audio_default";
wv."inherit" = "audio_default";
## video formats
avi."inherit" = "video_default";
av1."inherit" = "video_default";
flv."inherit" = "video_default";
mkv."inherit" = "video_default";
m4v."inherit" = "video_default";
mov."inherit" = "video_default";
mp4."inherit" = "video_default";
ts."inherit" = "video_default";
webm."inherit" = "video_default";
wmv."inherit" = "video_default";
## text formats
bib."inherit" = "text_default";
build."inherit" = "text_default";
c."inherit" = "text_default";
cfg."inherit" = "text_default";
cmake."inherit" = "text_default";
conf."inherit" = "text_default";
cpp."inherit" = "text_default";
css."inherit" = "text_default";
csv."inherit" = "text_default";
cu."inherit" = "text_default";
desktop."inherit" = "text_default";
ebuild."inherit" = "text_default";
eex."inherit" = "text_default";
env."inherit" = "text_default";
ex."inherit" = "text_default";
exs."inherit" = "text_default";
go."inherit" = "text_default";
gpl."inherit" = "text_default";
h."inherit" = "text_default";
hpp."inherit" = "text_default";
hs."inherit" = "text_default";
ini."inherit" = "text_default";
ipynb."inherit" = "text_default";
java."inherit" = "text_default";
jl."inherit" = "text_default";
js."inherit" = "text_default";
json."inherit" = "text_default";
jsonc."inherit" = "text_default";
kdl."inherit" = "text_default";
kt."inherit" = "text_default";
kvconfig."inherit" = "text_default";
lock."inherit" = "text_default";
log."inherit" = "text_default";
lua."inherit" = "text_default";
md."inherit" = "text_default";
micro."inherit" = "text_default";
ninja."inherit" = "text_default";
nix."inherit" = "text_default";
norg."inherit" = "text_default";
org."inherit" = "text_default";
po."inherit" = "text_default";
pot."inherit" = "text_default";
py."inherit" = "text_default";
qmd."inherit" = "text_default";
rasi."inherit" = "text_default";
rkt."inherit" = "text_default";
rktd."inherit" = "text_default";
rproj."inherit" = "text_default";
rs."inherit" = "text_default";
rstheme."inherit" = "text_default";
scm."inherit" = "text_default";
scss."inherit" = "text_default";
service."inherit" = "text_default";
sh."inherit" = "text_default";
socket."inherit" = "text_default";
sql."inherit" = "text_default";
srt."inherit" = "text_default";
svelte."inherit" = "text_default";
toml."inherit" = "text_default";
tsx."inherit" = "text_default";
txt."inherit" = "text_default";
vim."inherit" = "text_default";
xml."inherit" = "text_default";
yaml."inherit" = "text_default";
yml."inherit" = "text_default";
};
};
}

View file

@ -0,0 +1,16 @@
{ pkgs, ... }:
{
xdg.configFile = {
"joshuto/previewer.sh" = {
executable = true;
source = let
previewFile = pkgs.fetchFromGitHub {
"owner" = "kamiyaa";
"repo" = "joshuto";
"rev" = "9728c35ef7058bc4919765f720d4f5b9bdb17da1";
"hash" = "sha256-k5/p9C+zvYCa7dSl6wAKojUsUnAHo7ovVlqTyAwaTn0=";
};
in "${previewFile}/config/preview_file.sh";
};
};
}

View file

@ -0,0 +1,76 @@
{ ... }:
{
programs.joshuto.theme = {
tabs.styles = {
active = {
bg = "none";
fg = "blue";
bold = true;
};
inactive = {
bg = "none";
fg = "gray";
bold = true;
};
scroll_front = {
fg = "yellow";
bold = true;
};
scroll_back = {
fg = "yellow";
bold = true;
};
};
selection = {
fg = "yellow";
bold = true;
prefix = " ";
};
visual_mode_selection = {
fg = "light_red";
bold = true;
prefix = "v ";
};
regular = {
fg = "white";
};
directory = {
fg = "light_blue";
bold = true;
};
link = {
fg = "cyan";
bold = true;
};
socket = {
fg = "light_magenta";
bold = true;
};
executable = {
fg = "light_green";
bold = true;
};
link_invalid = {
fg = "red";
bold = true;
};
tabs.chars = {
active_prefix = "[";
active_postfix = "]";
inactive_prefix = " ";
inactive_postfix = "";
divider = " | ";
scroll_front_prefix = "";
scroll_front_postfix = "";
scroll_front_prestring = "« ";
scroll_front_poststring = " ";
scroll_back_prefix = "";
scroll_back_postfix = "";
scroll_back_prestring = " ";
scroll_back_poststring = " »";
padding_prefix = " ";
padding_postfix = " ";
padding_fill = " ";
};
};
}

View file

@ -0,0 +1,66 @@
{ pkgs, ...}:
{
programs.micro = {
enable = true;
settings = {
clipboard = "terminal";
colorscheme = "helios";
autosu = true;
mkparents = true;
scrollbar = true;
softwrap = true;
status = false;
statusline = false;
statusformatl = "q";
savehistory = true;
saveundo = true;
};
};
xdg.configFile."micro/colorschemes/helios.micro".text = ''
color-link comment "bold white"
color-link constant "cyan"
color-link constant.bool "bold cyan"
color-link constant.bool.true "bold green"
color-link constant.bool.false "bold red"
color-link constant.string "yellow"
color-link constant.string.url "underline blue, white"
#color-link constant.number "constant"
color-link constant.specialChar "bold magenta"
color-link identifier "bold red"
color-link identifier.macro "bold red"
color-link identifier.var "bold blue"
#color-link identifier.class "bold green"
color-link identifier.class "bold white"
color-link statement "bold yellow"
color-link symbol "red"
color-link symbol.brackets "blue"
color-link symbol.tag "bold blue"
color-link symbol.tag.extended "bold green"
color-link preproc "bold cyan"
color-link type "green"
color-link type.keyword "bold green"
color-link special "magenta"
color-link ignore "default"
color-link error "bold ,brightred"
color-link todo "underline black,brightyellow"
color-link hlsearch "white,darkgreen"
color-link indent-char ",brightgreen"
color-link line-number "white"
color-link line-number.scrollbar "green"
color-link statusline "white,blue"
color-link tabbar "white,blue"
color-link current-line-number "red"
color-link current-line-number.scroller "red"
color-link diff-added "green"
color-link diff-modified "yellow"
color-link diff-deleted "red"
color-link gutter-error ",red"
color-link gutter-warning "red"
color-link color-column "cyan"
color-link underlined.url "underline blue, white"
color-link divider "blue"
color-link match-brace "black,cyan"
color-link tab-error "brightred"
color-link trailingws "brightred"
'';
}

View file

@ -0,0 +1,43 @@
{ nixvim, inputs, ... }:
{
imports = [ inputs.nixvim.homeManagerModules.nixvim ./plugins ];
programs.nixvim = {
enable = true;
defaultEditor = true;
vimdiffAlias = true;
globals = {
mapleader = " ";
maplocalleader = " ";
have_nerd_font = true;
};
opts = {
number = true;
relativenumber = true;
mouse = "a";
clipboard = {
providers.wl-copy.enable = true;
register = "unnamedplus";
};
breakindent = true;
smarttab = true;
tabstop = 4;
shiftwidth = 4;
softtabstop = 4;
autoindent = true;
undofile = true;
ignorecase = true;
smartcase = true;
signcolumn = "yes";
updatetime = 250;
timeoutlen = 300;
splitright = true;
splitbelow = true;
list = true;
listchars.__raw = "{ tab = '» ', trail = '·', nbsp = '' }";
inccommand = "split";
cursorline = true;
scrolloff = 10;
hlsearch = true;
};
};
}

View file

@ -0,0 +1,15 @@
{
# Inserts matching pairs of parens, brackets, etc.
# https://nix-community.github.io/nixvim/plugins/nvim-autopairs/index.html
programs.nixvim = {
plugins.nvim-autopairs = {
enable = true;
};
# If you want to automatically add `(` after selecting a function or method
# https://nix-community.github.io/nixvim/NeovimOptions/index.html?highlight=extraconfiglua#extraconfiglua
extraConfigLua = ''
require('cmp').event:on('confirm_done', require('nvim-autopairs.completion.cmp').on_confirm_done())
'';
};
}

View file

@ -0,0 +1,57 @@
{pkgs, ...}: {
programs.nixvim = {
# Dependencies
#
# https://nix-community.github.io/nixvim/NeovimOptions/index.html?highlight=extraplugins#extrapackages
extraPackages = with pkgs; [
# Used to format Lua code
stylua
];
# Autoformat
# https://nix-community.github.io/nixvim/plugins/conform-nvim.html
plugins.conform-nvim = {
enable = true;
settings= {
notify_on_error = false;
format_on_save = ''
function(bufnr)
-- Disable "format_on_save lsp_fallback" for lanuages that don't
-- have a well standardized coding style. You can add additional
-- lanuages here or re-enable it for the disabled ones.
local disable_filetypes = { c = true, cpp = true }
return {
timeout_ms = 500,
lsp_fallback = not disable_filetypes[vim.bo[bufnr].filetype]
}
end
'';
formatters_by_ft = {
lua = ["stylua"];
# Conform can also run multiple formatters sequentially
# python = [ "isort "black" ];
#
# You can use a sublist to tell conform to run *until* a formatter
# is found
# javascript = [ [ "prettierd" "prettier" ] ];
};
};
};
# https://nix-community.github.io/nixvim/keymaps/index.html
keymaps = [
{
mode = "";
key = "<leader>f";
action.__raw = ''
function()
require('conform').format { async = true, lsp_fallback = true }
end
'';
options = {
desc = "[F]ormat buffer";
};
}
];
};
}

View file

@ -0,0 +1,145 @@
{
programs.nixvim = {
# Shows how to use the DAP plugin to debug your code.
#
# Primarily focused on configuring the debugger for Go, but can
# be extended to other languages as well. That's why it's called
# kickstart.nixvim and not ktichen-sink.nixvim ;)
# https://nix-community.github.io/nixvim/plugins/dap/index.html
plugins.dap = {
enable = true;
extensions = {
# Creates a beautiful debugger UI
dap-ui = {
enable = true;
# Set icons to characters that are more likely to work in every terminal.
# Feel free to remove or use ones that you like more! :)
# Don't feel like these are good choices.
icons = {
expanded = "";
collapsed = "";
current_frame = "*";
};
controls = {
icons = {
pause = "";
play = "";
step_into = "";
step_over = "";
step_out = "";
step_back = "b";
run_last = "";
terminate = "";
disconnect = "";
};
};
};
# Add your own debuggers here
dap-go = {
enable = true;
};
};
};
# https://nix-community.github.io/nixvim/keymaps/index.html
keymaps = [
{
mode = "n";
key = "<F5>";
action.__raw = ''
function()
require('dap').continue()
end
'';
options = {
desc = "Debug: Start/Continue";
};
}
{
mode = "n";
key = "<F1>";
action.__raw = ''
function()
require('dap').step_into()
end
'';
options = {
desc = "Debug: Step Into";
};
}
{
mode = "n";
key = "<F2>";
action.__raw = ''
function()
require('dap').step_over()
end
'';
options = {
desc = "Debug: Step Over";
};
}
{
mode = "n";
key = "<F3>";
action.__raw = ''
function()
require('dap').step_out()
end
'';
options = {
desc = "Debug: Step Out";
};
}
{
mode = "n";
key = "<leader>b";
action.__raw = ''
function()
require('dap').toggle_breakpoint()
end
'';
options = {
desc = "Debug: Toggle Breakpoint";
};
}
{
mode = "n";
key = "<leader>B";
action.__raw = ''
function()
require('dap').set_breakpoint(vim.fn.input 'Breakpoint condition: ')
end
'';
options = {
desc = "Debug: Set Breakpoint";
};
}
# Toggle to see last session result. Without this, you can't see session output
# in case of unhandled exception.
{
mode = "n";
key = "<F7>";
action.__raw = ''
function()
require('dapui').toggle()
end
'';
options = {
desc = "Debug: See last session result.";
};
}
];
# https://nix-community.github.io/nixvim/NeovimOptions/index.html?highlight=extraconfiglua#extraconfiglua
extraConfigLua = ''
require('dap').listeners.after.event_initialized['dapui_config'] = require('dapui').open
require('dap').listeners.before.event_terminated['dapui_config'] = require('dapui').close
require('dap').listeners.before.event_exited['dapui_config'] = require('dapui').close
'';
};
}

View file

@ -0,0 +1,29 @@
{ nixvim, ... }:
{
imports = [
./gitsigns.nix
./which-key.nix
./telescope.nix
./conform.nix
./lsp.nix
./nvim-cmp.nix
./mini.nix
./treesitter.nix
./indent-blankline.nix
./autopairs.nix
./neo-tree.nix
];
programs.nixvim = {
plugins = {
sleuth = {
enable = true;
};
todo-comments = {
enable = true;
settings = {
signs = true;
};
};
};
};
}

View file

@ -0,0 +1,219 @@
{
programs.nixvim = {
# Adds git related signs to the gutter, as well as utilities for managing changes
# See `:help gitsigns` to understand what the configuration keys do
# https://nix-community.github.io/nixvim/plugins/gitsigns/index.html
plugins.gitsigns = {
enable = true;
settings = {
signs = {
add = {text = "+";};
change = {text = "~";};
delete = {text = "_";};
topdelete = {text = "";};
changedelete = {text = "~";};
};
};
};
# NOTE: add gitsigns recommended keymaps if you are interested
/*
# https://nix-community.github.io/nixvim/keymaps/index.html
keymaps = [
# Navigation
{
mode = "n";
key = "]c";
action.__raw = ''
function()
if vim.wo.diff then
vim.cmd.normal { ']c', bang = true }
else
require('gitsigns').nav_hunk 'next'
end
end
'';
options = {
desc = "Jump to next git [C]hange";
};
}
{
mode = "n";
key = "[c";
action.__raw = ''
function()
if vim.wo.diff then
vim.cmd.normal { '[c', bang = true }
else
require('gitsigns').nav_hunk 'prev'
end
end
'';
options = {
desc = "Jump to previous git [C]hange";
};
}
# Actions
# visual mode
{
mode = "v";
key = "<leader>hs";
action.__raw = ''
function()
require('gitsigns').stage_hunk { vim.fn.line '.', vim.fn.line 'v' }
end
'';
options = {
desc = "stage git hunk";
};
}
{
mode = "v";
key = "<leader>hr";
action.__raw = ''
function()
require('gitsigns').reset_hunk { vim.fn.line '.', vim.fn.line 'v' }
end
'';
options = {
desc = "reset git hunk";
};
}
# normal mode
{
mode = "n";
key = "<leader>hs";
action.__raw = ''
function()
require('gitsigns').stage_hunk()
end
'';
options = {
desc = "git [s]tage hunk";
};
}
{
mode = "n";
key = "<leader>hr";
action.__raw = ''
function()
require('gitsigns').reset_hunk()
end
'';
options = {
desc = "git [r]eset hunk";
};
}
{
mode = "n";
key = "<leader>hS";
action.__raw = ''
function()
require('gitsigns').stage_buffer()
end
'';
options = {
desc = "git [S]tage buffer";
};
}
{
mode = "n";
key = "<leader>hu";
action.__raw = ''
function()
require('gitsigns').undo_stage_hunk()
end
'';
options = {
desc = "git [u]ndo stage hunk";
};
}
{
mode = "n";
key = "<leader>hR";
action.__raw = ''
function()
require('gitsigns').reset_buffer()
end
'';
options = {
desc = "git [R]eset buffer";
};
}
{
mode = "n";
key = "<leader>hp";
action.__raw = ''
function()
require('gitsigns').preview_hunk()
end
'';
options = {
desc = "git [p]review hunk";
};
}
{
mode = "n";
key = "<leader>hb";
action.__raw = ''
function()
require('gitsigns').blame_line()
end
'';
options = {
desc = "git [b]lame line";
};
}
{
mode = "n";
key = "<leader>hd";
action.__raw = ''
function()
require('gitsigns').diffthis()
end
'';
options = {
desc = "git [d]iff against index";
};
}
{
mode = "n";
key = "<leader>hD";
action.__raw = ''
function()
require('gitsigns').diffthis '@'
end
'';
options = {
desc = "git [D]iff against last commit";
};
}
# Toggles
{
mode = "n";
key = "<leader>tb";
action.__raw = ''
function()
require('gitsigns').toggle_current_line_blame()
end
'';
options = {
desc = "[T]oggle git show [b]lame line";
};
}
{
mode = "n";
key = "<leader>tD";
action.__raw = ''
function()
require('gitsigns').toggle_deleted()
end
'';
options = {
desc = "[T]oggle git show [D]eleted";
};
}
];
*/
};
}

View file

@ -0,0 +1,10 @@
{
programs.nixvim = {
# Add indentation guides even on blank lines
# For configuration see `:help ibl`
# https://nix-community.github.io/nixvim/plugins/indent-blankline/index.html
plugins.indent-blankline = {
enable = true;
};
};
}

View file

@ -0,0 +1,50 @@
{
programs.nixvim = {
# Linting
# https://nix-community.github.io/nixvim/plugins/lint/index.html
plugins.lint = {
enable = true;
# NOTE: Enabling these will cause errors unless these tools are installed
lintersByFt = {
nix = ["nix"];
markdown = [
"markdownlint"
#vale
];
#clojure = ["clj-kondo"];
#dockerfile = ["hadolint"];
#inko = ["inko"];
#janet = ["janet"];
#json = ["jsonlint"];
#rst = ["vale"];
#ruby = ["ruby"];
#terraform = ["tflint"];
#text = ["vale"];
};
# Create autocommand which carries out the actual linting
# on the specified events.
autoCmd = {
callback.__raw = ''
function()
require('lint').try_lint()
end
'';
group = "lint";
event = [
"BufEnter"
"BufWritePost"
"InsertLeave"
];
};
};
# https://nix-community.github.io/nixvim/NeovimOptions/autoGroups/index.html
autoGroups = {
lint = {
clear = true;
};
};
};
}

View file

@ -0,0 +1,274 @@
{pkgs, ...}: {
programs.nixvim = {
# Dependencies
# { 'Bilal2453/luvit-meta', lazy = true },
#
#
# Allows extra capabilities providied by nvim-cmp
# https://nix-community.github.io/nixvim/plugins/cmp-nvim-lsp.html
plugins.cmp-nvim-lsp = {
enable = true;
};
# Useful status updates for LSP.
# https://nix-community.github.io/nixvim/plugins/fidget/index.html
plugins.fidget = {
enable = true;
};
# https://nix-community.github.io/nixvim/NeovimOptions/index.html?highlight=extraplugi#extraplugins
extraPlugins = with pkgs.vimPlugins; [
# NOTE: This is where you would add a vim plugin that is not implemented in Nixvim, also see extraConfigLuaPre below
#
# TODO: Add luvit-meta when Nixos package is added
];
# https://nix-community.github.io/nixvim/NeovimOptions/autoGroups/index.html
autoGroups = {
"kickstart-lsp-attach" = {
clear = true;
};
};
# Brief aside: **What is LSP?**
#
# LSP is an initialism you've probably heard, but might not understand what it is.
#
# LSP stands for Language Server Protocol. It's a protocol that helps editors
# and language tooling communicate in a standardized fashion.
#
# In general, you have a "server" which is some tool built to understand a particular
# language (such as `gopls`, `lua_ls`, `rust_analyzer`, etc.). These Language Servers
# (sometimes called LSP servers, but that's kind of like ATM Machine) are standalone
# processes that communicate with some "client" - in this case, Neovim!
#
# LSP provides Neovim with features like:
# - Go to definition
# - Find references
# - Autocompletion
# - Symbol Search
# - and more!
#
# Thus, Language Servers are external tools that must be installed separately from
# Neovim which are configured below in the `server` section.
#
# If you're wondering about lsp vs treesitter, you can check out the wonderfully
# and elegantly composed help section, `:help lsp-vs-treesitter`
#
# https://nix-community.github.io/nixvim/plugins/lsp/index.html
plugins.lsp = {
enable = true;
# Enable the following language servers
# Feel free to add/remove any LSPs that you want here. They will automatically be installed.
#
# Add any additional override configuration in the following tables. Available keys are:
# - cmd: Override the default command used to start the server
# - filetypes: Override the default list of associated filetypes for the server
# - capabilities: Override fields in capabilities. Can be used to disable certain LSP features.
# - settings: Override the default settings passed when initializing the server.
# For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/
servers = {
# clangd = {
# enable = true;
#}
# gopls = {
# enable = true;
#}
# pyright = {
# enable = true;
#}
# rust_analyzer = {
# enable = true;
#}
# ...etc. See `https://nix-community.github.io/nixvim/plugins/lsp` for a list of pre-configured LSPs
#
# Some languages (like typscript) have entire language plugins that can be useful:
# `https://nix-community.github.io/nixvim/plugins/typescript-tools/index.html?highlight=typescript-tools#pluginstypescript-toolspackage`
#
# But for many setups the LSP (`tsserver`) will work just fine
# tsserver = {
# enable = true;
#}
lua-ls = {
enable = true;
# cmd = {
#};
# filetypes = {
#};
settings = {
completion = {
callSnippet = "Replace";
};
#diagnostics = {
# disable = {
# "missing-fields";
#};
};
};
};
keymaps = {
# Diagnostic keymaps
diagnostic = {
"<leader>q" = {
#mode = "n";
action = "setloclist";
desc = "Open diagnostic [Q]uickfix list";
};
};
extra = [
# Jump to the definition of the word under your cusor.
# This is where a variable was first declared, or where a function is defined, etc.
# To jump back, press <C-t>.
{
mode = "n";
key = "gd";
action.__raw = "require('telescope.builtin').lsp_definitions";
options = {
desc = "LSP: [G]oto [D]efinition";
};
}
# Find references for the word under your cursor.
{
mode = "n";
key = "gr";
action.__raw = "require('telescope.builtin').lsp_references";
options = {
desc = "LSP: [G]oto [R]eferences";
};
}
# Jump to the implementation of the word under your cursor.
# Useful when your language has ways of declaring types without an actual implementation.
{
mode = "n";
key = "gI";
action.__raw = "require('telescope.builtin').lsp_implementations";
options = {
desc = "LSP: [G]oto [I]mplementation";
};
}
# Jump to the type of the word under your cursor.
# Useful when you're not sure what type a variable is and you want to see
# the definition of its *type*, not where it was *defined*.
{
mode = "n";
key = "<leader>D";
action.__raw = "require('telescope.builtin').lsp_type_definitions";
options = {
desc = "LSP: Type [D]efinition";
};
}
# Fuzzy find all the symbols in your current document.
# Symbols are things like variables, functions, types, etc.
{
mode = "n";
key = "<leader>ds";
action.__raw = "require('telescope.builtin').lsp_document_symbols";
options = {
desc = "LSP: [D]ocument [S]ymbols";
};
}
# Fuzzy find all the symbols in your current workspace.
# Similar to document symbols, except searches over your entire project.
{
mode = "n";
key = "<leader>ws";
action.__raw = "require('telescope.builtin').lsp_dynamic_workspace_symbols";
options = {
desc = "LSP: [W]orkspace [S]ymbols";
};
}
];
lspBuf = {
# Rename the variable under your cursor.
# Most Language Servers support renaming across files, etc.
"<leader>rn" = {
action = "rename";
desc = "LSP: [R]e[n]ame";
};
# Execute a code action, usually your cursor needs to be on top of an error
# or a suggestion from your LSP for this to activate.
"<leader>ca" = {
#mode = "n";
action = "code_action";
desc = "LSP: [C]ode [A]ction";
};
# WARN: This is not Goto Definition, this is Goto Declaration.
# For example, in C this would take you to the header.
"gD" = {
action = "declaration";
desc = "LSP: [G]oto [D]eclaration";
};
};
};
# LSP servers and clients are able to communicate to each other what features they support.
# By default, Neovim doesn't support everything that is in the LSP specification.
# When you add nvim-cmp, luasnip, etc. Neovim now has *more* capabilities.
# So, we create new capabilities with nvim cmp, and then broadcast that to the servers.
# NOTE: This is done automatically by Nixvim when enabling cmp-nvim-lsp below is an example if you did want to add new capabilities
#capabilities = ''
# capabilities = vim.tbl_deep_extend('force', capabilities, require('cmp_nvim_lsp').default_capabilities())
#'';
# This function gets run when an LSP attaches to a particular buffer.
# That is to say, every time a new file is opened that is associated with
# an lsp (for example, opening `main.rs` is associated with `rust_analyzer`) this
# function will be executred to configure the current buffer
# NOTE: This is an example of an attribute that takes raw lua
onAttach = ''
-- NOTE: Remember that Lua is a real programming language, and as such it is possible
-- to define small helper and utility functions so you don't have to repeat yourself.
--
-- In this case, we create a function that lets us more easily define mappings specific
-- for LSP related items. It sets the mode, buffer and description for us each time.
local map = function(keys, func, desc)
vim.keymap.set('n', keys, func, { buffer = bufnr, desc = 'LSP: ' .. desc })
end
-- The following two autocommands are used to highlight references of the
-- word under the cursor when your cursor rests there for a little while.
-- See `:help CursorHold` for information about when this is executed
--
-- When you move your cursor, the highlights will be cleared (the second autocommand).
if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) then
local highlight_augroup = vim.api.nvim_create_augroup('kickstart-lsp-highlight', { clear = false })
vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, {
buffer = bufnr,
group = highlight_augroup,
callback = vim.lsp.buf.document_highlight,
})
vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, {
buffer = bufnr,
group = highlight_augroup,
callback = vim.lsp.buf.clear_references,
})
vim.api.nvim_create_autocmd('LspDetach', {
group = vim.api.nvim_create_augroup('kickstart-lsp-detach', { clear = true }),
callback = function(event2)
vim.lsp.buf.clear_references()
vim.api.nvim_clear_autocmds { group = 'kickstart-lsp-highlight', buffer = event2.buf }
end,
})
end
-- The following autocommand is used to enable inlay hints in your
-- code, if the language server you are using supports them
--
-- This may be unwanted, since they displace some of your code
if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then
map('<leader>th', function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled { bufnr = event.buf })
end, '[T]oggle Inlay [H]ints')
end
'';
};
};
}

View file

@ -0,0 +1,50 @@
{
programs.nixvim = {
# Collection of various small independent plugins/modules
# https://nix-community.github.io/nixvim/plugins/mini.html
plugins.mini = {
enable = true;
modules = {
# Better Around/Inside textobjects
#
# Examples:
# - va) - [V]isually select [A]round [)]paren
# - yinq - [Y]ank [I]nside [N]ext [Q]uote
# - ci' - [C]hange [I]nside [']quote
ai = {
n_lines = 500;
};
# Add/delete/replace surroundings (brackets, quotes, etc.)
#
# Examples:
# - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
# - sd' - [S]urround [D]elete [']quotes
# - sr)' - [S]urround [R]eplace [)] [']
surround = {
};
# Simple and easy statusline.
# You could remove this setup call if you don't like it,
# and try some other statusline plugin
statusline = {
use_icons.__raw = "vim.g.have_nerd_font";
};
# ... and there is more!
# Check out: https://github.com/echasnovski/mini.nvim
};
};
# You can configure sections in the statusline by overriding their
# default behavior. For example, here we set the section for
# cursor location to LINE:COLUMN
# https://nix-community.github.io/nixvim/NeovimOptions/index.html?highlight=extraconfiglu#extraconfiglua
extraConfigLua = ''
require('mini.statusline').section_location = function()
return '%2l:%-2v'
end
'';
};
}

View file

@ -0,0 +1,28 @@
{
programs.nixvim = {
# Neo-tree is a Neovim plugin to browse the file system
# https://nix-community.github.io/nixvim/plugins/neo-tree/index.html?highlight=neo-tree#pluginsneo-treepackage
plugins.neo-tree = {
enable = true;
filesystem = {
window = {
mappings = {
"\\" = "close_window";
};
};
};
};
# https://nix-community.github.io/nixvim/keymaps/index.html
keymaps = [
{
key = "\\";
action = "<cmd>Neotree reveal<cr>";
options = {
desc = "NeoTree reveal";
};
}
];
};
}

View file

@ -0,0 +1,130 @@
{
programs.nixvim = {
# Dependencies
#
# Snippet Engine & its associated nvim-cmp source
# https://nix-community.github.io/nixvim/plugins/luasnip/index.html
plugins.luasnip = {
enable = true;
};
# https://nix-community.github.io/nixvim/plugins/cmp-nvim-lsp.html
plugins.cmp-nvim-lsp = {
enable = true;
};
# https://nix-community.github.io/nixvim/plugins/cmp-path.html
plugins.cmp-path = {
enable = true;
};
# `friendly-snippets` contains a variety of premade snippets
# See the README about individual language/framework/plugin snippets:
# https://github.com/rafamadriz/friendly-snippets
# https://nix-community.github.io/nixvim/plugins/friendly-snippets.html
# plugins.friendly-snippets = {
# enable = true;
# };
# TODO: Waiting on this bug to be fixed https://github.com/NixOS/nixpkgs/issues/306367
# https://nix-community.github.io/nixvim/NeovimOptions/index.html?highlight=extralua#extraluapackages
extraLuaPackages = ps: [
# Required by luasnip
ps.jsregexp
];
# Autocompletion
# See `:help cmp`
# https://nix-community.github.io/nixvim/plugins/cmp/index.html
plugins.cmp = {
enable = true;
settings = {
snippet = {
expand = ''
function(args)
require('luasnip').lsp_expand(args.body)
end
'';
};
completion = {
completeopt = "menu,menuone,noinsert";
};
# For an understanding of why these mappings were
# chosen, you will need to read `:help ins-completion`
#
# No, but seriously, Please read `:help ins-completion`, it is really good!
mapping = {
# Select the [n]ext item
"<C-n>" = "cmp.mapping.select_next_item()";
# Select the [p]revious item
"<C-p>" = "cmp.mapping.select_prev_item()";
# Scroll the documentation window [b]ack / [f]orward
"<C-b>" = "cmp.mapping.scroll_docs(-4)";
"<C-f>" = "cmp.mapping.scroll_docs(4)";
# Accept ([y]es) the completion.
# This will auto-import if your LSP supports it.
# This will expand snippets if the LSP sent a snippet.
"<C-y>" = "cmp.mapping.confirm { select = true }";
# If you prefer more traditional completion keymaps,
# you can uncomment the following lines.
# "<CR>" = "cmp.mapping.confirm { select = true }";
# "<Tab>" = "cmp.mapping.select_next_item()";
# "<S-Tab>" = "cmp.mapping.select_prev_item()";
# Manually trigger a completion from nvim-cmp.
# Generally you don't need this, because nvim-cmp will display
# completions whenever it has completion options available.
"<C-Space>" = "cmp.mapping.complete {}";
# Think of <c-l> as moving to the right of your snippet expansion.
# So if you have a snippet that's like:
# function $name($args)
# $body
# end
#
# <c-l> will move you to the right of the expansion locations.
# <c-h> is similar, except moving you backwards.
"<C-l>" = ''
cmp.mapping(function()
if luasnip.expand_or_locally_jumpable() then
luasnip.expand_or_jump()
end
end, { 'i', 's' })
'';
"<C-h>" = ''
cmp.mapping(function()
if luasnip.locally_jumpable(-1) then
luasnip.jump(-1)
end
end, { 'i', 's' })
'';
# For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see:
# https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps
};
# WARNING: If plugins.cmp.autoEnableSources Nixivm will automatically enable the
# corresponding source plugins. This will work only when this option is set to a list.
# If you use a raw lua string, you will need to explicitly enable the relevant source
# plugins in your nixvim configuration.
sources = [
{
name = "luasnip";
}
# Adds other completion capabilites.
# nvim-cmp does not ship with all sources by default. They are split
# into multiple repos for maintenance purposes.
{
name = "nvim_lsp";
}
{
name = "path";
}
];
};
};
};
}

View file

@ -0,0 +1,169 @@
{
programs.nixvim = {
# Fuzzy Finder (files, lsp, etc)
# https://nix-community.github.io/nixvim/plugins/telescope/index.html
plugins.telescope = {
# Telescope is a fuzzy finder that comes with a lot of different things that
# it can fuzzy find! It's more than just a "file finder", it can search
# many different aspects of Neovim, your workspace, LSP, and more!
#
# The easiest way to use Telescope, is to start by doing something like:
# :Telescope help_tags
#
# After running this command, a window will open up and you're able to
# type in the prompt window. You'll see a list of `help_tags` options and
# a corresponding preview of the help.
#
# Two important keymaps to use while in Telescope are:
# - Insert mode: <c-/>
# - Normal mode: ?
#
# This opens a window that shows you all of the keymaps for the current
# Telescope picker. This is really useful to discover what Telescope can
# do as well as how to actually do it!
#
# [[ Configure Telescope ]]
# See `:help telescope` and `:help telescope.setup()`
enable = true;
# Enable Telescope extensions
extensions = {
fzf-native.enable = true;
ui-select.enable = true;
};
# You can put your default mappings / updates / etc. in here
# See `:help telescope.builtin`
keymaps = {
"<leader>sh" = {
mode = "n";
action = "help_tags";
options = {
desc = "[S]earch [H]elp";
};
};
"<leader>sk" = {
mode = "n";
action = "keymaps";
options = {
desc = "[S]earch [K]eymaps";
};
};
"<leader>sf" = {
mode = "n";
action = "find_files";
options = {
desc = "[S]earch [F]iles";
};
};
"<leader>ss" = {
mode = "n";
action = "builtin";
options = {
desc = "[S]earch [S]elect Telescope";
};
};
"<leader>sw" = {
mode = "n";
action = "grep_string";
options = {
desc = "[S]earch current [W]ord";
};
};
"<leader>sg" = {
mode = "n";
action = "live_grep";
options = {
desc = "[S]earch by [G]rep";
};
};
"<leader>sd" = {
mode = "n";
action = "diagnostics";
options = {
desc = "[S]earch [D]iagnostics";
};
};
"<leader>sr" = {
mode = "n";
action = "resume";
options = {
desc = "[S]earch [R]esume";
};
};
"<leader>s" = {
mode = "n";
action = "oldfiles";
options = {
desc = "[S]earch Recent Files ('.' for repeat)";
};
};
"<leader><leader>" = {
mode = "n";
action = "buffers";
options = {
desc = "[ ] Find existing buffers";
};
};
};
settings = {
extensions.__raw = "{ ['ui-select'] = { require('telescope.themes').get_dropdown() } }";
};
};
# https://nix-community.github.io/nixvim/keymaps/index.html
keymaps = [
# Slightly advanced example of overriding default behavior and theme
{
mode = "n";
key = "<leader>/";
# You can pass additional configuration to Telescope to change the theme, layout, etc.
action.__raw = ''
function()
require('telescope.builtin').current_buffer_fuzzy_find(
require('telescope.themes').get_dropdown {
winblend = 10,
previewer = false
}
)
end
'';
options = {
desc = "[/] Fuzzily search in current buffer";
};
}
{
mode = "n";
key = "<leader>s/";
# It's also possible to pass additional configuration options.
# See `:help telescope.builtin.live_grep()` for information about particular keys
action.__raw = ''
function()
require('telescope.builtin').live_grep {
grep_open_files = true,
prompt_title = 'Live Grep in Open Files'
}
end
'';
options = {
desc = "[S]earch [/] in Open Files";
};
}
# Shortcut for searching your Neovim configuration files
{
mode = "n";
key = "<leader>sn";
action.__raw = ''
function()
require('telescope.builtin').find_files {
cwd = vim.fn.stdpath 'config'
}
end
'';
options = {
desc = "[S]earch [N]eovim files";
};
}
];
};
}

View file

@ -0,0 +1,47 @@
{
programs.nixvim = {
# Highlight, edit, and navigate code
# https://nix-community.github.io/nixvim/plugins/treesitter/index.html
plugins.treesitter = {
enable = true;
# TODO: Don't think I need this as nixGrammars is true which should auto install these???
settings = {
ensureInstalled = [
"bash"
"c"
"diff"
"html"
"lua"
"luadoc"
"markdown"
"markdown_inline"
"query"
"vim"
"vimdoc"
];
highlight = {
enable = true;
# Some languages depend on vim's regex highlighting system (such as Ruby) for indent rules.
additional_vim_regex_highlighting = true;
};
indent = {
enable = true;
disable = [
"ruby"
];
};
# There are additional nvim-treesitter modules that you can use to interact
# with nvim-treesitter. You should go explore a few and see what interests you:
#
# - Incremental selection: Included, see `:help nvim-treesitter-incremental-selection-mod`
# - Show your current context: https://nix-community.github.io/nixvim/plugins/treesitter-context/index.html
# - Treesitter + textobjects: https://nix-community.github.io/nixvim/plugins/treesitter-textobjects/index.html
};
};
};
}

View file

@ -0,0 +1,47 @@
{
programs.nixvim = {
# Useful plugin to show you pending keybinds.
# https://nix-community.github.io/nixvim/plugins/which-key/index.html
plugins.which-key = {
enable = true;
# Document existing key chains
settings = {
spec = [
{
__unkeyed-1 = "<leader>c";
group = "[C]ode";
}
{
__unkeyed-1 = "<leader>d";
group = "[D]ocument";
}
{
__unkeyed-1 = "<leader>r";
group = "[R]ename";
}
{
__unkeyed-1 = "<leader>s";
group = "[S]earch";
}
{
__unkeyed-1 = "<leader>w";
group = "[W]orkspace";
}
{
__unkeyed-1 = "<leader>t";
group = "[T]oggle";
}
{
__unkeyed-1 = "<leader>h";
group = "Git [H]unk";
mode = [
"n"
"v"
];
}
];
};
};
};
}

View file

@ -0,0 +1,52 @@
{ pkgs, yazi, ... }:
{
home.packages = with pkgs; [
fff
joshuto
bat
fzf
cava
lutgen
micro
helix
inxi
zoxide
starship
fastfetch
cpufetch
pulsemixer
openvpn
nix-tree
nix-prefetch-github
nvtopPackages.amd
btop
bluetuith
confetty
tenki
light
# trash-cli
trashy
fuc
zip
atool
ffmpegthumbnailer
p7zip
jq
poppler_min
imagemagick
glow
ouch
# ferium
# portablemc
];
}

View file

@ -0,0 +1,50 @@
{ ... }:
{
programs.yazi.keymap = {
manager = {
prepend_keymap = [
# NAVIGATE
{ on = "l"; run = "plugin --sync smart-enter"; }
{ on = "Enter"; run = "plugin --sync smart-enter"; }
# VISUAL
{ on = [ "v" "m" ]; run = "plugin --sync max-preview"; }
{ on = [ "v" "p" ]; run = "plugin --sync hide-preview"; }
{ on = [ "v" "v" ]; run = "visual_mode"; }
{ on = [ "v" "V" ]; run = "visual_mode --unset"; }
{ on = [ "v" "a" ]; run = "select_all --state=true"; }
{ on = [ "v" "r" ]; run = "select_all --state=none"; }
{ on = [ "v" "h" ]; run = "hidden toggle"; }
# DELETION
{ on = [ "d" "d" ]; run = "remove"; }
{ on = [ "d" "D" ]; run = "remove --permanently"; }
{ on = [ "D" "d" ]; run = "remove --force"; }
{ on = [ "D" "D" ]; run = "remove --permanently --force"; }
# CREATE
{ on = [ "a" "f" ]; run = "create"; }
{ on = [ "a" "d" ]; run = "create --dir"; }
# RENAME
{ on = [ "r" "r" ]; run = "rename"; }
{ on = [ "r" "n" ]; run = "rename --empty=stem"; }
{ on = [ "r" "e" ]; run = "rename --empty=ext"; }
{ on = [ "r" "a" ]; run = "rename --empty=all"; }
# NAVIGATE
{ on = [ "c" "d" ]; run = "cd --interactive"; }
{ on = [ "g" "f" ]; run = "cd ~/.flake"; }
{ on = [ "g" "w" ]; run = "cd ~/.flake/hosts/wyswort"; }
{ on = [ "g" "m" ]; run = "cd ~/.flake/home/megamozg"; }
];
};
completion = {
prepend_keymap = [
{ on = "C-j"; run = "arrow 1"; }
{ on = "C-k"; run = "arrow -1"; }
# { on = "C-l"; run = "lose --submit" "close_input --submit" ; }
];
};
};
}

View file

@ -0,0 +1,64 @@
{ pkgs, inputs, ... }:
{
imports = [
./binds.nix
./theme.nix
./lua.nix
./plugins.nix
./starship.nix
];
programs.yazi = {
enable = true;
package = inputs.yazi.packages.${pkgs.system}.default;
settings = {
manager = {
ratio = [ 1 4 4 ];
show_hidden = false;
sort_by = "natural";
sort_dir_first = true;
sort_reverse = false;
linemode = "size";
show_symlink = true;
};
preview = {
wrap = "yes";
tab_size = 1;
image_filter = "lanczos3";
image_quality = 90;
max_height = 1000;
max_width = 1000;
};
opener = {
edit = [
{ run = "hx $@"; block = true; }
];
play = [
{ run = "mpv $@"; orphan = true; }
];
open = [
{ run = "xdg-open $@"; }
];
};
open = {
rules = [
{ mime = "text/*"; use = "edit"; }
{ mime = "video/*"; use = "play"; }
{ mime = "audio/*"; use = "play"; }
{ mime = "image/*"; use = "open"; }
];
};
plugin = {
prepend_previewers = [
{ mime = "application/*zip"; run = "ouch"; }
{ mime = "application/x-tar"; run = "ouch"; }
{ mime = "application/x-bzip2"; run = "ouch"; }
{ mime = "application/x-7z-compressed"; run = "ouch"; }
{ mime = "application/x-rar"; run = "ouch"; }
{ mime = "application/x-xz"; run = "ouch"; }
{ name = "*.md"; run = "glow"; }
];
};
};
};
}

View file

@ -0,0 +1,101 @@
{ ... }:
{
programs.yazi.initLua = ''
require("no-status"):setup()
-- require("starship"):setup()
require("starship"):setup({ config_file = "/home/megamozg/.config/yazi/star.toml" })
-- require("yatline"):setup({
-- section_separator = { open = "", close = "" },
-- part_separator = { open = "", close = "" },
-- inverse_separator = { open = "", close = "" },
--
-- style_a = {
-- fg = "black",
-- bg_mode = {
-- normal = "cyan",
-- select = "yellow",
-- un_set = "blue"
-- }
-- },
-- style_b = { bg = "black", fg = "white" },
-- style_c = { bg = "black", fg = "white" },
--
-- permissions_t_fg = "green",
-- permissions_r_fg = "yellow",
-- permissions_w_fg = "red",
-- permissions_x_fg = "cyan",
-- permissions_s_fg = "darkgray",
--
-- tab_width = 20,
-- tab_use_inverse = false,
--
-- selected = { icon = "󰻭", fg = "yellow" },
-- copied = { icon = "", fg = "green" },
-- cut = { icon = "", fg = "red" },
--
-- total = { icon = "󰮍", fg = "yellow" },
-- succ = { icon = "", fg = "green" },
-- fail = { icon = "", fg = "red" },
-- found = { icon = "󰮕", fg = "blue" },
-- processed = { icon = "󰐍", fg = "green" },
--
-- show_background = true,
--
-- display_header_line = true,
-- display_status_line = true,
--
-- header_line = {
-- left = {
-- section_a = { -- EDGE LEFT
-- -- {type = "line", custom = false, name = "tabs", params = {"left"}},
-- {type = "string", custom = false, name = "tab_path"},
-- },
-- section_b = { -- LEFT CENTER
-- },
-- section_c = { -- RIGHT LEFT
-- }
-- },
-- right = {
-- section_a = { -- EDGE RIGHT
-- -- {type = "line", custom = false, name = "tabs", params = {"right"}},
-- },
-- section_b = { -- CENTER RIGHT
-- },
-- section_c = { -- LEFT RIGHT
-- }
-- }
-- },
--
-- status_line = {
-- left = {
-- section_a = {
-- },
-- section_b = {
-- },
-- section_c = {
-- }
-- },
-- right = {
-- section_a = {
-- },
-- section_b = {
-- },
-- section_c = {
-- }
-- }
-- },
-- })
require("full-border"):setup {
type = ui.Border.ROUNDED,
}
Header:children_add(function()
if ya.target_family() ~= "unix" then
return ui.Line {}
end
return ui.Span(ya.user_name() .. "@" .. ya.host_name() .. ": "):fg("red")
end, 500, Header.LEFT)
'';
}

View file

@ -0,0 +1,77 @@
{ pkgs, lib, ... }:
let
yazi-plugins = pkgs.fetchFromGitHub {
owner = "yazi-rs";
repo = "plugins";
rev = "74a837c6eafba59e22dc3d8d8ec630934580c70c";
hash = "sha256-h+CoRLRyC+fJogfAoOw7twXSRkUotbgnS3gBFvlxNlw=";
};
in
{
# PLUGINS FROM REPO
programs.yazi.plugins = {
# BUILTINED
chmod = "${yazi-plugins}/chmod.yazi";
max-preview = "${yazi-plugins}/max-preview.yazi";
no-status = "${yazi-plugins}/no-status.yazi";
hide-preview = "${yazi-plugins}/hide-preview.yazi";
full-border = "${yazi-plugins}/full-border.yazi";
# FETCHED
ouch = pkgs.fetchFromGitHub {
owner = "ndtoan96";
repo = "ouch.yazi";
rev = "251da6930ca8b7ee0384810086c3bf644caede3e";
hash = "sha256-yLt9aY6hUIOdBI5bMdCs7VYFJGyD3WIkmPxvWKNCskA=";
};
glow = pkgs.fetchFromGitHub {
owner = "Reledia";
repo = "glow.yazi";
rev = "4e016fa2357e5e7e9b1a4881e1492d73a0a2f2cc";
hash = "sha256-d73C8s8p85c0xfq8Nfzlnp83JUakMPbviQDFCX0G+qE=";
};
ffmpeg = pkgs.fetchFromGitHub {
owner = "Tyarel8";
repo = "video-ffmpeg.yazi";
rev = "fe26a18f9b32880e10b686df5c4559d9af2bce6b";
hash = "sha256-PIsetF42mlxDv7hEBgjt4FdryDhWTAF/o0Z3Z1G8HJE=";
};
relative = pkgs.fetchFromGitHub {
owner = "dedukun";
repo = "relative-motions.yazi";
rev = "89d0cb9c84a7bba98d2e7ca4bac706d2458d0c06";
hash = "sha256-qtjAgH+NS4YFVIwq+x2sC90y4vDSXNI8pGXIZ3FuQMU=";
};
enter = pkgs.fetchFromGitHub {
owner = "ourongxing";
repo = "fast-enter.yazi";
rev = "dd498123cb0696d7fa50b32d2268fb8c2084a4a4";
hash = "sha256-jjluqFboFXV4yqBMvW7WhO61Urn2FQ/O31PqlaCxB2c=";
};
starship = pkgs.fetchFromGitHub {
owner = "Rolv-Apneseth";
repo = "starship.yazi";
rev = "77a65f5a367f833ad5e6687261494044006de9c3";
hash = "sha256-sAB0958lLNqqwkpucRsUqLHFV/PJYoJL2lHFtfHDZF8=";
};
yatline = pkgs.fetchFromGitHub {
owner = "imsi32";
repo = "yatline.yazi";
rev = "7b56434864d6a0b5d547fed2339b99346a018522";
hash = "sha256-4qxBAXFyPBQhSU24xL7fzhgM5e8Cq7BigEp4GPxSjD4=";
};
};
# CUSTOM PLUGINS
xdg.configFile = {
# SMART ENTER
"yazi/plugins/smart-enter.yazi/init.lua".text = ''
return {
entry = function()
local h = cx.active.current.hovered
ya.manager_emit(h and h.cha.is_dir and "enter" or "open", { hovered = true })
end,
}
'';
};
}

View file

@ -0,0 +1,43 @@
{ config, ... }:
{
xdg.configFile = with config.lib.stylix.colors; {
"yazi/star.toml".text = ''
# format = """
# $hostname\
# $username\
# $directory\
# """
format = """
$directory\
$git_branch\
$git_status\
$git_metrics\
"""
[directory]
style = "bold fg:green"
format = "in [$path ]($style)"
truncation_length = 3
truncation_symbol = "/"
read_only = '[󰌾]'
read_only_style = 'bold fg:red'
[git_branch]
style = "bold fg:yellow"
[git_status]
style = "bold fg:red"
[git_metrics]
added_style = "bold fg:blue"
deleted_style = "bold fg:red"
[directory.substitutions]
"Documents" = "󰈙 "
"Downloads" = " "
"Music" = " "
"Pictures" = " "
'';
};
}

View file

@ -0,0 +1,619 @@
{ lib, ... }:
{
programs.yazi.theme = lib.mkForce {
manager = {
cwd = { fg = "green"; };
hovered = { fg = "black"; bg = "blue"; bold = true; };
preview_hovered = { underline = false; };
tab_active = { fg = "red"; bg = "black"; };
tab_inactive = { fg = "black"; bg = "white"; };
border_style = { fg = "black"; };
marker_selected = { bg = "cyan"; };
marker_copied = { bg = "green"; };
marker_cut = { bg = "yellow"; };
};
which = {
cols = 3;
mask = { bg = "black"; };
};
filetype = {
rules = [
{ mime = "{audio,video}/*"; fg = "green"; }
{ name = "*"; fg = "white"; }
{ name = "*/"; fg = "blue"; }
];
};
icon = {
exts = [
{ name = "3gp"; text = ""; fg = "white"; }
{ name = "3mf"; text = "󰆧"; fg = "white"; }
{ name = "7z"; text = ""; fg = "white"; }
{ name = "a"; text = ""; fg = "white"; }
{ name = "aac"; text = ""; fg = "white"; }
{ name = "ai"; text = ""; fg = "white"; }
{ name = "aif"; text = ""; fg = "white"; }
{ name = "aiff"; text = ""; fg = "white"; }
{ name = "android"; text = ""; fg = "white"; }
{ name = "ape"; text = ""; fg = "white"; }
{ name = "apk"; text = ""; fg = "white"; }
{ name = "app"; text = ""; fg = "white"; }
{ name = "applescript"; text = ""; fg = "white"; }
{ name = "asc"; text = "󰦝"; fg = "white"; }
{ name = "ass"; text = "󰨖"; fg = "white"; }
{ name = "astro"; text = ""; fg = "white"; }
{ name = "awk"; text = ""; fg = "white"; }
{ name = "azcli"; text = ""; fg = "white"; }
{ name = "bak"; text = "󰁯"; fg = "white"; }
{ name = "bash"; text = ""; fg = "white"; }
{ name = "bat"; text = ""; fg = "white"; }
{ name = "bazel"; text = ""; fg = "white"; }
{ name = "bib"; text = "󱉟"; fg = "white"; }
{ name = "bicep"; text = ""; fg = "white"; }
{ name = "bicepparam"; text = ""; fg = "white"; }
{ name = "bin"; text = ""; fg = "white"; }
{ name = "blade.php"; text = ""; fg = "white"; }
{ name = "blend"; text = "󰂫"; fg = "white"; }
{ name = "blp"; text = "󰺾"; fg = "white"; }
{ name = "bmp"; text = ""; fg = "white"; }
{ name = "brep"; text = "󰻫"; fg = "white"; }
{ name = "bz"; text = ""; fg = "white"; }
{ name = "bz2"; text = ""; fg = "white"; }
{ name = "bz3"; text = ""; fg = "white"; }
{ name = "bzl"; text = ""; fg = "white"; }
{ name = "c"; text = ""; fg = "white"; }
{ name = "c++"; text = ""; fg = "white"; }
{ name = "cache"; text = ""; fg = "white"; }
{ name = "cast"; text = ""; fg = "white"; }
{ name = "cbl"; text = ""; fg = "white"; }
{ name = "cc"; text = ""; fg = "white"; }
{ name = "ccm"; text = ""; fg = "white"; }
{ name = "cfg"; text = ""; fg = "white"; }
{ name = "cjs"; text = ""; fg = "white"; }
{ name = "clj"; text = ""; fg = "white"; }
{ name = "cljc"; text = ""; fg = "white"; }
{ name = "cljd"; text = ""; fg = "white"; }
{ name = "cljs"; text = ""; fg = "white"; }
{ name = "cmake"; text = ""; fg = "white"; }
{ name = "cob"; text = ""; fg = "white"; }
{ name = "cobol"; text = ""; fg = "white"; }
{ name = "coffee"; text = ""; fg = "white"; }
{ name = "conf"; text = ""; fg = "white"; }
{ name = "config.ru"; text = ""; fg = "white"; }
{ name = "cp"; text = ""; fg = "white"; }
{ name = "cpp"; text = ""; fg = "white"; }
{ name = "cppm"; text = ""; fg = "white"; }
{ name = "cpy"; text = ""; fg = "white"; }
{ name = "cr"; text = ""; fg = "white"; }
{ name = "crdownload"; text = ""; fg = "white"; }
{ name = "cs"; text = "󰌛"; fg = "white"; }
{ name = "csh"; text = ""; fg = "white"; }
{ name = "cshtml"; text = "󱦗"; fg = "white"; }
{ name = "cson"; text = ""; fg = "white"; }
{ name = "csproj"; text = "󰪮"; fg = "white"; }
{ name = "css"; text = ""; fg = "white"; }
{ name = "csv"; text = ""; fg = "white"; }
{ name = "cts"; text = ""; fg = "white"; }
{ name = "cu"; text = ""; fg = "white"; }
{ name = "cue"; text = "󰲹"; fg = "white"; }
{ name = "cuh"; text = ""; fg = "white"; }
{ name = "cxx"; text = ""; fg = "white"; }
{ name = "cxxm"; text = ""; fg = "white"; }
{ name = "d"; text = ""; fg = "white"; }
{ name = "d.ts"; text = ""; fg = "white"; }
{ name = "dart"; text = ""; fg = "white"; }
{ name = "db"; text = ""; fg = "white"; }
{ name = "dconf"; text = ""; fg = "white"; }
{ name = "desktop"; text = ""; fg = "white"; }
{ name = "diff"; text = ""; fg = "white"; }
{ name = "dll"; text = ""; fg = "white"; }
{ name = "doc"; text = "󰈬"; fg = "white"; }
{ name = "Dockerfile"; text = "󰡨"; fg = "white"; }
{ name = "docx"; text = "󰈬"; fg = "white"; }
{ name = "dot"; text = "󱁉"; fg = "white"; }
{ name = "download"; text = ""; fg = "white"; }
{ name = "drl"; text = ""; fg = "white"; }
{ name = "dropbox"; text = ""; fg = "white"; }
{ name = "dump"; text = ""; fg = "white"; }
{ name = "dwg"; text = "󰻫"; fg = "white"; }
{ name = "dxf"; text = "󰻫"; fg = "white"; }
{ name = "ebook"; text = ""; fg = "white"; }
{ name = "edn"; text = ""; fg = "white"; }
{ name = "eex"; text = ""; fg = "white"; }
{ name = "ejs"; text = ""; fg = "white"; }
{ name = "el"; text = ""; fg = "white"; }
{ name = "elc"; text = ""; fg = "white"; }
{ name = "elf"; text = ""; fg = "white"; }
{ name = "elm"; text = ""; fg = "white"; }
{ name = "eln"; text = ""; fg = "white"; }
{ name = "env"; text = ""; fg = "white"; }
{ name = "eot"; text = ""; fg = "white"; }
{ name = "epp"; text = ""; fg = "white"; }
{ name = "epub"; text = ""; fg = "white"; }
{ name = "erb"; text = ""; fg = "white"; }
{ name = "erl"; text = ""; fg = "white"; }
{ name = "ex"; text = ""; fg = "white"; }
{ name = "exe"; text = ""; fg = "white"; }
{ name = "exs"; text = ""; fg = "white"; }
{ name = "f#"; text = ""; fg = "white"; }
{ name = "f3d"; text = "󰻫"; fg = "white"; }
{ name = "f90"; text = "󱈚"; fg = "white"; }
{ name = "fbx"; text = "󰆧"; fg = "white"; }
{ name = "fcbak"; text = ""; fg = "white"; }
{ name = "fcmacro"; text = ""; fg = "white"; }
{ name = "fcmat"; text = ""; fg = "white"; }
{ name = "fcparam"; text = ""; fg = "white"; }
{ name = "fcscript"; text = ""; fg = "white"; }
{ name = "fcstd"; text = ""; fg = "white"; }
{ name = "fcstd1"; text = ""; fg = "white"; }
{ name = "fctb"; text = ""; fg = "white"; }
{ name = "fctl"; text = ""; fg = "white"; }
{ name = "fdmdownload"; text = ""; fg = "white"; }
{ name = "fish"; text = ""; fg = "white"; }
{ name = "flac"; text = ""; fg = "white"; }
{ name = "flc"; text = ""; fg = "white"; }
{ name = "flf"; text = ""; fg = "white"; }
{ name = "fnl"; text = ""; fg = "white"; }
{ name = "fs"; text = ""; fg = "white"; }
{ name = "fsi"; text = ""; fg = "white"; }
{ name = "fsscript"; text = ""; fg = "white"; }
{ name = "fsx"; text = ""; fg = "white"; }
{ name = "gcode"; text = "󰐫"; fg = "white"; }
{ name = "gd"; text = ""; fg = "white"; }
{ name = "gemspec"; text = ""; fg = "white"; }
{ name = "gif"; text = ""; fg = "white"; }
{ name = "git"; text = ""; fg = "white"; }
{ name = "glb"; text = ""; fg = "white"; }
{ name = "gnumakefile"; text = ""; fg = "white"; }
{ name = "go"; text = ""; fg = "white"; }
{ name = "godot"; text = ""; fg = "white"; }
{ name = "gql"; text = ""; fg = "white"; }
{ name = "graphql"; text = ""; fg = "white"; }
{ name = "gresource"; text = ""; fg = "white"; }
{ name = "gv"; text = "󱁉"; fg = "white"; }
{ name = "gz"; text = ""; fg = "white"; }
{ name = "h"; text = ""; fg = "white"; }
{ name = "haml"; text = ""; fg = "white"; }
{ name = "hbs"; text = ""; fg = "white"; }
{ name = "heex"; text = ""; fg = "white"; }
{ name = "hex"; text = ""; fg = "white"; }
{ name = "hh"; text = ""; fg = "white"; }
{ name = "hpp"; text = ""; fg = "white"; }
{ name = "hrl"; text = ""; fg = "white"; }
{ name = "hs"; text = ""; fg = "white"; }
{ name = "htm"; text = ""; fg = "white"; }
{ name = "html"; text = ""; fg = "white"; }
{ name = "huff"; text = "󰡘"; fg = "white"; }
{ name = "hurl"; text = ""; fg = "white"; }
{ name = "hx"; text = ""; fg = "white"; }
{ name = "hxx"; text = ""; fg = "white"; }
{ name = "ical"; text = ""; fg = "white"; }
{ name = "icalendar"; text = ""; fg = "white"; }
{ name = "ico"; text = ""; fg = "white"; }
{ name = "ics"; text = ""; fg = "white"; }
{ name = "ifb"; text = ""; fg = "white"; }
{ name = "ifc"; text = "󰻫"; fg = "white"; }
{ name = "ige"; text = "󰻫"; fg = "white"; }
{ name = "iges"; text = "󰻫"; fg = "white"; }
{ name = "igs"; text = "󰻫"; fg = "white"; }
{ name = "image"; text = ""; fg = "white"; }
{ name = "img"; text = ""; fg = "white"; }
{ name = "import"; text = ""; fg = "white"; }
{ name = "info"; text = ""; fg = "white"; }
{ name = "ini"; text = ""; fg = "white"; }
{ name = "ino"; text = ""; fg = "white"; }
{ name = "ipynb"; text = ""; fg = "white"; }
{ name = "iso"; text = ""; fg = "white"; }
{ name = "ixx"; text = ""; fg = "white"; }
{ name = "java"; text = ""; fg = "white"; }
{ name = "jl"; text = ""; fg = "white"; }
{ name = "jpeg"; text = ""; fg = "white"; }
{ name = "jpg"; text = ""; fg = "white"; }
{ name = "js"; text = ""; fg = "white"; }
{ name = "json"; text = ""; fg = "white"; }
{ name = "json5"; text = ""; fg = "white"; }
{ name = "jsonc"; text = ""; fg = "white"; }
{ name = "jsx"; text = ""; fg = "white"; }
{ name = "jwmrc"; text = ""; fg = "white"; }
{ name = "jxl"; text = ""; fg = "white"; }
{ name = "kbx"; text = "󰯄"; fg = "white"; }
{ name = "kdb"; text = ""; fg = "white"; }
{ name = "kdbx"; text = ""; fg = "white"; }
{ name = "kdenlive"; text = ""; fg = "white"; }
{ name = "kdenlivetitle"; text = ""; fg = "white"; }
{ name = "kicad_dru"; text = ""; fg = "white"; }
{ name = "kicad_mod"; text = ""; fg = "white"; }
{ name = "kicad_pcb"; text = ""; fg = "white"; }
{ name = "kicad_prl"; text = ""; fg = "white"; }
{ name = "kicad_pro"; text = ""; fg = "white"; }
{ name = "kicad_sch"; text = ""; fg = "white"; }
{ name = "kicad_sym"; text = ""; fg = "white"; }
{ name = "kicad_wks"; text = ""; fg = "white"; }
{ name = "ko"; text = ""; fg = "white"; }
{ name = "kpp"; text = ""; fg = "white"; }
{ name = "kra"; text = ""; fg = "white"; }
{ name = "krz"; text = ""; fg = "white"; }
{ name = "ksh"; text = ""; fg = "white"; }
{ name = "kt"; text = ""; fg = "white"; }
{ name = "kts"; text = ""; fg = "white"; }
{ name = "lck"; text = ""; fg = "white"; }
{ name = "leex"; text = ""; fg = "white"; }
{ name = "less"; text = ""; fg = "white"; }
{ name = "lff"; text = ""; fg = "white"; }
{ name = "lhs"; text = ""; fg = "white"; }
{ name = "lib"; text = ""; fg = "white"; }
{ name = "license"; text = ""; fg = "white"; }
{ name = "liquid"; text = ""; fg = "white"; }
{ name = "lock"; text = ""; fg = "white"; }
{ name = "log"; text = "󰌱"; fg = "white"; }
{ name = "lrc"; text = "󰨖"; fg = "white"; }
{ name = "lua"; text = ""; fg = "white"; }
{ name = "luac"; text = ""; fg = "white"; }
{ name = "luau"; text = ""; fg = "white"; }
{ name = "m"; text = ""; fg = "white"; }
{ name = "m3u"; text = "󰲹"; fg = "white"; }
{ name = "m3u8"; text = "󰲹"; fg = "white"; }
{ name = "m4a"; text = ""; fg = "white"; }
{ name = "m4v"; text = ""; fg = "white"; }
{ name = "magnet"; text = ""; fg = "white"; }
{ name = "makefile"; text = ""; fg = "white"; }
{ name = "markdown"; text = ""; fg = "white"; }
{ name = "material"; text = "󰔉"; fg = "white"; }
{ name = "md"; text = ""; fg = "white"; }
{ name = "md5"; text = "󰕥"; fg = "white"; }
{ name = "mdx"; text = ""; fg = "white"; }
{ name = "mint"; text = "󰌪"; fg = "white"; }
{ name = "mjs"; text = ""; fg = "white"; }
{ name = "mk"; text = ""; fg = "white"; }
{ name = "mkv"; text = ""; fg = "white"; }
{ name = "ml"; text = ""; fg = "white"; }
{ name = "mli"; text = ""; fg = "white"; }
{ name = "mm"; text = ""; fg = "white"; }
{ name = "mo"; text = ""; fg = "white"; }
{ name = "mobi"; text = ""; fg = "white"; }
{ name = "mov"; text = ""; fg = "white"; }
{ name = "mp3"; text = ""; fg = "white"; }
{ name = "mp4"; text = ""; fg = "white"; }
{ name = "mpp"; text = ""; fg = "white"; }
{ name = "msf"; text = ""; fg = "white"; }
{ name = "mts"; text = ""; fg = "white"; }
{ name = "mustache"; text = ""; fg = "white"; }
{ name = "nfo"; text = ""; fg = "white"; }
{ name = "nim"; text = ""; fg = "white"; }
{ name = "nix"; text = ""; fg = "white"; }
{ name = "nswag"; text = ""; fg = "white"; }
{ name = "nu"; text = ">"; fg = "white"; }
{ name = "o"; text = ""; fg = "white"; }
{ name = "obj"; text = "󰆧"; fg = "white"; }
{ name = "ogg"; text = ""; fg = "white"; }
{ name = "opus"; text = ""; fg = "white"; }
{ name = "org"; text = ""; fg = "white"; }
{ name = "otf"; text = ""; fg = "white"; }
{ name = "out"; text = ""; fg = "white"; }
{ name = "part"; text = ""; fg = "white"; }
{ name = "patch"; text = ""; fg = "white"; }
{ name = "pck"; text = ""; fg = "white"; }
{ name = "pcm"; text = ""; fg = "white"; }
{ name = "pdf"; text = ""; fg = "white"; }
{ name = "php"; text = ""; fg = "white"; }
{ name = "pl"; text = ""; fg = "white"; }
{ name = "pls"; text = "󰲹"; fg = "white"; }
{ name = "ply"; text = "󰆧"; fg = "white"; }
{ name = "pm"; text = ""; fg = "white"; }
{ name = "png"; text = ""; fg = "white"; }
{ name = "po"; text = ""; fg = "white"; }
{ name = "pot"; text = ""; fg = "white"; }
{ name = "pp"; text = ""; fg = "white"; }
{ name = "ppt"; text = "󰈧"; fg = "white"; }
{ name = "prisma"; text = ""; fg = "white"; }
{ name = "pro"; text = ""; fg = "white"; }
{ name = "ps1"; text = "󰨊"; fg = "white"; }
{ name = "psb"; text = ""; fg = "white"; }
{ name = "psd"; text = ""; fg = "white"; }
{ name = "psd1"; text = "󰨊"; fg = "white"; }
{ name = "psm1"; text = "󰨊"; fg = "white"; }
{ name = "pub"; text = "󰷖"; fg = "white"; }
{ name = "pxd"; text = ""; fg = "white"; }
{ name = "pxi"; text = ""; fg = "white"; }
{ name = "py"; text = ""; fg = "white"; }
{ name = "pyc"; text = ""; fg = "white"; }
{ name = "pyd"; text = ""; fg = "white"; }
{ name = "pyi"; text = ""; fg = "white"; }
{ name = "pyo"; text = ""; fg = "white"; }
{ name = "pyx"; text = ""; fg = "white"; }
{ name = "qm"; text = ""; fg = "white"; }
{ name = "qml"; text = ""; fg = "white"; }
{ name = "qrc"; text = ""; fg = "white"; }
{ name = "qss"; text = ""; fg = "white"; }
{ name = "query"; text = ""; fg = "white"; }
{ name = "r"; text = "󰟔"; fg = "white"; }
{ name = "rake"; text = ""; fg = "white"; }
{ name = "rar"; text = ""; fg = "white"; }
{ name = "razor"; text = "󱦘"; fg = "white"; }
{ name = "rb"; text = ""; fg = "white"; }
{ name = "res"; text = ""; fg = "white"; }
{ name = "resi"; text = ""; fg = "white"; }
{ name = "rlib"; text = ""; fg = "white"; }
{ name = "rmd"; text = ""; fg = "white"; }
{ name = "rproj"; text = "󰗆"; fg = "white"; }
{ name = "rs"; text = ""; fg = "white"; }
{ name = "rss"; text = ""; fg = "white"; }
{ name = "sass"; text = ""; fg = "white"; }
{ name = "sbt"; text = ""; fg = "white"; }
{ name = "sc"; text = ""; fg = "white"; }
{ name = "scad"; text = ""; fg = "white"; }
{ name = "scala"; text = ""; fg = "white"; }
{ name = "scm"; text = "󰘧"; fg = "white"; }
{ name = "scss"; text = ""; fg = "white"; }
{ name = "sh"; text = ""; fg = "white"; }
{ name = "sha1"; text = "󰕥"; fg = "white"; }
{ name = "sha224"; text = "󰕥"; fg = "white"; }
{ name = "sha256"; text = "󰕥"; fg = "white"; }
{ name = "sha384"; text = "󰕥"; fg = "white"; }
{ name = "sha512"; text = "󰕥"; fg = "white"; }
{ name = "sig"; text = "λ"; fg = "white"; }
{ name = "signature"; text = "λ"; fg = "white"; }
{ name = "skp"; text = "󰻫"; fg = "white"; }
{ name = "sldasm"; text = "󰻫"; fg = "white"; }
{ name = "sldprt"; text = "󰻫"; fg = "white"; }
{ name = "slim"; text = ""; fg = "white"; }
{ name = "sln"; text = ""; fg = "white"; }
{ name = "slvs"; text = "󰻫"; fg = "white"; }
{ name = "sml"; text = "λ"; fg = "white"; }
{ name = "so"; text = ""; fg = "white"; }
{ name = "sol"; text = ""; fg = "white"; }
{ name = "spec.js"; text = ""; fg = "white"; }
{ name = "spec.jsx"; text = ""; fg = "white"; }
{ name = "spec.ts"; text = ""; fg = "white"; }
{ name = "spec.tsx"; text = ""; fg = "white"; }
{ name = "sql"; text = ""; fg = "white"; }
{ name = "sqlite"; text = ""; fg = "white"; }
{ name = "sqlite3"; text = ""; fg = "white"; }
{ name = "srt"; text = "󰨖"; fg = "white"; }
{ name = "ssa"; text = "󰨖"; fg = "white"; }
{ name = "ste"; text = "󰻫"; fg = "white"; }
{ name = "step"; text = "󰻫"; fg = "white"; }
{ name = "stl"; text = "󰆧"; fg = "white"; }
{ name = "stp"; text = "󰻫"; fg = "white"; }
{ name = "strings"; text = ""; fg = "white"; }
{ name = "styl"; text = ""; fg = "white"; }
{ name = "sub"; text = "󰨖"; fg = "white"; }
{ name = "sublime"; text = ""; fg = "white"; }
{ name = "suo"; text = ""; fg = "white"; }
{ name = "sv"; text = "󰍛"; fg = "white"; }
{ name = "svelte"; text = ""; fg = "white"; }
{ name = "svg"; text = "󰜡"; fg = "white"; }
{ name = "svh"; text = "󰍛"; fg = "white"; }
{ name = "swift"; text = ""; fg = "white"; }
{ name = "t"; text = ""; fg = "white"; }
{ name = "tbc"; text = "󰛓"; fg = "white"; }
{ name = "tcl"; text = "󰛓"; fg = "white"; }
{ name = "templ"; text = ""; fg = "white"; }
{ name = "terminal"; text = ""; fg = "white"; }
{ name = "test.js"; text = ""; fg = "white"; }
{ name = "test.jsx"; text = ""; fg = "white"; }
{ name = "test.ts"; text = ""; fg = "white"; }
{ name = "test.tsx"; text = ""; fg = "white"; }
{ name = "tex"; text = ""; fg = "white"; }
{ name = "tf"; text = ""; fg = "white"; }
{ name = "tfvars"; text = ""; fg = "white"; }
{ name = "tgz"; text = ""; fg = "white"; }
{ name = "tmux"; text = ""; fg = "white"; }
{ name = "toml"; text = ""; fg = "white"; }
{ name = "torrent"; text = ""; fg = "white"; }
{ name = "tres"; text = ""; fg = "white"; }
{ name = "ts"; text = ""; fg = "white"; }
{ name = "tscn"; text = ""; fg = "white"; }
{ name = "tsconfig"; text = ""; fg = "white"; }
{ name = "tsx"; text = ""; fg = "white"; }
{ name = "ttf"; text = ""; fg = "white"; }
{ name = "twig"; text = ""; fg = "white"; }
{ name = "txt"; text = "󰈙"; fg = "white"; }
{ name = "txz"; text = ""; fg = "white"; }
{ name = "typoscript"; text = ""; fg = "white"; }
{ name = "ui"; text = ""; fg = "white"; }
{ name = "v"; text = "󰍛"; fg = "white"; }
{ name = "vala"; text = ""; fg = "white"; }
{ name = "vh"; text = "󰍛"; fg = "white"; }
{ name = "vhd"; text = "󰍛"; fg = "white"; }
{ name = "vhdl"; text = "󰍛"; fg = "white"; }
{ name = "vim"; text = ""; fg = "white"; }
{ name = "vsh"; text = ""; fg = "white"; }
{ name = "vsix"; text = ""; fg = "white"; }
{ name = "vue"; text = ""; fg = "white"; }
{ name = "wasm"; text = ""; fg = "white"; }
{ name = "wav"; text = ""; fg = "white"; }
{ name = "webm"; text = ""; fg = "white"; }
{ name = "webmanifest"; text = ""; fg = "white"; }
{ name = "webp"; text = ""; fg = "white"; }
{ name = "webpack"; text = "󰜫"; fg = "white"; }
{ name = "wma"; text = ""; fg = "white"; }
{ name = "woff"; text = ""; fg = "white"; }
{ name = "woff2"; text = ""; fg = "white"; }
{ name = "wrl"; text = "󰆧"; fg = "white"; }
{ name = "wrz"; text = "󰆧"; fg = "white"; }
{ name = "x"; text = ""; fg = "white"; }
{ name = "xaml"; text = "󰙳"; fg = "white"; }
{ name = "xcf"; text = ""; fg = "white"; }
{ name = "xcplayground"; text = ""; fg = "white"; }
{ name = "xcstrings"; text = ""; fg = "white"; }
{ name = "xls"; text = "󰈛"; fg = "white"; }
{ name = "xlsx"; text = "󰈛"; fg = "white"; }
{ name = "xm"; text = ""; fg = "white"; }
{ name = "xml"; text = "󰗀"; fg = "white"; }
{ name = "xpi"; text = ""; fg = "white"; }
{ name = "xul"; text = ""; fg = "white"; }
{ name = "xz"; text = ""; fg = "white"; }
{ name = "yaml"; text = ""; fg = "white"; }
{ name = "yml"; text = ""; fg = "white"; }
{ name = "zig"; text = ""; fg = "white"; }
{ name = "zip"; text = ""; fg = "white"; }
{ name = "zsh"; text = ""; fg = "white"; }
{ name = "zst"; text = ""; fg = "white"; }
];
files = [
{ name = "gulpfile.js"; text = ""; fg = "white"; }
{ name = ".babelrc"; text = ""; fg = "white"; }
{ name = "copying.lesser"; text = ""; fg = "white"; }
{ name = ".npmrc"; text = ""; fg = "white"; }
{ name = "docker-compose.yml"; text = "󰡨"; fg = "white"; }
{ name = "svelte.config.js"; text = ""; fg = "white"; }
{ name = "copying"; text = ""; fg = "white"; }
{ name = "prettier.config.ts"; text = ""; fg = "white"; }
{ name = "gruntfile.babel.js"; text = ""; fg = "white"; }
{ name = ".SRCINFO"; text = "󰣇"; fg = "white"; }
{ name = ".xinitrc"; text = ""; fg = "white"; }
{ name = "docker-compose.yaml"; text = "󰡨"; fg = "white"; }
{ name = "nuxt.config.ts"; text = "󱄆"; fg = "white"; }
{ name = "build"; text = ""; fg = "white"; }
{ name = ".editorconfig"; text = ""; fg = "white"; }
{ name = "nuxt.config.mjs"; text = "󱄆"; fg = "white"; }
{ name = ".gitlab-ci.yml"; text = ""; fg = "white"; }
{ name = "PKGBUILD"; text = ""; fg = "white"; }
{ name = ".bash_profile"; text = ""; fg = "white"; }
{ name = ".bashrc"; text = ""; fg = "white"; }
{ name = "compose.yml"; text = "󰡨"; fg = "white"; }
{ name = "eslint.config.cjs"; text = ""; fg = "white"; }
{ name = "go.mod"; text = ""; fg = "white"; }
{ name = ".mailmap"; text = "󰊢"; fg = "white"; }
{ name = "gtkrc"; text = ""; fg = "white"; }
{ name = "go.work"; text = ""; fg = "white"; }
{ name = "justfile"; text = ""; fg = "white"; }
{ name = "kritadisplayrc"; text = ""; fg = "white"; }
{ name = "commitlint.config.js"; text = "󰜘"; fg = "white"; }
{ name = ".env"; text = ""; fg = "white"; }
{ name = "PrusaSlicerGcodeViewer.ini"; text = ""; fg = "white"; }
{ name = "r"; text = "󰟔"; fg = "white"; }
{ name = "license"; text = ""; fg = "white"; }
{ name = ".gitignore"; text = ""; fg = "white"; }
{ name = "tailwind.config.js"; text = "󱏿"; fg = "white"; }
{ name = ".prettierrc.yml"; text = ""; fg = "white"; }
{ name = ".zprofile"; text = ""; fg = "white"; }
{ name = ".zshenv"; text = ""; fg = "white"; }
{ name = "xmonad.hs"; text = ""; fg = "white"; }
{ name = ".eslintignore"; text = ""; fg = "white"; }
{ name = "tsconfig.json"; text = ""; fg = "white"; }
{ name = ".prettierrc.json5"; text = ""; fg = "white"; }
{ name = ".ds_store"; text = ""; fg = "white"; }
{ name = "gulpfile.coffee"; text = ""; fg = "white"; }
{ name = "R"; text = "󰟔"; fg = "white"; }
{ name = ".zshrc"; text = ""; fg = "white"; }
{ name = ".prettierrc.toml"; text = ""; fg = "white"; }
{ name = ".gvimrc"; text = ""; fg = "white"; }
{ name = ".xsession"; text = ""; fg = "white"; }
{ name = ".justfile"; text = ""; fg = "white"; }
{ name = ".gitconfig"; text = ""; fg = "white"; }
{ name = "gradle-wrapper.properties"; text = ""; fg = "white"; }
{ name = "ionic.config.json"; text = ""; fg = "white"; }
{ name = "cantorrc"; text = ""; fg = "white"; }
{ name = ".gleam"; text = ""; fg = "white"; }
{ name = "package-lock.json"; text = ""; fg = "white"; }
{ name = "package.json"; text = ""; fg = "white"; }
{ name = "hyprland.conf"; text = ""; fg = "white"; }
{ name = "gulpfile.babel.js"; text = ""; fg = "white"; }
{ name = ".nvmrc"; text = ""; fg = "white"; }
{ name = ".prettierignore"; text = ""; fg = "white"; }
{ name = "ext_typoscript_setup.txt"; text = ""; fg = "white"; }
{ name = "QtProject.conf"; text = ""; fg = "white"; }
{ name = "avif"; text = ""; fg = "white"; }
{ name = "mix.lock"; text = ""; fg = "white"; }
{ name = "build.gradle"; text = ""; fg = "white"; }
{ name = "gemfile$"; text = ""; fg = "white"; }
{ name = ".vimrc"; text = ""; fg = "white"; }
{ name = "i18n.config.ts"; text = "󰗊"; fg = "white"; }
{ name = "gulpfile.ts"; text = ""; fg = "white"; }
{ name = "build.zig.zon"; text = ""; fg = "white"; }
{ name = "checkhealth"; text = "󰓙"; fg = "white"; }
{ name = "xmobarrc"; text = ""; fg = "white"; }
{ name = "_vimrc"; text = ""; fg = "white"; }
{ name = ".luaurc"; text = ""; fg = "white"; }
{ name = "kdenlive-layoutsrc"; text = ""; fg = "white"; }
{ name = "gradlew"; text = ""; fg = "white"; }
{ name = "xsettingsd.conf"; text = ""; fg = "white"; }
{ name = "vlcrc"; text = "󰕼"; fg = "white"; }
{ name = "xorg.conf"; text = ""; fg = "white"; }
{ name = "xmobarrc.hs"; text = ""; fg = "white"; }
{ name = "workspace"; text = ""; fg = "white"; }
{ name = ".gitattributes"; text = ""; fg = "white"; }
{ name = "favicon.ico"; text = ""; fg = "white"; }
{ name = "go.sum"; text = ""; fg = "white"; }
{ name = "pom.xml"; text = ""; fg = "white"; }
{ name = "webpack"; text = "󰜫"; fg = "white"; }
{ name = "vagrantfile$"; text = ""; fg = "white"; }
{ name = "unlicense"; text = ""; fg = "white"; }
{ name = "tmux.conf.local"; text = ""; fg = "white"; }
{ name = "settings.gradle"; text = ""; fg = "white"; }
{ name = ".dockerignore"; text = "󰡨"; fg = "white"; }
{ name = "sym-lib-table"; text = ""; fg = "white"; }
{ name = "_gvimrc"; text = ""; fg = "white"; }
{ name = "kdenliverc"; text = ""; fg = "white"; }
{ name = "kdeglobals"; text = ""; fg = "white"; }
{ name = ".prettierrc.yaml"; text = ""; fg = "white"; }
{ name = "rmd"; text = ""; fg = "white"; }
{ name = "tailwind.config.mjs"; text = "󱏿"; fg = "white"; }
{ name = "sxhkdrc"; text = ""; fg = "white"; }
{ name = "robots.txt"; text = "󰚩"; fg = "white"; }
{ name = "tailwind.config.ts"; text = "󱏿"; fg = "white"; }
{ name = "prettier.config.mjs"; text = ""; fg = "white"; }
{ name = "mpv.conf"; text = ""; fg = "white"; }
{ name = "py.typed"; text = ""; fg = "white"; }
{ name = "PrusaSlicer.ini"; text = ""; fg = "white"; }
{ name = "procfile"; text = ""; fg = "white"; }
{ name = "rakefile"; text = ""; fg = "white"; }
{ name = "kritarc"; text = ""; fg = "white"; }
{ name = ".Xresources"; text = ""; fg = "white"; }
{ name = "prettier.config.js"; text = ""; fg = "white"; }
{ name = "commitlint.config.ts"; text = "󰜘"; fg = "white"; }
{ name = "weston.ini"; text = ""; fg = "white"; }
{ name = "eslint.config.js"; text = ""; fg = "white"; }
{ name = "cmakelists.txt"; text = ""; fg = "white"; }
{ name = ".git-blame-ignore-revs"; text = ""; fg = "white"; }
{ name = "config"; text = ""; fg = "white"; }
{ name = "nuxt.config.cjs"; text = "󱄆"; fg = "white"; }
{ name = "node_modules"; text = ""; fg = "white"; }
{ name = "makefile"; text = ""; fg = "white"; }
{ name = "lxqt.conf"; text = ""; fg = "white"; }
{ name = "i18n.config.js"; text = "󰗊"; fg = "white"; }
{ name = "FreeCAD.conf"; text = ""; fg = "white"; }
{ name = "prettier.config.cjs"; text = ""; fg = "white"; }
{ name = "tmux.conf"; text = ""; fg = "white"; }
{ name = "kalgebrarc"; text = ""; fg = "white"; }
{ name = "i3status.conf"; text = ""; fg = "white"; }
{ name = ".settings.json"; text = ""; fg = "white"; }
{ name = "containerfile"; text = "󰡨"; fg = "white"; }
{ name = "i3blocks.conf"; text = ""; fg = "white"; }
{ name = "lxde-rc.xml"; text = ""; fg = "white"; }
{ name = "gradle.properties"; text = ""; fg = "white"; }
{ name = "hypridle.conf"; text = ""; fg = "white"; }
{ name = "gruntfile.ts"; text = ""; fg = "white"; }
{ name = "gruntfile.js"; text = ""; fg = "white"; }
{ name = "dockerfile"; text = "󰡨"; fg = "white"; }
{ name = "groovy"; text = ""; fg = "white"; }
{ name = "hyprlock.conf"; text = ""; fg = "white"; }
{ name = ".prettierrc"; text = ""; fg = "white"; }
{ name = "gnumakefile"; text = ""; fg = "white"; }
{ name = "commit_editmsg"; text = ""; fg = "white"; }
{ name = "fp-lib-table"; text = ""; fg = "white"; }
{ name = "fp-info-cache"; text = ""; fg = "white"; }
{ name = "eslint.config.ts"; text = ""; fg = "white"; }
{ name = "nuxt.config.js"; text = "󱄆"; fg = "white"; }
{ name = "platformio.ini"; text = ""; fg = "white"; }
{ name = ".nuxtrc"; text = "󱄆"; fg = "white"; }
{ name = "gruntfile.coffee"; text = ""; fg = "white"; }
{ name = "eslint.config.mjs"; text = ""; fg = "white"; }
{ name = "compose.yaml"; text = "󰡨"; fg = "white"; }
{ name = "bspwmrc"; text = ""; fg = "white"; }
{ name = "brewfile"; text = ""; fg = "white"; }
{ name = ".eslintrc"; text = ""; fg = "white"; }
{ name = ".gtkrc-2.0"; text = ""; fg = "white"; }
{ name = ".Xauthority"; text = ""; fg = "white"; }
{ name = ".prettierrc.json"; text = ""; fg = "white"; }
{ name = ".npmignore"; text = ""; fg = "white"; }
{ name = ".gitmodules"; text = ""; fg = "white"; }
];
};
};
}

View file

@ -0,0 +1,9 @@
{ pkgs, ... }:
{
programs.zoxide = {
enable = true;
enableFishIntegration = true;
enableZshIntegration = true;
options = [ "--cmd cd" ];
};
}

View file

@ -0,0 +1,35 @@
{ lib, fetchPypi, python3Packages, python3 }:
python3Packages.buildPythonApplication rec{
pname = "anicli_api";
version = "0.6.11";
pyproject = true;
src = fetchPypi {
pname = "anicli_api";
inherit version;
hash = "sha256-1jfPl+Vh7c4zWjQJ/qdvFOhXBvVTX4iqShxoMtbN6j4=";
};
build-system = with python3Packages; [
poetry-core
];
dependencies = with python3Packages; [
( python3.withPackages ( ps: with ps; [ httpx ] ++ httpx.optional-dependencies.http2 ) )
( pkgs.callPackage ./chompjs.nix { } )
attrs
parsel
tqdm
];
dontCheckRuntimeDeps = true;
meta = with lib; {
description = "anicli-api";
homepage = "https://github.com/vypivshiy/anicli-api"; # DEAD
maintainers = with maintainers; [ DADA30000 azikx ];
mainProgram = "anicli-api";
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,33 @@
{ lib, pkgs , fetchPypi, python3Packages }:
python3Packages.buildPythonApplication rec{
pname = "ani-cli-ru";
version = "5.0.12";
pyproject = true;
src = fetchPypi {
pname = "anicli_ru";
inherit version;
hash = "sha256-s8uI0ch+SPqthHy+d0jcB6o5/Zqx89JHM68Q00nwCFA=";
};
build-system = with python3Packages; [
hatchling
setuptools
];
dependencies = [
python3Packages.hatchling
(pkgs.callPackage ./eggella.nix { })
(pkgs.callPackage ./anicli-api.nix { })
];
meta = with lib; {
description = "Script to watch anime from terminal with russian translation, written in python.";
homepage = "https://github.com/vypivshiy/ani-cli-ru"; # DEAD
license = with licenses; [ gpl3Plus ];
maintainers = with maintainers; [ DADA30000 azikx ];
mainProgram = "anicli-ru";
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,30 @@
{ lib, pkgs, fetchPypi, python3Packages }:
python3Packages.buildPythonApplication rec{
pname = "chompjs";
version = "1.3.0";
pyproject = true;
src = fetchPypi {
pname = "chompjs";
inherit version;
hash = "sha256-isCzF1XpOTSPsq8cwBw1fbUMhU+j1QbOeSGPwV8FaGg=";
};
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
setuptools
];
meta = with lib; {
description = "chompjs";
homepage = "https://github.com/Nykakin/chompjs";
license = with licenses; [ mit ];
maintainers = with maintainers; [ DADA30000 ];
mainProgram = "chompjs";
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,32 @@
{ lib, fetchPypi, python3Packages }:
python3Packages.buildPythonApplication rec{
pname = "eggella";
version = "0.1.7";
pyproject = true;
src = fetchPypi {
pname = "eggella";
inherit version;
hash = "sha256-8Vo39BePA86wcLKs/F+u2N7tpIpPrEyEPp3POszy050=";
};
build-system = with python3Packages; [
hatchling
setuptools
];
dependencies = [
python3Packages.prompt-toolkit
python3Packages.rich
python3Packages.typer
];
meta = with lib; {
description = "Framework for easy creating REPL applications.";
homepage = "https://github.com/vypivshiy/eggella"; # DEAD
maintainers = with maintainers; [ DADA30000 azikx ];
mainProgram = "eggella";
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,8 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
(callPackage ./anicliru/anicli-ru.nix { })
(callPackage ./torrserver/default.nix { })
# (callPackage ./termdash/default.nix { })
];
}

View file

@ -0,0 +1,24 @@
{ lib, fetchFromGitHub, rustPlatform }:
rustPlatform.buildRustPackage rec {
pname = "femto";
version = "12.1.1";
src = fetchFromGitHub {
owner = "frapa";
repo = pname;
rev = "922c54ecd4a4a6995fcc71ac9afbdbf70906f201";
hash = "sha256-oeXRqE1ZjLYZUVFp4nx4wP1+om1raSP8FxW7R+ODi80=";
};
cargoHash = lib.fakeHash;
cargoSha256 = lib.fakeSha256;
sourceRoot = "source/workspace-a";
meta = {
description = "Tiny text editor";
homepage = "https://github.com/frapa/femto";
license = lib.licenses.mit;
maintainers = [ "azikx" ];
};
}

View file

@ -0,0 +1,30 @@
{ lib, stdenv, fetchurl, autoPatchelfHook }:
let
version = "0.20.0";
hash = "sha256-WDygG9aGnD20nGxtG0t+T2KEwbJ+fZ0uRaCndirrsXI=";
in
stdenv.mkDerivation {
name = "termdash";
# dontUnpack = true;
src = fetchurl {
url = "https://github.com/mum4k/termdash/archive/refs/tags/v${version}.tar.gz";
sha256 = "${hash}";
};
nativeBuildInputs = [ autoPatchelfHook ];
installPhase = ''
mkdir -p $out/bin
cp $src $out/bin/termdash
chmod +x $out/bin/termdash
'';
meta = with lib; {
description = "termdash";
homepage = "https://github.com/mum4k/termdash";
license = licenses.unlicense;
meta.platforms = platforms.all;
mainProgram = "termdash";
};
}

View file

@ -0,0 +1,31 @@
{ lib, pkgs, rustPlatform, ... }: rustPlatform.buildRustPackage rec {
pname = "tgt";
version = "1.0.0";
src = pkgs.fetchFromGitHub {
owner = "FedericoBruzzone";
repo = "${pname}";
rev = "0d30106e34c7fd0ead4f788d62b6b1dc507b6a02";
hash = "sha256-VQ8JNtLT+UMTAkek9pJ8fqXUW+E6s4XGwJ9rwqwASIQ=";
};
LD_LIBRARY_PATH = lib.makeLibraryPath [ pkgs.tdlib ];
RUST_BACKTRACE = 1;
buildFeatures = [ "download-tdlib" ];
nativeBuildInputs = with pkgs; [ pkg-config openssl tdlib ];
buildInputs = with pkgs; [ pkg-config openssl tdlib ];
cargoHash = "sha256-O3KTYHe8f2ij2FV5gH4myafPzkgA/1sX90GYO/GxUbE=";
meta = with lib; {
description = "Terminal client for Telegram";
homepage = "https://github.com/FedericoBruzzone/tgt";
changelog = "https://github.com/FedericoBruzzone/tgt/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ somokill ];
main_program = "tgt";
};
}

View file

@ -0,0 +1,30 @@
{ lib, pkgs, rustPlatform, ... }: rustPlatform.buildRustPackage rec {
pname = "tgt";
version = "1.0.0";
src = pkgs.fetchFromGitHub {
owner = "FedericoBruzzone";
repo = "${pname}";
rev = "0d30106e34c7fd0ead4f788d62b6b1dc507b6a02";
hash = "sha256-VQ8JNtLT+UMTAkek9pJ8fqXUW+E6s4XGwJ9rwqwASIQ=";
};
# LD_LIBRARY_PATH = lib.makeLibraryPath [ pkgs.tdlib ];
RUST_BACKTRACE = 1;
LOCAL_TDLIB_PATH = "${pkgs.tdlib}/lib";
# buildFeatures = [ "local-tdlib" ];
nativeBuildInputs = with pkgs; [ pkg-config openssl tdlib ];
buildInputs = with pkgs; [ pkg-config openssl tdlib ];
cargoHash = "sha256-O3KTYHe8f2ij2FV5gH4myafPzkgA/1sX90GYO/GxUbE=";
meta = with lib; {
description = "Terminal client for Telegram";
homepage = "https://github.com/FedericoBruzzone/tgt";
changelog = "https://github.com/FedericoBruzzone/tgt/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ somokill azikx ];
main_program = "tgt";
};
}

View file

@ -0,0 +1,30 @@
{ lib, stdenv, fetchurl, autoPatchelfHook }:
let
version = "134";
hash = "sha256-WDygG9aGnD20nGxtG0t+T2KEwbJ+fZ0uRaCndirrsXI=";
in
stdenv.mkDerivation {
name = "torrserver";
dontUnpack = true;
src = fetchurl {
url = "https://github.com/YouROK/TorrServer/releases/download/MatriX.${version}/TorrServer-linux-amd64";
sha256 = "${hash}";
};
nativeBuildInputs = [ autoPatchelfHook ];
installPhase = ''
mkdir -p $out/bin
cp $src $out/bin/torrserver
chmod +x $out/bin/torrserver
'';
meta = with lib; {
description = "Torrserver";
homepage = "https://github.com/yt-dlp/yt-dlp";
license = licenses.unlicense;
meta.platforms = platforms.all;
mainProgram = "torrserver";
};
}

View file

@ -0,0 +1,9 @@
{
imports = [
./custom-pkgs
./shells
./misc
./cli
./gui
];
}

View file

@ -0,0 +1,108 @@
{ ... }:
{
home.file = {
".local/share/AyuGramDesktop/tdata/ayu_settings.json".text = ''
{
"appIcon": "chibi2",
"channelBottomButton": 0,
"collapseSimilarChannels": true,
"deletedMark": "deleted",
"disableAds": true,
"disableCustomBackgrounds": false,
"disableNotificationsDelay": false,
"disableStories": false,
"editedMark": "edited",
"gifConfirmation": false,
"hideAllChatsFolder": true,
"hideFromBlocked": false,
"hideNotificationBadge": false,
"hideNotificationCounters": false,
"hideSimilarChannels": false,
"increaseWebviewHeight": false,
"increaseWebviewWidth": false,
"localPremium": true,
"markReadAfterAction": true,
"monoFont": "JetBrainsMono Nerd Font Mono",
"recentStickersCount": 40,
"saveDeletedMessages": true,
"saveMessagesHistory": true,
"sendOfflinePacketAfterOnline": false,
"sendOnlinePackets": true,
"sendReadMessages": true,
"sendReadStories": false,
"sendUploadProgress": true,
"showGhostToggleInDrawer": true,
"showGhostToggleInTray": true,
"showHideMessageInContextMenu": 0,
"showLReadToggleInDrawer": true,
"showMessageDetailsInContextMenu": 2,
"showMessageSeconds": false,
"showMessageShot": true,
"showPeerId": 2,
"showReactionsPanelInContextMenu": 1,
"showSReadToggleInDrawer": true,
"showStreamerToggleInDrawer": false,
"showStreamerToggleInTray": false,
"showUserMessagesInContextMenu": 2,
"showViewsPanelInContextMenu": 1,
"simpleQuotesAndReplies": true,
"spoofWebviewAsAndroid": false,
"stickerConfirmation": false,
"useScheduledMessages": false,
"voiceConfirmation": false
}
'';
".local/share/AyuGramDesktop/tdata/shortcuts-custom.json".text = ''
[
{
"command": "quit_telegram",
"keys": "alt+q"
},
{
"command": "folder1",
"keys": "alt+1"
},
{
"command": "folder2",
"keys": "alt+2"
},
{
"command": "folder3",
"keys": "alt+3"
},
{
"command": "show_archive",
"keys": "alt+0"
},
{
"command": "search",
"keys": "alt+/"
},
{
"command": "show_contacts",
"keys": "alt+g"
},
{
"command": "next_chat",
"keys": "alt+j"
},
{
"command": "previous_chat",
"keys": "alt+k"
},
{
"command": "next_folder",
"keys": "alt+l"
},
{
"command": "previous_folder",
"keys": "alt+h"
},
{
"command": "media_playpause",
"keys": "alt+p"
}
]
'';
};
}

View file

@ -0,0 +1,13 @@
{
imports = [
./spotify
./obs-studio
./ayugram
./firefox
./qbittorrent
./mpv
./swayimg
./pkgs.nix
];
}

View file

@ -0,0 +1,67 @@
{ pkgs, inputs, ... }:
{
imports = [
./user
./settings.nix
./search.nix
];
programs.firefox = {
enable = true;
languagePacks = [ "ru" ];
profiles.dragora = {
id = 0;
name = "megamozg";
isDefault = true;
extensions = with inputs.firefox-addons.packages."x86_64-linux"; [
#VERY IMPORTANT
omnisearch
ublock-origin
sponsorblock
darkreader
vimium-c
newtab-adapter
censor-tracker
# MISC
tabcenter-reborn
firefox-color
stylus
translate-web-pages
];
};
policies = {
CaptivePortal = false;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
# DisableFirefoxAccounts = true;
DisableFormHistory = true;
DisplayBookmarksToolbar = false;
DontCheckDefaultBrowser = true;
DisableProfileRefresh = true;
PromptForDownloadLocation = false;
NetworkPrediction = false;
showSearchBar = true;
DisableSetDesktopBackground = true;
LegacyProfiles = true;
ManualAppUpdateOnly = true;
DisableFirefoxScreenshots = true;
HardwareAcceleration = true;
FirefoxHome = {
Pocket = false;
Snippets = false;
};
SanitizeOnShutdown = {
Cache = true;
History = false;
Cookies = false;
Downloads = true;
FormData = true;
Sessions = true;
OfflineApps = true;
};
PasswordManagerEnabled = true;
};
};
}

View file

@ -0,0 +1,27 @@
{ pkgs, ... }:
{
programs.firefox.profiles.dragora = {
search = {
force = true;
default = "Google";
engines = {
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages?channel=unstable";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
"Bing".metaData.hidden = true;
"DuckDuckGo".metaData.hidden = true;
"Wikipedia (en)".metaData.hidden = true;
"Google".metaData.alias = "@g";
};
};
};
}

View file

@ -0,0 +1,165 @@
{ ... }:
{
programs.firefox.profiles.dragora.settings = {
# OTHER
"layers.acceleration.force-enabled" = true;
"gfx.webrender.all" = true;
"svg.context-properties.content.enabled" = true;
"ui.key.menuAccessKeyFocuses" = false;
# FASTFOX
"content.notify.interval" = 100000;
"gfx.canvas.accelerated.cache-items" = 4096;
"gfx.canvas.accelerated.cache-size" = 512;
"gfx.content.skia-font-cache-size" = 20;
"browser.cache.jsbc_compression_level" = 3;
"media.memory_cache_max_size" = 65536;
"media.cache_readahead_limit" = 7200;
"media.cache_resume_threshold" = 3600;
"image.mem.decode_bytes_at_a_time" = 32768;
"network.http.max-connections" = 1800;
"network.http.max-persistent-connections-per-server" = 10;
"network.http.max-urgent-start-excessive-connections-per-host" = 5;
"network.http.pacing.requests.enabled" = false;
"network.dnsCacheExpiration" = 3600;
"network.ssl_tokens_cache_capacity" = 10240;
"network.dns.disablePrefetch" = true;
"network.dns.disablePrefetchFromHTTPS" = true;
"network.prefetch-next" = false;
"network.predictor.enabled" = false;
"network.predictor.enable-prefetch" = false;
"layout.css.grid-template-masonry-value.enabled" =true;
"dom.enable_web_task_scheduling" = true;
"dom.security.sanitizer.enabled" =true;
# SECUREFOX
"browser.contentblocking.category" = "strict";
"urlclassifier.trackingSkipURLs" = "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com";
"urlclassifier.features.socialtracking.skipURLs" = "*.instagram.com, *.twitter.com, *.twimg.com";
"network.cookie.sameSite.noneRequiresSecure" = true;
"browser.download.start_downloads_in_tmp_dir" = true;
"browser.helperApps.deleteTempFileOnExit" = true;
"browser.uitour.enabled" = false;
"privacy.globalprivacycontrol.enabled" = true;
"security.OCSP.enabled" = 0;
"security.remote_settings.crlite_filters.enabled" = true;
"security.pki.crlite_mode" = 2;
"security.ssl.treat_unsafe_negotiation_as_broken" = true;
"browser.xul.error_pages.expert_bad_cert" = true;
"security.tls.enable_0rtt_data" = false;
"browser.privatebrowsing.forceMediaMemoryCache" = true;
"browser.sessionstore.interval" = 60000;
"privacy.history.custom" = true;
"browser.urlbar.trimHttps" = true;
"browser.urlbar.untrimOnUserInteraction.featureGate" = true;
"browser.search.separatePrivateDefault.ui.enabled" = true;
"browser.urlbar.update2.engineAliasRefresh" = true;
"browser.search.suggest.enabled" = false;
"browser.urlbar.quicksuggest.enabled" = false;
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
"browser.urlbar.suggest.quicksuggest.nonsponsored" = false;
"browser.urlbar.groupLabels.enabled" = false;
"browser.formfill.enable" = false;
"security.insecure_connection_text.enabled" = true;
"security.insecure_connection_text.pbmode.enabled" = true;
"network.IDN_show_punycode" = true;
"dom.security.https_first" = true;
"signon.formlessCapture.enabled" = false;
"signon.privateBrowsingCapture.enabled" = false;
"network.auth.subresource-http-auth-allow" = 1;
"editor.truncate_user_pastes" = false;
"security.mixed_content.block_display_content" = true;
"pdfjs.enableScripting" = false;
"extensions.postDownloadThirdPartyPrompt" = false;
"network.http.referer.XOriginTrimmingPolicy" = 2;
"privacy.userContext.ui.enabled" = true;
"media.peerconnection.ice.proxy_only_if_behind_proxy" = true;
"media.peerconnection.ice.default_address_only" = true;
"browser.safebrowsing.downloads.remote.enabled" = false;
"permissions.default.desktop-notification" = 2;
"permissions.default.geo" = 2;
"permissions.manager.defaultsUrl" = "";
"webchannel.allowObject.urlWhitelist" = "";
"datareporting.policy.dataSubmissionEnabled" = false;
"datareporting.healthreport.uploadEnabled" = false;
"toolkit.telemetry.unified" = false;
"toolkit.telemetry.enabled" = false;
"toolkit.telemetry.server" = "data:,";
"toolkit.telemetry.archive.enabled" = false;
"toolkit.telemetry.newProfilePing.enabled" = false;
"toolkit.telemetry.shutdownPingSender.enabled" = false;
"toolkit.telemetry.updatePing.enabled" = false;
"toolkit.telemetry.bhrPing.enabled" = false;
"toolkit.telemetry.firstShutdownPing.enabled" = false;
"toolkit.telemetry.coverage.opt-out" = true;
"toolkit.coverage.opt-out" = true;
"toolkit.coverage.endpoint.base" = "";
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
"browser.newtabpage.activity-stream.telemetry" = false;
"app.shield.optoutstudies.enabled" = false;
"app.normandy.enabled" = false;
"app.normandy.api_url" = "";
"breakpad.reportURL" = "";
"browser.tabs.crashReporting.sendReport" = false;
"browser.crashReports.unsubmittedCheck.autoSubmit2" = false;
"captivedetect.canonicalURL" = "";
"network.captive-portal-service.enabled" = false;
"network.connectivity-service.enabled" = false;
# PESKYFOX
"browser.privatebrowsing.vpnpromourl" = "";
"extensions.getAddons.showPane" = false;
"extensions.htmlaboutaddons.recommendations.enabled" = false;
"browser.discovery.enabled" = false;
"browser.shell.checkDefaultBrowser" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false;
"browser.preferences.moreFromMozilla" = false;
"browser.aboutConfig.showWarning" = false;
"browser.aboutwelcome.enabled" = false;
"browser.tabs.tabmanager.enabled" = false;
"browser.profiles.enabled" = true;
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
"browser.compactmode.show" = true;
"browser.display.focus_ring_on_anything" = true;
"browser.display.focus_ring_style" = 0;
"browser.display.focus_ring_width" = 0;
"layout.css.prefers-color-scheme.content-override" = 2;
"browser.newtabpage.activity-stream.newtabWallpapers.v2.enabled" = true;
"cookiebanners.service.mode" = 1;
"cookiebanners.service.mode.privateBrowsing" = 1;
"full-screen-api.transition-duration.enter" = "0 0";
"full-screen-api.transition-duration.leave" = "0 0";
"full-screen-api.warning.delay" = -1;
"full-screen-api.warning.timeout" = 0;
"browser.urlbar.suggest.engines" = false;
"browser.urlbar.suggest.searches" = false;
"browser.urlbar.suggest.calculator" = true;
"browser.urlbar.unitConversion.enabled" = true;
"browser.urlbar.trending.featureGate" = false;
"browser.newtabpage.activity-stream.feeds.topsites" = false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
"extensions.pocket.enabled" = false;
"browser.download.manager.addToRecentDocs" = false;
"browser.download.open_pdf_attachments_inline" = true;
"browser.bookmarks.openInTabClosesMenu" = false;
"browser.menu.showViewImageInfo" = true;
"findbar.highlightAll" = true;
"layout.word_select.eat_space_to_next_word" = false;
"browser.startup.page" = 1;
# SMOOTHFOX
"general.smoothScroll" = true;
"general.smoothScroll.msdPhysics.continuousMotionMaxDeltaMS" = 12;
"general.smoothScroll.msdPhysics.enabled" = true;
"general.smoothScroll.msdPhysics.motionBeginSpringConstant" = 600;
"general.smoothScroll.msdPhysics.regularSpringConstant" = 650;
"general.smoothScroll.msdPhysics.slowdownMinDeltaMS" = 25;
"general.smoothScroll.msdPhysics.slowdownMinDeltaRatio" = "2";
"general.smoothScroll.msdPhysics.slowdownSpringConstant" = 250;
"general.smoothScroll.stopDecelerationWeighting" = "0.6";
"general.smoothScroll.currentVelocityWeighting" = "0.15";
"mousewheel.default.delta_multiplier_y" = 300;
"mousewheel.min_line_scroll_amount" = 10;
};
}

View file

@ -0,0 +1,112 @@
{ ... }:
{
programs.firefox.profiles.dragora.userChrome = ''
/*---+---+---+---+---+---+---+
| C | O | L | O | U | R | S |
+---+---+---+---+---+---+---*/
@media (prefers-color-scheme: dark) { :root {
/* These colours are (mainly) used by the
Container Tabs Plugin */
--uc-identity-colour-blue: #8DA3B9;
--uc-identity-colour-turquoise: #8AA6A2;
--uc-identity-colour-green: #8C977D;
--uc-identity-colour-yellow: #D9BC8C;
--uc-identity-colour-orange: #D9BC8C;
--uc-identity-colour-red: #B66467;
--uc-identity-colour-pink: #A988B0;
--uc-identity-colour-purple: #A988B0;
/* Cascades main Colour Scheme */
--uc-base-colour: #151515;
--uc-highlight-colour: #1F1F1F;
--uc-inverted-colour: #E8E3E3;
--uc-muted-colour: #BBB6B6;
--uc-accent-colour: var(--uc-identity-colour-purple);
}}
@media (prefers-color-scheme: light) { :root {
/* These colours are (mainly) used by the
Container Tabs Plugin */
--uc-identity-colour-blue: #1D65F5;
--uc-identity-colour-turquoise: #209FB5;
--uc-identity-colour-green: #40A02B;
--uc-identity-colour-yellow: #E49320;
--uc-identity-colour-orange: #FE640B;
--uc-identity-colour-red: #FC5C65;
--uc-identity-colour-pink: #EC83D0;
--uc-identity-colour-purple: #822FEE;
/* Cascades main Colour Scheme */
--uc-base-colour: #FAFAFC;
--uc-highlight-colour: #DADADC;
--uc-inverted-colour: #1E2021;
--uc-muted-colour: #191B1C;
--uc-accent-colour: var(--uc-identity-colour-purple);
}}
/* Down here I'm just reassigning variables based on the colours set above.
Feel free to play around with these but there is no editing necessary below this line. c:
*/
:root {
--lwt-frame: var(--uc-base-colour) !important;
--lwt-accent-color: var(--lwt-frame) !important;
--lwt-text-color: var(--uc-inverted-colour) !important;
--toolbar-field-color: var(--uc-inverted-colour) !important;
--toolbar-field-focus-color: var(--uc-inverted-colour) !important;
--toolbar-field-focus-background-color: var(--uc-highlight-colour) !important;
--toolbar-field-focus-border-color: transparent !important;
--toolbar-field-background-color: var(--lwt-frame) !important;
--lwt-toolbar-field-highlight: var(--uc-inverted-colour) !important;
--lwt-toolbar-field-highlight-text: var(--uc-highlight-colour) !important;
--urlbar-popup-url-color: var(--uc-accent-colour) !important;
--lwt-tab-text: var(--lwt-text-colour) !important;
--lwt-selected-tab-background-color: var(--uc-highlight-colour) !important;
--toolbar-bgcolor: var(--lwt-frame) !important;
--toolbar-color: var(--lwt-text-color) !important;
--toolbarseparator-color: var(--uc-accent-colour) !important;
--toolbarbutton-hover-background: var(--uc-highlight-colour) !important;
--toolbarbutton-active-background: var(--toolbarbutton-hover-background) !important;
--lwt-sidebar-background-color: var(--lwt-frame) !important;
--sidebar-background-color: var(--lwt-sidebar-background-color) !important;
--urlbar-box-bgcolor: var(--uc-highlight-colour) !important;
--urlbar-box-text-color: var(--uc-muted-colour) !important;
--urlbar-box-hover-bgcolor: var(--uc-highlight-colour) !important;
--urlbar-box-hover-text-color: var(--uc-inverted-colour) !important;
--urlbar-box-focus-bgcolor: var(--uc-highlight-colour) !important;
}
.identity-color-blue { --identity-tab-color: var(--uc-identity-colour-blue) !important; --identity-icon-color: var(--uc-identity-colour-blue) !important; }
.identity-color-turquoise { --identity-tab-color: var(--uc-identity-colour-turquoise) !important; --identity-icon-color: var(--uc-identity-colour-turquoise) !important; }
.identity-color-green { --identity-tab-color: var(--uc-identity-colour-green) !important; --identity-icon-color: var(--uc-identity-colour-green) !important; }
.identity-color-yellow { --identity-tab-color: var(--uc-identity-colour-yellow) !important; --identity-icon-color: var(--uc-identity-colour-yellow) !important; }
.identity-color-orange { --identity-tab-color: var(--uc-identity-colour-orange) !important; --identity-icon-color: var(--uc-identity-colour-orange) !important; }
.identity-color-red { --identity-tab-color: var(--uc-identity-colour-red) !important; --identity-icon-color: var(--uc-identity-colour-red) !important; }
.identity-color-pink { --identity-tab-color: var(--uc-identity-colour-pink) !important; --identity-icon-color: var(--uc-identity-colour-pink) !important; }
.identity-color-purple { --identity-tab-color: var(--uc-identity-colour-purple) !important; --identity-icon-color: var(--uc-identity-colour-purple) !important; }
'';
}

View file

@ -0,0 +1,166 @@
{ ... }:
{
programs.firefox.profiles.dragora.userChrome = ''
/*---+---+---+---+---+---+
| G | L | O | B | A | L |
+---+---+---+---+---+---*/
:root {
/* Global Border Radius
* applied to ALL UI elements
*/ --uc-border-radius: 12px;
/* The distance the Statuspanel floats
* away from the window border
* 0 places directly in the corner
*/ --uc-status-panel-spacing: 12px;
}
/* remove window control buttons */
.titlebar-buttonbox-container { display: none !important; }
#pageActionButton { display: none !important; }
#PanelUI-menu-button { padding: 0px !important; }
#PanelUI-menu-button .toolbarbutton-icon { width: 1px !important; }
#PanelUI-menu-button .toolbarbutton-badge-stack { padding: 0px !important; }
/*---+---+---+---+---+---+---+
| T | O | O | L | B | A | R |
+---+---+---+---+---+---+---*/
/* Position of the Personal Toolbar
* possible values:
* 0 toolbar on top
* 4 toolbar on bottom
*/
:root {
--uc-toolbar-position: 0;
}
/* Darken the Personal Toolbar by X amount
* where X = 1 means pure black
* and X = 0 means no darkening at all
*/
@media (prefers-color-scheme: dark) { :root {
--uc-darken-toolbar: 0.2;
}} @media (prefers-color-scheme: light) { :root {
--uc-darken-toolbar: 0;
}}
/*---+---+---+---+---+---+---+
| U | R | L | | B | A | R |
+---+---+---+---+---+---+---*/
:root {
/* Width of the URL Bar for the Oneline layout
* If enabled the max-width is applied on focus
* otherwise the URL Bar will always be it's min-width
*/ --uc-urlbar-min-width: 0vw;
--uc-urlbar-max-width: 100vw;
/* Position of the URL Bar
* possible values:
* 1 tabs on the right
* 3 tabs on the left
*/ --uc-urlbar-position: 1;
/* Firefox can be a little wonky with the vertical
* URL Bar placement. Change this variable to adapt
* to this when necessary.
*/ --uc-urlbar-top-spacing: 1px;
}
/* Disable the Navigation Buttons */
#back-button,
#forward-button { display: none !important; }
/* Disables the Tracking Protection Shield */
/* #tracking-protection-icon-container { display: none !important; } */
/* Encryption and Permissions icons */
/* Only hides permission items */
#identity-permission-box { display: none !important; }
/* Hides encryption AND permission items */
/* #identity-box { display: none !important } */
/* Hide everything BUT the zoom indicator within the URL Bar */
/* #page-action-buttons > :not(#urlbar-zoom-button) { display: none !important; } */
/* Hide the »Go«-arrow in the URL Bar */
#urlbar-go-button { display: none !important; }
/* Hides the Extensions Menu Icon */
#unified-extensions-button { display: -moz-inline-block !important; }
/*---+---+---+---+---+---+---+
| T | A | B | | B | A | R |
+---+---+---+---+---+---+---*/
:root {
/* Allow tabs to have dynamic widths based on
* the Tab Bars maximum width
*/ --uc-active-tab-width: clamp(100px, 18vw, 170px);
--uc-inactive-tab-width: clamp(100px, 15vw, 90px);
/* Enable this to always show the Tab Close button
* possible values:
* show: -moz-inline-block
* hide: none
*/ --show-tab-close-button: none;
/* Enable this to only show the Tab Close button on tab hover
* possible values:
* show: -moz-inline-block
* hide: none
*/ --show-tab-close-button-hover: none;
/* Hide the all Tabs button from the Tab Bar
* possible values:
* show: -moz-box
* hide: none
*/ --uc-show-all-tabs-button: none;
/* Left and Right "dip" of the container indicator
* 0px equals tab width
* higer values make the indicator smaller
*/ --container-tabs-indicator-margin: 10px;
/* Amount of Glow to add to the container indicator
* Setting it to 0 disables the Glow
*/ --uc-identity-glow: 0 1px 10px 1px;
}
/* Hide the secondary Tab Label
* e.g. playing indicator (the text, not the icon) */
.tab-secondary-label { display: none !important; }
'';
}

View file

@ -0,0 +1,11 @@
{
imports = [
./colors.nix
./config.nix
./layout.nix
./navbar.nix
# ./resp.nix
./tabs.nix
./tcr.nix
];
}

View file

@ -0,0 +1,66 @@
{ ... }:
{
programs.firefox.profiles.dragora.userChrome = ''
:root {
--toolbarbutton-border-radius: var(--uc-border-radius) !important;
--tab-border-radius: var(--uc-border-radius) !important;
--arrowpanel-border-radius: var(--uc-border-radius) !important;
}
#main-window,
#toolbar-menubar,
#TabsToolbar,
#navigator-toolbox,
#sidebar-box,
#nav-bar { box-shadow: none !important; }
#main-window,
#toolbar-menubar,
#TabsToolbar,
#PersonalToolbar,
#navigator-toolbox,
#sidebar-box,
#nav-bar { border: none !important; }
/* remove "padding" left and right from tabs */
.titlebar-spacer { display: none !important; }
/* fix Shield Icon padding */
#urlbar-input-container[pageproxystate="valid"]
> #tracking-protection-icon-container
> #tracking-protection-icon-box
> #tracking-protection-icon {
padding-bottom: 1px;
}
#PersonalToolbar {
padding: 6px !important;
box-shadow: inset 0 0 50vh rgba(0, 0, 0, var(--uc-darken-toolbar)) !important;;
}
#statuspanel #statuspanel-label {
border: none !important;
border-radius: var(--uc-border-radius) !important;
}
'';
}

View file

@ -0,0 +1,52 @@
{ ... }:
{
programs.firefox.profiles.dragora.userChrome = ''
#navigator-toolbox:not(:-moz-lwtheme) { background: var(--toolbar-field-background-color) !important; }
#nav-bar {
padding-block-start: 0px !important;
border: none !important;
box-shadow: none !important;
background: transparent !important;
}
#urlbar,
#urlbar * {
padding-block-start: var(--uc-urlbar-top-spacing) !important;
outline: none !important;
box-shadow: none !important;
}
#urlbar-background { border: transparent !important; }
#urlbar[focused='true']
> #urlbar-background,
#urlbar:not([open])
> #urlbar-background { background: var(--toolbar-field-background-color) !important; }
#urlbar[open]
> #urlbar-background { background: var(--toolbar-field-background-color) !important; }
.urlbarView-row:hover
> .urlbarView-row-inner,
.urlbarView-row[selected]
> .urlbarView-row-inner { background: var(--toolbar-field-focus-background-color) !important; }
.urlbar-icon, #urlbar-go-button { margin: auto; }
.urlbar-page-action { padding: 0 inherit !important; }
.urlbar-page-action .urlbar-icon { margin-top: 6px !important; }
'';
}

View file

@ -0,0 +1,14 @@
{ ... }:
{
programs.firefox.profiles.dragora.userChrome = ''
@media (min-width: 1000px) {
#nav-bar { margin: calc((var(--urlbar-min-height) * -1) - 12px) calc(100vw - var(--uc-urlbar-min-width)) 0 0 !important; }
#titlebar { margin-inline-start: var(--uc-urlbar-min-width) !important; }
#navigator-toolbox:focus-within #nav-bar { margin: calc((var(--urlbar-min-height) * -1) - 12px) calc(100vw - var(--uc-urlbar-max-width)) 0 0 !important; }
#navigator-toolbox:focus-within #titlebar { margin-inline-start: var(--uc-urlbar-max-width) !important; }
}
'';
}

View file

@ -0,0 +1,160 @@
{ ... }:
{
programs.firefox.profiles.dragora.userChrome = ''
/* remove gap after pinned tabs */
#tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs])
> #tabbrowser-arrowscrollbox
> .tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) { margin-inline-start: 0 !important; }
/* Hides the list-all-tabs button*/
#alltabs-button { display: var(--uc-show-all-tabs-button) !important; }
/* remove tab shadow */
.tabbrowser-tab
>.tab-stack
> .tab-background { box-shadow: none !important; }
/* multi tab selection */
#tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([multiselected])
> .tab-stack
> .tab-background:-moz-lwtheme { outline-color: var(--toolbarseparator-color) !important; }
/* tab close button options */
.tabbrowser-tab:not([pinned]) .tab-close-button { display: var(--show-tab-close-button) !important; }
.tabbrowser-tab:not([pinned]):hover .tab-close-button { display: var(--show-tab-close-button-hover) !important }
/* adaptive tab width */
.tabbrowser-tab[selected][fadein]:not([pinned]) { max-width: var(--uc-active-tab-width) !important; }
.tabbrowser-tab[fadein]:not([selected]):not([pinned]) { max-width: var(--uc-inactive-tab-width) !important; }
/* container tabs indicator */
.tabbrowser-tab[usercontextid]
> .tab-stack
> .tab-background
> .tab-context-line {
margin: -1px var(--container-tabs-indicator-margin) 0 var(--container-tabs-indicator-margin) !important;
height: 1px !important;
box-shadow: var(--uc-identity-glow) var(--identity-tab-color) !important;
}
/* show favicon when media is playing but tab is hovered */
.tab-icon-image:not([pinned]) { opacity: 1 !important; }
/* Makes the speaker icon to always appear if the tab is playing (not only on hover) */
.tab-icon-overlay:not([crashed]),
.tab-icon-overlay[pinned][crashed][selected] {
top: 5px !important;
z-index: 1 !important;
padding: 1.5px !important;
inset-inline-end: -8px !important;
width: 16px !important; height: 16px !important;
border-radius: 10px !important;
}
/* style and position speaker icon */
.tab-icon-overlay:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) {
stroke: transparent !important;
background: transparent !important;
opacity: 1 !important; fill-opacity: 0.8 !important;
color: currentColor !important;
stroke: var(--toolbar-bgcolor) !important;
background-color: var(--toolbar-bgcolor) !important;
}
/* change the colours of the speaker icon on active tab to match tab colours */
.tabbrowser-tab[selected] .tab-icon-overlay:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) {
stroke: var(--toolbar-bgcolor) !important;
background-color: var(--toolbar-bgcolor) !important;
}
.tab-icon-overlay:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { margin-inline-end: 9.5px !important; }
.tabbrowser-tab:not([image]) .tab-icon-overlay:not([pinned], [sharing], [crashed]) {
top: 0 !important;
padding: 0 !important;
margin-inline-end: 5.5px !important;
inset-inline-end: 0 !important;
}
.tab-icon-overlay:not([crashed])[soundplaying]:hover,
.tab-icon-overlay:not([crashed])[muted]:hover,
.tab-icon-overlay:not([crashed])[activemedia-blocked]:hover {
color: currentColor !important;
stroke: var(--toolbar-color) !important;
background-color: var(--toolbar-color) !important;
fill-opacity: 0.95 !important;
}
.tabbrowser-tab[selected] .tab-icon-overlay:not([crashed])[soundplaying]:hover,
.tabbrowser-tab[selected] .tab-icon-overlay:not([crashed])[muted]:hover,
.tabbrowser-tab[selected] .tab-icon-overlay:not([crashed])[activemedia-blocked]:hover {
color: currentColor !important;
stroke: var(--toolbar-color) !important;
background-color: var(--toolbar-color) !important;
fill-opacity: 0.95 !important;
}
/* speaker icon colour fix */
#TabsToolbar .tab-icon-overlay:not([crashed])[soundplaying],
#TabsToolbar .tab-icon-overlay:not([crashed])[muted],
#TabsToolbar .tab-icon-overlay:not([crashed])[activemedia-blocked] { color: var(--toolbar-color) !important; }
/* speaker icon colour fix on hover */
#TabsToolbar .tab-icon-overlay:not([crashed])[soundplaying]:hover,
#TabsToolbar .tab-icon-overlay:not([crashed])[muted]:hover,
#TabsToolbar .tab-icon-overlay:not([crashed])[activemedia-blocked]:hover { color: var(--toolbar-bgcolor) !important; }
/* selected tab colour fix*/
.tabbrowser-tab[selected] .tab-content {
background-color: var(--uc-highlight-colour) !important;
}
'';
}

View file

@ -0,0 +1,42 @@
{ ... }:
{
programs.firefox.profiles.dragora.userChrome = ''
#TabsToolbar { display: none !important; }
#nav-bar { width: 100vw !important; }
#browser { position: relative; }
#sidebar-box[sidebarcommand*="tabcenter"] #sidebar-header { display: none; }
#sidebar-box[sidebarcommand*="tabcenter"]:not([hidden]) {
display: block;
position: absolute;
top: 0; bottom: 0;
z-index: 1;
min-width: 50px !important; max-width: 50px !important;
border-right: none;
transition: all 0.2s ease;
overflow: hidden;
}
[sidebarcommand*="tabcenter"] #sidebar,
#sidebar-box[sidebarcommand*="tabcenter"]:hover { min-width: 10vw !important; width: 30vw !important; max-width: 250px !important; }
[sidebarcommand*="tabcenter"] #sidebar { height: 100%; max-height: 100%; }
#sidebar-box[sidebarcommand*="tabcenter"]:not([hidden]) ~ #appcontent { margin-left: 50px; }
#main-window[inFullscreen][inDOMFullscreen] #appcontent { margin-left: 0; }
/* Removes gap between active tab highlight and edge of bar */
#sidebar-box[sidebarcommand="tabcenter-reborn_ariasuni-sidebar-action"] #sidebar-header, #sidebar-box[sidebarcommand="tabcenter-reborn_ariasuni-sidebar-action"] ~ #sidebar-splitter {
display: none;
}
'';
}

View file

@ -0,0 +1,9 @@
{ ... }:
{
programs.firefox.profiles.dragora.userChrome = ''
* {
font-family: "JetBrainsMono Nerd Font" !important;
font-size: 12pt !important;
}
'';
}

View file

@ -0,0 +1,32 @@
{ ... }:
let
repo = "https://github.com/axax-loll/fuji-wallpapers/blob/main";
in
{
programs.firefox.profiles.dragora.userContent = ''
@-moz-document url(about:home), url(about:newtab), url(about:privatebrowsing) {
.click-target-container *, .top-sites-list * {
color: #fff !important ;
text-shadow: 2px 2px 2px #222 !important ;
}
body::before {
content: "" ;
z-index: -1 ;
position: fixed ;
top: 0 ;
left: 0 ;
background: #0F0F0F no-repeat url("${repo}/synth.png?raw=true") center ;
background-size: cover ;
width: 100vw ;
height: 100vh ;
}
.logo { background-image: url("${repo}/logo.png?raw=true") !important; }
.search-wrapper input { background: #0F0F0F !important; }
#PlacesToolbarItems {
width: 100%;
display: flex;
justify-content: center;
}
}
'';
}

View file

@ -0,0 +1,8 @@
{
imports = [
./cascade
./chrome.nix
./content.nix
];
}

View file

@ -0,0 +1,439 @@
{ config, ... }:
{
programs.firefox.profiles.dragora.userChrome = with config.lib.stylix.colors; ''
/*========================================================================================================*
+-----+-----+-----+-----+-----+-----+-----+
| | | | | | | |
| | || | | | |
+-----+-----+-----+-----+-----+-----+-----+ Mouse Edition.
Description: Cascade, Mouse Edition, is a Firefox Style based on the Cascade theme by Andreas Grafen
What you get is a really simple one-line layout using the new Proton UI.
The original Cascade Theme by Andreas Grafen was based on SimpleFox :
> SimpleFox: https://github.com/migueravila/SimpleFox
Authors: Andreas Grafen (original cascade theme)
(https://andreas.grafen.info)
Clément Rambaud (minor tweaks on the original file)
Repository: https://github.com/andreasgrafen/cascade
https://github.com/crambaud/cascade
*========================================================================================================*/
/*---+---+---+---+---+---+
| C | O | N | F | I | G |
+---+---+---+---+---+---*/
/* Feel free to tweak the following
* config settingsto your own liking. */
:root {
/*---+---+---+---+---+---+---+
| C | O | L | O | U | R | S |
+---+---+---+---+---+---+---*/
/* Comment the color theme you don't want to use */
/* Dark Theme Colors */
--window-colour: #${base00};
--secondary-colour: #${base01};
--inverted-colour: #${base07};
/* Light Theme Colors
--window-colour: #FAFAFC;
--secondary-colour: #EAEAEC;
--inverted-colour: #1E2021;
*/
/* Containter Tab Colours */
--uc-identity-colour-blue: #${base0D};
--uc-identity-colour-turquoise: #${base0C};
--uc-identity-colour-green: #${base0B};
--uc-identity-colour-yellow: #${base09};
--uc-identity-colour-orange: #${base0A};
--uc-identity-colour-red: #${base08};
--uc-identity-colour-pink: #${base0F};
--uc-identity-colour-purple: #${base0E};
/* URL colour in URL bar suggestions */
--urlbar-popup-url-color: var(--uc-identity-color-purple) !important;
/*---+---+---+---+---+---+---+
| V | I | S | U | A | L | S |
+---+---+---+---+---+---+---*/
/* global border radius */
--uc-border-radius: 16;
/* dynamic url bar width settings */
--uc-urlbar-width: clamp(250px, 50vw, 500px);
/* dynamic tab width settings */
--uc-active-tab-width: clamp( 50px, 18vw, 170px);
--uc-inactive-tab-width: clamp( 50px, 15vw, 90px);
/* if active always shows the tab close button */
--show-tab-close-button: none; /* DEFAULT: -moz-inline-box; */
/* if active only shows the tab close button on hover*/
--show-tab-close-button-hover: none; /* DEFAULT: -moz-inline-box; */
/* adds left and right margin to the container-tabs indicator */
--container-tabs-indicator-margin: 0px;
}
/*---+---+---+---+---+---+---+
| B | U | T | T | O | N | S |
+---+---+---+---+---+---+---*/
/* showing only the back button */
#back-button{ display: -moz-inline-box !important; }
#forward-button{ display: none !important; }
#stop-button{ display: none !important; }
#reload-button{ display: none !important; }
/* bookmark icon */
#star-button{ display: none !important; }
/* zoom indicator */
#urlbar-zoom-button { display: none !important; }
/* Show Hamburger Menu */
#PanelUI-button { display: -moz-inline-box !important;}
#reader-mode-button{ display: none !important; }
/* tracking protection shield icon */
#tracking-protection-icon-container { display: none !important; }
/* #identity-box { display: none !important } /* hides encryption AND permission items */
#identity-permission-box { display: none !important; } /* only hides permission items */
/* e.g. playing indicator (secondary - not icon) */
.tab-secondary-label { display: none !important; }
#pageActionButton { display: none !important; }
#page-action-buttons { display: none !important; }
/*=============================================================================================*/
/*---+---+---+---+---+---+
| L | A | Y | O | U | T |
+---+---+---+---+---+---*/
/* No need to change anything below this comment.
* Just tweak it if you want to tweak the overall layout. c: */
:root {
--uc-theme-colour: var(--window-colour);
--uc-hover-colour: var(--secondary-colour);
--uc-inverted-colour: var(--inverted-colour);
--button-bgcolor: var(--uc-theme-colour) !important;
--button-hover-bgcolor: var(--uc-hover-colour) !important;
--button-active-bgcolor: var(--uc-hover-colour) !important;
--toolbar-bgcolor: var(--uc-theme-colour) !important;
--toolbarbutton-hover-background: var(--uc-hover-colour) !important;
--toolbarbutton-active-background: var(--uc-hover-colour) !important;
--toolbarbutton-border-radius: var(--uc-border-radius) !important;
--lwt-toolbar-field-focus: var(--uc-theme-colour) !important;
--toolbarbutton-icon-fill: var(--uc-inverted-colour) !important;
--toolbar-field-focus-background-color: var(--secondary-colour) !important;
--toolbar-field-color: var(--uc-inverted-colour) !important;
--toolbar-field-focus-color: var(--uc-inverted-colour) !important;
--tabs-border-color: var(--uc-theme-colour) !important;
--tab-border-radius: var(--uc-border-radius) !important;
--lwt-text-color: var(--uc-inverted-colour) !important;
--lwt-tab-text: var(--uc-inverted-colour) !important;
--lwt-sidebar-background-color: var(--uc-hover-colour) !important;
--lwt-sidebar-text-color: var(--uc-inverted-colour) !important;
--arrowpanel-border-color: var(--uc-theme-colour) !important;
--arrowpanel-border-radius: var(--uc-border-radius) !important;
--arrowpanel-background: var(--uc-theme-colour) !important;
--arrowpanel-color: var(--inverted-colour) !important;
--autocomplete-popup-highlight-background: var(--uc-inverted-colour) !important;
--autocomplete-popup-highlight-color: var(--uc-inverted-colour) !important;
--autocomplete-popup-hover-background: var(--uc-inverted-colour) !important;
--tab-block-margin: 2px !important;
}
window,
#main-window,
#toolbar-menubar,
#TabsToolbar,
#PersonalToolbar,
#navigator-toolbox,
#sidebar-box,
#nav-bar {
-moz-appearance: none !important;
border: none !important;
box-shadow: none !important;
background: var(--uc-theme-colour) !important;
}
/* grey out ccons inside the toolbar to make it
* more aligned with the Black & White colour look */
#PersonalToolbar toolbarbutton:not(:hover),
#bookmarks-toolbar-button:not(:hover) { filter: grayscale(1) !important; }
/* Show Window Control Button */
.titlebar-buttonbox-container { display: -moz-inline-box !important; }
/* remove "padding" left and right from tabs */
.titlebar-spacer { display: none !important; }
/* remove gap after pinned tabs */
#tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs])
> #tabbrowser-arrowscrollbox
> .tabbrowser-tab[first-visible-unpinned-tab] { margin-inline-start: 0 !important; }
/* remove tab shadow */
.tabbrowser-tab
>.tab-stack
> .tab-background { box-shadow: none !important; }
/* tab background */
.tabbrowser-tab
> .tab-stack
> .tab-background { background: var(--uc-theme-colour) !important; }
/* active tab background */
.tabbrowser-tab[selected]
> .tab-stack
> .tab-background { background: var(--uc-hover-colour) !important; }
/* tab close button options */
.tabbrowser-tab:not([pinned]) .tab-close-button { display: var(--show-tab-close-button) !important; }
.tabbrowser-tab:not([pinned]):hover .tab-close-button { display: var(--show-tab-close-button-hover) !important }
/* adaptive tab width */
.tabbrowser-tab[selected][fadein]:not([pinned]) { max-width: var(--uc-active-tab-width) !important; }
.tabbrowser-tab[fadein]:not([selected]):not([pinned]) { max-width: var(--uc-inactive-tab-width) !important; }
/* container tabs indicator */
.tabbrowser-tab[usercontextid]
> .tab-stack
> .tab-background
> .tab-context-line {
margin: -1px var(--container-tabs-indicator-margin) 0 var(--container-tabs-indicator-margin) !important;
border-radius: var(--tab-border-radius) !important;
}
/* show favicon when media is playing but tab is hovered */
.tab-icon-image:not([pinned]) { opacity: 1 !important; }
/* Makes the speaker icon to always appear if the tab is playing (not only on hover) */
.tab-icon-overlay:not([crashed]),
.tab-icon-overlay[pinned][crashed][selected] {
top: 5px !important;
z-index: 1 !important;
padding: 1.5px !important;
inset-inline-end: -8px !important;
width: 16px !important; height: 16px !important;
border-radius: 10px !important;
}
/* style and position speaker icon */
.tab-icon-overlay:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) {
stroke: transparent !important;
background: transparent !important;
opacity: 1 !important; fill-opacity: 0.8 !important;
color: currentColor !important;
stroke: var(--uc-theme-colour) !important;
background-color: var(--uc-theme-colour) !important;
}
/* change the colours of the speaker icon on active tab to match tab colours */
.tabbrowser-tab[selected] .tab-icon-overlay:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) {
stroke: var(--uc-hover-colour) !important;
background-color: var(--uc-hover-colour) !important;
}
.tab-icon-overlay:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { margin-inline-end: 9.5px !important; }
.tabbrowser-tab:not([image]) .tab-icon-overlay:not([pinned], [sharing], [crashed]) {
top: 0 !important;
padding: 0 !important;
margin-inline-end: 5.5px !important;
inset-inline-end: 0 !important;
}
.tab-icon-overlay:not([crashed])[soundplaying]:hover,
.tab-icon-overlay:not([crashed])[muted]:hover,
.tab-icon-overlay:not([crashed])[activemedia-blocked]:hover {
color: currentColor !important;
stroke: var(--uc-inverted-colour) !important;
background-color: var(--uc-inverted-colour) !important;
fill-opacity: 0.95 !important;
}
.tabbrowser-tab[selected] .tab-icon-overlay:not([crashed])[soundplaying]:hover,
.tabbrowser-tab[selected] .tab-icon-overlay:not([crashed])[muted]:hover,
.tabbrowser-tab[selected] .tab-icon-overlay:not([crashed])[activemedia-blocked]:hover {
color: currentColor !important;
stroke: var(--uc-inverted-colour) !important;
background-color: var(--uc-inverted-colour) !important;
fill-opacity: 0.95 !important;
}
/* speaker icon colour fix */
#TabsToolbar .tab-icon-overlay:not([crashed])[soundplaying],
#TabsToolbar .tab-icon-overlay:not([crashed])[muted],
#TabsToolbar .tab-icon-overlay:not([crashed])[activemedia-blocked] { color: var(--uc-inverted-colour) !important; }
/* speaker icon colour fix on hover */
#TabsToolbar .tab-icon-overlay:not([crashed])[soundplaying]:hover,
#TabsToolbar .tab-icon-overlay:not([crashed])[muted]:hover,
#TabsToolbar .tab-icon-overlay:not([crashed])[activemedia-blocked]:hover { color: var(--uc-theme-colour) !important; }
#nav-bar {
border: none !important;
box-shadow: none !important;
background: transparent !important;
}
/* remove border below whole nav */
#navigator-toolbox { border-bottom: none !important; }
#urlbar,
#urlbar * { box-shadow: none !important; }
#urlbar-background { border: var(--uc-hover-colour) !important; }
#urlbar[focused="true"]
> #urlbar-background,
#urlbar:not([open])
> #urlbar-background { background: transparent !important; }
#urlbar[open]
> #urlbar-background { background: var(--uc-theme-colour) !important; }
.urlbarView-row:hover
> .urlbarView-row-inner,
.urlbarView-row[selected]
> .urlbarView-row-inner { background: var(--uc-hover-colour) !important; }
/* transition to oneline */
@media (min-width: 1000px) {
/* move tabs bar over */
#TabsToolbar { margin-left: var(--uc-urlbar-width) !important; }
/* move entire nav bar */
#nav-bar { margin: calc((var(--urlbar-min-height) * -1) - 8px) calc(100vw - var(--uc-urlbar-width)) 0 0 !important; }
} /* end media query */
/* Container Tabs */
.identity-color-blue { --identity-tab-color: var(--uc-identity-color-blue) !important; --identity-icon-color: var(--uc-identity-color-blue) !important; }
.identity-color-turquoise { --identity-tab-color: var(--uc-identity-color-turquoise) !important; --identity-icon-color: var(--uc-identity-color-turquoise) !important; }
.identity-color-green { --identity-tab-color: var(--uc-identity-color-green) !important; --identity-icon-color: var(--uc-identity-color-green) !important; }
.identity-color-yellow { --identity-tab-color: var(--uc-identity-color-yellow) !important; --identity-icon-color: var(--uc-identity-color-yellow) !important; }
.identity-color-orange { --identity-tab-color: var(--uc-identity-color-orange) !important; --identity-icon-color: var(--uc-identity-color-orange) !important; }
.identity-color-red { --identity-tab-color: var(--uc-identity-color-red) !important; --identity-icon-color: var(--uc-identity-color-red) !important; }
.identity-color-pink { --identity-tab-color: var(--uc-identity-color-pink) !important; --identity-icon-color: var(--uc-identity-color-pink) !important; }
.identity-color-purple { --identity-tab-color: var(--uc-identity-color-purple) !important; --identity-icon-color: var(--uc-identity-color-purple) !important; }
'';
}

View file

@ -0,0 +1,91 @@
{ pkgs, ... }:
{
# imports = [ ./shaders ];
programs.mpv = {
enable = true;
scripts = with pkgs.mpvScripts; [
thumbnail
sponsorblock-minimal
videoclip
];
scriptOpts = {
sponsorblock-minimal = {
sponsorblock_minimal-server = "https://sponsor.ajay.app/api/skipSegments";
sponsorblock_minimal-categories = ["sponsor"];
};
mpv_thumbnail_script = {
autogenerate = "yes";
autogenerate_max_duration = "3600";
prefer_mpv = "yes";
mpv_no_sub = "no";
thumbnail_width = 200;
thumbnail_height = 200;
thumbnail_count = 150;
thumbnail_network = "no";
background_color = "282828";
};
};
config = {
fs = "yes";
osc = "no";
};
bindings = {
WHEEL_UP = "add volume 2";
WHEEL_DOWN = "add volume -2";
"Shift+WHEEL_UP" = "add volume 5";
"Shift+WHEEL_DOWN" = "add volume -5";
RIGHT = "seek 5";
l = "seek 5";
"д" = "seek 5";
LEFT = "seek -5";
h = "seek -5";
"р" = "seek -5";
UP = "add volume 2";
k = "add volume 2";
"л" = "add volume 2";
DOWN = "add volume -2";
j = "add volume -2";
"о" = "add volume -2";
"Shift+RIGHT" = "seek 10";
"Shift+LEFT" = "seek -10";
"Shift+UP" = "add volume 5";
"Shift+DOWN" = "add volume -5";
q = "quit";
"й" = "quit";
Q = "quit-watch-later";
SPACE = "cycle pause";
p = "cycle pause";
"з" = "cycle pause";
m = "cycle mute";
"ь" = "cycle mute";
o = "show-progress";
"щ" = "show-progress";
f = "cycle fullscreen";
"а" = "cycle fullscreen";
ESC = "set fullscreen no";
c = "script-binding videoclip-menu-open";
};
extraInput = ''
CTRL+1 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_M.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode A (Fast)"
CTRL+2 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_Soft_M.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode B (Fast)"
CTRL+3 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Upscale_Denoise_CNN_x2_M.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode C (Fast)"
CTRL+4 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_M.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_S.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode A+A (Fast)"
CTRL+5 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_Soft_M.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_Soft_S.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode B+B (Fast)"
CTRL+6 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Upscale_Denoise_CNN_x2_M.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_S.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode C+A (Fast)"
CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared"
'';
};
}

View file

@ -0,0 +1,12 @@
{ pkgs, ... }:
{
programs.obs-studio = {
enable = true;
package = pkgs.obs-studio;
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-vkcapture
input-overlay
];
};
}

View file

@ -0,0 +1,62 @@
{ pkgs, inputs, config, ... }:
{
imports = [
inputs.nur.hmModules.nur
];
home.packages = with pkgs; [
home-manager
vesktop
tor-browser
qbittorrent-enhanced
xdg-user-dirs
libreoffice-fresh
onlyoffice-bin
nemo-with-extensions
nemo-fileroller
nemo-emblems
gvfs
obsidian
inkscape
popsicle
ventoy
swayimg
anime4k
bottles
# "wineWow64Packages.staging"
mindustry-wayland
mangohud
superTuxKart
transmission_4-gtk
# (vivaldi.override {
# isSnapshot = true;
# })
(prismlauncher.override {
jdks = [
temurin-bin-21
temurin-bin-17
temurin-bin-8
];
})
trayscale
(nerdfonts.override {
fonts = [
"FiraCode"
"JetBrainsMono"
];
})
config.nur.repos.abszero.palgen
inputs.ayugram-desktop.packages.${pkgs.system}.default
];
}

View file

@ -0,0 +1,108 @@
{ ... }:
{
xdg.configFile = {
# CONFIG FILE
"qBittorrent/qBittorrent.conf".text = ''
[AddNewTorrentDialog]
Attached=false
DialogSize=@Size(942 1014)
DownloadPathHistory=
Enabled=true
RememberLastSavePath=false
SavePathHistory=/home/megamozg/Downloads
SplitterState=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\x1\xc6\0\0\x1\x83\0\xff\xff\xff\xff\x1\0\0\0\x1\0)
TopLevel=true
TreeHeaderState="@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x6\x34\0\0\0\x3\0\0\0\x2\0\0\0\x64\0\0\0\x4\0\0\0\x64\0\0\0\x5\0\0\0\x64\0\0\x1,\0\0\0\x6\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x6\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64)"
[Application]
FileLogger\Age=1
FileLogger\AgeType=1
FileLogger\Backup=true
FileLogger\DeleteOld=true
FileLogger\Enabled=true
FileLogger\MaxSizeBytes=66560
FileLogger\Path=/home/megamozg/.local/share/qBittorrent/logs
GUI\Notifications\TorrentAdded=false
[BitTorrent]
Session\MaxActiveDownloads=1
Session\MaxActiveTorrents=8
Session\MaxActiveUploads=2
Session\Port=37977
Session\QueueingSystemEnabled=true
Session\TorrentContentLayout=Subfolder
[Core]
AutoDeleteAddedTorrentFile=Never
[GUI]
DownloadTrackerFavicon=false
Log\Enabled=false
MainWindow\FiltersSidebarVisible=false
StartUpWindowState=Normal
UIThemeDialog\Size=@Size(718 559)
[LegalNotice]
Accepted=true
[MainWindow]
LastDir=/home/megamozg/Downloads
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\ai\0\0\x3\xf5\0\0\0\0\0\0\0\0\0\0\a\x7f\0\0\x4\x37\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\ai\0\0\x3\xf5)
[Meta]
MigrationVersion=6
[OptionsDialog]
HorizontalSplitterSizes=119, 634
LastViewedPage=4
Size=@Size(779 591)
[Preferences]
Advanced\TrayIconStyle=MonoDark
Advanced\useSystemIconTheme=true
Bittorrent\CustomizeTrackersListUrl=https://ngosang.github.io/trackerslist/trackers_best.txt
General\CloseToTray=false
General\ExitConfirm=false
General\Locale=en
General\StatusbarDisplayed=false
General\ToolbarDisplayed=false
[RSS]
AutoDownloader\DownloadRepacks=true
AutoDownloader\SmartEpisodeFilter=s(\\d+)e(\\d+), (\\d+)x(\\d+), "(\\d{4}[.\\-]\\d{1,2}[.\\-]\\d{1,2})", "(\\d{1,2}[.\\-]\\d{1,2}[.\\-]\\d{4})"
[TorrentProperties]
CurrentTab=0
Peers\qt5\PeerListState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x10@\x80\0\0\0\x2\0\0\0\x6\0\0\0\x64\0\0\0\xf\0\0\0\x64\0\0\x5x\0\0\0\x10\x1\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x10\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\xff\xff\xff\xff)
SplitterSizes="681,361"
Trackers\qt5\TrackerListState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x3 \0\0\0\b\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\b\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64)
Visible=true
qt5\FilesListState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x2X\0\0\0\x6\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x6\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64)
[TransferList]
SubSortColumn=8
SubSortOrder=0
qt5\HeaderState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0\"\0\0\0\0\0\0\0\x1\0\0\0\x4\0\0\0\x5\0\0\0\x3\0\0\0\x2\0\0\0\a\0\0\0\b\0\0\0\t\0\0\0\n\0\0\0\v\0\0\0\f\0\0\0\r\0\0\0\xe\0\0\0\xf\0\0\0\x10\0\0\0\x11\0\0\0\x12\0\0\0\x13\0\0\0\x14\0\0\0\x15\0\0\0\x16\0\0\0\x17\0\0\0\x6\0\0\0\x18\0\0\0\x19\0\0\0\x1a\0\0\0\x1b\0\0\0\x1c\0\0\0\x1d\0\0\0\x1e\0\0\0\x1f\0\0\0 \0\0\0!\0\0\0\"\0\0\0\0\0\0\0\x1\0\0\0\x5\0\0\0\x4\0\0\0\x2\0\0\0\x3\0\0\0\x17\0\0\0\x6\0\0\0\a\0\0\0\b\0\0\0\t\0\0\0\n\0\0\0\v\0\0\0\f\0\0\0\r\0\0\0\xe\0\0\0\xf\0\0\0\x10\0\0\0\x11\0\0\0\x12\0\0\0\x13\0\0\0\x14\0\0\0\x15\0\0\0\x16\0\0\0\x18\0\0\0\x19\0\0\0\x1a\0\0\0\x1b\0\0\0\x1c\0\0\0\x1d\0\0\0\x1e\0\0\0\x1f\0\0\0 \0\0\0!\0\0\0\"\xa0\xfd\xff\xff\x3\0\0\0\x1b\0\0\0\x10\0\0\0\x64\0\0\0\x11\0\0\0\x64\0\0\0\x1e\0\0\0\x64\0\0\0\x1f\0\0\0\x64\0\0\0\x1c\0\0\0\x64\0\0\0\x1d\0\0\0\x64\0\0\0\x1a\0\0\0\x64\0\0\0\x1b\0\0\0\x64\0\0\0\x18\0\0\0\x64\0\0\0\x19\0\0\0\x64\0\0\0\x6\0\0\0\x64\0\0\0\a\0\0\0\x64\0\0\0 \0\0\0\x64\0\0\0!\0\0\0\x64\0\0\0\x3\0\0\0\x64\0\0\0\xe\0\0\0\x64\0\0\0\xf\0\0\0\x64\0\0\0\f\0\0\0\x64\0\0\0\r\0\0\0\x64\0\0\0\n\0\0\0\x64\0\0\0\v\0\0\0\x64\0\0\0\t\0\0\0\x64\0\0\0\x16\0\0\0\x64\0\0\0\x14\0\0\0\x64\0\0\0\x15\0\0\0\x64\0\0\0\x12\0\0\0\x64\0\0\0\x13\0\0\0\x64\0\0\x3Z\0\0\0\"\x1\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\"\0\0\0+\0\0\0\x1\0\0\0\0\0\0\x1\x19\0\0\0\x1\0\0\0\0\0\0\0M\0\0\0\x1\0\0\0\0\0\0\0^\0\0\0\x1\0\0\0\0\0\0\0z\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0{\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0v\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64)
'';
# COLORSCHEME
"qBittorrent/themes/default/config.json".text = ''
{
"colors.dark": {
"Log.BannedPeer": "#b66467",
"Log.Critical": "#b66467",
"Log.Info": "#8da3b9",
"Log.TimeStamp": "#bbb6b6",
"Log.Warning": "#d9bc8c",
"TransferList.CheckingDownloading": "#8c977d",
"TransferList.CheckingResumeData": "#8c977d",
"TransferList.CheckingUploading": "#8c977d",
"TransferList.Downloading": "#d9bc8c",
"TransferList.DownloadingMetadata": "#d9bc8c",
"TransferList.Error": "#b66467",
"TransferList.ForcedDownloading": "#d9bc8c",
"TransferList.ForcedDownloadingMetadata": "#d9bc8c",
"TransferList.ForcedUploading": "#d9bc8c",
"TransferList.MissingFiles": "#b66467",
"TransferList.Moving": "#8aa6a2",
"TransferList.PausedDownloading": "#a988b0",
"TransferList.PausedUploading": "#a988b0",
"TransferList.QueuedDownloading": "#d9bc8c",
"TransferList.QueuedUploading": "#d9bc8c",
"TransferList.StalledDownloading": "#8c977d",
"TransferList.StalledUploading": "#bbb6b6",
"TransferList.Uploading": "#bbb6b6"
},
"version": 2
}
'';
};
}

View file

@ -0,0 +1,48 @@
{ pkgs, config, inputs, ... }:
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in
{
imports = [ inputs.spicetify-nix.homeManagerModules.default ];
programs.spicetify = {
enable = true;
theme = spicePkgs.themes.sleek;
colorScheme = "custom";
customColorScheme = with config.lib.stylix.colors; {
# BASE 16 SCHEME
text = "${base07}";
subtext = "${base06}";
sidebar-text = "${base07}";
main = "${base00}";
sidebar = "${base02}";
player = "${base00}";
card = "${base00}";
shadow = "${base00}";
selected-row = "${base0C}";
button = "${base0B}";
button-active = "${base0B}";
button-disabled = "${base03}";
tab-active = "${base0A}";
notification = "${base0A}";
notification-error = "${base08}";
misc = "${base02}";
};
enabledExtensions = with spicePkgs.extensions; [
# OFFICIAL
fullAppDisplay
shuffle
#COMMUNITY
adblockify
adblock
historyShortcut
beautifulLyrics
playlistIcons
betterGenres
powerBar
seekSong
history
];
};
}

View file

@ -0,0 +1,220 @@
{ config, ... }:
{
xdg.configFile = with config.lib.stylix.colors; {
"swayimg/config".text = ''
################################################################################
# General configuration
################################################################################
[general]
# Mode at startup (viewer/gallery)
mode = viewer
# Window position (parent or absolute coordinates, e.g. 100,200)
position = parent
# Window size (fullscreen/parent/image, or absolute size, e.g. 800,600)
size = fullscreen
# Action performed by SIGUSR1 signal (same format as for key bindings)
sigusr1 = reload
# Action performed by SIGUSR2 signal (same format as for key bindings)
sigusr2 = next_file
# Application ID and window class name
app_id = swayimg
################################################################################
# Viewer mode configuration
################################################################################
[viewer]
# Window background color (RGBA)
window = #000000ff
# Background for transparent images (grid/RGBA)
transparency = grid
# Default image scale (optimal/fit/width/height/fill/real)
scale = optimal
# Fix position of the image on the window surface (yes/no)
fixed = yes
# Anti-aliasing (yes/no)
antialiasing = no
# Run slideshow at startup (yes/no)
slideshow = no
# Slideshow image display time (seconds)
slideshow_time = 3
# Number of previously viewed images to store in cache
history = 1
# Number of preloaded images (read ahead)
preload = 1
################################################################################
# Gallery mode configuration
################################################################################
[gallery]
# Max size of the thumbnail (pixels)
size = 200
# Max number of thumbnails in cache, 0 to unlimit
cache = 100
# Fill the entire tile with thumbnail (yes/no)
fill = yes
# Use anti-aliasing for thumbnails (yes/no)
antialiasing = yes
# Background color of the window (RGBA)
window = #${base00}ff
# Background color of the tile (RGBA)
background = #${base01}ff
# Background color of the selected tile (RGBA)
select = #${base02}ff
# Border color of the selected tile (RGBA)
border = #${base0E}ff
# Shadow color of the selected tile (RGBA)
shadow = #${base00}a0
################################################################################
# Image list configuration
################################################################################
[list]
# Default order (none/alpha/reverse/random)
order = alpha
# Looping list of images (yes/no)
loop = yes
# Read directories recursively (yes/no)
recursive = no
# Open all files in the start directory (yes/no)
all = yes
################################################################################
# Font configuration
################################################################################
[font]
# Font name
name = JetBrainsMono NerdFont
# Font size (pt)
size = 14
# Font color (RGBA)
color = #${base06}ff
# Shadow color (RGBA)
shadow = #${base00}a0
################################################################################
# Image meta info scheme (format, size, EXIF, etc)
################################################################################
[info]
# Show on startup (yes/no)
show = yes
# Timeout to hide info (seconds, 0 to always show)
info_timeout = 5
# Timeout to hide status message (seconds)
status_timeout = 3
# Display scheme for viewer mode (position = content)
[info.viewer]
top_left = none
top_right = index
bottom_left = none
bottom_right = none
# Display scheme for gallery mode (position = content)
[info.gallery]
top_left = none
top_right = index
bottom_left = none
bottom_right = none
################################################################################
# Viewer mode key binding configuration: key = action [parameters]
################################################################################
[keys.viewer]
F1 = help
Home = first_file
g = first_file
End = last_file
Shift+g = last_file
Prior = prev_file
Next = next_file
h = zoom +10
j = next_file
k = prev_file
l = zoom -10
Space = next_file
Shift+d = prev_dir
d = next_dir
Shift+o = prev_frame
o = next_frame
c = skip_file
Shift+s = slideshow
s = animation
f = fullscreen
Return = mode
Left = step_left 10
Right = step_right 10
Up = step_up 10
Down = step_down 10
Equal = zoom +10
Plus = zoom +10
Minus = zoom -10
w = zoom width
Shift+w = zoom height
z = zoom fit
Shift+z = zoom fill
0 = zoom real
BackSpace = zoom optimal
bracketleft = rotate_left
bracketright = rotate_right
m = flip_vertical
Shift+m = flip_horizontal
a = antialiasing
r = reload
i = info
Shift+Delete = exec rm "%"; skip_file
Escape = exit
q = exit
# Mouse related
ScrollLeft = step_right 5
ScrollRight = step_left 5
ScrollUp = step_up 5
ScrollDown = step_down 5
Ctrl+ScrollUp = zoom +10
Ctrl+ScrollDown = zoom -10
Shift+ScrollUp = prev_file
Shift+ScrollDown = next_file
Alt+ScrollUp = prev_frame
Alt+ScrollDown = next_frame
################################################################################
# Gallery mode key binding configuration: key = action [parameters]
################################################################################
[keys.gallery]
F1 = help
Home = first_file
g = first_file
End = last_file
Shift+g = last_file
Left = step_left
Right = step_right
Up = step_up
Down = step_down
h = step_left
j = step_down
k = step_up
l = step_right
Prior = page_up
Next = page_down
c = skip_file
f = fullscreen
Return = mode
a = antialiasing
r = reload
i = info
Shift+Delete = exec rm "%"; skip_file
Escape = exit
q = exit
# Mouse related
ScrollLeft = step_right
ScrollRight = step_left
ScrollUp = step_up
ScrollDown = step_down
'';
};
}

View file

@ -0,0 +1,11 @@
{ ... }:
{
dconf = {
enable = true;
settings = {
"org/gnome/desktop/wm/preferences" = {
button-layout = "";
};
};
};
}

View file

@ -0,0 +1,9 @@
{
imports =[
./dconf.nix
./nwg.nix
./nix.nix
./xdg.nix
# ./env.nix
];
}

View file

@ -0,0 +1,7 @@
{ ... }:
{
home.sessionVariables = {
MICRO_TRUECOLOR = "1";
QT_QPA_PLATFORMTHEME = "qt5ct";
};
}

View file

@ -0,0 +1,27 @@
{ pkgs, ... }:
{
nix = {
package = pkgs.nix;
settings = {
warn-dirty = false;
experimental-features = [ "nix-command" "flakes" ];
extra-experimental-features = [ "nix-command" "flakes" ];
builders-use-substitutes = true;
auto-optimise-store = true;
extra-substituters = [
"https://yazi.cachix.org"
];
extra-trusted-public-keys = [
"yazi.cachix.org-1:Dcdz63NZKfvUCbDGngQDAZq6kOroIrFoyO064uvLh8k="
];
trusted-users = [
"megamozg"
"@wheel"
];
};
};
nixpkgs.config = {
allowBroken = true;
allowUnfree = true;
};
}

View file

@ -0,0 +1,21 @@
{ pkgs, config, lib, ... }:
{
xdg.configFile = {
"nwg-drawer/drawer.css".text = ''
window {
background-color: #${config.lib.stylix.colors.base00};
color: #eeeeee;
}
button {
color: #${config.lib.stylix.colors.base04};
background-color: #${config.lib.stylix.colors.base00};
}
button:hover {
color: #${config.lib.stylix.colors.base04};
background-color: #${config.lib.stylix.colors.base01};
}
'';
};
}

View file

@ -0,0 +1,29 @@
{ pkgs, config, ... }:
{
xdg = {
portal = {
enable = true;
# xdgOpenUsePortal = true;
config.common.default = "gtk";
extraPortals = with pkgs; [
xdg-desktop-portal-hyprland
xdg-desktop-portal-gtk
];
};
mime = {
enable = true;
};
userDirs = {
enable = true;
createDirectories = true;
desktop = "${config.home.homeDirectory}/Desktop";
documents = "${config.home.homeDirectory}/Documents";
download = "${config.home.homeDirectory}/Downloads";
music = "${config.home.homeDirectory}/Music";
pictures = "${config.home.homeDirectory}/Pictures";
publicShare = "${config.home.homeDirectory}/";
templates = "${config.home.homeDirectory}/";
videos = "${config.home.homeDirectory}/Videos";
};
};
}

View file

@ -0,0 +1,8 @@
{
imports = [
./starship.nix
# ./zsh
./fish
];
}

View file

@ -0,0 +1,82 @@
{
programs.fish = {
enable = true;
shellAliases = {
e = "$EDITOR";
sudo = "doas";
cp = "cpz";
rm = "rmz";
c = "clear";
x = "exit";
nhs = "nh home switch";
nos = "nh os switch";
nca = "nh clean all";
ls = "eza --icons=always --group-directories-first";
lsl = "eza --icons=always -l --group-directories-first";
lst = "eza --icons=always -T --group-directories-first";
ls1 = "eza --icons=always -1 --group-directories-first";
ls11 = "eza --icons=never -1 --group-directories-first";
lsd = "eza --icons=never -D1 --group-directories-first";
lsf = "eza --icons=never -f1 --group-directories-first";
cat = "bat --theme base16";
ff = "fastfetch";
r = "ranger";
y = "yazi";
j = "joshuto";
nxt = "nix-tree";
m = "micro";
v = "nvim";
h = "hx";
fsf = "fastfetch";
cpf = "cpufetch";
cav = "cava";
pmx = "pulsemixer";
blt = "bluetuith";
gl = "git clone";
ga = "git add .";
gA = "git add";
gc = "git commit -m";
gC = "git commit -m 'update '";
gp = "git push";
gP = "git pull";
lut = "lutgen apply -p paradise";
lutall = "lutgen apply -p paradise ./*";
icat = "kitten icat";
btp = "btop";
nvt = "nvtop -i";
ter = "tenki --mode rain --wind disable --timer-color cyan -f 80";
tes = "tenki --mode snow --wind disable --timer-color yellow -f 80";
tem = "tenki --mode meteor --wind disable --timer-color red -f 80";
rmr = "trash restore";
rmp = "trash put";
tre = "trash empty -all";
nxr = "nix run";
nxf = "nix-prefetch-github";
};
interactiveShellInit = ''
set fish_greeting
[ "$(tty)" = /dev/tty1 ] && exec Hyprland
'';
};
xdg.configFile = {
"lutgen/paradise".text = ''
151515 1F1F1F 2E2E2E 424242 BBB6B6 E8E3E3 E8E3E3 E8E3E3 B66467 D9BC8C D9BC8C 8C977D 8AA6A2 8DA3B9 A988B0 BBB6B6
'';
};
}

View file

@ -0,0 +1,70 @@
{ lib, ... }:
{
programs.starship = {
enable = true;
enableFishIntegration = true;
enableZshIntegration = true;
settings = {
add_newline = true;
format = lib.concatStrings [
"$shell"
"$username"
"$directory"
"$git_branch"
"$package"
"$cmd_duration"
"$line_break"
"$character"
];
shell = {
fish_indicator = "\[fish\]($style)";
zsh_indicator = "\[zsh\]($style)";
bash_indicator = "\[bash\]($style)";
nu_indicator = "\[nu\]($style)";
unknown_indicator = "\[sh ?\]";
style = "bold fg:purple";
disabled = false;
};
username = {
style_user = "bold red";
style_root = "bold red";
format = "[$user]($style) in ";
show_always = true;
disabled = false;
};
directory = {
format = "[$path]($style) [$read_only]($read_only_style)";
style = "bold fg:blue";
read_only = "[󰌾] ";
read_only_style = "bold red";
home_symbol = "~~";
truncation_length = 2;
truncation_symbol = "../";
disabled = false;
};
git_branch = {
format = "on [$symbol$branch]($style) ";
style = "bold italic fg:green";
symbol = " ";
truncation_length = 4;
truncation_symbol = "";
disabled = false;
};
package = {
format = "via [󰏗 $version](bold fg:yellow) ";
};
cmd_duration = {
min_time = 1000;
format = "took [$duration](bold fg:yellow)";
disabled = false;
};
character = {
format = "$symbol ";
success_symbol = "[](bold green)";
error_symbol = "[](bold red)";
vimcmd_symbol = "[](bold yellow)";
disabled = false;
};
};
};
}

View file

@ -0,0 +1,20 @@
{ pkgs, ... }:
{
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
completionInit = "autoload -U compinit && compinit";
zplug = {
enable = true;
plugins = [
{ name = "nix-community/nix-zsh-completions"; }
{ name = " jnooree/zoxide-zsh-completion"; }
{ name = "toku-sa-n/zsh-dot-up"; }
{ name = "anatolykopyl/doas-zsh-plugin"; }
{ name = " zshzoo/cd-ls"; }
];
};
};
}

8
home/themes/default.nix Normal file
View file

@ -0,0 +1,8 @@
{
imports = [
./stylix/stylix.nix
./gtk.nix
./qt
];
}

32
home/themes/gtk.nix Normal file
View file

@ -0,0 +1,32 @@
{ pkgs, lib, ... }:
{
home.packages = with pkgs; [
adw-gtk3
google-cursor
papirus-folders
papirus-icon-theme
noto-fonts
noto-fonts-cjk
openmoji-color
monaspace
(nerdfonts.override { fonts = [ "FiraCode" "JetBrainsMono" ]; })
];
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
font = lib.mkForce {
name = "JetBrainsMono NerdFont";
package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
size = 12;
};
};
# fonts.fontconfig = {
# enable = true;
# defaultFonts.emoji = [ "OpenMoji Color" ];
# };
}

View file

@ -0,0 +1,7 @@
{
imports = [
./qt5ct.nix
./qt6ct.nix
./qt.nix
];
}

9
home/themes/qt/qt.nix Normal file
View file

@ -0,0 +1,9 @@
{
qt = {
enable = true;
platformTheme.name = "qtct";
# style = {
# name = "kvantum";
# };
};
}

49
home/themes/qt/qt5ct.nix Normal file
View file

@ -0,0 +1,49 @@
{ pkgs, config, ... }:
{
xdg.configFile = with config.lib.stylix.colors; {
"qt5ct/colors/paradise.conf".text = ''
[ColorScheme]
active_colors=#ff${base06}, #ff${base01}, #ff${base01}, #ff${base00}, #ff${base03}, #ff${base0C}, #ff${base06}, #ff${base06}, #${base06}, #ff${base00}, #ff${base01}, #ff${base00}, #ff${base02}, #ff${base06}, #ff${base0B}, #ff, #ff151515, #ffe8e3e3, #ff181926, #ffe8e3e3, #80151515
disabled_colors=#ff808080, #ff1f1f1f, #ff1f1f1f, #ff151515, #ff424242, #ff6e738d, #ff808080, #ffe8e3e3, #ff808080, #ff151515, #ff1f1f1f, #ff151515, #ff2e2e2e, #ff808080, #ff8c977d, #ffed8796, #ff151515, #ffe8e3e3, #ff181926, #ffe8e3e3, #80151515
inactive_colors=#ffe8e3e3, #ff1f1f1f, #ff1f1f1f, #ff151515, #ff424242, #ff6e738d, #ffe8e3e3, #ffe8e3e3, #ffe8e3e3, #ff151515, #ff1f1f1f, #ff151515, #ff2e2e2e, #ffbbb6b6, #ff8c977d, #ffed8796, #ff151515, #ffe8e3e3, #ff181926, #ffe8e3e3, #80151515
'';
"qt5ct/qt5ct.conf".text = ''
[Appearance]
color_scheme_path=/home/megamozg/.config/qt5ct/colors/paradise.conf
custom_palette=true
icon_theme=Papirus-Dark
standard_dialogs=default
style=Fusion
[Fonts]
fixed="JetBrainsMono Nerd Font Mono,12,-1,5,50,0,0,0,0,0,Regular"
general="JetBrainsMono Nerd Font,12,-1,5,50,0,0,0,0,0,Regular"
[Interface]
activate_item_on_single_click=1
buttonbox_layout=0
cursor_flash_time=1000
dialog_buttons_have_icons=1
double_click_interval=400
gui_effects=@Invalid()
keyboard_scheme=2
menus_have_icons=true
show_shortcuts_in_context_menus=true
stylesheets=@Invalid()
toolbutton_style=4
underline_shortcut=1
wheel_scroll_lines=3
stylesheets=${pkgs.qt5ct}/share/qt5ct/qss/scrollbar-simple.qss, ${pkgs.qt5ct}/share/qt5ct/qss/sliders-simple.qss, ${pkgs.qt5ct}/share/qt5ct/qss/tooltip-simple.qss, ${pkgs.qt5ct}/share/qt5ct/qss/traynotification-simple.qss
[PaletteEditor]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10)
[SettingsWindow]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\xad\0\0\x3\xf5\0\0\0\0\0\0\0\0\0\0\x3\xbf\0\0\x4\v\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x3\xad\0\0\x3\xf5)
[Troubleshooting]
force_raster_widgets=1
ignored_applications=@Invalid()
'';
};
}

49
home/themes/qt/qt6ct.nix Normal file
View file

@ -0,0 +1,49 @@
{ pkgs, ... }:
{
xdg.configFile = {
"qt6ct/colors/paradise.conf".text = ''
[ColorScheme]
active_colors=#ffe8e3e3, #ff1f1f1f, #ff1f1f1f, #ff151515, #ff424242, #ff6e738d, #ffe8e3e3, #ffe8e3e3, #ffe8e3e3, #ff151515, #ff1f1f1f, #ff151515, #ff2e2e2e, #ffbbb6b6, #ff8c977d, #ffed8796, #ff151515, #ffe8e3e3, #ff181926, #ffe8e3e3, #80151515
disabled_colors=#ff808080, #ff1f1f1f, #ff1f1f1f, #ff151515, #ff424242, #ff6e738d, #ff808080, #ffe8e3e3, #ff808080, #ff151515, #ff1f1f1f, #ff151515, #ff2e2e2e, #ff808080, #ff8c977d, #ffed8796, #ff151515, #ffe8e3e3, #ff181926, #ffe8e3e3, #80151515
inactive_colors=#ffe8e3e3, #ff1f1f1f, #ff1f1f1f, #ff151515, #ff424242, #ff6e738d, #ffe8e3e3, #ffe8e3e3, #ffe8e3e3, #ff151515, #ff1f1f1f, #ff151515, #ff2e2e2e, #ffbbb6b6, #ff8c977d, #ffed8796, #ff151515, #ffe8e3e3, #ff181926, #ffe8e3e3, #80151515
'';
"qt6ct/qt6ct.conf".text = ''
[Appearance]
color_scheme_path=/home/megamozg/.config/qt6ct/colors/paradise.conf
custom_palette=true
icon_theme=Papirus-Dark
standard_dialogs=default
style=Fusion
[Fonts]
fixed="JetBrainsMono Nerd Font Mono,12,-1,5,50,0,0,0,0,0,Regular"
general="JetBrainsMono Nerd Font,12,-1,5,50,0,0,0,0,0,Regular"
[Interface]
activate_item_on_single_click=1
buttonbox_layout=0
cursor_flash_time=1000
dialog_buttons_have_icons=1
double_click_interval=400
gui_effects=@Invalid()
keyboard_scheme=2
menus_have_icons=true
show_shortcuts_in_context_menus=true
stylesheets=@Invalid()
toolbutton_style=4
underline_shortcut=1
wheel_scroll_lines=3
stylesheets=${pkgs.qt6ct}/share/qt6ct/qss/scrollbar-simple.qss, ${pkgs.qt6ct}/share/qt6ct/qss/sliders-simple.qss, ${pkgs.qt6ct}/share/qt6ct/qss/tooltip-simple.qss, ${pkgs.qt6ct}/share/qt6ct/qss/traynotification-simple.qss
[PaletteEditor]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10)
[SettingsWindow]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\xad\0\0\x3\xf5\0\0\0\0\0\0\0\0\0\0\x3\xbf\0\0\x4\v\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x3\xad\0\0\x3\xf5)
[Troubleshooting]
force_raster_widgets=1
ignored_applications=@Invalid()
'';
};
}

View file

@ -0,0 +1,25 @@
{ inputs, ... }:
let walls = inputs.nix-wallpapers; in
{
stylix = {
image = "${walls}/desktop/cassette.jpg";
base16Scheme = {
base00 = "#151515";
base01 = "#1F1F1F";
base02 = "#2E2E2E";
base03 = "#424242";
base04 = "#BBB6B6";
base05 = "#E8E3E3";
base06 = "#E8E3E3";
base07 = "#E8E3E3";
base08 = "#B66467";
base09 = "#D9BC8C";
base0A = "#D9BC8C";
base0B = "#8C977D";
base0C = "#8AA6A2";
base0D = "#8DA3B9";
base0E = "#A988B0";
base0F = "#BBB6B6";
};
};
}

View file

@ -0,0 +1,55 @@
{ config, pkgs, inputs, ... }:
{
imports = [
inputs.stylix.homeManagerModules.stylix
./paradise.nix
];
stylix = {
enable = true;
autoEnable = false;
cursor = {
name = "GoogleDot-Black";
package = pkgs.google-cursor;
size = 21;
};
fonts = {
serif = {
name = "JetBrainsMono NerdFont";
package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
};
monospace = config.stylix.fonts.serif;
emoji = {
name = "OpenMoji Color";
package = pkgs.noto-fonts-emoji;
};
sizes = {
desktop = 10;
popups = 10;
applications = 12;
terminal = 12;
};
};
targets = {
tmux.enable = true;
fish.enable = true;
nushell.enable = true;
hyprland.enable = true;
sway.enable = true;
# waybar = { enable = true; enableCenterBackColors = true; enableLeftBackColors = true; enableRightBackColors = true; };
foot.enable = true;
kitty = { enable = true; variant256Colors = false; };
gtk.enable = true;
# kde.enable = true;
# helix.enable = true;
nixvim.enable = true;
yazi.enable = true;
fzf.enable = true;
bat.enable = true;
mako.enable = true;
mangohud.enable = true;
vesktop.enable = true;
qutebrowser.enable = true;
firefox = { enable = true; };
};
};
}

Some files were not shown because too many files have changed in this diff Show more