init
This commit is contained in:
7
home/desktop/eww.nix
Normal file
7
home/desktop/eww.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ pkgs, ... }: {
|
||||
programs.eww = {
|
||||
enable = true;
|
||||
package = pkgs.eww;
|
||||
#configDir = "/home/fox/conf/home/desktop/eww_config";
|
||||
};
|
||||
}
|
||||
BIN
home/desktop/eww_config/avatar.png
Normal file
BIN
home/desktop/eww_config/avatar.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 86 KiB |
62
home/desktop/eww_config/eww.scss
Normal file
62
home/desktop/eww_config/eww.scss
Normal file
@@ -0,0 +1,62 @@
|
||||
// переменные цветов
|
||||
$bg: #1a1a1a;
|
||||
$fg: #fcfcfc;
|
||||
$border: #000000;
|
||||
|
||||
// настройка шрифтов
|
||||
* {
|
||||
font-family: JetBrains Mono NF;
|
||||
font-size: 14;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
// Основной модуль прозрачный
|
||||
.bar {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
// воссоздание такого же модуля бара
|
||||
.bar1 {
|
||||
background: $bg;
|
||||
border: 1px solid $border;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
// Левая секция
|
||||
.ws-number-class {
|
||||
font-weight: 900;
|
||||
margin: 0px 5px 0px 10px;
|
||||
padding: 3px 5px 3px 5px;
|
||||
}
|
||||
|
||||
.ws-title-class {
|
||||
margin: 0px 5px;
|
||||
padding: 3px 5px 3px 5px;
|
||||
}
|
||||
|
||||
// Центральная секция
|
||||
.date-class {
|
||||
color: $fg;
|
||||
padding: 3px 5px;
|
||||
}
|
||||
|
||||
// Правая секция
|
||||
.right {
|
||||
margin: 0px 9px;
|
||||
}
|
||||
|
||||
.volume-class {
|
||||
margin: 0px 2px 0px 0px;
|
||||
}
|
||||
|
||||
.language-class {
|
||||
padding: 0px 10px 0px 5px;
|
||||
}
|
||||
|
||||
.systray-class {
|
||||
margin: 0px 9px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
50
home/desktop/eww_config/eww.yuck
Normal file
50
home/desktop/eww_config/eww.yuck
Normal file
@@ -0,0 +1,50 @@
|
||||
; Импорт скриптов
|
||||
(defpoll TITLE :interval "0.1s" "/home/fox/.config/eww/title.sh")
|
||||
(defpoll NUMBER :interval "0.1s" "/home/fox/.config/eww/number.sh")
|
||||
(defpoll DATE :interval "40s" "date +'%H:%M %a, %b'") ;a, b
|
||||
(defpoll VOLUME :interval "0.1s" "/home/fox/.config/eww/volume.sh")
|
||||
(defpoll LANGUAGE :interval "0.1s" "/home/fox/.config/eww/language.sh")
|
||||
(defpoll MUSIC :interval "0.1s" "/home/fox/.config/eww/music.sh")
|
||||
|
||||
; Основной модуль
|
||||
(defwindow bar
|
||||
:monitor 0
|
||||
:geometry (geometry :x "0"
|
||||
:y "15"
|
||||
:width "680"
|
||||
:height "45"
|
||||
:anchor "bottom center")
|
||||
:stacking "fg"
|
||||
:exclusive true
|
||||
:windowtype "dock"
|
||||
:wm-ignore false
|
||||
(box :class "bar1" (left) (center) (right)))
|
||||
|
||||
; Левый модуль
|
||||
(defwidget left []
|
||||
(box :orientation "h"
|
||||
:valign "center"
|
||||
:space-evenly "false"
|
||||
(box :halign "center" :orientation "v" (label :class "ws-number-class" :text NUMBER))
|
||||
(box :halign "start" :orientation "v" (label :class "ws-title-class" :text TITLE))))
|
||||
|
||||
; Центральный модуль
|
||||
(defwidget center []
|
||||
(box :orientation "h"
|
||||
:halign "center"
|
||||
:space-evenly "false"
|
||||
(box (label :class "date-class" :text DATE))))
|
||||
|
||||
; Правый модуль
|
||||
(defwidget right []
|
||||
(eventbox :onclick "exec kitty"
|
||||
(box :orientation "h"
|
||||
:halign "end"
|
||||
:valign "center"
|
||||
:space-evenly "false"
|
||||
:class "right"
|
||||
(box (systray :spacing 5 :icon-size 15 :class "systray-class"))
|
||||
(box (label :class "language-class" :text LANGUAGE))
|
||||
(box (label :class "volume-class" :text VOLUME)))))
|
||||
|
||||
|
||||
7
home/desktop/eww_config/language.sh
Executable file
7
home/desktop/eww_config/language.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
if hyprctl devices | grep -q "active keymap: Russian"; then
|
||||
echo "ru"
|
||||
else
|
||||
echo "en"
|
||||
fi
|
||||
|
||||
15
home/desktop/eww_config/music.sh
Executable file
15
home/desktop/eww_config/music.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
music=$(playerctl metadata --format "{{title}}" 2>/dev/null)
|
||||
|
||||
max_length=15
|
||||
|
||||
if [ -z "$music" ]; then
|
||||
echo ":: No playing ::"
|
||||
else
|
||||
if [ ${#music} -gt $max_length ]; then
|
||||
echo "${music:0:$max_length}..."
|
||||
else
|
||||
echo "$music"
|
||||
fi
|
||||
fi
|
||||
|
||||
6
home/desktop/eww_config/number.sh
Executable file
6
home/desktop/eww_config/number.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
current_ws=$(hyprctl activeworkspace | grep "workspace ID" | awk '{print $3}' | head -n1)
|
||||
|
||||
#echo "Workspace $current_ws"
|
||||
echo " $current_ws"
|
||||
|
||||
22
home/desktop/eww_config/show.sh
Executable file
22
home/desktop/eww_config/show.sh
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
file_bar="/home/fox/.cache/bar_opened"
|
||||
file_power="/home/fox/.cache/power_opened"
|
||||
|
||||
case $1 in
|
||||
bar)
|
||||
if [[ ! -f "$file_bar" ]] then
|
||||
touch $file_bar
|
||||
eww open bar
|
||||
else
|
||||
rm $file_bar
|
||||
eww close bar
|
||||
fi ;;
|
||||
power)
|
||||
if [[ ! -f "$file_power" ]] then
|
||||
touch $file_power
|
||||
eww open power
|
||||
else
|
||||
rm $file_power
|
||||
eww close power
|
||||
fi ;;
|
||||
esac
|
||||
26
home/desktop/eww_config/title.sh
Executable file
26
home/desktop/eww_config/title.sh
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
current_tl=$(hyprctl activewindow | grep -A1 "title" | tail -n1 | awk '{$1=""; print substr($0, 2)}')
|
||||
air=""
|
||||
|
||||
if [[ $current_tl != $air ]]; then
|
||||
case $current_tl in
|
||||
firefox)
|
||||
echo " Browser"
|
||||
;;
|
||||
kitty)
|
||||
echo " Terminal"
|
||||
;;
|
||||
org.telegram.desktop)
|
||||
echo " Telegram"
|
||||
;;
|
||||
obsidian)
|
||||
echo " Obsidian"
|
||||
;;
|
||||
*)
|
||||
echo "$current_tl"
|
||||
;;
|
||||
esac
|
||||
else
|
||||
echo " Desktop"
|
||||
fi
|
||||
|
||||
5
home/desktop/eww_config/volume.sh
Executable file
5
home/desktop/eww_config/volume.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
vol=$(pamixer --get-volume)
|
||||
|
||||
echo " $vol "
|
||||
|
||||
44
home/desktop/grim.sh
Executable file
44
home/desktop/grim.sh
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
screen_name="$(date +%F--%H-%M-%S).png"
|
||||
screen_path="/home/fox/Pictures"
|
||||
screen_full="$screen_path$screen_name"
|
||||
|
||||
notify_name="Grim"
|
||||
notify_title="Скриншот сохранён:"
|
||||
notify_msg="[$screen_full]"
|
||||
notify_btn="Открыть скриншот"
|
||||
|
||||
screen_notify() {
|
||||
notify_action="$(notify-send -a "$notify_name" "$notify_title" "$notify_msg" -i "$screen_full" --action="open=$notify_btn")"
|
||||
if [[ "$notify_action" == "open" ]]; then
|
||||
imv "$screen_full"
|
||||
fi
|
||||
}
|
||||
|
||||
screen_full() {
|
||||
grim $screen_full
|
||||
screen_copy
|
||||
screen_notify &
|
||||
}
|
||||
|
||||
screen_active() {
|
||||
grim -g "$(slurp)" $screen_full
|
||||
screen_copy
|
||||
screen_notify &
|
||||
}
|
||||
|
||||
screen_area() {
|
||||
grim -g "$(slurp)" $screen_full
|
||||
screen_copy
|
||||
screen_notify &
|
||||
}
|
||||
|
||||
screen_copy() {
|
||||
wl-copy "$screen_full"
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
"-f") screen_full; exit ;;
|
||||
"-a") screen_active; exit ;;
|
||||
"-s") screen_area; exit ;;
|
||||
esac
|
||||
177
home/desktop/hyprland.nix
Normal file
177
home/desktop/hyprland.nix
Normal file
@@ -0,0 +1,177 @@
|
||||
{ pkgs, ... }: {
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = pkgs.hyprland;
|
||||
portalPackage = pkgs.xdg-desktop-portal-hyprland;
|
||||
xwayland.enable = true;
|
||||
settings = {
|
||||
autogenerated = 0;
|
||||
monitor = [
|
||||
"HDMI-A-1, 1920x1080@100, 0x0, 1"
|
||||
];
|
||||
|
||||
exec-once = [
|
||||
"hyprpaper"
|
||||
"hyprctl setcursor Adwaita 24"
|
||||
"eww open bar"
|
||||
"rm menu.file" # Заглушка для опознания работы меню
|
||||
];
|
||||
|
||||
env = [
|
||||
"XCURSOR_SIZE,24"
|
||||
"HYPRCURSOR_SIZE,24"
|
||||
"QT_QPA_PLATFORMTHEME,qt6ct"
|
||||
"XDG_CURRENT_DESKTOP='Hyprland'"
|
||||
"XDG_SESSION_TYPE='wayland'"
|
||||
"XDG_SESSION_DESKTOP='Hyprland'"
|
||||
"QT_AUTO_SCREEN_SCALE_FACTOR='1'"
|
||||
"QT_QPA_PLATFORM='wayland'"
|
||||
"QT_QPA_PLATFORMTHEME='gtk3'"
|
||||
"LIBVA_DRIVER_NAME,nvidia"
|
||||
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
||||
"NVD_BACKEND,direct"
|
||||
];
|
||||
|
||||
#ignorezero, eww-bar
|
||||
|
||||
general = {
|
||||
gaps_in = 15;
|
||||
gaps_out = 30;
|
||||
|
||||
border_size = 0;
|
||||
|
||||
resize_on_border = true;
|
||||
allow_tearing = true;
|
||||
layout = "dwindle";
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 15;
|
||||
rounding_power = 2;
|
||||
|
||||
active_opacity = 1.0;
|
||||
inactive_opacity = 1.0;
|
||||
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 4;
|
||||
render_power = 3;
|
||||
color = "rgb(000000)";
|
||||
};
|
||||
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 6;
|
||||
passes = 3;
|
||||
|
||||
vibrancy = 0.3;
|
||||
vibrancy_darkness = 0.3;
|
||||
noise = 0.0;
|
||||
contrast = 1.0;
|
||||
brightness = 1.0;
|
||||
|
||||
popups = true;
|
||||
popups_ignorealpha = 0.4;
|
||||
input_methods = true;
|
||||
input_methods_ignorealpha = 0.4;
|
||||
};
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = "yes, please :)";
|
||||
|
||||
bezier = [
|
||||
"easeOutQuint,0.23,1,0.32,1"
|
||||
"easeInOutCubic,0.65,0.05,0.36,1"
|
||||
"linear,0,0,1,1"
|
||||
"almostLinear,0.5,0.5,0.75,1.0"
|
||||
"quick,0.15,0,0.1,1"
|
||||
];
|
||||
|
||||
animation = [
|
||||
"global, 1, 10, default"
|
||||
"border, 1, 5.39, easeOutQuint"
|
||||
"windows, 1, 4.79, easeOutQuint"
|
||||
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
|
||||
"windowsOut, 1, 1.49, linear, popin 87%"
|
||||
"fadeIn, 1, 1.73, almostLinear"
|
||||
"fadeOut, 1, 1.46, almostLinear"
|
||||
"fade, 1, 3.03, quick"
|
||||
"layers, 1, 3.81, easeOutQuint"
|
||||
"layersIn, 1, 4, easeOutQuint, fade"
|
||||
"layersOut, 1, 1.5, linear, fade"
|
||||
"fadeLayersIn, 1, 1.79, almostLinear"
|
||||
"fadeLayersOut, 1, 1.39, almostLinear"
|
||||
"workspaces, 1, 1.94, almostLinear, fade"
|
||||
"workspacesIn, 1, 1.21, almostLinear, fade"
|
||||
"workspacesOut, 1, 1.94, almostLinear, fade"
|
||||
];
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
};
|
||||
|
||||
layerrule = [ "ignorezero, wofi" "ignorealpha 0.5, wofi" "ignorezero, gtk-layer-shell" ];
|
||||
blurls = [ "gtk-layer-shell" ];
|
||||
windowrulev2 = [ "float, workspace:5" ];
|
||||
|
||||
misc = {
|
||||
force_default_wallpaper = 0;
|
||||
disable_hyprland_logo = true;
|
||||
};
|
||||
|
||||
input = {
|
||||
kb_layout = "us,ru";
|
||||
kb_options = "grp:alt_shift_toggle";
|
||||
follow_mouse = 1;
|
||||
sensitivity = 1.3;
|
||||
};
|
||||
|
||||
"$mod" = "SUPER";
|
||||
|
||||
bindm = [
|
||||
"$mod, mouse:272, movewindow"
|
||||
"$mod, mouse:273, redizewindow"
|
||||
];
|
||||
|
||||
bind = [
|
||||
"alt, l, exec, eww open lock-dialog"
|
||||
"alt, g, exec, eww close bar"
|
||||
"alt, m, exec, eww open bar"
|
||||
|
||||
"$mod shift, q, exit"
|
||||
"$mod ctrl, r, exec, eww open reboot-dialog"
|
||||
"$mod ctrl, q, exec, eww open off-dialog"
|
||||
"alt, l, exec, eww open lock-dialog-zopa"
|
||||
|
||||
"$mod, c, killactive,"
|
||||
"$mod, s, togglefloating,"
|
||||
"$mod, t, pseudo,"
|
||||
"$mod, g, togglesplit"
|
||||
|
||||
"alt, space, exec, rofi -show drun -config /home/fox/conf/home/desktop/rofi_config.rasi"
|
||||
"$mod alt, g, exec, /home/fox/.config/eww/show.sh bar"
|
||||
"alt, s, exec, grim $(xdg-user-dir PICTURES)/$(date +'%s_grim.png')"
|
||||
|
||||
"$mod, 1, workspace, 1"
|
||||
"$mod, 2, workspace, 2"
|
||||
"$mod, 3, workspace, 3"
|
||||
"$mod, 4, workspace, 4"
|
||||
"$mod, 5, workspace, 5"
|
||||
"$mod, 6, workspace, 6"
|
||||
|
||||
"$mod SHIFT, 1, movetoworkspace, 1"
|
||||
"$mod SHIFT, 2, movetoworkspace, 2"
|
||||
"$mod SHIFT, 3, movetoworkspace, 3"
|
||||
"$mod SHIFT, 4, movetoworkspace, 4"
|
||||
"$mod SHIFT, 5, movetoworkspace, 5"
|
||||
"$mod SHIFT, 6, movetoworkspace, 6"
|
||||
|
||||
"$mod, mouse_down, workspace, e+1"
|
||||
"$mod, mouse_up, workspace, e-1"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
17
home/desktop/hyprpaper.nix
Normal file
17
home/desktop/hyprpaper.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ pkgs, ... }: {
|
||||
services.hyprpaper = {
|
||||
enable = true;
|
||||
package = pkgs.hyprpaper;
|
||||
settings = let
|
||||
wallpaper = "/home/fox/conf/home/desktop/wallp.jpg";
|
||||
monitor-1 = "HDMI-A-1";
|
||||
monitor-2 = "DP-1";
|
||||
in {
|
||||
preload = [ "${wallpaper}" ];
|
||||
wallpaper = [
|
||||
"${monitor-1},${wallpaper}"
|
||||
"${monitor-2},${wallpaper}"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
98
home/desktop/rofi_config.rasi
Normal file
98
home/desktop/rofi_config.rasi
Normal file
@@ -0,0 +1,98 @@
|
||||
|
||||
* {
|
||||
bg: #1d1d1d;
|
||||
fg: #fcfcfc;
|
||||
}
|
||||
|
||||
configuration {
|
||||
modes: "drun";
|
||||
font: "JetBrainsMono Regular 10";
|
||||
location: 0;
|
||||
xoffset: 0;
|
||||
yoffset: 0;
|
||||
}
|
||||
|
||||
window {
|
||||
background-color: @bg;
|
||||
width: 400;
|
||||
border-radius: 12px;
|
||||
border: 1px solid;
|
||||
border-color: #000000;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @bg;
|
||||
padding: 6px;
|
||||
margin: 8px;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
background-color: #383838;
|
||||
border: 2px solid;
|
||||
border-color: #383838;
|
||||
padding: 6px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: false;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " ";
|
||||
background-color: #383838;
|
||||
text-color: @bg;
|
||||
}
|
||||
|
||||
entry {
|
||||
background-color: #383838;
|
||||
text-color: @fg;
|
||||
cursor: text;
|
||||
placeholder: "Search...";
|
||||
placeholder-color: @fg;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 1;
|
||||
lines: 16;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
margin: 5px 0px 0px 0px;
|
||||
border: 1px solid;
|
||||
border-color: @bg;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
padding: 8px 3px;
|
||||
}
|
||||
|
||||
element normal.normal,
|
||||
element alternate.normal,
|
||||
message,
|
||||
error-message {
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
}
|
||||
|
||||
element selected.normal {
|
||||
background-color: #2a2a2a;
|
||||
text-color: @fg;
|
||||
border-radius: 5px;
|
||||
padding: 8px 4px;
|
||||
}
|
||||
|
||||
error-message,
|
||||
textbox {
|
||||
padding: 3px;
|
||||
background-color: @bg;
|
||||
text-color: @fg;
|
||||
}
|
||||
|
||||
BIN
home/desktop/wallp.jpg
Normal file
BIN
home/desktop/wallp.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.0 MiB |
Reference in New Issue
Block a user