tons of theme tweaks, +gruvbox
This commit is contained in:
parent
80d22a470a
commit
2ad77494b2
30 changed files with 410 additions and 371 deletions
|
|
@ -8,7 +8,7 @@ in {
|
||||||
imports = [
|
imports = [
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
(mkAliasOptionModule ["hm"] ["home-manager" "users" config.user.name])
|
(mkAliasOptionModule ["hm"] ["home-manager" "users" config.user.name])
|
||||||
inputs.nix-colors.homeManagerModules.default # >home manager modules >in non-hm modules
|
inputs.base16.nixosModule
|
||||||
inputs.nix-index-database.nixosModules.default
|
inputs.nix-index-database.nixosModules.default
|
||||||
inputs.t2fanrd.nixosModules.t2fanrd
|
inputs.t2fanrd.nixosModules.t2fanrd
|
||||||
inputs.niri.nixosModules.niri
|
inputs.niri.nixosModules.niri
|
||||||
|
|
|
||||||
126
flake.lock
generated
126
flake.lock
generated
|
|
@ -1,18 +1,20 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"base16-schemes": {
|
"base16": {
|
||||||
"flake": false,
|
"inputs": {
|
||||||
|
"fromYaml": "fromYaml"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696158499,
|
"lastModified": 1755819240,
|
||||||
"narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=",
|
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
|
||||||
"owner": "tinted-theming",
|
"owner": "senchopens",
|
||||||
"repo": "base16-schemes",
|
"repo": "base16.nix",
|
||||||
"rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a",
|
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "tinted-theming",
|
"owner": "senchopens",
|
||||||
"repo": "base16-schemes",
|
"repo": "base16.nix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -139,19 +141,19 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fuzzel-catppuccin": {
|
"fromYaml": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771578346,
|
"lastModified": 1731966426,
|
||||||
"narHash": "sha256-+/7lxQTRDZ0m+GAAFIjvFt8EXDeqZUtv0pLnNgaauZw=",
|
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
|
||||||
"owner": "catppuccin",
|
"owner": "SenchoPens",
|
||||||
"repo": "fuzzel",
|
"repo": "fromYaml",
|
||||||
"rev": "879879da8a7dc58f173b4cd7987723fd19bef6d5",
|
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "catppuccin",
|
"owner": "SenchoPens",
|
||||||
"repo": "fuzzel",
|
"repo": "fromYaml",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -380,25 +382,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nix-colors": {
|
|
||||||
"inputs": {
|
|
||||||
"base16-schemes": "base16-schemes",
|
|
||||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1707825078,
|
|
||||||
"narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=",
|
|
||||||
"owner": "misterio77",
|
|
||||||
"repo": "nix-colors",
|
|
||||||
"rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "misterio77",
|
|
||||||
"repo": "nix-colors",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-index-database": {
|
"nix-index-database": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -450,21 +433,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-lib_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1697935651,
|
|
||||||
"narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1776221942,
|
"lastModified": 1776221942,
|
||||||
|
|
@ -561,40 +529,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rofi-catppuccin": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1752883501,
|
|
||||||
"narHash": "sha256-81eeFjwM/haPjIEWkZPp1JSDwhWbWDAuKtWiCg7P9Q0=",
|
|
||||||
"owner": "catppuccin",
|
|
||||||
"repo": "rofi",
|
|
||||||
"rev": "71fb15577ccb091df2f4fc1f65710edbc61b5a53",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "catppuccin",
|
|
||||||
"repo": "rofi",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"base16": "base16",
|
||||||
"cachyos-kernel": "cachyos-kernel",
|
"cachyos-kernel": "cachyos-kernel",
|
||||||
"catppuccin": "catppuccin",
|
"catppuccin": "catppuccin",
|
||||||
"fuzzel-catppuccin": "fuzzel-catppuccin",
|
|
||||||
"hardware": "hardware",
|
"hardware": "hardware",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"hyprlock": "hyprlock",
|
"hyprlock": "hyprlock",
|
||||||
"niri": "niri",
|
"niri": "niri",
|
||||||
"nix-colors": "nix-colors",
|
|
||||||
"nix-index-database": "nix-index-database",
|
"nix-index-database": "nix-index-database",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"rofi-catppuccin": "rofi-catppuccin",
|
|
||||||
"systems": "systems_2",
|
"systems": "systems_2",
|
||||||
"t2fanrd": "t2fanrd",
|
"t2fanrd": "t2fanrd",
|
||||||
|
"tt-schemes": "tt-schemes",
|
||||||
"vicinae": "vicinae",
|
"vicinae": "vicinae",
|
||||||
"vicinae-extensions": "vicinae-extensions",
|
"vicinae-extensions": "vicinae-extensions"
|
||||||
"waybar-catppuccin": "waybar-catppuccin"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
|
|
@ -675,6 +625,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"tt-schemes": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1776808072,
|
||||||
|
"narHash": "sha256-FwuOyAWXsdG7/1TpndL0gYPzBh5XOi1gNliZB774VaA=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "schemes",
|
||||||
|
"rev": "d5ddce0697a91203fd3eccc40140890a69fc279e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "schemes",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"vicinae": {
|
"vicinae": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_6",
|
"nixpkgs": "nixpkgs_6",
|
||||||
|
|
@ -742,22 +708,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"waybar-catppuccin": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1720870206,
|
|
||||||
"narHash": "sha256-za0y6hcN2rvN6Xjf31xLRe4PP0YyHu2i454ZPjr+lWA=",
|
|
||||||
"owner": "catppuccin",
|
|
||||||
"repo": "waybar",
|
|
||||||
"rev": "ee8ed32b4f63e9c417249c109818dcc05a2e25da",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "catppuccin",
|
|
||||||
"repo": "waybar",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"xwayland-satellite-stable": {
|
"xwayland-satellite-stable": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
|
||||||
11
flake.nix
11
flake.nix
|
|
@ -9,7 +9,8 @@
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
hardware.url = "github:nixos/nixos-hardware";
|
hardware.url = "github:nixos/nixos-hardware";
|
||||||
nix-colors.url = "github:misterio77/nix-colors";
|
|
||||||
|
base16.url = "github:senchopens/base16.nix";
|
||||||
|
|
||||||
nix-index-database.url = "github:nix-community/nix-index-database";
|
nix-index-database.url = "github:nix-community/nix-index-database";
|
||||||
nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
|
nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
@ -29,12 +30,8 @@
|
||||||
|
|
||||||
catppuccin.url = "github:catppuccin/nix";
|
catppuccin.url = "github:catppuccin/nix";
|
||||||
|
|
||||||
waybar-catppuccin.url = "github:catppuccin/waybar";
|
tt-schemes.url = "github:tinted-theming/schemes";
|
||||||
waybar-catppuccin.flake = false;
|
tt-schemes.flake = false;
|
||||||
fuzzel-catppuccin.url = "github:catppuccin/fuzzel";
|
|
||||||
fuzzel-catppuccin.flake = false;
|
|
||||||
rofi-catppuccin.url = "github:catppuccin/rofi";
|
|
||||||
rofi-catppuccin.flake = false;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ { self, nixpkgs, systems, ... }:
|
outputs = inputs @ { self, nixpkgs, systems, ... }:
|
||||||
|
|
|
||||||
|
|
@ -66,10 +66,9 @@
|
||||||
waybar.enable = true;
|
waybar.enable = true;
|
||||||
wob.enable = true;
|
wob.enable = true;
|
||||||
gammastep.enable = true;
|
gammastep.enable = true;
|
||||||
# fuzzel.enable = true;
|
|
||||||
# cliphist.enable = true;
|
|
||||||
wl-clip-persist.enable = true;
|
wl-clip-persist.enable = true;
|
||||||
vicinae.enable = true;
|
vicinae.enable = true;
|
||||||
|
vicinae.dmenu = true;
|
||||||
|
|
||||||
# display manager
|
# display manager
|
||||||
regreet.enable = true;
|
regreet.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -4,17 +4,19 @@
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
inputs.hardware.nixosModules.common-cpu-amd
|
inputs.hardware.nixosModules.common-cpu-amd
|
||||||
|
inputs.hardware.nixosModules.common-cpu-amd-zenpower
|
||||||
inputs.hardware.nixosModules.common-gpu-amd
|
inputs.hardware.nixosModules.common-gpu-amd
|
||||||
inputs.hardware.nixosModules.common-pc-ssd
|
inputs.hardware.nixosModules.common-pc-ssd
|
||||||
inputs.hardware.nixosModules.common-pc
|
inputs.hardware.nixosModules.common-pc
|
||||||
|
inputs.hardware.nixosModules.msi-b550-a-pro # pro b550m-vc, not b550-a pro, but they use mostly the same chips
|
||||||
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sdhci_pci" ];
|
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sdhci_pci" ];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [ "kvm-amd" "amdgpu" ];
|
boot.kernelModules = [ "kvm-amd" "zenergy" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = with config.boot.kernelPackages; [ zenergy ];
|
||||||
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
|
||||||
|
|
@ -63,10 +63,9 @@
|
||||||
batsignal.enable = true;
|
batsignal.enable = true;
|
||||||
wob.enable = true;
|
wob.enable = true;
|
||||||
gammastep.enable = true;
|
gammastep.enable = true;
|
||||||
# cliphist.enable = true;
|
|
||||||
# fuzzel.enable = true;
|
|
||||||
wl-clip-persist.enable = true;
|
wl-clip-persist.enable = true;
|
||||||
vicinae.enable = true;
|
vicinae.enable = true;
|
||||||
|
vicinae.dmenu = true;
|
||||||
|
|
||||||
# display manager
|
# display manager
|
||||||
regreet.enable = true;
|
regreet.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ in {
|
||||||
default = pkgs.writeShellScript "awww-swap" ''
|
default = pkgs.writeShellScript "awww-swap" ''
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
file=$(ls ${cfg.wallpapersFolder} | ${lib.getExe config.modules.desktop.rofi.package} -dmenu -sep '\n' -i -p "select a wallpaper")
|
file=$(ls ${cfg.wallpapersFolder} | dmenu -p "select a wallpaper")
|
||||||
wallpaper="${cfg.wallpapersFolder}/$file"
|
wallpaper="${cfg.wallpapersFolder}/$file"
|
||||||
|
|
||||||
[ ! -f "$wallpaper" ] && exit 1
|
[ ! -f "$wallpaper" ] && exit 1
|
||||||
|
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
{ lib, config, pkgs, inputs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.modules.desktop.cliphist;
|
|
||||||
in {
|
|
||||||
options.modules.desktop.cliphist = {
|
|
||||||
enable = mkEnableOption "enable cliphist, a clipboard manager for wayland";
|
|
||||||
package = mkOption {
|
|
||||||
type = types.package;
|
|
||||||
default = pkgs.cliphist;
|
|
||||||
};
|
|
||||||
summonScript = mkOption {
|
|
||||||
type = types.package;
|
|
||||||
default = pkgs.writeShellScript "cliphist-summon" ''
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
${lib.getExe cfg.package} list | ${lib.getExe config.modules.desktop.fuzzel.package} --dmenu | ${lib.getExe cfg.package} decode | wl-copy
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
hm.services.cliphist = {
|
|
||||||
enable = true;
|
|
||||||
allowImages = true;
|
|
||||||
package = cfg.package;
|
|
||||||
};
|
|
||||||
|
|
||||||
modules.desktop.rofi.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -12,20 +12,22 @@ in {
|
||||||
hm.services.dunst = {
|
hm.services.dunst = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
settings = with config.colorScheme.palette; {
|
settings = let
|
||||||
|
inherit (config.modules.desktop.themes) rounding padding;
|
||||||
|
in with config.scheme.withHashtag; {
|
||||||
global = {
|
global = {
|
||||||
follow = "mouse";
|
follow = "mouse";
|
||||||
width = 300;
|
width = 300;
|
||||||
height = 145;
|
height = 145;
|
||||||
frame_color = "#${base02}";
|
frame_color = "${base02}";
|
||||||
|
|
||||||
origin = "top-right";
|
origin = "top-right";
|
||||||
# various non-color theming settings
|
# various non-color theming settings
|
||||||
offset = "15x15";
|
offset = let offset = builtins.toString (padding * 2); in "${offset}x${offset}";
|
||||||
padding = 15;
|
padding = padding;
|
||||||
horizontal_padding = 15;
|
horizontal_padding = padding;
|
||||||
text_icon_padding = 15;
|
text_icon_padding = padding;
|
||||||
corner_radius = 8;
|
corner_radius = rounding;
|
||||||
gap_size = 0;
|
gap_size = 0;
|
||||||
frame_width = 1;
|
frame_width = 1;
|
||||||
|
|
||||||
|
|
@ -33,7 +35,7 @@ in {
|
||||||
|
|
||||||
progress_bar = true;
|
progress_bar = true;
|
||||||
progress_bar_frame_width = 1;
|
progress_bar_frame_width = 1;
|
||||||
progress_bar_corner_radius = 8;
|
progress_bar_corner_radius = rounding;
|
||||||
|
|
||||||
alignment = "left";
|
alignment = "left";
|
||||||
markup = "full";
|
markup = "full";
|
||||||
|
|
@ -56,19 +58,19 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
urgency_low = {
|
urgency_low = {
|
||||||
background = "#${base00}FF";
|
background = "${base00}FF";
|
||||||
foreground = "#${base05}";
|
foreground = "${base05}";
|
||||||
};
|
};
|
||||||
|
|
||||||
urgency_normal = {
|
urgency_normal = {
|
||||||
background = "#${base00}FF";
|
background = "${base00}FF";
|
||||||
foreground = "#${base05}";
|
foreground = "${base05}";
|
||||||
};
|
};
|
||||||
|
|
||||||
urgency_critical = {
|
urgency_critical = {
|
||||||
background = "#${base00}FF";
|
background = "${base00}FF";
|
||||||
foreground = "#${base05}";
|
foreground = "${base05}";
|
||||||
frame_color = "#${base08}"; # base16 spec says red
|
frame_color = "${base08}"; # base16 spec says red
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -123,6 +123,8 @@ in {
|
||||||
noto-fonts-color-emoji
|
noto-fonts-color-emoji
|
||||||
noto-fonts-monochrome-emoji
|
noto-fonts-monochrome-emoji
|
||||||
font-awesome
|
font-awesome
|
||||||
|
|
||||||
|
pkgs.my.loveletter
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
]);
|
]);
|
||||||
|
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
{ lib, config, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.modules.desktop.fuzzel;
|
|
||||||
in {
|
|
||||||
options.modules.desktop.fuzzel = {
|
|
||||||
enable = mkEnableOption "Enable fuzzel, an application launcher similar to rofi's drun mode";
|
|
||||||
package = mkOption {
|
|
||||||
type = types.package;
|
|
||||||
default = pkgs.fuzzel;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
hm.programs.fuzzel = {
|
|
||||||
enable = true;
|
|
||||||
package = cfg.package;
|
|
||||||
settings = {
|
|
||||||
main = {
|
|
||||||
terminal = "wezterm start";
|
|
||||||
font = with config.modules.desktop.fonts.fonts.monospace; "${family}:pixelsize=${toString size}";
|
|
||||||
prompt = "> ";
|
|
||||||
dpi-aware = "no";
|
|
||||||
lines = 20;
|
|
||||||
width = 28;
|
|
||||||
letter-spacing = 0.5;
|
|
||||||
horizontal-pad = 32;
|
|
||||||
vertical-pad = 8;
|
|
||||||
};
|
|
||||||
border = {
|
|
||||||
width = 1;
|
|
||||||
radius = config.modules.desktop.fonts.fonts.monospace.size;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -20,7 +20,9 @@ in {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = cfg.package;
|
package = cfg.package;
|
||||||
|
|
||||||
settings = with config.colorScheme.palette; {
|
settings = let
|
||||||
|
inherit (config.modules.desktop.themes) rounding;
|
||||||
|
in with config.scheme; {
|
||||||
general = {
|
general = {
|
||||||
hide_cursor = false;
|
hide_cursor = false;
|
||||||
text_trim = true;
|
text_trim = true;
|
||||||
|
|
@ -38,7 +40,7 @@ in {
|
||||||
{
|
{
|
||||||
size = "280, 280";
|
size = "280, 280";
|
||||||
color = "rgb(${base00})";
|
color = "rgb(${base00})";
|
||||||
rounding = 48;
|
rounding = rounding;
|
||||||
|
|
||||||
position = "0, 45";
|
position = "0, 45";
|
||||||
halign = "center"; valign = "center";
|
halign = "center"; valign = "center";
|
||||||
|
|
@ -52,8 +54,7 @@ in {
|
||||||
position = "0, 105";
|
position = "0, 105";
|
||||||
text = "cmd[update:1000] echo \"<span font_weight='1000'>$(date +'%H')</span>\"";
|
text = "cmd[update:1000] echo \"<span font_weight='1000'>$(date +'%H')</span>\"";
|
||||||
font_size = 78;
|
font_size = 78;
|
||||||
# TODO: make more dynamic
|
color = "rgb(${base05})";
|
||||||
color = "rgb(f5c2e7)"; # catppuccin pink
|
|
||||||
font_family = config.modules.desktop.fonts.fonts.sansSerif.family;
|
font_family = config.modules.desktop.fonts.fonts.sansSerif.family;
|
||||||
halign = "center"; valign = "center";
|
halign = "center"; valign = "center";
|
||||||
}
|
}
|
||||||
|
|
@ -100,7 +101,8 @@ in {
|
||||||
{
|
{
|
||||||
position = "0, -140";
|
position = "0, -140";
|
||||||
size = "280, 48";
|
size = "280, 48";
|
||||||
outline_thickness = 2;
|
rounding = rounding;
|
||||||
|
outline_thickness = 1;
|
||||||
dots_size = 0.3;
|
dots_size = 0.3;
|
||||||
fade_on_empty = false;
|
fade_on_empty = false;
|
||||||
placeholder_text = "";
|
placeholder_text = "";
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
layout = {
|
layout = {
|
||||||
gaps = 6;
|
gaps = config.modules.desktop.themes.padding;
|
||||||
|
|
||||||
center-focused-column = "on-overflow";
|
center-focused-column = "on-overflow";
|
||||||
|
|
||||||
|
|
@ -229,7 +229,7 @@ in {
|
||||||
# TODO: configure popups
|
# TODO: configure popups
|
||||||
window-rules = [
|
window-rules = [
|
||||||
{
|
{
|
||||||
geometry-corner-radius = allCorners 10.0;
|
geometry-corner-radius = allCorners (config.modules.desktop.themes.rounding * 1.0);
|
||||||
clip-to-geometry = true;
|
clip-to-geometry = true;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|
@ -310,7 +310,6 @@ in {
|
||||||
];
|
];
|
||||||
|
|
||||||
# TODO: add shadows onto notifications. weird geometry beware !!!
|
# TODO: add shadows onto notifications. weird geometry beware !!!
|
||||||
# TODO: rounded vicinae
|
|
||||||
layer-rules = [
|
layer-rules = [
|
||||||
{
|
{
|
||||||
matches = [
|
matches = [
|
||||||
|
|
@ -318,13 +317,11 @@ in {
|
||||||
# obliterate all dmenu-like things--too dangerous to stream (clipboard history, passwords)
|
# obliterate all dmenu-like things--too dangerous to stream (clipboard history, passwords)
|
||||||
{ namespace = "^rofi$"; }
|
{ namespace = "^rofi$"; }
|
||||||
{ namespace = "^vicinae$"; }
|
{ namespace = "^vicinae$"; }
|
||||||
{ namespace = "^launcher$"; }
|
|
||||||
];
|
];
|
||||||
block-out-from = "screen-capture";
|
block-out-from = "screen-capture";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
matches = [
|
matches = [
|
||||||
{ namespace = "^launcher$"; }
|
|
||||||
{ namespace = "^rofi$"; }
|
{ namespace = "^rofi$"; }
|
||||||
{ namespace = "^vicinae$"; }
|
{ namespace = "^vicinae$"; }
|
||||||
{ namespace = "^wob$"; }
|
{ namespace = "^wob$"; }
|
||||||
|
|
@ -339,13 +336,12 @@ in {
|
||||||
}
|
}
|
||||||
# shadow rounded corner cases...
|
# shadow rounded corner cases...
|
||||||
# defined in program config but we need to edit geometry too for shadows!!
|
# defined in program config but we need to edit geometry too for shadows!!
|
||||||
# monospace
|
|
||||||
{
|
{
|
||||||
matches = [
|
matches = [
|
||||||
{ namespace = "^launcher$"; }
|
|
||||||
{ namespace = "^rofi$"; }
|
{ namespace = "^rofi$"; }
|
||||||
|
{ namespace = "^vicinae$"; }
|
||||||
];
|
];
|
||||||
geometry-corner-radius = allCorners (config.modules.desktop.fonts.fonts.monospace.size * 1.0); # its 1em, so
|
geometry-corner-radius = allCorners (config.modules.desktop.themes.rounding * 1.0);
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -354,7 +350,6 @@ in {
|
||||||
in {
|
in {
|
||||||
"Mod+Shift+Slash".action = show-hotkey-overlay;
|
"Mod+Shift+Slash".action = show-hotkey-overlay;
|
||||||
|
|
||||||
# "Mod+D".action = spawn "fuzzel";
|
|
||||||
"Mod+D".action = spawn "vicinae" "vicinae://toggle";
|
"Mod+D".action = spawn "vicinae" "vicinae://toggle";
|
||||||
|
|
||||||
"Mod+Q".action = close-window;
|
"Mod+Q".action = close-window;
|
||||||
|
|
@ -431,7 +426,7 @@ in {
|
||||||
"Mod+Shift+Minus".action = set-window-height "-10%";
|
"Mod+Shift+Minus".action = set-window-height "-10%";
|
||||||
"Mod+Shift+Equal".action = set-window-height "+10%";
|
"Mod+Shift+Equal".action = set-window-height "+10%";
|
||||||
|
|
||||||
"Print".action.screenshot = { show-pointer = false; };
|
"Print".action.screenshot-screen = { show-pointer = false; };
|
||||||
|
|
||||||
"Mod+Grave".action = toggle-overview;
|
"Mod+Grave".action = toggle-overview;
|
||||||
|
|
||||||
|
|
@ -457,7 +452,6 @@ in {
|
||||||
"XF86AudioNext".action = sh "${lib.getExe pkgs.playerctl} next";
|
"XF86AudioNext".action = sh "${lib.getExe pkgs.playerctl} next";
|
||||||
|
|
||||||
"Mod+Shift+C".action = sh "${lib.getExe pkgs.hyprpicker} -a";
|
"Mod+Shift+C".action = sh "${lib.getExe pkgs.hyprpicker} -a";
|
||||||
# "Mod+V".action = sh "${config.modules.desktop.cliphist.summonScript}";
|
|
||||||
"Mod+V".action = spawn "vicinae" "vicinae://extensions/vicinae/clipboard/history";
|
"Mod+V".action = spawn "vicinae" "vicinae://extensions/vicinae/clipboard/history";
|
||||||
|
|
||||||
"Mod+Shift+Control+T".action = toggle-debug-tint;
|
"Mod+Shift+Control+T".action = toggle-debug-tint;
|
||||||
|
|
|
||||||
|
|
@ -13,20 +13,25 @@ in {
|
||||||
services.greetd = {
|
services.greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
# TODO: fix focus requiring a mouse click
|
||||||
default_session = let
|
default_session = let
|
||||||
|
swaymsg = "${pkgs.sway}/bin/swaymsg";
|
||||||
swayConfig = let
|
swayConfig = let
|
||||||
monitors = config.modules.desktop.monitors;
|
monitors = config.modules.desktop.monitors;
|
||||||
monitorConfig = if monitors.enable && (builtins.length monitors.monitors > 0) then
|
monitorConfig = if monitors.enable && (builtins.length monitors.monitors > 0) then
|
||||||
let
|
let
|
||||||
firstMonitor = builtins.head monitors.monitors;
|
firstMonitor = builtins.head monitors.monitors;
|
||||||
in
|
in ''
|
||||||
"output ${firstMonitor.name} scale ${toString firstMonitor.scale}"
|
output "${firstMonitor.name}" scale ${toString firstMonitor.scale}
|
||||||
|
workspace 1 output "${firstMonitor.name}"
|
||||||
|
for_window [all] move container to workspace 1
|
||||||
|
''
|
||||||
else
|
else
|
||||||
"";
|
"";
|
||||||
in command: pkgs.writeText "kiosk-sway-config" ''
|
in command: pkgs.writeText "kiosk-sway-config" ''
|
||||||
${monitorConfig}
|
${monitorConfig}
|
||||||
xwayland disable
|
xwayland disable
|
||||||
exec '${command}; ${pkgs.sway}/bin/swaymsg exit'
|
exec '${swaymsg} workspace 1; ${command}; ${swaymsg} exit'
|
||||||
'';
|
'';
|
||||||
swayKiosk = command: "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.sway} --unsupported-gpu --config ${swayConfig command}";
|
swayKiosk = command: "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.sway} --unsupported-gpu --config ${swayConfig command}";
|
||||||
in {
|
in {
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ let
|
||||||
in {
|
in {
|
||||||
options.modules.desktop.rofi = {
|
options.modules.desktop.rofi = {
|
||||||
enable = mkEnableOption "Enable rofi, a window switcher, run dialog and dmenu replacement";
|
enable = mkEnableOption "Enable rofi, a window switcher, run dialog and dmenu replacement";
|
||||||
|
dmenu = mkEnableOption "Use as a replacement for dmenu";
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = pkgs.rofi-unwrapped;
|
default = pkgs.rofi-unwrapped;
|
||||||
|
|
@ -23,5 +24,20 @@ in {
|
||||||
show-icons = true;
|
show-icons = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
user.packages = mkIf cfg.dmenu [ (pkgs.writeShellScriptBin "dmenu" ''
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
prompt="select option"
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
case "$1" in
|
||||||
|
-p) shift; prompt="$1" ;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
rofi -dmenu -i -p "$prompt"
|
||||||
|
'') ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,14 +4,16 @@ with lib;
|
||||||
let
|
let
|
||||||
cfg = config.modules.desktop.themes;
|
cfg = config.modules.desktop.themes;
|
||||||
accent = "pink";
|
accent = "pink";
|
||||||
|
accentBase = "base17";
|
||||||
variant = "mocha";
|
variant = "mocha";
|
||||||
|
|
||||||
dark = variant != "latte";
|
dark = variant != "latte";
|
||||||
colorScheme = inputs.nix-colors.colorSchemes.${"catppuccin-${variant}"};
|
darkString = if dark then "dark" else "light";
|
||||||
|
scheme = "${inputs.tt-schemes}/base24/catppuccin-${variant}.yaml";
|
||||||
pascalCase = s: (toUpper (substring 0 1 s)) + (toLower (substring 1 (stringLength s) s));
|
pascalCase = s: (toUpper (substring 0 1 s)) + (toLower (substring 1 (stringLength s) s));
|
||||||
in {
|
in {
|
||||||
config = mkIf (cfg.active == "catppuccin") {
|
config = mkIf (cfg.active == "catppuccin") {
|
||||||
colorScheme = colorScheme;
|
scheme = scheme;
|
||||||
|
|
||||||
modules.desktop.themes = {
|
modules.desktop.themes = {
|
||||||
dark = dark;
|
dark = dark;
|
||||||
|
|
@ -35,14 +37,13 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
name = "WhiteSur-${if dark then "dark" else "light"}";
|
name = "WhiteSur-${darkString}";
|
||||||
package = pkgs.whitesur-icon-theme;
|
package = pkgs.whitesur-icon-theme;
|
||||||
};
|
};
|
||||||
|
|
||||||
cursorTheme = {
|
cursorTheme = {
|
||||||
name = "graphite-${if dark then "dark" else "light"}";
|
name = "macOS";
|
||||||
package = pkgs.graphite-cursors;
|
package = pkgs.apple-cursor;
|
||||||
size = 24;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
editor = {
|
editor = {
|
||||||
|
|
@ -68,36 +69,24 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
niri = with colorScheme.palette; {
|
niri = let
|
||||||
# TODO: make more dynamic
|
colors = config.scheme.withHashtag;
|
||||||
# catppuccin pink
|
in with colors; {
|
||||||
accent = "#f5c2e7";
|
accent = colors.${accentBase};
|
||||||
inactive = "#${base02}";
|
inactive = "${base02}";
|
||||||
# catppuccin crust
|
shadow = "${base11}";
|
||||||
shadow = "#11111b";
|
background = if dark then "${base11}" else "${base05}";
|
||||||
# catppuccin crust
|
|
||||||
background = "#11111b";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
waybar = builtins.concatStringsSep "\n" [
|
waybarTop = "@define-color accent @${accentBase};";
|
||||||
"@import \"${inputs.waybar-catppuccin}/themes/${variant}.css\";"
|
|
||||||
"@define-color accent @${accent};"
|
|
||||||
(lib.readFile ./waybar.css)
|
|
||||||
];
|
|
||||||
|
|
||||||
wob = with colorScheme.palette; {
|
wob = with config.scheme; {
|
||||||
borderColor = "${base04}FF";
|
borderColor = "${base04}FF";
|
||||||
backgroundColor = "${base01}CC";
|
backgroundColor = "${base01}CC";
|
||||||
barColor = "${base05}FF";
|
barColor = "${base05}FF";
|
||||||
};
|
};
|
||||||
|
|
||||||
rofi = builtins.concatStringsSep "\n" [
|
rofiTop = "* { accent: @${accentBase}; }";
|
||||||
"@theme \"${inputs.rofi-catppuccin}/themes/catppuccin-${variant}.rasi\""
|
|
||||||
"* { accent: @${accent}; }"
|
|
||||||
(lib.readFile ./rofi.rasi)
|
|
||||||
];
|
|
||||||
|
|
||||||
fuzzel = "${inputs.fuzzel-catppuccin}/themes/catppuccin-${variant}/${accent}.ini";
|
|
||||||
|
|
||||||
wezterm = ''
|
wezterm = ''
|
||||||
config.color_scheme = 'Catppuccin ${pascalCase variant}'
|
config.color_scheme = 'Catppuccin ${pascalCase variant}'
|
||||||
|
|
|
||||||
|
|
@ -10,27 +10,27 @@ element-text, element-icon , mode-switcher {
|
||||||
window {
|
window {
|
||||||
height: 500px;
|
height: 500px;
|
||||||
border: 1px;
|
border: 1px;
|
||||||
border-radius: 1em;
|
border-radius: @roundingpx;
|
||||||
border-color: @accent;
|
border-color: @accent;
|
||||||
background-color: @base;
|
background-color: @base00;
|
||||||
}
|
}
|
||||||
|
|
||||||
mainbox {
|
mainbox {
|
||||||
background-color: @base;
|
background-color: @base00;
|
||||||
}
|
}
|
||||||
|
|
||||||
inputbar {
|
inputbar {
|
||||||
margin: 10px 5px 5px 5px;
|
margin: 10px 5px 5px 5px;
|
||||||
children: [prompt, entry];
|
children: [prompt, entry];
|
||||||
background-color: @base;
|
background-color: @base00;
|
||||||
padding: 1px;
|
padding: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
prompt {
|
prompt {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
padding: 1px;
|
padding: 1px;
|
||||||
text-color: @text;
|
text-color: @base05;
|
||||||
border-radius: 1.5em;
|
border-radius: @roundingpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
textbox-prompt-colon {
|
textbox-prompt-colon {
|
||||||
|
|
@ -41,8 +41,8 @@ textbox-prompt-colon {
|
||||||
entry {
|
entry {
|
||||||
padding: 1px;
|
padding: 1px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
text-color: @text;
|
text-color: @base05;
|
||||||
background-color: @base;
|
background-color: @base00;
|
||||||
}
|
}
|
||||||
|
|
||||||
listview {
|
listview {
|
||||||
|
|
@ -50,26 +50,26 @@ listview {
|
||||||
margin: 5px 0px 0px 10px;
|
margin: 5px 0px 0px 10px;
|
||||||
columns: 1;
|
columns: 1;
|
||||||
lines: 10;
|
lines: 10;
|
||||||
background-color: @base;
|
background-color: @base00;
|
||||||
}
|
}
|
||||||
|
|
||||||
element {
|
element {
|
||||||
padding: 1px;
|
padding: 1px;
|
||||||
background-color: @base;
|
background-color: @base00;
|
||||||
text-color: @text;
|
text-color: @base05;
|
||||||
}
|
}
|
||||||
|
|
||||||
element-icon {size: 12px;}
|
element-icon {size: 12px;}
|
||||||
|
|
||||||
element.selected {
|
element.selected {
|
||||||
background-color: @surface1;
|
background-color: @base03;
|
||||||
text-color: @accent;
|
text-color: @accent;
|
||||||
}
|
}
|
||||||
|
|
||||||
scrollbar {
|
scrollbar {
|
||||||
width: 4px ;
|
width: 4px ;
|
||||||
border: 0;
|
border: 0;
|
||||||
handle-color: @text;
|
handle-color: @base05;
|
||||||
handle-width: 8px ;
|
handle-width: 8px ;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
@ -78,13 +78,13 @@ mode-switcher {spacing: 0;}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
spacing: 0;
|
spacing: 0;
|
||||||
background-color: @surface0;
|
background-color: @base02;
|
||||||
text-color: @subtext1;
|
text-color: @base04;
|
||||||
vertical-align: 0.5;
|
vertical-align: 0.5;
|
||||||
horizontal-align: 0.5;
|
horizontal-align: 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
button.selected {
|
button.selected {
|
||||||
background-color: @base;
|
background-color: @base00;
|
||||||
text-color: @accent;
|
text-color: @accent;
|
||||||
}
|
}
|
||||||
|
|
@ -9,21 +9,21 @@ button, button:hover {
|
||||||
}
|
}
|
||||||
|
|
||||||
window#waybar {
|
window#waybar {
|
||||||
color: @text;
|
color: @base05;
|
||||||
background: alpha(@base, 0.9999999);
|
background: alpha(@base00, 0.9999999);
|
||||||
border-radius: 1em;
|
border-radius: @roundingpx;
|
||||||
font-family: "CozetteVector", monospace, "FontAwesome 6 Free", "Noto Sans CJK";
|
font-family: "CozetteVector", monospace, "FontAwesome 6 Free", "Noto Sans CJK";
|
||||||
font-size: 13px;
|
font-size: 13px; /* TODO: make this use proper font size */
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
|
|
||||||
border: 1px solid @surface0;
|
border: 1px solid @base02;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces, .modules-right box {
|
#workspaces, .modules-right box {
|
||||||
background-color: @surface0;
|
background-color: @base02;
|
||||||
margin: 0 0.25em;
|
margin: 0 0.25em;
|
||||||
padding: 0.15em 0.25em;
|
padding: 0.15em 0.25em;
|
||||||
border-radius: 1em;
|
border-radius: @roundingpx;
|
||||||
}
|
}
|
||||||
.modules-right label.module {
|
.modules-right label.module {
|
||||||
margin: 0 0.5em;
|
margin: 0 0.5em;
|
||||||
|
|
@ -37,32 +37,32 @@ window#waybar {
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces {
|
#workspaces {
|
||||||
background-color: @surface0;
|
background-color: @base02;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button {
|
#workspaces button {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
color: @text;
|
color: @base05;
|
||||||
padding: 0 0.4em;
|
padding: 0 0.4em;
|
||||||
transition: none;
|
transition: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button:nth-child(1) {
|
#workspaces button:nth-child(1) {
|
||||||
border-top-left-radius: 1em;
|
border-top-left-radius: @roundingpx;
|
||||||
border-bottom-left-radius: 1em;
|
border-bottom-left-radius: @roundingpx;
|
||||||
}
|
}
|
||||||
#workspaces button:nth-last-child(1) {
|
#workspaces button:nth-last-child(1) {
|
||||||
border-top-right-radius: 1em;
|
border-top-right-radius: @roundingpx;
|
||||||
border-bottom-right-radius: 1em;
|
border-bottom-right-radius: @roundingpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.empty {
|
#workspaces button.empty {
|
||||||
color: @overlay1;
|
color: @base04;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.visible {
|
#workspaces button.visible {
|
||||||
background: @surface1;
|
background: @base03;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.focused {
|
#workspaces button.focused {
|
||||||
|
|
@ -71,47 +71,44 @@ window#waybar {
|
||||||
|
|
||||||
#workspaces button.active {
|
#workspaces button.active {
|
||||||
background: @accent;
|
background: @accent;
|
||||||
color: @surface0;
|
color: @base02;
|
||||||
}
|
}
|
||||||
#workspaces button:hover {
|
#workspaces button:hover {
|
||||||
background: rgba(255, 255, 255, 0.1);
|
background: rgba(255, 255, 255, 0.1);
|
||||||
color: @text;
|
color: @base05;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
#workspaces button.active:hover {
|
#workspaces button.active:hover {
|
||||||
background: @accent;
|
background: @accent;
|
||||||
color: @surface0;
|
color: @base02;
|
||||||
}
|
}
|
||||||
#workspaces button.urgent {
|
#workspaces button.urgent {
|
||||||
background: @red;
|
background: @base08;
|
||||||
color: @surface0;
|
color: @base02;
|
||||||
}
|
}
|
||||||
|
|
||||||
#window {
|
#window {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
}
|
}
|
||||||
window#waybar.floating #window {
|
|
||||||
color: @pink;
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock {
|
#clock {
|
||||||
color: @lavender;
|
color: @base07;
|
||||||
}
|
}
|
||||||
|
|
||||||
#power-profiles-daemon {
|
#power-profiles-daemon {
|
||||||
color: @teal;
|
color: @base0C;
|
||||||
}
|
}
|
||||||
|
|
||||||
#cpu, #network {
|
#cpu, #network {
|
||||||
color: @sapphire;
|
color: @base16;
|
||||||
}
|
}
|
||||||
#network.disabled, #network.disconnected {
|
#network.disabled, #network.disconnected {
|
||||||
color: @overlay1;
|
color: @base04;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes blink {
|
@keyframes blink {
|
||||||
to {
|
to {
|
||||||
color: @text;
|
color: @base05;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -119,15 +116,15 @@ window#waybar.floating #window {
|
||||||
animation-timing-function: linear;
|
animation-timing-function: linear;
|
||||||
animation-iteration-count: infinite;
|
animation-iteration-count: infinite;
|
||||||
animation-direction: alternate;
|
animation-direction: alternate;
|
||||||
color: @lavender;
|
color: @base07;
|
||||||
}
|
}
|
||||||
#memory.warning {
|
#memory.warning {
|
||||||
color: @peach;
|
color: @base09;
|
||||||
animation-name: blink;
|
animation-name: blink;
|
||||||
animation-duration: 3s;
|
animation-duration: 3s;
|
||||||
}
|
}
|
||||||
#memory.critical {
|
#memory.critical {
|
||||||
color: @maroon;
|
color: @base12;
|
||||||
animation-name: blink;
|
animation-name: blink;
|
||||||
animation-duration: 2s;
|
animation-duration: 2s;
|
||||||
}
|
}
|
||||||
|
|
@ -136,40 +133,40 @@ window#waybar.floating #window {
|
||||||
animation-timing-function: linear;
|
animation-timing-function: linear;
|
||||||
animation-iteration-count: infinite;
|
animation-iteration-count: infinite;
|
||||||
animation-direction: alternate;
|
animation-direction: alternate;
|
||||||
color: @green;
|
color: @base0B;
|
||||||
}
|
}
|
||||||
/* this here is ditto */
|
/* this here is ditto */
|
||||||
#battery.charging {
|
#battery.charging {
|
||||||
color: @green;
|
color: @base0B;
|
||||||
}
|
}
|
||||||
#battery.warning.discharging {
|
#battery.warning.discharging {
|
||||||
color: @peach;
|
color: @base09;
|
||||||
animation-name: blink;
|
animation-name: blink;
|
||||||
animation-duration: 3s;
|
animation-duration: 3s;
|
||||||
}
|
}
|
||||||
#battery.critical.discharging {
|
#battery.critical.discharging {
|
||||||
color: @maroon;
|
color: @base12;
|
||||||
animation-name: blink;
|
animation-name: blink;
|
||||||
animation-duration: 2s;
|
animation-duration: 2s;
|
||||||
}
|
}
|
||||||
|
|
||||||
#backlight, #custom-weather {
|
#backlight, #custom-weather {
|
||||||
color: @yellow;
|
color: @base0A;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pulseaudio {
|
#pulseaudio {
|
||||||
color: @pink;
|
color: @base17;
|
||||||
}
|
}
|
||||||
#pulseaudio.muted {
|
#pulseaudio.muted {
|
||||||
color: @overlay1;
|
color: @base04;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-power {
|
#custom-power {
|
||||||
color: @red;
|
color: @base08;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-wallpaper, #custom-rgb {
|
#custom-wallpaper, #custom-rgb {
|
||||||
color: @overlay1;
|
color: @base04;
|
||||||
}
|
}
|
||||||
|
|
||||||
#privacy {
|
#privacy {
|
||||||
|
|
@ -178,7 +175,7 @@ window#waybar.floating #window {
|
||||||
}
|
}
|
||||||
#privacy-item {
|
#privacy-item {
|
||||||
padding: 0 1px;
|
padding: 0 1px;
|
||||||
color: @text;
|
color: @base05;
|
||||||
}
|
}
|
||||||
|
|
||||||
box#playback {
|
box#playback {
|
||||||
|
|
@ -188,17 +185,17 @@ box#playback {
|
||||||
}
|
}
|
||||||
|
|
||||||
#mpris {
|
#mpris {
|
||||||
background-color: @surface0;
|
background-color: @base02;
|
||||||
margin: 0 0.25em;
|
margin: 0 0.25em;
|
||||||
padding: 0.15em 0.5em;
|
padding: 0.15em 0.5em;
|
||||||
border-radius: 1em;
|
border-radius: @roundingpx;
|
||||||
}
|
}
|
||||||
#mpris.playing {
|
#mpris.playing {
|
||||||
color: @accent;
|
color: @accent;
|
||||||
background: @surface0;
|
background: @base02;
|
||||||
}
|
}
|
||||||
#mpris.paused, #mpris.stopped {
|
#mpris.paused, #mpris.stopped {
|
||||||
color: @overlay1;
|
color: @base04;
|
||||||
}
|
}
|
||||||
|
|
||||||
window decoration {
|
window decoration {
|
||||||
|
|
@ -206,10 +203,10 @@ window decoration {
|
||||||
}
|
}
|
||||||
|
|
||||||
tooltip, window.popup menu {
|
tooltip, window.popup menu {
|
||||||
background: @base;
|
background: @base00;
|
||||||
border: 1px solid @surface2;
|
border: 1px solid @base04;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: @text;
|
color: @base05;
|
||||||
}
|
}
|
||||||
tooltip *, window.popup {
|
tooltip *, window.popup {
|
||||||
font-family: CozetteVector, monospace;
|
font-family: CozetteVector, monospace;
|
||||||
|
|
@ -217,20 +214,20 @@ tooltip *, window.popup {
|
||||||
tooltip * {
|
tooltip * {
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
color: @text;
|
color: @base05;
|
||||||
}
|
}
|
||||||
|
|
||||||
window.popup separator {
|
window.popup separator {
|
||||||
background-color: @surface0;
|
background-color: @base02;
|
||||||
}
|
}
|
||||||
|
|
||||||
window.popup menuitem:disabled {
|
window.popup menuitem:disabled {
|
||||||
color: @overlay1;
|
color: @base04;
|
||||||
}
|
}
|
||||||
|
|
||||||
window.popup menuitem:hover {
|
window.popup menuitem:hover {
|
||||||
background-color: @accent;
|
background-color: @accent;
|
||||||
color: @surface0;
|
color: @base02;
|
||||||
}
|
}
|
||||||
|
|
||||||
window.popup menuitem:hover > box {
|
window.popup menuitem:hover > box {
|
||||||
|
|
@ -12,35 +12,38 @@ in {
|
||||||
description = "Name of the theme to apply; see modules/desktop/themes for a list of valid options";
|
description = "Name of the theme to apply; see modules/desktop/themes for a list of valid options";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
rounding = mkOpt int 10;
|
||||||
|
padding = mkOpt int 6;
|
||||||
|
|
||||||
dark = mkOpt bool false;
|
dark = mkOpt bool false;
|
||||||
|
|
||||||
gtkTheme = {
|
gtkTheme = {
|
||||||
name = mkOpt str "";
|
name = mkOpt (nullOr str) null;
|
||||||
package = mkPackageOption pkgs "gtk" {};
|
package = mkOpt (nullOr package) null;
|
||||||
};
|
};
|
||||||
kvantumTheme = {
|
kvantumTheme = {
|
||||||
name = mkOpt str "";
|
name = mkOpt (nullOr str) null;
|
||||||
package = mkPackageOption pkgs "kvantum" {};
|
package = mkOpt (nullOr package) null;
|
||||||
};
|
};
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
name = mkOpt str "";
|
name = mkOpt (nullOr str) null;
|
||||||
package = mkPackageOption pkgs "icon" {};
|
package = mkOpt (nullOr package) null;
|
||||||
};
|
};
|
||||||
cursorTheme = {
|
cursorTheme = {
|
||||||
name = mkOpt str "";
|
name = mkOpt (nullOr str) null;
|
||||||
package = mkPackageOption pkgs "cursor" {};
|
package = mkOpt (nullOr package) null;
|
||||||
size = mkOpt int 24;
|
size = mkOpt int 24;
|
||||||
};
|
};
|
||||||
|
|
||||||
editor = {
|
editor = {
|
||||||
vscode = {
|
vscode = {
|
||||||
colorTheme = {
|
colorTheme = {
|
||||||
name = mkOpt str "";
|
name = mkOpt (nullOr str) null;
|
||||||
extension = mkPackageOption pkgs "extension" {};
|
extension = mkOpt (nullOr package) null;
|
||||||
};
|
};
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
name = mkOpt str "";
|
name = mkOpt (nullOr str) null;
|
||||||
extension = mkPackageOption pkgs "extension" {};
|
extension = mkOpt (nullOr package) null;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -52,7 +55,7 @@ in {
|
||||||
background = mkOpt str "";
|
background = mkOpt str "";
|
||||||
};
|
};
|
||||||
|
|
||||||
waybar = mkOpt str "";
|
waybarTop = mkOpt str "";
|
||||||
|
|
||||||
wob = {
|
wob = {
|
||||||
borderColor = mkOpt (nullOr str) null;
|
borderColor = mkOpt (nullOr str) null;
|
||||||
|
|
@ -60,9 +63,7 @@ in {
|
||||||
barColor = mkOpt (nullOr str) null;
|
barColor = mkOpt (nullOr str) null;
|
||||||
};
|
};
|
||||||
|
|
||||||
rofi = mkOpt (nullOr str) null;
|
rofiTop = mkOpt (nullOr str) null;
|
||||||
|
|
||||||
fuzzel = mkOpt (nullOr str) null;
|
|
||||||
|
|
||||||
wezterm = mkOpt (nullOr str) null;
|
wezterm = mkOpt (nullOr str) null;
|
||||||
|
|
||||||
|
|
@ -102,8 +103,8 @@ in {
|
||||||
|
|
||||||
hm.qt = {
|
hm.qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
platformTheme.name = "qtct";
|
platformTheme.name = if (cfg.kvantumTheme.name != null) then "qtct" else "gtk3";
|
||||||
style.name = "kvantum";
|
style.name = mkIf (cfg.kvantumTheme.name != null) "kvantum";
|
||||||
};
|
};
|
||||||
|
|
||||||
hm.home.pointerCursor = {
|
hm.home.pointerCursor = {
|
||||||
|
|
@ -136,7 +137,16 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
hm.programs.waybar.style = cfg.waybar;
|
hm.programs.waybar.style = (builtins.replaceStrings
|
||||||
|
[ "@rounding" ]
|
||||||
|
[ (builtins.toString cfg.rounding) ]
|
||||||
|
(builtins.concatStringsSep "\n" ([
|
||||||
|
cfg.waybarTop
|
||||||
|
(lib.readFile ./config/waybar.css)
|
||||||
|
]
|
||||||
|
++ lib.zipListsWith (name: hex: "@define-color base${name} #${hex};")
|
||||||
|
(builtins.genList (i: lib.fixedWidthString 2 "0" (lib.toUpper (lib.toHexString i))) 24)
|
||||||
|
config.scheme.toList)));
|
||||||
|
|
||||||
hm.services.wob.settings."" = {
|
hm.services.wob.settings."" = {
|
||||||
border_color = cfg.wob.borderColor;
|
border_color = cfg.wob.borderColor;
|
||||||
|
|
@ -144,18 +154,16 @@ in {
|
||||||
bar_color = cfg.wob.barColor;
|
bar_color = cfg.wob.barColor;
|
||||||
};
|
};
|
||||||
|
|
||||||
# silly litle hack--rofi hm module doesn't play nice with strings
|
hm.programs.rofi.theme = builtins.toFile "rofi.rasi" (builtins.replaceStrings
|
||||||
# so, we have to write the config to a file and then read it :P
|
[ "@rounding" ]
|
||||||
# ...and then back to a string
|
[ (builtins.toString cfg.rounding) ]
|
||||||
hm.programs.rofi.theme = "${pkgs.writeTextFile {
|
(builtins.concatStringsSep "\n" ([
|
||||||
name = "rofi-theme.rasi";
|
cfg.rofiTop
|
||||||
text = cfg.rofi;
|
(lib.readFile ./config/rofi.rasi)
|
||||||
}}";
|
]
|
||||||
|
++ lib.zipListsWith (name: hex: "* { base${name}: #${hex}; }")
|
||||||
hm.programs.fuzzel.settings.main = {
|
(builtins.genList (i: lib.fixedWidthString 2 "0" (lib.toUpper (lib.toHexString i))) 24)
|
||||||
include = cfg.fuzzel;
|
config.scheme.toList)));
|
||||||
icon-theme = cfg.iconTheme.name;
|
|
||||||
};
|
|
||||||
|
|
||||||
hm.services.vicinae.settings.theme = let
|
hm.services.vicinae.settings.theme = let
|
||||||
themeConf = {
|
themeConf = {
|
||||||
|
|
@ -179,7 +187,7 @@ in {
|
||||||
Appearance = {
|
Appearance = {
|
||||||
icon_theme = cfg.iconTheme.name;
|
icon_theme = cfg.iconTheme.name;
|
||||||
standard_dialogs = "xdgdesktopportal";
|
standard_dialogs = "xdgdesktopportal";
|
||||||
style = "kvantum";
|
style = "kvantum"; # its ok if this is always the case, override it anyway
|
||||||
};
|
};
|
||||||
|
|
||||||
Fonts = with config.modules.desktop.fonts.fonts; {
|
Fonts = with config.modules.desktop.fonts.fonts; {
|
||||||
|
|
@ -187,7 +195,8 @@ in {
|
||||||
fixed = ''"${monospace.family},-1,${toString monospace.size},5,${toString weight},${zeros},1"'';
|
fixed = ''"${monospace.family},-1,${toString monospace.size},5,${toString weight},${zeros},1"'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in {
|
in mkMerge [
|
||||||
|
{
|
||||||
# technically could cause issues with KDE if we use that
|
# technically could cause issues with KDE if we use that
|
||||||
# not a concern for now
|
# not a concern for now
|
||||||
"kdeglobals".text = ''
|
"kdeglobals".text = ''
|
||||||
|
|
@ -195,14 +204,16 @@ in {
|
||||||
Theme=${cfg.iconTheme.name}
|
Theme=${cfg.iconTheme.name}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
"qt5ct/qt5ct.conf".source = iniFmt.generate "qt5ct.conf" (mkQtctConf 5);
|
||||||
|
"qt6ct/qt6ct.conf".source = iniFmt.generate "qt6ct.conf" (mkQtctConf 6);
|
||||||
|
}
|
||||||
|
(mkIf (cfg.kvantumTheme.name != null) {
|
||||||
"Kvantum/${cfg.kvantumTheme.name}".source = "${cfg.kvantumTheme.package}/share/Kvantum/${cfg.kvantumTheme.name}";
|
"Kvantum/${cfg.kvantumTheme.name}".source = "${cfg.kvantumTheme.package}/share/Kvantum/${cfg.kvantumTheme.name}";
|
||||||
"Kvantum/kvantum.kvconfig".text = ''
|
"Kvantum/kvantum.kvconfig".text = ''
|
||||||
[General]
|
[General]
|
||||||
theme=${cfg.kvantumTheme.name}
|
theme=${cfg.kvantumTheme.name}
|
||||||
'';
|
'';
|
||||||
|
})
|
||||||
"qt5ct/qt5ct.conf".source = iniFmt.generate "qt5ct.conf" (mkQtctConf 5);
|
];
|
||||||
"qt6ct/qt6ct.conf".source = iniFmt.generate "qt6ct.conf" (mkQtctConf 6);
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
82
modules/desktop/themes/gruvbox/gruvbox.nix
Normal file
82
modules/desktop/themes/gruvbox/gruvbox.nix
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
{ inputs, config, lib, pkgs, system, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.modules.desktop.themes;
|
||||||
|
# TODO: gruvbox theme doesn't use these that much
|
||||||
|
accent = "pink";
|
||||||
|
accentBase = "base17";
|
||||||
|
dark = true;
|
||||||
|
|
||||||
|
darkString = if dark then "dark" else "light";
|
||||||
|
scheme = "${inputs.tt-schemes}/base24/gruvbox-${if dark then "dark" else "light"}.yaml";
|
||||||
|
pascalCase = s: (toUpper (substring 0 1 s)) + (toLower (substring 1 (stringLength s) s));
|
||||||
|
in {
|
||||||
|
config = mkIf (cfg.active == "gruvbox") {
|
||||||
|
scheme = scheme;
|
||||||
|
|
||||||
|
modules.desktop.themes = {
|
||||||
|
dark = dark;
|
||||||
|
|
||||||
|
rounding = 0;
|
||||||
|
|
||||||
|
gtkTheme = {
|
||||||
|
name = "Gruvbox-${pascalCase accent}-${pascalCase darkString}-Compact";
|
||||||
|
package = pkgs.gruvbox-gtk-theme.override {
|
||||||
|
colorVariants = [ darkString ];
|
||||||
|
themeVariants = [ accent ];
|
||||||
|
tweakVariants = [ "macos" ];
|
||||||
|
sizeVariants = [ "compact" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
iconTheme = {
|
||||||
|
name = "Gruvbox-Plus-${pascalCase darkString}";
|
||||||
|
package = pkgs.gruvbox-plus-icons;
|
||||||
|
};
|
||||||
|
|
||||||
|
cursorTheme = {
|
||||||
|
name = "macOS";
|
||||||
|
package = pkgs.apple-cursor;
|
||||||
|
};
|
||||||
|
|
||||||
|
editor = {
|
||||||
|
vscode = {
|
||||||
|
colorTheme = {
|
||||||
|
name = "Gruvbox ${pascalCase darkString} Medium";
|
||||||
|
extension = pkgs.vscode-extensions.jdinhlife.gruvbox;
|
||||||
|
};
|
||||||
|
iconTheme = {
|
||||||
|
name = "material-icon-theme";
|
||||||
|
extension = pkgs.vscode-extensions.pkief.material-icon-theme;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
niri = let
|
||||||
|
colors = config.scheme.withHashtag;
|
||||||
|
in with colors; {
|
||||||
|
accent = colors.${accentBase};
|
||||||
|
inactive = "${base02}";
|
||||||
|
shadow = "${base11}";
|
||||||
|
background = if dark then "${base11}" else "${base05}";
|
||||||
|
};
|
||||||
|
|
||||||
|
waybarTop = "@define-color accent @${accentBase};";
|
||||||
|
|
||||||
|
wob = with config.scheme; {
|
||||||
|
borderColor = "${base04}FF";
|
||||||
|
backgroundColor = "${base01}CC";
|
||||||
|
barColor = "${base05}FF";
|
||||||
|
};
|
||||||
|
|
||||||
|
rofiTop = "* { accent: @${accentBase}; }";
|
||||||
|
|
||||||
|
wezterm = ''
|
||||||
|
config.color_scheme = 'Gruvbox${pascalCase darkString}'
|
||||||
|
'';
|
||||||
|
|
||||||
|
vicinae = "gruvbox-${if dark then "dark" else "light"}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -6,6 +6,7 @@ let
|
||||||
in {
|
in {
|
||||||
options.modules.desktop.vicinae = {
|
options.modules.desktop.vicinae = {
|
||||||
enable = mkEnableOption "Enable vicinae, a launcher built in react";
|
enable = mkEnableOption "Enable vicinae, a launcher built in react";
|
||||||
|
dmenu = mkEnableOption "Use as a replacement for dmenu";
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = inputs.vicinae.packages.${system}.default;
|
default = inputs.vicinae.packages.${system}.default;
|
||||||
|
|
@ -29,14 +30,15 @@ in {
|
||||||
|
|
||||||
# i disagree with these
|
# i disagree with these
|
||||||
telemetry.system_info = false;
|
telemetry.system_info = false;
|
||||||
providers.core.entrypoints.sponsor.enable = false;
|
|
||||||
|
|
||||||
pop_to_root_on_close = true;
|
pop_to_root_on_close = true;
|
||||||
|
|
||||||
launcher_window = {
|
launcher_window = {
|
||||||
opacity = 0.8;
|
opacity = 0.8;
|
||||||
|
|
||||||
client_side_decorations.enabled = false;
|
client_side_decorations.enabled = true;
|
||||||
|
client_side_decorations.border_width = 0;
|
||||||
|
client_side_decorations.rounding = config.modules.desktop.themes.rounding;
|
||||||
|
|
||||||
layer_shell = {
|
layer_shell = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
|
|
@ -51,14 +53,24 @@ in {
|
||||||
];
|
];
|
||||||
|
|
||||||
providers = {
|
providers = {
|
||||||
|
core.entrypoints = {
|
||||||
|
keybind-settings.enabled = false;
|
||||||
|
report-bug.enabled = false;
|
||||||
|
sponsor.enabled = false;
|
||||||
|
};
|
||||||
applications = {
|
applications = {
|
||||||
preferences = {
|
preferences = {
|
||||||
defaultAction = "launch";
|
defaultAction = "launch";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
files.enabled = false;
|
|
||||||
|
manage-shortcuts.enabled = false;
|
||||||
|
theme.enabled = false;
|
||||||
|
developer.enabled = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fallbacks = [ "files:search" ];
|
||||||
|
|
||||||
escape_key_behavior = "close_window";
|
escape_key_behavior = "close_window";
|
||||||
|
|
||||||
font = let
|
font = let
|
||||||
|
|
@ -72,5 +84,20 @@ in {
|
||||||
nix
|
nix
|
||||||
] ++ optional config.modules.desktop.niri.enable niri;
|
] ++ optional config.modules.desktop.niri.enable niri;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
user.packages = mkIf cfg.dmenu [ (pkgs.writeShellScriptBin "dmenu" ''
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
prompt="select option"
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
case "$1" in
|
||||||
|
-p) shift; prompt="$1" ;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
vicinae dmenu --placeholder "$prompt"
|
||||||
|
'') ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,16 +23,18 @@ in {
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
package = cfg.package;
|
package = cfg.package;
|
||||||
|
|
||||||
settings = {
|
settings = let
|
||||||
|
inherit (config.modules.desktop.themes) padding;
|
||||||
|
in {
|
||||||
mainBar = mkMerge [
|
mainBar = mkMerge [
|
||||||
{
|
{
|
||||||
layer = "top";
|
layer = "top";
|
||||||
position = "top";
|
position = "top";
|
||||||
spacing = 4;
|
spacing = 4;
|
||||||
height = 32;
|
height = 32;
|
||||||
margin-top = 6;
|
margin-top = padding;
|
||||||
margin-left = 6;
|
margin-left = padding;
|
||||||
margin-right = 6;
|
margin-right = padding;
|
||||||
margin-bottom = 0;
|
margin-bottom = 0;
|
||||||
modules-left = [
|
modules-left = [
|
||||||
"niri/workspaces"
|
"niri/workspaces"
|
||||||
|
|
@ -81,7 +83,16 @@ in {
|
||||||
powerMenuScript = pkgs.writeShellScript "power-menu" ''
|
powerMenuScript = pkgs.writeShellScript "power-menu" ''
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
cmd=$(echo '⏻ shutdown|↻ reboot| sleep| hibernate| lock|⎋ exit desktop environment' | ${lib.getExe config.modules.desktop.rofi.package} -dmenu -sep '|' -i -p 'what to do ?')
|
cmd=$(
|
||||||
|
printf "%s\n" \
|
||||||
|
"⏻ shutdown" \
|
||||||
|
"↻ reboot" \
|
||||||
|
" sleep" \
|
||||||
|
" hibernate" \
|
||||||
|
" lock" \
|
||||||
|
"⎋ exit desktop environment" \
|
||||||
|
| dmenu -p "what to do ?"
|
||||||
|
)
|
||||||
case "$cmd" in
|
case "$cmd" in
|
||||||
"⏻ shutdown")
|
"⏻ shutdown")
|
||||||
poweroff
|
poweroff
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ in {
|
||||||
find /var/lib/OpenRGB -name "*.orp" 2>/dev/null
|
find /var/lib/OpenRGB -name "*.orp" 2>/dev/null
|
||||||
)
|
)
|
||||||
|
|
||||||
selected=$(printf '%s\n' "''${files[@]}" | xargs -n1 basename | ${lib.getExe config.modules.desktop.rofi.package} -dmenu -i -p "select profile")
|
selected=$(printf '%s\n' "''${files[@]}" | xargs -n1 basename | dmenu -p "select profile")
|
||||||
|
|
||||||
[[ -z "$selected" ]] && exit 0
|
[[ -z "$selected" ]] && exit 0
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,6 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
user.packages = [
|
user.packages = [ finalPackage ];
|
||||||
finalPackage
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,8 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
hm.xdg.configFile."micro/colorschemes/${schemeName}.micro".text = with config.colorScheme.palette; ''
|
# TODO: rework these..
|
||||||
|
hm.xdg.configFile."micro/colorschemes/${schemeName}.micro".text = with config.scheme; ''
|
||||||
color-link default "#${base05},#${base00}"
|
color-link default "#${base05},#${base00}"
|
||||||
color-link comment "#${base03},#${base00}"
|
color-link comment "#${base03},#${base00}"
|
||||||
color-link identifier "#${base0D},#${base00}"
|
color-link identifier "#${base0D},#${base00}"
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,7 @@ in {
|
||||||
|
|
||||||
programs.fish.enable = true;
|
programs.fish.enable = true;
|
||||||
users.defaultUserShell = pkgs.fish;
|
users.defaultUserShell = pkgs.fish;
|
||||||
hm.programs.fish = let
|
hm.programs.fish = {
|
||||||
colorScript = nix-colors-lib.shellThemeFromScheme { scheme = config.colorScheme; };
|
|
||||||
in {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = let
|
plugins = let
|
||||||
mkPlugin = name: {
|
mkPlugin = name: {
|
||||||
|
|
@ -43,7 +41,6 @@ in {
|
||||||
];
|
];
|
||||||
interactiveShellInit = ''
|
interactiveShellInit = ''
|
||||||
${lib.getExe pkgs.nix-your-shell} fish | source
|
${lib.getExe pkgs.nix-your-shell} fish | source
|
||||||
sh ${colorScript}
|
|
||||||
'';
|
'';
|
||||||
functions.fish_greeting = ''
|
functions.fish_greeting = ''
|
||||||
${lib.getExe pkgs.fastfetch} --logo-type small --key-width 11 -s title:separator:os:host:kernel:uptime:memory:swap
|
${lib.getExe pkgs.fastfetch} --logo-type small --key-width 11 -s title:separator:os:host:kernel:uptime:memory:swap
|
||||||
|
|
|
||||||
|
|
@ -24,10 +24,10 @@ in {
|
||||||
visualizer = {
|
visualizer = {
|
||||||
mode = "noalbumart";
|
mode = "noalbumart";
|
||||||
};
|
};
|
||||||
modernz = with config.colorScheme.palette; {
|
modernz = with config.scheme.withHashtag; {
|
||||||
bottomhover = "no";
|
bottomhover = "no";
|
||||||
hover_effect = ""; # these are weird lookin
|
hover_effect = ""; # these are weird lookin
|
||||||
seekbarfg_color = "#${base0D}"; # blue is a sane default
|
seekbarfg_color = "${base0D}"; # blue is a sane default
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ in {
|
||||||
config.freetype_load_flags = 'MONOCHROME'
|
config.freetype_load_flags = 'MONOCHROME'
|
||||||
config.enable_wayland = true
|
config.enable_wayland = true
|
||||||
config.use_fancy_tab_bar = false
|
config.use_fancy_tab_bar = false
|
||||||
config.use_resize_increments = true
|
config.use_resize_increments = false
|
||||||
config.initial_cols = 120
|
config.initial_cols = 120
|
||||||
config.initial_rows = 40
|
config.initial_rows = 40
|
||||||
config.window_background_opacity = 0.8
|
config.window_background_opacity = 0.8
|
||||||
|
|
|
||||||
28
packages/loveletter/default.nix
Normal file
28
packages/loveletter/default.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
{ lib, stdenvNoCC }:
|
||||||
|
|
||||||
|
stdenvNoCC.mkDerivation {
|
||||||
|
pname = "loveletter";
|
||||||
|
version = "1.0.0";
|
||||||
|
|
||||||
|
# i think i got this off of a cd collection on nyaa and it had some bootleg stuff too
|
||||||
|
# looks to be the same as http://www.konaka.com/alice6/lain/resources.html
|
||||||
|
# downloaded locally bcz the source's uptime isn't trustworthy
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
install -Dm644 -t $out/share/fonts/truetype ./loveletter.ttf
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "The LoveLetter font as featured in Serial Experiments Lain";
|
||||||
|
homepage = "http://www.konaka.com/alice6/lain/resources.html";
|
||||||
|
# idk what to put here:
|
||||||
|
# license = licenses.ofl;
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
}
|
||||||
BIN
packages/loveletter/loveletter.ttf
Executable file
BIN
packages/loveletter/loveletter.ttf
Executable file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue