Compare commits

...

9 Commits

Author SHA1 Message Date
13b1fd9ba9 update confs and add vpn package 2025-08-06 11:41:29 +01:00
fed0835ad7 remove cachyos and paru packages 2025-08-04 00:50:40 +01:00
7ebccf3057 add packages 2025-08-02 01:34:12 +01:00
f579405d8c add tmuxpopup script 2025-08-02 01:22:00 +01:00
853c365b26 update waybar 2025-08-02 01:21:35 +01:00
a673755bca disable auto tmux 2025-08-02 01:21:23 +01:00
16861d8314 update tmux 2025-08-02 01:21:14 +01:00
43e4fea1e0 add window splits to kitty 2025-08-02 01:21:05 +01:00
66dfce7dc1 update hyprland 2025-08-02 01:20:46 +01:00
11 changed files with 319 additions and 39 deletions

4
cachyos Normal file
View File

@ -0,0 +1,4 @@
cachyos-keyring
cachyos-mirrorlist
cachyos-v3-mirrorlist
cachyos-v4-mirrorlist

View File

@ -15,7 +15,8 @@
################
# See https://wiki.hyprland.org/Configuring/Monitors/
# automatically choose highest refresh rate and postition of monitors
monitor = ,highrr,auto,1
###################
### MY PROGRAMS ###
@ -26,7 +27,7 @@
# Set programs that you use
$terminal = kitty
$fileManager = dolphin
$menu = wofi --show drun
$menu = tofi-drun --drun-launch=true -c /home/fergus/.config/tofi.conf
#################
@ -37,7 +38,10 @@ $menu = wofi --show drun
# Or execute your favorite apps at launch like this:
# exec-once = nm-applet &
exec-once = waybar
exec-once = uwsm app -- waybar
exec-once = uwsm app -- hypridle
exec-once = uwsm app -- swaync
exec-once = uwsm app -- systemctl --user start hyprpolkitagent
exec-once = $terminal
# clipboard
@ -209,7 +213,7 @@ $mainMod = Alt # Sets "Alt" key as main modifier
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, Q, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, M, exec, loginctl terminate-user ""
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, G, exec, firefox
bind = $mainMod, D, exec, $menu
@ -294,11 +298,11 @@ bind = $mainMod, N, exec, swaync-client -t
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
windowrule = float, class:^(com.saivert.pwvucontrol)$
windowrule = float, class:^(org.prismlauncher.PrismLauncher)$
# Ignore maximize requests from apps. You'll probably like this.

View File

