diff options
| author | eric.marin <maarin.eric@gmail.com> | 2024-12-18 21:06:41 +0100 |
|---|---|---|
| committer | eric.marin <maarin.eric@gmail.com> | 2024-12-18 21:06:41 +0100 |
| commit | 000a7c2a4c4bda36f655f6489b5bac3211515a5d (patch) | |
| tree | 8a5fe85f0632fcca678f0204a4288e6b3423f772 | |
| parent | b0cfdab1e93f660fda8f9398e30c9c996a1760f3 (diff) | |
| download | dotfiles-000a7c2a4c4bda36f655f6489b5bac3211515a5d.tar.gz dotfiles-000a7c2a4c4bda36f655f6489b5bac3211515a5d.zip | |
niri and fuzzel
26 files changed, 735 insertions, 142 deletions
@@ -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; } - |
