This commit is contained in:
Penelope Gwen 2024-10-29 14:21:32 -07:00
parent 491fd04437
commit 3493dfb909
28 changed files with 438 additions and 2 deletions

View file

@ -2,4 +2,4 @@
source "/usr/lib/sp-functions" source "/usr/lib/sp-functions"
get_profile_icon get_profile_icon `cat ~/.cache/sway-profiles/active_profile`

View file

@ -0,0 +1,59 @@
sway-profiles (0.3.7) unstable; urgency=medium
* sp-profile-icon now returns active profile rather than active workspace profile
-- Penelope Gwen <support@pogmom.me> Tue, 29 Oct 2024 14:17:59 -0700
sway-profiles (0.3.6) unstable; urgency=medium
* make clipboard length customizable
-- Penelope Gwen <support@pogmom.me> Fri, 26 Jul 2024 13:29:45 -0600
sway-profiles (0.3.5) unstable; urgency=medium
* disable unnecessary waybar reload
-- Penelope Gwen <support@pogmom.me> Tue, 25 Jun 2024 02:32:59 -0600
sway-profiles (0.3.4) unstable; urgency=medium
* ensure that gtklock uses css file
-- Penelope Gwen <support@pogmom.me> Sat, 15 Jun 2024 22:53:59 -0600
sway-profiles (0.3.3) unstable; urgency=medium
* use gtklock instead of swaylock
-- Penelope Gwen <support@pogmom.me> Sat, 15 Jun 2024 12:15:42 -0600
sway-profiles (0.3.2) unstable; urgency=medium
* added some basic waybar integration
-- Penelope Gwen <support@pogmom.me> Tue, 11 Jun 2024 13:12:58 -0600
sway-profiles (0.3.1) unstable; urgency=medium
* added sp-lock lock scripts
-- Penelope Gwen <support@pogmom.me> Wed, 05 Jun 2024 15:44:39 -0600
sway-profiles (0.3) unstable; urgency=medium
* added sp-lock unlock scripts
-- Penelope Gwen <support@pogmom.me> Wed, 05 Jun 2024 15:29:28 -0600
sway-profiles (0.2) unstable; urgency=medium
* Remove dangling option from sp-powermenu.
-- Penelope Gwen <support@pogmom.me> Thu, 4 Jun 2024 04:08:33 -0600
sway-profiles (0.1) unstable; urgency=medium
* Initial release.
-- Penelope Gwen <support@pogmom.me> Thu, 3 Jun 2024 19:41:19 -0600

View file

@ -0,0 +1,12 @@
./bin/sp-clipboard
./bin/sp-global-shortcuts
./bin/sp-launcher
./bin/sp-lock
./bin/sp-powermenu
./bin/sp-profile-icon
./bin/sp-profiles
./bin/sp-rename
./bin/sp-screenshot
./bin/sp-shortcuts
./bin/sp-wallpaper
./lib/sp-functions

6
debian/changelog vendored
View file

@ -1,3 +1,9 @@
sway-profiles (0.3.7) unstable; urgency=medium
* sp-profile-icon now returns active profile rather than active workspace profile
-- Penelope Gwen <support@pogmom.me> Tue, 29 Oct 2024 14:17:59 -0700
sway-profiles (0.3.6) unstable; urgency=medium sway-profiles (0.3.6) unstable; urgency=medium
* make clipboard length customizable * make clipboard length customizable

1
debian/debhelper-build-stamp vendored Normal file
View file

@ -0,0 +1 @@
sway-profiles

2
debian/files vendored Normal file
View file

@ -0,0 +1,2 @@
sway-profiles_0.3.7_all.deb X11 optional
sway-profiles_0.3.7_amd64.buildinfo X11 optional

2
debian/sway-profiles.substvars vendored Normal file
View file

@ -0,0 +1,2 @@
misc:Depends=
misc:Pre-Depends=

14
debian/sway-profiles/DEBIAN/control vendored Normal file
View file

