Merge branch 'master' into stable

* master: (60 commits)
  Not that Retroarch doesnt work with 25.04
  Bump version
  Fix spelling
  Remove trailing CR
  Ignore here as well
  We do need to ignore migration failures
  Fix parameters
  Use proper form instead
  Continue even if migration fails
  Also install the assets!
  Have to copy over the shared config too
  Include the assets
  Make Alacritty configs compatible with v15+
  Turn off relative line numbers by default
  Not general purpose enough to keep after all
  Proper signing
  Explicitly use ulauncher from noble on plucky
  Hallucinations!
  Include assets
  Use fully qualified path
  ...
This commit is contained in:
David Heinemeier Hansson
2025-04-19 15:58:40 +02:00
42 changed files with 455 additions and 106 deletions

View File

@@ -3,7 +3,7 @@ cat <<EOF >~/.local/share/applications/About.desktop
Version=1.0
Name=About
Comment=System information from Fastfetch
Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/pane.toml --class=About --title=About -e bash -c 'fastfetch; read -n 1 -s'
Exec=alacritty --config-file /home/$USER/.config/alacritty/pane.toml --class=About --title=About -e bash -c 'fastfetch; read -n 1 -s'
Terminal=false
Type=Application
Icon=/home/$USER/.local/share/omakub/applications/icons/Ubuntu.png

View File

@@ -3,7 +3,7 @@ cat <<EOF >~/.local/share/applications/Activity.desktop
Version=1.0
Name=Activity
Comment=System activity from btop
Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/btop.toml --class=Activity --title=Activity -e btop
Exec=alacritty --config-file /home/$USER/.config/alacritty/btop.toml --class=Activity --title=Activity -e btop
Terminal=false
Type=Application
Icon=/home/$USER/.local/share/omakub/applications/icons/Activity.png

View File

@@ -3,7 +3,7 @@ cat <<EOF >~/.local/share/applications/Docker.desktop
Version=1.0
Name=Docker
Comment=Manage Docker containers with LazyDocker
Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/pane.toml --class=Docker --title=Docker -e lazydocker
Exec=alacritty --config-file /home/$USER/.config/alacritty/pane.toml --class=Docker --title=Docker -e lazydocker
Terminal=false
Type=Application
Icon=/home/$USER/.local/share/omakub/applications/icons/Docker.png

View File

@@ -3,7 +3,7 @@ cat <<EOF >~/.local/share/applications/Neovim.desktop
Version=1.0
Name=Neovim
Comment=Edit text files
Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/pane.toml --class=Neovim --title=Neovim -e nvim %F
Exec=alacritty --config-file /home/$USER/.config/alacritty/pane.toml --class=Neovim --title=Neovim -e nvim %F
Terminal=false
Type=Application
Icon=nvim

View File

@@ -3,7 +3,7 @@ cat <<EOF >~/.local/share/applications/Omakub.desktop
Version=1.0
Name=Omakub
Comment=Omakub Controls
Exec=alacritty --config-file /home/$USER/.local/share/omakub/defaults/alacritty/pane.toml --class=Omakub --title=Omakub -e omakub
Exec=alacritty --config-file /home/$USER/.config/alacritty/pane.toml --class=Omakub --title=Omakub -e omakub
Terminal=false
Type=Application
Icon=/home/$USER/.local/share/omakub/applications/icons/Omakub.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -1,7 +1,4 @@
#!/bin/bash
source $OMAKUB_PATH/ascii.sh
echo "" # Add spacing
echo " $(cat $OMAKUB_PATH/version)"
echo "" # Add spacing
source $OMAKUB_PATH/bin/omakub-sub/header.sh
source $OMAKUB_PATH/bin/omakub-sub/menu.sh

6
bin/omakub-sub/header.sh Normal file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
source $OMAKUB_PATH/ascii.sh
echo "" # Add spacing
echo " $(cat $OMAKUB_PATH/version)"
echo "" # Add spacing

View File

