2024-07-05 18:19:34 +02:00
|
|
|
toplevel@{ moduleWithSystem, ... }: {
|
2024-07-05 18:12:26 +02:00
|
|
|
flake.homeManagerModules = {
|
2024-07-05 18:19:34 +02:00
|
|
|
base = moduleWithSystem (
|
2024-07-05 18:32:04 +02:00
|
|
|
top@{ ... }:
|
|
|
|
perSystem@{ pkgs, config, ... }: {
|
2024-07-10 11:17:08 +02:00
|
|
|
programs.home-manager.enable = true;
|
2024-07-05 18:19:34 +02:00
|
|
|
home = {
|
|
|
|
stateVersion = toplevel.config.flake.stateVersion;
|
|
|
|
username = "ivand";
|
|
|
|
homeDirectory = "/home/ivand";
|
|
|
|
sessionVariables = {
|
|
|
|
EDITOR = "nvim";
|
|
|
|
PAGER = "bat";
|
|
|
|
TERM = "screen-256color";
|
|
|
|
MAKEFLAGS = "-j 4";
|
|
|
|
};
|
2024-07-07 16:01:23 +02:00
|
|
|
pointerCursor = with pkgs; { name = "catppuccin-mocha-green-cursors"; package = catppuccin-cursors.mochaGreen; size = 24; gtk.enable = true; };
|
|
|
|
packages = with pkgs; [ transmission_4 speedtest-cli nvim ];
|
2024-07-05 18:19:34 +02:00
|
|
|
};
|
|
|
|
xdg = {
|
|
|
|
enable = true;
|
|
|
|
userDirs = with config; {
|
|
|
|
enable = true;
|
|
|
|
createDirectories = true;
|
|
|
|
desktop = "${home.homeDirectory}/dt";
|
|
|
|
documents = "${home.homeDirectory}/doc";
|
|
|
|
download = "${home.homeDirectory}/dl";
|
|
|
|
pictures = "${home.homeDirectory}/pic";
|
|
|
|
videos = "${home.homeDirectory}/vid";
|
|
|
|
templates = "${home.homeDirectory}/tpl";
|
|
|
|
publicShare = "${home.homeDirectory}/pub";
|
|
|
|
music = "${home.homeDirectory}/mus";
|
|
|
|
};
|
|
|
|
mimeApps = {
|
|
|
|
enable = true;
|
|
|
|
defaultApplications = {
|
|
|
|
"text/html" = "firefox.desktop";
|
|
|
|
"x-scheme-handler/http" = "firefox.desktop";
|
|
|
|
"x-scheme-handler/https" = "firefox.desktop";
|
|
|
|
"x-scheme-handler/about" = "firefox.desktop";
|
|
|
|
"x-scheme-handler/unknown" = "firefox.desktop";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
);
|
2024-07-10 11:17:08 +02:00
|
|
|
ivand = moduleWithSystem (
|
|
|
|
top@{ ... }:
|
|
|
|
perSystem@{ pkgs, config, ... }: {
|
|
|
|
programs = {
|
|
|
|
password-store = { enable = true; package = pkgs.pass.withExtensions (e: with e; [ pass-otp pass-file ]); settings = { PASSWORD_STORE_DIR = "${config.home.homeDirectory}/.password-store"; }; };
|
|
|
|
git = {
|
|
|
|
enable = true;
|
|
|
|
delta.enable = true;
|
|
|
|
userName = pkgs.lib.mkDefault "Ivan Kirilov Dimitrov";
|
|
|
|
userEmail = pkgs.lib.mkDefault "ivan@idimitrov.dev";
|
|
|
|
signing = { signByDefault = true; key = "ivan@idimitrov.dev"; };
|
|
|
|
extraConfig = { color.ui = "auto"; pull.rebase = true; push.autoSetupRemote = true; };
|
2024-07-24 15:27:53 +02:00
|
|
|
aliases = { a = "add ."; c = "commit"; d = "diff --cached"; p = "push"; pa = "!git remote | xargs -L1 git push --all"; };
|
2024-07-10 11:17:08 +02:00
|
|
|
};
|
2024-07-24 22:08:37 +02:00
|
|
|
ssh = {
|
|
|
|
enable = true;
|
|
|
|
matchBlocks = {
|
|
|
|
vpsfree = {
|
|
|
|
hostname = "37.205.13.29";
|
|
|
|
user = "ivand";
|
|
|
|
};
|
|
|
|
vpsfree-root = {
|
|
|
|
hostname = "37.205.13.29";
|
|
|
|
user = "root";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2024-07-10 11:17:08 +02:00
|
|
|
gpg.enable = true;
|
|
|
|
};
|
|
|
|
services = { gpg-agent = { enable = true; enableBashIntegration = true; enableZshIntegration = true; enableNushellIntegration = true; pinentryPackage = pkgs.pinentry-qt; }; };
|
|
|
|
}
|
|
|
|
);
|
2024-07-05 18:12:26 +02:00
|
|
|
shell = moduleWithSystem (
|
|
|
|
top@{ ... }:
|
|
|
|
perSystem@{ pkgs, ... }: {
|
|
|
|
programs =
|
|
|
|
let
|
|
|
|
shellAliases = {
|
|
|
|
cal = "cal $(date +%Y)";
|
|
|
|
GG = "git add . && git commit -m 'GG' && git push --set-upstream origin HEAD";
|
|
|
|
gad = "git add . && git diff --cached";
|
|
|
|
gac = "ga && gc";
|
|
|
|
gach = "gac -C HEAD";
|
|
|
|
ga = "git add .";
|
|
|
|
gc = "git commit";
|
|
|
|
dev = "nix develop --command $SHELL";
|
2024-07-08 21:34:03 +02:00
|
|
|
ls = "eza";
|
2024-07-26 17:02:56 +02:00
|
|
|
la = "eza --all";
|
|
|
|
lt = "eza --all --tree --level=10";
|
2024-07-05 18:12:26 +02:00
|
|
|
torrent = "transmission-remote";
|
2024-07-07 16:01:23 +02:00
|
|
|
torrent-start = "transmission-daemon";
|
2024-07-05 18:12:26 +02:00
|
|
|
vi = "nvim";
|
|
|
|
sc = "systemctl";
|
|
|
|
neofetch = "${pkgs.fastfetch}/bin/fastfetch -c all.jsonc";
|
|
|
|
};
|
2024-07-07 16:01:23 +02:00
|
|
|
sessionVariables = { TERM = "screen-256color"; };
|
2024-07-05 18:12:26 +02:00
|
|
|
in
|
|
|
|
{
|
|
|
|
bash = {
|
|
|
|
inherit shellAliases sessionVariables;
|
|
|
|
enable = true;
|
|
|
|
enableVteIntegration = true;
|
|
|
|
historyControl = [ "erasedups" ];
|
2024-07-07 16:01:23 +02:00
|
|
|
historyIgnore = [ "ls" "cd" "exit" ];
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
|
|
|
zsh = {
|
|
|
|
inherit shellAliases sessionVariables;
|
|
|
|
enable = true;
|
|
|
|
dotDir = ".config/zsh";
|
|
|
|
defaultKeymap = "viins";
|
|
|
|
enableVteIntegration = true;
|
2024-07-05 18:35:52 +02:00
|
|
|
syntaxHighlighting.enable = true;
|
|
|
|
autosuggestion.enable = true;
|
2024-07-05 18:12:26 +02:00
|
|
|
history.expireDuplicatesFirst = true;
|
|
|
|
historySubstringSearch.enable = true;
|
|
|
|
};
|
|
|
|
nushell = {
|
|
|
|
enable = true;
|
2024-07-07 16:01:23 +02:00
|
|
|
environmentVariables = { config = '' { show_banner: false, completions: { quick: false partial: false algorithm: "prefix" } } ''; };
|
2024-07-07 19:10:46 +02:00
|
|
|
shellAliases = { gcal = '' bash -c "cal $(date +%Y)" ''; la = "ls -al"; dev = "nix develop --command $env.SHELL"; };
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
2024-07-07 16:01:23 +02:00
|
|
|
kitty.shellIntegration = { enableBashIntegration = true; enableZshIntegration = true; };
|
2024-07-05 18:12:26 +02:00
|
|
|
tmux = {
|
|
|
|
enable = true;
|
|
|
|
clock24 = true;
|
|
|
|
baseIndex = 1;
|
|
|
|
escapeTime = 0;
|
|
|
|
keyMode = "vi";
|
|
|
|
shell = "\${SHELL}";
|
|
|
|
terminal = "screen-256color";
|
|
|
|
plugins = with pkgs.tmuxPlugins; [ tilish catppuccin ];
|
|
|
|
extraConfig = ''
|
|
|
|
set-option -a terminal-features 'screen-256color:RGB'
|
|
|
|
'';
|
|
|
|
};
|
2024-07-07 16:01:23 +02:00
|
|
|
starship = { enable = true; enableNushellIntegration = true; enableZshIntegration = true; enableBashIntegration = true; };
|
2024-07-08 21:32:14 +02:00
|
|
|
eza = {
|
|
|
|
enable = true;
|
|
|
|
enableZshIntegration = true;
|
|
|
|
enableBashIntegration = true;
|
|
|
|
extraOptions = [
|
2024-07-26 17:02:56 +02:00
|
|
|
"--long"
|
2024-07-08 21:32:14 +02:00
|
|
|
"--header"
|
|
|
|
"--icons"
|
|
|
|
"--smart-group"
|
|
|
|
"--mounts"
|
|
|
|
"--octal-permissions"
|
|
|
|
"--git"
|
|
|
|
];
|
|
|
|
};
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
|
|
|
}
|
|
|
|
);
|
2024-07-05 18:19:34 +02:00
|
|
|
util = moduleWithSystem (
|
|
|
|
top@{ ... }:
|
|
|
|
perSystem@{ ... }: {
|
2024-07-05 18:12:26 +02:00
|
|
|
programs = {
|
2024-07-05 18:19:34 +02:00
|
|
|
tealdeer = {
|
2024-07-05 18:12:26 +02:00
|
|
|
enable = true;
|
2024-07-07 16:01:23 +02:00
|
|
|
settings = { display = { compact = true; }; updates = { auto_update = true; }; };
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
2024-07-05 18:19:34 +02:00
|
|
|
bottom = {
|
2024-07-05 18:12:26 +02:00
|
|
|
enable = true;
|
2024-07-05 18:19:34 +02:00
|
|
|
settings = {
|
2024-07-07 16:01:23 +02:00
|
|
|
flags = { rate = "250ms"; };
|
2024-07-05 18:19:34 +02:00
|
|
|
row = [
|
|
|
|
{ ratio = 40; child = [{ type = "cpu"; } { type = "mem"; } { type = "net"; }]; }
|
|
|
|
{ ratio = 35; child = [{ type = "temp"; } { type = "disk"; }]; }
|
|
|
|
{ ratio = 40; child = [{ type = "proc"; default = true; }]; }
|
|
|
|
];
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
|
|
|
};
|
2024-07-05 18:19:34 +02:00
|
|
|
bat.enable = true;
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
|
|
|
}
|
|
|
|
);
|
|
|
|
swayland = moduleWithSystem (
|
2024-07-05 18:32:04 +02:00
|
|
|
top@{ ... }:
|
|
|
|
perSystem@{ pkgs, config, ... }: {
|
2024-07-05 18:12:26 +02:00
|
|
|
wayland.windowManager.sway = {
|
|
|
|
enable = true;
|
|
|
|
systemd.enable = true;
|
|
|
|
config = rec {
|
|
|
|
menu = "rofi -show run";
|
|
|
|
terminal = "kitty";
|
|
|
|
modifier = "Mod4";
|
|
|
|
startup = [
|
|
|
|
{ command = "swaymsg 'workspace 2; exec firefox'"; }
|
2024-07-07 16:01:23 +02:00
|
|
|
{ command = "swaymsg 'workspace 1; exec kitty'"; }
|
2024-07-05 18:12:26 +02:00
|
|
|
];
|
|
|
|
bars = [ ];
|
|
|
|
window.titlebar = false;
|
|
|
|
keybindings = pkgs.lib.mkOptionDefault {
|
2024-07-18 19:58:22 +02:00
|
|
|
"F1" = "exec ${pkgs.pulseaudio}/bin/pactl set-sink-mute @DEFAULT_SINK@ toggle";
|
|
|
|
"Shift+F1" = "exec ${pkgs.pulseaudio}/bin/pactl set-source-mute @DEFAULT_SOURCE@ toggle";
|
|
|
|
"F2" = "exec ${pkgs.pulseaudio}/bin/pactl set-sink-volume @DEFAULT_SINK@ -5%";
|
|
|
|
"Shift+F2" = "exec ${pkgs.pulseaudio}/bin/pactl set-source-volume @DEFAULT_SOURCE@ -5%";
|
|
|
|
"F3" = "exec ${pkgs.pulseaudio}/bin/pactl set-sink-volume @DEFAULT_SINK@ +5%";
|
|
|
|
"Shift+F3" = "exec ${pkgs.pulseaudio}/bin/pactl set-source-volume @DEFAULT_SOURCE@ +5%";
|
|
|
|
"F9" = "exec doas ${pkgs.light}/bin/light -A 10";
|
|
|
|
"F8" = "exec doas ${pkgs.light}/bin/light -U 10";
|
2024-07-07 16:01:23 +02:00
|
|
|
"Alt+Shift+l" = "exec ${pkgs.swaylock}/bin/swaylock";
|
2024-07-05 18:12:26 +02:00
|
|
|
"${modifier}+p" = "exec ${menu}";
|
2024-07-05 22:27:12 +02:00
|
|
|
"${modifier}+Shift+a" = "exec ${pkgs.screenshot}/bin/screenshot area";
|
|
|
|
"${modifier}+Shift+s" = "exec ${pkgs.screenshot}/bin/screenshot";
|
2024-07-05 18:12:26 +02:00
|
|
|
"${modifier}+c" = "exec ${pkgs.sal}/bin/sal";
|
|
|
|
"End" = "exec rofi -show calc";
|
|
|
|
"${modifier}+Shift+r" = "reload";
|
|
|
|
"${modifier}+Shift+c" = "kill";
|
|
|
|
"${modifier}+Shift+q" = "exit";
|
|
|
|
};
|
2024-07-07 16:01:23 +02:00
|
|
|
input = { "*" = { xkb_layout = "us,bg"; xkb_options = "grp:win_space_toggle"; xkb_variant = ",phonetic"; }; };
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
2024-07-07 16:01:23 +02:00
|
|
|
swaynag = { enable = config.wayland.windowManager.sway.enable; };
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
|
|
|
programs = {
|
|
|
|
waybar = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
mainBar =
|
|
|
|
let
|
|
|
|
in
|
|
|
|
{
|
|
|
|
layer = "top";
|
|
|
|
position = "top";
|
|
|
|
height = 30;
|
2024-07-07 16:01:23 +02:00
|
|
|
output = [ "eDP-1" "HDMI-A-1" ];
|
|
|
|
|
2024-07-05 18:12:26 +02:00
|
|
|
modules-left = [ "sway/workspaces" ];
|
|
|
|
modules-center = [ "clock#week" "clock#year" "clock#time" ];
|
|
|
|
modules-right = [ "network" "pulseaudio" "memory" "cpu" "battery" ];
|
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
"clock#time" = { format = "{:%H:%M:%S}"; interval = 1; };
|
|
|
|
"clock#week" = { format = "{:%a}"; };
|
|
|
|
"clock#year" = { format = "{:%Y-%m-%d}"; };
|
2024-07-05 18:12:26 +02:00
|
|
|
|
|
|
|
battery = {
|
|
|
|
format = "{icon} <span color='#cdd6f4'>{capacity}% {time}</span>";
|
|
|
|
format-time = " {H} h {M} m";
|
|
|
|
format-icons = [ "" "" "" "" "" ];
|
2024-07-07 16:01:23 +02:00
|
|
|
states = { warning = 30; critical = 15; };
|
2024-07-24 18:13:45 +02:00
|
|
|
tooltip = false;
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
cpu = { format = "<span color='#74c7ec'></span> {usage}%"; };
|
2024-07-05 18:12:26 +02:00
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
memory = { format = "<span color='#89b4fa'></span> {percentage}%"; interval = 5; };
|
2024-07-05 18:12:26 +02:00
|
|
|
|
|
|
|
pulseaudio = {
|
|
|
|
format = "<span color='#a6e3a1'>{icon}</span> {volume}% | {format_source}";
|
|
|
|
format-muted = "<span color='#f38ba8'></span> {volume}% | {format_source}";
|
|
|
|
format-source = "{volume}% <span color='#a6e3a1'></span>";
|
|
|
|
format-source-muted = "{volume}% <span color='#f38ba8'></span>";
|
2024-07-07 16:01:23 +02:00
|
|
|
format-icons = { headphone = ""; default = [ "" "" "" ]; };
|
2024-07-24 18:13:45 +02:00
|
|
|
tooltip = false;
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
network = {
|
|
|
|
format-ethernet = "<span color='#89dceb'></span> | <span color='#fab387'></span> {bandwidthUpBytes} <span color='#fab387'></span> {bandwidthDownBytes}";
|
|
|
|
format-wifi = "<span color='#06b6d4'>{icon}</span> | <span color='#fab387'></span> {bandwidthUpBytes} <span color='#fab387'></span> {bandwidthDownBytes}";
|
|
|
|
format-disconnected = "<span color='#eba0ac'> no connection</span>";
|
|
|
|
format-icons = [ "" "" "" "" ];
|
|
|
|
interval = 5;
|
2024-07-24 18:13:45 +02:00
|
|
|
tooltip = false;
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
"sway/workspaces" = { disable-scroll = true; all-outputs = true; };
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
|
|
|
};
|
2024-07-07 16:01:23 +02:00
|
|
|
systemd = { enable = true; target = "sway-session.target"; };
|
|
|
|
style = /* CSS */
|
|
|
|
''
|
|
|
|
@define-color rosewater #f5e0dc;
|
|
|
|
@define-color flamingo #f2cdcd;
|
|
|
|
@define-color pink #f5c2e7;
|
|
|
|
@define-color mauve #cba6f7;
|
|
|
|
@define-color red #f38ba8;
|
|
|
|
@define-color maroon #eba0ac;
|
|
|
|
@define-color peach #fab387;
|
|
|
|
@define-color yellow #f9e2af;
|
|
|
|
@define-color green #a6e3a1;
|
|
|
|
@define-color teal #94e2d5;
|
|
|
|
@define-color sky #89dceb;
|
|
|
|
@define-color sapphire #74c7ec;
|
|
|
|
@define-color blue #89b4fa;
|
|
|
|
@define-color lavender #b4befe;
|
|
|
|
@define-color text #cdd6f4;
|
|
|
|
@define-color subtext1 #bac2de;
|
|
|
|
@define-color subtext0 #a6adc8;
|
|
|
|
@define-color overlay2 #9399b2;
|
|
|
|
@define-color overlay1 #7f849c;
|
|
|
|
@define-color overlay0 #6c7086;
|
|
|
|
@define-color surface2 #585b70;
|
|
|
|
@define-color surface1 #45475a;
|
|
|
|
@define-color surface0 #313244;
|
|
|
|
@define-color base #1e1e2e;
|
|
|
|
@define-color mantle #181825;
|
|
|
|
@define-color crust #11111b;
|
|
|
|
* {
|
|
|
|
font-family: FontAwesome, 'Fira Code';
|
|
|
|
font-size: 13px;
|
|
|
|
}
|
2024-07-05 18:12:26 +02:00
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
window#waybar {
|
|
|
|
background-color: rgba(43, 48, 59, 0.1);
|
|
|
|
border-bottom: 2px solid rgba(100, 114, 125, 0.5);
|
|
|
|
color: @rosewater;
|
|
|
|
}
|
2024-07-05 18:12:26 +02:00
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
#workspaces button {
|
|
|
|
padding: 0 5px;
|
|
|
|
background-color: @base;
|
|
|
|
color: @text;
|
|
|
|
border-radius: 6px;
|
|
|
|
}
|
2024-07-05 18:12:26 +02:00
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
#workspaces button:hover {
|
|
|
|
background: @mantle;
|
|
|
|
}
|
2024-07-05 18:12:26 +02:00
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
#workspaces button.focused {
|
|
|
|
background-color: @crust;
|
|
|
|
box-shadow: inset 0 -2px @sky;
|
|
|
|
}
|
2024-07-05 18:12:26 +02:00
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
#workspaces button.urgent {
|
|
|
|
background-color: @red;
|
|
|
|
}
|
2024-07-05 18:12:26 +02:00
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
#clock,
|
|
|
|
#battery,
|
|
|
|
#cpu,
|
|
|
|
#memory,
|
|
|
|
#disk,
|
|
|
|
#temperature,
|
|
|
|
#backlight,
|
|
|
|
#network,
|
|
|
|
#pulseaudio,
|
|
|
|
#wireplumber,
|
|
|
|
#custom-media,
|
|
|
|
#tray,
|
|
|
|
#mode,
|
|
|
|
#idle_inhibitor,
|
|
|
|
#scratchpad,
|
|
|
|
#power-profiles-daemon,
|
|
|
|
#mpd {
|
|
|
|
padding: 0 10px;
|
|
|
|
color: @text;
|
|
|
|
background-color: @base;
|
|
|
|
margin: 0 .5em;
|
|
|
|
border-radius: 9999px;
|
|
|
|
}
|
2024-07-05 18:12:26 +02:00
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
#clock.week {
|
|
|
|
margin-right: 0px;
|
|
|
|
color: @peach;
|
|
|
|
border-radius: 9999px 0px 0px 9999px;
|
|
|
|
}
|
2024-07-05 18:12:26 +02:00
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
#clock.year {
|
|
|
|
margin: 0px;
|
|
|
|
padding: 0px;
|
|
|
|
color: @pink;
|
|
|
|
border-radius: 0px;
|
|
|
|
}
|
2024-07-05 18:12:26 +02:00
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
#clock.time {
|
|
|
|
margin-left: 0px;
|
|
|
|
color: @sky;
|
|
|
|
border-radius: 0px 9999px 9999px 0px;
|
|
|
|
}
|
2024-07-05 18:12:26 +02:00
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
#battery.charging, #battery.plugged {
|
|
|
|
color: @green;
|
|
|
|
}
|
2024-07-05 18:12:26 +02:00
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
#battery.discharging {
|
|
|
|
color: @yellow;
|
|
|
|
}
|
2024-07-05 18:12:26 +02:00
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
@keyframes blink {
|
|
|
|
to {
|
|
|
|
background-color: #ffffff;
|
|
|
|
color: #000000;
|
|
|
|
}
|
|
|
|
}
|
2024-07-05 18:12:26 +02:00
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
#battery.warning:not(.charging) {
|
|
|
|
background-color: @red;
|
|
|
|
}
|
2024-07-05 18:12:26 +02:00
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
/* Using steps() instead of linear as a timing function to limit cpu usage */
|
|
|
|
#battery.critical:not(.charging) {
|
|
|
|
background-color: @red;
|
|
|
|
animation-name: blink;
|
|
|
|
animation-duration: 0.5s;
|
|
|
|
animation-timing-function: steps(12);
|
|
|
|
animation-iteration-count: infinite;
|
|
|
|
animation-direction: alternate;
|
|
|
|
}
|
|
|
|
''
|
|
|
|
;
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
|
|
|
swaylock = {
|
|
|
|
enable = true;
|
2024-07-07 16:01:23 +02:00
|
|
|
settings = { show-failed-attempts = true; image = config.home.homeDirectory + "/pic/bg.png"; };
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
|
|
|
rofi = {
|
|
|
|
enable = true;
|
|
|
|
package = pkgs.rofi-wayland.override {
|
|
|
|
plugins = with pkgs; [
|
|
|
|
(
|
|
|
|
rofi-calc.override
|
|
|
|
{
|
|
|
|
rofi-unwrapped = rofi-wayland-unwrapped;
|
|
|
|
}
|
|
|
|
)
|
|
|
|
];
|
|
|
|
};
|
|
|
|
extraConfig = {
|
|
|
|
modi = "window,drun,run,ssh,calc";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
kitty = {
|
|
|
|
enable = true;
|
2024-07-07 16:01:23 +02:00
|
|
|
font = { package = pkgs.fira-code; name = "FiraCodeNFM-Reg"; };
|
|
|
|
settings = { background_opacity = "0.90"; cursor_shape = "beam"; term = "screen-256color"; };
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
|
|
|
imv.enable = true;
|
|
|
|
mpv.enable = true;
|
2024-07-07 16:01:23 +02:00
|
|
|
bash.profileExtra = '' [ "$(tty)" = "/dev/tty1" ] && exec sway '';
|
|
|
|
zsh.loginExtra = '' [ "$(tty)" = "/dev/tty1" ] && exec sway '';
|
|
|
|
nushell.loginFile.text = '' if (tty) == "/dev/tty1" { sway } '';
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
2024-07-07 16:01:23 +02:00
|
|
|
services = { mako.enable = true; cliphist = { enable = true; systemdTarget = "sway-session.target"; }; };
|
2024-07-05 18:12:26 +02:00
|
|
|
systemd.user = {
|
|
|
|
timers = { rbingwp = { Timer = { OnCalendar = "*-*-* 10:00:00"; Persistent = true; }; Install = { WantedBy = [ "timers.target" ]; }; }; };
|
|
|
|
services = {
|
|
|
|
wpd = {
|
|
|
|
Service = {
|
2024-07-07 16:01:23 +02:00
|
|
|
Environment = [ "PATH=${pkgs.xdg-user-dirs}/bin:${pkgs.swaybg}/bin" ];
|
2024-07-05 18:12:26 +02:00
|
|
|
ExecStart = [ "${pkgs.nushell}/bin/nu -c 'swaybg -i ((xdg-user-dir PICTURES) | path split | path join bg.png)'" ];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
bingwp = {
|
2024-07-05 22:27:12 +02:00
|
|
|
Service = { Type = "oneshot"; Environment = [ "PATH=${pkgs.xdg-user-dirs}/bin:${pkgs.nushell}/bin" ]; ExecStart = [ "${pkgs.bingwp}/bin/bingwp" ]; };
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
|
|
|
rbingwp = {
|
|
|
|
Install = { WantedBy = [ "sway-session.target" ]; };
|
|
|
|
Unit = { Description = "Restart bingwp and wpd services"; After = "graphical-session-pre.target"; PartOf = "graphical-session.target"; };
|
|
|
|
Service = {
|
|
|
|
Type = "oneshot";
|
|
|
|
ExecStart = [ "${pkgs.nushell}/bin/nu -c '${pkgs.systemd}/bin/systemctl --user restart bingwp.service; ${pkgs.systemd}/bin/systemctl --user restart wpd.service'" ];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2024-07-07 16:01:23 +02:00
|
|
|
home.packages = with pkgs; [ audacity gimp grim libnotify libreoffice-qt mupdf slurp wl-clipboard xdg-user-dirs xdg-utils xwayland ];
|
2024-07-05 18:12:26 +02:00
|
|
|
}
|
|
|
|
);
|
|
|
|
web = moduleWithSystem (
|
|
|
|
top@{ ... }:
|
|
|
|
perSystem@{ pkgs, ... }: {
|
|
|
|
programs = {
|
|
|
|
browserpass.enable = true;
|
|
|
|
firefox = {
|
|
|
|
enable = true;
|
|
|
|
profiles.ivand = {
|
|
|
|
id = 0;
|
|
|
|
search.default = "DuckDuckGo";
|
|
|
|
bookmarks = [
|
2024-07-07 16:01:23 +02:00
|
|
|
{ name = "home-options"; url = "https://nix-community.github.io/home-manager/options.xhtml"; }
|
|
|
|
{ name = "nixvim-docs"; url = "https://nix-community.github.io/nixvim/"; }
|
2024-07-05 18:12:26 +02:00
|
|
|
];
|
|
|
|
settings = {
|
|
|
|
"general.smoothScroll" = true;
|
|
|
|
"signon.rememberSignons" = false;
|
|
|
|
"extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
|
|
|
|
"layout.frame_rate" = 120;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
policies = {
|
|
|
|
CaptivePortal = false;
|
|
|
|
DisableFirefoxStudies = true;
|
|
|
|
DisablePocket = true;
|
|
|
|
DisableTelemetry = true;
|
|
|
|
DisableFirefoxAccounts = true;
|
|
|
|
OfferToSaveLogins = false;
|
|
|
|
OfferToSaveLoginsDefault = false;
|
|
|
|
PasswordManagerEnabled = false;
|
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
FirefoxHome = { Search = true; Pocket = false; Snippets = false; TopSites = false; Highlights = false; };
|
2024-07-05 18:12:26 +02:00
|
|
|
|
2024-07-07 16:01:23 +02:00
|
|
|
UserMessaging = { ExtensionRecommendations = false; SkipOnboarding = true; };
|
2024-07-05 18:12:26 +02:00
|
|
|
|
|
|
|
Handlers = {
|
|
|
|
schemes = {
|
2024-07-07 16:01:23 +02:00
|
|
|
mailto = { action = "useHelperApp"; ask = false; handlers = [{ name = "RoundCube"; uriTemplate = "https://mail.idimitrov.dev/?_task=mail&_action=compose&_to=%s"; }]; };
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
home = {
|
|
|
|
file.".mozilla/native-messaging-hosts/gpgmejson.json".text = builtins.toJSON {
|
|
|
|
name = "gpgmejson";
|
|
|
|
description = "Integration with GnuPG";
|
|
|
|
path = "${pkgs.gpgme.dev}/bin/gpgme-json";
|
|
|
|
type = "stdio";
|
2024-07-07 16:01:23 +02:00
|
|
|
allowed_extensions = [ "jid1-AQqSMBYb0a8ADg@jetpack" ];
|
2024-07-05 18:12:26 +02:00
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
);
|
|
|
|
work = moduleWithSystem (
|
|
|
|
top@{ ... }:
|
|
|
|
perSystem@{ pkgs, ... }: {
|
2024-07-07 16:01:23 +02:00
|
|
|
programs.chromium = { enable = true; package = pkgs.ungoogled-chromium; };
|
2024-07-05 18:12:26 +02:00
|
|
|
}
|
|
|
|
);
|
|
|
|
};
|
2024-06-18 20:32:19 +02:00
|
|
|
}
|