Cortile - auto tiling manager

Moderator: Forum moderators

User avatar
rockedge
Site Admin
Posts: 5713
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 1992 times
Been thanked: 2097 times
Contact:

Re: Cortile - auto tiling manager

Post by rockedge »

@geo_c seems like a hassle to get snixembed as a binary I can install in F96.

First attempts at compiling it failed. Perhaps downloading the Void Linux xbps package of it and manually putting it in?

geo_c
Posts: 2501
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 1799 times
Been thanked: 705 times

Re: Cortile - auto tiling manager

Post by geo_c »

rockedge wrote: Tue Feb 06, 2024 4:17 pm

@geo_c seems like a hassle to get snixembed as a binary I can install in F96.

First attempts at compiling it failed. Perhaps downloading the Void Linux xbps package of it and manually putting it in?

Not sure I follow, because the tray icon works well in Xfce, and cortile seems to be geared toward Xfce. It's F96 that needs the icon. Though my work-around keybinding methods for starting and stopping seemed to work fine in F96 last I checked.

geo_c
Old School Hipster, and Such

geo_c
Posts: 2501
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 1799 times
Been thanked: 705 times

Re: Cortile - auto tiling manager

Post by geo_c »

@rockedge I just figured out why it hangs, I had an extra set of quotes in one of the keybindings.

When the config has an error you get no messages or anything so it's hard to tell what's going on.

EDIT: Making some headway now!

geo_c
Old School Hipster, and Such

User avatar
rockedge
Site Admin
Posts: 5713
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 1992 times
Been thanked: 2097 times
Contact:

Re: Cortile - auto tiling manager

Post by rockedge »

@geo_c I am attempting to get the cortile icon in the tray dock on F96-CE_4. So I am looking for snixembed to install it in F96.

I can't seem to get a pre-built binary of it so I attempted a compile of snixembed on F96 but it fails to find this and that.

Void Linux has a package but the URL renders a NGINX bad referrer error, so I will install it on KLV-Airedale-RT and take the downloaded package from /var/cache/xbps.

User avatar
rockedge
Site Admin
Posts: 5713
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 1992 times
Been thanked: 2097 times
Contact:

Re: Cortile - auto tiling manager

Post by rockedge »

@geo_c I just used the command line xbps-install to install it then grabbed the package from /var/cache/xbps then using UExtract decompressed the package and manually will transfer it to the F96 machine via SAMBA.

Excellent you found the problem was a syntax error! I am using your original config file but will update to what you have going now, when you pass it along :geek:

geo_c
Posts: 2501
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 1799 times
Been thanked: 705 times

Re: Cortile - auto tiling manager

Post by geo_c »

rockedge wrote: Tue Feb 06, 2024 5:02 pm

@geo_c I just used the command line xbps-install to install it then grabbed the package from /var/cache/xbps then using UExtract decompressed the package and manually will transfer it to the F96 machine via SAMBA.

Excellent you found the problem was a syntax error! I am using your original config file but will update to what you have going now, when you pass it along :geek:

Yes I'm actually almost done, and what I'm doing is coming up with keybindings that don't use the number pad, and they are working, but not quite as intuitive as using the number pad.

Best I can tell from my tests, cortile doesn't seem to be able to assign two bindings to the same function, so I'm leaving the number pad bindings in the config but commented out.

I wish I could have both, because I like the number pad bindings, but I'm thinking of all the machines I have that don't have a number pad, and for others in the same boat, that would leave the functionality a bit crippled. So these bindings I'm working on use a lot of letters, and a few punctuation marks.

edit: Actually these keybindings I have set up are mostly easier to reach with one hand.

geo_c
Old School Hipster, and Such

User avatar
Sofiya
Posts: 1806
Joined: Tue Dec 07, 2021 9:49 pm
Has thanked: 1202 times
Been thanked: 1078 times

Re: Cortile - auto tiling manager

Post by Sofiya »

Assembled in KLV cortile-2.1_1.x86_64.xbps
https://mega.nz/file/j8FDkaoD#yndHH-zjl ... 7r8XkGJC9I

And added to sessions and startup

Attachments
Screenshot.png
Screenshot.png (117.64 KiB) Viewed 617 times
Снимок экрана_2024-02-06_21-21-16.png
Снимок экрана_2024-02-06_21-21-16.png (131.53 KiB) Viewed 619 times