@@ -0,0 +1,24 @@
CHOICES=(
"Cursor AI Code Editor"
"Doom Emacs Emacs framework with curated list of packages"
"RubyMine IntelliJ's commercial Ruby editor"
"Windsurf Another AI Code Editor"
"Zed Fast all-purpose editor"
"<< Back "
)
CHOICE=$(gum choose "${CHOICES[@]}" --height 8 --header "Install editor")
if [[ "$CHOICE" == "<< Back"* ]] || [[ -z "$CHOICE" ]]; then
# Don't install anything
echo ""
else
INSTALLER=$(echo "$CHOICE" | awk -F ' {2,}' '{print $1}' | tr '[:upper:]' '[:lower:]' | sed 's/ /-/g')
INSTALLER_FILE="$OMAKUB_PATH/install/desktop/optional/app-$INSTALLER.sh"
source $INSTALLER_FILE && gum spin --spinner globe --title "Install completed!" -- sleep 3
fi
clear
source $OMAKUB_PATH/bin/omakub-sub/header.sh
source $OMAKUB_PATH/bin/omakub-sub/install.sh

View File

@@ -1,27 +1,25 @@
CHOICES=(
"Dev Editor Install alternative programming editors"
"Dev Language Install programming language environment"
"Dev Database Install development database in Docker"
"1password Manage your passwords securely across devices"
"Audacity Record and edit audio"
"ASDControl Set brightness on Apple Studio and XDR displays via cli"
"ASDControl Set brightness on Apple Studio and XDR displays"
"Brave Chrome-based browser with built-in ad blocking"
"Cursor The AI Code Editor"
"Doom Emacs Emacs framework with curated list of packages"
"Dropbox Sync files across computers with ease"
"Mainline Kernels Install newer Linux kernels than Ubuntu defaults"
"OBS Studio Record screencasts with inputs from both display + webcam"
"Ollama Run LLMs, like Meta's Llama3, locally"
"RubyMine IntelliJ's commercial Ruby editor"
"Retroarch Play retro games [Incompatible w/ 25.04]"
"Spotify Stream music from the world's most popular service"
"Steam Play games from Valve's store"
"VirtualBox Virtual machines to run Windows/Linux"
"Zed Fast all-purpose editor"
"Zoom Attend and host video chat meetings"
"> All Re-run any of the default installers"
"<< Back "
)
CHOICE=$(gum choose "${CHOICES[@]}" --height 22 --header "Install application")
CHOICE=$(gum choose "${CHOICES[@]}" --height 20 --header "Install application")
if [[ "$CHOICE" == "<< Back"* ]] || [[ -z "$CHOICE" ]]; then
# Don't install anything
@@ -37,6 +35,7 @@ else
INSTALLER=$(echo "$CHOICE" | awk -F ' {2,}' '{print $1}' | tr '[:upper:]' '[:lower:]' | sed 's/ /-/g')
case "$INSTALLER" in
"dev-editor") INSTALLER_FILE="$OMAKUB_PATH/bin/omakub-sub/install-dev-editor.sh" ;;
"dev-language") INSTALLER_FILE="$OMAKUB_PATH/install/terminal/select-dev-language.sh" ;;
"dev-database") INSTALLER_FILE="$OMAKUB_PATH/install/terminal/select-dev-storage.sh" ;;
"ollama") INSTALLER_FILE="$OMAKUB_PATH/install/terminal/optional/app-ollama.sh" ;;

View File

@@ -1 +1 @@
import = [ "~/.config/alacritty/theme.toml", "~/.config/alacritty/font.toml", "~/.config/alacritty/font-size.toml", "~/.local/share/omakub/defaults/alacritty.toml" ]
import = [ "~/.config/alacritty/theme.toml", "~/.config/alacritty/font.toml", "~/.config/alacritty/font-size.toml", "~/.config/alacritty/shared.toml" ]

View File

@@ -1,4 +1,5 @@
import = [ "~/.local/share/omakub/defaults/alacritty/pane.toml" ]
# Used by the Activity.desktop app
import = [ "~/.config/alacritty/pane.toml" ]
[window]
dimensions.columns = 121
@@ -8,4 +9,3 @@ dimensions.lines = 40
[colors.primary]
foreground = '#ffffff'
background = '#000000'

View File

@@ -0,0 +1,6 @@
# Used by the About.desktop, Activity.desktop, Docker.desktop, Omakub.desktop, and Neovim.desktop apps
import = [ "~/.config/alacritty/theme.toml", "~/.config/alacritty/font.toml", "~/.config/alacritty/font-size.toml", "~/.config/alacritty/shared.toml" ]
[window]
padding.x = 30
padding.y = 30

