This commit is contained in:
commit
30ce0dafc2
195 changed files with 8902 additions and 0 deletions
BIN
users/rus07tam/assets/wallpaper.png
Normal file
BIN
users/rus07tam/assets/wallpaper.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6 MiB |
20
users/rus07tam/home.nix
Normal file
20
users/rus07tam/home.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./variables
|
||||
./secrets/home.nix
|
||||
./modules/fish
|
||||
./modules/git
|
||||
./modules/nvf
|
||||
./modules/rclone
|
||||
./modules/stylix
|
||||
./modules/zellij
|
||||
];
|
||||
|
||||
targets.genericLinux.enable = true;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
any-nix-shell
|
||||
bitwarden-cli
|
||||
];
|
||||
}
|
||||
20
users/rus07tam/hosts/elaris.nix
Normal file
20
users/rus07tam/hosts/elaris.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./../modules/alacritty
|
||||
./../modules/clipboard
|
||||
./../modules/firefox
|
||||
./../modules/hyprland
|
||||
./../modules/obsidian
|
||||
./../modules/wofi
|
||||
./../modules/zed
|
||||
./../modules/apps.nix
|
||||
./../modules/games.nix
|
||||
];
|
||||
|
||||
xdg.enable = true;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
dragon-drop
|
||||
];
|
||||
}
|
||||
4
users/rus07tam/hosts/velarion.nix
Normal file
4
users/rus07tam/hosts/velarion.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
imports = [
|
||||
];
|
||||
}
|
||||
15
users/rus07tam/modules/alacritty/default.nix
Normal file
15
users/rus07tam/modules/alacritty/default.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
terminal.shell = "${pkgs.fish}/bin/fish";
|
||||
window = {
|
||||
padding = {
|
||||
x = 5;
|
||||
y = 5;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
11
users/rus07tam/modules/apps.nix
Normal file
11
users/rus07tam/modules/apps.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
vscode-fhs
|
||||
libreoffice-qt
|
||||
hunspell
|
||||
hunspellDicts.ru_RU
|
||||
telegram-desktop
|
||||
krita
|
||||
];
|
||||
}
|
||||
22
users/rus07tam/modules/clipboard/default.nix
Normal file
22
users/rus07tam/modules/clipboard/default.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
clipboard = pkgs.writeShellScriptBin "clipboard" ''
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [ -t 0 ]; then
|
||||
${pkgs.wl-clipboard}/bin/wl-paste
|
||||
else
|
||||
cat - | ${pkgs.wl-clipboard}/bin/wl-copy -n
|
||||
fi
|
||||
'';
|
||||
|
||||
clipboard-clear = pkgs.writeShellScriptBin "clipboard-clear" ''
|
||||
${pkgs.wl-clipboard}/bin/wl-copy --all
|
||||
'';
|
||||
in
|
||||
{
|
||||
home.packages = [
|
||||
clipboard
|
||||
clipboard-clear
|
||||
];
|
||||
}
|
||||
57
users/rus07tam/modules/firefox/default.nix
Normal file
57
users/rus07tam/modules/firefox/default.nix
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
languagePacks = [
|
||||
"en"
|
||||
"ru"
|
||||
];
|
||||
profiles = {
|
||||
rus07tam = {
|
||||
isDefault = true;
|
||||
search = {
|
||||
force = true;
|
||||
default = "ddg";
|
||||
engines = {
|
||||
"Nix Packages" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://search.nixos.org/packages";
|
||||
params = [
|
||||
{
|
||||
name = "channel";
|
||||
value = "unstable";
|
||||
}
|
||||
{
|
||||
name = "query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@np" ];
|
||||
};
|
||||
"MyNixOS" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://mynixos.com/search";
|
||||
params = [
|
||||
{
|
||||
name = "q";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake-white.svg";
|
||||
definedAliases = [ "@mn" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
stylix.targets.firefox.profileNames = [ "rus07tam" ];
|
||||
}
|
||||
7
users/rus07tam/modules/fish/default.nix
Normal file
7
users/rus07tam/modules/fish/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, ... }:
|
||||
{
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
inherit (config) shellAliases;
|
||||
};
|
||||
}
|
||||
6
users/rus07tam/modules/games.nix
Normal file
6
users/rus07tam/modules/games.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
osu-lazer-bin
|
||||
];
|
||||
}
|
||||
17
users/rus07tam/modules/git/default.nix
Normal file
17
users/rus07tam/modules/git/default.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
init.defaultBranch = "main";
|
||||
user = {
|
||||
name = "Rustam Efimov";
|
||||
email = "rus07tam+contact@ruject.fun";
|
||||
};
|
||||
};
|
||||
signing = {
|
||||
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPRVeP7aRYdbIku7Qr6dLFLQrcq8LUUTTpYZZ3E8ZoQK";
|
||||
format = "ssh";
|
||||
signByDefault = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
57
users/rus07tam/modules/hyprland/animations.nix
Normal file
57
users/rus07tam/modules/hyprland/animations.nix
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
{ config, ... }:
|
||||
let
|
||||
animationSpeed = config.theme.animation-speed;
|
||||
|
||||
animationDuration =
|
||||
if animationSpeed == "slow" then
|
||||
"4"
|
||||
else if animationSpeed == "medium" then
|
||||
"2.5"
|
||||
else
|
||||
"1.5";
|
||||
|
||||
borderDuration =
|
||||
if animationSpeed == "slow" then
|
||||
"10"
|
||||
else if animationSpeed == "medium" then
|
||||
"6"
|
||||
else
|
||||
"3";
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"linear, 0, 0, 1, 1"
|
||||
"md3_standard, 0.2, 0, 0, 1"
|
||||
"md3_decel, 0.05, 0.7, 0.1, 1"
|
||||
"md3_accel, 0.3, 0, 0.8, 0.15"
|
||||
"overshot, 0.05, 0.9, 0.1, 1.1"
|
||||
"crazyshot, 0.1, 1.5, 0.76, 0.92"
|
||||
"hyprnostretch, 0.05, 0.9, 0.1, 1.0"
|
||||
"menu_decel, 0.1, 1, 0, 1"
|
||||
"menu_accel, 0.38, 0.04, 1, 0.07"
|
||||
"easeInOutCirc, 0.85, 0, 0.15, 1"
|
||||
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||
"easeOutExpo, 0.16, 1, 0.3, 1"
|
||||
"softAcDecel, 0.26, 0.26, 0.15, 1"
|
||||
"md2, 0.4, 0, 0.2, 1"
|
||||
];
|
||||
|
||||
animation = [
|
||||
"windows, 1, ${animationDuration}, md3_decel, popin 60%"
|
||||
"windowsIn, 1, ${animationDuration}, md3_decel, popin 60%"
|
||||
"windowsOut, 1, ${animationDuration}, md3_accel, popin 60%"
|
||||
"border, 1, ${borderDuration}, default"
|
||||
"fade, 1, ${animationDuration}, md3_decel"
|
||||
"layersIn, 1, ${animationDuration}, menu_decel, slide"
|
||||
"layersOut, 1, ${animationDuration}, menu_accel"
|
||||
"fadeLayersIn, 1, ${animationDuration}, menu_decel"
|
||||
"fadeLayersOut, 1, ${animationDuration}, menu_accel"
|
||||
"workspaces, 1, ${animationDuration}, menu_decel, slide"
|
||||
"specialWorkspace, 1, ${animationDuration}, md3_decel, slidevert"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
10
users/rus07tam/modules/hyprland/autorun.nix
Normal file
10
users/rus07tam/modules/hyprland/autorun.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
exec-once = [
|
||||
"hyprpaper"
|
||||
"${pkgs.firefox}/bin/firefox"
|
||||
"${pkgs.throne}/bin/Throne"
|
||||
];
|
||||
};
|
||||
}
|
||||
79
users/rus07tam/modules/hyprland/bindings.nix
Normal file
79
users/rus07tam/modules/hyprland/bindings.nix
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
"$mainMod" = "SUPER";
|
||||
"$shiftMod" = "SUPER_SHIFT";
|
||||
|
||||
bind = [
|
||||
# Control
|
||||
"$mainMod, C, killactive,"
|
||||
"$mainMod, ESCAPE, exit,"
|
||||
"$mainMod, V, togglefloating,"
|
||||
"$mainMod, S, togglesplit,"
|
||||
|
||||
# Programs
|
||||
"$mainMod, T, exec, alacritty"
|
||||
"$mainMod, M, exec, ${pkgs.wofi}/bin/wofi --show drun"
|
||||
|
||||
# Move focus with "jkl;"
|
||||
"$mainMod, j, movefocus, l"
|
||||
"$mainMod, semicolon, movefocus, r"
|
||||
"$mainMod, l, movefocus, u"
|
||||
"$mainMod, k, movefocus, d"
|
||||
|
||||
# Move focus with arrows
|
||||
"$mainMod, left, movefocus, l"
|
||||
"$mainMod, right, movefocus, r"
|
||||
"$mainMod, up, movefocus, u"
|
||||
"$mainMod, down, movefocus, d"
|
||||
|
||||
# Screenshots
|
||||
",PRINT, exec, ${pkgs.hyprshot}/bin/hyprshot -m region -o ~/Pictures/Screenshots"
|
||||
"ALT,PRINT, exec, ${pkgs.hyprshot}/bin/hyprshot -m window -active -o ~/Pictures/Screenshots" # Screenshot active window
|
||||
"$mainMod,PRINT, exec, ${pkgs.hyprshot}/bin/hyprshot -m output -o ~/Pictures/Screenshots" # Screenshot monitor
|
||||
"$shiftMod,PRINT, exec, ${pkgs.hyprshot}/bin/hyprshot -m window -o ~/Pictures/Screenshots" # Screenshot window
|
||||
|
||||
# Switch workspaces
|
||||
"$mainMod, 1, workspace, 1"
|
||||
"$mainMod, 2, workspace, 2"
|
||||
"$mainMod, 3, workspace, 3"
|
||||
"$mainMod, 4, workspace, 4"
|
||||
"$mainMod, 5, workspace, 5"
|
||||
"$mainMod, 6, workspace, 6"
|
||||
"$mainMod, 7, workspace, 7"
|
||||
"$mainMod, 8, workspace, 8"
|
||||
"$mainMod, 9, workspace, 9"
|
||||
"$mainMod, 0, workspace, 10"
|
||||
|
||||
# Move window to workspace
|
||||
"$mainMod SHIFT, 1, movetoworkspace, 1"
|
||||
"$mainMod SHIFT, 2, movetoworkspace, 2"
|
||||
"$mainMod SHIFT, 3, movetoworkspace, 3"
|
||||
"$mainMod SHIFT, 4, movetoworkspace, 4"
|
||||
"$mainMod SHIFT, 5, movetoworkspace, 5"
|
||||
"$mainMod SHIFT, 6, movetoworkspace, 6"
|
||||
"$mainMod SHIFT, 7, movetoworkspace, 7"
|
||||
"$mainMod SHIFT, 8, movetoworkspace, 8"
|
||||
"$mainMod SHIFT, 9, movetoworkspace, 9"
|
||||
"$mainMod SHIFT, 0, movetoworkspace, 10"
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
"$mainMod, mouse_down, workspace, e+1"
|
||||
"$mainMod, mouse_up, workspace, e-1"
|
||||
];
|
||||
bindm = [
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
"$mainMod, mouse:272, movewindow"
|
||||
"$mainMod, mouse:273, resizewindow"
|
||||
];
|
||||
bindel = [
|
||||
# Multimedia keys for volume and LCD brightness
|
||||
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
||||
",XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+"
|
||||
",XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-"
|
||||
];
|
||||
};
|
||||
}
|
||||
44
users/rus07tam/modules/hyprland/decoration.nix
Normal file
44
users/rus07tam/modules/hyprland/decoration.nix
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
border-size = toString config.theme.border-size;
|
||||
gaps-in = toString config.theme.gaps-in;
|
||||
gaps-out = toString config.theme.gaps-out;
|
||||
active-opacity = toString config.theme.active-opacity;
|
||||
inactive-opacity = toString config.theme.inactive-opacity;
|
||||
rounding = toString config.theme.rounding;
|
||||
inherit (config.theme) blur;
|
||||
inactive-border = "rgb(" + config.theme.colors.base00 + ")";
|
||||
active-border = "rgb(" + config.theme.colors.base05 + ")";
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
general = {
|
||||
resize_on_border = true;
|
||||
gaps_in = gaps-in;
|
||||
gaps_out = gaps-out;
|
||||
border_size = border-size;
|
||||
layout = "dwindle";
|
||||
"col.active_border" = lib.mkForce active-border;
|
||||
"col.inactive_border" = lib.mkForce inactive-border;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
inherit rounding;
|
||||
active_opacity = active-opacity;
|
||||
inactive_opacity = inactive-opacity;
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 20;
|
||||
render_power = 3;
|
||||
};
|
||||
blur = {
|
||||
enabled = if blur then "true" else "false";
|
||||
size = 18;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
70
users/rus07tam/modules/hyprland/default.nix
Normal file
70
users/rus07tam/modules/hyprland/default.nix
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
{
|
||||
imports = [
|
||||
./animations.nix
|
||||
./autorun.nix
|
||||
./bindings.nix
|
||||
./decoration.nix
|
||||
./hyprlauncher.nix
|
||||
./hyprpanel.nix
|
||||
./hyprpaper.nix
|
||||
./hyprtoolkit.nix
|
||||
./input.nix
|
||||
./rules.nix
|
||||
];
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
env = [
|
||||
"XDG_CURRENT_DESKTOP,Hyprland"
|
||||
"MOZ_ENABLE_WAYLAND,1"
|
||||
"ANKI_WAYLAND,1"
|
||||
"DISABLE_QT5_COMPAT,0"
|
||||
"NIXOS_OZONE_WL,1"
|
||||
"XDG_SESSION_TYPE,wayland"
|
||||
"XDG_SESSION_DESKTOP,Hyprland"
|
||||
"QT_AUTO_SCREEN_SCALE_FACTOR,1"
|
||||
"QT_QPA_PLATFORM=wayland,xcb"
|
||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
||||
"ELECTRON_OZONE_PLATFORM_HINT,auto"
|
||||
"__GL_GSYNC_ALLOWED,0"
|
||||
"__GL_VRR_ALLOWED,0"
|
||||
"DISABLE_QT5_COMPAT,0"
|
||||
"DIRENV_LOG_FORMAT,"
|
||||
"WLR_DRM_NO_ATOMIC,1"
|
||||
"WLR_BACKEND,vulkan"
|
||||
"WLR_RENDERER,vulkan"
|
||||
"WLR_NO_HARDWARE_CURSORS,1"
|
||||
"SDL_VIDEODRIVER,wayland"
|
||||
"CLUTTER_BACKEND,wayland"
|
||||
];
|
||||
|
||||
monitor = [
|
||||
",preffered,auto,1"
|
||||
];
|
||||
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
};
|
||||
|
||||
master = {
|
||||
new_status = true;
|
||||
allow_small_split = true;
|
||||
mfact = 0.5;
|
||||
};
|
||||
|
||||
misc = {
|
||||
vfr = true;
|
||||
disable_hyprland_logo = true;
|
||||
disable_splash_rendering = true;
|
||||
disable_autoreload = true;
|
||||
focus_on_activate = true;
|
||||
on_focus_under_fullscreen = 2;
|
||||
};
|
||||
|
||||
"debug:disable_scale_checks" = true;
|
||||
};
|
||||
}
|
||||
26
users/rus07tam/modules/hyprland/hyprlauncher.nix
Normal file
26
users/rus07tam/modules/hyprland/hyprlauncher.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
services.hyprlauncher = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
cache = {
|
||||
enabled = false;
|
||||
};
|
||||
finders = {
|
||||
default_finder = "desktop";
|
||||
desktop_prefix = "";
|
||||
unicode_prefix = ".";
|
||||
math_prefix = "=";
|
||||
font_prefix = "'";
|
||||
desktop_launch_prefix = "";
|
||||
desktop_icons = true;
|
||||
};
|
||||
general = {
|
||||
grab_focus = true;
|
||||
};
|
||||
ui = {
|
||||
window_size = "400 260";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
224
users/rus07tam/modules/hyprland/hyprpanel.nix
Normal file
224
users/rus07tam/modules/hyprland/hyprpanel.nix
Normal file
|
|
@ -0,0 +1,224 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (config.theme.bar) transparentButtons;
|
||||
|
||||
accent = "#${config.lib.stylix.colors.base0D}";
|
||||
accent-alt = "#${config.lib.stylix.colors.base03}";
|
||||
background = "#${config.lib.stylix.colors.base00}";
|
||||
background-alt = "#${config.lib.stylix.colors.base01}";
|
||||
foreground = "#${config.lib.stylix.colors.base05}";
|
||||
foregroundOnWallpaper = "#${config.theme.textColorOnWallpaper}";
|
||||
font = "${config.stylix.fonts.serif.name}";
|
||||
fontSizeForHyprpanel = "${toString config.stylix.fonts.sizes.desktop}px";
|
||||
|
||||
inherit (config.theme) rounding;
|
||||
inherit (config.theme) border-size;
|
||||
|
||||
inherit (config.theme) gaps-out;
|
||||
inherit (config.theme) gaps-in;
|
||||
|
||||
inherit (config.theme.bar) floating;
|
||||
inherit (config.theme.bar) transparent;
|
||||
inherit (config.theme.bar) position;
|
||||
|
||||
notificationOpacity = 90;
|
||||
in
|
||||
{
|
||||
programs.hyprpanel = {
|
||||
enable = true;
|
||||
|
||||
settings = lib.mkForce {
|
||||
bar = {
|
||||
layouts = {
|
||||
"*" = {
|
||||
left = [
|
||||
"dashboard"
|
||||
"workspaces"
|
||||
"windowtitle"
|
||||
];
|
||||
middle = [
|
||||
"media"
|
||||
"cava"
|
||||
];
|
||||
right = [
|
||||
"systray"
|
||||
"volume"
|
||||
"clock"
|
||||
"notifications"
|
||||
"kbinput"
|
||||
];
|
||||
};
|
||||
};
|
||||
launcher.icon = "";
|
||||
workspaces = {
|
||||
show_numbered = false;
|
||||
workspaces = 7;
|
||||
numbered_active_indicator = "color";
|
||||
monitorSpecific = false;
|
||||
applicationIconEmptyWorkspace = "";
|
||||
showApplicationIcons = true;
|
||||
showWsIcons = true;
|
||||
};
|
||||
windowtitle.label = true;
|
||||
volume.label = false;
|
||||
network.truncation_size = 12;
|
||||
bluetooth.label = false;
|
||||
clock.format = "%a %b %d %I:%M %p";
|
||||
notifications.show_total = true;
|
||||
media.show_active_only = true;
|
||||
customModules = {
|
||||
updates.pollingInterval = 1440000;
|
||||
cava = {
|
||||
showIcon = false;
|
||||
stereo = true;
|
||||
showActiveOnly = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
notifications = {
|
||||
position = "top right";
|
||||
showActionsOnHover = true;
|
||||
};
|
||||
|
||||
menus = {
|
||||
dashboard = {
|
||||
shortcuts.enabled = false;
|
||||
powermenu = {
|
||||
confirmation = false;
|
||||
avatar.image = "~/.face.icon";
|
||||
};
|
||||
directories = { };
|
||||
};
|
||||
power.lowBatteryNotification = true;
|
||||
};
|
||||
|
||||
wallpaper.enable = false;
|
||||
|
||||
theme = {
|
||||
font = {
|
||||
name = font;
|
||||
size = fontSizeForHyprpanel;
|
||||
};
|
||||
osd = {
|
||||
enable = true;
|
||||
orientation = "vertical";
|
||||
location = "left";
|
||||
radius = toString rounding + "px";
|
||||
margins = "0px 0px 0px 10px";
|
||||
muted_zero = true;
|
||||
bar_color = accent;
|
||||
bar_overflow_color = accent-alt;
|
||||
icon = background;
|
||||
icon_container = accent;
|
||||
label = accent;
|
||||
bar_container = background-alt;
|
||||
};
|
||||
notification = {
|
||||
opacity = notificationOpacity;
|
||||
enableShadow = true;
|
||||
border_radius = toString rounding + "px";
|
||||
background = background-alt;
|
||||
actions = {
|
||||
background = accent;
|
||||
text = foreground;
|
||||
};
|
||||
label = accent;
|
||||
border = background-alt;
|
||||
text = foreground;
|
||||
labelicon = accent;
|
||||
close_button = {
|
||||
background = background-alt;
|
||||
label = "#f38ba8";
|
||||
};
|
||||
};
|
||||
bar = {
|
||||
outer_spacing = if floating && transparent then "0px" else "8px";
|
||||
margin_top = (if position == "top" then toString (gaps-in * 2) else "0") + "px";
|
||||
margin_bottom = (if position == "top" then "0" else toString (gaps-in * 2)) + "px";
|
||||
margin_sides = toString gaps-out + "px";
|
||||
border_radius = toString rounding + "px";
|
||||
inherit transparent;
|
||||
location = position;
|
||||
dropdownGap = "4.5em";
|
||||
inherit floating;
|
||||
menus = {
|
||||
inherit background;
|
||||
cards = background-alt;
|
||||
label = foreground;
|
||||
text = foreground;
|
||||
border.color = accent;
|
||||
popover = {
|
||||
text = foreground;
|
||||
background = background-alt;
|
||||
};
|
||||
listitems.active = accent;
|
||||
icons.active = accent;
|
||||
switch.enabled = accent;
|
||||
check_radio_button.active = accent;
|
||||
buttons = {
|
||||
default = accent;
|
||||
active = accent;
|
||||
};
|
||||
iconbuttons.active = accent;
|
||||
progressbar.foreground = accent;
|
||||
slider.primary = accent;
|
||||
tooltip = {
|
||||
background = background-alt;
|
||||
text = foreground;
|
||||
};
|
||||
dropdownmenu = {
|
||||
background = background-alt;
|
||||
text = foreground;
|
||||
};
|
||||
shadow = if transparent then "0 0 0 0" else "0px 0px 3px 1px #16161e";
|
||||
monochrome = true;
|
||||
card_radius = toString rounding + "px";
|
||||
border = {
|
||||
size = toString border-size + "px";
|
||||
radius = toString rounding + "px";
|
||||
};
|
||||
menu.media = {
|
||||
background.color = background-alt;
|
||||
card = {
|
||||
color = background-alt;
|
||||
tint = 90;
|
||||
};
|
||||
};
|
||||
};
|
||||
background = background + (if transparentButtons && transparent then "00" else "");
|
||||
buttons = {
|
||||
workspaces = {
|
||||
hover = accent-alt;
|
||||
active = accent;
|
||||
available = accent-alt;
|
||||
occupied = accent-alt;
|
||||
};
|
||||
y_margins = if floating && transparent then "0px" else "8px";
|
||||
spacing = "0.3em";
|
||||
radius = (if transparent then toString rounding else toString (rounding - 8)) + "px";
|
||||
padding_x = "0.8rem";
|
||||
padding_y = "0.4rem";
|
||||
style = "default";
|
||||
monochrome = true;
|
||||
text = if transparent && transparentButtons then foregroundOnWallpaper else foreground;
|
||||
background =
|
||||
(if transparent then background else background-alt) + (if transparentButtons then "00" else "");
|
||||
icon = accent;
|
||||
hover = lib.mkForce background;
|
||||
notifications = {
|
||||
hover = background;
|
||||
total = accent;
|
||||
icon = accent;
|
||||
background = lib.mkForce background-alt;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
11
users/rus07tam/modules/hyprland/hyprpaper.nix
Normal file
11
users/rus07tam/modules/hyprland/hyprpaper.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ hyprpaper ];
|
||||
services.hyprpaper = {
|
||||
enable = true;
|
||||
settings = {
|
||||
splash = false;
|
||||
splash_offset = 2;
|
||||
};
|
||||
};
|
||||
}
|
||||
25
users/rus07tam/modules/hyprland/hyprtoolkit.nix
Normal file
25
users/rus07tam/modules/hyprland/hyprtoolkit.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (config.theme) colors;
|
||||
font = config.stylix.fonts.serif.name;
|
||||
font-size = config.stylix.fonts.sizes.popups;
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs; [ wofi-emoji ];
|
||||
|
||||
xdg.configFile."hypr/hyprtoolkit.conf".text = ''
|
||||
background = 0x${colors.base00}
|
||||
base = 0x${colors.base01}
|
||||
alternate_base = 0x${colors.base02}
|
||||
text = 0x${colors.base05}
|
||||
bright_text = 0x${colors.base06}
|
||||
accent = 0x${colors.base0D}
|
||||
accent_secondary = 0x${colors.base0E}
|
||||
font_family = ${font}
|
||||
font_size = ${toString font-size}
|
||||
'';
|
||||
}
|
||||
24
users/rus07tam/modules/hyprland/input.nix
Normal file
24
users/rus07tam/modules/hyprland/input.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
cursor = {
|
||||
no_hardware_cursors = true;
|
||||
hide_on_touch = true;
|
||||
inactive_timeout = 0;
|
||||
};
|
||||
input = {
|
||||
kb_layout = "us,ru";
|
||||
|
||||
kb_options = "altwin:swap_alt_win,grp:caps_toggle";
|
||||
follow_mouse = 1;
|
||||
sensitivity = 0.5;
|
||||
repeat_delay = 300;
|
||||
repeat_rate = 50;
|
||||
numlock_by_default = true;
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
clickfinger_behavior = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
7
users/rus07tam/modules/hyprland/rules.nix
Normal file
7
users/rus07tam/modules/hyprland/rules.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
windowrule = [
|
||||
"match:class .*, suppress_event maximize"
|
||||
];
|
||||
};
|
||||
}
|
||||
12
users/rus07tam/modules/nvf/assistant.nix
Normal file
12
users/rus07tam/modules/nvf/assistant.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
programs.nvf.settings.vim.assistant.neocodeium = {
|
||||
enable = true;
|
||||
setupOpts = {
|
||||
enabled = true;
|
||||
log_level = "debug";
|
||||
};
|
||||
keymaps = {
|
||||
accept = "<A-Tab>";
|
||||
};
|
||||
};
|
||||
}
|
||||
31
users/rus07tam/modules/nvf/default.nix
Normal file
31
users/rus07tam/modules/nvf/default.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
inputs.nvf.homeManagerModules.default
|
||||
./assistant.nix
|
||||
./options.nix
|
||||
./languages.nix
|
||||
./picker.nix
|
||||
./snacks.nix
|
||||
./keymaps.nix
|
||||
./utils.nix
|
||||
./mini.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
neovim
|
||||
];
|
||||
|
||||
programs.nvf = {
|
||||
enable = true;
|
||||
settings.vim = {
|
||||
startPlugins = [
|
||||
pkgs.vimPlugins.vim-kitty-navigator
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
269
users/rus07tam/modules/nvf/keymaps.nix
Normal file
269
users/rus07tam/modules/nvf/keymaps.nix
Normal file
|
|
@ -0,0 +1,269 @@
|
|||
{
|
||||
programs.nvf.settings.vim = {
|
||||
globals.mapleader = " ";
|
||||
binds = {
|
||||
whichKey = {
|
||||
enable = true;
|
||||
register = { };
|
||||
};
|
||||
};
|
||||
keymaps = [
|
||||
# "hjkl" -> "jkl;"
|
||||
{
|
||||
mode = "n"; # Normal mode
|
||||
key = "j";
|
||||
action = "<Left>";
|
||||
desc = "Move Left";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "k";
|
||||
action = "<Down>";
|
||||
desc = "Move Down";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "l";
|
||||
action = "<Up>";
|
||||
desc = "Move Up";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = ";";
|
||||
action = "<Right>";
|
||||
desc = "Move Right";
|
||||
}
|
||||
{
|
||||
mode = "v"; # Visual mode
|
||||
key = "j";
|
||||
action = "<Left>";
|
||||
desc = "Move Left";
|
||||
}
|
||||
{
|
||||
mode = "v";
|
||||
key = "k";
|
||||
action = "<Down>";
|
||||
desc = "Move Down";
|
||||
}
|
||||
{
|
||||
mode = "v";
|
||||
key = "l";
|
||||
action = "<Up>";
|
||||
desc = "Move Up";
|
||||
}
|
||||
{
|
||||
mode = "v";
|
||||
key = ";";
|
||||
action = "<Right>";
|
||||
desc = "Move Right";
|
||||
}
|
||||
|
||||
# General Mappings
|
||||
{
|
||||
key = "s";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua require('flash').jump()<cr>";
|
||||
desc = "Flash";
|
||||
}
|
||||
{
|
||||
key = "K";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua vim.lsp.buf.hover()<cr>";
|
||||
desc = "LSP Hover";
|
||||
}
|
||||
{
|
||||
key = "<C-tab>";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>bnext<cr>";
|
||||
desc = "Next Buffer";
|
||||
}
|
||||
{
|
||||
key = "rn";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua vim.lsp.buf.rename()<cr>";
|
||||
desc = "Rename symbol";
|
||||
}
|
||||
|
||||
# Escape from Insert Mode
|
||||
{
|
||||
key = "jj";
|
||||
mode = "i";
|
||||
action = "<Esc>";
|
||||
desc = "Exit insert mode";
|
||||
} # UI
|
||||
{
|
||||
key = "<leader>uw";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>set wrap!<cr>";
|
||||
desc = "Toggle word wrapping";
|
||||
}
|
||||
{
|
||||
key = "<leader>ul";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>set linebreak!<cr>";
|
||||
desc = "Toggle linebreak";
|
||||
}
|
||||
{
|
||||
key = "<leader>us";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>set spell!<cr>";
|
||||
desc = "Toggle spellLazyGitcheck";
|
||||
}
|
||||
{
|
||||
key = "<leader>uc";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>set cursorline!<cr>";
|
||||
desc = "Toggle cursorline";
|
||||
}
|
||||
{
|
||||
key = "<leader>un";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>set number!<cr>";
|
||||
desc = "Toggle line numbers";
|
||||
}
|
||||
{
|
||||
key = "<leader>ur";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>set relativenumber!<cr>";
|
||||
desc = "Toggle relative line numbers";
|
||||
}
|
||||
{
|
||||
key = "<leader>ut";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>set showtabline=2<cr>";
|
||||
desc = "Show tabline";
|
||||
}
|
||||
{
|
||||
key = "<leader>uT";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>set showtabline=0<cr>";
|
||||
desc = "Hide tabline";
|
||||
}
|
||||
|
||||
# Windows
|
||||
{
|
||||
key = "<leader>ws";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>split<cr>";
|
||||
desc = "Split";
|
||||
}
|
||||
{
|
||||
key = "<leader>wv";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>vsplit<cr>";
|
||||
desc = "VSplit";
|
||||
}
|
||||
{
|
||||
key = "<leader>wd";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>close<cr>";
|
||||
desc = "Close";
|
||||
}
|
||||
|
||||
# Disable Arrow Keys in Normal Mode
|
||||
{
|
||||
key = "<Up>";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<Nop>";
|
||||
desc = "Disable Up Arrow";
|
||||
}
|
||||
{
|
||||
key = "<Down>";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<Nop>";
|
||||
desc = "Disable Down Arrow";
|
||||
}
|
||||
{
|
||||
key = "<Left>";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<Nop>";
|
||||
desc = "Disable Left Arrow";
|
||||
}
|
||||
{
|
||||
key = "<Right>";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<Nop>";
|
||||
desc = "Disable Right Arrow";
|
||||
}
|
||||
|
||||
# Disable Arrow Keys in Visual Mode
|
||||
{
|
||||
key = "<Up>";
|
||||
mode = "v";
|
||||
silent = true;
|
||||
action = "<Nop>";
|
||||
desc = "Disable Up Arrow";
|
||||
}
|
||||
{
|
||||
key = "<Down>";
|
||||
mode = "v";
|
||||
silent = true;
|
||||
action = "<Nop>";
|
||||
desc = "Disable Down Arrow";
|
||||
}
|
||||
{
|
||||
key = "<Left>";
|
||||
mode = "v";
|
||||
silent = true;
|
||||
action = "<Nop>";
|
||||
desc = "Disable Left Arrow";
|
||||
}
|
||||
{
|
||||
key = "<Right>";
|
||||
mode = "v";
|
||||
silent = true;
|
||||
action = "<Nop>";
|
||||
desc = "Disable Right Arrow";
|
||||
}
|
||||
|
||||
# Disable Arrow Keys in Insert Mode
|
||||
{
|
||||
key = "<Up>";
|
||||
mode = "i";
|
||||
silent = true;
|
||||
action = "<Nop>";
|
||||
desc = "Disable Up Arrow";
|
||||
}
|
||||
{
|
||||
key = "<Down>";
|
||||
mode = "i";
|
||||
silent = true;
|
||||
action = "<Nop>";
|
||||
desc = "Disable Down Arrow";
|
||||
}
|
||||
{
|
||||
key = "<Left>";
|
||||
mode = "i";
|
||||
silent = true;
|
||||
action = "<Nop>";
|
||||
desc = "Disable Left Arrow";
|
||||
}
|
||||
{
|
||||
key = "<Right>";
|
||||
mode = "i";
|
||||
silent = true;
|
||||
action = "<Nop>";
|
||||
desc = "Disable Right Arrow";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
122
users/rus07tam/modules/nvf/languages.nix
Normal file
122
users/rus07tam/modules/nvf/languages.nix
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
{ lib, ... }:
|
||||
{
|
||||
programs.nvf.settings.vim = {
|
||||
diagnostics = {
|
||||
enable = true;
|
||||
config = {
|
||||
signs = {
|
||||
text = {
|
||||
"vim.diagnostic.severity.Error" = " ";
|
||||
"vim.diagnostic.severity.Warn" = " ";
|
||||
"vim.diagnostic.severity.Hint" = " ";
|
||||
"vim.diagnostic.severity.Info" = " ";
|
||||
};
|
||||
};
|
||||
underline = true;
|
||||
update_in_insert = true;
|
||||
virtual_text = {
|
||||
format =
|
||||
lib.generators.mkLuaInline
|
||||
# lua
|
||||
''
|
||||
function(diagnostic)
|
||||
return string.format("%s", diagnostic.message)
|
||||
--return string.format("%s (%s)", diagnostic.message, diagnostic.source)
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
nvim-lint = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
syntaxHighlighting = true;
|
||||
treesitter = {
|
||||
enable = true;
|
||||
autotagHtml = true;
|
||||
context.enable = true;
|
||||
highlight.enable = true;
|
||||
};
|
||||
lsp = {
|
||||
enable = true;
|
||||
trouble.enable = true;
|
||||
lspSignature.enable = true;
|
||||
lspconfig.enable = true;
|
||||
formatOnSave = true;
|
||||
inlayHints.enable = true;
|
||||
null-ls.enable = true;
|
||||
otter-nvim = {
|
||||
enable = true;
|
||||
setupOpts = {
|
||||
buffers.set_filetype = true;
|
||||
lsp = {
|
||||
diagnostic_update_event = [
|
||||
"BufWritePost"
|
||||
"InsertLeave"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
lspkind.enable = true;
|
||||
lspsaga = {
|
||||
enable = true;
|
||||
setupOpts = {
|
||||
ui = {
|
||||
code_action = "";
|
||||
};
|
||||
lightbulb = {
|
||||
sign = false;
|
||||
virtual_text = true;
|
||||
};
|
||||
breadcrumbs.enable = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
languages = {
|
||||
enableDAP = true;
|
||||
enableExtraDiagnostics = true;
|
||||
enableFormat = true;
|
||||
enableTreesitter = true;
|
||||
|
||||
bash.enable = true;
|
||||
clang.enable = true;
|
||||
css.enable = true;
|
||||
elixir.enable = true;
|
||||
go.enable = true;
|
||||
html.enable = true;
|
||||
json.enable = true;
|
||||
lua.enable = true;
|
||||
markdown = {
|
||||
enable = true;
|
||||
extensions = {
|
||||
render-markdown-nvim = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
extraDiagnostics.enable = true;
|
||||
};
|
||||
nim.enable = true;
|
||||
nix.enable = true;
|
||||
python = {
|
||||
enable = true;
|
||||
format.type = [
|
||||
"black"
|
||||
"isort"
|
||||
];
|
||||
};
|
||||
rust.enable = true;
|
||||
tailwind.enable = true;
|
||||
ts = {
|
||||
enable = true;
|
||||
extensions.ts-error-translator.enable = true;
|
||||
};
|
||||
yaml.enable = true;
|
||||
zig.enable = true;
|
||||
};
|
||||
formatter = {
|
||||
conform-nvim = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
users/rus07tam/modules/nvf/mini.nix
Normal file
13
users/rus07tam/modules/nvf/mini.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
programs.nvf.settings.vim.mini = {
|
||||
starter.enable = true;
|
||||
comment.enable = true;
|
||||
# cursorword.enable = true;
|
||||
icons.enable = true;
|
||||
indentscope.enable = true;
|
||||
notify.enable = true;
|
||||
pairs.enable = true;
|
||||
diff.enable = true;
|
||||
git.enable = true;
|
||||
};
|
||||
}
|
||||
41
users/rus07tam/modules/nvf/options.nix
Normal file
41
users/rus07tam/modules/nvf/options.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{ lib, ... }:
|
||||
{
|
||||
programs.nvf.settings.vim = {
|
||||
viAlias = false;
|
||||
vimAlias = true;
|
||||
withNodeJs = true;
|
||||
# syntaxHighlighting = true;
|
||||
options = {
|
||||
autoindent = true;
|
||||
smartindent = true;
|
||||
shiftwidth = 2;
|
||||
foldlevel = 99;
|
||||
foldcolumn = "auto:1";
|
||||
mousescroll = "ver:1,hor:1";
|
||||
mousemoveevent = true;
|
||||
fillchars = "eob:‿,fold: ,foldopen:▼,foldsep:⸽,foldclose:⏵";
|
||||
signcolumn = "yes";
|
||||
tabstop = 2;
|
||||
softtabstop = 2;
|
||||
wrap = false;
|
||||
};
|
||||
globals = {
|
||||
navic_silence = true; # navic tries to attach multiple LSPs and fails
|
||||
suda_smart_edit = 1; # use super user write automatically
|
||||
neovide_scale_factor = 0.7;
|
||||
neovide_cursor_animation_length = 0.1;
|
||||
neovide_cursor_short_animation_length = 0;
|
||||
};
|
||||
clipboard = {
|
||||
enable = true;
|
||||
registers = "unnamedplus";
|
||||
providers.wl-copy.enable = true;
|
||||
};
|
||||
theme = {
|
||||
enable = true;
|
||||
name = lib.mkForce "catppuccin";
|
||||
style = lib.mkForce "mocha";
|
||||
transparent = lib.mkForce true;
|
||||
};
|
||||
};
|
||||
}
|
||||
256
users/rus07tam/modules/nvf/picker.nix
Normal file
256
users/rus07tam/modules/nvf/picker.nix
Normal file
|
|
@ -0,0 +1,256 @@
|
|||
{
|
||||
programs.nvf.settings.vim = {
|
||||
utility = {
|
||||
oil-nvim.enable = true;
|
||||
snacks-nvim = {
|
||||
setupOpts = {
|
||||
picker.enabled = true;
|
||||
explorer.enabled = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
keymaps = [
|
||||
# Top Pickers & Explorer
|
||||
{
|
||||
key = "<leader> ";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.smart()<cr>";
|
||||
desc = "Smart Find Files";
|
||||
}
|
||||
{
|
||||
key = "<leader>,";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.buffers()<cr>";
|
||||
desc = "Buffers";
|
||||
}
|
||||
{
|
||||
key = "<leader>/";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.grep()<cr>";
|
||||
desc = "Grep";
|
||||
}
|
||||
{
|
||||
key = "<leader>:";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.command_history()<cr>";
|
||||
desc = "Command History";
|
||||
}
|
||||
{
|
||||
key = "<leader>e";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.explorer()<cr>";
|
||||
desc = "File Explorer";
|
||||
}
|
||||
{
|
||||
key = "-";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>Oil<cr>";
|
||||
desc = "Oil";
|
||||
}
|
||||
|
||||
# Find
|
||||
{
|
||||
key = "<leader>fb";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.buffers()<cr>";
|
||||
desc = "Buffers";
|
||||
}
|
||||
{
|
||||
key = "<leader>fc";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = ''<cmd>lua Snacks.picker.files({ cwd = vim.fn.stdpath("config") })<cr>'';
|
||||
desc = "Find Config File";
|
||||
}
|
||||
{
|
||||
key = "<leader>ff";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.files()<cr>";
|
||||
desc = "Find Files";
|
||||
}
|
||||
{
|
||||
key = "<leader>fg";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.git_files()<cr>";
|
||||
desc = "Find Git Files";
|
||||
}
|
||||
{
|
||||
key = "<leader>fp";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.projects()<cr>";
|
||||
desc = "Projects";
|
||||
}
|
||||
{
|
||||
key = "<leader>fr";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.recent()<cr>";
|
||||
desc = "Recent";
|
||||
}
|
||||
{
|
||||
key = "<leader>fn";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.notifications()<cr>";
|
||||
desc = "Notification History";
|
||||
}
|
||||
{
|
||||
key = "<leader>fe";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.icons()<cr>";
|
||||
desc = "Emoji";
|
||||
}
|
||||
|
||||
# Git
|
||||
{
|
||||
key = "<leader>gb";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.git_branches()<cr>";
|
||||
desc = "Git Branches";
|
||||
}
|
||||
{
|
||||
key = "<leader>gL";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.git_log()<cr>";
|
||||
desc = "Git Log Line";
|
||||
}
|
||||
{
|
||||
key = "<leader>gs";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.git_status()<cr>";
|
||||
desc = "Git Status";
|
||||
}
|
||||
{
|
||||
key = "<leader>gS";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.git_stash()<cr>";
|
||||
desc = "Git Stash";
|
||||
}
|
||||
{
|
||||
key = "<leader>gd";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.git_diff()<cr>";
|
||||
desc = "Git Diff (Hunks)";
|
||||
}
|
||||
{
|
||||
key = "<leader>gf";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.git_log_file()<cr>";
|
||||
desc = "Git Log File";
|
||||
}
|
||||
|
||||
# Grep
|
||||
{
|
||||
key = "<leader>sb";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.lines()<cr>";
|
||||
desc = "Buffer Lines";
|
||||
}
|
||||
{
|
||||
key = "<leader>st";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.todo_comments()<cr>";
|
||||
desc = "Todos";
|
||||
}
|
||||
{
|
||||
key = "<leader>sB";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.grep_buffers()<cr>";
|
||||
desc = "Grep Open Buffers";
|
||||
}
|
||||
{
|
||||
key = "<leader>sg";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.grep()<cr>";
|
||||
desc = "Grep";
|
||||
}
|
||||
{
|
||||
key = "<leader>sw";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.grep_word()<cr>";
|
||||
desc = "Visual selection or word";
|
||||
}
|
||||
{
|
||||
key = "<leader>sr";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>nohlsearch<cr>";
|
||||
desc = "Reset search";
|
||||
}
|
||||
|
||||
# LSP
|
||||
{
|
||||
key = "gd";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.lsp_definitions()<cr>";
|
||||
desc = "Goto Definition";
|
||||
}
|
||||
{
|
||||
key = "gD";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.lsp_declarations()<cr>";
|
||||
desc = "Goto Declaration";
|
||||
}
|
||||
{
|
||||
key = "gr";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.lsp_references()<cr>";
|
||||
desc = "References";
|
||||
nowait = true;
|
||||
}
|
||||
{
|
||||
key = "gI";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.lsp_implementations()<cr>";
|
||||
desc = "Goto Implementation";
|
||||
}
|
||||
{
|
||||
key = "gy";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.lsp_type_definitions()<cr>";
|
||||
desc = "Goto Type Definition";
|
||||
}
|
||||
{
|
||||
key = "<leader>ss";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.lsp_symbols()<cr>";
|
||||
desc = "LSP Symbols";
|
||||
}
|
||||
{
|
||||
key = "<leader>sS";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.picker.lsp_workspace_symbols()<cr>";
|
||||
desc = "LSP Workspace Symbols";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
16
users/rus07tam/modules/nvf/snacks.nix
Normal file
16
users/rus07tam/modules/nvf/snacks.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
programs.nvf.settings.vim.utility.snacks-nvim = {
|
||||
enable = true;
|
||||
setupOpts = {
|
||||
image = {
|
||||
enabled = true;
|
||||
setupOpts.doc.inline = false;
|
||||
};
|
||||
quickfile.enabled = true;
|
||||
statuscolumn.enabled = true;
|
||||
zen.enabled = true;
|
||||
bufdelete.enabled = true;
|
||||
gitsigns.enabled = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
50
users/rus07tam/modules/nvf/utils.nix
Normal file
50
users/rus07tam/modules/nvf/utils.nix
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
programs.nvf.settings.vim = {
|
||||
undoFile.enable = true;
|
||||
utility = {
|
||||
motion.flash-nvim.enable = true;
|
||||
outline.aerial-nvim.enable = true;
|
||||
};
|
||||
tabline.nvimBufferline.enable = true;
|
||||
notes.todo-comments.enable = true;
|
||||
statusline.lualine.enable = true;
|
||||
|
||||
autocomplete = {
|
||||
nvim-cmp = {
|
||||
enable = true;
|
||||
sources = {
|
||||
buffer = "[Buffer]";
|
||||
nvim-cmp = null;
|
||||
path = "[Path]";
|
||||
};
|
||||
sourcePlugins = [
|
||||
pkgs.vimPlugins.cmp-cmdline
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
snippets.luasnip.enable = true;
|
||||
ui = {
|
||||
noice.enable = true;
|
||||
colorizer.enable = true;
|
||||
};
|
||||
git = {
|
||||
enable = true;
|
||||
gitsigns.enable = true;
|
||||
};
|
||||
terminal.toggleterm = {
|
||||
enable = true;
|
||||
lazygit = {
|
||||
enable = true;
|
||||
mappings.open = "<leader>gl";
|
||||
};
|
||||
};
|
||||
visuals = {
|
||||
rainbow-delimiters.enable = true;
|
||||
nvim-scrollbar = {
|
||||
enable = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
28
users/rus07tam/modules/obsidian/default.nix
Normal file
28
users/rus07tam/modules/obsidian/default.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
programs.obsidian = {
|
||||
enable = true;
|
||||
defaultSettings = {
|
||||
corePlugins = [
|
||||
"backlink"
|
||||
"bases"
|
||||
"bookmarks"
|
||||
"canvas"
|
||||
"command-palette"
|
||||
"daily-notes"
|
||||
"editor-status"
|
||||
"file-explorer"
|
||||
"file-recovery"
|
||||
"global-search"
|
||||
"graph"
|
||||
"note-composer"
|
||||
"outgoing-link"
|
||||
"outline"
|
||||
"page-preview"
|
||||
"switcher"
|
||||
"tag-pane"
|
||||
"templates"
|
||||
"word-count"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
6
users/rus07tam/modules/openclaw/default.nix
Normal file
6
users/rus07tam/modules/openclaw/default.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
imports = [
|
||||
./secrets.nix
|
||||
./service.nix
|
||||
];
|
||||
}
|
||||
6
users/rus07tam/modules/openclaw/secrets.nix
Normal file
6
users/rus07tam/modules/openclaw/secrets.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
sops.secrets = {
|
||||
"rus07tam/openclaw/gatewayToken" = { };
|
||||
"rus07tam/openclaw/telegramToken" = { };
|
||||
};
|
||||
}
|
||||
37
users/rus07tam/modules/openclaw/service.nix
Normal file
37
users/rus07tam/modules/openclaw/service.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
{ sec, inputs, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.nix-openclaw.homeManagerModules.openclaw
|
||||
];
|
||||
|
||||
programs.openclaw = {
|
||||
enable = true;
|
||||
installApp = false;
|
||||
|
||||
bundledPlugins = {
|
||||
summarize.enable = true;
|
||||
};
|
||||
|
||||
instances.default = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
|
||||
config = {
|
||||
gateway = {
|
||||
mode = "local";
|
||||
auth.token = sec."rus07tam/openclaw/gatewayToken".value;
|
||||
};
|
||||
|
||||
channels.telegram = {
|
||||
tokenFile = sec."rus07tam/openclaw/telegramToken".path;
|
||||
allowFrom = [ 6146757977 ];
|
||||
groups = {
|
||||
"*" = {
|
||||
requireMention = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
9
users/rus07tam/modules/rclone/default.nix
Normal file
9
users/rus07tam/modules/rclone/default.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
imports = [
|
||||
./nextcloud.nix
|
||||
];
|
||||
|
||||
programs.rclone = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
22
users/rus07tam/modules/rclone/nextcloud.nix
Normal file
22
users/rus07tam/modules/rclone/nextcloud.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
config,
|
||||
sec,
|
||||
...
|
||||
}:
|
||||
{
|
||||
sops.secrets."rus07tam/tokens/nextcloud.ruject.fun" = { };
|
||||
|
||||
programs.rclone.remotes.nextcloud = {
|
||||
config = {
|
||||
type = "webdav";
|
||||
vendor = "nextcloud";
|
||||
url = "https://nextcloud.ruject.fun/remote.php/dav/files/rus07tam";
|
||||
user = "rus07tam";
|
||||
};
|
||||
secrets.pass = sec."rus07tam/tokens/nextcloud.ruject.fun".path;
|
||||
mounts."" = {
|
||||
enable = true;
|
||||
mountPoint = "${config.home.homeDirectory}/Nextcloud";
|
||||
};
|
||||
};
|
||||
}
|
||||
47
users/rus07tam/modules/stylix/default.nix
Normal file
47
users/rus07tam/modules/stylix/default.nix
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
inputs.stylix.homeModules.stylix
|
||||
];
|
||||
|
||||
stylix = {
|
||||
enable = true;
|
||||
|
||||
base16Scheme = config.theme.colors;
|
||||
|
||||
cursor = {
|
||||
name = "phinger-cursors-light";
|
||||
package = pkgs.phinger-cursors;
|
||||
size = 20;
|
||||
};
|
||||
|
||||
fonts = {
|
||||
monospace = {
|
||||
package = pkgs.nerd-fonts.jetbrains-mono;
|
||||
name = "JetBrains Mono Nerd Font";
|
||||
};
|
||||
sansSerif = {
|
||||
package = pkgs.source-sans-pro;
|
||||
name = "Source Sans Pro";
|
||||
};
|
||||
serif = {
|
||||
package = pkgs.source-sans-pro;
|
||||
name = "Source Sans Pro";
|
||||
};
|
||||
emoji = {
|
||||
package = pkgs.noto-fonts-color-emoji;
|
||||
name = "Noto Color Emoji";
|
||||
};
|
||||
inherit (config.theme.fonts) sizes;
|
||||
};
|
||||
|
||||
polarity = "dark";
|
||||
|
||||
image = config.assets.wallpaper;
|
||||
};
|
||||
}
|
||||
113
users/rus07tam/modules/wofi/default.nix
Normal file
113
users/rus07tam/modules/wofi/default.nix
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
accent = "#${config.theme.colors.base0D}";
|
||||
background = "#${config.theme.colors.base00}";
|
||||
background-alt = "#${config.theme.colors.base01}";
|
||||
foreground = "#${config.theme.colors.base05}";
|
||||
font = config.stylix.fonts.serif.name;
|
||||
inherit (config.theme) rounding;
|
||||
font-size = config.stylix.fonts.sizes.popups;
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs; [ wofi-emoji ];
|
||||
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
allow_markup = true;
|
||||
width = 650;
|
||||
show = "drun";
|
||||
prompt = "Apps";
|
||||
normal_window = true;
|
||||
layer = "top";
|
||||
height = "325px";
|
||||
orientation = "vertical";
|
||||
halign = "fill";
|
||||
line_wrap = "off";
|
||||
dynamic_lines = false;
|
||||
allow_images = true;
|
||||
image_size = 24;
|
||||
exec_search = false;
|
||||
hide_search = false;
|
||||
parse_search = false;
|
||||
insensitive = true;
|
||||
hide_scroll = true;
|
||||
no_actions = true;
|
||||
sort_order = "default";
|
||||
gtk_dark = true;
|
||||
filter_rate = 100;
|
||||
key_expand = "Tab";
|
||||
key_exit = "Escape";
|
||||
};
|
||||
|
||||
style =
|
||||
lib.mkForce
|
||||
# css
|
||||
''
|
||||
* {
|
||||
font-family: "${font}";
|
||||
font-weight: 600;
|
||||
font-size: ${toString font-size}px;
|
||||
}
|
||||
|
||||
#window {
|
||||
background-color: ${background};
|
||||
color: ${foreground};
|
||||
border-radius: ${toString rounding}px;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
#input {
|
||||
background-color: ${background-alt};
|
||||
border: 0px solid ${accent};
|
||||
color: ${foreground};
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
#scroll {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
#inner-box {}
|
||||
|
||||
#img {
|
||||
padding-right: 8px;
|
||||
}
|
||||
|
||||
#text {
|
||||
color: ${foreground};
|
||||
}
|
||||
|
||||
#text:selected {
|
||||
color: ${foreground};
|
||||
}
|
||||
|
||||
#entry {
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
background-color: ${accent};
|
||||
color: ${foreground};
|
||||
}
|
||||
|
||||
#unselected {}
|
||||
|
||||
#selected {}
|
||||
|
||||
#input,
|
||||
#entry:selected {
|
||||
border-radius: ${toString rounding}px;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
143
users/rus07tam/modules/zed/default.nix
Normal file
143
users/rus07tam/modules/zed/default.nix
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.zed-editor = {
|
||||
enable = true;
|
||||
extensions = [
|
||||
"nix"
|
||||
"git-firefly"
|
||||
"toml"
|
||||
"ruff"
|
||||
"pylsp"
|
||||
"shades-of-purple-theme"
|
||||
"material-icon-theme"
|
||||
];
|
||||
extraPackages = with pkgs; [
|
||||
nixd
|
||||
ruff
|
||||
];
|
||||
mutableUserDebug = false;
|
||||
mutableUserKeymaps = false;
|
||||
mutableUserSettings = false;
|
||||
mutableUserTasks = false;
|
||||
userSettings = {
|
||||
auto_update = false;
|
||||
base_keymap = "VSCode";
|
||||
edit_predictions = {
|
||||
disabled_globs = [
|
||||
"**/.env*"
|
||||
"**/*.pem"
|
||||
"**/*.key"
|
||||
"**/*.cert"
|
||||
"**/*.crt"
|
||||
"**/secrets.yml"
|
||||
];
|
||||
};
|
||||
features = {
|
||||
copilot = false;
|
||||
};
|
||||
file_scan_exclusions = [
|
||||
"_build"
|
||||
".vscode"
|
||||
".lexical"
|
||||
".elixir_ls"
|
||||
".coverage"
|
||||
".venv"
|
||||
".pytest_cache/"
|
||||
".mypy_cache/"
|
||||
".ruff_cache"
|
||||
".git/"
|
||||
".idea"
|
||||
"**/__pycache__"
|
||||
"node_modules"
|
||||
"test_db.sql"
|
||||
".ropeproject"
|
||||
".expert"
|
||||
];
|
||||
format_on_save = "on";
|
||||
icon_theme = {
|
||||
mode = "system";
|
||||
light = "Material Icon Theme";
|
||||
dark = "Material Icon Theme";
|
||||
};
|
||||
load_direnv = "direct";
|
||||
languages = {
|
||||
Markdown = { };
|
||||
Nix = {
|
||||
language_servers = [
|
||||
"nixd"
|
||||
"!nil"
|
||||
];
|
||||
formatter.external = {
|
||||
command = "${lib.getExe pkgs.nixfmt}";
|
||||
arguments = [
|
||||
"--quiet"
|
||||
"--"
|
||||
];
|
||||
};
|
||||
show_edit_predictions = true;
|
||||
};
|
||||
Python = {
|
||||
language_servers = [
|
||||
"ty"
|
||||
"ruff"
|
||||
];
|
||||
format_on_save = "on";
|
||||
formatter = [
|
||||
{
|
||||
code_action = "source.fixAll.ruff";
|
||||
}
|
||||
{
|
||||
code_action = "source.organizeImports.ruff";
|
||||
}
|
||||
{
|
||||
language_server = {
|
||||
name = "ruff";
|
||||
};
|
||||
}
|
||||
];
|
||||
show_edit_predictions = true;
|
||||
};
|
||||
};
|
||||
lsp = {
|
||||
nixd = {
|
||||
binary.path = lib.getExe pkgs.nixd;
|
||||
};
|
||||
ruff = {
|
||||
binary = {
|
||||
path = lib.getExe pkgs.ruff;
|
||||
arguments = [ "server" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
preview_tabs = {
|
||||
enabled = true;
|
||||
enable_preview_from_file_finder = true;
|
||||
enable_preview_from_code_navigation = true;
|
||||
};
|
||||
show_edit_predictions = true;
|
||||
tabs = {
|
||||
file_icons = true;
|
||||
git_status = true;
|
||||
};
|
||||
tab_size = 2;
|
||||
telemetry = {
|
||||
diagnostics = false;
|
||||
metrics = false;
|
||||
};
|
||||
minimap.show = "never";
|
||||
use_smartcase_search = true;
|
||||
vim_mode = true;
|
||||
relative_line_numbers = true;
|
||||
remove_trailing_whitespace_on_save = true;
|
||||
theme = lib.mkForce {
|
||||
mode = "system";
|
||||
light = "Shades Of Purple";
|
||||
dark = "Shades Of Purple (Super Dark)";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
5
users/rus07tam/modules/zellij/default.nix
Normal file
5
users/rus07tam/modules/zellij/default.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
programs.zellij = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
17
users/rus07tam/secrets/home.nix
Normal file
17
users/rus07tam/secrets/home.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
sops = {
|
||||
defaultSopsFile = ./../../../secrets/rus07tam.yaml;
|
||||
age.sshKeyPaths = [
|
||||
"/home/rus07tam/.ssh/id_ed25519"
|
||||
];
|
||||
|
||||
secrets = {
|
||||
"rus07tam/keys/ssh/public" = {
|
||||
mode = "0644";
|
||||
};
|
||||
"rus07tam/keys/ssh/private" = {
|
||||
mode = "0600";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
21
users/rus07tam/secrets/system.nix
Normal file
21
users/rus07tam/secrets/system.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
sops = {
|
||||
secrets = {
|
||||
"rus07tam/hashedPassword" = {
|
||||
sopsFile = ./../../../secrets/rus07tam.yaml;
|
||||
};
|
||||
"rus07tam/keys/ssh/public" = {
|
||||
sopsFile = ./../../../secrets/rus07tam.yaml;
|
||||
mode = "0644";
|
||||
owner = "rus07tam";
|
||||
group = "users";
|
||||
};
|
||||
"rus07tam/keys/ssh/private" = {
|
||||
sopsFile = ./../../../secrets/rus07tam.yaml;
|
||||
mode = "0600";
|
||||
owner = "rus07tam";
|
||||
group = "users";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
29
users/rus07tam/system.nix
Normal file
29
users/rus07tam/system.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
pkgs,
|
||||
sec,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ ./secrets/system.nix ];
|
||||
|
||||
services.openssh.settings.AllowUsers = [ "rus07tam" ];
|
||||
|
||||
programs.fish.enable = true;
|
||||
|
||||
users.users.rus07tam = {
|
||||
isNormalUser = true;
|
||||
description = "rus07tam";
|
||||
uid = 1000;
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
];
|
||||
hashedPasswordFile = sec."rus07tam/hashedPassword".path;
|
||||
openssh.authorizedKeys = {
|
||||
keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPRVeP7aRYdbIku7Qr6dLFLQrcq8LUUTTpYZZ3E8ZoQK ruject@rus07tam"
|
||||
];
|
||||
};
|
||||
shell = pkgs.fish;
|
||||
};
|
||||
}
|
||||
9
users/rus07tam/variables/assets.nix
Normal file
9
users/rus07tam/variables/assets.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ lib, ... }:
|
||||
{
|
||||
options.assets = lib.mkOption {
|
||||
type = lib.types.attrs;
|
||||
default = {
|
||||
wallpaper = ../assets/wallpaper.png;
|
||||
};
|
||||
};
|
||||
}
|
||||
7
users/rus07tam/variables/default.nix
Normal file
7
users/rus07tam/variables/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
imports = [
|
||||
./assets.nix
|
||||
./theme.nix
|
||||
./shell_aliases.nix
|
||||
];
|
||||
}
|
||||
45
users/rus07tam/variables/shell_aliases.nix
Normal file
45
users/rus07tam/variables/shell_aliases.nix
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.shellAliases = lib.mkOption {
|
||||
type = lib.types.attrs;
|
||||
default = {
|
||||
e = "exit";
|
||||
ls = "eza --icons=always --no-quotes";
|
||||
tree = "eza --icons=always --tree --no-quotes";
|
||||
cat = "bat --theme=base16 --color=always --paging=never --tabs=2 --wrap=never --plain";
|
||||
mkdir = "mkdir -p";
|
||||
rm = "${pkgs.rmtrash}/bin/rmtrash";
|
||||
rmdir = "${pkgs.rmtrash}/bin/rmdirtrash";
|
||||
frm = "${pkgs.coreutils}/bin/rm";
|
||||
frmdir = "${pkgs.coreutils}/bin/rmdir";
|
||||
poweroff = "sudo poweroff";
|
||||
shutdown = "sudo poweroff";
|
||||
reboot = "sudo reboot";
|
||||
|
||||
nix-shell = "nix-shell --command fish";
|
||||
|
||||
# git
|
||||
ga = "git add";
|
||||
gc = "git commit";
|
||||
gp = "git push";
|
||||
gpl = "git pull";
|
||||
gs = "git status";
|
||||
gl = "git log";
|
||||
gd = "git diff";
|
||||
gf = "git fetch";
|
||||
gm = "git merge";
|
||||
gsw = "git switch";
|
||||
gco = "git checkout";
|
||||
gcb = "git checkout -b";
|
||||
gbr = "git branch";
|
||||
grs = "git reset HEAD~1";
|
||||
grh = "git reset --hard HEAD~1";
|
||||
gaa = "git add .";
|
||||
gcm = "git commit -m";
|
||||
};
|
||||
};
|
||||
}
|
||||
51
users/rus07tam/variables/theme.nix
Normal file
51
users/rus07tam/variables/theme.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
{ lib, ... }:
|
||||
{
|
||||
options.theme = lib.mkOption {
|
||||
type = lib.types.attrs;
|
||||
default = {
|
||||
rounding = 20;
|
||||
gaps-in = 7;
|
||||
gaps-out = 7 * 2;
|
||||
active-opacity = 0.95;
|
||||
inactive-opacity = 0.92;
|
||||
blur = true;
|
||||
border-size = 2;
|
||||
animation-speed = "fast"; # "fast" | "medium" | "slow"
|
||||
|
||||
bar = {
|
||||
position = "top"; # "top" | "bottom"
|
||||
transparent = true;
|
||||
transparentButtons = false;
|
||||
floating = true;
|
||||
};
|
||||
|
||||
colors = {
|
||||
base00 = "000000"; # 000000 ----
|
||||
base01 = "231a40"; # 231a40 ---
|
||||
base02 = "432d59"; # 432d59 --
|
||||
base03 = "593380"; # 593380 -
|
||||
base04 = "00ff00"; # 7b43bf +
|
||||
base05 = "b08ae6"; # b08ae6 ++
|
||||
base06 = "9045e6"; # 9045e6 +++
|
||||
base07 = "a366ff"; # a366ff ++++
|
||||
base08 = "a82ee6"; # a82ee6 red
|
||||
base09 = "bb66cc"; # bb66cc orange
|
||||
base0A = "f29df2"; # f29df2 yellow
|
||||
base0B = "4595e6"; # 41d9bF green
|
||||
base0C = "40dfff"; # 40dfff aqua/cyan
|
||||
base0D = "4136d9"; # 326ee6 blue
|
||||
base0E = "7e5ce6"; # 7e5ce6 purple
|
||||
base0F = "a886bf"; # a886bf brown
|
||||
};
|
||||
|
||||
fonts = {
|
||||
sizes = {
|
||||
applications = 12;
|
||||
desktop = 12;
|
||||
popups = 12;
|
||||
terminal = 10;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue