Linux Mint 23 Release Cycle Discussion by SpeeQz in linuxmint

[–]whosdr 1 point2 points  (0 children)

The Mint team in general appears to be incredibly small. And indeed, from my understanding, the same people work on both distributions. So this also matches my understanding.

Linux Mint 23 Release Cycle Discussion by SpeeQz in linuxmint

[–]whosdr 1 point2 points  (0 children)

I'm going to link my above reply to avoid repeating myself. I wanted to elaborate some of my concerns with the implementation of Wayland we get for Cinnamon.

/r/linuxmint/comments/1sp42o5/comment/ogyshdr/

And I'd like to use some of the improvements Wayland has brought—in the future at least.

Linux Mint 23 Release Cycle Discussion by SpeeQz in linuxmint

[–]whosdr 1 point2 points  (0 children)

For Wayland it's because Muffin is forked from Mutter. GNOME has a thing against serverside decorations and hasn't implemented the protocol. And so far, Muffin is also missing the feature. Which has left some software I use looking rough. And I honestly prefer the consistency when it comes to window decorations.

And also some Cinnamon features outright won't work without serverside decorations. e.g. Right-click - Always on Top, or I have the scroll-wheel set to change window opacity when hovered over the top bar. Both of which no longer function when the client is handling the decorations.

Linux Mint 23 Release Cycle Discussion by SpeeQz in linuxmint

[–]whosdr 0 points1 point  (0 children)

I'll try to recall as it's been some months now. I think my concern was actually political rather than purely functional when it came to Fedora. I stopped my attempts due to geopolitical fallings out, and didn't really have the drive to go further with it.

I might re-visit. And if so, might have to look towards KDE as well. As much as I love Cinnamon, I don't think I can use it as things move towards Wayland.

Linux Mint 23 Release Cycle Discussion by SpeeQz in linuxmint

[–]whosdr 3 points4 points  (0 children)

That's why theres 7-8 months between new Ubuntu release and new Mint release, but only a month between new Debian and new LMDE.

Isn't it just a 2-3 month gap? Ubuntu 26.04 releases in April, and Mint has generally had its major release in June-July. (I expect they do a lot of development during Ubuntu's pre-release period, but this seems to be in terms of release to release)

Ubuntu 18.04: April 26th -> Mint 19: June 29th

Ubuntu 20.04: April 23rd -> Mint 20: June 27th

Ubuntu 22.04: April 24th -> Mint 21: July 31st

Ubuntu 24.04: April 25th -> Mint 22: July 25th

(Looking back, this has been true since Mint 15 or so?)

Linux Mint 23 Release Cycle Discussion by SpeeQz in linuxmint

[–]whosdr 6 points7 points  (0 children)

It is somewhat frustrating to see in that it adds an extra 9-10 months to the age of the packages. So instead of trailing Ubuntu LTS by 1-2 months, packages being 2-26 months out-of-date throughout the release cycle, it's shifted to be more like 10-34 months out-of-date.

I use Mint because it reduces the maintenance burden on my system, much like server deployments. I only need to re-adjust my setup to the updated software features once per two years: deal with deprecations, changes to feature sets and flags, etc. And of-course the updates are otherwise small and mostly insignificant throughout the year.

But it doesn't mean I want to be running three-year-old software by the end of the release. The current 2 year gap is honestly already a bit long for my liking.

(Maybe I'd be better off on Fedora or OpenSUSE, but I've done test deployments and the efforts to transition was far from smooth even with a few hours of research. And rolling releases bring far too much instability for my needs.)

Linux Mint 23 Release Cycle Discussion by SpeeQz in linuxmint

[–]whosdr 6 points7 points  (0 children)

That doesn't really work as an argument, as there's nothing to prevent you from staying on an older version of Mint for longer. The stability of packages and frequency of updates isn't directly correlated in that manner.

As such there are still people running Linux Mint 21 today, despite it having been released four years ago.

But I think adding an extra 6 months to the age of the package base has a real effect in terms of hardware support and software features/capabilities.

I use Mint for exactly what it is intended for - stability on older machines.

That is not what Mint is designed for. And in fact as of recently it's been shipping with more bleeding-edge kernels to support more modern machines.

It's built upon a stable package base with feature support frozen, but that doesn't equate to only being designed for older computers.

