update, switched to ags

This commit is contained in:
Varris 2023-09-24 02:42:00 +02:00
parent 8350e3fd37
commit 5f81cc5ead
23 changed files with 298 additions and 386 deletions

View File

@ -1,5 +1,25 @@
{ {
"nodes": { "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": { "chaotic-nyx": {
"inputs": { "inputs": {
"compare-to": "compare-to", "compare-to": "compare-to",
@ -38,23 +58,6 @@
"type": "github" "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": { "fenix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -416,8 +419,8 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"ags": "ags",
"chaotic-nyx": "chaotic-nyx", "chaotic-nyx": "chaotic-nyx",
"eww-systray": "eww-systray",
"fenix": "fenix", "fenix": "fenix",
"fish-plugin-bobthefish": "fish-plugin-bobthefish", "fish-plugin-bobthefish": "fish-plugin-bobthefish",
"fish-plugin-gruvbox-theme": "fish-plugin-gruvbox-theme", "fish-plugin-gruvbox-theme": "fish-plugin-gruvbox-theme",

View File

@ -69,15 +69,20 @@
flake = false; flake = false;
}; };
waybar = {
url = "github:alexays/waybar";
flake = false;
};
nvim-hmts = { nvim-hmts = {
url = "github:calops/hmts.nvim"; url = "github:calops/hmts.nvim";
flake = false; 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: outputs = { self, nixpkgs, home-manager, ... }@inputs:

View File

@ -2,9 +2,18 @@
{ {
default = final: prev: { 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; }; 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 { ncmpcpp = prev.ncmpcpp.override {
visualizerSupport = true; visualizerSupport = true;
@ -30,7 +39,6 @@
prev.keyutils prev.keyutils
prev.gnome.zenity prev.gnome.zenity
prev.xdg-user-dirs prev.xdg-user-dirs
]; ];
extraLibraries = prev: [ ]; extraLibraries = prev: [ ];
}; };

View File

@ -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 { stdenvNoCC.mkDerivation rec {
pname = "gruvbox-plus-icon-pack"; pname = "gruvbox-plus-icon-pack";
version = "4.0"; version = "9999";
src = fetchFromGitHub { src = inputs.gruvbox-plus-icon-pack;
owner = "SylEleuth";
repo = pname;
rev = "v${version}";
hash = "sha256-KefCHHFtuh2wAGBq6hZr9DpuJ0W99ueh8i1K3tohgG8=";
};
nativeBuildInputs = [ gtk3 ]; nativeBuildInputs = [ gtk3 fd ];
propagatedBuildInputs = [ gnome-icon-theme hicolor-icon-theme ]; propagatedBuildInputs = [ gnome-icon-theme hicolor-icon-theme ];
installPhase = '' installPhase = ''
mkdir -p $out/share/icons/GruvboxPlus cd Gruvbox-Plus-Dark
cp -r * $out/share/icons/GruvboxPlus 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; dontDropIconThemeCache = true;

View File

@ -2,11 +2,18 @@
{ {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
./services ./hardware
./programs ./programs
./services
]; ];
boot = { 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 = kernelParams =
[ [
"amdgpu.ppfeaturemask=0xffffffff" "amdgpu.ppfeaturemask=0xffffffff"
@ -23,7 +30,7 @@
grub = { grub = {
enable = true; enable = true;
useOSProber = true; useOSProber = false;
efiSupport = true; efiSupport = true;
device = "nodev"; device = "nodev";
}; };
@ -34,9 +41,6 @@
screen = "2k"; screen = "2k";
}; };
}; };
kernelPackages = pkgs.linuxPackages_latest;
kernelModules = [ "i2c-dev" "i2c-piix4" ];
}; };
powerManagement.cpuFreqGovernor = "schedutil"; powerManagement.cpuFreqGovernor = "schedutil";
@ -47,6 +51,7 @@
firewall.enable = false; firewall.enable = false;
extraHosts = '' extraHosts = ''
192.168.0.18 steam.deck 192.168.0.18 steam.deck
127.0.0.1 modules-cdn.eac-prod.on.epicgames.com
''; '';
}; };
@ -70,21 +75,7 @@
keyMap = "us-acentos"; 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. # Enable sound.
sound.enable = true; sound.enable = true;
@ -121,6 +112,7 @@
file file
git git
htop htop
inotify-tools
kdiskmark kdiskmark
links2 links2
libsForQt5.dolphin libsForQt5.dolphin
@ -130,6 +122,7 @@
openrgb openrgb
p7zip p7zip
pciutils pciutils
sassc
ripgrep ripgrep
unrar unrar
unzip unzip

43
system/hardware-configuration.nix Executable file → Normal file
View File

@ -1,50 +1,55 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:
{ {
imports = 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.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = []; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ { device = "/dev/disk/by-uuid/f2c5e4e6-b94c-496a-90ef-0f77b8e5c645";
device = "/dev/disk/by-uuid/2949cfe9-f064-47b4-9621-3941b8ea1a42"; fsType = "btrfs";
fsType = "xfs"; 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" = 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"; fsType = "xfs";
}; };
fileSystems."/home" = fileSystems."/home" =
{ { device = "/dev/disk/by-uuid/4dd7a8ea-311a-458b-8839-1d92c7abab1f";
device = "/dev/disk/by-uuid/4dd7a8ea-311a-458b-8839-1d92c7abab1f";
fsType = "xfs"; fsType = "xfs";
}; };
fileSystems."/boot/efi" = swapDevices = [ {
{ device = "/var/lib/swapfile";
device = "/dev/disk/by-uuid/2128-03CA"; size = 16*1024;
fsType = "vfat"; } ];
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (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 # still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp7s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp6s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp6s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";

View File

@ -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 ];
};
}

View File

@ -45,8 +45,8 @@
}; };
shellAliases = { shellAliases = {
e = "nvim"; e = "nvim";
ls = "${pkgs.exa}/bin/exa --icons"; ls = "${pkgs.eza}/bin/eza --icons";
ll = "${pkgs.exa}/bin/exa --icons -l"; ll = "${pkgs.eza}/bin/eza --icons -l";
nf = "${pkgs.neofetch}/bin/neofetch"; nf = "${pkgs.neofetch}/bin/neofetch";
}; };
}; };

View File

@ -83,6 +83,7 @@
header_window_color = "yellow"; header_window_color = "yellow";
}; };
}; };
services.mpdris2 = { services.mpdris2 = {
enable = true; enable = true;
notifications = true; notifications = true;

View File

@ -40,6 +40,7 @@ lspconfig.rust_analyzer.setup { capabilities = capabilities }
lspconfig.zls.setup { capabilities = capabilities } lspconfig.zls.setup { capabilities = capabilities }
lspconfig.jedi_language_server.setup { capabilities = capabilities } lspconfig.jedi_language_server.setup { capabilities = capabilities }
lspconfig.bashls.setup { capabilities = capabilities } lspconfig.bashls.setup { capabilities = capabilities }
lspconfig.tsserver.setup { capabilities = capabilities }
lspconfig.cssls.setup { lspconfig.cssls.setup {
capabilities = capabilities, capabilities = capabilities,

View File

@ -53,6 +53,7 @@
nixd nixd
rust-analyzer rust-analyzer
stylua stylua
nodePackages.typescript-language-server
nodePackages.vscode-css-languageserver-bin nodePackages.vscode-css-languageserver-bin
zls zls
] ++ [ ] ++ [

View File

@ -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}),
],
};

