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"