From 5f81cc5eadd22e9d0547b0a39f34c5ae596b1cd7 Mon Sep 17 00:00:00 2001 From: Varris Date: Sun, 24 Sep 2023 02:42:00 +0200 Subject: [PATCH] update, switched to ags --- flake.lock | 39 ++--- flake.nix | 15 +- overlay.nix | 12 +- pkgs/gruvbox-plus-icon-pack/default.nix | 25 +-- system/configuration.nix | 31 ++-- system/hardware-configuration.nix | 43 ++--- system/hardware/default.nix | 19 +++ user/configs/fish/default.nix | 4 +- user/configs/mpd/default.nix | 1 + .../neovim/config/lua/plugins/lspconfig.lua | 1 + user/configs/neovim/default.nix | 1 + user/configs/wayland/ags/ags-config/config.js | 124 ++++++++++++++ .../eww.scss => ags/ags-config/style.scss} | 87 +++++----- user/configs/wayland/ags/default.nix | 9 ++ user/configs/wayland/eww/config/eww.scss | 8 - user/configs/wayland/eww/config/eww.yuck | 1 - .../configs/wayland/eww/config/panel/eww.yuck | 153 ------------------ .../wayland/eww/config/scripts/get-volume.sh | 16 -- .../eww/config/scripts/mpd-current-song.sh | 20 --- .../wayland/eww/config/scripts/workspaces.sh | 43 ----- user/configs/wayland/eww/default.nix | 10 -- user/configs/wayland/hyprland/default.nix | 12 +- user/home.nix | 10 +- 23 files changed, 298 insertions(+), 386 deletions(-) mode change 100755 => 100644 system/hardware-configuration.nix create mode 100644 system/hardware/default.nix create mode 100644 user/configs/wayland/ags/ags-config/config.js rename user/configs/wayland/{eww/config/panel/eww.scss => ags/ags-config/style.scss} (54%) create mode 100644 user/configs/wayland/ags/default.nix delete mode 100644 user/configs/wayland/eww/config/eww.scss delete mode 100644 user/configs/wayland/eww/config/eww.yuck delete mode 100644 user/configs/wayland/eww/config/panel/eww.yuck delete mode 100755 user/configs/wayland/eww/config/scripts/get-volume.sh delete mode 100755 user/configs/wayland/eww/config/scripts/mpd-current-song.sh delete mode 100755 user/configs/wayland/eww/config/scripts/workspaces.sh delete mode 100644 user/configs/wayland/eww/default.nix diff --git a/flake.lock b/flake.lock index 8e7f717..3bbc7d5 100755 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,25 @@ { "nodes": { + "ags": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1695234369, + "narHash": "sha256-1XX2K417v9ghnLI9uP6EIEAS1zmy92AenQ04P+v6Si4=", + "owner": "Aylur", + "repo": "ags", + "rev": "364fde91311ca6396c8a82796eb54bbca7e708ae", + "type": "github" + }, + "original": { + "owner": "Aylur", + "repo": "ags", + "type": "github" + } + }, "chaotic-nyx": { "inputs": { "compare-to": "compare-to", @@ -38,23 +58,6 @@ "type": "github" } }, - "eww-systray": { - "flake": false, - "locked": { - "lastModified": 1692622179, - "narHash": "sha256-vxMGAa/RTsMADPK4dM/28SV2ktCT0DenYvGsHZ4IJ8c=", - "owner": "ralismark", - "repo": "eww", - "rev": "a82ed62c25ba50f28dc8c3d57efe440d51d6136b", - "type": "github" - }, - "original": { - "owner": "ralismark", - "ref": "tray-3", - "repo": "eww", - "type": "github" - } - }, "fenix": { "inputs": { "nixpkgs": [ @@ -416,8 +419,8 @@ }, "root": { "inputs": { + "ags": "ags", "chaotic-nyx": "chaotic-nyx", - "eww-systray": "eww-systray", "fenix": "fenix", "fish-plugin-bobthefish": "fish-plugin-bobthefish", "fish-plugin-gruvbox-theme": "fish-plugin-gruvbox-theme", diff --git a/flake.nix b/flake.nix index cdd3707..42fc884 100755 --- a/flake.nix +++ b/flake.nix @@ -69,15 +69,20 @@ flake = false; }; - waybar = { - url = "github:alexays/waybar"; - flake = false; - }; - nvim-hmts = { url = "github:calops/hmts.nvim"; flake = false; }; + + gruvbox-plus-icon-pack = { + url = "github:SylEleuth/gruvbox-plus-icon-pack"; + flake = false; + }; + + ags = { + url = "github:Aylur/ags"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = { self, nixpkgs, home-manager, ... }@inputs: diff --git a/overlay.nix b/overlay.nix index 36eeb2c..11da1a0 100755 --- a/overlay.nix +++ b/overlay.nix @@ -2,9 +2,18 @@ { default = final: prev: { + # aitrack = prev.aitrack.overrideAttrs (old: { + # src = prev.fetchFromGitHub { + # owner = "mdk97"; + # repo = "aitrack-linux"; + # rev = "fd550e826e1423cb7ea8dfdc7a9f6597f8d41114"; + # hash = "sha256-vwt+AVkpHDZch6RIdN8gNYVrYmUwxT6ahviIE5bqwi0="; + # }; + # }); + # eww-hyprland-activewindow = prev.callPackage ./pkgs/eww-hyprland-activewindow { inherit inputs; }; - gruvbox-plus-icon-pack = final.callPackage ./pkgs/gruvbox-plus-icon-pack { }; + gruvbox-plus-icon-pack = final.callPackage ./pkgs/gruvbox-plus-icon-pack { inherit inputs; }; ncmpcpp = prev.ncmpcpp.override { visualizerSupport = true; @@ -30,7 +39,6 @@ prev.keyutils prev.gnome.zenity prev.xdg-user-dirs - ]; extraLibraries = prev: [ ]; }; diff --git a/pkgs/gruvbox-plus-icon-pack/default.nix b/pkgs/gruvbox-plus-icon-pack/default.nix index 4a20556..ba109cd 100755 --- a/pkgs/gruvbox-plus-icon-pack/default.nix +++ b/pkgs/gruvbox-plus-icon-pack/default.nix @@ -1,25 +1,26 @@ -{ stdenvNoCC, fetchFromGitHub, gtk3, gnome-icon-theme, hicolor-icon-theme }: +{ stdenvNoCC, fetchFromGitHub, inputs, gtk3, fd, gnome-icon-theme, hicolor-icon-theme }: stdenvNoCC.mkDerivation rec { pname = "gruvbox-plus-icon-pack"; - version = "4.0"; + version = "9999"; - src = fetchFromGitHub { - owner = "SylEleuth"; - repo = pname; - rev = "v${version}"; - hash = "sha256-KefCHHFtuh2wAGBq6hZr9DpuJ0W99ueh8i1K3tohgG8="; - }; + src = inputs.gruvbox-plus-icon-pack; - nativeBuildInputs = [ gtk3 ]; + nativeBuildInputs = [ gtk3 fd ]; propagatedBuildInputs = [ gnome-icon-theme hicolor-icon-theme ]; installPhase = '' - mkdir -p $out/share/icons/GruvboxPlus - cp -r * $out/share/icons/GruvboxPlus + cd Gruvbox-Plus-Dark + fd " " -X rm + mkdir -p $out/share/icons/Gruvbox-Plus-Dark + cp -r * $out/share/icons/Gruvbox-Plus-Dark + ''; - gtk-update-icon-cache $out/share/icons/GruvboxPlus + postFixup = '' + for i in $out/share/icons/*; do + gtk-update-icon-cache $i + done ''; dontDropIconThemeCache = true; diff --git a/system/configuration.nix b/system/configuration.nix index e11d591..81ab37c 100755 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -2,11 +2,18 @@ { imports = [ ./hardware-configuration.nix - ./services + ./hardware ./programs + ./services ]; boot = { + tmp.useTmpfs = true; + + kernel.sysctl."vm.max_map_count" = 16777216; #Star Citizen crash fix + + kernelPackages = pkgs.linuxPackages_latest; + kernelModules = [ "i2c-dev" "i2c-piix4" ]; kernelParams = [ "amdgpu.ppfeaturemask=0xffffffff" @@ -23,7 +30,7 @@ grub = { enable = true; - useOSProber = true; + useOSProber = false; efiSupport = true; device = "nodev"; }; @@ -34,9 +41,6 @@ screen = "2k"; }; }; - - kernelPackages = pkgs.linuxPackages_latest; - kernelModules = [ "i2c-dev" "i2c-piix4" ]; }; powerManagement.cpuFreqGovernor = "schedutil"; @@ -47,6 +51,7 @@ firewall.enable = false; extraHosts = '' 192.168.0.18 steam.deck + 127.0.0.1 modules-cdn.eac-prod.on.epicgames.com ''; }; @@ -70,21 +75,7 @@ keyMap = "us-acentos"; }; - hardware.opengl = { - enable = true; - extraPackages = [ pkgs.libvdpau-va-gl ]; - - driSupport32Bit = true; - }; - - hardware.steam-hardware.enable = true; - hardware.bluetooth.enable = true; - hardware.sane = { - enable = true; - extraBackends = [ pkgs.sane-airscan ]; - }; - # Enable sound. sound.enable = true; @@ -121,6 +112,7 @@ file git htop + inotify-tools kdiskmark links2 libsForQt5.dolphin @@ -130,6 +122,7 @@ openrgb p7zip pciutils + sassc ripgrep unrar unzip diff --git a/system/hardware-configuration.nix b/system/hardware-configuration.nix old mode 100755 new mode 100644 index c512600..0d95178 --- a/system/hardware-configuration.nix +++ b/system/hardware-configuration.nix @@ -1,50 +1,55 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, modulesPath, ... }: +{ config, lib, pkgs, modulesPath, ... }: { imports = - [ - (modulesPath + "/installer/scan/not-detected.nix") + [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = [ "amdgpu" "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = []; + boot.extraModulePackages = [ ]; fileSystems."/" = - { - device = "/dev/disk/by-uuid/2949cfe9-f064-47b4-9621-3941b8ea1a42"; - fsType = "xfs"; + { device = "/dev/disk/by-uuid/f2c5e4e6-b94c-496a-90ef-0f77b8e5c645"; + fsType = "btrfs"; + options = [ "subvol=@nixos" "compress-force=zstd" ]; + }; + + fileSystems."/boot/efi" = + { device = "/dev/disk/by-uuid/BE4D-EFA9"; + fsType = "vfat"; + }; + + fileSystems."/mnt/btrfs" = + { device = "/dev/disk/by-uuid/f2c5e4e6-b94c-496a-90ef-0f77b8e5c645"; + fsType = "btrfs"; }; fileSystems."/mnt/hdd" = - { - device = "/dev/disk/by-uuid/ecbbfb05-ada8-4044-81a6-9a280f93802f"; + { device = "/dev/disk/by-uuid/ecbbfb05-ada8-4044-81a6-9a280f93802f"; fsType = "xfs"; }; fileSystems."/home" = - { - device = "/dev/disk/by-uuid/4dd7a8ea-311a-458b-8839-1d92c7abab1f"; + { device = "/dev/disk/by-uuid/4dd7a8ea-311a-458b-8839-1d92c7abab1f"; fsType = "xfs"; }; - fileSystems."/boot/efi" = - { - device = "/dev/disk/by-uuid/2128-03CA"; - fsType = "vfat"; - }; - - swapDevices = [ ]; + swapDevices = [ { + device = "/var/lib/swapfile"; + size = 16*1024; + } ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's # still possible to use this option, but it's recommended to use it in conjunction # with explicit per-interface declarations with `networking.interfaces..useDHCP`. networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp7s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp6s0.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; diff --git a/system/hardware/default.nix b/system/hardware/default.nix new file mode 100644 index 0000000..4a37c6a --- /dev/null +++ b/system/hardware/default.nix @@ -0,0 +1,19 @@ +{ pkgs, ... }: +{ + hardware.opengl = { + enable = true; + extraPackages = [ pkgs.libvdpau-va-gl ]; + driSupport32Bit = true; + }; + chaotic.mesa-git.enable = true; + + hardware.steam-hardware.enable = true; + + hardware.bluetooth.enable = true; + hardware.sane = { + enable = true; + extraBackends = [ pkgs.sane-airscan ]; + }; + + +} diff --git a/user/configs/fish/default.nix b/user/configs/fish/default.nix index beaa7cd..93afc04 100755 --- a/user/configs/fish/default.nix +++ b/user/configs/fish/default.nix @@ -45,8 +45,8 @@ }; shellAliases = { e = "nvim"; - ls = "${pkgs.exa}/bin/exa --icons"; - ll = "${pkgs.exa}/bin/exa --icons -l"; + ls = "${pkgs.eza}/bin/eza --icons"; + ll = "${pkgs.eza}/bin/eza --icons -l"; nf = "${pkgs.neofetch}/bin/neofetch"; }; }; diff --git a/user/configs/mpd/default.nix b/user/configs/mpd/default.nix index 4c9dedf..d47f0d9 100755 --- a/user/configs/mpd/default.nix +++ b/user/configs/mpd/default.nix @@ -83,6 +83,7 @@ header_window_color = "yellow"; }; }; + services.mpdris2 = { enable = true; notifications = true; diff --git a/user/configs/neovim/config/lua/plugins/lspconfig.lua b/user/configs/neovim/config/lua/plugins/lspconfig.lua index 711ad57..40c3970 100755 --- a/user/configs/neovim/config/lua/plugins/lspconfig.lua +++ b/user/configs/neovim/config/lua/plugins/lspconfig.lua @@ -40,6 +40,7 @@ lspconfig.rust_analyzer.setup { capabilities = capabilities } lspconfig.zls.setup { capabilities = capabilities } lspconfig.jedi_language_server.setup { capabilities = capabilities } lspconfig.bashls.setup { capabilities = capabilities } +lspconfig.tsserver.setup { capabilities = capabilities } lspconfig.cssls.setup { capabilities = capabilities, diff --git a/user/configs/neovim/default.nix b/user/configs/neovim/default.nix index 66f61f0..3ab3177 100755 --- a/user/configs/neovim/default.nix +++ b/user/configs/neovim/default.nix @@ -53,6 +53,7 @@ nixd rust-analyzer stylua + nodePackages.typescript-language-server nodePackages.vscode-css-languageserver-bin zls ] ++ [ diff --git a/user/configs/wayland/ags/ags-config/config.js b/user/configs/wayland/ags/ags-config/config.js new file mode 100644 index 0000000..cc35e89 --- /dev/null +++ b/user/configs/wayland/ags/ags-config/config.js @@ -0,0 +1,124 @@ +const { Widget } = ags.Widget; +const { Mpris, Hyprland, SystemTray } = ags.Service; +const { execAsync } = ags.Utils; +const { Box, Button, Label, Icon, CenterBox, Window } = Widget; + +const Workspaces = (monitor) => Box({ + className: 'workspaces', + connections: [[Hyprland, box => { + if (monitor == 0) { + box.children = [1,2,3].map(i => Button({ + onClicked: () => execAsync(`hyprctl dispatch workspace ${i}`), + child: Label({ label: `${i}` }), + className: Hyprland.active.workspace.id == i ? 'focused' : '', + })); + } else if (monitor == 1) { + box.children = [4,5,6].map(i => Button({ + onClicked: () => execAsync(`hyprctl dispatch workspace ${i}`), + child: Label({ label: `${i}` }), + className: Hyprland.active.workspace.id == i ? 'focused' : '', + })); + } + }]], +}); + +const WindowTitle = () => Label({ + connections: [[Hyprland, label => { + label.label = Hyprland.active.client.title || ''; + label.toggleClassName('windowTitle', label.label); + }]], +}); + +const Media = () => Button({ + className: 'media', + onPrimaryClick: () => Mpris.getPlayer('mpd')?.playPause(), + onScrollUp: () => Mpris.getPlayer('mpd')?.previous(), + onScrollDown: () => Mpris.getPlayer('mpd')?.next(), + child: Label({ + connections: [[Mpris, label => { + const mpris = Mpris.getPlayer('mpd'); + if (!mpris || mpris.playBackStatus == "Stopped") + label.label = ' Stopped'; + else + label.label = `${mpris.playBackStatus == 'Playing' ? ' ' : '󰏤 '}${mpris.trackArtists.join(', ')} - ${mpris.trackTitle}`; + }]], + }), +}); + +const SysTray = () => Box({ + className: 'tray', + connections: [[SystemTray, box => { + box.children = SystemTray.items.map(item => Button({ + className: 'tray-icon', + child: Icon(), + onPrimaryClick: (_, event) => item.activate(event), + onSecondaryClick: (_, event) => item.openMenu(event), + connections: [[item, button => { + button.child.icon = item.icon; + button.tooltipMarkup = item.tooltipMarkup; + }]], + })); + }]], +}); + +const Clock = () => Box({ + className: 'date', + children: [ + Label({ + label: ' ', + }), + Label({ + connections: [ + [1000, label => execAsync(['date', '+%a %d, %B %H:%M']) + .then(date => label.label = date).catch(console.error)], + ], + }), + ], +}); + +const Left = (monitor) => Box({ + children: [ + Workspaces(monitor), + WindowTitle(), + ], +}); + +const Center = () => Box({ + children: [ + Media(), + ], +}); + + +const Right = () => Box({ + halign: 'end', + children: [ + Clock(), + SysTray(), + ], +}); + +const Bar = ({ monitor } = {}) => Window({ + name: `bar-${monitor}`, // name has to be unique + className: 'bar', + monitor, + anchor: ['top', 'left', 'right'], + exclusive: true, + child: CenterBox({ + startWidget: Left(`${monitor}`), + centerWidget: Center(), + endWidget: Right(), + }), +}) + +const scss = ags.App.configDir + '/style.scss'; +const css = '/tmp/style-ags.css'; +ags.Utils.exec(`sassc ${scss} ${css}`); + +export default { + style: css, + windows: [ + Bar({monitor: 0}), + Bar({monitor: 1}), + ], +}; diff --git a/user/configs/wayland/eww/config/panel/eww.scss b/user/configs/wayland/ags/ags-config/style.scss similarity index 54% rename from user/configs/wayland/eww/config/panel/eww.scss rename to user/configs/wayland/ags/ags-config/style.scss index 6624b83..f6ec9b3 100644 --- a/user/configs/wayland/eww/config/panel/eww.scss +++ b/user/configs/wayland/ags/ags-config/style.scss @@ -5,79 +5,68 @@ $wsfg: rgb(235,219,178); $wsbg: rgb(60,56,54); $activewsbg: rgb(102,92,84); - $box-bg: rgb(80,73,69); -//Global Styles +* { + min-height: unset; +} + .bar { + min-height: 33px; + font-family: "JetBrainsMono Nerd Font"; + font-size: 12px; background-color: $bg; color: $fg; } -.window { +.workspaces { + background-color: $box-bg; + border-radius: 10px; + margin: 5px 0px 5px 10px; + font-size: 0px; +} + +.workspaces button { + border-radius: 0px; + background-color: $wsbg; + font-size: 10px; +} + +.workspaces button.focused { + background-color: $activewsbg; + border-radius: 0px; +} + +.windowTitle { background-color: $box-bg; border-radius: 10px; padding: 0px 10px 0px 10px; margin: 5px 0px 5px 10px; } -.volume { - background-color: $box-bg; - border-radius: 10px 0px 0px 10px; - margin: 5px 0px 5px 0px; - padding: 0px 10px 0px 10px; -} - -.mpd { +.media { background-color: $box-bg; border-radius: 0px 10px 10px 0px; padding: 0px 10px 0px 10px; margin: 5px 10px 5px 0px; } -.tray { - background-color: $box-bg; - border-radius: 10px; - padding: 0px 10px 0px 10px; - margin: 5px 10px 5px 0px; -} - .date { background-color: $box-bg; - border-radius: 10px; padding: 0px 10px 0px 10px; + border-radius: 10px; + margin: 5px 10px 5px 0px; +}; + +.tray { + background-color: $box-bg; + padding: 0px 10px 0px 10px; + border-radius: 10px; margin: 5px 10px 5px 0px; } -.wswidget { +.tray-icon { + font-size: 18px; background-color: $box-bg; - // border-radius: 10px; - margin: 5px 0px 5px 10px; + padding: 2px; } - -.w0, .w01, .w02, .w03, .w04, .w05, .w06, .w07, .w08, .w09, .w011, .w022, .w033, .w044, .w055, .w066, .w077, .w088, .w099 { - background-color: $wsbg; - padding: 3px 10px; -} - -.w01, .w011, .w04, .w044 { - background-color: $wsbg; - // border-radius: 10px 0px 0px 10px; -} - -.w03, .w033, .w06, .w066 { - background-color: $wsbg; - // border-radius: 0px 10px 10px 0px; -} - -/* Occupied */ -.w01, .w02, .w03, .w04, .w05, .w06, .w07, .w08, .w09 { - background-color: $wsbg; -} - -/* Focused */ -.w011, .w022, .w033, .w044, .w055, .w066, .w077, .w088, .w099 { - background-color: $activewsbg; -} - - diff --git a/user/configs/wayland/ags/default.nix b/user/configs/wayland/ags/default.nix new file mode 100644 index 0000000..6dbd8b6 --- /dev/null +++ b/user/configs/wayland/ags/default.nix @@ -0,0 +1,9 @@ +{ pkgs, lib, inputs, ...}: +{ + imports = [ inputs.ags.homeManagerModules.default]; + + programs.ags = { + enable = true; + configDir = ./ags-config; + }; +} diff --git a/user/configs/wayland/eww/config/eww.scss b/user/configs/wayland/eww/config/eww.scss deleted file mode 100644 index 80034aa..0000000 --- a/user/configs/wayland/eww/config/eww.scss +++ /dev/null @@ -1,8 +0,0 @@ -@import "panel/eww.scss"; - -* { - all: unset; - - font-family: "JetBrainsMono Nerd Font"; - font-size: 12px; -}; diff --git a/user/configs/wayland/eww/config/eww.yuck b/user/configs/wayland/eww/config/eww.yuck deleted file mode 100644 index fc9668c..0000000 --- a/user/configs/wayland/eww/config/eww.yuck +++ /dev/null @@ -1 +0,0 @@ -(include "panel/eww.yuck") diff --git a/user/configs/wayland/eww/config/panel/eww.yuck b/user/configs/wayland/eww/config/panel/eww.yuck deleted file mode 100644 index 210c147..0000000 --- a/user/configs/wayland/eww/config/panel/eww.yuck +++ /dev/null @@ -1,153 +0,0 @@ -;; ----------------------------- right monitor -(defwidget bar0 [] -(centerbox - :class "bar" - :orientation "h" - (left_side0) - (center) - (right_side) - )) - -(defwidget left_side0 [] -(box - :space-evenly false - :orientation "h" - :spacing 5 - - (box - :class "wswidget" - :spacing 0 - (workspaces0)) - - (box - :class { window0 != "" ? "window" : "" } - window0) - )) - -;; ----------------------------- left monitor - -(defwidget bar1 [] -(centerbox - :class "bar" - :orientation "h" - (left_side1) - (center) - (right_side) - )) - -(defwidget left_side1 [] -(box - :space-evenly false - :orientation "h" - :spacing 5 - - (box - :class "wswidget" - :spacing 0 - (workspaces1)) - - (box - :class { window1 != "" ? "window" : "" } - window1) - )) - -;; ----------------------------- - -(defwidget center [] -(box - :space-evenly false - :spacing 5 - - (eventbox - :onscroll "pamixer `echo {} | sed 's/up/\-i/\' | sed 's/down/\-d/'` 10" - (box - :space-evenly false - :class "volume" - volume)) - - (eventbox - :onclick "mpc toggle" - (box - :class "mpd" - mpd)) - ) -) - - (defwidget right_side [] -(box - :space-evenly false - :spacing 5 - :halign "end" - - (box - :space-evenly false - :orientation "h" - :class "date" - date) - ) -) - -;; ---------------------------- workspace widget - - (deflisten workspace0 - "scripts/workspaces.sh 0") - - (defwidget workspaces0 [] -(literal :content workspace0)) - - (deflisten workspace1 - "scripts/workspaces.sh 1") - - (defwidget workspaces1 [] -(literal :content workspace1)) - -;; ---------------------------- window widget - - (deflisten window0 "hyprland-activewindow `hyprctl monitors -j | jq -r \".[0].name\"`") - (deflisten window1 "hyprland-activewindow `hyprctl monitors -j | jq -r \".[1].name\"`") - - (defwidget title0 [] -(label :text "''${window0}")) - - (defwidget title1 [] -(label :text "''${window1}")) - -;; ----------------------------- - - (defpoll volume - :initial "" - :interval "0.5s" - "scripts/get-volume.sh") - - (deflisten mpd - :initial "" - "scripts/mpd-current-song.sh") - - (defpoll date - :interval "10s" - "date '+%a %d, %B %H:%M'") - - (defwindow bar0 - :monitor 0 - :windowtype "dock" - :geometry -(geometry :x "0%" - :y "0%" - :width "100%" - :height "32px" - :anchor "top center") - :exclusive true -(bar0)) - - (defwindow bar1 - :monitor 1 - :windowtype "dock" - :geometry -(geometry :x "0%" - :y "0%" - :width "100%" - :height "32px" - :anchor "top center") - :exclusive true -(bar1)) - diff --git a/user/configs/wayland/eww/config/scripts/get-volume.sh b/user/configs/wayland/eww/config/scripts/get-volume.sh deleted file mode 100755 index 8908aad..0000000 --- a/user/configs/wayland/eww/config/scripts/get-volume.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env cached-nix-shell -#! nix-shell -i bash -p pulsemixer -# -volume=$(pamixer --get-volume) - -if [[ $volume -eq 0 ]]; then - echo " $volume%" -elif [[ $volume -lt 25 ]]; then - echo " $volume%" -elif [[ $volume -lt 50 ]]; then - echo " $volume%" -elif [[ $volume -lt 75 ]]; then - echo "󰕾 $volume%" -else - echo " $volume%" -fi diff --git a/user/configs/wayland/eww/config/scripts/mpd-current-song.sh b/user/configs/wayland/eww/config/scripts/mpd-current-song.sh deleted file mode 100755 index 919fa2a..0000000 --- a/user/configs/wayland/eww/config/scripts/mpd-current-song.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env cached-nix-shell -#! nix-shell -i bash -p mpc-cli - -currentsong="" -state="" - -while true; do - state="$(mpc status %state%)" - current_song="$(mpc current)" - - if [[ $state == "playing" ]]; then - echo " $current_song" - elif [[ $state == "paused" && $current_song ]]; then - echo "󰏤 $current_song" - else - echo " stopped" - fi - mpc idle player &> /dev/null -done - diff --git a/user/configs/wayland/eww/config/scripts/workspaces.sh b/user/configs/wayland/eww/config/scripts/workspaces.sh deleted file mode 100755 index d2e9039..0000000 --- a/user/configs/wayland/eww/config/scripts/workspaces.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env cached-nix-shell -#! nix-shell -i bash -p hyprland socat jq - -workspaces() { - -unset -v \ -o1 o2 o3 o4 o5 o6 \ -f1 f2 f3 f4 f5 f6 - -ows="$(hyprctl workspaces -j | jq '.[] | del(select(.id == -99)) | .id')" - -for num in $ows; do - export o"$num"="$num" -done - -# Get Focused workspace for current monitor ID -arg="$1" -num="$(hyprctl monitors -j | jq --argjson arg "$arg" '.[] | select(.id == $arg).activeWorkspace.id')" -export f"$num"="$num" - -if [[ $arg -eq 0 ]]; then - echo "(eventbox :onscroll \"echo {} | sed -e 's/up/-1/g' -e 's/down/+1/g' | xargs hyprctl dispatch workspace\" \ - (box :class \"workspace\" :orientation \"h\" :space-evenly \"false\" \ - (button :onclick \"hyprctl dispatch workspace 1\" :class \"w0$o1$f1\" \"1\") \ - (button :onclick \"hyprctl dispatch workspace 2\" :class \"w0$o2$f2\" \"2\") \ - (button :onclick \"hyprctl dispatch workspace 3\" :class \"w0$o3$f3\" \"3\") \ - )\ - )" - elif [[ $arg -eq 1 ]]; then - echo "(eventbox :onscroll \"echo {} | sed -e 's/up/-1/g' -e 's/down/+1/g' | xargs hyprctl dispatch workspace\" \ - (box :class \"workspace\" :orientation \"h\" :space-evenly \"false\" \ - (button :onclick \"hyprctl dispatch workspace 4\" :class \"w0$o4$f4\" \"4\") \ - (button :onclick \"hyprctl dispatch workspace 5\" :class \"w0$o5$f5\" \"5\") \ - (button :onclick \"hyprctl dispatch workspace 6\" :class \"w0$o6$f6\" \"6\") \ - )\ - )" -fi -} - -workspaces $1 -socat -u UNIX-CONNECT:/tmp/hypr/"$HYPRLAND_INSTANCE_SIGNATURE"/.socket2.sock - | while read -r; do -workspaces $1 -done diff --git a/user/configs/wayland/eww/default.nix b/user/configs/wayland/eww/default.nix deleted file mode 100644 index 2b682b6..0000000 --- a/user/configs/wayland/eww/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ pkgs, ... }: -{ - programs.eww = { - enable = true; - package = pkgs.eww-wayland; - configDir = ./config; - }; - - home.packages = [ pkgs.eww-hyprland-activewindow ]; -} diff --git a/user/configs/wayland/hyprland/default.nix b/user/configs/wayland/hyprland/default.nix index 0d2f3fe..d918949 100755 --- a/user/configs/wayland/hyprland/default.nix +++ b/user/configs/wayland/hyprland/default.nix @@ -33,7 +33,7 @@ let ''; killprocess = pkgs.writeShellScriptBin "killprocess.sh" '' - ps -x -o pid=,comm= | column -t -o " " | ${pkgs.rofi-wayland}/bin/rofi -dmenu -p "kill process: " | awk '{print $1}' | uniq | xargs -r kill -9 + ps -x -o pid=,comm= | column -t -o " " | ${pkgs.rofi-wayland}/bin/rofi -dmenu -p "kill process: " | awk '{print $1}' | uniq | xargs -r kill -9 ''; passmenu = pkgs.writeShellScriptBin "passmenu.sh" '' @@ -56,7 +56,7 @@ in { imports = [ inputs.hyprland.homeManagerModules.default - ../eww + ../ags ../foot ../wob ../mako @@ -140,12 +140,12 @@ in exec-once = ${pkgs.blueman}/bin/blueman-applet exec-once = ${pkgs.networkmanagerapplet}/bin/nm-applet --indicator exec-once = ${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1 - exec-once = ${pkgs.mullvad-vpn}/bin/mullvad-gui + # exec-once = ${pkgs.mullvad-vpn}/bin/mullvad-gui exec-once = ${pkgs.ydotool}/bin/ydotoold exec = ${pkgs.xorg.xrandr}/bin/xrandr --output ${rightMonitor.display} --primary - exec = ${wob-voldaemon}/bin/wob-volumeindicator.sh; - exec = pkill eww; ${pkgs.eww-wayland}/bin/eww open-many bar0 bar1 + exec = ${wob-voldaemon}/bin/wob-volumeindicator.sh + exec = ags -q; ags exec = pkill swww; sleep 2 && ${pkgs.swww}/bin/swww init && ${pkgs.swww}/bin/swww img $(cat ~/.cache/swww/wallpaper.txt) #Set cursor @@ -211,6 +211,8 @@ in layerrule = ignorezero, notifications layerrule = blur, gtk-layer-shell + layerrule = blur, bar-0 + layerrule = blur, bar-1 windowrulev2 = fullscreen, class:^(hl2_linux)$ diff --git a/user/home.nix b/user/home.nix index deea54f..dfd4fc9 100755 --- a/user/home.nix +++ b/user/home.nix @@ -25,7 +25,7 @@ bottles bottom calcurse - discord + electron gamescope_git gimp gnome.gnome-boxes @@ -43,6 +43,7 @@ mangohud mesa-demos nerdfonts + nodejs noto-fonts-cjk-sans noto-fonts-cjk-serif openmw @@ -64,6 +65,7 @@ vimv vulkan-tools vulkan-validation-layers + webcord xdg-utils ]; @@ -80,7 +82,7 @@ fonts.fontconfig.enable = true; - programs.exa = { + programs.eza = { enable = true; }; @@ -119,8 +121,8 @@ }; iconTheme = { - package = pkgs.gruvbox-plus-icon-pack; - name = "GruvboxPlus"; + package = pkgs.gruvbox-plus-icon-pack; + name = "Gruvbox-Plus-Dark"; }; cursorTheme = {