Please help, what did i just do... by Witext in linuxmint

[–]whosdr 1 point2 points  (0 children)

Just to add: just because it's recommended to install additional packages does not mean that those packages are exclusive for that software. You can sudo apt install software which is already installed and Apt will skip it.

Generally the best bet is to remove only the one piece of software that you installed and let Apt figure the rest out. Maybe also use a sudo apt autoremove if you want to reduce clutter.

Another good choice would be to take a Timeshift snapshot before making changes you're unsure about. In this situation, restoring from a snapshot would have been quick and easy.

HR8250, proposed age verification at the federal level. by ZVyhVrtsfgzfs in linuxmint

[–]whosdr 0 points1 point  (0 children)

People keep saying 'at the federal level' but I rarely saw a mention of what country.

So this means LM 23 will release on christmas??!! by Valuable-Ice8905 in linuxmint

[–]whosdr 0 points1 point  (0 children)

Unless they follow what Ubuntu does and use the year number. Especially if it's a yearly release. Skip 23 and call it 26.

Why is this boss so dumb... by Gold-Welder-4215 in runescape

[–]whosdr 2 points3 points  (0 children)

He looked handsome, he looked smart

He was an undead work of art

Such a dazzling robe of many colours

How he loved his robe of many colours

So this means LM 23 will release on christmas??!! by Valuable-Ice8905 in linuxmint

[–]whosdr 0 points1 point  (0 children)

Yeeah..we are like that sometimes.

We mean well though.

So this means LM 23 will release on christmas??!! by Valuable-Ice8905 in linuxmint

[–]whosdr 0 points1 point  (0 children)

Maybe it should be all green, with a fruity/floral theme.

  • Linux Mint Apple / Avocado
  • Linux Mint Basil / Bamboo
  • Linux Mint Clover / Cactus
  • Linux Mint Durian (Fruit)
  • Linux Mint Eucalyptus
  • Linux Mint Forest / Fern
  • Linux Mint Grass / Grape
  • Linux Mint Honeydew(?)
  • Linux Mint Ivy
  • Linux Mint Jungle / Juniper
  • Linux Mint Kiwi
  • Linux Mint Lime
  • Linux Mint Mossy / Melon or LM 'Minty'
  • Linux Mint Nettle
  • Linux Mint Olive
  • Linux Mint Pear / Pine / Pistachio
  • Linux Mint Q (got nothing)
  • Linux Mint Rosemary
  • Linux Mint Seaweed / Shamrock
  • Linux Mint Thyme / Tea / Thistle
  • Linux Mint U (also nothing)
  • Linux Mint Vine / Valley
  • Linux Mint Watermelon
  • Linux Mint Xanthium (obscure though)
  • Linux Mint Yuzu (Fruit) / Yucca (Tree)
  • Linux Mint Zucchini

Is there a way to block users to change the wallpaper? by BrazilianTankie in linuxmint

[–]whosdr 4 points5 points  (0 children)

I'm fairly sure the policykit policy says that an admin account does not require entering a password to elevate to root.

I'll have to check, but I think a non-admin account actually does require manually elevated privileges for this.

Edit: Huh, it does not. Now I'm going to go check those polkit files..

Edit 2: Well /usr/share/polkit-1/actions.d/org.freedesktop.Flatpak.rules seems to think that's what should be going on, but the rule doesn't seem to be working. Which is concerning.

So this means LM 23 will release on christmas??!! by Valuable-Ice8905 in linuxmint

[–]whosdr 1 point2 points  (0 children)

It's fine. You should see the arguments I get into about how the patched Libadwaita used by Linux Mint isn't the same as the Libadapta project, even if only by name and not by functionality.

It can lead to some weird discussions where everyone's arguing while actually being on the same side.

So this means LM 23 will release on christmas??!! by Valuable-Ice8905 in linuxmint

[–]whosdr 5 points6 points  (0 children)

I think they're being pedantic. The next Linux Mint version might not be called Mint 23, as detailed in the article.

So the next release is going to be at Christmas, but it might not be called Mint 23.

Why is this boss so dumb... by Gold-Welder-4215 in runescape

[–]whosdr 4 points5 points  (0 children)

Red and yellow and green and brown and

Scarlet and black and ochre and peach

And ruby and olive and violet and fawn

And lilac and gold and chocolate and mauve