View File

@@ -0,0 +1,8 @@
return {
"folke/snacks.nvim",
opts = {
scroll = {
enabled = false, -- Disable scrolling animations
},
},
}

View File

@@ -1,3 +1,214 @@
theme "tokyo-night"
default_layout "compact"
on_force_close "quit"
default_mode "locked"
keybinds clear-defaults=true {
locked {
bind "Ctrl g" { SwitchToMode "normal"; }
}
pane {
bind "left" { MoveFocus "left"; }
bind "down" { MoveFocus "down"; }
bind "up" { MoveFocus "up"; }
bind "right" { MoveFocus "right"; }
bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; }
bind "d" { NewPane "down"; SwitchToMode "locked"; }
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "locked"; }
bind "f" { ToggleFocusFullscreen; SwitchToMode "locked"; }
bind "h" { MoveFocus "left"; }
bind "j" { MoveFocus "down"; }
bind "k" { MoveFocus "up"; }
bind "l" { MoveFocus "right"; }
bind "n" { NewPane; SwitchToMode "locked"; }
bind "p" { SwitchToMode "normal"; }
bind "r" { NewPane "right"; SwitchToMode "locked"; }
bind "w" { ToggleFloatingPanes; SwitchToMode "locked"; }
bind "x" { CloseFocus; SwitchToMode "locked"; }
bind "z" { TogglePaneFrames; SwitchToMode "locked"; }
bind "tab" { SwitchFocus; }
}
tab {
bind "left" { GoToPreviousTab; }
bind "down" { GoToNextTab; }
bind "up" { GoToPreviousTab; }
bind "right" { GoToNextTab; }
bind "1" { GoToTab 1; SwitchToMode "locked"; }
bind "2" { GoToTab 2; SwitchToMode "locked"; }
bind "3" { GoToTab 3; SwitchToMode "locked"; }
bind "4" { GoToTab 4; SwitchToMode "locked"; }
bind "5" { GoToTab 5; SwitchToMode "locked"; }
bind "6" { GoToTab 6; SwitchToMode "locked"; }
bind "7" { GoToTab 7; SwitchToMode "locked"; }
bind "8" { GoToTab 8; SwitchToMode "locked"; }
bind "9" { GoToTab 9; SwitchToMode "locked"; }
bind "[" { BreakPaneLeft; SwitchToMode "locked"; }
bind "]" { BreakPaneRight; SwitchToMode "locked"; }
bind "b" { BreakPane; SwitchToMode "locked"; }
bind "h" { GoToPreviousTab; }
bind "j" { GoToNextTab; }
bind "k" { GoToPreviousTab; }
bind "l" { GoToNextTab; }
bind "n" { NewTab; SwitchToMode "locked"; }
bind "r" { SwitchToMode "renametab"; TabNameInput 0; }
bind "s" { ToggleActiveSyncTab; SwitchToMode "locked"; }
bind "t" { SwitchToMode "normal"; }
bind "x" { CloseTab; SwitchToMode "locked"; }
bind "tab" { ToggleTab; }
}
resize {
bind "left" { Resize "Increase left"; }
bind "down" { Resize "Increase down"; }
bind "up" { Resize "Increase up"; }
bind "right" { Resize "Increase right"; }
bind "+" { Resize "Increase"; }
bind "-" { Resize "Decrease"; }
bind "=" { Resize "Increase"; }
bind "H" { Resize "Decrease left"; }
bind "J" { Resize "Decrease down"; }
bind "K" { Resize "Decrease up"; }
bind "L" { Resize "Decrease right"; }
bind "h" { Resize "Increase left"; }
bind "j" { Resize "Increase down"; }
bind "k" { Resize "Increase up"; }
bind "l" { Resize "Increase right"; }
bind "r" { SwitchToMode "normal"; }
}
move {
bind "left" { MovePane "left"; }
bind "down" { MovePane "down"; }
bind "up" { MovePane "up"; }
bind "right" { MovePane "right"; }
bind "h" { MovePane "left"; }
bind "j" { MovePane "down"; }
bind "k" { MovePane "up"; }
bind "l" { MovePane "right"; }
bind "m" { SwitchToMode "normal"; }
bind "n" { MovePane; }
bind "p" { MovePaneBackwards; }
bind "tab" { MovePane; }
}
scroll {
bind "Alt left" { MoveFocusOrTab "left"; SwitchToMode "locked"; }
bind "Alt down" { MoveFocus "down"; SwitchToMode "locked"; }
bind "Alt up" { MoveFocus "up"; SwitchToMode "locked"; }
bind "Alt right" { MoveFocusOrTab "right"; SwitchToMode "locked"; }
bind "e" { EditScrollback; SwitchToMode "locked"; }
bind "f" { SwitchToMode "entersearch"; SearchInput 0; }
bind "Alt h" { MoveFocusOrTab "left"; SwitchToMode "locked"; }
bind "Alt j" { MoveFocus "down"; SwitchToMode "locked"; }
bind "Alt k" { MoveFocus "up"; SwitchToMode "locked"; }
bind "Alt l" { MoveFocusOrTab "right"; SwitchToMode "locked"; }
bind "s" { SwitchToMode "normal"; }
}
search {
bind "c" { SearchToggleOption "CaseSensitivity"; }
bind "n" { Search "down"; }
bind "o" { SearchToggleOption "WholeWord"; }
bind "p" { Search "up"; }
bind "w" { SearchToggleOption "Wrap"; }
}
session {
bind "c" {
LaunchOrFocusPlugin "configuration" {
floating true
move_to_focused_tab true
}
SwitchToMode "locked"
}
bind "d" { Detach; }
bind "o" { SwitchToMode "normal"; }
bind "p" {
LaunchOrFocusPlugin "plugin-manager" {
floating true
move_to_focused_tab true
}
SwitchToMode "locked"
}
bind "w" {
LaunchOrFocusPlugin "session-manager" {
floating true
move_to_focused_tab true
}
SwitchToMode "locked"
}
}
shared_among "normal" "locked" {
bind "Alt left" { MoveFocusOrTab "left"; }
bind "Alt down" { MoveFocus "down"; }
bind "Alt up" { MoveFocus "up"; }
bind "Alt right" { MoveFocusOrTab "right"; }
bind "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
bind "Alt =" { Resize "Increase"; }
bind "Alt [" { PreviousSwapLayout; }
bind "Alt ]" { NextSwapLayout; }
bind "Alt f" { ToggleFloatingPanes; }
bind "Alt h" { MoveFocusOrTab "left"; }
bind "Alt i" { MoveTab "left"; }
bind "Alt j" { MoveFocus "down"; }
bind "Alt k" { MoveFocus "up"; }
bind "Alt l" { MoveFocusOrTab "right"; }
bind "Alt n" { NewPane; }
bind "Alt o" { MoveTab "right"; }
}
shared_except "locked" "renametab" "renamepane" {
bind "Ctrl g" { SwitchToMode "locked"; }
bind "Ctrl q" { Quit; }
}
shared_except "locked" "entersearch" {
bind "enter" { SwitchToMode "locked"; }
}
shared_except "locked" "entersearch" "renametab" "renamepane" {
bind "esc" { SwitchToMode "locked"; }
}
shared_except "locked" "entersearch" "renametab" "renamepane" "move" {
bind "m" { SwitchToMode "move"; }
}
shared_except "locked" "entersearch" "search" "renametab" "renamepane" "session" {
bind "o" { SwitchToMode "session"; }
}
shared_except "locked" "tab" "entersearch" "renametab" "renamepane" {
bind "t" { SwitchToMode "tab"; }
}
shared_except "locked" "tab" "scroll" "entersearch" "renametab" "renamepane" {
bind "s" { SwitchToMode "scroll"; }
}
shared_among "normal" "resize" "tab" "scroll" "prompt" "tmux" {
bind "p" { SwitchToMode "pane"; }
}
shared_except "locked" "resize" "pane" "tab" "entersearch" "renametab" "renamepane" {
bind "r" { SwitchToMode "resize"; }
}
shared_among "scroll" "search" {
bind "PageDown" { PageScrollDown; }
bind "PageUp" { PageScrollUp; }
bind "left" { PageScrollUp; }
bind "down" { ScrollDown; }
bind "up" { ScrollUp; }
bind "right" { PageScrollDown; }
bind "Ctrl b" { PageScrollUp; }
bind "Ctrl c" { ScrollToBottom; SwitchToMode "locked"; }
bind "d" { HalfPageScrollDown; }
bind "Ctrl f" { PageScrollDown; }
bind "h" { PageScrollUp; }
bind "j" { ScrollDown; }
bind "k" { ScrollUp; }
bind "l" { PageScrollDown; }
bind "u" { HalfPageScrollUp; }
}
entersearch {
bind "Ctrl c" { SwitchToMode "scroll"; }
bind "esc" { SwitchToMode "scroll"; }
bind "enter" { SwitchToMode "search"; }
}
renametab {
bind "esc" { UndoRenameTab; SwitchToMode "tab"; }
}
shared_among "renametab" "renamepane" {
bind "Ctrl c" { SwitchToMode "locked"; }
}
renamepane {
bind "esc" { UndoRenamePane; SwitchToMode "pane"; }
}
}

