cleanup, modularise

This commit is contained in:
unexplrd
2025-02-06 21:56:18 +02:00
parent 2b6ff9f8e8
commit c7576dc1ee
98 changed files with 2 additions and 10091 deletions

View File

@ -1,176 +0,0 @@
{
config,
pkgs,
# pkgs-51b85c,
# lib,
...
}: {
# imports = [./walker.nix];
# services.playerctld.enable = true;
services.gnome-keyring = {
enable = true;
components = ["secrets" "ssh"];
};
services.ssh-agent.enable = true;
programs.keychain = {
enable = true;
keys = ["id_ed25519"];
enableNushellIntegration = true;
extraFlags = [
"--quiet"
"--noask"
];
};
home.packages = with pkgs; [
nautilus
ghostty
helvum
loupe
evince
junction
celluloid
mission-center
dconf
glib
libnotify
playerctl
# wdisplays
pwvucontrol
wl-clipboard
# polkit_gnome
# libqalculate
#papirus-icon-theme
# gnomeExtensions.alphabetical-app-grid
# gnomeExtensions.appindicator
# gnomeExtensions.caffeine
# gnomeExtensions.pano
# gnomeExtensions.forge
];
xdg.userDirs = {
enable = true;
createDirectories = true;
templates = "${config.home.homeDirectory}/temps";
publicShare = "${config.home.homeDirectory}/pub";
desktop = "${config.home.homeDirectory}/desktop";
download = "${config.home.homeDirectory}/downloads";
documents = "${config.home.homeDirectory}/docs";
pictures = "${config.home.homeDirectory}/pics";
videos = "${config.home.homeDirectory}/vids";
music = "${config.home.homeDirectory}/music";
};
xdg.mime.enable = true;
xdg.mimeApps = {
enable = true;
defaultApplications = let
file_manager = ["org.gnome.Nautilus.desktop"];
web_browser = ["re.sonny.Junction.desktop"];
# web_browser = ["io.github.zen_browser.zen.desktop"];
image_viewer = ["org.gnome.Loupe.desktop"];
video_player = ["io.github.celluloid_player.Celluloid.desktop"];
pdf_reader = ["org.gnome.Evince.desktop"];
in {
"inode/directory" = file_manager;
"video/x-matroska" = video_player;
"video/mp4" = video_player;
"video/mpeg" = video_player;
"video/x-mpeg" = video_player;
"image/png" = image_viewer;
"image/jpeg" = image_viewer;
"application/pdf" = pdf_reader;
"text/html" = web_browser;
"x-scheme-handler/http" = web_browser;
"x-scheme-handler/https" = web_browser;
"x-scheme-handler/about" = web_browser;
"x-scheme-handler/unknown" = web_browser;
};
};
# gtk.enable = true;
# qt = {
# enable = true;
# platformTheme.name = "gtk3";
# };
dconf.settings = {
"io/github/celluloid-player/celluloid" = {
always-use-floating-controls = true;
always-use-floating-header-bar = true;
csd-enable = true;
};
"org/gnome/desktop/a11y/applications" = {
screen-reader-enabled = false;
};
"org/gnome/desktop/interface" = {
clock-show-seconds = true;
color-scheme = "prefer-dark";
cursor-blink-time = 1200;
enable-animations = true;
gtk-enable-primary-paste = false;
text-scaling-factor = 1.0;
toolbar-style = "text";
};
"org/gnome/desktop/peripherals/mouse" = {
accel-profile = "flat";
};
"org/gnome/desktop/peripherals/touchpad" = {
two-finger-scrolling-enabled = true;
};
"org/gnome/desktop/wm/keybindings" = {
switch-input-source = ["<Super>Escape"];
switch-input-source-backward = ["<Shift><Super>Escape"];
};
"org/gnome/desktop/wm/preferences" = {
auto-raise = true;
button-layout = "icon:close";
};
"org/gnome/mutter" = {
dynamic-workspaces = true;
workspaces-only-on-primary = true;
};
"org/gnome/settings-daemon/plugins/color" = {
enabled-extensions = ["drive-menu@gnome-shell-extensions.gcampax.github.com" "caffeine@patapon.info" "AlphabeticalAppGrid@stuarthayhurst" "appindicatorsupport@rgcjonas.gmail.com" "forge@jmmaranan.com"];
night-light-enabled = false;
night-light-schedule-automatic = false;
};
"org/gnome/software" = {
download-updates = false;
download-updates-notify = false;
first-run = false;
};
"org/gnome/tweaks" = {
show-extensions-notice = false;
};
"org/gtk/gtk4/settings/file-chooser" = {
date-format = "regular";
location-mode = "path-bar";
show-hidden = true;
sidebar-width = 140;
sort-column = "name";
sort-directories-first = true;
sort-order = "ascending";
type-format = "category";
view-type = "list";
};
"org/gtk/settings/file-chooser" = {
date-format = "regular";
location-mode = "path-bar";
show-hidden = true;
show-size-column = true;
show-type-column = true;
sort-column = "name";
sort-directories-first = false;
sort-order = "ascending";
type-format = "category";
};
};
}

View File

@ -1,68 +0,0 @@
# with import <nixpkgs> {}; # bring all of Nixpkgs into scope
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
makeWrapper,
dbus,
libpulseaudio,
notmuch,
openssl,
ethtool,
lm_sensors,
iw,
iproute2,
withICUCalendar ? false,
}:
rustPlatform.buildRustPackage rec {
pname = "i3status-rust";
version = "0.33.2";
src = fetchFromGitHub {
owner = "greshake";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-xJm4MsEU0OVX401WvKllg3zUwgCvjLxlAQzXE/oD1J0=";
};
cargoHash = "sha256-9jbJVnZhFbMYldBkRVSIiorUYDNtF3AAwNEpyNJXpjo=";
nativeBuildInputs = [pkg-config makeWrapper];
buildInputs = [dbus libpulseaudio notmuch openssl lm_sensors];
buildFeatures =
[
"notmuch"
"maildir"
"pulseaudio"
]
++ (lib.optionals withICUCalendar ["icu_calendar"]);
prePatch = ''
substituteInPlace src/util.rs \
--replace "/usr/share/i3status-rust" "$out/share"
'';
postInstall = ''
mkdir -p $out/share
cp -R examples files/* $out/share
'';
postFixup = ''
wrapProgram $out/bin/i3status-rs --prefix PATH : ${lib.makeBinPath [iproute2 ethtool iw]}
'';
# Currently no tests are implemented, so we avoid building the package twice
doCheck = false;
meta = with lib; {
description = "Very resource-friendly and feature-rich replacement for i3status";
homepage = "https://github.com/greshake/i3status-rust";
license = licenses.gpl3Only;
mainProgram = "i3status-rs";
maintainers = with maintainers; [backuitist globin];
platforms = platforms.linux;
};
}

View File

@ -1,308 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = [pkgs.jay];
xdg.portal = {
enable = true;
extraPortals = [pkgs.xdg-desktop-portal-gtk];
config.jay = {
default = ["gtk"];
"org.freedesktop.impl.portal.ScreenCast" = ["jay"];
"org.freedesktop.impl.portal.RemoteDesktop" = ["jay"];
"org.freedesktop.impl.portal.Inhibit" = ["none"];
"org.freedesktop.impl.portal.FileChooser" = ["gtk4"];
};
};
programs.i3status-rust = {
enable = true;
package = pkgs.callPackage ./i3status-rust-0-33-2.nix {};
bars = {
default = {
theme = "plain";
blocks = [
{
alert = 10.0;
block = "disk_space";
info_type = "available";
interval = 60;
path = "/";
warning = 20.0;
}
{
block = "memory";
format = " $icon mem_used_percents ";
format_alt = " $icon $swap_used_percents ";
}
{
block = "cpu";
interval = 1;
}
{
block = "load";
format = " $icon $1m ";
interval = 1;
}
{
block = "sound";
}
{
block = "time";
format = " $timestamp.datetime(f:'%a %d/%m %R') ";
interval = 60;
}
];
};
};
};
programs.i3status = {
enable = true;
enableDefault = true;
general = {
output_format = "i3bar";
interval = 1;
};
};
programs.fuzzel = {
enable = true;
settings = {
main = {
terminal = "${pkgs.wezterm}/bin/wezterm -e";
fields = "filename,name,generic,keywords,categories,exec";
dpi-aware = false;
horizontal-pad = 0;
vertical-pad = 0;
show-actions = true;
match-mode = "fuzzy";
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
};
border = {
width = 3;
radius = 12;
};
};
};
xdg.configFile.jay = {
target = "jay/config.toml";
recursive = true;
source = (pkgs.formats.toml {}).generate "jay-config" {
keymap = ''
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+inet(evdev)" };
};
'';
on-graphics-initialized = [
# {
# type = "exec";
# exec = "mako";
# }
{
type = "exec";
exec = "~/wl-tray-bridge/target/release/wl-tray-bridge";
}
];
outputs = [
{
match.connector = "eDP-1";
scale = 1.2;
}
];
vrr = {
mode = "always";
cursor-hz = 75;
};
repeat-rate = {
rate = 50;
delay = 200;
};
theme = {
bg-color = "#${config.lib.stylix.colors.base00}";
bar-bg-color = "#${config.lib.stylix.colors.base00}";
border-color = "#${config.lib.stylix.colors.base0D}";
separator-color = "#${config.lib.stylix.colors.base01}";
bar-status-text-color = "#${config.lib.stylix.colors.base05}";
focused-title-text-color = "#${config.lib.stylix.colors.base07}";
focused-title-bg-color = "#${config.lib.stylix.colors.base00}";
focused-inactive-title-text-color = "#${config.lib.stylix.colors.base03}";
focused-inactive-title-bg-color = "#${config.lib.stylix.colors.base00}";
unfocused-title-text-color = "#${config.lib.stylix.colors.base03}";
unfocused-title-bg-color = "#${config.lib.stylix.colors.base01}";
attention-requested-bg-color = "#${config.lib.stylix.colors.base09}";
font = "${config.stylix.fonts.sansSerif.name}";
border-width = 2;
title-height = 24;
};
status = {
format = "pango";
exec = ["i3status-rs" "config-default"];
};
window-management-key = "Super_L";
shortcuts = let
left = "n";
down = "e";
up = "u";
right = "i";
in {
"logo-${left}" = "focus-left";
"logo-${down}" = "focus-down";
"logo-${up}" = "focus-up";
"logo-${right}" = "focus-right";
"logo-shift-${left}" = "move-left";
"logo-shift-${down}" = "move-down";
"logo-shift-${up}" = "move-up";
"logo-shift-${right}" = "move-right";
logo-d = "split-horizontal";
logo-v = "split-vertical";
logo-t = "toggle-split";
logo-m = "toggle-mono";
logo-shift-m = "toggle-fullscreen";
logo-f = "focus-parent";
logo-q = "close";
logo-shift-f = "toggle-floating";
alt-Return = {
type = "exec";
exec = "wezterm";
};
logo-space = {
type = "exec";
exec = "fuzzel";
};
logo-ctrl-q = "quit";
logo-shift-r = "reload-config-toml";
ctrl-alt-F1 = {
type = "switch-to-vt";
num = 1;
};
ctrl-alt-F2 = {
type = "switch-to-vt";
num = 2;
};
ctrl-alt-F3 = {
type = "switch-to-vt";
num = 3;
};
ctrl-alt-F4 = {
type = "switch-to-vt";
num = 4;
};
ctrl-alt-F5 = {
type = "switch-to-vt";
num = 5;
};
ctrl-alt-F6 = {
type = "switch-to-vt";
num = 6;
};
ctrl-alt-F7 = {
type = "switch-to-vt";
num = 7;
};
ctrl-alt-F8 = {
type = "switch-to-vt";
num = 8;
};
ctrl-alt-F9 = {
type = "switch-to-vt";
num = 9;
};
ctrl-alt-F10 = {
type = "switch-to-vt";
num = 10;
};
ctrl-alt-F11 = {
type = "switch-to-vt";
num = 11;
};
ctrl-alt-F12 = {
type = "switch-to-vt";
num = 12;
};
logo-1 = {
type = "show-workspace";
name = "1";
};
logo-2 = {
type = "show-workspace";
name = "2";
};
logo-3 = {
type = "show-workspace";
name = "3";
};
logo-4 = {
type = "show-workspace";
name = "4";
};
logo-5 = {
type = "show-workspace";
name = "5";
};
logo-6 = {
type = "show-workspace";
name = "6";
};
logo-7 = {
type = "show-workspace";
name = "7";
};
logo-8 = {
type = "show-workspace";
name = "8";
};
logo-9 = {
type = "show-workspace";
name = "9";
};
logo-0 = {
type = "show-workspace";
name = "10";
};
logo-shift-1 = {
type = "move-to-workspace";
name = "1";
};
logo-shift-2 = {
type = "move-to-workspace";
name = "2";
};
logo-shift-3 = {
type = "move-to-workspace";
name = "3";
};
logo-shift-4 = {
type = "move-to-workspace";
name = "4";
};
logo-shift-5 = {
type = "move-to-workspace";
name = "5";
};
logo-shift-6 = {
type = "move-to-workspace";
name = "6";
};
logo-shift-7 = {
type = "move-to-workspace";
name = "7";
};
logo-shift-8 = {
type = "move-to-workspace";
name = "8";
};
logo-shift-9 = {
type = "move-to-workspace";
name = "9";
};
logo-shift-0 = {
type = "move-to-workspace";
name = "10";
};
};
};
};
}

View File

@ -1,28 +0,0 @@
{
config,
pkgs,
# lib,
...
}: {
#imports = [ ];
stylix.targets.kde.enable = true;
home.packages = with pkgs; [
noto-fonts-emoji
base16-schemes
wl-clipboard-rs
pwvucontrol
adw-gtk3
];
xdg.userDirs = {
enable = true;
createDirectories = true;
templates = "${config.home.homeDirectory}/temps";
publicShare = "${config.home.homeDirectory}/pub";
desktop = "${config.home.homeDirectory}/desktop";
download = "${config.home.homeDirectory}/downloads";
documents = "${config.home.homeDirectory}/docs";
pictures = "${config.home.homeDirectory}/pics";
videos = "${config.home.homeDirectory}/vids";
music = "${config.home.homeDirectory}/music";
};
}

View File

@ -1,28 +0,0 @@
{
config,
pkgs,
lib,
...
}: {
options = {
fuzzel.enable =
lib.mkEnableOption "enable fuzzel launcher";
};
config = lib.mkIf config.fuzzel.enable {
programs.fuzzel = {
enable = true;
settings = {
main = {
terminal = "${pkgs.wezterm}/bin/wezterm -e";
fields = "filename,name,generic,keywords,categories,exec";
match-mode = "fuzzy";
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
};
border = {
width = 3;
radius = 12;
};
};
};
};
}

View File

@ -1,310 +0,0 @@
{
config,
pkgs,
lib,
...
}: {
imports = [
./niri.nix
./wofi.nix
./fuzzel.nix
./waybar.nix
./swaync.nix
./swayidle.nix
./swaylock.nix
./wlsunset.nix
./udiskie.nix
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/solarized-dark.yaml";
polarity = "dark";
cursor = {
package = pkgs.google-cursor;
name = "GoogleDot-Blue";
size = 24;
};
image = ../wallpapers/wallhaven-5g9ed8.png;
opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 12;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "Papirus-Dark";
};
};
fuzzel.enable = true;
waybar.enable = true;
swaync.enable = false;
wlsunset.enable = true;
component.swaylock.enable = true;
swayidle.enable = true;
udiskie.enable = true;
imv.enable = true;
services.gnome-keyring.enable = true;
services.network-manager-applet.enable = true;
services.copyq.enable = true;
services.dunst = {
enable = true;
settings = {
global = {
width = 300;
height = 300;
icon_theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
corner_radius = 12;
corners = "top-right,bottom-left";
offset = "45x5";
origin = "top-right";
timeout = 15;
};
rule-telegram = {
"desktop_entry" = "org.telegram.desktop";
"urgency" = "normal";
};
};
};
home.packages = with pkgs; [
dconf
glib
wbg
swayidle
swaylock-effects
libnotify
wdisplays
pwvucontrol
wl-clipboard-rs
polkit_gnome
xwayland-satellite
papirus-icon-theme
#libsForQt5.qt5ct
#kdePackages.qt6ct
#libsForQt5.qtstyleplugin-kvantum
#kdePackages.qtstyleplugin-kvantum
#adwaita-qt
#adwaita-qt6
];
gtk = {
enable = true;
#iconTheme = {
# name = "Papirus-Dark";
# package = pkgs.papirus-icon-theme;
};
qt = {
enable = true;
platformTheme.name = "gtk3";
};
xdg.mime.enable = true;
xdg.mimeApps = {
enable = true;
defaultApplications = let
file_manager = ["yazi.desktop"];
web_browser = ["io.github.zen_browser.zen.desktop"];
image_viewer = ["imv.desktop"];
video_player = ["io.mpv.Mpv.desktop"];
pdf_reader = ["org.pwmt.zathura-pdf-mupdf.desktop"];
in {
"inode/directory" = file_manager;
"video/x-matroska" = video_player;
"application/pdf" = pdf_reader;
};
};
xdg.userDirs = {
enable = true;
createDirectories = true;
templates = "${config.home.homeDirectory}/temps";
publicShare = "${config.home.homeDirectory}/pub";
desktop = "${config.home.homeDirectory}/desktop";
download = "${config.home.homeDirectory}/downloads";
documents = "${config.home.homeDirectory}/docs";
pictures = "${config.home.homeDirectory}/pics";
videos = "${config.home.homeDirectory}/vids";
music = "${config.home.homeDirectory}/music";
};
xdg.configFile = {
#niri = {
# recursive = true;
# source = dotfiles/niri;
#};
#qt5ct = {
# recursive = true;
# source = dotfiles/qt5ct;
#};
#qt6ct = {
# recursive = true;
# source = dotfiles/qt6ct;
#};
#Kvantum = {
# recursive = true;
# source = dotfiles/Kvantum;
#};
};
systemd.user.settings.Manager.DefaultEnvironment = {
QT_QPA_PLATFORMTHEME = "gtk3";
QT_QPA_PLATFORM = "wayland";
DISPLAY = ":123";
};
systemd.user.targets.tray = {
# workaround for udiskie
Unit = {
Description = "Home Manager System Tray";
};
};
systemd.user.services = {
udiskie = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
};
waybar = {
# Unit = {
# Description = "Swaync notification daemon";
# };
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
# Service = {
# Type = "dbus";
# ExecStart = "${pkgs.swaynotificationcenter}/bin/swaync";
# Restart = "on-failure";
# RestartSec = 1;
# TimeoutStopSec = 10;
# };
};
copyq = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
Service = {
Environment = lib.mkForce "QT_QPA_PLATFORM=wayland";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
wbg = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.wbg}/bin/wbg ${config.stylix.image}";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
network-manager-applet = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
};
gnome-polkit-agent = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
wlsunset = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
};
swayidle = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
};
xwayland-satellite = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.xwayland-satellite}/bin/xwayland-satellite :123";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
};
}

View File

@ -1,33 +0,0 @@
{
pkgs,
config,
lib,
...
}: {
options = {
swayidle.enable =
lib.mkEnableOption "enable swayidle";
};
config = lib.mkIf config.swayidle.enable {
services.swayidle = {
enable = true;
systemdTarget = "graphical-session.target";
timeouts = [
{
timeout = 300;
command = "${pkgs.swaylock-effects}/bin/swaylock -fF";
}
{
timeout = 600;
command = "${pkgs.niri}/bin/niri msg action power-off-monitors";
}
];
events = [
{
event = "before-sleep";
command = "${pkgs.swaylock-effects}/bin/swaylock -fF";
}
];
};
};
}

View File

@ -1,30 +0,0 @@
{
pkgs,
config,
lib,
...
}: {
options = {
component.swaylock.enable =
lib.mkEnableOption "enable swaylock";
};
config = lib.mkIf config.component.swaylock.enable {
programs.swaylock = {
enable = true;
package = pkgs.swaylock-effects;
settings = {
font = "${config.stylix.fonts.serif.name}";
font-size = 25;
indicator-radius = 100;
indicator-thickness = 20;
indicator-idle-visible = true;
# -effect section
screenshots = true;
clock = true;
effect-pixelate = 60;
effect-vignette = "0.5:0.5";
};
};
};
}

View File

@ -1,18 +0,0 @@
{
config,
lib,
...
}: {
options = {
udiskie.enable =
lib.mkEnableOption "enable udiskie";
};
config = lib.mkIf config.udiskie.enable {
services.udiskie = {
enable = true;
automount = false;
notify = true;
tray = "auto";
};
};
}

View File

@ -1,418 +0,0 @@
{
config,
lib,
pkgs,
...
}: {
options = {
waybar.enable =
lib.mkEnableOption "enable waybar";
};
config = lib.mkIf config.waybar.enable {
stylix.targets.waybar.enable = false;
programs.waybar = {
enable = true;
#package = pkgs.waybar-0.11.0";
systemd = {
enable = true;
target = "graphical-session.target";
};
settings = {
bar-0 = {
layer = "top";
position = "top";
height = 40;
spacing = 4;
margin-left = 48;
margin-right = 48;
margin-top = 4;
reload_style_on_change = true;
modules-left = [
#"custom/notification"
"group/niri"
"wlr/taskbar"
];
modules-center = ["clock" "privacy"];
modules-right = [
"tray"
"wireplumber"
"group/laptop"
"idle_inhibitor"
];
"niri/workspaces" = {
format = "{icon}";
format-icons = {
focused = "󰗝";
active = "󰻃";
default = "󰄰";
};
};
"niri/language" = {
format = "{}";
format-en = "🇺🇸";
format-uk = "🇺🇦";
};
"custom/separator" = {
format = "|";
interval = "once";
tooltip = false;
};
"custom/text" = {
format = "here will be workspaces";
interval = "once";
tooltip = false;
};
"group/niri" = {
orientation = "inherit";
modules = [
"niri/language"
"niri/workspaces"
];
};
"group/laptop" = {
orientation = "inherit";
drawer = {
transition-duration = 500;
children-class = "laptop";
transition-left-to-right = false;
};
modules = [
"battery"
"custom/kbd-backlight"
"custom/separator"
"backlight"
"custom/separator"
];
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "󰈈";
deactivated = "󰈉";
};
};
"tray" = {
icon-size = 24;
spacing = 3;
};
"clock" = {
interval = 1;
format = "{:%H:%M:%S}";
tooltip-format = "{:%d.%m.%Y}";
};
"backlight" = {
device = "intel_backlight";
format = "{percent}% {icon}";
format-icons = ["󰃞" "󰃟" "󰃝" "󰃠"];
on-scroll-up = "light -A 2%";
on-scroll-down = "light -U 2%";
};
"custom/kbd-backlight" = {
exec = "cat /sys/class/leds/platform::kbd_backlight/brightness";
interval = 1;
format = "{}% {icon}";
format-icons = ["󰌌"];
on-scroll-up = "light -s sysfs/leds/platform::kbd_backlight -A 5%";
on-scroll-down = "light -s sysfs/leds/platform::kbd_backlight -U 5%";
};
battery = {
states = {
good = 95;
warning = 30;
critical = 15;
};
format = "{capacity}% {icon}";
format-full = "{capacity}% 󱟢";
format-charging = "{capacity}% 󰂄";
format-plugged = "{capacity}% 󰚥";
format-alt = "{icon} {time}";
format-icons = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
};
"upower" = {
icon-size = 16;
format = "{percentage}";
hide-if-empty = true;
tooltip = true;
tooltip-spacing = 20;
};
"power-profiles-daemon" = {
format = "{icon}";
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
tooltip = true;
format-icons = {
default = "󱡮";
performance = "󱡮";
balanced = "";
power-saver = "";
};
};
"wireplumber" = {
scroll-step = 3;
format = "{volume}% {icon}";
format-muted = "󰖁";
format-icons = ["󰕿" "󰖀" "󰕾"];
on-click = "pwvucontrol";
on-click-right = "wpctl set-mute @DEFAULT_SINK@ toggle";
};
"custom/notification" = {
tooltip = false;
format = "{icon}";
format-icons = {
notification = "";
none = "";
dnd-notification = "";
dnd-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
};
"privacy" = {
# icon-spacing = 4;
icon-size = 16;
transition-duration = 250;
screenshare = {
type = "screenshare";
tooltip = true;
tooltip-icon-size = 24;
};
audio-in = {
type = "audio-in";
tooltip = true;
tooltip-icon-size = 24;
};
};
"wlr/taskbar" = {
format = "{icon}";
icon-size = 24;
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
tooltip-format = "{title}";
on-click = "activate";
};
};
};
style = ''
@define-color base00 #${config.lib.stylix.colors.base00};
@define-color base01 #${config.lib.stylix.colors.base01};
@define-color base02 #${config.lib.stylix.colors.base02};
@define-color base03 #${config.lib.stylix.colors.base03};
@define-color base04 #${config.lib.stylix.colors.base04};
@define-color base05 #${config.lib.stylix.colors.base05};
@define-color base06 #${config.lib.stylix.colors.base06};
@define-color base07 #${config.lib.stylix.colors.base07};
@define-color base08 #${config.lib.stylix.colors.base08};
@define-color base09 #${config.lib.stylix.colors.base09};
@define-color base0A #${config.lib.stylix.colors.base0A};
@define-color base0B #${config.lib.stylix.colors.base0B};
@define-color base0C #${config.lib.stylix.colors.base0C};
@define-color base0D #${config.lib.stylix.colors.base0D};
@define-color base0E #${config.lib.stylix.colors.base0E};
@define-color base0F #${config.lib.stylix.colors.base0F};
* {
font-family: Iosevka Nerd Font Propo, FontAwesome;
font-size: 100%;
/* margin: 0px 2px 2px 2px; */
}
window#waybar {
background-color: transparent;
/* border-top: 3px solid @overlay0; */
color: @base05;
/* padding: 0px 2px 0px 0px; */
transition-property: background-color;
transition-duration: 0.5s;
}
.modules-left {
border-radius: 12px;
margin-right: 4px;
}
.modules-center {
border-radius: 12px;
}
.modules-right {
border-radius: 12px;
margin-left: 4px;
}
tooltip {
background: @base01;
border: 1px solid @base0E;
}
tooltip label {
color: @base05;
}
/* .modules-center {
margin: 4px;
margin-top: 6px;
}*/
button {
box-shadow: inset 0 -3px transparent;
border-radius: 12px;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
box-shadow: inset 0 -3px transparent;
}
#mode {
background-color: rgba(0, 0, 0, 0.2);
box-shadow: inset 0 -3px @base05;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#custom-kbd-backlight,
#workspaces,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#laptop,
#tray,
#mode,
#privacy
#privacy-item,
#idle_inhibitor,
#backlight-slider,
#custom-notification,
#scratchpad,
#power-profiles-daemon,
#taskbar,
#language,
#upower,
#mpris,
#mpd {
padding: 0 0.8em;
border-radius: 12px;
color: @base05;
background-color: @base00;
}
/* #upower, */
#battery,
#backlight,
#custom-kbd-backlight,
#backlight-slider,
#cpu,
#memory,
#disk,
#network,
#wireplumber,
#power-profiles-daemon {
padding-right: 0.8em;
}
#language {
padding-right: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
#workspaces {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
#taskbar,
#workspaces {
padding: 0 0.5em;
}
#taskbar button,
#workspaces button {
padding: 0 0.3em;
}
#taskbar button:hover {
box-shadow: transparent;
}
#taskbar.empty,
window#empty {
background-color: transparent;
}
#battery.critical:not(.charging) {
background-color: #ed8796;
color: #181926;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
#power-profiles-daemon.performance {
background-color: #ed8796;
color: #000000;
}
#power-profiles-daemon.balanced {
background-color: #b7bdf8;
color: #000000;
}
#power-profiles-daemon.power-saver {
background-color: #8aadf4;
color: #000000;
}
label:focus {
background-color: #000000;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
#idle_inhibitor {
padding: 0 0.9em;
}
#idle_inhibitor:hover {
box-shadow: inset 0 -3px @base05;
}
#idle_inhibitor.activated {
background-color: @base05;
color: @base00;
}
#idle_inhibitor.activated:hover {
box-shadow: inset 0 -3px @base00;
}
#laptop,
#privacy {
padding: 0em;
}
#privacy-item.screenshare {
background-color: @base00;
color: @base0C;
}
#privacy-item.audio-in {
background-color: @base00;
color: @base0E;
}
#privacy-item.audio-out {
background-color: @base;
}
'';
};
};
}

