deprecate stylix, fix minor gripes and bugs
This commit is contained in:
parent
6b492bad2f
commit
fb1ad8d919
42 changed files with 951 additions and 688 deletions
|
|
@ -1,4 +1,10 @@
|
|||
{ ... }:
|
||||
{ theme, ... }:
|
||||
|
||||
let
|
||||
n = theme.paletteNoHash;
|
||||
fonts = theme.fonts;
|
||||
terminalFontSize = toString fonts.sizes.terminal;
|
||||
in
|
||||
{
|
||||
programs.foot = {
|
||||
enable = true;
|
||||
|
|
@ -6,9 +12,39 @@
|
|||
settings = {
|
||||
main = {
|
||||
app-id = "footclient";
|
||||
dpi-aware = "no";
|
||||
font = "${fonts.monospace.name}:size=${terminalFontSize}";
|
||||
initial-color-theme = 1;
|
||||
workers = 32;
|
||||
};
|
||||
bell.system = "no";
|
||||
colors = {
|
||||
alpha = 1.0;
|
||||
background = n.darkestGray;
|
||||
foreground = n.lightGray;
|
||||
regular0 = n.darkestGray;
|
||||
regular1 = n.red;
|
||||
regular2 = n.green;
|
||||
regular3 = n.yellow;
|
||||
regular4 = n.purple;
|
||||
regular5 = n.blue;
|
||||
regular6 = n.magenta;
|
||||
regular7 = n.lightGray;
|
||||
bright0 = n.gray;
|
||||
bright1 = n.red;
|
||||
bright2 = n.green;
|
||||
bright3 = n.yellow;
|
||||
bright4 = n.purple;
|
||||
bright5 = n.blue;
|
||||
bright6 = n.magenta;
|
||||
bright7 = n.white;
|
||||
"16" = n.orange;
|
||||
"17" = n.cyan;
|
||||
"18" = n.darkerGray;
|
||||
"19" = n.darkGray;
|
||||
"20" = n.mutedGray;
|
||||
"21" = n.lighterGray;
|
||||
};
|
||||
scrollback.lines = 100000;
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.qutebrowser = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
58
home/modules/programs/qutebrowser/colors.nix
Normal file
58
home/modules/programs/qutebrowser/colors.nix
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
{ theme, ... }:
|
||||
|
||||
let
|
||||
p = theme.palette;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./colors/completion.nix
|
||||
./colors/downloads.nix
|
||||
./colors/messages.nix
|
||||
./colors/statusbar.nix
|
||||
./colors/tabs.nix
|
||||
];
|
||||
|
||||
programs.qutebrowser.settings = {
|
||||
colors = {
|
||||
contextmenu = {
|
||||
disabled = {
|
||||
bg = p.darkerGray;
|
||||
fg = p.darkestGray;
|
||||
};
|
||||
menu = {
|
||||
bg = p.darkestGray;
|
||||
fg = p.lightGray;
|
||||
};
|
||||
selected = {
|
||||
bg = p.gray;
|
||||
fg = p.lightGray;
|
||||
};
|
||||
};
|
||||
hints = {
|
||||
bg = p.darkerGray;
|
||||
fg = p.lightGray;
|
||||
match.fg = p.green;
|
||||
};
|
||||
keyhint = {
|
||||
bg = p.darkestGray;
|
||||
fg = p.lightGray;
|
||||
suffix.fg = p.lightGray;
|
||||
};
|
||||
prompts = {
|
||||
bg = p.darkestGray;
|
||||
border = "1px solid ${p.darkestGray}";
|
||||
fg = p.lightGray;
|
||||
selected = {
|
||||
bg = p.darkerGray;
|
||||
fg = p.lightGray;
|
||||
};
|
||||
};
|
||||
tooltip = {
|
||||
bg = p.darkestGray;
|
||||
fg = p.lightGray;
|
||||
};
|
||||
webpage.preferred_color_scheme = theme.polarity;
|
||||
};
|
||||
hints.border = "1px solid ${p.darkestGray}";
|
||||
};
|
||||
}
|
||||
34
home/modules/programs/qutebrowser/colors/completion.nix
Normal file
34
home/modules/programs/qutebrowser/colors/completion.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{ theme, ... }:
|
||||
|
||||
let
|
||||
p = theme.palette;
|
||||
in
|
||||
{
|
||||
programs.qutebrowser.settings.colors.completion = {
|
||||
category = {
|
||||
bg = p.darkestGray;
|
||||
border = {
|
||||
bottom = p.darkestGray;
|
||||
top = p.darkestGray;
|
||||
};
|
||||
fg = p.green;
|
||||
};
|
||||
even.bg = p.darkestGray;
|
||||
fg = p.lightGray;
|
||||
item.selected = {
|
||||
bg = p.gray;
|
||||
border = {
|
||||
bottom = p.gray;
|
||||
top = p.gray;
|
||||
};
|
||||
fg = p.lightGray;
|
||||
match.fg = p.green;
|
||||
};
|
||||
match.fg = p.green;
|
||||
odd.bg = p.darkerGray;
|
||||
scrollbar = {
|
||||
bg = p.darkestGray;
|
||||
fg = p.lightGray;
|
||||
};
|
||||
};
|
||||
}
|
||||
22
home/modules/programs/qutebrowser/colors/downloads.nix
Normal file
22
home/modules/programs/qutebrowser/colors/downloads.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ theme, ... }:
|
||||
|
||||
let
|
||||
p = theme.palette;
|
||||
in
|
||||
{
|
||||
programs.qutebrowser.settings.colors.downloads = {
|
||||
bar.bg = p.darkestGray;
|
||||
error = {
|
||||
bg = p.red;
|
||||
fg = p.darkestGray;
|
||||
};
|
||||
start = {
|
||||
bg = p.green;
|
||||
fg = p.darkestGray;
|
||||
};
|
||||
stop = {
|
||||
bg = p.magenta;
|
||||
fg = p.darkestGray;
|
||||
};
|
||||
};
|
||||
}
|
||||
24
home/modules/programs/qutebrowser/colors/messages.nix
Normal file
24
home/modules/programs/qutebrowser/colors/messages.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ theme, ... }:
|
||||
|
||||
let
|
||||
p = theme.palette;
|
||||
in
|
||||
{
|
||||
programs.qutebrowser.settings.colors.messages = {
|
||||
error = {
|
||||
bg = p.red;
|
||||
border = p.red;
|
||||
fg = p.darkestGray;
|
||||
};
|
||||
info = {
|
||||
bg = p.green;
|
||||
border = p.green;
|
||||
fg = p.darkestGray;
|
||||
};
|
||||
warning = {
|
||||
bg = p.blue;
|
||||
border = p.blue;
|
||||
fg = p.darkestGray;
|
||||
};
|
||||
};
|
||||
}
|
||||
52
home/modules/programs/qutebrowser/colors/statusbar.nix
Normal file
52
home/modules/programs/qutebrowser/colors/statusbar.nix
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
{ theme, ... }:
|
||||
|
||||
let
|
||||
p = theme.palette;
|
||||
in
|
||||
{
|
||||
programs.qutebrowser.settings.colors.statusbar = {
|
||||
caret = {
|
||||
bg = p.gray;
|
||||
fg = p.lightGray;
|
||||
selection = {
|
||||
bg = p.gray;
|
||||
fg = p.lightGray;
|
||||
};
|
||||
};
|
||||
command = {
|
||||
bg = p.darkestGray;
|
||||
fg = p.lightGray;
|
||||
private = {
|
||||
bg = p.darkerGray;
|
||||
fg = p.lightGray;
|
||||
};
|
||||
};
|
||||
insert = {
|
||||
bg = p.green;
|
||||
fg = p.darkestGray;
|
||||
};
|
||||
normal = {
|
||||
bg = p.darkestGray;
|
||||
fg = p.lightGray;
|
||||
};
|
||||
passthrough = {
|
||||
bg = p.magenta;
|
||||
fg = p.darkestGray;
|
||||
};
|
||||
private = {
|
||||
bg = p.darkerGray;
|
||||
fg = p.lightGray;
|
||||
};
|
||||
progress.bg = p.green;
|
||||
url = {
|
||||
error.fg = p.red;
|
||||
fg = p.lightGray;
|
||||
hover.fg = p.lightGray;
|
||||
success = {
|
||||
http.fg = p.magenta;
|
||||
https.fg = p.green;
|
||||
};
|
||||
warn.fg = p.blue;
|
||||
};
|
||||
};
|
||||
}
|
||||
53
home/modules/programs/qutebrowser/colors/tabs.nix
Normal file
53
home/modules/programs/qutebrowser/colors/tabs.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{ theme, ... }:
|
||||
|
||||
let
|
||||
p = theme.palette;
|
||||
in
|
||||
{
|
||||
programs.qutebrowser.settings.colors.tabs = {
|
||||
bar.bg = p.darkestGray;
|
||||
even = {
|
||||
bg = p.darkerGray;
|
||||
fg = p.lightGray;
|
||||
};
|
||||
indicator = {
|
||||
error = p.red;
|
||||
start = p.magenta;
|
||||
stop = p.green;
|
||||
};
|
||||
odd = {
|
||||
bg = p.darkestGray;
|
||||
fg = p.lightGray;
|
||||
};
|
||||
pinned = {
|
||||
even = {
|
||||
bg = p.green;
|
||||
fg = p.darkestGray;
|
||||
};
|
||||
odd = {
|
||||
bg = p.magenta;
|
||||
fg = p.darkestGray;
|
||||
};
|
||||
selected = {
|
||||
even = {
|
||||
bg = p.gray;
|
||||
fg = p.lightGray;
|
||||
};
|
||||
odd = {
|
||||
bg = p.gray;
|
||||
fg = p.lightGray;
|
||||
};
|
||||
};
|
||||
};
|
||||
selected = {
|
||||
even = {
|
||||
bg = p.gray;
|
||||
fg = p.lightGray;
|
||||
};
|
||||
odd = {
|
||||
bg = p.gray;
|
||||
fg = p.lightGray;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
8
home/modules/programs/qutebrowser/default.nix
Normal file
8
home/modules/programs/qutebrowser/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
imports = [
|
||||
./colors.nix
|
||||
./fonts.nix
|
||||
];
|
||||
|
||||
programs.qutebrowser.enable = true;
|
||||
}
|
||||
23
home/modules/programs/qutebrowser/fonts.nix
Normal file
23
home/modules/programs/qutebrowser/fonts.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{ theme, ... }:
|
||||
|
||||
let
|
||||
fonts = theme.fonts;
|
||||
fontSize = toString fonts.sizes.applications;
|
||||
in
|
||||
{
|
||||
programs.qutebrowser.settings.fonts = {
|
||||
default_family = fonts.sansSerif.name;
|
||||
default_size = "${fontSize}pt";
|
||||
web = {
|
||||
family = {
|
||||
cursive = fonts.serif.name;
|
||||
fantasy = fonts.serif.name;
|
||||
fixed = fonts.monospace.name;
|
||||
sans_serif = fonts.sansSerif.name;
|
||||
serif = fonts.serif.name;
|
||||
standard = fonts.sansSerif.name;
|
||||
};
|
||||
size.default = 18;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
commands = import ../../../lib/commands.nix { inherit pkgs; };
|
||||
inherit (commands) term;
|
||||
in
|
||||
{
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-unwrapped;
|
||||
terminal = term;
|
||||
};
|
||||
}
|
||||
21
home/modules/programs/rofi/default.nix
Normal file
21
home/modules/programs/rofi/default.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
commands = import ../../../../lib/commands.nix { inherit pkgs; };
|
||||
inherit (commands) term;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./theme.nix
|
||||
];
|
||||
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-unwrapped;
|
||||
terminal = term;
|
||||
extraConfig = {
|
||||
"run-command" = "${commands.uwsm} {cmd}";
|
||||
"run-shell-command" = "${commands.uwsm} ${term} -e {cmd}";
|
||||
};
|
||||
};
|
||||
}
|
||||
108
home/modules/programs/rofi/theme.nix
Normal file
108
home/modules/programs/rofi/theme.nix
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
{ config, theme, ... }:
|
||||
let
|
||||
inherit (config.lib.formats.rasi) mkLiteral;
|
||||
p = theme.palette;
|
||||
in
|
||||
{
|
||||
programs.rofi.theme = {
|
||||
"*" = {
|
||||
background = mkLiteral p.darkestGray;
|
||||
background-color = mkLiteral p.darkestGray;
|
||||
foreground = mkLiteral p.lightGray;
|
||||
lightbg = mkLiteral p.darkerGray;
|
||||
lightfg = mkLiteral p.lighterGray;
|
||||
red = mkLiteral p.red;
|
||||
blue = mkLiteral p.purple;
|
||||
border-color = mkLiteral "@foreground";
|
||||
separatorcolor = mkLiteral "@foreground";
|
||||
normal-background = mkLiteral "@background";
|
||||
normal-foreground = mkLiteral "@foreground";
|
||||
normal-text = mkLiteral p.lightGray;
|
||||
alternate-normal-background = mkLiteral "@lightbg";
|
||||
alternate-normal-foreground = mkLiteral "@foreground";
|
||||
alternate-normal-text = mkLiteral p.lightGray;
|
||||
selected-normal-background = mkLiteral "@lightfg";
|
||||
selected-normal-foreground = mkLiteral "@lightbg";
|
||||
selected-normal-text = mkLiteral p.darkerGray;
|
||||
active-background = mkLiteral "@background";
|
||||
active-foreground = mkLiteral "@blue";
|
||||
active-text = mkLiteral p.purple;
|
||||
alternate-active-background = mkLiteral "@lightbg";
|
||||
alternate-active-foreground = mkLiteral "@blue";
|
||||
alternate-active-text = mkLiteral p.purple;
|
||||
selected-active-background = mkLiteral "@blue";
|
||||
selected-active-foreground = mkLiteral "@background";
|
||||
selected-active-text = mkLiteral p.darkestGray;
|
||||
urgent-background = mkLiteral "@background";
|
||||
urgent-foreground = mkLiteral "@red";
|
||||
urgent-text = mkLiteral p.red;
|
||||
alternate-urgent-background = mkLiteral "@lightbg";
|
||||
alternate-urgent-foreground = mkLiteral "@red";
|
||||
alternate-urgent-text = mkLiteral p.red;
|
||||
selected-urgent-background = mkLiteral "@red";
|
||||
selected-urgent-foreground = mkLiteral "@background";
|
||||
selected-urgent-text = mkLiteral p.darkestGray;
|
||||
base-text = mkLiteral p.lightGray;
|
||||
};
|
||||
"button".text-color = mkLiteral "@normal-text";
|
||||
"button selected" = {
|
||||
background-color = mkLiteral "@selected-normal-background";
|
||||
text-color = mkLiteral "@selected-normal-text";
|
||||
};
|
||||
"case-indicator".text-color = mkLiteral "@normal-text";
|
||||
"element alternate.active" = {
|
||||
background-color = mkLiteral "@alternate-active-background";
|
||||
text-color = mkLiteral "@alternate-active-text";
|
||||
};
|
||||
"element alternate.normal" = {
|
||||
background-color = mkLiteral "@alternate-normal-background";
|
||||
text-color = mkLiteral "@alternate-normal-text";
|
||||
};
|
||||
"element alternate.urgent" = {
|
||||
background-color = mkLiteral "@alternate-urgent-background";
|
||||
text-color = mkLiteral "@alternate-urgent-text";
|
||||
};
|
||||
"element normal.active" = {
|
||||
background-color = mkLiteral "@active-background";
|
||||
text-color = mkLiteral "@active-text";
|
||||
};
|
||||
"element normal.normal" = {
|
||||
background-color = mkLiteral "@normal-background";
|
||||
text-color = mkLiteral "@normal-text";
|
||||
};
|
||||
"element normal.urgent" = {
|
||||
background-color = mkLiteral "@urgent-background";
|
||||
text-color = mkLiteral "@urgent-text";
|
||||
};
|
||||
"element selected.active" = {
|
||||
background-color = mkLiteral "@selected-active-background";
|
||||
text-color = mkLiteral "@selected-active-text";
|
||||
};
|
||||
"element selected.normal" = {
|
||||
background-color = mkLiteral "@selected-normal-background";
|
||||
text-color = mkLiteral "@selected-normal-text";
|
||||
};
|
||||
"element selected.urgent" = {
|
||||
background-color = mkLiteral "@selected-urgent-background";
|
||||
text-color = mkLiteral "@selected-urgent-text";
|
||||
};
|
||||
"element-icon" = {
|
||||
background-color = mkLiteral "inherit";
|
||||
text-color = mkLiteral "inherit";
|
||||
};
|
||||
"element-text" = {
|
||||
background-color = mkLiteral "inherit";
|
||||
text-color = mkLiteral "inherit";
|
||||
};
|
||||
"entry".text-color = mkLiteral "@normal-text";
|
||||
"inputbar".text-color = mkLiteral "@normal-text";
|
||||
"listview".border-color = mkLiteral "@separatorcolor";
|
||||
"message".border-color = mkLiteral "@separatorcolor";
|
||||
"prompt".text-color = mkLiteral "@normal-text";
|
||||
"scrollbar".handle-color = mkLiteral "@normal-foreground";
|
||||
"sidebar".border-color = mkLiteral "@separatorcolor";
|
||||
"textbox".text-color = mkLiteral "@base-text";
|
||||
"textbox-prompt-colon".text-color = mkLiteral "inherit";
|
||||
"window".background-color = mkLiteral "@background";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,10 +1,37 @@
|
|||
{ ... }:
|
||||
{ theme, ... }:
|
||||
|
||||
let
|
||||
n = theme.paletteNoHash;
|
||||
in
|
||||
{
|
||||
programs.swaylock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
color = n.darkestGray;
|
||||
ignore-empty-password = true;
|
||||
inside-caps-lock-color = n.darkestGray;
|
||||
inside-clear-color = n.darkestGray;
|
||||
inside-color = n.darkestGray;
|
||||
inside-ver-color = n.darkestGray;
|
||||
inside-wrong-color = n.darkestGray;
|
||||
indicator-caps-lock = true;
|
||||
key-hl-color = n.green;
|
||||
layout-bg-color = n.darkestGray;
|
||||
layout-border-color = n.darkerGray;
|
||||
layout-text-color = n.lightGray;
|
||||
line-uses-inside = true;
|
||||
ring-caps-lock-color = n.darkerGray;
|
||||
ring-clear-color = n.red;
|
||||
ring-color = n.darkerGray;
|
||||
ring-ver-color = n.green;
|
||||
ring-wrong-color = n.red;
|
||||
scaling = "fill";
|
||||
separator-color = "00000000";
|
||||
text-caps-lock-color = n.lightGray;
|
||||
text-clear-color = n.lightGray;
|
||||
text-color = n.lightGray;
|
||||
text-ver-color = n.lightGray;
|
||||
text-wrong-color = n.lightGray;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,26 +1,19 @@
|
|||
{ pkgs, ... }:
|
||||
{ pkgs, pkgs-unstable, ... }:
|
||||
|
||||
{
|
||||
programs.vscodium = {
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium.fhsWithPackages (
|
||||
package = pkgs-unstable.vscode.fhsWithPackages (
|
||||
ps: with ps; [ git ]
|
||||
);
|
||||
profiles.default = {
|
||||
userSettings = {
|
||||
"python.languageServer" = "None";
|
||||
"python.pyrefly.displayTypeErrors" = "force-on";
|
||||
"explorer.confirmDelete" = false;
|
||||
"explorer.confirmDragAndDrop" = false;
|
||||
"explorer.confirmPasteNative" = false;
|
||||
"git.confirmSync" = false;
|
||||
};
|
||||
extensions = [
|
||||
pkgs.vscode-extensions.ms-python.python
|
||||
pkgs.vscode-extensions.ms-python.debugpy
|
||||
pkgs.vscode-extensions.ms-vscode.cpptools
|
||||
pkgs.vscode-extensions.jnoortheen.nix-ide
|
||||
pkgs.vscode-extensions.github.copilot
|
||||
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||
pkgs-unstable.vscode-extensions.ms-python.python
|
||||
pkgs-unstable.vscode-extensions.ms-python.debugpy
|
||||
pkgs-unstable.vscode-extensions.ms-vscode.cpptools
|
||||
pkgs-unstable.vscode-extensions.jnoortheen.nix-ide
|
||||
pkgs-unstable.vscode-extensions.github.copilot
|
||||
] ++ pkgs-unstable.vscode-utils.extensionsFromVscodeMarketplace [
|
||||
{
|
||||
name = "xonsh";
|
||||
publisher = "jnoortheen";
|
||||
|
|
@ -30,14 +23,14 @@
|
|||
{
|
||||
name = "pyrefly";
|
||||
publisher = "meta";
|
||||
version = "0.57.1";
|
||||
hash = "sha256-aF7QcjpID0PE9gMBM6RGfJ3CHOpmyDuHJbbrRRvLiBI=";
|
||||
version = "1.0.0";
|
||||
hash = "sha256-0HMbHW2pFYTXhJH5cJ6JJYSNWXt3t2SxPBEa1J8ThXg=";
|
||||
}
|
||||
{
|
||||
name = "chatgpt";
|
||||
publisher = "openai";
|
||||
version = "26.5313.41514";
|
||||
hash = "sha256-kZHfcMzxqCtvkU04kDrlwaO3uHvn4+V6B5sLzlDfceo=";
|
||||
version = "26.5519.32039";
|
||||
hash = "sha256-hJhmLn3AvmY3X3RlbKlpeBX94w8PPm1cuPb3GNvgL/g=";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,15 +1,19 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
commands = import ../../../lib/commands.nix { inherit pkgs; };
|
||||
commands = import ../../../../lib/commands.nix { inherit pkgs; };
|
||||
inherit (commands) uwsm term;
|
||||
height = 20;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./style.nix
|
||||
];
|
||||
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
systemd = {
|
||||
enable = true;
|
||||
targets = [ "graphical-session.target" ];
|
||||
target = "graphical-session.target";
|
||||
};
|
||||
settings.mainBar = {
|
||||
layer = "bottom";
|
||||
|
|
@ -94,12 +98,5 @@ in
|
|||
on-click = "${uwsm} pavucontrol";
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
button {
|
||||
box-shadow: inset 0 -8px transparent;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
62
home/modules/programs/waybar/style.nix
Normal file
62
home/modules/programs/waybar/style.nix
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
{ lib, theme, ... }:
|
||||
|
||||
let
|
||||
p = theme.palette;
|
||||
fonts = theme.fonts;
|
||||
terminalFontSize = toString fonts.sizes.terminal;
|
||||
defineColors = lib.concatStringsSep "\n" (
|
||||
lib.mapAttrsToList (name: value: "@define-color ${name} ${value};") p
|
||||
);
|
||||
in
|
||||
{
|
||||
programs.waybar.style = ''
|
||||
${defineColors}
|
||||
|
||||
* {
|
||||
font-family: "${fonts.monospace.name}";
|
||||
font-size: ${terminalFontSize}pt;
|
||||
}
|
||||
|
||||
window#waybar, tooltip {
|
||||
background: alpha(@darkestGray, 1.000000);
|
||||
color: @lightGray;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
border-color: @purple;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: @lightGray;
|
||||
}
|
||||
|
||||
.modules-left #workspaces button,
|
||||
.modules-center #workspaces button,
|
||||
.modules-right #workspaces button {
|
||||
border-bottom: 3px solid transparent;
|
||||
}
|
||||
|
||||
.modules-left #workspaces button.focused,
|
||||
.modules-left #workspaces button.active,
|
||||
.modules-center #workspaces button.focused,
|
||||
.modules-center #workspaces button.active,
|
||||
.modules-right #workspaces button.focused,
|
||||
.modules-right #workspaces button.active {
|
||||
border-bottom: 3px solid @lightGray;
|
||||
}
|
||||
|
||||
.modules-left #workspaces button.urgent,
|
||||
.modules-center #workspaces button.urgent,
|
||||
.modules-right #workspaces button.urgent {
|
||||
border-bottom: 3px solid @red;
|
||||
background-color: @red;
|
||||
color: @darkestGray;
|
||||
}
|
||||
|
||||
button {
|
||||
box-shadow: inset 0 -8px transparent;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
'';
|
||||
}
|
||||
|
|
@ -1,12 +1,21 @@
|
|||
{ ... }:
|
||||
{ theme, ... }:
|
||||
|
||||
let
|
||||
p = theme.palette;
|
||||
fonts = theme.fonts;
|
||||
fontSize = toString fonts.sizes.applications;
|
||||
in
|
||||
{
|
||||
services.mako = {
|
||||
enable = true;
|
||||
settings = {
|
||||
actions = true;
|
||||
anchor = "top-center";
|
||||
background-color = "${p.darkestGray}FF";
|
||||
border-color = p.purple;
|
||||
border-radius = 0;
|
||||
default-timeout = 10000;
|
||||
font = "${fonts.sansSerif.name} ${fontSize}";
|
||||
height = 100;
|
||||
width = 600;
|
||||
icons = true;
|
||||
|
|
@ -14,6 +23,18 @@
|
|||
layer = "overlay";
|
||||
margin = 10;
|
||||
markup = true;
|
||||
progress-color = "over ${p.darkGray}";
|
||||
text-color = p.lightGray;
|
||||
"urgency=critical" = {
|
||||
background-color = "${p.darkestGray}FF";
|
||||
border-color = p.red;
|
||||
text-color = p.lightGray;
|
||||
};
|
||||
"urgency=low" = {
|
||||
background-color = "${p.darkestGray}FF";
|
||||
border-color = p.gray;
|
||||
text-color = p.lightGray;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,11 +25,23 @@ in
|
|||
command = "${pkgs.systemd}/bin/systemctl suspend";
|
||||
}
|
||||
];
|
||||
events = {
|
||||
before-sleep = "display off; systemctl --user stop libinput-gestures; ${lock}";
|
||||
after-resume = "display on; systemctl --user start libinput-gestures";
|
||||
lock = (display "off") + "; " + lock;
|
||||
unlock = display "on";
|
||||
};
|
||||
events = [
|
||||
{
|
||||
event = "before-sleep";
|
||||
command = "display off; systemctl --user stop libinput-gestures; ${lock}";
|
||||
}
|
||||
{
|
||||
event = "after-resume";
|
||||
command = "display on; systemctl --user start libinput-gestures";
|
||||
}
|
||||
{
|
||||
event = "lock";
|
||||
command = (display "off") + "; " + lock;
|
||||
}
|
||||
{
|
||||
event = "unlock";
|
||||
command = display "on";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
11
home/modules/theme/cursor.nix
Normal file
11
home/modules/theme/cursor.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ theme, ... }:
|
||||
|
||||
{
|
||||
home.pointerCursor = {
|
||||
name = theme.cursor.name;
|
||||
package = theme.cursor.package;
|
||||
size = theme.cursor.size;
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
};
|
||||
}
|
||||
22
home/modules/theme/dconf.nix
Normal file
22
home/modules/theme/dconf.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ theme, ... }:
|
||||
|
||||
let
|
||||
fonts = theme.fonts;
|
||||
fontSize = toString fonts.sizes.applications;
|
||||
terminalFontSize = toString fonts.sizes.terminal;
|
||||
in
|
||||
{
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings."org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
cursor-size = theme.cursor.size;
|
||||
cursor-theme = theme.cursor.name;
|
||||
document-font-name = "${fonts.serif.name} 13";
|
||||
font-name = "${fonts.sansSerif.name} ${fontSize}";
|
||||
gtk-theme = theme.gtk.theme.name;
|
||||
icon-theme = theme.icons.dark;
|
||||
monospace-font-name = "${fonts.monospace.name} ${terminalFontSize}";
|
||||
};
|
||||
};
|
||||
}
|
||||
8
home/modules/theme/default.nix
Normal file
8
home/modules/theme/default.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
imports = [
|
||||
./cursor.nix
|
||||
./dconf.nix
|
||||
./fonts.nix
|
||||
./gtk.nix
|
||||
];
|
||||
}
|
||||
13
home/modules/theme/fonts.nix
Normal file
13
home/modules/theme/fonts.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{ theme, ... }:
|
||||
|
||||
{
|
||||
fonts.fontconfig = {
|
||||
enable = true;
|
||||
defaultFonts = {
|
||||
emoji = [ theme.fonts.emoji.name ];
|
||||
monospace = [ theme.fonts.monospace.name ];
|
||||
sansSerif = [ theme.fonts.sansSerif.name ];
|
||||
serif = [ theme.fonts.serif.name ];
|
||||
};
|
||||
};
|
||||
}
|
||||
24
home/modules/theme/gtk.nix
Normal file
24
home/modules/theme/gtk.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ theme, ... }:
|
||||
|
||||
{
|
||||
gtk = {
|
||||
enable = true;
|
||||
font = {
|
||||
name = theme.fonts.sansSerif.name;
|
||||
package = theme.fonts.sansSerif.package;
|
||||
size = theme.fonts.sizes.applications;
|
||||
};
|
||||
theme = theme.gtk.theme;
|
||||
iconTheme = {
|
||||
name = theme.icons.dark;
|
||||
package = theme.icons.package;
|
||||
};
|
||||
cursorTheme = {
|
||||
name = theme.cursor.name;
|
||||
package = theme.cursor.package;
|
||||
size = theme.cursor.size;
|
||||
};
|
||||
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
}
|
||||
|
|
@ -6,10 +6,11 @@ in
|
|||
{
|
||||
imports = [
|
||||
./gtk.nix
|
||||
./theme.nix
|
||||
./xdg.nix
|
||||
./shells/default.nix
|
||||
../../programs/foot.nix
|
||||
../../programs/qutebrowser.nix
|
||||
../../programs/qutebrowser
|
||||
../../services/espanso.nix
|
||||
../../services/gnome-keyring.nix
|
||||
];
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ let
|
|||
in
|
||||
{
|
||||
imports = [
|
||||
../../../programs/rofi.nix
|
||||
../../../programs/waybar.nix
|
||||
../../../programs/rofi
|
||||
../../../programs/waybar
|
||||
../../../programs/swaylock.nix
|
||||
../../../services/swayidle.nix
|
||||
../../../services/mako.nix
|
||||
|
|
|
|||
45
home/modules/wm/sway/theme.nix
Normal file
45
home/modules/wm/sway/theme.nix
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
{ theme, ... }:
|
||||
|
||||
let
|
||||
p = theme.palette;
|
||||
in
|
||||
{
|
||||
wayland.windowManager.sway.config.colors = {
|
||||
background = p.darkestGray;
|
||||
focused = {
|
||||
background = p.darkestGray;
|
||||
border = p.purple;
|
||||
childBorder = p.purple;
|
||||
indicator = p.green;
|
||||
text = p.lightGray;
|
||||
};
|
||||
focusedInactive = {
|
||||
background = p.darkestGray;
|
||||
border = p.gray;
|
||||
childBorder = p.gray;
|
||||
indicator = p.green;
|
||||
text = p.lightGray;
|
||||
};
|
||||
placeholder = {
|
||||
background = p.darkestGray;
|
||||
border = p.gray;
|
||||
childBorder = p.gray;
|
||||
indicator = p.green;
|
||||
text = p.lightGray;
|
||||
};
|
||||
unfocused = {
|
||||
background = p.darkestGray;
|
||||
border = p.gray;
|
||||
childBorder = p.gray;
|
||||
indicator = p.green;
|
||||
text = p.lightGray;
|
||||
};
|
||||
urgent = {
|
||||
background = p.darkestGray;
|
||||
border = p.red;
|
||||
childBorder = p.red;
|
||||
indicator = p.green;
|
||||
text = p.lightGray;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
{ pkgs, pkgs-unstable, ... }:
|
||||
let
|
||||
commands = import ../../../../lib/commands.nix { inherit pkgs; };
|
||||
inherit (commands) swaymsg lock;
|
||||
|
|
@ -28,7 +28,7 @@ in
|
|||
pkgs.vlc
|
||||
pkgs.loupe
|
||||
pkgs.nautilus
|
||||
pkgs.chromium
|
||||
pkgs-unstable.chromium
|
||||
];
|
||||
defaultApplications = {
|
||||
"text/*" = [ "${pkgs.gnome-text-editor}/share/applications/org.gnome.TextEditor.desktop" ];
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
{ pkgs, lib, repoRoot, ... }:
|
||||
{ pkgs, pkgs-unstable, lib, repoRoot, ... }:
|
||||
let
|
||||
bottles = pkgs.bottles.override { removeWarningPopup = true; };
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
../modules/programs/chromium.nix
|
||||
|
|
@ -6,26 +9,22 @@
|
|||
../modules/programs/vscode.nix
|
||||
../modules/services/syncthing.nix
|
||||
];
|
||||
|
||||
stylix.enableReleaseChecks = false;
|
||||
|
||||
xdg.configFile."obsidian/obsidian.json".source = lib.mkForce ../conf/obsidian.json;
|
||||
|
||||
xdg = {
|
||||
enable = true;
|
||||
userDirs = {
|
||||
enable = true;
|
||||
setSessionVariables = true;
|
||||
};
|
||||
mime.enable = true;
|
||||
autostart = {
|
||||
enable = true;
|
||||
entries = [
|
||||
"${pkgs.chromium}/share/applications/chromium-browser.desktop"
|
||||
"${pkgs.discord}/share/applications/discord.desktop"
|
||||
"${pkgs.signal-desktop}/share/applications/signal.desktop"
|
||||
"${pkgs.obsidian}/share/applications/obsidian.desktop"
|
||||
"${pkgs.vscodium}/share/applications/codium.desktop"
|
||||
"${pkgs-unstable.chromium}/share/applications/chromium-browser.desktop"
|
||||
"${pkgs-unstable.discord}/share/applications/discord.desktop"
|
||||
"${pkgs-unstable.signal-desktop}/share/applications/signal.desktop"
|
||||
"${pkgs-unstable.obsidian}/share/applications/obsidian.desktop"
|
||||
"${pkgs-unstable.vscode}/share/applications/code.desktop"
|
||||
];
|
||||
};
|
||||
desktopEntries = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue