Code Monkey home page Code Monkey logo

Comments (20)

ouwou avatar ouwou commented on May 25, 2024

i'm not really familiar with the pinephone so i'm not sure how i could test it unless it's just a regular linux platform with a small resolution. i'm curious to hear though how you managed to use this on a pinephone since i would expect it to be unusable and cluttered on a portrait display

as far as the channel select thing goes that's a side effect of the pretty hacky implementation of the channel list because it uses GtkTextView (i've been putting off rewriting it for a while). if you can show me what the selection thing looks like or give me any more details, that'll make it easier to figure out a fix for

from abaddon.

Id405 avatar Id405 commented on May 25, 2024

Its just a regular linux platform with small resolution (720x1440) and with aarch64. The compilation works fine though, so as long as the program is functional at about those screen dimensions it should work. Looking at how gnome feeds or giara solves this would probably be a good start. I managed to use it on a pinephone by dragging the channel area and member area panels so they were mostly collapsed.

The channel select thing is I think something thats going to be a bit deeper to solve? The issue is is that fosh (the most popular desktop environment for pinephone) sees it as text I think so the touch input gets deffer ed to phosh instead? I'm not sure, I wouldn't worry about the issue too much now as the client would be more than usable with it. I think an easy (but ugly) fix would just be replacing the GtkTextViews with buttons based on a setting in the config file. You may also be able to use gtk's theming to make it alright but I'm not sure. I'll get some screenshot software on my pinephone and grab a screenshot for you in a bit.

Thank you for your help already, getting this working on pinephone will be a pretty big step forward for the platform and make the phone viable as a daily driver for a lot of people.

from abaddon.

ouwou avatar ouwou commented on May 25, 2024

i could try and add an option to change that part of the channel list for the time being. it's only really like that in the first place because of windows being finicky

as far as hiding the channel/member list i think i might experiment with like a back button in the header bar or something along those lines but idk how that would work with the member list. it'd be useful to know how other gtk apps that support mobile displays handle stuff like that though (i've only really heard of stuff like libhandy)

from abaddon.

Id405 avatar Id405 commented on May 25, 2024

I looked into gnome feeds and giara and it looks like they are both made using libhandy. I think you could probably achieve similar behaviour using a check for if the window width is under a certain amount and then using a stack switcher or something similar? Although I think a simple button to hide/expand the channel list and member list would be functional (but probably a little weird).

from abaddon.

ouwou avatar ouwou commented on May 25, 2024

no something like the stack switcher is what i had in mind. the difficult thing for me is probably keeping the functionality right now and also adding the new functionality. i was gonna actually change the chat region to a stack anyways for an unrelated feature so that'll probably make it a bit easier. i'll look into gnome feeds and giara and mess around with it more in the coming days, gtkcord could do it (too bad it's dead) but i've yet to actually figure out how lol

from abaddon.

ouwou avatar ouwou commented on May 25, 2024

hopefully that commit can take care of the text selection thing if you add this to the ini

[gui]
alt_channel_widget = true

let me know if anything doesnt work. if emojis work too then i'll probably enable it by default on non-windows

from abaddon.

Id405 avatar Id405 commented on May 25, 2024

That commit works great for the text selection thing! Emojis also work in the channel list too. I guess really the only thing left is making the interface use a stack switcher on mobile. I think either using libhandy for this or just a simple ini mobile = true option would work great!

from abaddon.

ouwou avatar ouwou commented on May 25, 2024

i would like to use libhandy but theres a couple problems. one being the widget i would (probably) end up using (HdyFlap) doesnt quite keep the functionality of a Paned, though i guess i could switch between them depending on an ini option. the bigger problem is that there are no c++ bindings for libhandy so i would have to generate them myself which given gnome's tooling is probably remarkably annoying, or i could try implementing my own which doesnt seem much easier either. i'll have a look into both options

from abaddon.

Id405 avatar Id405 commented on May 25, 2024

I honestly think just having a mobile = true ini option that enables a stack switcher would work great then. I think libhandy would be nice but its not super essential. The other option if you end up going with libhandy is using the HdySqueezer to swap between the stack switcher layout and the paned layout, so you can keep the paned layout for desktop users.

from abaddon.

ouwou avatar ouwou commented on May 25, 2024

yeah you're probably right just going with a stack would be a lot simpler lol though i wish i could use libhandy since it seems quite useful. i'll see what i can come up with. the stack switcher will probably go in the header bar unless there's some reason to not do that

from abaddon.

Id405 avatar Id405 commented on May 25, 2024

Having the stack switcher on the bottom would be much more ergonomic because the user doesn't have to reach up to the headerbar with their thumb.

from abaddon.

ouwou avatar ouwou commented on May 25, 2024

turned out to be a lot easier than i expected. heres what it looks like right now:
BUdVNHY58M
add

[gui]
mobile = true

which also replaces alt_channel_widget. seems pretty good to me actually but i would imagine there might be some things that push the width far enough to force you to scroll horizontally, probably embeds and images. let me know what you think
also as far as mobile stuff goes i would imagine the profile/server dialogs are pretty unusable on a mobile display though i suspect you cant even open them to begin with.

from abaddon.

Id405 avatar Id405 commented on May 25, 2024

That looks sick! I'll start compiling this now! Thank you so much!

from abaddon.

Id405 avatar Id405 commented on May 25, 2024

The stack switcher works great, however when using it on my pinephone I noticed there was a lot of area on the screen I couldn't use to scroll. In the channels tab I could only use the little bit of blank space on the left to scroll, and in the actual messages if I tried to scroll and my finger dragged over an image it would attempt to open that image a ton of times in the browser. Also the stack switcher felt a little bit small and I would often end up hitting the home button instead of the stack switcher.

from abaddon.

ouwou avatar ouwou commented on May 25, 2024

im not sure what to do about the scrolling issues cuz its not like i have a pinephone to test with and i cant really find anything on google about stuff like this. if you can find any info about it maybe i can look into that. did it only start after the last commit? and does it only do that over images or also embed titles with urls and links?
for the stack switcher try messing with the 2nd number in m_switcher->set_size_request(-1, 100); (put it around here) and once you find a good number let me know and ill use that (or i guess you could PR it)

from abaddon.

Id405 avatar Id405 commented on May 25, 2024

Sweet, yeah I'll probably start taking these changes into my own hands here once I get distcc working and bundle it all into a pr. Once this gets all working I'll probably also bundle it into a flatpack so the app shows up on the app stores for most distros like mobian, manjaro or arm.

from abaddon.

ouwou avatar ouwou commented on May 25, 2024

@Id405 is this still something you think i should worry about maintaining for the time being? i've been making (and planning) some changes that will probably take a good bit of effort to port to mobile but i don't wanna sink time into it if it's not really necessary. i do want to have a mobile-compatiable layout but i'd rather put it off until i finish the more significant changes if it's not an issue.

from abaddon.

Id405 avatar Id405 commented on May 25, 2024

I think drop the changes for now, I've been pretty busy lately. I'll revisit this later but just come back around to mobile support whenever you want.

from abaddon.

1peter10 avatar 1peter10 commented on May 25, 2024

Great to read this :) I'll test it and add it to my app list soon!

from abaddon.

ouwou avatar ouwou commented on May 25, 2024

might return to another time

from abaddon.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.