View File

@ -1,22 +0,0 @@
{
config,
lib,
...
}: {
options = {
wlsunset.enable =
lib.mkEnableOption "enable wlsunset";
};
config = lib.mkIf config.wlsunset.enable {
services.wlsunset = {
enable = true;
latitude = "49.6";
longitude = "36.1";
temperature = {
day = 6500;
night = 3000;
};
systemdTarget = "graphical-session.target";
};
};
}

View File

@ -1,10 +0,0 @@
{lib, ...}: {
programs.waybar.settings.bar-0."custom/kbd-backlight" = lib.mkDefault {
exec = "cat /sys/class/leds/chromeos::kbd_backlight/brightness";
interval = 1;
format = "{}% {icon}";
format-icons = ["󰌌"];
on-scroll-up = "light -s sysfs/leds/chromeos::kbd_backlight -A 5%";
on-scroll-down = "light -s sysfs/leds/chromeos::kbd_backlight -U 5%";
};
}

View File

@ -1,28 +0,0 @@
{
config,
pkgs,
lib,
...
}: {
options = {
fuzzel.enable =
lib.mkEnableOption "enable fuzzel launcher";
};
config = lib.mkIf config.fuzzel.enable {
programs.fuzzel = {
enable = true;
settings = {
main = {
terminal = "${pkgs.wezterm}/bin/wezterm -e";
fields = "filename,name,generic,keywords,categories,exec";
match-mode = "fuzzy";
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
};
border = {
width = 4;
radius = 12;
};
};
};
};
}

View File

@ -1,104 +0,0 @@
{
pkgs,
config,
lib,
...
}: {
options = {
component.hyprlock.enable =
lib.mkEnableOption "enable hyprlock";
};
config = lib.mkIf config.component.hyprlock.enable {
programs.hyprlock = {
enable = true;
settings = {
general = {
disable_loading_bar = true;
#grace = 300;
hide_cursor = true;
no_fade_in = false;
};
background = [
{
path = "screenshot";
blur_passes = 3;
blur_size = 8;
}
];
input-field = [
{
size = "274, 50";
rounding = 12;
outline_thickness = 4;
position = "0, -30";
monitor = "";
dots_center = true;
fade_on_empty = false;
font_family = "${config.stylix.fonts.serif.name}";
font_color = "rgb(${config.lib.stylix.colors.base05})";
inner_color = "rgb(${config.lib.stylix.colors.base00})";
outer_color = "rgb(${config.lib.stylix.colors.base0D})";
check_color = "rgb(${config.lib.stylix.colors.base0A})";
fail_color = "rgb(${config.lib.stylix.colors.base08})";
placeholder_text = "locked...";
fail_text = "wrong";
#placeholder_text = '\'<span foreground="##cad3f5">Password...</span>'\';
shadow_passes = 0;
}
];
shape = [
{
rounding = 12;
#border_size = 3;
size = "150, 50";
color = "rgb(${config.lib.stylix.colors.base00})";
border_color = "rgb(${config.lib.stylix.colors.base0D})";
position = "-62, 30";
halign = "center";
valign = "center";
}
{
rounding = 12;
#border_size = 3;
size = "120, 50";
color = "rgb(${config.lib.stylix.colors.base00})";
border_color = "rgb(${config.lib.stylix.colors.base0D})";
position = "77, 28";
halign = "center";
valign = "center";
}
];
label = [
{
monitor = "";
text = "$LAYOUT"; #"cmd[update:1000] ${pkgs.uutils-coreutils-noprefix}/bin/echo $(${pkgs.uutils-coreutils-noprefix}/bin/date +%H:%M:%S)";
#text = "$TIME
text_align = "center";
font_size = 16;
font_family = "${config.stylix.fonts.serif.name}";
outer_color = "rgb(${config.lib.stylix.colors.base00})";
color = "rgb(${config.lib.stylix.colors.base05})";
position = "-62, 28";
halign = "center";
valign = "center";
}
{
monitor = "";
text = "cmd[update:1000] ${pkgs.uutils-coreutils-noprefix}/bin/echo $(${pkgs.uutils-coreutils-noprefix}/bin/date +%H:%M:%S)";
#text = "$TIME
text_align = "center";
font_size = 16;
font_family = "${config.stylix.fonts.serif.name}";
outer_color = "rgb(${config.lib.stylix.colors.base00})";
color = "rgb(${config.lib.stylix.colors.base05})";
position = "77, 28";
halign = "center";
valign = "center";
}
];
};
};
};
}

View File

@ -1,917 +0,0 @@
{
config,
pkgs,
lib,
...
}: {
imports = [../theming/gruvbox.nix];
wayland.windowManager.hyprland.enable = true;
wayland.windowManager.hyprland.plugins = ["${pkgs.hyprlandPlugins.hyprscroller}/lib/libhyprscroller.so"];
wayland.windowManager.hyprland.settings = {
input = {
kb_layout = "us,ua";
repeat_rate = 50;
repeat_delay = 300;
# mouse
accel_profile = "flat";
sensitivity = 0;
};
device = [
{
name = "at-translated-set-2-keyboard";
kb_variant = "colemak_dh,";
}
{
name = "keyd-virtual-keyboard";
kb_variant = "colemak_dh,";
}
];
monitor = [
", preferred, auto, 1"
"eDP-1, preferred, auto, 1.2"
];
env = [
"QT_QPA_PLATFORM,wayland"
"QT_QPA_PLATFORMTHEME,gtk3"
];
decoration = {
# shadow_offset = "0 5";
# "col.shadow" = "rgba(00000099)";
rounding = 12;
};
bezier = [
"easeOutQuad, 0.25, 0.46, 0.45, 0.94"
"easeOutExpo, 0.19, 1, 0.22, 1"
];
animation = [
"workspaces, 1, 3, easeOutExpo, slidefade 20%"
"windows, 1, 3, easeOutExpo, popin 80%"
"layers, 1, 2, easeOutExpo, fade"
];
"$mod" = "SUPER";
"$modShift" = "$mod SHIFT";
"$modCtrl" = "$mod CTRL";
"$modShiftCtrl" = "$mod SHIFT CTRL";
"$left" = "N";
"$down" = "E";
"$up" = "I";
"$right" = "O";
"$terminal" = "kitty";
"$screenLocker" = "hyprlock";
"$webBrowser" = "io.github.zen_browser.zen";
"$clipboardManager" = "copyq menu";
general = {
gaps_in = 4;
gaps_out = 4;
border_size = 4;
allow_tearing = true;
layout = "scroller";
};
bind = [
"$mod, Return, exec, $terminal"
"$mod, Space, exec, fuzzel"
"$mod, Escape, exec, hyprctl switchxkblayout all next"
"$mod, M, scroller:fitsize, active"
"$mod, K, scroller:cyclesize"
"$modCtrl, H, killactive"
"$modCtrl, M, fullscreen"
"$modCtrl, L, exec, $screenLocker"
"$modCtrl, B, exec, $webBrowser"
"$modCtrl, V, exec, $clipboardManager"
", Print, exec, grimblast --freeze copy area" #${xdg.userDirs.pictures}/screenshots/"
"CTRL, Print, exec, grimblast --freeze copy active" #${xdg.userDirs.pictures}/screenshots/"
"SHIFT, Print, exec, grimblast --freeze copy output" #${xdg.userDirs.pictures}/screenshots/"
# navigation
#"$modCtrl, N,"
"$mod, $left, scroller:movefocus, l"
"$mod, $down, scroller:movefocus, d"
"$mod, $up, scroller:movefocus, u"
"$mod, $right, scroller:movefocus, r"
"$modshift, $left, workspace, e-1"
"$modshift, $right, workspace, e+1"
"$mod, left, scroller:movefocus, l"
"$mod, up, scroller:movefocus, u"
"$mod, down, scroller:movefocus, d"
"$mod, right, scroller:movefocus, r"
"$modShift, left, workspace, e-1"
"$modShift, right, workspace, e+1"
"$modCtrl, $left, scroller:movewindow, l"
"$modCtrl, $down, scroller:movewindow, d"
"$modCtrl, $up, scroller:movewindow, u"
"$modCtrl, $right, scroller:movewindow, r"
"$modCtrl, left, scroller:movewindow, l"
"$modCtrl, up, scroller:movewindow, u"
"$modCtrl, down, scroller:movewindow, d"
"$modCtrl, right, scroller:movewindow, r"
# workspaces
"$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, 7, workspace, 7"
"$mod, 8, workspace, 8"
"$mod, 9, workspace, 9"
"$mod, 0, workspace, 10"
"$modShiftCtrl, 1, movetoworkspace, 1"
"$modShiftCtrl, 2, movetoworkspace, 2"
"$modShiftCtrl, 3, movetoworkspace, 3"
"$modShiftCtrl, 4, movetoworkspace, 4"
"$modShiftCtrl, 5, movetoworkspace, 5"
"$modShiftCtrl, 6, movetoworkspace, 6"
"$modShiftCtrl, 7, movetoworkspace, 7"
"$modShiftCtrl, 8, movetoworkspace, 8"
"$modShiftCtrl, 9, movetoworkspace, 9"
"$modShiftCtrl, 0, movetoworkspace, 10"
"$modShiftCtrl, $left, movetoworkspace, e-1"
"$modShiftCtrl, $right, movetoworkspace, e+1"
"$modShiftCtrl, left, movetoworkspace, e-1"
"$modShiftCtrl, right, movetoworkspace, e+1"
];
binde = [
"$mod, comma, resizeactive, -10 0"
"$mod, period, resizeactive, 10 0"
"$modShift, comma, resizeactive, 0 -10"
"$modShift, period, resizeactive, 0 10"
];
bindl = [
", switch:on:Lid Switch, exec, hyprctl keyword monitor 'eDP-1, disable'"
", switch:off:Lid Switch, exec, hyprctl keyword monitor 'eDP-1, auto, preferred, 1.2'"
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioPrev, exec, playerctl previous"
", XF86AudioNext, exec, playerctl next"
"$modCtrl, Escape, exit"
];
bindm = [
# mouse movements
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
"$mod ALT, mouse:272, resizewindow"
];
gestures = {
workspace_swipe = true;
workspace_swipe_fingers = 3;
workspace_swipe_distance = 500;
};
windowrulev2 = [
"float, class:(com.github.hluk.copyq)"
"float, class:(com.mojang.minecraft.java-edition)"
"immediate, class:(com.mojang.minecraft.java-edition)"
];
};
services.hyprpaper = {
enable = true;
};
services.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "hyprlock";
};
listener = [
{
timeout = 600;
on-timeout = "hyprlock";
}
{
timeout = 601;
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
];
};
};
services.playerctld.enable = true;
services.gnome-keyring = {
enable = true;
components = ["secrets" "ssh"];
};
services.ssh-agent.enable = true;
programs.keychain = {
enable = true;
keys = ["gitea-local"];
enableNushellIntegration = true;
extraFlags = [
"--quiet"
"--noask"
];
};
services.network-manager-applet.enable = true;
services.copyq.enable = true;
stylix.targets.waybar.enable = false;
programs.waybar = {
enable = true;
#package = pkgs.waybar-0.11.0";
systemd = {
enable = true;
target = "graphical-session.target";
};
settings = {
bar-0 = {
layer = "top";
position = "top";
height = 40;
spacing = 4;
margin-left = 8;
margin-right = 8;
margin-top = 4;
reload_style_on_change = true;
modules-left = [
#"custom/notification"
"group/hypr"
"wlr/taskbar"
];
modules-center = ["clock" "privacy"];
modules-right = [
"tray"
"wireplumber"
"group/laptop"
"idle_inhibitor"
];
"hyprland/workspaces" = {
format = "{id}";
format-icons = {
focused = "󰗝";
active = "󰻃";
default = "󰄰";
};
};
"hyprland/language" = {
format = "{}";
format-en = "🇺🇸";
format-uk = "🇺🇦";
};
"custom/separator" = {
format = "|";
interval = "once";
tooltip = false;
};
"custom/text" = {
format = "here will be workspaces";
interval = "once";
tooltip = false;
};
"group/hypr" = {
orientation = "inherit";
modules = [
"hyprland/language"
"hyprland/workspaces"
];
};
"group/laptop" = {
orientation = "inherit";
drawer = {
transition-duration = 500;
children-class = "laptop";
transition-left-to-right = false;
};
modules = [
"battery"
"power-profiles-daemon"
"custom/separator"
"custom/kbd-backlight"
"custom/separator"
"backlight"
"custom/separator"
];
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "󰈈";
deactivated = "󰈉";
};
};
"tray" = {
icon-size = 24;
spacing = 3;
};
"clock" = {
interval = 1;
format = "{:%H:%M:%S}";
tooltip-format = "{:%d.%m.%Y}";
};
"backlight" = {
device = "intel_backlight";
format = "{percent}% {icon}";
format-icons = ["󰃞" "󰃟" "󰃝" "󰃠"];
on-scroll-up = "light -A 2%";
on-scroll-down = "light -U 2%";
};
"custom/kbd-backlight" = {
exec = "cat /sys/class/leds/platform::kbd_backlight/brightness";
interval = 1;
format = "{}% {icon}";
format-icons = ["󰌌"];
on-scroll-up = "light -s sysfs/leds/platform::kbd_backlight -A 5%";
on-scroll-down = "light -s sysfs/leds/platform::kbd_backlight -U 5%";
};
battery = {
states = {
good = 95;
warning = 30;
critical = 15;
};
format = "{capacity}% {icon}";
format-full = "{capacity}% 󱟢";
format-charging = "{capacity}% 󰂄";
format-plugged = "{capacity}% 󰚥";
format-alt = "{icon} {time}";
format-icons = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
};
"upower" = {
icon-size = 16;
format = "{percentage}";
hide-if-empty = true;
tooltip = true;
tooltip-spacing = 20;
};
"power-profiles-daemon" = {
format = "{icon}";
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
tooltip = true;
format-icons = {
default = "󱡮";
performance = "󱡮";
balanced = "";
power-saver = "";
};
};
"wireplumber" = {
scroll-step = 3;
format = "{volume}% {icon}";
format-muted = "󰖁";
format-icons = ["󰕿" "󰖀" "󰕾"];
on-click = "pwvucontrol";
on-click-right = "wpctl set-mute @DEFAULT_SINK@ toggle";
};
"custom/notification" = {
tooltip = false;
format = "{icon}";
format-icons = {
notification = "";
none = "";
dnd-notification = "";
dnd-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
};
"privacy" = {
# icon-spacing = 4;
icon-size = 16;
transition-duration = 250;
screenshare = {
type = "screenshare";
tooltip = true;
tooltip-icon-size = 24;
};
audio-in = {
type = "audio-in";
tooltip = true;
tooltip-icon-size = 24;
};
};
"wlr/taskbar" = {
format = "{icon}";
icon-size = 24;
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
tooltip-format = "{title}";
on-click = "activate";
};
};
};
style = ''
@define-color base00 #${config.lib.stylix.colors.base00};
@define-color base01 #${config.lib.stylix.colors.base01};
@define-color base02 #${config.lib.stylix.colors.base02};
@define-color base03 #${config.lib.stylix.colors.base03};
@define-color base04 #${config.lib.stylix.colors.base04};
@define-color base05 #${config.lib.stylix.colors.base05};
@define-color base06 #${config.lib.stylix.colors.base06};
@define-color base07 #${config.lib.stylix.colors.base07};
@define-color base08 #${config.lib.stylix.colors.base08};
@define-color base09 #${config.lib.stylix.colors.base09};
@define-color base0A #${config.lib.stylix.colors.base0A};
@define-color base0B #${config.lib.stylix.colors.base0B};
@define-color base0C #${config.lib.stylix.colors.base0C};
@define-color base0D #${config.lib.stylix.colors.base0D};
@define-color base0E #${config.lib.stylix.colors.base0E};
@define-color base0F #${config.lib.stylix.colors.base0F};
* {
font-family: Iosevka Nerd Font Propo, FontAwesome;
font-size: 100%;
/* margin: 0px 2px 2px 2px; */
}
window#waybar {
background-color: transparent;
/* border-top: 3px solid @overlay0; */
color: @base05;
/* padding: 0px 2px 0px 0px; */
transition-property: background-color;
transition-duration: 0.5s;
}
.modules-left {
border-radius: 12px;
margin-right: 4px;
}
.modules-center {
border-radius: 12px;
}
.modules-right {
border-radius: 12px;
margin-left: 4px;
}
tooltip {
background: @base01;
border: 1px solid @base0E;
}
tooltip label {
color: @base05;
}
/* .modules-center {
margin: 4px;
margin-top: 6px;
}*/
button {
box-shadow: inset 0 -3px transparent;
border-radius: 12px;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
box-shadow: inset 0 -3px transparent;
}
#mode {
background-color: rgba(0, 0, 0, 0.2);
box-shadow: inset 0 -3px @base05;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#custom-kbd-backlight,
#workspaces,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#laptop,
#tray,
#mode,
#privacy
#privacy-item,
#idle_inhibitor,
#backlight-slider,
#custom-notification,
#scratchpad,
#power-profiles-daemon,
#taskbar,
#language,
#upower,
#mpris,
#mpd {
padding: 0 0.8em;
border-radius: 12px;
color: @base05;
background-color: @base00;
}
/* #upower, */
#battery,
#backlight,
#custom-kbd-backlight,
#backlight-slider,
#cpu,
#memory,
#disk,
#network,
#wireplumber,
#power-profiles-daemon {
padding-right: 0.8em;
}
#language {
padding-right: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
#workspaces {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
#taskbar,
#workspaces {
padding: 0 0.5em;
}
#taskbar button,
#workspaces button {
padding: 0 0.2em;
}
#workspaces button.active {
color: @base0D;
}
#taskbar button:hover {
box-shadow: transparent;
}
#taskbar.empty,
window#empty {
background-color: transparent;
}
#battery.critical:not(.charging) {
background-color: @base09;
color: @base00;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
#power-profiles-daemon.performance {
background-color: @base00;
color: #000000;
}
#power-profiles-daemon.balanced {
background-color: @base00;
color: @base0E;
}
#power-profiles-daemon.power-saver {
background-color: @base00;
color: @base08;
}
label:focus {
background-color: #000000;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
#idle_inhibitor {
padding: 0 0.9em;
}
#idle_inhibitor:hover {
box-shadow: inset 0 -3px @base05;
}
#idle_inhibitor.activated {
background-color: @base05;
color: @base00;
}
#idle_inhibitor.activated:hover {
box-shadow: inset 0 -3px @base00;
}
#laptop,
#privacy {
padding: 0em;
}
#privacy-item.screenshare {
background-color: @base00;
color: @base0C;
}
#privacy-item.audio-in {
background-color: @base00;
color: @base0E;
}
#privacy-item.audio-out {
background-color: @base;
}
'';
};
programs.fuzzel = {
enable = true;
settings = {
main = {
terminal = "${pkgs.wezterm}/bin/wezterm -e";
fields = "filename,name,generic,keywords,categories,exec";
match-mode = "fuzzy";
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
};
border = {
width = 4;
radius = 12;
};
};
};
services.dunst = {
enable = true;
settings = {
global = {
width = 300;
height = 300;
icon_theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
corner_radius = 12;
#corners = "top-right,bottom-left";
offset = "12x12";
origin = "top-right";
timeout = 15;
frame_width = 4;
notification_limit = 5;
};
rule-telegram = {
"desktop_entry" = "org.telegram.desktop";
"urgency" = "normal";
};
};
};
programs.hyprlock = {
enable = true;
settings = {
general = {
disable_loading_bar = true;
#grace = 300;
hide_cursor = true;
no_fade_in = false;
};
background = [
{
path = "screenshot";
blur_passes = 3;
blur_size = 8;
}
];
input-field = [
{
size = "274, 50";
rounding = 12;
outline_thickness = 4;
position = "0, -30";
monitor = "";
dots_center = true;
fade_on_empty = false;
font_family = "${config.stylix.fonts.serif.name}";
font_color = "rgb(${config.lib.stylix.colors.base05})";
inner_color = "rgb(${config.lib.stylix.colors.base00})";
outer_color = "rgb(${config.lib.stylix.colors.base0D})";
check_color = "rgb(${config.lib.stylix.colors.base0A})";
fail_color = "rgb(${config.lib.stylix.colors.base08})";
placeholder_text = "locked...";
fail_text = "wrong";
#placeholder_text = '\'<span foreground="##cad3f5">Password...</span>'\';
shadow_passes = 0;
}
];
shape = [
{
rounding = 12;
#border_size = 3;
size = "150, 50";
color = "rgb(${config.lib.stylix.colors.base00})";
border_color = "rgb(${config.lib.stylix.colors.base0D})";
position = "-62, 30";
halign = "center";
valign = "center";
}
{
rounding = 12;
#border_size = 3;
size = "120, 50";
color = "rgb(${config.lib.stylix.colors.base00})";
border_color = "rgb(${config.lib.stylix.colors.base0D})";
position = "77, 28";
halign = "center";
valign = "center";
}
];
label = [
{
monitor = "";
text = "$LAYOUT"; #"cmd[update:1000] ${pkgs.uutils-coreutils-noprefix}/bin/echo $(${pkgs.uutils-coreutils-noprefix}/bin/date +%H:%M:%S)";
#text = "$TIME
text_align = "center";
font_size = 16;
font_family = "${config.stylix.fonts.serif.name}";
outer_color = "rgb(${config.lib.stylix.colors.base00})";
color = "rgb(${config.lib.stylix.colors.base05})";
position = "-62, 28";
halign = "center";
valign = "center";
}
{
monitor = "";
text = "cmd[update:1000] ${pkgs.uutils-coreutils-noprefix}/bin/echo $(${pkgs.uutils-coreutils-noprefix}/bin/date +%H:%M:%S)";
#text = "$TIME
text_align = "center";
font_size = 16;
font_family = "${config.stylix.fonts.serif.name}";
outer_color = "rgb(${config.lib.stylix.colors.base00})";
color = "rgb(${config.lib.stylix.colors.base05})";
position = "77, 28";
halign = "center";
valign = "center";
}
];
};
};
services.wlsunset = {
enable = true;
latitude = "49.6";
longitude = "36.1";
temperature = {
day = 6500;
night = 3000;
};
systemdTarget = "graphical-session.target";
};
services.udiskie = {
enable = true;
automount = false;
notify = true;
tray = "auto";
};
home.packages = with pkgs; [
dconf
glib
grimblast
grim
slurp
libnotify
playerctl
wdisplays
pwvucontrol
wl-clipboard-rs
polkit_gnome
papirus-icon-theme
];
gtk = {
enable = true;
#iconTheme = {
# name = "Papirus-Dark";
# package = pkgs.papirus-icon-theme;
};
qt = {
enable = true;
platformTheme.name = "gtk3";
};
xdg.mime.enable = true;
xdg.mimeApps = {
enable = true;
defaultApplications = let
file_manager = ["yazi.desktop"];
web_browser = ["io.github.zen_browser.zen.desktop"];
image_viewer = ["imv.desktop"];
video_player = ["io.mpv.Mpv.desktop"];
pdf_reader = ["org.pwmt.zathura-pdf-mupdf.desktop"];
in {
"inode/directory" = file_manager;
"video/x-matroska" = video_player;
"application/pdf" = pdf_reader;
};
};
xdg.userDirs = {
enable = true;
createDirectories = true;
templates = "${config.home.homeDirectory}/temps";
publicShare = "${config.home.homeDirectory}/pub";
desktop = "${config.home.homeDirectory}/desktop";
download = "${config.home.homeDirectory}/downloads";
documents = "${config.home.homeDirectory}/docs";
pictures = "${config.home.homeDirectory}/pics";
videos = "${config.home.homeDirectory}/vids";
music = "${config.home.homeDirectory}/music";
};
systemd.user.settings.Manager.DefaultEnvironment = {
QT_QPA_PLATFORMTHEME = "gtk3";
QT_QPA_PLATFORM = "wayland";
#DISPLAY = ":123";
};
systemd.user.targets.tray = {
# workaround for udiskie
Unit = {
Description = "Home Manager System Tray";
};
};
systemd.user.services = {
udiskie = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["hyprland.service"];
};
};
waybar = {
# Unit = {
# Description = "Swaync notification daemon";
# };
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["hyprland.service"];
};
};
copyq = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["hyprland.service"];
};
Service = {
Environment = lib.mkForce "QT_QPA_PLATFORM=wayland";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
network-manager-applet = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["hyprland.service"];
};
};
gnome-polkit-agent = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["hyprland.service"];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
wlsunset = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["hyprland.service"];
};
};
};
}

