cool new color feature

This commit is contained in:
zoe 2023-02-22 12:56:15 +01:00
parent 2bc0ad7338
commit c972de5689
11 changed files with 386 additions and 297 deletions

View File

@ -2,21 +2,18 @@
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ pkgs, config, ... }:
{
imports =
[
<home-manager/nixos>
./hardware-configuration.nix
./packages.nix
./home.nix
./user.nix
./services.nix
./programs.nix
./disks.nix
./defaults.nix
./variables.nix
];
{ pkgs, ... }: {
imports = [
<home-manager/nixos>
./hardware-configuration.nix
./packages.nix
./home.nix
./user.nix
./services.nix
./programs.nix
./disks.nix
./defaults.nix
];
# kernel
boot.kernelPackages = pkgs.linuxPackages_latest;
@ -32,10 +29,11 @@
opengl = {
enable = true;
driSupport = true;
extraPackages32 = with pkgs; [
vaapiIntel
];
extraPackages32 = with pkgs;
[
vaapiIntel
];
extraPackages = with pkgs; [
intel-media-driver
vaapiIntel
@ -45,14 +43,13 @@
};
};
programs.fish.enable = true;
programs.fish.promptInit = ''
any-nix-shell fish --info-right | source
'';
xdg.portal.enable = true;
xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-gtk];
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
# hostname
networking.hostName = "bat"; # Define your hostname.
@ -142,7 +139,6 @@
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
@ -174,9 +170,7 @@
virtualisation.libvirtd.enable = true;
programs.dconf.enable = true;
# vars
environment.variables = {
MOZ_USE_XINPUT2 = "DEFAULT=1";
};
environment.variables = { MOZ_USE_XINPUT2 = "DEFAULT=1"; };
}

View File