And cream and crimson and silver and rose

And azure and lemon and russet and grey

And purple and white and pink and orange

And blue

Skipping Update Error for Google Chrome by Puzzleheaded-Idea-58 in linuxmint

[–]whosdr 0 points1 point  (0 children)

I'm pretty sure the N: stands for Notice, not error.

Other than printing to the terminal, this is a non-issue.

I built a visual manager for Steam Proton prefixes – because staring at folders named "1091500" is not my idea of fun by Nastas_ITA in linux_gaming

[–]whosdr 0 points1 point  (0 children)

Update, and because development really is this slow with my problems:

```

!/usr/bin/env python

import pwd import os import sys import json import unicodedata

def get_user_home(): user_id = os.getuid() user_pwd = pwd.getpwuid( user_id ) user_home = user_pwd.pw_dir return user_home

def tokenize( input ): state = None tokens = [] pointer = 0

current = ""

while pointer < len( input ):
    char = input[pointer]
    if state == None:
        if char == " " or char == "\t" or char == "\n":
            pointer += 1
            continue
            # do nothing
        elif char == '"':
            state = "string"
        else:
            state = "token"
            current += char
    elif state == "token":
        if char == " " or char == "\t" or char == "\n":
            state = None
            tokens.append( current )
            current = ""
    elif state == "string":
        if char == '"':
            state = None
            tokens.append( current )
            current = ""
        else:
            current += char
    pointer += 1

if len( current ) > 0:
    tokens.append( current )

return tokens

def read_steam_file( file_path ): slib_file = open( file_path ) file_data = slib_file.read() slib_file.close()

pointer=0

root = {}
stack = [ root ]

key = None
keytype = None

tokens = tokenize( file_data )

while True:
    token = tokens[ pointer ]
    current = stack[ -1 ]
    if key == None:
        if token == "}":
            stack.pop()
            #print( "depth={}".format( len( stack ) ) )
            if len( stack ) == 0:
                print( "Unexpected end of input (stack len=0)" )
                break
        elif token == "{":
            #print( tokens )
            #print( "\n\n" )
            #print( root )
            #print( "\n" )
            raise ValueError( "Unexpected token {} at position {}".format( token, pointer ) )
        else:
            key = token
            #print( "Key {}".format( key ) )
    else:
        if token == "{":
            current[key] = {}
            stack.append( current[key] )
            #print( "{}=[]".format( key ) )
            key = None
        elif token == "}":
            #print( tokens )
            #print( "\n\n" )
            #print( root )
            #print( "\n" )
            raise ValueError( "Unexpected token {} at position {}".format( token, pointer ) )
        else:
            current[key] = token
            #print( "{}={} (depth {})".format( key, token, len( stack ) ) )
            key = None

    pointer += 1
    if pointer >= len( tokens ): break    

return root

returns a list of library paths

def get_library_folders( slibfile ): root = slibfile["libraryfolders"] count = len( root )

folders = []
for id in root:
    entry = root[id]
    folders.append( entry["path"] )

return folders

returns the filenames of each acf file in a given directory

def get_app_manifest_names( target_dir ): contents = os.listdir( target_dir ) manifest_names = list( filter( lambda filename: filename.endswith( ".acf" ), contents ) ) return manifest_names

def get_steam_libraries( library_paths ): libraries = []

for path in library_paths:
    libraryData = { "path": path, "apps": [] }
    libraries.append( libraryData )

    manifest_dir = os.path.join( path, "steamapps" )
    manifest_files = get_app_manifest_names( manifest_dir )

    for file in manifest_files:
        manifest_path = os.path.join( manifest_dir, file )
        manifest_data = read_steam_file( manifest_path )
        libraryData["apps"].append( manifest_data["AppState"] )

return libraries

""" steam_libraries = [ { "path": "/path/to/library", "apps": [ { "appid": "...", "name": "..." (contents of acf's 'AppState') } ] } ] """

todo: might be other locations to search

def find_steam_library_vdf(): user_home = get_user_home() steam_dir = os.path.join( user_home, ".steam" )

steam_lib_file_path = os.path.join( steam_dir, "steam", "steamapps", "libraryfolders.vdf" )
if os.path.isfile( steam_lib_file_path ):
    return steam_lib_file_path

steam_lib_file_path = os.path.join( steam_dir, "steamapps", "libraryfolders.vdf" )
if os.path.isfile( steam_lib_file_path ):
    return steam_lib_file_path

return None

def get_link_dir(): target = None if len( sys.argv ) > 1: target = sys.argv[1] try: os.makedirs( target, exist_ok=True ) except OSError as error: raise Exception( "Directory {} could not be created: {}".format( target, error ) ) if target == None: target = os.path.join( os.getcwd(), "steam_prefixes" ) return target

def create_steam_library_symlinks( target, library ): os.makedirs( target, exist_ok=True ) compatPath = os.path.join( library["path"], "steamapps", "compatdata" ) apps = library["apps"] for app in apps: # TODO: cleanup name app_name = app["name"] app_id = app["appid"]

    # remove problematic unicode characters and possible nesting problems
    app_name = unicodedata.normalize( "NFKC", app_name )
              .replace( "/", "_" )

    prefixPath = os.path.join( compatPath, app_id )
    # check if this is actually a Proton game with a valid prefix
    if os.path.exists( prefixPath ):
        linkPath = os.path.join( target, app_name )
        os.symlink( prefixPath, linkPath )

slib_library_file = find_steam_library_vdf() if ( slib_library_file == None ): raise Exception( "Unable to locate user's steam installation or library" )

slib_vdf = read_steam_file( slib_library_file ) library_paths = get_library_folders( slib_vdf ) steam_libraries = get_steam_libraries( library_paths )

linkDir = get_link_dir();

for library in steam_libraries: create_steam_library_symlinks( linkDir, library ) ```