Vanilla Dpup 9.2.X - KLV-Airedale - KLA-OT2
PUPPY LINUX Simple fast free

User avatar
gychang
Posts: 553
Joined: Fri Aug 28, 2020 4:51 pm
Location: San Diego, CA
Has thanked: 195 times
Been thanked: 51 times

Re: Cortile - auto tiling manager

Post by gychang »

rockedge wrote: Tue Feb 06, 2024 3:44 pm

I also am looking at the scripts to possibly solve the missing tray icon in F96-CE_4. I am breaking things wildly but have instance1 - instance10 of F96's to jump around. (jump jump, jump around........)

I tried cortile in F96 in /usr/local/bin for minute then moved it, but will also move it there now from /root/my-applications/bin, where it does work but doesn't seem like a good default location for it.

@rockedge
I am using cortile binary in /root/Startup/ and seems to work with F96-CE4. Also missing cortile tray icon but can live with it...

======

Puppy Bytes, utube videos
https://www.youtube.com/channel/UCg-DUU ... u62_iqR-MA

======

User avatar
Keef
Posts: 250
Joined: Tue Dec 03, 2019 8:05 pm
Has thanked: 3 times
Been thanked: 66 times

Re: Cortile - auto tiling manager

Post by Keef »

@rockedge
I found out how to compile snixembed. Add

Code: Select all

--girdir=/usr/share/gir-1.0-64

to the VFLAGS line in the Makefile.
Not that I've got anywhere with it. I put

Code: Select all

snixembed --fork 

in xinitrc as described in the readme, and uncommented the icon section of the config file, then restarted X.
Nothing blew up, but no icon.
This is on FatDog with openbox/lxpanel.
EDIT - forgot to say, I had to add libdbusmenu-glib which I got via Gslapt.

User avatar
rockedge
Site Admin
Posts: 5713
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 1992 times
Been thanked: 2097 times
Contact:

Re: Cortile - auto tiling manager

Post by rockedge »

@Keef Thanks!

I tried it but still end up with errors compiling in F96-CE_4

geo_c
Posts: 2501
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 1799 times
Been thanked: 705 times

Re: Cortile - auto tiling manager

Post by geo_c »

I kind of had to go to my job and couldn't get to making a splash and all that. But I put the cortile config on my SR-2 and F96 at work on a very old laptop, working great.

So if you want to play around with the config, here it is:

config.toml.tar.gz
(2.33 KiB) Downloaded 15 times

These keybindings are actually very nice.

For instance if you want to place the active window in master Ctrl+Shift+A
If you want to make the next window master Ctrl+Shift+N

and so forth.

I'll get to the splash late tonight.

Code: Select all

################################################################################
#                                                                              #
#           https://github.com/leukipp/cortile/blob/main/config.toml           #
#                                                                              #
################################################################################

#################################### Tiling ####################################

# Tiling will be enabled on application start if set to true (true | false).
tiling_enabled = true

# Initial tiling layout ("fullscreen" | "vertical-left" | "vertical-right" | "horizontal-top" | "horizontal-bottom").
tiling_layout = "vertical-right"

# An overlay window is displayed for this time period [ms] when the layout was changed (0 = disabled).
tiling_gui = 1500

# Menu entries in systray which shows the tiling state as icon ([] = disabled).
# tiling_icon = [
#   ["ACTION", "TEXT"] = ["action strings from [keys] section", "text to show in the menu"],
#   ["", ""] = "show a separator line",
# ]
tiling_icon = [
    ["toggle", "Enabled"],
    ["", ""],
    ["master_increase", "Add Master"],
    ["master_decrease", "Remove Master"],
    ["", ""],
    ["slave_increase", "Add Slave"],
    ["slave_decrease", "Remove Slave"],
    ["", ""],
    ["exit", "Exit"],
]

#################################### Window ####################################

# Regex RE2 syntax to ignore windows (WM_CLASS string can be found by running `xprop WM_CLASS`).
# window_ignore = [
#   ["WM_CLASS", "WM_NAME"] = ["ignore all windows with this class", "but allow those with this name"]
# ]
window_ignore = [
    ["nm.*", ""],
    ["gcr.*", ""],
    ["polkit.*", ""],
    ["wrapper.*", ""],
    ["lightdm.*", ""],
    ["blueman.*", ""],
    ["pavucontrol.*", ""],
    ["firefox.*", ".*Mozilla Firefox"],
    ["gtkdialog.*", ""],
    ["Gtkdialog.*", ""],
]

