Welcome to Documentation: Windows’s documentation!¶
Contents:
Move C:\Users
directory to D:\Users
¶
Warning
This is not recommended anymore: http://support.microsoft.com/kb/949977/en-us
When I use Windows, I always have separate partition for the data (D:
). I
have never tried to actually move the whole Users
folder to D:
though.
Instead I moved folders with data such as Documents to D:
manually after
installing Windows.
After purchasing a couple of SSD’s for my laptops, I decided to install Windows 8
on them, and decided to use more sophisticated (and elegant) method of moving
Users folder to D:
, which leverages the soft link functionality of Windows.
I have read some howto’s about this and at first they look complicated, but it turns out it is pretty simple (about 3 lines of commands) and robust. As usual, it was so much better than manual way.
There are just a couple of things which can mess things up if you are not careful, and I wanted to share the experience so others can do this without trial and error.
I assume you already have separate partition D:
.
Dropping to the Command Line Prompt¶
Windows 8¶
Since no process should be using files in the C:\Users
directory, you
have to drop to the recovery mode command line prompt. There are two ways
that I know of. You can do it by booting with installation DVD and also you
can do it in installed Windows 8. I recommend the second method as it is much
faster. It became very easy in Windows 8 since you can invoke this within
running Windows.
Please see the following link for how-to: How to start the Recovery Environment Command Prompt in Windows 8
Windows 7¶
Please see the following website for how-to: How to Get to the Recovery Console in Windows
Figure out drive letters¶
This is the first (a little bit) tricky part. For some reason when you drop to
this command prompt the drive letters are different. In my case, it was always
X:
which was the secovery partition, and C:
became D:
and D:
became E:
. So when you are working in D:
in the prompt, actually you
are at C:
. This can be confusing but once you figure it out it is not
that bad. Anyway, if your drive letter mapping is different from mine, you
have to adjust the following commands accordingly. Basically, when you make
copies you use the letters assigned in the command prompt, but when you make
the link, you have to use the letters that windows uses.
Copy Users
folder to D:\Users
¶
Two things are important in this step: 1) you have to use the correct drive
letters, and 2) you have to use the exact options for robocopy
. If you mess up
1), you won’t be able to log in, and if you mess up 2), then you might be able
to log in but will have other problems.
Do the following to copy C:\Users
to D:\Users
. Again, keep in mind the
drive letters are remapped:
X:> D:
D:> robocopy /copyall /mir /xj Users E:\Users
/mir
option will delete all files in the target if they do not exist in
the source. Hence, if you already have D:\Users
and want to keep the
files, then use /E
option:
D:> robocopy /copyall /E /xj Users E:\Users
Again, here D:
is C:
in actual, and E:
is D:
in actual. Among
robocopy options, if you miss /copyall
, then it will not copy the
permission information, and after log-in your Windwos 8 apps will crash upon
launching. Make sure you get 0 for failed column in the robocopy results
output.
After verifying there were no error, do the following to remove the original
C:\Users
directory:
D:> rmdir /S /Q Users
Create the symbolic link¶
This is the final step, creating the symbolic link at C:\Users
which
points to D:\Users
. Here the drive letter thing again comes up. Since the
symbolic link will be used in actual windows session, you have to use the
actual drive letter ,``D:`` as the target. So you end up making a symbolic
link at D:\Users
(command prompt letter - C:
in actual) whose target
is also D:\Users
. Since you are already at D:
, use the following so
it is less confusing:
D:> mklink /J Users D:\Users
Junction created for Users <<===>> D:\Users
I have not tried other options, but it seems if you don’t use /J
(Junction) option you will have to do a registry hack.
You can verify the link with dir
command. You will see:
<JUNCTION> Users [D:\Users]
Anyway, that’s it. When you exit and reboot (select continue to windows 8),
you will be able to log in, and when you open up the explorer, you will see
that C:\Users
is a symbolic link which points to D:\Users
.:
D:> exit
Again, the steps are very easy when you figure it out (especially the drive letter thing) but at the same time it is very easy to make a mistake.
Using BitLocker¶
You can also use BitLocker.
- Encrypt
C:
with BitLocker - Encrypt
D:
with BitLocker, and make sure to enable Auto-Unlock
Then when boot, Windows will unlock D:
so you can log in.
Admin¶
Environmental Variables¶
System environmental variable:
setx -m PATH "%PATH%;.\" setx -m PATH "%PATH%;C:\Program Files (x86)\KDE\bin"
Local environmental variables:
setx HOME "C:\Users\Joon" setx PATH "%PATH%;%HOME%\bin"
Symbolic Links¶
> mklink /J c:\home %home%..\..
> mklink /J %home%\.lyx %appdata%\LyX2.0
> mklink /J %home%\.mozilla\firefox "%appdata%\Mozilla\Firefox"
> mklink /J %home%\.config\sublime-text-3 "%appdata%\Sublime Text 3"
> mklink /J %home%\vimfiles "%home%\.vim"
> mklink /J %home%\.kde4 "%appdata%\.kde"
> mklink /J %home%\.wingide5 "%appdata%\Wing IDE 5"
> mklink /J C:\lib D:\lib
> mklink /J C:\lib64 D:\lib64
> mklink /J Documents D:\Users\joon\Documents
> mklink /J Downloads D:\Users\joon\Downloads
> mklink /J Music D:\Users\joon\Music
> mklink /J Pictures D:\Users\joon\Pictures
> mklink /J Videos D:\Users\joon\Videos
> mklink /J Copy D:\Users\joon\Copy
> mklink /J Comics D:\Users\joon\Comics
> mklink /J Data D:\Users\joon\Data
> mklink /J AeroFS D:\Users\joon\AeroFS
> mklink /J Dropbox D:\Users\joon\Dropbox
> mklink /J ".\Google Drive" "D:\Users\joon\Google Drive"
PowerShell Remoting¶
To configure the computer (the server) to receive Windows PowerShell remote commands, run the following in an elevated PowerShell:
Enable-PSRemoting
SSH¶
SSH Server¶
Download and install Bitvise SSH Server:
choco install winsshd
SSH Client¶
Download Bitvise SSH Client (Tunnelier):
choco install Tunnelier
You can use
ssh
comes with Git Bash as well.
Bitvise SSH Server Public key authentication¶
Generate public/private rsa key pair:
ssh-keygen
To be able to add public keys to the server from the client, download Bitvise SSH Server Remote Control Panel.
Then follow instructions here: http://www.bitvise.com/wug-publickey
- Login to the server
- Open Bitvise SSH Server Control Panel
Open Easy Settings
2. Windows accounts
- From the
Public keys imported
tab, you can import local public keys. (Import both bitvise-generated and ssh-keygen generated keys)
Tinkerer blog¶
$ cd ~/git
$ git clone git@github.com:joonro/blog.git
$ mklink /J en C:\Users\joon\Dropbox\tinkerer\en\blog\html
$ mklink /J ko C:\Users\joon\Dropbox\tinkerer\ko\blog\html
Installation¶
SysAdmin¶
-
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin
choco install Tunnelier
- Paragon ExtFS for Windows : ext4 Read/Write support
- CrashPlan
- See How to Move Your CrashPlan Backups to a New Computer to restore your backup settings
- Tiny Windows Borders
choco install LinkShellExtension f.lux pscx wifi-manager
Browsers¶
choco install Firefox GoogleChrome # browsers
Cloud¶
choco install dropbox googledrive
Devel¶
choco install Emacs geany nano KickAssVim SublimeText3 # Editors; KickAssVim will pull ctags and vim
choco install consolez git.install meld winmerge # devel
choco install SourceCodePro # fonts; this doesn't work it seems
Pinning Emacs to the taskbar¶
http://superuser.com/questions/259146/why-latest-emacs-version-dont-support-windows-7-taskbar
If you just pin Emacs icon on the taskbar, next time you click it to launch Emacs, it will have a terminal window as well as GUI window. In order to fix this,
- Run
runemacs.exe
with no pre-existing icon on the taskbar. - Right click on the running Emacs icon in the taskbar, and click on “pin this program to taskbar” item.
- Close the Emacs
- Shift right-click on the pinned Emacs icon on the taskbar, click on
Properties, and change the target from
emacs.exe
torunemacs.exe
.
Office¶
choco install PDFXchangeEditor PDFCreator # PDF
- It is better to install Sumatra PDF from the installer so you can install the browser plugins and pdf preview.
Multimedia¶
choco install foobar2000 mpc-hc
Communications¶
choco install winscp deluge youtube-dl
Utils¶
choco install 7zip autohotkey_l dexpot teamviewer # utils
Chocolatey¶
choco install IcoFx
choco install SourcePreviewHandler
choco install keepass # pims
choco install paint.net gimp
choco install pandoc
Libraries¶
GTK¶
In both cases, get the all-in-one bundle.
- for Windows (32-bit) (Get the 2.x version)
- for Windows (64-bit)
Set PATH
:
setx -m PATH "%PATH%;C:\lib\gtk\bin"
Utilities¶
unison¶
Aspell¶
- Download Aspell executable (
Full installer
) and at least one dictionary (aspell-en-0.50-2-3.exe
) from http://aspell.net/win32/. - Install
Aspell-0-50-3-3-Setup
and thenAspell-en-0.50-2-3
.
awk¶
Download and install Gawk for Windows
Put
C:\Program Files (x86)\GnuWin32\bin\
into yourPath
:setx -m PATH "%PATH%;"C:\Program Files (x86)\GnuWin32\bin"
cURL¶
If you have Chocolatey installed (which I highly recommend):
$ choco install curl
Otherwise, follow instructions here.
Also, follow the instructions here to add
Certficate Authority Public Keys
forhttps
.
ClassicShell¶
Preview Handlers¶
PDF Preview¶
For PDF Preview in Explorer and Directory Opus, get PDF XChange Viewer and install Shell Extensions. It is by default checked when you install it. Portable version does not have this plugin.
See http://www.tracker-software.com/shell_ext.html for explanations.
Source Code¶
PowerShell¶
If scripts are not enabled, run PowerShell as Administrator and call:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Confirm
Install PowerShell Community Extensions
Determine what version of PowerShell is installed¶
$psversiontable.psversion
Install Modules¶
PowerShell Resource Gallery¶
https://msconfiggallery.cloudapp.net/
Install-Module -Name PSReadline
Install-Module -Name PSReadline -Scope CurrentUser
Persistent History¶
$MaximumHistoryCount = 31KB
$PoshHistoryPath = "$home\_posh_history.xml"
# Load history if history file exists
if (Test-path $PoshHistoryPath)
{ Import-CliXml $PoshHistoryPath | Add-History }
# Save history on exit, remove duplicates
Register-EngineEvent PowerShell.Exiting {
Get-History -Count $MaximumHistoryCount | Group CommandLine |
Foreach {$_.Group[0]} | Export-CliXml "$home\_posh_history.xml"
} -SupportEvent
# hg function to search history
function hg($arg) {
Get-History -c $MaximumHistoryCount | out-string -stream |
select-string $arg
}
PSReadline¶
# PSReadline
Import-Module PSReadLine
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward
Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete
Text¶
Write a file in UTF-8 without the BOM¶
http://stackoverflow.com/questions/5596982/using-powershell-to-write-a-file-in-utf-8-without-the-bom
Out-File -Encoding "UTF8"
force the BOM
when using UTF-8
.
Use the following:
[System.IO.File]::WriteAllLines($File, $Contents)
Control Processes¶
Get-Process
shows current processes. You can kill a process with
Stop-Process
and process ID:
Get-Process ProcessName | Stop-Process
For example:
Get-Process ClipboardHelpAndSpell | Stop-Process
GNU/Linux commands equivalents¶
which
Equivalent of *Nix ‘which’ command in Powershell?:
function which($name) { Get-Command $name | Select-Object -ExpandProperty Definition }
PowerShell Community Extensions (PSCX)¶
Symbolic Link¶
New-Symlink
New-Junction
New-Hardlink
Path¶
Get-PathVariable
Set-PathVariable
Add-PathVariable
Remoting¶
http://superuser.com/questions/643120/windows-powershell-screen-equivalent/643606
New-PSSession -ComputerName localhost
Get-PSSession -ComputerName localhost | Disconnect-PSSession
PowerShell Remoting vs ssh¶
- In PowerShell Remoting, basically everything happens in the local machine; you send cmdlets to remote machines and get the results back.
- With
ssh
, one logs into a remote machine, and then use a utility such asscreen
to make persistent sessions. - With PowerShell Remoting, one generates
PSSessions
from the local machine, and then Enter thosePSSessions
viaEnter-Pssession
.
Check the port on the remote machine¶
http://stackoverflow.com/questions/5458565/powershell-remote-enabling
On the local computer:
cd WSMan:\localhost\Listener
WSMan:\localhost\Listener> dir
[cut]
WSMan:\localhost\Listener> cd .\Listener_1084132640
WSMan:\localhost\Listener\Listener_1084132640> dir
WSManConfig:
icrosoft.WSMan.Management\WSMan::localhost\Listener\Listener_1084132640
Name Value
---- -----
Address *
Transport HTTP
Port 5985
Configure TrustedHosts¶
On the local computer:
Set-Item WSMan:\localhost\Client\TrustedHosts *
Set-Item WSMan:\localhost\Client\TrustedHosts $office
Restart-Service winrm
You can check it by:
Get-Item WSMan:\localhost\Client\TrustedHosts
Connect to the remote machine¶
On the local computer:
$targetServer = "xxx.xx.xxx.xx"
$remotePowerShellPort = 5985
$ConnectionURI = ("http://{0}:{1}" -f $targetServer, $remotePowerShellPort)
Invoke-Command:
$remoteSession = New-PSSession -ConnectionURI $ConnectionURI
Invoke-Command -Session $remoteSession -ScriptBlock {Get-Process} -AsJob
Enter-PSSession:
Enter-PSSession -ConnectionURI $ConnectionURI
Exit-PSSession
Note
Enter-PSsession
without session argument makes a temporary
PSSession
automatically, which is not persistent.
You have to make a PSSession
first via New-PSSession
and
then enter into that PSSession
.
Note
In default WinRM configuration, you can skip -ConnectionURI and
http://
and use the ip address as the computer name.
With credentials¶
$Cred = Get-Credential "remotecomputername\username"
Enter-PSSession XXX.XX.XX.XX -Credential $cred
Interactive Remote Session¶
Open a persistent interactive session:
$s = New-PSSession -ConnectionURI $ConnectionURI
Enter-PSSession -Session $s
Disconnect from the session:
Exit-PSSession
Disconnect-PSSession -Session $s -OutputBufferingMode Drop -IdleTimeoutSec 2147483647
Recover the session:
$session = Get-PSSession -ConnectionURI $ConnectionURI
You can re-enter the remoting session:
Enter-PSSession -Session $s
Note
It seems this session is limited in a sense that console outputs
will not be shown correctly; for example, invoking vim
will make
console to hang. I haven’t figured out how to fix this. It seems it
is a inherent problem of remoting.
Remote Disconnected Sessions¶
about Remote Disconnected Sessions
Creates a session to the
ConnectionURI
computer:> New-PSSession -ConnectionURI $ConnectionURI
> New-PSSession -ConnectionURI $ConnectionURI -Name “IPython Notebook Server”
To get the session, use the
ConnectionURI
parameter ofGet-PSSession
with a value of$ConnectionURI
:> Get-PSSession -ConnectionURI $ConnectionURI
To disconnect a PSSession use the
Disconnect-PSSession
cmdlet:> Get-PSSession -ConnectionURI $ConnectionURI | Disconnect-PSSession
To connect a disconnected PSSession, use the
Connect-PSSession
cmdlet:> Connect-PSSession -ConnectionURI $ConnectionURI -Name Session2
Run a command remotely in a disconnected session:
> Invoke-Command -ConnectionURI $ConnectionURI -InDisconnectedSession -ScriptBlock {ipython notebook --profile=nbserver}
Run a command remotely as a job in a disconnected session:
> $s = Invoke-Command -ConnectionURI $ConnectionURI -InDisconnectedSession -ScriptBlock {Start-Job -ScriptBlock {ipython notebook --profile=nbserver}}
In this case, you need to do
Receive-PSSession
to be able to access the session:> Receive-PSSession $s
Start A Remote Job that Returns the Results to the Local Computer (Asjob)¶
http://technet.microsoft.com/en-us/library/hh849719.aspx
Runs the command as a background job on a remote computer. Use this parameter to run commands that take an extensive time to complete.
When you use AsJob, the command returns an object that represents the job, and then displays the command prompt. You can continue to work in the session while the job completes. To manage the job, use the Job cmdlets. To get the job results, use the Receive-Job cmdlet.
For example:
$ Invoke-Command -ConnectionURI $ConnectionURI -ScriptBlock {python C:\Users\joon\Dropbox\playground.py} -AsJob
$ Invoke-Command -ConnectionURI $ConnectionURI -ScriptBlock {ipython notebook --profile=nbserver} -AsJob
Note
Problem with this is that since the results are returned to the local computer, once the local session is ended, the results are lost. I think the job gets lost as well.
Start A Remote Job that Keeps the Results on the Remote Computer¶
http://technet.microsoft.com/en-us/library/hh847805.aspx
I think this can be very useful.
Generate a new
PSSession
, or connect to an existing one. Let$s
denote the session variable.Invoke a command as a
Start-Job
in the session:Invoke-Command -Session $s -ScriptBlock {Start-Job -ScriptBlock {python C:\Users\joon\Dropbox\playground.py}}
You can
Disconnect-Pssession -Session $s
freely, without killing the job.To get list of jobs in the session
$s
:Invoke-Command -Session $s -ScriptBlock {Get-Job}
To get the output from the job:
Invoke-Command -Session $s -ScriptBlock {Receive-Job JobId -keep}
Example: one session, multiple remote jobs¶
# Open a new PSSession
> $s = New-PSSession -ConnectionURI $ConnectionURI -Name Persistent
# Invoke command on the remote server
> {Start-Job -Name NBServer -ScriptBlock {ipython notebook --profile=nbserver}} | % { Invoke-Command -Session $s -ScriptBlock $_; };
# Disconnect $s with maximum IdleTimeoutSec
> Disconnect-PSSession -Session $s -OutputBufferingMode Drop -IdleTimeoutSec 2147483647
# Conncet to $s
> Connect-PSSession $s
# Run additional jobs
> {Start-Job -Name Playground -ScriptBlock {python C:\Users\joon\Dropbox\playground.py}} | % { Invoke-Command -Session $s -ScriptBlock $_; };
# Get list of jobs in $s
> {Get-Job} | % { Invoke-Command -Session $s -ScriptBlock $_; };
# Get the output from the job with name Playground
> {Receive-Job -Name Playground -Keep} | % { Invoke-Command -Session $s -ScriptBlock $_; };
References¶
Python Environment¶
Resources¶
Unofficial Windows Binaries for Python Extension Packages
- For individual packages.
- Also, it has both 32 and 64-bit packages.
All of the distributions come with MinGW.
If you need openmp
support in Cython, then you should install TDM-GCC
Anaconda Installation¶
Download¶
Anaconda download page: https://store.continuum.io/cshop/anaconda
Path setup¶
$ export anaconda=C:\Anaconda
$ PYTHON=$anaconda
pylauncher¶
pylauncher for command line python script launching
Mayavi¶
Deprecated since version 1.7.0: Use conda install mayavi
instead.
http://www.lfd.uci.edu/~gohlke/pythonlibs/ maintains fantastic repository of binary Python libraries. To install Mayavi, you need to install the following two packages:
VTK-5.10.1.win-amd64-py2.7
ets-4.3.0.win-amd64-py2.7
For some reason, if you install VTK-Qt-5.10.1.win-amd64-py2.7
, it yields DLL
error.
And also, install configobj
if you get import failure with configobj
:
pip install configobj
ViTables¶
From http://www.lfd.uci.edu/~gohlke/pythonlibs/, download the following packages, PyQt and ViTables:
PyQt-Py2.7-x64-gpl-4.9.6-1.exe
ViTables-2.1.win-amd64-py2.7.exe
You can run ViTables with the following commands (use it as shortcut target):
C:\Anaconda\pythonw.exe "C:\Anaconda\Scripts\vitables"
Update Packages¶
Using conda¶
Others¶
Note
Make sure you run conda
with all python app closed. Otherwise, it might
fail with permission error.
$ conda remove pip
$ conda update distribute cython matplotlib pandas scipy
$ conda install pip
Using pip¶
$ pip install bottleneck virtualenvwrapper-powershell
Manual¶
CythonGSL¶
$ git clone git@github.com:joonro/CythonGSL.git
$ cd CythonGSL
$ git remote add upstream git://github.com/twiecki/CythonGSL.git
$ python setup.py install
IPython¶
$ rm -rf $anaconda/Lib/site-packages/IPython $anaconda/Lib/site-packages/ipython*
$ python setup.py install
Statsmodels¶
$ rm -rf $anaconda/Lib/site-packages/statsmodels*
$ pip install patsy
$ git clone git@github.com:joonro/statsmodels.git
$ cd Statsmodels
$ python setup.py install
Cython¶
$ rm -rf $anaconda/Lib/site-packages/Cython* $anaconda/Lib/site-packages/cython.*
$ python setup.py install
Virtualenv¶
virtualenvwrapper-powershell is installed as a module in
~/Documents/WindowsPowerShell/Modules
. To load the module, do import-module
virtualenvwrapper.
Also, it will complain about not finding Python InstallPath
from the
registry. Copy InstallPath
and PythonPath
from
HKLM\Software\Python\PythonCore\2.7
to HKCU\Software\Python\PythonCore\2.7
.
Devel Environment¶
General¶
Git¶
Install it with default settings (I tend to use option 3 so unix commands are available in other shell)
Git Bash command line:
C:\Windows\SysWOW64\cmd.exe /c ""C:\Program Files (x86)\Git\bin\sh.exe" --login -i"
Just use Chocolatey to install it:
choco install git
When you try to update it with Chocolatey, you might get an error saying
Setup cannot continue until you close at least those applications in the list that are marked as "closing is required".
Stopssh.exe
and try it again:Get-Process ssh.exe | Stop-Process
PowerShell¶
posh-git¶
https://github.com/dahlbyk/posh-git
A set of PowerShell scripts which provide Git/PowerShell integration
Terminal¶
- PowerShell
- ConsoleZ
- ConEmu
Libraries¶
GSL¶
Download¶
You can download binary GSL from oscats projects. Make sure you get the correct architecture. (Usually 64bit)
Environmental Variables¶
Add the path to bin directory of your GSL installation to your PATH Environmental variable:
setx -m PATH "$env:path;C:\lib64\gsl\bin"
Add an environmental variable LIB_GSL with the path to your GSL installation:
setx -m LIB_GSL "C:/lib64/gsl"
Note
You need to run above commands in administrator mode in CMD.
Compilers¶
Windows SDK C/C++¶
https://github.com/cython/cython/wiki/64BitCythonExtensionsOnWindows http://rexdouglass.com/python-64-bit-on-windows-part-2-building-packages
MinGW with OpenMP support¶
MinGW doesn’t come with openmp by default so if it’s not included in the Anaconda version you’ll probably have to find the correct installer from the MinGW site and install it.
https://groups.google.com/a/continuum.io/forum/#!topic/anaconda/c-4u6C29hYM
Warning
The cython wiki Does not recommend using MinGW for the 64bit compiler.
Install TDM-GCC¶
TDM-GCC is a compiler suite for Windows.
It combines the most recent stable release of the GCC toolset with the free and open-source MinGW or MinGW-w64 runtime APIs to create a LIBRE alternative to Microsoft’s compiler and platform SDK
openmp
support must be manually added during installation. Expand
Components - gcc
and check openmp
:
LaTeX/LyX¶
Global location of .bib
file.¶
http://tex.stackexchange.com/questions/49126/common-bib-file-for-several-collaborators
As in GNU/Linux, you can make texmf\bibtex\bib
directory under the user’s
profile directory (C:\Users\username
).
mkdir ~/texmf
mkdir ~/texmf/bibtex
mkdir ~/texmf/bibtex/bib
The following is copied from the stackexchange entry:
- On Windows with TeX Live, make a
texmf\bibtex\bib
directory under the user’s profile directory (C:\Users\username
by default on Windows Vista and higher). - Place the .bib file in that folder.
- Place any custom bibliography styles in a
texmf\bibtex\bst
directory under the user’s profile directory. - Pull up a command prompt, and run
mktexlsr texmf
from the profile directory (I don’t remember if TeX Live automatically has this in the path or not, so you may need to run it asC:\texlive\2011\bin\win32\mktexlsr texmf
or similar instead). - Write your documents wherever, and use the regular bibliography and related commands as usual. No need for paths, since your personal texmf tree will automatically be searched for support files.
Inverse search with LyX¶
http://wiki.lyx.org/LyX/SyncTeX#toc3
Set
Tools
>Preferences
>Paths
>LyxServer pipe
to\\.\pipe\lyxpipe
.In
Document
>Settings
>Output
, checkSynchronize with output
.Create a batch-file named
lyxeditor.cmd
and save it to one of the locations in yourPATH
Windows environmental variable:@echo off SETLOCAL enabledelayedexpansion set file=%1 set row=%2 REM remove quotes from variables set file=!file:"=! set row=!row:"=! %comspec% /q /c (@echo LYXCMD:revdvi:server-goto-file-row:%file% %row%)> \\.\pipe\lyxpipe.in&&type \\.\pipe\lyxpipe.out endlocal
AutoHotkey Script¶
The above cmd works well, but it shows annoying black cmd window everytime when you invoke the script. With a simple AutoHotkey script, one can not only suppress this window, but also activate LyX windows after the inverse search.
Create a AutoHotkey script named lyx-inverse-search.ahk
with the following
code and save it to the same location to lyxeditor.cmd
and compile it with
AutoHotkey to generate lyx-inverse-search.exe
:
SetTitleMatchMode, RegEx
Run, lyxeditor.cmd "%1%" "%2%",, Hide
WinActivate, ^LyX:,,,
If you don’t have AutoHotkey installed, you can download the compiled exe.
SumatraPDF¶
http://wiki.lyx.org/Windows/LyXWinTips#toc6
Download and install Sumatra PDF.
In LyX go to Tools > Preferences > Paths and add the install location to
PATH
prefix. Most likely this isC:\Program Files\SumatraPDF
.Note
If you use Chocolatey to install Sumatr PDF, the PATH is
C:\Chocolatey\bin
In
Tools
>Preferences
>File Handling
>File Formats
selectPDF (pdflatex)
from the list of formats and modifyViewer
to the following:SumatraPDF -reuse-instance -inverse-search "lyx-inverse-search.exe \"%f\" \"%l\""
If you don’t have the compiled AutoHotkey script from above, use the following:
SumatraPDF -reuse-instance -inverse-search "lyxeditor.cmd \"%f\" \"%l\""
Okular¶
In LyX go to
Tools
>Preferences
>Paths
and add the location ofokular.exe
toPATH
prefix. Most likely this isC:\Program Files (x86)\KDE\bin
In Tools > Preferences > File Handling > File Formats select PDF (pdflatex) from the list of formats and modify Viewer to:
okular --unique
In Okular,
Settings
>Configure Okular
>Editor
, chooseCustom Text Editor
and input the following:lyx-inverse-search.exe "%f" "%l"
If you don’t have the compiled AutoHotkey script from above, use the following:
lyxeditor.cmd "%f" "%l"
Note
If lyxeditor.cmd
or lyx-inverse-search.exe
is not in your system
PATH
, then you have to specify the full path here.
Forward search with LyX¶
SumatraPDF¶
Forward search setting is easier. Make sure you have the PATH to Sumatra PDF
in Tools > Preferences > Paths. Then in Tools > Preferences > Output >
General, choose SumatraPDF -reuse-instance $$o -forward-search $$t $$n
,
which should be built-in.
Note
If you have master and child document structure, the forward search only works when you compile the full document. If you only compile current child document forward search will not work.
Okular¶
okular --unique "file:$$o#src:$$n $$f"
Mendeley Settings¶
Tools
-> Options
-> BibTex
, check Enable BibTeX
syncing
. Create one BibTeX file per collection
. Path, put
C:\Users\joon\texmf\bibtex\bib
.
Backup¶
LyX settings¶
In `C:\Users\User\AppData\Roaming\LyX2.X
folder:
preferences # general preferences
pwl_english.dict # personal word list
bind\user.bind # key binding
Outlook¶
*.ost
files in In `C:\Users\User\AppData\Local\Microsoft\Outlook
folder.
Windows 8 Apps¶
Manga Z
C:\Users\joon\AppData\Local\Packages\36032Twincubesstudio.MangaZ_3znhphxp8kcdy
Troubleshooting¶
General¶
I suggest that you run SFC scan on the computer to see if fixes the issue. SFC (System File Checker) checks for any corrupt system files and tries to repair them. To do so, follow these steps.
- At the Start screen, type
cmd
. - You will find Command Prompt, right click on it and select
Run as administrator
from the bottom of the screen. At the command prompt, type the following command, and then press enter:sfc /scannow
The sfc /scannow
command scans all protected system files and replaces
incorrect versions with correct Microsoft versions.
Error log is located at:
C:\$Windows.~BT\Sources\Panther\setuperr.log
Skydrive¶
Disable Skydrive in Windows 8.1¶
http://www.ghacks.net/2013/11/02/disable-skydrive-windows-8-1/:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Skydrive
You may need to create the Skydrive folder here. If you do, right-click on
Windows and select New
> Key
and name it Skydrive
.
Right-click on SkyDrive and select New > Dword (32-bit value)
and name it
DisableFileSync
.
Double-click the new parameter and change its value to 1
.
Network¶
How to Delete or Forget Wireless Network Profiles in Windows 8.1:
netsh wlan show profiles netsh wlan delete profile name="profile name"
0xd0000225 switch to live account¶
This user Wasn’t Added to this PC code
Add pku2u
and livessp
to the Security Packages
REG_MULTI_SZ
key under regkey HKLM\System\CurrentControlSet\Control\Lsa
, and reboot.
Windows 8 sleeps after few minutes when awaken by external USB keyboard