View File

@ -1,922 +0,0 @@
{
config,
pkgs,
# pkgs-51b85c,
lib,
...
}: {
# imports = [./walker.nix];
stylix.targets.sway.enable = true;
wayland.windowManager.sway = {
enable = true;
systemd.enable = true;
# xwayland.enable = false;
wrapperFeatures.gtk = true;
config = let
modifier = "Mod4";
terminal = "wezterm";
launcher = "fuzzel";
clipboard = "copyq toggle";
left = "n";
down = "e";
up = "u";
right = "i";
in {
bars = [
{
command = "${pkgs.waybar}/bin/waybar";
}
];
modifier = "${modifier}";
terminal = "${terminal}";
menu = "${launcher}";
left = "${left}";
down = "${down}";
up = "${up}";
right = "${right}";
workspaceLayout = "tabbed";
input = {
"*" = {
xkb_layout = "us,ua";
repeat_delay = "200";
repeat_rate = "50";
accel_profile = "flat";
};
"type:touchpad" = {
tap = "enabled";
scroll_method = "two_finger";
};
};
output = {
"Samsung Electric Company S24R65x H4TMA03291" = {
mode = "1920x1080@74.973Hz";
pos = "0 0";
adaptive_sync = "on";
allow_tearing = "yes";
max_render_time = "off";
};
"AOC 27V2G5 0x0000026C" = {
pos = "1920 0";
};
};
keybindings = lib.mkForce {
"${modifier}+Ctrl+q" = "kill";
"${modifier}+Ctrl+Escape" = "exit";
"${modifier}+Ctrl+r" = "reload";
"${modifier}+Ctrl+${left}" = "move left";
"${modifier}+Ctrl+${down}" = "move down";
"${modifier}+Ctrl+${up}" = "move up";
"${modifier}+Ctrl+${right}" = "move right";
"${modifier}+Ctrl+left" = "move left";
"${modifier}+Ctrl+down" = "move down";
"${modifier}+Ctrl+up" = "move up";
"${modifier}+Ctrl+right" = "move right";
"${modifier}+Ctrl+1" = "move window workspace 1";
"${modifier}+Ctrl+2" = "move window workspace 2";
"${modifier}+Ctrl+3" = "move window workspace 3";
"${modifier}+Ctrl+4" = "move window workspace 4";
"${modifier}+Ctrl+5" = "move window workspace 5";
"${modifier}+Ctrl+6" = "move window workspace 6";
"${modifier}+Ctrl+7" = "move window workspace 7";
"${modifier}+Ctrl+8" = "move window workspace 8";
"${modifier}+Ctrl+9" = "move window workspace 9";
"${modifier}+Ctrl+0" = "move window workspace 10";
"${modifier}+Ctrl+l" = "move window workspace prev";
"${modifier}+Ctrl+y" = "move window workspace next";
"${modifier}+Shift+${left}" = "focus output left";
"${modifier}+Shift+${down}" = "focus output down";
"${modifier}+Shift+${up}" = "focus output up";
"${modifier}+Shift+${right}" = "focus output right";
"${modifier}+Shift+left" = "focus output left";
"${modifier}+Shift+down" = "focus output down";
"${modifier}+Shift+up" = "focus output up";
"${modifier}+Shift+right" = "focus output right";
"${modifier}+Return" = "exec ${terminal}";
"${modifier}+Shift+v" = "exec ${clipboard}";
"${modifier}+Space" = "exec ${launcher}";
"${modifier}+c" = "splith";
"${modifier}+d" = "splitv";
"${modifier}+s" = "layout toggle split";
"${modifier}+t" = "layout tabbed";
"${modifier}+h" = "focus mode_toggle";
"${modifier}+f" = "floating toggle";
"${modifier}+m" = "fullscreen toggle";
"${modifier}+g" = "sticky toggle";
"${modifier}+b" = "bar mode toggle";
"--locked ${modifier}+Escape" = "exec swaymsg input \"*\" xkb_switch_layout next";
"Print" = ''exec ${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp -o -r -c '#ff0000ff')" -t ppm - | ${pkgs.satty}/bin/satty --filename - --fullscreen --output-filename ~/pics/screenshots/satty-$(date '+%Y%m%d-%H:%M:%S').png'';
"${modifier}+1" = "workspace 1";
"${modifier}+2" = "workspace 2";
"${modifier}+3" = "workspace 3";
"${modifier}+4" = "workspace 4";
"${modifier}+5" = "workspace 5";
"${modifier}+6" = "workspace 6";
"${modifier}+7" = "workspace 7";
"${modifier}+8" = "workspace 8";
"${modifier}+9" = "workspace 9";
"${modifier}+0" = "workspace 10";
"${modifier}+l" = "workspace prev";
"${modifier}+y" = "workspace next";
"${modifier}+${left}" = "focus left";
"${modifier}+${down}" = "focus down";
"${modifier}+${up}" = "focus up";
"${modifier}+${right}" = "focus right";
"${modifier}+left" = "focus left";
"${modifier}+down" = "focus down";
"${modifier}+up" = "focus up";
"${modifier}+right" = "focus right";
};
window = {
border = 1;
# hideEdgeBorders = "smart";
};
gaps = {
# top = 6;
# bottom = 6;
# left = 6;
# right = 6;
outer = 6;
inner = 3;
};
floating.criteria = [
{
app_id = "com.github.hluk.copyq";
}
{
app_id = "com.saivert.pwvucontrol";
}
];
};
};
programs.swaylock.enable = true;
services.swayidle = {
enable = true;
systemdTarget = "sway-session.target";
timeouts = [
{
timeout = 300;
command = "${pkgs.swaylock}/bin/swaylock -fF";
}
{
timeout = 301;
command = "${pkgs.sway}/bin/swaymsg \"output * dpms off\"";
resumeCommand = "${pkgs.sway}/bin/swaymsg \"output * dpms on\"";
}
];
events = [
{
event = "lock";
command = "${pkgs.swaylock}/bin/swaylock -fF &&";
}
{
event = "unlock";
command = "${pkgs.procps}/bin/pkill -SIGUSR1 swaylock";
}
{
event = "lock";
command = "${pkgs.swaylock}/bin/swaylock -fF & ${pkgs.playerctl}/bin/playerctl pause";
}
];
};
services.playerctld.enable = true;
services.gnome-keyring = {
enable = true;
components = ["secrets" "ssh"];
};
services.ssh-agent.enable = true;
programs.keychain = {
enable = true;
keys = ["id_ed25519"];
enableNushellIntegration = true;
extraFlags = [
"--quiet"
"--noask"
];
};
services = {
network-manager-applet.enable = true;
blueman-applet.enable = true;
copyq.enable = true;
};
qt = {
enable = true;
platformTheme.name = "gtk3";
#style.name = "gtk2";
};
stylix.targets.waybar.enable = false;
programs.waybar = {
enable = true;
#package = pkgs.waybar-0.11.0";
# systemd = {
# enable = true;
# target = "graphical-session.target";
# };
settings = {
bar-0 = {
ipc = true;
id = "bar-0";
layer = "top";
position = "bottom";
height = 32;
spacing = 6;
# margin-top = 8;
margin-left = 8;
margin-right = 8;
margin-bottom = 8;
reload_style_on_change = true;
modules-left = [
#"custom/notification"
"group/sway"
"wlr/taskbar"
];
modules-center = ["clock"];
modules-right = [
"privacy"
"tray"
"wireplumber"
# "group/laptop"
"idle_inhibitor"
];
"sway/workspaces" = {
format = "{icon}";
format-icons = {
"1" = "I";
"2" = "II";
"3" = "III";
"4" = "IV";
"5" = "V";
"6" = "VI";
"7" = "VII";
"8" = "IIX";
"9" = "IX";
"10" = "X";
#focused = "󰗝";
#active = "󰻃";
#default = "󰄰";
};
};
"sway/language" = {
format = "{flag}";
tooltip-format = "{long}";
on-click = "swaymsg input type:keyboard xkb_switch_layout next";
};
"group/sway" = {
orientation = "inherit";
modules = [
"sway/language"
"sway/workspaces"
];
};
"group/laptop" = {
orientation = "inherit";
drawer = {
transition-duration = 500;
children-class = "laptop";
transition-left-to-right = false;
};
modules = [
"battery"
"power-profiles-daemon"
"custom/separator"
"custom/kbd-backlight"
"custom/separator"
"custom/backlight"
"custom/separator"
];
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "󰈈";
deactivated = "󰈉";
};
};
"tray" = {
icon-size = 24;
spacing = 3;
};
"clock" = {
interval = 1;
format = "{:%H:%M:%S}";
tooltip-format = "{:%d.%m.%Y}";
};
# "custom/backlight" = {
# format = "{}% {icon}";
# interval = 1;
# format-icons = ["󰃠"];
# };
# "custom/kbd-backlight" = {
# exec = "brightnessctl s 5%+";
# interval = 1;
# format = "{}% {icon}";
# format-icons = ["󰌌"];
# on-scroll-up = "~/.local/bin/keyboard-brightness.nu increase";
# on-scroll-down = "~/.local/bin/keyboard-brightness.nu decrease";
# };
# battery = {
# states = {
# good = 95;
# warning = 30;
# critical = 15;
# };
# format = "{capacity}% {icon}";
# format-full = "{capacity}% 󱟢";
# format-charging = "{capacity}% 󰂄";
# format-plugged = "{capacity}% 󰚥";
# format-alt = "{icon} {time}";
# format-icons = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
# };
"upower" = {
icon-size = 16;
format = "{percentage}";
hide-if-empty = true;
tooltip = true;
tooltip-spacing = 20;
};
# "power-profiles-daemon" = {
# format = "{icon}";
# tooltip-format = "Power profile: {profile}\nDriver: {driver}";
# tooltip = true;
# format-icons = {
# default = "󱡮";
# performance = "󱡮";
# balanced = "";
# power-saver = "";
# };
# };
"wireplumber" = {
scroll-step = 3;
format = "{volume}% {icon}";
format-muted = "󰖁";
format-icons = ["󰕿" "󰖀" "󰕾"];
on-click = "${pkgs.pwvucontrol}/bin/pwvucontrol";
on-click-right = "wpctl set-mute @DEFAULT_SINK@ toggle";
};
"custom/notification" = {
tooltip = false;
format = "{icon}";
format-icons = {
notification = "";
none = "";
dnd-notification = "";
dnd-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
};
"privacy" = {
# icon-spacing = 4;
icon-size = 16;
transition-duration = 250;
screenshare = {
type = "screenshare";
tooltip = true;
tooltip-icon-size = 24;
};
audio-in = {
type = "audio-in";
tooltip = true;
tooltip-icon-size = 24;
};
};
"wlr/taskbar" = {
format = "{icon}";
icon-size = 24;
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
tooltip-format = "{title}";
on-click = "activate";
};
};
};
style = ''
@define-color base00 #${config.lib.stylix.colors.base00};
@define-color base01 #${config.lib.stylix.colors.base01};
@define-color base02 #${config.lib.stylix.colors.base02};
@define-color base03 #${config.lib.stylix.colors.base03};
@define-color base04 #${config.lib.stylix.colors.base04};
@define-color base05 #${config.lib.stylix.colors.base05};
@define-color base06 #${config.lib.stylix.colors.base06};
@define-color base07 #${config.lib.stylix.colors.base07};
@define-color base08 #${config.lib.stylix.colors.base08};
@define-color base09 #${config.lib.stylix.colors.base09};
@define-color base0A #${config.lib.stylix.colors.base0A};
@define-color base0B #${config.lib.stylix.colors.base0B};
@define-color base0C #${config.lib.stylix.colors.base0C};
@define-color base0D #${config.lib.stylix.colors.base0D};
@define-color base0E #${config.lib.stylix.colors.base0E};
@define-color base0F #${config.lib.stylix.colors.base0F};
* {
font-family: ${config.stylix.fonts.sansSerif.name}, FontAwesome;
font-weight: 500;
font-size: 100%;
/* margin: 0px 2px 2px 2px; */
}
window#waybar {
background-color: @base00;
border: 1px solid @base0D;
/* border-top: 3px solid @overlay0; */
color: @base05;
/* padding: 0px 2px 0px 0px; */
transition-property: background-color;
transition-duration: 0.5s;
}
.modules-left,
.modules-center,
.modules-right {
padding: 1px;
margin-left: 4px;
margin-right: 4px;
}
tooltip {
background: @base01;
border: 1px solid @base0E;
}
tooltip label {
color: @base05;
}
button {
box-shadow: inset 0 -3px transparent;
border-radius: 12px;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
box-shadow: inset 0 -3px transparent;
}
#mode {
background-color: rgba(0, 0, 0, 0.2);
box-shadow: inset 0 -3px @base05;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#custom-backlight,
#custom-kbd-backlight,
#workspaces,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#laptop,
#tray,
#mode,
#privacy
#privacy-item,
#idle_inhibitor,
#backlight-slider,
#custom-notification,
#scratchpad,
#power-profiles-daemon,
#taskbar,
#language,
#upower,
#mpris,
#mpd {
padding: 0 0.5em;
color: @base05;
background-color: @base00;
}
/* #upower,
#battery,
#backlight,
#custom-kbd-backlight,
#backlight-slider,
#cpu,
#memory,
#disk,
#network,
#wireplumber,
#power-profiles-daemon {
padding-right: 0.5em;
} */
#taskbar button,
#workspaces button {
padding: 0 0.2em;
}
#workspaces button.focused,
#workspaces button.active {
color: @base0D;
}
#taskbar button:hover {
box-shadow: transparent;
}
#taskbar.empty,
window#empty {
background-color: transparent;
}
#battery.critical:not(.charging) {
background-color: @base09;
color: @base00;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
#power-profiles-daemon.performance {
background-color: @base00;
color: @base0D;
}
#power-profiles-daemon.balanced {
background-color: @base00;
color: @base0B;
}
#power-profiles-daemon.power-saver {
background-color: @base00;
color: @base0A;
}
label:focus {
background-color: #000000;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: @base08;
}
#idle_inhibitor:hover {
box-shadow: inset 0 -3px @base05;
}
#idle_inhibitor.activated {
background-color: @base05;
color: @base00;
}
#idle_inhibitor.activated:hover {
box-shadow: inset 0 -3px @base00;
}
#laptop,
#privacy {
padding: 0em;
}
#privacy-item.screenshare {
background-color: @base00;
color: @base0C;
}
#privacy-item.audio-in {
background-color: @base00;
color: @base0E;
}
#privacy-item.audio-out {
background-color: @base;
}
'';
};
programs.rofi = {
enable = true;
theme = {
window = {
height = 360;
border = 3;
};
inputbar = {
children = ["prompt" "entry"];
border-radius = 5;
padding = 2;
};
prompt = {
padding = 6;
border-radius = 3;
margin = "20px 0px 0px 20px";
};
textbox-prompt-colon = {
expand = false;
str = "~>";
};
entry = {
padding = 6;
margin = "20px 0px 0px 10px";
};
listview = {
border = "0px 0px 0px";
padding = "6px 0px 0px";
margin = "10px 0px 0px 20px";
columns = 2;
lines = 5;
};
element = {
padding = 5;
};
element-icon = {
size = 25;
};
mode-switcher = {
spacing = 0;
};
button = {
padding = 10;
vertical-align = "0.5";
horizontal-align = "0.5";
};
message = {
margin = 2;
padding = 2;
border-radius = 5;
};
textbox = {
padding = 6;
margin = "20 0 0 20";
};
};
extraConfig = {
show-icons = true;
modi = "run,drun,window";
kb-primary-paste = "Control+V,Shift+Insert";
kb-secondary-paste = "Control+v,Insert";
};
};
programs.fuzzel = {
enable = true;
settings = {
main = {
terminal = "wezterm -e";
fields = "filename,name,generic,keywords,categories,exec";
dpi-aware = false;
horizontal-pad = 8;
show-actions = true;
match-mode = "fuzzy";
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
};
border = {
width = 2;
radius = 4;
};
};
};
services.dunst = {
enable = true;
settings = {
global = {
width = 300;
height = 300;
icon_theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
corner_radius = 4;
#corners = "top-right,bottom-left";
offset = "16x16";
origin = "bottom-right";
timeout = 15;
frame_width = 2;
notification_limit = 5;
};
rule-telegram = {
"desktop_entry" = "org.telegram.desktop";
"urgency" = "normal";
};
};
};
services.wlsunset = {
enable = true;
latitude = "49.6";
longitude = "36.1";
temperature = {
day = 6500;
night = 3000;
};
systemdTarget = "graphical-session.target";
};
services.udiskie = {
enable = true;
automount = false;
notify = true;
tray = "auto";
};
# services.flameshot = {
# enable = true;
# settings = {
# General = {
# buttons = "@Variant(000x7f000vQList<int>0000x130000000x1000x2000x3000x4000x5000x6000x12000xf000x13000b000 000x10000000v000x17000xe000f000x11)";
# filenamePattern = "screenshot-%F_%H-%M-%S";
# saveAsFileExtension = "png";
# savePath = "/home/user/pics/screenshots";
# uiColor = "#${config.lib.stylix.colors.base0D}";
# showStartupLaunchMessage = false;
# showDesktopNotification = false;
# showHelp = false;
# };
# };
# };
home.packages = with pkgs; [
nautilus
helvum
loupe
evince
celluloid
mission-center
dconf
glib
libnotify
playerctl
wdisplays
pwvucontrol
wl-clipboard-rs
polkit_gnome
libqalculate
#papirus-icon-theme
];
xdg.userDirs = {
enable = true;
createDirectories = true;
templates = "${config.home.homeDirectory}/temps";
publicShare = "${config.home.homeDirectory}/pub";
desktop = "${config.home.homeDirectory}/desktop";
download = "${config.home.homeDirectory}/downloads";
documents = "${config.home.homeDirectory}/docs";
pictures = "${config.home.homeDirectory}/pics";
videos = "${config.home.homeDirectory}/vids";
music = "${config.home.homeDirectory}/music";
};
xdg.mime.enable = true;
xdg.mimeApps = {
enable = true;
defaultApplications = let
file_manager = ["org.gnome.Nautilus.desktop"];
web_browser = ["io.github.zen_browser.zen.desktop"];
image_viewer = ["org.gnome.Loupe.desktop"];
video_player = ["io.github.celluloid_player.Celluloid.desktop"];
pdf_reader = ["org.gnome.Evince.desktop"];
in {
"inode/directory" = file_manager;
"video/x-matroska" = video_player;
"video/mp4" = video_player;
"video/mpeg" = video_player;
"video/x-mpeg" = video_player;
"image/png" = image_viewer;
"image/jpeg" = image_viewer;
"application/pdf" = pdf_reader;
"text/html" = web_browser;
};
};
systemd.user.settings.Manager.DefaultEnvironment = {
#DISPLAY = ":123";
};
systemd.user.targets.tray = {
# workaround for udiskie
Unit = {
Description = "Home Manager System Tray";
};
};
systemd.user.services = {
udiskie = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["sway-session.target"];
};
};
# waybar = {
# Unit = {
# Description = "Swaync notification daemon";
# # };
# Unit = {
# PartOf = ["graphical-session.target"];
# After = ["graphical-session.target"];
# Requisite = ["graphical-session.target"];
# };
# Install = {
# WantedBy = ["sway-session.target"];
# };
# };
copyq = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["sway-session.target"];
};
Service = {
Environment = lib.mkForce "QT_QPA_PLATFORM=wayland";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
network-manager-applet = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["sway-session.target"];
};
};
gnome-polkit-agent = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["sway-session.target"];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
# walker = {
# Unit = {
# PartOf = ["graphical-session.target"];
# After = ["graphical-session.target"];
# Requisite = ["graphical-session.target"];
# };
# Install = {
# WantedBy = ["sway-session.target"];
# };
# Service = {
# Type = "simple";
# ExecStart = "${pkgs.walker}/bin/walker --gapplication-service";
# Restart = "on-failure";
# RestartSec = 1;
# TimeoutStopSec = 10;
# };
# };
wlsunset = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["sway-session.target"];
};
};
# xwayland-satellite = {
# Unit = {
# PartOf = ["graphical-session.target"];
# After = ["graphical-session.target"];
# Requisite = ["graphical-session.target"];
# };
# Install = {
# WantedBy = ["niri.service"];
# };
# Service = {
# Type = "simple";
# ExecStart = "${pkgs.xwayland-satellite}/bin/xwayland-satellite :123";
# Restart = "on-failure";
# RestartSec = 1;
# TimeoutStopSec = 10;
# };
# };
};
}