# Maximum number of allowed master windows (0 - 5).
window_masters_max = 3

# Maximum number of allowed slave windows (1 - 5).
window_slaves_max = 3

# How much space should be left between windows (0 - 100).
window_gap_size = 10

# Window decorations will be removed if set to false (true | false).
window_decoration = true

################################## Proportion ##################################

# Initial division of master-slave area (0.0 - 1.0).
proportion = 0.6

# How much to increment/decrement master-slave area (0.0 - 1.0).
proportion_step = 0.05

# Minimum window width/height in proportion to workspace (0.0 - 1.0).
proportion_min = 0.2

##################################### Edge #####################################

# Margin of the tiling area ([top, right, bottom, left]).
edge_margin = [0, 0, 0, 0]

# Margin of the tiling area on primary screen ([top, right, bottom, left]).
edge_margin_primary = [0, 0, 0, 0]

# Width and height of a hot-corner area within the edge corners (0 - 100).
edge_corner_size = 10

# Width or height of a hot-corner area within the edge centers (0 - 100).
edge_center_size = 100

################################################################################
[colors]                             # RGBA color values used for ui elements. #
################################################################################

# Layout window text color.
gui_text = [255, 255, 255, 255]

# Layout window background color.
gui_background = [30, 30, 40, 255]

# Layout slave client rectangle color.
gui_client_slave = [58, 58, 78, 255]

# Layout master client rectangle color.
gui_client_master = [98, 98, 128, 255]

# Systray icon background color.
icon_background = [0, 0, 0, 0]

# Systray icon foreground color.
icon_foreground = [255, 255, 255, 255]

################################################################################
[keys]                            # Key symbols can be found by running `xev`. #
################################################################################

# Enable tiling on the current screen (Home = Fn_Left).
enable = "Control-Shift-Home"

# Disable tiling on the current screen (End = Fn_Right).
disable = "Control-Shift-End"

# Disable tiling and restore windows on the current screen.
restore = "Control-Shift-R"

# Toggle between enable and disable on the current screen.
toggle = "Control-Shift-T"

# Cycles through next layouts (Next = Page_Down).
# cycle_next = "Control-Shift-Next"

# Cycles through next layouts ALTERNATE BINDING.
cycle_next = "Control-Shift-period"

# Cycles through previous layouts (Prior = Page_Up).
# cycle_previous = "Control-Shift-Prior"

# Cycles through previous layouts ALTERNATE BINDING.
cycle_previous = "Control-Shift-comma"

# Activates the fullscreen layout (Space = Blank).
layout_fullscreen = "Control-Shift-Space"

# Activates the vertical-left layout (Left = Arrow_Left).
layout_vertical_left = "Control-Shift-Left"

# Activates the vertical-right layout (Right = Arrow_Right).
layout_vertical_right = "Control-Shift-Right"

# Activates the horizontal-top layout (Up = Arrow_Up).
layout_horizontal_top = "Control-Shift-Up"

# Activates the horizontal-bottom layout (Down = Arrow_Down).
layout_horizontal_bottom = "Control-Shift-Down"

# Make the active window a master (KP_5 = Num_5).
# master_make = "Control-Shift-KP_5"

# Make the active window a master ALTERNATE BINDING.
master_make = "Control-Shift-A"

# Make the next window a master (KP_6 = Num_6).
# master_make_next = "Control-Shift-KP_6"

# Make the next window a master ALTERNATE BINDING.
master_make_next = "Control-Shift-N"

# Make the previous window a master (KP_4 = Num_4).
# master_make_previous = "Control-Shift-KP_4"

# Make the previous window a master ALTERNATE BINDING.
master_make_previous = "Control-Shift-P"

# Increase the number of masters (KP_Add = Num_+).
# master_increase = "Control-Shift-KP_Add"

# Increase the number of masters ALTERNATE BINDING.
master_increase = "Control-Shift-L"

# Decrease the number of masters (KP_Subtract = Num_-).
# master_decrease = "Control-Shift-KP_Subtract"

