diff --git a/flake.lock b/flake.lock index 8156bf3..6cafd50 100644 --- a/flake.lock +++ b/flake.lock @@ -142,11 +142,11 @@ }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1721793798, - "narHash": "sha256-HfdWMR5qC2GOeBMv+UxzVgzlJ6+f5vI9YSW/tTIvB/c=", + "lastModified": 1722571415, + "narHash": "sha256-ncnnr/wolRtH2d6fC00ACGA5QQHh4sG+wZSlssPB0eA=", "owner": "rycee", "repo": "nur-expressions", - "rev": "2687da27b1f740e281305fc95b76c076e7ca31b2", + "rev": "f262cf023d907df83a5487a0f981a319d44e1993", "type": "gitlab" }, "original": { @@ -227,11 +227,11 @@ ] }, "locked": { - "lastModified": 1721804110, - "narHash": "sha256-i4jINRazBKPqlaS+qhlP+kV/UHEq3vs5itfpblqu4ZM=", + "lastModified": 1722462338, + "narHash": "sha256-ss0G8t8RJVDewA3MyqgAlV951cWRK6EtVhVKEZ7J5LU=", "owner": "nix-community", "repo": "home-manager", - "rev": "af70fc502a15d7e1e4c5a4c4fc8e06c2ec561e0c", + "rev": "6e090576c4824b16e8759ebca3958c5b09659ee8", "type": "github" }, "original": { @@ -279,11 +279,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1721562059, - "narHash": "sha256-Tybxt65eyOARf285hMHIJ2uul8SULjFZbT9ZaEeUnP8=", + "lastModified": 1722421184, + "narHash": "sha256-/DJBI6trCeVnasdjUo9pbnodCLZcFqnVZiLUfqLH4jA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "68c9ed8bbed9dfce253cc91560bf9043297ef2fe", + "rev": "9f918d616c5321ad374ae6cb5ea89c9e04bf3e58", "type": "github" }, "original": { @@ -333,11 +333,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1721816671, - "narHash": "sha256-gk+ktb6smoyYmjM5Je2EYxyVLDrFNmRHDzf3iUoElJU=", + "lastModified": 1722295291, + "narHash": "sha256-3XpT9GMw50NCGT1Gd2YAwEjrEcFtDqnuQ7sRUcuU/Pc=", "owner": "danth", "repo": "stylix", - "rev": "c974c17cd089dcbfb16fbde028dd00bcc05e3f73", + "rev": "feb2973dfa8232c07efbd2b48f11a5cfa2276570", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 5a086b6..1159503 100644 --- a/flake.nix +++ b/flake.nix @@ -36,5 +36,3 @@ }; }; } - - diff --git a/home/ags/bar/README.md b/home/ags/bar/README.md deleted file mode 100644 index afc83aa..0000000 --- a/home/ags/bar/README.md +++ /dev/null @@ -1,15 +0,0 @@ - -# Starter Config - -if suggestions don't work, first make sure -you have TypeScript LSP working in your editor - -if you do not want typechecking only suggestions - -```json -// tsconfig.json -"checkJs": false -``` - -types are symlinked to: -/home/joy/.local/share/com.github.Aylur.ags/types diff --git a/home/ags/bar/config.js b/home/ags/bar/config.js deleted file mode 100644 index 4c0a30b..0000000 --- a/home/ags/bar/config.js +++ /dev/null @@ -1,219 +0,0 @@ -const hyprland = await Service.import("hyprland") -const notifications = await Service.import("notifications") -const mpris = await Service.import("mpris") -const audio = await Service.import("audio") -const battery = await Service.import("battery") -const systemtray = await Service.import("systemtray") - -const date = Variable("", { - poll: [1000, 'date "+%H:%M:%S %b %e."'], -}) - -// widgets can be only assigned as a child in one container -// so to make a reuseable widget, make it a function -// then you can simply instantiate one by calling it - -function Workspaces() { - const activeId = hyprland.active.workspace.bind("id") - const workspaces = hyprland.bind("workspaces") - .as(ws => ws.map(({ id }) => Widget.Button({ - on_clicked: () => hyprland.messageAsync(`dispatch workspace ${id}`), - child: Widget.Label(`${id}`), - class_name: activeId.as(i => `${i === id ? "focused" : ""}`), - }))) - - return Widget.Box({ - class_name: "workspaces", - children: workspaces, - }) -} - - -function ClientTitle() { - return Widget.Label({ - class_name: "client-title", - label: hyprland.active.client.bind("title"), - }) -} - - -function Clock() { - return Widget.Label({ - class_name: "clock", - label: date.bind(), - }) -} - - -// we don't need dunst or any other notification daemon -// because the Notifications module is a notification daemon itself -function Notification() { - const popups = notifications.bind("popups") - return Widget.Box({ - class_name: "notification", - visible: popups.as(p => p.length > 0), - children: [ - Widget.Icon({ - icon: "preferences-system-notifications-symbolic", - }), - Widget.Label({ - label: popups.as(p => p[0]?.summary || ""), - }), - ], - }) -} - - -function Media() { - const label = Utils.watch("", mpris, "player-changed", () => { - if (mpris.players[0]) { - const { track_artists, track_title } = mpris.players[0] - return `${track_artists.join(", ")} - ${track_title}` - } else { - return "Nothing is playing" - } - }) - - return Widget.Button({ - class_name: "media", - on_primary_click: () => mpris.getPlayer("")?.playPause(), - on_scroll_up: () => mpris.getPlayer("")?.next(), - on_scroll_down: () => mpris.getPlayer("")?.previous(), - child: Widget.Label({ label }), - }) -} - - -function Volume() { - const icons = { - 101: "overamplified", - 67: "high", - 34: "medium", - 1: "low", - 0: "muted", - } - - function getIcon() { - const icon = audio.speaker.is_muted ? 0 : [101, 67, 34, 1, 0].find( - threshold => threshold <= audio.speaker.volume * 100) - - return `audio-volume-${icons[icon]}-symbolic` - } - - const icon = Widget.Icon({ - icon: Utils.watch(getIcon(), audio.speaker, getIcon), - }) - - const slider = Widget.Slider({ - hexpand: true, - draw_value: false, - on_change: ({ value }) => audio.speaker.volume = value, - setup: self => self.hook(audio.speaker, () => { - self.value = audio.speaker.volume || 0 - }), - }) - - return Widget.Box({ - class_name: "volume", - css: "min-width: 180px", - children: [icon, slider], - }) -} - - -function BatteryLabel() { - const value = battery.bind("percent").as(p => p > 0 ? p / 100 : 0) - const icon = battery.bind("percent").as(p => - `battery-level-${Math.floor(p / 10) * 10}-symbolic`) - - return Widget.Box({ - class_name: "battery", - visible: battery.bind("available"), - children: [ - Widget.Icon({ icon }), - Widget.LevelBar({ - widthRequest: 140, - vpack: "center", - value, - }), - ], - }) -} - - -function SysTray() { - const items = systemtray.bind("items") - .as(items => items.map(item => Widget.Button({ - child: Widget.Icon({ icon: item.bind("icon") }), - on_primary_click: (_, event) => item.activate(event), - on_secondary_click: (_, event) => item.openMenu(event), - tooltip_markup: item.bind("tooltip_markup"), - }))) - - return Widget.Box({ - children: items, - }) -} - - -// layout of the bar -function Left() { - return Widget.Box({ - spacing: 8, - children: [ - Workspaces(), - ClientTitle(), - ], - }) -} - -function Center() { - return Widget.Box({ - spacing: 8, - children: [ - Media(), - Notification(), - ], - }) -} - -function Right() { - return Widget.Box({ - hpack: "end", - spacing: 8, - children: [ - Volume(), - BatteryLabel(), - Clock(), - SysTray(), - ], - }) -} - -function Bar(monitor = 0) { - return Widget.Window({ - name: `bar-${monitor}`, // name has to be unique - class_name: "bar", - monitor, - anchor: ["top", "left", "right"], - exclusivity: "exclusive", - child: Widget.CenterBox({ - start_widget: Left(), - center_widget: Center(), - end_widget: Right(), - }), - }) -} - -App.config({ - style: "./style.css", - windows: [ - Bar(), - - // you can call it, for each monitor - // Bar(0), - // Bar(1) - ], -}) - -export { } diff --git a/home/ags/bar/style.css b/home/ags/bar/style.css deleted file mode 100644 index 9ac7355..0000000 --- a/home/ags/bar/style.css +++ /dev/null @@ -1,40 +0,0 @@ -window.bar { - background-color: @theme_bg_color; - color: @theme_fg_color; -} - -button { - min-width: 0; - padding-top: 0; - padding-bottom: 0; - background-color: transparent; -} - -button:active { - background-color: @theme_selected_bg_color; -} - -button:hover { - border-bottom: 3px solid @theme_fg_color; -} - -label { - font-weight: bold; -} - -.workspaces button.focused { - border-bottom: 3px solid @theme_selected_bg_color; -} - -.client-title { - color: @theme_selected_bg_color; -} - -.notification { - color: yellow; -} - -levelbar block, -highlight { - min-height: 10px; -} diff --git a/home/ags/bar/tsconfig.json b/home/ags/bar/tsconfig.json deleted file mode 100644 index f03f2d1..0000000 --- a/home/ags/bar/tsconfig.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2022", - "module": "ES2022", - "lib": [ - "ES2022" - ], - "allowJs": true, - "checkJs": true, - "strict": true, - "noImplicitAny": false, - "baseUrl": ".", - "typeRoots": [ - "./types" - ], - "skipLibCheck": true - } -} \ No newline at end of file diff --git a/home/ags/bar/types b/home/ags/bar/types deleted file mode 120000 index 57e271e..0000000 --- a/home/ags/bar/types +++ /dev/null @@ -1 +0,0 @@ -/home/joy/.local/share/com.github.Aylur.ags/types \ No newline at end of file diff --git a/home/ags/default.nix b/home/ags/default.nix index c51e97c..c8eb9fe 100644 --- a/home/ags/default.nix +++ b/home/ags/default.nix @@ -4,5 +4,6 @@ programs.ags = { enable = true; + configDir = ./bar; }; } diff --git a/home/default.nix b/home/default.nix index 78e6209..e01ff90 100644 --- a/home/default.nix +++ b/home/default.nix @@ -15,5 +15,4 @@ ./hyprland inputs.ags.homeManagerModules.default ]; - } diff --git a/home/hyprland/default.nix b/home/hyprland/default.nix index b436417..b7fe2d8 100644 --- a/home/hyprland/default.nix +++ b/home/hyprland/default.nix @@ -11,6 +11,8 @@ swappy ]; + services.cliphist.enable = true; + wayland.windowManager.hyprland = { enable = true; @@ -22,23 +24,15 @@ preserve_split = true; }; - monitor = [ - "DP-1,2560x1440@165.00Hz,0x0,1,bitdepth,10" - ]; - - env = [ "HYPRCURSOR_THEME = Bibata-Modern-Ice" "HYPRCURSOR_SIZE = 24" ]; exec-once = [ - "ags -c ~/nix/home/ags/bar/config.js &" - "wl-paste --type text --watch cliphist store" - "wl-paste --type image --watch cliphist store" + "ags" ]; - bind = [ # launch Apps diff --git a/hosts/desktop/default.nix b/hosts/desktop/default.nix index 25f3e2d..77da026 100644 --- a/hosts/desktop/default.nix +++ b/hosts/desktop/default.nix @@ -1,5 +1,6 @@ { inputs, ... }: { + programs.steam.enable = true; networking.hostName = "desktop"; networking.networkmanager.enable = true; diff --git a/modules/misc/default.nix b/modules/misc/default.nix index 6c21620..51dd572 100644 --- a/modules/misc/default.nix +++ b/modules/misc/default.nix @@ -17,7 +17,6 @@ virtualisation.docker.rootless.enable = true; virtualisation.docker.enable = true; nixpkgs.config.allowUnfree = true; - programs.steam.enable = true; programs.hyprland.enable = true; environment.sessionVariables.NIXOS_OZONE_WL = "1"; users.defaultUserShell = pkgs.zsh; @@ -27,4 +26,5 @@ time.timeZone = "Europe/Zurich"; system.stateVersion = "23.11"; services.hardware.openrgb.enable = true; + # home-manager.backupFileExtension = "backup"; } diff --git a/modules/packages/default.nix b/modules/packages/default.nix index bf57283..ec80559 100644 --- a/modules/packages/default.nix +++ b/modules/packages/default.nix @@ -58,9 +58,9 @@ appimage-run yt-dlp distrobox - #vim font-awesome #laptop + alsa-utils brightnessctl lm_sensors ]; diff --git a/modules/syncthing/default.nix b/modules/syncthing/default.nix index 1cc7d49..07fb19e 100644 --- a/modules/syncthing/default.nix +++ b/modules/syncthing/default.nix @@ -5,7 +5,6 @@ syncthing = { enable = true; user = "joy"; - dataDir = "/home/joy/"; configDir = "/home/joy/.config/syncthing"; }; };