This commit is contained in:
2025-12-03 12:36:36 +01:00
parent 64def5d8ae
commit 4f04bde4f2
10 changed files with 292 additions and 56 deletions

View File

@@ -34,44 +34,37 @@
networking = { networking = {
hostName = "nix-desktop"; hostName = "nix-desktop";
networkmanager.enable = false; networkmanager = {
useNetworkd = true;
useDHCP = false;
interfaces.eno1 = {
ipv4.addresses = [
{
address = "192.168.2.40";
prefixLength = 24;
}
];
};
defaultGateway = {
address = "192.168.2.1";
interface = "eno1";
};
nameservers = [
"192.168.2.2"
"1.1.1.1"
"8.8.8.8"
];
wireless = {
enable = true; enable = true;
userControlled.enable = false; };
networks = { useNetworkd = false;
"LANFRED".psk = "CooleJungsWG"; useDHCP = false;
wireless = {
enable = false; # Disable wpa_supplicant, NetworkManager handles WiFi
}; };
}; };
}; # Configure static IP for wired connection via NetworkManager
# Create this file: /etc/NetworkManager/system-connections/eno1.nmconnection
environment.etc."NetworkManager/system-connections/eno1.nmconnection" = {
text = ''
[connection]
id=eno1
type=ethernet
interface-name=eno1
systemd.services.systemd-networkd-wait-online.enable = lib.mkForce false; [ipv4]
method=manual
address1=192.168.2.40/24
gateway=192.168.2.1
dns=192.168.2.2;1.1.1.1;8.8.8.8;
[ipv6]
method=auto
'';
mode = "0600";
};
hardware.graphics.enable = true; hardware.graphics.enable = true;
system.stateVersion = "25.11"; # Did you read the comment? system.stateVersion = "25.11"; # Did you read the comment?
} }

View File