View File

@@ -1,5 +0,0 @@
import = [ "~/.local/share/omakub/defaults/alacritty/pane.toml" ]
[window]
dimensions.columns = 90
dimensions.lines = 30

View File

@@ -1,5 +0,0 @@
import = [ "~/.config/alacritty/theme.toml", "~/.config/alacritty/font.toml", "~/.config/alacritty/font-size.toml", "~/.local/share/omakub/defaults/alacritty.toml" ]
[window]
padding.x = 30
padding.y = 30

View File

@@ -36,3 +36,9 @@ webm2mp4() {
output_file="${input_file%.webm}.mp4"
ffmpeg -i "$input_file" -c:v libx264 -preset slow -crf 22 -c:a aac -b:a 192k "$output_file"
}
# Ensure that external keyboards that use an fn key has the F keys as the default
alias fix_fkeys='echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode'
# Spotify window is too large on many displays, so fix this by zooming it down
alias fix_spotify_window_size="sudo sed -i 's|^Exec=.*|Exec=spotify --force-device-scale-factor=1.5 %U|' /usr/local/share/applications/spotify.desktop"

View File

@@ -7,6 +7,10 @@ if command -v zoxide &> /dev/null; then
fi
if command -v fzf &> /dev/null; then
source /usr/share/bash-completion/completions/fzf
source /usr/share/doc/fzf/examples/key-bindings.bash
if [[ -f /usr/share/bash-completion/completions/fzf ]]; then
source /usr/share/bash-completion/completions/fzf
fi
if [[ -f /usr/share/doc/fzf/examples/key-bindings.bash ]]; then
source /usr/share/doc/fzf/examples/key-bindings.bash
fi
fi

