diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | config/emacs/init.el | 2 | ||||
| -rw-r--r-- | config/git/config | 2 | ||||
| -rw-r--r-- | config/kitty/kitty.conf | 6 | ||||
| -rw-r--r-- | config/niri/config.kdl | 83 | ||||
| -rw-r--r-- | config/nvim/init.lua | 5 | ||||
| -rw-r--r-- | config/nvim/lazy-lock.json | 38 | ||||
| -rw-r--r-- | config/nvim/lua/dap_config.lua | 2 | ||||
| -rw-r--r-- | config/nvim/lua/lsp.lua | 1 | ||||
| -rw-r--r-- | config/nvim/lua/plugins.lua | 2 | ||||
| -rw-r--r-- | config/nvim/lua/treesitter_config.lua | 11 | ||||
| -rw-r--r-- | config/rmpc/config.ron | 273 | ||||
| -rw-r--r-- | config/rmpc/themes/rbdr.ron | 330 | ||||
| -rw-r--r-- | config/sway/config | 1 | ||||
| -rw-r--r-- | config/swaylock/config | 23 | ||||
| -rw-r--r-- | config/waybar/config.jsonc | 21 | ||||
| -rw-r--r-- | config/waybar/power_menu.xml | 5 | ||||
| -rwxr-xr-x | config/waybar/scripts/ivpn.sh | 38 | ||||
| -rwxr-xr-x | config/waybar/scripts/mullvad.sh | 37 | ||||
| -rw-r--r-- | config/waybar/style.css | 8 | ||||
| -rw-r--r-- | home/age-recipients | 4 | ||||
| -rw-r--r-- | home/zshrc | 5 | ||||
| -rwxr-xr-x | provision | 9 | ||||
| -rw-r--r-- | provisioning/pacman_essential | 6 | ||||
| -rw-r--r-- | provisioning/pacman_gui | 26 | ||||
| -rw-r--r-- | provisioning/pacman_nice | 12 |
26 files changed, 833 insertions, 119 deletions
@@ -8,6 +8,8 @@ config/nvim/lua/init_local.lua config/karabiner/automatic_backups/* config/aerc/accounts.conf config/emacs/elpa +config/emacs/eln-cache +config/emacs/ido.last config/nvim/oleoboard.saved config/mpd/database config/mpd/state diff --git a/config/emacs/init.el b/config/emacs/init.el index fdc6bba..4593228 100644 --- a/config/emacs/init.el +++ b/config/emacs/init.el @@ -7,7 +7,7 @@ (setq display-line-numbers-type 'relative) ;; Color / Theme -(load-theme 'deeper-blue t) +; (load-theme 'deeper-blue t) ;; Chrome (menu-bar-mode -1) diff --git a/config/git/config b/config/git/config index 4c9ba68..7d4a869 100644 --- a/config/git/config +++ b/config/git/config @@ -24,7 +24,7 @@ [init] defaultBranch = main [diff] - external = difft + external = difft --color=always tool = vimdiff algorithm = histogram [merge] diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf index b20ccf5..f6caa8f 100644 --- a/config/kitty/kitty.conf +++ b/config/kitty/kitty.conf @@ -14,8 +14,8 @@ cursor_trail 1 # Mouse mouse_hide_wait 0 -background_opacity 1.0 -background_blur 12 +background_opacity 0.9 +background_blur 1 # Color Scheme - Ruben Tranquil Light foreground #0F261F @@ -206,7 +206,7 @@ color15 #B5D1CC # window hide_window_decorations titlebar-only -wayland_titlebar_color background +wayland_titlebar_color system window_margin_width 10 5 5 tab_bar_style custom tab_bar_margin_width 5.0 diff --git a/config/niri/config.kdl b/config/niri/config.kdl index cea0845..89f970a 100644 --- a/config/niri/config.kdl +++ b/config/niri/config.kdl @@ -6,12 +6,17 @@ environment { DISPLAY ":0" MOZ_ENABLE_WAYLAND "1" - QT_QPA_PLATFORM "wayland-egl" + QT_QPA_PLATFORM "wayland" + QT_WAYLAND_DISABLE_WINDOWDECORATION "0" + QT_QPA_PLATFORMTHEME "kde" + QT_QPA_PLATFORMTHEME_QT6 "kde" SDL_VIDEODRIVER "wayland" _JAVA_AWT_WM_NONREPARENTING "1" ELECTRON_OZONE_PLATFORM_HINT "auto" MPD_HOST "music.bdr.place" - XDG_CURRENT_DESKTOP "gnome" + XDG_SESSION_TYPE "wayland" + XDG_CURRENT_DESKTOP "plasma" + XDG_MENU_PREFIX "arch- kbuildsycoca6 --noincremental" } // Input device configuration. @@ -47,7 +52,7 @@ input { mouse { // off - // natural-scroll + natural-scroll // accel-speed 0.2 // accel-profile "flat" // scroll-method "no-scroll" @@ -77,12 +82,19 @@ gestures { } } -// You can configure outputs by their name, which you can find -// by running `niri msg outputs` while inside a niri instance. -// The built-in laptop monitor is usually called "eDP-1". -// Find more information on the wiki: -// https://github.com/YaLTeR/niri/wiki/Configuration:-Outputs -// Remember to uncomment the node by removing "/-"! +output "HDMI-A-1" { + mode "2560x1440@60.000" + scale 1 + transform "normal" + position x=1280 y=0 +} + +output "DP-1" { + mode "5120x2880@60.000" + variable-refresh-rate on-demand=true + scale 2 +} + output "eDP-1" { // Uncomment this line to disable this output. // off @@ -135,9 +147,9 @@ layout { // For example, you can perfectly fit four windows sized "proportion 0.25" on an output. // The default preset widths are 1/3, 1/2 and 2/3 of the output. proportion 0.25 - proportion 0.33333 + proportion 0.3 proportion 0.5 - proportion 0.66667 + proportion 0.7 // Fixed sets the width in logical pixels exactly. // fixed 1920 @@ -147,7 +159,7 @@ layout { // preset-window-heights { } // You can change the default width of the new windows. - default-column-width { proportion 0.5; } + default-column-width { proportion 0.3; } // If you leave the brackets empty, the windows themselves will decide their initial width. // default-column-width {} @@ -254,14 +266,28 @@ layout { } } +blur { + passes 2 + offset 3 + noise 0.25 + saturation 1 +} + // Add lines like this to spawn processes at startup. // Note that running niri as a session supports xdg-desktop-autostart, // which may be more convenient to use. // See the binds section below for more spawn examples. // spawn-at-startup "alacritty" "-e" "fish" -spawn-at-startup "xwayland-satellite" -spawn-at-startup "wl-paste" "--watch" "cliphist" "store" +// xwayland-satellite is spawned by niri itself since 25.08 — a second manual instance fights over the clipboard +// spawn-at-startup "xwayland-satellite" +// Secret Service provider (org.freedesktop.secrets) via KWallet, needed by noctalia +spawn-at-startup "/usr/bin/ksecretd" +// The portal daemon keeps the XDG_CURRENT_DESKTOP it started under; restart it +// so it re-reads niri-portals.conf after switching from a Plasma session +spawn-at-startup "systemctl" "--user" "restart" "xdg-desktop-portal.service" spawn-at-startup "systemctl" "--user" "import-environment" "MPD_HOST" +spawn-at-startup "noctalia" +spawn-at-startup "~/.local/bin/idle.sh" // Uncomment this line to ask the clients to omit their client-side decorations if possible. // If the client will specifically ask for CSD, the request will be honored. @@ -305,6 +331,10 @@ window-rule { window-rule { match is-focused=false + opacity 0.8 + background-effect { + blur true + } shadow { on softness 15 @@ -333,6 +363,11 @@ window-rule { open-floating true } +window-rule { + match app-id=r#"org.kde.plasma.emojier"# + open-floating true +} + layer-rule { match namespace="^wallpaper$" place-within-backdrop true @@ -373,6 +408,7 @@ window-rule { window-rule { geometry-corner-radius 4 clip-to-geometry true + draw-border-with-background false } binds { @@ -392,10 +428,10 @@ binds { // Suggested binds for running programs: terminal, app launcher, screen locker. Mod+Return hotkey-overlay-title="Open Terminal (kitty)" { spawn "kitty"; } - Mod+Space hotkey-overlay-title="Open Launcher (Desktop)" { spawn "j4-dmenu-desktop" "-d" "bemenu --single-instance -i -n -H 26 --hp 10 --fn 'InputSansCompressed Light 10' -p '>' --ff '#0f261F' --tf '#23C17C' --nf '#0f261F' --cf '#23C17C2' --af '#00140d' --hb '#23C17C' --hf '#DAE6E3' --nb '#DAE6E3' --tb '#DAE6E3' --fb '#DAE6E3' --cb '#DAE6E3' --ab '#DAE6E3'";} + Mod+Space { spawn-sh "noctalia msg panel-toggle launcher"; } Mod+Shift+Space hotkey-overlay-title="Open Launcher (Terminal)" { spawn "bemenu-run" "--single-instance" "-i" "-n" "-H" "26" "--hp" "10" "--fn" "InputSansCompressed Light 10" "-p" ">" "--ff" "#0f261F" "--tf" "#23C17C" "--nf" "#0f261F" "--cf" "#23C17C2" "--af" "#00140d" "--hb" "#23C17C" "--hf" "#0f261F" "--hf" "#DAE6E3" "--nb" "#DAE6E3" "--tb" "#DAE6E3" "--fb" "#DAE6E3" "--cb" "#DAE6E3" "--ab" "#DAE6E3";} - Mod+Alt+L hotkey-overlay-title="Lock Screen" { spawn "swaylock"; } - Mod+Ctrl+Space hotkey-overlay-title="Emoji Picker (smile)" { spawn "flatpak" "run" "it.mijorus.smile"; } + Mod+Alt+L hotkey-overlay-title="Lock Screen" { spawn "noctalia" "msg" "session" "lock"; } + Mod+Ctrl+Space hotkey-overlay-title="Emoji Picker" { spawn "plasma-emojier" "--replace"; } // You can also use a shell. Do this if you need pipes, multiple commands, etc. // Note: the entire command goes as a single argument in the end. @@ -424,12 +460,12 @@ binds { XF86Search hotkey-overlay-title="Contacts" { spawn "bash" "-c" "~/.dotfiles/scripts/contacts.sh"; } - Mod+V hotkey-overlay-title="Open Clipboard Manager" { spawn "bash" "-c" "cliphist list | bemenu --single-instance -i -l 10 -n -H 26 --hp 10 --fn 'InputSansCompressed Light 10' -p '>' --ff '#0f261F' --tf '#23C17C' --nf '#0f261F' --cf '#23C17C2' --af '#00140d' --hb '#23C17C' --hf '#0f261F' --hf '#DAE6E3' --nb '#DAE6E3' --tb '#DAE6E3' --fb '#DAE6E3' --cb '#DAE6E3' --ab '#DAE6E3' | cliphist decode | wl-copy"; } + Mod+V hotkey-overlay-title="Open Clipboard Manager" { spawn "noctalia" "msg" "panel-open" "clipboard"; } Mod+grave hotkey-overlay-title="Quick Terminal" { spawn "kitten" "quick-access-terminal"; } - XF86AudioMicMute { spawn "wpaperctl" "next"; } - Shift+XF86AudioMicMute { spawn "wpaperctl" "previous"; } - Mod+Alt+Ctrl+XF86AudioMicMute hotkey-overlay-title=null { spawn "~/.wpaperalt"; } + Mod+F5 { spawn "noctalia" "msg" "wallpaper-next"; } + Mod+Shift+F5 { spawn "noctalia" "msg" "wallpaper-previous"; } + Mod+Alt+Shift+F5 hotkey-overlay-title=null { spawn "~/.wpaperalt"; } XF86LaunchA { toggle-overview; } Mod+XF86LaunchA hotkey-overlay-title="Open App Grid" { spawn "wofi"; } @@ -454,6 +490,11 @@ binds { Mod+Ctrl+K { move-window-up; } Mod+Ctrl+L { move-column-right; } + // Binds for the Mouse + Ctrl+Left { focus-column-left; } + Ctrl+Right { focus-column-right; } + Ctrl+Up { toggle-overview; } + // Alternative commands that move across workspaces when reaching // the first or last window in a column. // Mod+J { focus-window-or-workspace-down; } diff --git a/config/nvim/init.lua b/config/nvim/init.lua index 92695d2..0b447a8 100644 --- a/config/nvim/init.lua +++ b/config/nvim/init.lua @@ -5,6 +5,7 @@ vim.opt.number = true -- Show number column vim.opt.wrap = false -- Don't wrap text vim.opt.list = true -- Display tabs and trailing space +vim.opt.listchars='tab:▷·,trail:·,extends:,precedes:,nbsp:🞎' vim.opt.cursorline = true -- Highlight cursor line vim.opt.colorcolumn='80,150' -- Show color columns @@ -63,12 +64,10 @@ vim.keymap.set('n', '<C-S-k>', function() end, { expr = true, silent = true }) vim.keymap.set('i', '<C-S-j>', '<Esc>:m .+1<CR>==gi') vim.keymap.set('i', '<C-S-k>', '<Esc>:m .-2<CR>==gi') -vim.keymap.set('v', '<C-S-j>', ':m \'>+2<CR>gv=gv') +vim.keymap.set('v', '<C-S-j>', ':m \'>+1<CR>gv=gv') vim.keymap.set('v', '<C-S-k>', ':m \'<-2<CR>gv=gv') -- Navigate the location list -vim.keymap.set('n', '<M-j>', ':lnext<CR>') -vim.keymap.set('n', '<M-k>', ':lprev<CR>') vim.keymap.set('n', '<M-S-j>', ':cnext<CR>') vim.keymap.set('n', '<M-S-k>', ':cprev<CR>') diff --git a/config/nvim/lazy-lock.json b/config/nvim/lazy-lock.json index 96a45e3..de3dbce 100644 --- a/config/nvim/lazy-lock.json +++ b/config/nvim/lazy-lock.json @@ -1,42 +1,42 @@ { "FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" }, - "R.nvim": { "branch": "main", "commit": "72032fbe3732c6c1e0b8b21dd348408e392a543e" }, + "R.nvim": { "branch": "main", "commit": "ef081566170e20d536bfaab168eb8841c0753b1c" }, "blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" }, "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, - "fzf-lua": { "branch": "main", "commit": "10c19a5f08bfeed34b930a1efddda3a9a983e6e2" }, + "fzf-lua": { "branch": "main", "commit": "05e44d38de0a79c11fba5f7bf8138791b1dbdd1e" }, "gemini.vim": { "branch": "master", "commit": "c9efb59c97b71c28d4678c79fd21fbdd3a69d196" }, - "image.nvim": { "branch": "master", "commit": "da2be65c153ba15a14a342b05591652a6df70d58" }, + "image.nvim": { "branch": "master", "commit": "5c6f29a5069e1f7bd5773ce5907454063b0f125d" }, "jannotate.nvim": { "branch": "main", "commit": "6bb5fb17d7da5437ea27a6079216cc5663d5e717" }, "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, "lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" }, - "lean.nvim": { "branch": "main", "commit": "e979471bdc6817da901e38a581b670ed88081af2" }, + "lean.nvim": { "branch": "main", "commit": "3d8027a96ada0fe43bdd01403e1bd4a09d175448" }, "lua-utils.nvim": { "branch": "main", "commit": "e565749421f4bbb5d2e85e37c3cef9d56553d8bd" }, "marginalie.nvim": { "branch": "main", "commit": "0f7fa3e0b558eae20dd56d6ff62d08595a1b88d5" }, "marks.nvim": { "branch": "master", "commit": "f353e8c08c50f39e99a9ed474172df7eddd89b72" }, - "mini.icons": { "branch": "main", "commit": "bac6317300e205335df425296570d84322730067" }, + "mini.icons": { "branch": "main", "commit": "98faae31e9be1cc054ae63485e58ceb185efcad0" }, "neogen": { "branch": "main", "commit": "23e7e9f883d01289ebd90e98025acc860ea26366" }, "neorg": { "branch": "main", "commit": "a09e0bb9b32e2d0406d4503ae8c1a7ad2ca83eae" }, "neorg-interim-ls": { "branch": "main", "commit": "898898f48fe7a2364d99d32f0dfd95dab5f8591f" }, - "neotest": { "branch": "master", "commit": "ad991822b7076b1d940b33a9d6d0d30416d5df81" }, - "neotest-rspec": { "branch": "main", "commit": "e7dc67c1167a9e593c804a6be6808ba9a5920d43" }, + "neotest": { "branch": "master", "commit": "27bf921498043f7ecd821d6db68d05de244bbd02" }, + "neotest-rspec": { "branch": "main", "commit": "7629f8c2837becb72090fbafce58506bb56a00f0" }, "neotest-rust": { "branch": "main", "commit": "2c9941d4a358839918fac21d20fc8fef0e1ad05f" }, "nota.nvim": { "branch": "main", "commit": "4f22d307fb9fd0f44f6e6767b97869a238f18160" }, - "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" }, + "nui.nvim": { "branch": "main", "commit": "10fc361835c856ba4233ef5ea135b919bf3dce97" }, + "nvim-autopairs": { "branch": "master", "commit": "430522f95fe4fb7c511ec64f8c1a90cc6a66c05c" }, "nvim-biscuits": { "branch": "main", "commit": "d93dcdee3a3dfd5101785447658e744f153957db" }, - "nvim-dap": { "branch": "master", "commit": "45a69eba683a2c448dd9ecfc4de89511f0646b5f" }, - "nvim-dap-ui": { "branch": "master", "commit": "1a66cabaa4a4da0be107d5eda6d57242f0fe7e49" }, - "nvim-lspconfig": { "branch": "master", "commit": "31026a13eefb20681124706a79fc1df6bf11ab27" }, - "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, - "nvim-surround": { "branch": "main", "commit": "2e93e154de9ff326def6480a4358bfc149d5da2c" }, - "nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" }, + "nvim-dap": { "branch": "master", "commit": "9e848e09a697ee95302a3ef2dd43fd6eb709e570" }, + "nvim-dap-ui": { "branch": "master", "commit": "cc9dd33aade7f20bae414d0cba163bc60d4d4b43" }, + "nvim-lspconfig": { "branch": "master", "commit": "ee1e369181a9e64904cdd7b739e98c70778cfc71" }, + "nvim-nio": { "branch": "master", "commit": "edcc181a875301dd21840189aa2f2f9ad69fc172" }, + "nvim-surround": { "branch": "main", "commit": "8b47db616ef658b8fc27e61db2896aa2f40134de" }, + "nvim-treesitter": { "branch": "main", "commit": "427e9222363d07c32d6db6169e4049c28d58d141" }, "nvim-treesitter-endwise": { "branch": "master", "commit": "8fe8a95630f4f2c72a87ba1927af649e0bfaa244" }, - "nvim-treesitter-textobjects": { "branch": "main", "commit": "851e865342e5a4cb1ae23d31caf6e991e1c99f1e" }, - "oil.nvim": { "branch": "master", "commit": "0fcc83805ad11cf714a949c98c605ed717e0b83e" }, - "pathlib.nvim": { "branch": "main", "commit": "57e5598af6fe253761c1b48e0b59b7cd6699e2c1" }, + "nvim-treesitter-textobjects": { "branch": "main", "commit": "898ee307df58f854d11cd7edd06472574d48014e" }, + "oil.nvim": { "branch": "master", "commit": "b73018b75affd13fa38e2fc94ef753b465f770d7" }, + "pathlib.nvim": { "branch": "main", "commit": "a0d3dbbe00ce6a546426b1aed3838a82fe6bfc42" }, "plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" }, "snes-syntax-vim": { "branch": "master", "commit": "a6a699c8905f7b6119bf91e44f960667d9f03d59" }, - "sniprun": { "branch": "master", "commit": "6416f98924018385f7f5ebfe8dc773a4482426e4" }, + "sniprun": { "branch": "master", "commit": "647995168a0682b359dfbf49bd3b0e8b9f2026dc" }, "tree-sitter-api-notation": { "branch": "main", "commit": "9fecd8fabdc688b125f3a5e36060a7577549b71e" }, "tree-sitter-norg": { "branch": "main", "commit": "d7edfaf89198aab652c7a1f0f818196efedaccfb" }, "tree-sitter-norg-meta": { "branch": "main", "commit": "729d4e54fb881ba0ddf0f925ec78401354c7c6db" }, diff --git a/config/nvim/lua/dap_config.lua b/config/nvim/lua/dap_config.lua index c8f8d32..3a639c6 100644 --- a/config/nvim/lua/dap_config.lua +++ b/config/nvim/lua/dap_config.lua @@ -23,7 +23,7 @@ end) dap.adapters.lldb = { type = 'executable', - command = '/Applications/Xcode.app/Contents/Developer/usr/bin/lldb-dap', -- adjust as needed, must be absolute path + command = '/usr/bin/lldb-dap', -- adjust as needed, must be absolute path name = 'lldb' } diff --git a/config/nvim/lua/lsp.lua b/config/nvim/lua/lsp.lua index f5718c4..69bb557 100644 --- a/config/nvim/lua/lsp.lua +++ b/config/nvim/lua/lsp.lua @@ -12,7 +12,6 @@ vim.lsp.enable('ruby_lsp') vim.lsp.enable('hls') vim.lsp.enable('julials') vim.lsp.enable('r_language_server') -vim.lsp.enable('leanls') -- Enable inlay hints for Rust when LSP attaches vim.api.nvim_create_autocmd('LspAttach', { diff --git a/config/nvim/lua/plugins.lua b/config/nvim/lua/plugins.lua index 2feda55..9166b63 100644 --- a/config/nvim/lua/plugins.lua +++ b/config/nvim/lua/plugins.lua @@ -346,7 +346,7 @@ require('lazy').setup({ ["core.dirman"] = { config = { workspaces = { - brain = "~/brain", + brain = "~/Brain", }, default_workspace = "brain", } diff --git a/config/nvim/lua/treesitter_config.lua b/config/nvim/lua/treesitter_config.lua index 15b9327..0bc307f 100644 --- a/config/nvim/lua/treesitter_config.lua +++ b/config/nvim/lua/treesitter_config.lua @@ -1,6 +1,7 @@ require('nvim-treesitter').install { 'bash', 'css', + 'csv', 'dart', 'diff', 'dockerfile', @@ -15,7 +16,6 @@ require('nvim-treesitter').install { 'json', 'julia', 'kotlin', - 'lean', 'lua', 'make', 'markdown', @@ -31,3 +31,12 @@ require('nvim-treesitter').install { 'typescript', 'yaml' } + +vim.api.nvim_create_autocmd('User', { pattern = 'TSUpdate', +callback = function() + require('nvim-treesitter.parsers').lean = { + install_info = { + url = 'https://github.com/Julian/tree-sitter-lean', + }, + } +end}) diff --git a/config/rmpc/config.ron b/config/rmpc/config.ron new file mode 100644 index 0000000..ce99cc0 --- /dev/null +++ b/config/rmpc/config.ron @@ -0,0 +1,273 @@ +#![enable(implicit_some)] +#![enable(unwrap_newtypes)] +#![enable(unwrap_variant_newtypes)] +( + address: "music.bdr.place:6600", + password: None, + theme: Some("rbdr"), + cache_dir: None, + on_song_change: None, + volume_step: 5, + max_fps: 30, + scrolloff: 0, + wrap_navigation: false, + enable_mouse: true, + scroll_amount: 1, + enable_config_hot_reload: true, + enable_lyrics_hot_reload: false, + status_update_interval_ms: 1000, + rewind_to_start_sec: None, + keep_state_on_song_change: true, + reflect_changes_to_playlist: false, + select_current_song_on_change: false, + ignore_leading_the: false, + browser_song_sort: [Disc, Track, Artist, Title], + directories_sort: SortFormat(group_by_type: true, reverse: false), + auto_open_downloads: true, + album_art: ( + method: Auto, + max_size_px: (width: 1200, height: 1200), + disabled_protocols: ["http://", "https://"], + vertical_align: Center, + horizontal_align: Center, + ), + keybinds: ( + global: { + "q": Quit, + "?": ShowHelp, + ":": CommandMode, + "oI": ShowCurrentSongInfo, + "oo": ShowOutputs, + "op": ShowDecoders, + "od": ShowDownloads, + "oP": Partition(), + "z": ToggleRepeat, + "x": ToggleRandom, + "c": ToggleConsume, + "v": ToggleSingle, + "p": TogglePause, + "s": Stop, + ">": NextTrack, + "<": PreviousTrack, + "f": SeekForward, + "b": SeekBack, + ".": VolumeUp, + ",": VolumeDown, + "<Tab>": NextTab, + "gt": NextTab, + "<S-Tab>": PreviousTab, + "gT": PreviousTab, + "1": SwitchToTab("Queue"), + "2": SwitchToTab("Directories"), + "3": SwitchToTab("Artists"), + "4": SwitchToTab("Album Artists"), + "5": SwitchToTab("Albums"), + "6": SwitchToTab("Playlists"), + "7": SwitchToTab("Search"), + "<C-u>": Update, + "<C-U>": Rescan, + "R": AddRandom, + }, + navigation: { + "<C-c>": Close, + "<Esc>": Close, + "<CR>": Confirm, + "k": Up, + "<Up>": Up, + "j": Down, + "<Down>": Down, + "h": Left, + "<Left>": Left, + "l": Right, + "<Right>": Right, + "<C-w>k": PaneUp, + "<C-Up>": PaneUp, + "<C-w>j": PaneDown, + "<C-Down>": PaneDown, + "<C-w>h": PaneLeft, + "<C-Left>": PaneLeft, + "<C-w>l": PaneRight, + "<C-Right>": PaneRight, + "K": MoveUp, + "J": MoveDown, + "<C-u>": UpHalf, + "<C-d>": DownHalf, + "<C-b>": PageUp, + "<PageUp>": PageUp, + "<C-f>": PageDown, + "<PageDown>": PageDown, + "gg": Top, + "G": Bottom, + "<Space>": Select, + "<C-Space>": InvertSelection, + "/": EnterSearch, + "n": NextResult, + "N": PreviousResult, + "a": Add, + "A": AddAll, + "D": Delete, + "<C-r>": Rename, + "i": FocusInput, + "oi": ShowInfo, + "<C-z>": ContextMenu(), + "<C-s>s": Save(kind: Modal(all: false, duplicates_strategy: Ask)), + "<C-s>a": Save(kind: Modal(all: true, duplicates_strategy: Ask)), + "r": Rate(), + }, + queue: { + "d": Delete, + "D": DeleteAll, + "<CR>": Play, + "C": JumpToCurrent, + "X": Shuffle, + }, + ), + search: ( + case_sensitive: false, + ignore_diacritics: false, + search_button: false, + mode: Contains, + tags: [ + (value: "any", label: "Any Tag"), + (value: "artist", label: "Artist"), + (value: "album", label: "Album"), + (value: "albumartist", label: "Album Artist"), + (value: "title", label: "Title"), + (value: "filename", label: "Filename"), + (value: "genre", label: "Genre"), + ], + ), + artists: ( + album_display_mode: SplitByDate, + album_sort_by: Date, + album_date_tags: [Date], + ), + tabs: [ + ( + name: "Queue", + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "25%", + pane: Split( + direction: Vertical, + panes: [ + ( + size: "100%", + borders: "NONE", + border_symbols: Rounded, + pane: Pane(AlbumArt) + ) + ], + ), + ), + ( + size: "65%", + pane: Split( + direction: Vertical, + panes: [ + ( + size: "3", + borders: "ALL", + border_symbols: Inherited(parent: Rounded, bottom_left: "├", bottom_right: "┤",), + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "1", + pane: Pane(Empty()) + ), + ( + size: "100%", + pane: Pane(QueueHeader()) + ), + ] + ) + ), + ( + size: "100%", + borders: "LEFT | RIGHT | BOTTOM", + border_symbols: Rounded, + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "1", + pane: Pane(Empty()) + ), + ( + size: "100%", + pane: Pane(Queue) + ), + ] + ) + ), + ], + ) + ), + ], + ), + ), + ( + name: "Directories", + borders: "ALL", + border_symbols: Rounded, + pane: Split( + size: "100%", + direction: Vertical, + panes: [(pane: Pane(Directories), size: "100%", borders: "ALL", border_symbols: Rounded)], + ) + ), + ( + name: "Artists", + borders: "ALL", + border_symbols: Rounded, + pane: Split( + size: "100%", + direction: Vertical, + panes: [(pane: Pane(Artists), size: "100%", borders: "ALL", border_symbols: Rounded)], + ) + ), + ( + name: "Album Artists", + borders: "ALL", + border_symbols: Rounded, + pane: Split( + size: "100%", + direction: Vertical, + panes: [(pane: Pane(AlbumArtists), size: "100%", borders: "ALL", border_symbols: Rounded)], + ) + ), + ( + name: "Albums", + borders: "ALL", + border_symbols: Rounded, + pane: Split( + size: "100%", + direction: Vertical, + panes: [(pane: Pane(Albums), size: "100%", borders: "ALL", border_symbols: Rounded)], + ) + ), + ( + name: "Playlists", + borders: "ALL", + border_symbols: Rounded, + pane: Split( + size: "100%", + direction: Vertical, + panes: [(pane: Pane(Playlists), size: "100%", borders: "ALL", border_symbols: Rounded)], + ) + ), + ( + name: "Search", + borders: "ALL", + border_symbols: Rounded, + pane: Split( + size: "100%", + direction: Vertical, + panes: [(pane: Pane(Search), size: "100%", borders: "ALL", border_symbols: Rounded)], + ) + ), + ], +) diff --git a/config/rmpc/themes/rbdr.ron b/config/rmpc/themes/rbdr.ron new file mode 100644 index 0000000..e38c492 --- /dev/null +++ b/config/rmpc/themes/rbdr.ron @@ -0,0 +1,330 @@ +#![enable(implicit_some)] +#![enable(unwrap_newtypes)] +#![enable(unwrap_variant_newtypes)] +( + default_album_art_path: None, + format_tag_separator: " | ", + browser_column_widths: [20, 38, 42], + background_color: "#ffffff", + text_color: "black", + header_background_color: "#ffffff", + modal_background_color: None, + modal_backdrop: false, + preview_label_style: (fg: "yellow"), + preview_metadata_group_style: (fg: "yellow", modifiers: "Bold"), + highlighted_item_style: (fg: "blue", modifiers: "Bold"), + current_item_style: (fg: "#ffffff", bg: "blue", modifiers: "Bold"), + borders_style: (fg: "white"), + border_symbol_sets: { + "rbdr": ( + top_left: "a", + top_right: "b", + bottom_left: "c", + bottom_right: "d", + vertical_left: "|", + vertical_right: "|", + horizontal_top: "─", + horizontal_bottom: "-", + ), + }, + highlight_border_style: (fg: "blue"), + symbols: ( + song: "♬", + dir: " ", + playlist: "", + marker: "✳", + ellipsis: "…", + song_style: None, + dir_style: None, + playlist_style: None, + ), + level_styles: ( + info: (fg: "blue", bg: "black"), + warn: (fg: "yellow", bg: "black"), + error: (fg: "red", bg: "black"), + debug: (fg: "light_green", bg: "black"), + trace: (fg: "magenta", bg: "black"), + ), + progress_bar: ( + symbols: ["◖", "█", "◗", " ", "◗"], + track_style: None, + elapsed_style: (fg: "blue"), + thumb_style: (fg: "blue"), + use_track_when_empty: true, + ), + scrollbar: ( + symbols: ["│", "█", "▲", "▼"], + track_style: (), + ends_style: (), + thumb_style: (fg: "blue"), + ), + tab_bar: ( + active_style: (fg: "#ffffff", bg: "blue", modifiers: "Bold"), + inactive_style: (), + ), + lyrics: ( + timestamp: false + ), + browser_song_format: [ + ( + kind: Group([ + (kind: Property(Track)), + (kind: Text(" ")), + ]) + ), + ( + kind: Group([ + (kind: Property(Artist)), + (kind: Text(" - ")), + (kind: Property(Title)), + ]), + default: (kind: Property(Filename)) + ), + ], + song_table_format: [ + ( + prop: (kind: Property(Artist), + default: (kind: Text("Unknown")) + ), + label_prop: (kind: Text("Artist")), + width: "20%", + ), + ( + prop: (kind: Property(Title), + default: (kind: Text("Unknown")) + ), + label_prop: (kind: Text("Title")), + width: "35%", + ), + ( + prop: (kind: Property(Album), style: (fg: "cyan"), + default: (kind: Text("Unknown Album"), style: (fg: "white")) + ), + label_prop: (kind: Text("Album")), + width: "30%", + ), + ( + prop: (kind: Property(Duration), style: (fg: "dark_gray"), + default: (kind: Text("-")) + ), + label_prop: (kind: Text("Duration")), + width: "15%", + alignment: Right, + ), + ], + layout: Split( + direction: Vertical, + panes: [ + ( + size: "4", + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "35", + borders: "LEFT | TOP | BOTTOM", + border_symbols: Inherited(parent: Rounded, bottom_left: "├"), + pane: Component("header_left") + ), + ( + size: "100%", + borders: "ALL", + border_symbols: Inherited(parent: Rounded, top_left: "┬", top_right: "┬", bottom_left: "┴", bottom_right: "┴"), + pane: Component("header_center") + ), + ( + size: "35", + borders: "RIGHT | TOP | BOTTOM", + border_symbols: Inherited(parent: Rounded, bottom_right: "┤"), + pane: Component("header_right") + ), + ] + ) + ), + ( + pane: Pane(Tabs), + borders: "RIGHT | LEFT | BOTTOM", + border_symbols: Rounded, + size: "2", + ), + ( + pane: Pane(TabContent), + size: "100%", + ), + ( + size: "3", + borders: "TOP", + border_symbols: Library("rbdr"), + pane: Split( + direction: Horizontal, + panes: [ + ( + size: "4", + borders: "NONE", + pane: Component("input_mode") + ), + ( + size: "100%", + borders: "NONE", + pane: Component("progress_bar"), + ), + ( + size: "20", + borders: "NONE", + pane: Component("queue_status"), + ), + ] + ), + ), + ], + ), + components: { + "state": Pane(Property( + content: [ + (kind: Text("["), style: (fg: "yellow", modifiers: "Bold")), + (kind: Property(Status(StateV2( ))), style: (fg: "yellow", modifiers: "Bold")), + (kind: Text("]"), style: (fg: "yellow", modifiers: "Bold")), + ], align: Left, + )), + "title": Pane(Property( + content: [ + (kind: Property(Song(Title)), style: (modifiers: "Bold"), + default: (kind: Text("No Song"), style: (modifiers: "Bold"))), + ], align: Center, scroll_speed: 1 + )), + "volume": Split( + direction: Horizontal, + panes: [ + (size: "1", pane: Pane(Property(content: [(kind: Text(""))]))), + (size: "100%", pane: Pane(Volume(kind: Slider(symbols: (filled: "─", thumb: "●", track: "─"))))), + (size: "3", pane: Pane(Property(content: [(kind: Property(Status(Volume)), style: (fg: "blue"))], align: Right))), + (size: "2", pane: Pane(Property(content: [(kind: Text("%"), style: (fg: "blue"))]))), + ] + ), + "elapsed_and_bitrate": Pane(Property( + content: [ + (kind: Property(Status(Elapsed))), + (kind: Text(" / ")), + (kind: Property(Status(Duration))), + (kind: Group([ + (kind: Text(" (")), + (kind: Property(Status(Bitrate))), + (kind: Text(" kbps)")), + ])), + ], + align: Left, + )), + "artist_and_album": Pane(Property( + content: [ + (kind: Property(Song(Artist)), style: (fg: "yellow", modifiers: "Bold"), + default: (kind: Text("Unknown"), style: (fg: "yellow", modifiers: "Bold"))), + (kind: Text(" - ")), + (kind: Property(Song(Album)), default: (kind: Text("Unknown Album"))), + ], align: Center, scroll_speed: 1 + )), + "states": Split( + direction: Horizontal, + panes: [ + ( + size: "1", + pane: Pane(Empty()) + ), + ( + size: "100%", + pane: Pane(Property(content: [(kind: Property(Status(InputBuffer())), style: (fg: "blue"), align: Left)])) + ), + ( + size: "6", + pane: Pane(Property(content: [ + (kind: Text("["), style: (fg: "blue", modifiers: "Bold")), + (kind: Property(Status(RepeatV2( + on_label: "z", + off_label: "z", + on_style: (fg: "yellow", modifiers: "Bold"), + off_style: (fg: "blue", modifiers: "Dim"), + )))), + (kind: Property(Status(RandomV2( + on_label: "x", + off_label: "x", + on_style: (fg: "yellow", modifiers: "Bold"), + off_style: (fg: "blue", modifiers: "Dim"), + )))), + (kind: Property(Status(ConsumeV2( + on_label: "c", + off_label: "c", + oneshot_label: "c", + on_style: (fg: "yellow", modifiers: "Bold"), + off_style: (fg: "blue", modifiers: "Dim"), + oneshot_style: (fg: "red", modifiers: "Dim"), + )))), + (kind: Property(Status(SingleV2( + on_label: "v", + off_label: "v", + oneshot_label: "v", + on_style: (fg: "yellow", modifiers: "Bold"), + off_style: (fg: "blue", modifiers: "Dim"), + oneshot_style: (fg: "red", modifiers: "Bold"), + )))), + (kind: Text("]"), style: (fg: "blue", modifiers: "Bold")), + ], + align: Right + )) + ), + ] + ), + "input_mode": Pane(Property( + content: [ + (kind: Transform(Replace(content: (kind: Property(Status(InputMode()))), replacements: [ + (match: "Normal", replace: (kind: Text(" N "), style: (fg: "blue", bg: "#ffffff"))), + (match: "Insert", replace: (kind: Text(" I "), style: (fg: "green", bg: "#ffffff"))), + ]))) + ], align: Center + )), + "header_left": Split( + direction: Vertical, + panes: [ + (size: "1", pane: Component("state")), + (size: "1", pane: Component("elapsed_and_bitrate")), + ] + ), + "header_center": Split( + direction: Vertical, + panes: [ + (size: "1", pane: Component("title")), + (size: "1", pane: Component("artist_and_album")), + ] + ), + "header_right": Split( + direction: Vertical, + panes: [ + (size: "1", pane: Component("volume")), + (size: "1", pane: Component("states")), + ] + ), + "progress_bar": Split( + direction: Horizontal, + panes: [ + ( + size: "1", + pane: Pane(Empty()) + ), + ( + size: "100%", + pane: Pane(ProgressBar) + ), + ( + size: "1", + pane: Pane(Empty()) + ), + ] + ), + "queue_status": Pane(Property( + content: [ + (kind: Text("♬ ")), + (kind: Property(Status(QueueLength()))), + (kind: Text(" ")), + (kind: Property(Status(QueueTimeTotal()))), + ], + )), + }, +) diff --git a/config/sway/config b/config/sway/config index e9130d1..eff8db3 100644 --- a/config/sway/config +++ b/config/sway/config @@ -268,3 +268,4 @@ bar { } include /etc/sway/config.d/* + diff --git a/config/swaylock/config b/config/swaylock/config index fc8284e..6f46ab8 100644 --- a/config/swaylock/config +++ b/config/swaylock/config @@ -1,20 +1,22 @@ -font=InputMonoCompressed-Thin -font-size=20 -indicator-radius=70 -indicator-thickness=100 -color=24C17C +image=~/Bridge/wallpapers/patterns4x/arches.png +scaling=tile +font=InputMonoCompressed-ExtraLight +font-size=16 +indicator-radius=120 +indicator-thickness=120 +color=0000F1 text-color=FFFFFF00 text-clear-color=FFFFFF00 -text-ver-color=FFFFFF00 +text-ver-color=0000F1 -key-hl-color=24C17C +key-hl-color=CCCCCC bs-hl-color=DAE6E3 caps-lock-bs-hl-color=FA2B00 caps-lock-key-hl-color=FA2B00 -inside-color=4F8FE6 +inside-color=0000FF inside-clear-color=FAED8F -inside-ver-color=DAE6E3 +inside-ver-color=FFFFFF inside-wrong-color=FA2B00 line-color=FFFFFF @@ -24,7 +26,8 @@ ring-ver-color=FFFFFF ring-wrong-color=FFFFFF line-clear-color=FFFFFF +line-ver-color=FFFFFF -separator-color=FFFFFF +separator-color=FFFFFF00 inside-caps-lock-color=FF00FF diff --git a/config/waybar/config.jsonc b/config/waybar/config.jsonc index 48bedc7..2a9c8b3 100644 --- a/config/waybar/config.jsonc +++ b/config/waybar/config.jsonc @@ -11,7 +11,7 @@ ], "modules-right": [ "idle_inhibitor", - "custom/mullvad", + "custom/ivpn", "custom/tailscale", "wireplumber", "custom/builds", @@ -105,8 +105,9 @@ "menu": "on-click", "menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder "menu-actions": { - "shutdown": "shutdown", - "reboot": "reboot", + "logout": "niri msg action quit --skkip-confirmation", + "shutdown": "systemctl poweroff", + "reboot": "systemctl reboot", "suspend": "systemctl suspend", "hibernate": "systemctl hibernate" } @@ -117,7 +118,7 @@ "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}STP", "unknown-tag": "N/A", "interval": 5, - "timeout": "5", + "timeout": 5, "consume-icons": { "on": " " }, @@ -136,7 +137,9 @@ "playing": "" }, "tooltip-format": "{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}%", - "tooltip-format-disconnected": "MPD (disconnected)" + "tooltip-format-disconnected": "MPD (disconnected)", + "server": "music.bdr.place", + "port": 6600 }, "niri/language": { "format": "{short}" @@ -154,9 +157,9 @@ "return-type": "json", "interval": 3, }, - "custom/mullvad" : { - "exec": "~/.config/waybar/scripts/mullvad.sh --status", - "on-click": "~/.config/waybar/scripts/mullvad.sh --toggle", + "custom/ivpn" : { + "exec": "~/.config/waybar/scripts/ivpn.sh --status", + "on-click": "~/.config/waybar/scripts/ivpn.sh --toggle", "exec-on-event": true, "format": "<span font-weight='900'> {icon} </span>", "format-icons": { @@ -172,7 +175,7 @@ "icons": { "bitwarden": "/home/rbdr/.local/share/icons/Iconoir/pentagon.png", "signal desktop": "/home/rbdr/.local/share/icons/Iconoir/hexagon.png", - "mullvad vpn": "/home/rbdr/.local/share/icons/Iconoir/rhombus.png", + "ivpn": "/home/rbdr/.local/share/icons/Iconoir/rhombus.png", "Betterbird-systray-icon": "/home/rbdr/.local/share/icons/Iconoir/rhombus.png", "opensnitch-ui": "/home/rbdr/.local/share/icons/Iconoir/four-rhombuses.png", } diff --git a/config/waybar/power_menu.xml b/config/waybar/power_menu.xml index aa2a42c..c1a2ed5 100644 --- a/config/waybar/power_menu.xml +++ b/config/waybar/power_menu.xml @@ -2,6 +2,11 @@ <interface> <object class="GtkMenu" id="menu"> <child> + <object class="GtkMenuItem" id="logout"> + <property name="label">Log Out</property> + </object> + </child> + <child> <object class="GtkMenuItem" id="suspend"> <property name="label">Suspend</property> </object> diff --git a/config/waybar/scripts/ivpn.sh b/config/waybar/scripts/ivpn.sh new file mode 100755 index 0000000..9ff88fc --- /dev/null +++ b/config/waybar/scripts/ivpn.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +ivpn_status_output () { + ivpn status +} + +ivpn_connected () { + ivpn status | grep -q '^VPN.*: CONNECTED' +} + +toggle_status () { + if ivpn_connected; then + ivpn disconnect + else + ivpn connect -f + fi +} + +case $1 in + --status) + status_output="$(ivpn_status_output)" + if echo "$status_output" | grep -q '^VPN.*: CONNECTED'; then + # Line after "VPN : CONNECTED" holds server + location, + # e.g. "de.gw.ivpn.net [de3.gw.ivpn.net], Frankfurt (DE), Germany" + server_line=$(echo "$status_output" | awk '/^VPN.*CONNECTED/{getline; sub(/^[ \t]+/, ""); print}') + protocol=$(echo "$status_output" | awk -F': ' '/^[ \t]*Protocol/{print $2}') + server_ip=$(echo "$status_output" | awk -F': ' '/^[ \t]*Server IP/{print $2}') + endpoint="${server_line%%,*} (${protocol})" + location="${server_line#*, } (${server_ip})" + echo "{\"text\":\"\",\"class\":\"connected\",\"alt\":\"connected\", \"tooltip\": \"${endpoint}\\n${location}\"}" + else + echo "{\"text\":\"\",\"class\":\"disconnected\",\"alt\":\"disconnected\", \"tooltip\": \"VPN is not active.\"}" + fi + ;; + --toggle) + toggle_status + ;; +esac diff --git a/config/waybar/scripts/mullvad.sh b/config/waybar/scripts/mullvad.sh deleted file mode 100755 index e02bb2f..0000000 --- a/config/waybar/scripts/mullvad.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env bash - -STATUS_KEY="state" -RUNNING="connected" - -mullvad_status () { - status="$(mullvad status --json | jq -r '.'$STATUS_KEY)" - if [ "$status" = $RUNNING ]; then - return 0 - fi - return 1 -} - -toggle_status () { - if mullvad_status; then - mullvad disconnect - else - mullvad connect - fi -} - -case $1 in - --status) - if mullvad_status; then - status_json=$(mullvad status --json) - endpoint=$(echo "$status_json" | jq -r '.details.endpoint | "\(.tunnel_interface) (\(.tunnel_type))"') - location=$(echo "$status_json" | jq -r '.details.location | "\(.country), \(.city) (\(.ipv4))"') - echo "{\"text\":\"\",\"class\":\"connected\",\"alt\":\"connected\", \"tooltip\": \"${endpoint}\\n${location}\"}" - else - echo "{\"text\":\"\",\"class\":\"disconnected\",\"alt\":\"disconnected\", \"tooltip\": \"VPN is not active.\"}" - fi - ;; - --toggle) - toggle_status - ;; -esac - diff --git a/config/waybar/style.css b/config/waybar/style.css index 8a2b108..8526488 100644 --- a/config/waybar/style.css +++ b/config/waybar/style.css @@ -133,7 +133,7 @@ button:hover { margin-right: 8px; } -#custom-mullvad, +#custom-ivpn, #custom-tailscale { padding: 0 2px; } @@ -148,16 +148,16 @@ button:hover { background-color: #90A6A2; } -#custom-mullvad { +#custom-ivpn { padding-bottom: 3px; } -#custom-mullvad.connected { +#custom-ivpn.connected { color: #0F261F; background-color: #FFB4F0; } -#custom-mullvad.disconnected { +#custom-ivpn.disconnected { color: #0F261F; background-color: #B5D1CC; } diff --git a/home/age-recipients b/home/age-recipients index c59cd10..0a99bdc 100644 --- a/home/age-recipients +++ b/home/age-recipients @@ -1,3 +1,3 @@ age1r42nded7xmvfanq5mqqa0ld6v666f3mxtfqjstfygqg5yj2nte6s2tssjf -age1yubikey1qtdpuvjq6ywtnsxz55ugjlmhquewkzccqyyafr5ngw0w5433cjw7zr6nd2v -age1yubikey1q2wnvc90uqjfwu8pxwxexnzsue72m3xjpur73hr3ndcf9d69zq6rvsgmd9w +age1yubikey1qdwl9grctzt49h0tcleusvaytajfzdwzvnepz59wq3tt5fvwsqwajchhvgs +age1yubikey1qwyz0xdmpxvnuevnusw66336ga48mle4dk07akglgm8fywp3uusfk86npjm @@ -111,3 +111,8 @@ case ":$PATH:" in *) export PATH="$PNPM_HOME:$PATH" ;; esac # pnpm end + +[ -f "$HOME/.ghcup/env" ] && . "$HOME/.ghcup/env" # ghcup-env + +# Elan / Lean4 +export PATH="$HOME/.elan/bin:$PATH" @@ -18,8 +18,13 @@ else privilege="sudo" else if command -v pacman &> /dev/null; then - command_name="pacman" - install_command="-Sy" + if [[ "$1" == "flatpak" ]]; then + command_name="flatpak" + install_command="install" + else + command_name="pacman" + install_command="-Sy" + fi privilege="sudo" else if command -v apt &> /dev/null; then diff --git a/provisioning/pacman_essential b/provisioning/pacman_essential index a639a5a..da122a0 100644 --- a/provisioning/pacman_essential +++ b/provisioning/pacman_essential @@ -1,5 +1,6 @@ --noconfirm bat +chafa curl difftastic eza @@ -9,6 +10,11 @@ git-delta gnupg htop inetutils +jq +jujutsu +less +man-db +net-tools ripgrep rsync tmux diff --git a/provisioning/pacman_gui b/provisioning/pacman_gui index 2065d6c..392f3c1 100644 --- a/provisioning/pacman_gui +++ b/provisioning/pacman_gui @@ -1,5 +1,25 @@ --noconfirm +bitwarden +blueman +firefox +fsearch +gamemode +gamescope kitty -sway -bemenu -qutebrowser +noctalia +noto-fonts +noto-fonts-cjk +noto-fonts-emoji +noto-fonts-extra +niri +polkit-gnome +sane +sane-airscan +syncthing +ttf-input-nerd +ttf-nerd-fonts-symbols +ttf-nerd-fonts-symbols-common +ttf-nerd-fonts-symbols-mono +wev +wl-clipboard +xwayland-satellite diff --git a/provisioning/pacman_nice b/provisioning/pacman_nice index 3c80000..a4e7d15 100644 --- a/provisioning/pacman_nice +++ b/provisioning/pacman_nice @@ -1,4 +1,16 @@ --noconfirm aerc +avahi +bluez +btop +cups +cups-pdf +make +gcc +mpc +ncmpcpp +nss-mdns pandoc-cli +restic +tailscale tmuxp |