Added new pockets refactoring cach add new yazi config

This commit is contained in:
Kirill committed 2025-05-20 12:17:31 +03:00
1 parent 8c9e64c6ff
commit 98a69f46ce
16 files changed
+138 -488

No files matched your search

+17
View File
@@ -1,6 +1,23 @@
{ {
description = "My system configuration"; description = "My system configuration";
nixConfig = {
extra-substituters = [
"https://nix-community.cachix.org"
"https://cache.garnix.io"
"https://hyprland.cachix.org"
"https://ezkea.cachix.org"
"https://risdeveau.cachix.org"
];
extra-trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI="
"risdeveau.cachix.org-1:TsoFSVeLl7iKtUYGX7qsvKPjf2vbNLfLC5v3SAdU8r0="
];
};
inputs = { inputs = {
ayugram-desktop.url = "github:/ayugram-port/ayugram-desktop/release?submodules=1"; ayugram-desktop.url = "github:/ayugram-port/ayugram-desktop/release?submodules=1";
+4
View File
@@ -10,6 +10,8 @@
echo \$surface0: \#${colors.base02}\; >> colors.scss echo \$surface0: \#${colors.base02}\; >> colors.scss
echo \$fg: \#${colors.base05}\; >> colors.scss echo \$fg: \#${colors.base05}\; >> colors.scss
echo \$accent: \#${colors.base0B}\; >> colors.scss echo \$accent: \#${colors.base0B}\; >> colors.scss
echo \#${colors.base0B} > accent.css
''; '';
installPhase = '' installPhase = ''
@@ -17,5 +19,7 @@
mkdir $out mkdir $out
cp $src/* $out -r cp $src/* $out -r
mv colors.scss $out mv colors.scss $out
mv accent.css $out
''; '';
} }
+2 -2
View File
@@ -68,7 +68,7 @@ window.Bar {
} }
} }
Media { .Media {
&.playing { &.playing {
border: 2pt solid $accent; border: 2pt solid $accent;
} }
@@ -91,7 +91,7 @@ window.Bar {
.AudioSlider icon { margin-left: 8px; } .AudioSlider icon { margin-left: 8px; }
.Workspaces, .Layout, .Media, .SysTray, .AudioSlider, .Time { .Workspaces, .Wifi, .Layout, .Media, .SysTray, .AudioSlider, .Battery, .Time {
@extend %item; @extend %item;
} }
} }
@@ -1,16 +1,16 @@
import { bind } from "astal" import { bind } from "astal"
import { execAsync } from "astal/process"
import Wp from "gi://AstalWp" import Wp from "gi://AstalWp"
import {execAsync} from "astal/process"
export default function Audio() { export default function Audio() {
const speaker = Wp.get_default()?.audio.defaultSpeaker! const speaker = Wp.get_default()?.audio.defaultSpeaker!
return <box className="AudioSlider"> return <button
<button onClicked={() => {execAsync("kitty --class pulsemixer -e pulsemixer")}}> className="AudioSlider"
<box spacing={4}> onClicked={() => { execAsync("ghostty --title=pulsemixer -e pulsemixer") }}>
<box>
<icon icon={bind(speaker, "volumeIcon")} /> <icon icon={bind(speaker, "volumeIcon")} />
<label label={bind(speaker, "volume").as(v => `${Math.floor(v*100)}%`)} /> <label label={bind(speaker, "volume").as(v => `${Math.floor(v*100)}%`)} />
</box> </box>
</button> </button>
</box>
} }
@@ -1,14 +1,30 @@
import { bind } from "astal" import { bind } from "astal";
import Battery from "gi://AstalBattery" import Battery from "gi://AstalBattery";
import accent from "../../accent.css";
export default function BatteryLevel() { export default function BatteryLevel() {
const bat = Battery.get_default() const bat = Battery.get_default();
const percent = bind(bat, "percentage").as(p => Math.floor(p * 100));
return <box className="Battery" return (
visible={bind(bat, "isPresent")}> <box
className="Battery"
visible={bind(bat, "isPresent")}
css={percent.as(p => `
background-image: linear-gradient(
to right,
${accent} 0%,
${accent} ${p}%,
transparent ${p}%,
transparent 100%
);
background-size: 100% 3px;
background-repeat: no-repeat;
background-position: bottom;
`)}
>
<icon icon={bind(bat, "batteryIconName")} /> <icon icon={bind(bat, "batteryIconName")} />
<label label={bind(bat, "percentage").as(p => <label label={percent.as(p => `${p}%`)} />
`${Math.floor(p * 100)} %`
)} />
</box> </box>
);
} }
@@ -1,21 +1,6 @@
import { bind } from "astal" import { bind } from "astal"
import Network from "gi://AstalNetwork" import Network from "gi://AstalNetwork"
import {execAsync} from "astal/process" import { execAsync } from "astal/process"
/*export default function Wifi() {
const network = Network.get_default()
const wifi = bind(network, "wifi")
return <box visible={wifi.as(Boolean)}>
{wifi.as(wifi => wifi && (
<icon
tooltipText={bind(wifi, "ssid").as(String)}
className="Wifi"
icon={bind(wifi, "iconName")}
/>
))}
</box>
}*/
export default function Wifi() { export default function Wifi() {
const network = Network.get_default() const network = Network.get_default()
@@ -23,10 +8,17 @@ export default function Wifi() {
return <box visible={wifi.as(Boolean)}> return <box visible={wifi.as(Boolean)}>
{wifi.as(wifi => wifi && ( {wifi.as(wifi => wifi && (
<button onClicked={() => {execAsync("kitty --title=nmtui -e nmtui")}} className="Wifi"> <button
<box spacing={4}> className="Wifi"
<icon icon={bind(wifi, "iconName")}/> onClicked={() => {execAsync("ghostty --title=nmtui -e nmtui")}}>
<label label={wifi.ssid.slice(0, 10) + (wifi.ssid.length > 10 ? "…" : "")}/> <box>
<icon
tooltipText={bind(wifi, "ssid").as(String)}
icon={bind(wifi, "iconName")}
/>
<label
label={bind(wifi, "ssid").as(String)}
/>
</box> </box>
</button> </button>
))} ))}
+11
View File
@@ -0,0 +1,11 @@
{
programs.ghostty = {
enable = true;
enableZshIntegration = true;
settings = {
confirm-close-surface = false;
copy-on-select = false;
title-report = true;
};
};
}
+7 -7
View File
@@ -138,10 +138,10 @@
bind = [ bind = [
"$mainMod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy" "$mainMod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy"
"$mainMod, Return, exec, kitty" "$mainMod, Return, exec, ghostty"
"$mainMod, Q, killactive," "$mainMod, Q, killactive,"
"$mainMod, M, exit," "$mainMod, M, exit,"
"$mainMod, E, exec, kitty -e sh -c yazi" "$mainMod, E, exec, ghostty -e sh -c yazi"
"$mainMod, F, togglefloating," "$mainMod, F, togglefloating,"
"$mainMod, D, exec, wofi --show drun" "$mainMod, D, exec, wofi --show drun"
"$mainMod, P, pseudo, # dwindle" "$mainMod, P, pseudo, # dwindle"
@@ -209,10 +209,10 @@
", XF86MonBrightnessUp, exec, brightnessctl set +5% " ", XF86MonBrightnessUp, exec, brightnessctl set +5% "
# Configuration files # Configuration files
''$mainMod ALT, N, exec, kitty -e sh -c "rb"'' ''$mainMod ALT, N, exec, ghostty -e sh -c "rb"''
''$mainMod ALT, C, exec, kitty -e sh -c "conf"'' ''$mainMod ALT, C, exec, ghostty -e sh -c "conf"''
''$mainMod ALT, H, exec, kitty -e sh -c "$EDITOR ~/nix/home-manager/modules/wms/hyprland.nix"'' ''$mainMod ALT, H, exec, ghostty -e sh -c "$EDITOR ~/nix/home-manager/modules/wms/hyprland.nix"''
''$mainMod ALT, W, exec, kitty -e sh -c "$EDITOR ~/nix/home-manager/modules/wms/waybar.nix"'' ''$mainMod ALT, W, exec, ghostty -e sh -c "$EDITOR ~/nix/home-manager/modules/wms/waybar.nix"''
'', Print, exec, grim -g "$(slurp)" - | swappy -f -'' '', Print, exec, grim -g "$(slurp)" - | swappy -f -''
# Waybar # Waybar
@@ -226,7 +226,7 @@
# Skreens # Skreens
''$mainMod SHIFT, S, exec, alacritty -e sh -c "screenshot"'' ''$mainMod SHIFT, S, exec, alacritty -e sh -c "screenshot"''
'', F11, exec, kitty -e sh -c "hyprlock"'' '', F11, exec, ghostty -e sh -c "hyprlock"''
]; ];
-14
View File
@@ -1,14 +0,0 @@
{ lib, pkgs, ... }: {
programs.kitty = {
enable = true;
settings = lib.mkDefault {
dynamic_background_opacity = "yes";
background_opacity = 0.5;
background_blur = true;
background = "#1d2021";
font_size = 13.0;
cursor_blink_interval = "0.5 ease-in-out";
};
};
programs.zsh.envExtra = "TERM=xterm-256color";
}
+2 -2
View File
@@ -2,13 +2,13 @@
imports = [ imports = [
./hyprland.nix ./hyprland.nix
./ags.nix ./ags.nix
#./waybar.nix
./style.nix ./style.nix
./git.nix ./git.nix
./mako.nix ./mako.nix
./yazi.nix ./yazi.nix
./sleepMode.nix ./sleepMode.nix
./kitty.nix ./ghostty.nix
./home-aps.nix ./home-aps.nix
./zed-idea.nix
]; ];
} }
-415
View File
@@ -1,415 +0,0 @@
{ pkgs, config, ...}: {
home.packages = [ pkgs.pulsemixer ];
wayland.windowManager.hyprland.settings.windowrule = [
"float, ^(pulsemixer)"
"float, ^(nmtui)"
];
wayland.windowManager.hyprland.settings.exec-once = [ "waybar" ];
programs.waybar =
let
colors = config.lib.stylix.colors;
in {
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
margin = "9 13 -10 18";
modules-left = ["hyprland/workspaces" "hyprland/language" "keyboard-state" "hyprland/submap"];
modules-center = ["mpris" "wlr/taskbar"];
modules-right = ["group/system" "battery" "pulseaudio" "clock" "tray"];
"hyprland/workspaces" = {
disable-scroll = true;
};
"wlr/taskbar" = {
on-click = "activate";
on-click-middle = "close";
on-click-right = "minimize";
};
"group/system" = {
orientation = "inherit";
drawer = {
transition-duration = 500;
transition-left-to-right = false;
};
modules = [
"network"
"custom/mem"
"cpu"
"temperature"
"backlight"
];
};
"hyprland/language" = {
format-en = "US";
format-ru = "RU";
min-length = 5;
tooltip = false;
};
"keyboard-state" = {
capslock = true;
format = "{icon}";
format-icons = {
locked = "CUPS";
unlocked = "";
};
};
"clock" = {
tooltip = false;
format = "{:%a, %d %b %R}";
};
"custom/weather" = {
format = "{}";
tooltip = true;
interval = 1800;
exec = "python3 $HOME/.config/waybar/scripts/wttr.py";
return-type = "json";
};
"pulseaudio" = {
# scroll-step = 1; # %, can be a float
reverse-scrolling = 1;
format = "{volume}% {icon} {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = "{volume}% ";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = ["" "" ""];
};
on-click = "alacritty --class pulsemixer -e pulsemixer";
min-length = 13;
};
"custom/mem" = {
format = "{} ";
interval = 3;
exec = "free -h | awk '/Mem:/{printf $3}'";
tooltip = false;
};
"cpu" = {
interval = 2;
format = "{usage}% ";
min-length = 6;
};
"temperature" = {
# thermal-zone = 2;
# hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input";
critical-threshold = 80;
# format-critical = "{temperatureC}°C {icon}";
format = "{temperatureC}°C {icon}";
format-icons = ["" "" "" "" ""];
tooltip = false;
};
"network" = {
format = "{ifname}";
format-wifi = "{essid} ({signalStrength}%) ";
format-ethernet = "{ifname} ";
format-disconnected = "";
tooltip-format = "{ifname}";
tooltip-format-wifi = "{essid} ({signalStrength}%) ";
tooltip-format-ethernet = "{ifname} ";
tooltip-format-disconnected = "Disconnected";
max-length = 50;
on-click = "alacritty --class nmtui -e sh -c nmtui";
};
"backlight" = {
device = "intel_backlight";
format = "{percent}% {icon}";
format-icons = [""];
min-length = 7;
};
battery = {
states = {
warning = 30;
critical = 15;
};
format = "{capacity}%";
format-charging = "{capacity}% {time}";
format-plugged = "{capacity}%";
format-alt = "{time}";
format-time = "{H}:{m}";
};
mpris = {
format = "{title}";
format-len = "20";
};
tray = {
icon-size = 16;
spacing = 0;
};
};
};
style = /*css*/
''
* {
border: none;
border-radius: 0;
/* `otf-font-awesome` is required to be installed for icons */
font-family: JetBrains Mono;
font-weight: bold;
min-height: 20px;
}
window#waybar {
background: transparent;
}
window#waybar.hidden {
opacity: 0.2;
}
#workspaces {
margin-right: 8px;
border-radius: 10px;
transition: none;
background: #${colors.base00};
}
#workspaces button {
transition: none;
color: #${colors.base04};
background: transparent;
padding: 5px;
font-size: 18px;
}
#workspaces button.persistent {
font-size: 12px;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
#workspaces button:hover {
transition: none;
box-shadow: inherit;
text-shadow: inherit;
border-radius: inherit;
color: #${colors.base05};
}
#workspaces button.active {
background: #${colors.base02};
color: #${colors.base05};
border-radius: inherit;
}
#taskbar {
border-radius: 10px;
color: #${colors.base05};
background: #${colors.base00};
}
#taskbar button {
transition: none;
background: transparent;
border-radius: 10px;
padding: 8px;
margin: 0px;
}
#taskbar button:hover {
transition: none;
box-shadow: inherit;
text-shadow: inherit;
border-radius: inherit;
background: #${colors.base02};
}
#taskbar button.active {
background: #${colors.base0B};
}
#language {
padding: 8px 0px 8px 8px;
border-radius: 10px 0px 0px 10px;
transition: none;
color: #${colors.base05};
background: #${colors.base00};
}
#keyboard-state {
margin-right: 8px;
padding: 8px 8px 8px 0px;
border-radius: 0px 10px 10px 0px;
transition: none;
color: #${colors.base05};
background: #${colors.base00};
}
#custom-pacman {
padding-left: 16px;
padding-right: 8px;
border-radius: 10px 0px 0px 10px;
transition: none;
color: #${colors.base05};
background: #${colors.base00};
}
#custom-mail {
margin-right: 8px;
padding-right: 16px;
border-radius: 0px 10px 10px 0px;
transition: none;
color: #${colors.base05};
background: #${colors.base00};
}
#submap {
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #${colors.base05};
background: #${colors.base00};
}
#clock {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #${colors.base05};
background: #${colors.base00};
}
#network {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #${colors.base05};
background: #${colors.base00};
}
#network.disconnected {
color: #${colors.base00};
background-color: #${colors.base08};
}
#custom-weather {
padding-right: 16px;
border-radius: 0px 10px 10px 0px;
transition: none;
color: #${colors.base05};
background: #${colors.base00};
}
#pulseaudio {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #${colors.base05};
background: #${colors.base00};
}
#pulseaudio.muted {
background-color: #${colors.base08};
color: #${colors.base01};
}
#custom-mem {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #${colors.base05};
background: #${colors.base00};
}
#cpu {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #${colors.base05};
background: #${colors.base00};
}
#temperature {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #${colors.base05};
background: #${colors.base00};
}
#temperature.critical {
background-color: #${colors.base08};
}
#backlight {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #${colors.base05};
background: #${colors.base00};
}
#battery {
margin-right: 8px;
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #${colors.base05};
background: #${colors.base00};
}
#battery.charging {
color: #${colors.base00};
background-color: #${colors.base0B};
}
#battery.warning:not(.charging) {
background-color: #${colors.base09};
color: black;
}
#battery.critical:not(.charging) {
background-color: #${colors.base08};
color: #${colors.base05};
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#tray {
padding-left: 16px;
padding-right: 16px;
border-radius: 10px;
transition: none;
color: #${colors.base05};
background: #${colors.base00};
}
#mpris{
background: #${colors.base00};
border-radius: 10px;
color: #${colors.base05};
padding: 0px 8px;
margin: 0px 8px;
}
#mpris.playing {
background-color: #${colors.base0B};
color: #${colors.base01};
}
#mpris.paused {
background-color: #${colors.base0A};
color: #${colors.base01};
}
@keyframes blink {
to {
background-color: #${colors.base05};
color: #${colors.base00};
}
}
'';
};
}
+10 -5
View File
@@ -2,14 +2,14 @@
yazi-plugins = pkgs.fetchFromGitHub { yazi-plugins = pkgs.fetchFromGitHub {
owner = "yazi-rs"; owner = "yazi-rs";
repo = "plugins"; repo = "plugins";
rev = "07258518f3bffe28d87977bc3e8a88e4b825291b"; rev = "864a0210d9ba1e8eb925160c2e2a25342031d8d3";
hash = "sha256-axoMrOl0pdlyRgckFi4DiS+yBKAIHDhVeZQJINh8+wk="; hash = "sha256-m3709h7/AHJAtoJ3ebDA40c77D+5dCycpecprjVqj/k=";
}; };
starship = pkgs.fetchFromGitHub { starship = pkgs.fetchFromGitHub {
owner = "Rolv-Apneseth"; owner = "Rolv-Apneseth";
repo = "starship.yazi"; repo = "starship.yazi";
rev = "d1cd0a38aa6a2c2e86e62a466f43e415f781031e"; rev = "6fde3b2d9dc9a12c14588eb85cf4964e619842e6";
sha256 = "sha256-XiEsykudwYmwSNDO41b5layP1DqVa89e6Emv9Qf0mz0="; sha256 = "sha256-+CSdghcIl50z0MXmFwbJ0koIkWIksm3XxYvTAwoRlDY=";
}; };
in { in {
programs.yazi = { programs.yazi = {
@@ -30,7 +30,7 @@ in {
plugins = { plugins = {
chmod = "${yazi-plugins}/chmod.yazi"; chmod = "${yazi-plugins}/chmod.yazi";
full-border = "${yazi-plugins}/full-border.yazi"; full-border = "${yazi-plugins}/full-border.yazi";
max-preview = "${yazi-plugins}/max-preview.yazi"; # max-preview = "${yazi-plugins}/max-preview.yazi";
starship = starship; starship = starship;
}; };
@@ -55,6 +55,11 @@ in {
on = [ "<C-n>" ]; on = [ "<C-n>" ];
run = ''shell '${lib.getExe pkgs.xdragon} -x -i -T "$@"' --confirm''; run = ''shell '${lib.getExe pkgs.xdragon} -x -i -T "$@"' --confirm'';
} }
{
on = [ "g" "<S-d>" ];
run = ''cd /mnt/D'';
desc = "Goto D drive";
}
]; ];
}; };
}; };
+29
View File
@@ -0,0 +1,29 @@
{pkgs, lib, ... }:
{
programs.zed-editor = {
enable = true;
userSettings = {
lsp.clangd = {
binary.path = "${pkgs.clang-tools}/bin/clangd";
settings = {
arguments = [
"--background-index"
"--header-insertion=never"
# Отключаем диагностику ошибок
"--enable-config" # Требуется для кастомных настроек
];
# Конфиг clangd (переопределяет аргументы)
config = {
Diagnostics = {
Enable = false; # Полное отключение диагностики
};
};
};
};
};
};
home.packages = with pkgs; [ clang-tools ];
}
+1
View File
@@ -84,6 +84,7 @@
screenshot="grimblast save area ~/screenshot_$(date +\%Y-\%m-\%d_\%H-\%M-\%S).png"; screenshot="grimblast save area ~/screenshot_$(date +\%Y-\%m-\%d_\%H-\%M-\%S).png";
screenshot_c = "grimblast copy area"; screenshot_c = "grimblast copy area";
loginPostgresql = "sudo -u postgres psql"; loginPostgresql = "sudo -u postgres psql";
startShell = "nix-shell . --run zsh";
}; };
initExtra = '' initExtra = ''
+3
View File
@@ -14,6 +14,7 @@
./models/env.nix ./models/env.nix
]; ];
#home.packages = [ pkgs.callPackage ./pockets/thingsboard.nix {} ]; #home.packages = [ pkgs.callPackage ./pockets/thingsboard.nix {} ];
# Bootloader. # Bootloader.
@@ -127,6 +128,8 @@
"flakes" "flakes"
]; ];
nix.settings.trusted-users = [ "kirill" ];
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
+11 -10
View File
@@ -10,7 +10,8 @@
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. texmaker
libreoffice
wget wget
home-manager home-manager
pkgs.opera pkgs.opera
@@ -19,8 +20,7 @@
pkgs.git pkgs.git
lazygit lazygit
#terminals #terminals
kitty ghostty
alacritty
#fprAGS #fprAGS
@@ -29,7 +29,6 @@
pkgs.wofi pkgs.wofi
pkgs.google-chrome pkgs.google-chrome
pkgs.libsForQt5.kolourpaint pkgs.libsForQt5.kolourpaint
pkgs.waybar
grimblast grimblast
tree tree
slurp slurp
@@ -58,20 +57,19 @@
# IDES # IDES
jetbrains.idea-community jetbrains.idea-community
#Utiles
postman
# Code # Code
vscode zed-editor
nodejs nodejs
#C/C++ #C/C++
gcc
gdb
cmake
qtcreator qtcreator
#java #java
openjfx gradle
openjdk openjdk
maven
#DB #DB
postgresql postgresql
@@ -98,6 +96,9 @@
#Usb mouting and acsess #Usb mouting and acsess
udisks udisks
#virtualization
qemu
]; ];
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [