diff --git a/hosts/m920q/default.nix b/hosts/m920q/default.nix
index a7be6ac..0668c58 100644
--- a/hosts/m920q/default.nix
+++ b/hosts/m920q/default.nix
@@ -34,44 +34,37 @@
networking = {
hostName = "nix-desktop";
- networkmanager.enable = false;
- 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 = {
+ networkmanager = {
enable = true;
- userControlled.enable = false;
- networks = {
- "LANFRED".psk = "CooleJungsWG";
- };
};
-
+ useNetworkd = false;
+ useDHCP = false;
+ wireless = {
+ enable = false; # Disable wpa_supplicant, NetworkManager handles WiFi
+ };
};
- systemd.services.systemd-networkd-wait-online.enable = lib.mkForce false;
+ # 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
+
+ [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;
-
system.stateVersion = "25.11"; # Did you read the comment?
-
}
diff --git a/modules/fonts.nix b/modules/fonts.nix
index b752465..20f430d 100644
--- a/modules/fonts.nix
+++ b/modules/fonts.nix
@@ -1,20 +1,90 @@
{ pkgs, lib, ... }:
{
- environment.systemPackages = [ pkgs.noto-fonts-color-emoji ];
+ environment.systemPackages = with pkgs; [
+ font-manager
+ gnome-characters
+ ];
fonts = {
packages = with pkgs; [
# icon fonts
material-icons
- # material-black-colors
material-design-icons
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-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.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.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;
@@ -27,16 +97,16 @@
# B&W emojis that would sometimes show instead of some Color emojis
fontconfig.defaultFonts = {
serif = [
- "Noto Serif"
- "Noto Color Emoji"
+ "FiraCode Nerd Font"
+ #"Noto Color Emoji"
];
sansSerif = [
- "Noto Sans"
- "Noto Color Emoji"
+ "FiraCode Nerd Font"
+ #"Noto Color Emoji"
];
monospace = [
- "JetBrainsMono Nerd Font"
- "Noto Color Emoji"
+ "FiraCode Nerd Font"
+ #"Noto Color Emoji"
];
emoji = [ "Noto Color Emoji" ];
};
diff --git a/programs/wm/common/rofi/configs/config.ini b/programs/wm/common/rofi/configs/config.ini
new file mode 100644
index 0000000..8602265
--- /dev/null
+++ b/programs/wm/common/rofi/configs/config.ini
@@ -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
diff --git a/programs/wm/common/rofi/configs/network.rasi b/programs/wm/common/rofi/configs/network.rasi
new file mode 100644
index 0000000..ea5d5b9
--- /dev/null
+++ b/programs/wm/common/rofi/configs/network.rasi
@@ -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;
+}
diff --git a/programs/wm/common/rofi/configs/smoking_girl.png b/programs/wm/common/rofi/configs/smoking_girl.png
new file mode 100644
index 0000000..8e32766
Binary files /dev/null and b/programs/wm/common/rofi/configs/smoking_girl.png differ
diff --git a/programs/wm/common/rofi/default.nix b/programs/wm/common/rofi/default.nix
index e0675d7..bbc2d49 100644
--- a/programs/wm/common/rofi/default.nix
+++ b/programs/wm/common/rofi/default.nix
@@ -7,6 +7,7 @@
home.packages = with pkgs; [
rofi-power-menu
rofi-calc
+ networkmanager_dmenu
];
programs.rofi = {
@@ -25,4 +26,8 @@
# copy the scripts directory recursively
recursive = true;
};
+
+ home.file.".config/networkmanager_dmenu/config.ini" = {
+ source = ./configs/config.ini;
+ };
}
diff --git a/programs/wm/common/waybar/common.nix b/programs/wm/common/waybar/common.nix
index 0bc5a19..a21b609 100644
--- a/programs/wm/common/waybar/common.nix
+++ b/programs/wm/common/waybar/common.nix
@@ -58,19 +58,19 @@
rotate = 0;
# Ethernet
- format-ethernet = "ᯤ";
+ format-ethernet = "⇵{bandwidthTotalBits}";
tooltip-format = "Network: {essid}\nSignal strength: {signaldBm}dBm ({signalStrength}%)\nFrequency: {frequency}MHz\nInterface: {ifname}\nIP: {ipaddr}/{cidr}\nGateway: {gwaddr}\nNetmask: {netmask}\nCurrent : {bandwidthTotalBits}\nUp : {bandwidthUpBits}\nDown : {bandwidthDownBits}";
format-linked = " {ifname} (No IP)";
format-disconnected = " ";
tooltip-format-disconnected = "Disconnected";
- on-click = "/usr/local/bin/ags -t ControlPanel";
+ on-click = "networkmanager_dmenu";
interval = 2;
};
memory = {
interval = 1;
- rotate = 270;
- format = "{icon}";
+ #rotate = 270;
+ format = "{icon} {percentage}%";
format-icons = [
""
""
@@ -87,8 +87,8 @@
cpu = {
interval = 1;
- format = "{icon}";
- rotate = 270;
+ format = "{icon} {usage}%";
+ #rotate = 270;
format-icons = [
""
""
@@ -103,14 +103,14 @@
};
temperature = {
- format = "{temperatureC}°C ";
+ format = " {temperatureC}°C";
thermal-zone = 0;
- hwmon-path = "/sys/class/hwmon/hwmon0/temp1_input";
+ hwmon-path = "/sys/class/thermal/thermal_zone1/temp";
critical-threshold = 80;
};
disk = {
- format = "{percentage_free}% ";
+ format = " {percentage_free}%";
tooltip = true;
tooltip-format = "{free} / {total} ({percentage_free})";
};
diff --git a/programs/wm/hyprland/hyprland.nix b/programs/wm/hyprland/hyprland.nix
index c82eec6..259c292 100644
--- a/programs/wm/hyprland/hyprland.nix
+++ b/programs/wm/hyprland/hyprland.nix
@@ -138,10 +138,10 @@ in
preserve_split = "yes"; # you probably want this
};
- gestures = {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
- workspace_swipe = "off";
- };
+ # gestures = {
+ # # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ # workspace_swipe = "off";
+ # };
misc = {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
diff --git a/users/core.nix b/users/core.nix
index 4aeeedc..1cc5476 100644
--- a/users/core.nix
+++ b/users/core.nix
@@ -19,6 +19,8 @@
stateVersion = "24.05";
};
+ # users.group.username = { };
+
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}
diff --git a/users/phil/nixos.nix b/users/phil/nixos.nix
index 5841351..0251206 100644
--- a/users/phil/nixos.nix
+++ b/users/phil/nixos.nix
@@ -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"
];
shell = pkgs.fish;
- group = "phil";
extraGroups = [
"video"
"kvm"