# Decrease the number of masters ALTERNATE BINDING.
master_decrease = "Control-Shift-H"

# Increase the number of slaves (Plus = +).
# slave_increase = "Control-Shift-Plus"

# Increase the number of slaves ALTERNATE BINDING.
slave_increase = "Control-Shift-K"

# Decrease the number of slaves (Minus = -).
# slave_decrease = "Control-Shift-Minus"

# Decrease the number of slaves ALTERNATE BINDING.
slave_decrease = "Control-Shift-J"

# Increase the proportion of master-slave area (KP_3 = Num_3).
# proportion_increase = "Control-Shift-KP_3"

# Increase the proportion of master-slave area ALTERNATE BINDING.
proportion_increase = "Control-Shift-W"

# Decrease the proportion of master-slave area (KP_1 = Num_1).
# proportion_decrease = "Control-Shift-KP_1"

# Decrease the proportion of master-slave area ALTERNATE BINDING.
proportion_decrease = "Control-Shift-Q"

# Moves focus to the next window (KP_2 = Num_2).
# window_next = "Control-Shift-KP_2"

# Moves focus to the next window ALTERNATE BINDING.
window_next = "Control-Shift-F"

# Moves focus to the previous window (KP_8 = Num_8).
# window_previous = "Control-Shift-KP_8"

# Moves focus to the previous window ALTERNATE BINDING.
window_previous = "Control-Shift-D"

# Exit cortile.
exit = "Control-Shift-x"

# The commands above will affect all screens if this key is pressed in addition (Mod1 = Alt_L).
mod_screens = "Mod1"

# The commands above will affect all workspaces if this key is pressed in addition (Mod4 = Super_L).
mod_workspaces = "Mod4"

################################################################################
[corners]                   # Action strings from [keys] or external commands. #
################################################################################

# Corner at top left.
top_left = "window_previous"

# Corner at top center.
top_center = ""

# Corner at top right.
top_right = "master_make"

# Corner at center right.
center_right = ""

# Corner at bottom right.
bottom_right = "proportion_increase"

# Corner at bottom center.
bottom_center = ""

# Corner at bottom left.
bottom_left = "proportion_decrease"

# Corner at center left.
center_left = ""

################################################################################
[systray]                   # Action strings from [keys] or external commands. #
################################################################################

# Icon left click with pointer.
click_left = ""

# Icon middle click with pointer.
click_middle = "toggle"

# Icon right click with pointer.
click_right = ""

# Icon vertical scroll up with pointer.
scroll_up = "cycle_previous"

# Icon vertical scroll down with pointer.
scroll_down = "cycle_next"

# Icon horizontal scroll left with pointer.
scroll_left = "proportion_decrease"

# Icon horizontal scroll right with pointer.
scroll_right = "proportion_increase"

geo_c
Old School Hipster, and Such

User avatar
Sofiya
Posts: 1806
Joined: Tue Dec 07, 2021 9:49 pm
Has thanked: 1202 times
Been thanked: 1078 times

Re: Cortile - auto tiling manager

Post by Sofiya »

As we say, it will go with beer ;)

Attachments
config.toml.false.gz
(7.43 KiB) Downloaded 13 times
Снимок экрана.png
Снимок экрана.png (212.68 KiB) Viewed 563 times

Vanilla Dpup 9.2.X - KLV-Airedale - KLA-OT2
PUPPY LINUX Simple fast free

User avatar
rockedge
Site Admin
Posts: 5713
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 1992 times
Been thanked: 2097 times
Contact:

Re: Cortile - auto tiling manager

Post by rockedge »

@geo_c, I was able to compile snixembed on F96-CE_4 !

Screenshot(1).png
Screenshot(1).png (107.74 KiB) Viewed 510 times

I placed the binary in /usr/bin and started it in a terminal for a test with :

Code: Select all

snixembed --fork

Looking at the tray bar suddenly the proper icon appeared!

Screenshot(1).jpg
Screenshot(1).jpg (31.9 KiB) Viewed 505 times

To prepare the build I had to install the dependencies then include the required library paths. In the build terminal:

Code: Select all

export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/include/gtk-3.0:/usr/lib64/pkgconfig
pkg-config --cflags gtk+-3.0
pkg-config --libs gtk+-3.0
make

Attached is the resulting binary tested on F96-CE_4 with a stock kernel 6.0.12