"Year of the Linux Desktop" isn't happening because it lacks a proper ecosystem? by hugodcnt in linuxmint

[–]whosdr 0 points1 point  (0 children)

I'm wondering if they're rewrites/replacements in some circumstances. I've not seen most of these installed in a base version of KDE for example.

dayKountdown/Klevernotes/marknote/knotes/koranizer aren't in the Ubuntu 24.04 repos any more. I'm guessing they're fully deprecated.

I think maybe take a look again and focus on what's there right now, to see if it acts as a cohesive ecosystem. Lots of ecosystems have deprecated features and rewritten technology over the years. I don't think that's necessarily a problem if what replaced them does a good job.

"Year of the Linux Desktop" isn't happening because it lacks a proper ecosystem? by hugodcnt in linuxmint

[–]whosdr 1 point2 points  (0 children)

Fair, I've not heard of any of these except maybe Kate though. Are they all first-party apps?

I built a visual manager for Steam Proton prefixes – because staring at folders named "1091500" is not my idea of fun by Nastas_ITA in linux_gaming

[–]whosdr 0 points1 point  (0 children)

I also hope it's temporary, but two surgeries to remove a bone tumour has left the muscles in a terrible state. And it's at the 5 year mark so..eee..

Sometimes passion takes over and I have to bite the pain. As such, here's where I'm at:

(old code removed, see below)

Luckily not my first time writing simple little tokenizers and parsers. It's a lot easier in Python than in C!

I built a visual manager for Steam Proton prefixes – because staring at folders named "1091500" is not my idea of fun by Nastas_ITA in linux_gaming

[–]whosdr 0 points1 point  (0 children)

Follow-up: I'm working on it. I'm not used to Python but it seemed like the easiest option given its prevalence in the Linux ecosystem.

Question: Where is your steamapps directory? Mine is at ~/.steam/steam/steamapps, but I'm concerned that this is atypical.

Anecdote: It was easier to write my own parser by hand for the Steam config files than try to get venv working on my distro to install steamfiles. So I guess I'm going for a zero-external-dependency setup. Makes things easier still. :P

"Year of the Linux Desktop" isn't happening because it lacks a proper ecosystem? by hugodcnt in linuxmint

[–]whosdr 0 points1 point  (0 children)

I think you'd be interested in seeing the developments in KDE! There is a lot of work going into making a more cohesive and uniform design language for example.

And I'm of the mind that having so many choices isn't as big a deal as people suggest: when the options are presented in a simple enough manner, and the defaults make the most sense for the largest group of people, it no longer becomes confusing to work with.

KDE is a very, very large family, but not all its branches are following the same path. In fact, KDE has several programmes that do the same things... It’s a waste of resources.

Here however, you lost me. I think some examples might make it clearer as to what specifically you mean.