View File

@ -1,75 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [
#papirus-icon-theme
(nerdfonts.override {fonts = ["Iosevka"];})
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/atelier-estuary.yaml";
polarity = "dark";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Tinted";
size = 32;
};
image = ../wallpapers/wallhaven-ne3v2r.jpg;
#opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
};
qt = {
enable = true;
platformTheme.name = "gtk3";
#style.name = "gtk2";
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -1,75 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [
#papirus-icon-theme
(nerdfonts.override {fonts = ["Iosevka"];})
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/atelier-sulphurpool-light.yaml";
polarity = "light";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Tinted";
size = 32;
};
image = ../wallpapers/wallhaven-m37gy8.jpg;
opacity.terminal = 0.9;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Light";
package = pkgs.papirus-icon-theme;
};
};
qt = {
enable = true;
platformTheme.name = "gtk3";
#style.name = "gtk2";
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -1,75 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [
#papirus-icon-theme
nerd-fonts.iosevka
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/atelier-sulphurpool.yaml";
polarity = "dark";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Ghost";
size = 32;
};
image = ../wallpapers/wallhaven-7p3vy9.jpg;
opacity.terminal = 0.9;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
};
qt = {
enable = true;
platformTheme.name = "gtk3";
#style.name = "gtk2";
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -1,76 +0,0 @@
{
config,
pkgs,
...
}: {
environment.systemPackages = with pkgs; [
#papirus-icon-theme
nerd-fonts.iosevka
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/ayu-dark.yaml";
polarity = "dark";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Ghost";
size = 32;
};
image = ../wallpapers/wallhaven-exj8pw.jpg;
# imageScalingMode = "center";
opacity.terminal = 0.9;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# aotic base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
# gtk = {
# enable = true;
# iconTheme = {
# name = "Papirus-Dark";
# package = pkgs.papirus-icon-theme;
# };
# };
# qt = {
# enable = true;
# platformTheme.name = "gtk3";
#style.name = "gtk2";
# };
# dconf.settings = {
# "org/gnome/desktop/interface" = {
# icon-theme = "${config.gtk.iconTheme.name}";
# };
# };
}

View File

@ -1,76 +0,0 @@
{
config,
pkgs,
...
}: {
environment.systemPackages = with pkgs; [
#papirus-icon-theme
nerd-fonts.iosevka
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/ayu-mirage.yaml";
polarity = "dark";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Ghost";
size = 32;
};
image = ../wallpapers/wallhaven-wexo3x.jpg;
# imageScalingMode = "center";
opacity.terminal = 0.9;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# aotic base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
# gtk = {
# enable = true;
# iconTheme = {
# name = "Papirus-Dark";
# package = pkgs.papirus-icon-theme;
# };
# };
# qt = {
# enable = true;
# platformTheme.name = "gtk3";
#style.name = "gtk2";
# };
# dconf.settings = {
# "org/gnome/desktop/interface" = {
# icon-theme = "${config.gtk.iconTheme.name}";
# };
# };
}

View File

@ -1,78 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [
#papirus-icon-theme
(nerdfonts.override {fonts = ["FantasqueSansMono"];})
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-macchiato.yaml";
polarity = "dark";
cursor = {
package = pkgs.catppuccin-cursors.macchiatoBlue;
name = "catppuccin-macchiato-blue-cursors";
size = 24;
};
image = ../wallpapers/wallhaven-2ke6lg.jpg;
#opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Propo";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.catppuccin-papirus-folders.override {
flavor = "macchiato";
accent = "blue";
};
};
};
qt = {
enable = true;
platformTheme.name = "gtk3";
#style.name = "gtk2";
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -1,70 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [
#papirus-icon-theme
(nerdfonts.override {fonts = ["Iosevka"];})
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/dracula.yaml";
polarity = "dark";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Ghost";
size = 32;
};
image = ../wallpapers/wallhaven-47m35e.png;
opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -1,71 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs; [
gruvbox-plus-icons
(nerdfonts.override {fonts = ["FantasqueSansMono" "Ubuntu" "UbuntuSans"];})
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-material-dark-medium.yaml";
polarity = "dark";
cursor = {
package = pkgs.capitaine-cursors-themed;
name = "Capitaine Cursors (Gruvbox)";
size = 24;
};
image = ../wallpapers/wallhaven-qze297.jpg;
opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Propo";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Gruvbox-Plus-Dark";
package = pkgs.gruvbox-plus-icons;
};
};
qt = {
enable = true;
platformTheme.name = "gtk3";
#style.name = "gtk2";
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "Gruvbox-Plus-Dark";
};
};
}

View File

@ -1,75 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [
papirus-icon-theme
(nerdfonts.override {fonts = ["FantasqueSansMono"];})
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/heetch.yaml";
polarity = "dark";
cursor = {
package = pkgs.google-cursor;
name = "GoogleDot-Red";
size = 24;
};
image = ../wallpapers/wallhaven-9mdqgd.jpg;
opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Propo";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
};
qt = {
enable = true;
platformTheme.name = "gtk3";
#style.name = "gtk2";
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -1,55 +0,0 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
#papirus-icon-theme
nerd-fonts.iosevka
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/heetch.yaml";
polarity = "dark";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Ghost";
size = 32;
};
image = ../../../../../../wallpapers/wallhaven-o5p5ql.jpg;
# image = null;
# imageScalingMode = "center";
opacity.terminal = 0.9;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
base08 = "e33400";
base09 = "e39400";
base0A = "f2ce00";
base0B = "5ccc96";
base0C = "00a3cc";
base0D = "7a5ccc";
base0E = "b3a1e6";
base0F = "ce6f8f";
};
}

View File

@ -1,76 +0,0 @@
{
# config,
pkgs,
...
}: {
environment.systemPackages = with pkgs; [
#papirus-icon-theme
nerd-fonts.iosevka
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/outrun-dark.yaml";
polarity = "dark";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Ghost";
size = 32;
};
image = ../wallpapers/wallhaven-o5p5ql.jpg;
# imageScalingMode = "center";
opacity.terminal = 0.9;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
# stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# aotic base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
# };
# gtk = {
# enable = true;
# iconTheme = {
# name = "Papirus-Dark";
# package = pkgs.papirus-icon-theme;
# };
# };
# qt = {
# enable = true;
# platformTheme.name = "gtk3";
#style.name = "gtk2";
# };
# dconf.settings = {
# "org/gnome/desktop/interface" = {
# icon-theme = "${config.gtk.iconTheme.name}";
# };
# };
}

View File

@ -1,74 +0,0 @@
{
config,
pkgs,
...
}: {
fonts.fontconfig.enable = true;
home.packages = with pkgs; [
#papirus-icon-theme
nerd-fonts.iosevka
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine-moon.yaml";
polarity = "dark";
cursor = {
# package = pkgs.bibata-cursors-translucent;
package = pkgs.rose-pine-cursor;
name = "BreezeX-RosePineDawn-Linux";
size = 32;
};
image = ../wallpapers/wallhaven-47m35e.png;
opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 13;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
# name = "Papirus-Dark";
# package = pkgs.papirus-icon-theme;
name = "rose-pine-moon";
package = pkgs.rose-pine-icon-theme;
};
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -1,70 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [
#papirus-icon-theme
(nerdfonts.override {fonts = ["Iosevka"];})
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/selenized-black.yaml";
polarity = "dark";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Ghost";
size = 32;
};
image = ../wallpapers/wallhaven-vml6j5.png;
opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -1,78 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [
#papirus-icon-theme
(nerdfonts.override {fonts = ["FantasqueSansMono"];})
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-macchiato.yaml";
polarity = "dark";
cursor = {
package = pkgs.catppuccin-cursors.macchiatoBlue;
name = "catppuccin-macchiato-blue-cursors";
size = 24;
};
image = ../wallpapers/wallhaven-2ke6lg.jpg;
#opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Propo";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.catppuccin-papirus-folders.override {
flavor = "macchiato";
accent = "blue";
};
};
};
qt = {
enable = true;
platformTheme.name = "gtk3";
#style.name = "gtk2";
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -4,6 +4,7 @@
nixvim.homeManagerModules.nixvim
walker.homeManagerModules.default
self.homeModules.desktop
self.homeModules.programs
./programs.nix
];
home = {

View File

@ -1,6 +1,4 @@
{pkgs, ...}: {
imports = [./programs/main.nix];
shell = {
nushell.enable = true;
oh-my-posh.enable = true;

View File

@ -1,110 +0,0 @@
{
services.flatpak = {
enable = true;
remotes = [
{
name = "flathub";
location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
}
{
name = "hero-persson";
location = "https://hero-persson.github.io/unmojang-flatpak/index.flatpakrepo";
}
];
packages = [
# misc
"io.github.zen_browser.zen"
"net.mullvad.MullvadBrowser"
"com.obsproject.Studio"
"com.bitwarden.desktop"
"com.github.tchx84.Flatseal"
"org.qbittorrent.qBittorrent"
# "com.transmissionbt.Transmission"
"com.usebottles.bottles"
"com.logseq.Logseq"
"org.octave.Octave"
"io.github.martchus.syncthingtray"
# chatting
"org.signal.Signal"
"im.riot.Riot"
"org.telegram.desktop"
"io.github.spacingbat3.webcord"
# "dev.vencord.Vesktop"
"org.mozilla.Thunderbird"
# media
"org.atheme.audacious"
"io.freetubeapp.FreeTube"
#"io.github.celluloid_player.Celluloid"
# "io.mpv.Mpv"
# gaming
#"com.github._0negal.Viper"
"com.valvesoftware.Steam"
"net.lutris.Lutris"
"com.heroicgameslauncher.hgl"
{
appId = "org.unmojang.FjordLauncher";
origin = "hero-persson";
}
"org.freedesktop.Platform.VulkanLayer.MangoHud//24.08"
"org.freedesktop.Platform.VulkanLayer.gamescope//24.08"
];
overrides = {
"global" = {
# Force Wayland by default
Context = {
sockets = ["wayland" "!x11" "!fallback-x11"];
filesystems = [
"xdg-run/pipewire-0"
"xdg-config/gtk-3.0:ro"
"xdg-config/gtk-4.0:ro"
# "~/.local/share/fonts:ro"
"~/.local/share/icons:ro"
# "~/.nix-profile/share/icons:ro"
# "~/.nix-profile/share/fonts:ro"
"/nix/store:ro"
];
};
Environment = {
XCURSOR_PATH = "/run/host/user-share/icons:/run/host/share/icons";
ELECTRON_OZONE_PLATFORM_HINT = "wayland";
#GTK_THEME = "adw-gtk3";
};
};
"io.github.martchus.syncthingtray".Context.filesystems = ["/storage/games/heroic/Factorio/game/saves"];
"org.octave.Octave".Context.sockets = ["x11"];
"org.octave.Octave".Environment = {QT_QPA_PLATFORM = "xcb";};
"com.valvesoftware.Steam" = {
Context = {
sockets = ["x11" "wayland"];
filesystems = ["/storage/games/steam"];
};
Environment = {
STEAM_FORCE_DESKTOPUI_SCALING = "1.3";
};
};
"org.signal.Signal" = {
Environment = {
SIGNAL_PASSWORD_STORE = "gnome-libsecret";
};
};
"net.lutris.Lutris".Context = {
sockets = ["x11" "wayland"];
filesystems = ["/storage/games/lutris" "~/games/lutris"];
};
"com.heroicgameslauncher.hgl".Context = {
sockets = ["x11" "wayland"];
filesystems = ["/storage/games/heroic" "~/games/heroic"];
};
"com.usebottles.Bottles" = {
Context = {
sockets = ["x11" "wayland"];
filesystems = ["/home/user/docs/nure/tex-template/assets/BridgeKSG"];
};
};
};
};
}

View File

@ -1,176 +0,0 @@
{
config,
pkgs,
# pkgs-51b85c,
# lib,
...
}: {
# imports = [./walker.nix];
# services.playerctld.enable = true;
services.gnome-keyring = {
enable = true;
components = ["secrets" "ssh"];
};
services.ssh-agent.enable = true;
programs.keychain = {
enable = true;
keys = ["id_ed25519"];
enableNushellIntegration = true;
extraFlags = [
"--quiet"
"--noask"
];
};
home.packages = with pkgs; [
nautilus
ghostty
helvum
loupe
evince
junction
celluloid
mission-center
dconf
glib
libnotify
playerctl
# wdisplays
pwvucontrol
wl-clipboard
# polkit_gnome
# libqalculate
#papirus-icon-theme
# gnomeExtensions.alphabetical-app-grid
# gnomeExtensions.appindicator
# gnomeExtensions.caffeine
# gnomeExtensions.pano
# gnomeExtensions.forge
];
xdg.userDirs = {
enable = true;
createDirectories = true;
templates = "${config.home.homeDirectory}/temps";
publicShare = "${config.home.homeDirectory}/pub";
desktop = "${config.home.homeDirectory}/desktop";
download = "${config.home.homeDirectory}/downloads";
documents = "${config.home.homeDirectory}/docs";
pictures = "${config.home.homeDirectory}/pics";
videos = "${config.home.homeDirectory}/vids";
music = "${config.home.homeDirectory}/music";
};
xdg.mime.enable = true;
xdg.mimeApps = {
enable = true;
defaultApplications = let
file_manager = ["org.gnome.Nautilus.desktop"];
web_browser = ["re.sonny.Junction.desktop"];
# web_browser = ["io.github.zen_browser.zen.desktop"];
image_viewer = ["org.gnome.Loupe.desktop"];
video_player = ["io.github.celluloid_player.Celluloid.desktop"];
pdf_reader = ["org.gnome.Evince.desktop"];
in {
"inode/directory" = file_manager;
"video/x-matroska" = video_player;
"video/mp4" = video_player;
"video/mpeg" = video_player;
"video/x-mpeg" = video_player;
"image/png" = image_viewer;
"image/jpeg" = image_viewer;
"application/pdf" = pdf_reader;
"text/html" = web_browser;
"x-scheme-handler/http" = web_browser;
"x-scheme-handler/https" = web_browser;
"x-scheme-handler/about" = web_browser;
"x-scheme-handler/unknown" = web_browser;
};
};
# gtk.enable = true;
# qt = {
# enable = true;
# platformTheme.name = "gtk3";
# };
dconf.settings = {
"io/github/celluloid-player/celluloid" = {
always-use-floating-controls = true;
always-use-floating-header-bar = true;
csd-enable = true;
};
"org/gnome/desktop/a11y/applications" = {
screen-reader-enabled = false;
};
"org/gnome/desktop/interface" = {
clock-show-seconds = true;
color-scheme = "prefer-dark";
cursor-blink-time = 1200;
enable-animations = true;
gtk-enable-primary-paste = false;
text-scaling-factor = 1.0;
toolbar-style = "text";
};
"org/gnome/desktop/peripherals/mouse" = {
accel-profile = "flat";
};
"org/gnome/desktop/peripherals/touchpad" = {
two-finger-scrolling-enabled = true;
};
"org/gnome/desktop/wm/keybindings" = {
switch-input-source = ["<Super>Escape"];
switch-input-source-backward = ["<Shift><Super>Escape"];
};
"org/gnome/desktop/wm/preferences" = {
auto-raise = true;
button-layout = "icon:close";
};
"org/gnome/mutter" = {
dynamic-workspaces = true;
workspaces-only-on-primary = true;
};
"org/gnome/settings-daemon/plugins/color" = {
enabled-extensions = ["drive-menu@gnome-shell-extensions.gcampax.github.com" "caffeine@patapon.info" "AlphabeticalAppGrid@stuarthayhurst" "appindicatorsupport@rgcjonas.gmail.com" "forge@jmmaranan.com"];
night-light-enabled = false;
night-light-schedule-automatic = false;
};
"org/gnome/software" = {
download-updates = false;
download-updates-notify = false;
first-run = false;
};
"org/gnome/tweaks" = {
show-extensions-notice = false;
};
"org/gtk/gtk4/settings/file-chooser" = {
date-format = "regular";
location-mode = "path-bar";
show-hidden = true;
sidebar-width = 140;
sort-column = "name";
sort-directories-first = true;
sort-order = "ascending";
type-format = "category";
view-type = "list";
};
"org/gtk/settings/file-chooser" = {
date-format = "regular";
location-mode = "path-bar";
show-hidden = true;
show-size-column = true;
show-type-column = true;
sort-column = "name";
sort-directories-first = false;
sort-order = "ascending";
type-format = "category";
};
};
}

View File

@ -1,68 +0,0 @@
# with import <nixpkgs> {}; # bring all of Nixpkgs into scope
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
makeWrapper,
dbus,
libpulseaudio,
notmuch,
openssl,
ethtool,
lm_sensors,
iw,
iproute2,
withICUCalendar ? false,
}:
rustPlatform.buildRustPackage rec {
pname = "i3status-rust";
version = "0.33.2";
src = fetchFromGitHub {
owner = "greshake";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-xJm4MsEU0OVX401WvKllg3zUwgCvjLxlAQzXE/oD1J0=";
};
cargoHash = "sha256-9jbJVnZhFbMYldBkRVSIiorUYDNtF3AAwNEpyNJXpjo=";
nativeBuildInputs = [pkg-config makeWrapper];
buildInputs = [dbus libpulseaudio notmuch openssl lm_sensors];
buildFeatures =
[
"notmuch"
"maildir"
"pulseaudio"
]
++ (lib.optionals withICUCalendar ["icu_calendar"]);
prePatch = ''
substituteInPlace src/util.rs \
--replace "/usr/share/i3status-rust" "$out/share"
'';
postInstall = ''
mkdir -p $out/share
cp -R examples files/* $out/share
'';
postFixup = ''
wrapProgram $out/bin/i3status-rs --prefix PATH : ${lib.makeBinPath [iproute2 ethtool iw]}
'';
# Currently no tests are implemented, so we avoid building the package twice
doCheck = false;
meta = with lib; {
description = "Very resource-friendly and feature-rich replacement for i3status";
homepage = "https://github.com/greshake/i3status-rust";
license = licenses.gpl3Only;
mainProgram = "i3status-rs";
maintainers = with maintainers; [backuitist globin];
platforms = platforms.linux;
};
}

View File

@ -1,308 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = [pkgs.jay];
xdg.portal = {
enable = true;
extraPortals = [pkgs.xdg-desktop-portal-gtk];
config.jay = {
default = ["gtk"];
"org.freedesktop.impl.portal.ScreenCast" = ["jay"];
"org.freedesktop.impl.portal.RemoteDesktop" = ["jay"];
"org.freedesktop.impl.portal.Inhibit" = ["none"];
"org.freedesktop.impl.portal.FileChooser" = ["gtk4"];
};
};
programs.i3status-rust = {
enable = true;
package = pkgs.callPackage ./i3status-rust-0-33-2.nix {};
bars = {
default = {
theme = "plain";
blocks = [
{
alert = 10.0;
block = "disk_space";
info_type = "available";
interval = 60;
path = "/";
warning = 20.0;
}
{
block = "memory";
format = " $icon mem_used_percents ";
format_alt = " $icon $swap_used_percents ";
}
{
block = "cpu";
interval = 1;
}
{
block = "load";
format = " $icon $1m ";
interval = 1;
}
{
block = "sound";
}
{
block = "time";
format = " $timestamp.datetime(f:'%a %d/%m %R') ";
interval = 60;
}
];
};
};
};
programs.i3status = {
enable = true;
enableDefault = true;
general = {
output_format = "i3bar";
interval = 1;
};
};
programs.fuzzel = {
enable = true;
settings = {
main = {
terminal = "${pkgs.wezterm}/bin/wezterm -e";
fields = "filename,name,generic,keywords,categories,exec";
dpi-aware = false;
horizontal-pad = 0;
vertical-pad = 0;
show-actions = true;
match-mode = "fuzzy";
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
};
border = {
width = 3;
radius = 12;
};
};
};
xdg.configFile.jay = {
target = "jay/config.toml";
recursive = true;
source = (pkgs.formats.toml {}).generate "jay-config" {
keymap = ''
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+inet(evdev)" };
};
'';
on-graphics-initialized = [
# {
# type = "exec";
# exec = "mako";
# }
{
type = "exec";
exec = "~/wl-tray-bridge/target/release/wl-tray-bridge";
}
];
outputs = [
{
match.connector = "eDP-1";
scale = 1.2;
}
];
vrr = {
mode = "always";
cursor-hz = 75;
};
repeat-rate = {
rate = 50;
delay = 200;
};
theme = {
bg-color = "#${config.lib.stylix.colors.base00}";
bar-bg-color = "#${config.lib.stylix.colors.base00}";
border-color = "#${config.lib.stylix.colors.base0D}";
separator-color = "#${config.lib.stylix.colors.base01}";
bar-status-text-color = "#${config.lib.stylix.colors.base05}";
focused-title-text-color = "#${config.lib.stylix.colors.base07}";
focused-title-bg-color = "#${config.lib.stylix.colors.base00}";
focused-inactive-title-text-color = "#${config.lib.stylix.colors.base03}";
focused-inactive-title-bg-color = "#${config.lib.stylix.colors.base00}";
unfocused-title-text-color = "#${config.lib.stylix.colors.base03}";
unfocused-title-bg-color = "#${config.lib.stylix.colors.base01}";
attention-requested-bg-color = "#${config.lib.stylix.colors.base09}";
font = "${config.stylix.fonts.sansSerif.name}";
border-width = 2;
title-height = 24;
};
status = {
format = "pango";
exec = ["i3status-rs" "config-default"];
};
window-management-key = "Super_L";
shortcuts = let
left = "n";
down = "e";
up = "u";
right = "i";
in {
"logo-${left}" = "focus-left";
"logo-${down}" = "focus-down";
"logo-${up}" = "focus-up";
"logo-${right}" = "focus-right";
"logo-shift-${left}" = "move-left";
"logo-shift-${down}" = "move-down";
"logo-shift-${up}" = "move-up";
"logo-shift-${right}" = "move-right";
logo-d = "split-horizontal";
logo-v = "split-vertical";
logo-t = "toggle-split";
logo-m = "toggle-mono";
logo-shift-m = "toggle-fullscreen";
logo-f = "focus-parent";
logo-q = "close";
logo-shift-f = "toggle-floating";
alt-Return = {
type = "exec";
exec = "wezterm";
};
logo-space = {
type = "exec";
exec = "fuzzel";
};
logo-ctrl-q = "quit";
logo-shift-r = "reload-config-toml";
ctrl-alt-F1 = {
type = "switch-to-vt";
num = 1;
};
ctrl-alt-F2 = {
type = "switch-to-vt";
num = 2;
};
ctrl-alt-F3 = {
type = "switch-to-vt";
num = 3;
};
ctrl-alt-F4 = {
type = "switch-to-vt";
num = 4;
};
ctrl-alt-F5 = {
type = "switch-to-vt";
num = 5;
};
ctrl-alt-F6 = {
type = "switch-to-vt";
num = 6;
};
ctrl-alt-F7 = {
type = "switch-to-vt";
num = 7;
};
ctrl-alt-F8 = {
type = "switch-to-vt";
num = 8;
};
ctrl-alt-F9 = {
type = "switch-to-vt";
num = 9;
};
ctrl-alt-F10 = {
type = "switch-to-vt";
num = 10;
};
ctrl-alt-F11 = {
type = "switch-to-vt";
num = 11;
};
ctrl-alt-F12 = {
type = "switch-to-vt";
num = 12;
};
logo-1 = {
type = "show-workspace";
name = "1";
};
logo-2 = {
type = "show-workspace";
name = "2";
};
logo-3 = {
type = "show-workspace";
name = "3";
};
logo-4 = {
type = "show-workspace";
name = "4";
};
logo-5 = {
type = "show-workspace";
name = "5";
};
logo-6 = {
type = "show-workspace";
name = "6";
};
logo-7 = {
type = "show-workspace";
name = "7";
};
logo-8 = {
type = "show-workspace";
name = "8";
};
logo-9 = {
type = "show-workspace";
name = "9";
};
logo-0 = {
type = "show-workspace";
name = "10";
};
logo-shift-1 = {
type = "move-to-workspace";
name = "1";
};
logo-shift-2 = {
type = "move-to-workspace";
name = "2";
};
logo-shift-3 = {
type = "move-to-workspace";
name = "3";
};
logo-shift-4 = {
type = "move-to-workspace";
name = "4";
};
logo-shift-5 = {
type = "move-to-workspace";
name = "5";
};
logo-shift-6 = {
type = "move-to-workspace";
name = "6";
};
logo-shift-7 = {
type = "move-to-workspace";
name = "7";
};
logo-shift-8 = {
type = "move-to-workspace";
name = "8";
};
logo-shift-9 = {
type = "move-to-workspace";
name = "9";
};
logo-shift-0 = {
type = "move-to-workspace";
name = "10";
};
};
};
};
}

View File

@ -1,28 +0,0 @@
{
config,
pkgs,
# lib,
...
}: {
#imports = [ ];
stylix.targets.kde.enable = true;
home.packages = with pkgs; [
noto-fonts-emoji
base16-schemes
wl-clipboard-rs
pwvucontrol
adw-gtk3
];
xdg.userDirs = {
enable = true;
createDirectories = true;
templates = "${config.home.homeDirectory}/temps";
publicShare = "${config.home.homeDirectory}/pub";
desktop = "${config.home.homeDirectory}/desktop";
download = "${config.home.homeDirectory}/downloads";
documents = "${config.home.homeDirectory}/docs";
pictures = "${config.home.homeDirectory}/pics";
videos = "${config.home.homeDirectory}/vids";
music = "${config.home.homeDirectory}/music";
};
}

View File

@ -1,28 +0,0 @@
{
config,
pkgs,
lib,
...
}: {
options = {
fuzzel.enable =
lib.mkEnableOption "enable fuzzel launcher";
};
config = lib.mkIf config.fuzzel.enable {
programs.fuzzel = {
enable = true;
settings = {
main = {
terminal = "${pkgs.wezterm}/bin/wezterm -e";
fields = "filename,name,generic,keywords,categories,exec";
match-mode = "fuzzy";
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
};
border = {
width = 3;
radius = 12;
};
};
};
};
}

View File

@ -1,310 +0,0 @@
{
config,
pkgs,
lib,
...
}: {
imports = [
./niri.nix
./wofi.nix
./fuzzel.nix
./waybar.nix
./swaync.nix
./swayidle.nix
./swaylock.nix
./wlsunset.nix
./udiskie.nix
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/solarized-dark.yaml";
polarity = "dark";
cursor = {
package = pkgs.google-cursor;
name = "GoogleDot-Blue";
size = 24;
};
image = ../wallpapers/wallhaven-5g9ed8.png;
opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 12;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "Papirus-Dark";
};
};
fuzzel.enable = true;
waybar.enable = true;
swaync.enable = false;
wlsunset.enable = true;
component.swaylock.enable = true;
swayidle.enable = true;
udiskie.enable = true;
imv.enable = true;
services.gnome-keyring.enable = true;
services.network-manager-applet.enable = true;
services.copyq.enable = true;
services.dunst = {
enable = true;
settings = {
global = {
width = 300;
height = 300;
icon_theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
corner_radius = 12;
corners = "top-right,bottom-left";
offset = "45x5";
origin = "top-right";
timeout = 15;
};
rule-telegram = {
"desktop_entry" = "org.telegram.desktop";
"urgency" = "normal";
};
};
};
home.packages = with pkgs; [
dconf
glib
wbg
swayidle
swaylock-effects
libnotify
wdisplays
pwvucontrol
wl-clipboard-rs
polkit_gnome
xwayland-satellite
papirus-icon-theme
#libsForQt5.qt5ct
#kdePackages.qt6ct
#libsForQt5.qtstyleplugin-kvantum
#kdePackages.qtstyleplugin-kvantum
#adwaita-qt
#adwaita-qt6
];
gtk = {
enable = true;
#iconTheme = {
# name = "Papirus-Dark";
# package = pkgs.papirus-icon-theme;
};
qt = {
enable = true;
platformTheme.name = "gtk3";
};
xdg.mime.enable = true;
xdg.mimeApps = {
enable = true;
defaultApplications = let
file_manager = ["yazi.desktop"];
web_browser = ["io.github.zen_browser.zen.desktop"];
image_viewer = ["imv.desktop"];
video_player = ["io.mpv.Mpv.desktop"];
pdf_reader = ["org.pwmt.zathura-pdf-mupdf.desktop"];
in {
"inode/directory" = file_manager;
"video/x-matroska" = video_player;
"application/pdf" = pdf_reader;
};
};
xdg.userDirs = {
enable = true;
createDirectories = true;
templates = "${config.home.homeDirectory}/temps";
publicShare = "${config.home.homeDirectory}/pub";
desktop = "${config.home.homeDirectory}/desktop";
download = "${config.home.homeDirectory}/downloads";
documents = "${config.home.homeDirectory}/docs";
pictures = "${config.home.homeDirectory}/pics";
videos = "${config.home.homeDirectory}/vids";
music = "${config.home.homeDirectory}/music";
};
xdg.configFile = {
#niri = {
# recursive = true;
# source = dotfiles/niri;
#};
#qt5ct = {
# recursive = true;
# source = dotfiles/qt5ct;
#};
#qt6ct = {
# recursive = true;
# source = dotfiles/qt6ct;
#};
#Kvantum = {
# recursive = true;
# source = dotfiles/Kvantum;
#};
};
systemd.user.settings.Manager.DefaultEnvironment = {
QT_QPA_PLATFORMTHEME = "gtk3";
QT_QPA_PLATFORM = "wayland";
DISPLAY = ":123";
};
systemd.user.targets.tray = {
# workaround for udiskie
Unit = {
Description = "Home Manager System Tray";
};
};
systemd.user.services = {
udiskie = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
};
waybar = {
# Unit = {
# Description = "Swaync notification daemon";
# };
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
# Service = {
# Type = "dbus";
# ExecStart = "${pkgs.swaynotificationcenter}/bin/swaync";
# Restart = "on-failure";
# RestartSec = 1;
# TimeoutStopSec = 10;
# };
};
copyq = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
Service = {
Environment = lib.mkForce "QT_QPA_PLATFORM=wayland";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
wbg = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.wbg}/bin/wbg ${config.stylix.image}";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
network-manager-applet = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
};
gnome-polkit-agent = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
wlsunset = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
};
swayidle = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
};
xwayland-satellite = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["niri.service"];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.xwayland-satellite}/bin/xwayland-satellite :123";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
};
}

View File

@ -1,33 +0,0 @@
{
pkgs,
config,
lib,
...
}: {
options = {
swayidle.enable =
lib.mkEnableOption "enable swayidle";
};
config = lib.mkIf config.swayidle.enable {
services.swayidle = {
enable = true;
systemdTarget = "graphical-session.target";
timeouts = [
{
timeout = 300;
command = "${pkgs.swaylock-effects}/bin/swaylock -fF";
}
{
timeout = 600;
command = "${pkgs.niri}/bin/niri msg action power-off-monitors";
}
];
events = [
{
event = "before-sleep";
command = "${pkgs.swaylock-effects}/bin/swaylock -fF";
}
];
};
};
}

View File

@ -1,30 +0,0 @@
{
pkgs,
config,
lib,
...
}: {
options = {
component.swaylock.enable =
lib.mkEnableOption "enable swaylock";
};
config = lib.mkIf config.component.swaylock.enable {
programs.swaylock = {
enable = true;
package = pkgs.swaylock-effects;
settings = {
font = "${config.stylix.fonts.serif.name}";
font-size = 25;
indicator-radius = 100;
indicator-thickness = 20;
indicator-idle-visible = true;
# -effect section
screenshots = true;
clock = true;
effect-pixelate = 60;
effect-vignette = "0.5:0.5";
};
};
};
}

View File

@ -1,18 +0,0 @@
{
config,
lib,
...
}: {
options = {
udiskie.enable =
lib.mkEnableOption "enable udiskie";
};
config = lib.mkIf config.udiskie.enable {
services.udiskie = {
enable = true;
automount = false;
notify = true;
tray = "auto";
};
};
}

View File

@ -1,418 +0,0 @@
{
config,
lib,
pkgs,
...
}: {
options = {
waybar.enable =
lib.mkEnableOption "enable waybar";
};
config = lib.mkIf config.waybar.enable {
stylix.targets.waybar.enable = false;
programs.waybar = {
enable = true;
#package = pkgs.waybar-0.11.0";
systemd = {
enable = true;
target = "graphical-session.target";
};
settings = {
bar-0 = {
layer = "top";
position = "top";
height = 40;
spacing = 4;
margin-left = 48;
margin-right = 48;
margin-top = 4;
reload_style_on_change = true;
modules-left = [
#"custom/notification"
"group/niri"
"wlr/taskbar"
];
modules-center = ["clock" "privacy"];
modules-right = [
"tray"
"wireplumber"
"group/laptop"
"idle_inhibitor"
];
"niri/workspaces" = {
format = "{icon}";
format-icons = {
focused = "󰗝";
active = "󰻃";
default = "󰄰";
};
};
"niri/language" = {
format = "{}";
format-en = "🇺🇸";
format-uk = "🇺🇦";
};
"custom/separator" = {
format = "|";
interval = "once";
tooltip = false;
};
"custom/text" = {
format = "here will be workspaces";
interval = "once";
tooltip = false;
};
"group/niri" = {
orientation = "inherit";
modules = [
"niri/language"
"niri/workspaces"
];
};
"group/laptop" = {
orientation = "inherit";
drawer = {
transition-duration = 500;
children-class = "laptop";
transition-left-to-right = false;
};
modules = [
"battery"
"custom/kbd-backlight"
"custom/separator"
"backlight"
"custom/separator"
];
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "󰈈";
deactivated = "󰈉";
};
};
"tray" = {
icon-size = 24;
spacing = 3;
};
"clock" = {
interval = 1;
format = "{:%H:%M:%S}";
tooltip-format = "{:%d.%m.%Y}";
};
"backlight" = {
device = "intel_backlight";
format = "{percent}% {icon}";
format-icons = ["󰃞" "󰃟" "󰃝" "󰃠"];
on-scroll-up = "light -A 2%";
on-scroll-down = "light -U 2%";
};
"custom/kbd-backlight" = {
exec = "cat /sys/class/leds/platform::kbd_backlight/brightness";
interval = 1;
format = "{}% {icon}";
format-icons = ["󰌌"];
on-scroll-up = "light -s sysfs/leds/platform::kbd_backlight -A 5%";
on-scroll-down = "light -s sysfs/leds/platform::kbd_backlight -U 5%";
};
battery = {
states = {
good = 95;
warning = 30;
critical = 15;
};
format = "{capacity}% {icon}";
format-full = "{capacity}% 󱟢";
format-charging = "{capacity}% 󰂄";
format-plugged = "{capacity}% 󰚥";
format-alt = "{icon} {time}";
format-icons = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
};
"upower" = {
icon-size = 16;
format = "{percentage}";
hide-if-empty = true;
tooltip = true;
tooltip-spacing = 20;
};
"power-profiles-daemon" = {
format = "{icon}";
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
tooltip = true;
format-icons = {
default = "󱡮";
performance = "󱡮";
balanced = "";
power-saver = "";
};
};
"wireplumber" = {
scroll-step = 3;
format = "{volume}% {icon}";
format-muted = "󰖁";
format-icons = ["󰕿" "󰖀" "󰕾"];
on-click = "pwvucontrol";
on-click-right = "wpctl set-mute @DEFAULT_SINK@ toggle";
};
"custom/notification" = {
tooltip = false;
format = "{icon}";
format-icons = {
notification = "";
none = "";
dnd-notification = "";
dnd-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
};
"privacy" = {
# icon-spacing = 4;
icon-size = 16;
transition-duration = 250;
screenshare = {
type = "screenshare";
tooltip = true;
tooltip-icon-size = 24;
};
audio-in = {
type = "audio-in";
tooltip = true;
tooltip-icon-size = 24;
};
};
"wlr/taskbar" = {
format = "{icon}";
icon-size = 24;
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
tooltip-format = "{title}";
on-click = "activate";
};
};
};
style = ''
@define-color base00 #${config.lib.stylix.colors.base00};
@define-color base01 #${config.lib.stylix.colors.base01};
@define-color base02 #${config.lib.stylix.colors.base02};
@define-color base03 #${config.lib.stylix.colors.base03};
@define-color base04 #${config.lib.stylix.colors.base04};
@define-color base05 #${config.lib.stylix.colors.base05};
@define-color base06 #${config.lib.stylix.colors.base06};
@define-color base07 #${config.lib.stylix.colors.base07};
@define-color base08 #${config.lib.stylix.colors.base08};
@define-color base09 #${config.lib.stylix.colors.base09};
@define-color base0A #${config.lib.stylix.colors.base0A};
@define-color base0B #${config.lib.stylix.colors.base0B};
@define-color base0C #${config.lib.stylix.colors.base0C};
@define-color base0D #${config.lib.stylix.colors.base0D};
@define-color base0E #${config.lib.stylix.colors.base0E};
@define-color base0F #${config.lib.stylix.colors.base0F};
* {
font-family: Iosevka Nerd Font Propo, FontAwesome;
font-size: 100%;
/* margin: 0px 2px 2px 2px; */
}
window#waybar {
background-color: transparent;
/* border-top: 3px solid @overlay0; */
color: @base05;
/* padding: 0px 2px 0px 0px; */
transition-property: background-color;
transition-duration: 0.5s;
}
.modules-left {
border-radius: 12px;
margin-right: 4px;
}
.modules-center {
border-radius: 12px;
}
.modules-right {
border-radius: 12px;
margin-left: 4px;
}
tooltip {
background: @base01;
border: 1px solid @base0E;
}
tooltip label {
color: @base05;
}
/* .modules-center {
margin: 4px;
margin-top: 6px;
}*/
button {
box-shadow: inset 0 -3px transparent;
border-radius: 12px;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
box-shadow: inset 0 -3px transparent;
}
#mode {
background-color: rgba(0, 0, 0, 0.2);
box-shadow: inset 0 -3px @base05;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#custom-kbd-backlight,
#workspaces,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#laptop,
#tray,
#mode,
#privacy
#privacy-item,
#idle_inhibitor,
#backlight-slider,
#custom-notification,
#scratchpad,
#power-profiles-daemon,
#taskbar,
#language,
#upower,
#mpris,
#mpd {
padding: 0 0.8em;
border-radius: 12px;
color: @base05;
background-color: @base00;
}
/* #upower, */
#battery,
#backlight,
#custom-kbd-backlight,
#backlight-slider,
#cpu,
#memory,
#disk,
#network,
#wireplumber,
#power-profiles-daemon {
padding-right: 0.8em;
}
#language {
padding-right: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
#workspaces {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
#taskbar,
#workspaces {
padding: 0 0.5em;
}
#taskbar button,
#workspaces button {
padding: 0 0.3em;
}
#taskbar button:hover {
box-shadow: transparent;
}
#taskbar.empty,
window#empty {
background-color: transparent;
}
#battery.critical:not(.charging) {
background-color: #ed8796;
color: #181926;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
#power-profiles-daemon.performance {
background-color: #ed8796;
color: #000000;
}
#power-profiles-daemon.balanced {
background-color: #b7bdf8;
color: #000000;
}
#power-profiles-daemon.power-saver {
background-color: #8aadf4;
color: #000000;
}
label:focus {
background-color: #000000;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
#idle_inhibitor {
padding: 0 0.9em;
}
#idle_inhibitor:hover {
box-shadow: inset 0 -3px @base05;
}
#idle_inhibitor.activated {
background-color: @base05;
color: @base00;
}
#idle_inhibitor.activated:hover {
box-shadow: inset 0 -3px @base00;
}
#laptop,
#privacy {
padding: 0em;
}
#privacy-item.screenshare {
background-color: @base00;
color: @base0C;
}
#privacy-item.audio-in {
background-color: @base00;
color: @base0E;
}
#privacy-item.audio-out {
background-color: @base;
}
'';
};
};
}

