feat: ai with both i3 & hyprland

replace archcraft's icon by snowflake(nixos)
feat: update waybar's settings
This commit is contained in:
Ryan Yin
2023-07-25 21:44:07 +08:00
parent 6e825eef7f
commit bc08dc1949
20 changed files with 298 additions and 598 deletions

View File

@@ -10,11 +10,17 @@
#
############################################################################
deploy:
nixos-rebuild switch --flake . --use-remote-sudo
i3:
nixos-rebuild switch --flake .#ai_i3 --use-remote-sudo
debug:
nixos-rebuild switch --flake . --use-remote-sudo --show-trace --verbose
hyprland:
nixos-rebuild switch --flake .#ai_hyprland --use-remote-sudo
debug_i3:
nixos-rebuild switch --flake .#ai_i3 --use-remote-sudo --show-trace --verbose
debug_hyprland:
nixos-rebuild switch --flake .#ai_hyprland --use-remote-sudo --show-trace --verbose
update:
nix flake update

View File

@@ -11,7 +11,6 @@
# the nixConfig here only affects the flake itself, not the system configuration!
nixConfig = {
experimental-features = [ "nix-command" "flakes" ];
trusted-users = [ "ryan" ];
substituters = [
# replace official cache with a mirror located in China
@@ -105,8 +104,9 @@
};
} // inputs;
# 星野 アイ, Hoshino Ai
idol_ai_modules = [
idol_ai_modules_i3 = [
./hosts/idols/ai
./modules/nixos/i3.nix
home-manager.nixosModules.home-manager
{
@@ -114,8 +114,20 @@
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = x64_specialArgs;
home-manager.users.ryan = import ./home/linux/x11.nix;
# home-manager.users.ryan = import ./home/linux/wayland.nix;
home-manager.users.ryan = import ./home/linux/desktop-i3.nix;
}
];
idol_ai_modules_hyprland = [
./hosts/idols/ai
./modules/nixos/hyprland.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = x64_specialArgs;
home-manager.users.ryan = import ./home/linux/desktop-hyprland.nix;
}
];
# 星野 愛久愛海, Hoshino Akuamarin
@@ -159,9 +171,13 @@
];
in {
nixosConfigurations = let system = x64_system; specialArgs = x64_specialArgs; in {
ai = nixpkgs.lib.nixosSystem {
ai_i3 = nixpkgs.lib.nixosSystem { # ai with i3 window manager
inherit system specialArgs;
modules = idol_ai_modules;
modules = idol_ai_modules_i3;
};
ai_hyprland = nixpkgs.lib.nixosSystem { # ai with hyprland compositor
inherit system specialArgs;
modules = idol_ai_modules_hyprland;
};
aquamarine = nixpkgs.lib.nixosSystem {
@@ -220,9 +236,14 @@
# https://github.com/nix-community/nixos-generators
let system = x64_system; specialArgs = x64_specialArgs; in {
# Hoshino Ai is a physical machine, so we need to generate an iso image for it.
ai = nixos-generators.nixosGenerate {
ai_i3 = nixos-generators.nixosGenerate { # ai with i3 window manager
inherit system specialArgs;
modules = idol_ai_modules;
modules = idol_ai_modules_i3;
format = "iso";
};
ai_hyprland = nixos-generators.nixosGenerate { # ai with hyprland compositor
inherit system specialArgs;
modules = idol_ai_modules_hyprland;
format = "iso";
};
# Hoshino Aquamarine is a virtual machine running on Proxmox VE.

View File

@@ -1,35 +0,0 @@
{ lib, stdenvNoCC, fetchgit }:
stdenvNoCC.mkDerivation rec {
pname = "archcraft-font";
version = "2023-05-07";
src = fetchgit {
url = "https://github.com/archcraft-os/archcraft-packages.git";
rev = "88030ee6d2df80db958541b53bd3673e081720cf"; # git commit id
sparseCheckout = [ "archcraft-fonts/files/icon-fonts/archcraft.ttf" ]; # only fetch the feather.ttf file
# the sha256 is used to verify the integrity of the downloaded source, and alse cache the build result.
# so if you copy other package src's sha256, you will get a cached build result of that package, and all configs in this file will be ignored.
# specify sha256 to empty and build it, then an error will indicate the correct sha256
sha256 = "sha256-DrGN8lN4Yr1RTyCUZhJjzKgCuC0vTnSWjOKovNg3T/U=";
};
installPhase = ''
runHook preInstall
install -Dm644 archcraft-fonts/files/icon-fonts/archcraft.ttf -t $out/share/fonts/truetype/
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/archcraft-os/archcraft-packages";
description = "Archcraft icon font";
version = version;
longDescription = ''Archcraft icon font'';
license = licenses.mit;
maintainers = [ maintainers.ryan4yin ];
platforms = platforms.all;
};
}

View File

@@ -13,9 +13,12 @@
# Home Manager needs a bit of information about you and the
# paths it should manage.
home = {
username = "ryan";
homeDirectory = "/home/ryan";
home = let
name = "ryan";
in
{
username = name;
homeDirectory = "/home/${name}";
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage

View File

@@ -13,9 +13,12 @@
# Home Manager needs a bit of information about you and the
# paths it should manage.
home = {
username = "ryan";
homeDirectory = "/home/ryan";
home = let
name = "ryan";
in
{
username = name;
homeDirectory = "/home/${name}";
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage

View File

@@ -1,4 +1,4 @@
## Hyprland configuration file for Archcraft
## Hyprland configuration file
#-- Output ----------------------------------------------------
# Configure your Display resolution, offset, scale and Monitors here, use `hyprctl monitors` to get the info.

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
## Script To Manage Brightness For Archcraft (in Wayland).
## Script To Manage Brightness (in Wayland).
iDIR="$HOME/.config/hypr/mako/icons"

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
## Script To Manage Speaker Volume For Archcraft (in Wayland).
## Script To Manage Speaker Volume(in Wayland).
iDIR="$HOME/.config/hypr/mako/icons"

View File

@@ -1,120 +0,0 @@
#!/usr/bin/env python
import subprocess
from pyquery import PyQuery # install using `pip install pyquery`
import json
# weather icons
weather_icons = {
"sunnyDay": "滛",
"clearNight": "望",
"cloudyFoggyDay": "",
"cloudyFoggyNight": "",
"rainyDay": "",
"rainyNight": "",
"snowyIcyDay": "",
"snowyIcyNight": "",
"severe": "",
"default": "",
}
# get location_id
# to get your own location_id, go to https://weather.com & search your location.
# once you choose your location, you can see the location_id in the URL(64 chars long hex string)
# Shenzen, Guangdong's location id: https://weather.com/en-IN/weather/today/l/7a4684e0789c881e79935986f2e9e5ab05b0104ac4310fd8818006dfb66092c3
location_id = "7a4684e0789c881e79935986f2e9e5ab05b0104ac4310fd8818006dfb66092c3"
# get html page
url = "https://weather.com/en-IN/weather/today/l/" + location_id
html_data = PyQuery(url=url)
# current temperature
temp = html_data("span[data-testid='TemperatureValue']").eq(0).text()
# print(temp)
# current status phrase
status = html_data("div[data-testid='wxPhrase']").text()
status = f"{status[:16]}.." if len(status) > 17 else status
# print(status)
# status code
status_code = html_data("#regionHeader").attr("class").split(" ")[2].split("-")[2]
# print(status_code)
# status icon
icon = (
weather_icons[status_code]
if status_code in weather_icons
else weather_icons["default"]
)
# print(icon)
# temperature feels like
temp_feel = html_data(
"div[data-testid='FeelsLikeSection'] > span[data-testid='TemperatureValue']"
).text()
temp_feel_text = f"Feels like {temp_feel}c"
# print(temp_feel_text)
# min-max temperature
temp_min = (
html_data("div[data-testid='wxData'] > span[data-testid='TemperatureValue']")
.eq(0)
.text()
)
temp_max = (
html_data("div[data-testid='wxData'] > span[data-testid='TemperatureValue']")
.eq(1)
.text()
)
temp_min_max = f" {temp_min}\t\t {temp_max}"
# print(temp_min_max)
# wind speed
wind_speed = html_data("span[data-testid='Wind']").text().split("\n")[1]
wind_text = f"煮 {wind_speed}"
# print(wind_text)
# humidity
humidity = html_data("span[data-testid='PercentageValue']").text()
humidity_text = f" {humidity}"
# print(humidity_text)
# visibility
visbility = html_data("span[data-testid='VisibilityValue']").text()
visbility_text = f" {visbility}"
# print(visbility_text)
# air quality index
air_quality_index = html_data("text[data-testid='DonutChartValue']").text()
# print(air_quality_index)
# hourly rain prediction
prediction = html_data("section[aria-label='Hourly Forecast']")(
"div[data-testid='SegmentPrecipPercentage'] > span"
).text()
prediction = prediction.replace("Chance of Rain", "")
prediction = f"\n\n  (hourly) {prediction}" if len(prediction) > 0 else prediction
# print(prediction)
# tooltip text
tooltip_text = str.format(
"\t\t{}\t\t\n{}\n{}\n{}\n\n{}\n{}\n{}{}",
f'<span size="xx-large">{temp}</span>',
f"<big>{icon}</big>",
f"<big>{status}</big>",
f"<small>{temp_feel_text}</small>",
f"<big>{temp_min_max}</big>",
f"{wind_text}\t{humidity_text}",
f"{visbility_text}\tAQI {air_quality_index}",
f"<i>{prediction}</i>",
)
# print waybar module data
out_data = {
"text": f"{icon} {temp}",
"alt": status,
"tooltip": tooltip_text,
"class": status_code,
}
print(json.dumps(out_data))

View File

@@ -1,222 +1,125 @@
{
"name": "main-bar",
"id": "main-bar",
"layer": "top",
"mode": "dock",
"exclusive": true,
"passthrough": false,
"height": 32,
"spacing": 6,
"margin": 0,
"margin-top": 0,
"margin-bottom": 0,
"margin-left": 0,
"margin-right": 0,
"fixed-center": true,
"ipc": true,
"modules-left": [
"custom/menu",
"wlr/workspaces",
"cpu",
"memory",
"disk"
],
"modules-center": [
"mpd",
"tray"
],
"modules-right": [
"pulseaudio",
"custom/weather",
"network",
"battery",
"clock",
"custom/power"
],
// waybar-backlight
"backlight": {
"interval": 2,
"align": 0,
"rotate": 0,
//"device": "amdgpu_bl0",
"format": "{icon} {percent}%",
"format-icons": [
"",
"",
"",
""
],
// Commands to execute on events
"on-click": "",
"on-click-middle": "",
"on-click-right": "",
"on-update": "",
"on-scroll-up": "light -A 5%",
"on-scroll-down": "light -U 5%",
"smooth-scrolling-threshold": 1,
"clock": {
"interval": 60,
"align": 0,
"rotate": 0,
"tooltip-format": "<big>{:%B %Y}</big>\n<tt><small>{calendar}</small></tt>",
"format": " {:%H:%M}",
"format-alt": " {:%a %b %d, %G}"
},
"cpu": {
"format": "\udb80\udf5b {usage}%",
"interval": 1
},
"custom/launcher": {
"format": "\uf313 ",
"on-click": "$HOME/.config/hypr/scripts/menu",
"on-click-middle": "exec default_wall",
"on-click-right": "exec wallpaper_random",
"tooltip": false
},
"custom/powermenu": {
"format": "\uf011",
"on-click": "$HOME/.config/hypr/scripts/wlogout",
"tooltip": false
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "\uf06e",
"deactivated": "\uf070"
},
"wlr/workspaces": {
"format": "{icon}",
"on-click": "activate",
"all-outputs": true,
"format-icons": {
"1": "",
"2": "",
"3": "",
"4": "",
"5": "ﭮ",
"6": "",
"7": "",
"8": "",
"9": "",
"10": "﮼",
"focused": "",
"default": ""
}
},
// waybar-battery
"battery": {
"interval": 60,
"align": 0,
"rotate": 0,
//"bat": "BAT1",
//"adapter": "ACAD",
"full-at": 100,
"design-capacity": false,
"states": {
"good": 95,
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-charging": " {capacity}%",
"format-plugged": " {capacity}%",
"format-full": "{icon} Full",
//"format-good": "",
"format-alt": "{icon} {time}",
"format-icons": [
"",
"",
"",
"",
""
],
"format-time": "{H}h {M}min",
"tooltip": true,
},
// waybar-clock
"clock": {
"interval": 60,
"align": 0,
"rotate": 0,
"tooltip-format": "<big>{:%B %Y}</big>\n<tt><small>{calendar}</small></tt>",
"format": " {:%H:%M}",
"format-alt": " {:%a %b %d, %G}"
},
// waybar-cpu
"cpu": {
"interval": 5,
"format": " LOAD: {usage}%",
},
// waybar-custom
"custom/menu": {
"format": "",
"tooltip": false,
"on-click": "$HOME/.config/hypr/scripts/menu",
},
"custom/power": {
"format": " ",
"tooltip": false,
"on-click": "$HOME/.config/hypr/scripts/wlogout",
},
// waybar-disk
"disk": {
"interval": 30,
"format": " FREE: {free}",
},
// waybar-memory
"memory": {
"interval": 10,
"format": " USED: {used:0.1f}G",
},
// waybar-mpd
"mpd": {
"interval": 2,
"unknown-tag": "N/A",
"format": "{stateIcon} {artist} - {title}",
"format-disconnected": " Disconnected",
"format-paused": "{stateIcon} {artist} - {title}",
"format-stopped": "Stopped ",
"state-icons": {
"paused": "",
"playing": ""
},
"tooltip-format": "MPD (connected)",
"tooltip-format-disconnected": "MPD (disconnected)",
// Commands to execute on events
"on-click": "mpc toggle",
"on-click-middle": "mpc prev",
"on-click-right": "mpc next",
"on-update": "",
"on-scroll-up": "mpc seek +00:00:01",
"on-scroll-down": "mpc seek -00:00:01",
"smooth-scrolling-threshold": 1,
},
// waybar-network
"network": {
"interval": 5,
//"interface": "wlan*", // (Optional) To force the use of this interface, set it for netspeed to work
"format-wifi": " {essid}",
"format-ethernet": " {ipaddr}/{cidr}",
"format-linked": " {ifname} (No IP)",
"format-disconnected": "睊 Disconnected",
"format-disabled": "睊 Disabled",
"format-alt": " {bandwidthUpBits} |  {bandwidthDownBits}",
"tooltip-format": " {ifname} via {gwaddr}",
},
// weather-custom
"custom/weather": {
// "format": "{}",
// "format-alt": "{alt}: {}",
"format-alt-click": "click-right",
"interval": 300,
"return-type": "json",
"exec": "~/.config/hypr/scripts/weather",
// "on-click": "xdg-open https://weather.com/en-IN/weather/today/l/$(location_id)"
},
// waybar-pulseaudio
"pulseaudio": {
//"format": "{volume}% {icon} {format_source}",
"format": "{icon} {volume}%",
"format-muted": " Mute",
"format-bluetooth": " {volume}% {format_source}",
"format-bluetooth-muted": " Mute",
"format-source": " {volume}%",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": [
"",
"",
""
]
},
"scroll-step": 5.0,
// Commands to execute on events
"on-click": "amixer set Master toggle",
"on-click-right": "pavucontrol",
"smooth-scrolling-threshold": 1,
},
// waybar-tray
"tray": {
"icon-size": 16,
"spacing": 10
"tooltip": false
},
"layer": "top",
"memory": {
"format": "\udb83\udee0 {percentage}%",
"interval": 1,
"states": {
"warning": 85
}
}
},
"modules-center": [
"clock"
],
"modules-left": [
"custom/launcher",
"temperature",
"mpd",
"custom/cava-internal"
],
"modules-right": [
"pulseaudio",
"backlight",
"memory",
"cpu",
"network",
"custom/powermenu",
"tray"
],
"mpd": {
"format": "<span foreground='#bb9af7'>\uf001</span> {title}",
"format-disconnected": "",
"format-paused": "\uf001 {title}",
"format-stopped": "<span foreground='#bb9af7'>\uf001</span>",
"max-length": 25,
"on-click": "mpc --quiet toggle",
"on-click-middle": "kitty --class='ncmpcpp' ncmpcpp ",
"on-click-right": "mpc update; mpc ls | mpc add",
"on-scroll-down": "mpc --quiet next",
"on-scroll-up": "mpc --quiet prev",
"smooth-scrolling-threshold": 5,
"tooltip-format": "{title} - {artist} ({elapsedTime:%M:%S}/{totalTime:%H:%M:%S})"
},
"network": {
"interval": 5,
//"interface": "wlan*", // (Optional) To force the use of this interface, set it for netspeed to work
"format-wifi": " {essid}",
"format-ethernet": " {ipaddr}/{cidr}",
"format-linked": " {ifname} (No IP)",
"format-disconnected": "睊 Disconnected",
"format-disabled": "睊 Disabled",
"format-format": " {bandwidthUpBits} |  {bandwidthDownBits}",
"tooltip-alt": " {ifname} via {gwaddr}",
},
"position": "top",
"pulseaudio": {
//"format": "{volume}% {icon} {format_source}",
"format": "{icon} {volume}%",
"format-muted": " Mute",
"format-bluetooth": " {volume}% {format_source}",
"format-bluetooth-muted": " Mute",
"format-source": " {volume}%",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": [
"",
"",
""
]
},
"scroll-step": 5.0,
// Commands to execute on events
"on-click": "amixer set Master toggle",
"on-click-right": "pavucontrol",
"smooth-scrolling-threshold": 1,
},
"temperature": {
"format": "\uf2c9 {temperatureC}\u00b0C",
"tooltip": false
},
"tray": {
"icon-size": 15,
"spacing": 5
},
"wlr/workspaces": {
"format": "{icon}",
"on-click": "activate"
}
}

View File

@@ -1,216 +1,134 @@
/** ********** Fonts ********** **/
* {
font-family: "JetBrains Mono", "Iosevka Nerd Font", archcraft, sans-serif;
font-size: 12px;
font-family: "JetBrainsMono Nerd Font";
font-size: 12pt;
font-weight: bold;
border-radius: 8px;
transition-property: background-color;
transition-duration: 0.5s;
}
@keyframes blink_red {
to {
background-color: rgb(242, 143, 173);
color: rgb(26, 24, 38);
}
}
.warning,
.critical,
.urgent {
animation-name: blink_red;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
/** ********** Waybar Window ********** **/
window#waybar {
background-color: #1e1e2e;
color: #1e1e2e;
border-bottom: 2px solid #313244;
transition-property: background-color;
transition-duration: .5s;
background-color: transparent;
}
window#waybar.hidden {
opacity: 0.5;
window > box {
margin-left: 5px;
margin-right: 5px;
margin-top: 5px;
background-color: #1e1e2a;
padding: 3px;
padding-left: 8px;
border: 2px none #33ccff;
}
/** ********** Backlight ********** **/
#backlight {
background-color: #cba6f7;
#workspaces {
padding-left: 0px;
padding-right: 4px;
}
/** ********** Battery ********** **/
#battery {
background-color: #f9e2af;
#workspaces button {
padding-top: 5px;
padding-bottom: 5px;
padding-left: 6px;
padding-right: 6px;
}
#battery.charging {
#workspaces button.active {
background-color: rgb(181, 232, 224);
color: rgb(26, 24, 38);
}
#battery.plugged {
#workspaces button.urgent {
color: rgb(26, 24, 38);
}
@keyframes blink {
to {
color: #000000;
}
#workspaces button:hover {
background-color: rgb(248, 189, 150);
color: rgb(26, 24, 38);
}
#battery.critical:not(.charging) {
background-color: #f38ba8;
color: #f38ba8;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
tooltip {
background: rgb(48, 45, 65);
}
/** ********** Clock ********** **/
#clock {
background-color: #a6e3a1;
tooltip label {
color: rgb(217, 224, 238);
}
/** ********** CPU ********** **/
#cpu {
background-color: #89dceb;
#custom-launcher {
font-size: 20px;
padding-left: 8px;
padding-right: 6px;
color: #7ebae4;
}
/** ********** Memory ********** **/
#memory {
background-color: #eba0ac;
}
/** ********** Disk ********** **/
#disk {
background-color: #b4befe;
}
/** ********** Tray ********** **/
#tray {
background-color: #cdd6f4;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
}
#tray > .active {
}
/** ********** MPD ********** **/
#mpd {
background-color: #94e2d5;
}
#mpd.disconnected {
background-color: #f38ba8;
}
#mpd.stopped {
background-color: #f5c2e7;
}
#mpd.playing {
background-color: #74c7ec;
}
#mpd.paused {
}
/** ********** Pulseaudio ********** **/
#pulseaudio {
background-color: #fab387;
}
#pulseaudio.bluetooth {
background-color: #f5c2e7;
}
#pulseaudio.muted {
background-color: #313244;
color: #cdd6f4;
}
/** ********** Network ********** **/
#network {
background-color: #89b4fa;
}
#network.disconnected,#network.disabled {
background-color: #313244;
color: #cdd6f4;
}
#network.linked {
}
#network.ethernet {
}
#network.wifi {
}
/** ********** Custom ********** **/
#custom-menu, #custom-power, #custom-weather, #custom-updater {
border-radius: 4px;
margin: 6px 0px;
padding: 2px 8px;
}
#custom-menu {
background-color: #f5c2e7;
margin-left: 6px;
padding: 2px 6px;
font-size: 16px;
}
#custom-power {
background-color: #f38ba8;
margin-right: 6px;
padding: 2px 8px;
font-size: 16px;
}
#custom-updater {
background-color: #e6ed7b;
margin-right: 6px;
padding: 2px 8px;
font-size: 12px;
}
/** Common style **/
#backlight,
#battery,
#clock,
#cpu,
#disk,
#mode,
#clock,
#memory,
#temperature,
#cpu,
#mpd,
#tray,
#custom-wall,
#temperature,
#backlight,
#pulseaudio,
#network,
#battery,
#custom-powermenu,
/* #mode { */
/* margin-left: 10px; */
/* background-color: rgb(248, 189, 150); */
/* color: rgb(26, 24, 38); */
/* } */
#memory {
color: rgb(181, 232, 224);
}
#cpu {
color: rgb(245, 194, 231);
}
#clock {
color: rgb(217, 224, 238);
}
/* #idle_inhibitor {
color: rgb(221, 182, 242);
}*/
#custom-wall {
color: #33ccff;
}
#temperature {
color: rgb(150, 205, 251);
}
#backlight {
color: rgb(248, 189, 150);
}
#pulseaudio {
color: rgb(245, 224, 220);
}
#network {
border-radius: 4px;
margin: 6px 0px;
padding: 2px 8px;
color: #abe9b3;
}
/** ********** Weather ********** **/
#custom-weather {
background-color: #5d388b;
margin-right: 6px;
padding: 2px 8px;
font-size: 12px;
#network.disconnected {
color: rgb(255, 255, 255);
}
#custom-weather.severe {
color: #eb937d;
#custom-powermenu {
color: rgb(242, 143, 173);
padding-right: 8px;
}
#custom-weather.sunnyDay {
color: #c2ca76;
#tray {
padding-right: 8px;
padding-left: 10px;
}
#custom-weather.clearNight {
color: #2b2b2a;
#mpd.paused {
color: #414868;
font-style: italic;
}
#custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight {
color: #c2ddda;
#mpd.stopped {
background: transparent;
}
#custom-weather.rainyDay, #custom-weather.rainyNight {
color: #5aaca5;
#mpd {
color: #c0caf5;
}
#custom-weather.showyIcyDay, #custom-weather.snowyIcyNight {
color: #d6e7e5;
}
#custom-weather.default {
color: #dbd9d8;
}

