Compare commits

..

No commits in common. "39aa431b1d67324737d724d57eda2f0b359e000b" and "7e2ab5a6401fe796ff76f1a4dd3dfbdad9961a79" have entirely different histories.

20 changed files with 353 additions and 115 deletions

View file

@ -5,11 +5,11 @@
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1708890466,
"narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=",
"lastModified": 1721224776,
"narHash": "sha256-iakVQHg2DSmdOc5dNBwrDt9JLRxX5MT+IIbxfZEpGdo=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "665b3c6748534eb766c777298721cece9453fdae",
"rev": "c89c8123310257f3ddc04cc59aa4b5573c6d515f",
"type": "github"
},
"original": {
@ -114,6 +114,24 @@
"type": "github"
}
},
"base16_2": {
"inputs": {
"fromYaml": "fromYaml_2"
},
"locked": {
"lastModified": 1708890466,
"narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "665b3c6748534eb766c777298721cece9453fdae",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "base16.nix",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
@ -152,6 +170,22 @@
}
},
"fromYaml": {
"flake": false,
"locked": {
"lastModified": 1721222302,
"narHash": "sha256-5vL4w9+tS9yd8WpIiDUtxN1IuxCVK2nebZMs/hCXXis=",
"owner": "SenchoPens",
"repo": "fromYaml",
"rev": "93bad85d1633b8b27287b438c0bd394094c24d06",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "fromYaml",
"type": "github"
}
},
"fromYaml_2": {
"flake": false,
"locked": {
"lastModified": 1689549921,
@ -277,16 +311,18 @@
},
"root": {
"inputs": {
"base16": "base16",
"home-manager": "home-manager",
"iosevka-custom": "iosevka-custom",
"nix-index-database": "nix-index-database",
"nixpkgs": "nixpkgs_2",
"stylix": "stylix"
"stylix": "stylix",
"tt-schemes": "tt-schemes"
}
},
"stylix": {
"inputs": {
"base16": "base16",
"base16": "base16_2",
"base16-fish": "base16-fish",
"base16-foot": "base16-foot",
"base16-helix": "base16-helix",
@ -332,6 +368,22 @@
"repo": "default",
"type": "github"
}
},
"tt-schemes": {
"flake": false,
"locked": {
"lastModified": 1725273692,
"narHash": "sha256-XOxESrzdIpcYMLS+s4D16M4c8gAk3sLyAQUvsb+lQLk=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "992b6c372a00e284a7dc26b19a0d11b7afcba1f1",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "schemes",
"type": "github"
}
}
},
"root": "root",

View file

@ -24,6 +24,11 @@
inputs.nixpkgs.follows = "nixpkgs";
};
iosevka-custom.url = "git+https://git.xenia.me.uk/pixelifytica/iosevka.git";
base16.url = "github:SenchoPens/base16.nix";
tt-schemes = {
url = "github:tinted-theming/schemes";
flake = false;
};
};
outputs =

View file

@ -142,6 +142,23 @@
};
extraSpecialArgs = {
inherit inputs;
accentColourName = "base0E";
# Emulating stylix behaviour, rewrite at some point
fonts =
let
monospace.name = inputs.iosevka-custom.outputs.names.iosevka-custom-nerdfont;
serif.name = inputs.iosevka-custom.outputs.names.iosevka-custom-aile;
sansSerif.name = serif.name;
in
{
inherit monospace serif sansSerif;
sizes = {
applications = 12;
desktop = 14;
popups = 16;
terminal = 12;
};
};
};
};
environment = {
@ -197,7 +214,7 @@
stylix = {
enable = true;
image = ./home/wallpapers/landscapes/tropic_island_day.jpg;
base16Scheme = "${pkgs.base16-schemes}/share/themes/one-light.yaml";
base16Scheme = "${inputs.tt-schemes}/base16/one-light.yaml";
opacity.popups = 0.8;
cursor = {
package = pkgs.volantes-cursors;
@ -219,12 +236,6 @@
inherit monospace;
serif = proportional;
sansSerif = proportional;
sizes = {
applications = 12;
desktop = 14;
popups = 16;
terminal = 12;
};
};
};
fonts = {

View file

@ -1,12 +1,17 @@
{ config, pkgs, ... }:
{
config,
pkgs,
fonts,
accentColourName,
...
}:
{
home.packages = [ pkgs.nyxt ];
xdg = {
configFile = {
"nyxt/config.lisp".text =
let
fonts = config.stylix.fonts;
scheme = config.lib.stylix.scheme;
sc = config.scheme.withHashtag;
in
''
;; Import custom configuration
@ -17,24 +22,24 @@
:dark-p t
:font-family "${fonts.sansSerif.name}"
:monospace-font-family "${fonts.monospace.name}"
:background-color "${scheme.withHashtag.base00}"
:on-background-color "${scheme.withHashtag.base05}"
:primary-color "${scheme.withHashtag.base02}"
:on-primary-color "${scheme.withHashtag.base05}"
:secondary-color "${scheme.withHashtag.base03}"
:on-secondary-color "${scheme.withHashtag.base05}"
:accent-color "${scheme.withHashtag.base0D}"
:on-accent-color "${scheme.withHashtag.base01}"
:action-color "${scheme.withHashtag.cyan}"
:on-action-color "${scheme.withHashtag.base01}"
:success-color "${scheme.withHashtag.green}"
:on-success-color "${scheme.withHashtag.base01}"
:highlight-color "${scheme.withHashtag.magenta}"
:on-highlight-color "${scheme.withHashtag.base01}"
:warning-color "${scheme.withHashtag.yellow}"
:on-warning-color "${scheme.withHashtag.base01}"
:codeblock-color "${scheme.withHashtag.base02}"
:on-codeblock-color "${scheme.withHashtag.base05}"))))
:background-color "${sc.base00}"
:on-background-color "${sc.base05}"
:primary-color "${sc.base02}"
:on-primary-color "${sc.base05}"
:secondary-color "${sc.base03}"
:on-secondary-color "${sc.base05}"
:accent-color "${sc.${accentColourName}}"
:on-accent-color "${sc.base01}"
:action-color "${sc.cyan}"
:on-action-color "${sc.base01}"
:success-color "${sc.green}"
:on-success-color "${sc.base01}"
:highlight-color "${sc.magenta}"
:on-highlight-color "${sc.base01}"
:warning-color "${sc.yellow}"
:on-warning-color "${sc.base01}"
:codeblock-color "${sc.base02}"
:on-codeblock-color "${sc.base05}"))))
'';
};
dataFile."nyxt/bookmarks.lisp".text =

