Begin testing stylix
This commit is contained in:
parent
237246a73a
commit
e88838c8a1
12 changed files with 743 additions and 5 deletions
|
@ -38,6 +38,8 @@
|
||||||
# Manage Plasma desktop with Nix
|
# Manage Plasma desktop with Nix
|
||||||
plasma-manager.url = "github:pjones/plasma-manager";
|
plasma-manager.url = "github:pjones/plasma-manager";
|
||||||
plasma-manager.inputs.nixpkgs.follows = "nixpkgs";
|
plasma-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
# Nix colorizer / themer
|
||||||
|
stylix.url = "github:danth/stylix";
|
||||||
};
|
};
|
||||||
outputs = { self, nixpkgs, nixpkgs-wayland, home-manager, lanzaboote, nur, sops-nix, doom-emacs, nixos-generators, deploy-rs, ... } @inputs:
|
outputs = { self, nixpkgs, nixpkgs-wayland, home-manager, lanzaboote, nur, sops-nix, doom-emacs, nixos-generators, deploy-rs, ... } @inputs:
|
||||||
let
|
let
|
||||||
|
@ -51,7 +53,7 @@
|
||||||
framework-server = libx.mkHost { hostname = "framework-server"; };
|
framework-server = libx.mkHost { hostname = "framework-server"; };
|
||||||
nuc-server = libx.mkHost { hostname = "nuc-server"; };
|
nuc-server = libx.mkHost { hostname = "nuc-server"; };
|
||||||
nixos-desktop = libx.mkHost { hostname = "nixos-desktop"; desktop = "plasma6"; gpu = "nvidia"; };
|
nixos-desktop = libx.mkHost { hostname = "nixos-desktop"; desktop = "plasma6"; gpu = "nvidia"; };
|
||||||
nixos-framework = libx.mkHost { hostname = "nixos-framework"; desktop = "hyprland"; gpu = "amd"; theme = "green"; };
|
nixos-framework = libx.mkHost { hostname = "nixos-framework"; desktop = "hyprland"; gpu = "amd"; theme = "stylix"; };
|
||||||
backups-rpi4 = libx.mkHost { hostname = "backups-rpi4"; platform = "aarch64-linux"; type = "small"; };
|
backups-rpi4 = libx.mkHost { hostname = "backups-rpi4"; platform = "aarch64-linux"; type = "small"; };
|
||||||
piaware-rpi4 = libx.mkHost { hostname = "piaware-rpi4"; platform = "aarch64-linux"; type = "small"; };
|
piaware-rpi4 = libx.mkHost { hostname = "piaware-rpi4"; platform = "aarch64-linux"; type = "small"; };
|
||||||
quitman-rpi4 = libx.mkHost { hostname = "quitman-rpi4"; platform = "aarch64-linux"; type = "small"; };
|
quitman-rpi4 = libx.mkHost { hostname = "quitman-rpi4"; platform = "aarch64-linux"; type = "small"; };
|
||||||
|
@ -61,7 +63,7 @@
|
||||||
"albert@framework-server" = libx.mkHome { hostname = "framework-server"; };
|
"albert@framework-server" = libx.mkHome { hostname = "framework-server"; };
|
||||||
"albert@nuc-server" = libx.mkHome { hostname = "nuc-server"; };
|
"albert@nuc-server" = libx.mkHome { hostname = "nuc-server"; };
|
||||||
"albert@nixos-desktop" = libx.mkHome { hostname = "nixos-desktop"; desktop = "plasma6"; };
|
"albert@nixos-desktop" = libx.mkHome { hostname = "nixos-desktop"; desktop = "plasma6"; };
|
||||||
"albert@nixos-framework" = libx.mkHome { hostname = "nixos-framework"; desktop = "hyprland"; theme = "green"; };
|
"albert@nixos-framework" = libx.mkHome { hostname = "nixos-framework"; desktop = "hyprland"; theme = "stylix"; };
|
||||||
"albert@backups-rpi4" = libx.mkHome { hostname = "backups-rpi4"; platform = "aarch64-linux"; type = "small"; };
|
"albert@backups-rpi4" = libx.mkHome { hostname = "backups-rpi4"; platform = "aarch64-linux"; type = "small"; };
|
||||||
"albert@piaware-rpi4" = libx.mkHome { hostname = "piaware-rpi4"; platform = "aarch64-linux"; type = "small"; };
|
"albert@piaware-rpi4" = libx.mkHome { hostname = "piaware-rpi4"; platform = "aarch64-linux"; type = "small"; };
|
||||||
"albert@quitman-rpi4" = libx.mkHome { hostname = "quitman-rpi4"; platform = "aarch64-linux"; type = "small"; };
|
"albert@quitman-rpi4" = libx.mkHome { hostname = "quitman-rpi4"; platform = "aarch64-linux"; type = "small"; };
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{ pkgs, theme, ... }: {
|
{ pkgs, inputs, theme, ... }: {
|
||||||
imports = [
|
imports = [
|
||||||
|
inputs.stylix.homeManagerModules.stylix
|
||||||
./themes/${theme}
|
./themes/${theme}
|
||||||
# GTK theme applied in home-manager/common/software/cli/bash.nix
|
# GTK theme applied in home-manager/common/software/cli/bash.nix
|
||||||
# Theme agnostic configs
|
# Theme agnostic configs
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
{ ... }: {
|
||||||
|
imports = [
|
||||||
|
./mako-conf.nix
|
||||||
|
./rofi-conf.nix
|
||||||
|
./swaylock-conf.nix
|
||||||
|
./waybar-conf.nix
|
||||||
|
./wlogout-conf.nix
|
||||||
|
./hyprland-conf.nix
|
||||||
|
];
|
||||||
|
}
|
|
@ -0,0 +1,100 @@
|
||||||
|
{ theme, ... }: {
|
||||||
|
home.file = {
|
||||||
|
".config/hypr/hyprland.conf" = {
|
||||||
|
enable = true;
|
||||||
|
text = ''
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/
|
||||||
|
env = GDK_SCALE,1
|
||||||
|
env = XCURSOR_SIZE,22
|
||||||
|
|
||||||
|
# unscale XWayland
|
||||||
|
xwayland {
|
||||||
|
force_zero_scaling = true
|
||||||
|
}
|
||||||
|
|
||||||
|
layerrule = blur, waybar
|
||||||
|
|
||||||
|
# nVidia Speficic Settings:
|
||||||
|
# https://wiki.hyprland.org/Nvidia/
|
||||||
|
# env = LIBVA_DRIVER_NAME,nvidia
|
||||||
|
# env = XDG_SESSION_TYPE,wayland
|
||||||
|
# env = GBM_BACKEND,nvidia-drm
|
||||||
|
# env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||||
|
env = WLR_NO_HARDWARE_CURSORS,1
|
||||||
|
|
||||||
|
general {
|
||||||
|
gaps_in = 5
|
||||||
|
gaps_out = 15
|
||||||
|
border_size = 3
|
||||||
|
# First six are color, last 2 are opacity
|
||||||
|
col.active_border = rgba(2a9b34bb) # Gruvbox fg2, opacity bb
|
||||||
|
col.inactive_border = rgba(207427dd) # Gruvbox bg2, opacity aa
|
||||||
|
resize_on_border = true
|
||||||
|
extend_border_grab_area = 15
|
||||||
|
layout = dwindle
|
||||||
|
}
|
||||||
|
input {
|
||||||
|
kb_layout = us
|
||||||
|
follow_mouse = 1
|
||||||
|
touchpad {
|
||||||
|
natural_scroll = true
|
||||||
|
disable_while_typing = true
|
||||||
|
tap-to-click = true
|
||||||
|
clickfinger_behavior = true
|
||||||
|
drag_lock = true
|
||||||
|
}
|
||||||
|
sensitivity = 0
|
||||||
|
}
|
||||||
|
gestures {
|
||||||
|
# https://wiki.hyprland.org/0.24.1/Configuring/Keywords/#gestures
|
||||||
|
workspace_swipe = true
|
||||||
|
workspace_swipe_fingers = 3
|
||||||
|
workspace_swipe_numbered = false
|
||||||
|
}
|
||||||
|
misc {
|
||||||
|
disable_hyprland_logo = true
|
||||||
|
mouse_move_enables_dpms = true
|
||||||
|
key_press_enables_dpms = true
|
||||||
|
}
|
||||||
|
decoration {
|
||||||
|
rounding = 5
|
||||||
|
active_opacity = 0.8
|
||||||
|
inactive_opacity = 0.6
|
||||||
|
fullscreen_opacity = 1.0
|
||||||
|
drop_shadow = true
|
||||||
|
shadow_range = 4
|
||||||
|
shadow_render_power = 3
|
||||||
|
col.shadow = rgba(05050500)
|
||||||
|
blur {
|
||||||
|
size = 8
|
||||||
|
passes = 3
|
||||||
|
ignore_opacity = true
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
animations {
|
||||||
|
# https://wiki.hyprland.org/Configuring/Animations/
|
||||||
|
enabled = true
|
||||||
|
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||||
|
animation = windows, 1, 7, myBezier
|
||||||
|
animation = windowsOut, 1, 7, default, popin 80%
|
||||||
|
animation = border, 1, 10, default
|
||||||
|
animation = borderangle, 1, 8, default
|
||||||
|
animation = fade, 1, 7, default
|
||||||
|
animation = workspaces, 1, 6, default
|
||||||
|
}
|
||||||
|
dwindle {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||||
|
pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||||
|
preserve_split = true # you probably want this
|
||||||
|
no_gaps_when_only = 1
|
||||||
|
|
||||||
|
}
|
||||||
|
master {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||||
|
new_is_master = true
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
{ ... }: {
|
||||||
|
home.file.".config/mako/config".text = ''
|
||||||
|
max-history=5
|
||||||
|
sort=+time
|
||||||
|
|
||||||
|
on-button-left=dismiss
|
||||||
|
on-button-right=dismiss-all
|
||||||
|
|
||||||
|
font=JetbrainsMono Regular
|
||||||
|
background-color=#3a3c3e
|
||||||
|
border-color=#2a9b34
|
||||||
|
text-color=#d9eed2
|
||||||
|
width=300
|
||||||
|
height=100
|
||||||
|
margin=10
|
||||||
|
padding=15
|
||||||
|
border-size=3
|
||||||
|
border-radius=15
|
||||||
|
icons=1
|
||||||
|
max-icon-size=128
|
||||||
|
icon-location=left
|
||||||
|
markup=1
|
||||||
|
actions=1
|
||||||
|
history=1
|
||||||
|
text-alignment=left
|
||||||
|
default-timeout=15000
|
||||||
|
layer=top
|
||||||
|
anchor=top-right
|
||||||
|
'';
|
||||||
|
}
|
|
@ -0,0 +1,223 @@
|
||||||
|
{ ...}: {
|
||||||
|
home.file = {
|
||||||
|
# https://github.com/davatorium/rofi/blob/next/CONFIG.md
|
||||||
|
# Rofi configuration
|
||||||
|
".config/rofi/config.rasi" = {
|
||||||
|
enable = true;
|
||||||
|
executable = false;
|
||||||
|
text = ''
|
||||||
|
configuration {
|
||||||
|
}
|
||||||
|
@theme "dark"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# Rofi theme
|
||||||
|
".config/rofi/themes/dark.rasi" = {
|
||||||
|
enable = true;
|
||||||
|
executable = false;
|
||||||
|
text = ''
|
||||||
|
/* ==========================================================================
|
||||||
|
Rofi color theme
|
||||||
|
|
||||||
|
Based on the Gruvbox color scheme for Vim by morhetz
|
||||||
|
https://github.com/morhetz/gruvbox
|
||||||
|
|
||||||
|
File: dark.rasi
|
||||||
|
Desc: Gruvbox dark color theme for Rofi
|
||||||
|
Author: bardisty <b@bah.im>
|
||||||
|
Source: https://github.com/bardisty/rofi
|
||||||
|
Modified: Mon Feb 12 2018 04:08:43 PST -0800
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
* {
|
||||||
|
/* Theme settings */
|
||||||
|
highlight: bold italic;
|
||||||
|
scrollbar: true;
|
||||||
|
|
||||||
|
/* Gruvbox dark colors */
|
||||||
|
dark-bg0: #282828;
|
||||||
|
dark-bg0-soft: #32302f;
|
||||||
|
dark-bg3: #665c54;
|
||||||
|
dark-fg0: #d9eed2;
|
||||||
|
dark-fg1: #d9eed2;
|
||||||
|
dark-red-dark: #fb0029;
|
||||||
|
dark-red-light: #fb4934;
|
||||||
|
dark-yellow-dark: #7a6640;
|
||||||
|
dark-yellow-light: #7a6640;
|
||||||
|
dark-gray: #a89984;
|
||||||
|
|
||||||
|
/* Theme colors */
|
||||||
|
background: @dark-bg0;
|
||||||
|
background-color: @background;
|
||||||
|
foreground: @dark-fg1;
|
||||||
|
border-color: @dark-gray;
|
||||||
|
separatorcolor: @border-color;
|
||||||
|
scrollbar-handle: @border-color;
|
||||||
|
|
||||||
|
normal-background: @background;
|
||||||
|
normal-foreground: @foreground;
|
||||||
|
alternate-normal-background: @dark-bg0-soft;
|
||||||
|
alternate-normal-foreground: @foreground;
|
||||||
|
selected-normal-background: @dark-bg3;
|
||||||
|
selected-normal-foreground: @dark-fg0;
|
||||||
|
|
||||||
|
active-background: @dark-yellow-dark;
|
||||||
|
active-foreground: @background;
|
||||||
|
alternate-active-background: @active-background;
|
||||||
|
alternate-active-foreground: @active-foreground;
|
||||||
|
selected-active-background: @dark-yellow-light;
|
||||||
|
selected-active-foreground: @active-foreground;
|
||||||
|
|
||||||
|
urgent-background: @dark-red-dark;
|
||||||
|
urgent-foreground: @background;
|
||||||
|
alternate-urgent-background: @urgent-background;
|
||||||
|
alternate-urgent-foreground: @urgent-foreground;
|
||||||
|
selected-urgent-background: @dark-red-light;
|
||||||
|
selected-urgent-foreground: @urgent-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
@import "common"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# Rofi theme
|
||||||
|
".config/rofi/themes/common.rasi" = {
|
||||||
|
enable = true;
|
||||||
|
executable = false;
|
||||||
|
text = ''
|
||||||
|
/* ==========================================================================
|
||||||
|
File: common.rasi
|
||||||
|
Desc: Shared rules between all gruvbox themes
|
||||||
|
Author: bardisty <b@bah.im>
|
||||||
|
Source: https://github.com/bardisty/rofi
|
||||||
|
Modified: Mon Feb 12 2018 06:06:47 PST -0800
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
window {
|
||||||
|
background-color: @background;
|
||||||
|
border: 2;
|
||||||
|
padding: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
mainbox {
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
message {
|
||||||
|
border: 2px 0 0;
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
textbox {
|
||||||
|
highlight: @highlight;
|
||||||
|
text-color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
listview {
|
||||||
|
border: 2px solid 0 0;
|
||||||
|
padding: 2px 0 0;
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
spacing: 2px;
|
||||||
|
scrollbar: @scrollbar;
|
||||||
|
}
|
||||||
|
|
||||||
|
element {
|
||||||
|
border: 0;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
element.normal.normal {
|
||||||
|
background-color: @normal-background;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
element.normal.urgent {
|
||||||
|
background-color: @urgent-background;
|
||||||
|
text-color: @urgent-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
element.normal.active {
|
||||||
|
background-color: @active-background;
|
||||||
|
text-color: @active-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
element.selected.normal {
|
||||||
|
background-color: @selected-normal-background;
|
||||||
|
text-color: @selected-normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
element.selected.urgent {
|
||||||
|
background-color: @selected-urgent-background;
|
||||||
|
text-color: @selected-urgent-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
element.selected.active {
|
||||||
|
background-color: @selected-active-background;
|
||||||
|
text-color: @selected-active-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
element.alternate.normal {
|
||||||
|
background-color: @alternate-normal-background;
|
||||||
|
text-color: @alternate-normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
element.alternate.urgent {
|
||||||
|
background-color: @alternate-urgent-background;
|
||||||
|
text-color: @alternate-urgent-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
element.alternate.active {
|
||||||
|
background-color: @alternate-active-background;
|
||||||
|
text-color: @alternate-active-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
scrollbar {
|
||||||
|
width: 4px;
|
||||||
|
border: 0;
|
||||||
|
handle-color: @scrollbar-handle;
|
||||||
|
handle-width: 8px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
mode-switcher {
|
||||||
|
border: 2px 0 0;
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
inputbar {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
padding: 2px;
|
||||||
|
children: [ prompt, textbox-prompt-sep, entry, case-indicator ];
|
||||||
|
}
|
||||||
|
|
||||||
|
case-indicator,
|
||||||
|
entry,
|
||||||
|
prompt,
|
||||||
|
button {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.selected {
|
||||||
|
background-color: @selected-normal-background;
|
||||||
|
text-color: @selected-normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
textbox-prompt-sep {
|
||||||
|
expand: false;
|
||||||
|
str: ":";
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
margin: 0 0.3em 0 0;
|
||||||
|
}
|
||||||
|
element-text, element-icon {
|
||||||
|
background-color: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,57 @@
|
||||||
|
{ pkgs, ... }: {
|
||||||
|
programs.swaylock = {
|
||||||
|
enable = true;
|
||||||
|
# swaylock-effects has extra effects like image blur and stuff.
|
||||||
|
package = pkgs.swaylock-effects;
|
||||||
|
settings = {
|
||||||
|
# All <color> options are of the form <rrggbb[aa]>.
|
||||||
|
font-size = 96;
|
||||||
|
show-failed-attempts = true;
|
||||||
|
effect-blur = "20x8";
|
||||||
|
screenshots = true;
|
||||||
|
font = "JetBrainsMono Nerd Font";
|
||||||
|
|
||||||
|
clock = true;
|
||||||
|
timestr = "%R";
|
||||||
|
datestr = "%a, %b %d";
|
||||||
|
grace = 5;
|
||||||
|
|
||||||
|
indicator = true;
|
||||||
|
indicator-radius = "130";
|
||||||
|
indicator-thickness = "12";
|
||||||
|
indicator-caps-lock = true;
|
||||||
|
disable-caps-lock-text = false;
|
||||||
|
|
||||||
|
# OTHER
|
||||||
|
key-hl-color = "b8bb26"; #b8bb26 # Sets the color of the key press highlight segments.
|
||||||
|
separator-color = "ebdbb200"; #ebdbb200 # Sets the color of the lines that separate highlight segments.
|
||||||
|
bs-hl-color = "d79921"; #d79921 # Sets the color of backspace highlight segments.
|
||||||
|
# DEFAULT
|
||||||
|
ring-color = "2a9b34"; #2a9b34 # Sets the color of the ring of the indicator.
|
||||||
|
line-color = "ebdbb200"; #ebdbb200 # Sets the color of the line between the inside and ring.
|
||||||
|
text-color = "83a598"; #83a598 # Sets the color of the text.
|
||||||
|
inside-color = "1d202199"; #1d202199 # Sets the color of the inside of the indicator.
|
||||||
|
# VERIFYING
|
||||||
|
ring-ver-color = "41ff58"; #41ff58 # Sets the color of the ring of the indicator when verifying.
|
||||||
|
line-ver-color = "ebdbb200"; #ebdbb200 # Sets the color of the line between the inside and ring when verifying.
|
||||||
|
text-ver-color = "83a59800"; #83a59800 # Sets the color of the text when verifying.
|
||||||
|
inside-ver-color = "1e1e1e99"; #1e1e1e99 # Sets the color of the inside of the indicator when verifying.
|
||||||
|
# WRONG
|
||||||
|
ring-wrong-color = "da6a6a"; #da6a6a # Sets the color of the ring of the indicator when invalid.
|
||||||
|
line-wrong-color = "ebdbb200"; #ebdbb200 # Sets the color of the line between the inside and ring when invalid.
|
||||||
|
text-wrong-color = "83a59800"; #83a59800 # Sets the color of the text when invalid.
|
||||||
|
inside-wrong-color = "1e1e1e99"; #1e1e1e99 # Sets the color of the inside of the indicator when invalid.
|
||||||
|
# CAPS-LOCK
|
||||||
|
ring-caps-lock-color = "2a9b34"; #2a9b34 # Sets the color of the ring of the indicator when Caps Lock is active.
|
||||||
|
line-caps-lock-color = "2a9b3400"; #2a9b3400 # Sets the color of the line between the inside and ring when Caps Lock is active.
|
||||||
|
text-caps-lock-color = "2a9b3400"; #2a9b3400 # Sets the color of the text when Caps Lock is active.
|
||||||
|
inside-caps-lock-color = "1e1e1e99"; #1e1e1e99 # Sets the color of the inside of the indicator when Caps Lock is active.
|
||||||
|
# CLEAR
|
||||||
|
ring-clear-color = "bdae93"; #bdae93 # Sets the color of the ring of the indicator when cleared.
|
||||||
|
line-clear-color = "92837400"; #92837400 # Sets the color of the line between the inside and ring when cleared.
|
||||||
|
text-clear-color = "92837400"; #92837400 # Sets the color of the text when cleared.
|
||||||
|
inside-clear-color = "1e1e1e99"; #1e1e1e99 # Sets the color of the inside of the indicator when cleared.
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,274 @@
|
||||||
|
{ ...}: {
|
||||||
|
imports = [ ../../common/waybar/scripts.nix ];
|
||||||
|
|
||||||
|
home.file = {
|
||||||
|
# https://yewtu.be/watch?v=tWQB1NDDA9c
|
||||||
|
# https://github.com/DN-debug/waybar-examples
|
||||||
|
|
||||||
|
# Inspiration:
|
||||||
|
# https://github.com/Pipshag/dotfiles_gruvbox
|
||||||
|
|
||||||
|
# Font Search:
|
||||||
|
# https://www.nerdfonts.com/cheat-sheet
|
||||||
|
|
||||||
|
# Online CSS testing
|
||||||
|
# https://www.w3schools.com/css/tryit.asp?filename=trycss_border_round
|
||||||
|
|
||||||
|
# Waybar configuration
|
||||||
|
".config/waybar/config.jsonc" = {
|
||||||
|
enable = true;
|
||||||
|
executable = false;
|
||||||
|
text = ''
|
||||||
|
{
|
||||||
|
"layer": "top",
|
||||||
|
"position": "top",
|
||||||
|
"modules-left": [
|
||||||
|
"custom/wlogout",
|
||||||
|
"idle_inhibitor",
|
||||||
|
"clock",
|
||||||
|
"mpris",
|
||||||
|
],
|
||||||
|
"modules-center": [
|
||||||
|
"hyprland/workspaces",
|
||||||
|
],
|
||||||
|
"modules-right": [
|
||||||
|
"pulseaudio",
|
||||||
|
"custom/tailscale",
|
||||||
|
"network",
|
||||||
|
"battery",
|
||||||
|
],
|
||||||
|
|
||||||
|
"custom/wlogout": {
|
||||||
|
"format": "",
|
||||||
|
"on-click": "wlogout"
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/tailscale": {
|
||||||
|
"format": "{icon} ",
|
||||||
|
"exec": "$HOME/.config/waybar/scripts/tailscale.sh",
|
||||||
|
"exec-if": "pgrep tailscaled",
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 5,
|
||||||
|
"format-icons": {
|
||||||
|
"Running": "",
|
||||||
|
"Stopped": "",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"idle_inhibitor": {
|
||||||
|
"format": "{icon} ",
|
||||||
|
"format-icons": {
|
||||||
|
"activated": "",
|
||||||
|
"deactivated": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"mpris": {
|
||||||
|
"format": "{player_icon} {dynamic}",
|
||||||
|
"format-paused": "{status_icon} <i>{dynamic}</i>",
|
||||||
|
"player-icons": { "default": "▶" },
|
||||||
|
"status-icons": { "paused": "⏸" },
|
||||||
|
"max-length": 30,
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"on-click": "activate",
|
||||||
|
},
|
||||||
|
|
||||||
|
"clock": {
|
||||||
|
"format": " {:%H:%M}",
|
||||||
|
"format-alt": " {:%A, %d %b, %Y}",
|
||||||
|
"tooltip-format": "<tt><small>{calendar}</small></tt>",
|
||||||
|
"calendar": {
|
||||||
|
"mode" : "month",
|
||||||
|
"mode-mon-col" : 3,
|
||||||
|
"weeks-pos" : "left",
|
||||||
|
"on-scroll" : 1,
|
||||||
|
"format": {
|
||||||
|
"months": "<span color='#d9eed2'><b>{}</b></span>",
|
||||||
|
"days": "<span color='#d9eed2'><b>{}</b></span>",
|
||||||
|
"weeks": "<span color='#2a9b34'><b>W{}</b></span>",
|
||||||
|
"weekdays": "<span color='#a6ff3e'><b>{}</b></span>",
|
||||||
|
"today": "<span color='#22ff71'><b><u>{}</u></b></span>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"actions": {
|
||||||
|
"on-click-right": "kitty -e calcurse",
|
||||||
|
"on-click-middle": "mode",
|
||||||
|
"on-scroll-up": "shift_up",
|
||||||
|
"on-scroll-down": "shift_down"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"pulseaudio": {
|
||||||
|
"scroll-step": 1,
|
||||||
|
"format": "{icon} {format_source}",
|
||||||
|
"format-bluetooth": "<span foreground='#fb0029'>{volume}% {icon} {format_source}</span>",
|
||||||
|
"format-bluetooth-muted": " ",
|
||||||
|
"format-muted": " {format_source}",
|
||||||
|
"format-source": " <span foreground='#fb0029'></span>",
|
||||||
|
"format-source-muted": " ",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": " ",
|
||||||
|
"headset": " ",
|
||||||
|
"default": ["", "", ""]
|
||||||
|
},
|
||||||
|
"tooltip": false,
|
||||||
|
"on-click": "kitty -e pulsemixer",
|
||||||
|
},
|
||||||
|
|
||||||
|
"network": {
|
||||||
|
"format": "{ifname}",
|
||||||
|
"format-wifi": " ",
|
||||||
|
"format-ethernet": " {ipaddr}",
|
||||||
|
"format-disconnected": "", // An empty format will hide the module.
|
||||||
|
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||||
|
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
|
||||||
|
"tooltip-format-ethernet": "{ifname} ",
|
||||||
|
"tooltip-format-disconnected": "Disconnected",
|
||||||
|
"max-length": 50,
|
||||||
|
"on-click": "kitty --class=nmtui -e nmtui"
|
||||||
|
},
|
||||||
|
|
||||||
|
"battery": {
|
||||||
|
"tooltip": true,
|
||||||
|
"tooltip-format": "{time}",
|
||||||
|
"states": {
|
||||||
|
"warning": 35,
|
||||||
|
"critical": 20
|
||||||
|
},
|
||||||
|
"format": "{icon} {capacity}%",
|
||||||
|
"format-charging": " {capacity}%",
|
||||||
|
"format-plugged": " {capacity}%",
|
||||||
|
"format-icons": ["", "", "", "", ""]
|
||||||
|
},
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# Waybar theming
|
||||||
|
".config/waybar/style.css" = {
|
||||||
|
enable = true;
|
||||||
|
executable = false;
|
||||||
|
text = ''
|
||||||
|
* {
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
font-family: JetbrainsMono Regular;
|
||||||
|
}
|
||||||
|
|
||||||
|
#waybar {
|
||||||
|
background-color: rgba(50, 48, 47, 0.8);
|
||||||
|
padding: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.visible,
|
||||||
|
#workspaces button {
|
||||||
|
font-size: 15px;
|
||||||
|
border-radius: 50px;
|
||||||
|
padding: 0px 5px;
|
||||||
|
margin: 5px;
|
||||||
|
color: rgba(200, 200, 200, 0.5);
|
||||||
|
background-color: #282828;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
padding: 0px 15px;
|
||||||
|
background-color: #7A7740;
|
||||||
|
color: rgba(0, 0, 0, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover,
|
||||||
|
#workspaces button.focused:hover,
|
||||||
|
#workspaces button.visible:hover {
|
||||||
|
color: rgba(0, 0, 0, 0.5);
|
||||||
|
background-color: #649a25;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
background-color: #cc241d;
|
||||||
|
color: rgba(200, 200, 200, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* General background
|
||||||
|
*/
|
||||||
|
#network,
|
||||||
|
#mpris,
|
||||||
|
#memory,
|
||||||
|
#backlight,
|
||||||
|
#cpu,
|
||||||
|
#pulseaudio,
|
||||||
|
#temperature,
|
||||||
|
#battery,
|
||||||
|
#tray,
|
||||||
|
#submap,
|
||||||
|
#clock,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#custom-tailscale,
|
||||||
|
#custom-wlogout,
|
||||||
|
#window {
|
||||||
|
font-size: 16px;
|
||||||
|
padding: 0px 10px;
|
||||||
|
margin: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
color: rgba(58,60,62, 0.6);
|
||||||
|
background-color: #649a25;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* General background
|
||||||
|
*/
|
||||||
|
#network button:hover,
|
||||||
|
#mpris button:hover,
|
||||||
|
#memory button:hover,
|
||||||
|
#backlight button:hover,
|
||||||
|
#cpu button:hover,
|
||||||
|
#pulseaudio button:hover,
|
||||||
|
#temperature button:hover,
|
||||||
|
#battery button:hover,
|
||||||
|
#tray button:hover,
|
||||||
|
#submap button:hover,
|
||||||
|
#clock button:hover,
|
||||||
|
#idle_inhibitor button:hover,
|
||||||
|
#custom-tailscale button:hover,
|
||||||
|
#custom-wlogout button:hover,
|
||||||
|
#window button:hover{
|
||||||
|
background-color: #d9eed2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Warning plugins state
|
||||||
|
*/
|
||||||
|
#battery.warning {
|
||||||
|
background-color: #d1ff6d;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Critical plugins state
|
||||||
|
*/
|
||||||
|
#idle_inhibitor.activated,
|
||||||
|
#battery.critical,
|
||||||
|
#custom-tailscale.Stopped,
|
||||||
|
#network.disconnected {
|
||||||
|
color: #d9eed2;
|
||||||
|
background-color: #fb0029;
|
||||||
|
}
|
||||||
|
#battery.charging {
|
||||||
|
background-color: #2a9b34;
|
||||||
|
}
|
||||||
|
#battery.plugged {
|
||||||
|
background-color: #458588;
|
||||||
|
}
|
||||||
|
#pulseaudio.bluetooth {
|
||||||
|
background-color: #458588;
|
||||||
|
}
|
||||||
|
tooltip {
|
||||||
|
color: #d9eed2;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
{ ... }: {
|
||||||
|
xdg.configFile."wlogout/style.css" = {
|
||||||
|
enable = true;
|
||||||
|
target = "./wlogout/style.css";
|
||||||
|
text = ''
|
||||||
|
* {
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
window {
|
||||||
|
background-color: rgba(58,60,62, 0.6);
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
color: #d9eed2;
|
||||||
|
font-size: 0px;
|
||||||
|
border-radius: 5000px;
|
||||||
|
margin: 25px;
|
||||||
|
background-color: #3a3c3e;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 3px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
background-size: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:active, button:hover {
|
||||||
|
background-color: #2a9b34;
|
||||||
|
outline-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#lock { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/lock.png"); }
|
||||||
|
#logout { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/logout.png"); }
|
||||||
|
#suspend { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/suspend.png"); }
|
||||||
|
#hibernate { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/hibernate.png"); }
|
||||||
|
#shutdown { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/shutdown.png"); }
|
||||||
|
#reboot { background-image: url("/etc/nixos/git/home-manager/common/desktops/hyprland/common/wlogout/reboot.png"); }
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
|
@ -7,6 +7,8 @@
|
||||||
# ];
|
# ];
|
||||||
# };
|
# };
|
||||||
|
|
||||||
|
imports = [ stylix.nixosModules.stylix ];
|
||||||
|
|
||||||
services.xserver.videoDrivers = [ ] ++ lib.optional (builtins.isString gpu) gpu;
|
services.xserver.videoDrivers = [ ] ++ lib.optional (builtins.isString gpu) gpu;
|
||||||
|
|
||||||
# tuigreet
|
# tuigreet
|
||||||
|
|
|
@ -57,8 +57,7 @@
|
||||||
busybox # General linux commands, nslookup, dig, etc
|
busybox # General linux commands, nslookup, dig, etc
|
||||||
sshpass # ssh password helper
|
sshpass # ssh password helper
|
||||||
cbonsai # ncurses bonsai tree
|
cbonsai # ncurses bonsai tree
|
||||||
# busybox # Linux utilities
|
busybox # Linux utilities
|
||||||
coreutils-full
|
|
||||||
at # Job scheduler
|
at # Job scheduler
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
../../common/modules/ssh-luks.nix
|
../../common/modules/ssh-luks.nix
|
||||||
../../common/services/powertop.nix
|
../../common/services/powertop.nix
|
||||||
../../common/services/fwupd.nix
|
../../common/services/fwupd.nix
|
||||||
|
../../common/services/podman.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# steam , etc
|
# steam , etc
|
||||||
|
@ -40,6 +41,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
distrobox
|
||||||
# Game related things
|
# Game related things
|
||||||
gamemode
|
gamemode
|
||||||
# WINE
|
# WINE
|
||||||
|
|
Loading…
Reference in a new issue