aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreric.marin <maarin.eric@gmail.com>2024-12-26 14:33:06 +0100
committereric.marin <maarin.eric@gmail.com>2024-12-30 21:07:42 +0100
commit4de5a217c25fe83bb54063f8d842b78c9e6d7fb3 (patch)
tree0460bc0600492324f111524dfdff1ef85c9fbf8e
parentee2b01a3fff043a8b977385227c2659bbcf2e59a (diff)
downloaddotfiles-4de5a217c25fe83bb54063f8d842b78c9e6d7fb3.tar.gz
dotfiles-4de5a217c25fe83bb54063f8d842b78c9e6d7fb3.zip
wallust
-rw-r--r--.gitignore37
-rw-r--r--ags/README.md15
-rw-r--r--ags/app.ts28
-rw-r--r--ags/config.js6
-rw-r--r--ags/env.d.ts21
-rw-r--r--ags/modules/applauncher.js107
-rw-r--r--ags/modules/bar.js131
-rw-r--r--ags/package.json6
-rw-r--r--ags/style.scss27
-rw-r--r--ags/tsconfig.json28
l---------ags/types1
-rw-r--r--ags/widget/Bar.tsx53
-rw-r--r--fish/config.fish13
-rw-r--r--fish/fish_plugins1
-rw-r--r--fish/fish_variables47
-rw-r--r--fish/themes/Catppuccin Macchiato.theme30
-rw-r--r--foot/foot.ini42
-rwxr-xr-xfuzzel/powermenu.sh18
-rw-r--r--hypr/hypridle.conf14
-rw-r--r--hypr/hyprland.conf179
-rw-r--r--hypr/macchiato.conf61
-rw-r--r--niri/config.kdl246
-rw-r--r--nvim/lua/plugins/catppuccin.lua58
-rw-r--r--nvim/lua/plugins/lualine.lua2
-rw-r--r--nvim/lua/plugins/neopywal.lua18
-rw-r--r--nvim/lua/plugins/nvim-cmp.lua4
-rw-r--r--nvim/lua/plugins/nvim-treesitter.lua2
-rw-r--r--nvim/lua/plugins/telescope.lua3
-rwxr-xr-xscripts/powermenu20
-rwxr-xr-xscripts/set_background16
-rwxr-xr-xscripts/set_random14
-rwxr-xr-xscripts/wallpapermenu11
l---------systemd/user/niri.service.wants/foot-server.service1
l---------systemd/user/niri.service.wants/swww.service1
l---------systemd/user/niri.service.wants/wbg.service1
-rw-r--r--systemd/user/swww.service (renamed from systemd/user/wbg.service)2
-rw-r--r--wallust/templates/foot34
-rw-r--r--wallust/templates/fuzzel (renamed from fuzzel/fuzzel.ini)26
-rw-r--r--wallust/templates/hyprlock (renamed from hypr/hyprlock.conf)21
-rw-r--r--wallust/templates/mako (renamed from mako/config)13
-rw-r--r--wallust/templates/niri208
-rw-r--r--wallust/templates/nvim19
-rw-r--r--wallust/wallust.toml24
-rw-r--r--waybar/config9
44 files changed, 567 insertions, 1051 deletions
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index eced5a1..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,37 +0,0 @@
-rofi
-lazygit
-dconf
-pulse
-user-dirs.dirs
-user-dirs.locale
-QtProject.conf
-VirtualBox
-Electron
-btop
-draw.io
-eww
-mimeapps.list
-spotify
-spicetify
-obsidian
-heroic
-godot
-go/telemetry/local
-git
-btop
-fastfetch
-paru
-superfile
-tlpui
-wireshark
-torbrowser
-termshark
-google-chrome
-discord
-bluetuith
-Pinta
-cabal
-ghc
-kathara.conf
-xdg-terminals.list
-nvim/lazy-lock.json
diff --git a/ags/README.md b/ags/README.md
deleted file mode 100644
index 71563ed..0000000
--- a/ags/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:
-/usr/share/com.github.Aylur.ags/types
diff --git a/ags/app.ts b/ags/app.ts
new file mode 100644
index 0000000..b485250
--- /dev/null
+++ b/ags/app.ts
@@ -0,0 +1,28 @@
+import { App } from "astal/gtk3"
+import { exec } from "astal/process"
+
+import Bar from "./widget/Bar"
+
+function updateStyle() {
+ App.reset_css()
+ exec(`sass ./style.scss /tmp/style.css`)
+ App.apply_css("/tmp/style.css")
+}
+
+App.start({
+ requestHandler(request, res) {
+ switch (request) {
+ case "reload":
+ updateStyle()
+ res("style reloaded")
+ break;
+ default:
+ res("unknown command")
+ break;
+ }
+ },
+ main() {
+ updateStyle()
+ App.get_monitors().map(Bar)
+ },
+})
diff --git a/ags/config.js b/ags/config.js
deleted file mode 100644
index cc69e2e..0000000
--- a/ags/config.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import { applauncher } from "./modules/applauncher.js"
-import { Bar } from "./modules/bar.js"
-
-App.config({
- windows: [applauncher, Bar(0)],
-})
diff --git a/ags/env.d.ts b/ags/env.d.ts
new file mode 100644
index 0000000..467c0a4
--- /dev/null
+++ b/ags/env.d.ts
@@ -0,0 +1,21 @@
+declare const SRC: string
+
+declare module "inline:*" {
+ const content: string
+ export default content
+}
+
+declare module "*.scss" {
+ const content: string
+ export default content
+}
+
+declare module "*.blp" {
+ const content: string
+ export default content
+}
+
+declare module "*.css" {
+ const content: string
+ export default content
+}
diff --git a/ags/modules/applauncher.js b/ags/modules/applauncher.js
deleted file mode 100644
index f380185..0000000
--- a/ags/modules/applauncher.js
+++ /dev/null
@@ -1,107 +0,0 @@
-const { query } = await Service.import("applications")
-const WINDOW_NAME = "applauncher"
-
-/** @param {import('resource:///com/github/Aylur/ags/service/applications.js').Application} app */
-const AppItem = app => Widget.Button({
- on_clicked: () => {
- App.closeWindow(WINDOW_NAME)
- app.launch()
- },
- attribute: { app },
- child: Widget.Box({
- children: [
- Widget.Icon({
- icon: app.icon_name || "",
- size: 42,
- }),
- Widget.Label({
- class_name: "title",
- label: app.name,
- xalign: 0,
- vpack: "center",
- truncate: "end",
- }),
- ],
- }),
-})
-
-const Applauncher = ({ width = 500, height = 500, spacing = 12 }) => {
- // list of application buttons
- let applications = query("").map(AppItem)
-
- // container holding the buttons
- const list = Widget.Box({
- vertical: true,
- children: applications,
- spacing,
- })
-
- // repopulate the box, so the most frequent apps are on top of the list
- function repopulate() {
- applications = query("").map(AppItem)
- list.children = applications
- }
-
- // search entry
- const entry = Widget.Entry({
- hexpand: true,
- css: `margin-bottom: ${spacing}px;`,
-
- // to launch the first item on Enter
- on_accept: () => {
- // make sure we only consider visible (searched for) applications
- const results = applications.filter((item) => item.visible);
- if (results[0]) {
- App.toggleWindow(WINDOW_NAME)
- results[0].attribute.app.launch()
- }
- },
-
- // filter out the list
- on_change: ({ text }) => applications.forEach(item => {
- item.visible = item.attribute.app.match(text ?? "")
- }),
- })
-
- return Widget.Box({
- vertical: true,
- css: `margin: ${spacing * 2}px;`,
- children: [
- entry,
-
- // wrap the list in a scrollable
- Widget.Scrollable({
- hscroll: "never",
- css: `min-width: ${width}px;`
- + `min-height: ${height}px;`,
- child: list,
- }),
- ],
- setup: self => self.hook(App, (_, windowName, visible) => {
- if (windowName !== WINDOW_NAME)
- return
-
- // when the applauncher shows up
- if (visible) {
- repopulate()
- entry.text = ""
- entry.grab_focus()
- }
- }),
- })
-}
-
-// there needs to be only one instance
-export const applauncher = Widget.Window({
- name: WINDOW_NAME,
- setup: self => self.keybind("Escape", () => {
- App.closeWindow(WINDOW_NAME)
- }),
- visible: false,
- keymode: "exclusive",
- child: Applauncher({
- width: 500,
- height: 500,
- spacing: 12,
- }),
-})
diff --git a/ags/modules/bar.js b/ags/modules/bar.js
deleted file mode 100644
index 28fdaee..0000000
--- a/ags/modules/bar.js
+++ /dev/null
@@ -1,131 +0,0 @@
-const hyprland = await Service.import("hyprland")
-const audio = await Service.import("audio")
-const battery = await Service.import("battery")
-const network = await Service.import("network")
-
-const hour = Variable("", {
- poll: [60000, 'date "+%H:%M"']
-})
-
-function IconLabel(icon, label) {
- return [
- Widget.Icon({ icon }),
- Widget.Label({ label }),
- ]
-}
-
-function Workspaces() {
- const active = 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: active.as(i => `${i === id ? "focused" : ""}`)
- })))
- return Widget.Box({
- class_name: "workspaces",
- children: workspaces,
- })
-}
-
-//function SysTray() {
-//
-//}
-
-function Clock() {
- return Widget.Label({
- class_name: "clock",
- label: hour.bind(),
- })
-}
-
-function Network() {
- const label = network.wifi.bind("strength").as(s => ` ${s}`)
- return Widget.Box({
- class_name: "network",
- children: [
- 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 = Utils.watch(getIcon(), audio.speaker, getIcon)
- const label = audio.speaker.bind("volume").as(v => ` ${Math.floor(v * 100 + 0.01)}%`)
-
- return Widget.Box({
- class_name: "volume",
- children: IconLabel(icon, label)
- })
-}
-
-function Battery() {
- const label = battery.bind("percent").as(p => ` ${p}%`)
- const icon = battery.bind("percent").as(p =>
- `battery-level-${Math.floor(p / 10) * 10}-symbolic`
- )
-
- return Widget.Box({
- class_name: "battery",
- children: IconLabel(icon, label)
- })
-}
-
-function Left() {
- return Widget.Box({
- spacing: 10,
- children: [
- Workspaces(),
- //SysTray(),
- ]
- })
-}
-function Center() {
- return Widget.Box({
- spacing: 10,
- children: [
- Clock(),
- ]
- })
-}
-function Right() {
- return Widget.Box({
- hpack: "end",
- spacing: 10,
- children: [
- Network(),
- Volume(),
- Battery(),
- ]
- })
-}
-
-export function Bar(monitor = 0) {
- return Widget.Window({
- name: `bar-${monitor}`,
- class_name: "bar",
- monitor,
- anchor: ["top", "left", "right"],
- exclusivity: "exclusive",
- child: Widget.CenterBox({
- start_widget: Left(),
- center_widget: Center(),
- end_widget: Right(),
- }),
- })
-}
-
diff --git a/ags/package.json b/ags/package.json
new file mode 100644
index 0000000..44226f2
--- /dev/null
+++ b/ags/package.json
@@ -0,0 +1,6 @@
+{
+ "name": "astal-shell",
+ "dependencies": {
+ "astal": "/usr/share/astal/gjs"
+ }
+}
diff --git a/ags/style.scss b/ags/style.scss
index df7b071..7ad03be 100644
--- a/ags/style.scss
+++ b/ags/style.scss
@@ -1,5 +1,26 @@
-$base-color: #c6538c;
+// https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/gtk/theme/Adwaita/_colors-public.scss
+$fg-color: #{"@theme_fg_color"};
+$bg-color: #{"@theme_bg_color"};
-window {
- background-color: $base-color;
+window.Bar {
+ background: transparent;
+ color: $fg-color;
+ font-weight: bold;
+
+ >centerbox {
+ background: $bg-color;
+ border-radius: 10px;
+ margin: 8px;
+ }
+
+ >box {
+ background: $bg-color;
+ border-radius: 10px;
+ margin: 8px;
+ }
+
+ button {
+ border-radius: 8px;
+ margin: 2px;
+ }
}
diff --git a/ags/tsconfig.json b/ags/tsconfig.json
index 6860767..9471e35 100644
--- a/ags/tsconfig.json
+++ b/ags/tsconfig.json
@@ -1,18 +1,14 @@
{
- "compilerOptions": {
- "target": "ES2022",
- "module": "ES2022",
- "lib": [
- "ES2022"
- ],
- "allowJs": true,
- "checkJs": true,
- "strict": true,
- "noImplicitAny": false,
- "baseUrl": ".",
- "typeRoots": [
- "./types"
- ],
- "skipLibCheck": true
- }
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "compilerOptions": {
+ "experimentalDecorators": true,
+ "strict": true,
+ "target": "ES2022",
+ "module": "ES2022",
+ "moduleResolution": "Bundler",
+ // "checkJs": true,
+ // "allowJs": true,
+ "jsx": "react-jsx",
+ "jsxImportSource": "astal/gtk3",
+ }
}
diff --git a/ags/types b/ags/types
deleted file mode 120000
index a8e3f04..0000000
--- a/ags/types
+++ /dev/null
@@ -1 +0,0 @@
-/usr/share/com.github.Aylur.ags/types \ No newline at end of file
diff --git a/ags/widget/Bar.tsx b/ags/widget/Bar.tsx
new file mode 100644
index 0000000..d994797
--- /dev/null
+++ b/ags/widget/Bar.tsx
@@ -0,0 +1,53 @@
+import { App, Astal, Gtk, Gdk, Widget } from "astal/gtk3"
+import { Variable } from "astal"
+import { BoxProps, CenterBoxProps } from "astal/gtk3/widget"
+
+const { TOP, LEFT, RIGHT, BOTTOM } = Astal.WindowAnchor
+const { START, CENTER, END } = Gtk.Align
+
+const time = Variable("").poll(1000, "date")
+
+function VerticalCenterBox(props: CenterBoxProps) {
+ return <centerbox
+ {...props}
+ vertical
+ />
+}
+
+function VerticalBox(props: BoxProps) {
+ return <box
+ {...props}
+ vertical
+ />
+}
+
+export default function Bar(gdkmonitor: Gdk.Monitor) {
+ return <window
+ name="Bar"
+ className="Bar"
+ gdkmonitor={gdkmonitor}
+ exclusivity={Astal.Exclusivity.EXCLUSIVE}
+ anchor={TOP | LEFT | BOTTOM}
+ application={App}>
+ <VerticalCenterBox>
+ <button
+ onClicked="echo hello"
+ halign={CENTER}
+ valign={START}
+ >
+ Welcome to AGS!
+ </button>
+ <VerticalBox>
+ <label>CIAO</label>
+ <label>CIAO</label>
+ </VerticalBox>
+ <button
+ onClicked={() => print("hello")}
+ halign={CENTER}
+ valign={END}
+ >
+ <label label={time()} />
+ </button>
+ </VerticalCenterBox>
+ </window>
+}
diff --git a/fish/config.fish b/fish/config.fish
index 3711bc3..616d877 100644
--- a/fish/config.fish
+++ b/fish/config.fish
@@ -5,32 +5,23 @@ function fish_prompt
end
function start_niri
- # Make sure there's no already running session.
if systemctl --user -q is-active niri.service
echo 'A Niri session is already running.'
exit 1
end
- # Reset failed state of all user units
systemctl --user reset-failed
- # Import the login manager environment.
- # systemctl --user import-environment
- # DBus activation environment is independent from systemd. While most of
- # dbus-activated services are already using `SystemdService` directive, some
- # still don't and thus we should set the dbus environment with a separate
- # command.
dbus-update-activation-environment --all
- # Start niri and wait for it to terminate.
systemctl --user --wait start niri.service
- # Force stop of graphical-session.target.
systemctl --user start --job-mode=replace-irreversibly niri-shutdown.target
- # Unset environment that we've set.
systemctl --user unset-environment WAYLAND_DISPLAY XDG_SESSION_TYPE XDG_CURRENT_DESKTOP NIRI_SOCKET
end
fish_add_path -p ~/.cargo/bin ~/.ghcup/bin
set -U fish_greeting
+set EDITOR "neovim"
if status is-login
start_niri
kill $fish_pid
end
+
diff --git a/fish/fish_plugins b/fish/fish_plugins
deleted file mode 100644
index 797cf45..0000000
--- a/fish/fish_plugins
+++ /dev/null
@@ -1 +0,0 @@
-catppuccin/fish
diff --git a/fish/fish_variables b/fish/fish_variables
deleted file mode 100644
index 8bdfbd6..0000000
--- a/fish/fish_variables
+++ /dev/null
@@ -1,47 +0,0 @@
-# This file contains fish universal variable definitions.
-# VERSION: 3.0
-SETUVAR __fish_initialized:3400
-SETUVAR _fisher_catppuccin_2F_fish_files:\x7e/\x2econfig/fish/themes/Catppuccin\x20Frappe\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Latte\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Macchiato\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Mocha\x2etheme
-SETUVAR _fisher_plugins:catppuccin/fish
-SETUVAR _fisher_upgraded_to_4_4:\x1d
-SETUVAR fish_color_autosuggestion:6e738d
-SETUVAR fish_color_cancel:ed8796
-SETUVAR fish_color_command:8aadf4
-SETUVAR fish_color_comment:8087a2
-SETUVAR fish_color_cwd:eed49f
-SETUVAR fish_color_cwd_root:red
-SETUVAR fish_color_end:f5a97f
-SETUVAR fish_color_error:ed8796
-SETUVAR fish_color_escape:ee99a0
-SETUVAR fish_color_gray:6e738d
-SETUVAR fish_color_history_current:\x2d\x2dbold
-SETUVAR fish_color_host:8aadf4
-SETUVAR fish_color_host_remote:a6da95
-SETUVAR fish_color_keyword:ed8796
-SETUVAR fish_color_normal:cad3f5
-SETUVAR fish_color_operator:f5bde6
-SETUVAR fish_color_option:a6da95
-SETUVAR fish_color_param:f0c6c6
-SETUVAR fish_color_quote:a6da95
-SETUVAR fish_color_redirection:f5bde6
-SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d363a4f
-SETUVAR fish_color_selection:\x2d\x2dbackground\x3d363a4f
-SETUVAR fish_color_status:ed8796
-SETUVAR fish_color_user:8bd5ca
-SETUVAR fish_color_valid_path:\x2d\x2dunderline
-SETUVAR fish_greeting:\x1d
-SETUVAR fish_key_bindings:fish_default_key_bindings
-SETUVAR fish_pager_color_background:\x1d
-SETUVAR fish_pager_color_completion:cad3f5
-SETUVAR fish_pager_color_description:6e738d
-SETUVAR fish_pager_color_prefix:f5bde6
-SETUVAR fish_pager_color_progress:6e738d
-SETUVAR fish_pager_color_secondary_background:\x1d
-SETUVAR fish_pager_color_secondary_completion:\x1d
-SETUVAR fish_pager_color_secondary_description:\x1d
-SETUVAR fish_pager_color_secondary_prefix:\x1d
-SETUVAR fish_pager_color_selected_background:\x1d
-SETUVAR fish_pager_color_selected_completion:\x1d
-SETUVAR fish_pager_color_selected_description:\x1d
-SETUVAR fish_pager_color_selected_prefix:\x1d
-SETUVAR fish_user_paths:/home/eric/\x2ecargo/bin\x1e/home/eric/\x2eghcup/bin
diff --git a/fish/themes/Catppuccin Macchiato.theme b/fish/themes/Catppuccin Macchiato.theme
deleted file mode 100644
index e90b630..0000000
--- a/fish/themes/Catppuccin Macchiato.theme
+++ /dev/null
@@ -1,30 +0,0 @@
-# name: 'Catppuccin macchiato'
-# url: 'https://github.com/catppuccin/fish'
-# preferred_background: 24273a
-
-fish_color_normal cad3f5
-fish_color_command 8aadf4
-fish_color_param f0c6c6
-fish_color_keyword ed8796
-fish_color_quote a6da95
-fish_color_redirection f5bde6
-fish_color_end f5a97f
-fish_color_comment 8087a2
-fish_color_error ed8796
-fish_color_gray 6e738d
-fish_color_selection --background=363a4f
-fish_color_search_match --background=363a4f
-fish_color_option a6da95
-fish_color_operator f5bde6
-fish_color_escape ee99a0
-fish_color_autosuggestion 6e738d
-fish_color_cancel ed8796
-fish_color_cwd eed49f
-fish_color_user 8bd5ca
-fish_color_host 8aadf4
-fish_color_host_remote a6da95
-fish_color_status ed8796
-fish_pager_color_progress 6e738d
-fish_pager_color_prefix f5bde6
-fish_pager_color_completion cad3f5
-fish_pager_color_description 6e738d
diff --git a/foot/foot.ini b/foot/foot.ini
deleted file mode 100644
index 2abeff8..0000000
--- a/foot/foot.ini
+++ /dev/null
@@ -1,42 +0,0 @@
-font=Hack Nerd Font:size=10,Noto Color Emoji:size=10,Sazanami Gothic:size=10
-pad=15x15
-dpi-aware=yes
-term=foot-extra
-
-[cursor]
-style=block
-blink=yes
-
-[scrollback]
-indicator-position=none
-
-[colors]
-foreground=cad3f5
-background=24273a
-
-regular0=494d64
-regular1=ed8796
-regular2=a6da95
-regular3=eed49f
-regular4=8aadf4
-regular5=f5bde6
-regular6=8bd5ca
-regular7=b8c0e0
-
-bright0=5b6078
-bright1=ed8796
-bright2=a6da95
-bright3=eed49f
-bright4=8aadf4
-bright5=f5bde6
-bright6=8bd5ca
-bright7=a5adcb
-
-selection-foreground=cad3f5
-selection-background=454a5f
-
-search-box-no-match=181926 ed8796
-search-box-match=cad3f5 363a4f
-
-jump-labels=181926 f5a97f
-urls=8aadf4
diff --git a/fuzzel/powermenu.sh b/fuzzel/powermenu.sh
deleted file mode 100755
index 22b17c3..0000000
--- a/fuzzel/powermenu.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#! /bin/sh
-
-poweroff=" Poweroff"
-reboot=" Reboot"
-lock=" Lock"
-exit="󰗼 Exit"
-
-chosen=$(echo -e "$poweroff\n$reboot\n$lock\n$exit" | fuzzel --dmenu --lines 4 --width 15)
-
-case "$chosen" in
- "$poweroff") shutdown now ;;
- "$reboot") reboot ;;
- "$lock") loginctl lock-session ;;
- # "$exit") hyprctl dispatch exit ;;
- "$exit") niri msg action quit ;;
- *) exit 1 ;;
-esac
-
diff --git a/hypr/hypridle.conf b/hypr/hypridle.conf
index 1389d93..e258a0c 100644
--- a/hypr/hypridle.conf
+++ b/hypr/hypridle.conf
@@ -1,10 +1,14 @@
general {
- lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
- before_sleep_cmd = loginctl lock-session # lock before suspend.
- after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
+ lock_cmd = pidof hyprlock || hyprlock
}
listener {
- timeout = 300
- on-timeout = loginctl lock-session
+ timeout = 300
+ on-timeout = brightnessctl -se set 10%
+ on-resume = brightnessctl -r
+}
+
+listener {
+ timeout = 450
+ on-timeout = loginctl lock-session && niri msg action power-off-monitors
}
diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf
deleted file mode 100644
index 686d14d..0000000
--- a/hypr/hyprland.conf
+++ /dev/null
@@ -1,179 +0,0 @@
-# This is an example Hyprland config file.
-#
-# Refer to the wiki for more information.
-
-#
-# Please note not all available settings / options are set here.
-# For a full list, see the wiki
-#
-
-# See https://wiki.hyprland.org/Configuring/Monitors/
-monitor = eDP-1, 2560x1600@60, 0x0, 2
-monitor = HDMI-A-1, preferred, auto, 1, mirror, eDP-1
-# monitor = HDMI-A-1, 0x0, 0x0, 2
-
-
-# See https://wiki.hyprland.org/Configuring/Keywords/ for more
-
-# Execute your favorite apps at launch
-exec-once = hypridle & foot -s & waybar & wbg Pictures/Backgrounds/Mandelbrot/mandelbrot_full_red.png & dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
-
-# Source a file (multi-file configs)
-source = ~/.config/hypr/macchiato.conf
-
-# Set programs that you use
-$terminal = footclient
-$applauncher = fuzzel --counter
-$powermenu = .config/fuzzel/powermenu.sh
-
-# Some default env vars.
-env = XCURSOR_SIZE,24
-env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that
-
-# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
-input {
- kb_layout = it
-
- follow_mouse = 1
- mouse_refocus = false
-
- touchpad {
- natural_scroll = false
- disable_while_typing = false
- }
-
- sensitivity = -0.125 # -1.0 - 1.0, 0 means no modification.
-}
-
-general {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
-
- gaps_in = 5
- gaps_out = 10
- border_size = 1
- col.active_border = $red
- col.inactive_border = $surface0
-
- layout = dwindle
-
- # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
- allow_tearing = false
-}
-
-decoration {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
-
- rounding = 10
- # drop_shadow = false
-}
-
-animations {
- enabled = true
-
- # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
-
- bezier = myBezier, 0.05, 0.9, 0.1, 1.05
-
- animation = windows, 1, 7, myBezier
- animation = windowsOut, 1, 7, default, popin 80%
- animation = border, 1, 10, default
- animation = borderangle, 1, 8, default
- animation = fade, 1, 7, default
- animation = workspaces, 1, 6, default
-}
-
-dwindle {
- # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
- pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
- preserve_split = true # you probably want this
- force_split = 2
-}
-
-master {
- # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
- new_status = "master"
-}
-
-gestures {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
- workspace_swipe = true
-}
-
-misc {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
- disable_hyprland_logo = true
- vfr = true
-}
-
-xwayland {
- force_zero_scaling = true
-}
-
-# Example windowrule v1
-# windowrule = float, ^(kitty)$
-# Example windowrule v2
-# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
-# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
-windowrulev2 = tile, title: ^(Godot)$
-windowrulev2 = float, class: steam, title: ^(?!(Steam)$).*$
-windowrulev2 = fullscreen, class: oolite
-
-layerrule = animation popin 45%, launcher
-
-# See https://wiki.hyprland.org/Configuring/Keywords/ for more
-$mainMod = SUPER
-
-# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
-bind = $mainMod, Return, exec, $terminal
-bind = $mainMod, C, killactive
-bind = $mainMod, Escape, exec, $powermenu
-bind = $mainMod, V, togglefloating
-bind = $mainMod, space, exec, $applauncher
-bind = $mainMod, P, pseudo, # dwindle
-bind = $mainMod, J, togglesplit, # dwindle
-bind = $mainMod SHIFT, F, fullscreen, 1
-bind = $mainMod, F, fullscreen, 0
-bind = , Print, exec, grimblast copy
-bind = SHIFT, Print, exec, grimblast copy active
-
-# Move focus with mainMod + arrow keys
-bind = $mainMod, left, movefocus, l
-bind = $mainMod, right, movefocus, r
-bind = $mainMod, up, movefocus, u
-bind = $mainMod, down, movefocus, d
-
-# Switch workspaces with mainMod + [1-5]
-bind = $mainMod, 1, workspace, 1
-bind = $mainMod, 2, workspace, 2
-bind = $mainMod, 3, workspace, 3
-bind = $mainMod, 4, workspace, 4
-bind = $mainMod, 5, workspace, 5
-
-# Move active window to a workspace with mainMod + SHIFT + [1-5]
-bind = $mainMod SHIFT, 1, movetoworkspace, 1
-bind = $mainMod SHIFT, 2, movetoworkspace, 2
-bind = $mainMod SHIFT, 3, movetoworkspace, 3
-bind = $mainMod SHIFT, 4, movetoworkspace, 4
-bind = $mainMod SHIFT, 5, movetoworkspace, 5
-
-# Example special workspace (scratchpad)
-bind = $mainMod, S, togglespecialworkspace, magic
-bind = $mainMod SHIFT, S, movetoworkspace, special:magic
-
-# Move/resize windows with mainMod + LMB/RMB and dragging
-bindm = $mainMod, mouse:272, movewindow
-bindm = $mainMod, mouse:273, resizewindow
-
-# Monitor backlight
-bind = , XF86MonBrightnessUp, exec, brightnessctl s +5%
-bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%-
-
-# Volume Media Control
-bind = , XF86AudioRaiseVolume, exec, pamixer -i 5
-bind = , XF86AudioLowerVolume, exec, pamixer -d 5
-bind = , XF86AudioMicMute, exec, pamixer --default-source -m
-bind = , XF86AudioMute, exec, pamixer -t
-bind = , XF86AudioPlay, exec, playerctl play-pause
-bind = , XF86AudioPause, exec, playerctl play-pause
-bind = , XF86AudioNext, exec, playerctl next
-bind = , XF86AudioPrev, exec, playerctl previous
diff --git a/hypr/macchiato.conf b/hypr/macchiato.conf
deleted file mode 100644
index 0a90d22..0000000
--- a/hypr/macchiato.conf
+++ /dev/null
@@ -1,61 +0,0 @@
-$rosewaterAlpha = f4dbd6
-$flamingoAlpha = f0c6c6
-$pinkAlpha = f5bde6
-$mauveAlpha = c6a0f6
-$redAlpha = ed8796
-$maroonAlpha = ee99a0
-$peachAlpha = f5a97f
-$yellowAlpha = eed49f
-$greenAlpha = a6da95
-$tealAlpha = 8bd5ca
-$skyAlpha = 91d7e3
-$sapphireAlpha = 7dc4e4
-$blueAlpha = 8aadf4
-$lavenderAlpha = b7bdf8
-
-$textAlpha = cad3f5
-$subtext1Alpha = b8c0e0
-$subtext0Alpha = a5adcb
-
-$overlay2Alpha = 939ab7
-$overlay1Alpha = 8087a2
-$overlay0Alpha = 6e738d
-
-$surface2Alpha = 5b6078
-$surface1Alpha = 494d64
-$surface0Alpha = 363a4f
-
-$baseAlpha = 24273a
-$mantleAlpha = 1e2030
-$crustAlpha = 181926
-
-$rosewater = 0xfff4dbd6
-$flamingo = 0xfff0c6c6
-$pink = 0xfff5bde6
-$mauve = 0xffc6a0f6
-$red = 0xffed8796
-$maroon = 0xffee99a0
-$peach = 0xfff5a97f
-$yellow = 0xffeed49f
-$green = 0xffa6da95
-$teal = 0xff8bd5ca
-$sky = 0xff91d7e3
-$sapphire = 0xff7dc4e4
-$blue = 0xff8aadf4
-$lavender = 0xffb7bdf8
-
-$text = 0xffcad3f5
-$subtext1 = 0xffb8c0e0
-$subtext0 = 0xffa5adcb
-
-$overlay2 = 0xff939ab7
-$overlay1 = 0xff8087a2
-$overlay0 = 0xff6e738d
-
-$surface2 = 0xff5b6078
-$surface1 = 0xff494d64
-$surface0 = 0xff363a4f
-
-$base = 0xff24273a
-$mantle = 0xff1e2030
-$crust = 0xff181926
diff --git a/niri/config.kdl b/niri/config.kdl
deleted file mode 100644
index 39ca280..0000000
--- a/niri/config.kdl
+++ /dev/null
@@ -1,246 +0,0 @@
-environment {
- QT_QPA_PLATFORM "wayland"
- DISPLAY ":0"
-}
-hotkey-overlay {
- skip-at-startup
-}
-cursor {
- // xcursor-theme "breeze_cursors"
- // xcursor-size 48
-
- // hide-when-typing
- hide-after-inactive-ms 5000
-}
-prefer-no-csd
-screenshot-path null
-
-input {
- keyboard {
- xkb {
- layout "it"
- }
- }
-
- touchpad {
- tap
- natural-scroll
- }
-
- mouse {
- // off
- // natural-scroll
- // accel-speed 0.2
- // accel-profile "flat"
- // scroll-factor 1.0
- // scroll-method "no-scroll"
- // scroll-button 273
- // left-handed
- // middle-emulation
- }
-
- // disable-power-key-handling
- // warp-mouse-to-focus
- // focus-follows-mouse max-scroll-amount="0%"
- // workspace-auto-back-and-forth
-}
-
-output "eDP-1" {
- // off
- mode "2560x1600@60.000"
- scale 2.0
- transform "normal"
- position x=0 y=0
-}
-
-output "HDMI-A-1" {
-
-}
-
-layout {
- gaps 5
- center-focused-column "never"
- // empty-workspace-above-first
-
- preset-column-widths {
- proportion 0.33333
- proportion 0.5
- proportion 0.66667
- }
- default-column-width { proportion 0.5; }
-
- preset-window-heights {
- proportion 0.33333
- proportion 0.5
- proportion 0.66667
- }
-
- focus-ring {
- off
- }
-
- border {
- // off
- width 1
- active-color "#ed8796"
- inactive-color "#363a4f"
- }
-
- struts {
- left 5
- right 5
- top 0
- bottom 5
- }
-}
-
-animations {
- // off
-}
-
-window-rule {
- match app-id=r#"^org\.wezfurlong\.wezterm$"#
- default-column-width {}
-}
-window-rule {
- match app-id=r#"^firefox$"#
- border {
- width 2
- }
-}
-
-switch-events {}
-
-binds {
- Mod+Backslash { show-hotkey-overlay; }
-
- Mod+Return { spawn "footclient"; }
- Mod+Space { spawn "fuzzel"; }
- Mod+Escape { spawn "~/.config/fuzzel/powermenu.sh"; }
-
- XF86AudioRaiseVolume allow-when-locked=true { spawn "pamixer" "-i" "5"; }
- XF86AudioLowerVolume allow-when-locked=true { spawn "pamixer" "-d" "5"; }
- XF86AudioMute allow-when-locked=true { spawn "pamixer" "-t"; }
- XF86AudioMicMute allow-when-locked=true { spawn "pamixer" "--default-source" "-m"; }
- XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "s" "+5%"; }
- XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "s" "5%-"; }
-
- Mod+Q { close-window; }
-
- Mod+Left { focus-column-left; }
- Mod+Down { focus-window-down; }
- Mod+Up { focus-window-up; }
- Mod+Right { focus-column-right; }
- Mod+H { focus-column-left; }
- Mod+J { focus-window-down; }
- Mod+K { focus-window-up; }
- Mod+L { focus-column-right; }
-
- Mod+Ctrl+Left { move-column-left; }
- Mod+Ctrl+Down { move-window-down; }
- Mod+Ctrl+Up { move-window-up; }
- Mod+Ctrl+Right { move-column-right; }
- Mod+Ctrl+H { move-column-left; }
- Mod+Ctrl+J { move-window-down; }
- Mod+Ctrl+K { move-window-up; }
- Mod+Ctrl+L { move-column-right; }
-
- Mod+Home { focus-column-first; }
- Mod+End { focus-column-last; }
- Mod+Ctrl+Home { move-column-to-first; }
- Mod+Ctrl+End { move-column-to-last; }
-
- Mod+Shift+Left { focus-monitor-left; }
- Mod+Shift+Down { focus-monitor-down; }
- Mod+Shift+Up { focus-monitor-up; }
- Mod+Shift+Right { focus-monitor-right; }
- Mod+Shift+H { focus-monitor-left; }
- Mod+Shift+J { focus-monitor-down; }
- Mod+Shift+K { focus-monitor-up; }
- Mod+Shift+L { focus-monitor-right; }
-
- Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
- Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
- Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
- Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
- Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
- Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
- Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
- Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
-
- Mod+Page_Down { focus-workspace-down; }
- Mod+Page_Up { focus-workspace-up; }
- Mod+U { focus-workspace-down; }
- Mod+I { focus-workspace-up; }
- Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
- Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
- Mod+Ctrl+U { move-column-to-workspace-down; }
- Mod+Ctrl+I { move-column-to-workspace-up; }
-
- Mod+Shift+Page_Down { move-workspace-down; }
- Mod+Shift+Page_Up { move-workspace-up; }
- Mod+Shift+U { move-workspace-down; }
- Mod+Shift+I { move-workspace-up; }
-
- Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
- Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
- Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
- Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
-
- Mod+WheelScrollRight { focus-column-right; }
- Mod+WheelScrollLeft { focus-column-left; }
- Mod+Ctrl+WheelScrollRight { move-column-right; }
- Mod+Ctrl+WheelScrollLeft { move-column-left; }
-
- Mod+Shift+WheelScrollDown { focus-column-right; }
- Mod+Shift+WheelScrollUp { focus-column-left; }
- Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
- Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
-
- Mod+1 { focus-workspace 1; }
- Mod+2 { focus-workspace 2; }
- Mod+3 { focus-workspace 3; }
- Mod+4 { focus-workspace 4; }
- Mod+5 { focus-workspace 5; }
- Mod+6 { focus-workspace 6; }
- Mod+7 { focus-workspace 7; }
- Mod+8 { focus-workspace 8; }
- Mod+9 { focus-workspace 9; }
- Mod+Ctrl+1 { move-column-to-workspace 1; }
- Mod+Ctrl+2 { move-column-to-workspace 2; }
- Mod+Ctrl+3 { move-column-to-workspace 3; }
- Mod+Ctrl+4 { move-column-to-workspace 4; }
- Mod+Ctrl+5 { move-column-to-workspace 5; }
- Mod+Ctrl+6 { move-column-to-workspace 6; }
- Mod+Ctrl+7 { move-column-to-workspace 7; }
- Mod+Ctrl+8 { move-column-to-workspace 8; }
- Mod+Ctrl+9 { move-column-to-workspace 9; }
-
- Mod+Tab { focus-workspace-previous; }
- Mod+Comma { consume-window-into-column; }
- Mod+Period { expel-window-from-column; }
-
- Mod+BracketLeft { consume-or-expel-window-left; }
- Mod+BracketRight { consume-or-expel-window-right; }
-
- Mod+R { switch-preset-column-width; }
- Mod+Shift+R { switch-preset-window-height; }
- Mod+Ctrl+R { reset-window-height; }
- Mod+F { maximize-column; }
- Mod+Shift+F { fullscreen-window; }
- Mod+C { center-column; }
-
- Mod+Minus { set-column-width "-10%"; }
- Mod+Plus { set-column-width "+10%"; }
-
- Mod+Shift+Minus { set-window-height "-10%"; }
- Mod+Shift+Equal { set-window-height "+10%"; }
-
- Print { screenshot; }
- Ctrl+Print { screenshot-screen; }
- Alt+Print { screenshot-window; }
-
- Mod+Shift+E { quit; }
-
- Mod+Shift+P { power-off-monitors; }
-}
diff --git a/nvim/lua/plugins/catppuccin.lua b/nvim/lua/plugins/catppuccin.lua
deleted file mode 100644
index 8599732..0000000
--- a/nvim/lua/plugins/catppuccin.lua
+++ /dev/null
@@ -1,58 +0,0 @@
-local config = function()
- require("catppuccin").setup({
- custom_highlights = function(colors)
- return {
- TodoError = { fg = colors.base, bg = colors.red },
- }
- end,
- integrations = {
- dashboard = true,
- indent_blankline = {
- enabled = true,
- colored_indent_levels = false,
- },
- lsp_saga = false,
- neotree = false,
- cmp = true,
- native_lsp = {
- enabled = true,
- virtual_text = {
- errors = { "italic" },
- hints = { "italic" },
- warnings = { "italic" },
- information = { "italic" },
- ok = { "italic" },
- },
- underlines = {
- errors = { "undercurl" },
- hints = { "underline" },
- warnings = { "undercurl" },
- information = { "underline" },
- ok = { "underline" },
- },
- inlay_hints = {
- background = true,
- },
- },
- treesitter = true,
- telescope = {
- enabled = true,
- -- style = "nvchad"
- },
- lsp_trouble = false,
- illuminate = {
- enabled = true,
- lsp = false
- },
- which_key = false
- }
- })
- vim.cmd.colorscheme("catppuccin-macchiato")
-end
-
-return {
- "catppuccin/nvim",
- name = "catppuccin",
- lazy = false,
- config = config,
-}
diff --git a/nvim/lua/plugins/lualine.lua b/nvim/lua/plugins/lualine.lua
index 397e481..d9a108b 100644
--- a/nvim/lua/plugins/lualine.lua
+++ b/nvim/lua/plugins/lualine.lua
@@ -1,7 +1,7 @@
local config = function()
require("lualine").setup({
options = {
- theme = "catppuccin",
+ theme = "auto",
globalstatus = true,
disabled_filetypes = { "toggleterm", "lazy", "oil", "dashboard", "TelescopePrompt", "oil_preview" }
},
diff --git a/nvim/lua/plugins/neopywal.lua b/nvim/lua/plugins/neopywal.lua
new file mode 100644
index 0000000..e95686a
--- /dev/null
+++ b/nvim/lua/plugins/neopywal.lua
@@ -0,0 +1,18 @@
+local init = function()
+ vim.cmd.colorscheme("neopywal")
+end
+
+local config = function()
+ require("neopywal").setup({
+ use_wallust = true,
+ })
+end
+
+return {
+ "RedsXDD/neopywal.nvim",
+ lazy = false,
+ name = "neopywal",
+ init = init,
+ config = config,
+ priority = 1000,
+}
diff --git a/nvim/lua/plugins/nvim-cmp.lua b/nvim/lua/plugins/nvim-cmp.lua
index 800391d..b7d71a3 100644
--- a/nvim/lua/plugins/nvim-cmp.lua
+++ b/nvim/lua/plugins/nvim-cmp.lua
@@ -41,9 +41,9 @@ local config = function()
}, {
{ name = "nvim_lsp" },
}, {
- { name = "buffer" },
- }, {
{ name = "path" },
+ }, {
+ { name = "buffer" },
}
)
})
diff --git a/nvim/lua/plugins/nvim-treesitter.lua b/nvim/lua/plugins/nvim-treesitter.lua
index ffb8824..1c9ecdc 100644
--- a/nvim/lua/plugins/nvim-treesitter.lua
+++ b/nvim/lua/plugins/nvim-treesitter.lua
@@ -21,6 +21,8 @@ local config = function()
"nix",
"javascript",
"norg",
+ "fish",
+ "kdl",
},
auto_install = false,
highlight = {
diff --git a/nvim/lua/plugins/telescope.lua b/nvim/lua/plugins/telescope.lua
index cb17298..0796d4f 100644
--- a/nvim/lua/plugins/telescope.lua
+++ b/nvim/lua/plugins/telescope.lua
@@ -16,8 +16,7 @@ local init = function()
end
local config = function()
- local telescope = require("telescope")
- telescope.setup({
+ require("telescope").setup({
defaults = {
mappings = {
i = {
diff --git a/scripts/powermenu b/scripts/powermenu
new file mode 100755
index 0000000..79519ed
--- /dev/null
+++ b/scripts/powermenu
@@ -0,0 +1,20 @@
+#!/usr/bin/fish
+set poweroff " Poweroff"
+set reboot " Reboot"
+set lock " Lock"
+set exit "󰗼 Exit"
+
+set chosen (echo -e "$poweroff\n$reboot\n$lock\n$exit" | fuzzel --dmenu --lines 4 --width 15)
+
+switch $chosen
+ case $poweroff
+ shutdown now
+ case $reboot
+ reboot
+ case $lock
+ loginctl lock-session
+ case $exit
+ niri msg action quit
+ case '*'
+ exit 1
+end
diff --git a/scripts/set_background b/scripts/set_background
new file mode 100755
index 0000000..41522a0
--- /dev/null
+++ b/scripts/set_background
@@ -0,0 +1,16 @@
+#!/usr/bin/fish
+
+if test (count $argv) -lt 1; or not test -f $argv[1]
+ echo "Usage: $(status filename) <img>"
+ exit 1
+end
+
+set -x SWWW_TRANSITION "wipe"
+set -x SWWW_TRANSITION_FPS 60
+set -U img $argv[1]
+
+niri msg action do-screen-transition
+swww img $img
+wallust run $img
+makoctl reload
+
diff --git a/scripts/set_random b/scripts/set_random
new file mode 100755
index 0000000..cdc4018
--- /dev/null
+++ b/scripts/set_random
@@ -0,0 +1,14 @@
+#!/usr/bin/fish
+
+if test (count $argv) -lt 1; or not test -d $argv[1]
+ echo "Usage: $(status filename) <dir>"
+ exit 1
+end
+
+~/.config/scripts/set_background (
+ for file in (find $argv[1] -type f)
+ if test -z $img; or test $file != $img
+ echo (math (random) % 1000)":$file"
+ end
+ end | sort -n | head -n 1 | cut -d ':' -f2)
+
diff --git a/scripts/wallpapermenu b/scripts/wallpapermenu
new file mode 100755
index 0000000..9a3de1d
--- /dev/null
+++ b/scripts/wallpapermenu
@@ -0,0 +1,11 @@
+#!/usr/bin/fish
+
+set dir "/home/eric.marin/Pictures/Backgrounds/"
+set chosen (
+ for file in (find $dir -type f)
+ if test -z $img; or test $file != $img
+ echo "$file"
+ end
+ end | cut -d '/' -f6 | fuzzel --dmenu)
+
+~/.config/scripts/set_background (echo $dir$chosen)
diff --git a/systemd/user/niri.service.wants/foot-server.service b/systemd/user/niri.service.wants/foot-server.service
deleted file mode 120000
index fd59578..0000000
--- a/systemd/user/niri.service.wants/foot-server.service
+++ /dev/null
@@ -1 +0,0 @@
-/usr/lib/systemd/user/foot-server.service \ No newline at end of file
diff --git a/systemd/user/niri.service.wants/swww.service b/systemd/user/niri.service.wants/swww.service
new file mode 120000
index 0000000..c4615c1
--- /dev/null
+++ b/systemd/user/niri.service.wants/swww.service
@@ -0,0 +1 @@
+/home/eric/.config/systemd/user/swww.service \ No newline at end of file
diff --git a/systemd/user/niri.service.wants/wbg.service b/systemd/user/niri.service.wants/wbg.service
deleted file mode 120000
index c9f9acb..0000000
--- a/systemd/user/niri.service.wants/wbg.service
+++ /dev/null
@@ -1 +0,0 @@
-/home/eric/.config/systemd/user/wbg.service \ No newline at end of file
diff --git a/systemd/user/wbg.service b/systemd/user/swww.service
index 229bace..07fee1d 100644
--- a/systemd/user/wbg.service
+++ b/systemd/user/swww.service
@@ -4,5 +4,5 @@ After=graphical-session.target
Requisite=graphical-session.target
[Service]
-ExecStart=/usr/bin/wbg "%h/Pictures/Backgrounds/Mandelbrot/mandelbrot_full_red.png"
+ExecStart=/usr/bin/swww-daemon
Restart=on-failure
diff --git a/wallust/templates/foot b/wallust/templates/foot
new file mode 100644
index 0000000..cd12385
--- /dev/null
+++ b/wallust/templates/foot
@@ -0,0 +1,34 @@
+font=Hack Nerd Font:size=10,Noto Color Emoji:size=10,Sazanami Gothic:size=10
+pad=15x15
+dpi-aware=yes
+term=foot-extra
+
+[cursor]
+style=block
+blink=yes
+
+[scrollback]
+indicator-position=none
+
+[colors]
+foreground={{foreground | strip}}
+background={{background | strip}}
+
+regular0={{color0 | strip}}
+regular1={{color1 | strip}}
+regular2={{color2 | strip}}
+regular3={{color3 | strip}}
+regular4={{color4 | strip}}
+regular5={{color5 | strip}}
+regular6={{color6 | strip}}
+regular7={{color7 | strip}}
+
+bright0={{color8 | strip}}
+bright1={{color9 | strip}}
+bright2={{color10 | strip}}
+bright3={{color11 | strip}}
+bright4={{color12 | strip}}
+bright5={{color13 | strip}}
+bright6={{color14 | strip}}
+bright7={{color15 | strip}}
+
diff --git a/fuzzel/fuzzel.ini b/wallust/templates/fuzzel
index a50f09b..5d388ee 100644
--- a/fuzzel/fuzzel.ini
+++ b/wallust/templates/fuzzel
@@ -16,7 +16,7 @@ icon-theme=Papirus
# delayed-filter-ms=300
# delayed-filter-limit=20000
# show-actions=no
-terminal=footclient -o pad=0x0
+terminal=foot -o pad=0x0
# launch-prefix=<not set>
# list-executables-in-path=no
@@ -44,21 +44,21 @@ image-size-ratio=0
# match-workers=<number of logical CPUs>
[colors]
-background=1e2030ff
-text=cad3f5ff
-prompt=ed8796ff
-placeholder=a5adcbff
-input=cad3f5ff
-match=ed8796ff
-selection=ed8796ff
-selection-text=24273aff
-selection-match=24273aff
-counter=a5adcbff
-border=363a4fff
+background= {{background | strip}}FF
+text= {{foreground | strip}}FF
+prompt= {{color4 | strip}}FF
+placeholder= {{color2 | strip}}FF
+input= {{foreground | strip}}FF
+match= {{color4 | strip}}FF
+selection= {{color0 | strip}}FF
+selection-text= {{color5 | strip}}FF
+selection-match= {{color5 | strip}}FF
+counter= {{color1 | strip}}FF
+border= {{color1 | strip}}FF
[border]
width=2
-radius=10
+radius=0
[dmenu]
# mode=text # text|index
diff --git a/hypr/hyprlock.conf b/wallust/templates/hyprlock
index 6a999c6..9c37a34 100644
--- a/hypr/hyprlock.conf
+++ b/wallust/templates/hyprlock
@@ -1,27 +1,31 @@
general {
hide_cursor = true
ignore_empty_input = true
+ immediate_render = true
+ disable_loading_bar = true
}
background {
monitor = eDP-1
- path = /home/eric/Pictures/Backgrounds/buttons.png
+ path = {{wallpaper}}
+ blur_passes = 2
+ blur_size = 1
}
input-field {
monitor = eDP-1
size = 500, 100
- outline_thickness = 1
+ outline_thickness = 2
dots_size = 0.3 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.35 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = false
- outer_color = rgb(54, 58, 79)
- inner_color = rgb(36, 39, 58)
- font_color = rgb(202, 211, 245)
+ outer_color = rgb({{color1 | rgb}})
+ inner_color = rgb({{background | rgb}})
+ font_color = rgb({{foreground | rgb}})
fade_on_empty = true
placeholder_text = <i></i>
fail_text = <i>Wrong Password...</i>
- fail_color = rgb(237,135,150)
+ fail_color = rgb({{color6 | rgb}})
position = 0, -300
halign = center
@@ -30,12 +34,15 @@ input-field {
label {
monitor = eDP-1
text = cmd[update:1000] date +"%H:%M:%S"
- color = rgb(202, 211, 245)
+ color = rgb({{foreground | rgb}})
font_size = 100
font_family = Hack Nerd Font
position = 0, 300
halign = center
valign = center
+
+ shadow_passes = 1
+ shadow_color = rgb({{background | rgb}})
}
diff --git a/mako/config b/wallust/templates/mako
index 2ea216e..0211d7c 100644
--- a/mako/config
+++ b/wallust/templates/mako
@@ -1,19 +1,22 @@
layer=overlay
-background-color=#181926
+background-color={{background}}
border-size=1
-border-color=#363a4f
-border-radius=10
+border-color={{color2}}
+border-radius=0
default-timeout=5000
ignore-timeout=1
font=Noto Color Emoji 10, Sazanami Gothic 10, Hack Nerd Font 10
-text-color=#cad3f5
+text-color={{foreground}}
outer-margin=0,5,15,0
anchor=bottom-right
[urgency=high]
-border-color=#ed8796
+border-color={{color4}}
default-timeout=0
+[urgency=low]
+border-color={{color0}}
+
[category=mpd]
default-timeout=2000
group-by=category
diff --git a/wallust/templates/niri b/wallust/templates/niri
new file mode 100644
index 0000000..1b88179
--- /dev/null
+++ b/wallust/templates/niri
@@ -0,0 +1,208 @@
+environment {
+ QT_QPA_PLATFORM "wayland"
+ DISPLAY ":0"
+}
+hotkey-overlay {
+ skip-at-startup
+}
+cursor {
+ // xcursor-theme "breeze_cursors"
+ // xcursor-size 48
+
+ // hide-when-typing
+ hide-after-inactive-ms 5000
+}
+prefer-no-csd
+screenshot-path null
+
+input {
+ keyboard {
+ xkb {
+ layout "it"
+ }
+ }
+
+ touchpad {
+ tap
+ natural-scroll
+ }
+
+ mouse {
+ // off
+ // natural-scroll
+ // accel-speed 0.2
+ // accel-profile "flat"
+ // scroll-factor 1.0
+ // scroll-method "no-scroll"
+ // scroll-button 273
+ // left-handed
+ // middle-emulation
+ }
+
+ // disable-power-key-handling
+ // warp-mouse-to-focus
+ // focus-follows-mouse max-scroll-amount="0%"
+ // workspace-auto-back-and-forth
+}
+
+output "eDP-1" {
+ // off
+ mode "2560x1600@60.000"
+ scale 2.0
+ transform "normal"
+ position x=0 y=0
+}
+
+output "HDMI-A-1" {
+
+}
+
+layout {
+ gaps 5
+ center-focused-column "never"
+ // empty-workspace-above-first
+
+ preset-column-widths {
+ proportion 0.33333
+ proportion 0.5
+ proportion 0.66667
+ }
+ default-column-width { proportion 0.5; }
+
+ preset-window-heights {
+ proportion 0.33333
+ proportion 0.5
+ proportion 0.66667
+ }
+
+ focus-ring {
+ off
+ }
+
+ border {
+ // off
+ width 1
+ active-color "{{color1}}"
+ inactive-color "{{color0}}"
+ }
+
+ struts {
+ left 5
+ right 5
+ top 0
+ bottom 5
+ }
+}
+
+animations {
+ // off
+}
+
+window-rule {
+ match app-id=r#"^org\.wezfurlong\.wezterm$"#
+ default-column-width {}
+}
+window-rule {
+ match title="btop"
+ match title="nmtui"
+ default-column-width { proportion 1.0; }
+}
+window-rule {
+ //geometry-corner-radius 10
+ clip-to-geometry true
+}
+
+switch-events {}
+
+binds {
+ Mod+Backslash { show-hotkey-overlay; }
+
+ Mod+Return { spawn "foot"; }
+ Mod+Space { spawn "fuzzel"; }
+ Mod+Escape { spawn "~/.config/scripts/powermenu"; }
+ Mod+W { spawn "~/.config/scripts/set_random" "/home/eric.marin/Pictures/Backgrounds/"; }
+
+ XF86AudioRaiseVolume allow-when-locked=true { spawn "pamixer" "-i" "5"; }
+ XF86AudioLowerVolume allow-when-locked=true { spawn "pamixer" "-d" "5"; }
+ XF86AudioMute allow-when-locked=true { spawn "pamixer" "-t"; }
+ XF86AudioMicMute allow-when-locked=true { spawn "pamixer" "--default-source" "-m"; }
+ XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "-e" "s" "+5%"; }
+ XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "-e" "s" "5%-"; }
+
+ Mod+Q { close-window; }
+
+ Mod+H { focus-column-left; }
+ Mod+J { focus-window-down; }
+ Mod+K { focus-window-up; }
+ Mod+L { focus-column-right; }
+ Mod+Ctrl+H { move-column-left; }
+ Mod+Ctrl+J { move-window-down; }
+ Mod+Ctrl+K { move-window-up; }
+ Mod+Ctrl+L { move-column-right; }
+
+ Mod+N { focus-column-first; }
+ Mod+M { focus-column-last; }
+ Mod+Ctrl+N { move-column-to-first; }
+ Mod+Ctrl+M { move-column-to-last; }
+
+ Mod+Shift+H { focus-monitor-left; }
+ Mod+Shift+J { focus-monitor-down; }
+ Mod+Shift+K { focus-monitor-up; }
+ Mod+Shift+L { focus-monitor-right; }
+ Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
+ Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
+ Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
+ Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
+
+ Mod+U { focus-workspace-down; }
+ Mod+I { focus-workspace-up; }
+ Mod+Ctrl+U { move-column-to-workspace-down; }
+ Mod+Ctrl+I { move-column-to-workspace-up; }
+ Mod+Shift+U { move-workspace-down; }
+ Mod+Shift+I { move-workspace-up; }
+
+ Mod+1 { focus-workspace 1; }
+ Mod+2 { focus-workspace 2; }
+ Mod+3 { focus-workspace 3; }
+ Mod+4 { focus-workspace 4; }
+ Mod+5 { focus-workspace 5; }
+ Mod+6 { focus-workspace 6; }
+ Mod+7 { focus-workspace 7; }
+ Mod+8 { focus-workspace 8; }
+ Mod+9 { focus-workspace 9; }
+ Mod+Ctrl+1 { move-column-to-workspace 1; }
+ Mod+Ctrl+2 { move-column-to-workspace 2; }
+ Mod+Ctrl+3 { move-column-to-workspace 3; }
+ Mod+Ctrl+4 { move-column-to-workspace 4; }
+ Mod+Ctrl+5 { move-column-to-workspace 5; }
+ Mod+Ctrl+6 { move-column-to-workspace 6; }
+ Mod+Ctrl+7 { move-column-to-workspace 7; }
+ Mod+Ctrl+8 { move-column-to-workspace 8; }
+ Mod+Ctrl+9 { move-column-to-workspace 9; }
+
+ Mod+Tab { focus-workspace-previous; }
+
+ Mod+Comma { consume-window-into-column; }
+ Mod+Period { expel-window-from-column; }
+ Mod+O { consume-or-expel-window-left; }
+ Mod+P { consume-or-expel-window-right; }
+
+ Mod+R { switch-preset-column-width; }
+ Mod+Shift+R { switch-preset-window-height; }
+ Mod+Ctrl+R { reset-window-height; }
+ Mod+F { maximize-column; }
+ Mod+Shift+F { fullscreen-window; }
+ Mod+C { center-column; }
+
+ Mod+Minus { set-column-width "-10%"; }
+ Mod+Plus { set-column-width "+10%"; }
+
+ Mod+Shift+Minus { set-window-height "-10%"; }
+ Mod+Shift+Plus { set-window-height "+10%"; }
+
+ Print { screenshot; }
+ Ctrl+Print { screenshot-screen; }
+ Alt+Print { screenshot-window; }
+
+ Mod+Shift+E { quit; }
+}
diff --git a/wallust/templates/nvim b/wallust/templates/nvim
new file mode 100644
index 0000000..c5e966d
--- /dev/null
+++ b/wallust/templates/nvim
@@ -0,0 +1,19 @@
+let background = "{{background}}"
+let foreground = "{{foreground}}"
+let cursor = "{{cursor}}"
+let color0 = "{{color0}}"
+let color1 = "{{color1}}"
+let color2 = "{{color2}}"
+let color3 = "{{color3}}"
+let color4 = "{{color4}}"
+let color5 = "{{color5}}"
+let color6 = "{{color6}}"
+let color7 = "{{color7}}"
+let color8 = "{{color8}}"
+let color9 = "{{color9}}"
+let color10 = "{{color10}}"
+let color11 = "{{color11}}"
+let color12 = "{{color12}}"
+let color13 = "{{color13}}"
+let color14 = "{{color14}}"
+let color15 = "{{color15}}"
diff --git a/wallust/wallust.toml b/wallust/wallust.toml
new file mode 100644
index 0000000..fa2e790
--- /dev/null
+++ b/wallust/wallust.toml
@@ -0,0 +1,24 @@
+backend = "kmeans"
+check_contrast = true
+color_space = "lch"
+fallback_generator = "complementary"
+palette = "ansidark"
+
+[templates]
+foot.template = "foot"
+foot.target = "~/.config/foot/foot.ini"
+
+nvim.template = "nvim"
+nvim.target = "~/.cache/wallust/colors_neopywal.vim"
+
+fuzzel.template = "fuzzel"
+fuzzel.target = "~/.config/fuzzel/fuzzel.ini"
+
+niri.template = "niri"
+niri.target = "~/.config/niri/config.kdl"
+
+hyprlock.template = "hyprlock"
+hyprlock.target = "~/.config/hypr/hyprlock.conf"
+
+mako.template = "mako"
+mako.target = "~/.config/mako/config"
diff --git a/waybar/config b/waybar/config
index 5ad6571..ef7c4b6 100644
--- a/waybar/config
+++ b/waybar/config
@@ -9,6 +9,7 @@
"custom/cat": {
"format": "<span color='#181926' font-family='Symbols Nerd Font Mono'>󰄛</span>",
"tooltip": false,
+ "on-click": "~/.config/scripts/set_random ~/Pictures/Backgrounds/"
},
"hyprland/workspaces": {
"persistent-workspaces": {
@@ -28,13 +29,13 @@
"format": "",
"format-connected": "<span color='#8aadf4' font-family='Symbols Nerd Font Mono'></span>",
"tooltip-format": "{device_alias}",
- "on-click": "footclient bluetuith"
+ "on-click": "foot bluetuith"
},
"network": {
"format-wifi": "<span color='#b7bdf8' font-family='Symbols Nerd Font Mono'>󰖩</span>",
"format-disconnected": "<span color='#b7bdf4' font-family='Symbols Nerd Font Mono'>󰖪</span>",
"tooltip-format": "{essid}",
- "on-click": "footclient -o pad=0x0 nmtui"
+ "on-click": "foot -T nmtui -o pad=0x0 nmtui"
},
"pulseaudio": {
"format": "<span color='#c6a0f6' font-family='Symbols Nerd Font Mono'>{icon}</span> {volume}%",
@@ -42,7 +43,7 @@
"format-icons": {
"default": ["󰕿", "󰖀", "󰕾"],
},
- "on-click": "footclient pulsemixer"
+ "on-click": "foot pulsemixer"
},
"backlight": {
"device": "intel_backlight",
@@ -63,7 +64,7 @@
"<span color='#ee99a0'>▇</span>",
"<span color='#ed8796'>█</span>"
],
- "on-click": "footclient -o pad=0x0 btop",
+ "on-click": "foot -T btop -o pad=0x0 btop",
},
"temperature": {
"interval": 5,