@ -24,7 +24,7 @@ font_family JetBrains Mono NF
#: italic_font Operator Mono Book Italic
#: bold_italic_font Operator Mono Medium Italic
font_size 14.0
font_size 16.0
#: Font size (in pts)
@ -239,7 +239,7 @@ cursor_blink_interval 0
#: Scrollback {{{
# scrollback_lines 2000
scrollback_lines 200000
#: Number of lines of history to keep in memory for scrolling back.
#: Memory is allocated on demand. Negative numbers are (effectively)
@ -1584,13 +1584,13 @@ confirm_os_window_close 0
#: The full list of actions that can be mapped to key presses is
#: available here <https://sw.kovidgoyal.net/kitty/actions/>.
# kitty_mod ctrl+shift
kitty_mod ctrl+shift
#: Special modifier key alias for default shortcuts. You can change
#: the value of this option to alter all default shortcuts that use
#: kitty_mod.
# clear_all_shortcuts no
clear_all_shortcuts no
#: Remove all shortcut definitions up to this point. Useful, for
#: instance, to remove the default shortcuts.
@ -1627,7 +1627,7 @@ confirm_os_window_close 0
#: Copy to clipboard
# map kitty_mod+c copy_to_clipboard
map ctrl+shift+c copy_to_clipboard
# map cmd+c copy_to_clipboard
#:: There is also a copy_or_interrupt action that can be optionally
@ -1638,7 +1638,7 @@ confirm_os_window_close 0
#: Paste from clipboard
# map kitty_mod+v paste_from_clipboard
map ctrl+shift+v paste_from_clipboard
# map cmd+v paste_from_clipboard
#: Paste from selection
@ -1703,7 +1703,7 @@ confirm_os_window_close 0
#: Scroll to previous shell prompt
# map kitty_mod+z scroll_to_prompt -1
map ctrl+space>z scroll_to_prompt -1
#:: Use a parameter of 0 for scroll_to_prompt to scroll to the last
#:: jumped to or the last clicked position. Requires shell
@ -1712,7 +1712,7 @@ confirm_os_window_close 0
#: Scroll to next shell prompt
# map kitty_mod+x scroll_to_prompt 1
map ctrl+space>x scroll_to_prompt 1
#: Browse scrollback buffer in pager
@ -1761,7 +1761,11 @@ confirm_os_window_close 0
#: New window
# map kitty_mod+enter new_window
enabled_layouts splits:split_axis=horizontal
map ctrl+space>c launch --type=tab --cwd=current
map ctrl+space>shift+5 launch --location=vsplit --cwd=current
map ctrl+space>shift+2 launch --location=hsplit --cwd=current
# map cmd+enter new_window
#:: You can open a new kitty window running an arbitrary program, for
@ -1806,7 +1810,8 @@ confirm_os_window_close 0
#: Next window
# map kitty_mod+] next_window
map ctrl+space>j next_window
map ctrl+space>k previous_window
#: Previous window
@ -1942,7 +1947,15 @@ confirm_os_window_close 0
#: the first tab, 2 the second tab and -1 being the previously active
#: tab, and any number larger than the last tab being the last tab::
#: map ctrl+alt+1 goto_tab 1
map ctrl+space>1 goto_tab 1
map ctrl+space>2 goto_tab 2
map ctrl+space>3 goto_tab 3
map ctrl+space>4 goto_tab 4
map ctrl+space>5 goto_tab 5
map ctrl+space>6 goto_tab 6
map ctrl+space>7 goto_tab 7
map ctrl+space>8 goto_tab 8
map ctrl+space>9 goto_tab 9
#: map ctrl+alt+2 goto_tab 2
#: Just as with new_window above, you can also pass the name of
@ -1974,7 +1987,7 @@ confirm_os_window_close 0
#: Useful to temporarily "zoom" the active window by switching to the
#: stack layout::
#: map ctrl+alt+z toggle_layout stack
map ctrl+space>z toggle_layout stack
#: }}}
#: Font sizes {{{
@ -2022,7 +2035,7 @@ confirm_os_window_close 0
#: Open URL
# map kitty_mod+e open_url_with_hints
map ctrl+space>e open_url_with_hints
#:: Open a currently visible URL using the keyboard. The program used
#:: to open the URL is specified in open_url_with.

94
packages Normal file
View File