@@ -1,20 +1,90 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }:
{ {
environment.systemPackages = [ pkgs.noto-fonts-color-emoji ]; environment.systemPackages = with pkgs; [
font-manager
gnome-characters
];
fonts = { fonts = {
packages = with pkgs; [ packages = with pkgs; [
# icon fonts # icon fonts
material-icons material-icons
# material-black-colors
material-design-icons material-design-icons
icomoon-feather icomoon-feather
noto-fonts-color-emoji
# Microsoft
corefonts
vista-fonts
# All Nerd Fonts
nerd-fonts._0xproto
nerd-fonts._3270
nerd-fonts.agave
nerd-fonts.anonymice
nerd-fonts.arimo
nerd-fonts.aurulent-sans-mono
nerd-fonts.bigblue-terminal
nerd-fonts.bitstream-vera-sans-mono
nerd-fonts.blex-mono
nerd-fonts.caskaydia-cove
nerd-fonts.caskaydia-mono
nerd-fonts.code-new-roman
nerd-fonts.comic-shanns-mono
nerd-fonts.commit-mono
nerd-fonts.cousine
nerd-fonts.d2coding
nerd-fonts.daddy-time-mono
nerd-fonts.dejavu-sans-mono
nerd-fonts.droid-sans-mono
nerd-fonts.envy-code-r
nerd-fonts.fantasque-sans-mono
nerd-fonts.fira-code nerd-fonts.fira-code
nerd-fonts.fira-mono nerd-fonts.fira-mono
nerd-fonts.adwaita-mono nerd-fonts.geist-mono
nerd-fonts.go-mono
nerd-fonts.gohufont
nerd-fonts.hack
nerd-fonts.hasklug
nerd-fonts.heavy-data
nerd-fonts.hurmit
nerd-fonts.im-writing
nerd-fonts.inconsolata
nerd-fonts.inconsolata-go
nerd-fonts.inconsolata-lgc
nerd-fonts.intone-mono
nerd-fonts.iosevka
nerd-fonts.iosevka-term
nerd-fonts.iosevka-term-slab
nerd-fonts.jetbrains-mono nerd-fonts.jetbrains-mono
nerd-fonts.lekton
nerd-fonts.liberation
nerd-fonts.lilex
nerd-fonts.martian-mono
nerd-fonts.meslo-lg
nerd-fonts.monaspace
nerd-fonts.monofur
nerd-fonts.monoid
nerd-fonts.mononoki
nerd-fonts.noto nerd-fonts.noto
nerd-fonts.open-dyslexic
nerd-fonts.overpass
nerd-fonts.profont
nerd-fonts.proggy-clean-tt
nerd-fonts.recursive-mono
nerd-fonts.roboto-mono
nerd-fonts.sauce-code-pro
nerd-fonts.shure-tech-mono
nerd-fonts.space-mono
nerd-fonts.symbols-only
nerd-fonts.terminess-ttf
nerd-fonts.tinos
nerd-fonts.ubuntu
nerd-fonts.ubuntu-mono
nerd-fonts.ubuntu-sans
nerd-fonts.victor-mono
nerd-fonts.zed-mono
]; ];
fontDir.enable = true; fontDir.enable = true;
@@ -27,16 +97,16 @@
# B&W emojis that would sometimes show instead of some Color emojis # B&W emojis that would sometimes show instead of some Color emojis
fontconfig.defaultFonts = { fontconfig.defaultFonts = {
serif = [ serif = [
"Noto Serif" "FiraCode Nerd Font"
"Noto Color Emoji" #"Noto Color Emoji"
]; ];
sansSerif = [ sansSerif = [
"Noto Sans" "FiraCode Nerd Font"
"Noto Color Emoji" #"Noto Color Emoji"
]; ];
monospace = [ monospace = [
"JetBrainsMono Nerd Font" "FiraCode Nerd Font"
"Noto Color Emoji" #"Noto Color Emoji"
]; ];
emoji = [ "Noto Color Emoji" ]; emoji = [ "Noto Color Emoji" ];
}; };

View File

@@ -0,0 +1,29 @@
[dmenu]
dmenu_command = rofi -theme ~/.config/rofi/network.rasi
active_chars = ==
highlight = True
highlight_fg =
highlight_bg =
highlight_bold = True
compact = False
pinentry =
wifi_icons = 󰤯󰤟󰤢󰤥󰤨
format = {name:<{max_len_name}s} {sec:<{max_len_sec}s} {icon:>4}
list_saved = False
prompt = Networks
[dmenu_passphrase]
obscure = False
obscure_color = #222222
[pinentry]
description = Get network password
prompt = Password:
[editor]
terminal = kitty
gui_if_available = True
gui = nm-connection-editor
[nmdm]
rescan_delay = 5

View File

@@ -0,0 +1,138 @@
* {
rosewater: #f5e0dc;
flamingo: #f2cdcd;
pink: #f5c2e7;
mauve: #cba6f7;
red: #f38ba8;
maroon: #eba0ac;
peach: #fab387;
yellow: #f9e2af;
green: #a6e3a1;
teal: #94e2d5;
sky: #89dceb;
sapphire: #74c7ec;
blue: #89b4fa;
lavender: #b4befe;
text: #cdd6f4;
subtext1: #bac2de;
subtext0: #a6adc8;
overlay2: #9399b2;
overlay1: #7f849c;
overlay0: #6c7086;
surface2: #585b70;
surface1: #45475a;
surface0: #313244;
base: #1e1e2e;
mantle: #181825;
crust: #11111b;
}
* {
background-color: transparent;
text-color: #cdd6f4;
font: "JetBrainsMono Nerd Font 12";
}
window {
width: 600px;
background-color: @base;
border: 2px solid;
border-color: @sapphire;
border-radius: 12px;
padding: 20px;
/* Center on screen */
location: center;
anchor: center;
x-offset: 0;
y-offset: 0;
background-image: url("~/.config/rofi/smoking_girl.png", both);
}
mainbox {
spacing: 15px;
children: [ "inputbar", "message", "listview" ];
}
inputbar {
padding: 12px;
border-radius: 8px;
background-color: @mantle;
children: [ "prompt", "entry" ];
spacing: 10px;
}
prompt {
text-color: @sky;
font: "JetBrainsMono Nerd Font Bold 13";
}
entry {
placeholder: "Search networks...";
placeholder-color: @surface2;
text-color: @text;
}
message {
padding: 10px;
border-radius: 8px;
background-color: @mantle;
text-color: @text;
}
listview {
lines: 10;
scrollbar: true;
spacing: 5px;
padding: 5px;
}
scrollbar {
width: 4px;
handle-width: 4px;
handle-color: @blue;
border-radius: 4px;
background-color: @mantle;
}
element {
padding: 12px 15px;
border-radius: 2px;
background-color: @base;
text-color: @text;
spacing: 12px;
}
element selected {
background-color: @blue;
border: 2px solid;
border-color: @teal;
text-color: @mantle;
}
element-text {
background-color: transparent;
text-color: inherit;
vertical-align: 0.5;
}
element-icon {
size: 20px;
background-color: transparent;
}
/* Active/Connected network highlight */
element selected.active {
background-color: @sapphire;
border-color: @sky;
}
/* Urgent (disconnected/error) state */
element.urgent {
background-color: @red;
}
element selected.urgent {
background-color: @red;
border-color: @peach;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 MiB

View File

@@ -7,6 +7,7 @@
home.packages = with pkgs; [ home.packages = with pkgs; [
rofi-power-menu rofi-power-menu
rofi-calc rofi-calc
networkmanager_dmenu
]; ];
programs.rofi = { programs.rofi = {
@@ -25,4 +26,8 @@
# copy the scripts directory recursively # copy the scripts directory recursively
recursive = true; recursive = true;
}; };
home.file.".config/networkmanager_dmenu/config.ini" = {
source = ./configs/config.ini;
};
} }

View File

@@ -58,19 +58,19 @@
rotate = 0; rotate = 0;
# Ethernet # Ethernet
format-ethernet = ""; format-ethernet = "{bandwidthTotalBits}";
tooltip-format = "Network: <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>\nCurrent󰈀 : <b>{bandwidthTotalBits}</b>\nUp 󰶣: <b>{bandwidthUpBits}</b>\nDown 󰶡: <b>{bandwidthDownBits}</b>"; tooltip-format = "Network: <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>\nCurrent󰈀 : <b>{bandwidthTotalBits}</b>\nUp 󰶣: <b>{bandwidthUpBits}</b>\nDown 󰶡: <b>{bandwidthDownBits}</b>";
format-linked = "󰈀 {ifname} (No IP)"; format-linked = "󰈀 {ifname} (No IP)";
format-disconnected = " "; format-disconnected = " ";
tooltip-format-disconnected = "Disconnected"; tooltip-format-disconnected = "Disconnected";
on-click = "/usr/local/bin/ags -t ControlPanel"; on-click = "networkmanager_dmenu";
interval = 2; interval = 2;
}; };
memory = { memory = {
interval = 1; interval = 1;
rotate = 270; #rotate = 270;
format = "{icon}"; format = "{icon} {percentage}%";
format-icons = [ format-icons = [
"󰝦" "󰝦"
"󰪞" "󰪞"
@@ -87,8 +87,8 @@
cpu = { cpu = {
interval = 1; interval = 1;
format = "{icon}"; format = "{icon} {usage}%";
rotate = 270; #rotate = 270;
format-icons = [ format-icons = [
"󰝦" "󰝦"
"󰪞" "󰪞"
@@ -103,14 +103,14 @@
}; };
temperature = { temperature = {
format = "{temperatureC}°C "; format = " {temperatureC}°C";
thermal-zone = 0; thermal-zone = 0;
hwmon-path = "/sys/class/hwmon/hwmon0/temp1_input"; hwmon-path = "/sys/class/thermal/thermal_zone1/temp";
critical-threshold = 80; critical-threshold = 80;
}; };
disk = { disk = {
format = "{percentage_free}% "; format = " {percentage_free}%";
tooltip = true; tooltip = true;
tooltip-format = "{free} / {total} ({percentage_free})"; tooltip-format = "{free} / {total} ({percentage_free})";
}; };

View File

@@ -138,10 +138,10 @@ in
preserve_split = "yes"; # you probably want this preserve_split = "yes"; # you probably want this
}; };
gestures = { # gestures = {
# See https://wiki.hyprland.org/Configuring/Variables/ for more # # See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = "off"; # workspace_swipe = "off";
}; # };
misc = { misc = {
# See https://wiki.hyprland.org/Configuring/Variables/ for more # See https://wiki.hyprland.org/Configuring/Variables/ for more

View File

@@ -19,6 +19,8 @@
stateVersion = "24.05"; stateVersion = "24.05";
}; };
# users.group.username = { };
# Let Home Manager install and manage itself. # Let Home Manager install and manage itself.
programs.home-manager.enable = true; programs.home-manager.enable = true;
} }

View File

@@ -13,7 +13,6 @@
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCaLHfxVylghDMYR8t4QMUpeRRqXasNABQKBEy9MmhbUXCcWiPbPMSZH8FMHON34rm2OrXP1kY/8jQxqBJDA+SqpFR2AZ4Khk9iVMaq5GHxxpn2amZUjoBa+fB29WaiE1npV5JVJV3O0ylw6GtiCnpneE6fGx2MO1vOY/7zKrUX/OK7WfwkDpeEzZgV/j/md917HrzUVeZwdeTq3WCRO8Gew6R8Xs6FRjSiGuH0dq14D4Ow5Zf1cI1jx+JfD/5vGasw8HXPu1NdxsOE+6D7/22IKqGr+S74/lAoyyD5qqk0s05lw8UY/PXBLJaNLZu9Fwx0BqTHpJEvftpmvd9wUxgR3msx9VXtKNSrqivIbDgeU+3oGzzkrGZODl7FCp4XKGmbrX85Z6lKwEGgv5jez4MLZcmT86bxB7m1wIbqSbVtfhS+GI7yPTA/kLzzFa14Im/+LTj95pb8qs2ALMwTMP1j2f9A6D3RriOFihL+68qn+YbK58KuV1R0f+CQRmlfVbk= phil@web.cyperpunk.de" "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCaLHfxVylghDMYR8t4QMUpeRRqXasNABQKBEy9MmhbUXCcWiPbPMSZH8FMHON34rm2OrXP1kY/8jQxqBJDA+SqpFR2AZ4Khk9iVMaq5GHxxpn2amZUjoBa+fB29WaiE1npV5JVJV3O0ylw6GtiCnpneE6fGx2MO1vOY/7zKrUX/OK7WfwkDpeEzZgV/j/md917HrzUVeZwdeTq3WCRO8Gew6R8Xs6FRjSiGuH0dq14D4Ow5Zf1cI1jx+JfD/5vGasw8HXPu1NdxsOE+6D7/22IKqGr+S74/lAoyyD5qqk0s05lw8UY/PXBLJaNLZu9Fwx0BqTHpJEvftpmvd9wUxgR3msx9VXtKNSrqivIbDgeU+3oGzzkrGZODl7FCp4XKGmbrX85Z6lKwEGgv5jez4MLZcmT86bxB7m1wIbqSbVtfhS+GI7yPTA/kLzzFa14Im/+LTj95pb8qs2ALMwTMP1j2f9A6D3RriOFihL+68qn+YbK58KuV1R0f+CQRmlfVbk= phil@web.cyperpunk.de"
]; ];
shell = pkgs.fish; shell = pkgs.fish;
group = "phil";
extraGroups = [ extraGroups = [
"video" "video"
"kvm" "kvm"