View File

@@ -1,6 +1,6 @@
/** ********** Fonts ********** **/
* {
font-family: "JetBrains Mono", "Iosevka Nerd Font", archcraft, sans-serif;
font-family: "JetBrains Mono", "Iosevka Nerd Font", sans-serif;
font-size: 14px;
font-weight: bold;
}

View File

@@ -1,6 +1,6 @@
/** ********** Fonts ********** **/
* {
font-family: "JetBrains Mono", "Iosevka Nerd Font", archcraft, sans-serif;
font-family: "JetBrains Mono", "Iosevka Nerd Font", sans-serif;
font-size: 12px;
}

View File

@@ -9,9 +9,12 @@
# Home Manager needs a bit of information about you and the
# paths it should manage.
home = {
username = "ryan";
homeDirectory = "/home/ryan";
home = let
name = "ryan";
in
{
username = name;
homeDirectory = "/home/${name}";
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage

View File

@@ -13,8 +13,6 @@
./hardware-configuration.nix
../../../modules/nixos/fhs-fonts.nix
# ../../../modules/nixos/hyprland.nix
../../../modules/nixos/i3.nix
../../../modules/nixos/libvirt.nix
../../../modules/nixos/core-desktop.nix
# ../../../modules/nixos/remote-building.nix

View File

@@ -66,10 +66,6 @@
})
(pkgs.callPackage ../../fonts/icomoon-feather-icon-font.nix { })
# arch linux icon, used temporarily in waybar
(pkgs.callPackage ../../fonts/archcraft-icon-font.nix { })
];
# user defined fonts

View File

@@ -24,7 +24,6 @@
# enable flakes globally
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.trusted-users = ["ryan"];
# Allow unfree packages
nixpkgs.config.allowUnfree = lib.mkDefault false;

View File

@@ -74,6 +74,8 @@
yad # a fork of zenity, for creating dialogs
# audio
alsa-utils # provides amixer/alsamixer/...
cava # for visualizing audio
mpd # for playing system sounds
mpc-cli # command-line mpd client
ncmpcpp # a mpd client with a UI

View File

@@ -42,6 +42,7 @@
xorg.xdpyinfo # get screen information
scrot # minimal screen capture tool, used by i3 blur lock to take a screenshot
sysstat # get system information
alsa-utils # provides amixer/alsamixer/...
xfce.thunar # xfce4's file manager
];

View File

@@ -1,6 +1,8 @@
{ ... }:
{
nix.settings.trusted-users = ["ryan"];
users.groups = {
ryan = { };
docker = { };