View File

@@ -1,5 +1,6 @@
include "%L"
# Emoji
<Multi_key> <m> <s> : "😄" # smile
<Multi_key> <m> <c> : "😂" # cry
<Multi_key> <m> <l> : "😍" # love
@@ -23,3 +24,6 @@ include "%L"
<Multi_key> <m> <g> : "👋" # greeting
<Multi_key> <m> <a> : "💪" # arm
<Multi_key> <m> <b> : "🤯" # blowing
# Typography
<Multi_key> <space> <space> : "—"

View File

@@ -16,3 +16,13 @@ if [ "$ID" != "ubuntu" ] || [ $(echo "$VERSION_ID >= 24.04" | bc) != 1 ]; then
echo "Installation stopped."
exit 1
fi
# Check if running on x86
ARCH=$(uname -m)
if [ "$ARCH" != "x86_64" ] && [ "$ARCH" != "i686" ]; then
echo "$(tput setaf 1)Error: Unsupported architecture detected"
echo "Current architecture: $ARCH"
echo "This installation is only supported on x86 architectures (x86_64 or i686)."
echo "Installation stopped."
exit 1
fi

View File

@@ -2,78 +2,16 @@
sudo apt install -y alacritty
mkdir -p ~/.config/alacritty
cp ~/.local/share/omakub/configs/alacritty.toml ~/.config/alacritty/alacritty.toml
cp ~/.local/share/omakub/configs/alacritty/shared.toml ~/.config/alacritty/shared.toml
cp ~/.local/share/omakub/configs/alacritty/pane.toml ~/.config/alacritty/pane.toml
cp ~/.local/share/omakub/configs/alacritty/btop.toml ~/.config/alacritty/btop.toml
cp ~/.local/share/omakub/themes/tokyo-night/alacritty.toml ~/.config/alacritty/theme.toml
cp ~/.local/share/omakub/configs/alacritty/fonts/CaskaydiaMono.toml ~/.config/alacritty/font.toml
cp ~/.local/share/omakub/configs/alacritty/font-size.toml ~/.config/alacritty/font-size.toml
# Make alacritty default terminal emulator
sudo update-alternatives --set x-terminal-emulator /usr/bin/alacritty
# Migrate config format if needed
alacritty migrate 2>/dev/null || true
alacritty migrate -c ~/.config/alacritty/pane.toml 2>/dev/null || true
alacritty migrate -c ~/.config/alacritty/btop.toml 2>/dev/null || true
# Adding alacritty to nautilus contextual menu requires the python wrapper for the libraries
sudo apt install -y python3-nautilus
mkdir -p ~/.local/share/nautilus-python/extensions/
cat > ~/.local/share/nautilus-python/extensions/open-alacritty.py <<TECHNICALLYNOTACONFIGSOHEREDOCCEDITIS
import os
from urllib.parse import unquote
from gi.repository import Nautilus, GObject
from typing import List
class OpenTerminalExtension(GObject.GObject, Nautilus.MenuProvider):
def _open_terminal(self, file: Nautilus.FileInfo) -> None:
filename = unquote(file.get_uri()[7:])
os.chdir(filename)
os.system("alacritty")
def menu_activate_cb(
self,
menu: Nautilus.MenuItem,
file: Nautilus.FileInfo,
) -> None:
self._open_terminal(file)
def menu_background_activate_cb(
self,
menu: Nautilus.MenuItem,
file: Nautilus.FileInfo,
) -> None:
self._open_terminal(file)
def get_file_items(
self,
files: List[Nautilus.FileInfo],
) -> List[Nautilus.MenuItem]:
if len(files) != 1:
return []
file = files[0]
if not file.is_directory() or file.get_uri_scheme() != "file":
return []
item = Nautilus.MenuItem(
name="NautilusPython::openterminal_file_item",
label="Open in Alacritty",
tip="Open Alacritty In %s" % file.get_name(),
)
item.connect("activate", self.menu_activate_cb, file)
return [
item,
]
def get_background_items(
self,
current_folder: Nautilus.FileInfo,
) -> List[Nautilus.MenuItem]:
item = Nautilus.MenuItem(
name="NautilusPython::openterminal_file_item2",
label="Open in Alacritty",
tip="Open Alacritty In %s" % current_folder.get_name(),
)
item.connect("activate", self.menu_background_activate_cb, current_folder)
return [
item,
]
TECHNICALLYNOTACONFIGSOHEREDOCCEDITIS
source $OMAKUB_PATH/install/desktop/set-alacritty-default.sh