@ -0,0 +1,14 @@
Package: sway-profiles
Version: 0.3.7
Architecture: all
Maintainer: Penelope Gwen <support@pogmom.me>
Installed-Size: 30
Depends: swaybg, jq
Recommends: wofi, fonts-font-awesome, gtklock, imagemagick
Suggests: copyq, sway-screenshot
Section: X11
Priority: optional
Homepage: https://git.pogmom.me/pogmommy/sway-profiles
Description: Some scripts to organize workflows on sway
A handful of useful bash scripts that let you organize
your sway workspaces into profiles

15
debian/sway-profiles/DEBIAN/md5sums vendored Normal file
View file

@ -0,0 +1,15 @@
4100fcf94c18a008155fb9c3159fcb22 usr/bin/sp-clipboard
b6f043cb7b206fa5a3c39cb27947b312 usr/bin/sp-global-shortcuts
cd67251212057f9c34530c11ac207c59 usr/bin/sp-launcher
38858053ab4812f56428cce5fe4384c2 usr/bin/sp-lock
80cab1f780c7698e1bda2372a8312d35 usr/bin/sp-powermenu
e74f597bfab09d3115a9d0d2162e132c usr/bin/sp-profile-icon
cba2c2614edb7b55e580403b4860f6be usr/bin/sp-profiles
4b6903aaee1f87fc7a9b5726f28a2c73 usr/bin/sp-rename
9a9efb90e993fdd2cafcf2477eadad6e usr/bin/sp-screenshot
a7b96bed0ed0154380fbf1812a29c087 usr/bin/sp-shortcuts
c4dc5ee97596c7e435e5cfb4bca83fec usr/bin/sp-wallpaper
0302e639499885ac8abd7d1f52f77fbd usr/lib/sp-functions
5e44407925ad33fe9b92e538ed776ac4 usr/share/doc/sway-profiles/README.Debian
764936ed964c4dc0d16343b1e063294d usr/share/doc/sway-profiles/changelog.gz
be67991063b81dfce896888bb802c2a0 usr/share/doc/sway-profiles/copyright

4
debian/sway-profiles/DEBIAN/postinst vendored Executable file
View file

@ -0,0 +1,4 @@
#!/bin/bash
#mkdir -p /etc/greetd
#update-alternatives --install /etc/greetd/config.toml greetd /usr/share/greetd/pogmom/config.toml 30 --force

3
debian/sway-profiles/DEBIAN/postrm vendored Executable file
View file

@ -0,0 +1,3 @@
#!/bin/bash
#update-alternatives --remove greetd /usr/share/greetd/pogmom/config.toml

22
debian/sway-profiles/usr/bin/sp-clipboard vendored Executable file
View file

@ -0,0 +1,22 @@
#!/bin/bash
source "/usr/lib/sp-functions"
source "${conf_dir}/config"
cb_count=$(copyq count)
cb_count="${clipboard_length}"
wofilist=""
for i in $(seq $cb_count);do
cb_line="$( copyq read $((${i}-1)) | tr '\n' ' ' )"
if [[ "${cb_line}" == "" ]];then
cb_line=$( copyq read ? "$((${i}-1))" | head -n 1 )
fi
wofilist="${wofilist}${setnl}${i}. ${cb_line}"
setnl="\n"
done
selected=$( echo -e "${wofilist}" | wofi -i --dmenu -k /dev/null | cut -d. -f1)
copyq select "$(( ${selected}-1)) "

View file

@ -0,0 +1,8 @@
#!/bin/bash
source "/usr/lib/sp-functions"
options=$( ls "${conf_dir}/global-shortcuts/" )
op=$( echo -e "${options}" | wofi -i --dmenu | awk '{print}' )
"${conf_dir}/global-shortcuts/${op}"

17
debian/sway-profiles/usr/bin/sp-launcher vendored Executable file
View file

@ -0,0 +1,17 @@
#!/bin/bash
source "/usr/lib/sp-functions"
source "${conf_dir}/config"
case $1 in
file_manager )
launch_exec=${filemanager_cmd}
launch_arg=$( jq -r .[].home_directory "${conf_dir}/profiles/$( get_profile_id )/vars.json" )
;;
browser )
launch_exec=${browser_cmd}
launch_arg=$( jq -r .[].browser_profile "${conf_dir}/profiles/$( get_profile_id )/vars.json" )
;;
esac
bash -c "${launch_exec} ${launch_arg}"