Attachments
snixembed.tar.gz
extract the binary
(31.94 KiB) Downloaded 27 times
geo_c
Posts: 2501
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 1799 times
Been thanked: 705 times

Re: Cortile - auto tiling manager

Post by geo_c »

rockedge wrote: Wed Feb 07, 2024 3:31 am

@geo_c, I was able to compile snixembed on F96-CE_4 !
Screenshot(1).png

Fantastic, I've totally been enjoying this tiler.

And here's a hotkey splash to go with the config I posted previously:

Cortile-hotkeys_DarkBlueCloudyBlue.sh.FALSE.gz
(1.84 KiB) Downloaded 13 times

config found here: viewtopic.php?p=111277#p111277

Image

geo_c
Old School Hipster, and Such

User avatar
Sofiya
Posts: 1806
Joined: Tue Dec 07, 2021 9:49 pm
Has thanked: 1202 times
Been thanked: 1078 times

Re: Cortile - auto tiling manager

Post by Sofiya »

Change the color of the tray icon, white is not visible at all on a light tray
RGB color palette https://www.rapidtables.com/web/color/RGB_Color.html
don't touch the last 255

108-109 line

Code: Select all

# Systray icon foreground color.
icon_foreground = [34, 42, 159, 255]

Place in /root/Startup

Code: Select all

#!/bin/sh
snixembed --fork && cortile 
Attachments
cortile_snixembed_start.sh.FALSE.gz
(40 Bytes) Downloaded 18 times
Снимок экрана.png
Снимок экрана.png (75.62 KiB) Viewed 479 times
Снимок экрана.png
Снимок экрана.png (213.72 KiB) Viewed 482 times

Vanilla Dpup 9.2.X - KLV-Airedale - KLA-OT2
PUPPY LINUX Simple fast free

User avatar
Sofiya
Posts: 1806
Joined: Tue Dec 07, 2021 9:49 pm
Has thanked: 1202 times
Been thanked: 1078 times

Re: Cortile - auto tiling manager

Post by Sofiya »

:thumbup: :thumbup: Enjoy

Code: Select all

# Maximum number of allowed master windows (0 - 5).
window_masters_max = 4
Attachments
Снимок экрана.png
Снимок экрана.png (116.27 KiB) Viewed 405 times

Vanilla Dpup 9.2.X - KLV-Airedale - KLA-OT2
PUPPY LINUX Simple fast free

User avatar
Sofiya
Posts: 1806
Joined: Tue Dec 07, 2021 9:49 pm
Has thanked: 1202 times
Been thanked: 1078 times

Re: Cortile - auto tiling manager

Post by Sofiya »

Comparing the works of this application, It works well on BookwormPup64 10.0.4 .I don't know why

Vanilla Dpup 9.2.X - KLV-Airedale - KLA-OT2
PUPPY LINUX Simple fast free

geo_c
Posts: 2501
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 1799 times
Been thanked: 705 times

Re: Cortile - auto tiling manager

Post by geo_c »

rockedge wrote: Wed Feb 07, 2024 3:31 am

@geo_c, I was able to compile snixembed on F96-CE_4 !
Attached is the resulting binary tested on F96-CE_4 with a stock kernel 6.0.12

I placed the snixembed in /usr/bin and start with @sofiya's suggested command from a Rox panel icon.

Code: Select all

#!/bin/sh
snixembed --fork && cortile 

Here's the complete Tile Pup-F96: I'm starting it from my Rox panel on the right. I prefer not to autostart coretile.
Image

geo_c
Old School Hipster, and Such

User avatar
rockedge
Site Admin
Posts: 5713
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 1992 times
Been thanked: 2097 times
Contact:

Re: Cortile - auto tiling manager

Post by rockedge »

Cortile version 2.40 has been released!!

Found out when a red dot showed up on the tray/panel icon! :thumbup2:

I upgraded a KLV-Airedale with good results so far.

User avatar
rockedge
Site Admin
Posts: 5713
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 1992 times
Been thanked: 2097 times
Contact:

Re: Cortile - auto tiling manager

Post by rockedge »

Also now tested in F96-CE_4 both as RT and using the stock kernel 6.0.12.......working pretty good....so far :ugeek: :thumbup:

Post Reply

Return to “Desktop”