View file

@ -1,10 +1,16 @@
{ inputs, ... }:
{ inputs, osConfig, ... }:
{
imports = [
inputs.base16.homeManagerModule
inputs.nix-index-database.hmModules.nix-index
./shell/default.nix
./services/password-store/default.nix
./scripts/default.nix
];
programs.home-manager.enable = true;
scheme = "${inputs.tt-schemes}/base16/one-light.yaml";
fonts.fontconfig = {
enable = true;
inherit (osConfig.fonts.fontconfig) defaultFonts;
};
}

View file

@ -1,4 +1,9 @@
{ config, pkgs, ... }:
{
config,
pkgs,
fonts,
...
}:
{
imports = [ ../shell/default.nix ];
stylix.targets.emacs.enable = false;
@ -17,11 +22,9 @@
package = pkgs.emacs29-pgtk;
extraConfig =
let
fixed-font-family = "${config.stylix.fonts.monospace.name}";
variable-font-family = "${config.stylix.fonts.sansSerif.name}";
font-height = builtins.toString (
builtins.floor (builtins.mul config.stylix.fonts.sizes.applications 10)
);
fixed-font-family = "${fonts.monospace.name}";
variable-font-family = "${fonts.sansSerif.name}";
font-height = builtins.toString (builtins.floor (builtins.mul fonts.sizes.applications 10));
custom-theme-name = "nix";
custom-theme = pkgs.writeTextFile {
name = "custom-emacs-theme";

View file

@ -2,6 +2,8 @@
config,
lib,
pkgs,
fonts,
accentColourName,
...
}:
{
@ -23,8 +25,8 @@
{
clickItemTo = "open";
theme = "default";
colorScheme = "Breeze${toCapital config.lib.stylix.scheme.variant}";
iconTheme = "Papirus-${toCapital config.lib.stylix.scheme.variant}";
colorScheme = "Breeze${toCapital config.scheme.variant}";
iconTheme = "Papirus-${toCapital config.scheme.variant}";
windowDecorations = {
library = "org.kde.breeze";
theme = "Breeze";
@ -39,7 +41,7 @@
fonts =
let
general = {
family = config.stylix.fonts.sansSerif.name;
family = fonts.sansSerif.name;
pointSize = 12;
};
small = {
@ -47,7 +49,7 @@
pointSize = general.pointSize - 2;
};
fixedWidth = {
family = config.stylix.fonts.monospace.name;
family = fonts.monospace.name;
pointSize = 12;
};
in
@ -284,9 +286,9 @@
let
AccentColor =
let
r = config.lib.stylix.scheme."base0D-rgb-r";
g = config.lib.stylix.scheme."base0D-rgb-g";
b = config.lib.stylix.scheme."base0D-rgb-b";
r = config.scheme."${accentColourName}-rgb-r";
g = config.scheme."${accentColourName}-rgb-g";
b = config.scheme."${accentColourName}-rgb-b";
in
"${r}, ${g}, ${b}";
in

View file

@ -1,4 +1,9 @@
{ config, pkgs, ... }:
{
config,
pkgs,
fonts,
...
}:
{
home.packages = [ pkgs.yakuake ];
programs.konsole = {
@ -10,8 +15,8 @@
colorScheme = "onelight";
command = "${config.programs.fish.package}/bin/fish";
font = {
inherit (config.stylix.fonts.monospace) name;
size = config.stylix.fonts.sizes.terminal;
name = fonts.monospace.name;
size = fonts.sizes.terminal;
};
extraConfig = {
"Interaction Options" = {

10
system/home/shell/bat.nix Normal file
View file

@ -0,0 +1,10 @@
{ ... }:
{
programs.bat = {
enable = true;
config = {
theme = "OneHalfLight";
style = "plain,numbers,changes";
};
};
}

View file

@ -0,0 +1,51 @@
{ config, accentColourName, ... }:
{
programs.bottom = {
enable = true;
settings = {
flags = {
group_processes = true;
temperature_type = "celsius";
battery = true;
enable_gpu = true;
enable_cache_memory = true;
};
colors =
let
sc = config.scheme.withHashtag;
rainbow = with sc; [
red
yellow
green
cyan
blue
magenta
];
in
{
table_header_color = sc.base05;
all_cpu_color = sc.base05;
avg_cpu_color = sc.base05;
cpu_core_colors = rainbow;
ram_color = sc.red;
cache_color = sc.green;
swap_color = sc.blue;
rx_color = sc.green;
tx_color = sc.blue;
widget_title_color = sc.${accentColourName};
border_color = sc.base02;
highlighted_border_color = sc.${accentColourName};
text_color = sc.base05;
graph_color = sc.base04;
cursor_color = sc.base02;
selected_text_color = sc.base05;
selected_bg_color = sc.base01;
high_battery_color = sc.green;
medium_battery_color = sc.yellow;
low_battery_color = sc.red;
gpu_core_colors = rainbow;
arc_color = sc.cyan;
};
};
};
}

View file

@ -39,7 +39,7 @@
};
colors =
let
rainbow = with config.lib.stylix.scheme.withHashtag; [
rainbow = with config.scheme.withHashtag; [
red
yellow
green
@ -96,36 +96,5 @@
copy_on_select = true;
};
};
zsh = {
enable = true;
enableCompletion = true;
autocd = true;
autosuggestion.enable = true;
defaultKeymap = "emacs";
syntaxHighlighting = {
enable = true;
highlighters = [
"brackets"
"cursor"
];
};
historySubstringSearch.enable = true;
history = {
extended = true;
share = true;
ignoreDups = true;
ignoreAllDups = true;
ignoreSpace = true;
expireDuplicatesFirst = true;
};
initExtra = ''
## completion config and styling
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
zstyle ':completion:*' menu 'select=long-list'
## transient prompt
source ${./transient.zsh}
'';
};
};
}

View file

@ -0,0 +1,7 @@
{ ... }:
{
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
}

View file

@ -0,0 +1,9 @@
{ ... }:
{
programs.eza = {
enable = true;
git = true;
icons = true;
extraOptions = [ "--octal-permissions" ];
};
}

View file

@ -0,0 +1,7 @@
{ ... }:
{
programs.fastfetch = {
enable = true;
settings = { };
};
}

View file

@ -0,0 +1,9 @@
{ pkgs, ... }:
{
programs.fzf = {
enable = true;
defaultCommand = "${pkgs.fd}/bin/fd --type f";
changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d";
fileWidgetCommand = "${pkgs.fd}/bin/fd --type f";
};
}

View file

@ -0,0 +1,20 @@
{ ... }:
{
programs.readline = {
enable = true;
variables = {
bell-style = "visible";
blink-matching-paren = "On";
colored-completion-prefix = "On";
colored-stats = "On";
completion-ignore-case = "On";
completion-map-case = "On";
editing-mode = "emacs";
expand-tilde = "On";
horizontal-scroll-mode = "On";
mark-directories = "On";
mark-symlinked-directories = "On";
visible-stats = "On";
};
};
}

View file

@ -0,0 +1,28 @@
{ config, lib, ... }:
{
programs.zellij = {
enable = true;
settings = {
themes.base16 = with config.scheme.withHashtag; rec {
inherit
red
green
yellow
blue
magenta
cyan
orange
;
black = base00;
bg = black;
white = base05;
fg = white;
};
theme = "base16";
default_mode = "locked";
mouse_mode = true;
copy_command = lib.mkIf config.wayland.windowManager.sway.enable "wl-copy";
copy_on_select = true;
};
};
}

34
system/home/shell/zsh.nix Normal file
View file

@ -0,0 +1,34 @@
{ ... }:
{
programs.zsh = {
enable = true;
enableCompletion = true;
autocd = true;
autosuggestion.enable = true;
defaultKeymap = "emacs";
syntaxHighlighting = {
enable = true;
highlighters = [
"brackets"
"cursor"
];
};
historySubstringSearch.enable = true;
history = {
extended = true;
share = true;
ignoreDups = true;
ignoreAllDups = true;
ignoreSpace = true;
expireDuplicatesFirst = true;
};
initExtra = ''
## completion config and styling
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
zstyle ':completion:*' menu 'select=long-list'
## transient prompt
source ${./transient.zsh}
'';
};
}

View file

@ -112,7 +112,7 @@
enable = true;
iconTheme = {
package = pkgs.papirus-icon-theme.override { color = "violet"; };
name = "Papirus-${(import ../lib/to_capital.nix lib) config.lib.stylix.scheme.variant}";
name = "Papirus-${(import ../lib/to_capital.nix lib) config.scheme.variant}";
};
};
wayland.windowManager.sway = {

View file

@ -1,6 +1,11 @@
{ config, pkgs, ... }:
{
stylix.targets.waybar.enable = false;
config,
pkgs,
fonts,
accentColourName,
...
}:
{
systemd.user.targets.tray.Unit = {
Description = "Home Manager System Tray";
Requires = [ "graphical-session.target" ];
@ -184,14 +189,14 @@
on-scroll = 1;
format =
let
scheme = config.lib.stylix.scheme.withHashtag;
sc = config.scheme.withHashtag;
in
{
months = "<span color='${scheme.red}'><b>{}</b></span>";
weeks = "<span color='${scheme.cyan}'><b>W{}</b></span>";
weekdays = "<span color='${scheme.orange}'><b>{}</b></span>";
days = "<span color='${scheme.base05}'><b>{}</b></span>";
today = "<span color='${scheme.base0D}'><b><i>{}</i></b></span>";
months = "<span color='${sc.red}'><b>{}</b></span>";
weeks = "<span color='${sc.cyan}'><b>W{}</b></span>";
weekdays = "<span color='${sc.orange}'><b>{}</b></span>";
days = "<span color='${sc.base05}'><b>{}</b></span>";
today = "<span color='${sc.${accentColourName}}'><b><i>{}</i></b></span>";
};
};
actions = {
@ -272,14 +277,14 @@
};
style =
let
scheme = config.lib.stylix.scheme.withHashtag;
sc = config.scheme.withHashtag;
alpha = "0.8";
in
''
* {
all: unset;
font-family: ${config.stylix.fonts.monospace.name};
font-size: ${toString config.stylix.fonts.sizes.popups}px;
font-size: ${toString (fonts.sizes.popups + 2)}px;
font-family: ${fonts.monospace.name};
}
window {
@ -289,23 +294,23 @@
}
window > box {
color: ${scheme.base05};
background: ${scheme.base00};
color: ${sc.base05};
background: ${sc.base00};
margin: 5px 5px 0px;
padding: 0px;
border-top: 1px solid ${scheme.base04};
border-top: 1px solid ${sc.base04};
border-radius: 5px;
}
tooltip {
background: alpha(${scheme.base00}, ${alpha});
border: 1px solid ${scheme.base0D};
background: alpha(${sc.base00}, ${alpha});
border: 1px solid ${sc.${accentColourName}};
border-radius: 5px;
box-shadow: none;
}
tooltip label {
color: ${scheme.base05};
color: ${sc.base05};
border: none;
padding: 5px;
margin: 0px;
@ -333,57 +338,57 @@
#backlight,
#battery,
#custom-weather {
color: ${scheme.base05};
color: ${sc.base05};
}
#workspaces button {
background: transparent;
color: ${scheme.base05};
color: ${sc.base05};
margin: 0px;
padding: 0px 5px;
}
#workspaces button.persistent {
color: ${scheme.base03};
color: ${sc.base03};
}
#workspaces button.focused {
color: ${scheme.base0D};
color: ${sc.${accentColourName}};
}
#workspaces button.urgent {
color: ${scheme.base09};
color: ${sc.base09};
}
#mpris {
color: ${scheme.base04};
color: ${sc.base04};
}
#custom-notification {
color: ${scheme.base08};
color: ${sc.base08};
}
#pulseaudio {
color: ${scheme.base09};
color: ${sc.base09};
}
#network {
color: ${scheme.base0A};
color: ${sc.base0A};
}
#bluetooth {
color: ${scheme.base0B};
color: ${sc.base0B};
}
#clock.calendar {
color: ${scheme.base0C};
color: ${sc.base0C};
}
#clock {
color: ${scheme.base0D};
color: ${sc.base0D};
}
#battery.warning {
color: ${scheme.base09};
color: ${sc.base09};
}
#battery.critical {
color: ${scheme.base08};
color: ${sc.base08};
}
#battery.charging,
#battery.plugged {
color: ${scheme.base0B};
color: ${sc.base0B};
}
'';
};