@ -1,10 +1,9 @@
{ pkgs, ... }:
{
enable = true;
plugins = [
{
{ config, pkgs, ... }: {
home-manager.users.zoe.programs.fish = {
enable = true;
plugins = [{
name = "pure";
src = pkgs.fishPlugins.pure.src;
}
];
}];
};
}

View File

@ -1,11 +1,7 @@
{ pkgs, ... }:
let
myConfig = import ./config.nix;
in
{
let myConfig = import ./config.nix;
in {
package = pkgs.helix;
enable = true;
settings = {
theme = "gruvbox_light";
};
settings = { theme = "base16_terminal"; };
}

View File

@ -1,27 +1,24 @@
{ config, pkgs, ... }:
{ pkgs, ... }:
let
nvimCustom = import ./nvim/settings.nix;
fishCustom = import ./fish/settings.nix;
kittyCustom = import ./kitty/settings.nix;
rofiCustom = import ./rofi/settings.nix;
i3Custom = import ./i3/settings.nix;
i3StatusCustom = import ./i3/i3status-rust.nix;
dunstCustom = import ./dunst/settings.nix;
helixCustom = import ./helix/settings.nix;
in
{
imports = [ ./variables.nix ];
home-manager.users.zoe = { pkgs, config, ... }:
{
in {
imports = [
./fish/settings.nix
./variables.nix
i3/settings.nix
kitty/settings.nix
i3/i3status-rust.nix
];
home-manager.users.zoe = {
home.stateVersion = "22.11";
programs.kitty = kittyCustom pkgs;
programs.neovim = nvimCustom pkgs;
programs.fish = fishCustom pkgs;
programs.rofi = rofiCustom pkgs;
programs.helix = helixCustom pkgs;
programs.i3status-rust = i3StatusCustom pkgs;
services.dunst = dunstCustom pkgs;
xsession.windowManager.i3 = i3Custom pkgs;
programs.git = {
enable = true;
@ -34,15 +31,15 @@ in
ytdl-path = "yt-dlp";
save-position-on-quit = true;
};
services.picom = {
enable = true;
package = pkgs.picom-jonaburg;
fade = true;
fadeDelta = 2;
extraArgs = ["--experimental-backends"];
extraArgs = [ "--experimental-backends" ];
};
programs.ssh.enable = true;
programs.ssh.matchBlocks = {
"cookie" = {

View File

@ -1,134 +1,136 @@
{ pkgs, lib, ... }:
{ pkgs, lib, config, ... }:
let
mod = "Mod4";
term = "kitty";
color_bg = "#f9f5d7";
color_fg = "#3c3836";
color_active = "#79740e";
color_active = config.color.green;
color_inactive = "#8f3f71";
color_indicator = "#af3a03";
color_evil = "#9d0006";
in
{
modifier = mod;
terminal = term;
menu = "exec rofi -combi-modi window#drun#ssh -show-icons -show combi -modi combi";
fonts = {
names = [ "CaskaydiaCove Nerd Font" ];
size = 11.0;
};
in {
home-manager.users.zoe.xsession.windowManager.i3.config = {
modifier = mod;
terminal = term;
menu =
"exec rofi -combi-modi window#drun#ssh -show-icons -show combi -modi combi";
fonts = {
names = [ "CaskaydiaCove Nerd Font" ];
size = 11.0;
};
colors = {
background = color_bg;
focused = {
colors = {
background = color_bg;
border = color_active;
childBorder = color_active;
indicator = color_indicator;
text = color_fg;
focused = {
background = color_bg;
border = color_active;
childBorder = color_active;
indicator = color_indicator;
text = color_fg;
};
focusedInactive = {
background = color_bg;
border = color_inactive;
childBorder = color_inactive;
indicator = color_indicator;
text = color_fg;
};
unfocused = {
background = color_bg;
border = color_inactive;
childBorder = color_inactive;
indicator = color_indicator;
text = color_fg;
};
urgent = {
background = color_bg;
border = color_evil;
childBorder = color_evil;
indicator = color_indicator;
text = color_fg;
};
};
focusedInactive = {
background = color_bg;
border = color_inactive;
childBorder = color_inactive;
indicator = color_indicator;
text = color_fg;
keybindings = lib.mkOptionDefault {
# launch things
## calculator
"${mod}+c" = "exec rofi -show calc";
## emoji
"${mod}+period" = "exec rofimoji --action copy --prompt 🏳";
# windows
## find mouse cursor
"${mod}+x" =
"exec find-cursor --color '#282828' -o 2 --outline-color '#EBDBB2'";
## switch to resize mode
"${mod}+r" = "mode resize";
"${mod}+m" = "mode media";
## focus
"${mod}+h" = "focus left";
"${mod}+j" = "focus down";
"${mod}+k" = "focus up";
"${mod}+l" = "focus right";
## move
"${mod}+Shift+h" = "move left";
"${mod}+Shift+j" = "move down";
"${mod}+Shift+k" = "move up";
"${mod}+Shift+l" = "move right";
## split
"${mod}+e" = "split toggle";
# extra keys
## audio
"XF86AudioMute" = "exec amixer set Master toggle";
"XF86AudioUnmute" = "exec amixer set Master toggle";
"XF86AudioMicMute" = "exec amixer set Capture toggle";
"XF86AudioMicUnmute" = "exec amixer set Capture toggle";
## brightness
"XF86MonBrightnessUp" = "exec /etc/nixos/i3/brightness.py 100+";
"XF86MonBrightnessDown" = "exec /etc/nixos/i3/brightness.py 100-";
## display
"XF86Display" = "exec arandr";
## wifi
"XF86WLAN" = "exec rfkill toggle wifi";
};
unfocused = {
background = color_bg;
border = color_inactive;
childBorder = color_inactive;
indicator = color_indicator;
text = color_fg;
modes = {
resize = {
j = "resize grow height 10 px or 10 ppt";
Escape = "mode default";
l = "resize shrink width 10 px or 10 ppt";
Return = "mode default";
h = "resize grow width 10 px or 10 ppt";
k = "resize shrink height 10 px or 10 ppt";
};
media = {
Return = "mode default";
Escape = "mode default";
j = "exec --no-startup-id python3 /etc/nixos/i3/volume.py 5%-";
k = "exec --no-startup-id python3 /etc/nixos/i3/volume.py 5%+";
m = "exec --no-startup-id amixer set Master toggle";
c = "exec --no-startup-id kitty cmus";
v = "exec --no-startup-id mpv";
space = "exec python3 /etc/nixos/i3/play_pause.py";
};
};
urgent = {
background = color_bg;
border = color_evil;
childBorder = color_evil;
indicator = color_indicator;
text = color_fg;
window = {
titlebar = false;
border = 4;
};
};
keybindings = lib.mkOptionDefault {
# launch things
## calculator
"${mod}+c" = "exec rofi -show calc";
## emoji
"${mod}+period" = "exec rofimoji --action copy --prompt 🏳";
# windows
## find mouse cursor
"${mod}+x" = "exec find-cursor --color '#282828' -o 2 --outline-color '#EBDBB2'";
## switch to resize mode
"${mod}+r" = "mode resize";
"${mod}+m" = "mode media";
## focus
"${mod}+h" = "focus left";
"${mod}+j" = "focus down";
"${mod}+k" = "focus up";
"${mod}+l" = "focus right";
## move
"${mod}+Shift+h" = "move left";
"${mod}+Shift+j" = "move down";
"${mod}+Shift+k" = "move up";
"${mod}+Shift+l" = "move right";
## split
"${mod}+e" = "split toggle";
# extra keys
## audio
"XF86AudioMute" = "exec amixer set Master toggle";
"XF86AudioUnmute" = "exec amixer set Master toggle";
"XF86AudioMicMute" = "exec amixer set Capture toggle";
"XF86AudioMicUnmute" = "exec amixer set Capture toggle";
## brightness
"XF86MonBrightnessUp" = "exec /etc/nixos/i3/brightness.py 100+";
"XF86MonBrightnessDown" = "exec /etc/nixos/i3/brightness.py 100-";
## display
"XF86Display" = "exec arandr";
## wifi
"XF86WLAN" = "exec rfkill toggle wifi";
};
modes = {
resize = {
j = "resize grow height 10 px or 10 ppt";
Escape = "mode default";
l = "resize shrink width 10 px or 10 ppt";
Return = "mode default";
h = "resize grow width 10 px or 10 ppt";
k = "resize shrink height 10 px or 10 ppt";
gaps = {
inner = 4;
outer = 4;
};
media = {
Return = "mode default";
Escape = "mode default";
j = "exec --no-startup-id python3 /etc/nixos/i3/volume.py 5%-";
k = "exec --no-startup-id python3 /etc/nixos/i3/volume.py 5%+";
m = "exec --no-startup-id amixer set Master toggle";
c = "exec --no-startup-id kitty cmus";
v = "exec --no-startup-id mpv";
space = "exec python3 /etc/nixos/i3/play_pause.py";
};
};
window = {
titlebar = false;
border = 4;
};
gaps = {
inner = 4;
outer = 4;
};
bars = [
{
bars = [{
position = "top";
command = "i3bar";
statusCommand = "i3status-rs $HOME/.config/i3status-rust/config-main.toml";
statusCommand =
"i3status-rs $HOME/.config/i3status-rust/config-main.toml";
fonts = {
names = [ "CaskaydiaCove Nerd Font" ];
size = 11.0;
@ -156,12 +158,21 @@ in
text = color_fg;
};
};
}
];
}];
startup = [
{ command = "--no-startup-id feh --bg-scale /etc/nixos/wallpaper.png"; always = true; }
{ command = "picom --experimental-backends"; always = true;}
{ command = "--no-startup-id autotiling"; always = true; }
];
startup = [
{
command = "--no-startup-id feh --bg-scale /etc/nixos/wallpaper.png";
always = true;
}
{
command = "picom --experimental-backends";
always = true;
}
{
command = "--no-startup-id autotiling";
always = true;
}
];
};
}

View File

@ -1,10 +1,5 @@
{ pkgs, ... }:
let
main = import ./mainbar.nix;
in
{
enable = true;
bars = {
main = main;
};
{ pkgs, ... }: {
imports = [ ./mainbar.nix ];
home-manager.users.zoe.programs.i3status-rust = { enable = true; };
}

View File

@ -1,79 +1,78 @@
{ config, ... }:
{
imports = [ ../variables.nix ];
{ config, ... }: {
home-manager.users.zoe.programs.i3status-rust.bars.main = {
blocks = [
# music
{
block = "music";
buttons = [ "prev" "play" "next" ];
hide_when_empty = true;
}
# audio in
{
block = "sound";
device_kind = "source";
format = "{volume}";
driver = "pulseaudio";
on_click = "amixer set Capture toggle";
step_width = 1;
}
blocks = [
# music
{
block = "music";
buttons = [ "prev" "play" "next" ];
hide_when_empty = true;
}
# audio in
{
block = "sound";
device_kind = "source";
format = "{volume}";
driver = "pulseaudio";
on_click = "amixer set Capture toggle";
step_width = 1;
}
# audio out
{
block = "sound";
format = "{volume}";
driver = "pulseaudio";
headphones_indicator = true;
on_click = "amixer set Master toggle";
step_width = 1;
}
# audio out
{
block = "sound";
format = "{volume}";
driver = "pulseaudio";
headphones_indicator = true;
on_click = "amixer set Master toggle";
step_width = 1;
}
# network
{
block = "networkmanager";
ap_format = "{ssid} {strength}";
device_format = "{icon} {name} {ap}";
}
# network
{
block = "networkmanager";
ap_format = "{ssid} {strength}";
device_format = "{icon} {name} {ap}";
}
# battery
{
block = "battery";
format = "{percentage}";
hide_missing = true;
interval = 120;
}
# battery
{
block = "battery";
format = "{percentage}";
hide_missing = true;
interval = 120;
}
# time
{
block = "time";
format = "%a %d/%m %R";
timezone = "Europe/Berlin";
interval = 60;
locale = "de_DE";
}
];
icons = "material-nf";
settings = {
theme = {
name = "gruvbox-light";
overrides = {
separator = "";
# background
good_bg = config.color.white;
critical_bg = config.color.white;
idle_bg = config.color.white;
info_bg = config.color.white;
seperator_bg = config.color.white;
warning_bg = config.color.white;
# time
{
block = "time";
format = "%a %d/%m %R";
timezone = "Europe/Berlin";
interval = 60;
locale = "de_DE";
}
];
icons = "material-nf";
settings = {
theme = {
name = "gruvbox-light";
overrides = {
separator = "";
# background
good_bg = config.color.zero;
critical_bg = config.color.zero;
idle_bg = config.color.zero;
info_bg = config.color.zero;
seperator_bg = config.color.zero;
warning_bg = config.color.zero;
# foreground
critical_fg = "#9d0006";
good_fg = "#79740e";
info_fg = "#8f3f71";
idle_fg = "#3c3836";
separator_fg = "#928374";
warning_fg = "#b57614";
# foreground
critical_fg = "#9d0006";
good_fg = "#79740e";
info_fg = "#8f3f71";
idle_fg = "#3c3836";
separator_fg = "#928374";
warning_fg = "#b57614";
};
};
};
};

View File

@ -1,9 +1,7 @@
{ pkgs, lib, ... }:
let
myConfig = import ./config.nix;
in
{
package = pkgs.i3-gaps;
enable = true;
config = myConfig;
{ pkgs, lib, ... }: {
imports = [ ./config.nix ];
home-manager.users.zoe.xsession.windowManager.i3 = {
package = pkgs.i3-gaps;
enable = true;
};
}

View File

@ -1,32 +1,57 @@
{ pkgs, ... }:
{
enable = true;
settings = {
# cursor
cursor = "none";
{ pkgs, config, lib, ... }: {
home-manager.users.zoe.programs.kitty = {
enable = true;
settings = {
# cursor
cursor = "none";
# dont pop up a prompt when trying to close
confirm_os_window_close = 0;
# dont pop up a prompt when trying to close
confirm_os_window_close = 0;
# mouse
focus_follows_mouse = true;
# mouse
focus_follows_mouse = true;
# copy to clipboard
strip_trailing_spaces = "smart";
copy_on_select = true;
# copy to clipboard
strip_trailing_spaces = "smart";
copy_on_select = true;
# performance
sync_to_monitor = true;
# performance
sync_to_monitor = true;
# tabs
tab_bar_edge = "top";
tab_bar_style = "separator";
tab_separator = " | ";
active_tab_title_template = " {bell_symbol}{activity_symbol}{fmt.fg.tab}{title}";
# tabs
tab_bar_edge = "top";
tab_bar_style = "separator";
tab_separator = " | ";
active_tab_title_template =
" {bell_symbol}{activity_symbol}{fmt.fg.tab}{title}";
color0 = config.color.black;
color8 = config.color.black_dull;
color1 = config.color.red;
color9 = config.color.red_dull;
color2 = config.color.green;
color10 = config.color.green_dull;
color3 = config.color.yellow;
color11 = config.color.yellow_dull;
color4 = config.color.blue;
color12 = config.color.blue_dull;
color5 = config.color.magenta;
color13 = config.color.magenta_dull;
color6 = config.color.cyan;
color14 = config.color.cyan_dull;
color7 = config.color.white;
color15 = config.color.white_dull;
foreground = config.color.foreground;
background = config.color.background;
selection_foreground = config.color.foreground;
selection_background = config.color.background;
};
font = {
name = config.font.mono;
size = 12;
};
};
font = {
name = "CaskaydiaCove Nerd Font Mono";
size = 12;
};
theme = "Gruvbox Material Light Hard";
}

View File

@ -98,6 +98,7 @@ in
vscodium
## nix
any-nix-shell
nixfmt
## js
nodejs
nodePackages.prettier

View File

@ -1,11 +1,85 @@
{ config, pkgs, lib, ...}:
with lib;
{
{ config, pkgs, lib, ... }:
with lib; {
options = {
color.zero = mkOption {
font.mono = mkOption {
type = types.str;
description = "background";
default = "#00ff00";
default = "CaskaydiaCove Nerd Font Mono";
};
font.regular = mkOption {
type = types.str;
default = "CaskaydiaCove Nerd Font Regular";
};
color.background = mkOption {
type = types.str;
default = "#1E1E2E";
};
color.foreground = mkOption {
type = types.str;
default = "#CDD6F4";
};
color.black = mkOption {
type = types.str;
default = "#45475A";
};
color.black_dull = mkOption {
type = types.str;
default = "#585B70";
};
color.red = mkOption {
type = types.str;
default = "#F38BA8";
};
color.red_dull = mkOption {
type = types.str;
default = "#F38BA8";
};
color.green = mkOption {
type = types.str;
default = "#A6E3A1";
};
color.green_dull = mkOption {
type = types.str;
default = "#A6E3A1";
};
color.yellow = mkOption {
type = types.str;
default = "#F9E2AF";
};
color.yellow_dull = mkOption {
type = types.str;
default = "#F9E2AF";
};
color.blue = mkOption {
type = types.str;
default = "#89B4FA";
};
color.blue_dull = mkOption {
type = types.str;
default = "#89B4FA";
};
color.magenta = mkOption {
type = types.str;
default = "#F5C2E7";
};
color.magenta_dull = mkOption {
type = types.str;
default = "#F5C2E7";
};
color.cyan = mkOption {
type = types.str;
default = "#94E2D5";
};
color.cyan_dull = mkOption {
type = types.str;
default = "#94E2D5";
};
color.white = mkOption {
type = types.str;
default = "#BAC2DE";
};
color.white_dull = mkOption {
type = types.str;
default = "#A6ADC8";
};
};
}
}