View File

@ -1,22 +0,0 @@
{
config,
lib,
...
}: {
options = {
wlsunset.enable =
lib.mkEnableOption "enable wlsunset";
};
config = lib.mkIf config.wlsunset.enable {
services.wlsunset = {
enable = true;
latitude = "49.6";
longitude = "36.1";
temperature = {
day = 6500;
night = 3000;
};
systemdTarget = "graphical-session.target";
};
};
}

View File

@ -1,10 +0,0 @@
{lib, ...}: {
programs.waybar.settings.bar-0."custom/kbd-backlight" = lib.mkDefault {
exec = "cat /sys/class/leds/chromeos::kbd_backlight/brightness";
interval = 1;
format = "{}% {icon}";
format-icons = ["󰌌"];
on-scroll-up = "light -s sysfs/leds/chromeos::kbd_backlight -A 5%";
on-scroll-down = "light -s sysfs/leds/chromeos::kbd_backlight -U 5%";
};
}

View File

@ -1,28 +0,0 @@
{
config,
pkgs,
lib,
...
}: {
options = {
fuzzel.enable =
lib.mkEnableOption "enable fuzzel launcher";
};
config = lib.mkIf config.fuzzel.enable {
programs.fuzzel = {
enable = true;
settings = {
main = {
terminal = "${pkgs.wezterm}/bin/wezterm -e";
fields = "filename,name,generic,keywords,categories,exec";
match-mode = "fuzzy";
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
};
border = {
width = 4;
radius = 12;
};
};
};
};
}

View File

@ -1,104 +0,0 @@
{
pkgs,
config,
lib,
...
}: {
options = {
component.hyprlock.enable =
lib.mkEnableOption "enable hyprlock";
};
config = lib.mkIf config.component.hyprlock.enable {
programs.hyprlock = {
enable = true;
settings = {
general = {
disable_loading_bar = true;
#grace = 300;
hide_cursor = true;
no_fade_in = false;
};
background = [
{
path = "screenshot";
blur_passes = 3;
blur_size = 8;
}
];
input-field = [
{
size = "274, 50";
rounding = 12;
outline_thickness = 4;
position = "0, -30";
monitor = "";
dots_center = true;
fade_on_empty = false;
font_family = "${config.stylix.fonts.serif.name}";
font_color = "rgb(${config.lib.stylix.colors.base05})";
inner_color = "rgb(${config.lib.stylix.colors.base00})";
outer_color = "rgb(${config.lib.stylix.colors.base0D})";
check_color = "rgb(${config.lib.stylix.colors.base0A})";
fail_color = "rgb(${config.lib.stylix.colors.base08})";
placeholder_text = "locked...";
fail_text = "wrong";
#placeholder_text = '\'<span foreground="##cad3f5">Password...</span>'\';
shadow_passes = 0;
}
];
shape = [
{
rounding = 12;
#border_size = 3;
size = "150, 50";
color = "rgb(${config.lib.stylix.colors.base00})";
border_color = "rgb(${config.lib.stylix.colors.base0D})";
position = "-62, 30";
halign = "center";
valign = "center";
}
{
rounding = 12;
#border_size = 3;
size = "120, 50";
color = "rgb(${config.lib.stylix.colors.base00})";
border_color = "rgb(${config.lib.stylix.colors.base0D})";
position = "77, 28";
halign = "center";
valign = "center";
}
];
label = [
{
monitor = "";
text = "$LAYOUT"; #"cmd[update:1000] ${pkgs.uutils-coreutils-noprefix}/bin/echo $(${pkgs.uutils-coreutils-noprefix}/bin/date +%H:%M:%S)";
#text = "$TIME
text_align = "center";
font_size = 16;
font_family = "${config.stylix.fonts.serif.name}";
outer_color = "rgb(${config.lib.stylix.colors.base00})";
color = "rgb(${config.lib.stylix.colors.base05})";
position = "-62, 28";
halign = "center";
valign = "center";
}
{
monitor = "";
text = "cmd[update:1000] ${pkgs.uutils-coreutils-noprefix}/bin/echo $(${pkgs.uutils-coreutils-noprefix}/bin/date +%H:%M:%S)";
#text = "$TIME
text_align = "center";
font_size = 16;
font_family = "${config.stylix.fonts.serif.name}";
outer_color = "rgb(${config.lib.stylix.colors.base00})";
color = "rgb(${config.lib.stylix.colors.base05})";
position = "77, 28";
halign = "center";
valign = "center";
}
];
};
};
};
}

View File

