aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreric.marin <maarin.eric@gmail.com>2024-12-18 21:06:41 +0100
committereric.marin <maarin.eric@gmail.com>2024-12-18 21:06:41 +0100
commit000a7c2a4c4bda36f655f6489b5bac3211515a5d (patch)
tree8a5fe85f0632fcca678f0204a4288e6b3423f772
parentb0cfdab1e93f660fda8f9398e30c9c996a1760f3 (diff)
downloaddotfiles-000a7c2a4c4bda36f655f6489b5bac3211515a5d.tar.gz
dotfiles-000a7c2a4c4bda36f655f6489b5bac3211515a5d.zip
niri and fuzzel
-rw-r--r--.gitignore12
-rw-r--r--ags/config.js41
-rw-r--r--ags/modules/applauncher.js107
-rw-r--r--ags/modules/bar.js131
-rw-r--r--foot/foot.ini2
-rw-r--r--fuzzel/fuzzel.ini116
-rwxr-xr-xfuzzel/powermenu.sh18
-rw-r--r--hypr/hyprland.conf19
-rw-r--r--niri/config.kdl246
-rw-r--r--nvim/lazy-lock.json35
-rw-r--r--nvim/lua/config/keymaps.lua2
-rw-r--r--nvim/lua/config/options.lua1
-rw-r--r--nvim/lua/plugins/neorg.lua8
-rw-r--r--nvim/lua/plugins/nvim-lspconfig.lua4
-rw-r--r--nvim/lua/plugins/nvim-parinfer.lua1
-rw-r--r--nvim/lua/plugins/oil.lua14
-rw-r--r--nvim/lua/plugins/yuck.lua5
l---------systemd/user/niri.service.wants/foot-server.service1
l---------systemd/user/niri.service.wants/hypridle.service1
l---------systemd/user/niri.service.wants/mako.service1
l---------systemd/user/niri.service.wants/waybar.service1
l---------systemd/user/niri.service.wants/wbg.service1
l---------systemd/user/niri.service.wants/xwayland-satellite.service1
-rw-r--r--systemd/user/wbg.service8
-rw-r--r--waybar/config2
-rw-r--r--waybar/style.css99
26 files changed, 735 insertions, 142 deletions
diff --git a/.gitignore b/.gitignore
index b15aa3b..22e6016 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,3 +23,15 @@ fish
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/config.js b/ags/config.js
index bc50aa8..cc69e2e 100644
--- a/ags/config.js
+++ b/ags/config.js
@@ -1,41 +1,6 @@
-// @ts-ignore
-const battery = await Service.import("battery")
-
-const BatteryPercent = () => Widget.Label()
- .hook(battery, self => {
- self.label = `${battery.percent}%`
- self.visible = battery.available
- }, "changed")
-
-const MyButton = () => Widget.Button()
- .on("clicked", self => {
- print(self, "is clicked")
- })
-
-const MyDate = () => Widget.Label({
- css: "color:blue; padding: 1em;",
-})
- .poll(1000, self => {
- self.label = Utils.exec("date +'%_H:%_M:%S'")
- })
-
-const MyKeybind = () => Widget.Button()
- .keybind(["MOD1", "CONTROL"], "a", (_self, _event) => {
- print("alt+control+a was pressed")
- })
-
-const Bar = () => Widget.Window({
- name: 'bar',
- anchor: ['top', 'left', 'right'],
- child: MyDate(),
-})
-
-const scss = `${App.configDir}/style.scss`
-const css = "/tmp/my-style.css"
-Utils.exec(`sassc ${scss} ${css}`)
+import { applauncher } from "./modules/applauncher.js"
+import { Bar } from "./modules/bar.js"
App.config({
- style: css,
- windows: [Bar()],
+ windows: [applauncher, Bar(0)],
})
-
diff --git a/ags/modules/applauncher.js b/ags/modules/applauncher.js
new file mode 100644
index 0000000..f380185
--- /dev/null
+++ b/ags/modules/applauncher.js
@@ -0,0 +1,107 @@
+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
new file mode 100644
index 0000000..28fdaee
--- /dev/null
+++ b/ags/modules/bar.js
@@ -0,0 +1,131 @@
+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/foot/foot.ini b/foot/foot.ini
index 653a78d..2abeff8 100644
--- a/foot/foot.ini
+++ b/foot/foot.ini
@@ -1,6 +1,6 @@
font=Hack Nerd Font:size=10,Noto Color Emoji:size=10,Sazanami Gothic:size=10
pad=15x15
-dpi-aware=true
+dpi-aware=yes
term=foot-extra
[cursor]
diff --git a/fuzzel/fuzzel.ini b/fuzzel/fuzzel.ini
new file mode 100644
index 0000000..a50f09b
--- /dev/null
+++ b/fuzzel/fuzzel.ini
@@ -0,0 +1,116 @@
+output=eDP-1
+font=Hack Nerd Font
+dpi-aware=yes
+use-bold=yes
+prompt=" "
+placeholder="..."
+icon-theme=Papirus
+# icons-enabled=yes
+# hide-before-typing=no
+# fields=filename,name,generic
+# password-character=*
+# filter-desktop=no
+# match-mode=fzf
+# sort-result=yes
+# match-counter=no
+# delayed-filter-ms=300
+# delayed-filter-limit=20000
+# show-actions=no
+terminal=footclient -o pad=0x0
+# launch-prefix=<not set>
+# list-executables-in-path=no
+
+# anchor=center
+# x-margin=0
+# y-margin=0
+lines=10
+width=35
+# tabs=8
+horizontal-pad=10
+vertical-pad=6
+inner-pad=5
+
+image-size-ratio=0
+
+# line-height=<use font metrics>
+# letter-spacing=0
+
+# layer=overlay
+# exit-on-keyboard-focus-loss=yes
+
+# cache=<not set>
+
+# render-workers=<number of logical CPUs>
+# 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
+
+[border]
+width=2
+radius=10
+
+[dmenu]
+# mode=text # text|index
+# exit-immediately-if-empty=no
+
+[key-bindings]
+# cancel=Escape Control+g Control+c Control+bracketleft
+# execute=Return KP_Enter Control+y
+# execute-or-next=Tab
+# execute-input=Shift+Return Shift+KP_Enter
+# cursor-left=Left Control+b
+# cursor-left-word=Control+Left Mod1+b
+# cursor-right=Right Control+f
+# cursor-right-word=Control+Right Mod1+f
+# cursor-home=Home Control+a
+# cursor-end=End Control+e
+# delete-prev=BackSpace Control+h
+# delete-prev-word=Mod1+BackSpace Control+BackSpace Control+w
+# delete-line-backward=Control+u
+# delete-next=Delete KP_Delete Control+d
+# delete-next-word=Mod1+d Control+Delete Control+KP_Delete
+# delete-line-forward=Control+k
+# prev=Up Control+p
+# prev-with-wrap=ISO_Left_Tab
+# prev-page=Page_Up KP_Page_Up
+# next=Down Control+n
+# next-with-wrap=none
+# next-page=Page_Down KP_Page_Down
+# expunge=Shift+Delete
+# clipboard-paste=Control+v XF86Paste
+# primary-paste=Shift+Insert Shift+KP_Insert
+
+# custom-N: *dmenu mode only*. Like execute, but with a non-zero
+# exit-code; custom-1 exits with code 10, custom-2 with 11, custom-3
+# with 12, and so on.
+
+# custom-1=Mod1+1
+# custom-2=Mod1+2
+# custom-3=Mod1+3
+# custom-4=Mod1+4
+# custom-5=Mod1+5
+# custom-6=Mod1+6
+# custom-7=Mod1+7
+# custom-8=Mod1+8
+# custom-9=Mod1+9
+# custom-10=Mod1+0
+# custom-11=Mod1+exclam
+# custom-12=Mod1+at
+# custom-13=Mod1+numbersign
+# custom-14=Mod1+dollar
+# custom-15=Mod1+percent
+# custom-16=Mod1+dead_circumflex
+# custom-17=Mod1+ampersand
+# custom-18=Mod1+asterix
+# custom-19=Mod1+parentleft
diff --git a/fuzzel/powermenu.sh b/fuzzel/powermenu.sh
new file mode 100755
index 0000000..22b17c3
--- /dev/null
+++ b/fuzzel/powermenu.sh
@@ -0,0 +1,18 @@
+#! /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/hyprland.conf b/hypr/hyprland.conf
index 7303e00..686d14d 100644
--- a/hypr/hyprland.conf
+++ b/hypr/hyprland.conf
@@ -9,21 +9,22 @@
# 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/sourcerer.png
+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
-$rofi_path = ~/.config/rofi
$terminal = footclient
-$applauncher = rofi -show drun -theme $rofi_path/applauncher.rasi
-$powermenu = $rofi_path/powermenu.sh
+$applauncher = fuzzel --counter
+$powermenu = .config/fuzzel/powermenu.sh
# Some default env vars.
env = XCURSOR_SIZE,24
@@ -50,7 +51,7 @@ general {
gaps_in = 5
gaps_out = 10
border_size = 1
- col.active_border = $lavender
+ col.active_border = $red
col.inactive_border = $surface0
layout = dwindle
@@ -62,8 +63,8 @@ general {
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
- rounding = 0
- drop_shadow = false
+ rounding = 10
+ # drop_shadow = false
}
animations {
@@ -95,7 +96,7 @@ master {
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
- workspace_swipe = false
+ workspace_swipe = true
}
misc {
@@ -117,6 +118,8 @@ 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
diff --git a/niri/config.kdl b/niri/config.kdl
new file mode 100644
index 0000000..39ca280
--- /dev/null
+++ b/niri/config.kdl
@@ -0,0 +1,246 @@
+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/lazy-lock.json b/nvim/lazy-lock.json
deleted file mode 100644
index 0a76756..0000000
--- a/nvim/lazy-lock.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "catppuccin": { "branch": "main", "commit": "7be452ee067978cdc8b2c5f3411f0c71ffa612b9" },
- "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
- "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
- "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
- "dashboard-nvim": { "branch": "master", "commit": "19e89f88c83c386d19a0c9b8816638a365ccbfac" },
- "indent-blankline.nvim": { "branch": "master", "commit": "e7a4442e055ec953311e77791546238d1eaae507" },
- "lazy.nvim": { "branch": "main", "commit": "1159bdccd8910a0fd0914b24d6c3d186689023d9" },
- "lazydev.nvim": { "branch": "main", "commit": "491452cf1ca6f029e90ad0d0368848fac717c6d2" },
- "lspkind.nvim": { "branch": "master", "commit": "59c3f419af48a2ffb2320cea85e44e5a95f71664" },
- "lspsaga.nvim": { "branch": "main", "commit": "3c1af059348350b0bbb81c5ca3c1f8f573dbd64a" },
- "lua-utils.nvim": { "branch": "main", "commit": "e565749421f4bbb5d2e85e37c3cef9d56553d8bd" },
- "lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" },
- "mini.icons": { "branch": "main", "commit": "a2742459f0ee32806c2438ca06b4d8b331f3f4d4" },
- "neorg": { "branch": "main", "commit": "81ee90cb2d72ac43bfadb7dd276646f34c8f85be" },
- "noice.nvim": { "branch": "main", "commit": "df448c649ef6bc5a6a633a44f2ad0ed8d4442499" },
- "nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" },
- "nvim-autopairs": { "branch": "master", "commit": "ee297f215e95a60b01fde33275cc3c820eddeebe" },
- "nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
- "nvim-lspconfig": { "branch": "master", "commit": "541f3a2781de481bb84883889e4d9f0904250a56" },
- "nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
- "nvim-parinfer": { "branch": "master", "commit": "5ca09287ab3f4144f78ff7977fabc27466f71044" },
- "nvim-treesitter": { "branch": "master", "commit": "92725df6222614307c4712eb9982e5287f21aa11" },
- "nvim-web-devicons": { "branch": "master", "commit": "19d257cf889f79f4022163c3fbb5e08639077bd8" },
- "oil.nvim": { "branch": "master", "commit": "39dbf875861449cf09e936fa80073f3413e9439c" },
- "pathlib.nvim": { "branch": "main", "commit": "57e5598af6fe253761c1b48e0b59b7cd6699e2c1" },
- "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
- "telescope.nvim": { "branch": "master", "commit": "df534c3042572fb958586facd02841e10186707c" },
- "todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
- "toggleterm.nvim": { "branch": "main", "commit": "137d06fb103952a0fb567882bb8527e2f92d327d" },
- "vim-highlightedyank": { "branch": "master", "commit": "afb0f262b490706c23e94012c2ab9fa67c0481ce" },
- "vim-illuminate": { "branch": "master", "commit": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa" },
- "which-key.nvim": { "branch": "main", "commit": "8badb359f7ab8711e2575ef75dfe6fbbd87e4821" },
- "yuck.vim": { "branch": "master", "commit": "9b5e0370f70cc30383e1dabd6c215475915fe5c3" }
-}
diff --git a/nvim/lua/config/keymaps.lua b/nvim/lua/config/keymaps.lua
index f6d97c9..766627b 100644
--- a/nvim/lua/config/keymaps.lua
+++ b/nvim/lua/config/keymaps.lua
@@ -30,7 +30,7 @@ vim.api.nvim_set_keymap("n", "<C-c>", "gcc", { noremap = false })
vim.api.nvim_set_keymap("v", "<C-c>", "gcc<Esc>", { noremap = false })
-- Buffer kill
-keymap.set("n", "<C-q>", ":bdelete!<Enter>", opts)
+-- keymap.set("n", "<C-q>", ":bunload<Enter>", opts)
-- Working
keymap.set("n", "<C-s>", ":w<Enter>", opts)
diff --git a/nvim/lua/config/options.lua b/nvim/lua/config/options.lua
index d79c664..bf92bb5 100644
--- a/nvim/lua/config/options.lua
+++ b/nvim/lua/config/options.lua
@@ -9,6 +9,7 @@ opt.wrap = false
-- Appearance
opt.number = true
+opt.relativenumber = true
opt.cursorline = true
opt.termguicolors = true
opt.showmode = true
diff --git a/nvim/lua/plugins/neorg.lua b/nvim/lua/plugins/neorg.lua
index be2f7e2..1e2d948 100644
--- a/nvim/lua/plugins/neorg.lua
+++ b/nvim/lua/plugins/neorg.lua
@@ -21,6 +21,14 @@ local config = function()
}
}
},
+ -- ["core.dirman"] = {
+ -- config = {
+ -- workspaces = {
+ -- default = "~/neorg"
+ -- },
+ -- index = "index.norg"
+ -- }
+ -- },
["core.completion"] = {
config = {
engine = "nvim-cmp"
diff --git a/nvim/lua/plugins/nvim-lspconfig.lua b/nvim/lua/plugins/nvim-lspconfig.lua
index 5be314c..c9b1326 100644
--- a/nvim/lua/plugins/nvim-lspconfig.lua
+++ b/nvim/lua/plugins/nvim-lspconfig.lua
@@ -98,9 +98,9 @@ local config = function()
})
-- vacuum configuration
lspconfig.vacuum.setup({
- on_attach = on_attach,
+ -- on_attach = on_attach,
capabilities = capabilities,
- filetypes = { "yaml", "json" }
+ filetypes = { "yaml" }
})
end
diff --git a/nvim/lua/plugins/nvim-parinfer.lua b/nvim/lua/plugins/nvim-parinfer.lua
index 15dced7..95d701d 100644
--- a/nvim/lua/plugins/nvim-parinfer.lua
+++ b/nvim/lua/plugins/nvim-parinfer.lua
@@ -1,5 +1,4 @@
return {
"gpanders/nvim-parinfer",
lazy = true,
- ft = "yuck",
}
diff --git a/nvim/lua/plugins/oil.lua b/nvim/lua/plugins/oil.lua
index e717988..c19baad 100644
--- a/nvim/lua/plugins/oil.lua
+++ b/nvim/lua/plugins/oil.lua
@@ -4,9 +4,8 @@ local init = function()
{ noremap = true, silent = true, desc = "File browser (Oil)" }) -- Oil
end
-
-
local config = function()
+ local detail = false
require("oil").setup({
default_file_explorer = true,
delete_to_trash = true,
@@ -23,6 +22,17 @@ local config = function()
["bs"] = "actions.change_sort",
["b."] = "actions.toggle_hidden",
["bt"] = "actions.toggle_trash",
+ ["bd"] = {
+ desc = "Toggle file detail view",
+ callback = function()
+ detail = not detail
+ if detail then
+ require("oil").set_columns({ "icon", "permissions", "size", "mtime" })
+ else
+ require("oil").set_columns({ "icon" })
+ end
+ end,
+ },
},
use_default_keymaps = false,
})
diff --git a/nvim/lua/plugins/yuck.lua b/nvim/lua/plugins/yuck.lua
deleted file mode 100644
index aedbeba..0000000
--- a/nvim/lua/plugins/yuck.lua
+++ /dev/null
@@ -1,5 +0,0 @@
-return {
- "elkowar/yuck.vim",
- lazy = true,
- ft = "yuck"
-}
diff --git a/systemd/user/niri.service.wants/foot-server.service b/systemd/user/niri.service.wants/foot-server.service
new file mode 120000
index 0000000..fd59578
--- /dev/null
+++ b/systemd/user/niri.service.wants/foot-server.service
@@ -0,0 +1 @@
+/usr/lib/systemd/user/foot-server.service \ No newline at end of file
diff --git a/systemd/user/niri.service.wants/hypridle.service b/systemd/user/niri.service.wants/hypridle.service
new file mode 120000
index 0000000..55da293
--- /dev/null
+++ b/systemd/user/niri.service.wants/hypridle.service
@@ -0,0 +1 @@
+/usr/lib/systemd/user/hypridle.service \ No newline at end of file
diff --git a/systemd/user/niri.service.wants/mako.service b/systemd/user/niri.service.wants/mako.service
new file mode 120000
index 0000000..e445bda
--- /dev/null
+++ b/systemd/user/niri.service.wants/mako.service
@@ -0,0 +1 @@
+/usr/lib/systemd/user/mako.service \ No newline at end of file
diff --git a/systemd/user/niri.service.wants/waybar.service b/systemd/user/niri.service.wants/waybar.service
new file mode 120000
index 0000000..c2a0b64
--- /dev/null
+++ b/systemd/user/niri.service.wants/waybar.service
@@ -0,0 +1 @@
+/usr/lib/systemd/user/waybar.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
new file mode 120000
index 0000000..c9f9acb
--- /dev/null
+++ b/systemd/user/niri.service.wants/wbg.service
@@ -0,0 +1 @@
+/home/eric/.config/systemd/user/wbg.service \ No newline at end of file
diff --git a/systemd/user/niri.service.wants/xwayland-satellite.service b/systemd/user/niri.service.wants/xwayland-satellite.service
new file mode 120000
index 0000000..698f04e
--- /dev/null
+++ b/systemd/user/niri.service.wants/xwayland-satellite.service
@@ -0,0 +1 @@
+/usr/lib/systemd/user/xwayland-satellite.service \ No newline at end of file
diff --git a/systemd/user/wbg.service b/systemd/user/wbg.service
new file mode 100644
index 0000000..229bace
--- /dev/null
+++ b/systemd/user/wbg.service
@@ -0,0 +1,8 @@
+[Unit]
+PartOf=graphical-session.target
+After=graphical-session.target
+Requisite=graphical-session.target
+
+[Service]
+ExecStart=/usr/bin/wbg "%h/Pictures/Backgrounds/Mandelbrot/mandelbrot_full_red.png"
+Restart=on-failure
diff --git a/waybar/config b/waybar/config
index 57a5e03..5ad6571 100644
--- a/waybar/config
+++ b/waybar/config
@@ -63,7 +63,7 @@
"<span color='#ee99a0'>▇</span>",
"<span color='#ed8796'>█</span>"
],
- "on-click": "footclient -o pad=0x0 btop -p 1",
+ "on-click": "footclient -o pad=0x0 btop",
},
"temperature": {
"interval": 5,
diff --git a/waybar/style.css b/waybar/style.css
index 343864f..5fa4d4c 100644
--- a/waybar/style.css
+++ b/waybar/style.css
@@ -28,35 +28,36 @@ crust: #181926;
*/
* {
- font-family: Hack Nerd Font;
+ font-family: Hack Nerd Font;
}
window#waybar {
- background: transparent;
- color: #cad3f5;
+ background: transparent;
+ color: #cad3f5;
}
tooltip,
.modules-left,
.modules-right {
- background: #24253a;
- border-radius: 10px;
- border-color: #363a4f;
- border-style: solid;
- border-width: 1px;
- padding-left: 2.5px;
- padding-right: 2.5px;
+ background: #24253a;
+ border-radius: 10px;
+ border-color: #ed8796;
+ border-style: solid;
+ border-width: 1px;
+ padding-left: 2px;
+ padding-right: 2px;
}
tooltip {
- background: #181926;
+ background: #181926;
}
+
tooltip label {
- color: #cad3f5;
+ color: #cad3f5;
}
.modules-left {
- padding-right: 0px;
+ padding-right: 0px;
}
#custom-cat,
@@ -72,74 +73,76 @@ tooltip label {
#disk,
#battery,
#clock {
- background: #181926;
- border-radius: 7.5px;
- padding-left: 7.5px;
- padding-right: 7.5px;
- margin-top: 2.5px;
- margin-bottom: 2.5px;
+ /*background: #181926;*/
+ border-radius: 7px;
+ padding-left: 7px;
+ padding-right: 7px;
+ margin-top: 2px;
+ margin-bottom: 2px;
}
#custom-cat {
- font-size: 20px;
- background: #cad3f5;
- border-radius: 360px;
- margin: 3px;
- padding: 5px;
+ font-size: 22px;
+ background: #cad3f5;
+ border-radius: 7px;
+ margin: 3px;
+ margin-left: 1px;
+ margin-right: 3px;
+ padding: 5px;
}
#workspaces {
- padding-left: 0px;
- padding-right: 0px;
+ padding: 0px;
+ margin: 3px;
}
#tray {
- margin-right: 2.5px;
+ margin-right: 2px;
}
#tray menu {
- background: #181926;
- color: #cad3f5;
- border-radius: 10px;
+ background: #181926;
+ color: #cad3f5;
+ border-radius: 10px;
}
#temperature.critical {
- background: #ed8796;
- color: #181926;
+ background: #ed8796;
+ color: #181926;
}
#battery.warning {
- background: #f5a97f;
- color: #181926;
+ background: #f5a97f;
+ color: #181926;
}
+
#battery.critical {
- background: #ed8796;
- color: #181926;
+ background: #ed8796;
+ color: #181926;
}
#battery.charging {
- background: #a6da95;
- color: #181926;
+ background: #a6da95;
+ color: #181926;
}
#workspaces button {
- color: #6e738d;
- border-radius: 7.5px;
- background: #181926;
- border-width: 0px;
+ color: #6e738d;
+ border-radius: 7px;
+ /*background: #181926;*/
+ border-width: 0px;
}
#workspaces button.active {
- color: #cad3f5;
+ color: #cad3f5;
}
#workspaces button.urgent {
- color: #181926;
- background: #ed8796;
+ color: #181926;
+ background: #ed8796;
}
#workspaces button:hover {
- color: #181926;
- background: #cad3f5;
+ color: #181926;
+ background: #cad3f5;
}
-