View File

@ -5,79 +5,68 @@ $wsfg: rgb(235,219,178);
$wsbg: rgb(60,56,54); $wsbg: rgb(60,56,54);
$activewsbg: rgb(102,92,84); $activewsbg: rgb(102,92,84);
$box-bg: rgb(80,73,69); $box-bg: rgb(80,73,69);
//Global Styles * {
min-height: unset;
}
.bar { .bar {
min-height: 33px;
font-family: "JetBrainsMono Nerd Font";
font-size: 12px;
background-color: $bg; background-color: $bg;
color: $fg; 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; background-color: $box-bg;
border-radius: 10px; border-radius: 10px;
padding: 0px 10px 0px 10px; padding: 0px 10px 0px 10px;
margin: 5px 0px 5px 10px; margin: 5px 0px 5px 10px;
} }
.volume { .media {
background-color: $box-bg;
border-radius: 10px 0px 0px 10px;
margin: 5px 0px 5px 0px;
padding: 0px 10px 0px 10px;
}
.mpd {
background-color: $box-bg; background-color: $box-bg;
border-radius: 0px 10px 10px 0px; border-radius: 0px 10px 10px 0px;
padding: 0px 10px 0px 10px; padding: 0px 10px 0px 10px;
margin: 5px 10px 5px 0px; margin: 5px 10px 5px 0px;
} }
.tray {
background-color: $box-bg;
border-radius: 10px;
padding: 0px 10px 0px 10px;
margin: 5px 10px 5px 0px;
}
.date { .date {
background-color: $box-bg; background-color: $box-bg;
border-radius: 10px;
padding: 0px 10px 0px 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; margin: 5px 10px 5px 0px;
} }
.wswidget { .tray-icon {
font-size: 18px;
background-color: $box-bg; background-color: $box-bg;
// border-radius: 10px; padding: 2px;
margin: 5px 0px 5px 10px;
} }
.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;
}

