#28 Don't put servers.cfg directly in ~

open
nobody
None
5
2005-12-01
2005-12-01
Stephan Sokolow
No

Please either rename servers.cfg to something
like .cube-servers.cfg or ~/.cube/servers.cfg (no
potential name conflict and no visual clutter)

servers.cfg is one of only a handful of files which I
have to persistently delete to keep my homedir
tolerable. (the others are the music.raw that
sdl-mixer creates, the ArgoUML config file, and the
FreeMind config+temp directory)

Discussion

  • Logged In: NO

    what is ~ ?
    and why don't u just put cube in a cube folder??
    i have no problems with stray files cause it keeps
    servers.cfg in the folder that you run the batch (or
    shell) file in, and that is C:\Program Files\Cube on my
    system.

     
  • Logged In: YES
    user_id=302370

    I'm running Linux. That answers almost all of your questions.

    First, ~ is shorthand for the user home directory. On Linux,
    it's /home/username and on Windows, it would be C:\Documents
    and Settings\username by default.

    Second, Linux doesn't keep programs in their own separate
    folders. For most distros, there's a centralized
    install/remove tool called a package manager and all
    programs are divided up by file type (programs in /usr/bin,
    libraries in /usr/lib, resources (eg. images) in
    /usr/share/programName, and user-specific files in ~ )

    Third, if Linux programs place their config location
    relative to where you run the binary from, it's considered a
    bug. Linux GUIs are designed with the expectation that the
    program can be started from anywhere and it will always use
    the same location for it's config files. Because of that,
    all GUI systems run programs with the working directory set
    to ~ and users expect to be able to type the commands from ~
    without any unexpected problems.

    This is important because Linux and related OSes use ~ as
    the default documents folder rather than ~/My Documents as
    Windows uses. (Some distros create ~/Documents, but it's
    nowhere near a universal thing.) and people don't want their
    programs filling their documents folder with non-hidden
    auto-generated config files.

    Program-specific config goes in /var or /etc depending on
    the type of program, and user-specific config (all games)
    goes in a file named ~/.FOOrc (FOO = game name. The rc
    suffix is used to people know immediately that it's a config
    file for FOO.) or ~/.FOO/* (multiple files). In all cases, a
    leading period is used because that's how UNIX-compatible
    OSes mark things as hidden.