From b99375976e9abb95b88566ffb47664213a5e11eb Mon Sep 17 00:00:00 2001 From: Fern Garden Date: Wed, 7 May 2025 22:17:09 +0800 Subject: [PATCH] First commit --- private_dot_config/fuzzel/fuzzel.ini | 117 +++++++++ private_dot_config/gtklock/style.css | 6 + private_dot_config/kitty/kitty.conf | 48 ++++ private_dot_config/kitty/kitty.conf.bak | 42 ++++ private_dot_config/mako/config | 10 + private_dot_config/mpv/input.conf | 4 + private_dot_config/mpv/mpv.conf | 11 + private_dot_config/niri/config.kdl | 229 ++++++++++++++++++ private_dot_config/nvim/init.lua | 50 ++++ private_dot_config/nvim/lazy-lock.json | 4 + private_dot_config/nvim/lua/config/lazy.lua | 41 ++++ .../private_fish/completions/.keep | 0 .../private_fish/conf.d/rustup.fish | 1 + private_dot_config/private_fish/config.fish | 11 + .../private_fish/fish_variables | 31 +++ .../functions/empty_fish_greeting.fish | 0 .../private_fish/functions/n.fish | 37 +++ .../private_fish/functions/rs.fish | 3 + .../private_fish/functions/s.fish | 3 + .../private_fish/functions/xi.fish | 3 + .../private_fish/functions/xr.fish | 3 + .../private_fish/functions/xu.fish | 3 + private_dot_config/waybar/config | 100 ++++++++ private_dot_config/waybar/style.css | 98 ++++++++ 24 files changed, 855 insertions(+) create mode 100644 private_dot_config/fuzzel/fuzzel.ini create mode 100644 private_dot_config/gtklock/style.css create mode 100644 private_dot_config/kitty/kitty.conf create mode 100644 private_dot_config/kitty/kitty.conf.bak create mode 100644 private_dot_config/mako/config create mode 100644 private_dot_config/mpv/input.conf create mode 100644 private_dot_config/mpv/mpv.conf create mode 100644 private_dot_config/niri/config.kdl create mode 100644 private_dot_config/nvim/init.lua create mode 100644 private_dot_config/nvim/lazy-lock.json create mode 100644 private_dot_config/nvim/lua/config/lazy.lua create mode 100644 private_dot_config/private_fish/completions/.keep create mode 100644 private_dot_config/private_fish/conf.d/rustup.fish create mode 100644 private_dot_config/private_fish/config.fish create mode 100644 private_dot_config/private_fish/fish_variables create mode 100644 private_dot_config/private_fish/functions/empty_fish_greeting.fish create mode 100644 private_dot_config/private_fish/functions/n.fish create mode 100644 private_dot_config/private_fish/functions/rs.fish create mode 100644 private_dot_config/private_fish/functions/s.fish create mode 100644 private_dot_config/private_fish/functions/xi.fish create mode 100644 private_dot_config/private_fish/functions/xr.fish create mode 100644 private_dot_config/private_fish/functions/xu.fish create mode 100644 private_dot_config/waybar/config create mode 100644 private_dot_config/waybar/style.css diff --git a/private_dot_config/fuzzel/fuzzel.ini b/private_dot_config/fuzzel/fuzzel.ini new file mode 100644 index 0000000..6c0d8d2 --- /dev/null +++ b/private_dot_config/fuzzel/fuzzel.ini @@ -0,0 +1,117 @@ +# output= +font=Fira Sans +dpi-aware=auto +# use-bold=no +# prompt="> " +# placeholder= +# icon-theme=hicolor +# 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=$TERMINAL -e # Note: you cannot actually use environment variables here +# launch-prefix= +# list-executables-in-path=no + +# anchor=center +# x-margin=0 +# y-margin=0 +lines=12 +# width=30 +tabs=2 +horizontal-pad=8 +vertical-pad=8 +inner-pad=4 + +# image-size-ratio=0.5 + +#line-height=12 +# letter-spacing=0 + +layer=overlay +# keyboard-focus=on-demand +# exit-on-keyboard-focus-loss=yes + +# cache= + +# render-workers= +# match-workers= + +[colors] +background=151515ff +text=e3e8e8ff +prompt=a988b0ff +#placeholder=a98b90ff +input=e8e3e3ff +match=a98b90ff +selection=2e2e2eff +selection-text=e8e3e3ff +selection-match=a98b90ff +# counter=93a1a1ff +border=a988b0ff + +[border] +width=1 +radius=0 + +[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/private_dot_config/gtklock/style.css b/private_dot_config/gtklock/style.css new file mode 100644 index 0000000..7530b61 --- /dev/null +++ b/private_dot_config/gtklock/style.css @@ -0,0 +1,6 @@ +window { + background-image: url("/home/fern/Nextcloud/Pictures/Wallpapers/ferns0.jpg"); + background-size: cover; + background-repeat: no-repeat; + background-position: center; +} diff --git a/private_dot_config/kitty/kitty.conf b/private_dot_config/kitty/kitty.conf new file mode 100644 index 0000000..7b4c0de --- /dev/null +++ b/private_dot_config/kitty/kitty.conf @@ -0,0 +1,48 @@ +window_padding_width 8 +font_size 12 + +allow_remote_control yes + +foreground #E8E3E3 +background #151515 +url_color #E8E3E3 + +# black +color0 #151515 +color8 #424242 + +# red +color1 #B66467 +color9 #B66467 + +# green +color2 #8C977D +color10 #8C977D + +# yellow +color3 #D9BC8C +color11 #D9BC8C + +# blue +color4 #8DA3B9 +color12 #8DA3B9 + +# magenta +color5 #A988B0 +color13 #A988B0 + +# cyan +color6 #8AA6A2 +color14 #8AA6A2 + +# white +color7 #E8E3E3 +color15 #E8E3E3 + + +# BEGIN_KITTY_FONTS +font_family family='FiraCode Nerd Font' postscript_name=FiraCodeNF-Reg +bold_font family='FiraCode Nerd Font' postscript_name=FiraCodeNF-Bold +italic_font auto +bold_italic_font auto +# END_KITTY_FONTS diff --git a/private_dot_config/kitty/kitty.conf.bak b/private_dot_config/kitty/kitty.conf.bak new file mode 100644 index 0000000..276ed04 --- /dev/null +++ b/private_dot_config/kitty/kitty.conf.bak @@ -0,0 +1,42 @@ +font_family FiraCode Nerd Font +bold_font FiraCode Nerd Font Bold +italic_font JetBrains Mono Italic +bold_italic_font JetBrains Mono Bold Italic +window_padding_width 15 +font_size 10 + +foreground #E8E3E3 +background #151515 +url_color #E8E3E3 + +# black +color0 #151515 +color8 #424242 + +# red +color1 #B66467 +color9 #B66467 + +# green +color2 #8C977D +color10 #8C977D + +# yellow +color3 #D9BC8C +color11 #D9BC8C + +# blue +color4 #8DA3B9 +color12 #8DA3B9 + +# magenta +color5 #A988B0 +color13 #A988B0 + +# cyan +color6 #8AA6A2 +color14 #8AA6A2 + +# white +color7 #E8E3E3 +color15 #E8E3E3 diff --git a/private_dot_config/mako/config b/private_dot_config/mako/config new file mode 100644 index 0000000..23bf50d --- /dev/null +++ b/private_dot_config/mako/config @@ -0,0 +1,10 @@ +layer=overlay +default-timeout=10000 +padding=20 +margin=6 +border-size=1 + +font=Fira Sans +background-color=#151515FF +text-color=#E8E3E3FF +border-color=#A988B9FF diff --git a/private_dot_config/mpv/input.conf b/private_dot_config/mpv/input.conf new file mode 100644 index 0000000..0af37c4 --- /dev/null +++ b/private_dot_config/mpv/input.conf @@ -0,0 +1,4 @@ +Shift+g add sub-scale +0.1 +Shift+f add sub-scale -0.1 +Alt+= add video-zoom 0.01 +Alt+- add video-zoom -0.01 diff --git a/private_dot_config/mpv/mpv.conf b/private_dot_config/mpv/mpv.conf new file mode 100644 index 0000000..a49adb6 --- /dev/null +++ b/private_dot_config/mpv/mpv.conf @@ -0,0 +1,11 @@ +hwdec=auto-safe +vo=gpu +profile=gpu-hq +gpu-context=wayland +geometry=80% +volume-max=100 +sub-use-margins=no +sub-font-size=30 +sub-back-color=0.0/0.0/0.0 +sub-color=1.0/1.0/1.0 +screenshot-directory=~/Nextcloud/Pictures/Screenshots/mpv diff --git a/private_dot_config/niri/config.kdl b/private_dot_config/niri/config.kdl new file mode 100644 index 0000000..f9f9ba5 --- /dev/null +++ b/private_dot_config/niri/config.kdl @@ -0,0 +1,229 @@ +input { + keyboard { + repeat-delay 250 + repeat-rate 50 + } + + touchpad { + tap + } + + trackpoint { + accel-speed 1.0 + } +} + +layout { + gaps 12 + + center-focused-column "never" + + preset-column-widths { + proportion 0.33333 + proportion 0.5 + proportion 0.66667 + } + + default-column-width { proportion 0.5; } + focus-ring { + width 2 + active-color "#8c977d" + inactive-color "#424242" + } + + shadow { + on + softness 30 + spread 5 + offset x=0 y=5 + color "#151515" + } +} + +environment { + QT_QPA_PLATFORM "wayland" + QT_QPA_PLATFORM_THEME "qt5ct:qt6ct" + DISPLAY ":0" + GTK_CSD "0" +} + +// Spawn services +spawn-at-startup "xwayland-satellite" +spawn-at-startup "swaybg" "-i" "/home/fern/Nextcloud/Pictures/Wallpapers/ferns0.jpg" +spawn-at-startup "waybar" +spawn-at-startup "pipewire" +spawn-at-startup "nextcloud" "--background" +spawn-at-startup "gnome-keyring-daemon" "-d" +spawn-at-startup "udiskie" "-a" "-n" "-t" "-F" "--no-terminal" +spawn-at-startup "wlsunset" "-l" "-27.6" "-L" "121.6" + +// Spawn apps +spawn-at-startup "firefox" +spawn-at-startup "flatpak" "run" "im.fluffychat.Fluffychat" +spawn-at-startup "flatpak" "run" "org.jeffvli.feishin" +spawn-at-startup "flatpak" "run" "org.signal.Signal" +spawn-at-startup "flatpak" "run" "md.obsidian.Obsidian" + +hotkey-overlay { + skip-at-startup +} +prefer-no-csd + +screenshot-path "~/Nextcloud/Screenshots/muskduck/Screenshot from %Y-%m-%d %H-%M-%S.png" + +window-rule { + match app-id="Firefox" at-startup=true + open-maximized true + open-on-workspace "browser" +} + +window-rule { + match app-id="^libreoffice" + match app-id="^gimp-3.0" + open-maximized true + open-on-workspace "work" +} + +window-rule { + match app-id="PrismLauncher$" + open-on-workspace "games" +} + +window-rule { + match title="^Minecraft" + open-on-workspace "games" + open-fullscreen true +} + +window-rule { + match app-id="feishin" + open-on-workspace "media" + open-maximized true +} + +window-rule { + match app-id="Signal" + match app-id="fluffychat" + open-on-workspace "chat" + open-maximized true +} + +window-rule { + match app-id="obsidian" + open-on-workspace "notes" + open-maximized true +} + +binds { + Mod+Return { spawn "kitty"; } + Mod+Space { spawn "fuzzel"; } + Mod+E { spawn "bemoji" "-t" "-c" "-n"; } + + XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "1%+"; } + XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "1%-"; } + XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; } + XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; } + + XF86AudioPlay allow-when-locked=true { spawn "playerctl" "play-pause"; } + XF86AudioRewind allow-when-locked=true { spawn "playerctl" "previous"; } + XF86AudioForward allow-when-locked=true { spawn "playerctl" "next"; } + + XF86MonBrightnessDown allow-when-locked=true { spawn "brillo" "-U" "5"; } + XF86MonBrightnessUp allow-when-locked=true { spawn "brillo" "-A" "5"; } + XF86Tools allow-when-locked=true { spawn "brillo" "-S" "100"; } + + XF86Display { spawn "wdisplays"; } + + Mod+Q { close-window; } + + Mod+H { focus-column-or-monitor-left; } + Mod+J { focus-window-or-workspace-down; } + Mod+K { focus-window-or-workspace-up; } + Mod+L { focus-column-or-monitor-right; } + + Mod+Shift+H { move-column-left-or-to-monitor-left; } + Mod+Shift+L { move-column-right-or-to-monitor-right; } + Mod+Shift+J { move-window-down-or-to-workspace-down; } + Mod+Shift+K { move-window-up-or-to-workspace-up; } + + Mod+Tab { focus-monitor-next; } + + Mod+U { focus-workspace-down; } + Mod+I { focus-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+Shift+1 { move-column-to-workspace 1; } + Mod+Shift+2 { move-column-to-workspace 2; } + Mod+Shift+3 { move-column-to-workspace 3; } + Mod+Shift+4 { move-column-to-workspace 4; } + Mod+Shift+5 { move-column-to-workspace 5; } + Mod+Shift+6 { move-column-to-workspace 6; } + Mod+Shift+7 { move-column-to-workspace 7; } + Mod+Shift+8 { move-column-to-workspace 8; } + Mod+Shift+9 { move-column-to-workspace 9; } + + Mod+BracketLeft { consume-or-expel-window-left; } + Mod+BracketRight { consume-or-expel-window-right; } + Mod+Comma { consume-window-into-column; } + Mod+Period { expel-window-from-column; } + + Mod+R { switch-preset-column-width; } + Mod+F { maximize-column; } + Mod+Shift+F { fullscreen-window; } + + Mod+C { center-column; } + + Mod+Minus { set-column-width "-10%"; } + Mod+Equal { set-column-width "+10%"; } + + Mod+Shift+Minus { set-window-height "-10%"; } + Mod+Shift+Equal { set-window-height "+10%"; } + + Mod+V { toggle-window-floating; } + Mod+Shift+V { switch-focus-between-floating-and-tiling; } + + Mod+W { toggle-column-tabbed-display; } + + Mod+P { screenshot-screen; } + Mod+Shift+P { screenshot; } + Mod+Ctrl+P { screenshot-window; } + + Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } + + Mod+Shift+E { spawn "power-menu"; } +} + +workspace "browser" { + open-on-output "Chimei Innolux Corporation 0x14F3 Unknown" +} + +workspace "work" { + open-on-output "Chimei Innolux Corporation 0x14F3 Unknown" +} + +workspace "games" { + open-on-output "Chimei Innolux Corporation 0x14F3 Unknown" +} + +workspace "media" { + open-on-output "Dell Inc. DELL P2018H FW7Y682903MU" +} + +workspace "chat" { + open-on-output "Dell Inc. DELL P2018H FW7Y682903MU" +} + +workspace "notes" { + open-on-output "Dell Inc. DELL P2018H FW7Y682903MU" +} diff --git a/private_dot_config/nvim/init.lua b/private_dot_config/nvim/init.lua new file mode 100644 index 0000000..1ce3e1a --- /dev/null +++ b/private_dot_config/nvim/init.lua @@ -0,0 +1,50 @@ +require("config.lazy") + +local hipatterns = require('mini.hipatterns') +local base16 = require('mini.base16') + +require('mini.comment').setup() +require('mini.completion').setup() +require('mini.pairs').setup() +require('mini.basics').setup() +require('mini.bracketed').setup() +require('mini.clue').setup() +require('mini.diff').setup() +require('mini.extra').setup() +require('mini.files').setup() +require('mini.git').setup() +require('mini.misc').setup() +require('mini.pick').setup() +require('mini.sessions').setup() +require('mini.cursorword').setup() +require('mini.icons').setup() +require('mini.indentscope').setup() +require('mini.notify').setup() +require('mini.statusline').setup() +require('mini.tabline').setup() +require('mini.trailspace').setup() +base16.setup({ + palette = { + base00 = "#151515", + base01 = "#1f1f1f", + base02 = "#2e2e2e", + base03 = "#424242", + base04 = "#bbb6b6", + base05 = "#e8e3e3", + base06 = "#e8e3e3", + base07 = "#e8e3e3", + base08 = "#b66467", + base09 = "#b66467", + base0A = "#d9bc8c", + base0B = "#8c977d", + base0C = "#8aa6a2", + base0D = "#8da3b9", + base0E = "#a988b0", + base0F = "#b66467", + } +}) +hipatterns.setup({ + highlighters = { + hex_color = hipatterns.gen_highlighter.hex_color(), + }, +}) diff --git a/private_dot_config/nvim/lazy-lock.json b/private_dot_config/nvim/lazy-lock.json new file mode 100644 index 0000000..408d0b9 --- /dev/null +++ b/private_dot_config/nvim/lazy-lock.json @@ -0,0 +1,4 @@ +{ + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, + "mini.nvim": { "branch": "main", "commit": "0420076298c4457f200c2de468f65d080597a347" } +} diff --git a/private_dot_config/nvim/lua/config/lazy.lua b/private_dot_config/nvim/lua/config/lazy.lua new file mode 100644 index 0000000..4deff19 --- /dev/null +++ b/private_dot_config/nvim/lua/config/lazy.lua @@ -0,0 +1,41 @@ +-- Bootstrap lazy.nvim +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +-- Make sure to setup `mapleader` and `maplocalleader` before +-- loading lazy.nvim so that mappings are correct. +-- This is also a good place to setup other settings (vim.opt) +vim.g.mapleader = " " +vim.g.maplocalleader = "\\" + +vim.opt.expandtab = true +vim.opt.shiftwidth = 2 +vim.opt.tabstop = 8 +vim.opt.softtabstop = 2 +vim.opt.number = true + +-- Setup lazy.nvim +require("lazy").setup({ + spec = { + -- import your plugins + { 'echasnovski/mini.nvim', version = '*' }, + }, + -- Configure any other settings here. See the documentation for more details. + -- colorscheme that will be used when installing plugins. + -- install = { colorscheme = { "habamax" } }, + -- automatically check for plugin updates + checker = { enabled = true }, +}) diff --git a/private_dot_config/private_fish/completions/.keep b/private_dot_config/private_fish/completions/.keep new file mode 100644 index 0000000..e69de29 diff --git a/private_dot_config/private_fish/conf.d/rustup.fish b/private_dot_config/private_fish/conf.d/rustup.fish new file mode 100644 index 0000000..e4cb363 --- /dev/null +++ b/private_dot_config/private_fish/conf.d/rustup.fish @@ -0,0 +1 @@ +source "$HOME/.cargo/env.fish" diff --git a/private_dot_config/private_fish/config.fish b/private_dot_config/private_fish/config.fish new file mode 100644 index 0000000..4d9bcfd --- /dev/null +++ b/private_dot_config/private_fish/config.fish @@ -0,0 +1,11 @@ +set -gx EDITOR "nvim" + +set -gx NNN_FCOLORS "070704020003030101060607" +set -gx NNN_OPTS 'a' +set -gx NNN_TRASH '1' +set -gx NNN_PLUGx 'p:preview-tui' +set -gx NNN_BMS "d:$HOME/Downloads;n:$HOME/Nextcloud;g:$HOME/git;m:/run/media/fern" + +if status is-interactive + # Commands to run in interactive sessions can go here +end diff --git a/private_dot_config/private_fish/fish_variables b/private_dot_config/private_fish/fish_variables new file mode 100644 index 0000000..74b1ee1 --- /dev/null +++ b/private_dot_config/private_fish/fish_variables @@ -0,0 +1,31 @@ +# This file contains fish universal variable definitions. +# VERSION: 3.0 +SETUVAR __fish_initialized:3800 +SETUVAR fish_color_autosuggestion:brblack +SETUVAR fish_color_cancel:\x2dr +SETUVAR fish_color_command:normal +SETUVAR fish_color_comment:red +SETUVAR fish_color_cwd:green +SETUVAR fish_color_cwd_root:red +SETUVAR fish_color_end:green +SETUVAR fish_color_error:brred +SETUVAR fish_color_escape:brcyan +SETUVAR fish_color_history_current:\x2d\x2dbold +SETUVAR fish_color_host:normal +SETUVAR fish_color_host_remote:yellow +SETUVAR fish_color_normal:normal +SETUVAR fish_color_operator:brcyan +SETUVAR fish_color_param:cyan +SETUVAR fish_color_quote:yellow +SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold +SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_status:red +SETUVAR fish_color_user:brgreen +SETUVAR fish_color_valid_path:\x2d\x2dunderline +SETUVAR fish_key_bindings:fish_default_key_bindings +SETUVAR fish_pager_color_completion:normal +SETUVAR fish_pager_color_description:yellow\x1e\x2di +SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline +SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan +SETUVAR fish_pager_color_selected_background:\x2dr diff --git a/private_dot_config/private_fish/functions/empty_fish_greeting.fish b/private_dot_config/private_fish/functions/empty_fish_greeting.fish new file mode 100644 index 0000000..e69de29 diff --git a/private_dot_config/private_fish/functions/n.fish b/private_dot_config/private_fish/functions/n.fish new file mode 100644 index 0000000..43569fb --- /dev/null +++ b/private_dot_config/private_fish/functions/n.fish @@ -0,0 +1,37 @@ +# Rename this file to match the name of the function +# e.g. ~/.config/fish/functions/n.fish +# or, add the lines to the 'config.fish' file. + +function n --wraps nnn --description 'support nnn quit and change directory' + # Block nesting of nnn in subshells + if test -n "$NNNLVL" -a "$NNNLVL" -ge 1 + echo "nnn is already running" + return + end + + # The behaviour is set to cd on quit (nnn checks if NNN_TMPFILE is set) + # If NNN_TMPFILE is set to a custom path, it must be exported for nnn to + # see. To cd on quit only on ^G, remove the "-x" from both lines below, + # without changing the paths. + if test -n "$XDG_CONFIG_HOME" + set -x NNN_TMPFILE "$XDG_CONFIG_HOME/nnn/.lastd" + else + set -x NNN_TMPFILE "$HOME/.config/nnn/.lastd" + end + + # Unmask ^Q (, ^V etc.) (if required, see `stty -a`) to Quit nnn + # stty start undef + # stty stop undef + # stty lwrap undef + # stty lnext undef + + # The command function allows one to alias this function to `nnn` without + # making an infinitely recursive alias + command nnn $argv + + if test -e $NNN_TMPFILE + source $NNN_TMPFILE + rm -- $NNN_TMPFILE + end +end + diff --git a/private_dot_config/private_fish/functions/rs.fish b/private_dot_config/private_fish/functions/rs.fish new file mode 100644 index 0000000..350bfd9 --- /dev/null +++ b/private_dot_config/private_fish/functions/rs.fish @@ -0,0 +1,3 @@ +function rs --wraps rsync --description 'rsync with good options' + rsync -avhP $argv +end diff --git a/private_dot_config/private_fish/functions/s.fish b/private_dot_config/private_fish/functions/s.fish new file mode 100644 index 0000000..70508cb --- /dev/null +++ b/private_dot_config/private_fish/functions/s.fish @@ -0,0 +1,3 @@ +function s --description 'SSH with kitty' + kitten ssh $argv +end diff --git a/private_dot_config/private_fish/functions/xi.fish b/private_dot_config/private_fish/functions/xi.fish new file mode 100644 index 0000000..285b1fa --- /dev/null +++ b/private_dot_config/private_fish/functions/xi.fish @@ -0,0 +1,3 @@ +function xi --wraps xbps-install --description 'Install a package' + sudo xbps-install $argv +end diff --git a/private_dot_config/private_fish/functions/xr.fish b/private_dot_config/private_fish/functions/xr.fish new file mode 100644 index 0000000..7196446 --- /dev/null +++ b/private_dot_config/private_fish/functions/xr.fish @@ -0,0 +1,3 @@ +function xr --wraps xbps-remove --description 'Remove a package' + sudo xbps-remove $argv +end diff --git a/private_dot_config/private_fish/functions/xu.fish b/private_dot_config/private_fish/functions/xu.fish new file mode 100644 index 0000000..695f545 --- /dev/null +++ b/private_dot_config/private_fish/functions/xu.fish @@ -0,0 +1,3 @@ +function xu --description 'Update the system' + sudo xbps-install -Syu +end diff --git a/private_dot_config/waybar/config b/private_dot_config/waybar/config new file mode 100644 index 0000000..fb50248 --- /dev/null +++ b/private_dot_config/waybar/config @@ -0,0 +1,100 @@ +{ + "layer": "top", + "position": "top", + + "modules-left": [ "niri/workspaces" ], + "modules-right": [ + "tray", + "idle_inhibitor", + "network#ethernet", + "network#wifi", + "battery#bat0", + "battery#bat1", + "wireplumber", + "clock" + ], + + "tray": { + "icon-size": 13, + "spacing": 8, + }, + + "idle_inhibitor": { + "tooltip": false, + "format": "{icon}", + "format-icons": { + "activated": "󰅶", + "deactivated": "󰒲", + }, + }, + + "niri/workspaces": { + "format": "{icon}", + "format-icons": { + "browser": "󰈹", + "work": "󰈙", + "games": "󰊗", + "media": "󰝚", + "chat": "󰭹", + "notes": "󰙏", + "default": "", + }, + }, + + "network#ethernet": { + "interface": "enp0s31f6", + "tooltip": false, + "format": "󰈀", + "format-disconnected": "", + }, + + "network#wifi": { + "interface": "wlp3s0", + "tooltip": true, + "tooltip-format": "{essid}", + "format": "{icon}", + "format-disconnected": "", + "format-icons": [ "󰤟", "󰤢", "󰤥", "󰤨" ], + "on-click": "nm-connection-editor", + }, + + "clock": { + "tooltip": true, + "tooltip-format": "{:%A %d %B}", + "format": "󰥔 {:%H:%M}", + }, + + "wireplumber": { + "on-click": "pavucontrol -t 3", + "tooltip": false, + "format": "{icon} {volume}%", + "format-muted": "󰝟", + "format-icons": [ "󰕿", "󰖀", "󰕾" ], + }, + + "battery#bat0": { + "bat": "BAT0", + "tooltip": true, + "tooltip-format": "BAT0: {capacity}%", + "states": { + "warning": 30, + "critical": 15, + }, + "format-icons": [ "󰁺","󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹" ], + "format": "{icon}", + "format-charging": "󰂄", + }, + + "battery#bat1": { + "bat": "BAT1", + "tooltip": true, + "tooltip-format": "BAT1: {capacity}%", + "states": { + "warning": 30, + "critical": 15, + }, + "format-icons": [ "󰁺","󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹" ], + "format": "{icon}", + "format-charging": "󰂄", + }, +} diff --git a/private_dot_config/waybar/style.css b/private_dot_config/waybar/style.css new file mode 100644 index 0000000..288a9c7 --- /dev/null +++ b/private_dot_config/waybar/style.css @@ -0,0 +1,98 @@ +* { + font-family: Fira Sans; + font-size: 16px; +} + +window#waybar { + background-color: #151515; + color: #e8e3e3; + border: none; +} + +button { + box-shadow: inset 0 -3px transparent; + border: none; + border-radius: 0; +} + +button:hover { + background: inherit; + box-shadow: inset 0 -2px #e3e8e8; +} + +#workspaces button { + padding: 5px 8px; + background-color: transparent; + color: #e8e3e3; +} + +#workspaces button:hover { + background: rgba(0, 0, 0, 0.2); +} + +#workspaces button.focused { + box-shadow: inset 0 -2px #e8e3e3; +} + +#workspaces button.urgent { + color: #b66467; +} + +#workspaces button.empty { + color: #424242; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#wireplumber, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#scratchpad, +#power-profiles-daemon, +#mpd { + padding: 5px 8px; + color: #e8e3e3; +} + +#window, +#workspaces { + margin: 0 4px; +} + +.modules-left > widget:first-child > #workspaces { + margin-left: 0; +} + +.modules-right > widget:last-child > #workspaces { + margin-right: 0; +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + +label:focus { + background-color: #e8e3e3; +} + + +#tray > .passive { + -gtk-icon-effect: dim; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: #eb4d4b; +}