diff --git a/dotfiles/dot_config/eww/eww.scss b/dotfiles/dot_config/eww/eww.scss new file mode 100644 index 0000000..e69de29 diff --git a/dotfiles/dot_config/eww/eww.yuck b/dotfiles/dot_config/eww/eww.yuck new file mode 100644 index 0000000..7b70028 --- /dev/null +++ b/dotfiles/dot_config/eww/eww.yuck @@ -0,0 +1,12 @@ +(defwindow example + :monitor 0 + :geometry (geometry :x "0%" + :y "20px" + :width "90%" + :height "30px" + :anchor "top center") + :stacking "fg" + :reserve (struts :distance "40px" :side "top") + :windowtype "dock" + :wm-ignore false + "example content") diff --git a/dotfiles/dot_config/niri/config.kdl b/dotfiles/dot_config/niri/config.kdl index eba3f95..68e9d6e 100644 --- a/dotfiles/dot_config/niri/config.kdl +++ b/dotfiles/dot_config/niri/config.kdl @@ -20,22 +20,34 @@ input { mouse { natural-scroll - // accel-speed 0.2 - // accel-profile "flat" - // scroll-method "no-scroll" + accel-speed 0.2 + accel-profile "flat" } - // Uncomment this to make the mouse warp to the center of newly focused windows. - // warp-mouse-to-focus + workspace-auto-back-and-forth } output "eDP-1" { mode "2560x1600" background-color "#000000" - scale 1.5 + scale 1 transform "normal" } +output "DP-3" { + mode "3840x2160@59.997" + background-color "#000000" + scale 1.1 + transform "normal" +} + +environment { + DISPLAY ":0" + //QT_QPA_PLATFORM "wayland" + //XDG_CURRENT_DESKTOP "niri" + //XDG_SESSION_TYPE "wayland" +} + layout { gaps 10 center-focused-column "never" @@ -57,21 +69,31 @@ layout { } } -prefer-no-csd +workspace "main" +workspace "scratchpad" -spawn-at-startup "mako" -spawn-at-startup "yambar" -spawn-at-startup "xwayland-satellite" -spawn-at-startup "fuzzel" +// prefer-no-csd + +// spawn-at-startup "mako" +// spawn-at-startup "fuzzel" +// spawn-at-startup "eww" "daemon" +spawn-at-startup "xwayland-satellite" ":0" +spawn-at-startup "clipse" "-listen" screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" animations { - slowdown 3.0 + slowdown 1.0 +} + +window-rule { + match app-id="plexamp" + open-on-workspace "scratchpad" + open-floating true } // https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules -// Work around WezTerm's initial configure bug +// Work around WezTerm initial configure bug // by setting an empty default-column-width. window-rule { match app-id=r#"^org\.wezfurlong\.wezterm$"# @@ -88,7 +110,7 @@ window-rule { } window-rule { - geometry-corner-radius 6 + geometry-corner-radius 12 clip-to-geometry true } @@ -98,7 +120,7 @@ binds { // Suggested binds for running programs: terminal, app launcher, screen locker. Mod+T { spawn "wezterm"; } - Mod+D { spawn "fuzzel"; } + Mod+Space { spawn "fuzzel"; } Super+Alt+L { spawn "swaylock"; } // Example volume keys mappings for PipeWire & WirePlumber. @@ -258,7 +280,8 @@ binds { // Move the focused window between the floating and the tiling layout. Mod+X { toggle-window-floating; } - Mod+Shift+X { switch-focus-between-floating-and-tiling; } + // Mod+Shift+X { switch-focus-between-floating-and-tiling; } + Mod+Shift+X { focus-workspace "scratchpad"; } // Actions to switch layouts. // Note: if you uncomment these, make sure you do NOT have @@ -274,7 +297,7 @@ binds { // The quit action will show a confirmation dialog to avoid accidental exits. Mod+Shift+E { quit; } - Ctrl+Alt+Delete { quit; } + //Ctrl+Alt+Delete { quit; } // Powers off the monitors. To turn them back on, do any input like // moving the mouse or pressing any other key. diff --git a/dotfiles/dot_config/waybar/config b/dotfiles/dot_config/waybar/config new file mode 100644 index 0000000..5a2f5e5 --- /dev/null +++ b/dotfiles/dot_config/waybar/config @@ -0,0 +1,51 @@ +{ + "modules-left": ["clock", "niri/workspaces", "custom/media"], + "modules-center": ["niri/window"], + "modules-right": ["tray", "pulseaudio", "idle_inhibitor", "custom/power"], + + "network": { + "format-wifi": "{essid} ({signalStrength}%) ", + "format-ethernet": "{ifname} ", + "format-disconnected": "", + "max-length": 50, + "on-click": "kitty -e 'nmtui'" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + }, + }, + "tray": { + "icon-size": 15, + "spacing": 10 + }, + "clock": { + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%Y-%m-%d}", + "on-click": "gnome-calendar" + }, + "pulseaudio": { + "format": "{volume}% {icon} ", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": " {icon} {format_source}", + "format-muted": "0% {icon} ", + "format-source": "{volume}% ", + "format-source-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + }, + "custom/power": { + "format": " ", + "on-click": "wlogout" + } +} diff --git a/dotfiles/dot_config/waybar/style.css b/dotfiles/dot_config/waybar/style.css new file mode 100644 index 0000000..7653e28 --- /dev/null +++ b/dotfiles/dot_config/waybar/style.css @@ -0,0 +1,101 @@ +* { + border: none; + font-size: 14px; + font-family: "JetBrainsMono Nerd Font,JetBrainsMono NF" ; + min-height: 25px; +} + +window#waybar { + background: transparent; + margin: 5px; + } + +#custom-logo { + padding: 0 10px; +} + +.modules-right { + padding-left: 5px; + border-radius: 15px 0 0 15px; + margin-top: 2px; + background: #000000; +} + +.modules-center { + padding: 0 15px; + margin-top: 2px; + border-radius: 15px 15px 15px 15px; + background: #000000; +} + +.modules-left { + border-radius: 0 15px 15px 0; + margin-top: 2px; + background: #000000; +} + +#battery, +#custom-clipboard, +#custom-colorpicker, +#custom-powerDraw, +#bluetooth, +#pulseaudio, +#network, +#disk, +#memory, +#backlight, +#cpu, +#temperature, +#custom-weather, +#idle_inhibitor, +#jack, +#tray, +#window, +#workspaces, +#clock { + padding: 0 5px; +} +#pulseaudio { + padding-top: 3px; +} + +#temperature.critical, +#pulseaudio.muted { + color: #FF0000; + padding-top: 0; +} + + + + +#clock{ + color: #5fd1fa; +} + +#battery.charging { + color: #ffffff; + background-color: #26A65B; +} + +#battery.warning:not(.charging) { + background-color: #ffbe61; + color: black; +} + +#battery.critical:not(.charging) { + background-color: #f53c3c; + color: #ffffff; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} diff --git a/dotfiles/dot_config/wezterm/wezterm.lua b/dotfiles/dot_config/wezterm/wezterm.lua index 3cbc72e..2810d06 100644 --- a/dotfiles/dot_config/wezterm/wezterm.lua +++ b/dotfiles/dot_config/wezterm/wezterm.lua @@ -43,7 +43,7 @@ local workspace_switcher = wezterm.plugin.require("https://github.com/MLFlexer/s config.enable_wayland = false; config.front_end = "WebGpu"; -config.font_size = 11 +config.font_size = 13 config.font = wezterm.font { family = 'JetBrains Mono', weight = 'Medium' diff --git a/dotfiles/dot_config/yambar/config.yml b/dotfiles/dot_config/yambar/config.yml new file mode 100644 index 0000000..de23c17 --- /dev/null +++ b/dotfiles/dot_config/yambar/config.yml @@ -0,0 +1,12 @@ +bar: + height: 26 + location: top + spacing: 5 + margin: 7 + background: 000000ff + + right: + - clock: + time-format: "%H:%M %Z" + content: + - string: {text: "{time}"} diff --git a/flake.lock b/flake.lock index 4d86418..adfc1be 100644 --- a/flake.lock +++ b/flake.lock @@ -263,11 +263,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1737762889, - "narHash": "sha256-5HGG09bh/Yx0JA8wtBMAzt0HMCL1bYZ93x4IqzVExio=", + "lastModified": 1737968762, + "narHash": "sha256-xiPARGKwocaMtv+U/rgi+h2g56CZZEmrcl7ldRaslq8=", "owner": "nix-community", "repo": "home-manager", - "rev": "daf04c5950b676f47a794300657f1d3d14c1a120", + "rev": "e1ae908bcc30af792b0bb0a52e53b03d2577255e", "type": "github" }, "original": { @@ -290,11 +290,11 @@ "uv2nix": "uv2nix" }, "locked": { - "lastModified": 1737906146, - "narHash": "sha256-Mjw+78n0oAT5lZfGI+d7QMPdqEGcBfDz13XlGCXfNnE=", + "lastModified": 1737961863, + "narHash": "sha256-OTkGVz75+CuRnwng+fwdv0LuRzDX5TesFMAN5uRjOaI=", "owner": "isd-project", "repo": "isd", - "rev": "01ffd8464018d08c4e1d44dc06b4dc2edec1742b", + "rev": "9c1a95c5cc66fa847f46e5f76c71022daf5ec1fa", "type": "github" }, "original": { @@ -364,6 +364,28 @@ "type": "github" } }, + "niri": { + "inputs": { + "nix-filter": "nix-filter_2", + "nixpkgs": [ + "nixpkgs" + ], + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1737956052, + "narHash": "sha256-Gr+tkCSuhQ5NT04hv/PoHExCgbuqRA/GZQv+le40LNY=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "9b4d73f13a6906537faf01b5c5e5e2fee9dd602e", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "repo": "niri", + "type": "github" + } + }, "nix-appimage": { "inputs": { "flake-compat": "flake-compat_3", @@ -399,6 +421,21 @@ "type": "github" } }, + "nix-filter_2": { + "locked": { + "lastModified": 1731533336, + "narHash": "sha256-oRam5PS1vcrr5UPgALW0eo1m/5/pls27Z/pabHNy2Ms=", + "owner": "numtide", + "repo": "nix-filter", + "rev": "f7653272fd234696ae94229839a99b73c9ab7de0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "nix-filter", + "type": "github" + } + }, "nix-flatpak": { "locked": { "lastModified": 1737806078, @@ -479,11 +516,11 @@ }, "nixpkgs-unstable_2": { "locked": { - "lastModified": 1737746512, - "narHash": "sha256-nU6AezEX4EuahTO1YopzueAXfjFfmCHylYEFCagduHU=", + "lastModified": 1737885589, + "narHash": "sha256-Zf0hSrtzaM1DEz8//+Xs51k/wdSajticVrATqDrfQjg=", "owner": "nixos", "repo": "nixpkgs", - "rev": "825479c345a7f806485b7f00dbe3abb50641b083", + "rev": "852ff1d9e153d8875a83602e03fdef8a63f0ecf8", "type": "github" }, "original": { @@ -495,11 +532,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1737469691, - "narHash": "sha256-nmKOgAU48S41dTPIXAq0AHZSehWUn6ZPrUKijHAMmIk=", + "lastModified": 1737746512, + "narHash": "sha256-nU6AezEX4EuahTO1YopzueAXfjFfmCHylYEFCagduHU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9e4d5190a9482a1fb9d18adf0bdb83c6e506eaab", + "rev": "825479c345a7f806485b7f00dbe3abb50641b083", "type": "github" }, "original": { @@ -527,11 +564,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1737672001, - "narHash": "sha256-YnHJJ19wqmibLQdUeq9xzE6CjrMA568KN/lFPuSVs4I=", + "lastModified": 1737885640, + "narHash": "sha256-GFzPxJzTd1rPIVD4IW+GwJlyGwBDV1Tj5FLYwDQQ9sM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "035f8c0853c2977b24ffc4d0a42c74f00b182cd8", + "rev": "4e96537f163fad24ed9eb317798a79afc85b51b7", "type": "github" }, "original": { @@ -641,6 +678,7 @@ "isd": "isd", "kmonad": "kmonad", "musnix": "musnix", + "niri": "niri", "nix-flatpak": "nix-flatpak", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_4", @@ -651,6 +689,27 @@ } }, "rust-overlay": { + "inputs": { + "nixpkgs": [ + "niri", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733106880, + "narHash": "sha256-aJmAIjZfWfPSWSExwrYBLRgXVvgF5LP1vaeUGOOIQ98=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "e66c0d43abf5bdefb664c3583ca8994983c332ae", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_2": { "inputs": { "nixpkgs": [ "wezterm", @@ -821,7 +880,7 @@ "nixpkgs": [ "nixpkgs" ], - "rust-overlay": "rust-overlay", + "rust-overlay": "rust-overlay_2", "zlib": "zlib" }, "locked": { diff --git a/flake.nix b/flake.nix index b535044..a15cce2 100644 --- a/flake.nix +++ b/flake.nix @@ -55,6 +55,11 @@ url = "github:paperwm/PaperWM"; inputs.nixpkgs.follows = "nixpkgs"; }; + + niri = { + url = "github:YaLTeR/niri"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = {nixpkgs, home-manager, sops-nix, kmonad, musnix, self, ... } @ inputs: diff --git a/home/home.nix b/home/home.nix index 0b8784c..97f35d5 100644 --- a/home/home.nix +++ b/home/home.nix @@ -20,7 +20,6 @@ inputs.affinity-nix.packages.x86_64-linux.designer guix - # uv unstable.thonny @@ -121,9 +120,10 @@ serapeum ])) - fuzzel + # fuzzel kdlfmt + kdotool ccl racket gdu @@ -136,6 +136,7 @@ openssl.out nixfmt-rfc-style wl-clipboard + unstable.clipse maim php rustup @@ -285,7 +286,7 @@ onlyoffice-desktopeditors libreoffice hyphenDicts.en_US - plexamp + unstable.plexamp rmpc resources carla @@ -330,7 +331,11 @@ parinfer-rust-emacs dockfmt + unstable.playerctl mioctl + rmpc + unstable.door-knocker + unstable.hyprpicker # Audio plugins (LV2, VST2, VST3, LADSPA) eq10q @@ -395,6 +400,9 @@ BW_CLIENTID = "$(cat ${config.sops.defaultSymlinkPath}/bw_client_id)"; BW_CLIENTSECRET = "$(cat ${config.sops.defaultSymlinkPath}/bw_api_key)"; NIXOS_OZONE_WL = "1"; + GSK_RENDERER = "ngl"; + MOZ_ENABLE_WAYLAND = 1; + DISPLAY = ":0"; }; stateVersion = "24.05"; @@ -429,13 +437,23 @@ programs = { home-manager.enable = true; - yambar = { + fuzzel = { enable = true; + settings = { + main = { + terminal = "${pkgs.wezterm}/bin/wezterm"; + }; + }; }; direnv = { enable = true; nix-direnv.enable = true; }; + yazi = { + enable = true; + enableFishIntegration = true; + package = pkgs.unstable.yazi; + }; fish = { enable = true; shellAliases = { @@ -577,14 +595,27 @@ }; pandoc.enable = true; password-store.enable = true; - #waybar.enable = true; + wlogout = { + enable = true; + }; + swaylock = { + enable = true; + }; + waybar = { + enable = true; + package = pkgs.unstable.waybar; + systemd = { + enable = true; + # target = "graphical-session.target"; + }; + }; + eww = { + enable = true; + configDir = ../dotfiles/dot_config/eww; + }; lazygit.enable = true; jq.enable = true; firefox.enable = true; - # thunderbird = { - # enable = true; - # package = pkgs.thunderbird-latest; - # }; rbw = { enable = true; package = pkgs.rbw-latest; @@ -627,10 +658,10 @@ }; services = { - # mpd = { - # enable = true; - # # musicDirectory = ; - # }; + playerctld = { + enable = true; + package = pkgs.unstable.playerctl; + }; mako = { enable = true; }; @@ -667,7 +698,6 @@ services.flatpak.packages = [ "com.github.tchx84.Flatseal" "nl.hjdskes.gcolor3" - "org.linuxshowplayer.LinuxShowPlayer" ]; systemd.user = { @@ -702,6 +732,7 @@ }; # moving files! + xdg.configFile."waybar".source = ../dotfiles/dot_config/waybar; xdg.configFile."just/justfile".source = ../dotfiles/dot_config/just/justfile; xdg.configFile."starship.toml".source = ../dotfiles/dot_config/starship.toml; xdg.configFile."ghostty".source = ../dotfiles/dot_config/ghostty; diff --git a/packages/amplocker/package.nix b/packages/amplocker/package.nix index edc5fd7..d3854af 100644 --- a/packages/amplocker/package.nix +++ b/packages/amplocker/package.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation rec { version = "latest"; src = fetchurl { url = "https://audioassaultdownloads.s3.amazonaws.com/AmpLocker/AmpLocker109/AmpLockerLinux.zip"; - sha256 = "sha256-adHle4A59DxJFR3KiLyuZp79vUK0QkGDnHRu6PWMVJQ="; + sha256 = "sha256-p4mmq/g0bA2d1ophcbXf/Tn2n0tkXzAKoLWUMe95RhU="; }; nativeBuildInputs = [ makeWrapper unzip autoPatchelfHook ]; buildInputs = with pkgs; [ diff --git a/system/eddie/configuration.nix b/system/eddie/configuration.nix index c36d8a5..44c9ce2 100644 --- a/system/eddie/configuration.nix +++ b/system/eddie/configuration.nix @@ -212,7 +212,11 @@ vSync = true; }; - programs.niri.enable = true; + programs.niri = { + enable = true; + package = inputs.niri.packages.x86_64-linux.default; + }; + # programs.waybar.enable = true; programs.nh = {