diff --git a/hosts/cap-nr200p/configuration.nix b/hosts/cap-nr200p/configuration.nix index 3c8524d..187838a 100644 --- a/hosts/cap-nr200p/configuration.nix +++ b/hosts/cap-nr200p/configuration.nix @@ -41,6 +41,7 @@ ../../modules/application-groups/pcb-design.nix ../../modules/application-groups/productivity.nix ../../modules/application-groups/programming.nix + ../../modules/application-groups/radio.nix ../../modules/application-groups/social.nix ../../modules/application-groups/system-utilities.nix ../../modules/application-groups/virtualization.nix diff --git a/hosts/cap-slim7/configuration.nix b/hosts/cap-slim7/configuration.nix index baebf46..b51a84f 100644 --- a/hosts/cap-slim7/configuration.nix +++ b/hosts/cap-slim7/configuration.nix @@ -37,6 +37,7 @@ ../../modules/application-groups/pcb-design.nix ../../modules/application-groups/productivity.nix ../../modules/application-groups/programming.nix + ../../modules/application-groups/radio.nix ../../modules/application-groups/social.nix ../../modules/application-groups/system-utilities.nix ../../modules/application-groups/virtualization.nix diff --git a/modules/application-groups/downloads.nix b/modules/application-groups/downloads.nix index 222e4c0..39387df 100644 --- a/modules/application-groups/downloads.nix +++ b/modules/application-groups/downloads.nix @@ -1,6 +1,7 @@ { pkgs, ... }: { environment.systemPackages = with pkgs; [ + gallery-dl transmission_4-qt yt-dlp ]; diff --git a/modules/application-groups/media.nix b/modules/application-groups/media.nix index 57263c7..8242f72 100644 --- a/modules/application-groups/media.nix +++ b/modules/application-groups/media.nix @@ -41,12 +41,12 @@ in { environment.systemPackages = with pkgs; [ - audacity - darktable + # aaudacity + # darktable deadbeef glava obs-studio - # plex-desktop --> Encountering build failures + plex-desktop projectm_3 sox spotify-player diff --git a/modules/application-groups/pcb-design.nix b/modules/application-groups/pcb-design.nix index 1758f81..f172cde 100644 --- a/modules/application-groups/pcb-design.nix +++ b/modules/application-groups/pcb-design.nix @@ -2,7 +2,7 @@ { environment.systemPackages = with pkgs; [ kicad - pcb2gcode + #pcb2gcode ]; } diff --git a/modules/application-groups/programming.nix b/modules/application-groups/programming.nix index 963052a..3dd3120 100644 --- a/modules/application-groups/programming.nix +++ b/modules/application-groups/programming.nix @@ -23,8 +23,7 @@ in { nixfmt-rfc-style nixos-generators nodejs - platformio - python311Full + # platformio python3Full stm32cubemx stm32flash diff --git a/modules/application-groups/sdr.nix b/modules/application-groups/radio.nix similarity index 93% rename from modules/application-groups/sdr.nix rename to modules/application-groups/radio.nix index ae62c8c..293e965 100644 --- a/modules/application-groups/sdr.nix +++ b/modules/application-groups/radio.nix @@ -3,6 +3,7 @@ hardware.rtl-sdr.enable = true; environment.systemPackages = with pkgs; [ + chirp soapysdr soapyrtlsdr ]; diff --git a/modules/application-groups/social.nix b/modules/application-groups/social.nix index 7b55cb8..3f21a3d 100644 --- a/modules/application-groups/social.nix +++ b/modules/application-groups/social.nix @@ -1,9 +1,8 @@ { pkgs, ... }: { - environment.systemPackages = with pkgs; [ - telegram-desktop discord + slack + telegram-desktop ]; - } diff --git a/modules/applications/netextender/flake.nix b/modules/applications/netextender/flake.nix new file mode 100644 index 0000000..06dff3a --- /dev/null +++ b/modules/applications/netextender/flake.nix @@ -0,0 +1,71 @@ +# TODO: This was hacked together until it worked...Clean it up before merging +{ + description = "SonicWall NetExtender Flake"; + + outputs = + { self, nixpkgs, ... }: + let + systems = [ "x86_64-linux" ]; + neVersion = "10.3.0-21"; + neUrl = "https://software.sonicwall.com/NetExtender/NetExtender-linux-amd64-${neVersion}.tar.gz"; + + # ✅ Define the overlay function directly + overlay = final: prev: { + netextender = prev.stdenv.mkDerivation rec { + pname = "netextender"; + version = neVersion; + src = prev.fetchurl { + url = neUrl; + sha256 = "sha256-pnF/KRQMAcPnTj0Ni+sKKkw+H72WHf2iYVkWsWNCndc="; + }; + + nativeBuildInputs = [ + prev.autoPatchelfHook + prev.makeWrapper + ]; + buildInputs = [ + prev.openssl_3 + prev.zlib + prev.gtk2 + prev.pango + prev.cairo + prev.xorg.libX11 + ]; + + unpackPhase = "tar -xzf $src"; + installPhase = '' + mkdir -p $out/bin + BIN_CLI=$(find . -type f -iname nxcli -perm -111 | head -n1) + BIN_SVC=$(find . -type f -iname neservice -perm -111 | head -n1) + install -Dm755 "$BIN_CLI" $out/bin/nxcli + install -Dm755 "$BIN_SVC" $out/bin/neservice + ln -sf nxcli $out/bin/netextender + ln -sf neservice $out/bin/nxservice + for exe in nxcli neservice; do + wrapProgram $out/bin/$exe \ + --prefix LD_LIBRARY_PATH : ${prev.lib.makeLibraryPath buildInputs} + done + ''; + }; + }; + in + { + overlays = { + x86_64-linux = overlay; + }; + + packages = { + x86_64-linux = + let + pkgs = import nixpkgs { + system = "x86_64-linux"; + overlays = [ overlay ]; + }; + in + { + default = pkgs.netextender; + netextender = pkgs.netextender; + }; + }; + }; +} diff --git a/modules/system/displaylink.nix b/modules/system/displaylink.nix index 740c98c..4d3e923 100644 --- a/modules/system/displaylink.nix +++ b/modules/system/displaylink.nix @@ -1,5 +1,14 @@ { config, pkgs, ... }: { + boot = { + extraModulePackages = [ config.boot.kernelPackages.evdi ]; + initrd = { + # List of modules that are always loaded by the initrd. + kernelModules = [ + "evdi" + ]; + }; + }; services.xserver.videoDrivers = [ "displaylink" "modesetting" diff --git a/modules/system/fonts.nix b/modules/system/fonts.nix index 95fd68c..66640ed 100644 --- a/modules/system/fonts.nix +++ b/modules/system/fonts.nix @@ -1,8 +1,16 @@ { config, pkgs, ... }: { fonts.fontDir.enable = true; - fonts.fontconfig.enable = true; - fonts.fontconfig.antialias = true; + fonts.fontconfig = { + enable = true; + antialias = true; + defaultFonts = { + monospace = [ "JetBrains Mono" ]; + sansSerif = [ "JetBrains Mono" ]; + serif = [ "JetBrains Mono" ]; + }; + }; + fonts.packages = with pkgs; [ noto-fonts noto-fonts-emoji diff --git a/modules/system/hyprland.nix b/modules/system/hyprland.nix index dce8d73..c449241 100644 --- a/modules/system/hyprland.nix +++ b/modules/system/hyprland.nix @@ -23,30 +23,26 @@ xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; programs.hyprlock.enable = true; + programs.waybar.enable = true; services.hypridle.enable = true; environment.systemPackages = with pkgs; [ - waybar - dunst - libnotify - rofi-wayland - nwg-look - nwg-displays - slurp - grim arandr - wl-clipboard - wlogout + dunst flameshot - wofi - swayimg + grim + hyprpaper hyprpicker kanshi + libnotify mako - - (pkgs.waybar.overrideAttrs (oldAttrs: { - mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ]; - })) + nwg-look + rofi-wayland + slurp + swayimg + wl-clipboard + wlogout + wofi ]; } diff --git a/modules/system/nix-settings.nix b/modules/system/nix-settings.nix index 707b170..c51aba9 100644 --- a/modules/system/nix-settings.nix +++ b/modules/system/nix-settings.nix @@ -22,10 +22,10 @@ programs.bash.shellAliases = { # Nix rebuild, switch - nrs = "pushd /etc/nixos && { trap 'popd' EXIT; sudo nixos-rebuild switch --flake .#$(hostname); }"; + nrs = "bash -c \"cd /etc/nixos && sudo nixos-rebuild switch --flake .#$(hostname) ; exit\""; # Nix flake update, rebuild, switch - nus = "cd /etc/nixos && sudo nix flake update && sudo nixos-rebuild switch --flake .#$(hostname)"; + nus = "bash -c \"cd /etc/nixos && sudo nix flake update && sudo nixos-rebuild switch --flake .#$(hostname) ; exit\""; # Special cleanup, needed when efi partition runs out of space. Deletes all but the last five generations. # Remember to make that partition bigger in the future... diff --git a/users/caperren/caperren.nix b/users/caperren/caperren.nix index 677c9c0..ccf4cd3 100644 --- a/users/caperren/caperren.nix +++ b/users/caperren/caperren.nix @@ -37,12 +37,19 @@ in userEmail = "caperren@gmail.com"; }; + programs.kitty = { + font.name = "JetBrains Mono"; + }; + home.file.".config/hypr/hypridle.conf".source = ./dotfiles/hypridle/hypridle.conf; + home.file.".config/hypr/hyprpaper.conf".source = ./dotfiles/hyprpaper/hyprpaper.conf; + home.file.".config/hypr/backgrounds/black.png".source = ./dotfiles/hyprpaper/black.png; home.file.".config/hypr/hyprland-common.conf".source = ./dotfiles/hyprland/hyprland-common.conf; home.file.".config/hypr/hyprland.conf".source = hyprlandConfigPath + "/hyprland.conf"; home.file.".config/kanshi/config".source = kanshiConfigPath + "/config"; home.file.".config/spotify-player/app.toml".text = spotifyPlayerAppTomlText; home.file.".config/waybar/config".source = waybarConfigPath + "/config"; + home.file.".config/waybar/style.css".source = ./dotfiles/waybar/style.css; home.file.".config/wlogout/layout".source = ./dotfiles/wlogout/layout; gtk = { @@ -62,10 +69,16 @@ in name = "Bibata-Modern-Ice"; package = pkgs.bibata-cursors; }; + + font.name = "JetBrains Mono 11"; }; home.sessionVariables = { GTK_THEME = "Adwaita-dark"; }; + + xresources.properties = { + "Xft.font" = "JetBrains Mono"; + }; }; } diff --git a/users/caperren/dotfiles/hyprland/hyprland-common.conf b/users/caperren/dotfiles/hyprland/hyprland-common.conf index 516e3e0..2986797 100644 --- a/users/caperren/dotfiles/hyprland/hyprland-common.conf +++ b/users/caperren/dotfiles/hyprland/hyprland-common.conf @@ -165,6 +165,7 @@ bind = ,XF86MonBrightnessUp, exec, brightnessctl s +1% exec-once = kanshi exec-once = ydotoold exec-once = hypridle +exec-once = hyprpaper exec-once = wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 10% diff --git a/users/caperren/dotfiles/hyprpaper/black.png b/users/caperren/dotfiles/hyprpaper/black.png new file mode 100644 index 0000000..49c36a9 Binary files /dev/null and b/users/caperren/dotfiles/hyprpaper/black.png differ diff --git a/users/caperren/dotfiles/hyprpaper/hyprpaper.conf b/users/caperren/dotfiles/hyprpaper/hyprpaper.conf new file mode 100644 index 0000000..e33deb2 --- /dev/null +++ b/users/caperren/dotfiles/hyprpaper/hyprpaper.conf @@ -0,0 +1,5 @@ +preload = ~/.config/hypr/backgrounds/black.png +wallpaper = ,~/.config/hypr/backgrounds/black.png + +ipc = off +splash = false \ No newline at end of file diff --git a/users/caperren/dotfiles/waybar/cap-nr200p/config b/users/caperren/dotfiles/waybar/cap-nr200p/config index cf95c60..561401a 100644 --- a/users/caperren/dotfiles/waybar/cap-nr200p/config +++ b/users/caperren/dotfiles/waybar/cap-nr200p/config @@ -2,25 +2,28 @@ "layer": "top", "position": "top", "modules-left": [ - "custom/logo", +// "custom/logo", "clock", + "temperature", "disk", "memory", - "cpu", - "hyprland/window" + "cpu" ], "modules-center": [ + "hyprland/window", "hyprland/workspaces" ], "modules-right": [ "tray", "idle_inhibitor", "pulseaudio", + "battery", + "backlight", "custom/exit" ], "reload_style_on_change": true, "custom/logo": { - "format": "", + "format": "", "tooltip": false }, "hyprland/workspaces": { @@ -38,8 +41,51 @@ "9": "9" } }, + "backlight": { + "device": "intel_backlight", + "format": "{percent}% {icon}", + "format-icons": [ + "", + "" + ] + }, + "battery": { + "bat": "BAT0", + "adapter": "AC", + "interval": 10, + "full-at": 100, + "states": { + "full": 100, + "good": 75, + "warning": 30, + "critical": 15, + "empty": 5 + }, + "format": "{icon} {capacity}%", + "format-charging": " {capacity}%", + "format-plugged": " {capacity}%", + "format-icons": [ + "", + "", + "", + "", + "" + ] + }, + "temperature": { + "interval": 1, + "critical-threshold": 90, + "format": "{icon} {temperatureC}°C", + "format-icons": [ + "", + "", + "", + "", + "" + ] + }, "idle_inhibitor": { - "format": "{icon}", + "format": "{icon}", "format-icons": { "activated": "󰈈", "deactivated": "󰈉" @@ -48,9 +94,9 @@ "tooltip-format-deactivated": "idle-inhibitor off" }, "clock": { - "format": "{:%I:%M:%S %p | %a | %F}", + "format": "{:%I:%M:%S %p} |", "interval": 1, - "tooltip-format": "\n{:%Y %B}\n{calendar}", + "tooltip-format": "{:%I:%M:%S %p | %a | %F}\n\n{calendar}", "calendar-weeks-pos": "right", "today-format": "{}", "format-calendar": "{}", @@ -59,34 +105,37 @@ }, "disk": { "interval": 30, - "format": " {percentage_used}%", - "path": "/" + "format": " {}%", + "tooltip-format": "{used} / {total} used" }, "cpu": { + "format": " {usage:02}% {icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}", + "tooltip": false, "interval": 1, - "format": " {usage}%", - "min-length": 6, - "max-length": 6, "format-icons": [ - "▁", - "▂", - "▃", - "▄", - "▅", - "▆", - "▇", - "█" + // green, + "", + // blue, + "", + // white, + "", + // white, + "", + // yellow, + "", + // yellow, + "", + // orange, + "", + // red, + "" ] }, "memory": { - "format": " {percentage}%" + "format": " {percentage:02}%" }, "hyprland/window": { "format": "( {class} )", - "rewrite": { - "(.*) - Mozilla Firefox": "🌎 $1", - "(.*) - zsh": "> [$1]" - } }, "pulseaudio": { "format": "{volume:02}% {icon}", @@ -116,7 +165,7 @@ "spacing": 10 }, "custom/exit": { - "format": "", + "format": "| ", "on-click": "wlogout -b 2", "tooltip": false } diff --git a/users/caperren/dotfiles/waybar/cap-slim7/config b/users/caperren/dotfiles/waybar/cap-slim7/config index 075b96c..a4164ec 100644 --- a/users/caperren/dotfiles/waybar/cap-slim7/config +++ b/users/caperren/dotfiles/waybar/cap-slim7/config @@ -2,14 +2,15 @@ "layer": "top", "position": "top", "modules-left": [ - "custom/logo", +// "custom/logo", "clock", + "temperature", "disk", "memory", - "cpu", - "hyprland/window" + "cpu" ], "modules-center": [ + "hyprland/window", "hyprland/workspaces" ], "modules-right": [ @@ -22,7 +23,7 @@ ], "reload_style_on_change": true, "custom/logo": { - "format": "", + "format": "", "tooltip": false }, "hyprland/workspaces": { @@ -50,23 +51,42 @@ }, "battery": { "bat": "BAT0", - "interval": 60, + "adapter": "AC", + "interval": 10, + "full-at": 100, "states": { + "full": 100, + "good": 75, "warning": 30, - "critical": 15 + "critical": 15, + "empty": 5 }, - "format": "{capacity}% {icon}", + "format": "{icon} {capacity}%", + "format-charging": " {capacity}%", + "format-plugged": " {capacity}%", "format-icons": [ "", "", "", "", "" - ], - "max-length": 25 + ] + }, + "temperature": { + "hwmon-path": "/sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon5/temp1_input", + "interval": 1, + "critical-threshold": 90, + "format": "{icon} {temperatureC}°C", + "format-icons": [ + "", + "", + "", + "", + "" + ] }, "idle_inhibitor": { - "format": "{icon}", + "format": "{icon}", "format-icons": { "activated": "󰈈", "deactivated": "󰈉" @@ -75,9 +95,9 @@ "tooltip-format-deactivated": "idle-inhibitor off" }, "clock": { - "format": "{:%I:%M:%S %p | %a | %F}", + "format": "{:%I:%M:%S %p} |", "interval": 1, - "tooltip-format": "\n{:%Y %B}\n{calendar}", + "tooltip-format": "{:%I:%M:%S %p | %a | %F}\n\n{calendar}", "calendar-weeks-pos": "right", "today-format": "{}", "format-calendar": "{}", @@ -86,34 +106,37 @@ }, "disk": { "interval": 30, - "format": " {percentage_used}%", - "path": "/" + "format": " {}%", + "tooltip-format": "{used} / {total} used" }, "cpu": { + "format": " {usage:02}% {icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}", + "tooltip": false, "interval": 1, - "format": " {usage}%", - "min-length": 6, - "max-length": 6, "format-icons": [ - "▁", - "▂", - "▃", - "▄", - "▅", - "▆", - "▇", - "█" + // green, + "", + // blue, + "", + // white, + "", + // white, + "", + // yellow, + "", + // yellow, + "", + // orange, + "", + // red, + "" ] }, "memory": { - "format": " {percentage}%" + "format": " {percentage:02}%" }, "hyprland/window": { "format": "( {class} )", - "rewrite": { - "(.*) - Mozilla Firefox": "🌎 $1", - "(.*) - zsh": "> [$1]" - } }, "pulseaudio": { "format": "{volume:02}% {icon}", @@ -143,7 +166,7 @@ "spacing": 10 }, "custom/exit": { - "format": "", + "format": "| ", "on-click": "wlogout -b 2", "tooltip": false } diff --git a/users/caperren/dotfiles/waybar/style.css b/users/caperren/dotfiles/waybar/style.css new file mode 100644 index 0000000..9b0e3dd --- /dev/null +++ b/users/caperren/dotfiles/waybar/style.css @@ -0,0 +1,51 @@ +* { + border: none; + border-radius: 0; + font-family: "JetBrains Mono", monospace; + font-size: 14px; + box-shadow: none; + text-shadow: none; + transition-duration: 0s; +} + +window { + background: rgba(0, 0, 0, 0.00); +} + +#workspaces button { + padding: 0 5px; + color: rgba(217, 216, 216, 0.4); +} + +#workspaces button.visible { + color: rgba(217, 216, 216, 1); +} + +#workspaces button.focused { + border-top: 3px solid rgba(217, 216, 216, 1); + border-bottom: 3px solid rgba(217, 216, 216, 0); +} + +#workspaces button.urgent { + color: rgba(238, 46, 36, 1); +} + +#memory, +#idle_inhibitor, +#pulseaudio, +#backlight { + margin: 0 6px 0 10px; +} + +#disk { + margin: 0 0 0 10px; + +} + +#clock { + margin: 0 6px 0 10px; +} + +#custom-exit { + margin: 0 16px 0 6px; +} \ No newline at end of file