24
debian/sway-profiles/usr/bin/sp-lock vendored Executable file
View file

@ -0,0 +1,24 @@
#!/bin/bash
source "/usr/lib/sp-functions"
lock_script="${conf_dir}/lockscript"
unlock_script="${conf_dir}/unlockscript"
outputs=( $(swaymsg -t get_outputs | jq -r '.[] | {name} | "\(.name)"') )
for o in ${outputs[@]};do
workspace=$(swaymsg -t get_workspaces | jq -r '.[] | select(.output) | {name} | "\(.name)"')
wpno=$(cat "${cache_dir}/displays/${o}")
wp_imgpath="${conf_dir}/wallpaper/${o}/${wpno}.jpg"
sl_imgpath="${cache_dir}/lock/${o}.jpg"
convert -scale 10% -blur 0x3 -resize 500% "${wp_imgpath}" "${sl_imgpath}"
sl_args="${sl_args}--image ${o}:${sl_imgpath} "
done
if [ -f "${lock_script}" ]; then
bash -c "${lock_script}"
fi
gtklock -s "${HOME}/.config/gtklock/style.css"
if [ -f "${unlock_script}" ]; then
bash -c "${unlock_script}"
fi

18
debian/sway-profiles/usr/bin/sp-powermenu vendored Executable file
View file

@ -0,0 +1,18 @@
#!/usr/bin/env bash
op=$( echo -e "⏻ Poweroff\n Reboot\n Suspend\n🔒 Lock\n Logout" | wofi -i --dmenu -a | awk '{print tolower($2)}' )
case $op in
poweroff)
;&
reboot)
;&
suspend)
systemctl $op
;;
lock)
sp-lock
;;
logout)
swaymsg exit
;;
esac

View file

@ -0,0 +1,5 @@
#!/bin/bash
source "/usr/lib/sp-functions"
get_profile_icon `cat ~/.cache/sway-profiles/active_profile`

45
debian/sway-profiles/usr/bin/sp-profiles vendored Executable file
View file