View File

@ -0,0 +1,9 @@
{ pkgs, lib, inputs, ...}:
{
imports = [ inputs.ags.homeManagerModules.default];
programs.ags = {
enable = true;
configDir = ./ags-config;
};
}

View File

@ -1,8 +0,0 @@
@import "panel/eww.scss";
* {
all: unset;
font-family: "JetBrainsMono Nerd Font";
font-size: 12px;
};

View File

@ -1 +0,0 @@
(include "panel/eww.yuck")

View File

@ -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))

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,10 +0,0 @@
{ pkgs, ... }:
{
programs.eww = {
enable = true;
package = pkgs.eww-wayland;
configDir = ./config;
};
home.packages = [ pkgs.eww-hyprland-activewindow ];
}

View File

@ -33,7 +33,7 @@ let
''; '';
killprocess = pkgs.writeShellScriptBin "killprocess.sh" '' 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" '' passmenu = pkgs.writeShellScriptBin "passmenu.sh" ''
@ -56,7 +56,7 @@ in
{ {
imports = [ imports = [
inputs.hyprland.homeManagerModules.default inputs.hyprland.homeManagerModules.default
../eww ../ags
../foot ../foot
../wob ../wob
../mako ../mako
@ -140,12 +140,12 @@ in
exec-once = ${pkgs.blueman}/bin/blueman-applet exec-once = ${pkgs.blueman}/bin/blueman-applet
exec-once = ${pkgs.networkmanagerapplet}/bin/nm-applet --indicator exec-once = ${pkgs.networkmanagerapplet}/bin/nm-applet --indicator
exec-once = ${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1 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-once = ${pkgs.ydotool}/bin/ydotoold
exec = ${pkgs.xorg.xrandr}/bin/xrandr --output ${rightMonitor.display} --primary exec = ${pkgs.xorg.xrandr}/bin/xrandr --output ${rightMonitor.display} --primary
exec = ${wob-voldaemon}/bin/wob-volumeindicator.sh; exec = ${wob-voldaemon}/bin/wob-volumeindicator.sh
exec = pkill eww; ${pkgs.eww-wayland}/bin/eww open-many bar0 bar1 exec = ags -q; ags
exec = pkill swww; sleep 2 && ${pkgs.swww}/bin/swww init && ${pkgs.swww}/bin/swww img $(cat ~/.cache/swww/wallpaper.txt) exec = pkill swww; sleep 2 && ${pkgs.swww}/bin/swww init && ${pkgs.swww}/bin/swww img $(cat ~/.cache/swww/wallpaper.txt)
#Set cursor #Set cursor
@ -211,6 +211,8 @@ in
layerrule = ignorezero, notifications layerrule = ignorezero, notifications
layerrule = blur, gtk-layer-shell layerrule = blur, gtk-layer-shell
layerrule = blur, bar-0
layerrule = blur, bar-1
windowrulev2 = fullscreen, class:^(hl2_linux)$ windowrulev2 = fullscreen, class:^(hl2_linux)$

View File

@ -25,7 +25,7 @@
bottles bottles
bottom bottom
calcurse calcurse
discord electron
gamescope_git gamescope_git
gimp gimp
gnome.gnome-boxes gnome.gnome-boxes
@ -43,6 +43,7 @@
mangohud mangohud
mesa-demos mesa-demos
nerdfonts nerdfonts
nodejs
noto-fonts-cjk-sans noto-fonts-cjk-sans
noto-fonts-cjk-serif noto-fonts-cjk-serif
openmw openmw
@ -64,6 +65,7 @@
vimv vimv
vulkan-tools vulkan-tools
vulkan-validation-layers vulkan-validation-layers
webcord
xdg-utils xdg-utils
]; ];
@ -80,7 +82,7 @@
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
programs.exa = { programs.eza = {
enable = true; enable = true;
}; };
@ -119,8 +121,8 @@
}; };
iconTheme = { iconTheme = {
package = pkgs.gruvbox-plus-icon-pack; package = pkgs.gruvbox-plus-icon-pack;
name = "GruvboxPlus"; name = "Gruvbox-Plus-Dark";
}; };
cursorTheme = { cursorTheme = {