mirror of
https://git.sr.ht/~azikx/wyswort
synced 2024-10-30 03:16:20 +00:00
update
This commit is contained in:
commit
2a9b9b5fb7
21
LICENSE
Normal file
21
LICENSE
Normal 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
67
README.md
Normal 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
1362
flake.lock
Normal file
File diff suppressed because it is too large
Load diff
85
flake.nix
Normal file
85
flake.nix
Normal 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
18
home/default.nix
Normal 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;
|
||||
};
|
||||
}
|
12
home/programs/cli/btop/default.nix
Normal file
12
home/programs/cli/btop/default.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
color_theme = "TTY";
|
||||
theme_background = true;
|
||||
vim_keys = true;
|
||||
rounded_corners = true;
|
||||
};
|
||||
};
|
||||
}
|
23
home/programs/cli/cava/default.nix
Normal file
23
home/programs/cli/cava/default.nix
Normal 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}'";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
17
home/programs/cli/default.nix
Normal file
17
home/programs/cli/default.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
imports = [
|
||||
./pkgs.nix
|
||||
|
||||
./eza
|
||||
./fzf
|
||||
./fastfetch
|
||||
./zoxide
|
||||
./cava
|
||||
./btop
|
||||
./micro
|
||||
./git
|
||||
./helix
|
||||
./yazi
|
||||
./joshuto
|
||||
];
|
||||
}
|
10
home/programs/cli/eza/default.nix
Normal file
10
home/programs/cli/eza/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
icons = true;
|
||||
extraOptions = [
|
||||
"--group-directories-first"
|
||||
];
|
||||
};
|
||||
}
|
69
home/programs/cli/fastfetch/default.nix
Normal file
69
home/programs/cli/fastfetch/default.nix
Normal 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";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
10
home/programs/cli/fzf/default.nix
Normal file
10
home/programs/cli/fzf/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
# defaultOptions = [
|
||||
# "--margin 1"
|
||||
# ];
|
||||
};
|
||||
}
|
13
home/programs/cli/git/default.nix
Normal file
13
home/programs/cli/git/default.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
}
|
49
home/programs/cli/helix/default.nix
Normal file
49
home/programs/cli/helix/default.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
15
home/programs/cli/helix/health.nix
Normal file
15
home/programs/cli/helix/health.nix
Normal 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
|
||||
];
|
||||
}
|
96
home/programs/cli/helix/theme.nix
Normal file
96
home/programs/cli/helix/theme.nix
Normal 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; };
|
||||
};
|
||||
};
|
||||
}
|
150
home/programs/cli/joa/binds.nix
Normal file
150
home/programs/cli/joa/binds.nix
Normal 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"] };
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
43
home/programs/cli/joa/default.nix
Normal file
43
home/programs/cli/joa/default.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
}
|
265
home/programs/cli/joa/mime.nix
Normal file
265
home/programs/cli/joa/mime.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
76
home/programs/cli/joa/theme.nix
Normal file
76
home/programs/cli/joa/theme.nix
Normal 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 = " ";
|
||||
};
|
||||
};
|
||||
}
|
150
home/programs/cli/joshuto/binds.nix
Normal file
150
home/programs/cli/joshuto/binds.nix
Normal 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"] };
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
48
home/programs/cli/joshuto/default.nix
Normal file
48
home/programs/cli/joshuto/default.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
}
|
172
home/programs/cli/joshuto/mime.nix
Normal file
172
home/programs/cli/joshuto/mime.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
}
|
16
home/programs/cli/joshuto/previewer.nix
Normal file
16
home/programs/cli/joshuto/previewer.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
}
|
76
home/programs/cli/joshuto/theme.nix
Normal file
76
home/programs/cli/joshuto/theme.nix
Normal 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 = " ";
|
||||
};
|
||||
};
|
||||
}
|
66
home/programs/cli/micro/default.nix
Normal file
66
home/programs/cli/micro/default.nix
Normal 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"
|
||||
'';
|
||||
}
|
43
home/programs/cli/neovim/default.nix
Normal file
43
home/programs/cli/neovim/default.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
}
|
15
home/programs/cli/neovim/plugins/autopairs.nix
Executable file
15
home/programs/cli/neovim/plugins/autopairs.nix
Executable 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())
|
||||
'';
|
||||
};
|
||||
}
|
57
home/programs/cli/neovim/plugins/conform.nix
Executable file
57
home/programs/cli/neovim/plugins/conform.nix
Executable 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";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
145
home/programs/cli/neovim/plugins/debug.nix
Normal file
145
home/programs/cli/neovim/plugins/debug.nix
Normal 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
|
||||
'';
|
||||
};
|
||||
}
|
29
home/programs/cli/neovim/plugins/default.nix
Normal file
29
home/programs/cli/neovim/plugins/default.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
219
home/programs/cli/neovim/plugins/gitsigns.nix
Executable file
219
home/programs/cli/neovim/plugins/gitsigns.nix
Executable 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";
|
||||
};
|
||||
}
|
||||
];
|
||||
*/
|
||||
};
|
||||
}
|
10
home/programs/cli/neovim/plugins/indent-blankline.nix
Executable file
10
home/programs/cli/neovim/plugins/indent-blankline.nix
Executable 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;
|
||||
};
|
||||
};
|
||||
}
|
50
home/programs/cli/neovim/plugins/lint.nix
Executable file
50
home/programs/cli/neovim/plugins/lint.nix
Executable 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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
274
home/programs/cli/neovim/plugins/lsp.nix
Executable file
274
home/programs/cli/neovim/plugins/lsp.nix
Executable 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
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
50
home/programs/cli/neovim/plugins/mini.nix
Executable file
50
home/programs/cli/neovim/plugins/mini.nix
Executable 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
|
||||
'';
|
||||
};
|
||||
}
|
28
home/programs/cli/neovim/plugins/neo-tree.nix
Executable file
28
home/programs/cli/neovim/plugins/neo-tree.nix
Executable 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";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
130
home/programs/cli/neovim/plugins/nvim-cmp.nix
Executable file
130
home/programs/cli/neovim/plugins/nvim-cmp.nix
Executable 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";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
169
home/programs/cli/neovim/plugins/telescope.nix
Executable file
169
home/programs/cli/neovim/plugins/telescope.nix
Executable 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";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
47
home/programs/cli/neovim/plugins/treesitter.nix
Executable file
47
home/programs/cli/neovim/plugins/treesitter.nix
Executable 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
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
47
home/programs/cli/neovim/plugins/which-key.nix
Executable file
47
home/programs/cli/neovim/plugins/which-key.nix
Executable 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"
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
52
home/programs/cli/pkgs.nix
Normal file
52
home/programs/cli/pkgs.nix
Normal 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
|
||||
];
|
||||
}
|
50
home/programs/cli/yazi/binds.nix
Normal file
50
home/programs/cli/yazi/binds.nix
Normal 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" ; }
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
64
home/programs/cli/yazi/default.nix
Normal file
64
home/programs/cli/yazi/default.nix
Normal 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"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
101
home/programs/cli/yazi/lua.nix
Normal file
101
home/programs/cli/yazi/lua.nix
Normal 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)
|
||||
'';
|
||||
}
|
77
home/programs/cli/yazi/plugins.nix
Normal file
77
home/programs/cli/yazi/plugins.nix
Normal 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,
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
43
home/programs/cli/yazi/starship.nix
Normal file
43
home/programs/cli/yazi/starship.nix
Normal 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" = " "
|
||||
'';
|
||||
};
|
||||
}
|
619
home/programs/cli/yazi/theme.nix
Normal file
619
home/programs/cli/yazi/theme.nix
Normal 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"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
9
home/programs/cli/zoxide/default.nix
Normal file
9
home/programs/cli/zoxide/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
options = [ "--cmd cd" ];
|
||||
};
|
||||
}
|
35
home/programs/custom-pkgs/anicliru/anicli-api.nix
Normal file
35
home/programs/custom-pkgs/anicliru/anicli-api.nix
Normal 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;
|
||||
};
|
||||
}
|
33
home/programs/custom-pkgs/anicliru/anicli-ru.nix
Normal file
33
home/programs/custom-pkgs/anicliru/anicli-ru.nix
Normal 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;
|
||||
};
|
||||
}
|
30
home/programs/custom-pkgs/anicliru/chompjs.nix
Normal file
30
home/programs/custom-pkgs/anicliru/chompjs.nix
Normal 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;
|
||||
};
|
||||
}
|
32
home/programs/custom-pkgs/anicliru/eggella.nix
Normal file
32
home/programs/custom-pkgs/anicliru/eggella.nix
Normal 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;
|
||||
};
|
||||
}
|
8
home/programs/custom-pkgs/default.nix
Normal file
8
home/programs/custom-pkgs/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
(callPackage ./anicliru/anicli-ru.nix { })
|
||||
(callPackage ./torrserver/default.nix { })
|
||||
# (callPackage ./termdash/default.nix { })
|
||||
];
|
||||
}
|
24
home/programs/custom-pkgs/femto/default.nix
Normal file
24
home/programs/custom-pkgs/femto/default.nix
Normal 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" ];
|
||||
};
|
||||
}
|
30
home/programs/custom-pkgs/termdash/default.nix
Normal file
30
home/programs/custom-pkgs/termdash/default.nix
Normal 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";
|
||||
};
|
||||
}
|
31
home/programs/custom-pkgs/tgt/tdlib.nix
Normal file
31
home/programs/custom-pkgs/tgt/tdlib.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
|
30
home/programs/custom-pkgs/tgt/tgt.nix
Normal file
30
home/programs/custom-pkgs/tgt/tgt.nix
Normal 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";
|
||||
};
|
||||
}
|
30
home/programs/custom-pkgs/torrserver/default.nix
Normal file
30
home/programs/custom-pkgs/torrserver/default.nix
Normal 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";
|
||||
};
|
||||
}
|
9
home/programs/default.nix
Normal file
9
home/programs/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
imports = [
|
||||
./custom-pkgs
|
||||
./shells
|
||||
./misc
|
||||
./cli
|
||||
./gui
|
||||
];
|
||||
}
|
108
home/programs/gui/ayugram/default.nix
Normal file
108
home/programs/gui/ayugram/default.nix
Normal 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"
|
||||
}
|
||||
]
|
||||
'';
|
||||
};
|
||||
}
|
13
home/programs/gui/default.nix
Normal file
13
home/programs/gui/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
imports = [
|
||||
./spotify
|
||||
./obs-studio
|
||||
./ayugram
|
||||
./firefox
|
||||
./qbittorrent
|
||||
./mpv
|
||||
./swayimg
|
||||
|
||||
./pkgs.nix
|
||||
];
|
||||
}
|
67
home/programs/gui/firefox/default.nix
Normal file
67
home/programs/gui/firefox/default.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
}
|
27
home/programs/gui/firefox/search.nix
Normal file
27
home/programs/gui/firefox/search.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
165
home/programs/gui/firefox/settings.nix
Normal file
165
home/programs/gui/firefox/settings.nix
Normal 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;
|
||||
};
|
||||
}
|
112
home/programs/gui/firefox/user/cascade/colors.nix
Normal file
112
home/programs/gui/firefox/user/cascade/colors.nix
Normal 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; }
|
||||
'';
|
||||
}
|
166
home/programs/gui/firefox/user/cascade/config.nix
Normal file
166
home/programs/gui/firefox/user/cascade/config.nix
Normal 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; }
|
||||
'';
|
||||
}
|
11
home/programs/gui/firefox/user/cascade/default.nix
Normal file
11
home/programs/gui/firefox/user/cascade/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
imports = [
|
||||
./colors.nix
|
||||
./config.nix
|
||||
./layout.nix
|
||||
./navbar.nix
|
||||
# ./resp.nix
|
||||
./tabs.nix
|
||||
./tcr.nix
|
||||
];
|
||||
}
|
66
home/programs/gui/firefox/user/cascade/layout.nix
Normal file
66
home/programs/gui/firefox/user/cascade/layout.nix
Normal 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;
|
||||
|
||||
}
|
||||
'';
|
||||
}
|
52
home/programs/gui/firefox/user/cascade/navbar.nix
Normal file
52
home/programs/gui/firefox/user/cascade/navbar.nix
Normal 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; }
|
||||
'';
|
||||
}
|
14
home/programs/gui/firefox/user/cascade/resp.nix
Normal file
14
home/programs/gui/firefox/user/cascade/resp.nix
Normal 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; }
|
||||
|
||||
}
|
||||
'';
|
||||
}
|
160
home/programs/gui/firefox/user/cascade/tabs.nix
Normal file
160
home/programs/gui/firefox/user/cascade/tabs.nix
Normal 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;
|
||||
}
|
||||
'';
|
||||
}
|
42
home/programs/gui/firefox/user/cascade/tcr.nix
Normal file
42
home/programs/gui/firefox/user/cascade/tcr.nix
Normal 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;
|
||||
}
|
||||
'';
|
||||
}
|
9
home/programs/gui/firefox/user/chrome.nix
Normal file
9
home/programs/gui/firefox/user/chrome.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.firefox.profiles.dragora.userChrome = ''
|
||||
* {
|
||||
font-family: "JetBrainsMono Nerd Font" !important;
|
||||
font-size: 12pt !important;
|
||||
}
|
||||
'';
|
||||
}
|
32
home/programs/gui/firefox/user/content.nix
Normal file
32
home/programs/gui/firefox/user/content.nix
Normal 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;
|
||||
}
|
||||
}
|
||||
'';
|
||||
}
|
8
home/programs/gui/firefox/user/default.nix
Normal file
8
home/programs/gui/firefox/user/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
imports = [
|
||||
./cascade
|
||||
|
||||
./chrome.nix
|
||||
./content.nix
|
||||
];
|
||||
}
|
439
home/programs/gui/firefox/user/waterfall.nix
Normal file
439
home/programs/gui/firefox/user/waterfall.nix
Normal 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; }
|
||||
'';
|
||||
}
|
91
home/programs/gui/mpv/default.nix
Normal file
91
home/programs/gui/mpv/default.nix
Normal 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"
|
||||
'';
|
||||
};
|
||||
}
|
12
home/programs/gui/obs-studio/default.nix
Normal file
12
home/programs/gui/obs-studio/default.nix
Normal 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
|
||||
];
|
||||
};
|
||||
}
|
62
home/programs/gui/pkgs.nix
Normal file
62
home/programs/gui/pkgs.nix
Normal 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
|
||||
];
|
||||
}
|
108
home/programs/gui/qbittorrent/default.nix
Normal file
108
home/programs/gui/qbittorrent/default.nix
Normal 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
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
48
home/programs/gui/spotify/default.nix
Normal file
48
home/programs/gui/spotify/default.nix
Normal 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
|
||||
];
|
||||
};
|
||||
}
|
220
home/programs/gui/swayimg/default.nix
Normal file
220
home/programs/gui/swayimg/default.nix
Normal 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
|
||||
'';
|
||||
};
|
||||
}
|
11
home/programs/misc/dconf.nix
Normal file
11
home/programs/misc/dconf.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{ ... }:
|
||||
{
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"org/gnome/desktop/wm/preferences" = {
|
||||
button-layout = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
9
home/programs/misc/default.nix
Normal file
9
home/programs/misc/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
imports =[
|
||||
./dconf.nix
|
||||
./nwg.nix
|
||||
./nix.nix
|
||||
./xdg.nix
|
||||
# ./env.nix
|
||||
];
|
||||
}
|
7
home/programs/misc/env.nix
Normal file
7
home/programs/misc/env.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ ... }:
|
||||
{
|
||||
home.sessionVariables = {
|
||||
MICRO_TRUECOLOR = "1";
|
||||
QT_QPA_PLATFORMTHEME = "qt5ct";
|
||||
};
|
||||
}
|
27
home/programs/misc/nix.nix
Normal file
27
home/programs/misc/nix.nix
Normal 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;
|
||||
};
|
||||
}
|
21
home/programs/misc/nwg.nix
Normal file
21
home/programs/misc/nwg.nix
Normal 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};
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
29
home/programs/misc/xdg.nix
Normal file
29
home/programs/misc/xdg.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
}
|
8
home/programs/shells/default.nix
Normal file
8
home/programs/shells/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
imports = [
|
||||
./starship.nix
|
||||
|
||||
# ./zsh
|
||||
./fish
|
||||
];
|
||||
}
|
82
home/programs/shells/fish/default.nix
Normal file
82
home/programs/shells/fish/default.nix
Normal 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
|
||||
'';
|
||||
};
|
||||
}
|
70
home/programs/shells/starship.nix
Normal file
70
home/programs/shells/starship.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
20
home/programs/shells/zsh/default.nix
Normal file
20
home/programs/shells/zsh/default.nix
Normal 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
8
home/themes/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
imports = [
|
||||
./stylix/stylix.nix
|
||||
./gtk.nix
|
||||
|
||||
./qt
|
||||
];
|
||||
}
|
32
home/themes/gtk.nix
Normal file
32
home/themes/gtk.nix
Normal 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" ];
|
||||
# };
|
||||
}
|
7
home/themes/qt/default.nix
Normal file
7
home/themes/qt/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
imports = [
|
||||
./qt5ct.nix
|
||||
./qt6ct.nix
|
||||
./qt.nix
|
||||
];
|
||||
}
|
9
home/themes/qt/qt.nix
Normal file
9
home/themes/qt/qt.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "qtct";
|
||||
# style = {
|
||||
# name = "kvantum";
|
||||
# };
|
||||
};
|
||||
}
|
49
home/themes/qt/qt5ct.nix
Normal file
49
home/themes/qt/qt5ct.nix
Normal 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
49
home/themes/qt/qt6ct.nix
Normal 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()
|
||||
'';
|
||||
};
|
||||
}
|
25
home/themes/stylix/paradise.nix
Normal file
25
home/themes/stylix/paradise.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
}
|
55
home/themes/stylix/stylix.nix
Normal file
55
home/themes/stylix/stylix.nix
Normal 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
Loading…
Reference in a new issue