View File

@@ -1,5 +1,5 @@
cd /tmp
curl -L --output cursor.appimage https://downloader.cursor.sh/linux/x64
curl -L "https://www.cursor.com/api/download?platform=linux-x64&releaseTrack=stable" | jq -r '.downloadUrl' | xargs curl -L -o cursor.appimage
sudo mv cursor.appimage /opt/cursor.appimage
sudo chmod +x /opt/cursor.appimage
sudo apt install -y fuse3

View File

@@ -1,3 +1,3 @@
sudo add-apt-repository ppa:cappelikan/ppa
sudo add-apt-repository -y ppa:cappelikan/ppa
sudo apt update -y
sudo apt install -y mainline

View File

@@ -0,0 +1,14 @@
sudo add-apt-repository -y ppa:libretro/stable
sudo apt update -y
sudo apt install -y retroarch retroarch-assets
cat <<EOF >~/.local/share/applications/Retroarch.desktop
[Desktop Entry]
Name=RetroArch
Exec=/usr/bin/retroarch
Type=Application
Icon=/home/$USER/.local/share/omakub/applications/icons/Retroarch.png
Comment=Play retro games
Categories=Game;Emulator;
Terminal=false
EOF

View File

@@ -1,5 +1,7 @@
# Virtualbox allows you to run VMs for other flavors of Linux or even Windows
# See https://ubuntu.com/tutorials/how-to-run-ubuntu-desktop-on-a-virtual-machine-using-virtualbox#1-overview
# for a guide on how to run Ubuntu inside it.
sudo apt update
sudo apt install -y virtualbox virtualbox-ext-pack
sudo usermod -aG vboxusers ${USER}