@ -1,917 +0,0 @@
{
config,
pkgs,
lib,
...
}: {
imports = [../theming/gruvbox.nix];
wayland.windowManager.hyprland.enable = true;
wayland.windowManager.hyprland.plugins = ["${pkgs.hyprlandPlugins.hyprscroller}/lib/libhyprscroller.so"];
wayland.windowManager.hyprland.settings = {
input = {
kb_layout = "us,ua";
repeat_rate = 50;
repeat_delay = 300;
# mouse
accel_profile = "flat";
sensitivity = 0;
};
device = [
{
name = "at-translated-set-2-keyboard";
kb_variant = "colemak_dh,";
}
{
name = "keyd-virtual-keyboard";
kb_variant = "colemak_dh,";
}
];
monitor = [
", preferred, auto, 1"
"eDP-1, preferred, auto, 1.2"
];
env = [
"QT_QPA_PLATFORM,wayland"
"QT_QPA_PLATFORMTHEME,gtk3"
];
decoration = {
# shadow_offset = "0 5";
# "col.shadow" = "rgba(00000099)";
rounding = 12;
};
bezier = [
"easeOutQuad, 0.25, 0.46, 0.45, 0.94"
"easeOutExpo, 0.19, 1, 0.22, 1"
];
animation = [
"workspaces, 1, 3, easeOutExpo, slidefade 20%"
"windows, 1, 3, easeOutExpo, popin 80%"
"layers, 1, 2, easeOutExpo, fade"
];
"$mod" = "SUPER";
"$modShift" = "$mod SHIFT";
"$modCtrl" = "$mod CTRL";
"$modShiftCtrl" = "$mod SHIFT CTRL";
"$left" = "N";
"$down" = "E";
"$up" = "I";
"$right" = "O";
"$terminal" = "kitty";
"$screenLocker" = "hyprlock";
"$webBrowser" = "io.github.zen_browser.zen";
"$clipboardManager" = "copyq menu";
general = {
gaps_in = 4;
gaps_out = 4;
border_size = 4;
allow_tearing = true;
layout = "scroller";
};
bind = [
"$mod, Return, exec, $terminal"
"$mod, Space, exec, fuzzel"
"$mod, Escape, exec, hyprctl switchxkblayout all next"
"$mod, M, scroller:fitsize, active"
"$mod, K, scroller:cyclesize"
"$modCtrl, H, killactive"
"$modCtrl, M, fullscreen"
"$modCtrl, L, exec, $screenLocker"
"$modCtrl, B, exec, $webBrowser"
"$modCtrl, V, exec, $clipboardManager"
", Print, exec, grimblast --freeze copy area" #${xdg.userDirs.pictures}/screenshots/"
"CTRL, Print, exec, grimblast --freeze copy active" #${xdg.userDirs.pictures}/screenshots/"
"SHIFT, Print, exec, grimblast --freeze copy output" #${xdg.userDirs.pictures}/screenshots/"
# navigation
#"$modCtrl, N,"
"$mod, $left, scroller:movefocus, l"
"$mod, $down, scroller:movefocus, d"
"$mod, $up, scroller:movefocus, u"
"$mod, $right, scroller:movefocus, r"
"$modshift, $left, workspace, e-1"
"$modshift, $right, workspace, e+1"
"$mod, left, scroller:movefocus, l"
"$mod, up, scroller:movefocus, u"
"$mod, down, scroller:movefocus, d"
"$mod, right, scroller:movefocus, r"
"$modShift, left, workspace, e-1"
"$modShift, right, workspace, e+1"
"$modCtrl, $left, scroller:movewindow, l"
"$modCtrl, $down, scroller:movewindow, d"
"$modCtrl, $up, scroller:movewindow, u"
"$modCtrl, $right, scroller:movewindow, r"
"$modCtrl, left, scroller:movewindow, l"
"$modCtrl, up, scroller:movewindow, u"
"$modCtrl, down, scroller:movewindow, d"
"$modCtrl, right, scroller:movewindow, r"
# workspaces
"$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, 7, workspace, 7"
"$mod, 8, workspace, 8"
"$mod, 9, workspace, 9"
"$mod, 0, workspace, 10"
"$modShiftCtrl, 1, movetoworkspace, 1"
"$modShiftCtrl, 2, movetoworkspace, 2"
"$modShiftCtrl, 3, movetoworkspace, 3"
"$modShiftCtrl, 4, movetoworkspace, 4"
"$modShiftCtrl, 5, movetoworkspace, 5"
"$modShiftCtrl, 6, movetoworkspace, 6"
"$modShiftCtrl, 7, movetoworkspace, 7"
"$modShiftCtrl, 8, movetoworkspace, 8"
"$modShiftCtrl, 9, movetoworkspace, 9"
"$modShiftCtrl, 0, movetoworkspace, 10"
"$modShiftCtrl, $left, movetoworkspace, e-1"
"$modShiftCtrl, $right, movetoworkspace, e+1"
"$modShiftCtrl, left, movetoworkspace, e-1"
"$modShiftCtrl, right, movetoworkspace, e+1"
];
binde = [
"$mod, comma, resizeactive, -10 0"
"$mod, period, resizeactive, 10 0"
"$modShift, comma, resizeactive, 0 -10"
"$modShift, period, resizeactive, 0 10"
];
bindl = [
", switch:on:Lid Switch, exec, hyprctl keyword monitor 'eDP-1, disable'"
", switch:off:Lid Switch, exec, hyprctl keyword monitor 'eDP-1, auto, preferred, 1.2'"
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioPrev, exec, playerctl previous"
", XF86AudioNext, exec, playerctl next"
"$modCtrl, Escape, exit"
];
bindm = [
# mouse movements
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
"$mod ALT, mouse:272, resizewindow"
];
gestures = {
workspace_swipe = true;
workspace_swipe_fingers = 3;
workspace_swipe_distance = 500;
};
windowrulev2 = [
"float, class:(com.github.hluk.copyq)"
"float, class:(com.mojang.minecraft.java-edition)"
"immediate, class:(com.mojang.minecraft.java-edition)"
];
};
services.hyprpaper = {
enable = true;
};
services.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "hyprlock";
};
listener = [
{
timeout = 600;
on-timeout = "hyprlock";
}
{
timeout = 601;
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
];
};
};
services.playerctld.enable = true;
services.gnome-keyring = {
enable = true;
components = ["secrets" "ssh"];
};
services.ssh-agent.enable = true;
programs.keychain = {
enable = true;
keys = ["gitea-local"];
enableNushellIntegration = true;
extraFlags = [
"--quiet"
"--noask"
];
};
services.network-manager-applet.enable = true;
services.copyq.enable = true;
stylix.targets.waybar.enable = false;
programs.waybar = {
enable = true;
#package = pkgs.waybar-0.11.0";
systemd = {
enable = true;
target = "graphical-session.target";
};
settings = {
bar-0 = {
layer = "top";
position = "top";
height = 40;
spacing = 4;
margin-left = 8;
margin-right = 8;
margin-top = 4;
reload_style_on_change = true;
modules-left = [
#"custom/notification"
"group/hypr"
"wlr/taskbar"
];
modules-center = ["clock" "privacy"];
modules-right = [
"tray"
"wireplumber"
"group/laptop"
"idle_inhibitor"
];
"hyprland/workspaces" = {
format = "{id}";
format-icons = {
focused = "󰗝";
active = "󰻃";
default = "󰄰";
};
};
"hyprland/language" = {
format = "{}";
format-en = "🇺🇸";
format-uk = "🇺🇦";
};
"custom/separator" = {
format = "|";
interval = "once";
tooltip = false;
};
"custom/text" = {
format = "here will be workspaces";
interval = "once";
tooltip = false;
};
"group/hypr" = {
orientation = "inherit";
modules = [
"hyprland/language"
"hyprland/workspaces"
];
};
"group/laptop" = {
orientation = "inherit";
drawer = {
transition-duration = 500;
children-class = "laptop";
transition-left-to-right = false;
};
modules = [
"battery"
"power-profiles-daemon"
"custom/separator"
"custom/kbd-backlight"
"custom/separator"
"backlight"
"custom/separator"
];
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "󰈈";
deactivated = "󰈉";
};
};
"tray" = {
icon-size = 24;
spacing = 3;
};
"clock" = {
interval = 1;
format = "{:%H:%M:%S}";
tooltip-format = "{:%d.%m.%Y}";
};
"backlight" = {
device = "intel_backlight";
format = "{percent}% {icon}";
format-icons = ["󰃞" "󰃟" "󰃝" "󰃠"];
on-scroll-up = "light -A 2%";
on-scroll-down = "light -U 2%";
};
"custom/kbd-backlight" = {
exec = "cat /sys/class/leds/platform::kbd_backlight/brightness";
interval = 1;
format = "{}% {icon}";
format-icons = ["󰌌"];
on-scroll-up = "light -s sysfs/leds/platform::kbd_backlight -A 5%";
on-scroll-down = "light -s sysfs/leds/platform::kbd_backlight -U 5%";
};
battery = {
states = {
good = 95;
warning = 30;
critical = 15;
};
format = "{capacity}% {icon}";
format-full = "{capacity}% 󱟢";
format-charging = "{capacity}% 󰂄";
format-plugged = "{capacity}% 󰚥";
format-alt = "{icon} {time}";
format-icons = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
};
"upower" = {
icon-size = 16;
format = "{percentage}";
hide-if-empty = true;
tooltip = true;
tooltip-spacing = 20;
};
"power-profiles-daemon" = {
format = "{icon}";
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
tooltip = true;
format-icons = {
default = "󱡮";
performance = "󱡮";
balanced = "";
power-saver = "";
};
};
"wireplumber" = {
scroll-step = 3;
format = "{volume}% {icon}";
format-muted = "󰖁";
format-icons = ["󰕿" "󰖀" "󰕾"];
on-click = "pwvucontrol";
on-click-right = "wpctl set-mute @DEFAULT_SINK@ toggle";
};
"custom/notification" = {
tooltip = false;
format = "{icon}";
format-icons = {
notification = "";
none = "";
dnd-notification = "";
dnd-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
};
"privacy" = {
# icon-spacing = 4;
icon-size = 16;
transition-duration = 250;
screenshare = {
type = "screenshare";
tooltip = true;
tooltip-icon-size = 24;
};
audio-in = {
type = "audio-in";
tooltip = true;
tooltip-icon-size = 24;
};
};
"wlr/taskbar" = {
format = "{icon}";
icon-size = 24;
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
tooltip-format = "{title}";
on-click = "activate";
};
};
};
style = ''
@define-color base00 #${config.lib.stylix.colors.base00};
@define-color base01 #${config.lib.stylix.colors.base01};
@define-color base02 #${config.lib.stylix.colors.base02};
@define-color base03 #${config.lib.stylix.colors.base03};
@define-color base04 #${config.lib.stylix.colors.base04};
@define-color base05 #${config.lib.stylix.colors.base05};
@define-color base06 #${config.lib.stylix.colors.base06};
@define-color base07 #${config.lib.stylix.colors.base07};
@define-color base08 #${config.lib.stylix.colors.base08};
@define-color base09 #${config.lib.stylix.colors.base09};
@define-color base0A #${config.lib.stylix.colors.base0A};
@define-color base0B #${config.lib.stylix.colors.base0B};
@define-color base0C #${config.lib.stylix.colors.base0C};
@define-color base0D #${config.lib.stylix.colors.base0D};
@define-color base0E #${config.lib.stylix.colors.base0E};
@define-color base0F #${config.lib.stylix.colors.base0F};
* {
font-family: Iosevka Nerd Font Propo, FontAwesome;
font-size: 100%;
/* margin: 0px 2px 2px 2px; */
}
window#waybar {
background-color: transparent;
/* border-top: 3px solid @overlay0; */
color: @base05;
/* padding: 0px 2px 0px 0px; */
transition-property: background-color;
transition-duration: 0.5s;
}
.modules-left {
border-radius: 12px;
margin-right: 4px;
}
.modules-center {
border-radius: 12px;
}
.modules-right {
border-radius: 12px;
margin-left: 4px;
}
tooltip {
background: @base01;
border: 1px solid @base0E;
}
tooltip label {
color: @base05;
}
/* .modules-center {
margin: 4px;
margin-top: 6px;
}*/
button {
box-shadow: inset 0 -3px transparent;
border-radius: 12px;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
box-shadow: inset 0 -3px transparent;
}
#mode {
background-color: rgba(0, 0, 0, 0.2);
box-shadow: inset 0 -3px @base05;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#custom-kbd-backlight,
#workspaces,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#laptop,
#tray,
#mode,
#privacy
#privacy-item,
#idle_inhibitor,
#backlight-slider,
#custom-notification,
#scratchpad,
#power-profiles-daemon,
#taskbar,
#language,
#upower,
#mpris,
#mpd {
padding: 0 0.8em;
border-radius: 12px;
color: @base05;
background-color: @base00;
}
/* #upower, */
#battery,
#backlight,
#custom-kbd-backlight,
#backlight-slider,
#cpu,
#memory,
#disk,
#network,
#wireplumber,
#power-profiles-daemon {
padding-right: 0.8em;
}
#language {
padding-right: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
#workspaces {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
#taskbar,
#workspaces {
padding: 0 0.5em;
}
#taskbar button,
#workspaces button {
padding: 0 0.2em;
}
#workspaces button.active {
color: @base0D;
}
#taskbar button:hover {
box-shadow: transparent;
}
#taskbar.empty,
window#empty {
background-color: transparent;
}
#battery.critical:not(.charging) {
background-color: @base09;
color: @base00;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
#power-profiles-daemon.performance {
background-color: @base00;
color: #000000;
}
#power-profiles-daemon.balanced {
background-color: @base00;
color: @base0E;
}
#power-profiles-daemon.power-saver {
background-color: @base00;
color: @base08;
}
label:focus {
background-color: #000000;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
#idle_inhibitor {
padding: 0 0.9em;
}
#idle_inhibitor:hover {
box-shadow: inset 0 -3px @base05;
}
#idle_inhibitor.activated {
background-color: @base05;
color: @base00;
}
#idle_inhibitor.activated:hover {
box-shadow: inset 0 -3px @base00;
}
#laptop,
#privacy {
padding: 0em;
}
#privacy-item.screenshare {
background-color: @base00;
color: @base0C;
}
#privacy-item.audio-in {
background-color: @base00;
color: @base0E;
}
#privacy-item.audio-out {
background-color: @base;
}
'';
};
programs.fuzzel = {
enable = true;
settings = {
main = {
terminal = "${pkgs.wezterm}/bin/wezterm -e";
fields = "filename,name,generic,keywords,categories,exec";
match-mode = "fuzzy";
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
};
border = {
width = 4;
radius = 12;
};
};
};
services.dunst = {
enable = true;
settings = {
global = {
width = 300;
height = 300;
icon_theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
corner_radius = 12;
#corners = "top-right,bottom-left";
offset = "12x12";
origin = "top-right";
timeout = 15;
frame_width = 4;
notification_limit = 5;
};
rule-telegram = {
"desktop_entry" = "org.telegram.desktop";
"urgency" = "normal";
};
};
};
programs.hyprlock = {
enable = true;
settings = {
general = {
disable_loading_bar = true;
#grace = 300;
hide_cursor = true;
no_fade_in = false;
};
background = [
{
path = "screenshot";
blur_passes = 3;
blur_size = 8;
}
];
input-field = [
{
size = "274, 50";
rounding = 12;
outline_thickness = 4;
position = "0, -30";
monitor = "";
dots_center = true;
fade_on_empty = false;
font_family = "${config.stylix.fonts.serif.name}";
font_color = "rgb(${config.lib.stylix.colors.base05})";
inner_color = "rgb(${config.lib.stylix.colors.base00})";
outer_color = "rgb(${config.lib.stylix.colors.base0D})";
check_color = "rgb(${config.lib.stylix.colors.base0A})";
fail_color = "rgb(${config.lib.stylix.colors.base08})";
placeholder_text = "locked...";
fail_text = "wrong";
#placeholder_text = '\'<span foreground="##cad3f5">Password...</span>'\';
shadow_passes = 0;
}
];
shape = [
{
rounding = 12;
#border_size = 3;
size = "150, 50";
color = "rgb(${config.lib.stylix.colors.base00})";
border_color = "rgb(${config.lib.stylix.colors.base0D})";
position = "-62, 30";
halign = "center";
valign = "center";
}
{
rounding = 12;
#border_size = 3;
size = "120, 50";
color = "rgb(${config.lib.stylix.colors.base00})";
border_color = "rgb(${config.lib.stylix.colors.base0D})";
position = "77, 28";
halign = "center";
valign = "center";
}
];
label = [
{
monitor = "";
text = "$LAYOUT"; #"cmd[update:1000] ${pkgs.uutils-coreutils-noprefix}/bin/echo $(${pkgs.uutils-coreutils-noprefix}/bin/date +%H:%M:%S)";
#text = "$TIME
text_align = "center";
font_size = 16;
font_family = "${config.stylix.fonts.serif.name}";
outer_color = "rgb(${config.lib.stylix.colors.base00})";
color = "rgb(${config.lib.stylix.colors.base05})";
position = "-62, 28";
halign = "center";
valign = "center";
}
{
monitor = "";
text = "cmd[update:1000] ${pkgs.uutils-coreutils-noprefix}/bin/echo $(${pkgs.uutils-coreutils-noprefix}/bin/date +%H:%M:%S)";
#text = "$TIME
text_align = "center";
font_size = 16;
font_family = "${config.stylix.fonts.serif.name}";
outer_color = "rgb(${config.lib.stylix.colors.base00})";
color = "rgb(${config.lib.stylix.colors.base05})";
position = "77, 28";
halign = "center";
valign = "center";
}
];
};
};
services.wlsunset = {
enable = true;
latitude = "49.6";
longitude = "36.1";
temperature = {
day = 6500;
night = 3000;
};
systemdTarget = "graphical-session.target";
};
services.udiskie = {
enable = true;
automount = false;
notify = true;
tray = "auto";
};
home.packages = with pkgs; [
dconf
glib
grimblast
grim
slurp
libnotify
playerctl
wdisplays
pwvucontrol
wl-clipboard-rs
polkit_gnome
papirus-icon-theme
];
gtk = {
enable = true;
#iconTheme = {
# name = "Papirus-Dark";
# package = pkgs.papirus-icon-theme;
};
qt = {
enable = true;
platformTheme.name = "gtk3";
};
xdg.mime.enable = true;
xdg.mimeApps = {
enable = true;
defaultApplications = let
file_manager = ["yazi.desktop"];
web_browser = ["io.github.zen_browser.zen.desktop"];
image_viewer = ["imv.desktop"];
video_player = ["io.mpv.Mpv.desktop"];
pdf_reader = ["org.pwmt.zathura-pdf-mupdf.desktop"];
in {
"inode/directory" = file_manager;
"video/x-matroska" = video_player;
"application/pdf" = pdf_reader;
};
};
xdg.userDirs = {
enable = true;
createDirectories = true;
templates = "${config.home.homeDirectory}/temps";
publicShare = "${config.home.homeDirectory}/pub";
desktop = "${config.home.homeDirectory}/desktop";
download = "${config.home.homeDirectory}/downloads";
documents = "${config.home.homeDirectory}/docs";
pictures = "${config.home.homeDirectory}/pics";
videos = "${config.home.homeDirectory}/vids";
music = "${config.home.homeDirectory}/music";
};
systemd.user.settings.Manager.DefaultEnvironment = {
QT_QPA_PLATFORMTHEME = "gtk3";
QT_QPA_PLATFORM = "wayland";
#DISPLAY = ":123";
};
systemd.user.targets.tray = {
# workaround for udiskie
Unit = {
Description = "Home Manager System Tray";
};
};
systemd.user.services = {
udiskie = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["hyprland.service"];
};
};
waybar = {
# Unit = {
# Description = "Swaync notification daemon";
# };
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["hyprland.service"];
};
};
copyq = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["hyprland.service"];
};
Service = {
Environment = lib.mkForce "QT_QPA_PLATFORM=wayland";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
network-manager-applet = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["hyprland.service"];
};
};
gnome-polkit-agent = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["hyprland.service"];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
wlsunset = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["hyprland.service"];
};
};
};
}

View File

