mirror of
https://git.sr.ht/~azikx/wyswort
synced 2024-10-30 05:16:19 +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