View File

@@ -0,0 +1,5 @@
curl -fsSL "https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/windsurf.gpg" | sudo gpg --dearmor -o /usr/share/keyrings/windsurf-stable-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/windsurf-stable-archive-keyring.gpg arch=amd64] https://windsurf-stable.codeiumdata.com/wVxQEIWkwPUEAGf3/apt stable main" | sudo tee /etc/apt/sources.list.d/windsurf.list >/dev/null
sudo apt update -y
sudo apt install -y windsurf

View File

@@ -0,0 +1,73 @@
#!/usr/bin/env sh
# Make alacritty default terminal emulator
sudo update-alternatives --set x-terminal-emulator /usr/bin/alacritty
# Adding alacritty to nautilus contextual menu requires the python wrapper for the libraries
sudo apt install -y python3-nautilus
mkdir -p ~/.local/share/nautilus-python/extensions/
cat > ~/.local/share/nautilus-python/extensions/open-alacritty.py <<TECHNICALLYNOTACONFIGSOHEREDOCCEDITIS
import os
from urllib.parse import unquote
from gi.repository import Nautilus, GObject
from typing import List
class OpenTerminalExtension(GObject.GObject, Nautilus.MenuProvider):
def _open_terminal(self, file: Nautilus.FileInfo) -> None:
filename = unquote(file.get_uri()[7:])
os.chdir(filename)
os.system("alacritty")
def menu_activate_cb(
self,
menu: Nautilus.MenuItem,
file: Nautilus.FileInfo,
) -> None:
self._open_terminal(file)
def menu_background_activate_cb(
self,
menu: Nautilus.MenuItem,
file: Nautilus.FileInfo,
) -> None:
self._open_terminal(file)
def get_file_items(
self,
files: List[Nautilus.FileInfo],
) -> List[Nautilus.MenuItem]:
if len(files) != 1:
return []
file = files[0]
if not file.is_directory() or file.get_uri_scheme() != "file":
return []
item = Nautilus.MenuItem(
name="NautilusPython::openterminal_file_item",
label="Open in Alacritty",
tip="Open Alacritty In %s" % file.get_name(),
)
item.connect("activate", self.menu_activate_cb, file)
return [
item,
]
def get_background_items(
self,
current_folder: Nautilus.FileInfo,
) -> List[Nautilus.MenuItem]:
item = Nautilus.MenuItem(
name="NautilusPython::openterminal_file_item2",
label="Open in Alacritty",
tip="Open Alacritty In %s" % current_folder.get_name(),
)
item.connect("activate", self.menu_background_activate_cb, current_folder)
return [
item,
]
TECHNICALLYNOTACONFIGSOHEREDOCCEDITIS

View File

@@ -37,7 +37,7 @@ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-5 "['<Super>5
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-6 "['<Super>6']"
# Reserve slots for custom keybindings
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/']"
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/']"
# Set ulauncher to Super+Space
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "@as []"
@@ -69,3 +69,8 @@ gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/or
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/ name 'Apple Brightness Up (ASDControl)'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/ binding '<Control>F2'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/ command "sh -c 'asdcontrol \$(asdcontrol --detect /dev/usb/hiddev* 2>/dev/null | sed -n \"s|^\(/dev/usb/hiddev[0-9]*\):.*|\1|p\") -- +5000'"
# Turn bightness up to max on Apple monitor (requires ADSControl installed)
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/ name 'Apple Brightness Max (ASDControl)'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/ binding '<Control><Shift>F2'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/ command "sh -c 'asdcontrol \$(asdcontrol --detect /dev/usb/hiddev* 2>/dev/null | sed -n \"s|^\(/dev/usb/hiddev[0-9]*\):.*|\1|p\") -- +60000'"

View File

@@ -1,5 +1,7 @@
sudo add-apt-repository universe -y
sudo add-apt-repository ppa:agornostal/ulauncher -y
gpg --keyserver keyserver.ubuntu.com --recv 0xfaf1020699503176
gpg --export 0xfaf1020699503176 | sudo tee /usr/share/keyrings/ulauncher-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/ulauncher-archive-keyring.gpg] http://ppa.launchpad.net/agornostal/ulauncher/ubuntu noble main" | sudo tee /etc/apt/sources.list.d/ulauncher-noble.list
sudo apt update -y
sudo apt install -y ulauncher