@ -1,922 +0,0 @@
{
config,
pkgs,
# pkgs-51b85c,
lib,
...
}: {
# imports = [./walker.nix];
stylix.targets.sway.enable = true;
wayland.windowManager.sway = {
enable = true;
systemd.enable = true;
# xwayland.enable = false;
wrapperFeatures.gtk = true;
config = let
modifier = "Mod4";
terminal = "wezterm";
launcher = "fuzzel";
clipboard = "copyq toggle";
left = "n";
down = "e";
up = "u";
right = "i";
in {
bars = [
{
command = "${pkgs.waybar}/bin/waybar";
}
];
modifier = "${modifier}";
terminal = "${terminal}";
menu = "${launcher}";
left = "${left}";
down = "${down}";
up = "${up}";
right = "${right}";
workspaceLayout = "tabbed";
input = {
"*" = {
xkb_layout = "us,ua";
repeat_delay = "200";
repeat_rate = "50";
accel_profile = "flat";
};
"type:touchpad" = {
tap = "enabled";
scroll_method = "two_finger";
};
};
output = {
"Samsung Electric Company S24R65x H4TMA03291" = {
mode = "1920x1080@74.973Hz";
pos = "0 0";
adaptive_sync = "on";
allow_tearing = "yes";
max_render_time = "off";
};
"AOC 27V2G5 0x0000026C" = {
pos = "1920 0";
};
};
keybindings = lib.mkForce {
"${modifier}+Ctrl+q" = "kill";
"${modifier}+Ctrl+Escape" = "exit";
"${modifier}+Ctrl+r" = "reload";
"${modifier}+Ctrl+${left}" = "move left";
"${modifier}+Ctrl+${down}" = "move down";
"${modifier}+Ctrl+${up}" = "move up";
"${modifier}+Ctrl+${right}" = "move right";
"${modifier}+Ctrl+left" = "move left";
"${modifier}+Ctrl+down" = "move down";
"${modifier}+Ctrl+up" = "move up";
"${modifier}+Ctrl+right" = "move right";
"${modifier}+Ctrl+1" = "move window workspace 1";
"${modifier}+Ctrl+2" = "move window workspace 2";
"${modifier}+Ctrl+3" = "move window workspace 3";
"${modifier}+Ctrl+4" = "move window workspace 4";
"${modifier}+Ctrl+5" = "move window workspace 5";
"${modifier}+Ctrl+6" = "move window workspace 6";
"${modifier}+Ctrl+7" = "move window workspace 7";
"${modifier}+Ctrl+8" = "move window workspace 8";
"${modifier}+Ctrl+9" = "move window workspace 9";
"${modifier}+Ctrl+0" = "move window workspace 10";
"${modifier}+Ctrl+l" = "move window workspace prev";
"${modifier}+Ctrl+y" = "move window workspace next";
"${modifier}+Shift+${left}" = "focus output left";
"${modifier}+Shift+${down}" = "focus output down";
"${modifier}+Shift+${up}" = "focus output up";
"${modifier}+Shift+${right}" = "focus output right";
"${modifier}+Shift+left" = "focus output left";
"${modifier}+Shift+down" = "focus output down";
"${modifier}+Shift+up" = "focus output up";
"${modifier}+Shift+right" = "focus output right";
"${modifier}+Return" = "exec ${terminal}";
"${modifier}+Shift+v" = "exec ${clipboard}";
"${modifier}+Space" = "exec ${launcher}";
"${modifier}+c" = "splith";
"${modifier}+d" = "splitv";
"${modifier}+s" = "layout toggle split";
"${modifier}+t" = "layout tabbed";
"${modifier}+h" = "focus mode_toggle";
"${modifier}+f" = "floating toggle";
"${modifier}+m" = "fullscreen toggle";
"${modifier}+g" = "sticky toggle";
"${modifier}+b" = "bar mode toggle";
"--locked ${modifier}+Escape" = "exec swaymsg input \"*\" xkb_switch_layout next";
"Print" = ''exec ${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp -o -r -c '#ff0000ff')" -t ppm - | ${pkgs.satty}/bin/satty --filename - --fullscreen --output-filename ~/pics/screenshots/satty-$(date '+%Y%m%d-%H:%M:%S').png'';
"${modifier}+1" = "workspace 1";
"${modifier}+2" = "workspace 2";
"${modifier}+3" = "workspace 3";
"${modifier}+4" = "workspace 4";
"${modifier}+5" = "workspace 5";
"${modifier}+6" = "workspace 6";
"${modifier}+7" = "workspace 7";
"${modifier}+8" = "workspace 8";
"${modifier}+9" = "workspace 9";
"${modifier}+0" = "workspace 10";
"${modifier}+l" = "workspace prev";
"${modifier}+y" = "workspace next";
"${modifier}+${left}" = "focus left";
"${modifier}+${down}" = "focus down";
"${modifier}+${up}" = "focus up";
"${modifier}+${right}" = "focus right";
"${modifier}+left" = "focus left";
"${modifier}+down" = "focus down";
"${modifier}+up" = "focus up";
"${modifier}+right" = "focus right";
};
window = {
border = 1;
# hideEdgeBorders = "smart";
};
gaps = {
# top = 6;
# bottom = 6;
# left = 6;
# right = 6;
outer = 6;
inner = 3;
};
floating.criteria = [
{
app_id = "com.github.hluk.copyq";
}
{
app_id = "com.saivert.pwvucontrol";
}
];
};
};
programs.swaylock.enable = true;
services.swayidle = {
enable = true;
systemdTarget = "sway-session.target";
timeouts = [
{
timeout = 300;
command = "${pkgs.swaylock}/bin/swaylock -fF";
}
{
timeout = 301;
command = "${pkgs.sway}/bin/swaymsg \"output * dpms off\"";
resumeCommand = "${pkgs.sway}/bin/swaymsg \"output * dpms on\"";
}
];
events = [
{
event = "lock";
command = "${pkgs.swaylock}/bin/swaylock -fF &&";
}
{
event = "unlock";
command = "${pkgs.procps}/bin/pkill -SIGUSR1 swaylock";
}
{
event = "lock";
command = "${pkgs.swaylock}/bin/swaylock -fF & ${pkgs.playerctl}/bin/playerctl pause";
}
];
};
services.playerctld.enable = true;
services.gnome-keyring = {
enable = true;
components = ["secrets" "ssh"];
};
services.ssh-agent.enable = true;
programs.keychain = {
enable = true;
keys = ["id_ed25519"];
enableNushellIntegration = true;
extraFlags = [
"--quiet"
"--noask"
];
};
services = {
network-manager-applet.enable = true;
blueman-applet.enable = true;
copyq.enable = true;
};
qt = {
enable = true;
platformTheme.name = "gtk3";
#style.name = "gtk2";
};
stylix.targets.waybar.enable = false;
programs.waybar = {
enable = true;
#package = pkgs.waybar-0.11.0";
# systemd = {
# enable = true;
# target = "graphical-session.target";
# };
settings = {
bar-0 = {
ipc = true;
id = "bar-0";
layer = "top";
position = "bottom";
height = 32;
spacing = 6;
# margin-top = 8;
margin-left = 8;
margin-right = 8;
margin-bottom = 8;
reload_style_on_change = true;
modules-left = [
#"custom/notification"
"group/sway"
"wlr/taskbar"
];
modules-center = ["clock"];
modules-right = [
"privacy"
"tray"
"wireplumber"
# "group/laptop"
"idle_inhibitor"
];
"sway/workspaces" = {
format = "{icon}";
format-icons = {
"1" = "I";
"2" = "II";
"3" = "III";
"4" = "IV";
"5" = "V";
"6" = "VI";
"7" = "VII";
"8" = "IIX";
"9" = "IX";
"10" = "X";
#focused = "󰗝";
#active = "󰻃";
#default = "󰄰";
};
};
"sway/language" = {
format = "{flag}";
tooltip-format = "{long}";
on-click = "swaymsg input type:keyboard xkb_switch_layout next";
};
"group/sway" = {
orientation = "inherit";
modules = [
"sway/language"
"sway/workspaces"
];
};
"group/laptop" = {
orientation = "inherit";
drawer = {
transition-duration = 500;
children-class = "laptop";
transition-left-to-right = false;
};
modules = [
"battery"
"power-profiles-daemon"
"custom/separator"
"custom/kbd-backlight"
"custom/separator"
"custom/backlight"
"custom/separator"
];
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "󰈈";
deactivated = "󰈉";
};
};
"tray" = {
icon-size = 24;
spacing = 3;
};
"clock" = {
interval = 1;
format = "{:%H:%M:%S}";
tooltip-format = "{:%d.%m.%Y}";
};
# "custom/backlight" = {
# format = "{}% {icon}";
# interval = 1;
# format-icons = ["󰃠"];
# };
# "custom/kbd-backlight" = {
# exec = "brightnessctl s 5%+";
# interval = 1;
# format = "{}% {icon}";
# format-icons = ["󰌌"];
# on-scroll-up = "~/.local/bin/keyboard-brightness.nu increase";
# on-scroll-down = "~/.local/bin/keyboard-brightness.nu decrease";
# };
# battery = {
# states = {
# good = 95;
# warning = 30;
# critical = 15;
# };
# format = "{capacity}% {icon}";
# format-full = "{capacity}% 󱟢";
# format-charging = "{capacity}% 󰂄";
# format-plugged = "{capacity}% 󰚥";
# format-alt = "{icon} {time}";
# format-icons = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
# };
"upower" = {
icon-size = 16;
format = "{percentage}";
hide-if-empty = true;
tooltip = true;
tooltip-spacing = 20;
};
# "power-profiles-daemon" = {
# format = "{icon}";
# tooltip-format = "Power profile: {profile}\nDriver: {driver}";
# tooltip = true;
# format-icons = {
# default = "󱡮";
# performance = "󱡮";
# balanced = "";
# power-saver = "";
# };
# };
"wireplumber" = {
scroll-step = 3;
format = "{volume}% {icon}";
format-muted = "󰖁";
format-icons = ["󰕿" "󰖀" "󰕾"];
on-click = "${pkgs.pwvucontrol}/bin/pwvucontrol";
on-click-right = "wpctl set-mute @DEFAULT_SINK@ toggle";
};
"custom/notification" = {
tooltip = false;
format = "{icon}";
format-icons = {
notification = "";
none = "";
dnd-notification = "";
dnd-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
};
"privacy" = {
# icon-spacing = 4;
icon-size = 16;
transition-duration = 250;
screenshare = {
type = "screenshare";
tooltip = true;
tooltip-icon-size = 24;
};
audio-in = {
type = "audio-in";
tooltip = true;
tooltip-icon-size = 24;
};
};
"wlr/taskbar" = {
format = "{icon}";
icon-size = 24;
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
tooltip-format = "{title}";
on-click = "activate";
};
};
};
style = ''
@define-color base00 #${config.lib.stylix.colors.base00};
@define-color base01 #${config.lib.stylix.colors.base01};
@define-color base02 #${config.lib.stylix.colors.base02};
@define-color base03 #${config.lib.stylix.colors.base03};
@define-color base04 #${config.lib.stylix.colors.base04};
@define-color base05 #${config.lib.stylix.colors.base05};
@define-color base06 #${config.lib.stylix.colors.base06};
@define-color base07 #${config.lib.stylix.colors.base07};
@define-color base08 #${config.lib.stylix.colors.base08};
@define-color base09 #${config.lib.stylix.colors.base09};
@define-color base0A #${config.lib.stylix.colors.base0A};
@define-color base0B #${config.lib.stylix.colors.base0B};
@define-color base0C #${config.lib.stylix.colors.base0C};
@define-color base0D #${config.lib.stylix.colors.base0D};
@define-color base0E #${config.lib.stylix.colors.base0E};
@define-color base0F #${config.lib.stylix.colors.base0F};
* {
font-family: ${config.stylix.fonts.sansSerif.name}, FontAwesome;
font-weight: 500;
font-size: 100%;
/* margin: 0px 2px 2px 2px; */
}
window#waybar {
background-color: @base00;
border: 1px solid @base0D;
/* border-top: 3px solid @overlay0; */
color: @base05;
/* padding: 0px 2px 0px 0px; */
transition-property: background-color;
transition-duration: 0.5s;
}
.modules-left,
.modules-center,
.modules-right {
padding: 1px;
margin-left: 4px;
margin-right: 4px;
}
tooltip {
background: @base01;
border: 1px solid @base0E;
}
tooltip label {
color: @base05;
}
button {
box-shadow: inset 0 -3px transparent;
border-radius: 12px;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
box-shadow: inset 0 -3px transparent;
}
#mode {
background-color: rgba(0, 0, 0, 0.2);
box-shadow: inset 0 -3px @base05;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#custom-backlight,
#custom-kbd-backlight,
#workspaces,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#laptop,
#tray,
#mode,
#privacy
#privacy-item,
#idle_inhibitor,
#backlight-slider,
#custom-notification,
#scratchpad,
#power-profiles-daemon,
#taskbar,
#language,
#upower,
#mpris,
#mpd {
padding: 0 0.5em;
color: @base05;
background-color: @base00;
}
/* #upower,
#battery,
#backlight,
#custom-kbd-backlight,
#backlight-slider,
#cpu,
#memory,
#disk,
#network,
#wireplumber,
#power-profiles-daemon {
padding-right: 0.5em;
} */
#taskbar button,
#workspaces button {
padding: 0 0.2em;
}
#workspaces button.focused,
#workspaces button.active {
color: @base0D;
}
#taskbar button:hover {
box-shadow: transparent;
}
#taskbar.empty,
window#empty {
background-color: transparent;
}
#battery.critical:not(.charging) {
background-color: @base09;
color: @base00;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
#power-profiles-daemon.performance {
background-color: @base00;
color: @base0D;
}
#power-profiles-daemon.balanced {
background-color: @base00;
color: @base0B;
}
#power-profiles-daemon.power-saver {
background-color: @base00;
color: @base0A;
}
label:focus {
background-color: #000000;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: @base08;
}
#idle_inhibitor:hover {
box-shadow: inset 0 -3px @base05;
}
#idle_inhibitor.activated {
background-color: @base05;
color: @base00;
}
#idle_inhibitor.activated:hover {
box-shadow: inset 0 -3px @base00;
}
#laptop,
#privacy {
padding: 0em;
}
#privacy-item.screenshare {
background-color: @base00;
color: @base0C;
}
#privacy-item.audio-in {
background-color: @base00;
color: @base0E;
}
#privacy-item.audio-out {
background-color: @base;
}
'';
};
programs.rofi = {
enable = true;
theme = {
window = {
height = 360;
border = 3;
};
inputbar = {
children = ["prompt" "entry"];
border-radius = 5;
padding = 2;
};
prompt = {
padding = 6;
border-radius = 3;
margin = "20px 0px 0px 20px";
};
textbox-prompt-colon = {
expand = false;
str = "~>";
};
entry = {
padding = 6;
margin = "20px 0px 0px 10px";
};
listview = {
border = "0px 0px 0px";
padding = "6px 0px 0px";
margin = "10px 0px 0px 20px";
columns = 2;
lines = 5;
};
element = {
padding = 5;
};
element-icon = {
size = 25;
};
mode-switcher = {
spacing = 0;
};
button = {
padding = 10;
vertical-align = "0.5";
horizontal-align = "0.5";
};
message = {
margin = 2;
padding = 2;
border-radius = 5;
};
textbox = {
padding = 6;
margin = "20 0 0 20";
};
};
extraConfig = {
show-icons = true;
modi = "run,drun,window";
kb-primary-paste = "Control+V,Shift+Insert";
kb-secondary-paste = "Control+v,Insert";
};
};
programs.fuzzel = {
enable = true;
settings = {
main = {
terminal = "wezterm -e";
fields = "filename,name,generic,keywords,categories,exec";
dpi-aware = false;
horizontal-pad = 8;
show-actions = true;
match-mode = "fuzzy";
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
};
border = {
width = 2;
radius = 4;
};
};
};
services.dunst = {
enable = true;
settings = {
global = {
width = 300;
height = 300;
icon_theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
corner_radius = 4;
#corners = "top-right,bottom-left";
offset = "16x16";
origin = "bottom-right";
timeout = 15;
frame_width = 2;
notification_limit = 5;
};
rule-telegram = {
"desktop_entry" = "org.telegram.desktop";
"urgency" = "normal";
};
};
};
services.wlsunset = {
enable = true;
latitude = "49.6";
longitude = "36.1";
temperature = {
day = 6500;
night = 3000;
};
systemdTarget = "graphical-session.target";
};
services.udiskie = {
enable = true;
automount = false;
notify = true;
tray = "auto";
};
# services.flameshot = {
# enable = true;
# settings = {
# General = {
# buttons = "@Variant(000x7f000vQList<int>0000x130000000x1000x2000x3000x4000x5000x6000x12000xf000x13000b000 000x10000000v000x17000xe000f000x11)";
# filenamePattern = "screenshot-%F_%H-%M-%S";
# saveAsFileExtension = "png";
# savePath = "/home/user/pics/screenshots";
# uiColor = "#${config.lib.stylix.colors.base0D}";
# showStartupLaunchMessage = false;
# showDesktopNotification = false;
# showHelp = false;
# };
# };
# };
home.packages = with pkgs; [
nautilus
helvum
loupe
evince
celluloid
mission-center
dconf
glib
libnotify
playerctl
wdisplays
pwvucontrol
wl-clipboard-rs
polkit_gnome
libqalculate
#papirus-icon-theme
];
xdg.userDirs = {
enable = true;
createDirectories = true;
templates = "${config.home.homeDirectory}/temps";
publicShare = "${config.home.homeDirectory}/pub";
desktop = "${config.home.homeDirectory}/desktop";
download = "${config.home.homeDirectory}/downloads";
documents = "${config.home.homeDirectory}/docs";
pictures = "${config.home.homeDirectory}/pics";
videos = "${config.home.homeDirectory}/vids";
music = "${config.home.homeDirectory}/music";
};
xdg.mime.enable = true;
xdg.mimeApps = {
enable = true;
defaultApplications = let
file_manager = ["org.gnome.Nautilus.desktop"];
web_browser = ["io.github.zen_browser.zen.desktop"];
image_viewer = ["org.gnome.Loupe.desktop"];
video_player = ["io.github.celluloid_player.Celluloid.desktop"];
pdf_reader = ["org.gnome.Evince.desktop"];
in {
"inode/directory" = file_manager;
"video/x-matroska" = video_player;
"video/mp4" = video_player;
"video/mpeg" = video_player;
"video/x-mpeg" = video_player;
"image/png" = image_viewer;
"image/jpeg" = image_viewer;
"application/pdf" = pdf_reader;
"text/html" = web_browser;
};
};
systemd.user.settings.Manager.DefaultEnvironment = {
#DISPLAY = ":123";
};
systemd.user.targets.tray = {
# workaround for udiskie
Unit = {
Description = "Home Manager System Tray";
};
};
systemd.user.services = {
udiskie = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["sway-session.target"];
};
};
# waybar = {
# Unit = {
# Description = "Swaync notification daemon";
# # };
# Unit = {
# PartOf = ["graphical-session.target"];
# After = ["graphical-session.target"];
# Requisite = ["graphical-session.target"];
# };
# Install = {
# WantedBy = ["sway-session.target"];
# };
# };
copyq = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["sway-session.target"];
};
Service = {
Environment = lib.mkForce "QT_QPA_PLATFORM=wayland";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
network-manager-applet = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["sway-session.target"];
};
};
gnome-polkit-agent = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["sway-session.target"];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
# walker = {
# Unit = {
# PartOf = ["graphical-session.target"];
# After = ["graphical-session.target"];
# Requisite = ["graphical-session.target"];
# };
# Install = {
# WantedBy = ["sway-session.target"];
# };
# Service = {
# Type = "simple";
# ExecStart = "${pkgs.walker}/bin/walker --gapplication-service";
# Restart = "on-failure";
# RestartSec = 1;
# TimeoutStopSec = 10;
# };
# };
wlsunset = {
Unit = {
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
Requisite = ["graphical-session.target"];
};
Install = {
WantedBy = ["sway-session.target"];
};
};
# xwayland-satellite = {
# Unit = {
# PartOf = ["graphical-session.target"];
# After = ["graphical-session.target"];
# Requisite = ["graphical-session.target"];
# };
# Install = {
# WantedBy = ["niri.service"];
# };
# Service = {
# Type = "simple";
# ExecStart = "${pkgs.xwayland-satellite}/bin/xwayland-satellite :123";
# Restart = "on-failure";
# RestartSec = 1;
# TimeoutStopSec = 10;
# };
# };
};
}

View File

@ -1,75 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [
#papirus-icon-theme
(nerdfonts.override {fonts = ["Iosevka"];})
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/atelier-estuary.yaml";
polarity = "dark";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Tinted";
size = 32;
};
image = ../wallpapers/wallhaven-ne3v2r.jpg;
#opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
};
qt = {
enable = true;
platformTheme.name = "gtk3";
#style.name = "gtk2";
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -1,75 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [
#papirus-icon-theme
(nerdfonts.override {fonts = ["Iosevka"];})
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/atelier-sulphurpool-light.yaml";
polarity = "light";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Tinted";
size = 32;
};
image = ../wallpapers/wallhaven-m37gy8.jpg;
opacity.terminal = 0.9;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Light";
package = pkgs.papirus-icon-theme;
};
};
qt = {
enable = true;
platformTheme.name = "gtk3";
#style.name = "gtk2";
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -1,75 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [
#papirus-icon-theme
nerd-fonts.iosevka
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/atelier-sulphurpool.yaml";
polarity = "dark";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Ghost";
size = 32;
};
image = ../wallpapers/wallhaven-7p3vy9.jpg;
opacity.terminal = 0.9;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
};
qt = {
enable = true;
platformTheme.name = "gtk3";
#style.name = "gtk2";
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -1,76 +0,0 @@
{
config,
pkgs,
...
}: {
environment.systemPackages = with pkgs; [
#papirus-icon-theme
nerd-fonts.iosevka
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/ayu-dark.yaml";
polarity = "dark";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Ghost";
size = 32;
};
image = ../wallpapers/wallhaven-exj8pw.jpg;
# imageScalingMode = "center";
opacity.terminal = 0.9;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# aotic base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
# gtk = {
# enable = true;
# iconTheme = {
# name = "Papirus-Dark";
# package = pkgs.papirus-icon-theme;
# };
# };
# qt = {
# enable = true;
# platformTheme.name = "gtk3";
#style.name = "gtk2";
# };
# dconf.settings = {
# "org/gnome/desktop/interface" = {
# icon-theme = "${config.gtk.iconTheme.name}";
# };
# };
}

View File

@ -1,76 +0,0 @@
{
config,
pkgs,
...
}: {
environment.systemPackages = with pkgs; [
#papirus-icon-theme
nerd-fonts.iosevka
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/ayu-mirage.yaml";
polarity = "dark";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Ghost";
size = 32;
};
image = ../wallpapers/wallhaven-wexo3x.jpg;
# imageScalingMode = "center";
opacity.terminal = 0.9;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# aotic base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
# gtk = {
# enable = true;
# iconTheme = {
# name = "Papirus-Dark";
# package = pkgs.papirus-icon-theme;
# };
# };
# qt = {
# enable = true;
# platformTheme.name = "gtk3";
#style.name = "gtk2";
# };
# dconf.settings = {
# "org/gnome/desktop/interface" = {
# icon-theme = "${config.gtk.iconTheme.name}";
# };
# };
}

View File

@ -1,78 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [
#papirus-icon-theme
(nerdfonts.override {fonts = ["FantasqueSansMono"];})
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-macchiato.yaml";
polarity = "dark";
cursor = {
package = pkgs.catppuccin-cursors.macchiatoBlue;
name = "catppuccin-macchiato-blue-cursors";
size = 24;
};
image = ../wallpapers/wallhaven-2ke6lg.jpg;
#opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Propo";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.catppuccin-papirus-folders.override {
flavor = "macchiato";
accent = "blue";
};
};
};
qt = {
enable = true;
platformTheme.name = "gtk3";
#style.name = "gtk2";
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -1,70 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [
#papirus-icon-theme
(nerdfonts.override {fonts = ["Iosevka"];})
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/dracula.yaml";
polarity = "dark";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Ghost";
size = 32;
};
image = ../wallpapers/wallhaven-47m35e.png;
opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -1,71 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs; [
gruvbox-plus-icons
(nerdfonts.override {fonts = ["FantasqueSansMono" "Ubuntu" "UbuntuSans"];})
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-material-dark-medium.yaml";
polarity = "dark";
cursor = {
package = pkgs.capitaine-cursors-themed;
name = "Capitaine Cursors (Gruvbox)";
size = 24;
};
image = ../wallpapers/wallhaven-qze297.jpg;
opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Propo";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Gruvbox-Plus-Dark";
package = pkgs.gruvbox-plus-icons;
};
};
qt = {
enable = true;
platformTheme.name = "gtk3";
#style.name = "gtk2";
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "Gruvbox-Plus-Dark";
};
};
}

View File

@ -1,75 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [
papirus-icon-theme
(nerdfonts.override {fonts = ["FantasqueSansMono"];})
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/heetch.yaml";
polarity = "dark";
cursor = {
package = pkgs.google-cursor;
name = "GoogleDot-Red";
size = 24;
};
image = ../wallpapers/wallhaven-9mdqgd.jpg;
opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Propo";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
};
qt = {
enable = true;
platformTheme.name = "gtk3";
#style.name = "gtk2";
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -1,55 +0,0 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
#papirus-icon-theme
nerd-fonts.iosevka
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/heetch.yaml";
polarity = "dark";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Ghost";
size = 32;
};
image = ../../../../../../wallpapers/wallhaven-o5p5ql.jpg;
# image = null;
# imageScalingMode = "center";
opacity.terminal = 0.9;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
base08 = "e33400";
base09 = "e39400";
base0A = "f2ce00";
base0B = "5ccc96";
base0C = "00a3cc";
base0D = "7a5ccc";
base0E = "b3a1e6";
base0F = "ce6f8f";
};
}

View File

@ -1,76 +0,0 @@
{
# config,
pkgs,
...
}: {
environment.systemPackages = with pkgs; [
#papirus-icon-theme
nerd-fonts.iosevka
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/outrun-dark.yaml";
polarity = "dark";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Ghost";
size = 32;
};
image = ../wallpapers/wallhaven-o5p5ql.jpg;
# imageScalingMode = "center";
opacity.terminal = 0.9;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
# stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# aotic base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
# };
# gtk = {
# enable = true;
# iconTheme = {
# name = "Papirus-Dark";
# package = pkgs.papirus-icon-theme;
# };
# };
# qt = {
# enable = true;
# platformTheme.name = "gtk3";
#style.name = "gtk2";
# };
# dconf.settings = {
# "org/gnome/desktop/interface" = {
# icon-theme = "${config.gtk.iconTheme.name}";
# };
# };
}

View File

@ -1,74 +0,0 @@
{
config,
pkgs,
...
}: {
fonts.fontconfig.enable = true;
home.packages = with pkgs; [
#papirus-icon-theme
nerd-fonts.iosevka
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine-moon.yaml";
polarity = "dark";
cursor = {
# package = pkgs.bibata-cursors-translucent;
package = pkgs.rose-pine-cursor;
name = "BreezeX-RosePineDawn-Linux";
size = 32;
};
image = ../wallpapers/wallhaven-47m35e.png;
opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 13;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
# name = "Papirus-Dark";
# package = pkgs.papirus-icon-theme;
name = "rose-pine-moon";
package = pkgs.rose-pine-icon-theme;
};
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -1,70 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [
#papirus-icon-theme
(nerdfonts.override {fonts = ["Iosevka"];})
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/selenized-black.yaml";
polarity = "dark";
cursor = {
package = pkgs.bibata-cursors-translucent;
name = "Bibata_Ghost";
size = 32;
};
image = ../wallpapers/wallhaven-vml6j5.png;
opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Propo";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
name = "Iosevka Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -1,78 +0,0 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [
#papirus-icon-theme
(nerdfonts.override {fonts = ["FantasqueSansMono"];})
];
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-macchiato.yaml";
polarity = "dark";
cursor = {
package = pkgs.catppuccin-cursors.macchiatoBlue;
name = "catppuccin-macchiato-blue-cursors";
size = 24;
};
image = ../wallpapers/wallhaven-2ke6lg.jpg;
#opacity.terminal = 0.8;
fonts = {
sizes = {
applications = 13;
desktop = 14;
popups = 13;
terminal = 15;
};
serif = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Propo";
};
sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Propo";
};
monospace = {
package = pkgs.nerdfonts.override {fonts = ["FantasqueSansMono"];};
name = "FantasqueSansM Nerd Font Mono";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
};
stylix.override = {
# base08 = "dc322f";
# base09 = "cb4b16";
# base0A = "b58900";
# base0D = "859900";
# base0C = "2aa198";
# base0B = "268bd2";
# base0E = "6c71c4";
# base0F = "d33682";
#base0B = "008dd1";
#base0D = "7f8b00";
};
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.catppuccin-papirus-folders.override {
flavor = "macchiato";
accent = "blue";
};
};
};
qt = {
enable = true;
platformTheme.name = "gtk3";
#style.name = "gtk2";
};
dconf.settings = {
"org/gnome/desktop/interface" = {
icon-theme = "${config.gtk.iconTheme.name}";
};
};
}

View File

