MythTV
is shell that organizes a tremdous amount of open source multimedia
software for the purpose running your home entertainment system.
MythTV is a collection of software which runs under the Linux
operating system, and provides the functions commonly known as a PVR or
DVR (personal, or digital, video recorder) — essentially, it's a
computerized VCR, similar to a TiVo or a Replay... but since it's open
source software,
if you don't like the way it does something, you can always change it —
that's how much of its current functionality came about in the first
place.
In addition to the basic PVR functions of recording and playing back scheduled programs and allowing you to schedule recordings automatically in advance, MythTV has a plugin system which permits it to be extended by other programmers; plugins currently exist for playing external video, viewing photos and listening to music files, using your TV and a web camera as a video-telephone over the Internet, browsing the web, retrieving current local weather, and many other functions.
He says:
MythTV provides home theatre functions such as the ability to:





![]() |
![]() |

![]() |
![]() |


![]() |
![]() |

Keyboard Commands allow a much more detailed control of MythTV than
the IR Remote does. More Keys. :-) The keys.txt file
describes what the various keyboard
commands are.
If you have loaded mythweb, you may change the default keys to your
liking.
| Arrow keys | used to move the highlight point around |
| ALT-F4 | exit out of the application |
| Space/Enter | take action on the item under the highlight point |
| P | play in both "Watch a Recording" and "Delete a Recording" |
| D | delete in both "Watch a Recording" and "Delete a Recording" |
| U | to view details for the currently selected show on the Watch or Delete screens, EPG, "Program Finder", "Fix Scheduling Conflicts" and search results screens |
| O | to list the upcoming episodes for the currently selected show on the EPG, "Program Finder", "Program Recording Priorities", "Fix Scheduling Conflicts" or search results screens |
| I | edit recording options from the EPG, "Program Finder", "Program Recording Priorities", or "Fix Scheduling Conflicts" screens. From the Playback and Delete screens, 'I' presents options for recorded shows such as Auto Expire or Stop Recording. Pressing 'I' while on the Recording Options screen will take you to the Advanced Recording Options screen. |
| Up or down | keys change the channel |
| num pad | Type a number to enter a channel number or jump amount (HHMM format) |
| P | pause / play. You may also add an explicit keybinding for 'Play' through MythWeb, returning you to normal speed if you are in slow motion, rewind fast forward or pause mode. |
| C | change inputs on TV Tuner card |
| ESC | quits |
| I | puts the On-screen Display up again. During playback, 'I' toggles between position and show description info. If a jump amount is entered, jump to that position. |
| M | brings up the electronic program guide (Grid) -- see the EPG section |
| Page Up | jump back the configured number of minutes (default is 10) |
| Page Down | jump ahead the configured number of minutes (default is 10) |
| End or Z | skip to next commercial break marker |
| Home or Q | skip back to previous commercial break marker |
| T | toggle close caption support Pressing 0-9 (preferably 3 times) + T changes teletext page and turns on teletext. |
| F | rotate between the various Picture Adjustments (Colour, Hue, etc.) While Picture Adjustment is on-screen, use Left and Right arrows to adjust. These settings adjust the look of the video playback, and are independent of the G-key settings used at record-time. |
| [ or F10 | decrease volume |
| ] or F11 | increase volume |
| | or F9 | toggle mute |
| / | jump to the next "favorite" channel |
| ? | mark/unmark the current channel as a "favorite" |
| U | increase the play speed |
| J | decrease the play speed |
| A | Adjust time stretch (speed up or slow down normal play of audio and video |
| W | cycle through zoom and fill modes: 4:3 aspect ratio, 16:9, 4:3 Zoom (like Pan and Scan), 16:9 Zoom, and 16:9 Stretch (eliminates black sidebars in TV signal) |
| F8 | toggle the sleep timer 30m->1hr->1hr30m->2hr->Off |
| CTRL-B | Jump to the beginning of the recording / ringbuffer |
| + | Switch between audio streams |
| Left | (if a jump amount is entered) to jump back that amount |
| Right | (if a jump amount is entered) to jump ahead that amount |
| |
|
| Without the stickykeys option selected | |
| Left | rewind the configured number of seconds (default is 5) |
| Right | fast forward the configured number of seconds (default is 30) |
| < | starts rewind mode as if stickykeys are selected |
| > | starts fast forward mode as if stickykeys are selected |
| |
|
| With Stickykeys option selected | |
| Right | starts fast forward mode |
| Left | starts rewind mode |
| |
|
| In fast forward or rewind mode: | |
| Left/Right | increases the ff/rew speed |
| 0 | plays at normal speed, but leaves the time indicator on screen |
| 1 or 2 | plays back more slowly than normal ff/rew speed (1 is slowest) |
| 3 | plays back at normal ff/rew speed |
| 4-9 | plays back faster than normal ff/rew speed (9 is fastest) |
| Space | exits fast forward or rewind mode |
| |
|
| While video is paused: | |
| Left | rewind 1 frame |
| < | rewind 1 second |
| Right | advance 1 frame |
| > | advance 1 second |
| G | rotate between the various Picture Adjustments (Colour, Hue, etc.) for recording. These values affect the look of the resulting .nuv file, and are independent of the playback picture settings. While Picture Adjustment is on-screen, use Left and Right arrows to adjust. |
| H | Channel history. Each repeat steps back through the previous channels. |
| O | Turns on 'Browse' mode, allowing user to browse channels and program info while watching current show FullScreen. |
| Y | switch between multiple capture cards. NOTE: you will lose your LiveTV buffer on your current card. Useful for different-sourced cards (such as Dish Network on one, HDTV over-the-air on another card.) |
| Left | browse program prior to current listed program |
| Right | browse program following current listed program |
| Up | browse program on channel above current listed channel/program |
| Down | browse program on channel below current listed channel/program |
| / | browse program on next favorite channel |
| 0-9 | enter a channel number to browse |
| Space/Enter | change channel to channel of current listed program |
| R/r | Toggle recording of current program (cycles through types) |
| ESC/O | Exit Browse mode |
| Left | Move video to Left |
| Right | Move video to Right |
| Up | Move video Up |
| Down | Move video Down |
| PageUp | Zoom In |
| PageDown | Zoom Out |
| Space/Enter | Exit Zoom mode leaving picture at current size and position |
| ESC | Exit Zoom mode and return to original size |
| V | toggle Picture-in-picture on or off |
| B | toggles the window focus (lets you change channels on the PiP window) |
| N | swaps the two channels by changing channels on both cards |
| Space/Enter | set a bookmark at that point. Next time you start the recording, you will automatically jump forward to this point and clear the bookmark. |
| X | queues the current recording for transcoding |
| O | brings up menu to allow toggling settings such as Commercial Auto-Skip, Auto-Expire, etc. |
| D | exits the current recording and displays the Delete menu |
| E or M | enters/exits edit mode. |
| |
|
| |
|
| In edit mode | |
| Left/Right | move forward and backward |
| Up/Down | alter the amount of time you jump forward and backward. Increments are: nearest cutpoint, nearest video keyframe, 1 frame, 0.5 seconds, 1 second, 20 seconds, 1 minute, 5 minutes, and 10 minutes. |
| PageUp/PageDown | move forward and backward to the nearest cut point |
| < or > | move forward or backward by 10 times the normal jump amount |
| Space/Enter | allows you to set or delete a cut point |
| Z | loads the commercial skip list (if one exists) into the cutlist |
| C or Q | clear all cut points in the cutlist |
| I | Inverts the cutlist |
| Arrows | are used to move the highlighted program point around |
| A, D, S, W | perform the same as left, right, down and up |
| PageUp/PageDown | move the channel list up or down a page |
| Home/End | move the highlight left or right by one day |
| Ctrl+Left or < | move the highlight left by one page |
| Ctrl+Right or > | move the highlight right by one page |
| 9, 3, 7, 1 | (like a numeric keypad) perform the same as PageUp, PageDown, Home and End |
| I | bring up more information about a show, and allow you to schedule a recording. If you select "Record this showing" while watching Live TV you can "Instant Record" a program. |
| Space/Enter | allow you resolve conflicts or change overrides. If the program is not already scheduled to record, it will instead act like pressing 'I'. |
| M | when on a channel will change to that channel |
| ESC or C | exits without changing the channel |
| R | change the current item from Recording/Not-Recording. Successive keypresses cycle through the scheduled recording type list. |
| X | change the channel to the currently selected channel without leaving the EPG (Most useful in the alternate EPG) |
| ? | mark/unmark the current channel as a "favorite" |
| / or 4 | toggle the guide listing between all channels and filtered "favorites" |
| Right | increases priority value |
| Left | decreases priority value |
| 1 | sorts by title |
| 2 | sorts by priority |
| Home/End | toggle sort priority |
| I | edit recording options |
| ESC | commits changes and exits |
| 1 | show all recordings |
| 2 | show only important recordings |
| Home/End | toggle show showing all/important |
| I | edit recording options |
| Space/Enter | resolve conflict or override |
| Home | change to the previous view if applicable |
| End | change to the next view if applicable |
| M | select another view if applicable. In the title and description search popup, press M again to edit or delete the selected view. |
| D | on a custom profile group displays a popup to delete the group |
In the Watch Recordings screen, Recording Groups allow you to
separate
programs into user-defined categories, such as "Kids", "Alice", "Bob",
etc. This can be used to reduce clutter, or to segregate content if you
use the
PIN function.
| M | change the view or to set a group password |
| I | move a program from one Recording Group to another |
| 1 or F1 | Meaning of the icons |
| / | Tags a recording. Tagged recordings can be played either in order or shuffled and deleted as a group. You can also change the recording group for several recordings at once by tagging them and using the popup INFO menu to change the recording group. |
| ? | Clear the tagged list. |
The MythTV master backend is responsible for managing the schedule for all TV tuner cards on the master and any slave. Its job is to search the TV listing for the shows you have requested and assign recordings to the TV tuner cards. If none of the shows that you've chosen overlap, it simply records all of the shows. However, if there are shows where the beginning and end times overlap, the scheduler follows rules that you've specified or makes logical decisions about what would be best if you haven't express your preference. Further, the "Upcoming Recordings" page allows you make specific decisions about what you really do and don't want to record.
When you choose a show that you would like to record from the Options Page, there are eight different types of rules to help the scheduler find which showings you would like to record.
By default, all shows you select have equal value to the scheduler. There are a set of rules to make good choices when two or more shows are in conflict. However, priority values let the scheduler know what you prefer so that it can set the schedule based on your preferences.
Initially all priority values are set to zero. You may choose to leave everything at "0" and let the scheduler follow rules to guess what you might prefer when there are conflicts. However, if you have one or two favorite shows, you may want to increase the priority value so the scheduler will know that you would prefer recording these over other shows. You might use certain values to rate shows so that all favorites are 2. good shows are 1 and extra 'filler' shows are all -1 for example. You could sort each title on the "Set Priorities" to have a unique value so the scheduler can always know which show you'd prefer versus any other show. The choice and style are entirely up to you. However, the more information you give to the scheduler, the more likely it will make the choices you would prefer in the first place.
The scheduler choices are based on the total priority for a showing by adding up four different priority factors. By default, most of these factors are "0" but you may use any combination to express your likes and needs.
Per record rule -- this is the "priority" field in the "Scheduling Options" section of the options page and this values is included for any showings that match the recording rule. You may choose to only use these values and not use the other factors for the sake of simplicity and clarity.
Per record type -- Setup->TV Settings->Recording Priorities->General allows you to add to the priority based on the type. It may make sense to increase the value for "Single" so that by default they have an extra advantage over other shows. The default is +1. You may want to decrease the value for Find rules so that they will be less likely to interfere with regular shows and will be more likely to record in a non-conflicting time instead. The default is -1.
Per channel -- Setup->TV Settings->Recording Priorities->Channel Priorities can be useful if you believe that you prefer any of the shows on certain channels. This would give all shows on a channel an advantage by default.
Input priority -- in the "mythtv-setup" program, the "Input Connections" section allows you to add additional priority in the "Input priority". This is simply another priority factor but has an interesting effect. If a card input has a higher value than the other cards, the scheduler will see that you would rather record showings of episodes on this input rather than a showing on another card. If you have multiple cards of different quality, you may want to set input priority to encourage the scheduler to record shows on your best card(s) whenever possible. This can also be useful if you have multiple video sources which include the same stations. For example, with digital and analog cable you could increase the digital cable input preference by 1 to tell the scheduler that you want to record from the digital station whenever possible but the station on the analog input could still be used when the digital input is busy.
For any single showing of any show you've chosen to record, these factors are added together to find the "total priority". This is the priority that the scheduler uses to decide which shows are given the first choice when filling in the schedule.
The scheduling priority of a show may also be used to determine auto-expiration of recordings when disk space gets full (see Auto-Expire, below).
Singles will record without regard to duplicate matching.
The standard recurring methods of All, Channel, Weekly and Daily use the descriptive information in the TV listings to try to record only one showing of each unique episode. However, This goal is sometimes complicated by the fact that the stations may not include a description for a specific episode but use a generic description for the series instead. When there is a generic description, the default behavior is to assume that it may be an episode that you have not seen and to record it for you. One of the duplicate matching options is "Record new episodes only". If this is selected, listing that have an original air date of more than 14 days earlier are considered repeats and are not eligible to record. Generally, generic episodes will be marked as repeats also.
Because of generic episodes and other situations, MythTV offers an alternative approach where shows may be recorded by choosing from multiple showings even when the descriptive information is not reliable. All of the "Find" record types look for matching titles in the listings. If there is a showing with specific episode information and that episode has recorded before, that showing is marked as previously or currently recorded. The scheduler will then choose to record the earliest non-conflicting showing from any of other remaining showings regardless of the descriptive information. Generally, Find One is most useful for movies or specials and the Find Daily and Find Weekly rules are best for news or current events shows that are repeated. However, these may be useful in other situations where the standard recording rules may not work correctly.
As you add more shows that you would like to record, the scheduler will eventually encounter conflicts. If there are two shows at the same time and you have two or more TV tuner cards, both shows will record. However, if there are more shows than cards, the scheduler will have to decide what it thinks it should not record based on the information you have given. If you see an unexpected situation you are not "stuck" with the scheduler's choice. You can still tell the scheduler exactly which shows you do want to record and/or don't want to record in any situation.
Here are the actual decisions made by the scheduler as it fills in the schedule.
Setup->TV Settings->Recording Priorities->General has a checkbox for "Reschedule Higher Priorities" which tells the scheduler to try to be a little smarter in certain situations. If this is checked, the scheduler will look for situations where a show cannot record because all inputs for the channel are used for higher priority shows. It will check to see if any of the other shows could be recorded at another time so that the conflicting show can be recorded in its place.
Generally, this is a good strategy but there are tradeoffs. If a higher priority show is postponed, you will not get to watch it until it is recorded in the later timeslot. There is also a risk that the TV listings may change and the later showing may go away. In this rare case the higher priority show may never record. On the other hand, if you do not use this option you will miss recording some lower priority shows unnecessarily unless you manually make similar changes.
By using Reschedule Higher Priorities, the scheduler will do a better job of recording as many of your shows as possible when left unattended. It will also be easy to see that shows have been marked to record at a later time. You can then decide for yourself when you would prefer to record the first showing by clicking "Record anyway".
The Manage Recordings->Upcoming Recordings page is your control center for the MythTV scheduler. Unlike other DVR systems, this one page gives you all of the information and tools you need to see all of your alternatives and make whatever adjustments you desire.
The upper half of the screen has a scrollable box listing items that match your record rules sorted by time. The lower half shows the details for the highlighted item. There are two 'views' available. Press "1" to include all of the items that match record rules even if they do not need to be recorded. Press "2" to focus on just the things that will record and items that may need your attention. The message in the upper right-hand corner will remind you when there are conflicts that would prevent one or more shows from being recorded.
The items in the list are colored in the record color for things that will record, white for things that may need attention, gray for those that do not need to record and yellow when there is a time conflict. Items at the top of the list may also be highlighted indicating that the recording is in progress.
Along with the channels, start times and titles, the right-hand column has a status code. Numbers indicate which card number has been assigned to record the show. Letters are used to indicate the reason that something will not be recorded. Just below the box is a short status message for the highlighted item that indicates the type of record rule that was matched, the "total priority" for this showing and a one or two word explanation of the status code. If you press SELECT, you will see more information about the status.
There are a few status codes that may require your attention. "C" indicates that there are more overlapping shows to record than there are TV tuners to record them. "L" indicates that the scheduler found that it may be better to record a later showing of this episode. These states happen as a result of your choices and should normally reflect your preferences. However, you may notice situations where you would like to modify the scheduler's initial choices.
The first thing you can do is to highlight an item and press INFO to see the recording options page. From this page you can change the record rule type, the duplicate matching rules, or raise or lower the priority to resolve whatever problem you noticed.
Additionally, you can treat any individual showing as an exception that you do want to record or don't want to record. To use these "override" features, highlight the item and press SELECT. You will see a message explaining the current status and at least an "OK" button to exit without making changes.
For items scheduled to record, there will be a button for "Don't record" which will prevent recording this showing but will still allow the same episode to record in the future. If there is episode description information, you may also see a button for "Never record". This prevents recording this showing and tells MythTV to remember that this is an episode that you've seen or don't need to see if it is ever in the TV listings again.
For items that are not scheduled to record, the message will describe the reason and in the case of "C" or "L" it will include a list of the shows that are scheduled to record instead. For any item that could potentially be recorded there will be buttons for "Edit Options" and "Add Override". "Edit Options" will allow you to change the options for the existing record rule such as raising the priority so that the show will record. These changes would apply to this and all future showings that match this record rule. "Add Override" will allow you to set options that apply to the specific showing without affecting the recurring record rule.
If you return to an override page after an override has already been set, you will also see a "Clear Override" to undo your changes. This option makes it very easy to try out some "what if" attempts when deciding on your best strategy in a difficult situation.
For a recording in progress, there will be a "Change Ending Time" button. This will take you to the options page for a Single or Override or create an Override if it is a recurring rule. Here you can go to the Recording Options section to change the program end time offset. If you extend the end time so that it overlaps upcoming recordings, the schedule will change to accommodate the new end time. This may cause a conflict or later showing even for a show with higher priority. Therefore, it is a good idea to check your schedule after changing the end time of a recording in progress.
Each recording rule can be configured with a different recording profile. For example, colorful cinematography can be configured with a "High Quality" profile, while 'talking heads' interviews shows can be configured with a "Low Quality" profile. These recording profiles need to be configured before using them (see Recording, above).
For organization of the "Watch Recordings" screen and the MythWeb interface, recordings can be assigned into "recording groups".
This selects a set of pre-configured playback parameters which can be created and edited in Setup->TV Settings->Playback Groups. When the recording is played, the values from this playback group will be used. This allows you to choose a default time stretch value, skip and jump amounts appropriate for this type of television program.
MythTV will "autoexpire" old recordings to make room for new recordings when disk space gets filled up. This option can be set to "Don't allow auto expire" to prevent these recordings from being automatically deleted when disk space fills up.
The default setting is for all scheduled recordings to be eligible for auto-expiration; this can be changed in the Settings->TV Settings->General page by manipulating the "Auto Expire Default" checkbox.
The default auto-expire policy is "Oldest Show First"; the oldest recordings are deleted first. The "Lowest Priority First" method chooses to expire the lowest-priority recordings first.
An episode limit can also be configured to limit the maximum number of episodes recorded of a single series, to restrict that series' disk usage. If this is set, you can further decide what to do when this limit is reached; either stop recording that series, or to delete the oldest episodes in favor of the new ones.
Select whether or not to automatically flag commercials for these recordings. Commercial Flagging parameters can be set in Setup->TV Settings->General.
Select whether or not to automatically transcode recordings to save disk space. Before using this, you must first enable auto-transcode in the recording profile and configure the transcoding parameters; see Recording, above.
User Jobs allow you to configure up to 4 custom commands to run on recordings. They can be configured in mythtv-setup. The following tokens have special meaning when used in the User Job commands:
MythTV's "Custom Record" feature gives you unlimited control for creating specialized search recording rules to meet your needs. It allows you to choose your criteria to search for matching shows based on any of the information in the program listings, channel information, time functions and more. This goes beyond the capabilities of any other DVR system and it is unlikely that this level of scheduling customization will ever be available in any commercial DVR system.
Go to Schedule Recordings->Custom Record. This page, helps you build a database search one clause at a time. Each added clause further limits which showings will be matched in the TV listings. You can test the search at any time and when you are done, you can save your search as a recording rule.
To familiarize yourself with how you can create custom rules, create a simple rule to record "Nova" only in primetime.
The first item at the top of the page allows you to edit an existing rule or create a new rule. Leave it on "<New rule>". Arrow down to the third item which says "Match an exact title". Right and left arrows would allow you to select any of several prefabricated pieces or full examples but leave it on the default for now. Arrow down to "Add this example clause" and press SELECT (Enter or Space on a keyboard). The large text box should now show:
As you have probably guessed, this says that we want to search for all programs with the title "Nova" regardless of the time, day, channel, etc.program.title = 'Nova'
If you do not receive a PBS station that carries "Nova" or would like to use another title, edit the title by pressing the down arrow to highlight the text box and right arrow over the the word "Nova". If you are using a keyboard you can simply delete the four letters and type a different title between the quotes. With a remote control, you can do 'cell phone' style text entry with the number pad. The delete key is the "X" in the grouping for "1", zero is grouped with "9" and "0" acts as the "Caps Lock" key. With MythTV version 0.19 or later, you can press ENTER in the text box to popup a virtual keyboard.
Note: the text box honors many familiar Emacs control keys. It is also possible to cut and paste text into the text box so you can edit with a favorite editor or insert a rule sent in email or from other sources.
In any case, choose a title that is shown both in primetime and late night or daytime. Next, click the "Test" button. You should see a list of the upcoming episodes for "Nova" just as if you had clicked the Upcoming button for "Nova" elsewhere in MythTV.
Press ESC to go back to the Custom Record page. Move to the example selector then press the right or left arrows until you find "Only in primetime". Click "Add this example clause". You should now see:
Click "Test". You should now see a shorter list with only the showings that begin between 7PM and 11PM. To create a rule for this, press ESC to go back to the custom page and move to "Rule Name:" then type "Nova" or anything else you would like. This is only a label and will not affect the search results. Once a name has been entered, the "Record" button will light up. Click this to enter the recording options page. If you named it "Nova" the title will say "Nova (Power Search)". Set whatever options you would like then click "Save these settings". You now have a special rule to record "Nova" but only when it is shown in primetime.program.title = 'Nova'
AND HOUR(program.starttime) >= 19
AND HOUR(program.starttime) < 23
You can make further modifications to this rule by returning to the Custom Record page then press the right or left arrow keys on "Edit Rule:" until you find "Nova". You can experiment and test but the saved rule will not be updated until you click "Record" then "Save these settings".
To remove this, or any other rule, you can go to the "Recording Priorities" page, arrow down to the title, press Enter and change the the recording type to "Do not record this program" then "Save these settings".
MythTV stores TV program information in a database and uses the Structured Query Language (SQL) to access the data. Information about each TV program is stored in the 'program' table and information about each TV station you receive is stored in 'channel'. These two tables are used in the scheduler queries and their fields are available to be used in your rules. The rules you create are stored in 'record'.
Normal rules in MythTV simply match the title in the rule with the titles in the 'program' table. MythTV also has search rules for "Titles", "Keywords" and "People". These store the key phrase in the description field of the rule and includes them in specialized SQL replacements for the normal title check. There is also a type called "Power Search" which takes the raw SQL in the description as the replacement for title matching.
Custom Record is a tool to help you build valid SQL for Power Search rules. You do not need to be a SQL expert to use Custom Record because the examples are known to work correctly and are usually self-explanatory so you can choose the pieces you need then modify them. Many powerful solutions to unique problems are possible by combining the examples. With some creativity and some knowledge of SQL, the possibilities are limitless.
The example clauses marked "complete example" are actual rules that have been used to address specific problems. You may find that some of these are useful for you as-is or with slight modifications. These show off how powerful custom rules can be but there are also several simple idioms that you may find useful for many of the shows you would like to record.
Wait for a known title -- If there is a movie that you anticipate will be televised in the coming months but is not yet in the listings, you can select "Match an exact title", edit the movie title, click "Record" then choose "Record one showing of this title". The rule will wait weeks, months or years until this title shows up in your listings then it will record one showing. These rules have no impact on the scheduler throughout the day and only take a tiny fraction of a second when the master backend starts or when the listings are updated.
Silence series out of season -- "Celebrity Poker Showdown", for example, will have new episodes for a while then long periods where reruns are shown dozens of times per week. By checking the previously shown flag you can create a rule that will only match new episodes. Therefore, your schedule won't be polluted with dozens of entries marked as "Repeat" or "Previously Recorded".
This allows you to keep rules for your favorite shows that are dormant while out of season but will spring back to life when new episodes appear.program.title = "Celebrity Poker Showdown"
AND program.previouslyshown = 0
Choose showings on certain days -- Several cable stations will show their highest rated shows a dozen on more times per week. However, the scheduler only needs two or three choices to do a good job of making a flexible choice.
This says to choose any showing of an episode that hasn't been recorded when it appears on Sunday. This prevents all the other showings during the week from being listed in the schedule.program.title LIKE "Celebrity Fit Club%"
AND DAYNAME(program.starttime) = "Sunday"
Notice the word "LIKE" and the "%" at the end. This does wildcard matching so that this would match even if the title ended with "2". "III" or ":Revenge of the Snapple Lady". This can be useful where the title may change from one season to the next like "Survivor: %", "Big Brother%" or "The Amazing Race%".
As you experiment, it is possible that you may misplace a quote or mistype a word. If there is a mistake when you press "Test" or "Record" you will see an error message returned from the database. This will usually give you a good idea about what needs to be fixed. However, for more subtle MySQL syntax errors, you can find more information in the documentation at http://dev.mysql.com/doc/mysql/en/. This contains a lot of information that can be useful for Power Search rules such as the "Date and Time Functions". There are many other good resources for SQL on the Web.
While the example clauses demonstrate how to use many of the data fields, you can get a more complete list of all the fields that are available by using a MySQL client program:
This will show the names of all of the fields along with their type and default value. Most are easy to understand but a few need some explanation in order to use them effectively with Power Search.$ mysql -u mythtv -pmythtv mythconverg
mysql> describe program;
mysql> describe channel;
Finally, if you are doing something very experimental and a field is not giving you the results you had anticipated, you can always check the MythTV source code to see exactly how a field is used. The open source for MythTV is available from http://www.mythtv.org/ .
MythMusic is the plugin that MythTv uses for all your mp3 needs. You can browse through large music collections stored on the local hard drive, CD/DVD or an alternative source on your home network and play music back in an ultimate mp3 jukebox fashion.
As we are in the world of Linux you will certainly come across Ogg and Vorbis formats for compressed music files. These formats are unpatented unlike mp3, wma etc.
You can of course extract music from audio cd's to your mythbox using the "Import CD" feature. The first process is to 'rip' the audio from the CD, the audio is then 'encoded' to a compressed format such as mp3. If connected to the internet your mythbox can identify what disc you have put in the drive and retrieve the relevant track/artist details.
The "import CD" feature may fail using "ogg encoder". If so, try switching to mp3 encoding, which should provide a workaround until a permanent solution arises. Music encoding may also fail due to insufficient heat dissipation within your PC case.
Mp3/ogg encoders are demanding of a CPU, and the heat generated can cause erratic results in the CPU or RAM. (Note: Modern CPUs will usually shut themselves off before reaching damaging levels of heat, but this does not guarantee rock-solid performance before that point.)
MythMusic is fairly simple to use. It is recommended that you insert the CD before selecting "Import CD".
Here's some information on playlist management:
Q: How do I create a new playlist? A: Using the MythMusic "Select Music" menu option, setup the playlist as you normally would by adding songs or other playlists as needed. When you are ready to save the new playlist, highlight "Active Play Queue" at the bottom of the selection tree and hit the "i" key. This will pop up a menu allowing you to name and save the new playlist. You can also hit Enter to bring up the popup on the Active Play Queue. This does not work on the playlists above, as Enter is obviously bound to checking/unchecking the boxes. Any number (ie. keypad on remote) will also bring up the menu in both cases.
Q: How do I enter the playlist name in the text field without a keyboard? A: Use the keypad number keys (bound to your remote) to select letters quasi-cell phone style. Keys 2-9 work pretty much like any cell phone text entry. 1 cycles through a few special characters, delete, and space. 0 is like a CAPS LOCK. Hard to describe, fairly easy to use. You will soon be able to specify the cycle timing in a Setup screen. You can type fairly quickly through a combination of jumping around the number keys AND hitting a non-number key (right arrow is particularly good for this) to force the current character.
Q: How do I edit a playlist? A: Highlight the playlist in the selection tree and hit the "i" key then select "Move to Active Play Queue" in the popup. You can now modify the "Active Play Queue" like normal, adding songs and playlists by selecting them from the song tree. When you are done, highlight the "Active Play Queue" in the selection tree and hit the "i" key then select "Save Back to Playlist Tree". And whatever you were editing as your Active Queue before you moved an existing playlist "on top" of Active reappears. Think of Active has having a push on, pop off capability, but with a depth of only 1.
Q: How do I delete an item from a playlist? A: Highlight the item in the selection tree and hit the "d" key.
Q: How do I rearrange the songs in my playlist? A: Highlight a song and hit the "space" bar, the song will now have pair of red arrows in front of it. Use the up and down arrow keys to move it around in the playlist. When you have it where you want it, hit the "space" bar again.
Q: How do I delete a playlist? A: Highlight the playlist in the selection tree and hit the "i" key then select "Delete this Playlist" from the popup.
You may run into errors when running MythMusic.
When I run MythMusic and try and look up a CD, I get an error messageThe full text of the message will say:
databasebox.o: Couldn't find your CD. It may not be in the freedb database. More likely, however, is that you need to delete /.cddb and /.cdserverrc and restart mythmusic. Have a nice day.
If you get this message, you should go to the home directory of whatever user MythMusic is running as ( /home/mythtv ) and type:
rm .cdserverrc
rm -rf .cddb/
These files aren't automatically deleted because of a conscious design decision by the author that programs that automatically delete things are bad.
The files are used to locally cache CD lookups. If you are re-inserting CDs, your machine will not actually have to go out to the Internet to determine what is on them. However, the URL used to access the freedb database has recently changed, so the stale information in the files from previous runs of MythMusic would cause the error above. Once the files have been deleted the stale information will be gone and your local database will be rebuilt as you use CDs.When you first start MythGallery, you will see a thumbnail view of any folders and pictures in the Gallery Directory you specified in setup. If this is the first time you have accessed this directory, the thumbnails will be generated on the fly. If the Gallery Dir is writable, these thumbnails will be cached thus speeding up future access. On the left is a greyed-out menu of options.
Use the arrow keys to select a folder or picture to open/view with the Select key, or use the Menu key to toggle access the menu on the left. The menu options are as follows:
The import path in the setup dialog is a colon separated list of directories and/or executable files. When the import key is pressed, a new directory (the destination directory) under the current directory will be created and the import path will be searched. If the item in the import path is a directory (the source directory), the contents of that directory will be copied to the destination directory. If you would like the source directory to be that of a removable device, it might be a good idea to use autofs. See the automount howto at www.linuxdoc.org for info on how to get it working.
If the item in the import path is an executable file, MythGallery will attempt to execute it with the destination directory as its sole argument. Be careful when using executable scripts that the script runs unattended (doesn't need user intervention) and returns properly, otherwise it could create the appearance of MythGallery hanging (e.g. running smbclient and prompting for password). Also be sure that scripts have executable permissions set.
Here is an example script that a user may want to run on import:
#!/bin/csh
if ($#argv == 0) then
echo "Usage: $0 dest_dir"
exit
endif
cd $argv[1]
# get stuff over the network
wget http://www.somesite.dom/dir/file1.jpg
wget http://www.somesite.dom/dir/file2.jpg
wget http://www.somesite.dom/dir/file3.jpg
# stuff that requires manual module loading and/or fs mounting
modprobe camera_module
mount /dev/camera /mnt/camera
cp /mnt/camera/* $argv[1]
umount /mnt/camera
rmmod camera_module
# perform some processing
foreach pname (`ls *.jpg`)
jpegtran -flip vertical $pname > $pname.new
mv $pname.new $pname
end
MythWeather
allows you to get local weather forcasts with minimal setup. All you
need to do is choose your location and it does the rest. The
location selection is not in the application itself
but in Utilites /Setup >Setup>Info Center Settings > Weather
Settings. You may also force mythweather to
re-run the configuration by
starting it on
the command line as mythweather --configure. These two
options are
mutually exclusive.
These are the keyboard commands for MythWeather:
Left Key Goes back one page, and extends the time spent
on the page you are on.
Right Key Goes forward one page, see above.
Space Pause, wait on the current page until space is hit
again.
Numeric Keys You can check other weather by keying in other ZIP codes.
Enter Key Switch between Celsius and Fahrenheit. Can also
be used a way to force a data update.
"m" Key Resets the location to the database default, then updates the data.
"i" Enter / Save settings
ESC Exit the settings screen without saving / Exit the program
MythWeather also has an "Aggressiveness" setting. This affects how long MythWeather waits for data from the msnbc.com website before timing out. If you are on a slow connection, or have a slow DNS, or MythWeather just doesn't seem to be working and you've already tried everything else, then try increasing the aggressiveness level parameter. This parameter is inverse; a higher number actually means that MythWeather will be less aggressive, and will therefore wait longer before timing out.
MythWeather will print debugging information on the terminal.
If you wish
to see additional debugging information while MythWeather is running,
run
mythweather from the command line with as mythweather --debug
You may also force mythweather to re-run the configuration by
starting it on
the command line as mythweather --configure. These two
options are
mutually exclusive.
MythTV has a plugin called MythGame which, unsurprisingly, is used for playing games. This plugin currently allows you to play the original versions of SNES, NES and Arcade (MAME) games.
Over the years people have kindly copied the data from game cartridges to PC's in the form of a data file (or ROM file), these can be downloaded from numerous places on the internet (subject to applicable copyright laws of course). These ROMS can then be processed by a PC using 'emulator' programs (e.g. MythGame uses ZSNES for SNES games).
In the future one would hope that other systems are integrated into MythGame, for example UAE is an emulator program that runs Commodore Amiga games.
1. Game files, or ROMS, must be placed in the relevant folder under /myth/game/
2. Arcade Games using the MAME emulator. In order to setup MythGame you will want to visit the following websites and make some downloads:
The catver.ini file is a catalog containing details of categories & versions of popular Mame ROMs. This file must be placed in the directory /myth/games/xmame to work (or check your XMAME settings in MythTV).
You will also want to download a package of screenshots; these are displayed whilst browsing your ROMS in MythGame. To work, these must be unzipped and placed in /usr/local/share/xmame/snaps
The "history.dat" file provides a bit of background about each ROM. Another file you might want to download is"hiscore.dat".
My Logitech Rumblepad 2 USB gamepad was detected and working, but was not being calibrated automatically. This made all games unusable because the joysticks were not centered. To solve the problem, I installed the joystick package, then ran
jstest /dev/js0
to figure out which axes were which; then
jscal -c /dev/js0
to calibrate the axes. I ignored the output of
jscal -t /dev/js0 ,
which continued to insist that my joystick was not calibrated. After double-checking the calibration by playing a few games, I ran
jscal -p /dev/js0
to print out a command line with the current calibration. I stuck this command line into ~/.fluxbox/apps to be run every time X is restarted:
[startup] {jscal -s 6,1,1,...}
Your input device may be something other than /dev/js0, and if you don't use fluxbox, you will need to put the jscal -s command somewhere other than ~/.fluxbox/apps.
This document describes how to install a game and configure the remote to play games in MythGame. When adding a game, consider whether it can be playable with the remote. First person shooter games are out of the question, but many puzzle games and other non-action games are valid candidates.
The guide shall include how to install the game and a good configuration for playing the game by using the remote. I'll start off with a GLTron game. Using the irxevent to pass on keypresses to the game for controlling, include configuration for the irxevent and the game.
| Title | Description | Playability |
| GLTron | A TRON game simple and fun, based on the movie. | Plays well with IR |
| Frozen Bubble | A arcade bubble game, very addictive. | Playable, but slow with IR |
| FooBillard | A 3d billard game, 8/9-Ball and Snooker. | Not Finished |
Often, games use the SDL library for visualization and have no window names, so when using irxevent to control the game we need to use the CurrentWindow feature which means that different configuration files are required for irxevent and we want irxevent to start with the game with it's proper configuration file for the specific game, then when game stops we want the irxevent to be stopped.
Create this following script /usr/games/startgame that starts the
actual game and controls irxevent to with several game specific
configurationfiles:
#!/bin/sh
# Start the game and get the PID
GAME_BIN=$1
$GAME_BIN &
GAME_PID=$!
# Start the irxevent and get the PID
irxevent "$GAME_BIN"_ir.conf &
IRXEVENT_PID=$!
# Wait for game to exit then kill irxevent
wait $GAME_PID
kill $IRXEVENT_PID
Then make the above file is executable:
chmod +x /usr/games/startgame
The above script starts the game and then irxevent with the proper configuration file, it will wait for the game process to die, then we kill the irxevent process. The configuration file for irxevent should be named as bin file plus _ir.conf in the same directory as the binary. For example, the game GLTron's binary is named gltron (plain and simple) thus the corresponding ir config file should be named gltron_ir.conf.
Enter the settings
dialog->settings->media->game->general settings
Select the item 'New Player' then enter a title for the game, select
type PC Game, and enter the command to start the game:
/usr/games/startgame /usr/local/gltron
Alternatively, edit the /usr/games/gamelist.xml file to include your
newly added PC game.
then exit the menu and start search for new games entry.
Henrik Andersson 2006-06-19
Brian Kelly 2006-07-15
Locate the cookies for your browser. Find one for "www.netflix.com" for "ShopperId?". This is a long number starting with a 'P'. Save this ID number.
Go to this page http://www.netflix.com/RSSFeeds?lnkctr=mfRSS and copy down the URL for your queue RSS feed. It will look like this: http://rss.netflix.com/QueueRSS?id=P0000000000000000000000000000000000. Note that this 'P' number is NOT the same as the one you saved before.
Run mysql -u mythtv -p mythconverg and use the password mofsarea
Replace the P000... string with your own ShopperID cookie and run the command below in MySQL:
You'll find it under Settings, Info Settings. This will also secretly set up some database tables that you'll need later.
Pick at least one... I mean, really... otherwise, what's the point?
Replace the first url with the URL you copied down before. You can leave the icon URL alone.
Well, sort of. The history doesn't quite work, yet. You can probably add the History URL in somewhere, but I'm not sure where, yet.
See http://petrocik.net/mythtv/README for more info.
MythWeb allows you to configure which keys are bound to which actions within MythTV. If you'd like to reset this back to the default, execute the following command:
$ echo "delete from keybindings ;" | mysql -u mythtv -pmythtv mythconverg
If you find yourself wedged into a theme that isn't working, open
your
web browser and go to site:
http://mythweb_name_or_ip_address/mythweb/settings.php?RESET_THEME=yes
A script for adding Pay Per View information into the MythTV database for DishTV subscribers is available at http://www.mythppv.com/.
MythTV supports changing the channel on an external tuner. If you
have
an external tuner, such as a DirecTV or digital cable set top box, you
should add /usr/local/bin/changechannel to your Input
Connections in the
mythbackend configuration GUI.
However, there is not changechannel program per-se, because
this is
going to be dependent on what sort of external tuner you have. Look in
the
contrib/channel_changers directory for a number of
programs and
scripts which may be used to change channels. Once you find one which
works, copy it to /usr/local/bin/changechannel.
Feel free to browse some of what sort of hardware is available at http://store.snapstream.com/accessories.html, or if you wish to assemble your own, rather than purchase, the following may be helpful: http://www.dtvcontrol.com/ for cable pinouts.
What does the MythTV Shutdown/Wakeup function do? The scheduler on the Master backend (MBE) keeps track of the idle status of the entire MythTV system, including the Slave backends (SBE). If it considers the system to be idle, and thus ready to shutdown, it sets the wakeuptime to the time of the next recording and then proceeds to shut down all Slave backends and then itself. Once it is time to begin recording, the Master backend and the Slave Backends are automatically woken up. This system allows MythTV to record like a normal VCR, thereby conserving power when not in active use.
In order to use the Shutdown/Wakeup function there must be some method of waking up the Master backend. There are any number of solutions, but we will discuss in detail two possibilities:
The scheduler keeps track of the idle status of the MythTV system. To determine whether or not the MythTV system is idle, the following conditions must be met for a period of time defined in the "Idle timeout (secs)" parameter.
If we get to this idle state the Master backend will set the wakeuptime using the "Set wakeuptime command", which is the same for WOL and BIOS wakeup. The Master backend will then shut down the Slave backends and itself using the "Server halt command".
One caveat is that the scheduler tries to guess if the Master backend was started by a wakeup call or by the user. If it thinks it was woken up by a user, it blocks shutdown until a client connects to the Master backend, after which it will behave as described above. To disable this feature, unset "Block shutdown before client connected" in the mythfrontend Setup->Setup->General screen.
Once it is time to startup the system, the Master backend is woken up first and will wakeup the Slave backends using the "Wake command for slaves". At this time, there is no support for starting only the required Slave backend, so all Slave backends will startup.
There are a number of options that are used to control the Shutdown / Wakeup feature.
Shutdown/Wakeup Options:
The "WakeOnLan settings": These settings have nothing to do with using BIOS or WOL wakeup, they are the same for both.
To use WOL to wake your Master backend you will need a WOL capable Master backend, a machine that runs 24/7 which can execute an at-job and nc (netcat) on the Master backend. I use some little bash scripts to make my DSL router wakeup my mythbox if required.
Replace $SERVER and $PORT with your own settings! On my Master backend I have a script that gets called as 'setwakeuptime command' which looks like the following:
This simply cats the parameters (that is $time) to my 24/7 server. On my $SERVER I have (x)inetd listening on $PORT starting a little script which cares about setting the at-job. The following additions are necessary on the $SERVER:#! /bin/sh
echo $@ | nc $SERVER $PORT
If you use inetd:
In /etc/inetd.conf add:
If you use xinetd, save the following as mythwake in yourmythwake stream tcp nowait mythtv /usr/sbin/tcpd /usr/local/bin/mythwake
/etc/xinet.d/ directory:
and add the following toservice mythwake
{
socket_type = stream
wait = no
user = mythtv
protocol = tcp
id = mythwake
server = /usr/local/bin/mythwake
}
/etc/services:
mythwake $PORT/tcp
Finally, /usr/local/bin/mythwake looks like:
SECURITY WARNING: Be sure to secure $SERVER:$PORT from untrusted networks, because this allows 3rd parties to run arbitrary code on your server!#! /bin/bash
#this should be a command to wake your server
WAKECMD="#!/bin/sh\n /usr/local/bin/wakeMBE"
#first we need to delete all wake jobs in queue
for JOB in atq | cut -f 1 ; do
atrm $JOB;
done
#now we read the date from 'nc'
read date;
#now set the atjob
echo -e "$WAKECMD" | at $date ;
Since I don't use this, I cannot say much about this. If your motherboard supports any wakeup tool you have to call that tool as "Set wakeuptime command" with the "Wakeup time format" suitable for that tool.
If your MySQL server and your Master backend are not on the same
machine,
you can have the Master backend wake your MySQL server using WOL. You
will
find the settings for this in the second page of the mythtv-setup
program,
or at the end of mysql.txt. The meanings are the same as
discussed in "The WakeOnLan settings" above.
If, for example, one of the Slave backends is also your desktop
computer,
you could simply use a little script as 'server halt command' which
first
calls /sbin/shutdown -t TIMEOUT where TIMEOUT is a value
sufficient
for you to react. You could then popup a window using *dialog, asking
for
permission to shutdown. If you cancel the shutdown, simply call
/sbin/shutdown -c.
If you get "nvram-wakeup: /dev/rtc: Device or resource busy" your
set-wakeuptime-script should stop the program that uses /dev/rtc
before
setting the wakeuptime.
New in 0.19 is the capability to control the mythfrontend using telnet commands. To use this feature you must first enable it in Settings>General>General
The network control listens on port 6546, as demonstrated below:
$ telnet basement 6546
Connected to basement.
Escape character is '^]'.
MythFrontend Network Control
Type 'help' for usage information
---------------------------------
# help
Valid Commands:
---------------
jump - Jump to a specified location in Myth
key - Send a keypress to the program
play - Playback related commands
query - Queries
exit - Exit Network Control
Type 'help COMMANDNAME' for help on any specific command.
# help jump
Usage: jump JUMPPOINT
Where JUMPPOINT is one of the following:
channelpriorities - Channel Recording Priorities
channelrecpriority - Channel Recording Priorities
deletebox - TV Recording Deletion
deleterecordings - TV Recording Deletion
guidegrid - Program Guide
livetv - Live TV
livetvinguide - Live TV In Guide
mainmenu - Main Menu
...snip...
# exit
$
Please note that this feature only allows one connection at a time, so any new connections will automatically terminate prior ones.
A script for adding Pay Per View information into the MythTV database for DishTV subscribers is available at http://www.mythppv.com/.
MythTV supports changing the channel on an external tuner. If you
have
an external tuner, such as a DirecTV or digital cable set top box, you
should add /usr/local/bin/changechannel to your Input
Connections in the
mythbackend configuration GUI.
However, there is not changechannel program per-se, because
this is
going to be dependent on what sort of external tuner you have. Look in
the
contrib/channel_changers directory for a number of
programs and
scripts which may be used to change channels. Once you find one which
works, copy it to /usr/local/bin/changechannel.
Feel free to browse some of what sort of hardware is available at http://store.snapstream.com/accessories.html,
or if you wish to
assemble your own, rather than purchase, the following may be helpful: http://www.dtvcontrol.com/ for
cable pinouts.
While the DataDirect TV listings service has several advantages, it does not support grabbing logo icons for the stations you receive. However, there are utilities provided with MythTV which you may use to grab your initial set of icons and to keep them updated if your lineups change.
First, you need to generate or obtain an XML file with the information for your stations.
If you have XMLTV software installed, there is a perl script in
MythTV's
contrib/ directory which will generate this file for you.
Run the
command:
$ perl mkiconmap.pl
You will be asked for your zip code and the service that you use. If
there
are no errors, the iconmap.xml file that you need for the
next step
will be created.
If you do not have XMLTV software installed and do not want to
install it
for the sake of this minor task, there is a generic
contrib/master_iconmap.xml which you can copy and use but
this may
not be as complete as using the specific information for your service.
Once you have an iconmap.xml file, add the icon
information to your
database and grab any new icons with the command:
$ mythfilldatabase --import-icon-map iconmap.xml --update-icon-map
If mythfilldatabase grabbed a channel which you do not want to include in your TV listings, you can remove the entries from the grabber configuration and the MySQL database. This often happens with premium channels; for example, HBO or Showtime may be available on your cable TV system, but is scrambled because you're not a subscriber to that channel. Since you can never watch it, you want to get rid of it.
If you are using the DataDirect service, login to your account at http://labs.zap2it.com/ to modify your lineup. Uncheck the boxes for any unwanted channels, and they will no longer be included in your download.
If you are using a grabber from XMLTV, comment out the channel
from the ~/.mythtv/<sourcename>.xmltv file by
inserting
the word "not
" (including the space) in front of the unwanted entry. This will
prevent xmltv from grabbing future listings.
Next, delete the unwanted item from the channel table so that it
will not
appear in the EPG or when changing channels. To delete the data from
the
database we need to perform some steps. First, assuming that HBO is
channel
15, we need to find out the internal chanid used by
MySQL:
$ mysql -u root mythconverg
mysql> select chanid from channel where channum=15;
+--------+
| chanid |
+--------+
| 1015 |
+--------+
1 row in set (0.00 sec)
mysql> delete from channel where chanid = 1015;
Old program data will be removed over the course of a week. However, you may want to immediately delete any current program listings for the channel that has been removed:
$ mysql -u root mythconverg
mysql> delete from program where chanid = 1015;
Press "1" or F1 to get a popup.
These letters let you know what's going on with the backend as it tries to tune to a channel.
Lower case = seen Upper Case = seen & good
l/L = Lock : This could be seen by PVR-250/BTTV users
a/A = PAT : Any recording transmitted in MPEG m/M = PMT : Any recording
transmitted in MPEG g/G = MGT : ATSC only
v/V = VCT : ATSC only
n/N = NIT : DVB only
s/S = SDT : DVB only
If you need to use an external Set Top Box (STB), such as for satellite TV or for digital cable you will need some way for MythTV to tell the STB to switch to a new channel. There are several methods:
6200ch.c
in the MythTV
contrib directory which may work for you.The format of the key names in the supplied lircd.conf that includes all of the codesets is DEVICE_CODESET_KEY, for example 1_680_KEY_POWER.
Device is either 0 (for cable box) or 1 (for satellite). For other key names look in lircd.conf. (Various devices have different keys).
For example, if you have a Motorola DCT 2000 cable box, this would be 0_82_KEY_POWER. If you have a Hughes Satelittle box, this would be 1_82_KEY_POWER.
Also note that not all devices are listed -- this is just what the hauppauge software has. Many devices will work with more than one codeset, and many unlisted devices will work with one or more codesets. It is recommended that you try scanning if looking up the device is not possible (because it is missing), or the listed codeset does not work.
If the blaster LED flashes, but the device fails to respond to any listed codeset, then there is a good chance that the device simply is not supported. If you want support, you first need to check that it does not work under Windows, and then bug Hauppauge about it. I am only capable of supporting the same devices as the Windows software -- because the codeset database is encrypted, I cannot modify it.
| endor | Codesets |
| ABC | 14, 16, 20, 27, 35, 69, 70, 71, 102 |
| Archer | 11, 15, 20, 64, 65 |
| Cableview | 67 |
| Century | 20 |
| Citizen | 15, 20, 21 |
| Comcast | 85 |
| Comtronics | 60 |
| Contec | 14, 18, 23, 25, 26, 28, 32, 58 |
| Diamond | 18 |
| Director | 92 |
| Drake | 102 |
| Eastern | 31, 57 |
| GE | 70, 71 |
| Gemini | 2, 19, 56 |
| General Instruments | 16, 22, 25, 29, 35, 39, 51, 52, 70, 79, 92, 95, 97 |
| General Instruments DPV7212 | 79 |
| Goldstar | 103 |
| Hamlin | 18, 34, 40, 53, 54, 55 |
| Hitachi | 16, 17, 70 |
| Jasco | 15 |
| Jerrold | 16, 22, 25, 29, 35, 39, 51, 52, 70, 79, 92, 95, 97 |
| JVC | 29 |
| Magnavox | 16, 50 |
| Memorex | 3, 20 |
| Motorola | 80, 81, 82, 84, 85, 92, 93, 95, 97, 99, 100, 106 |
| Motorola CFT2100 | 82 |
| Motorola CFT2200 | 82 |
| Motorola CFT3300 | 82 |
| Motorola DCT1000 | 82 |
| Motorola DCT1200 | 82 |
| Motorola DCT1661 | 80 |
| Motorola DCT1661 | 81 |
| Motorola DCT1700 | 82 |
| Motorola DCT1900 | 82 |
| Motorola DCT2000 | 82 |
| Motorola DCT2224 | 80 |
| Motorola DCT2224 | 81 |
| Motorola DCT2500 | 82 |
| Motorola DCT5100 | 82 |
| Movie Time | 20, 21, 27, 49 |
| Multi Canal | 21 |
| Multitech | 105 |
| NEC | 68 |
| NSC | 20, 27, 28, 33, 49 |
| Oak | 18, 28, 48, 58 |
| Pace | 101 |
| Panasonic | 26, 32, 37 |
| Philips | 4, 12, 13, 20, 46, 47, 50, 56, 59, 61, 62, 63 |
| Pioneer | 44, 45, 72, 94, 98, 101, 103, 104 |
| Proscan | 70, 71 |
| Radio Shack | 11, 15, 20, 105 |
| RCA | 36, 38, 67 |
| Realistic | 65 |
| Recoton | 6 |
| Samsung | 21, 44, 103 |
| Sci-Atlanta ENT-3000 | 78 |
| Sci-Atlanta EXPLORER 2000 | 78 |
| Sci-Atlanta EXPLORER 2100 | 78 |
| Sci-Atlanta EXPLORER 2200 | 78 |
| Sci-Atlanta EXPLORER 3000 | 78 |
| Sci-Atlanta EXPLORER 3100 | 78 |
| Sci-Atlanta EXPLORER 3200 | 78 |
| Sci-Atlanta EXPLORER 3250 | 78 |
| Scientific Atlanta | 1, 14, 23, 41, 42, 43, 74, 75, 76, 78, 86, 87, 88, 89, 90, 91, 94, 96, 98, 101, 102 |
| Sears | 17 |
| Signature | 70, 16 |
| Signature 2000 | 16 |
| Sony | 77 |
| Sony DHG-M55CV | 77 |
| Sprucer | 26 |
| Starcom | 3, 5, 16, 35 |
| Stargate | 21 |
| Supermax | 105 |
| Sylvania | 8, 17 |
| Telecaption | 7 |
| TeleView | 21 |
| Texscan | 8, 10 |
| Time Warner | 83 |
| Tocom | 26, 27, 28, 52, 69 |
| Tristar | 105 |
| U. S. Electronics | 14, 16 |
| United Cable | 35 |
| Universal | 5, 6, 11, 15, 20, 64, 65, 66 |
| V2 | 105 |
| View Master | 105 |
| View Star | 9, 13, 49, 50, 58 |
| Vision | 105 |
| Vortex View | 105 |
| Wards | 16 |
| Vendor | Codesets |
| Alphastar | 41, 87 |
| Chaparral | 66, 103, 104 |
| DirecTV | 112, 125 |
| DirecTV D10 | 125 |
| DirecTV D10-200 | 125 |
| DirecTV D10-300 | 125 |
| DirecTV DSHD800R | 112 |
| DirecTV H10 | 125 |
| DISH Network | 43, 109, 129, 130, 131, 132, 133, 136, 138, 139, 140, 141, 142 |
| DISH Network 311 | 136 |
| DISH Network DP501 | 109, 130 |
| DISH Network DP701 | 109, 130 |
| Dishnet | 88 |
| Dishpro | 138, 140, 141, 142 |
| Drake | 47, 51, 55, 60, 64, 80, 101, 102 |
| Echostar | 29, 50, 59, 83, 129, 131, 132, 133, 138, 139, 140, 141, 142 |
| Express Vu | 28, 29, 43, 138, 142 |
| Fortec Star FSCI-5100 Ultra | 137 |
| Fujitsu | 72 |
| GE | 19, 20, 21, 22, 38, 39, 92, 105, 106, 123 |
| General Instruments | 52, 69, 75, 77, 78, 98, 99, 100 |
| GOI | 138, 142 |
| Hitachi | 67, 84, 85, 122 |
| Hitachi HDS210R | 122 |
| HTS | 138, 142 |
| Hughes | 16, 67, 82, 89, 111, 120, 124, 125, 126 |
| Hughes D10 | 125 |
| Hughes D10-200 | 125 |
| Hughes D10-300 | 125 |
| Hughes GAEB0 | 124 |
| Hughes GCEB0 | 124 |
| Hughes H10 | 125 |
| Hughes HACCTR2 | 111 |
| Hughes HDVR2 | 111 |
| Hughes HIRD-E86 | 126 |
| Hughes HIRDA2 | 120 |
| Hughes HIRDA3 | 120 |
| Hughes HIRDE1 | 120 |
| Hughes HIRDE11 | 120 |
| Hughes HIRDE2 | 120 |
| Hughes HIRDE25 | 120 |
| Hughes HIRDE86 | 120 |
| Hughes HR10250 | 111 |
| Hughes SDDVR120 | 111 |
| Hughes SDDVR40 | 111 |
| Janeil | 72 |
| JVC | 43, 138, 139, 142 |
| Kenwood | 71 |
| LG LSS-3200a | 134 |
| Magnavox | 40 |
| Mitsubishi | 9, 18, 110 |
| Mitsubishi SRHD400 | 110 |
| Mitsubishi SRHD500 | 110 |
| Optimus | 42 |
| Panasonic | 6, 12, 17, 113 |
| Panasonic TZ-DBS01 | 113 |
| Panasonic TZ-DRD100 | 113 |
| Pansat | 48, 65, 135 |
| Pansat 2700a | 135 |
| Philips | 5, 7, 111, 143 |
| Philips DSR6000 | 111 |
| Philips DSR6000QR1 | 111 |
| Philips DSR6000R01 | 111 |
| Philips DSR704 | 111 |
| Philips DSR708 | 111 |
| Philips DSR708R17 | 111 |
| Philips DSX5500 | 143 |
| Philips DSX5540 | 143 |
| Primestar | 58, 90 |
| Proscan | 20, 21, 22, 38, 39, 92, 105, 106, 116, 121 |
| Radio Shack | 70, 77, 78 |
| RCA | 20, 21, 22, 23, 24, 25, 26, 38, 39, 86, 92, 105, 106, 111, 114, 115, 144 |
| RCA DRD202RD | 114 |
| RCA DRD221RD | 114 |
| RCA DRD222RD | 114 |
| RCA DRD223RD | 114 |
| RCA DRD225RD | 114 |
| RCA DRD301RA | 115 |
| RCA DRD302RA | 115 |
| RCA DRD303RA | 115 |
| RCA DRD403RA | 115 |
| RCA DRD420RE | 114 |
| RCA DRD430RG | 114 |
| RCA DRD435RH | 144 |
| RCA DRD440RE | 114 |
| RCA DRD450RG | 114 |
| RCA DRD460RE | 114 |
| RCA DRD480RE | 114 |
| RCA DRD485RG | 114 |
| RCA DRD703RA | 115 |
| RCA DVR40 | 111 |
| RCA DVR80 | 111 |
| Realistic | 70, 97 |
| Samsung | 13, 41, 111, 145 |
| Samsung SIR TS 360 | 145 |
| Samsung SIRS4040R | 111 |
| Samsung SIRS4120R | 111 |
| Sony | 8, 14, 15, 45, 117, 119, 127, 128 |
| Sony SAT-A1 | 117 |
| Sony SAT-A2 | 119 |
| Sony SAT-B1 | 117 |
| Sony SAT-B2 | 119 |
| Sony SAT-HD100 | 127 |
| Sony SAT-HD200 | 128 |
| Star Choice | 27, 43 |
| Star Trak | 46, 73, 74 |
| STS | 76, 81, 94, 95, 96 |
| STS1 | 96 |
| STS3 | 95 |
| STS4 | 94 |
| Toshiba | 11, 30, 31, 32, 33, 34, 35, 36, 37, 69, 80, 91, 93 |
| Uniden | 42, 54, 56, 57, 61, 68, 70, 79, 118 |
| Uniden UDS100 | 118 |
| View Star | 49 |
| Viewsat | 146 |
| Zenith | 10, 72 |
| Vendor | Codesets |
| Alcatel | 300 |
| Amstrad | 321 |
| Cabletime | 306, 311, 315 |
| Foxtel | 321 |
| France Telecom | 301, 308 |
| General Instrument | 302 |
| Grundig | 303 |
| Jerrold | 302, 314, 319 |
| Macab | 301 |
| Nokia | 305 |
| Philips | 301, 307, 320 |
| Pioneer | 317 |
| Sagem | 301, 304 |
| Salora | 310 |
| Scientific Atlanta | 313, 318 |
| Tele+1 | 309 |
| United Cable | 319 |
| Videoway | 316 |
| Visiopass | 301 |
| Vendor | Codesets |
| AB Sat | 374 |
| Akai | 440 |
| Alba | 326, 440, 456, 680 |
| Allsat | 353 |
| Ampere | 679 |
| Amstrad | 345, 355, 358, 365, 366, 376, 378, 391, 413, 414, 433, 437, 463, 473, 663, 679 |
| Ankaro | 345, 400, 407, 422, 443 |
| Arcon | 323, 421, 679 |
| AST | 360, 416, 417 |
| Astra | 360, 383, 423, 442, 447, 455 |
| Astro | 396, 437 |
| Best | 400, 422 |
| Blaupunkt | 396 |
| Boca | 525, 528, 540, 562, 567, 572, 581, 585, 586, 598, 615, 620, 651, 679 |
| Boston | 679 |
| Brain Wave | 410 |
| BSkyB Sky DigiBox | 663 |
| Bush | 390, 444, 680 |
| Cabletime | 345 |
| Cambridge | 345, 379, 440 |
| Canal Satellite | 384, 481 |
| Chaparral | 345, 399 |
| CityCom | 394, 424, 475, 680 |
| Colombia | 679 |
| Comag | 679 |
| Condor | 455 |
| Conrad | 394, 455, 679 |
| Contec | 420, 424 |
| D-Box | 372 |
| Diskxpress | 400 |
| DNT | 425, 432 |
| Drake | 344, 345 |
| Echostar | 300, 304, 307, 345, 363, 401, 404, 425, 431, 481, 484 |
| Einhell | 679 |
| Elsat | 378 |
| Elta | 326, 353, 441 |
| Ep Sat | 680 |
| Europa | 423 |
| Europhon | 679 |
| Eurosat | 353 |
| Eurosky | 406, 455, 679 |
| Eurostar | 455 |
| Ferguson | 324, 328, 380, 390, 412, 680 |
| Fidelity | 463, 473 |
| Finlandia | 680 |
| Finlux | 429, 680 |
| Fracarro | 345, 484 |
| FTE | 323, 343, 359, 379, 409, 473, 483 |
| Fuba | 351, 363, 400, 408, 422, 424, 425, 429, 430 |
| Funai | 331 |
| Galaxis | 329, 353, 373, 405, 407, 420, 461, 474, 478, 479, 483, 645, 678 |
| Galaxis EASY WORLD | 678 |
| Goodmans | 680 |
| Grundig | 305, 308, 309, 345, 354, 396, 434, 470, 472, 663, 674, 675, 680 |
| Grundig Cinia DTR 2280 S | 674 |
| Grundig GDS2000 | 663 |
| Grundig SelioDTR 5210 S CI | 674 |
| Grundig SinioDTR 6110 S | 675 |
| Grundig SinioDTR 6111 S CI | 675 |
| Hanseatic | 381 |
| Hansel and Gretel | 679 |
| Hirschmann | 382, 396, 406, 411, 425, 436, 437, 449, 451, 489 |
| Hitachi | 680 |
| HNE | 679 |
| Humax | 521, 563, 591, 625, 631, 633, 634, 635, 638, 655, 656, 657, 659 |
| Humax BTCI-5900 | 633 |
| Humax BTCI5900C | 633 |
| Humax CI-8100 | 656 |
| Humax CI5000 | 635 |
| Humax CI5100 | 635 |
| Humax CI8100PVR | 638 |
| Humax CRCI5500 | 635 |
| Humax CX-1201C | 656 |
| Humax CXCI5200 | 635 |
| Humax CXCI5200II | 635 |
| Humax CXVACI2100 | 635 |
| Humax DV-1100S | 659 |
| Humax F1ACE | 635 |
| Humax F1FOX | 635 |
| Humax F2-1000T | 657 |
| Humax F2-1001T | 657 |
| Humax F2-1002 | 656 |
| Humax F2-7002 | 656 |
| Humax F2-ACE | 656 |
| Humax F2-GREEN | 634 |
| Humax F2FINDER | 634 |
| Humax F2FOX | 656 |
| Humax F2FREE | 656 |
| Humax FI5000 | 635 |
| Humax IR5410Z | 635 |
| Humax IRACEII | 656 |
| Humax IRCI-5400 | 635 |
| Humax IRCI5400Z | 635 |
| Humax NAACE | 635 |
| Humax NACI5700 | 635 |
| Humax PVR-8000T | 655 |
| Humax VA5200 | 635 |
| Humax VAACE | 635 |
| Humax VACI5300 | 635 |
| Huth | 383, 407, 415, 453, 455, 679 |
| International | 679 |
| Intervision | 455 |
| ITT/Nokia | 372, 680 |
| Johansson | 330, 345, 410 |
| JVC | 440 |
| Kathrein | 343, 345, 360, 361, 382, 392, 396, 409, 424, 435, 438, 451, 499, 500, 501, 502, 503, 504, 505 |
| Kathrein CCR 500 | 499 |
| Kathrein UFD 400 | 503 |
| Kathrein UFD 400 | 504 |
| Kathrein UFD 580 | 505 |
| Kathrein UFD 580S | 505 |
| Kathrein UFE 135 | 500 |
| Kathrein UFE 305 | 501 |
| Kathrein UFE 305S | 501 |
| Kathrein UFE 335 | 502 |
| Kathrein UFE 335S | 502 |
| Kathrein UFE 370 | 501 |
| Kathrein UFE 370S | 501 |
| Kenwood | 345 |
| Key West | 679 |
| Kosmos | 343, 382, 409 |
| Kreiselmeyer | 396, 426 |
| Kyostar | 679 |
| L and S Electronics | 679 |
| Lasat | 379, 455, 679 |
| Lenco | 457 |
| Lifesat | 679 |
| Lorenzen | 376, 455, 679 |
| Luxor | 345, 360, 372, 449 |
| Macab | 445, 480, 488 |
| Manata | 679 |
| Manhattan | 353, 479, 680, 681 |
| Mascom | 382 |
| Maspro | 345, 360, 386, 392, 412, 436, 470, 680 |
| Mediabox | 384 |
| Mediasat | 384, 481 |
| Medion | 676, 679 |
| Medion MD 4140 | 676 |
| Medion MDS 4001 | 676 |
| Medion MDS4000FH | 676 |
| Medion MICROSTAR MR 4020 | 676 |
| Medion MICROSTAR MR 4040 CI | 676 |
| Metz | 354 |
| Micro Technology | 411, 447 |
| Minerva | 354 |
| Mitsubishi | 680 |
| Morgan's | 379, 439, 464, 679 |
| Multistar | 343, 409 |
| NEC | 397 |
| Neuhaus | 437, 455, 479 |
| Neusat | 465, 479 |
| Next Wave | 468 |
| Nikko | 419 |
| Nokia | 360, 364, 372, 449, 506, 512, 515, 516, 520, 524, 547, 548, 553, 560, 561, 571, 588, 592, 596, 607, 611, 617, 619, 622, 639, 642, 646, 649, 670, 671, 680 |
| Nokia MediaMaster 150 S | 670 |
| Nokia MediaMaster 211 S | 671 |
| Nokia MediaMaster 9470 S | 671 |
| Nokia MediaMaster 9800 S | 671 |
| Nordmende | 324, 325, 380, 680 |
| Okano | 343, 409 |
| Ondigital | 369, 370, 385, 402 |
| Optex | 353, 424 |
| Orbit | 417 |
| Orbitech | 437 |
| Orion | 444 |
| Pace | 302, 303, 305, 306, 326, 345, 385, 389, 390, 402, 412, 467, 658, 660, 663, 680 |
| Pace 2200 | 663 |
| Pace 2500S | 663 |
| Pace 3000 | 663 |
| Pace BSkyB DIGIBOX 2500C1 | 663 |
| Pace BSkyB DIGIBOX 2500N | 663 |
| Pace BSkyB DIGIBOX 2500S4 | 663 |
| Pace BSkyB DIGIBOX 2500S5 | 663 |
| Pace BSkyB MINIBOX | 663 |
| Pace DTR730 ONdigital | 660 |
| Pace DTR735 | 658 |
| Palcom | 345, 363, 408, 430 |
| Palsat | 359, 437 |
| Panasonic | 663, 680 |
| Panasonic TUDS20 | 663 |
| Panasonic TUDS30 | 663 |
| Panda | 455, 680 |
| Patriot | 440, 679 |
| Philips | 303, 305, 310, 311, 369, 370, 384, 387, 434, 452, 466, 470, 472, 481, 498, 661, 663, 680 |
| Philips RU 258 | 661 |
| Philips STU3530 | 498 |
| Phoenix | 420 |
| Phonotrend | 373, 407, 680 |
| Pioneer | 337, 481 |
| Polytron | 424 |
| Preisner | 679 |
| Premiere | 384, 531, 565, 589, 593, 601, 623 |
| Promax | 680 |
| Prosat | 345, 407 |
| Proscan | 116, 121 |
| Proscan PRD8560B | 121 |
| Proscan PRD8630A | 116 |
| Pyxis | 479 |
| Quadral | 319, 320, 321, 339, 426, 443, 459 |
| Quelle | 455 |
| Radix | 371, 425, 489, 511, 519, 543, 580, 595, 605, 630, 643, 644 |
| Rediffusion | 397 |
| RFT | 407, 448 |
| Saba | 325, 377, 380, 412, 418, 455, 466, 490 |
| Sabre | 680 |
| Sagem | 375, 476 |
| Sakura | 345, 420 |
| Salora | 360 |
| Samsung | 338, 343, 368, 406 |
| Satcom | 342, 381, 383, 415, 454, 455 |
| Satford | 383 |
| SatPartner | 410, 465, 473 |
| Schneider | 472 |
| Schwaiger | 679 |
| Sedea Electronique | 679 |
| Seemann | 425, 446, 450, 458 |
| SEG | 376, 381, 422, 442, 447, 469, 508, 513, 533, 535, 541, 545, 549, 559, 575, 584, 597, 603, 612, 618 |
| Siemens | 354, 379, 396, 464 |
| Skymaster | 381, 407, 443, 454, 459, 487, 518, 530, 542, 550, 552, 557, 576, 579, 583, 594, 613, 616, 627, 632, 653, 662, 666 |
| Skymaster DC30MOBIL | 662 |
| Skymaster DX22 FTA | 665 |
| Skymaster XL10 | 662 |
| Skymaster XL11 | 662 |
| Skymaster XL14s | 662 |
| Skymaster XL17 | 662 |
| SL | 679 |
| Smart | 679 |
| Sony | 301 |
| SR | 679 |
| Strong | 345, 352, 359, 485, 486, 517, 522, 536, 538, 551, 564, 568, 574, 578, 590, 604, 624, 626, 629, 647, 648 |
| Sunstar | 439, 679 |
| Systec | 679 |
| Tandberg | 363 |
| Tantec | 408, 412, 680 |
| Techniland | 383, 415 |
| TechniSat | 317, 349, 350, 403, 432, 437, 448, 523, 527, 529, 537, 539, 546, 558, 569, 570, 600, 609, 628, 652, 640, 641, 666, 667, 668, 669, 672, 673 |
| TechniSat DigiBox 1 | 667 |
| TechniSat DIGIBOX 2{A} | 662 |
| TechniSat DIGIBOX 2{B} | 663 |
| TechniSat DigiCorder S1{A} | 668 |
| TechniSat DigiCorder S1{B} | 669 |
| TechniSat DigiCorder T1{A} | 668 |
| TechniSat DigiCorder T1{B} | 669 |
| TechniSat DigiPal 1 | 666 |
| TechniSat DigiPal 2 | 666 |
| TechniSat DIGIT 4 S | 666 |
| TechniSat DIGIT D{A} | 672 |
| TechniSat DIGIT D{B} | 673 |
| TechniSat DIGIT MF4-S{A} | 672 |
| TechniSat DIGIT MF4-S{B} | 673 |
| TechniSat DIGIT P | 666 |
| TechniSat DIGITY 1 | 667 |
| TechniSat DIGITY CI | 667 |
| Technoweld | 679 |
| Telasat | 381 |
| Telefunken | 322 |
| Teleka | 382, 456 |
| Telesat | 381, 454 |
| Televes | 679, 680 |
| Tensai | 348 |
| Thomson | 303, 312, 313, 314, 315, 316, 380, 384, 455, 481, 636, 637, 680 |
| Thomson ASR 26 T | 636 |
| Thomson DSR 150 FT | 637 |
| Thomson DSR 151 C1 | 637 |
| Thorn | 345, 680 |
| Tioko | 424, 679 |
| Tonna | 383, 415, 462, 680 |
| Triad | 411, 416, 417 |
| Triasat | 429, 437 |
| Tristar | 359 |
| Twinner | 679 |
| Ultravox | 353 |
| Uniden | 345, 357, 395, 398, 471 |
| Unisat | 420, 679 |
| Unitor | 400, 410 |
| Universum | 376, 396, 455 |
| Vestel | 376 |
| Visiosat | 377, 417 |
| Vortec | 332, 385, 406 |
| Wevasat | 680 |
| Wewa | 680 |
| Winersat | 330, 345, 410 |
| Wisi | 335, 377, 396, 417, 425, 427, 428, 460, 479, 507, 509, 510, 511, 514, 515, 526, 532, 534, 544, 554, 555, 556, 566, 573, 577, 582, 587, 599, 602, 606, 608, 610, 614, 621, 650, 654, 680 |
| Zehnder | 335, 343, 346, 376, 393, 409, 424, 475, 664, 677 |
| Zehnder DX 5020 CV | 664 |
| Zehnder DX 5040 CV | 664 |
| Zehnder DX 6042 V | 677 |
| Zenith | 482 |
| Vendor | Codesets |
| DEC boxes | 0, 1 |
1. Introduction
2. Layout of the nvidia-settings GUI
3. How OpenGL Interacts with nvidia-settings
4. Loading Settings Automatically
5. Commandline Interface
6. X Display Names in the Config File
7. Connecting to Remote X Servers
8. Licensing
9. TODO
1. Introduction
The `nvidia-settings` utility is a tool for configuring the NVIDIA
Linux graphics driver. It operates by communicating with the NVIDIA
X driver, querying and updating state as appropriate. This
communication is done with the NV-CONTROL X extension.
Values such as brightness and gamma, XVideo attributes, temperature,
and OpenGL settings can be queried and configured via nvidia-settings.
When nvidia-settings starts, it reads the current settings from
its configuration file and sends those settings to the X server.
Then, it displays a graphical user interface (GUI) interface for
configuring the current settings. When nvidia-settings exits, it
queries the current settings from the X server and saves them to
the configuration file.
2. Layout of the nvidia-settings GUI
The nvidia-settings GUI is organized with a list of different
categories on the left side. Only one entry in the list can be
selected at once, and the selected category controls which
"page" is displayed on the right side of the nvidia-settings GUI.
The category list is organized in a tree: each X screen contains
the relevant subcategories beneath it. Similarly, the Display
Devices category for a screen contains all the enabled display
devices beneath it. Besides each X screen, the other top level
category is "nvidia-settings Configuration", which configures
behavior of the nvidia-settings application itself.
Along the bottom of the nvidia-settings GUI, from left to right, is:
1) a status bar which indicates the most recently altered option;
2) a Help button that toggles the display of a help window which
provides a detailed explanation of the available options in the
current page; and 3) a Quit button to exit nvidia-settings.
Most options throughout nvidia-settings are applied immediately.
Notable exceptions are OpenGL options which are only read by OpenGL
when an OpenGL application starts.
Details about the options on each page of nvidia-settings are
available in the help window.
3. How OpenGL Interacts with nvidia-settings
When an OpenGL application starts, it downloads the current values
from the X driver, and then reads the environment (see APPENDIX E:
OPENGL ENVIRONMENT VARIABLE SETTINGS in the README). Settings from
the X server override OpenGL's default values, and settings from
the environment override values from the X server.
For example, by default OpenGL uses the FSAA setting requested by
the application (normally, applications do not request any FSAA).
An FSAA setting specified in nvidia-settings would override
the OpenGL application's request. Similarly, the __GL_FSAA_MODE
environment variable will override the application's FSAA setting,
as well as any FSAA setting specified in nvidia-settings.
Note that an OpenGL application only retrieves settings from the X
server when it starts, so if you make a change to an OpenGL value
in nvidia-settings, it will only apply to OpenGL applications which
are started after that point in time.
4. Loading Settings Automatically
The NVIDIA X driver does not preserve values set with nvidia-settings
between runs of the X server (or even between logging in and logging
out of X, with xdm, gdm, or kdm). This is intentional, because
different users may have different preferences, thus these settings
are stored on a per user basis in a configuration file stored in
the user's home directory.
The configuration file is named "~/.nvidia-settings-rc". You can
specify a different configuration file name with the "--config"
commandline option.
After you have run nvidia-settings once and have generated a
configuration file, you can then run:
nvidia-settings --load-config-only
at any time in the future to upload these settings to the X
server again. For example, you might place the above command in
your ~/.xinitrc file so that your settings are applied automatically
when you log in to X.
Your .xinitrc file, which controls what X applications should
be started when you log into X (or startx), might look something
like this:
nvidia-settings --load-config-only &
xterm &
evilwm
or:
nvidia-settings --load-config-only &
gnome-session
If you do not already have an ~/.xinitrc file, then chances are that
xinit is using a system-wide xinitrc file. This system wide file
is typically here:
/etc/X11/xinit/xinitrc
To use it, but also have nvidia-settings upload your settings,
you could create an ~/.xinitrc with the contents:
nvidia-settings --load-config-only &
. /etc/X11/xinit/xinitrc
System administrators may choose to place the nvidia-settings load
command directly in the system xinitrc script.
Please see the xinit(1) manpage for further details of configuring
your ~/.xinitrc file.
5. Commandline Interface
nvidia-settings has a rich commandline interface: all attributes
that can be manipulated with the GUI can also be queried and set from
the command line. The commandline syntax for querying and assigning
attributes matches that of the .nvidia-settings-rc configuration file.
The "--query" option can be used to query the current value of
attributes. This will also report the valid values for the attribute.
You can run `nvidia-settings --query all` for a complete list of
available attributes, what the current value is, and what values
are valid for the attribute. Additionally, individual attributes
may be specified like this:
nvidia-settings --query CursorShadow
Attributes that may differ per display device (for example
DigitalVibrance can be set independently on each display device
when in TwinView) can be appended with a "display device name"
within brackets; eg:
nvidia-settings --query DigitalVibrance[CRT-0]
If an attribute is display device specific, but the query does not
specify a display device, then the attribute value for all display
devices will be queried.
An attribute name may be prepended with an X Display name and a
forward slash to indicate a different X Display; eg:
nvidia-settings --query 192.168.1.33:0.0/DigitalVibrance[DFP-1]
An attribute name may also just be prepended with the screen number
and a forward slash:
nvidia-settings --query 0/DigitalVibrance[DFP-1]
in which case the default X Display will be used, but you can indicate
to which X screen to direct the query (if your X server has multiple
X screens). If no X screen is specified, then the attribute value
will be queried for all X screens.
The "--assign" option can be used to assign a new value to an
attribute. The valid values for an attribute are reported when the
attribute is queried. The syntax for --assign is the same as --query,
with the additional requirement that assignments also have an equal
sign and the new value. For example:
nvidia-settings --assign FSAA=2
nvidia-settings --assign 0/DigitalVibrance[CRT-1]=9
Multiple queries and assignments may be specified on the commandline
for a single invocation of nvidia-settings.
If either the --query or --assign options are passed to
nvidia-settings, the GUI will not be presented, and nvidia-settings
will exit after processing the assignments and/or queries.
6. X Display Names in the Config File
In the Commandline Interface section above, it was noted that you
can specify an attribute without any X Display qualifiers, with only
an X screen qualifier, or with a full X Display name. For example:
nvidia-settings --query FSAA
nvidia-settings --query 0/FSAA
nvidia-settings --query stravinsky.nvidia.com:0/FSAA
In the first two cases, the default X Display will be used, in the
second case, the screen from the default X Display can be overridden,
and in the third case, the entire default X Display can be overridden.
The same possibilities are available in the ~/.nvidia-settings-rc
configuration file.
For example, in a computer lab environment, you might log into any
of multiple workstations, and your home directory is NFS mounted
to each workstation. In such a situation, you might want your
~/.nvidia-settings-rc file to be applicable to all the workstations.
Therefore, you would not want your config file to qualify each
attribute with an X Display Name. Leave the "Include X Display Names
in the Config File" option unchecked on the nvidia-settings Configuration
page (this is the default).
There may be cases when you do want attributes in the config file to
be qualified with the X Display name. If you know what you are doing
and want config file attributes to be qualified with an X Display,
check the "Include X Display Names in the Config File" option on the
nvidia-settings Configuration page.
In the typical home user environment where your home directory is
local to one computer and you are only configuring one X Display,
then it does not matter whether each attribute setting is
qualified with an X Display Name.
7. Connecting to Remote X Servers
nvidia-settings is an X client, but uses two separate X connections:
one to display the GUI, and another to communicate the NV-CONTROL
requests. These two X connections do not need to be to the same
X server. For example, you might run nvidia-settings on the
computer stravinsky.nvidia.com, export the display to the computer
bartok.nvidia.com, but be configuring the X server on the computer
schoenberg.nvidia.com:
nvidia-settings --display=bartok.nvidia.com:0 \
--ctrl-display=schoenberg.nvidia.com:0
If "--ctrl-display" is not specified, then the X Display to control
is what "--display" indicates. If "--display" is also not specified,
then the $DISPLAY environment variable is used.
Note, however, that you will need to have X permissions configured
such that you can establish an X connection from the computer on
which you are running nvidia-settings (stravinsky.nvidia.com) to the
computer where you are displaying the GUI (bartok.nvidia.com) and the
computer whose X Display you are configuring (schoenberg.nvidia.com).
The simplest, most common, and least secure mechanism to do this
is to use 'xhost' to allow access from the computer on which
you are running nvidia-settings.
(issued from bartok.nvidia.com)
xhost +stravinsky.nvidia.com
(issued from schoenberg.nvidia.com)
xhost +stravinsky.nvidia.com
This will allow all X clients run on stravinsky.nvidia.com to
connect and display on bartok.nvidia.com's X server and configure
schoenberg.nvidia.com's X server.
Please see the xauth(1) and xhost(1) manpages, or refer to your Linux
Distribution's documentation on remote X applications and security.
You might also google for terms such as "remote X security" or "remote
X Windows", and see documents such as the Remote X Apps mini-HOWTO:
http://www.tldp.org/HOWTO/Remote-X-Apps.html
Please also note that the remote X server to be controlled must
be using the NVIDIA X driver.
8. Licensing
The source code to nvidia-settings is released as GPL. The most
recent official version of the source code is available here:
ftp://download.nvidia.com/XFree86/nvidia-settings/
Note that nvidia-settings is simply an NV-CONTROL client. It uses
the NV-CONTROL X extension to communicate with the NVIDIA X server
to query current settings and make changes to settings.
You can make additions directly to nvidia-settings, or write your
own NV-CONTROL client, using nvidia-settings as an example.
Documentation on the NV-CONTROL extension and additional sample
clients are available in the nvidia-settings source tarball.
Patches can be submitted to linux-bugs@nvidia.com.
9. TODO
There are many things still to be added to nvidia-settings. Some of
which include:
- configurability of TwinView (NVIDIA is planning to implement this)
- configurability of multiple X screens (NVIDIA is planning to
implement this)
- different toolkits? the GUI for nvidia-settings is cleanly
abstracted from the backend of nvidia-settings that parses
the configuration file and commandline, communicates with the X
server, etc. If someone were so inclined, a different frontend
GUI could be implemented.
- write a design document explaining how nvidia-settings is
architected; presumably this would make it easier for people to
become familiar with the code base.
If there are other things you would like to see added (or better yet,
would like to add yourself), please contact linux-bugs@nvidia.com.