@ -0,0 +1,94 @@
base
base-devel
bash
bat
btop
coreutils
curl
discord
docker
docker-buildx
docker-compose
efibootmgr
efitools
elixir
erlang
exfat-utils
eza
fastfetch
fd
firefox
fzf
gdm
git
go
golangci-lint
gopls
hip-runtime-amd
hipblas
hipblas-common
hsa-rocr
hyprcursor
hypridle
hyprland
hyprlock
hyprshot
inotify-tools
intel-ucode
jq
just
kitty
linux-firmware
linux
lld
lua
lua-language-server
luajit
neovim
nodejs
noto-fonts
noto-fonts-emoji
noto-fonts-extra
npm
nvtop
pipewire
python
rdma-core
ripgrep
rocblas
rocm-core
rocm-device-libs
rocm-llvm
rocminfo
rocprim
rocprofiler-register
rocsolver
rocsparse
roctracer
rtkit
rustup
sbctl
starship
stow
stylua
sudo
swaync
tmux
ttf-jetbrains-mono-nerd
ttf-liberation
ttf-noto-nerd
ufw
unzip
uwsm
watchexec
waybar
wayland
wget
wireguard-tools
wireplumber
wl-clipboard
xdg-desktop-portal
xdg-user-dirs
zsh
zsh-autosuggestions
zstd

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
if [ "$(tmux display-message -p -F "#{session-name}")" = "popup" ]; then
if [ "$(tmux display-message -p -F "#{session_name}")" = "popup" ]; then
tmux detach-client
else
tmux popup -d "#{pane_current_path}" -xC -yC -w90% -h90% -E "tmux attach -t popup || tmux new -s popup"

View File

@ -1,4 +1,5 @@
set-option -g default-shell /usr/bin/zsh
set-option -g default-command "${SHELL}"
set-option -g default-shell "${SHELL}"
set -g mouse on
@ -28,4 +29,4 @@ bind c new-window -c "#{pane_current_path}"
bind \" split-pane -c "#{pane_current_path}"
bind % split-pane -h -c "#{pane_current_path}"
bind p run-shell tmuxpopup
bind p run-shell /home/fergus/.local/bin/tmuxpopup

33
vpn/PKGBUILD Normal file
View File

@ -0,0 +1,33 @@
# Maintainer: Your Name <fergus@molloy.xyz>
pkgname=vpn
pkgver=1.0.0
pkgrel=1
epoch=
pkgdesc="Bash script to manage wireguard vpn connections"
arch=(any)
url=""
license=('Unlicense')
groups=()
depends=(wireguard-tools)
makedepends=()
checkdepends=()
optdepends=()
provides=()
conflicts=()
replaces=()
backup=()
options=()
install=
changelog=
source=("vpn")
noextract=("vpn")
sha256sums=(
4049e2b082f88a06ef0890498f556018d07939d5f2fb54a9d409fbeb8023be47
)
validpgpkeys=()
package() {
mkdir -p "$pkgdir"
install -D -m 755 vpn "${pkgdir}/usr/bin/vpn"
}

119
vpn/vpn Executable file
View File

@ -0,0 +1,119 @@
#!/usr/bin/env bash
# check user is root
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
# Initialize variables
ACTION=""
VPN_NAME=""
DEFAULT_VPN="p-sweden"
# Function to display usage
usage() {
echo "Usage: $0 [COMMAND] [VPN_NAME]"
echo "Commands:"
echo " (no args) Get VPN status"
echo " list List available VPN connections"
echo " down Disconnect from VPN"
echo " up Connect to default VPN"
echo " up <name> Connect to specific VPN"
exit 1
}
# Parse command line arguments
case $# in
0)
# No arguments - get status
ACTION="status"
;;
1)
case $1 in
"list")
ACTION="list"
;;
"down")
ACTION="down"
;;
"up")
ACTION="up"
VPN_NAME="$DEFAULT_VPN"
;;
"help"|"-h"|"--help")
usage
;;
*)
echo "Error: Unknown command '$1'"
usage
;;
esac
;;
2)
case $1 in
"up")
ACTION="up"
VPN_NAME="$2"
;;
*)
echo "Error: Command '$1' does not accept additional arguments"
usage
;;
esac
;;
*)
echo "Error: Too many arguments"
usage
;;
esac
down() {
CURRENT_CONNECTION="$(wg | grep interface | sed 's/.*: //')"
if [ ! -z $CURRENT_CONNECTION ]; then
wg-quick down $CURRENT_CONNECTION
printf "\n\x1b[1;31mDisconnected from $CURRENT_CONNECTION\x1b[0m\n"
else
echo "Not connected"
fi
}
up() {
down
FOUND_CONFIGS=$(fd -tf "$VPN_NAME" -e "conf" --format '{/.}' /etc/wireguard)
POSSIBLE_CONFIG_COUNTS=$(echo $FOUND_CONFIGS | wc -l)
if [ $POSSIBLE_CONFIG_COUNTS -eq 0 ]; then
echo "No configuration found for $VPN_NAME"
exit 1
fi
if [ $POSSIBLE_CONFIG_COUNTS -gt 1 ]; then
echo "Mulitple configurations found for $VPN_NAME:"
echo $FOUND_CONFIGS
exit 1
fi
printf "\n\x1b[1;32mConnecting to $FOUND_CONFIGS\x1b[0m\n\n"
wg-quick up $FOUND_CONFIGS
}
# Example of how to use the variables
case $ACTION in
"status")
wg
;;
"list")
echo "Possible connections:"
fd . -tf -e "conf" --format '{/.}' /etc/wireguard
;;
"down")
down
;;
"up")
up
;;
esac