View File

@@ -4,4 +4,6 @@ curl -sLo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/late
tar -xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin
rm lazygit.tar.gz lazygit
mkdir -p ~/.config/lazygit/
touch ~/.config/lazygit/config.yml
cd -

View File

@@ -23,6 +23,12 @@ if [ ! -d "$HOME/.config/nvim" ]; then
# Default to Tokyo Night theme
cp ~/.local/share/omakub/themes/tokyo-night/neovim.lua ~/.config/nvim/lua/plugins/theme.lua
# Turn off animated scrolling
cp ~/.local/share/omakub/configs/neovim/snacks-animated-scrolling-off.lua ~/.config/nvim/lua/plugins/
# Turn off relative line numbers
echo "vim.opt.relativenumber = false" >>~/.config/nvim/lua/config/options.lua
fi
# Replace desktop launcher with one running inside Alacritty

2
migrations/1741193162.sh Normal file
View File

@@ -0,0 +1,2 @@
# Turn off animationd scrolling
cp ~/.local/share/omakub/configs/neovim/snacks-animated-scrolling-off.lua ~/.config/nvim/lua/plugins/

3
migrations/1744854733.sh Normal file
View File

@@ -0,0 +1,3 @@
source $OMAKUB_PATH/install/desktop/set-alacritty-default.sh
nautilus -q

14
migrations/1745060743.sh Normal file
View File

@@ -0,0 +1,14 @@
cp ~/.local/share/omakub/configs/alacritty/shared.toml ~/.config/alacritty/shared.toml
cp ~/.local/share/omakub/configs/alacritty/pane.toml ~/.config/alacritty/pane.toml
cp ~/.local/share/omakub/configs/alacritty/btop.toml ~/.config/alacritty/btop.toml
cp ~/.local/share/omakub/configs/alacritty.toml ~/.config/alacritty/alacritty.toml
source $OMAKUB_PATH/applications/About.sh
source $OMAKUB_PATH/applications/Activity.sh
source $OMAKUB_PATH/applications/Neovim.sh
source $OMAKUB_PATH/applications/Docker.sh
source $OMAKUB_PATH/applications/Omakub.sh
alacritty migrate 2>/dev/null || true
alacritty migrate -c ~/.config/alacritty/pane.toml 2>/dev/null || true
alacritty migrate -c ~/.config/alacritty/btop.toml 2>/dev/null || true

View File

@@ -2,6 +2,7 @@ gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
gsettings set org.gnome.desktop.interface cursor-theme 'Yaru'
gsettings set org.gnome.desktop.interface gtk-theme "Yaru-$OMAKUB_THEME_COLOR-dark"
gsettings set org.gnome.desktop.interface icon-theme "Yaru-$OMAKUB_THEME_COLOR"
gsettings set org.gnome.desktop.interface accent-color "$OMAKUB_THEME_COLOR" 2>/dev/null
BACKGROUND_ORG_PATH="$HOME/.local/share/omakub/themes/$OMAKUB_THEME_BACKGROUND"
BACKGROUND_DEST_DIR="$HOME/.local/share/backgrounds"

6
uninstall/app-neovim.sh Normal file
View File

@@ -0,0 +1,6 @@
sudo apt purge -y neovim neovim-runtime
rm ~/.local/share/applications/Neovim.desktop
rm -rf ~/.config/nvim
rm -rf ~/.local/share/nvim
rm -rf ~/.local/state/nvim
rm -rf ~/.cache/nvim

View File

@@ -0,0 +1,5 @@
sudo add-apt-repository -y --remove ppa:libretro/stable
sudo apt update -y
sudo apt remove -y retroarch retroarch-assets
sudo apt autoremove -y
rm ~/.local/share/applications/Retroarch.desktop

View File

@@ -0,0 +1,3 @@
sudo apt purge -y virtualbox virtualbox-dkms virtualbox-qt virtualbox-ext-pack
sudo apt autoremove --purge -y
rm -rf ~/.config/VirtualBox

View File

@@ -0,0 +1,3 @@
sudo apt purge -y windsurf
sudo rm /etc/apt/sources.list.d/windsurf.list
sudo rm /usr/share/keyrings/windsurf-stable-archive-keyring.gpg

View File

@@ -1 +1 @@
1.1.8
1.2.0