diff --git a/dotfiles/.chezmoiignore b/dotfiles/.chezmoiignore index 00becb79..2d6d5006 100644 --- a/dotfiles/.chezmoiignore +++ b/dotfiles/.chezmoiignore @@ -4,3 +4,25 @@ .local/share/applications/io.neovim.nvim.desktop .local/bin/wezterm {{- end }} +{{- if (eq (env "XDG_CURRENT_DESKTOP") "niri") }} +.config/autostart/ksshaskpass.sh.desktop +.config/autostart/scripts/ksshaskpass.sh +.config/gtk-3.0 +.config/gtk-4.0 +.config/kglobalshortcutsrc +.config/klassy +.config/konsolerc +.config/kwinrc +.config/kwinrulesrc +.config/panel-colorizer +.config/wezterm +.local/share/applications/wezterm.desktop +.local/share/color-schemes +.local/share/konsole +.local/share/org.kde.syntax-highlighting +{{- else if (eq (env "XDG_CURRENT_DESKTOP") "kde") }} +.config/environment.d/90-dms.conf +.config/DankMaterialShell +.config/niri +.config/ghostty +{{- end }} diff --git a/dotfiles/.chezmoiscripts/run_onchange_brewfile.sh.tmpl b/dotfiles/.chezmoiscripts/run_onchange_brewfile.sh.tmpl index af61f57e..7cebb4f9 100755 --- a/dotfiles/.chezmoiscripts/run_onchange_brewfile.sh.tmpl +++ b/dotfiles/.chezmoiscripts/run_onchange_brewfile.sh.tmpl @@ -2,5 +2,5 @@ set -eo pipefail -# Brewfile hash: {{ include "dot_Brewfile" | sha256sum }} +# Brewfile hash: {{ include "dot_Brewfile.tmpl" | sha256sum }} brew bundle install --global diff --git a/dotfiles/.chezmoiscripts/run_onchange_plasma.sh b/dotfiles/.chezmoiscripts/run_onchange_plasma.sh index e4cc73f7..c0f215f6 100755 --- a/dotfiles/.chezmoiscripts/run_onchange_plasma.sh +++ b/dotfiles/.chezmoiscripts/run_onchange_plasma.sh @@ -4,6 +4,10 @@ set -eo pipefail config_dir="$HOME/.config" +if [ "$XDG_CURRENT_DESKTOP" != "KDE" ]; then + exit 0 +fi + kwriteconfig6 --file "$config_dir/dolphinrc" --group "DetailsMode" --key "ExpandableFolders" "false" kwriteconfig6 --file "$config_dir/dolphinrc" --group "DetailsMode" --key "PreviewSize" "32" kwriteconfig6 --file "$config_dir/dolphinrc" --group "General" --key "ConfirmClosingMultipleTabs" "false" diff --git a/dotfiles/dot_Brewfile b/dotfiles/dot_Brewfile.tmpl similarity index 93% rename from dotfiles/dot_Brewfile rename to dotfiles/dot_Brewfile.tmpl index 4649b837..b8d76e25 100644 --- a/dotfiles/dot_Brewfile +++ b/dotfiles/dot_Brewfile.tmpl @@ -70,7 +70,8 @@ brew "node" # java brew "gradle" brew "openjdk" - +{{ if (eq (env "XDG_CURRENT_DESKTOP") "KDE") }} # wezterm tap "wezterm/wezterm-linuxbrew" brew "wezterm/wezterm-linuxbrew/wezterm" +{{- end }} diff --git a/dotfiles/dot_Flatpakfile.tmpl b/dotfiles/dot_Flatpakfile.tmpl index 82c605e9..e725274e 100644 --- a/dotfiles/dot_Flatpakfile.tmpl +++ b/dotfiles/dot_Flatpakfile.tmpl @@ -1,12 +1,24 @@ org.freedesktop.Platform.ffmpeg-full//24.08 org.gtk.Gtk3theme.adw-gtk3 org.gtk.Gtk3theme.adw-gtk3-dark +org.mozilla.firefox + +{{- if (eq (env "XDG_CURRENT_DESKTOP") "KDE") }} org.kde.elisa org.kde.gwenview org.kde.kcalc org.kde.okular org.kde.haruna -org.mozilla.firefox +{{- else if (eq (env "XDG_CURRENT_DESKTOP") "niri") }} +io.github.kolunmi.Bazaar +org.gnome.Evolution +org.gnome.Loupe +org.gnome.Papers +org.gnome.Showtime +org.gnome.baobab +org.gnome.seahorse.Application +{{- end }} + {{- if not (eq .chezmoi.hostname "fermi") }} hu.irl.cameractrls diff --git a/dotfiles/dot_config/DankMaterialShell/black.json b/dotfiles/dot_config/DankMaterialShell/black.json new file mode 100644 index 00000000..e32f01f9 --- /dev/null +++ b/dotfiles/dot_config/DankMaterialShell/black.json @@ -0,0 +1,22 @@ +{ + "name": "Custom Black", + "primary": "#926ee4", + "primaryText": "#f8f8f2", + "primaryContainer": "#664D9F", + "secondary": "#760088", + "surface": "#000000", + "surfaceText": "#cdd6f4", + "surfaceContainer": "#121212", + "surfaceContainerHigh": "#202020", + "surfaceContainerHighest": "#555555", + "surfaceVariant": "#1e1e1e", + "surfaceVariantText": "#a6adc8", + "surfaceTint": "#555555", + "background": "#000000", + "backgroundText": "#f8f8f2", + "outline": "#3A2C5B", + "error": "#f38ba8", + "warning": "#f9e2af", + "info": "#94e2d5", + "matugen_type": "scheme-tonal-spot" +} diff --git a/dotfiles/dot_config/environment.d/90-dms.conf b/dotfiles/dot_config/environment.d/90-dms.conf new file mode 100644 index 00000000..57547ee2 --- /dev/null +++ b/dotfiles/dot_config/environment.d/90-dms.conf @@ -0,0 +1 @@ +QT_QPA_PLATFORMTHEME=qt6ct diff --git a/dotfiles/dot_config/fastfetch/config.jsonc b/dotfiles/dot_config/fastfetch/config.jsonc index 4da623b6..10e3ca89 100644 --- a/dotfiles/dot_config/fastfetch/config.jsonc +++ b/dotfiles/dot_config/fastfetch/config.jsonc @@ -33,6 +33,6 @@ ], "logo": { "type": "builtin", - "source": "fedora-kinoite" + "source": "fedora" } } diff --git a/dotfiles/dot_config/ghostty/config b/dotfiles/dot_config/ghostty/config new file mode 100644 index 00000000..b55d1fed --- /dev/null +++ b/dotfiles/dot_config/ghostty/config @@ -0,0 +1,58 @@ +font-family = JetBrainsMonoNL Nerd Font +font-feature = -calt, -liga, -dlig +font-size = 10 +font-style = Regular + +window-padding-x = 2 +window-padding-y = 2 +window-padding-balance = true +window-decoration = false + +window-inherit-working-directory = false +working-directory = home + +copy-on-select = clipboard +right-click-action = ignore + +theme = Catppuccin Mocha +background = #000000 +background-opacity = 0.85 +background-blur = true + +cursor-style = block +cursor-style-blink = false +shell-integration-features = no-cursor +app-notifications = false +resize-overlay = never +auto-update = off + +keybind = clear + +keybind = ctrl+shift+,=reload_config +keybind = ctrl+shift+l=clear_screen + +keybind = ctrl+shift+f=write_screen_file:open +keybind = ctrl+shift+y=write_screen_file:copy +keybind = ctrl+shift+p=write_screen_file:paste + +keybind = ctrl+shift+a=select_all +keybind = ctrl+shift+c=copy_to_clipboard +keybind = ctrl+shift+v=paste_from_clipboard + +keybind = ctrl+shift+i=inspector:toggle +keybind = ctrl+shift+p=toggle_command_palette + +keybind = ctrl+shift+q=quit +keybind = alt+f4=close_window + +keybind = ctrl+shift+equal=increase_font_size:1 +keybind = ctrl+shift++=increase_font_size:1 +keybind = ctrl+shift+-=decrease_font_size:1 +keybind = ctrl+shift+0=reset_font_size + +keybind = shift+arrow_down=adjust_selection:down +keybind = shift+arrow_left=adjust_selection:left +keybind = shift+arrow_right=adjust_selection:right +keybind = shift+arrow_up=adjust_selection:up +keybind = copy=copy_to_clipboard +keybind = paste=paste_from_clipboard diff --git a/dotfiles/dot_config/niri/config.kdl b/dotfiles/dot_config/niri/config.kdl new file mode 100644 index 00000000..820b53aa --- /dev/null +++ b/dotfiles/dot_config/niri/config.kdl @@ -0,0 +1,162 @@ +spawn-at-startup "kdeconnect-indicator" + +hotkey-overlay { + skip-at-startup +} + +screenshot-path "~/Pictures/Screenshots/Screenshot_%Y%m%d-%H%M%S.png" + +window-rule { + match app-id=r#"firefox$"# title="^Picture-in-Picture$" + open-floating true +} + +binds { + Mod+Slash { show-hotkey-overlay; } + Mod+Return hotkey-overlay-title="Open Terminal" { spawn "ghostty"; } + Mod+E hotkey-overlay-title="Open File Manager" { spawn "nautilus"; } + Mod+B hotkey-overlay-title="Open Browser" { spawn "flatpak" "run" "org.mozilla.firefox"; } + Mod+Space hotkey-overlay-title="Application Launcher" { spawn "dms" "ipc" "call" "spotlight" "toggle"; } + Ctrl+Alt+Delete hotkey-overlay-title="Task Manager" { spawn "dms" "ipc" "call" "processlist" "toggle"; } + + Mod+N hotkey-overlay-title="Notification Center" { + spawn "dms" "ipc" "call" "notifications" "toggle"; + } + + Mod+Alt+L hotkey-overlay-title="Lock Screen" { + spawn "dms" "ipc" "call" "lock" "lock"; + } + + XF86AudioPlay allow-when-locked=true { spawn "playerctl" "play-pause"; } + XF86AudioNext allow-when-locked=true { spawn "playerctl" "next"; } + XF86AudioPrev allow-when-locked=true { spawn "playerctl" "previous"; } + XF86AudioRaiseVolume allow-when-locked=true { spawn "dms" "ipc" "call" "audio" "increment" "3"; } + XF86AudioLowerVolume allow-when-locked=true { spawn "dms" "ipc" "call" "audio" "decrement" "3"; } + XF86AudioMute allow-when-locked=true { spawn "dms" "ipc" "call" "audio" "mute"; } + XF86AudioMicMute allow-when-locked=true { spawn "dms" "ipc" "call" "audio" "micmute"; } + + XF86MonBrightnessUp allow-when-locked=true { spawn "dms" "ipc" "call" "brightness" "increment" "5" ""; } + XF86MonBrightnessDown allow-when-locked=true { spawn "dms" "ipc" "call" "brightness" "decrement" "5" ""; } + + Mod+S repeat=false { toggle-overview; } + Mod+Q repeat=false { close-window; } + + Mod+Left { focus-column-left; } + Mod+Down { focus-window-or-workspace-down; } + Mod+Up { focus-window-or-workspace-up; } + Mod+Right { focus-column-right; } + Mod+H { focus-column-left; } + Mod+J { focus-window-or-workspace-down; } + Mod+K { focus-window-or-workspace-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+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+U { focus-workspace-down; } + Mod+I { focus-workspace-up; } + Mod+Ctrl+U { move-column-to-workspace-down; } + Mod+Ctrl+I { move-column-to-workspace-up; } + Mod+Shift+U { move-workspace-down; } + Mod+Shift+I { move-workspace-up; } + + Super+Alt+Left { focus-column-left; } + Super+Alt+Down { focus-window-or-workspace-down; } + Super+Alt+Up { focus-window-or-workspace-up; } + Super+Alt+Right { focus-column-right; } + Super+Alt+H { focus-column-left; } + Super+Alt+J { focus-window-or-workspace-down; } + Super+Alt+K { focus-window-or-workspace-up; } + Super+Alt+L { focus-column-right; } + + 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+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+Shift+R { switch-preset-window-height; } + Mod+Ctrl+R { reset-window-height; } + Mod+F { maximize-column; } + Mod+Shift+F { fullscreen-window; } + + Mod+Ctrl+F { expand-column-to-available-width; } + + Mod+C { center-column; } + + Mod+Ctrl+C { center-visible-columns; } + + Mod+V { toggle-window-floating; } + Mod+Shift+V { switch-focus-between-floating-and-tiling; } + + Mod+W { toggle-column-tabbed-display; } + + Print { screenshot; } + Ctrl+Print { screenshot-screen; } + Alt+Print { screenshot-window; } + + // Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } + + Mod+Shift+E { quit; } + Mod+Shift+P { power-off-monitors; } +} + +include "dms/alttab.kdl" +include "dms/binds.kdl" +include "dms/colors.kdl" +include "dms/cursor.kdl" +include "dms/layout.kdl" +include "dms/outputs.kdl" +include "dms/wpblur.kdl" + +// include optional=true "local.kdl" diff --git a/dotfiles/dot_local/share/applications/io.neovim.nvim.desktop b/dotfiles/dot_local/share/applications/io.neovim.nvim.desktop.tmpl similarity index 70% rename from dotfiles/dot_local/share/applications/io.neovim.nvim.desktop rename to dotfiles/dot_local/share/applications/io.neovim.nvim.desktop.tmpl index c0caab0c..f3e7be75 100644 --- a/dotfiles/dot_local/share/applications/io.neovim.nvim.desktop +++ b/dotfiles/dot_local/share/applications/io.neovim.nvim.desktop.tmpl @@ -4,7 +4,12 @@ Comment=neovim Keywords=shell;prompt;command;commandline;cmd;editor; Icon=io.neovim.nvim StartupWMClass=io.neovim.nvim -Exec=/var/home/linuxbrew/.linuxbrew/bin/wezterm start --always-new-process --class=io.neovim.nvim zsh -c 'source ~/.zshrc && nvim %F' Type=Application Categories=Development; Terminal=false +{{- if (eq (env "XDG_CURRENT_DESKTOP") "KDE") }} +Exec=/var/home/linuxbrew/.linuxbrew/bin/wezterm start --always-new-process --class=io.neovim.nvim zsh -c 'source ~/.zshrc && nvim %F' +{{- else }} +# TODO fix +Exec=ghostty +new-window --class=io.neovim.nvim -e nvim %F +{{- end }}