View File

@ -20,9 +20,9 @@
"clock",
"tray",
],
"custom": {
"exec": ""
},
// "custom": {
// "exec": ""
// },
"hyprland/window": {
"format": "{}",
"max-length": 35,
@ -54,12 +54,13 @@
"tooltip": false
},
"memory": {
"format": "{}% "
"format": "{}% "
},
"temperature": {
"thermal-zone": 3,
"critical-threshold": 80,
"format": "{temperatureC}°C",
"format-icons": ["", "", ""]
"format-icons": ["", "", ""]
},
"battery": {
"states": {
@ -75,9 +76,9 @@
},
"network": {
"format-wifi": " {signalStrength}%",
"format-ethernet": "{cidr} ",
"tooltip-format": "{ifname} via {gwaddr} ",
"format-linked": "{ifname} (No IP) ",
"format-ethernet": "{cidr} ",
"tooltip-format": "{ifname} via {gwaddr} ",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": " ⚠ ",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
@ -93,9 +94,9 @@
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
"default": ["", " ", " "]
},
"on-click": "pavucontrol"
"on-click": "pwvucontrol"
},
"tray": {
"spacing": 10,

View File

@ -1,7 +1,7 @@
@import "macchiato.css";
* {
font-family: "JetBrainsMono Nerd Font", Roboto, Helvetica, Arial, sans-serif;
font-family: "JetBrainsMonoNerdFont";
font-size: 16px;
}

View File

@ -55,10 +55,10 @@ command -v starship >/dev/null 2>&1 && eval "$(starship init zsh)"
command -v fastfetch >/dev/null 2>&1 && fastfetch
# automatically enter a tmux session
tmux start-server
if [ -z "$TMUX" ]; then
tmux has-session -t dev 2> /dev/null && tmux new-session || tmux new-session -s dev
fi
# tmux start-server
# if [ -z "$TMUX" ]; then
# tmux has-session -t dev 2> /dev/null && tmux new-session || tmux new-session -s dev
# fi
# load kitty shell integrations
if test -n "$KITTY_INSTALLATION_DIR"; then
@ -86,12 +86,14 @@ total %*E
# add common bin dirs to path
export PATH="/home/fergus/.local/bin:$PATH"
export PATH="/home/fergus/.local/bin:/home/fergus/.cargo/bin:$PATH"
export PATH="/home/fergus/.cargo/bin:$PATH"
export PATH="/home/fergus/go/bin/:$PATH"
# import any extra env that doesn't want to be kept in vsc
[[ -f ~/.extra-env ]] && source ~/.extra-env
[[ -f ~/.extra-env.zsh ]] && source ~/.extra-env.zsh
# add common options
alias -- less='less -R'
alias -- cp='cp -r'
alias -- mkdir='mkdir -p'
alias -- rm='rm -vr'
@ -114,6 +116,7 @@ alias -- gC='git commit -m'
alias -- gD='git diff --staged -w'
alias -- gP='git push'
alias -- gPf='git push --force-with-lease'
alias -- gPt='git push --follow-tags'
alias -- gS='git switch -c'
alias -- gaa='git add --all'
alias -- gau='git add -u'
@ -144,3 +147,11 @@ fi
ZSH_HIGHLIGHT_HIGHLIGHTERS+=()
# pnpm
export PNPM_HOME="/home/fergus/.local/share/pnpm"
case ":$PATH:" in
*":$PNPM_HOME:"*) ;;
*) export PATH="$PNPM_HOME:$PATH" ;;
esac
# pnpm end