@ -0,0 +1,45 @@
#!/usr/bin/env bash
source "/usr/lib/sp-functions"
get_profile_list
case $1 in
next|prev)
current_profile=$(cat "${cache_dir}/active_profile")
echo ${current_profile}
;;&
next)
new_profile=$(( ${current_profile}+1 ))
[[ "$new_profile" -eq "${p_count}" ]] && new_profile=0
;;&
prev)
new_profile=$(( ${current_profile}-1 ))
[[ "$new_profile" -eq "-1" ]] && new_profile=3
;;&
prev|next)
op=$(printf "%01d\n" ${new_profile})
;;
*)
for (( p="0"; p<${p_count}; p++ ));do
[[ $p -eq $(( ${p_count} - 1 )) ]] && nl="" || nl="\n"
wofilist="${wofilist}${p_icons[$p]} ${p_names[$p]}${nl}"
done
[[ -z $1 ]] && op=$( echo -e "${wofilist}" | wofi -i --dmenu --width 250 --height 320 -k /dev/null | awk '{print $2}' ) || op="${1}"
op=$(echo ${p_names[@]/$op//} | cut -d/ -f1 | wc -w | tr -d ' ')
;;
esac
[[ "$op" -gt "$(( $p_count - 1 ))" ]] && exit
[[ $op -eq "0" ]] && p_num="" || p_num="$op"
p_icon="${p_icons[$op]}"
for i in {1..10};do
[[ "$i" -eq "10" ]] && k="0" || k=$i
swaymsg 'bindsym $mod+'"$k"' workspace number "'"${p_num}${i}:${p_icon}"'"'
swaymsg 'bindsym $mod+Shift+'"$k"' move container to workspace number "'"${p_num}${i}:${p_icon}"'"'
done
moveto="${p_num}1:${p_icon}"
swaymsg 'workspace number "'"${p_num}"'"1:"'"${p_icon}"'"'
echo "${op}" > "${cache_dir}/active_profile"

7
debian/sway-profiles/usr/bin/sp-rename vendored Executable file
View file

@ -0,0 +1,7 @@
#!/bin/bash
source "/usr/lib/sp-functions"
new_wsname="$( get_workspace_prefix )$(wofi -i --dmenu --height 1 --search $( get_workspace_name ))"
swaymsg 'rename workspace "'"$( get_workspace_fullname )"'" to "'"${new_wsname}"'"'

13
debian/sway-profiles/usr/bin/sp-screenshot vendored Executable file
View file

@ -0,0 +1,13 @@
#!/usr/bin/env bash
source "/usr/lib/sp-functions"
source "${conf_dir}/config"
op=$( echo -e "Output\nWindow\nRegion" | wofi -i --dmenu --width 250 --height 260 | awk '{print tolower($1)}' )
echo "$op"
sleep 0.5
mkdir -p "${cache_dir}/screenshots/"
sway-screenshot -m $op --output-folder "${cache_dir}/screenshots/"
mv "${cache_dir}/screenshots/"* "${screenshot_dir}"

10
debian/sway-profiles/usr/bin/sp-shortcuts vendored Executable file
View file

@ -0,0 +1,10 @@
#!/bin/bash
source "/usr/lib/sp-functions"
current_profile=$( get_profile_id )
profile_scripts=$( ls "${conf_dir}/profiles/${current_profile}/shortcuts/" )
op=$( echo -e "${profile_scripts}" | wofi -w 2 -i --dmenu | awk '{print}' )
"${conf_dir}/profiles/${current_profile}/shortcuts/${op}"

30
debian/sway-profiles/usr/bin/sp-wallpaper vendored Executable file
View file

@ -0,0 +1,30 @@
#!/bin/bash
source "/usr/lib/sp-functions"
getwpno() {
wpno=$(printf "%02d\n" $(($(echo "$1" | awk '{print $1}' | grep -o "^[1-9]*")-1)) | cut -c 1 | sed 's/[^0-9]*//g')
echo "${wpno}" | tee "${cache_dir}/displays/${2}"
}
setbg() {
for d in ${outputs[@]};do
d_wpno=$(cat "${cache_dir}/displays/${d}")
swaymsg output "${d}" bg "${conf_dir}/wallpaper/${d}/${d_wpno}.jpg" fill
done
}
output=$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | {name} | "\(.name)"')
outputs=( $(swaymsg -t get_outputs | jq -r '.[] | {name} | "\(.name)"') )
workspace=$(swaymsg -t get_workspaces | jq -r '.[] | select(.focused) | {name} | "\(.name)"')
getwpno "${workspace}" "${output}"
setbg "${output}" "${wpno}"
swaymsg -r -t subscribe -m '["workspace"]' | jq -rc --unbuffered 'select(.change == "focus") | .current | "\(.name) \(.output)"' | while read name output;do
wsno=$(($(echo "$name" | awk '{print $1}' | grep -o "^[1-9]*")-1))
wpno_last=$(cat "${cache_dir}/displays/${output}")
getwpno "${name}" "${output}"
if [[ "${wpno}" -ne "${wpno_last}" ]];then
setbg "${output}" "${wpno}"
fi
done

52
debian/sway-profiles/usr/lib/sp-functions vendored Executable file
View file

@ -0,0 +1,52 @@
#!/bin/bash
conf_dir="$HOME/.config/sway-profiles"
cache_dir="$HOME/.cache/sway-profiles"
mkdir -p "${cache_dir}/"{displays,lock,screenshots}
get_workspace_id(){
workspace_id=$( printf "%02d\n" $( swaymsg -t get_workspaces | jq -r '.[] | select(.focused==true)|.name' | sed 's/:.*//' ) )
echo "${workspace_id}"
}
get_workspace_fullname(){
workspace_fullname=$( swaymsg -t get_workspaces | jq -r '.[] | select(.focused==true)|.name' )
echo "${workspace_fullname}"
}
get_workspace_prefix(){
workspace_prefix="$( grep -o '[0-9]*:[^a-zA-Z1-9]' <<< $( swaymsg -t get_workspaces | jq -r '.[] | select(.focused==true)|.name' ) )"
echo "${workspace_prefix}"
}
get_workspace_name(){
workspace_name=$( echo "$( get_workspace_fullname )" | sed 's/'"$( get_workspace_prefix )"'//' )
echo "${workspace_name}"
}
get_profile_id(){
current_workspace=$( printf "%02d\n" $(( $( swaymsg -t get_workspaces | jq -r '.[] | select(.focused==true)|.name' | sed 's/:.*//' ) - 1 )) )
echo "${current_workspace:0:1}"
}
get_profile_name(){
echo "test"
}
get_profile_list(){
p_icons=()
p_names=()
while read p;do
p_icons+=($( awk '{print $1}'<<<"${p}" ))
p_names+=($( awk '{print $2}'<<<"${p}" ))
done<"${conf_dir}/profile_list"
p_count="${#p_names[@]}"
}
get_profile_icon(){
get_profile_list
[ -z "${1}" ] && p=`get_active_profile` || p="${1}"
echo "${p_icons[ ${p} ]}"
}

View file

@ -0,0 +1,6 @@
sway-profiles for Debian
------------------------
Configuration files for sway's supporting programs
-- Penelope Gwen <support@pogmom.me>, Thu, 03 Jun 2024 19:45:09 -0600

Binary file not shown.

View file

@ -0,0 +1,60 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Source: https://git.pogmom.me/pogmommy/sway-profiles
Upstream-Name: sway-profiles
Upstream-Contact: Penelope Gwen <support@pogmom.me>
Files:
*
Copyright:
2024 Penelope Gwendolyn <support@pogmom.me>
License: Opinionated Queer License
PERMISSIONS
.
The creators of this Work (“The Licensor”) grant permission
to any person, group or legal entity that doesn't violate the prohibitions below (“The User”),
to do everything with this Work that would otherwise infringe their copyright or any patent claims,
subject to the following conditions:
.
OBLIGATIONS
.
The User must give appropriate credit to the Licensor,
provide a copy of this license or a (clickable, if the medium allows) link to
oql.avris.it/license/v1.1,
and indicate whether and what kind of changes were made.
The User may do so in any reasonable manner,
but not in any way that suggests the Licensor endorses the User or their use.
.
PROHIBITIONS
.
No one may use this Work for prejudiced or bigoted purposes, including but not limited to:
racism, xenophobia, queerphobia, queer exclusionism, homophobia, transphobia, enbyphobia, misogyny.
.
No one may use this Work to inflict or facilitate violence or abuse of human rights as defined in the
Universal Declaration of Human Rights.
.
No law enforcement, carceral institutions, immigration enforcement entities, military entities or military contractors
may use the Work for any reason. This also applies to any individuals employed by those entities.
.
No business entity where the ratio of pay (salaried, freelance, stocks, or other benefits)
between the highest and lowest individual in the entity is greater than 50 : 1
may use the Work for any reason.
.
No private business run for profit with more than a thousand employees
may use the Work for any reason.
.
Unless the User has made substantial changes to the Work,
or uses it only as a part of a new work (eg. as a library, as a part of an anthology, etc.),
they are prohibited from selling the Work.
That prohibition includes processing the Work with machine learning models.
.
SANCTIONS
.
If the Licensor notifies the User that they have not complied with the rules of the license,
they can keep their license by complying within 30 days after the notice.
If they do not do so, their license ends immediately.
.
WARRANTY
.
This Work is provided “as is”, without warranty of any kind, express or implied.
The Licensor will not be liable to anyone for any damages related to the Work or this license,
under any kind of legal claim as far as the law allows.

View file

@ -47,5 +47,6 @@ get_profile_list(){
get_profile_icon(){ get_profile_icon(){
get_profile_list get_profile_list
echo "${p_icons[ $( get_profile_id ) ]}" [ -z "${1}" ] && p=`get_active_profile` || p="${1}"
echo "${p_icons[ ${p} ]}"
} }