@ -4,6 +4,7 @@
nixvim.homeManagerModules.nixvim
walker.homeManagerModules.default
self.homeModules.desktop
self.homeModules.programs
./programs.nix
];
home = {

View File

@ -1,6 +1,4 @@
{pkgs, ...}: {
imports = [./programs/main.nix];
shell = {
nushell.enable = true;
oh-my-posh.enable = true;

View File

@ -1,23 +0,0 @@
{
# config,
pkgs,
...
}: {
home.packages = with pkgs; [
git
ripgrep
trashy
fd
dust
procs
eza
tree
speedtest-rs
zip
unzip
execline
fastfetch
alejandra
uutils-coreutils-noprefix
];
}

View File

@ -1,88 +0,0 @@
{
pkgs,
config,
lib,
...
}:
with lib; let
cfg = config.console.yazi;
in {
options = {
console.yazi.enable =
mkEnableOption "enable yazi file manager";
};
config = mkIf cfg.enable {
programs.yazi = {
enable = true;
enableNushellIntegration = true;
settings = {
opener = {
open = [
{
run = "xdg-open \"$@\"";
orphan = true;
desc = "Open";
}
];
edit = [
{
run = "$EDITOR \"$@\"";
block = true;
desc = "Edit";
}
];
dragdrop = [
{
run = "${pkgs.ripdrag}/bin/ripdrag \"$@\"";
desc = "Drag'n'drop";
orphan = true;
for = "unix";
}
];
};
open.rules = [
{
mime = "text/*";
use = ["edit" "open" "dragdrop"];
}
{
name = "*.toml";
use = ["edit" "open" "dragdrop"];
}
{
name = "*.c";
use = ["edit" "open" "dragdrop"];
}
{
name = "*.cpp";
use = ["edit" "open" "dragdrop"];
}
{
name = "*.rs";
use = ["edit" "open" "dragdrop"];
}
{
name = "*.py";
use = ["edit" "open" "dragdrop"];
}
{
name = "*.json";
use = ["edit" "open" "dragdrop"];
}
{
name = "*";
use = ["open" "edit" "dragdrop"];
}
];
};
keymap = {
manager.append_keymap = [
{
on = ["<C-n>"];
run = ''shell '${pkgs.ripdrag}/bin/ripdrag -x "$@"' --confirm'';
}
];
};
};
};
}

View File

@ -1,122 +0,0 @@
{
pkgs,
config,
lib,
...
}:
with lib; let
cfg = config.editor.helix;
in {
options = {
editor.helix.enable =
mkEnableOption "enable helix editor";
};
config = mkIf cfg.enable {
programs.helix = {
enable = true;
defaultEditor = true;
settings = {
editor = {
line-number = "relative";
bufferline = "multiple";
cursorline = true;
lsp.display-messages = true;
cursor-shape = {
insert = "bar";
normal = "block";
select = "underline";
};
statusline = {
left = ["mode" "spinner" "version-control"];
center = ["file-name"];
right = ["diagnostics" "selections" "position" "file-encoding" "file-line-ending" "file-type"];
separator = "|";
};
soft-wrap = {
enable = true;
max-wrap = 25;
max-indent-retain = 0;
wrap-indicator = "";
};
};
keys.normal = {
space = {
space = "file_picker";
w = ":w";
q = ":q";
x = ":x";
n = ":n";
"," = "goto_previous_buffer";
"." = "goto_next_buffer";
l = ":reflow";
};
esc = ["collapse_selection" "keep_primary_selection"];
};
};
languages = {
language-server = {
clangd = {
command = "${pkgs.clang-tools}/bin/clangd";
};
rust-analyzer = {
command = "${pkgs.rust-analyzer}/bin/rust-analyzer";
};
texlab = {
command = "${pkgs.texlab}/bin/texlab";
};
nil = {
command = "${pkgs.nil}/bin/nil";
};
markdown-oxide = {
command = "${pkgs.markdown-oxide}/bin/markdown-oxide";
};
tinymist = {
command = lib.getExe pkgs.tinymist;
};
};
language = [
{
name = "nix";
auto-format = true;
formatter.command = "${pkgs.alejandra}/bin/alejandra";
language-servers = ["nil"];
}
{
name = "latex";
auto-format = true;
formatter.command = "${pkgs.texlivePackages.latexindent}/bin/latexindent";
language-servers = ["texlab"];
}
{
name = "typst";
auto-format = true;
formatter.command = lib.getExe pkgs.typstyle;
language-servers = ["tinymist"];
}
{
name = "markdown";
auto-format = true;
formatter.command = "${pkgs.comrak}/bin/comrak";
language-servers = ["markdown-oxide"];
}
{
name = "c";
auto-format = true;
formatter.command = "${pkgs.clang-tools}/bin/clang-format";
}
{
name = "cpp";
auto-format = true;
formatter.command = "${pkgs.clang-tools}/bin/clang-format";
}
{
name = "rust";
auto-format = true;
language-servers = ["rust-analyzer"];
formatter.command = "${pkgs.rustfmt}/bin/rustfmt";
}
];
};
};
};
}

View File

@ -1,8 +0,0 @@
{
imports = [
./helix.nix
./zed.nix
./neve.nix
#./nixvim.nix
];
}

View File

@ -1,28 +0,0 @@
{
pkgs,
lib,
inputs,
config,
...
}:
with lib; let
cfg = config.editor.neve;
in {
options = {
editor.neve.enable =
mkEnableOption "enable neve neovim distribution";
};
config = mkIf cfg.enable {
home.packages = with pkgs; [
neovide
cpplint
statix
];
programs.nixvim = {
enable = true;
imports = [inputs.neve.nixvimModule];
viAlias = true;
vimAlias = true;
};
};
}

View File

@ -1,270 +0,0 @@
{
pkgs,
pkgs-51b85c,
lib,
config,
...
}: {
options = {
editor.neovim.enable =
lib.mkEnableOption "enable neovim text editor";
};
config = lib.mkIf config.editors.neovim.enable {
# stylix.targets.nixvim.enable = true;
home.packages = with pkgs; [neovide];
programs.nixvim = {
enable = true;
enableMan = true;
# package = ;
plugins.lualine.enable = true;
plugins.treesitter = {
enable = true;
folding = true;
};
plugins = {
yazi.enable = true;
noice = {
enable = true;
popupmenu.backend = "nui";
};
notify.enable = true;
telescope.enable = true;
transparent.enable = true;
lsp-format.enable = true;
lsp-lines.enable = true;
lsp-status.enable = true;
which-key.enable = true;
web-devicons.enable = true;
# vimtex = {
# enable = true;
# texlivePackage = pkgs.tectonic; #pkgs.texlive.combined.scheme-full;
# settings = {
# compiler_method = "tectonic";
# view_method = "zathura_simple";
# compiler_tectonic = {
# "aux_dir" = {};
# "out_dir" = {};
# "callback" = 1;
# "continuous" = 0;
# "executable" = "latexmk";
# "hooks" = {};
# "options" = [
# "--synctex"
# "--keep-logs"
# "-Z shell-escape"
# "-Z continue-on-errors"
# ];
# };
# compiler_latexmk = {
# "aux_dir" = {};
# "out_dir" = {};
# "callback" = 1;
# "continuous" = 0;
# "executable" = "latexmk";
# "hooks" = {};
# "options" = [
# "-xelatex"
# "-recorder"
# "-file-line-error"
# "-synctex=1"
# "-interaction=nonstopmode"
# "-shell-escape"
# ];
# };
# };
# };
treesitter-textobjects.enable = true;
cmp-latex-symbols.enable = true;
dap.enable = true;
rustaceanvim.enable = true;
lsp = {
enable = true;
servers = {
clangd.enable = true;
#rust_analyzer = {
# enable = true;
# installRustc = true;
# installCargo = true;
#};
lua_ls.enable = true;
nil_ls.enable = true;
};
};
};
plugins = {
cmp-nvim-lsp = {enable = true;}; # lsp
cmp-buffer = {enable = true;};
cmp-path = {enable = true;}; # file system paths
cmp_luasnip = {enable = true;}; # snippets
cmp-cmdline = {enable = true;}; # autocomplete for cmdline
cmp = {
enable = true;
autoEnableSources = true;
settings = {
sources = [
{name = "nvim_lsp";}
{name = "path";}
{name = "buffer";}
];
mapping = {
"<C-Space>" = "cmp.mapping.complete()";
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
"<C-e>" = "cmp.mapping.close()";
"<C-f>" = "cmp.mapping.scroll_docs(4)";
"<CR>" = "cmp.mapping.confirm({ select = true })";
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
};
experimental = {
ghost_text = true;
};
};
};
luasnip = {
enable = true;
settings = {
enable_autosnippets = true;
store_selection_keys = "<Tab>";
};
};
};
clipboard = {
providers.wl-copy.enable = true;
};
globals.mapleader = " ";
globals.maplocalleader = ",";
opts = {
# Show line numbers
number = true;
# Show relative line numbers
relativenumber = true;
# Use the system clipboard
clipboard = "unnamedplus";
# Number of spaces that represent a <TAB>
tabstop = 2;
softtabstop = 2;
# Show tabline always
showtabline = 2;
# Use spaces instead of tabs
expandtab = true;
# Enable smart indentation
smartindent = true;
# Number of spaces to use for each step of (auto)indent
shiftwidth = 2;
# Enable break indent
breakindent = true;
# Highlight the screen line of the cursor
cursorline = true;
# Minimum number of screen lines to keep above and below the cursor
scrolloff = 8;
# Enable mouse support
mouse = "a";
# Set folding method to manual
foldmethod = "manual";
# Disable folding by default
foldenable = false;
# Wrap long lines at a character in 'breakat'
linebreak = true;
# Disable spell checking
spell = false;
# Disable swap file creation
swapfile = false;
# Time in milliseconds to wait for a mapped sequence to complete
timeoutlen = 300;
# Enable 24-bit RGB color in the TUI
termguicolors = true;
# Don't show mode in the command line
showmode = false;
# Open new split below the current window
splitbelow = true;
# Keep the screen when splitting
splitkeep = "screen";
# Open new split to the right of the current window
splitright = true;
# Hide command line unless needed
cmdheight = 0;
# Remove EOB
fillchars = {
eob = " ";
};
};
keymaps = [
{
mode = "n";
key = "j";
action = "gj";
}
{
mode = "n";
key = "k";
action = "gk";
}
{
mode = "n";
key = "n";
action = "nzzzv";
}
{
mode = "n";
key = "N";
action = "Nzzzv";
}
{
mode = "n";
key = "<C-d>";
action = "<C-d>zz";
}
{
mode = "n";
key = "<C-u>";
action = "<C-u>zz";
}
{
mode = "n";
key = "<leader>yy";
action = "<cmd>Yazi<cr>";
options = {desc = "open yazi";};
}
{
mode = "n";
key = "<leader>fo";
action = "<cmd>Telescope oldfiles<cr>";
options = {desc = "Telescope oldfiles";};
}
{
mode = "n";
key = "<leader>ff";
action = "<cmd>Telescope find_files<cr>";
options = {desc = "Telescope find files";};
}
];
};
};
}

View File

@ -1,114 +0,0 @@
{
config,
pkgs,
lib,
...
}:
with lib; let
cfg = config.editor.zed;
in {
options = {
editor.zed.enable =
mkEnableOption "enable zed editor";
};
config = mkIf cfg.enable {
programs.zed-editor = {
enable = true;
extensions = [
"nix"
"latex"
"typst"
];
userSettings = {
vim_mode = true;
ui_font_size = lib.mkForce 16;
buffer_font_size = lib.mkForce 16;
features = {inline_completion_provider = "none";};
auto_update = false;
languages = {
"Nix" = {
language-servers = [
"nil"
"!nixd"
];
formatter = {
external.command = lib.getExe pkgs.alejandra;
};
};
"Rust" = {
formatter = {
external = {
command = lib.getExe pkgs.rustfmt;
arguments = ["--edition" "2021"];
};
};
};
"typst" = {
language-servers = ["tinymist"];
format_on_save = "on";
formatter = {
external = {
command = lib.getExe pkgs.typstyle;
arguments = ["-i" "{buffer_path}"];
};
};
};
"Python" = {
format_on_save = "on";
formatter = [
{
language_server = {
name = "ruff";
};
}
];
language_servers = ["ruff"];
};
};
lsp = {
clangd = {
binary = {
arguments = [];
path = "${pkgs.clang-tools}/bin/clangd";
};
};
rust-analyzer = {
binary = {
arguments = [];
path = lib.getExe pkgs.rust-analyzer;
};
};
ruff = {
binary = {
arguments = [];
path = lib.getExe pkgs.ruff;
};
};
nil = {
binary = {
arguments = [];
path = lib.getExe pkgs.nil;
};
initialization_options.formatting.command = [(lib.getExe pkgs.alejandra)];
};
texlab = {
binary = {
arguments = [];
path = lib.getExe pkgs.texlab;
};
};
tinymist = {
binary = {
arguments = [];
path = lib.getExe pkgs.tinymist;
};
};
};
telemetry = {
diagnostics = false;
metrics = false;
};
};
};
};
}

View File

@ -1,10 +0,0 @@
{
imports = [
./console.nix
./flatpak.nix
./console/yazi.nix
./editor/main.nix
./shell/main.nix
./terminal/main.nix
];
}

View File

@ -1,3 +0,0 @@
{
imports = [./nushell.nix ./oh-my-posh.nix];
}

View File

@ -1,100 +0,0 @@
{
pkgs,
config,
lib,
...
}:
with lib; let
cfg = config.shell.nushell;
in {
options = {
shell.nushell.enable =
mkEnableOption "enable nushell";
};
config = mkIf cfg.enable {
programs.oh-my-posh.enableNushellIntegration = true;
programs.zoxide = {
enable = true;
enableNushellIntegration = true;
};
programs.carapace = {
enable = true;
enableNushellIntegration = true;
};
programs.atuin = {
enable = true;
enableNushellIntegration = true;
flags = [
"--disable-up-arrow"
];
};
programs.nushell = {
enable = true;
environmentVariables = {
CARAPACE_BRIDGES = "zsh,fish,bash,inshellisense";
CARAPACE_MATCH = 1;
EDITOR = "hx";
};
shellAliases = {
cd = "z";
cat = "bat";
l = "ls -l";
nix-shell = "nix-shell --command nu";
};
extraConfig = ''
$env.config = {
show_banner: false
shell_integration: {
# osc2 abbreviates the path if in the home_dir, sets the tab/window title, shows the running command in the tab/window title
osc2: true
# osc7 is a way to communicate the path to the terminal, this is helpful for spawning new tabs in the same directory
osc7: true
# osc8 is also implemented as the deprecated setting ls.show_clickable_links, it shows clickable links in ls output if your terminal supports it. show_clickable_links is deprecated in favor of osc8
osc8: true
# osc9_9 is from ConEmu and is starting to get wider support. It's similar to osc7 in that it communicates the path to the terminal
osc9_9: false
# osc133 is several escapes invented by Final Term which include the supported ones below.
# 133;A - Mark prompt start
# 133;B - Mark prompt end
# 133;C - Mark pre-execution
# 133;D;exit - Mark execution finished with exit code
# This is used to enable terminals to know where the prompt is, the command is, where the command finishes, and where the output of the command is
osc133: true
# osc633 is closely related to osc133 but only exists in visual studio code (vscode) and supports their shell integration features
# 633;A - Mark prompt start
# 633;B - Mark prompt end
# 633;C - Mark pre-execution
# 633;D;exit - Mark execution finished with exit code
# 633;E - Explicitly set the command line with an optional nonce
# 633;P;Cwd=<path> - Mark the current working directory and communicate it to the terminal
# and also helps with the run recent menu in vscode
osc633: true
# reset_application_mode is escape \x1b[?1l and was added to help ssh work better
reset_application_mode: true
}
ls: {
use_ls_colors: true
clickable_links: true
}
rm: {
always_trash: true
}
edit_mode: 'vi'
completions: {
case_sensitive: false
quick: true
partial: true
algorithm: "fuzzy"
external: {
enable: true
# max_results: 100
# completer: $carapace_completer # check 'carapace_completer'
}
}
}
'';
};
};
}

View File

@ -1,106 +0,0 @@
{
config,
lib,
...
}:
with lib; let
cfg = config.shell.oh-my-posh;
in {
options = {
shell.oh-my-posh.enable =
mkEnableOption "enable oh my posh";
};
config = mkIf cfg.enable {
programs.oh-my-posh = {
enable = true;
settings = {
version = 2;
final_space = true;
console_title_template = "{{ .Shell }} in {{ .Folder }}";
blocks = [
{
type = "prompt";
alignment = "left";
newline = true;
segments = [
{
type = "path";
style = "plain";
background = "transparent";
foreground = "blue";
template = "{{ .Path }}";
properties = {
style = "full";
};
}
{
type = "text";
style = "plain";
background = "transparent";
template = "{{ if .Env.BW_SESSION }} 󰞀{{ end }}";
}
{
type = "nix-shell";
style = "plain";
background = "transparent";
template = "{{ if ne .Type \"unknown\" }} {{ end }}";
}
{
type = "git";
style = "plain";
foreground = "p:grey";
background = "transparent";
template = " {{ .HEAD }}{{ if or (.Working.Changed) (.Staging.Changed) }}*{{ end }} <cyan>{{ if gt .Behind 0 }}{{ end }}{{ if gt .Ahead 0 }}{{ end }}</>";
properties = {
branch_icon = "";
commit_icon = "@";
fetch_status = true;
};
}
];
}
{
type = "rprompt";
overflow = "hidden";
segments = [
{
type = "executiontime";
style = "plain";
foreground = "yellow";
background = "transparent";
template = "{{ .FormattedMs }}";
properties = {
threshold = 5000;
};
}
];
}
{
type = "prompt";
alignment = "left";
newline = true;
segments = [
{
type = "text";
style = "plain";
foreground_templates = ["{{if gt .Code 0}}red{{end}}" "{{if eq .Code 0}}magenta{{end}}"];
background = "transparent";
template = "";
}
];
}
];
transient_prompt = {
foreground_templates = ["{{if gt .Code 0}}red{{end}}" "{{if eq .Code 0}}magenta{{end}}"];
background = "transparent";
template = " ";
};
secondary_prompt = {
foreground = "magenta";
background = "transparent";
template = " ";
};
};
};
};
}

View File

@ -1,75 +0,0 @@
{
pkgs,
config,
lib,
...
}: {
options = {
zsh.enable =
lib.mkEnableOption "enable z shell";
};
config = lib.mkIf config.zsh.enable {
programs.zsh = {
enable = true;
dotDir = ".config/zsh";
initExtra = ''
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down
'';
# promptInit = "oh-my-posh init zsh -c ~/.config/oh-my-posh/zen.toml";
enableCompletion = true;
autosuggestion.enable = true;
#autosuggestion.highlight = "fg=#ff00ff,bg=cyan,bold,underline";
shellAliases = {
ls = "eza";
cat = "bat";
cd = "z";
l = "eza -alh";
};
history = {
size = 10000;
path = "${config.xdg.dataHome}/zsh/history";
};
plugins = [
{
name = "zsh-autosuggestions";
file = "zsh-autosuggestions.plugin.zsh";
src = pkgs.fetchFromGitHub {
owner = "zsh-users";
repo = "zsh-autocomplete";
rev = "v0.7.0";
sha256 = "sha256-/6V6IHwB5p0GT1u5SAiUa20LjFDSrMo731jFBq/bnpw=";
};
}
{
name = "zsh-syntax-highlighting";
src = pkgs.fetchFromGitHub {
owner = "zsh-users";
repo = "zsh-syntax-highlighting";
rev = "0.8.0";
sha256 = "sha256-iJdWopZwHpSyYl5/FQXEW7gl/SrKaYDEtTH9cGP7iPo=";
};
}
{
name = "zsh-history-substring-search";
src = pkgs.fetchFromGitHub {
owner = "zsh-users";
repo = "zsh-history-substring-search";
rev = "v1.1.0";
sha256 = "sha256-GSEvgvgWi1rrsgikTzDXokHTROoyPRlU0FVpAoEmXG4=";
};
}
{
name = "zsh-nix-shell";
file = "nix-shell.plugin.zsin.fromh";
src = pkgs.fetchFromGitHub {
owner = "chisui";
repo = "zsh-nix-shell";
rev = "v0.8.0";
sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7";
};
}
];
};
};
}

View File

@ -1,21 +0,0 @@
{
config,
lib,
...
}:
with lib; let
cfg = config.terminal.ghostty;
in {
options = {
terminal.ghostty.enable = mkEnableOption "enable ghostty terminal";
};
config = mkIf cfg.enable {
programs.ghostty = {
enable = true;
settings = {
gtk-single-instance = true;
window-decoration = "client";
};
};
};
}

View File

@ -1,24 +0,0 @@
{
config,
lib,
...
}:
with lib; let
cfg = config.terminal.kitty;
in {
options = {
terminal.kitty.enable =
mkEnableOption "enable kitty terminal";
};
config = mkIf cfg.enable {
programs.kitty = {
enable = true;
settings = {
tab_bar_edge = "bottom";
tab_bar_align = "left";
tab_bar_style = "fade";
# tab_separator = " ";
};
};
};
}

View File

@ -1,7 +0,0 @@
{
imports = [
./kitty.nix
./ghostty.nix
./wezterm.nix
];
}

View File

@ -1,90 +0,0 @@
{
config,
inputs,
pkgs,
lib,
...
}:
with lib; let
cfg = config.terminal.wezterm;
in {
options = {
terminal.wezterm.enable =
mkEnableOption "enable wez's terminal";
};
config = mkIf cfg.enable {
programs.wezterm = {
enable = true;
package = inputs.wezterm.packages.${pkgs.system}.default;
extraConfig = ''
local wezterm = require 'wezterm'
local act = wezterm.action
return {
front_end = 'WebGpu',
unix_domains = {
{
name = 'unix',
},
},
enable_kitty_graphics = true,
window_padding = {
left = 0,
right = 0,
top = 0,
bottom = 0,
},
use_fancy_tab_bar = false,
inactive_pane_hsb = {
saturation = 0.8,
brightness = 0.7,
},
-- window_frame = {
-- font = wezterm.font { family = 'Cantarell', weight = 'Bold' },
-- },
disable_default_key_bindings = true,
leader = { key = 'Space', mods = 'CTRL', timeout_milliseconds = 2000 },
keys = {
{ key = 'n', mods = 'CTRL|SHIFT', action = act.ActivateTabRelative(-1) },
{ key = 'e', mods = 'CTRL|SHIFT', action = act.ActivatePaneDirection 'Down', },
{ key = 'u', mods = 'CTRL|SHIFT', action = act.ActivatePaneDirection 'Up', },
{ key = 'i', mods = 'CTRL|SHIFT', action = act.ActivateTabRelative(1) },
{ key = 'Enter', mods = 'SHIFT|CTRL', action = act.ActivateCopyMode },
{ key = 'R', mods = 'SHIFT|CTRL', action = act.ReloadConfiguration },
{ key = '+', mods = 'SHIFT|CTRL', action = act.IncreaseFontSize },
{ key = '-', mods = 'SHIFT|CTRL', action = act.DecreaseFontSize },
{ key = '0', mods = 'SHIFT|CTRL', action = act.ResetFontSize },
{ key = 'C', mods = 'SHIFT|CTRL', action = act.CopyTo 'Clipboard' },
-- { key = 'N', mods = 'SHIFT|CTRL', action = act.SpawnWindow },
{ key = 'l', mods = 'SHIFT|CTRL', action = act.CharSelect{ copy_on_select = true, copy_to = 'ClipboardAndPrimarySelection' } },
{ key = 'v', mods = 'SHIFT|CTRL', action = act.PasteFrom 'Clipboard' },
{ key = 'PageUp', mods = 'CTRL', action = act.ActivateTabRelative(-1) },
{ key = 'PageDown', mods = 'CTRL', action = act.ActivateTabRelative(1) },
{ key = 'LeftArrow', mods = 'CTRL', action = act.ActivatePaneDirection 'Left' },
{ key = 'RightArrow', mods = 'CTRL', action = act.ActivatePaneDirection 'Right' },
{ key = 'UpArrow', mods = 'CTRL', action = act.ActivatePaneDirection 'Up' },
{ key = 'DownArrow', mods = 'CTRL', action = act.ActivatePaneDirection 'Down' },
{ key = ',', mods = 'SHIFT|CTRL', action = act.SplitVertical { domain = 'CurrentPaneDomain' }, },
{ key = '.', mods = 'SHIFT|CTRL', action = act.SplitHorizontal { domain = 'CurrentPaneDomain' }, },
{ key = '%', mods = 'SHIFT|CTRL', action = act.SplitVertical { domain = 'CurrentPaneDomain' }, },
{ key = '"', mods = 'SHIFT|CTRL', action = act.SplitHorizontal { domain = 'CurrentPaneDomain' }, },
{ key = 'n', mods = 'CTRL', action = act.ActivatePaneDirection 'Left', },
{ key = 'i', mods = 'CTRL', action = act.ActivatePaneDirection 'Right', },
{ key = 't', mods = 'SHIFT|CTRL', action = act.SpawnTab 'CurrentPaneDomain' },
{ key = 'w', mods = 'SHIFT|CTRL', action = act.CloseCurrentTab{ confirm = false } },
{ key = 'f', mods = 'SHIFT|CTRL', action = act.CloseCurrentPane{ confirm = false } },
{ key = 'b', mods = 'LEADER|CTRL', action = act.SendString '\x02', },
{ key = 'Enter', mods = 'LEADER', action = act.ActivateCopyMode, },
{ key = 'p', mods = 'LEADER', action = act.PasteFrom 'PrimarySelection', },
{ key = 'k', mods = 'SHIFT|CTRL', action = act.Multiple
{
act.ClearScrollback 'ScrollbackAndViewport',
act.SendKey { key = 'L', mods = 'CTRL' },
},
},
{ key = 'r', mods = 'LEADER', action = act.ActivateKeyTable { name = 'resize_pane', one_shot = false, }, }
},
}
'';
};
};
}