updatez
This commit is contained in:
parent
ed77ae6e6b
commit
bf86126a00
22 changed files with 1490 additions and 243 deletions
80
modules/home/apps/helpers/notifications/default.nix
Normal file
80
modules/home/apps/helpers/notifications/default.nix
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
{
|
||||
options,
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
with lib.custom; let
|
||||
cfg = config.apps.helpers.snc;
|
||||
in {
|
||||
options.apps.helpers.snc = with types; {
|
||||
enable = mkBoolOpt false "Enable Sway Notification Center";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home = {
|
||||
packages = with pkgs; [swaynotificationcenter];
|
||||
|
||||
# Copy the theme file to the correct location
|
||||
file.".config/swaync/style.css".source = ./theme/ctp.css;
|
||||
|
||||
# Create default config file
|
||||
file.".config/swaync/config.json".text = builtins.toJSON {
|
||||
"$schema" = "/etc/xdg/swaync/configSchema.json";
|
||||
"positionX" = "right";
|
||||
"positionY" = "top";
|
||||
"layer" = "overlay";
|
||||
"control-center-margin-top" = 0;
|
||||
"control-center-margin-bottom" = 0;
|
||||
"control-center-margin-right" = 0;
|
||||
"control-center-margin-left" = 0;
|
||||
"notification-icon-size" = 64;
|
||||
"notification-body-image-height" = 100;
|
||||
"notification-body-image-width" = 200;
|
||||
"timeout" = 10;
|
||||
"timeout-low" = 5;
|
||||
"timeout-critical" = 0;
|
||||
"fit-to-screen" = true;
|
||||
"control-center-width" = 500;
|
||||
"notification-window-width" = 500;
|
||||
"keyboard-shortcuts" = true;
|
||||
"image-visibility" = "when-available";
|
||||
"transition-time" = 200;
|
||||
"hide-on-clear" = false;
|
||||
"hide-on-action" = true;
|
||||
"script-fail-notify" = true;
|
||||
"scripts" = {};
|
||||
"notification-visibility" = {};
|
||||
"widgets" = [
|
||||
"title"
|
||||
"dnd"
|
||||
"notifications"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# Add systemd user service
|
||||
systemd.user.services.swaync = {
|
||||
Unit = {
|
||||
Description = "Sway Notification Center";
|
||||
PartOf = ["graphical-session.target"];
|
||||
After = ["graphical-session.target"];
|
||||
};
|
||||
|
||||
Service = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.swaynotificationcenter}/bin/swaync";
|
||||
ExecReload = "${pkgs.swaynotificationcenter}/bin/swaync-client --reload-config";
|
||||
Restart = "always";
|
||||
RestartSec = 3;
|
||||
};
|
||||
|
||||
Install = {
|
||||
WantedBy = ["graphical-session.target"];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
451
modules/home/apps/helpers/notifications/theme/ctp.css
Normal file
451
modules/home/apps/helpers/notifications/theme/ctp.css
Normal file
|
|
@ -0,0 +1,451 @@
|
|||
* {
|
||||
all: unset;
|
||||
font-size: 14px;
|
||||
font-family: "Iosevka";
|
||||
transition: 200ms;
|
||||
}
|
||||
|
||||
trough highlight {
|
||||
background: #cdd6f4;
|
||||
}
|
||||
|
||||
scale trough {
|
||||
margin: 0rem 1rem;
|
||||
background-color: #313244;
|
||||
min-height: 8px;
|
||||
min-width: 70px;
|
||||
}
|
||||
|
||||
slider {
|
||||
background-color: #89b4fa;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background {
|
||||
box-shadow:
|
||||
0 0 8px 0 rgba(0, 0, 0, 0.8),
|
||||
inset 0 0 0 1px #313244;
|
||||
border-radius: 12.6px;
|
||||
margin: 18px;
|
||||
background-color: #1e1e2e;
|
||||
color: #cdd6f4;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification {
|
||||
padding: 7px;
|
||||
border-radius: 12.6px;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification.critical {
|
||||
box-shadow: inset 0 0 7px 0 #f38ba8;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content {
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.summary {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.time {
|
||||
color: #a6adc8;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.body {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> * {
|
||||
min-height: 3.4em;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action {
|
||||
border-radius: 7px;
|
||||
color: #cdd6f4;
|
||||
background-color: #313244;
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action:hover {
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
background-color: #313244;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action:active {
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
background-color: #74c7ec;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.close-button {
|
||||
margin: 7px;
|
||||
padding: 2px;
|
||||
border-radius: 6.3px;
|
||||
color: #1e1e2e;
|
||||
background-color: #f38ba8;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.close-button:hover {
|
||||
background-color: #eba0ac;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.close-button:active {
|
||||
background-color: #f38ba8;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
.control-center {
|
||||
box-shadow:
|
||||
0 0 8px 0 rgba(0, 0, 0, 0.8),
|
||||
inset 0 0 0 1px #313244;
|
||||
border-radius: 12.6px;
|
||||
margin: 18px;
|
||||
background-color: #1e1e2e;
|
||||
color: #cdd6f4;
|
||||
padding: 14px;
|
||||
}
|
||||
|
||||
.control-center .widget-title > label {
|
||||
color: #cdd6f4;
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
.control-center .widget-title button {
|
||||
border-radius: 7px;
|
||||
color: #cdd6f4;
|
||||
background-color: #313244;
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.control-center .widget-title button:hover {
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
background-color: #585b70;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.control-center .widget-title button:active {
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
background-color: #74c7ec;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background {
|
||||
border-radius: 7px;
|
||||
color: #cdd6f4;
|
||||
background-color: #313244;
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
margin-top: 14px;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .notification {
|
||||
padding: 7px;
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification.critical {
|
||||
box-shadow: inset 0 0 7px 0 #f38ba8;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content {
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.summary {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.time {
|
||||
color: #a6adc8;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content
|
||||
.body {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> * {
|
||||
min-height: 3.4em;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action {
|
||||
border-radius: 7px;
|
||||
color: #cdd6f4;
|
||||
background-color: #11111b;
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
margin: 7px;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action:hover {
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
background-color: #313244;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action:active {
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
background-color: #74c7ec;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .close-button {
|
||||
margin: 7px;
|
||||
padding: 2px;
|
||||
border-radius: 6.3px;
|
||||
color: #1e1e2e;
|
||||
background-color: #eba0ac;
|
||||
}
|
||||
|
||||
.close-button {
|
||||
border-radius: 6.3px;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background .close-button:hover {
|
||||
background-color: #f38ba8;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.close-button:active {
|
||||
background-color: #f38ba8;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background:hover {
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
background-color: #7f849c;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.control-center .notification-row .notification-background:active {
|
||||
box-shadow: inset 0 0 0 1px #45475a;
|
||||
background-color: #74c7ec;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
.notification.critical progress {
|
||||
background-color: #f38ba8;
|
||||
}
|
||||
|
||||
.notification.low progress,
|
||||
.notification.normal progress {
|
||||
background-color: #89b4fa;
|
||||
}
|
||||
|
||||
.control-center-dnd {
|
||||
margin-top: 5px;
|
||||
border-radius: 8px;
|
||||
background: #313244;
|
||||
border: 1px solid #45475a;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.control-center-dnd:checked {
|
||||
background: #313244;
|
||||
}
|
||||
|
||||
.control-center-dnd slider {
|
||||
background: #45475a;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.widget-dnd {
|
||||
margin: 0px;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.widget-dnd > switch {
|
||||
font-size: initial;
|
||||
border-radius: 8px;
|
||||
background: #313244;
|
||||
border: 1px solid #45475a;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.widget-dnd > switch:checked {
|
||||
background: #313244;
|
||||
}
|
||||
|
||||
.widget-dnd > switch slider {
|
||||
background: #45475a;
|
||||
border-radius: 8px;
|
||||
border: 1px solid #6c7086;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player {
|
||||
background: #313244;
|
||||
padding: 7px;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-title {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-subtitle {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.widget-menubar > box > .menu-button-bar > button > label {
|
||||
font-size: 3rem;
|
||||
padding: 0.5rem 2rem;
|
||||
}
|
||||
|
||||
.widget-menubar > box > .menu-button-bar > :last-child {
|
||||
color: #f38ba8;
|
||||
}
|
||||
|
||||
.power-buttons button:hover,
|
||||
.powermode-buttons button:hover,
|
||||
.screenshot-buttons button:hover {
|
||||
background: #313244;
|
||||
}
|
||||
|
||||
.control-center .widget-label > label {
|
||||
color: #cdd6f4;
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
.widget-buttons-grid {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
.widget-buttons-grid > flowbox > flowboxchild > button label {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
|
||||
.widget-volume {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
.widget-volume label {
|
||||
font-size: 1.5rem;
|
||||
color: #74c7ec;
|
||||
}
|
||||
|
||||
.widget-volume trough highlight {
|
||||
background: #74c7ec;
|
||||
}
|
||||
|
||||
.widget-backlight trough highlight {
|
||||
background: #f9e2af;
|
||||
}
|
||||
|
||||
.widget-backlight label {
|
||||
font-size: 1.5rem;
|
||||
color: #f9e2af;
|
||||
}
|
||||
|
||||
.widget-backlight .KB {
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.image {
|
||||
padding-right: 0.5rem;
|
||||
}
|
||||
173
modules/home/apps/helpers/rofi/default.nix
Normal file
173
modules/home/apps/helpers/rofi/default.nix
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
with lib.custom; let
|
||||
cfg = config.apps.helpers.rofi;
|
||||
in {
|
||||
options.apps.helpers.rofi = with types; {
|
||||
enable = mkBoolOpt false "Enable Rofi";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi;
|
||||
|
||||
# Basic configuration
|
||||
terminal = "ghostty";
|
||||
font = "Lexend Medium 16px";
|
||||
|
||||
extraConfig = {
|
||||
modi = "drun";
|
||||
show-icons = true;
|
||||
drun-display-format = "{icon} {name}";
|
||||
location = 0;
|
||||
hide-scrollbar = true;
|
||||
disable-history = false;
|
||||
display-drun = " Applications";
|
||||
display-run = " Run";
|
||||
display-calc = " Calculator";
|
||||
display-emoji = " Emojis";
|
||||
sidebar-mode = false;
|
||||
|
||||
# # Timeout settings
|
||||
# timeout = {
|
||||
# action = "kb-cancel";
|
||||
# delay = 0;
|
||||
# };
|
||||
#
|
||||
# filebrowser = {
|
||||
# "directories-first" = true;
|
||||
# "sorting-method" = "name";
|
||||
# };
|
||||
};
|
||||
|
||||
# Theme configuration
|
||||
theme = let
|
||||
inherit (config.lib.formats.rasi) mkLiteral;
|
||||
in {
|
||||
"*" = {
|
||||
background = "#181825";
|
||||
prompt = "#1e1e2e";
|
||||
border = "#313244";
|
||||
text = "#cdd6f4";
|
||||
stext = "#45475a";
|
||||
select = "#1e1e2e";
|
||||
"background-color" = mkLiteral "transparent";
|
||||
"text-color" = mkLiteral "@text";
|
||||
margin = 0;
|
||||
padding = 0;
|
||||
};
|
||||
|
||||
"window" = {
|
||||
transparency = "real";
|
||||
location = mkLiteral "center";
|
||||
anchor = mkLiteral "center";
|
||||
width = mkLiteral "32em";
|
||||
"x-offset" = mkLiteral "0px";
|
||||
"y-offset" = mkLiteral "0px";
|
||||
enabled = true;
|
||||
border = mkLiteral "2px solid";
|
||||
"border-color" = mkLiteral "@border";
|
||||
"border-radius" = mkLiteral "4px";
|
||||
"background-color" = mkLiteral "@background";
|
||||
cursor = mkLiteral "default";
|
||||
};
|
||||
|
||||
"inputbar" = {
|
||||
enabled = true;
|
||||
"background-color" = mkLiteral "@prompt";
|
||||
orientation = mkLiteral "horizontal";
|
||||
children = mkLiteral "[ \"entry\" ]";
|
||||
};
|
||||
|
||||
"entry" = {
|
||||
enabled = true;
|
||||
padding = mkLiteral "0.75em 1.25em";
|
||||
cursor = mkLiteral "text";
|
||||
placeholder = " Search application...";
|
||||
"background-color" = mkLiteral "@background";
|
||||
"placeholder-color" = mkLiteral "@stext";
|
||||
};
|
||||
|
||||
"listview" = {
|
||||
enabled = true;
|
||||
columns = 1;
|
||||
lines = 5;
|
||||
cycle = true;
|
||||
dynamic = true;
|
||||
scrollbar = false;
|
||||
layout = mkLiteral "vertical";
|
||||
reverse = false;
|
||||
"fixed-height" = true;
|
||||
"fixed-columns" = true;
|
||||
margin = mkLiteral "0.5em 0 0.75em";
|
||||
cursor = mkLiteral "default";
|
||||
};
|
||||
|
||||
"element" = {
|
||||
enabled = true;
|
||||
margin = mkLiteral "0 0.75em";
|
||||
padding = mkLiteral "0.5em 1em";
|
||||
cursor = mkLiteral "pointer";
|
||||
orientation = mkLiteral "horizontal";
|
||||
};
|
||||
|
||||
"element-icon" = {
|
||||
size = mkLiteral "24px";
|
||||
};
|
||||
|
||||
"element normal.normal" = {
|
||||
"background-color" = mkLiteral "inherit";
|
||||
"text-color" = mkLiteral "inherit";
|
||||
};
|
||||
|
||||
"element selected.normal" = {
|
||||
border = mkLiteral "2px solid";
|
||||
"border-color" = mkLiteral "@border";
|
||||
"border-radius" = mkLiteral "8px";
|
||||
"background-color" = mkLiteral "@select";
|
||||
};
|
||||
|
||||
"element-text" = {
|
||||
highlight = mkLiteral "bold";
|
||||
cursor = mkLiteral "inherit";
|
||||
"vertical-align" = mkLiteral "0.5";
|
||||
"horizontal-align" = mkLiteral "0.0";
|
||||
font = mkLiteral ''"Lexend Medium 16px"'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Create the colors.rasi file
|
||||
xdg.configFile."rofi/colors.rasi".text = ''
|
||||
* {
|
||||
background: #181825;
|
||||
prompt: #1e1e2e;
|
||||
border: #313244;
|
||||
text: #cdd6f4;
|
||||
stext: #45475a;
|
||||
select: #1e1e2e;
|
||||
}
|
||||
'';
|
||||
|
||||
# Create the clip theme
|
||||
xdg.configFile."rofi/clip.rasi".text = ''
|
||||
@theme "cat-mocha"
|
||||
@import "./colors.rasi"
|
||||
|
||||
entry {
|
||||
placeholder: " Search clipboard...";
|
||||
}
|
||||
|
||||
element-icon {
|
||||
enabled: false;
|
||||
size: 0;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
@ -19,153 +19,250 @@ in {
|
|||
enable = true;
|
||||
style = ''
|
||||
* {
|
||||
color: @text;
|
||||
font-family: Iosevka Nerd Font;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
min-height: 0;
|
||||
min-width: 0;
|
||||
font-family: Lexend, "JetBrainsMono NFP";
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
transition-property: background-color;
|
||||
transition-duration: 0.5s;
|
||||
/* background-color: #1e1e2e; */
|
||||
/* background-color: #181825; */
|
||||
background-color: #11111b;
|
||||
/* background-color: rgba(24, 24, 37, 0.6); */
|
||||
}
|
||||
|
||||
#waybar > box {
|
||||
margin: 10px 15px 0px;
|
||||
background-color: @base;
|
||||
border: 2px solid @mauve;
|
||||
#workspaces button {
|
||||
padding: 0.3rem 0.6rem;
|
||||
margin: 0.4rem 0.25rem;
|
||||
border-radius: 6px;
|
||||
/* background-color: #181825; */
|
||||
background-color: #1e1e2e;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
color: #1e1e2e;
|
||||
background-color: #cdd6f4;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background-color: #1e1e2e;
|
||||
color: #89b4fa;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
background-color: #1e1e2e;
|
||||
color: #f38ba8;
|
||||
}
|
||||
|
||||
#workspaces,
|
||||
#window,
|
||||
#idle_inhibitor,
|
||||
#wireplumber,
|
||||
#network,
|
||||
#cpu,
|
||||
#memory,
|
||||
#battery,
|
||||
#clock,
|
||||
#power-profiles-daemon,
|
||||
#pulseaudio,
|
||||
#custom-logo,
|
||||
#custom-power,
|
||||
#custom-spotify,
|
||||
#custom-notification,
|
||||
#cpu,
|
||||
#tray,
|
||||
#waybar > box {
|
||||
border-radius: 12px;
|
||||
#memory,
|
||||
#window,
|
||||
#mpris {
|
||||
padding: 0.3rem 0.6rem;
|
||||
margin: 0.4rem 0.25rem;
|
||||
border-radius: 6px;
|
||||
/* background-color: #181825; */
|
||||
background-color: #1e1e2e;
|
||||
}
|
||||
|
||||
#workspaces * {
|
||||
color: @red;
|
||||
#mpris.playing {
|
||||
color: #a6e3a1;
|
||||
}
|
||||
|
||||
#idle_inhibitor {
|
||||
color: @peach;
|
||||
#mpris.paused {
|
||||
color: #9399b2;
|
||||
}
|
||||
|
||||
#window * {
|
||||
color: @mauve;
|
||||
#custom-sep {
|
||||
padding: 0px;
|
||||
color: #585b70;
|
||||
}
|
||||
|
||||
#wireplumber {
|
||||
color: @yellow;
|
||||
window#waybar.empty #window {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#network {
|
||||
color: @green;
|
||||
#cpu {
|
||||
color: #94e2d5;
|
||||
}
|
||||
|
||||
#power-profiles-daemon {
|
||||
color: @teal;
|
||||
}
|
||||
|
||||
#battery {
|
||||
color: @blue;
|
||||
#memory {
|
||||
color: #cba6f7;
|
||||
}
|
||||
|
||||
#clock {
|
||||
color: @lavender;
|
||||
color: #74c7ec;
|
||||
}
|
||||
|
||||
#tray {
|
||||
color: @text;
|
||||
#clock.simpleclock {
|
||||
color: #89b4fa;
|
||||
}
|
||||
|
||||
#idle_inhibitor,
|
||||
#wireplumber,
|
||||
#network,
|
||||
#cpu,
|
||||
#memory,
|
||||
#battery,
|
||||
#clock,
|
||||
#power-profiles-daemon,
|
||||
#tray {
|
||||
padding: 0 5px;
|
||||
#window {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
color: #b4befe;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
color: #a6adc8;
|
||||
}
|
||||
|
||||
#custom-logo {
|
||||
color: #89b4fa;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
color: #f38ba8;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background-color: #181825;
|
||||
border: 2px solid #89b4fa;
|
||||
}
|
||||
'';
|
||||
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
layer = "bottom";
|
||||
position = "top";
|
||||
spacing = 4;
|
||||
modules-left = [
|
||||
"hyprland/workspaces"
|
||||
"hyprland/window"
|
||||
];
|
||||
modules-center = [
|
||||
];
|
||||
modules-right = [
|
||||
"idle_inhibitor"
|
||||
"wireplumber"
|
||||
"network"
|
||||
"power-profiles-daemon"
|
||||
"battery"
|
||||
height = 40;
|
||||
spacing = 2;
|
||||
exclusive = true;
|
||||
"gtk-layer-shell" = true;
|
||||
passthrough = false;
|
||||
"fixed-center" = true;
|
||||
"modules-left" = ["hyprland/workspaces" "hyprland/window"];
|
||||
"modules-center" = ["mpris"];
|
||||
"modules-right" = [
|
||||
"cpu"
|
||||
"memory"
|
||||
"pulseaudio"
|
||||
"clock"
|
||||
"clock#simpleclock"
|
||||
"tray"
|
||||
"custom/notification"
|
||||
"custom/power"
|
||||
];
|
||||
|
||||
"custom/spotify" = {
|
||||
format = " {}";
|
||||
"return-type" = "json";
|
||||
"on-click" = "playerctl -p spotify play-pause";
|
||||
"on-click-right" = "spotifatius toggle-liked";
|
||||
"on-click-middle" = "playerctl -p spotify next";
|
||||
exec = "spotifatius monitor";
|
||||
};
|
||||
|
||||
mpris = {
|
||||
player = "spotify";
|
||||
"dynamic-order" = ["artist" "title"];
|
||||
format = "{player_icon} {dynamic}";
|
||||
"format-paused" = "{status_icon} <i>{dynamic}</i>";
|
||||
"status-icons" = {
|
||||
paused = "";
|
||||
};
|
||||
"player-icons" = {
|
||||
default = "";
|
||||
};
|
||||
};
|
||||
|
||||
"hyprland/workspaces" = {
|
||||
disable-scroll = true;
|
||||
all-outputs = true;
|
||||
warp-on-scroll = false;
|
||||
format = "{name}: {icon}";
|
||||
format-icons = {
|
||||
"urgent" = "";
|
||||
"active" = "";
|
||||
"default" = "";
|
||||
};
|
||||
"on-click" = "activate";
|
||||
format = "{id}";
|
||||
"all-outputs" = true;
|
||||
"disable-scroll" = false;
|
||||
"active-only" = false;
|
||||
};
|
||||
|
||||
#cava = {
|
||||
# cava_config = "$HOME/.config/cava/config";
|
||||
# framerate = 60;
|
||||
# bars = 16;
|
||||
# method = "pipewire";
|
||||
# format-icons = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█" ];
|
||||
# bar_delimiter = 0;
|
||||
#};
|
||||
|
||||
idle_inhibitor = {
|
||||
format = "Idle: {icon} ";
|
||||
format-icons = {
|
||||
"deactivated" = "";
|
||||
"activated" = "";
|
||||
};
|
||||
"hyprland/window" = {
|
||||
format = "{title}";
|
||||
};
|
||||
|
||||
wireplumber = {
|
||||
format = "Volume: {icon} {volume}% ";
|
||||
format-icons = ["" "" ""];
|
||||
format-muted = "Muted ";
|
||||
tray = {
|
||||
"show-passive-items" = true;
|
||||
spacing = 10;
|
||||
};
|
||||
|
||||
"clock#simpleclock" = {
|
||||
tooltip = false;
|
||||
format = " {:%H:%M}";
|
||||
};
|
||||
|
||||
clock = {
|
||||
format = " {:%H:%M}";
|
||||
format = " {:L%a %d %b}";
|
||||
calendar = {
|
||||
format = {
|
||||
days = "<span weight='normal'>{}</span>";
|
||||
months = "<span color='#cdd6f4'><b>{}</b></span>";
|
||||
today = "<span color='#f38ba8' weight='700'><u>{}</u></span>";
|
||||
weekdays = "<span color='#f9e2af'><b>{}</b></span>";
|
||||
weeks = "<span color='#a6e3a1'><b>W{}</b></span>";
|
||||
};
|
||||
mode = "month";
|
||||
"mode-mon-col" = 1;
|
||||
"on-scroll" = 1;
|
||||
};
|
||||
"tooltip-format" = "<span color='#cdd6f4' font='Lexend 16'><tt><small>{calendar}</small></tt></span>";
|
||||
};
|
||||
|
||||
network = {
|
||||
format = " {essid} {signalStrength}";
|
||||
cpu = {
|
||||
format = " {usage}%";
|
||||
tooltip = true;
|
||||
interval = 1;
|
||||
};
|
||||
|
||||
battery = {
|
||||
format-icons = ["" "" "" "" ""];
|
||||
format = "{icon} {capacity}%";
|
||||
memory = {
|
||||
format = " {used:0.1f}Gi";
|
||||
};
|
||||
|
||||
pulseaudio = {
|
||||
format = "{icon} {volume}%";
|
||||
"format-muted" = " muted";
|
||||
"format-icons" = {
|
||||
headphone = "";
|
||||
default = [" " " " " "];
|
||||
};
|
||||
"on-click" = "pavucontrol";
|
||||
};
|
||||
|
||||
"custom/sep" = {
|
||||
format = "|";
|
||||
tooltip = false;
|
||||
};
|
||||
|
||||
"custom/power" = {
|
||||
tooltip = false;
|
||||
"on-click" = "wlogout -p layer-shell &";
|
||||
format = "⏻";
|
||||
};
|
||||
|
||||
"custom/notification" = {
|
||||
escape = true;
|
||||
exec = "swaync-client -swb";
|
||||
"exec-if" = "which swaync-client";
|
||||
format = "{icon}";
|
||||
"format-icons" = {
|
||||
none = "";
|
||||
notification = "";
|
||||
};
|
||||
"on-click" = "sleep 0.1 && swaync-client -t -sw";
|
||||
"return-type" = "json";
|
||||
tooltip = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -6,6 +6,24 @@ return {
|
|||
news = { lazyvim = false },
|
||||
},
|
||||
},
|
||||
{
|
||||
"snacks.nvim",
|
||||
opts = {
|
||||
scroll = {
|
||||
enabled = false,
|
||||
},
|
||||
dashboard = {
|
||||
preset = {
|
||||
header = [[
|
||||
/l、
|
||||
(゚、 。 7
|
||||
l ~ヽ
|
||||
じしf_,)ノ
|
||||
]],
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"catppuccin",
|
||||
opts = { transparent_background = true, integrations = {
|
||||
|
|
@ -34,16 +52,6 @@ return {
|
|||
nerd_font_variant = "mono",
|
||||
},
|
||||
},
|
||||
{
|
||||
"karb94/neoscroll.nvim",
|
||||
config = function()
|
||||
require("neoscroll").setup({})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"sphamba/smear-cursor.nvim",
|
||||
opts = {},
|
||||
},
|
||||
{
|
||||
"folke/snacks.nvim",
|
||||
priority = 1000,
|
||||
|
|
|
|||
|
|
@ -17,6 +17,11 @@ in {
|
|||
config = mkIf cfg.enable {
|
||||
catppuccin.pointerCursor.enable = true;
|
||||
|
||||
home.pointerCursor = {
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
|
||||
|
|
@ -27,12 +32,12 @@ in {
|
|||
|
||||
theme = {
|
||||
name = "Tokyonight-Dark";
|
||||
package = pkgs-unstable.tokyonight-gtk-theme;
|
||||
package = pkgs.tokyonight-gtk-theme;
|
||||
};
|
||||
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs-unstable.catppuccin-papirus-folders.override {
|
||||
package = pkgs.catppuccin-papirus-folders.override {
|
||||
accent = ctp.accent;
|
||||
flavor = ctp.flavor;
|
||||
};
|
||||
|
|
|
|||
49
modules/home/shells/fish/aliases.nix
Normal file
49
modules/home/shells/fish/aliases.nix
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
with pkgs; {
|
||||
ytmp3 = ''
|
||||
${getExe yt-dlp} -x --continue --add-metadata --embed-thumbnail --audio-format mp3 --audio-quality 0 --metadata-from-title="%(artist)s - %(title)s" --prefer-ffmpeg -o "%(title)s.%(ext)s"'';
|
||||
cat = "${getExe bat} --style=plain";
|
||||
vpn = "mullvad";
|
||||
uuid = "cat /proc/sys/kernel/random/uuid";
|
||||
grep = getExe ripgrep;
|
||||
fzf = getExe skim;
|
||||
untar = "tar -xvf";
|
||||
untargz = "tar -xzf";
|
||||
du = getExe du-dust;
|
||||
ps = getExe procs;
|
||||
lb = "pw-loopback -C \"alsa_input.pci-0000_0d_00.4.analog-stereo\" -P \"Scarlett Solo (3rd Gen.) Headphones / Line 1-2\"";
|
||||
deploy = "nixos-rebuild switch --flake ~/nixos#pluto --target-host zoeys.computer --use-remote-sudo";
|
||||
m = "mkdir -p";
|
||||
fcd = "cd $(find -type d | fzf)";
|
||||
l = "ls -lF --time-style=long-iso --icons";
|
||||
sc = "sudo systemctl";
|
||||
scu = "systemctl --user ";
|
||||
la = "${getExe eza} -lah --tree";
|
||||
ls = "${getExe eza} -h --git --icons --color=auto --group-directories-first -s extension";
|
||||
tree = "${getExe eza} --tree --icons --tree";
|
||||
kys = "shutdown now";
|
||||
gpl = "curl https://www.gnu.org/licenses/gpl-3.0.txt -o LICENSE";
|
||||
agpl = "curl https://www.gnu.org/licenses/agpl-3.0.txt -o LICENSE";
|
||||
tsm = "transmission-remote";
|
||||
g = "git";
|
||||
n = "nix";
|
||||
r = "rebuild";
|
||||
vm = "nixos-rebuild build-vm --flake ~/nixos#earth";
|
||||
mnt = "udisksctl mount -b";
|
||||
umnt = "udisksctl unmount -b";
|
||||
burn = "pkill -9";
|
||||
diff = "diff --color=auto";
|
||||
wu = "vpn disconnect -w && awsvpnclient start --config ~/Downloads/cvpn-endpoint-085400ccc19bb4a17.ovpn";
|
||||
"v" = "nvim";
|
||||
".." = "cd ..";
|
||||
"..." = "cd ../../";
|
||||
"...." = "cd ../../../";
|
||||
"....." = "cd ../../../../";
|
||||
"......" = "cd ../../../../../";
|
||||
}
|
||||
144
modules/home/shells/fish/default.nix
Normal file
144
modules/home/shells/fish/default.nix
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
{
|
||||
options,
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
with lib.custom; let
|
||||
cfg = config.shells.fish;
|
||||
in {
|
||||
options.shells.fish = with types; {
|
||||
enable = mkBoolOpt false "Enable Fish Configuration";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
generateCompletions = true;
|
||||
interactiveShellInit = ''
|
||||
set -gx LC_ALL en_US.UTF-8
|
||||
set -gx SSH_AUTH_SOCK /run/user/1000/keyring/ssh
|
||||
set -gx FLAKE /home/zoey/nixos/
|
||||
set -g FZF_PREVIEW_FILE_CMD "head -n 10"
|
||||
set -g FZF_PREVIEW_DIR_CMD "ls"
|
||||
'';
|
||||
|
||||
plugins = [
|
||||
{
|
||||
name = "foreign-env";
|
||||
src = pkgs.fishPlugins.foreign-env.src;
|
||||
}
|
||||
{
|
||||
name = "fzf.fish";
|
||||
src = pkgs.fishPlugins.fzf-fish.src;
|
||||
}
|
||||
{
|
||||
name = "z";
|
||||
src = pkgs.fishPlugins.z.src;
|
||||
}
|
||||
{
|
||||
name = "done";
|
||||
src = pkgs.fishPlugins.done.src;
|
||||
}
|
||||
{
|
||||
name = "colored-man-pages";
|
||||
src = pkgs.fishPlugins.colored-man-pages.src;
|
||||
}
|
||||
];
|
||||
|
||||
functions = {
|
||||
pf = ''
|
||||
fzf --bind ctrl-y:preview-up,ctrl-e:preview-down \
|
||||
--bind ctrl-b:preview-page-up,ctrl-f:preview-page-down \
|
||||
--bind ctrl-u:preview-half-page-up,ctrl-d:preview-half-page-down \
|
||||
--bind ctrl-k:up,ctrl-j:down \
|
||||
--preview='bat --style=numbers --color=always --line-range :100 {}'
|
||||
'';
|
||||
|
||||
ff = ''
|
||||
for file in (pf)
|
||||
set cmd "v $file"
|
||||
echo $cmd
|
||||
eval $cmd
|
||||
end
|
||||
'';
|
||||
};
|
||||
|
||||
shellAliases = import ./aliases.nix {inherit pkgs lib config;};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
gnumake
|
||||
# Runs programs without installing them
|
||||
comma
|
||||
|
||||
# grep replacement
|
||||
ripgrep
|
||||
|
||||
# ping, but with cool graph
|
||||
gping
|
||||
|
||||
fzf
|
||||
|
||||
# dns client
|
||||
dogdns
|
||||
|
||||
# neofetch but for git repos
|
||||
onefetch
|
||||
|
||||
# neofetch but for cpu's
|
||||
cpufetch
|
||||
|
||||
# download from yt and other websites
|
||||
yt-dlp
|
||||
|
||||
zsh-history
|
||||
|
||||
# man pages for tiktok attention span mfs
|
||||
tealdeer
|
||||
|
||||
# markdown previewer
|
||||
glow
|
||||
|
||||
# profiling tool
|
||||
hyperfine
|
||||
|
||||
imagemagick
|
||||
ffmpeg-full
|
||||
|
||||
# preview images in terminal
|
||||
catimg
|
||||
|
||||
# networking stuff
|
||||
nmap
|
||||
wget
|
||||
|
||||
# faster find
|
||||
fd
|
||||
|
||||
# http request thingy
|
||||
xh
|
||||
|
||||
# generate regex
|
||||
grex
|
||||
|
||||
# json thingy
|
||||
jq
|
||||
|
||||
# syncthnig for acoustic people
|
||||
rsync
|
||||
|
||||
figlet
|
||||
# Generate qr codes
|
||||
qrencode
|
||||
|
||||
# script kidde stuff
|
||||
hcxdumptool
|
||||
hashcat
|
||||
|
||||
unzip
|
||||
];
|
||||
};
|
||||
}
|
||||
51
modules/home/shells/nu/aliases.nix
Normal file
51
modules/home/shells/nu/aliases.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
with pkgs; {
|
||||
ytmp3 = ''
|
||||
${getExe yt-dlp} -x --continue --add-metadata --embed-thumbnail --audio-format mp3 --audio-quality 0 --metadata-from-title="%(artist)s - %(title)s" --prefer-ffmpeg -o "%(title)s.%(ext)s"'';
|
||||
cat = "${getExe bat} --style=plain";
|
||||
vpn = "mullvad";
|
||||
uuid = "cat /proc/sys/kernel/random/uuid";
|
||||
grep = getExe ripgrep;
|
||||
fzf = getExe skim;
|
||||
untar = "tar -xvf";
|
||||
untargz = "tar -xzf";
|
||||
MANPAGER = "sh -c 'col -bx | bat -l man -p'";
|
||||
du = getExe du-dust;
|
||||
ps = getExe procs;
|
||||
lb = "pw-loopback -C \"alsa_input.pci-0000_0d_00.4.analog-stereo\" -P \"Scarlett Solo (3rd Gen.) Headphones / Line 1-2\"";
|
||||
deploy = "nixos-rebuild switch --flake ~/nixos#pluto --target-host zoeys.computer --use-remote-sudo";
|
||||
m = "mkdir -p";
|
||||
fcd = "cd $(find -type d | fzf)";
|
||||
l = "ls -lF --time-style=long-iso --icons";
|
||||
sc = "sudo systemctl";
|
||||
scu = "systemctl --user ";
|
||||
la = "${getExe eza} -lah --tree";
|
||||
ls = "${getExe eza} -h --git --icons --color=auto --group-directories-first -s extension";
|
||||
tree = "${getExe eza} --tree --icons --tree";
|
||||
kys = "shutdown now";
|
||||
lv = "nvim -c \"normal '\''0\"";
|
||||
gpl = "curl https://www.gnu.org/licenses/gpl-3.0.txt -o LICENSE";
|
||||
agpl = "curl https://www.gnu.org/licenses/agpl-3.0.txt -o LICENSE";
|
||||
tsm = "transmission-remote";
|
||||
g = "git";
|
||||
n = "nix";
|
||||
r = "rebuild";
|
||||
vm = "nixos-rebuild build-vm --flake ~/nixos#earth";
|
||||
mnt = "udisksctl mount -b";
|
||||
umnt = "udisksctl unmount -b";
|
||||
burn = "pkill -9";
|
||||
diff = "diff --color=auto";
|
||||
wu = "vpn disconnect -w && awsvpnclient start --config ~/Downloads/cvpn-endpoint-085400ccc19bb4a17.ovpn";
|
||||
"v" = "nvim";
|
||||
".." = "cd ..";
|
||||
"..." = "cd ../../";
|
||||
"...." = "cd ../../../";
|
||||
"....." = "cd ../../../../";
|
||||
"......" = "cd ../../../../../";
|
||||
}
|
||||
92
modules/home/shells/nu/default.nix
Normal file
92
modules/home/shells/nu/default.nix
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
{
|
||||
options,
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
with lib.custom; let
|
||||
cfg = config.shells.nu;
|
||||
in {
|
||||
options.shells.nu = with types; {
|
||||
enable = mkBoolOpt false "Enable Nushell Configuration";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.nushell = {
|
||||
enable = true;
|
||||
|
||||
# Nushell doesn't need generateCompletions like fish
|
||||
|
||||
extraConfig = ''
|
||||
# Environment variables
|
||||
let-env LC_ALL = "en_US.UTF-8"
|
||||
let-env SSH_AUTH_SOCK = "/run/user/1000/keyring/ssh"
|
||||
let-env FLAKE = "/home/zoey/nixos/"
|
||||
|
||||
# FZF settings
|
||||
let-env FZF_PREVIEW_FILE_CMD = "head -n 10"
|
||||
let-env FZF_PREVIEW_DIR_CMD = "ls"
|
||||
|
||||
def pf [] {
|
||||
fzf --bind ctrl-y:preview-up,ctrl-e:preview-down \
|
||||
--bind ctrl-b:preview-page-up,ctrl-f:preview-page-down \
|
||||
--bind ctrl-u:preview-half-page-up,ctrl-d:preview-half-page-down \
|
||||
--bind ctrl-k:up,ctrl-j:down \
|
||||
--preview='bat --style=numbers --color=always --line-range :100 {}'
|
||||
}
|
||||
|
||||
def ff [] {
|
||||
let files = (pf)
|
||||
for file in $files {
|
||||
let cmd = $"v ($file)"
|
||||
echo $cmd
|
||||
nu -c $cmd
|
||||
}
|
||||
}
|
||||
'';
|
||||
|
||||
# Nushell handles plugins differently, you might want to use modules instead
|
||||
# or configure external tools directly
|
||||
|
||||
extraEnv = ''
|
||||
# Add any environment-specific configuration here
|
||||
'';
|
||||
|
||||
# Import aliases (you'll need to convert fish aliases to Nushell format)
|
||||
shellAliases = import ./aliases.nix {inherit pkgs lib config;};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
gnumake
|
||||
comma
|
||||
ripgrep
|
||||
gping
|
||||
fzf
|
||||
dogdns
|
||||
onefetch
|
||||
cpufetch
|
||||
yt-dlp
|
||||
zsh-history
|
||||
tealdeer
|
||||
glow
|
||||
hyperfine
|
||||
imagemagick
|
||||
ffmpeg-full
|
||||
catimg
|
||||
nmap
|
||||
wget
|
||||
fd
|
||||
xh
|
||||
grex
|
||||
jq
|
||||
rsync
|
||||
figlet
|
||||
qrencode
|
||||
hcxdumptool
|
||||
hashcat
|
||||
unzip
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -48,22 +48,21 @@ in {
|
|||
xwayland.enable = true;
|
||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||
|
||||
# systemd = {
|
||||
# enable = true;
|
||||
# enableXdgAutostart = true;
|
||||
# variables = ["-all"];
|
||||
# };
|
||||
systemd = {
|
||||
enable = true;
|
||||
# enableXdgAutostart = true;
|
||||
variables = ["-all"];
|
||||
};
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland.settings = with colors; {
|
||||
exec-once = [
|
||||
"pw-loopback -C \"alsa_input.pci-0000_0d_00.4.analog-stereo\" -P \"Scarlett Solo (3rd Gen.) Headphones / Line 1-2\""
|
||||
# "systemctl --user import-environment DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
"systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
# "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
# "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
"zen"
|
||||
"sleep 6;telegram-desktop"
|
||||
"sleep 10;thunderbird"
|
||||
"telegram-desktop"
|
||||
"thunderbird"
|
||||
"vesktop"
|
||||
"spotify"
|
||||
"slack"
|
||||
|
|
@ -77,9 +76,9 @@ in {
|
|||
|
||||
bind =
|
||||
[
|
||||
''${mod},RETURN,exec,${pkgs.kitty}/bin/kitty''
|
||||
''${mod},RETURN,exec,${pkgs.ghostty}/bin/ghostty''
|
||||
|
||||
"${mod},D,exec,killall anyrun || anyrun"
|
||||
"${mod},D,exec,rofi -show drun"
|
||||
"${mod},Q,killactive"
|
||||
"${mod},M,exit"
|
||||
"${mod},P,pseudo"
|
||||
|
|
@ -139,13 +138,12 @@ in {
|
|||
|
||||
decoration = {
|
||||
# fancy corners
|
||||
rounding = 10;
|
||||
rounding = 4;
|
||||
# blur
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 2;
|
||||
passes = 5;
|
||||
ignore_opacity = false;
|
||||
size = 6;
|
||||
passes = 2;
|
||||
new_optimizations = 1;
|
||||
contrast = 1;
|
||||
brightness = 1;
|
||||
|
|
@ -153,10 +151,10 @@ in {
|
|||
|
||||
shadow = {
|
||||
# shadow config
|
||||
enabled = true;
|
||||
range = 60;
|
||||
render_power = 5;
|
||||
color = "rgba(07061f29)";
|
||||
enabled = false;
|
||||
# range = 60;
|
||||
# render_power = 5;
|
||||
# color = "rgba(07061f29)";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -166,11 +164,11 @@ in {
|
|||
force_default_wallpaper = 0;
|
||||
disable_hyprland_logo = true;
|
||||
|
||||
vfr = false;
|
||||
vfr = true;
|
||||
|
||||
# dpms
|
||||
mouse_move_enables_dpms = true; # enable dpms on mouse/touchpad action
|
||||
key_press_enables_dpms = true; # enable dpms on keyboard action
|
||||
# mouse_move_enables_dpms = true; # enable dpms on mouse/touchpad action
|
||||
# key_press_enables_dpms = true; # enable dpms on keyboard action
|
||||
disable_autoreload = true; # autoreload is unnecessary on nixos, because the config is readonly anyway
|
||||
};
|
||||
|
||||
|
|
@ -218,6 +216,7 @@ in {
|
|||
"workspace special silent, title:^(Firefox — Sharing Indicator)$"
|
||||
"workspace special silent, title:^(.*is sharing (your screen|a window)\.)$"
|
||||
|
||||
"opacity 0.9 override,class:^(zen)"
|
||||
"workspace 5, class:^(thunderbird)$"
|
||||
"workspace 4, title:^(.*(Disc|WebC)ord.*)$"
|
||||
"workspace 4, class:^(.*Slack.*)$"
|
||||
|
|
@ -233,12 +232,12 @@ in {
|
|||
|
||||
# # fake a tray to let apps start
|
||||
# # https://github.com/nix-community/home-manager/issues/2064
|
||||
# systemd.user.targets.tray = {
|
||||
# Unit = {
|
||||
# Description = "Home Manager System Tray";
|
||||
# Requires = ["graphical-session-pre.target"];
|
||||
# };
|
||||
# };
|
||||
systemd.user.targets.tray = {
|
||||
Unit = {
|
||||
Description = "Home Manager System Tray";
|
||||
Requires = ["graphical-session-pre.target"];
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services = {
|
||||
swaybg = mkService {
|
||||
|
|
|
|||
|
|
@ -19,13 +19,13 @@ in {
|
|||
enable = true;
|
||||
settings = {
|
||||
spawn = [
|
||||
"firefox"
|
||||
"kitty"
|
||||
"zen"
|
||||
"ghostty"
|
||||
];
|
||||
|
||||
map = {
|
||||
normal = {
|
||||
"${super} Return" = "spawn kitty";
|
||||
"${super} Return" = "spawn ghostty";
|
||||
"${super} Q" = "close";
|
||||
"${super} M" = "exit";
|
||||
"${super} D" = "spawn anyrun";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue